一分鐘上手Vue VueI18n Internationalization(i18n)多國語言系統開發、國際化、中英文語言切換!

這里以Vue2為例子

第一步:安裝vue-i18n

npm install vue-i18n@8.26.5

第二步:在src下創建js文件夾,繼續創建language文件夾

在language文件夾里面創建zh.js、en.js、index.js這仨文件

這仨文件代碼分別如下:

zh.js

export default {word1: "中國必然崛起!",word2: "中文是偉大的語言",
}

小技巧Tip:還可以用對象的方式加入語言內容,譬如
word:{
? ? label1: "中國必然崛起!",
? ? label2: "中文是偉大的語言",
}

在調用的時候就用$t('word.label1')、$t('word.label1')就可以了,這樣更加方便歸類同一個欄目菜單下的詞匯變量

en.js

export default {word1: "China is NB!",word2: "Chinese is great language",
}

?index.js

import Vue from 'vue'; import VueI18n from 'vue-i18n';//npm install vue-i18n@8.26.5
Vue.use(VueI18n);
//引入國際化變量文件
import zh from './zh';//中文
import en from './en';//英語
// ...可以按照上面的方式,繼續添加其他語言
let messages = { zh, en, };
let defaultLang = 'zh';//默認是中文
Object.keys(messages).includes(localStorage.language) || (localStorage.language = defaultLang);
let locale = localStorage.language;
export default { locale, messages, defaultLang };

第三步:在main.js文件里面引入i18n

// 【多國語言】----------------------------------------------------------------
import i18n from './language';//引入多語言配置文件index.js//【初始化加載】----------------------------------------------------------------
import App from '../vue/App';
new Vue({el: '#app',render: h => h(App),router,store: vuex,i18n, //把i18n掛載在全局上
});

第四步:應用文件

