存储语言和样式.什么会是最好的?文件或数据库 ( i18N )


Storing language and styles. What would be best? Files or DB ( i18N )

我正在为IT启动一个事件跟踪系统,这可能是我的第一个PHP项目。

我一直在脑海中根据我见过的软件(如 vBulletin)设计它,我希望它有 i18n 和样式可编辑。

所以我的第一个问题在这里:

  1. 存储这些东西的最佳方法是什么,知道它们可能是静态的。我一直在考虑使用 PHP 获取文件内容,在文本编辑器中显示它,并在保存后替换旧的。(如果以前从未编辑过,请制作副本,以便我们拥有"原件")。我认为这将比使用 MySQL 和存储语言/样式快得多。

  2. 这里的安全性如何?我应该创建 .htaccess 来请求此文件夹上的 pw 吗?

  3. 我知道如何使用每个从数据库获取数组并使用 strreplace ($name、$value、$file) 进行替换,但是如果我将语言存储在文件中,我可以创建一个带有其内容的关联数组(如 JSON)。

非常感谢,很抱歉这么多问题,我是新手

这是我

在我的CMS中所做的:

  • 对于我开发each插件/程序/实体(您的名字),我创建了一个/translations文件夹。
  • 我把我所有的翻译都放在那里,命名为el.txt,de.txt,英国.txt等等所有语言
  • 我将翻译数据存储在 JSON 中,因为它易于存储、易于阅读,并且每个人都最容易发布他们的翻译数据。
  • 文件
  • 可以很容易地在文件中进行UTF8编码,而不会弄乱数据库,从而可以在文件模式下读取它们。(只是JSON.parse他们)
  • 在安装此类插件时,我只是遍历所有翻译并将它们放入数据库中,每种语言每表行。(等。 a data column of TEXT datatype
  • 对于每个页面渲染,我只需查询一次数据库以获取所选语言的这一行,并调用json_decode()到整个结果以获取一次;然后将其放入 $_SESSION 中,以便下次获取当前所选语言的 Flash 速度翻译字符串

整个事情的开发让我同时考虑性能和兼容性

  1. 与数据库相比,存储在HDD上的好处是备份不会浪费太多空间。 例如,一旦文件备份一次,第二天它就不会占用磁带。然而,数据库每天都会完全备份并占用越来越多的空间。 将其写入磁盘的缺点是它增加了有人上传恶意内容的机会,并且他们可能足够聪明地弄清楚如何执行它。 你只需要更加小心,仅此而已。
  2. 是的,使用 .htaccess 限制对可写文件夹的任何操作。 善于提前考虑这种风险。
  3. 你的方法听起来是一个很好的策略。祝你好运。