import { i18n } from '@kit.LocalizationKit'; import { XuiChineseToPinYinOpts, XuiChineseToPinYinResult } from "../interface.uts" import { XuiChineseToPinYinFailImpl } from "../unierror.uts" /** 中文转拼音 */ export function toPinYin(opts : XuiChineseToPinYinOpts) { try { let c = opts.char; if (c == '') { let errorIml = new XuiChineseToPinYinFailImpl(1002) opts?.fail?.(errorIml) opts?.complete?.(null) return; } let transliterator = i18n.Transliterator.getInstance('Any-Latn'); let result = transliterator.transform(opts.char); let voiceRemovedTransliterator = i18n.Transliterator.getInstance('Latin-ASCII'); let resultZhuying = voiceRemovedTransliterator.transform(opts.char); const ok : XuiChineseToPinYinResult = { detail: result, zhuyin: resultZhuying } opts?.success?.(ok) opts?.complete?.(ok) } catch (error) { console.error(error) opts?.fail?.(new XuiChineseToPinYinFailImpl(1001)) opts?.complete?.(null) } }