最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue Element前端應(yīng)用開發(fā)之界面語言國際化

 更新時間:2021年05月13日 08:56:09   作者:伍華聰  
我們開發(fā)的系統(tǒng),一般可以不用考慮語言國際化的問題,大多數(shù)系統(tǒng)一般是給本國人使用的,而且直接使用中文開發(fā)界面會更加迅速 一些,不過框架最好能夠支持國際化的處理,以便在需要的時候,可以花點時間來實現(xiàn)多語言切換的處理,使系統(tǒng)具有更廣泛的受眾用戶。

概述

VUE+Element 前端應(yīng)用實現(xiàn)國際化的處理還是非常方便的,一般在Main.js函數(shù)里面引入語言文件,然后在界面上進行一定的處理,把對應(yīng)的鍵值轉(zhuǎn)換為對應(yīng)語言的語義即可。本篇隨筆介紹在VUE+Element 前端應(yīng)用中如何實現(xiàn)在界面快速的支持多語言國際化的處理邏輯代碼。

1、main入口函數(shù)支持

Element 組件內(nèi)部默認使用中文,若希望使用其他語言,則需要進行多語言設(shè)置。以英文為例,在 main.js 中:

// 完整引入 Element
import Vue from 'vue'
import ElementUI from 'element-ui'
import locale from 'element-ui/lib/locale/lang/en'

Vue.use(ElementUI, { locale })

由于我們現(xiàn)在是需要處理多語言的切換,那么,我們在src下面的一個目錄里面創(chuàng)建一個lang目錄,在其中里面編輯zh.js和en.js分別代表中英文語言對照信息,index.js文件則為引入這兩個文件的處理關(guān)系。

在index.js里面,需要設(shè)置一個函數(shù),用來獲取Cookie里面存儲的語言,如果沒有找到,以瀏覽器國際化語言為準(zhǔn),如下代碼所示。

export function getLanguage() {
  const chooseLanguage = Cookies.get('language')
  if (chooseLanguage) return chooseLanguage

  // 如果沒有選擇語言,那么使用瀏覽器語言
  const language = (navigator.language || navigator.browserLanguage).toLowerCase()
  const locales = Object.keys(messages)
  for (const locale of locales) {
    if (language.indexOf(locale) > -1) {
      return locale
    }
  }
  return 'en'
}

其中代碼行

const locales = Object.keys(messages)

是獲取message對象里面的鍵,如下所示。

import Vue from 'vue'
import VueI18n from 'vue-i18n'
import Cookies from 'js-cookie'
import elementEnLocale from 'element-ui/lib/locale/lang/en' // element-ui lang
import elementZhLocale from 'element-ui/lib/locale/lang/zh-CN'// element-ui lang
import enLocale from './en'
import zhLocale from './zh'

Vue.use(VueI18n)

// 定義對應(yīng)語言鍵,展開對應(yīng)的鍵值對應(yīng)表
const messages = {
  en: {
    ...enLocale,
    ...elementEnLocale
  },
  zh: {
    ...zhLocale,
    ...elementZhLocale
  }
}

其中message就是一個兩個語言(en/zh)字典下的對照表,包含各自對應(yīng)鍵值下的內(nèi)容。

然后整個index.js文件就是公布對應(yīng)的多語言處理接口和屬性。

const i18n = new VueI18n({
  locale: getLanguage(),
  messages
})

export default i18n

然后在main.js函數(shù)里面處理國際化的處理即可

Vue.use(ElementUI, {
  size: Cookies.get('size') || 'medium', // set element-ui default size
  i18n: (key, value) => i18n.t(key, value) })

new Vue({
  el: '#app',
  router,
  store,
  i18n,
  render: h => h(App)
})

有了這些準(zhǔn)備,那么我們在界面上就可以調(diào)用對應(yīng)的鍵來獲取對應(yīng)語言的語義了,

2、界面處理實現(xiàn)

首先,我們編輯一下對應(yīng)國際化的鍵值內(nèi)容,例如中文參照如下所示。

例如對應(yīng)登錄界面上,界面效果如下所示。

或者

其中里面的文本內(nèi)容,我們都是以國際化處理內(nèi)容。

如登陸表單里面的代碼如下所示。

<el-form ref="loginForm" :model="loginForm" :rules="rules" class="loginForm">
          <el-form-item prop="username" class="login-item">
            <el-input
              v-model="loginForm.username"
              class="area"
              type="text"
              :placeholder="$t('login.username')"
              prefix-icon="el-icon-user-solid"
              @keyup.enter.native="submitForm('loginForm')"
            />
          </el-form-item>
          <el-form-item prop="password" class="login-item">
            <el-input
              v-model="loginForm.password"
              class="area"
              type="password"
              :placeholder="$t('login.password')"
              prefix-icon="el-icon-lock"
              @keyup.enter.native="submitForm('loginForm')"
            />
          </el-form-item>

          <el-form-item>
            <el-button :loading="loading" type="primary" class="submit_btn" @click="submitForm('loginForm')">{{ $t('login.logIn') }}</el-button>
          </el-form-item>
          <div class="tiparea">
            <span style="margin-right:20px;">{{ $t('login.username') }} : admin</span>
            <span> {{ $t('login.password') }} : {{ $t('login.any') }}</span>
          </div>
        </el-form>

我們多處采用了類似$t('login.username') 的函數(shù)處理方式來動態(tài)獲取對應(yīng)語言的內(nèi)容即可,其中$t()函數(shù)里面就是對應(yīng)的語義解析的鍵參數(shù),對應(yīng)我們lang/zh.js里面或者lang/en.js里面的內(nèi)容即可。

其中多語言切換的時候,單擊圖標(biāo)就可以切換為其他語言內(nèi)容了。

