Я знаю, что ответ принят, и приведенный выше ответ хорош.Но есть и другая проблема с использованием постоянных ключей машинного стиля, таких как thing.stuff.widget
, при работе с Gettext.
Хотя использование постоянных ключей является лучшим подходом к разработке, Gettext не настроен для этого стиля работы, и этоможет усложнить ваш рабочий процесс .
Если вы представите переводчик с PO-файлом, заполненным ключами вместо исходного текста, они могут не знать, каким должен быть английский.Таким образом, вам нужно будет предоставить им второй файл, содержащий переводы с исходного языка для сравнения.Не конец света, но для них сложнее, а не как был разработан Gettext.(квадратный колышек, круглое отверстие и т. д.)
Я думаю, что PO отлично подходит как формат файла для переводов на PHP, и особенно рекомендуется, если вы не работаете с фреймворком, который имеет хороший модуль l10n,но это не значит, что это хорошо для рабочего процесса и вашего процесса перевода.
Я предлагаю вам прийти к рабочему процессу, который позволяет вашим программистам работать с постоянными ключами, ваши переводчики работают со словами, и дает вам файл MOна другом конце.Посмотрите на Loco для одного решения этого.
В качестве альтернативы используйте другой промежуточный формат файла, который позволяет использовать ключи и слова. TMX является одним примером.Если вы все еще хотите использовать Gettext во время выполнения, вы можете преобразовать файлы .