[6.x] add support for number format internationalization (#14019) (#15132)

This commit is contained in:
Spencer 2017-11-30 15:42:13 -07:00 committed by GitHub
parent 3c9fef9620
commit 91777d20e3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 22 additions and 2 deletions

View file

@ -74,7 +74,7 @@
"dependencies": {
"@elastic/datemath": "2.3.0",
"@elastic/filesaver": "1.1.2",
"@elastic/numeral": "2.2.1",
"@elastic/numeral": "2.3.0",
"@elastic/test-subj-selector": "0.2.1",
"@elastic/ui-ace": "0.2.3",
"JSONStream": "1.1.1",

View file

@ -1,8 +1,13 @@
import _ from 'lodash';
import numeral from '@elastic/numeral';
import numeralLanguages from '@elastic/numeral/languages';
const numeralInst = numeral();
numeralLanguages.forEach(function (numeralLanguage) {
numeral.language(numeralLanguage.id, numeralLanguage.lang);
});
export function createNumeralFormat(FieldFormat, opts) {
class NumeralFormat extends FieldFormat {
static id = opts.id;
@ -11,7 +16,6 @@ export function createNumeralFormat(FieldFormat, opts) {
constructor(params, getConfig) {
super(params);
this.getConfig = getConfig;
}
@ -34,8 +38,14 @@ export function createNumeralFormat(FieldFormat, opts) {
if (isNaN(val)) return '';
const previousLocale = numeral.language();
const defaultLocale = this.getConfig && this.getConfig('format:number:defaultLocale') || 'en';
numeral.language(defaultLocale);
const formatted = numeralInst.set(val).format(this.param('pattern'));
numeral.language(previousLocale);
return opts.afterConvert
? opts.afterConvert.call(this, formatted)
: formatted;

View file

@ -1,8 +1,12 @@
import moment from 'moment-timezone';
import numeralLanguages from '@elastic/numeral/languages';
export function getUiSettingDefaults() {
const weekdays = moment.weekdays().slice();
const [defaultWeekday] = weekdays;
const numeralLanguageIds = numeralLanguages.map(function (numeralLanguage) {
return numeralLanguage.id;
});
// wrapped in provider so that a new instance is given to each app/test
return {
@ -237,6 +241,12 @@ export function getUiSettingDefaults() {
value: '($0,0.[00])',
description: 'Default <a href="http://numeraljs.com/" target="_blank" rel="noopener noreferrer">numeral format</a> for the "currency" format'
},
'format:number:defaultLocale': {
value: 'en',
type: 'select',
options: numeralLanguageIds,
description: '<a href="http://numeraljs.com/" target="_blank" rel="noopener">numeral language</a>'
},
'savedObjects:perPage': {
type: 'number',
value: 5,