lugares en toda la aplicación con Gettext y Zend_Translate?
-
18-09-2019 - |
Pregunta
Tengo un directorio personalizado, por ejemplo /www/phpstuff
que está en mi include_path
. Dentro de este directorio es un phpstuff
i18n
carpeta. Contiene archivos .mo
nivel de servidor.
Zend_Translate
le permite especificar un directorio en el segundo parámetro del constructor, no puedo hacer
Zend_Translate( 'gettext', 'i18n/', 'en' );
Se trata de leer desde el directorio en el que se invoca este script, ¿hay algún tipo de truco que puedo usar para no tener que especificar explícitamente /www/phpstuff/i18n
? Esto es porque este marco que estoy trabajando será utilizado en muchas plataformas diferentes, y que sería más fácil que especifica un directorio en un include_path de una ruta absoluta.
La única solución que se me ocurre con esta leyendo manualmente la ruta, la división por el separador incluyen, comprobando 'gettext' si alguno de los directorios se nombran y luego tomar la ruta absoluta del primer directorio encontrado y configurarlo.
Solución
Usted tendrá que definir la ruta de la aplicación en alguna parte. Si no desea establecer una ruta absoluta, que necesita para establecer una ruta relativa. Tome esta estructura de directorio, por ejemplo:
/application/
/application/i18n/
/public_html/
/public_html/index.php
La ruta de la aplicación, en este caso sería:
define('APPLICATION_PATH', '../application');
Y se puede utilizar de esta manera:
Zend_Translate( 'gettext', APPLICATION_PATH . '/i18n', 'en' );
Espero que ayude.