在数据库中翻译产品的有效方法

时间:2017-01-06 08:29:14

标签: php mysql translation oscommerce

我正在寻找快速有效的方式来翻译osCommerce中的所有产品。

目前,有几个语言文件保存所有短语,然后它只是替换更新字段。令人讨厌的是,它的旧系统并没有使用UTF-8编码,因此每当我想要翻译某些内容时,我必须打开文件,更改编码,添加翻译,然后将其编码回以前的编码。此外,它按行号确定哪些短语,例如,如果我要添加俄语短语而不是西班牙语整个翻译会搞乱。

我现在想出的是将所有内容放入数据库以便于访问。有两个表:

  1. 主要语言短语: translate_id,短语

  2. 其他语言: translate_id,translation,language_id

  3. 包括(' mysql.php&#39); 参数或者set_time_limit(600);

    $query=$db->prepare("SELECT phrase, translation, language_id FROM phrases AS f
    LEFT JOIN translations AS v
    ON f.translate_id = v.translate_id
    WHERE v.language_id=9"); 
    $query->execute(); 
    $result = $query -> fetchAll();
    
    for($n = 0; $n < count($result); $n++) {
        $phrase = htmlspecialchars($result[$n]['phrase']);
        $translation = htmlspecialchars($result[$n]['translation']);
        $query=$db->prepare('
        UPDATE products_description AS pd 
        LEFT JOIN products as p
        ON p.products_id = pd.products_id
        SET pd.products_name = REPLACE(pd.products_name, "'. $phrase .'","'. $translation .'")
        WHERE language_id = 9 AND p.products_status = 1
        '); 
    $query->execute();
    
    }
    

    这是我到目前为止所提出的。出于某种原因,它并没有取代任何东西(某些地方出了问题),但最大的问题是我只用一种语言测试它,它甚至比基于文件的翻译速度慢。

    如何尽可能快地制作?最好的方法是什么?也许有某种类或什么?

1 个答案:

答案 0 :(得分:0)

您可以指定您的osCommerce版本吗?

  

我正在寻找快速有效的方法来翻译osCommerce中的所有产品。

实际上产品描述翻译在products_description数据库表上:考虑到这一点,我不太明白你缺少什么,你需要什么。 “短语”是什么意思?

此外,管理员方提供了一个表格来填写翻译,其中URL就是:

http://[you host] /catalog/admin/categories.php?cPath=55_129&pID=1000&action=new_product

enter image description here

此页:

  • 使用osC版本的内部enconding
  • 这是一个编辑产品说明的友好界面
  • 使用de数据库,而不是文件。