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.

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top