(node: any, slide: boolean)
| 190 | |
| 191 | // 双语翻译 |
| 192 | export 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 | // 单语翻译 |
| 229 | export function handleSingleTranslation(node: any, slide: boolean) { |
no test coverage detected