index.ts
787 Bytes
import { createI18n } from 'vue-i18n'
import type { App } from 'vue'
import zhCN from './zh-CN'
import en from './en'
/**
* 国际化
*
* 注意:**菜单标题来自后端**(get-permission-info 下发的中文名),不走 i18n;
* 这里只负责界面骨架文案(登录页、布局、按钮等)。多语言需求增长后可把后端菜单
* 也接进来(菜单表加 i18n key)。
*/
export const i18n = createI18n({
legacy: false,
globalInjection: true,
locale: 'zh-CN',
fallbackLocale: 'zh-CN',
messages: {
'zh-CN': zhCN,
en
}
})
export function setupI18n(app: App) {
app.use(i18n)
}
export function setLocale(locale: 'zh-CN' | 'en') {
i18n.global.locale.value = locale
document.documentElement.lang = locale
}
export default i18n