Мы используем ZF3 для большого приложения с интернационализацией.
i18n выполняется с помощью zend-i18n, zend-mvc-i18n и xgettext cli для извлечения / компиляции файлов pot / po / mo.
Для некоторых слов, как Contact
который может быть глаголом или существительным, мы указали $textDomain
: $this->translate('Contact', 'Verb')
или же $this->translate('Contact', 'Noun')
,
Проблема в том, что когда мы извлекаем эти строки, они все находятся в одном и том же пот-файле.
Поскольку Zend загружает файлы перевода по textDomain, было бы лучше, если бы мы могли разделить pot
файлы по textDomain, но кажется, что xgettext не может этого сделать.
Может ли кто-нибудь помочь нам правильно управлять текстовыми доменами с помощью Zend и gettext?
Для тех, у кого может быть такая же проблема, мы создали нашу собственную Gettext
загрузчик файлов, который правильно анализирует msgctxt и возвращает TextDomain
структурированный по msgctxt.
Мы также создали наш собственный Translator extends Zend\I18n\Translator\Translator
переопределить loadMessagesFrom...
функции и правильно обновить $this->messages
переменная
Других решений пока нет …