Есть разные способы сделать это. Проще всего написать приложение на основном языке и просто обернуть все переводимые строки в __()
. Позже вы можете добавить .po
файлов для каждого перевода.
Проблема с этим подходом заключается в том, что если бы вы изменили текст на языке оригинала, вам также нужно будет изменить запись msgid
для этой строки в каждом файле .po
, который у вас может быть. Это может стать довольно громоздким, если вам нужно поддерживать много разных языков.
Пожалуйста, не обращайте внимания на старую информацию выше. Правильно настроенный рабочий процесс i18n будет использовать xgettext
или аналогичные утилиты для автоматического извлечения __()
обернутых строк из исходного кода и создания, обновления и объединения файлов .po. Ничего обременительного в этом нет.
Альтернатива - использовать текст «дескриптор» в исходных файлах и поместить фактический текст в файлы .po
, даже для основного языка. То есть:
__('PRODUCT CAPTION');
/eng/.po
msgid "PRODUCT CAPTION"
msgstr "Buy our awesome products!"
/ger/.po
msgid "PRODUCT CAPTION"
msgstr "Kaufen Sie unsere Produkte!"
То, что работает лучше, зависит от проекта и от вас, вам придется это выяснить ...