i18n - Gettext 在本地工作,但不在服务器上工作
i18n - Gettext working locally, but not on server
我在一个网站上工作,用 PHP 编写,并通过 PoEdit/Gettext 包含翻译。在我 Mac 上的本地 MAMP 服务器上,一切正常。当我将其上传到我的 Webhoster 的 Linux 服务器时,它无法正常工作。安全模式已关闭,Gettext 已启用 - 我已经检查过了。
我执行以下操作:
if (isset($_GET['lang'])) {
$language = $_GET['lang'];
} else {
$language = "en_EN";
}
putenv("LANG=" . $language);
setlocale(LC_ALL, $language);
// Set the text domain as "s5m"
$domain = "s5m";
bindtextdomain($domain, "languages");
bind_textdomain_codeset($domain, 'UTF-8');
textdomain($domain);
.mo / .po 文件存放于并命名为s5m.po / s5m.mo
/languages/en_EN/LC_MESSAGES/
有谁知道为什么它在我的本地运行,但在我发布者的网络服务器上运行不正常?切换语言后我的内部链接是 file.php?lang=en_EN
有什么建议吗?谢谢!
我有办法。
Web 服务器不支持 "en_EN" - 服务器支持 "en_US"。我必须在编码和文件夹结构中更改它。就是这样...
我在一个网站上工作,用 PHP 编写,并通过 PoEdit/Gettext 包含翻译。在我 Mac 上的本地 MAMP 服务器上,一切正常。当我将其上传到我的 Webhoster 的 Linux 服务器时,它无法正常工作。安全模式已关闭,Gettext 已启用 - 我已经检查过了。
我执行以下操作:
if (isset($_GET['lang'])) {
$language = $_GET['lang'];
} else {
$language = "en_EN";
}
putenv("LANG=" . $language);
setlocale(LC_ALL, $language);
// Set the text domain as "s5m"
$domain = "s5m";
bindtextdomain($domain, "languages");
bind_textdomain_codeset($domain, 'UTF-8');
textdomain($domain);
.mo / .po 文件存放于并命名为s5m.po / s5m.mo
/languages/en_EN/LC_MESSAGES/
有谁知道为什么它在我的本地运行,但在我发布者的网络服务器上运行不正常?切换语言后我的内部链接是 file.php?lang=en_EN
有什么建议吗?谢谢!
我有办法。 Web 服务器不支持 "en_EN" - 服务器支持 "en_US"。我必须在编码和文件夹结构中更改它。就是这样...