如何让用户选择将网站上的文本语言更改为 PHP 中预定义的短语?
这方面的一个例子是 facebook,将语言更改为英语(海盗)产生的不是翻译,而是检索在其他地方定义的许多不同的短语。
我希望通过在我的网站中添加海盗语言来做同样的事情,让用户可以选择自己更改它。
我能想到的最好的事情是每种语言的文件都充满了变量,然后在适用的地方调用这些变量,并且有某种在这些文件之间进行更改的方法。虽然这个想法看起来俗气且不切实际,但我想知道是否有人对我如何做到这一点有任何其他想法。
多谢!
如何让用户选择将网站上的文本语言更改为 PHP 中预定义的短语?
这方面的一个例子是 facebook,将语言更改为英语(海盗)产生的不是翻译,而是检索在其他地方定义的许多不同的短语。
我希望通过在我的网站中添加海盗语言来做同样的事情,让用户可以选择自己更改它。
我能想到的最好的事情是每种语言的文件都充满了变量,然后在适用的地方调用这些变量,并且有某种在这些文件之间进行更改的方法。虽然这个想法看起来俗气且不切实际,但我想知道是否有人对我如何做到这一点有任何其他想法。
多谢!
您的想法类似于我使用 CakePHP 的经历,其中包括使用 gettext 文件的国际化支持。ide非常简单。您可以使用转换器函数输出所有需要翻译的字符串。在 Cakephp 1.X 中它是 __() 。所以如果我想翻译一个字符串“hello world”,我会做
<?php
__('hello world');
?>
知道应该翻译成哪种语言的诀窍在于设置会话语言或区域设置。在 Cakephp 中,它将“Config.language”设置为我希望翻译成的语言的简码(对于法语,我会将其设置为“fre”)。然后应用程序将在其语言环境文件夹中查找“fre”目录,从那里读取文件并查找“hello world”的字符串匹配并从那里获取其相应的翻译字符串(这可能不是 100% 准确)。我可以认为这是从文件中返回一个数组,然后使用键来匹配翻译。
<?php
return array(
'hello world' => '123456',
);
?>
另一种方法是将字符串及其翻译存储在数据库中
字符串、翻译、语言 ID
然后使用要翻译的字符串和语言 ID 或短代码查询 db。