У меня есть пользовательский каталог, например /www/phpstuff
, который находится в моем include_path
. Внутри этого каталога phpstuff
находится папка i18n
. Он содержит серверный уровень .mo
файлов.Локальные области приложения с Gettext и Zend_Translate?
Zend_Translate
позволяет указать каталог в качестве второго параметра конструктора, я не могу сделать
Zend_Translate('gettext', 'i18n/', 'en');
Он пытается прочитать из каталога, в котором вызывается этот скрипт, есть какой-либо трюк, который я могу использовать, чтобы не указывать явно /www/phpstuff/i18n
? Причина, по которой эта структура, с которой я работаю, будет использоваться на многих разных платформах, и было бы проще указать каталог в include_path, чем абсолютный путь.
Единственное обходное решение, которое я могу придумать, это ручное чтение пути включения, разделение на разделитель, проверка того, называется ли какой-либо из каталогов «gettext», а затем захватить абсолютный путь для первого найденного каталога и установить его.
Да, но это все еще применимо к конкретным приложениям. Что делать, если я хотел использовать одни и те же файлы .mo для нескольких приложений, поэтому я могу обновить один файл mo, и он будет отражать их все? –
Поместите папку i18n куда-нибудь из приложения и определите путь к ней. Вопрос заключается не в том, где вы помещаете папку i18n, а в том, что вы определяете путь где-то конкретно для приложения. – Basher
Я получаю то, что вы говорите, но я не использую Zend для этого приложения - только используя Zend_Translate, и независимо от того, что я пытаюсь реализовать на нескольких серверах, я не могу просто поместить i18n в родительский родительский каталог всех моих приложений, поскольку иногда он непоследовательно структурирован ... Думаю, это оставляет меня без выбора, кроме как определить абсолютную константу пути и использовать ее. –