问题:PHP搭建多语言网站的更好实践
我有一个网站,我用两种语言构建,包括两个基于浏览器语言的不同“字典”
在每个 langXX.php 我有
define('SOME_STRING', 'Some string');
等等......但我现在讨厌这个解决方案,因为我不确定我是否在两个文件中都包含了新定义......所以我试图将所有定义包含在 mysql 中并构建一个类似的函数
translate('SOME_STRING', 'en'); // ouput 'Some string'
我正在迁移到 mysql,因为我喜欢通过我将构建的 CMS 直接管理翻译,我不想让网站管理员通过 ftp 和 textmate...
所以我的问题是,如果后一种解决方案更好或者对mysql来说压力太大而无法获取页面的每个文本元素的查询..
PS。据我记得,即使 osCommerce 也使用过这种做法,对吗?
解答
为什么不使用存储在数据库中的数据的文件缓存?您删除了可能成本高昂、重复次数多的数据库调用集,但可以保留 CMS 语言值概览的优势。
-
在数据库中存储翻译
-
有一个从数据库值生成平面文件的过程
-
每次发生翻译更新时重新启动此进程
-
在任何前端翻译检索操作中使用平面文件。
博主探讨了PHP搭建多语言网站的传统方法,即使用多个langXX.php文件定义字符串,但对此感到不满,转而考虑将翻译存储在MySQL数据库中,以便通过CMS直接管理。提出的问题是,这种做法是否优于文件系统,是否会增加过多的数据库查询。建议采用数据库存储翻译,同时通过文件缓存来减少数据库调用,以平衡效率和内容管理的便利性。
1176

被折叠的 条评论
为什么被折叠?



