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

Vue3中,國際化插件vue-i18n使用記錄,配合VSCode自動化翻譯插件i18n Ally

這篇具有很好參考價值的文章主要介紹了Vue3中,國際化插件vue-i18n使用記錄,配合VSCode自動化翻譯插件i18n Ally。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。


說明文檔: vue-i18n

版本說明:

vue: 3.0.0+

vue-i18n: 9.x版

安裝

npm install vue-i18n@9
// 或者
yarn add vue-i18n@9

創(chuàng)建實例

  1. src 目錄下新建目錄 lang,存放i18n的配置。

    新建目錄名稱:lang(語言)、locales(語系設(shè)定)、i18n,這些名稱都可被VSCode圖標插件(vscode-icons)檢測到并美化。

  2. lang目錄下,新建index.js文件,引入vue-i18n。

  3. 語言的配置信息放在另外的文件中。

    例如,設(shè)置英文中文兩種語言類型:新建存放中文配置的文件zh.json和存放英文的文件en.json; 然后在index.js中引入。
    vue國際化插件,vue.js,前端,javascript

vue-i18n使用createI18n創(chuàng)建實例,下面代碼新建了一個i18n實例:

文件位置:src/lang/index.js

import { createI18n } from "vue-i18n";
import EN from "./en";
import ZH from "./zh";

const messages = {
  zh: {
    ...ZH,
  },
  en: {
    ...EN,
  },
};

const i18n = createI18n({
  locale: "zh", // 設(shè)置當前語言類型
  legacy: false, // 如果要支持compositionAPI,此項必須設(shè)置為false;
  globalInjection: true, // 全局注冊$t方法
  messages,
});

export default i18n;

語言配置文件

// zh.json
{
  "hello": "你好"
}


// en.json
{
  "hello": "hello"
}

全局注冊

i18n實例在項目中使用前,需要在入口文件中注冊一下。

進入main.js文件,引入并注冊i18n

import { createApp } from 'vue'

import App from './App.vue'
import i18n from './lang'

const app = createApp(App)

app.use(i18n)

app.mount('#app')

使用

模板中使用

template模板中使用,這個比較簡單,直接使用全局方法$t

<template>
  {{ $t('hello') }}
</template>

頁面中正常顯示:你好

切換英文:src/lang/index.js

const i18n = createI18n({
  locale: "en", // 設(shè)置當前語言類型
  legacy: false, // 如果要支持compositionAPI,此項必須設(shè)置為false;
  globalInjection: true, // 全局注冊$t方法
  messages,
});

頁面中正常顯示:hello

JS中使用

<template>
  {{ $t('hello') }}
</template>
<script>
import { getCurrentInstance } from "vue";
import i18n from '@/lang'; // 引入i8n實例
import { useI18n } from 'vue-i18n';
export default {
  setup() {
    // 第一種方法:獲取i18n實例對象 t 的方法1
    const { proxy } = getCurrentInstance();
    const t1 = proxy.$t('hello');
    console.log(t1);

    // 第二種方法:獲取i18n實例對象 t 的方法1
    const t2 = i18n.global.t('hello');
    console.log(t2);


    // 第三種方法:獲取i18n實例對象 t 的方法3
    const { t } = useI18n() // 解構(gòu)出t方法
    const t3 = t('hello');
    console.log(t3);
    return {};
  },
  mounted() {
    // 第四種方法:獲取i18n實例對象 t 的方法4
    const t4 = this.$t('hello');
    console.log(t4);
  },
};
</script>

語言切換

效果

vue國際化插件,vue.js,前端,javascript

代碼

<template>
  <label for="lang-select">Change language:</label>
  <select name="lang" id="lang-select" @change="changeLang">
    <option value="en">English</option>
    <option value="zh" selected>簡體中文</option>
  </select>
  <table border="1" cellspacing="0" cellpadding="0">
    <tr>
      <td>模板中使用</td>
      <td> {{ $t('hello') }}</td>
    </tr>
    <tr>
      <td>JS中響應(yīng)式切換語言</td>
      <td> {{ hel }}</td>
    </tr>
    <tr>
      <td>當前語言類型</td>
      <td> {{ currentLang }}</td>
    </tr>
  </table>
</template>
<script setup>
import { computed } from 'vue'
import { useI18n } from 'vue-i18n'
const { locale, t } = useI18n();
const changeLang = parameter => {
  const lang = parameter.target.value;
  locale.value = lang; // 切換語言
  localStorage.setItem('LANG', lang); // 本地存儲當前語言類型
}
// 獲取當前語言類型
const currentLang = computed(() => locale.value);
// JS中響應(yīng)式切換中英文(寫入computed中即可)
const hel = computed(() => t('hello'));
</script>
<style scoped>
table {
  margin-top: 50px;
}

table tr td {
  padding: 2px 5px;
}
</style>

VSCode插件i18n Ally

說明文檔:i18n ally

VSCode中安裝i18n Ally插件

vue國際化插件,vue.js,前端,javascript

啟用 i18n Ally

前提是項目中需要安裝 vue-i18n 插件!

配置說明

