useI18n.ts 685 字节
Newer Older
fxy060608's avatar
fxy060608 已提交
1
import { getEnvLocale } from '@dcloudio/uni-shared'
fxy060608's avatar
fxy060608 已提交
2
import { BuiltInLocale, initVueI18n } from '@dcloudio/uni-i18n'
fxy060608's avatar
fxy060608 已提交
3

fxy060608's avatar
fxy060608 已提交
4
let i18n: ReturnType<typeof initVueI18n>
fxy060608's avatar
fxy060608 已提交
5

fxy060608's avatar
fxy060608 已提交
6
export function useI18n() {
fxy060608's avatar
fxy060608 已提交
7 8 9
  if (!i18n) {
    let language: BuiltInLocale
    if (__PLATFORM__ === 'h5') {
fxy060608's avatar
fxy060608 已提交
10 11 12 13 14
      if (__NODE_JS__) {
        language = getEnvLocale() as BuiltInLocale
      } else {
        language = navigator.language as BuiltInLocale
      }
fxy060608's avatar
fxy060608 已提交
15 16 17 18 19 20 21 22
    } else if (__PLATFORM__ === 'app') {
      // TODO 需替换为新API
      language = plus.os.language as BuiltInLocale
    } else {
      language = uni.getSystemInfoSync().language as BuiltInLocale
    }
    i18n = initVueI18n(language)
  }
fxy060608's avatar
fxy060608 已提交
23 24
  return i18n
}