多语言支持无法在远程主机

时间:2017-04-28 11:09:10

标签: php internationalization gettext setlocale

我已经使用PHP的gettext()函数在我的应用程序中实现了多语言支持。它在localhost上测试时工作正常,但在远程服务器上没有任何影响。

我使用启用了gettext()支持的000webhost,但在尝试更改语言时没有任何效果。

我有以下文件结构

.
+-- locale/
|   +-- en/
|       +-- LC_MESSAGES/
|           +-- messages.mo
|           +-- messages.po
|   +-- sv/
|       +-- LC_MESSAGES/
|           +-- messages.mo
|           +-- messages.po
+-- index.php

我在索引中设置了这样的语言

if (isset($_GET['lang'])) {
    $lang = filter_var($_GET['lang']);

    switch ($lang) {
        case 'fi':
        case 'en':
        case 'sv':
            setcookie('lang', $lang);
            $_COOKIE['lang'] = $lang;
            break;
    }
}

// I18N support information here
$lang = (isset($_COOKIE['lang']) ? $_COOKIE['lang'] : 'fi');
putenv("LANG=" . $lang);
setlocale(LC_ALL, $lang);

// Set the text domain as "messages"
$domain = "messages";
bindtextdomain($domain, "locale");
bind_textdomain_codeset($domain, 'UTF-8');
textdomain($domain);

localhost和远程服务器之间有什么区别?

提前致谢。

0 个答案:

没有答案