一、Messageformats, Message, Messages什麼意思
Messageformat是用於處理複雜多語言內容的JavaScript庫,例如,它將會處理帶有方言和數字的複雜語言字元串。Messageformat的核心包括Messageformats, Message和Messages三個概念。
Messageformats: 指的是語言模板,或稱為語言文件,這些模板中包含了所有的翻譯內容。
const myMessages = {
en: {
greeting: "Hello, {name}!",
goodbye: "Goodbye, {name}.",
questions: "You have {numQuestions, plural, =0 {no questions} one{one question} other{# questions}}."
},
es: {
greeting: "¡Hola, {name}!",
goodbye: "¡Adiós, {name}!",
questions: "Tiene {numQuestions, plural, =0 {no preguntas} one{una pregunta} other{# preguntas}}."
}
};Message: Message在Messageformats中的作用是起到連接鍵的作用。Message通過鍵值對的方式,表示翻譯內容中的鍵是什麼,將根據在Messageformats中的鍵將其對應的翻譯內容挑選出來。
myMessages.en.greeting;Messages: 構成Messages的元素是Message,此外還包括一些其他的元素,例如,語言(locale)和消息(Message)的一些參數等。
MessageFormat.locale = 'en';
const msg = new MessageFormat().compile(myMessages.en.greeting);
msg({name: "World"}); // => 'Hello, World!'二、Messageformat下載
Messageformat可以在npm或cdn上獲得。您可以使用以下命令從npm中下載Messageformat:
$ npm install messageformat除了npm之外,您還可以通過cdn或從GitHub上下載Messageformat,地址分別如下:
<script src="https://cdn.jsdelivr.net/npm/messageformat@2.1.0/locale-data/zh.js"></script>$ git clone https://github.com/messageformat/messageformat.git三、Message可數嗎
Message既可以是可數的,也可以是不可數的。可數的Message通常被稱為Plural Message,這種Message通常根據數字的不同形態來做出不同的翻譯。例如,在英文中,單數形態就是1,而其他形態都是複數形態。
var msg_str = "You have {numPhotos, plural, " +
"=0 {no photos.}" +
"=1 {one photo.}" +
"other {# photos.}" +
"}";在這個語句中,「numPhotos」參數是數字參數,有一個表示零的參數值,一個表示一個的參數值,以及一個表示所有的其他數量的參數值。
非可數Message通常指一些特定的Message,例如,Good Morning,Good Afternoon和Good Evening。無論使用何種數量,它們的翻譯內容不會發生任何變動。
四、Information
除了使用數字來填充Message之外,Messageformat還支持一些額外的字元,例如,日期和時間等。這種方式可以實現信息的動態填充和動態的信息格式化。
var messages = {
en: {
youWereLoggedIn: "You were last logged in on { lastLogin, date, medium } at { lastLogin, time, short }"
}
};
var opts = { locale: 'en' };
var mf = new MessageFormat(opts);
var output = mf.compile(messages.en.youWereLoggedIn)(user);
console.log(output);在這個示例中,「date」和「time」參數是格式化字元串的類型。”medium”和”short”是格式化的風格。這些風格對於日期和時間的格式化非常重要。
五、結論
Messageformat是處理多語言複雜內容的工具,可以支持多種語言的翻譯和信息的動態填充、動態格式化。它由Messageformats、Message和Messages三個基本元素構成,有Plural Message和非可數Message之分。在實際開發中,Messageformat可以大大提高多語言應用程序的開發效率和代碼的可維護性。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/180229.html
微信掃一掃
支付寶掃一掃