【发布时间】:2009-09-12 19:05:47
【问题描述】:
当您调用 gettext php 函数将文本翻译成另一种语言时,它会使用页面上的文本作为 KEY/ID 来查找要替换的值
echo gettext('hello how are you today');
这将是用于查找翻译的文本,但是我想使用类似这样的内容
echo gettext('welcome_message');
并将其翻译成英语和我提供的任何其他语言。那么我怎么能做到这一点呢?如何让 gettext 函数始终使用语言文件?因此,如果我的网站默认语言是英语,那么 gettext 不会向英语用户显示 welcome_message,而是会显示 hello you how are you today
除了其他语言文件之外,它只是创建一个英语语言文件那么简单吗?
【问题讨论】:
-
_('text')和gettext('text')一样,不需要lang()函数。
-
我意识到,我这样做是出于其他原因,比如有时当 gettext 扩展无法用于测试时,我可以使用数组或常量,无论如何,它使我的应用程序更加灵活。不过,这不是我的问题
-
也经常使用两个或三个下划线作为翻译功能。这提供了更大的灵活性,例如:如果没有内置的 gettext 扩展,只需回显这些内容,或者如果设置了标志 X,则从 DB 中读取翻译等。然后您只需使用 xgettext --keyword=__。 Zend_Translate 也可以在没有实际 PHP 扩展的情况下读取 gettext 字符串,并且具有 ->isTranslated() ->hasLanguage('finnish') 等内容。
-
你不应该。 Gettext 被设计成这样是有原因的:提供一个默认值。当然,如果有的话,它甚至会使用英文翻译,但它会使用你无用的占位符来表示任何其他没有翻译的语言。不,你并不比 gettext 开发者聪明!以应有的方式使用它。