我有一个网站,我想创建其他语言版本。 我不想为每种语言创建文件夹。我想知道它 它可以添加一个组合框在每个页面或主要的一个 ,以便用户可以设置语言,然后使用PHP我会 检查选项并显示正确的版本。任何建议 到达?PHP更改语言版本
1
A
回答
0
你的意思是沿着
if ($_GET['language']) {
include $_GET['language'] . ".php";
}
,然后线的东西保存在一个PHP文件的语言与存在的名称,或功能取决于你想用它
0
做什么哎为语言版本。 在组合框中有语言。 在会话中维护您当前的语言。 当你改变语言调用ajax调用更改更改语言进入会话并重新加载页面。
显示关于会话存储语言的页面视图。
完蛋了........
3
如果你有一个组合框,当用户提交后,存储在会话(session_start();
必须调用)与$_SESSION['lang'] = $_POST['lang'];
的语言。我建议你将白名单这样的语言列为白名单:
session_start();
// define language whitelist
$allowedLangs = array('en', 'de');
// only store the new user language if it's an allowed one
if (isset($_POST['lang']) && in_array($_POST['lang'], $allowedLangs)) {
$_SESSION['lang'] = $_POST['lang'];
}
// define the user language based on session data or use 'en' as default if not available
$userLang = isset($_SESSION['lang']) ? $_SESSION['lang'] : 'en';
// parse some language file according to the language
$translations = // TODO load some file with $userLang here
当然,你应该调整它以适应你自己的项目和环境。对于翻译文件,您可以使用返回类似这样的阵列纯PHP文件:如果包括文件
<?php
// en.php
return array(
'some.key' => 'Translation',
);
然后的返回值包括是数组,所以在上面的代码中你可以更多信息:
$translations = include 'translations/'.$userLang.'.php';
你就必须输出通过这个$translations
变量的所有文字,像echo $translations['some.key']
。
1
如果您想要使用cookies ......在lang文件中,您将包括一系列要使用的单词或内容。
<?php
if($_GET['language']){
$lang = (string)$_GET['language'];
setcookie("lang", $lang, time()+3600);
header('Location: '.$_SERVER['PHP_SELF']);
die();
}elseif(!isset($_COOKIE['lang'])){
$lang='en';
}else{$lang=$_COOKIE['lang'];}
switch($lang){
case "en":
include('./lang/en.php');
break;
case "fr":
include('./lang/fr.php');
break;
case "pol":
include('./lang/pol.php');
break;
default:
include('./lang/en.php');
break;
}
?>
相关问题
- 1. 更改应用语言更改的文本框输入语言
- 2. 更改语言
- 3. 更改语言
- 4. 语言版本化PHP框架
- 5. 默认语言环境更改,版本5.0.1 - > 5.1
- 6. 根据语言偏好更改网站版本
- 7. 使用html按钮更改网站的语言版本
- 8. Ajax更改语言
- 9. FolderBrowserDialog更改语言
- 10. 更改语言5
- 11. Yii2 - 更改语言
- 12. 更改Behat语言
- 13. Android更改语言
- 14. Django:i18n - 更改语言
- 15. 如何将ios“更多”按钮的文本更改为我的语言版本?
- 16. Android - 更改应用程序本身的语言环境语言
- 17. 的Outlook版本语言
- 18. 更改jupyter笔记本警告语言
- 19. 更改MessageBox按钮文本的语言
- 20. 作为设备语言更改更改应用程序语言
- 21. 防止语言环境更改后的应用语言更改
- 22. 更改PHP版本的Plesk到PHP 7
- 23. Android版多种语言的版本
- 24. 更改LaTeX标题语言
- 25. 更改前端语言wordpress
- 26. android更改语言日期
- 27. zf2动态更改语言
- 28. 在J2ME中更改语言
- 29. 语言更改选项?
- 30. 更改语言在C#
酷,我得到的,包括我自己喜欢的任何文件: – 2011-06-08 08:52:50
我不会用这个例子作为'由于is'任何文件可以包含 – 2011-06-08 08:55:01
也可以使用后反而使它升技更安全的是更多的psevdo代码然后复制粘贴 – Touchpad 2011-06-08 08:58:47