全球化版本1.2.3 - root / fallback文化

时间:2017-07-04 14:42:24

标签: javascript-globalize

我使用的是当前版本1.2.3,并希望使用此处描述的功能: https://github.com/globalizejs/globalize/blob/6d3a5a57c56fd0afb93e20340905a435d1650341/doc/api/message/load-translation.md#example

我需要继承翻译,以便在我的loadMessages方法中未定义/初始化浏览器文化的情况下具有后备文化。例如:

Globalize.loadMessages({ root: { hello: "Hi!" }, de: { hello: "Moin!" } });

这就是我的期望:

Globalize( "de-DE" ).formatMessage( "hello" );

  

"!莫因"

Globalize( "fr" ).formatMessage( "hello" );

  

"您好&#34!; (回退)

我怎么能意识到这一点?

1 个答案:

答案 0 :(得分:0)

简短回答

它缺少Globalize.loadMessages({fr: {}});。空消息告诉globalize fr是一个有效的包。

更长的答案

文档示例工作得很好。注意:请在此处使用v1.2.3文档:https://github.com/globalizejs/globalize/blob/1.2.3/doc/api/message/load-messages.md

为了测试我做了:

npm install globalize cldr-data

然后:

var Globalize = require( "globalize" );
Globalize.load( require( "cldr-data" ).entireSupplemental() );

Globalize.loadMessages({
  root: {
    amen: "Amen"
  },
  de: {},
  en: {},
  "en-GB": {},
  fr: {},
  pt: {
    amen: "Amém"
  },
  "pt-PT": {}
});

Globalize( "de" ).formatMessage( "amen" );
// > "Amen"

Globalize( "en" ).formatMessage( "amen" );
// > "Amen"

Globalize( "en-GB" ).formatMessage( "amen" );
// > "Amen"

Globalize( "fr" ).formatMessage( "amen" );
// > "Amen"

Globalize( "pt-PT" ).formatMessage( "amen" );
// > "Amém"