po mo翻译仅适用于en-GB和en-US,不适用于其他语言

时间:2011-07-15 14:15:48

标签: php poedit po mo

我使用poedit创建了翻译文件并生成了mo文件并将它们保存在各自的文件夹中。但不知何故,我只能访问en_GB和en_US文件夹中的翻译。即使我将DE翻译放在这些文件夹中也可以。

为什么它无法使用其他语言环境?是否有任何我需要进行的移民或我遗失的东西?

这是我正在使用的代码。

switch ($_GET['language']) {
    case 'de' : $locale = 'de_DE'; break;
    case 'us' : $locale = 'en_US'; break;
    case 'fr' : $locale = 'fr_FR'; break;
    case 'es' : $locale = 'es_ES'; break;
    case 'it' : $locale = 'it_IT'; break;
    default : $locale = 'en_GB'; break;
}
putenv("LC_ALL=$locale");   
    setlocale(LC_ALL, $locale . '.UTF-8');
    $domname = 'default';
    bindtextdomain($domname, 'locale');
    textdomain($domname);
    bind_textdomain_codeset($domname, 'UTF-8');


echo gettext ("test123");
echo gettext ("hello every one");

1 个答案:

答案 0 :(得分:0)

您确定要使用的所有其他语言环境都是UTF-8吗?在您的示例中,您在setlocale()中添加“.UTF-8”。