MCPcopy
hub / github.com/Bistutu/FluentRead / handleBilingualTranslation

Function handleBilingualTranslation

entrypoints/main/trans.ts:192–226  ·  view source on GitHub ↗
(node: any, slide: boolean)

Source from the content-addressed store, hash-verified

190
191// 双语翻译
192export function handleBilingualTranslation(node: any, slide: boolean) {
193 let nodeOuterHTML = node.outerHTML;
194 // 如果已经翻译过,250ms 后删除翻译结果
195 let bilingualNode = searchClassName(node, 'fluent-read-bilingual');
196 if (bilingualNode) {
197 if (slide) {
198 htmlSet.delete(nodeOuterHTML);
199 return;
200 }
201 let spinner = insertLoadingSpinner(bilingualNode as HTMLElement, true);
202 setTimeout(() => {
203 spinner.remove();
204 const content = searchClassName(bilingualNode as HTMLElement, 'fluent-read-bilingual-content');
205 if (content && content instanceof HTMLElement) content.remove();
206 (bilingualNode as HTMLElement).classList.remove('fluent-read-bilingual');
207 htmlSet.delete(nodeOuterHTML);
208 }, 250);
209 return;
210 }
211
212 // 检查是否有缓存
213 let cached = cache.localGet(node.textContent);
214 if (cached) {
215 let spinner = insertLoadingSpinner(node, true);
216 setTimeout(() => {
217 spinner.remove();
218 htmlSet.delete(nodeOuterHTML);
219 bilingualAppendChild(node, cached);
220 }, 250);
221 return;
222 }
223
224 // 翻译
225 bilingualTranslate(node, nodeOuterHTML);
226}
227
228// 单语翻译
229export function handleSingleTranslation(node: any, slide: boolean) {

Callers 3

handleRetryClickFunction · 0.90
autoTranslateEnglishPageFunction · 0.85
handleTranslationFunction · 0.85

Calls 4

searchClassNameFunction · 0.90
insertLoadingSpinnerFunction · 0.90
bilingualAppendChildFunction · 0.85
bilingualTranslateFunction · 0.85

Tested by

no test coverage detected