PHP - 多语言应用程序设计

5

有多种方法可以在PHP中设计多语言应用程序。有些基于语言文件,有些基于数据库。

  • 我希望主要用于少量文本,例如错误提示 - 最多一个段落。

  • 我想我需要大约20种语言。

我真的是在寻求建议而不是一个明确的答案。您之前使用过什么,哪个最快,最容易更新等等。

非常感谢。

2个回答

8
Gettext函数族是一个很好的起点:

gettext函数实现了一个NLS(本地化支持)API,可用于国际化您的PHP应用程序。

Zend_Translate非常灵活,并且具有线程安全的gettext实现。该手册说明它解决了以下原生国际化实现的问题:
  • 不一致的API:没有单一的API适用于不同的源格式。例如,使用gettext非常复杂。
  • PHP仅支持gettext和本机数组:PHP本身仅支持数组或gettext。所有其他源格式都必须手动编码,因为没有本地支持。
  • 无法检测默认语言:用户的默认语言不能在没有更深入了解不同Web浏览器背景的情况下被检测出来。
  • Gettext不是线程安全的:PHP的gettext库不是线程安全的,不应在多线程环境中使用。这是由于gettext本身存在问题,而不是PHP,但这是一个现有的问题。
值得注意的是,Zend Framework不是一个完整的全栈框架,换句话说,您不需要使用整个框架来利用其国际化API。
我真正喜欢它的地方在于它对不同数据源的多个适配器的支持,您可以轻松地混合、匹配和仅需要对应用程序进行非常轻微的修改。希望这有所帮助。

0
我处理过两种解决方案(数据库和平面文件)。但是我会给你另一个视角。当你设计应用程序或软件时,还有另一个重要的点需要从一开始就考虑。你将在数据库和平面文件中保存语言项。数据库(或表)和文本文件的语言支持很重要。如果你尝试在Latin 1数据库中保留土耳其字符,你将面临一些问题。土耳其语就是一个例子。数据库必须支持你的语言项字符。

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