什么是最好的&;在PHP应用程序中支持多语言的最快方法

什么是最好的&;在PHP应用程序中支持多语言的最快方法,php,localization,internationalization,multilingual,gettext,Php,Localization,Internationalization,Multilingual,Gettext,虽然这里已经有很多类似的问题,但我没有找到我想要的答案 开发多语言应用程序的最佳方法是什么,它应该非常快。。我不知道我会翻译多少文本 方法1:为我想要支持的每种语言创建并保存数组中的所有文本,并将该文件包含在所有地方。 方法2:使用gettext(.MO、.PO文件) 方法3:将所有翻译存储在一个文本文件中,并编写一个函数遍历所有文本,匹配后显示其值 方法4:将所有文本及其翻译存储在数据库中,但我认为它不会比存储在文件系统中更快。 方法5:与方法1相同,但我将为每种语言创建多个文件,以保持所有内

虽然这里已经有很多类似的问题,但我没有找到我想要的答案

开发多语言应用程序的最佳方法是什么,它应该非常快。。我不知道我会翻译多少文本

方法1:为我想要支持的每种语言创建并保存数组中的所有文本,并将该文件包含在所有地方。

方法2:使用gettext(.MO、.PO文件)

方法3:将所有翻译存储在一个文本文件中,并编写一个函数遍历所有文本,匹配后显示其值

方法4:将所有文本及其翻译存储在数据库中,但我认为它不会比存储在文件系统中更快。

方法5:与方法1相同,但我将为每种语言创建多个文件,以保持所有内容的结构化。


虽然所有这些都会奏效,但你们认为哪种方法最快,如果我错过了任何方法,一定要告诉我。

这是一个复杂的问题,并不总是像你们想象的那样明显。在某些情况下,由于从右向左的语言或特定的文化原因,您可能需要为特定区域开发单独的布局

无论选择哪种方法,您都希望缓存所有或部分页面,并在再次重新生成页面之前使用缓存版本(如果可用)


我可能会避免3和4。您不希望从磁盘读取的数据超过必须的数量。如果可以在memcached中缓存翻译数组,则可以在加载翻译表时节省磁盘访问。

我建议您查看支持多种语言的PHP框架。调查最受欢迎的第一个,Zend,Symphony和Yii。我以前使用过Yii,它支持多种语言


作为一名为开发人员管理本地化项目的人员,我不得不说,双方(翻译人员和开发人员)都对Gettext(.po文件)非常满意。在您的代码中实现它相对简单(基本上是一个围绕您想要本地化的任何文本的包装器),它无缝快速,而且最重要的是:它可以完美地扩展和更新


主要的优点是有很多工具用于创建、更新、管理和翻译.po/.pot文件,包括跨平台的工具。当您有几十种语言要做时,提取最新的.pot文件并将其发送给翻译团队就很容易了。它们将返回每种语言的单独文件。我还没有见过很多系统可以像现在这样轻松地扫描和定位新字符串,或者简单地将它们呈现给翻译人员使用。

你是说内容将是多语言的(在CMS中可能是帖子、文章等),还是说GUI按钮,屏幕上的命令等,还是两者都有?理论上,整个内容将使用用户选择的语言,只有输入字段和数据可能使用用户选择的当前语言以外的语言。例如:网站将使用中文,但用户将使用英文输入数据,反之亦然,或者所有内容都将使用相同的语言。。。。