Files
hospital-rescue-app-v2/uni_modules/x-chinesetopinyin-s/utssdk/app-harmony/index.uts
T
2026-09-24 16:25:22 +08:00

32 lines
974 B
Plaintext

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)
}
}