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

时间:2010-04-07 13:51:36

标签: php database translation flat-file

我正在努力升级我们的网站以使用不同的语言。

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

实施例
id => '1'
brief => 'welcome_paragraph'
en => “欢迎来到我们的网站!” de => 'Willkommen auf unserer网站!'

要求

  • 快速检索
  • 随时通过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

每页多次?因此有更好的方法将其存储为flatfile吗?或者是一个生成更新的PHP文件,其中包含大量翻译?

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


$german = array(
'message1' => 'Nachricht1',
'message2' => 'Nachricht2',
'message3' => 'Nachricht3');

就像Zend Translate page上的例子一样 我现在不考虑使用Zend Translate ......我认为它有成本吗?

1 个答案:

答案 0 :(得分:3)

http://php.net/manual/en/book.gettext.php多语言网站的解决方案

你可以看看wordpress来观看行动中的gettext。