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

标签 php mysql translation oscommerce

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

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

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

  1. 主要语言短语: 翻译_id,短语

  2. 其他语言: 翻译_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

enter image description here

本页:

  • 使用您的操作系统版本的内部编码
  • 这是一个编辑产品说明的友好界面
  • 使用数据库,而不是文件。

关于php - 翻译数据库中产品的有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41501751/

相关文章:

PHP:读取 SOAP 响应中的 XML 属性

mysql - Mysql中Join表数据重复

MySQL 计数不同总是返回 '1'

android - 数量 "two"在 Android 字符串资源复数中不起作用

python - QT 翻译和 HTML 子集

php - 进入 “fatal error”时未调用对象析构函数

PHP:替换utf-8字符串中的无效字符

php - 根据动态数字或从 foreach 循环生成的元素计算宽度

MySQL:从特定时间范围内检索记录数

c# - C#到PHP转换器