Update App.jsx via upload script - 2026-09-16 11:50:10
This commit is contained in:
parent
3c1c72ac39
commit
469709e989
16
App.jsx
16
App.jsx
|
|
@ -546,9 +546,12 @@ const TRANSLATION_DICTIONARY = {
|
||||||
'磷酸铁锂电池': { en: 'LiFePO4 Battery', fr: 'Batterie LiFePO4', ru: 'Аккумулятор LiFePO4', es: 'Batería LiFePO4', ar: 'بطارية ليثيوم فوسفات الحديد' },
|
'磷酸铁锂电池': { en: 'LiFePO4 Battery', fr: 'Batterie LiFePO4', ru: 'Аккумулятор LiFePO4', es: 'Batería LiFePO4', ar: 'بطارية ليثيوم فوسفات الحديد' },
|
||||||
};
|
};
|
||||||
|
|
||||||
// 解析一批中文词条在目标语言下的翻译:优先用上面内置的专业词典(永远准确、不占用AI额度),
|
// 解析一批词条在目标语言下的翻译:优先用上面内置的专业词典(永远准确、不占用AI额度),
|
||||||
// 词典里没有的再查本地缓存(之前AI翻译过的词,存在 crm:translationGlossary 里),
|
// 词典里没有的再查本地缓存(之前AI翻译过的词,存在 crm:translationGlossary 里),
|
||||||
// 缓存也没有的才真的调用DeepSeek翻译,翻完存回缓存,下次同一个词就不用再调了。
|
// 缓存也没有的才真的调用DeepSeek翻译,翻完存回缓存,下次同一个词就不用再调了。
|
||||||
|
// 词条不一定是中文——extraSpecs(AI识别到但没有具名字段的参数)经常是"原样"从原始英文资料
|
||||||
|
// 里提取的标签/数值,如果目标语言正好是英文、且词条本身没有中文字符,直接原样保留,
|
||||||
|
// 既省一次AI调用,也避免"已经是英文的内容被反向翻译成中文"这种方向搞反的问题。
|
||||||
async function resolveExportTranslations(terms, lang) {
|
async function resolveExportTranslations(terms, lang) {
|
||||||
if (lang === 'zh' || !terms.length) {
|
if (lang === 'zh' || !terms.length) {
|
||||||
const map = {};
|
const map = {};
|
||||||
|
|
@ -564,10 +567,17 @@ async function resolveExportTranslations(terms, lang) {
|
||||||
const map = {};
|
const map = {};
|
||||||
const misses = [];
|
const misses = [];
|
||||||
terms.forEach(t => {
|
terms.forEach(t => {
|
||||||
|
// 缓存自愈:目标是英文,但缓存里存的"翻译结果"本身却包含中文——这是老版本那个"方向
|
||||||
|
// 搞反"的bug留下的错误缓存(比如"Temperature Compensation"被误翻译成"温度补偿"存进去了),
|
||||||
|
// 判定这条缓存无效,当成miss重新走一遍解析,不会一直卡在错误结果上。
|
||||||
|
const cachedGlossaryHit = glossary[t] && glossary[t][lang];
|
||||||
|
const cachedIsBad = lang === 'en' && cachedGlossaryHit && containsChinese(cachedGlossaryHit);
|
||||||
if (TRANSLATION_DICTIONARY[t] && TRANSLATION_DICTIONARY[t][lang]) {
|
if (TRANSLATION_DICTIONARY[t] && TRANSLATION_DICTIONARY[t][lang]) {
|
||||||
map[t] = TRANSLATION_DICTIONARY[t][lang];
|
map[t] = TRANSLATION_DICTIONARY[t][lang];
|
||||||
} else if (glossary[t] && glossary[t][lang]) {
|
} else if (cachedGlossaryHit && !cachedIsBad) {
|
||||||
map[t] = glossary[t][lang];
|
map[t] = cachedGlossaryHit;
|
||||||
|
} else if (lang === 'en' && !containsChinese(t)) {
|
||||||
|
map[t] = t; // 目标是英文、词条本身不含中文字符——大概率已经是英文原文,直接用,不送AI
|
||||||
} else {
|
} else {
|
||||||
misses.push(t);
|
misses.push(t);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue