有多种方法可以在PHP中设计多语言应用程序。有些基于语言文件,有些基于数据库。
我希望主要用于少量文本,例如错误提示 - 最多一个段落。
我想我需要大约20种语言。
我真的是在寻求建议而不是一个明确的答案。您之前使用过什么,哪个最快,最容易更新等等。
非常感谢。
有多种方法可以在PHP中设计多语言应用程序。有些基于语言文件,有些基于数据库。
我希望主要用于少量文本,例如错误提示 - 最多一个段落。
我想我需要大约20种语言。
我真的是在寻求建议而不是一个明确的答案。您之前使用过什么,哪个最快,最容易更新等等。
非常感谢。
Gettext
函数族是一个很好的起点:
gettext函数实现了一个NLS(本地化支持)API,可用于国际化您的PHP应用程序。
Zend_Translate
非常灵活,并且具有线程安全的gettext
实现。该手册说明它解决了以下原生国际化实现的问题:
值得注意的是,
- 不一致的API:没有单一的API适用于不同的源格式。例如,使用gettext非常复杂。
- PHP仅支持gettext和本机数组:PHP本身仅支持数组或gettext。所有其他源格式都必须手动编码,因为没有本地支持。
- 无法检测默认语言:用户的默认语言不能在没有更深入了解不同Web浏览器背景的情况下被检测出来。
- Gettext不是线程安全的:PHP的gettext库不是线程安全的,不应在多线程环境中使用。这是由于gettext本身存在问题,而不是PHP,但这是一个现有的问题。
Zend Framework
不是一个完整的全栈框架,换句话说,您不需要使用整个框架来利用其国际化API。