i18n 与 gettext 但没有语言环境的麻烦?
我正在寻找一种符合标准的方法来存储 Web 应用程序的多语言内容。到目前为止,我已经使用了自己的“translate()”函数来从文件或数据库中的字典表中读取数据。但是,如果您使用 Web 应用程序的不同副本,则使数据库表中的字典保持最新非常麻烦。
我喜欢 gettext,因为有很多可用的工具。但是,我为不同的平台开发应用程序。我绝对不愿意处理 setlocale() 和 consorts 的蹩脚方式 - 即您需要提供的数十种不同的语言环境字符串变体,这些变体因系统而异,以使其正常工作。从来没有。我有一组语言 - 比如 de、en 和 es - 我想加载适当的字典并使用 _() 而不接触 setlocale() 或 bindtexdomain() 一次。
使用 gettext 是否可以实现这一点?或者有人知道另一个简单、小、快速(!)的 PHP i18n 解决方案,可以使用 .po/.mo 文件,最好不需要 PHP 扩展?
I am looking for a standards-compliant way to store multi-language content for a Web Application. Until now, I have employed my own "translate()" functions that read data from a file or a dictionary table in a database. However, keeping the dictionaries up to date in a database table is very cumbersome if you work with different copies of the web app.
I like gettext because there is a multitude of tools available for it. However, I develop applications for different platforms. I am absolutely unwilling to deal with the crappy ways of setlocale() and consorts - namely the dozens of different locale string variations differing from system to system that you need to provide for to get it working. Never ever. I have a set of languages - say de, en, and es - and I want to load the appropriate dictionary and work with _() without touching setlocale() or bindtexdomain() once.
Is this somehow possible using gettext? Or does somebody know another simple, small, fast (!) i18n solution for PHP that can work with .po/.mo files, preferably without requiring a PHP extension?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
即使在非标准区域设置中,此方法也应该有效:
享受吧!
This method should work even with non-standard locales:
Enjoy!
Zend_Translate 使用它
http:// Framework.zend.com/manual/en/zend.translate.adapter.html#zend.translate.adapter.gettext
Zend_Translate works with it
http://framework.zend.com/manual/en/zend.translate.adapter.html#zend.translate.adapter.gettext