国际化与gettext的,但没有语言环境麻烦?(i18n with gettext but with

2019-09-01 02:18发布

我在寻找一种存储为Web应用程序的多语言内容的符合标准的方式。 到现在为止,我已经使用我自己的“翻译()”,从数据库中的文件或字典表中读取数据的功能。 然而,保持字典最新的数据库中的表,如果您使用的Web应用程序的不同副本的工作是非常繁琐。

我喜欢gettext的,因为没有工具可用它,众说纷纭。 不过,我开发不同平台的应用程序。 我绝对不愿意处理的setlocale()的蹩脚的方式和后妃 - 即几十种不同的语言环境字符串变化从系统到不同的系统,你需要提供得到它的工作的。 永远不能。 我有一组语言 - 说德语,英语和ES - 我想加载相应的字典,并与工作_()不接触的setlocale()或bindtexdomain()一次。

难道这在某种程度上可能使用gettext的? 或者是否有人知道另一种简单,体积小,速度快(!)对于PHP可以用的.po /的.mo文件的工作,最好不需要PHP扩展国际化的解决方案?

Answer 1:

一个Zend_Translate工作与它

http://framework.zend.com/manual/en/zend.translate.adapter.html#zend.translate.adapter.gettext



Answer 2:

这种方法甚至应该用非标准语言环境中工作:

$locale = 'someWeirdLocale';

putenv('LC_MESSAGES=' . $locale);
bindtextdomain('domain', './locale');
textdomain('domain');

请享用!



文章来源: i18n with gettext but without the locale hassle?