mirror of
https://github.com/truewhile/MeBox.git
synced 2026-09-30 03:36:37 +08:00
添加繁体转简体,简体转繁体功能
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
export type SubtitleChineseMode = 'original' | 'simplified' | 'traditional'
|
||||
|
||||
type ChineseConverter = (text: string) => string
|
||||
|
||||
const identity: ChineseConverter = (text) => text
|
||||
|
||||
export function normalizeSubtitleChineseMode(value: unknown): SubtitleChineseMode {
|
||||
return value === 'simplified' || value === 'traditional' ? value : 'original'
|
||||
}
|
||||
|
||||
let simplifiedConverter: Promise<ChineseConverter> | undefined
|
||||
let traditionalConverter: Promise<ChineseConverter> | undefined
|
||||
|
||||
export function loadSubtitleChineseConverter(
|
||||
mode: SubtitleChineseMode,
|
||||
): Promise<ChineseConverter> {
|
||||
if (mode === 'original') return Promise.resolve(identity)
|
||||
|
||||
if (mode === 'simplified') {
|
||||
simplifiedConverter ??= import('opencc-js/t2cn').then(({ Converter }) =>
|
||||
Converter({ from: 't', to: 'cn' }),
|
||||
)
|
||||
return simplifiedConverter
|
||||
}
|
||||
|
||||
traditionalConverter ??= import('opencc-js/cn2t').then(({ Converter }) =>
|
||||
Converter({ from: 'cn', to: 'tw' }),
|
||||
)
|
||||
return traditionalConverter
|
||||
}
|
||||
Reference in New Issue
Block a user