2017-06-01 11:49:32 +09:00
|
|
|
/*
|
|
|
|
|
|
|
|
intl polyfill. See https://github.com/andyearnshaw/Intl.js/
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
2017-09-22 12:24:15 +02:00
|
|
|
import { getSetting, registerSetting } from '../modules/settings.js';
|
|
|
|
|
|
|
|
registerSetting('locale', 'en');
|
2017-06-01 11:49:32 +09:00
|
|
|
|
|
|
|
var areIntlLocalesSupported = require('intl-locales-supported');
|
|
|
|
|
|
|
|
var localesMyAppSupports = [
|
2017-09-22 12:24:15 +02:00
|
|
|
getSetting('locale', 'en')
|
2017-06-01 11:49:32 +09:00
|
|
|
];
|
|
|
|
|
|
|
|
if (global.Intl) {
|
|
|
|
// Determine if the built-in `Intl` has the locale data we need.
|
|
|
|
if (!areIntlLocalesSupported(localesMyAppSupports)) {
|
|
|
|
// `Intl` exists, but it doesn't have the data we need, so load the
|
|
|
|
// polyfill and replace the constructors with need with the polyfill's.
|
|
|
|
var IntlPolyfill = require('intl');
|
|
|
|
Intl.NumberFormat = IntlPolyfill.NumberFormat;
|
|
|
|
Intl.DateTimeFormat = IntlPolyfill.DateTimeFormat;
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
// No `Intl`, so use and load the polyfill.
|
|
|
|
global.Intl = require('intl');
|
|
|
|
}
|