繁体   English   中英

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

[英]Localization via database or flat file?

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

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

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

从文件加载数据比从数据库加载的方式更快。 您只需在数据和应用程序之间划分多层抽象。 如果您对应用程序的性能进行概要分析,您将看到数据库访问通常是最慢的操作之一。

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

也就是说,就像有关表演的任何事情一样,不要相信我的话,但要自己弄清楚。 也许在您特定的环境中,通过您的特定应用程序,数据库可以正常运行。

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

  • 每次要更改转换时,都需要将数据插入/更新到数据库 - 这比使用平面文件更难。
  • 你需要很多选择,建立一个完全翻译的页面 - 这对于表演来说并不是很好(并且意味着你必须将一些缓存机制放在​​适当位置)


出于好奇,为什么不看看别的东西 - 目标是翻译?

在这里,我想Gettext的 ,它被广泛应用于-并有一个Gettext的扩展库(我要补充还有其他的课程-在Zend框架,例如)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM