亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

NPM酷庫:intl-messageformat,多語言處理

thekingisalwaysluc / 1657人閱讀

摘要:酷庫,每天兩分鐘,了解一個流行庫。是一個用來輔助處理多語言的庫,可以支持在字符串中輸出變量,還可以支持復(fù)數(shù)形式。使用的是消息語法,支持名詞復(fù)數(shù)和選擇語法。

NPM酷庫,每天兩分鐘,了解一個流行NPM庫?!?/p>

在開發(fā)多國語言的項目時,為了給不同國家用戶顯示不同語言,我們一般會為每個語言分別建立一個Map映射,在界面上依據(jù)當(dāng)前語言環(huán)境不同而輸出不同語言庫的字符串。

const MESSAGES = {
  "en":{
    greeting: "Hello"
  },
  "zh-CN":{
    greeting: "你好"
  }
}

function tr(message){
  return MESSAGES[LOCALE][message];
}

tr("greeting");  // Hello

在上述代碼中,我們就可以在英文環(huán)境中將greeting翻譯成“Hello”。

但是在大多數(shù)時候,如此簡單的機(jī)制無法滿足實際需求,比如,在英語環(huán)境中名詞有復(fù)數(shù)形式,上述直接輸出字符串的方式就無法滿足。

intl-messageformat

intl-messageformat 是一個用來輔助處理多語言的庫,可以支持在字符串中輸出變量,還可以支持復(fù)數(shù)形式。

const IntlMessageFormat = require("intl-messageformat");

const MESSAGES = {
  "en":{
    PHOTOS: "You have {photos, plural," +
        "=0 {no photos.}" +
        "=1 {one photo.}" +
        "other {# photos.}}"
  }
}

function tr(message,values){
  let msg = new IntlMessageFormat(MESSAGES[LOCALE][message],LOCALE);
  return msg.format(values);
}

tr("PHOTOS", { photos: 0 }); // You have no photos.
tr("PHOTOS", { photos: 1 }); // You have one photo.
tr("PHOTOS", { photos: 1000 }); // You have 1,000 photos.

intl-messageformat 使用的是 ICU 消息語法,支持名詞復(fù)數(shù)和選擇語法。

參考資料

ICU http://userguide.icu-project....

https://github.com/yahoo/intl...

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/107324.html

相關(guān)文章

  • 使用vue、react可以前后端分離開發(fā),然后多語問題怎么辦

    摘要:前端多語言加載器,前端部署好各個語言的或語言包,可結(jié)合等使用。多語言,不就從瀏覽器里拿信息么,前端也可以。借此做一個前端語言包加載器。前端多語言加載器的特點(diǎn)切換語言,不用刷新頁面,語言包的一下就替換了。 multi-lang-js 前端JavaScript多語言加載器,前端部署好各個語言的json或txt語言包,可結(jié)合vue等使用。 多語言,不就從瀏覽器navigator.langua...

    leonardofed 評論0 收藏0
  • React項目國際化(antd)多語開發(fā)

    摘要:本國際化方案僅針對技術(shù)棧,且不會涉及服務(wù)端國際化內(nèi)容。引入多語言環(huán)境的數(shù)據(jù)雖然我只用到了文本翻譯的功能,以為就不需要加載這些數(shù)據(jù),但后來發(fā)現(xiàn)這是必須的步驟。 前言 最近新接了一個項目,從0開始做,需要做多語言的國際化,今天搞了一下,基本達(dá)到了想要的效果, 在這里簡單分享下: showImg(https://segmentfault.com/img/bVbuiJB); 背景國際化方案國際...

    tracymac7 評論0 收藏0
  • React項目國際化(antd)多語開發(fā)

    摘要:本國際化方案僅針對技術(shù)棧,且不會涉及服務(wù)端國際化內(nèi)容。引入多語言環(huán)境的數(shù)據(jù)雖然我只用到了文本翻譯的功能,以為就不需要加載這些數(shù)據(jù),但后來發(fā)現(xiàn)這是必須的步驟。 前言 最近新接了一個項目,從0開始做,需要做多語言的國際化,今天搞了一下,基本達(dá)到了想要的效果, 在這里簡單分享下: showImg(https://segmentfault.com/img/bVbuiJB); 背景國際化方案國際...

    wushuiyong 評論0 收藏0
  • vue 國際化i18n 多語切換

    摘要:如果對您有幫助請動動鼠標(biāo)右下方給我來個贊,您的支持是我最大的動力。安裝 npm install vue-i18n 新建一個文件夾 i18n ,內(nèi)新建 en.js zh.js index.js 三個文件 準(zhǔn)備翻譯信息 en.js export default { home: { helloworld: hello workd ! } }; zh.js export d...

    tuomao 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<