PHP + Poedit + Gettext не работает с испанским - PullRequest
0 голосов
/ 29 января 2019

Я работаю на мультиязычном веб-сайте 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, следуя примеру) но не перевод.

Любая помощь?

Спасибо.

...