国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

vue2+element-ui 實(shí)現(xiàn)國際化

這篇具有很好參考價(jià)值的文章主要介紹了vue2+element-ui 實(shí)現(xiàn)國際化。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

1. 安裝vue-i8n依賴

npm i vue-i18n

2. 創(chuàng)建語言包文件

在src目錄下創(chuàng)建一個(gè)lang文件夾,同時(shí)創(chuàng)建zh.js(中文),en.js(英文),ja.js(日文),fr.js(法文)四個(gè)語言包js文件,并創(chuàng)建一個(gè)index.js文件,用來整合語言包
對于一個(gè)項(xiàng)目來說,一個(gè)語言包需要包含所有頁面以及組件;在語言包以頁面為單位,創(chuàng)建一個(gè)對象;對公共的title或者按鈕名稱可以單獨(dú)提取出來。此處只展示中文和英文文件,其它語言包同中英文文件格式。
zh.js

export default {
  ModelObj: {
    title: '模板列表',
    rAddBtn: '新增模板',
    searchSelect: {
      optionLabel1: '所有狀態(tài)',
      optionLabel2: '啟動',
      optionLabel3: '禁止'
    },
    filterInputplac: '請輸入模板標(biāo)題',
    searchBtn: '搜索',
    resetBtn: '重置',
    table: {
      colu1: '模板標(biāo)題',
      colu2: '發(fā)布者',
      colu3: '創(chuàng)建時(shí)間',
      colu4: '狀態(tài)',
      colu5: '操作',
      operationbtn1: '管理字段',
      operationbtn2: '修改',
      operationbtn3: '刪除'
    }
  }
}

eh.js

export default {
  ModelObj: {
    title: 'Registration template list',
    rAddBtn: 'New registration template',
    searchSelect: {
      optionLabel1: 'All states',
      optionLabel2: 'start',
      optionLabel3: 'forbidden'
    },
    filterInputplac: 'Please enter the template title',
    searchBtn: 'search',
    resetBtn: 'reset',
    table: {
      colu1: 'Template title',
      colu2: 'publisher',
      colu3: 'Creation time',
      colu4: 'state',
      colu5: 'operation',
      operationbtn1: 'Management field',
      operationbtn2: 'modify',
      operationbtn3: 'delete'
    }
  }
}

基礎(chǔ)的語言包創(chuàng)建完之后在index.js文件中對這些語言包進(jìn)行整合。
Index.js
(1)引入自己新創(chuàng)建的語言包
(2)此處暫不說明國際化持久化以及element-ui組件國際化的兼容性
(3)創(chuàng)建一個(gè)messages對象,放入語言包
(需要注意,messages名稱不可更改,更改后失效,原因未查明,可能與vue-i18n中的html格式化有關(guān))
(4)創(chuàng)建一個(gè)vue-i18n實(shí)例,messages對象放入實(shí)例中;最后導(dǎo)出

import Vue from 'vue'
import VueI18n from 'vue-i18n'
// 從語言包文件中導(dǎo)入語言包對象
import zh from './zh'
import en from './en'
Vue.use(VueI18n)
const messages = {
  zh: {
    ...zh,
    ...zhLocale
  },
  en: {
    ...en,
    ...enLocale
  }
}
const i18n = new VueI18n({
  messages,
  locale: userstore.state.langs,
  fallbackLocale: 'zh', // 若某個(gè)語言環(huán)境變量,則使用fallbackLocale環(huán)境下對應(yīng)的變量
  silentFallbackWarn: true, // 抑制警告
  globalInjection: true // 全局注入
})
export default i18n

3. main.js 引入

引入語言包后掛載到vue實(shí)例上

import i18n from './lang/index'
new Vue({
  el: '#app',
  router,
  i18n, // 掛載
  components: { App },
  template: '<App/>',
  store: userstore
})

4. 切換語言組件

為了方便使用,可以將切換語言的組件寫成全局組件,進(jìn)行全部頁面的語言切換。

<template>
  <div class="switch-lang-wrap">
    <!--新增切換語言按鈕-->
    <div class="change-lans">
      <el-radio-group v-model="radio" @change="changeLang">
        <el-radio :label="'zn'">中文</el-radio>
        <el-radio :label="'en'">英文</el-radio>
      </el-radio-group>
    </div>
  </div>
</template>

<script>
export default {
  name: 'switchLang',
  data () {
    return {
      radio: this.$store.state.langs
    }
  },
  methods: {
    changeLang (val) {
      this.$nextTick(() => {
        this.$store.commit('setLangInfo', val)
        localStorage.setItem('lang', val)
        this.$i18n.locale = val
      })
    }
  }
}
</script>

