3

我一直在寻找一些启用动态 php 应用程序本地化和国际化的选项。似乎有各种可用的工具,例如 gettext 和 Yahoo 的 R3,我很想听听开发人员和翻译人员的意见,哪些工具好用,哪些功能对简化实施和翻译任务很重要。

4

5 回答 5

3

PHP gettext 实现工作非常顺利。使用 po edit 和 gettext 的 po 文件是处理本地化的最佳方式,请记住,没有任何一种解决方案可以完全处理各种语言的复杂性。例如,gettext 方法在复数形式上非常好,但我所见过的任何东西都不能处理诸如共轭之类的事情。

有关更多信息,请参阅我的帖子:如何构建多语言网站?

于 2008-10-01T12:54:10.450 回答
2

我们一直在修改Zend_Translate,因为无论如何我们都使用 Zend 框架。它有很好的记录,到目前为止非常可靠。

过去,我几乎大部分时间都使用自己的本土解决方案。这涉及带有常量或变量的语言文件,这些常量或变量包含所有文本部分,并且稍后会在视图/模板中回显。

至于 gettext,过去我听说过有关 PHP 的 gettext 实现有缺陷的参考资料,但我无法真正支持这一点,我现在也没有任何参考资料。

于 2008-10-01T00:59:27.080 回答
1

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

特别是,您可能想查看 php-intl,它提供了 International Components for Unicode (ICU) 中的大部分关键 i18n 功能

于 2008-10-31T00:11:50.313 回答
1

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

所以我们的设计是:

  • php-mysql中的翻译应用(翻译访问等)
  • 然后翻译是用 php 数组编写的
  • 这些阵列也缓存在 APC 中以加快站点速度。

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

<?php
include('lang/en.php');
include('lang/en_us.php'); // this file overrides few keys from the last one.
?>
于 2009-01-09T02:56:59.193 回答
0

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

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

于 2009-01-09T02:32:25.747 回答