什么是PHP代码库的i18n的好工具/框架?

时间:2008-10-01 00:25:16

标签: php internationalization

我一直在寻找一些选项来实现动态php应用程序的本地化和国际化。似乎有各种各样的工具可用,例如gettext和Yahoo的R3,我有兴趣听取开发人员和翻译人员关于哪些工具易于使用以及哪些功能对于简化实施和翻译任务的重要性。

5 个答案:

答案 0 :(得分:3)

PHP gettext实现非常顺利。使用po edit和gettext的po文件就像你可以处理本地化一样好,因为没有这种解决方案可以完全处理各种语言的复杂性。例如,gettext方法在复数形式上非常好,但我见过的任何东西都不能处理像共轭这样的东西。

有关详细信息,请参阅我的帖子:How do you build a multi-language web site?

答案 1 :(得分:2)

我们一直在修补Zend_Translate,因为无论如何我们都使用Zend Framework。它有很好的记录,迄今为止非常可靠。

过去,我几乎主要使用自己的自行开发的解决方案。其中涉及包含所有文本部分的常量或变量的语言文件,稍后将在视图/模板中进行回显。

至于gettext,过去我听说过关于PHP的gettext实现有错误的引用,但是我不能真正支持它,我现在也没有任何引用。

答案 2 :(得分:1)

pecl中有许多有用的扩展: http://pecl.php.net/packages.php?catpid=28&catname=Internationalization

特别是,您可能需要查看php-intl,它提供了来自International Components for Unicode(ICU)的大部分关键i18n函数

答案 3 :(得分:1)

数据库驱动的解决方案显示消息并不总是好的,我在一个超过15种语言的网站上工作,翻译是一个问题。

所以我们的设计是:

  • php-mysql中的翻译应用程序(翻译访问等)
  • 然后翻译用php arrrays编写
  • 这些数组也会缓存在APC中以加快网站的速度。

所以要本地化不同的语言,你只需要做一个包含

喜欢

<?php
include('lang/en.php');
include('lang/en_us.php'); // this file overrides few keys from the last one.
?>

答案 4 :(得分:0)

Xataface可用于非常轻松地将任意PHP / MySQL应用程序国际化。它支持静态文本和数据库数据的转换。您所要做的就是在应用程序的几个地方添加一行或两行代码,这样做很好。

http://xataface.com/documentation/tutorial/internationalization-with-dataface-0.6

相关问题