PHP web应用程序多语言结构的最佳实践


Best practice for multi-lingual structure of a PHP web app

我正在用PHP创建一个web应用程序,该应用程序将在许多不同的语言中可用(总共约10种),我想知道您认为在更一般的术语中设置它的最佳实践是什么。

我的想法是保持所有的语言在同一域下,与后缀,如"http://myservice.com/de",其中一个脚本执行位置检查网站进入和重定向用户。

编辑内容将在数据库中以单个帖子的形式在所有语言之间共享,每种语言都有特定的数据列。标记和脚本都将以英语记录,而用户可见的页面和部分将被翻译成从通用单词库文件中收集的各自的语言。

.htaccess文件提供处理文章的所有重写,以便以适当的语言显示它们。"http://myservice.com/de/artikel/12345/"到"http://myservice.com/article?id=12345〈de"

你认为一个干净高效的多语言设置是什么?

对于如何最好地建立一个国际友好型网站,每个人都有不同的看法。然而,我尽量不通过创建自己的系统来重新发明轮子。相反,我使用框架中内置的国际化和本地化工具,如CakePHP。

从CakePHP的书;

您的应用程序达到更多受众的最佳方法之一是迎合多种语言。这通常被证明是一项艰巨的任务,但是CakePHP中的国际化和本地化特性使它变得容易得多。

首先,理解一些术语是很重要的。国际化指的是应用程序本地化的能力。术语本地化指的是对应用程序进行调整以满足特定的语言(或文化)需求(即"本地化")。国际化和本地化通常分别缩写为i18n和l10n;18和10是第一个字符和最后一个字符之间的字符数。

http://book.cakephp.org/1.3/view/1228/Internationalization-Localization

对我来说,使用内置的工具提供了一种有效的方法来翻译应用程序,而无需重写URL。这也意味着用户可以配置他们的本地化首选项,并在每次登录时自动应用它们。

这样的方法也会被认为是更友好的搜索引擎,因为你不会得到相同内容的多语言副本。

我能想到的最好的建议是不要自己这么做

一个现有的开源CMS(内容管理系统)可能是一个很好的解决方案,而不是自己构建一个。命名两个领先的CMS系统:Drupal, Joomla。(有很多选项)

这些系统提供了许多功能,要么通过一些配置即可开箱即用,要么通过扩展插件(数千个插件)即可工作。

国际化只是其中之一。可能有一个比你自己做的更丰富、更健壮的功能集。

此外,这些系统还提供了一个广泛的API,可以用您自己的业务逻辑对它们进行扩展。

如果您使用ASP。. NET (MVC 2或3)我建议阅读这篇文章。我认为这是。net中的最佳实践之一