代码之家  ›  专栏  ›  技术社区  ›  Torben

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

  •  0
  • Torben  · 技术社区  · 9 年前

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

    有人知道为什么它在我的本地服务器上工作,但在我的海报的web服务器上不工作吗?语言切换后,我的内部链接是file.php?lang=en_en

    有什么建议吗?谢谢

    1 回复  |  直到 9 年前
        1
  •  0
  •   Torben    9 年前

    我有解决方案。 web服务器不支持“en_en”-服务器支持“en_US”。我必须在编码和文件夹结构中更改这一点。就是这样。。。