我正在使用PHP + CodeIgniter构建一个多语言应用程序。我已经决定使用gettext进行用户界面文本翻译,到目前为止,它被证明是高效且易于使用的。
但现在我遇到了一个非常烦人的问题:gettext()函数只接受一个参数,而我想要像Zend Framework的gettext适配器一样获得类似printf的行为,其中我可以使用%1$s、%2$s等作为占位符,然后将替换字符串指定为Zend视图的translate()函数的附加参数。
由于.po文件和poEdit的简单翻译管理(毕竟我可以通过单击更新它),我不希望放弃gettext。有什么选择吗?
我已经尝试编写一个助手与gettext交互:将第一个参数传递给gettext,然后对结果字符串运行strtr。您会推荐其他/更好的方法吗?
但现在我遇到了一个非常烦人的问题:gettext()函数只接受一个参数,而我想要像Zend Framework的gettext适配器一样获得类似printf的行为,其中我可以使用%1$s、%2$s等作为占位符,然后将替换字符串指定为Zend视图的translate()函数的附加参数。
由于.po文件和poEdit的简单翻译管理(毕竟我可以通过单击更新它),我不希望放弃gettext。有什么选择吗?
我已经尝试编写一个助手与gettext交互:将第一个参数传递给gettext,然后对结果字符串运行strtr。您会推荐其他/更好的方法吗?
.mo
是在编译.po
后生成的文件。Gettext 读取.mo
,但是.po
是人类可读的,这是你需要编辑的 :). 是的,考虑使用 Zend_Translate 绝对是一个不错的选择。 - mingos