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

Vue應(yīng)用多語(yǔ)言支持工程化最佳實(shí)踐

這篇具有很好參考價(jià)值的文章主要介紹了Vue應(yīng)用多語(yǔ)言支持工程化最佳實(shí)踐。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

前言

VoerkaI18n是一款非常優(yōu)秀的全新的開(kāi)源國(guó)際化多語(yǔ)言解決方案,主要特性包括:

  • 全面工程化解決方案,提供初始化、提取文本、自動(dòng)翻譯、編譯等工具鏈支持。
  • 符合直覺(jué),不需要手動(dòng)定義文本Key映射。
  • 強(qiáng)大的插值變量格式化器機(jī)制,可以擴(kuò)展出強(qiáng)大的多語(yǔ)言特性。
  • 支持babel插件自動(dòng)導(dǎo)入t翻譯函數(shù)。
  • 支持nodejs、瀏覽器(vue/react/solid)等、React Native等任意JS場(chǎng)景
  • 采用工具鏈與運(yùn)行時(shí)分開(kāi)設(shè)計(jì),發(fā)布時(shí)只需要集成很小的運(yùn)行時(shí)。
  • 高度可擴(kuò)展的復(fù)數(shù)、貨幣、數(shù)字等常用的多語(yǔ)言處理機(jī)制。
  • 翻譯過(guò)程內(nèi),提取文本可以自動(dòng)進(jìn)行同步,并保留已翻譯的內(nèi)容。
  • 可以動(dòng)態(tài)在線添加支持的語(yǔ)言
  • 支持發(fā)布后的在線打語(yǔ)言包補(bǔ)丁,修復(fù)翻譯錯(cuò)誤
  • 支持調(diào)用在線自動(dòng)翻譯對(duì)提取文本進(jìn)行翻譯。
  • 核心運(yùn)行時(shí)@voerkai18n/runtime超過(guò)90%的測(cè)試覆蓋率
  • 支持·TypeScript·開(kāi)發(fā)

本節(jié)主要介紹如何在Vue 3應(yīng)用中使用VoerkaI18n。

創(chuàng)建Vue 3應(yīng)用一般采用ViteVue Cli來(lái)創(chuàng)建工程。在Vue3應(yīng)用中引入voerkai18n來(lái)添加國(guó)際化應(yīng)用需要由兩個(gè)插件來(lái)簡(jiǎn)化應(yīng)用。

  • @voerkai18n/vue

    Vue插件,在初始化Vue應(yīng)用時(shí)引入,提供訪問(wèn)當(dāng)前語(yǔ)言、切換語(yǔ)言自動(dòng)更新等功能。

  • @voerkai18n/vite

    Vite插件,在vite.config.js中配置,用來(lái)實(shí)現(xiàn)自動(dòng)文本映射t函數(shù)的自動(dòng)導(dǎo)入等功能。

@voerkai18n/vue@voerkai18n/vite兩件插件相互配合,安裝配置好這兩個(gè)插件后,就可以在Vue文件使用多語(yǔ)言t函數(shù)。

第一步:基本流程

Vue應(yīng)用啟用VoerkaI18n國(guó)際化功能的完整工程化流程如下:

  • 調(diào)用voerkai18n init初始化多語(yǔ)言工程
  • 調(diào)用voerkai18n extract提取要翻譯的文本
  • 調(diào)用voerkai18n translate進(jìn)行自動(dòng)翻譯或人工翻譯
  • 調(diào)用voerkai18n compile編譯語(yǔ)言包
  • Vue應(yīng)用中引入@voerkai18n/vue@voerkai18n/vite插件
  • 在源碼中使用t函數(shù)進(jìn)行翻譯

完整的工程化流程請(qǐng)參見(jiàn)工程化,以下簡(jiǎn)要介紹如何在Vue應(yīng)用中使用VoerkaI18n。

第二步:?jiǎn)⒂聾voerkai18n/vite插件

@voerkai18n/vite插件作用是:

  • 可以根據(jù)idMap.ts映射文件將源碼中的t("xxxxx")轉(zhuǎn)換為t("<數(shù)字>")的形式,從而實(shí)現(xiàn)消除翻譯內(nèi)容的冗余內(nèi)容。
  • 實(shí)現(xiàn)自動(dòng)導(dǎo)入t函數(shù)的功能,省卻手動(dòng)導(dǎo)入的麻煩。

@voerkai18n/vite插件的安裝非常簡(jiǎn)單,只需要在vite.config.(ts|js)中添加如下內(nèi)容:


import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import Inspect from 'vite-plugin-inspect'
import Voerkai18nPlugin from "@voerkai18n/vite"
 
export default defineConfig({
  plugins: [    
    Inspect(),                // 可選    
    Voerkai18nPlugin(),       // 新增加
    vue()
  ],
})

  • @voerkai18n/vite插件僅在開(kāi)發(fā)和構(gòu)建階段作用。事實(shí)上,如果不在乎文本內(nèi)容的冗余,不安裝此插件也是可以工作正常的。
  • vite-plugin-inspect僅用于調(diào)試,可以在http://localhost:3000/__inspect/查看當(dāng)前工程中的@voerkai18n/vite是否正確地進(jìn)行自動(dòng)導(dǎo)入和idMap.ts映射,供開(kāi)發(fā)階段進(jìn)行調(diào)試使用。
  • @voerkai18n/vite插件的完整使用說(shuō)明。

第三步:配置@voerkai18n/vue插件

@voerkai18n/vue插件用來(lái)自動(dòng)注入t函數(shù)、切換語(yǔ)言等功能。

安裝方法如下:

import { createApp } from 'vue'
import './style.css'
import App from './App.vue'
// 導(dǎo)入插件
import i18nPlugin from '@voerkai18n/vue'
// 導(dǎo)入當(dāng)前作用域
import { i18nScope } from './languages'

// 等待i18nScope初始化完成
i18nScope.ready(()=>{
  const app = createApp(App)
  // 應(yīng)用插件
  app.use<VoerkaI18nPluginOptions>(i18nPlugin as any,{
      i18nScope
  })
  app.mount('#app')
})


@voerkai18n/vue插件本質(zhì)上是為每一個(gè)Vue組件自動(dòng)混入t函數(shù)。

第四步:使用t翻譯函數(shù)

Vue應(yīng)用使用多語(yǔ)言本質(zhì)是調(diào)用import { t } from 'langauges導(dǎo)入的t函數(shù)來(lái)進(jìn)行翻譯。


<script setup>
// 手動(dòng)導(dǎo)入t函數(shù)
// 如果啟用了@voerkai18n/vite插件,則可以省略此行實(shí)現(xiàn)自動(dòng)導(dǎo)入
import { t } from "./languages"
console.log(t("Welcome to VoerkaI18n"))

</script>


// 直接使用t函數(shù),不需要導(dǎo)入
<script>
export default {
    data(){
        return {
            username:"",
            password:"",
            title:t("認(rèn)證")
        }
    },
    methods:{
        login(){
            alert(t("登錄"))
        }
    }
}
</script>
// 直接使用
<template>
	<div>
        <h1>{{ t("請(qǐng)輸入用戶名稱") }}</h1>
        <div>
            <span>{{t("用戶名:")}}</span><input type="text" :placeholder="t('郵件/手機(jī)號(hào)碼/帳號(hào)')"/>
            <span>{{t("密碼:")}}</span><input type="password" :placeholder="t('至少6位的密碼')"/>            
    	</div>            
    </div>
        <button @click="login">{{t("登錄")}}</button>
    </div>
</template>

重點(diǎn):

  • <script setup>中手動(dòng)導(dǎo)入import { t } from "./languages"
  • <script><template>中可以直接使用t函數(shù)進(jìn)行翻譯。
  • @voerkai18n/vue插件本質(zhì)上是為每一個(gè)Vue組件自動(dòng)混入t函數(shù),并在在語(yǔ)言切換時(shí)會(huì)自動(dòng)重新渲染

第五步:切換語(yǔ)言

引入@voerkai18n/vue插件來(lái)實(shí)現(xiàn)切換語(yǔ)言和自動(dòng)重新渲染的功能。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-777965.html


<script setup lang="ts">
import { injectVoerkaI18n } from "@voerkai18n/vue"

// 提供一個(gè)i18n對(duì)象
const i18n = injectVoerkaI18n()
</script>

<script>
export default {
   //......
}
</script>  
<template>
  <img alt="Vue logo" src="./assets/logo.png" />
  <h1>{{ t("中華人民共和國(guó)")}} </h1>
  <h2>{{ t("迎接中華民族的偉大復(fù)興")}} </h2>
  <h5>默認(rèn)語(yǔ)言:{{ i18n.defaultLanguage }}</h5>
  <h5>當(dāng)前語(yǔ)言:{{ i18n.activeLanguage }}</h5>
  <!-- 遍歷支持的語(yǔ)言  -->
  <button v-for="lng of i18n.languages" 
    @click="i18n.activeLanguage = lng.name"  
    >{{ lng.title }}</button>
