PHP + Poedit + Gettext не работает с испанским
Я работаю на мультиязычном веб-сайте PHP, который использует Poedit для переводов, и у меня проблемы с определенным языком, то есть испанским.
Я начну говорить, что на сервере (после публикации сайта) оба языка работают нормально, но в моей среде DEV переводится только английский.
К вашему сведению, испанские локали не были установлены в моей системе Ubunto, поэтому я установил их с помощью: sudo apt-get install language-pack-es и сгенерировал соответствующие вещи с помощью: sudo locale-gen es.
У меня есть следующая структура папок в моей сети:
languages => en_US => LC_MESSAGES => .po + .mo (compiled) files
languages => es_ES => LC_MESSAGES => .po + .mo (compiled) files
и файл set_locale.php выглядит следующим образом:
<?php
// Include the Composer autoloader
require_once 'vendor/autoload.php';
// Update include path
require_once 'Audero/SharedGettext/SharedGettext.php';
$translationsPath = 'languages';
$language = 'es_ES'; //en_ZM
if (isset($_GET['lng'])) {
$getLocale = $_GET['lng'];
if($getLocale=="en") {
$language="en_US";
}
}
$domain = 'audero';
putenv('LC_ALL=' . $language);
setlocale(LC_ALL, $language);
try {
$sharedGettext = new Audero\SharedGettext\SharedGettext($translationsPath, $language, $domain);
// Create the mirror copy of the translation and return the new domain
$newDomain = $sharedGettext->updateTranslation();
$sharedGettext->deleteOldTranslations();
// Sets the path for the current domain
bindtextdomain($newDomain, $translationsPath);
// Specifies the character encoding
bind_textdomain_codeset($newDomain, 'UTF-8');
// Choose domain
textdomain($newDomain);
//die(print_r("", true ));
} catch(\Exception $ex) {
echo $ex->getMessage();
}
?>
И я перевожу тексты следующим образом:
...
<title><?php echo _("home_title"); ?></title>
...
Но для испанского я получаю ключ (home_title, следуя примеру), но не перевод.
Любая помощь?
Благодарю.