Cet article présente principalement le code d'implémentation de vue utilisant vue-i18n pour réaliser l'internationalisation. Maintenant, je le partage avec vous et vous donne une référence.
Exigences
Les projets de l'entreprise doivent être internationalisés, cliquez sur le bouton pour changer de chinois/anglais
Installation
npm install vue-i18n --save
2. Injectez dans l'instance de vue et implémentez l'API d'appel et la syntaxe du modèle dans le projet
import VueI18n from 'vue-i18n' Vue.use(VueI18n) ; const i18n = new VueI18n({ locale: 'zh-CN', // 语言标识, 通过切换locale的值来实现语言切换,this.$i18n.locale messages: { 'zh-CN': require('./common/lang/zh'), // 中文语言包 'en-US': require('./common/lang/en') // 英文语言包 } }) new Vue({ el: '#app', i18n, // 最后 router, template: '<App/>', components: { App } })
3. >
Pack de langue chinoise zh.js :export const lang = { homeOverview:'首页概览', firmOverview:'公司概述', firmReports:'财务报表', firmAppendix:'更多附录', firmIndex:'主要财务指标', firmAnalysis:'对比分析', firmNews:'新闻事件档案', firmOther:'其他功能', }
export const lang = { homeOverview:'Home overview', firmOverview:'firmOverview', firmReports:'firmReports', firmAppendix:'firmAppendix', firmIndex:'firmIndex', firmAnalysis:'firmAnalysis', firmNews:'firmNews', firmOther:'firmOther' }
Contrôle des boutons pour changer de langue
4. 🎜>
<p class="top_btn" @click="changeLangEvent">中文</p>
changeLangEvent() { console.log('changeLangEvent'); this.$confirm('确定切换语言吗?', '提示', { confirmButtonText: '确定', cancelButtonText: '取消', type: 'warning' }).then(() => { if ( this.$i18n.locale === 'zh-CN' ) { this.$i18n.locale = 'en-US';//关键语句 console.log('en-US') }else { this.$i18n.locale = 'zh-CN';//关键语句 console.log('zh-CN') } }).catch(() => { console.log('catch'); this.$message({ type: 'info', }); }); }
5. Rendu du modèle
Rendu statique :
<span v-text="$t('lang .homeOverview')"></span> <span>{{$t('lang .homeOverview')}}</span>
S'il s'agit d'un élément- ui, devant ce que vous voulez traduire Ajoutez deux points
Par exemple : label="user name" est remplacé par : label="$t('order.userName')"
Rendu dynamique :<span class="el-dropdown-link">{{navCompany}}</span> computed:{ navCompany:function(){ if(this.nav_company){ let str = 'lang'+this.nav_company; return this.$t(str); } } }, <el-submenu v-for="(value, title1, one) in navList" :key="one+1" :index="(one+1).toString()"> <template slot="title"> <router-link :to="linkList[title1]">{{ getTitle(title1) }}</router-link> </template> </el-submenu> methods: { getTitle(title){ let str = 'lang.'+title; return this.$t(str); } }
J'ai compilé ce qui précède pour vous, j'espère que cela vous sera utile à l'avenir.
JavaScript génère une liste de temps dans une plage spécifiéeméthode nodejs pour implémenter le téléchargement de fichiers basé sur expressExplication détaillée des paramètres basés sur webpack.config.jsCe qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!