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.

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top