Phalcon Gettext getLocale () возвращает false - PullRequest
0 голосов
/ 31 марта 2019

У меня есть 3 файла перевода (hu, en, it), но когда я попытался перевести на «это», getLocale () возвращает значение false."Hu" и "en" работают хорошо.

Моя getTranslation() функция является общей:

php
protected function getTranslation()
    {
        if (!function_exists('gettext')) {
            throw new \Phalcon\Exception('There\'s no gettext extension');
        }

        if (!\is_file(APP_PATH . '/locales/' . $this->selectedLanguageCode . '/LC_MESSAGES/messages.mo')) {
            throw new \Phalcon\Exception('There\'s no ' . APP_PATH . '/locales/' . $this->selectedLanguageCode . '/LC_MESSAGES/messages.mo' . ' file');
        }

        $translate = new \Phalcon\Translate\Adapter\Gettext([
            'category'      => LC_MESSAGES,
            'locale'        => $this->selectedLanguageCode . '.UTF8',
            'defaultDomain' => 'messages',
            'file'          => 'messages',
            'directory'     => APP_PATH . '/locales/',
        ]);

        return $translate;
    }

Я написал несколько строк для отладки, прежде чем она вернет:

php
print 'locale: ' . $this->selectedLanguageCode . '.UTF8' . '<br />';
var_dump($translate->getLocale());
die();

return $translate;

Когда я выбираю hu, он говорит:

    locale: hu_HU.UTF8
    string(10) "hu_HU.UTF8"

Когда я выбираю «en», он говорит:

    locale: en_US.UTF8
    string(10) "en_US.UTF8"

Но когда я выбираю it, он говорит:

locale: it_IT.UTF8
bool(false)

Я пытался восстановить английские и итальянские файлы mo с помощью poEdit, но проблема та же.На английском языке работает, но итальянский нет.

Файлы mo находятся в

/app/locales/en_US/LC_MESSAGES/messages.mo
/app/locales/it_IT/LC_MESSAGES/messages.mo

Файл mo для английского языка:

������������,������<�������P������Q���j��e����������������������������A T világa�Project-Id-Version: app 1.0
Report-Msgid-Bugs-To: notesz@xyz.xyz
POT-Creation-Date: 2019-03-31 15:19+0200
PO-Revision-Date: 2019-03-31 17:02+0200
Language-Team: 
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Generator: Poedit 2.2.1
Last-Translator: 
Plural-Forms: nplurals=2; plural=(n != 1);
Language: en_US
�T Group�

Файл mo для итальянскогоэто:

������������,������<�������P������Q���j��e����������������������������A T világa�Project-Id-Version: app 1.0
Report-Msgid-Bugs-To: notesz@xyz.xyz
POT-Creation-Date: 2019-03-31 15:19+0200
PO-Revision-Date: 2019-03-31 17:00+0200
Language-Team: 
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Generator: Poedit 2.2.1
Last-Translator: 
Plural-Forms: nplurals=2; plural=(n != 1);
Language: it_IT
�Il mondo di T
...