我正在寻找快速有效的方法来通过短语翻译 osCommerce 中的所有产品。
目前,有几个语言文件保留了所有短语,然后它只是替换更新字段。烦人的是它的旧系统并且不使用 UTF-8 编码,因此每当我想要翻译某些内容时,我必须打开文件,更改编码,添加翻译,然后将其编码回以前的编码。此外,它还按行号确定哪些短语,例如,如果我添加俄语短语而不是西类牙语,整个翻译就会困惑。
我现在想到的是将所有内容放入数据库中以便于访问。有两个表:
主要语言短语: 翻译_id,短语
其他语言: 翻译_id、翻译、语言_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();
}
这是我到目前为止想到的。由于某种原因,它不会取代任何东西(某处出了问题),但最大的问题是我只用一种语言测试它,它甚至比基于文件的翻译慢。
如何才能尽快完成?最好的方法是什么?也许有某种类(class)或其他什么?
最佳答案
您能指定您的 osCommerce 版本吗?
I'm looking for the fast and efficient way to translate all products in osCommerce by phrases.
实际上产品描述翻译是在products_description数据库表上:考虑到这一点,我不太明白你缺少什么,你需要什么。 “按短语”是什么意思?
此外,管理端提供了一个表单来填写翻译,其URL如下:
http://[you主机]/catalog/admin/categories.php?cPath=55_129&pID=1000&action=new_product
本页:
- 使用您的操作系统版本的内部编码
- 这是一个编辑产品说明的友好界面
- 使用数据库,而不是文件。
关于php - 翻译数据库中产品的有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41501751/