對於多語言的PHP應用程序,假設標籤/短語將被翻譯成多種語言。這些標籤可以放置在語言特定的文件中(例如,每種語言一個文件),或者可以加載到數據庫中,以便應用程序在需要時可以訪問它們。通過數據庫或平面文件進行本地化?
的問題是,從性能的角度來看,什麼是更好的方法?
在我看來,如果標籤在數據庫中是較少的數據加載(我只能要求所需要的單頁標籤),並可以更輕鬆地構建管理工具的翻譯。然而,似乎許多應用程序和框架,在那裏使用純文本文件用於這一目的(如phpMyAdmin的,CakePHP的,等等)
對於多語言的PHP應用程序,假設標籤/短語將被翻譯成多種語言。這些標籤可以放置在語言特定的文件中(例如,每種語言一個文件),或者可以加載到數據庫中,以便應用程序在需要時可以訪問它們。通過數據庫或平面文件進行本地化?
的問題是,從性能的角度來看,什麼是更好的方法?
在我看來,如果標籤在數據庫中是較少的數據加載(我只能要求所需要的單頁標籤),並可以更輕鬆地構建管理工具的翻譯。然而,似乎許多應用程序和框架,在那裏使用純文本文件用於這一目的(如phpMyAdmin的,CakePHP的,等等)
加載數據方式比從數據庫加載速度更快。你只需要在你的數據和應用程序之間進行多層抽象。如果您對應用程序進行性能分析,您會發現數據庫訪問通常是最慢的操作之一。
如果你不希望每次顯示一些時間來加載所有的本地化字符串,你總是有選擇把他們在型動物文件。例如,一個用於顯示字符串的「全局」文件無處不在,以及特定於您所在頁面/部分的本地化文件。
這就是說,與有關性能什麼,不要把我的話,而是你自己MESURE它。也許在你的特殊情況下,對於你的特殊應用,數據庫可以做得很好。
加載平面文件的方法非常簡單,我沒有看到任何第三方解決方案的好處。 – pmm 2011-04-09 21:34:04
關於gettext,我想現有的工具是一個優勢*(從來沒有使用過這些,但我知道有一些)* – 2011-04-09 21:36:57