localidades de todo o aplicativo com Gettext e Zend_Translate?
-
18-09-2019 - |
Pergunta
Eu tenho um diretório personalizado, por exemplo /www/phpstuff
que é na minha include_path
. Dentro desse diretório phpstuff
é um i18n
pasta. Ele contém arquivos .mo
nível do lado do servidor.
Zend_Translate
permite que você especifique um diretório no segundo parâmetro do construtor, eu realmente não pode fazer
Zend_Translate( 'gettext', 'i18n/', 'en' );
Ele tenta ler a partir do diretório em que este script é invocado, existe algum tipo de truque que eu posso usar para não ter de especificar /www/phpstuff/i18n
explicitamente? Motivo sendo este quadro eu estou trabalhando com será utilizado em várias plataformas diferentes, e seria mais fácil especificar um diretório em uma include_path do que um caminho absoluto.
A única solução que eu posso vir acima com é a leitura manualmente o caminho, dividindo pelo separador, verificando incluem, se qualquer um dos diretórios são denominados 'gettext' e, em seguida, pegar o caminho absoluto do primeiro diretório encontrado e configurá-lo.
Solução
Você precisará definir a algum lugar caminho do aplicativo. Se você não quiser definir um caminho absoluto, você precisa definir um caminho relativo. Tome esta estrutura dir por exemplo:
/application/
/application/i18n/
/public_html/
/public_html/index.php
O caminho da aplicação, neste caso, seria:
define('APPLICATION_PATH', '../application');
E você pode usá-lo como este:
Zend_Translate( 'gettext', APPLICATION_PATH . '/i18n', 'en' );
Espero que ajude.