我正在使用php和mysql开发一个网站。我想知道......处理多语言支持的好方法是什么?我希望用户能够从下拉列表中进行选择并选择他们的语言。然后除了用户编写的内容之外的所有内容(内容,按钮,链接)都是用他们的语言。
有什么好方法可以解决这个问题?用饼干?会话?
答案 0 :(得分:2)
这样的事情很好:
<强> Langs.php 强>
<?
// check if language switch as been set at url var
if ($_GET["lang_change"]) {
$_SESSION['session_name']["lang"] = $_GET["lang_change"];
}
// set value to lang for verification
$active_lang = $_SESSION['session_name']["lang"];
// verify $lang content and set proper file to be load
switch ($active_lang) {
case 'prt':
$lang_file = 'prt.php';
break;
case 'gbr':
$lang_file = 'gbr.php';
break;
case 'fra' :
$lang_file = 'fra.php';
break;
case 'esp' :
$lang_file = 'esp.php';
break;
case 'deu' :
$lang_file = 'deu.php';
break;
default:
$lang_file = 'gbr.php';
}
// load proper language file for site presentation
include_once ('$lang_file);
?>
LANG GBR FILE(gbr.php)
define("LANG_PAGETITLE_HOMEPAGE", 'Homepage');
define("LANG_BTN_KNOW_MORE", 'know more');
更改语言的方法(网址样本)
<a href="index.php?lang_change=gbr" title"">USE ENG</a>
基本上,你有包含常量的PHP文件,每个文件都有一个lang。
点击后你设置了一个url var(例如:lang_change = lang)。
这将强制页面重新加载,并且langs.php文件包含在index.php的顶部将加载所选语言...
如果您需要更多解释,请发表评论,我会向您发送工作样本!
Ps:此代码中显示的会话变量对于与登录系统的交互非常有用,或者只是为了避免使用url参数......
答案 1 :(得分:1)
答案 2 :(得分:1)
首先,您必须动态添加每种语言的所有值。 在向您的网站添加动态内容时,您可以将 languageId 添加到数据库中表的每个字段。然后,您可以代表 languageId 显示前端的内容。
答案 3 :(得分:0)
我认为考虑使用具有国际化支持的框架是个好主意。
查看此示例答案 4 :(得分:0)
我认为以下内容将帮助您了解开发它的基本概念。
在网站中,特别是多语言网站应具有用户界面/模板,其中硬编码标签应链接到变量。应使用正确的语言值加载这些变量。这可以通过包含包含该特定语言的值的语言文件来轻松完成。您可以在文件夹中包含任意数量的语言文件。
您需要在php中编写脚本,因为每当用户从下拉列表中选择语言时,页面都可以使用语言会话重新加载。另一个php脚本,用于获取此会话数据中的所选语言,并在模板/ UI中包含相关语言文件。
可以使用相同的方法从表中获取内容数据,在所有MySQL查询中,您可以使用内容表中的其他语言类型查找。这样就可以加载该文件。
SELECT * FROM posts WHERE lang='en' AND featured = 1
在许多情况下,语言需要相应地设置HTML和CSS,以使语言在浏览器内完美呈现。这意味着,您还可以在HTML中定义语言,在CSS中定义字体和方向(从右到左或从左到右)。
我建议您阅读以下内容,以获取有关如何操作的更多信息。 http://www.stylusinc.com/website/multilanguage_support.htm