我正在用PHP创建一个web应用程序,它将有许多不同的语言(总共大约10种)可用,我想知道你认为更一般的设置的最佳实践是什么。
我的想法是将所有语言都放在相同的域中,并使用后缀"http://myservice.com/de"“,其中脚本在进入站点时执行位置检查并重定向用户。
编辑内容将作为数据库中的单个帖子在所有语言之间共享,每种语言都有一个特定的数据列。标记和脚本都将以英语记录,而用户可见的页面和部分将被翻译成从公共字库文件中收集的各自语言。
.htaccess文件提供了对文章的所有重写的处理,以便以相应的语言显示它们,即从"http://myservice.com/de/artikel/12345/“到"http://myservice.com/article?id=12345&lang=de"”。
你认为什么是干净和有效的多语言设置?
发布于 2012-01-08 12:23:39
对于如何最好地建立一个国际友好网站,每个人都有不同的看法。但是,我尽量不通过创建自己的系统来重新发明轮子。相反,我使用CakePHP等框架中内置的国际化和本地化工具。
出自CakePHP的书;
要让您的应用程序接触到更多的受众,最好的方法之一是迎合多种语言。这通常被证明是一项艰巨的任务,但CakePHP中的国际化和本地化特性使其变得容易得多。
首先,理解一些术语是很重要的。国际化是指应用程序的本地化能力。术语本地化是指对应用程序进行调整,以满足特定的语言(或文化)要求(即“区域设置”)。国际化和本地化通常分别缩写为i18n和l10n;18和10是第一个字符和最后一个字符之间的字符数。
http://book.cakephp.org/1.3/view/1228/Internationalization-Localization
对我来说,使用内置工具提供了一种高效的方法来翻译应用程序,而无需重写URL。这也意味着用户可以配置他们的本地化首选项,并在每次登录时自动应用它们。
这样的方法也会被认为是对搜索引擎更友好的,因为你不会得到相同内容的多语言副本。
希望这能帮上忙。
发布于 2012-01-09 22:26:12
我能想到的最好的建议是不要自己做这件事
一个现有的开源CMS (内容管理系统)可能是一个很好的解决方案,而不是自己构建一个。命名两个领先的CMS系统: Drupal,Joomla。(还有更多选项)
这些系统提供了许多功能,可以通过一些配置开箱即用,也可以通过扩展插件(数千个插件)来工作。
国际化只是其中之一。可能拥有比你自己更丰富、更健壮的特性集。
此外,这些系统还提供了一个扩展的API,用于使用您自己的业务逻辑对其进行扩展。
发布于 2012-01-08 12:15:28
如果您使用ASP.NET (MVC2或3),我建议您阅读this文章。我认为这是.NET中的最佳实践之一
https://stackoverflow.com/questions/8711133
复制