</template>

小結(jié)

  • @voerkai18n/vue插件為Vue單文件組件提供自動(dòng)注入t函數(shù),可以在<script><template>中直接使用,在<script setup>中需要手動(dòng)從language中導(dǎo)入t函數(shù)。
  • Vue應(yīng)用的中普通js/ts文件需要手動(dòng)從language中導(dǎo)入t函數(shù)。
  • 使用injectVoerkaI18n()來(lái)實(shí)現(xiàn)遍歷支持的語(yǔ)言和切換語(yǔ)言的功能。
  • 當(dāng)切換語(yǔ)言時(shí)會(huì)自動(dòng)重新渲染組件。
  • @voerkai18n/vue插件只能用在Vue 3
  • 完整的示例請(qǐng)見(jiàn)這里

到了這里,關(guān)于Vue應(yīng)用多語(yǔ)言支持工程化最佳實(shí)踐的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 前端工程化-VUE

    前端工程化-VUE

    高效的開(kāi)發(fā)離不開(kāi)基礎(chǔ)工程的搭建。本章主要介紹如何使用Vue進(jìn)行實(shí)際SPA項(xiàng)目的開(kāi)發(fā),這里使用的是目前熱門(mén)的JavaScript應(yīng)用程序模塊打包工具Webpack,進(jìn)行模塊化開(kāi)發(fā)、代碼編譯和打包。 Vue腳手架指的是Vue-cli,它是一個(gè)專(zhuān)門(mén)為單頁(yè)面應(yīng)用快速搭建繁雜程序的腳手架,它可以輕

    2024年02月08日
    瀏覽(98)
  • VUE工程化--vue組件注冊(cè)

    VUE工程化--vue組件注冊(cè)

    組件注冊(cè)的兩種方式: 1. 局部注冊(cè):只能在注冊(cè)的組件內(nèi)使用 2. 全局注冊(cè):所有組件內(nèi)都能使用 ? 局部注冊(cè)步驟: ? ? ? ? 1、導(dǎo)入 ? ? ? ? 2、注冊(cè)組件--注冊(cè)成html標(biāo)簽(components中) ? ? ? ? 3、頁(yè)面中使用標(biāo)簽 實(shí)現(xiàn)效果: ? 全局注冊(cè)步驟( main.js ): ? ? ? ? 1、導(dǎo)入

    2024年01月18日
    瀏覽(31)
  • vue項(xiàng)目工程化入門(mén)

    mac電腦 使用Vue-cli來(lái)完成 通過(guò)命令先進(jìn)入到圖形化界面,然后再進(jìn)行vue工程的創(chuàng)建 圖形化界面如下: 到此,vue項(xiàng)目創(chuàng)建結(jié)束 我們通過(guò)VS Code打開(kāi)之前創(chuàng)建的vue文件夾,打開(kāi)之后,呈現(xiàn)如下圖所示頁(yè)面: vue項(xiàng)目的標(biāo)準(zhǔn)目錄結(jié)構(gòu)以及目錄對(duì)應(yīng)的解釋如下圖所示: 其中我們平時(shí)開(kāi)發(fā)

    2024年02月08日
    瀏覽(22)
  • Vue3工程化項(xiàng)目搭建

    Vue3工程化項(xiàng)目搭建

    源碼:vue3-quick-start 預(yù)覽:vue3-quick-start 工程化概述 前端工程化大致可以分為模塊化、組件化、規(guī)范化和自動(dòng)化。 規(guī)范化 項(xiàng)目目錄結(jié)構(gòu) 語(yǔ)法提示 編碼風(fēng)格規(guī)范 聯(lián)調(diào)規(guī)范 文件命名規(guī)范 代碼樣式規(guī)范 git flow 模塊化 模塊化是指將一個(gè)文件拆分成多個(gè)相互依賴的文件,最后進(jìn)行

    2024年02月16日
    瀏覽(30)
  • 前端工程化實(shí)戰(zhàn):React 模塊化開(kāi)發(fā)、性能優(yōu)化和組件化實(shí)踐

    前端工程化實(shí)戰(zhàn)是指通過(guò)組織工作流程、使用工具和技術(shù)來(lái)提高前端開(kāi)發(fā)效率和質(zhì)量的一種方法。常見(jiàn)的前端工程化實(shí)踐包括模塊化開(kāi)發(fā)、自動(dòng)化構(gòu)建、代碼檢查和測(cè)試、性能優(yōu)化等。下面將簡(jiǎn)要介紹模塊化開(kāi)發(fā)、性能優(yōu)化和組件化實(shí)踐。 模塊化開(kāi)發(fā) 在 React 中實(shí)現(xiàn)模塊化開(kāi)

    2023年04月10日
    瀏覽(100)
  • Vue2基礎(chǔ)五、工程化開(kāi)發(fā)

    Vue2基礎(chǔ)五、工程化開(kāi)發(fā)

    1、工程化開(kāi)發(fā)和腳手架 (1)開(kāi)發(fā) Vue 的兩種方式 核心包傳統(tǒng)開(kāi)發(fā)模式:基于 html / css / js 文件,直接引入核心包,開(kāi)發(fā) Vue。 工程化開(kāi)發(fā)模式:基于構(gòu)建工具(例如:webpack ) 的環(huán)境中開(kāi)發(fā) Vue。 **工程化開(kāi)發(fā)模式優(yōu)點(diǎn):**提高編碼效率,比如使用JS新語(yǔ)法、Less/Sass、Typescript等

    2024年02月15日
    瀏覽(49)
  • vue2 生命周期,工程化開(kāi)發(fā)入門(mén)

    vue2 生命周期,工程化開(kāi)發(fā)入門(mén)

    1.生命周期 生命周期介紹 生命周期的四個(gè)階段 生命周期鉤子 聲明周期案例 2.工程化開(kāi)發(fā)入門(mén) 工程化開(kāi)發(fā)和腳手架 項(xiàng)目運(yùn)行流程 組件化 組件注冊(cè) 思考:什么時(shí)候可以發(fā)送初始化渲染請(qǐng)求?(越早越好)什么時(shí)候可以開(kāi)始操作dom?(至少dom得渲染出來(lái)) Vue生命周期:就是一

    2024年02月11日
    瀏覽(91)
  • Vue生命周期;綜合案例;工程化開(kāi)發(fā)入門(mén)

    Vue生命周期;綜合案例;工程化開(kāi)發(fā)入門(mén)

    思考: 什么時(shí)候可以發(fā)送初始化渲染請(qǐng)求?(越早越好:最早可以早到什么時(shí)候?) 什么時(shí)候可以開(kāi)始 操作dom ?(至少dom得渲染出來(lái)) Vue生命周期 :一個(gè)Vue實(shí)例從***創(chuàng)建***到***銷(xiāo)毀***的整個(gè)過(guò)程 new Vue( ) ①創(chuàng)建(生命就開(kāi)始了)→②掛載→③更新→④銷(xiāo)毀(比如網(wǎng)頁(yè)被關(guān)

    2024年01月23日
    瀏覽(18)
  • 17-工程化開(kāi)發(fā) & 腳手架 Vue CLI

    17-工程化開(kāi)發(fā) & 腳手架 Vue CLI

    1.核心包傳統(tǒng)開(kāi)發(fā)模式: 基于 html/css /js 文件,直接引入核心包,開(kāi)發(fā) Vue。 2. 工程化開(kāi)發(fā)模式: 基于構(gòu)建工具 (例如: webpack)的環(huán)境中開(kāi)發(fā) Vue。 ? ?問(wèn)題: ? ? ? ? 1. webpack 配置不簡(jiǎn)單 ? ? ? ? 2. 雷同的基礎(chǔ)配置 ? ? ? ? 3. 缺乏統(tǒng)一標(biāo)準(zhǔn) 需要一個(gè)工具,生成標(biāo)準(zhǔn)化的配置 基本介

    2024年02月11日
    瀏覽(96)
  • Vite + Vue3 實(shí)現(xiàn)前端項(xiàng)目工程化

    Vite + Vue3 實(shí)現(xiàn)前端項(xiàng)目工程化

    Vue3 發(fā)布至今,周邊的生態(tài)、技術(shù)方案已足夠成熟,個(gè)人認(rèn)為新項(xiàng)目是時(shí)候切換到 Vite + Vue3 了。今天就給大家操作一下這種技術(shù)方案實(shí)現(xiàn)前端工程化。 數(shù)字化管理平臺(tái) Vue3+Vite+VueRouter+Pinia+Axios+ElementPlus Vue權(quán)限系統(tǒng)案例 個(gè)人博客 通過(guò)官方腳手架初始化項(xiàng)目 第一種方式,這是使

    2024年02月03日
    瀏覽(94)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包