切換英文后界面如下所示

同樣,其他地方,如果需要切換多語言的國際化處理,也可以使用$t的轉(zhuǎn)義方式,在頂部導(dǎo)航欄里面,我們可以設(shè)置得到多語言支持的界面。

中文界面提示如下所示。

這部分的實現(xiàn)代碼是在組件模塊里面,一樣可以實現(xiàn)國際化的處理的。

<template v-if="device!=='mobile'">
    <search id="header-search" class="right-menu-item" />
    <error-log class="errLog-container right-menu-item hover-effect" />
    <el-tooltip :content="$t('navbar.fullscreen')" effect="dark" placement="bottom">
      <screenfull id="screenfull" class="right-menu-item hover-effect" />
    </el-tooltip>
    <el-tooltip :content="$t('navbar.size')" effect="dark" placement="bottom">
      <size-select id="size-select" class="right-menu-item hover-effect" />
    </el-tooltip>
    <el-tooltip :content="$t('navbar.language')" effect="dark" placement="bottom">
      <lang-select class="right-menu-item hover-effect" />
    </el-tooltip>
  </template>

以上就是Vue Element前端應(yīng)用開發(fā)之界面語言國際化的詳細內(nèi)容,更多關(guān)于Vue Element之界面語言國際化的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Pinia進階setup函數(shù)式寫法封裝到企業(yè)項目

    Pinia進階setup函數(shù)式寫法封裝到企業(yè)項目

    這篇文章主要為大家介紹了Pinia進階setup函數(shù)式寫法封裝到企業(yè)項目實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-07-07
  • 利用vscode編寫vue的簡單配置詳解

    利用vscode編寫vue的簡單配置詳解

    這篇文章主要給大家介紹了利用vscode編寫vue簡單配置的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家具有一定的參考學(xué)習(xí)價值,需要的朋友們下面跟著小編一起來學(xué)習(xí)學(xué)習(xí)吧。
    2017-06-06
  • bootstrap vue.js實現(xiàn)tab效果

    bootstrap vue.js實現(xiàn)tab效果

    這篇文章主要為大家詳細介紹了bootstrap vue.js實現(xiàn)tab效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-02-02
  • Vue非父子組件之間的通信方式詳解

    Vue非父子組件之間的通信方式詳解

    在實際業(yè)務(wù)中,除了父子組件通信外,還有很多非父子組件通信的場景,下面這篇文章主要給大家介紹了關(guān)于Vue非父子組件之間的通信方式,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-07-07
  • vue項目多環(huán)境配置(.env)的實現(xiàn)

    vue項目多環(huán)境配置(.env)的實現(xiàn)

    最常見的多環(huán)境配置,就是開發(fā)環(huán)境配置,和生產(chǎn)環(huán)境配置,本文主要介紹了vue項目多環(huán)境配置的實現(xiàn),感興趣的可以了解一下
    2021-07-07
  • vue3路由跳轉(zhuǎn)params傳參接收不到的解決辦法

    vue3路由跳轉(zhuǎn)params傳參接收不到的解決辦法

    這篇文章主要給大家介紹了關(guān)于vue3路由跳轉(zhuǎn)params傳參接收不到的解決辦法,Vue3是目前前端開發(fā)中非常流行的框架之一,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-06-06
  • Vue3中使用富文本編輯器的示例詳解

    Vue3中使用富文本編輯器的示例詳解

    這篇文章主要為大家詳細介紹了Vue3中使用富文本編輯器的相關(guān)知識,文中的示例代碼講解詳細,具有一定的學(xué)習(xí)價值,感興趣的小伙伴可以參考一下
    2023-10-10
  • Vue3獲取響應(yīng)式數(shù)據(jù)的四種方法

    Vue3獲取響應(yīng)式數(shù)據(jù)的四種方法

    Vue 3 引入了一個全新的響應(yīng)式系統(tǒng),其中最核心的就是 reactive 和 ref,它們是實現(xiàn)響應(yīng)式數(shù)據(jù)的基礎(chǔ),用于創(chuàng)建可以自動跟蹤變化并更新視圖的對象和變量,本文介紹了Vue3獲取響應(yīng)式數(shù)據(jù)的四種方法,需要的朋友可以參考下
    2024-08-08
  • vue中注冊組件的兩種方式詳解(全局注冊&& 局部注冊)

    vue中注冊組件的兩種方式詳解(全局注冊&& 局部注冊)

    vue 是一個完全支持組件化開發(fā)的框架, 組件之間可以進行相互的引用,這篇文章主要介紹了vue中注冊組件的兩種方式詳解(全局注冊&& 局部注冊),需要的朋友可以參考下
    2023-06-06
  • Vue2+Element-ui實現(xiàn)el-table表格自適應(yīng)高度的案例

    Vue2+Element-ui實現(xiàn)el-table表格自適應(yīng)高度的案例

    這篇文章主要介紹了Vue2+Element-ui實現(xiàn)el-table表格自適應(yīng)高度的案例,本文結(jié)合示例代碼給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧
    2024-06-06

最新評論

郴州市| 宜良县| 仁布县| 礼泉县| 射洪县| 射洪县| 明水县| 萨迦县| 鞍山市| 乐至县| 华蓥市| 本溪市| 登封市| 阿勒泰市| 鹿泉市| 昭平县| 鄂州市| 乾安县| 河曲县| 宜兰市| 桦南县| 台南县| 普宁市| 苏尼特左旗| 潜江市| 长乐市| 石柱| 德江县| 来凤县| 濉溪县| 阳高县| 石门县| 正宁县| 舞阳县| 江达县| 青田县| 珲春市| 炉霍县| 巴马| 垦利县| 镇巴县|