<style scoped>
  .change-lans {
    position: fixed;
    top: 60px;
    left: 50%;
    margin: auto;
    z-index: 1000;
  }
</style>

5. 模板渲染使用

國際化字段更換還可以表示復(fù)數(shù),以及傳遞動態(tài)參數(shù),具體用法參考官網(wǎng):https://kazupon.github.io/vue-i18n/introduction.html

 <p class="title">{{$t('ModelObj.title')}}</p>

6. 國際化語言切換持久化

對于目前定義的變量而言,頁面刷新后就會回歸到初始狀態(tài);若是需要保留持久化,則可存儲到vuex。

changeLang (val) {
      this.$nextTick(() => {
        this.$store.commit('setLangInfo', val)
        localStorage.setItem('lang', val)
        this.$i18n.locale = val
      })
    }	

7. element-ui組件國際化

對于vue項(xiàng)目來說,element組件使用較為普遍,其中涉及一些組件的語言切換,具體國際化方法可參考官網(wǎng)文檔:https://element.eleme.cn/#/zh-CN/component/i18n
Element-ui組件國際化時(shí)需要注意,其版本與vue-i18n的版本兼容問題較多,針對vue2來說,vue-i18n版本需要較低一些;vue3中可自己去查看官網(wǎng)
此處element-ui國際化的用法以及創(chuàng)建的語言包融合如下:

import Vue from 'vue'
import VueI18n from 'vue-i18n'
import userstore from '../vuex/userstore'
// 從語言包文件中導(dǎo)入語言包對象
import zh from './zh'
import en from './en'
// element-ui 組件國際化
import ElementLocale from 'element-ui/lib/locale'
import enLocale from 'element-ui/lib/locale/lang/en'
import zhLocale from 'element-ui/lib/locale/lang/zh-CN'

ElementLocale.i18n((key, value) => i18n.t(key, value))
Vue.use(VueI18n)
const messages = {
  zh: {
    ...zh,
    ...zhLocale
  },
  en: {
    ...en,
    ...enLocale
  },
  ja: {
    ...ja,
    ...jaLocale
  },
  fr: {
    ...fr,
    ...frLocale
  }
}
const i18n = new VueI18n({
  messages,
  locale: userstore.state.langs,
  fallbackLocale: 'zh', // 若某個(gè)語言環(huán)境變量,則使用fallbackLocale環(huán)境下對應(yīng)的變量
  silentFallbackWarn: true, // 抑制警告
  globalInjection: true // 全局注入
})
export default i18n

ps:菜鳥一枚,僅以此記錄自己動手實(shí)施的過程,若有問題,還請指正文章來源地址http://www.zghlxwxcb.cn/news/detail-432079.html

