vue多語言轉(zhuǎn)換的幾種方法總結(jié)
一、靜態(tài)轉(zhuǎn)換
- 使用 Vue 插件
language-tw-loader - 在打包時(shí)把本地的文字轉(zhuǎn)換成繁體,動(dòng)態(tài)加載的文字不會(huì)轉(zhuǎn)換。也就是說接口返回的文字不會(huì)自動(dòng)轉(zhuǎn)換。
- 打包后無法再切換為簡體。除非專門打一個(gè)簡體的包。
使用方式
1、安裝插件
npm i language-tw-loader --save
2、修改 webpack 配置文件webpack.base.conf.js
module: {
rules: [
......
{
test: /\.(js|vue)$/,
loader: 'language-tw-loader',
}
]
}3、打包或者運(yùn)行
npm run dev
此方法不適用于vue-cli3
二、vue-i18n按字查詢替換
1、安裝
npm install vue-i18n
2、然后在我們的項(xiàng)目中的statics文件夾下面添加i18n文件夾,然后在文件夾中新建我們的json格式的語言包目錄大致為:

en.js
module.exports = {
login:{
'title' : 'this title',
'username' : 'Please enter the user name',
'password' : 'Please enter your password',
},
}zh.js
module.exports = {
login:{
'title' : '標(biāo)題',
'username' : '請輸入用戶名',
'password' : '請輸入密碼',
},
}在i18n.js中引入i18n和語言包

import Vue from 'vue'
import VueI18n from 'vue-i18n'
Vue.use(VueI18n)
// 以下為語言包單獨(dú)設(shè)置的場景,單獨(dú)設(shè)置時(shí)語言包需單獨(dú)引入
const messages = {
'zh_CN': require('../statics/i18n/zh'), // 中文語言包
'en_US': require('../statics/i18n/en') // 英文語言包
}
// 最后 export default,這一步肯定要寫的。
export default new VueI18n({
locale : 'en', // set locale 默認(rèn)顯示英文
messages : messages // set locale messages
})然后在main.js中掛載至入口文件
- main.js
//注意,因?yàn)槲覀僫ndex.js中把i18n綁定到了window,所以要在第一個(gè)引入
import i18n from './locales'
import Vue from 'vue'
import App from './App.vue'
import './common.scss'
const app = new Vue({
components: {
App
},
i18n,
render: h => h(App),
});使用
<template>
<div id="pageDiv">
<section class="content">
<h3>{{$t("login.title")}}</h3>
<button @click='langToggle'>切換語言</button>
</section>
</div>
</template>
<script>
export default {
data() {
return {
};
methods: {
langToggle(){
if(this.$i18n.locale == 'zh_CN'){
this.$i18n.locale = 'en_US';
}else{
this.$i18n.locale = 'zh_CN';
}
console.log(this.$i18n.locale)
}
},
mounted(){
},
created() {
}
};
</script>
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
element-ui 表格sortable排序手動(dòng)js清除方式
這篇文章主要介紹了element-ui 表格sortable排序手動(dòng)js清除方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07
Vue源碼學(xué)習(xí)之?dāng)?shù)據(jù)初始化
這篇文章主要為大家介紹了Vue源碼學(xué)習(xí)之?dāng)?shù)據(jù)初始化實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09
Element-UI日期選擇器(選擇日期范圍)禁用未來日期實(shí)現(xiàn)代碼
我們在網(wǎng)頁開發(fā)時(shí)通常需要用到一些日期組件來方便用戶選擇時(shí)間,其中element日期組件是一個(gè)非常好用的工具,這篇文章主要給大家介紹了關(guān)于Element-UI日期選擇器(選擇日期范圍)禁用未來日期的相關(guān)資料,需要的朋友可以參考下2024-02-02
利用Vue的v-for和v-bind實(shí)現(xiàn)列表顏色切換
這篇文章主要介紹了利用Vue的v-for和v-bind實(shí)現(xiàn)列表顏色切換,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-07-07
vue引用外部JS并調(diào)用JS文件中的方法實(shí)例
我們在做vue項(xiàng)目時(shí),經(jīng)常會(huì)需要引入js,下面這篇文章主要給大家介紹了關(guān)于vue引用外部JS并調(diào)用JS文件中的方法的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-02-02
解決Vue-Router升級導(dǎo)致的Uncaught (in promise)問題
這篇文章主要介紹了解決Vue-Router升級導(dǎo)致的Uncaught (in promise)問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-08-08
Vuex中mutations和actions的區(qū)別及說明
這篇文章主要介紹了Vuex中mutations和actions的區(qū)別及說明,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-12-12
vue如何基于el-table實(shí)現(xiàn)多頁多選及翻頁回顯過程
在最近的一個(gè)項(xiàng)目中我需要實(shí)現(xiàn)表格的翻頁,并且還要實(shí)現(xiàn)全選、多選功能,下面這篇文章主要給大家介紹了關(guān)于vue如何基于el-table實(shí)現(xiàn)多頁多選及翻頁回顯過程的相關(guān)資料,需要的朋友可以參考下2022-12-12

