php - 在 PHP 应用程序中支持多语言的最佳和最快方法是什么

标签 php localization internationalization multilingual gettext

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

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

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

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

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

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

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

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

最佳答案

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

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

我可能会避免 3 和 4。您不希望从磁盘读取的次数超出您的需要。如果您可以在 memcached 中缓存翻译数组,则可以在加载翻译表时节省磁盘访问权限。

关于php - 在 PHP 应用程序中支持多语言的最佳和最快方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14343577/

相关文章:

php - 如何在 CodeIgniter 的 url 中隐藏 Controller 名称?

php - 在 PHP 中格式化 DateTime 列

java - 语言环境序列

javascript - 本地化谷歌地图平移提示

iphone - 如何在 iPhone 上将中文文本音译为拼音?

javascript - 我正在尝试使显示的表格(使用数据表)以 csv 格式下载

Php preg_match_all 只匹配最后一个元素

localization - 如何在单语言环境应用程序上本地化 showDatePicker?

python - Django:如何检测翻译是否被激活?

java - 我的 Freemarker ObjectWrapper 如何访问模板设置