i18n - Gettext在本地工作,但不在服务器上工作

时间:2015-02-12 14:41:25

标签: php internationalization gettext

我在一个用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

有什么建议吗?谢谢!

1 个答案:

答案 0 :(得分:0)

我有解决方案。 Web服务器不支持“en_US” - 服务器支持“en_US”。我不得不在编码和文件夹结构中更改它。多数民众赞成......