-->

如何使多语言的网站,其中包括PHP相应的文件?(How to make multiple langu

2019-10-28 15:38发布

我有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

我也不想用户选择的语言改变,如果用户转到其他网页内的网站。

我怎样才能做到这一点?

Answer 1:

你可以使用.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" ); 如果失败,重定向到一个普通的错误页面或东西...


Answer 2:

对你来说最好的解决方案被命名的Gettext

请参阅:
PHP手册的Gettext
使用本地化的gettext PHP网站

这是,没有任何的讨论,有一个多语言网站的最佳途径。 Gettext的是比任何其他解决方案快。



Answer 3:

我想在数据库中映射所有你的话,检测其语言,之后通过映射语言ID(EN英语和TU土耳其),其从数据库中检索所有数据的最佳方式,并指定word..You能使用“如果,否则”对于同样的方法...



文章来源: How to make multiple language website with including appropriate files on PHP?
标签: php lang