MCPcopy Create free account
hub / github.com/Bistutu/FluentRead / detectLanguage

Function detectLanguage

entrypoints/offscreen/main.ts:52–89  ·  view source on GitHub ↗
(text: string)

Source from the content-addressed store, hash-verified

50
51// 检测文本语言
52async function detectLanguage(text: string): Promise<string> {
53 try {
54 // 尝试使用新的 API
55 if ('translation' in self && 'createDetector' in (self as any).translation) {
56 const detector = await (self as any).translation.createDetector();
57 const results = await detector.detect(text);
58 const detected = results.length > 0 ? results[0].detectedLanguage : 'en';
59 console.log('新 API 检测结果:', detected);
60 return detected;
61 }
62
63 // 尝试使用旧的 API
64 if ('LanguageDetector' in self) {
65 const detector = await (self as any).LanguageDetector.create();
66 const results = await detector.detect(text);
67 const detected = results.length > 0 ? results[0].detectedLanguage : 'en';
68 console.log('旧 API 检测结果:', detected);
69 return detected;
70 }
71 } catch (error) {
72 console.warn('Language detection failed:', error);
73 }
74
75 // 回退到简单检测
76 const chineseRegex = /[\u4e00-\u9fff]/;
77 const japaneseRegex = /[\u3040-\u309f\u30a0-\u30ff]/;
78 const koreanRegex = /[\uac00-\ud7af]/;
79
80 if (chineseRegex.test(text)) {
81 return 'zh';
82 } else if (japaneseRegex.test(text)) {
83 return 'ja';
84 } else if (koreanRegex.test(text)) {
85 return 'ko';
86 } else {
87 return 'en';
88 }
89}
90
91// 执行翻译
92async function performTranslation(text: string, fromLang: string, toLang: string): Promise<string> {

Callers 1

handleTranslationRequestFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected