Skip to content
This repository was archived by the owner on Apr 14, 2021. It is now read-only.

Commit 551ec31

Browse files
committed
Include CLDR data via NPM instead of Grunt/CURL
... and update CLDR to v27.0.3
1 parent fbfdc50 commit 551ec31

7 files changed

+21
-38
lines changed

.gitignore

-4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,3 @@
1-
# Pre-processed locale data output from Ldml2JsonConverter
2-
cldr/
3-
41
# test262 compiled python files
52
*.pyc
63

@@ -15,6 +12,5 @@ node_modules
1512

1613
lib/
1714
tmp/
18-
data/
1915
tests/test262/harness/
2016
tests/test262/test/

Gruntfile.js

+1-25
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,12 @@ module.exports = function (grunt) {
44
pkg: grunt.file.readJSON('package.json'),
55

66
clean: {
7-
cldr : ['tmp/cldr**', 'data/cldr**', 'locale-data/'],
7+
cldr : ['locale-data/'],
88
test262: ['tmp/test262**', 'data/test262**', 'tests/test262/'],
99
lib : ['lib/', 'dist/'],
1010
},
1111

1212
curl: {
13-
cldr: {
14-
src : 'http://www.unicode.org/Public/cldr/26/json-full.zip',
15-
dest: 'tmp/cldr.zip',
16-
},
1713
test262: {
1814
src : 'https://github.com/tc39/test262/archive/master.zip',
1915
dest: 'tmp/test262.zip',
@@ -32,18 +28,6 @@ module.exports = function (grunt) {
3228
},
3329

3430
copy: {
35-
cldr: {
36-
expand: true,
37-
cwd : 'tmp/cldr/',
38-
dest : 'data/',
39-
src : [
40-
'*-license.*',
41-
'supplemental/parentLocales.json',
42-
'main/*/ca-*.json',
43-
'main/*/currencies.json',
44-
'main/*/numbers.json',
45-
]
46-
},
4731
test262: {
4832
expand: true,
4933
cwd : 'tmp/test262-master/',
@@ -115,14 +99,6 @@ module.exports = function (grunt) {
11599

116100
grunt.registerTask('default', ['jshint', 'clean:lib', 'build']);
117101

118-
grunt.registerTask('update-cldr-data', [
119-
'clean:cldr',
120-
'curl:cldr',
121-
'unzip:cldr',
122-
'copy:cldr',
123-
'cldr',
124-
]);
125-
126102
grunt.registerTask('update-test262', [
127103
'clean:test262',
128104
'curl:test262',

package.json

+3
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@
99
},
1010
"devDependencies": {
1111
"async": "^0.9.0",
12+
"cldr-core": "^27.0.3",
13+
"cldr-dates-full": "^27.0.3",
14+
"cldr-numbers-full": "^27.0.3",
1215
"cli-color": "^1.0.0",
1316
"clui": "^0.3.1",
1417
"finalhandler": "^0.4.0",

tasks/extract-cldr-data.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ module.exports = function(grunt) {
2727
grunt.registerTask('extract-cldr-data', 'Extract Numbers and Calendars Data from CLDR', function() {
2828

2929
try {
30-
require('../data/supplemental/parentLocales.json');
30+
require('cldr-core/supplemental/parentLocales.json');
3131
} catch (e) {
3232
throw new Error('Error locating cldr data, make sure you execute `grunt update-cldr-data` before.');
3333
}

tasks/utils/extract-calendars.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ module.exports = function extractCalendars(locales) {
8686
};
8787

8888
function loadCalendars(locale) {
89-
var dir = path.resolve(__dirname, '../../data/main', locale);
89+
var dir = path.resolve(path.dirname(require.resolve('cldr-dates-full/package.json')), 'main', locale);
9090
var filenames = glob.sync("ca-*.json", {
9191
cwd: dir
9292
});

tasks/utils/extract-numbers.js

+2-3
Original file line numberDiff line numberDiff line change
@@ -80,9 +80,8 @@ module.exports = function extractNumbersFields(locales) {
8080
};
8181

8282
function loadNumbers(locale) {
83-
var dir = path.resolve(__dirname, '../../data/main', locale);
8483
return assign(
85-
require(path.join(dir, 'numbers.json')).main[locale].numbers,
86-
require(path.join(dir, 'currencies.json')).main[locale].numbers
84+
require('cldr-numbers-full/main/' + locale + '/numbers.json').main[locale].numbers,
85+
require('cldr-numbers-full/main/' + locale + '/currencies.json').main[locale].numbers
8786
);
8887
}

tasks/utils/locales.js

+13-4
Original file line numberDiff line numberDiff line change
@@ -9,32 +9,40 @@ exports.hasCalendars = hasCalendars;
99
exports.hasNumbersFields = hasNumbersFields;
1010
exports.normalizeLocale = normalizeLocale;
1111

12+
var CLDR_DATES_DIR = path.dirname(require.resolve('cldr-dates-full/package.json'));
13+
var CLDR_NUMBERS_DIR = path.dirname(require.resolve('cldr-numbers-full/package.json'));
14+
1215
// These are the exceptions to the default algorithm for determining a locale's
1316
// parent locale.
14-
var PARENT_LOCALES_HASH = require('../../data/supplemental/parentLocales.json')
17+
var PARENT_LOCALES_HASH = require('cldr-core/supplemental/parentLocales.json')
1518
.supplemental.parentLocales.parentLocale;
1619

1720
var CALENDARS_LOCALES_HASH = glob.sync('*/ca-*.json', {
18-
cwd: path.resolve(__dirname, '../../data/main'),
21+
cwd: path.resolve(CLDR_DATES_DIR, 'main'),
1922
}).reduce(function (hash, filename) {
2023
hash[path.dirname(filename)] = true;
2124
return hash;
2225
}, {});
2326

2427
var NUMBERS_LOCALES_HASH = glob.sync('*/numbers.json', {
25-
cwd: path.resolve(__dirname, '../../data/main'),
28+
cwd: path.resolve(CLDR_NUMBERS_DIR, 'main'),
2629
}).reduce(function (hash, filename) {
2730
hash[path.dirname(filename)] = true;
2831
return hash;
2932
}, {});
3033

3134
var CURRENCIES_LOCALES_HASH = glob.sync('*/currencies.json', {
32-
cwd: path.resolve(__dirname, '../../data/main'),
35+
cwd: path.resolve(CLDR_NUMBERS_DIR, 'main'),
3336
}).reduce(function (hash, filename) {
3437
hash[path.dirname(filename)] = true;
3538
return hash;
3639
}, {});
3740

41+
var DEFAULT_CONTENT_ARRAY = require('cldr-core/defaultContent.json')
42+
.defaultContent.map(function (value) {
43+
return value.replace(/_/g, '-');
44+
});
45+
3846
// Some locales that have a `pluralRuleFunction` don't have a `dateFields.json`
3947
// file, and visa versa, so this creates a unique collection of all locales in
4048
// the CLDR for which we need data from.
@@ -43,6 +51,7 @@ var ALL_LOCALES_HASH =
4351
.concat(Object.keys(CALENDARS_LOCALES_HASH))
4452
.concat(Object.keys(NUMBERS_LOCALES_HASH))
4553
.concat(Object.keys(CURRENCIES_LOCALES_HASH))
54+
.concat(DEFAULT_CONTENT_ARRAY)
4655
.sort()
4756
.reduce(function (hash, locale) {
4857
hash[locale.toLowerCase()] = locale;

0 commit comments

Comments
 (0)