一、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/n/180229.html
微信扫一扫
支付宝扫一扫