Php 最快的存储方式&;检索翻译文本-数据库还是平面文件?

Php 最快的存储方式&;检索翻译文本-数据库还是平面文件?,php,database,translation,flat-file,Php,Database,Translation,Flat File,我正在升级我们的网站,以不同的语言工作 我的计划是用多种语言存储文本段落,并为每个段落指定一个标识符 示例 id=>“1” 简短=>“欢迎” en=>“欢迎访问我们的网站!” de=>“Willkommen auf Unseer网站!” 要求 迅速恢复 随时通过CMS编辑 易于添加新语言 那么,将其存储在数据库表中的最佳解决方案是什么呢?如果是,以下哪项是最好的表格设置: 一个表格,每种语言一列,每种简报一行: ID, brief, en, de, es 或两个表格,一个带breifs,一

我正在升级我们的网站,以不同的语言工作

我的计划是用多种语言存储文本段落,并为每个段落指定一个标识符

示例
id=>“1”
简短=>“欢迎”
en=>“欢迎访问我们的网站!”
de=>“Willkommen auf Unseer网站!”

要求

  • 迅速恢复
  • 随时通过CMS编辑
  • 易于添加新语言
那么,将其存储在数据库表中的最佳解决方案是什么呢?如果是,以下哪项是最好的表格设置:

一个表格,每种语言一列,每种简报一行:

ID, brief, en, de, es
或两个表格,一个带breifs,一个带翻译:

ID, brief

ID, language, translation
在每一页中,我都打算做

echo$page->translate($language,$brief)

多次显示所需的文本。。。。继续使用以下命令调用数据库是否会很慢:

SELECT translation FROM translations 
WHERE language = 'es' AND brief = 'welcome_paragraph'
LIMIT 1
在每一页上多次?因此,是否有更好的方法将其存储为平面文件?还是更新时生成的包含大量翻译的PHP文件

$english = array(
'message1' => 'message1',
'message2' => 'message2',
'message3' => 'message3');


$german = array(
'message1' => 'Nachricht1',
'message2' => 'Nachricht2',
'message3' => 'Nachricht3');
很像上面的例子 我现在不考虑使用Zend Translate。。。我认为这是有代价的?

是多语言网站的解决方案


您可以查看wordpress以查看gettext的运行情况。

为什么“动态生成”?您不希望翻译在运行时更改,是吗?为什么不只是在一个普通的静态PHP include中?“我现在不考虑使用Zend Translate……我假设这是有成本的?”如果你是指成本,以美元表示,不,没有成本。Zend framework在BSD许可下是免费的、开源的。这几乎是免费的。我已经更改了“动态”,应该会更新,感谢您指出bobince.mable replication of和其他几个类似的原因。我同意这是最好的解决方案。如果您选择数据库的方式,则需要实现一些缓存,否则这将是一种巨大的资源浪费。