阅读时间:1 分钟
0 字

国际化提供者

国际化提供者用于处理多语言翻译与语言切换。

接口定义

ts
interface I18nProvider {
  t: (key: string, options?: any, defaultMessage?: string) => string
  changeLocale: (lang: string, options?: any) => Promise<any>
  loadLocale: (lang: string, files: Record<string, unknown>) => Promise<any>
  mergeLocale: (lang: string, messages: Record<string, unknown>) => void
  getLocale: () => string
  getLocales: () => string[]
}

内置 i18nProvider

ts
import { i18nProvider } from '@duxweb/dvha-core'

const provider = i18nProvider({
  locale: 'zh-CN',
  fallbackLocale: 'en-US',
  messages: {
    'zh-CN': { hello: '你好' },
    'en-US': { hello: 'Hello' },
  },
})

说明:

  • 基于 vue-i18n,内部默认 legacy: false
  • 默认关闭 missingWarnfallbackWarn

配置方式

ts
const config = {
  i18nProvider: provider,
}

也可以在管理端配置中覆盖:

ts
const config = {
  manages: [
    {
      name: 'admin',
      i18nProvider: provider,
    },
  ],
}