vue-app-sdk
Version:
52 lines (51 loc) • 1.83 kB
TypeScript
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;