【发布时间】:2011-01-26 09:39:34
【问题描述】:
我正在尝试使用 gettext 向我的网站添加本地化支持。我遵循了有关如何设置 gettext 的各种指南并完成了以下操作:
我在项目目录的根目录中创建了以下文件和目录:
test.php
locale/
de_DE
LC_MESSAGES
messages.mo
messages.po
en_GB
LC_MESSAGES
messages.mo
messages.po
我使用Poedit 创建了上述 .po 和 mo 文件。我已经让 sue 它使用 Unix 行尾、UTF-8 并相应地设置语言和国家/地区。
然后我创建了一个名为 test.php 的 PHP 脚本,其中包含以下代码:
<?php
define('LOCALE', 'de_DE');
// Set up environmental variables
putenv("LC_ALL=" . LOCALE);
setlocale(LC_ALL, LOCALE);
bindtextdomain("messages", "./locale");
bind_textdomain_codeset("messages", LOCALE .".utf8");
textdomain("messages");
die(gettext('This is a test.'));
?>
我已导入文本“这是一个测试”。到 Poedit 并提供翻译并保存。
但由于某种原因,test.php 脚本只会输出未翻译的原始文本。它拒绝加载翻译文件的版本。
值得注意的是,服务器运行的是Linux(Ubuntu),
Apache 2.2.11 和 PHP 5.2.6-3ubuntu4.5。我检查了phpinfo() 并启用了gettext。
【问题讨论】:
标签: php apache localization gettext