Vue国际化-i18n

it2023-06-15  67

Vue国际化-i18n

效果图

安装

yarn add vue-i18n

使用

1.在main.js中引入i18n。

import Vue from 'vue'; import VueI18n from "vue-i18n"; import App from './App.vue'; import router from './router'; import store from './store'; Vue.config.productionTip = false; Vue.use(VueI18n); const i18n = new VueI18n({ locale: 'zh', //默认语言 messages: { 'zh': require('./assets/lang/zh'), //引入的是自己定义的语言包 'en': require('./assets/lang/en') } }) new Vue({ router, store, i18n, //必须加 render: h => h(App) }).$mount('#app')

2.语言包内需要定义好项目中用到的语句。

(1).zh.js
module.exports = { message: { aboutMsg: '这是相关页面', zh: '中文', en: '英文' } }
(2).en.js
module.exports = { message: { aboutMsg: 'This is an about page', zh: 'Chinese', en: 'English' } }

3.页面中使用

<template> <div class="about"> <h1>{{ $t('message.aboutMsg') }}</h1> <input type="radio" name="lang" id="zh" value="zh" v-model="lang" /><label for="lang">{{ $t('message.zh') }}</label> <input type="radio" name="lang" id="en" value="en" v-model="lang" /><label for="lang">{{ $t('message.en') }}</label> </div> </template> <script> export default { data: () => ({ msg: 'message.about', lang: 'zh' }), watch: { lang(newValue) { this.$i18n.locale = newValue; //通过改变this.$i18n的值来改变当前语言 } }, mounted() {} }; </script>

​ 页面中使用只需要$t('message.变量名'),注意给$t传递的参数是字符串。

vue国际化其他方法及优缺点

图片来自于:https://blog.csdn.net/qq_42269433/article/details/90902247?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.add_param_isCf&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.add_param_isCf

最新回复(0)