PHP: нужен ли gettext LC_MESSAGES?

Чтобы перевести мое приложение PHP, я использую скомпилированный в gettext модуль. Вот дерево каталогов переводов, сделанное в соответствии с документами:

locale/ cs_CZ/ LC_MESSAGES/ messages.po messages.mo de_DE/ LC_MESSAGES/ messages.po messages.mo fr_FR/ LC_MESSAGES/ messages.po messages.mo 

Вопрос : можно ли избавиться от каталога LC_MESSAGES? Смогут ли PHP найти переводы, если я использую эту структуру?

 locale/ cs_CZ/ messages.po messages.mo de_DE/ messages.po messages.mo fr_FR/ messages.po messages.mo 

Мой PHP, который переключает переводы:

 <?php setlocale(LC_ALL, 'fr_FR.UTF-8'); bindtextdomain("messages", "locale"); bind_textdomain_codeset("messages", 'UTF-8'); textdomain("messages"); ?> 

Заранее спасибо.

Единственное допустимое обходное решение – создание символической ссылки LC_MESSAGES -> . в каждом языковом подкаталоге. (Но это усложняет установку PHP-приложения. FTP редко может создавать символические ссылки.)

Боюсь, что LC_MESSAGES – это требование.

Исправьте меня, если я ошибаюсь, но я думаю, что это имеет какое-то отношение к кешу gettext.

Если вы действительно хотите это сделать, вы можете использовать этот пакет композитора: gettext / gettext

Таким образом, у вас может быть организация папок по вашему желанию или даже что-то вроде этого:

 locales/ cs_CZ.mo cs_CZ.po de_DE.mo de_DE.po fr_FR.mo fr_FR.po