Php 用多种语言进行翻译
我的默认语言是英语 我想在我的一个控制器中,翻译另外两种语言中的一些单词,并将它们全部放在一个数组中 理想情况下我能做到Php 用多种语言进行翻译,php,internationalization,translation,locale,gettext,Php,Internationalization,Translation,Locale,Gettext,我的默认语言是英语 我想在我的一个控制器中,翻译另外两种语言中的一些单词,并将它们全部放在一个数组中 理想情况下我能做到 $word_sv = gettext($word, 'sv_SV'); $word_fi = gettext($word, 'fi_FI'); 但它并不存在 每次都是改变整体的唯一方法吗 function setLang($lang){ putenv("LC_ALL=$lang"); setlocale(LC_ALL, $lang); bindtex
$word_sv = gettext($word, 'sv_SV');
$word_fi = gettext($word, 'fi_FI');
但它并不存在
每次都是改变整体的唯一方法吗
function setLang($lang){
putenv("LC_ALL=$lang");
setlocale(LC_ALL, $lang);
bindtextdomain("myPHPApp", "./locale");
textdomain("myPHPApp");
}
setLang('sv_SV');
$word_sv = gettext($word);
setLang('fi_FI');
$word_fi = gettext($word);
相关报道:在以下时间在谷歌上看到:
编辑 以下是建议的解决方案:
- (似乎是最好的解决方案)
- (如果我找到一个好的医生或芭蕾舞团,可以用它;))
- 动态更改区域设置,可能不太好
function getLocalText($string, $lang)
{
putenv("LC_ALL=$lang");
setlocale(LC_ALL, $lang);
bindtextdomain("myPHPApp", "./locale");
textdomain("myPHPApp");
return gettext($string);
}
$word_fi = getLocalText($word, 'fi_FI');
我知道使用gettext的痛苦,但它的性能让我一直使用它 在你的情况下,你可能想看看这个小项目?我敢肯定这对你有帮助 这只是使用带有翻译的.ini文件,您可以在文件之间自由切换,并为同一个单词回显不同的语言
如果您必须在此处获取文本,请让计算机为您完成这项工作 您可以有一个要对照所有语言检查的单词列表,也可以先为每种语言检查单词列表。这将为您在每个单词和语言之间调用
setlanguage
函数节省一些开销
如果您想使用每种语言、每一个单词,请以这种方式编写函数:
function gettext_by_lang($lang, $word) {
putenv("LC_ALL=$lang");
setlocale(LC_ALL, $lang);
bindtextdomain("myPHPApp", "./locale");
textdomain("myPHPApp");
return gettext($word);
}
$word_sv = gettext_by_lang('sv_SV', $word);
$word_fi = gettext_by_lang('fi_FI', $word);
这至少会使您的代码更加紧凑。我想到的另一个想法是使用PO和MO文件的解析器,以便检查数据
在PHP中,其中之一是Wordpress/Glotpress随附:
也许这有帮助。该库正在维护中。请注意,您可以使用Google的高级搜索来搜索特定站点,方法是使用以下查询字符串:
site:stackoverflow.com php translate
。它将搜索php translate
。您看到了吗?这可能会有所帮助。Gettext显然不是为这种用例而设计的。其思想是只需设置一次语言,就可以通过调用gettext函数来翻译所有消息。这里的用例是什么?@DaveKok thx的想法是通过循环在所有可能的翻译中提出一个单词(有几个语言词典,它们在lang/sv_sv.utf8/LC_MESSAGES/MESSAGES.po lang/fi_fi.utf8/LC_MESSAGES/MESSAGES.po…dcgettext无法在它们之间切换我想是的,如果我最后没有忘记将其设置回初始语言环境,gettext还有其他选项吗?否则你的答案对meTrue没有帮助,我一直在v上我需要编写自己的翻译系统,但无论我写什么,都无法与gettext的速度相比,因此我暂时必须使用它,但这是因为我的facebook游戏同时提供数千个视图,所以性能对我来说非常重要,根据您的情况,我发布的项目可能会很有用:)祝你好运,干掉吉布森号!;)