Frage

Ich habe ein eigenes Verzeichnis, zB /www/phpstuff die in meinem include_path ist. Innerhalb dieses phpstuff Verzeichnis ist ein Ordner i18n. Es enthält serverseitige Ebene .mo Dateien.

Zend_Translate können Sie ein Verzeichnis, in dem zweiten Parameter des Konstruktors angeben, kann ich nicht wirklich tun

Zend_Translate( 'gettext', 'i18n/', 'en' );

Es wird versucht, aus dem Verzeichnis zu lesen, in dem dieses Skript aufgerufen wird, gibt es eine Art von Trick kann ich nicht explizit angeben /www/phpstuff/i18n verwenden zu müssen? Grund dafür ist dieser Rahmen ich bin arbeiten, wird in vielen verschiedenen Plattformen verwendet werden, und es wäre einfacher, ein Verzeichnis in einem include_path als ein absoluter Pfad angeben.

Die einzige Abhilfe, die ich mit oben kommen kann manuell liest den Pfad enthalten, Splitting durch den Separator überprüft, wenn eine der Verzeichnisse namens ‚gettext‘ und dann den absoluten Pfad des ersten Verzeichnisses greifen gefunden und legen Sie es.

War es hilfreich?

Lösung

Sie müssen den Anwendungspfad irgendwo definieren. Wenn Sie nicht über einen absoluten Pfad festlegen möchten, müssen Sie einen relativen Pfad setzen. Nehmen Sie diese Richt Struktur zum Beispiel:

/application/
/application/i18n/
/public_html/
/public_html/index.php

Der Anwendungspfad in diesem Fall sei:

define('APPLICATION_PATH', '../application');

Und Sie können es wie folgt verwendet werden:

Zend_Translate( 'gettext', APPLICATION_PATH . '/i18n', 'en' );

Ich hoffe, das hilft.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top