UNPKG

devextreme

Version:

HTML5 JavaScript Component Suite for Responsive Web Development

79 lines (56 loc) 2.27 kB
"use strict"; require("./core"); var Globalize = require("globalize"), messageLocalization = require("../message"), coreLocalization = require("../core"); require("globalize/message"); if (Globalize && Globalize.formatMessage) { var DEFAULT_LOCALE = "en"; var originalLoadMessages = Globalize.loadMessages; Globalize.loadMessages = function (messages) { messageLocalization.load(messages); }; var globalizeMessageLocalization = { ctor: function ctor() { this.load(this._dictionary); }, load: function load(messages) { this.callBase(messages); originalLoadMessages(messages); }, getMessagesByLocales: function getMessagesByLocales() { return Globalize.cldr.get("globalize-messages"); }, getFormatter: function getFormatter(key, locale) { var currentLocale = locale || coreLocalization.locale(), formatter = this._getFormatterBase(key, locale); if (!formatter) { formatter = this._formatterByGlobalize(key, locale); } if (!formatter && currentLocale !== DEFAULT_LOCALE) { formatter = this.getFormatter(key, DEFAULT_LOCALE); } return formatter; }, _formatterByGlobalize: function _formatterByGlobalize(key, locale) { var currentGlobalize = !locale || locale === coreLocalization.locale() ? Globalize : new Globalize(locale), result; if (this._messageLoaded(key, locale)) { result = currentGlobalize.messageFormatter(key); } return result; }, _messageLoaded: function _messageLoaded(key, locale) { var currentCldr = locale ? new Globalize(locale).cldr : Globalize.locale(), value = currentCldr.get(["globalize-messages/{bundle}", key]); return !!value; }, _loadSingle: function _loadSingle(key, value, locale) { var data = {}; data[locale] = {}; data[locale][key] = value; this.load(data); } }; messageLocalization.inject(globalizeMessageLocalization); }