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

发布于 2024-08-14 06:59:24 字数 504 浏览 11 评论 0原文

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

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

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

它尝试从调用该脚本的目录中读取,有什么我可以使用的技巧吗不必显式指定 /www/phpstuff/i18n ?原因是我正在使用的这个框架将在许多不同的平台上使用,并且在 include_path 中指定目录比绝对路径更容易。

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

I have a custom directory, eg /www/phpstuff which is in my include_path. Inside of this phpstuff directory is a folder i18n. It contains server-side level .mo files.

Zend_Translate lets you specify a directory in the second parameter of the constructor, I can't really do

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

It tries to read from the directory in which this script is invoked, is there any sort of trick I can use to not have to specify /www/phpstuff/i18n explicitly? Reason being this framework I'm working with will be used across many different platforms, and it would be easier specifying a directory in an include_path than an absolute path.

The only workaround I can come up with is manually reading the include path, splitting by the separator, checking if any of the directories are named 'gettext' and then grab the absolute path of the first directory found and set it.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

匿名的好友 2024-08-21 06:59:24

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

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

在这种情况下,应用程序路径将是:

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

您可以像这样使用它:

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

希望有所帮助。

You'll need to define the application path somewhere. If you don't want to set an absolute path, you'll need to set a relative path. Take this dir structure for example:

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

The application path in this case would be:

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

And you can use it like this:

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

Hope that helps.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文