我正在努力升级我们的网站以使用不同的语言。
我的计划是以多种语言存储文本段落并给每个段落一个标识符。
示例
id => '1'
brief => 'welcome_paragraph'
en => '欢迎来到我们的网站!'
de => 'Willkommen auf unserer 网站!'
要求
- 快速检索
- 随时通过 CMS 编辑
- 易于添加新语言
那么将其存储在数据库表中的最佳解决方案是什么?如果是这样,以下哪个是最好的表设置:
一个表,每种语言的列和每个简报的行:
ID, brief, en, de, es
或者两张表,一张带短文,一张带翻译:
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 页面上的示例一样, 我目前不考虑使用 Zend Translate……我认为它是有成本的?