【发布时间】:2013-07-25 19:23:14
【问题描述】:
我已经确认我的服务器上安装了 gettext。我使用 this 教程开始并按照它的指示进行操作。
我还在 PHP 手册的 gettext 页面gettext() 上读到,如果在翻译表中找不到翻译,它将只使用未翻译的文本。
对于本地化,我有
$language = "en";
putenv("LANG=$language");
setlocale(LC_ALL, $language);
// Set the text domain as 'messages'
$domain = 'messages';
bindtextdomain($domain, 'home/www/translations');
textdomain($domain);
我设置了两个目录,一个用于 en (translations/en/LC_MESSAGES/message.po),另一个用于 zh(结构相同)。我使用
生成了 .po 文件xgettext -n *.php
我的问题:“en”根本没有显示任何文字。原始字符串是英文的,我最初试图完全省略“en”目录,但这没有帮助。
【问题讨论】:
-
您应该找到不同的 PO 阅读器。几乎所有框架都有一个,只需从那里获取一个。公元前来自 PHP 的内置 gettext 阅读器是有史以来最糟糕的软件之一......当开发人员决定依赖系统区域设置时,他的想法是什么......
-
Gettext 没问题。我经常使用它,而且很简单。