PHP更好的做法是构建一个多语言站点

Fra*_*sco 5 php mysql

我有一个网站,我用两种语言建立,包括两种基于浏览器语言的不同"词典"

在每个langXX.php我有

define('SOME_STRING', 'Some string');
Run Code Online (Sandbox Code Playgroud)

等...但我现在讨厌这个解决方案因为我不确定我是否在两个文件中都包含了一个新的定义...所以我试图移动包括mysql中的所有定义并构建一个类似的函数

translate('SOME_STRING', 'en'); // ouput 'Some string'
Run Code Online (Sandbox Code Playgroud)

我正在转向mysql,因为我喜欢直接通过CMS管理翻译我将构建,我不想让网站管理员通过ftp和textmate ...

所以我的问题是,如果后一种解决方案我更好或者对于mysql来说太紧张,无法获取页面的每个文本元素的查询.

PS.据我记得,甚至osCommerce使用这种做法对吗?

Jef*_*ker 4

为什么不使用数据库中存储的数据的文件缓存?您可以删除一组可能成本高昂、重复次数较多的数据库调用,但可以保留 CMS 语言值概述的优势。

  • 将翻译存储在数据库中
  • 有一个从数据库值生成平面文件的过程
  • 每次发生翻译更新时重新启动此进程
  • 在任何前端翻译检索操作中使用平面文件。