【发布时间】:2026-01-09 20:05:01
【问题描述】:
我正在寻找一种快速有效的方式来通过短语翻译 osCommerce 中的所有产品。
目前,有几个语言文件会保留所有短语,然后它会简单地替换更新字段。烦人的是它的旧系统并且没有使用 UTF-8 编码,所以每当我想翻译某些东西时,我必须打开一个文件,更改编码,添加翻译,然后将其编码回以前的编码。此外,它通过行号确定哪些短语,例如,如果我要添加俄语短语而不是西班牙语,整个翻译就会搞砸。
我现在想出的是将所有内容都放入数据库中以便于访问。有两个表:
主要语言短语: translate_id,短语
其他语言: translate_id, 翻译, language_id
include('mysql.php'); 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();
}
这是我到目前为止想出的。出于某种原因,它不能替代任何东西(某处有问题),但最大的问题是我只用一种语言测试它,它甚至比基于文件的翻译还要慢。
如何让它尽可能快?最好的方法是什么?也许有什么课程之类的?
【问题讨论】:
标签: php mysql translation oscommerce