У меня есть следующие файлы в моем проекте php:
libraries/locale/es_ES/LC_MESSAGES/messages.po
libraries/locale/es_ES/LC_MESSAGES/messages.mo
libraries/locale/es/LC_MESSAGES/messages.po
libraries/locale/es/LC_MESSAGES/messages.mo
Оба являются одним и тем же файлом, отредактированным с помощью PoEdit, только отличаются Каталог-> Свойства-> Язык (соответственно es и es_ES)
И этот код в файл localization.php
$language = "es_ES.UTF-8";
putenv("LANG=$language");
setlocale(LC_ALL, $language);
bindtextdomain(STRING_DOMAIN, LOCALE_PATH);
textdomain(STRING_DOMAIN);
echo "Test translation: "._('string to translate');
Этот код работает нормально, и «строка для перевода» отображается правильно. Однако, если я попытаюсь использовать общий код «es»:
$language = "es.UTF-8";
...Строка не переведена. Кажется, это связано с локалями, установленными в моей Ubuntu (es_ES.utf8 существует, но не es.utf8)
Могу ли я заставить gettext использовать файл es.UTF-8?