项目使用vue-i18n实现 国际化
在src下新建/language/i18n.ts文件 以及对应的语言文件zh.ts和en.ts
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| import { createI18n } from 'vue-i18n' import zh from './zh' import en from './en'
const i18n = createI18n({ legacy: false, locale: 'zh', messages: { zh, en } })
export default i18n
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| export default { footer: { yu2Travel: '玉玉游', discovery: '发现', rent: '出租', customerService: '客服', } }
export default { footer: { yu2Travel: 'Yu2Travel', discovery: 'Discovery', rent: 'Rent', customerService: 'Customer Service', } }
|
main.ts 挂载
1 2
| import i18n from './language/i18n' app.use(i18n)
|
使用
1 2 3 4 5 6 7 8 9 10
| import { useI18n } from 'vue-i18n'
const {t} = useI18n()
{{ t('footer.yu2Travel')}}
const {locale}=useI18n()
locale.value = en/zh
|
在v-for中使用
1 2 3 4 5 6 7 8 9 10 11 12 13
| const footerMenu = reactive([{ title: 'yu2Travel', },{ title: 'discovery', },{ title: 'rent', },{ title: 'customerService', }])
<li v-for="(item, i) in footerMenu" :key="i"> <h4>{{ t(`footer['${item.title}']`) }}</h4> </li>
|