У нас есть многоязычное (PHP) приложение, и мы используем gettext для i18n. В бэкэнде / модели есть несколько классов, которые возвращают сообщения или форматы сообщений для printf ().
Мы используем xgettext для извлечения строк, которые хотим перевести.
Мы применяем функцию gettext T_ () во внешнем интерфейсе / представлении - похоже, здесь она и принадлежит. До сих пор мы держали бэкэнд в чистоте от вызовов T_ (), так что мы также можем тестировать сообщения.
Итак, во фронтенде у нас есть что-то вроде
echo T_($mymodel->getMessage());
or
printf(T_($mymodel->getMessageFormat()), $mymodel->getValue());
Это делает невозможным применение xgettext для извлечения строк, если мы не поместим какой-нибудь фиктивный вызов T _ («мое сообщение% s для перевода») в класс MyModel.
Это приводит к более общему вопросу:
Применяете ли вы перевод в серверных классах, соотв. где вы применяете перевод и как вы отслеживаете строки, которые вам нужно перевести?
(Мне известен вопрос: обходной путь poedit для динамического gettext.)