我有2种语言在我的网站。 我想根据所选的语言,包括相应的文件 。 例如, <a href='index.php?lang=en'>English</a>
和<a href='index.php?lang=tr'>Turkish</a>
。 如果用户点击了第一个超链接(英文)我要显示该信息(HTML标记):
<h1>Hello</h1>
How are you
除此以外:
<h1>Selam</h1>
Nasılsın
我也不想用户选择的语言改变,如果用户转到其他网页内的网站。
我怎样才能做到这一点?
你可以使用.ini文件来保存你的示例文本的翻译版本,en.ini将包含:
hello = "Hello"
greeting = "How are you"
虽然tr.ini将包含:
hello = "Selam"
greeting = "Nasılsın"
无论是简单的文本文件(保存为UTF-8格式)。 现在你可以看到字符串有共同的名字在所有语言(你好&贺卡),其驾驶室在这样的代码中使用:
// First, load the appropriate language file:
$lang = "en";
$strings = parse_ini_file( "$lang.ini" );
// Now we can use the following code no matter what $lang indicates (tr or en):
echo( "<h1>{$strings[ "hello" ]}</h1><br/>{$strings[ "greeting" ]}" );
有一件事你应该Concious酒店的:
- 由于
parse_ini_file
读取文件系统中的文件,必须非常仔细地验证在$ LANG值! 不依赖于任何方式的价值用户输入$lang
,因为它可能是恶意的(链接到page.php?lang=en
不够好)。 检查$ LANG的值对自己的白名单,例如: $langs = array( "en", "tr" );
如果失败,重定向到一个普通的错误页面或东西...
对你来说最好的解决方案被命名的Gettext
请参阅:
PHP手册的Gettext
使用本地化的gettext PHP网站
这是,没有任何的讨论,有一个多语言网站的最佳途径。 Gettext的是比任何其他解决方案快。
我想在数据库中映射所有你的话,检测其语言,之后通过映射语言ID(EN英语和TU土耳其),其从数据库中检索所有数据的最佳方式,并指定word..You能使用“如果,否则”对于同样的方法...
文章来源: How to make multiple language website with including appropriate files on PHP?