uni-app 之官网uniapp与vue-i18n实现国际化多语言
原网页网址:https://ask.dcloud.net.cn/article/35102
踩了很多坑,终于捣鼓出来了。
main.js
import Vue from 'vue' import App from './App' import VueI18n from 'vue-i18n' Vue.use(VueI18n) Vue.config.productuinTip = false const i18n = new VueI18n({ locale: 'en-US', messages: { 'en-US': { index: { invite: 'Invite', game: 'Game' } }, 'zh-CN': { index: { invite: '邀请', game: '游戏' } } } }) Vue.prototype._i18n = i18n App.mpType = 'app' const app = new Vue({ i18n, ...App }) app.$mount()
uniapp 不支持在取值表达式中直接调方法,因此,$t方法不可用,所以通过计算属性的方式:
index.vue
<template> <view class="uni-content"> <text>{{ i18n.invite }}</text> <text>{{ i18n.game }}</text> </view> </template> <script> export default { computed: { i18n () { return this.$t('index') } } } </script> <style> </style>
有志者,事竟成,破釜沉舟,百二秦关终属楚; 苦心人,天不负,卧薪尝胆,三千越甲可吞吴。