到了這里,關(guān)于vue2+element-ui 實(shí)現(xiàn)國際化的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • vue-i18n國際化多語言與多套UI組件庫使用(Element Plus、Ant Design Vue、Naive UI)

    vue-i18n國際化多語言與多套UI組件庫使用(Element Plus、Ant Design Vue、Naive UI)

    demo源碼:Vue3 UI Lang 因調(diào)研需要,需在同一個(gè)項(xiàng)目中集成好幾種UI組件庫的多語言實(shí)現(xiàn),查看各種組件庫的表現(xiàn)情況,以便選定組件庫。 注意:這只在調(diào)研過程中會如此,實(shí)際開發(fā)項(xiàng)目中極少存在一個(gè)項(xiàng)目中集成多個(gè)UI組件庫的情況。 本demo實(shí)際試驗(yàn)阿拉伯語、法語、葡萄牙語

    2024年02月08日
    瀏覽(51)
  • vue 前端 + 若依(ruoyi)后端 實(shí)現(xiàn)國際化

    記錄一下,前端使用vue,后端使用若依(ruoyi,基于spring-boot)實(shí)現(xiàn)頁面,后端返回提示信息國際化 vue:2.6.12 vue-i18n:^8.27.2 安裝vue-i18n,注:最新的交于該版本有差異,所以指定使用版本:8.27.2 添加國際化js文件:language.en_US.js 添加國際化js文件:language.zh_CN.js 添加i18n.js ma

    2024年02月12日
    瀏覽(19)
  • 菜鳥Vue教程 - 實(shí)現(xiàn)帶國際化的注冊登陸頁面

    菜鳥Vue教程 - 實(shí)現(xiàn)帶國際化的注冊登陸頁面

    初接觸vue的時(shí)候覺得vue好難,因?yàn)轫?xiàng)目中要用到,就硬著頭皮上,慢慢的發(fā)現(xiàn)也不難,無外乎畫個(gè)布局,然后通過樣式調(diào)整界面。在通過屬性和方法跟js交互。js就和我們寫的java代碼差不多了,復(fù)雜一點(diǎn)的就是引用這種那種庫,然后就能做出來一個(gè)界面了。如果你的項(xiàng)目就是

    2024年02月12日
    瀏覽(20)
  • vue-i18n 實(shí)現(xiàn)國際化,支持切換不同語言

    vue-i18n 實(shí)現(xiàn)國際化,支持切換不同語言

    需求:后臺管理系統(tǒng),可以實(shí)現(xiàn)語言切換 實(shí)現(xiàn)過程:用的i18n來實(shí)現(xiàn)的語言切換,網(wǎng)上能看到好多模板,根據(jù)自己的需求,修改一下即可使用,大概都是差不多的,因?yàn)樯婕暗胶蠖?,所以要跟后端協(xié)商一致決定去寫,我的設(shè)計(jì)思路是跟著后端設(shè)計(jì)更改的,如下: 1.語言是后端接

    2024年02月12日
    瀏覽(29)
  • Vue2 +Element-ui實(shí)現(xiàn)前端頁面

    Vue2 +Element-ui實(shí)現(xiàn)前端頁面

    以一個(gè)簡單的前端頁面為例。主要是利用vue和element-ui實(shí)現(xiàn)。 里面涉及的主要包括:新建vue項(xiàng)目、一行多個(gè)輸入框、頁面實(shí)現(xiàn)等。 ? ①首先安裝nodejs,這部分在此就不講啦。 ②然后安裝vue-cli: 查看是否安裝成功: 安裝成功之后就輸出vue的版本 ③在cmd窗口新建一個(gè)vue2腳手架

    2024年02月16日
    瀏覽(33)
  • vue2+element-ui實(shí)現(xiàn)側(cè)邊導(dǎo)航欄

    編寫 client/src/components/LeftMenu.vue ,創(chuàng)建側(cè)邊導(dǎo)航欄: 編輯 client/src/views/Index.vue ,引入側(cè)邊導(dǎo)航欄:

    2024年02月02日
    瀏覽(30)
  • vue2&Element-ui實(shí)現(xiàn)表格單元格合并

    vue2&Element-ui實(shí)現(xiàn)表格單元格合并

    由于項(xiàng)目需要實(shí)現(xiàn)單元格合并目前只是單頁沒有做分頁處理先上效果圖 看下數(shù)據(jù)結(jié)構(gòu) Element table提供的api arraySpanMethod columnIndex=0表示從第一列開始 rowIndex表示需要操作的行數(shù) 同濟(jì)醫(yī)院加上合計(jì)有12行從0開始=11 判斷條件是rowIndex余12===0 我們打印一下 或者改成 表示從0開始到1

    2024年02月12日
    瀏覽(37)
  • SpringBoot+Vue前后端分離項(xiàng)目國際化支持

    SpringBoot+Vue前后端分離項(xiàng)目國際化支持

    i18n.js文件 language.en_US.js文件 language.zh_CN.js文件 messages_en_US.properties文件 messages_zh_CN.properties文件

    2024年02月04日
    瀏覽(25)
  • Vue 國際化之 vue-i18n 的使用

    Vue 國際化之 vue-i18n 的使用

    目錄 一、安裝 二、使用 1、準(zhǔn)備語言包 2、準(zhǔn)備翻譯的語言環(huán)境 3、實(shí)現(xiàn)語言翻譯 三、整合 ElementUI 語言包 1、擴(kuò)展中文 2、擴(kuò)展英文? 3、使用擴(kuò)展語言翻譯 四、問題記錄 五、擴(kuò)展 vue3 中使用 vue-i18n 如果在一個(gè)模塊系統(tǒng)中使用它,你必須通過? Vue.use() ?明確地安裝? vue-i18n

    2024年03月14日
    瀏覽(19)
  • 使用uniapp開發(fā)國際化---app,vue,nvue

    使用uniapp開發(fā)國際化---app,vue,nvue

    hello-i18n 示例工程 - DCloud 插件市場 ?en.json----\\\"自定義key\\\":\\\"英文\\\" ?zh-Hans.json----\\\"自定義key\\\":\\\"中文\\\"? ?? ?注意:json文件中的名稱需要中英文對應(yīng)。 index.js vue頁面模板使用---- $t(\\\'\\\') nvue頁面模板使用---- t(\\\'\\\') pages.json 使用 ---- %index.title% data中使用--- this.$t(\\\'\\\') 啟動項(xiàng)目,就可以成功切

    2024年02月06日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包