2009-11-16 61 views
5

在PHP中设计多语言应用程序有很多种方法。一些基于语言文件,其他基于数据库。PHP - 多语言应用程序设计

  • 我期待用它主要是 少量文本e.g错误 - 在 最多的一个段落。

  • 我想我会需要二十左右
    语言。

真的,我在寻找建议而不是明确的答案。你有什么之前使用,什么是最快的,最简单的更新等

非常感谢,

回答

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。

我真的很喜欢它,它支持multiple adapters for different data sources,您可以轻松地混合,匹配和更改,只需对应用程序进行非常轻微的修改即可。希望有所帮助。

0

我处理了这两种解决方案。 (数据库和平面文件)。但我会给你另一个视角。当您设计应用程序或软件时,您应该从一开始就考虑另一个重要问题。您会将您的语言项目保存在数据库和平面文件中。数据库(或表格)和文本文件的语言支持很重要。如果您尝试将拉丁文1数据库中的土耳其字符保留下来,则会遇到一些问题。土耳其就是一个例子。数据库必须支持您的语言项目的字符。