перевод po mo работает только для en-GB и en-US и не работает с другими языками

Я создал файлы перевода с помощью 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");

person Developer    schedule 15.07.2011    source источник
comment
даже я перезапустил веб-сервер, но это не имеет никакого значения.   -  person Developer    schedule 15.07.2011
comment
ОК, это работает на онлайн-сервере. но не работает на моем тестовом сервере. Теперь я уверен, что это проблема конфигурации. кто угодно?   -  person Developer    schedule 15.07.2011


Ответы (1)


Вы уверены, что все остальные локали, которые вы хотите использовать, находятся в UTF-8? В вашем примере вы добавляете «.UTF-8» в setlocale().

person Cédric Julien    schedule 15.07.2011
comment
имеет ли это значение для тестирования? в то время как перевод для test123 - это test123 на французском языке? Я думаю, что мне нужно изменить какую-то конфигурацию, потому что она работает только с en_GB и en_US. независимо от того, какой перевод я помещу в их папку. Например, если я попытаюсь перевести на французский, это не сработает. и я помещаю французский файл mo в en_GB, он отлично работает. так что это означает, что перевод правильный, но как-то en_FR не поддерживает. - person Developer; 15.07.2011