代码之家  ›  专栏  ›  技术社区  ›  Jon M

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

  •  3
  • Jon M  · 技术社区  · 15 年前

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

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

    例子
    ID=& gt;‘1’
    brief=>'欢迎段落'
    en=>“欢迎访问我们的网站!”
    de=>'willkommen auf unser网站!'

    要求

    • 快速检索
    • 通过CMS随时编辑
    • 易于添加新语言

    那么,将它存储在数据库表中的最佳解决方案是什么呢?如果是这样,下面哪一个是最好的表设置:

    一张表,每种语言对应一列,每种摘要对应一行:

    ID, brief, en, de, es
    

    或者两张桌子,一张是布雷夫的,一张是翻译的:

    ID, brief
    
    ID, language, translation
    

    在每一页中,我打算……

    echo$page->翻译($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 page 我现在不考虑使用Zend翻译…我想这是有代价的?

    1 回复  |  直到 8 年前
        1
  •  3
  •   Your Common Sense    15 年前

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

    你可以看看WordPress,看看GetText的运行情况。