(text: string, language: Language)
| 363 | let runtimeLanguage: Language = 'zh'; |
| 364 | |
| 365 | export function translateText(text: string, language: Language): string { |
| 366 | if (language === 'zh') return text; |
| 367 | if (!text) return text; |
| 368 | if (!HAS_HAN_RE.test(text)) return zhToEn[text] ?? text; |
| 369 | const exact = zhToEn[text]; |
| 370 | if (exact) return exact; |
| 371 | |
| 372 | let translated = text; |
| 373 | for (const [source, target] of zhToEnPhrases) { |
| 374 | if (!source || source === target) continue; |
| 375 | if (!translated.includes(source)) continue; |
| 376 | translated = translated.split(source).join(target); |
| 377 | } |
| 378 | if (HAS_HAN_RE.test(translated)) return enforceStrictEnglish(translated); |
| 379 | return translated; |
| 380 | } |
| 381 | |
| 382 | export function tr(text: string): string { |
| 383 | return translateText(text, runtimeLanguage); |
no test coverage detected