locali a livello di applicazione con Gettext e Zend_Translate?
-
18-09-2019 - |
Domanda
Ho una directory personalizzata, ad esempio /www/phpstuff
che è a mio include_path
. All'interno di questa directory phpstuff
è un i18n
cartella. Esso contiene i file .mo
livello sul lato server.
Zend_Translate
consente di specificare una directory nel secondo parametro del costruttore, non posso davvero fare
Zend_Translate( 'gettext', 'i18n/', 'en' );
Si cerca di leggere dalla directory in cui si invoca questo script, c'è qualche tipo di trucco che posso usare per non dover specificare esplicitamente /www/phpstuff/i18n
? Ragione di essere di questo quadro con cui sto lavorando saranno utilizzati in molte piattaforme differenti, e sarebbe più facile specificare una directory in un include_path di un percorso assoluto.
L'unica soluzione che posso venire con è la lettura manualmente il percorso, la scissione dal separatore includono, controllando se una qualsiasi delle directory sono chiamati 'gettext' e poi prendete il percorso assoluto della prima directory trovata e impostarlo.
Soluzione
È necessario definire il percorso dell'applicazione da qualche parte. Se non si desidera impostare un percorso assoluto, è necessario impostare un percorso relativo. Prendete questa struttura dir ad esempio:
/application/
/application/i18n/
/public_html/
/public_html/index.php
Il percorso di applicazione in questo caso potrebbe essere:
define('APPLICATION_PATH', '../application');
E si può usare in questo modo:
Zend_Translate( 'gettext', APPLICATION_PATH . '/i18n', 'en' );
La speranza che aiuta.