4

对于多语言 PHP 应用程序,假设标签/短语将被翻译成多种语言。这些标签可以放置在特定语言的文件中(例如,每种语言一个文件),也可以加载到数据库中,以便应用程序可以在需要时访问它们。

问题是,从性能的角度来看,更好的方法是什么?

在我看来,如果标签在数据库中,则加载的数据更少(我只能请求单个页面所需的标签),并且可以更轻松地构建用于翻译的管理工具。但是,似乎许多应用程序和框架都为此目的使用平面文件(例如 phpMyAdmin、CakePHP 等)。

4

2 回答 2

5

从文件加载数据比数据库加载要快得多。您只需在数据和应用程序之间削减许多抽象层。如果您分析应用程序的性能,您会发现数据库访问通常是最慢的操作之一。

如果您不想每次显示某些内容时都加载所有本地化字符串,您总是可以选择将它们放在不同的文件中。例如,随处显示的字符串的“全局”文件,以及特定于您所在页面/部分的本地化文件。

也就是说,与任何有关性能的事情一样,不要相信我的话,但要自己衡量。也许在您特定的上下文中,使用您的特定应用程序,数据库就可以了。

于 2011-04-09T21:01:44.290 回答
2

数据库允许您仅选择您感兴趣的记录...
但是:

  • 每次要更改翻译时,都需要将数据插入/更新到数据库中——这比使用平面文件更难。
  • 你需要很多选择来构建一个完全翻译的页面——这对性能不太好(这意味着你必须设置一些缓存机制)


出于好奇,为什么不看看其他东西——目标是翻译的东西?

在这里,我正在考虑Gettext,它被广泛使用——并且有一个用于 PHP的Gettext扩展(我应该添加其他可用的类——例如在 Zend 框架中)

于 2011-04-09T20:52:56.740 回答