這里有兩種方式

  1. 在VSCode設(shè)置文件中設(shè)置
  2. 在項目文件中設(shè)置(推薦)

在項目文件中設(shè)置:

項目根目錄中找到.vscode文件夾,添加settings.json

或者自動生成:

使用記錄中,完成創(chuàng)建實例步驟后,需要重啟VSCode,

又下角彈出如下提示:自動檢測到翻譯文件夾 “src/lang”

會在項目根目錄.vscode目錄下,自動新建文件settings.json

需手動配置:

文件位置:.vscode/settings.json

基本配置說明:說明文檔

{
  "i18n-ally.localesPaths": ["src/lang"], // 翻譯文件路徑 (自動生成) 相對于項目根目錄的語言環(huán)境目錄路徑
  // 如下須要手動配置
  "i18n-ally.keystyle": "nested", // 翻譯路徑格式 (翻譯后變量格式 nested:嵌套式  flat:扁平式)
  "i18n-ally.sortKeys": true,
  "i18n-ally.namespace": true,
  "i18n-ally.enabledParsers": ["json"], // 翻譯文件可允許的格式,默認json
  "i18n-ally.sourceLanguage": "zh", // 翻譯源語言 (源文件) 根據(jù)此語言文件翻譯其他語言文件的變量和內(nèi)容
  "i18n-ally.displayLanguage": "zh", // 顯示語言 (顯示文件/翻譯文件)
  "i18n-ally.translate.engines": ["deepl", "google"], // 翻譯器
  "i18n-ally.extract.keygenStyle": "camelCase", // 翻譯字段命名樣式采用駝峰
  "i18n-ally.enabledFrameworks": ["vue"],
}

配置好后,若未生效,可嘗試右下角的修改源語言,

顯示語言(i18n-ally.displayLanguage)不要寫死,否則顯示語言固定,修改顯示語言不生效

vue國際化插件,vue.js,前端,javascript


翻譯文件可允許的格式(i18n-ally.enabledParsers),填寫 JSONYAML 格式,功能全面。前面創(chuàng)建的兩個語言配置文件zh.jsonen.json,所以這里填寫["json"]

支持的語言環(huán)境格式

Format(格式) Read(讀) Write(寫) Annotations(附注) Note(注意)
JSON ? ? ?
YAML ? ? ? 評論將不被保留
JSON5 ? ? ? 評論將不被保留
INI ? ? ? 評論將不被保留
properties ? ? ? 評論將不被保留
POT ? ? ?
JavaScript ? ? ? 只讀
TypeScript ? ? ? 只讀
PHP ? ? ? 只讀

插件的翻譯器掛VPN才能使用

效果

配置完成之后,展示效果如下:

EN hello 之后的圖標,依次為:

  • 打開審閱:對文案進行批注
  • 翻譯文案:在配置中設(shè)置的翻譯源語言"i18n-ally.sourceLanguage": "zh")是中文,所以對其他語種有翻譯功能
  • 編輯文案:對該文案進行快捷編輯
  • 轉(zhuǎn)到定義:跳轉(zhuǎn)到原文件

vue國際化插件,vue.js,前端,javascript

使用說明

打開一個有文字內(nèi)容的vue文件

打開 i18n Ally 的控制面板

快捷提取文案(兩種操作方式)

提取到的文案會寫入到顯示語言設(shè)置的對應(yīng)翻譯文件中:"i18n-ally.displayLanguage": "zh"

  • 展開Hard-coded strings [beta]這一項,可單個提取文案(可以自定義key值)

vue國際化插件,vue.js,前端,javascript

  • 右擊Hard-coded strings [beta]這一項,選擇提取所有,采用默認key值。

    漢語使用拼音拼接,可在設(shè)置中將翻譯字段命名樣式采用駝峰:i18n-ally.extract.keygenStyle": "camelCase"

    vue國際化插件,vue.js,前端,javascript

提取單個文案

無注意點。

提取所有文案

可以看到,template模板中的文案都已被成功替換,但js語法中的替換還是vue2中的語法。

vue國際化插件,vue.js,前端,javascript

可以選擇單個替換,選擇對應(yīng)的替換代碼。也可以提取后更改所有匹配項this.$t

vue國際化插件,vue.js,前端,javascript

zh.json中已被成功寫入:

{
  "hello": "你好",
  "haHaHa": "哈哈哈",
  "dangQianYuYanLeiXing": "當前語言類型",
  "jsZhongXiangYingShiQieHuanYuYan": "JS中響應(yīng)式切換語言",
  "moBanZhongShiYong": "模板中使用",
  "jianTiZhongWen": "簡體中文",
  "english": "English",
  "changeLanguage": "Change language:"
}

翻譯缺失文案

還有一個是翻譯缺失文案的功能,翻譯之后可直接將文案添加到對應(yīng)文件,需要掛VPN才能使用,手動編輯也可以。

翻譯依據(jù)為 "i18n-ally.sourceLanguage": "zh" 設(shè)置的翻譯源語言

vue國際化插件,vue.js,前端,javascript

Magic VPN - 最好的免費代理工具

Edge瀏覽器下載插件,再下載客戶端,即可掛VPN

