lieux d'application à l'échelle avec Gettext et Zend_Translate?
-
18-09-2019 - |
Question
J'ai un répertoire personnalisé, par exemple /www/phpstuff
qui est dans mon include_path
. A l'intérieur de ce répertoire est un phpstuff
i18n
de dossier. Il contient niveau côté serveur fichiers .mo
.
Zend_Translate
vous permet de spécifier un répertoire dans le second paramètre du constructeur, je ne peux pas vraiment faire
Zend_Translate( 'gettext', 'i18n/', 'en' );
Il essaie de lire à partir du répertoire dans lequel ce script est appelé, est-il sorte de truc que je peux utiliser pour avoir de ne pas préciser explicitement /www/phpstuff/i18n
? Raison d'être ce cadre, je travaille avec sera utilisé sur plusieurs plateformes différentes, et il serait plus facile spécifier un répertoire dans un include_path qu'un chemin absolu.
La seule solution que je peux venir avec lit manuellement le chemin d'inclusion, division par le séparateur, vérifier si l'un des répertoires sont nommés « gettext », puis saisir le chemin absolu du premier répertoire trouvé et mettez-le.
La solution
Vous devrez définir le chemin d'application quelque part. Si vous ne souhaitez pas définir un chemin absolu, vous devrez définir un chemin relatif. Prenez cette structure dir par exemple:
/application/
/application/i18n/
/public_html/
/public_html/index.php
Le chemin d'application dans ce cas serait:
define('APPLICATION_PATH', '../application');
Et vous pouvez l'utiliser comme ceci:
Zend_Translate( 'gettext', APPLICATION_PATH . '/i18n', 'en' );
L'espoir qui aide.