使用Gettext和Zend_Translate的应用程序范围的语言环境?

时间:2009-12-09 18:29:53

标签: php zend-framework gettext zend-translate

我有一个自定义目录,例如我/www/phpstuff中的include_path。此phpstuff目录内有一个文件夹i18n。它包含服务器端级.mo文件。

Zend_Translate允许你在构造函数的第二个参数中指定一个目录,我真的不能这样做

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

它尝试从调用此脚本的目录中读取,是否有任何一种技巧可以用来不必明确指定/www/phpstuff/i18n?我正在使用的这个框架的原因将在许多不同的平台上使用,并且在include_path中指定目录比在绝对路径中指定目录更容易。

我能想到的唯一解决方法是手动读取包含路径,按分隔符拆分,检查是否有任何目录命名为“gettext”,然后获取找到的第一个目录的绝对路径并设置它。 / p>

1 个答案:

答案 0 :(得分:1)

您需要在某处定义应用程序路径。如果您不想设置绝对路径,则需要设置相对路径。以这个目录结构为例:

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

这种情况下的应用程序路径是:

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

你可以像这样使用它:

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

希望有所帮助。