PHP中最佳的国际化(i18n)方式是什么?

7

我正在开发一个多语言的网站。有很多解决方案,比如数据库、.mo文件、静态php文件等等。但什么是最好的方式呢?请给予建议。谢谢。


CodeIgniter 真的捆绑了所有这些 i18n 解决方案吗? - Álvaro González
它使用包含$lang[]数组的静态php文件。应该有更好的解决方案。 - kodmanyagha
2个回答

4
我会选择gettext。因为它是实际标准,在不同的语言应用中被广泛使用。许多人使用它,意味着更大的社区和良好的支持。
如果您在stackoverflow上搜索gettext,您将获得良好的资源和示例。
在PHP中开始使用它: http://www.onlamp.com/pub/a/php/2002/06/13/php.html

我认为这是很好的解决方案。那么,对于多语言动态内容,我必须使用数据库吗?还是使用gettext? - kodmanyagha
我建议您只使用标准的 .mo.po 文件,以使事情变得简单明了。这样可以更方便与第三方翻译服务(非技术人员)合作。只需将文本文件发送给他们,让他们更新并将翻译文件返回给您即可。如果您使用数据库,则需要再次导出、提取和导入等步骤,我认为这太费力了。除非您的翻译人员能够访问数据库并了解 SQL。但是,仍然使用 .mo.po 文件会更简单。 - Ardy Dedase

0

正如Ardy所说,Gettext是一个很好的解决方案,并且有与php本地集成,你可以和intl一起使用来进行国际化。

另一个选择是Zend Framework 2模块I18n,但需要依赖其他ZF2模块。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接