<template><div><h1>{{ $t('word1') }}</h1><h2>{{ $t('word2') }}</h2><hr><el-button @click="changeLanguage('zh')" v-if="this.$i18n.locale !== 'zh'" type="success">中文</el-button><el-button @click="changeLanguage('en')" v-if="this.$i18n.locale !== 'en'" type="danger">英文</el-button></div>
</template>
<script>
import i18n from '@/js/language';//引入多語言配置文件index.js
export default {created() {this.addEvents();},methods: {changeLanguage(curLang) {Object.keys(i18n.messages).includes(curLang) || (curLang = i18n.defaultLang);this.$i18n.locale = curLang;localStorage.language = curLang;},addEvents(d) {this.removeEvents();addEventListener('storage', this.storage);},removeEvents(d) {removeEventListener('storage', this.storage);},storage(e) {e.key === 'language' && this.changeLanguage(e.newValue);// 監聽手工修改localStorage.language;},}
};
</script> 

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/34742.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/34742.shtml
英文地址,請注明出處:http://en.pswp.cn/news/34742.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

在Eclipse在Java里面調用Python腳本的方法

由于項目中需要用到Java調用Python的腳本&#xff0c;來實現一些功能&#xff0c;就對jython做了一些了解&#xff0c;通過jython可以實現java對python腳本的調用。Java調用Python開發環境配置(EclipseJythonPyDev) 1、Jython是什么 Java可以使用Jython庫來調用Python庫。Jyt…

你不得不懂的IT知識-《敏捷項目管理》

國林哥在IBM時&#xff0c;幾乎每天都會收到關于“敏捷”相關的郵件&#xff0c;公司鼓勵我們去學習郵件里的知識&#xff0c;參加敏捷相關的認證和培訓。剛開始我和大多數同事一樣不管不顧&#xff0c;后來隨著PBC里要求加上成長目標&#xff0c;比如要獲得一個認證&#xff0…

React使用antd的圖片預覽組件,點擊哪個圖片就預覽哪個的設置

使用了官方推薦的相冊模式的預覽&#xff0c;但是點擊預覽之后&#xff0c;每次都是從圖片列表的第一張開始預覽&#xff0c;而不是點擊哪張就從哪張開始預覽&#xff1a; 所以這里我就封裝了一下&#xff0c;對初始化預覽的列表進行了邏輯處理&#xff1a; 當點擊開始預覽的…

加載并繪制時間域內的心電圖信號,并實施Q因子為1的陷波濾波器以去除50 Hz頻率研究(Matlab代碼實現)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;歡迎來到本博客????&#x1f4a5;&#x1f4a5; &#x1f3c6;博主優勢&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客內容盡量做到思維縝密&#xff0c;邏輯清晰&#xff0c;為了方便讀者。 ??座右銘&a…

一篇打通,pytest自動化測試框架詳細,從0到1精通實戰(一)

目錄&#xff1a;導讀 前言一、Python編程入門到精通二、接口自動化項目實戰三、Web自動化項目實戰四、App自動化項目實戰五、一線大廠簡歷六、測試開發DevOps體系七、常用自動化測試工具八、JMeter性能測試九、總結&#xff08;尾部小驚喜&#xff09; 前言 pytest單元測試框…

redis學習筆記(七)

文章目錄 zset&#xff08;有序集合&#xff09;&#xff08;1&#xff09;添加成員&#xff08;2&#xff09;獲取score在指定區間的所有成員&#xff08;3&#xff09;獲取集合長度&#xff08;4&#xff09;獲取指定成員的權重值&#xff08;5&#xff09;獲取指定成員在集合…

2308C++簡單異步改造網絡庫

用簡單異步可以輕松改造同步網絡庫從而獲得大幅性能提升,用它改造異步回調網絡庫可以讓我們以同步方式寫代碼,讓代碼更簡潔,可讀性更好,還能避免回調地獄的問題. 本文通過兩個例子分別來介紹如何用簡單異步改造基于asio的同步網絡庫和異步回調網絡庫. 示例依賴了獨立版的asio(…

JavaWeb_總體介紹

文章目錄 1.總括2.JavaWeb項目架構 1.總括 2.JavaWeb項目架構

request.post,json和data

參考 https://zhuanlan.zhihu.com/p/140372568 https://zhuanlan.zhihu.com/p/140372568 介紹 這兩條請求語句使用了不同的參數傳遞方式&#xff0c;有以下區別&#xff1a;1. requests.post(urlhttp://xx.8.84.xx:8000/inference, jsondata)這個語句使用了 json 參數&#…

js設置css變量控制頁面一行展示指定個數的元素

前置知識&#xff1a; CSS變量之var()函數的應用——動態修改樣式 & root的使用 flex相關知識 場景&#xff1a; 動態設置給父元素內子元素設置每行排列幾個 通過 document.body.style.setProperty(--itemNum, 5)設置樣式變量&#xff0c;然后通過給父元素設置display: f…

RocketMQ發送消息失敗:error CODE: 14 DESC: service not available now, maybe disk full

在執行業務時&#xff0c;發現MQ控制臺沒有查詢到消息&#xff0c;在日志中發現消息發送失敗&#xff0c;報錯error CODE: 14 DESC: service not available now, maybe disk full 分析報錯應該是磁盤空間不足&#xff0c;導致broker不能進行正常的消息存儲刷盤&#xff0c;去查…

MySQL 窗口函數是什么,有這么好用

先看這段像天書一樣的 SQL ,看著就頭疼。 SELECTs1.name,s1.subject,s1.score,sub.avg_score AS average_score_per_subject,(SELECT COUNT(DISTINCT s2.score) 1 FROM scores s2 WHERE s2.score > s1.score) AS score_rank FROM scores s1 JOIN (SELECT subject, AVG(sco…

Android 13 MTK平臺添加自定義按鍵,以及CTS問題解決

添加自定義按鍵流程 一般來說上層添加以下幾處修改 驅動層的鍵值上報,讓驅動處理好即可 frameworks / base/core/java/android/view/KeyEvent.java public static final int KEYCODE_DEMO_APP_4 = 304;/** add by songhui for fingerprint Key code */+ public static fina…

IntelliJ IDEA Bookmark使用

1 增加 右鍵行號欄 2 查看 從favorite這里查看 參考IntelliJ IDEA 小技巧&#xff1a;Bookmark(書簽)的使用_bookmark idea 使用_大唐冠軍侯的博客-CSDN博客

neo4j的CQL命令實例演示

天行健&#xff0c;君子以自強不息&#xff1b;地勢坤&#xff0c;君子以厚德載物。 每個人都有惰性&#xff0c;但不斷學習是好好生活的根本&#xff0c;共勉&#xff01; 文章均為學習整理筆記&#xff0c;分享記錄為主&#xff0c;如有錯誤請指正&#xff0c;共同學習進步。…

07-2_Qt 5.9 C++開發指南_二進制文件讀寫(stm和dat格式)

文章目錄 1. 實例功能概述2. Qt預定義編碼文件的讀寫2.1 保存為stm文件2.2 stm文件格式2.3 讀取stm文件 3. 標準編碼文件的讀寫3.1 保存為dat文件3.2 dat文件格式3.3 讀取dat文件 4. 框架及源碼4.1 可視化UI設計4.2 mainwindow.cpp 1. 實例功能概述 除了文本文件之外&#xff…

pve和openwrt以及我的電腦中網絡的關系和互通組網

情況1 一臺主機 有4個口&#xff0c;分別eth0,eth1,eth2,eth3 pve有管理口 這個情況下 &#xff0c;沒有openwrt 直接電腦和pve管理口連在一起就能進pve管理界面 情況2 假設pve 的管理口味eth0 openwrt中橋接的是eth0 eth1 eth2 那么電腦連接eth3或者pve管理口設置eth3&#xf…

【C#】設置有線網卡IP地址,子網掩碼,網關,DNS

方法 public partial class ComputerInfo{/// <summary>/// 設置IP地址&#xff0c;子網掩碼&#xff0c;網關&#xff0c;DNS/// </summary>public static List<NetworkAdapterInfo> SetIpAddressSubMaskDnsGeteway(string ipAddress, string subMask, stri…

MySQL庫的操作

文章目錄 MySQL庫的操作1. 創建數據庫2. 字符集和校驗規則(1) 查看系統默認字符集以及校驗規則(2) 查看數據庫支持的字符集和校驗規則(3) 案例(4) 校驗規則對數據庫的影響 3. 查看數據庫4. 修改數據庫5. 刪除數據庫6. 數據庫的備份和恢復(1) 備份(2) 還原 7. 查看連接情況 MySQ…

在 Windows 中恢復數據的 5 種方法

發生數據丟失的原因有多種。無論是因為文件被意外刪除、文件系統或操作系統損壞&#xff0c;還是由于軟件或硬件級別的存儲故障&#xff0c;數據都會在您最意想不到的時候丟失。今天我們重點介紹五種數據恢復方法&#xff0c;以應對意外情況的發生。 1.從另一臺機器啟動硬盤 如…