4

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

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

Method 1: create and keep all the text in an array for every language i want to support and include that file everywhere.

Method 2: Use gettext (.MO, .PO files)

Method 3: Store all the translations in a text file and write a function to go through all the text and when matched display its value

Method 4: Store all the text and its translations in database, But i don't think it will be faster than storage in Filesystem.

Method 5: Same as method 1 but i will create multiple files per language just to keep everything structured.

虽然所有这些都会起作用,但你们认为哪种方法最快,如果我错过了任何方法,请告诉我。

4

3 回答 3

1

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

无论您选择哪种方法,您都需要缓存全部或部分页面,并在重新生成页面之前使用缓存版本(如果可用)。

我可能会避免使用 3 和 4。您不想从磁盘读取的内容超出您的需要。如果您可以在 memcached 中缓存翻译数组,您可以在加载翻译表时节省磁盘访问。

于 2013-01-15T17:51:35.967 回答
1

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

主要优点是存在许多用于创建、更新、管理和翻译 .po/.pot 文件的工具,包括跨平台PoEdit。当您需要处理数十种语言时,只需提取最新的 .pot 文件并将其发送给翻译团队即可。他们将为每种语言返回单独的文件。我还没有看到很多系统能够如此轻松地扫描和定位新字符串或将它们呈现给翻译人员以供简单使用。

于 2013-01-18T23:33:06.073 回答
0

我建议查看支持多种语言的 PHP 框架。调查最流行的第一,Zend、Symphony 和 Yii。我以前用过 Yii,它支持多语言。

http://www.yiiframework.com/extension/yii-multilanguage/

于 2013-01-15T18:02:40.767 回答