什么是好的工具/框架i18n的php代码?
-
03-07-2019 - |
题
我已经看了几个选项能够使本地化和国际化的动态php应用程序。似乎有各种各样的工具,例如gettext和雅虎的R3和我有兴趣听一听从开发人员和笔译员对其工具是很好用,什么的功能是重要的缓解的任务的执行情况和翻译。
解决方案
PHP gettext实现非常顺利。使用po edit和gettext的po文件就像你可以处理本地化一样好,因为没有这种解决方案可以完全处理各种语言的复杂性。例如,gettext方法在复数形式上非常好,但我见过的任何东西都不能处理像共轭这样的东西。
有关详细信息,请参阅我的帖子:如何你建立了一个多语言的网站吗?
其他提示
我们一直在修补 Zend_Translate ,因为我们使用无论如何,Zend框架。它有很好的记录,迄今为止非常可靠。
过去,我几乎主要使用自己的自行开发的解决方案。其中涉及包含所有文本部分的常量或变量的语言文件,稍后将在视图/模板中进行回显。
至于gettext,过去我听说过关于PHP的gettext实现有错误的引用,但是我不能真正支持它,我现在也没有任何引用。
pecl中有许多有用的扩展: http://pecl.php.net/packages.php?catpid=28& catname =国际
特别是,您可能需要查看php-intl,它提供了来自International Components for Unicode(ICU)的大部分关键i18n函数
该数据库驱动的方案来显示的消息总是不好,我曾在一个网站有超过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.
?>
Xataface可用于非常轻松地将任意PHP / MySQL应用程序国际化。它支持静态文本和数据库数据的转换。您所要做的就是在应用程序的几个地方添加一行或两行代码,这样做很好。
http://xataface.com/documentation/tutorial/internationalization-with-dataface-0.6