vue多語言轉(zhuǎn)換的幾種方法總結
一、靜態(tài)轉(zhuǎn)換
- 使用 Vue 插件
language-tw-loader
- 在打包時把本地的文字轉(zhuǎn)換成繁體,動態(tài)加載的文字不會轉(zhuǎn)換。也就是說接口返回的文字不會自動轉(zhuǎn)換。
- 打包后無法再切換為簡體。除非專門打一個簡體的包。
使用方式
1、安裝插件
npm i language-tw-loader --save
2、修改 webpack 配置文件webpack.base.conf.js
module: { rules: [ ...... { test: /\.(js|vue)$/, loader: 'language-tw-loader', } ] }
3、打包或者運行
npm run dev
此方法不適用于vue-cli3
二、vue-i18n按字查詢替換
1、安裝
npm install vue-i18n
2、然后在我們的項目中的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' : '標題', 'username' : '請輸入用戶名', 'password' : '請輸入密碼', }, }
在i18n.js中引入i18n和語言包
import Vue from 'vue' import VueI18n from 'vue-i18n' Vue.use(VueI18n) // 以下為語言包單獨設置的場景,單獨設置時語言包需單獨引入 const messages = { 'zh_CN': require('../statics/i18n/zh'), // 中文語言包 'en_US': require('../statics/i18n/en') // 英文語言包 } // 最后 export default,這一步肯定要寫的。 export default new VueI18n({ locale : 'en', // set locale 默認顯示英文 messages : messages // set locale messages })
然后在main.js中掛載至入口文件
- main.js //注意,因為我們index.js中把i18n綁定到了window,所以要在第一個引入 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>
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
vue2前端調(diào)用WebSocket有消息進行通知代碼示例
在Vue項目中實現(xiàn)全局的消息鏈接監(jiān)聽主要涉及到了WebSocket技術,這是一種雙向通信協(xié)議,允許客戶端與服務器之間實時、高效地交換數(shù)據(jù),這篇文章主要給大家介紹了關于vue2前端調(diào)用WebSocket有消息進行通知的相關資料,需要的朋友可以參考下2024-07-07vue+elementui 實現(xiàn)新增和修改共用一個彈框的完整代碼
Element-Ul是餓了么前端團隊推出的一款基于Vue.js 2.0 的桌面端UI框架,手機端有對應框架是Mint UI ,今天給大家普及vue+elementui 實現(xiàn)新增和修改共用一個彈框的完整代碼,一起看看吧2021-06-06IE11下處理Promise及Vue的單項數(shù)據(jù)流問題
最近我開發(fā)的公司的競賽網(wǎng)站被發(fā)現(xiàn)在IE11下排行榜無數(shù)據(jù),但是在其他瀏覽器沒問題,我然后打開控制臺一看,發(fā)現(xiàn)有問題,糾結了半天才搗騰好,下面小編把方案分享處理,供大家選擇2019-07-07vue 接口請求地址前綴本地開發(fā)和線上開發(fā)設置方式
這篇文章主要介紹了vue 接口請求地址前綴本地開發(fā)和線上開發(fā)設置方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-08-08用VueJS寫一個Chrome瀏覽器插件的實現(xiàn)方法
這篇文章主要介紹了用VueJS寫一個Chrome瀏覽器插件的實現(xiàn)方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-02-02