UNPKG

vue-app-sdk

Version:
52 lines (51 loc) 1.83 kB
import { MaybeRefOrGetter } from 'vue'; /** * 根据默认语言创建本地翻译函数,用于处理动态国际化文本 * * @example * ```ts * // locale.ts * export const translateText = createTranslator(() => i18n.value.locale.value) * * // menu.ts * const menu = { title: '菜单' } * translateText(menu.title) // '菜单' * * const menu = { title: { 'zh-cn': '菜单', en: 'Menu' } } * translateText(menu.title) // i18n.global.locale 为 `zh-cn` 时为 '菜单',`en` 时为 'Menu' * * // alert.ts * alert(translateText({ 'zh-cn': '这是中文警告!', en: 'This is a warning in English!' })) * * // menu.vue * const menu = { title: { 'zh-cn': '菜单', en: 'Menu' } } * const menuTitle = computed(() => translateText(menu.title)) // 支持响应式动态变更 * ``` */ export declare function createTranslator(localeGetter: MaybeRefOrGetter<string>): (message?: string | Record<string, string>, locale?: string) => string; /** * 根据默认语言创建本地翻译函数,用于处理动态国际化文本 * * @deprecated 推荐使用 `createTranslator` 代替 * * @example * ```ts * // locale.ts * export const localeText = createLocaleText(() => i18n.value.locale.value) * * // menu.ts * const menu = { title: '菜单' } * localeText(menu.title) // '菜单' * * const menu = { title: { 'zh-cn': '菜单', en: 'Menu' } } * localeText(menu.title) // i18n.global.locale 为 `zh-cn` 时为 '菜单',`en` 时为 'Menu' * * // alert.ts * alert(localeText({ 'zh-cn': '这是中文警告!', en: 'This is a warning in English!' })) * * // menu.vue * const menu = { title: { 'zh-cn': '菜单', en: 'Menu' } } * const menuTitle = computed(() => localeText(menu.title)) // 支持响应式动态变更 * ``` */ export declare const createLocaleText: typeof createTranslator;