虽然这里已经提出了很多类似的问题,但我找不到我想要的答案..
开发多语言应用程序的最佳方式是什么,它应该非常快......我不知道我将翻译多少文本。
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.
虽然所有这些都能奏效,但你认为哪种方法最快,如果我错过任何方法,请告诉我。
答案 0 :(得分:1)
这是一个复杂的问题,并不像你想象的那么明显。在某些情况下,从右到左语言或特定文化原因,您可能需要为特定区域开发单独的布局。
无论选择哪种方法,您都需要缓存全部或部分页面,并在重新生成页面之前使用缓存版本(如果可用)。
我可能会避免使用3和4.您不希望从磁盘上读取比您更多的内容。如果可以在memcached中缓存转换数组,则可以在加载转换表时保存自己的磁盘访问权限。
答案 1 :(得分:1)
作为管理开发人员本地化项目的人,我不得不说双方(翻译人员和开发人员)对Gettext(.po文件)非常满意。在您的代码中实现相对简单(基本上是您希望本地化的任何文本的包装),它无缝快速,最重要的是:它可以完美地扩展和更新。
主要优势在于存在大量用于创建,更新,管理和翻译.po / .pot文件的工具,包括跨平台PoEdit。当您有数十种语言要做时,它就像提取最新的.pot文件并将其发送给翻译团队一样简单。他们将返回每种语言的单个文件。我还没有看到很多系统能够轻松扫描和定位新字符串,或者将它们呈现给翻译人员,以便简单使用。
答案 2 :(得分:0)
我建议您查看支持多种语言的PHP框架。调查最受欢迎的第一个,Zend,Symphony和Yii。我之前使用过Yii,它有多语言支持。