国际化
项目基于 vue-i18n 实现多语言,语言包位于 src/lang/package/,中文 zh-cn.json、英文 en.json。
语言包结构
语言包按命名空间组织,route 存菜单标题、navbar 存导航栏、login 存登录页:
json
{
"route": {
"dashboard": "首页",
"document": "项目文档"
},
"navbar": {
"dashboard": "首页",
"logout": "退出登录"
}
}route 下的 key 与后台菜单的「菜单名称」对应,菜单显示时自动读取当前语言的翻译。
在页面中使用
模板中通过 $t 调用:
vue
<template>
<h1>{{ $t('navbar.logout') }}</h1>
</template>脚本中通过 useI18n:
typescript
import { useI18n } from 'vue-i18n'
const { t } = useI18n()
const msg = t('navbar.logout')切换语言
语言切换已集成在布局导航栏,无需手动调用。如需在脚本中切换:
typescript
import { useI18n } from 'vue-i18n'
const { locale } = useI18n()
locale.value = 'en' // 切换为英文
locale.value = 'zh-cn' // 切换为中文菜单标题国际化
菜单名称填写为语言包 key(如 document),系统自动读取 src/lang/package/ 下对应语言的翻译。详见新增菜单。
