摘要:酷庫(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-messageformatintl-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
摘要:前端多語(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...
摘要:本國(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ó)際...
摘要:本國(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ó)際...
摘要:如果對(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...
閱讀 2228·2019-08-30 10:51
閱讀 785·2019-08-30 10:50
閱讀 1462·2019-08-30 10:49
閱讀 3129·2019-08-26 13:55
閱讀 1591·2019-08-26 11:39
閱讀 3412·2019-08-26 11:34
閱讀 1936·2019-08-23 18:30
閱讀 3381·2019-08-23 18:22