PHP - 多语言应用程序设计

时间:2009-11-16 16:36:01

标签: php multilingual

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

  • 我希望主要用它 少量文本,例如错误 - 在 大多数段落。

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

我真的在寻找建议而不是明确的答案。你以前用过什么,最快,最容易更新等等。

非常感谢,

2 个答案:

答案 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数据库中,您将面临一些问题。土耳其就是一个例子。数据库必须支持您的语言项的字符。