操作示例

如下,開啟VPN后,點擊缺失文案,即可依據(jù)zh.json文件中的JSON字段,將翻譯后的文案,自動寫入en.json文件中。

若開啟VPN后翻譯失敗,顯示日志打?。?/p>

ERROR: Error: connect ECONNREFUSED 127.0.0.1:xxxxx

這是因為使用VSCode打開此項目后才開啟VPN的原因,重啟VSCode即可。

vue國際化插件,vue.js,前端,javascript

翻譯結(jié)果如下:

{
  "hello": "hello",
  "changeLanguage": "Change language:",
  "dangQianYuYanLeiXing": "current language type",
  "english": "English",
  "haHaHa": "Hahaha",
  "jianTiZhongWen": "Simplified Chinese",
  "jsZhongXiangYingShiQieHuanYuYan": "Responsive switching language in JS",
  "moBanZhongShiYong": "used in the template"
}

如此,這款插件便大大節(jié)省了工作量!文章來源地址http://www.zghlxwxcb.cn/news/detail-653863.html

到了這里,關(guān)于Vue3中,國際化插件vue-i18n使用記錄,配合VSCode自動化翻譯插件i18n Ally的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • uniapp國際化npm install vue-i18n報錯

    uniapp國際化npm install vue-i18n報錯

    在vue2環(huán)境下,默認安裝 npm install vue-i18n 的版本是 vue-i18n@9.1.9,所以報錯。 用以上命令查看版本: ?vue2建議5.0版本 ?

    2024年02月12日
    瀏覽(22)
  • 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)研需要,需在同一個項目中集成好幾種UI組件庫的多語言實現(xiàn),查看各種組件庫的表現(xiàn)情況,以便選定組件庫。 注意:這只在調(diào)研過程中會如此,實際開發(fā)項目中極少存在一個項目中集成多個UI組件庫的情況。 本demo實際試驗阿拉伯語、法語、葡萄牙語

    2024年02月08日
    瀏覽(51)
  • 如何在Vue3中配置國際化語言i18n

    1. 安裝 vue-i18n 2. 創(chuàng)建一個i8n的配置文件 如:i18nConfig.js 3. 新建語言文件 zh-CN.js 和 en-US.js zh-CN.js 文件 en-US.js 文件 CONFIG.js 文件 4. 在 main.js 里面全局配置 通過上面四步即可配置完畢 下面說一下如何使用,分三種情況 在 .vue 組件中的 template 使用 在 .vue 組件中的 script 中使用 在

    2024年02月09日
    瀏覽(23)
  • Vue - i18n 國際化的使用

    參考網(wǎng)址: 使用:?https://huaweicloud.csdn.net/638f133edacf622b8df8eb26.html?spm=1001.2101.3001.6650.1utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Eactivity-1-125181861-blog-123845480.235%5Ev38%5Epc_relevant_anti_t3_basedepth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Ea

    2024年02月11日
    瀏覽(21)
  • 用i18n 實現(xiàn)vue2+element UI的國際化多語言切換詳細步驟及代碼

    用i18n 實現(xiàn)vue2+element UI的國際化多語言切換詳細步驟及代碼

    這個地方要注意自己的vue版本和i1n8的匹配程度,如果是vue2點幾,記得安裝i18n的@8版本,不然會自動安裝的最新版本,后面會報錯哦,查詢了下資料,好像最新版本是適配的vue3。 在src下面新建i18n文件夾,然后在里面新建index.js,里面的內(nèi)容如下 新建i18n文件夾里面新建config文

    2024年02月14日
    瀏覽(31)
  • 使用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(\\\'\\\') 啟動項目,就可以成功切

    2024年02月06日
    瀏覽(22)
  • 解決Vue+Element UI使用表單rules國際化時From表單驗證信息不能實時更新

    解決Vue+Element UI使用表單rules國際化時From表單驗證信息不能實時更新

    說明:該篇博客是博主一字一碼編寫的,實屬不易,請尊重原創(chuàng),謝謝大家! 博主在工作之余開始進行自動化測試平臺的開發(fā),雖然已經(jīng)996一個月了但是還是在使勁擠時間做這件事情,目前平臺使用前端框架 vue-element-admin 進行簡化后二次開發(fā),目前保留了原框架中的國際化

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

    記錄一下,前端使用vue,后端使用若依(ruoyi,基于spring-boot)實現(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)
  • SpringBoot+Vue前后端分離項目國際化支持

    SpringBoot+Vue前后端分離項目國際化支持

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

    2024年02月04日
    瀏覽(25)
  • React18.x + i18next + antd 國際化正確使用姿勢及避坑指南

    React18.x + i18next + antd 國際化正確使用姿勢及避坑指南

    如果你使用這個教程還不能夠解決你的問題的話,直接私信我,免費一對一給你解決。 具體的創(chuàng)建方法大家參考vite官方文檔,大概的操作如下,如果需要更詳細的,大家去自行搜索即可 因為我這里使用的是ts版本,所以,你自己看著辦吧。 其中 i18next-browser-languagedetector i1

    2024年02月05日
    瀏覽(30)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包