国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

NPM酷庫(kù):intl-messageformat,多語(yǔ)言處理

thekingisalwaysluc / 1590人閱讀

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

NPM酷庫(kù),每天兩分鐘,了解一個(gè)流行NPM庫(kù)?!?/p>

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

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

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

tr("greeting");  // Hello

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

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

intl-messageformat

intl-messageformat 是一個(gè)用來(lái)輔助處理多語(yǔ)言的庫(kù),可以支持在字符串中輸出變量,還可以支持復(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 消息語(yǔ)法,支持名詞復(fù)數(shù)和選擇語(yǔ)法。

參考資料

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

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

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/107324.html

相關(guān)文章

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

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

    leonardofed 評(píng)論0 收藏0
  • React項(xiàng)目國(guó)際化(antd)多語(yǔ)開發(fā)

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

    tracymac7 評(píng)論0 收藏0
  • React項(xiàng)目國(guó)際化(antd)多語(yǔ)開發(fā)

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

    wushuiyong 評(píng)論0 收藏0
  • vue 國(guó)際化i18n 多語(yǔ)切換

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

    tuomao 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<