通过数据库或平面文件本地化?

pmm*_*pmm 4 php database localization internationalization application-design

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

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

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

Lau*_*Roy 5

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

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

也就是说,与任何有关性能的事情一样,不要相信我的话,而是自己衡量一下。也许在您的特定上下文中,对于您的特定应用程序,数据库会做得很好。