我目前正在开发一个需要提供法语和英语版本的 PHP Web 应用程序。我环顾四周,发现 Gettext() 功能提供了最佳性能。
我用命令生成了我的 .pot 文件
xgettext PhpFileToTranslate.php -o NameOfTemplateFile.pot
并成功生成了一个 .pot 文件。我使用 PoEdit 生成 messages.po 文件并创建了 messages.mo
这是我的服务器文件:
/app
/locale
/en_US
/LC_MESSAGES
messages.po
messages.mo
/fr_FR
/LC_MESSAGES
messages.po
messages.mo
template.pot
我在 php 文件中设置语言环境,如下所示:
$language = $_SESSION['language']; //session contains 'fr_FR.UTF-8' or 'en_US.UTF-8'
setlocale(LC_ALL, $language);
bindtextdomain('messages', './locale');
textdomain('messages');
但我只看到标签而不是翻译......我尝试使用'fr_FR'而不是'fr_FR.UTF-8'和各种字符串,但它不起作用。
我错过了什么吗?我的服务器是带有 Apache 和 php5 的 Ubuntu 12.04 服务器