有许多方法可以在PHP中设计多语言应用程序。一些基于语言文件,另一些基于数据库。
我希望主要用它 少量文本,例如错误 - 在 大多数段落。
我想我需要二十左右 语言
我真的在寻找建议而不是明确的答案。你以前用过什么,最快,最容易更新等等。
非常感谢,
答案 0 :(得分:8)
Gettext
系列函数是一个很好的起点:
gettext函数实现了NLS (Native Language Support)API 可以用来国际化你的 PHP应用程序。
Zend_Translate
非常灵活,并且具有gettext
的线程安全实现。该手册指出它解决了本机国际化实现的以下问题:
- API不一致:不同的源没有单一的API 格式。 gettext的用法 例子很复杂。
- PHP仅支持gettext和native数组:PHP本身提供 仅支持array或gettext。 所有其他源格式必须是 手动编码,因为没有 原生支持。
- 未检测到默认语言:默认语言 没有用户就无法检测到 更深入的背景知识 适用于不同的网络浏览器。
- Gettext不是线程安全的:PHP的gettext库不是线程安全的,不应该在多线程环境中使用它。这是由于gettext本身的问题,而不是PHP,但它是一个存在的问题。
值得注意的是Zend Framework
不是全栈框架 - 换句话说,你不需要使用整个东西只是为了利用它的国际化API 。
我真正喜欢的是它对multiple adapters for different data sources的支持,您可以轻松地混合,匹配和更改,只需对应用程序进行非常轻微的修改即可。希望有所帮助。
答案 1 :(得分:0)
我处理了两种解决方案。 (数据库和平面文件。)但我会给你另一个视角。当您设计应用程序或软件时,您应该从一开始就考虑另一个重点。您将语言项目保存在数据库和平面文件中。数据库(或表)和文本文件的语言支持很重要。如果您尝试将土耳其字符保留在拉丁语1数据库中,您将面临一些问题。土耳其就是一个例子。数据库必须支持您的语言项的字符。