@formatjs/intl-getcanonicallocales 1.2.0 → 1.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +42 -0
- package/dist/canonicalizer.d.ts +1 -1
- package/dist/canonicalizer.d.ts.map +1 -1
- package/dist/canonicalizer.js +120 -29
- package/dist/canonicalizer.js.map +1 -1
- package/dist/polyfill.js +4 -2
- package/dist/polyfill.js.map +1 -1
- package/dist/umd/intl-locale.js +119 -29
- package/dist/umd/intl-locale.js.map +1 -1
- package/dist/umd/intl-locale.min.js +1 -1
- package/dist/umd/intl-locale.min.js.map +1 -1
- package/dist/umd/polyfill.js +122 -30
- package/dist/umd/polyfill.js.map +1 -1
- package/dist-es6/canonicalizer.d.ts +1 -1
- package/dist-es6/canonicalizer.d.ts.map +1 -1
- package/dist-es6/canonicalizer.js +111 -29
- package/dist-es6/canonicalizer.js.map +1 -1
- package/dist-es6/polyfill.js +4 -2
- package/dist-es6/polyfill.js.map +1 -1
- package/lib/canonicalizer.d.ts +1 -1
- package/lib/canonicalizer.d.ts.map +1 -1
- package/lib/canonicalizer.js +120 -29
- package/lib/canonicalizer.js.map +1 -1
- package/lib/polyfill.js +4 -2
- package/lib/polyfill.js.map +1 -1
- package/package.json +7 -10
- package/src/aliases.ts +5 -654
- package/src/canonicalizer.ts +145 -29
- package/src/polyfill.ts +8 -2
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,48 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [1.2.4](https://github.com/formatjs/formatjs/compare/@formatjs/intl-getcanonicallocales@1.2.3...@formatjs/intl-getcanonicallocales@1.2.4) (2020-05-28)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* **@formatjs/intl-utils:** Add missing cldr-core to package.json dep ([d0b72fe](https://github.com/formatjs/formatjs/commit/d0b72fe398c7017d03e8ee66c98ad88fe3e47657))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
## [1.2.3](https://github.com/formatjs/formatjs/compare/@formatjs/intl-getcanonicallocales@1.2.2...@formatjs/intl-getcanonicallocales@1.2.3) (2020-05-27)
|
|
18
|
+
|
|
19
|
+
**Note:** Version bump only for package @formatjs/intl-getcanonicallocales
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
## [1.2.2](https://github.com/formatjs/formatjs/compare/@formatjs/intl-getcanonicallocales@1.2.1...@formatjs/intl-getcanonicallocales@1.2.2) (2020-05-25)
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
### Bug Fixes
|
|
29
|
+
|
|
30
|
+
* **@formatjs/intl-getcanonicallocales:** fix alias lookup algo ([b39e3c2](https://github.com/formatjs/formatjs/commit/b39e3c2b1baefc011825f8e443769c2095beeb12))
|
|
31
|
+
* **@formatjs/intl-getcanonicallocales:** fix region casing ([396dbe7](https://github.com/formatjs/formatjs/commit/396dbe769bef6eb82ae274ba4935e70e076b2854))
|
|
32
|
+
* **@formatjs/intl-getcanonicallocales:** Handle aliases properly ([9e19e4b](https://github.com/formatjs/formatjs/commit/9e19e4b769560f3717f9589ab6180e932aaf96f8))
|
|
33
|
+
* **@formatjs/intl-getcanonicallocales:** set the polyfill if native impl is buggy ([555a28b](https://github.com/formatjs/formatjs/commit/555a28b2d6d3c48f69d765c5090f7880ef603adc))
|
|
34
|
+
* **@formatjs/intl-locale:** fix add/remove likely subtags ([d72f952](https://github.com/formatjs/formatjs/commit/d72f952a66905a3a7edd75518ccaa72c2020273e))
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
## [1.2.1](https://github.com/formatjs/formatjs/compare/@formatjs/intl-getcanonicallocales@1.2.0...@formatjs/intl-getcanonicallocales@1.2.1) (2020-05-23)
|
|
41
|
+
|
|
42
|
+
**Note:** Version bump only for package @formatjs/intl-getcanonicallocales
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
|
|
6
48
|
# [1.2.0](https://github.com/formatjs/formatjs/compare/@formatjs/intl-getcanonicallocales@1.1.1...@formatjs/intl-getcanonicallocales@1.2.0) (2020-05-23)
|
|
7
49
|
|
|
8
50
|
|
package/dist/canonicalizer.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ We get the following transformation:
|
|
|
8
8
|
en-u-ms-imperial ⇒ en-u-ms-uksystem
|
|
9
9
|
* @param lang
|
|
10
10
|
*/
|
|
11
|
-
export declare function canonicalizeUnicodeLanguageId(
|
|
11
|
+
export declare function canonicalizeUnicodeLanguageId(unicodeLanguageId: UnicodeLanguageId): UnicodeLanguageId;
|
|
12
12
|
/**
|
|
13
13
|
* Canonicalize based on
|
|
14
14
|
* https://www.unicode.org/reports/tr35/tr35.html#Canonical_Unicode_Locale_Identifiers
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canonicalizer.d.ts","sourceRoot":"","sources":["../src/canonicalizer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAiB,iBAAiB,EAAC,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"canonicalizer.d.ts","sourceRoot":"","sources":["../src/canonicalizer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAiB,iBAAiB,EAAC,MAAM,SAAS,CAAC;AA4D1E;;;;;;;;GAQG;AACH,wBAAgB,6BAA6B,CAC3C,iBAAiB,EAAE,iBAAiB,GACnC,iBAAiB,CAmKnB;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,eAAe,GACtB,eAAe,CA0BjB"}
|
package/dist/canonicalizer.js
CHANGED
|
@@ -1,8 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __spreadArrays = (this && this.__spreadArrays) || function () {
|
|
3
|
+
for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
|
|
4
|
+
for (var r = Array(s), k = 0, i = 0; i < il; i++)
|
|
5
|
+
for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
|
|
6
|
+
r[k] = a[j];
|
|
7
|
+
return r;
|
|
8
|
+
};
|
|
2
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
10
|
var aliases_1 = require("./aliases");
|
|
4
11
|
var parser_1 = require("./parser");
|
|
5
12
|
var likelySubtags = require("cldr-core/supplemental/likelySubtags.json");
|
|
13
|
+
var emitter_1 = require("./emitter");
|
|
6
14
|
function canonicalizeAttrs(strs) {
|
|
7
15
|
return Object.keys(strs.reduce(function (all, str) {
|
|
8
16
|
all[str.toLowerCase()] = 1;
|
|
@@ -33,6 +41,16 @@ function compareKV(t1, t2) {
|
|
|
33
41
|
function compareExtension(e1, e2) {
|
|
34
42
|
return e1.type < e2.type ? -1 : e1.type > e2.type ? 1 : 0;
|
|
35
43
|
}
|
|
44
|
+
function mergeVariants(v1, v2) {
|
|
45
|
+
var result = __spreadArrays(v1);
|
|
46
|
+
for (var _i = 0, v2_1 = v2; _i < v2_1.length; _i++) {
|
|
47
|
+
var v = v2_1[_i];
|
|
48
|
+
if (v1.indexOf(v) < 0) {
|
|
49
|
+
result.push(v);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return result;
|
|
53
|
+
}
|
|
36
54
|
/**
|
|
37
55
|
* CAVEAT: We don't do this section in the spec bc they have no JSON data
|
|
38
56
|
* Use the bcp47 data to replace keys, types, tfields, and tvalues by their canonical forms. See Section 3.6.4 U Extension Data Files) and Section 3.7.1 T Extension Data Files. The aliases are in the alias attribute value, while the canonical is in the name attribute value. For example,
|
|
@@ -42,29 +60,99 @@ We get the following transformation:
|
|
|
42
60
|
en-u-ms-imperial ⇒ en-u-ms-uksystem
|
|
43
61
|
* @param lang
|
|
44
62
|
*/
|
|
45
|
-
function canonicalizeUnicodeLanguageId(
|
|
63
|
+
function canonicalizeUnicodeLanguageId(unicodeLanguageId) {
|
|
46
64
|
/**
|
|
47
|
-
* If the language subtag matches the type attribute of a languageAlias element in Supplemental Data,
|
|
48
|
-
*
|
|
49
|
-
*
|
|
50
|
-
* - Five special deprecated grandfathered codes (such as i-default) are in type attributes, and are also replaced.
|
|
65
|
+
* If the language subtag matches the type attribute of a languageAlias element in Supplemental Data, replace the language subtag with the replacement value.
|
|
66
|
+
* 1. If there are additional subtags in the replacement value, add them to the result, but only if there is no corresponding subtag already in the tag.
|
|
67
|
+
* 2. Five special deprecated grandfathered codes (such as i-default) are in type attributes, and are also replaced.
|
|
51
68
|
*/
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
69
|
+
// From https://github.com/unicode-org/icu/blob/master/icu4j/main/classes/core/src/com/ibm/icu/util/ULocale.java#L1246
|
|
70
|
+
// Try language _ variant
|
|
71
|
+
var finalLangAst = unicodeLanguageId;
|
|
72
|
+
if (unicodeLanguageId.variants.length) {
|
|
73
|
+
var replacedLang_1 = '';
|
|
74
|
+
for (var _i = 0, _a = unicodeLanguageId.variants; _i < _a.length; _i++) {
|
|
75
|
+
var variant = _a[_i];
|
|
76
|
+
if ((replacedLang_1 =
|
|
77
|
+
aliases_1.languageAlias[emitter_1.emitUnicodeLanguageId({
|
|
78
|
+
lang: unicodeLanguageId.lang,
|
|
79
|
+
variants: [variant],
|
|
80
|
+
})])) {
|
|
81
|
+
var replacedLangAst = parser_1.parseUnicodeLanguageId(replacedLang_1.split(parser_1.SEPARATOR));
|
|
82
|
+
finalLangAst = {
|
|
83
|
+
lang: replacedLangAst.lang,
|
|
84
|
+
script: finalLangAst.script || replacedLangAst.script,
|
|
85
|
+
region: finalLangAst.region || replacedLangAst.region,
|
|
86
|
+
variants: mergeVariants(finalLangAst.variants, replacedLangAst.variants),
|
|
87
|
+
};
|
|
88
|
+
break;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
// language _ script _ country
|
|
93
|
+
// ug-Arab-CN -> ug-CN
|
|
94
|
+
if (finalLangAst.script && finalLangAst.region) {
|
|
95
|
+
var replacedLang_2 = aliases_1.languageAlias[emitter_1.emitUnicodeLanguageId({
|
|
96
|
+
lang: finalLangAst.lang,
|
|
97
|
+
script: finalLangAst.script,
|
|
98
|
+
region: finalLangAst.region,
|
|
99
|
+
variants: [],
|
|
100
|
+
})];
|
|
101
|
+
if (replacedLang_2) {
|
|
102
|
+
var replacedLangAst = parser_1.parseUnicodeLanguageId(replacedLang_2.split(parser_1.SEPARATOR));
|
|
103
|
+
finalLangAst = {
|
|
104
|
+
lang: replacedLangAst.lang,
|
|
105
|
+
script: replacedLangAst.script,
|
|
106
|
+
region: replacedLangAst.region,
|
|
107
|
+
variants: finalLangAst.variants,
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
// language _ country
|
|
112
|
+
// eg. az_AZ -> az_Latn_A
|
|
113
|
+
if (finalLangAst.region) {
|
|
114
|
+
var replacedLang_3 = aliases_1.languageAlias[emitter_1.emitUnicodeLanguageId({
|
|
115
|
+
lang: finalLangAst.lang,
|
|
116
|
+
region: finalLangAst.region,
|
|
117
|
+
variants: [],
|
|
118
|
+
})];
|
|
119
|
+
if (replacedLang_3) {
|
|
120
|
+
var replacedLangAst = parser_1.parseUnicodeLanguageId(replacedLang_3.split(parser_1.SEPARATOR));
|
|
121
|
+
finalLangAst = {
|
|
122
|
+
lang: replacedLangAst.lang,
|
|
123
|
+
script: finalLangAst.script || replacedLangAst.script,
|
|
124
|
+
region: replacedLangAst.region,
|
|
125
|
+
variants: finalLangAst.variants,
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
// only language
|
|
130
|
+
// e.g. twi -> ak
|
|
131
|
+
var replacedLang = aliases_1.languageAlias[emitter_1.emitUnicodeLanguageId({
|
|
132
|
+
lang: finalLangAst.lang,
|
|
133
|
+
variants: [],
|
|
134
|
+
})];
|
|
135
|
+
if (replacedLang) {
|
|
136
|
+
var replacedLangAst = parser_1.parseUnicodeLanguageId(replacedLang.split(parser_1.SEPARATOR));
|
|
137
|
+
finalLangAst = {
|
|
138
|
+
lang: replacedLangAst.lang,
|
|
139
|
+
script: finalLangAst.script || replacedLangAst.script,
|
|
140
|
+
region: finalLangAst.region || replacedLangAst.region,
|
|
141
|
+
variants: finalLangAst.variants,
|
|
142
|
+
};
|
|
59
143
|
}
|
|
60
|
-
if (
|
|
61
|
-
var region =
|
|
144
|
+
if (finalLangAst.region) {
|
|
145
|
+
var region = finalLangAst.region.toUpperCase();
|
|
62
146
|
var regionAlias = aliases_1.territoryAlias[region];
|
|
63
147
|
var replacedRegion = void 0;
|
|
64
148
|
if (regionAlias) {
|
|
65
149
|
var regions = regionAlias.split(' ');
|
|
66
150
|
replacedRegion = regions[0];
|
|
67
|
-
var likelySubtag = likelySubtags.supplemental.likelySubtags[
|
|
151
|
+
var likelySubtag = likelySubtags.supplemental.likelySubtags[emitter_1.emitUnicodeLanguageId({
|
|
152
|
+
lang: finalLangAst.lang,
|
|
153
|
+
script: finalLangAst.script,
|
|
154
|
+
variants: [],
|
|
155
|
+
})];
|
|
68
156
|
if (likelySubtag) {
|
|
69
157
|
var likelyRegion = parser_1.parseUnicodeLanguageId(likelySubtag.split(parser_1.SEPARATOR)).region;
|
|
70
158
|
if (likelyRegion && regions.indexOf(likelyRegion) > -1) {
|
|
@@ -73,32 +161,35 @@ function canonicalizeUnicodeLanguageId(lang) {
|
|
|
73
161
|
}
|
|
74
162
|
}
|
|
75
163
|
if (replacedRegion) {
|
|
76
|
-
|
|
164
|
+
finalLangAst.region = replacedRegion;
|
|
77
165
|
}
|
|
166
|
+
finalLangAst.region = finalLangAst.region.toUpperCase();
|
|
78
167
|
}
|
|
79
|
-
if (
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
168
|
+
if (finalLangAst.script) {
|
|
169
|
+
finalLangAst.script =
|
|
170
|
+
finalLangAst.script[0].toUpperCase() +
|
|
171
|
+
finalLangAst.script.slice(1).toLowerCase();
|
|
172
|
+
if (aliases_1.scriptAlias[finalLangAst.script]) {
|
|
173
|
+
finalLangAst.script = aliases_1.scriptAlias[finalLangAst.script];
|
|
84
174
|
}
|
|
85
175
|
}
|
|
86
|
-
if (
|
|
87
|
-
for (var i = 0; i <
|
|
88
|
-
var variant =
|
|
176
|
+
if (finalLangAst.variants.length) {
|
|
177
|
+
for (var i = 0; i < finalLangAst.variants.length; i++) {
|
|
178
|
+
var variant = finalLangAst.variants[i].toLowerCase();
|
|
89
179
|
if (aliases_1.variantAlias[variant]) {
|
|
90
180
|
var alias = aliases_1.variantAlias[variant];
|
|
91
181
|
if (parser_1.isUnicodeVariantSubtag(alias)) {
|
|
92
|
-
|
|
182
|
+
finalLangAst.variants[i] = alias;
|
|
93
183
|
}
|
|
94
184
|
else if (parser_1.isUnicodeLanguageSubtag(alias)) {
|
|
95
185
|
// Yes this can happen per the spec
|
|
96
|
-
|
|
186
|
+
finalLangAst.lang = alias;
|
|
97
187
|
}
|
|
98
188
|
}
|
|
99
189
|
}
|
|
100
|
-
|
|
190
|
+
finalLangAst.variants.sort();
|
|
101
191
|
}
|
|
192
|
+
return finalLangAst;
|
|
102
193
|
}
|
|
103
194
|
exports.canonicalizeUnicodeLanguageId = canonicalizeUnicodeLanguageId;
|
|
104
195
|
/**
|
|
@@ -109,7 +200,7 @@ exports.canonicalizeUnicodeLanguageId = canonicalizeUnicodeLanguageId;
|
|
|
109
200
|
* @param locale
|
|
110
201
|
*/
|
|
111
202
|
function canonicalizeUnicodeLocaleId(locale) {
|
|
112
|
-
canonicalizeUnicodeLanguageId(locale.lang);
|
|
203
|
+
locale.lang = canonicalizeUnicodeLanguageId(locale.lang);
|
|
113
204
|
if (locale.extensions) {
|
|
114
205
|
for (var _i = 0, _a = locale.extensions; _i < _a.length; _i++) {
|
|
115
206
|
var extension = _a[_i];
|
|
@@ -122,7 +213,7 @@ function canonicalizeUnicodeLocaleId(locale) {
|
|
|
122
213
|
break;
|
|
123
214
|
case 't':
|
|
124
215
|
if (extension.lang) {
|
|
125
|
-
canonicalizeUnicodeLanguageId(extension.lang);
|
|
216
|
+
extension.lang = canonicalizeUnicodeLanguageId(extension.lang);
|
|
126
217
|
}
|
|
127
218
|
extension.fields = canonicalizeKVs(extension.fields);
|
|
128
219
|
break;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canonicalizer.js","sourceRoot":"","sources":["../src/canonicalizer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"canonicalizer.js","sourceRoot":"","sources":["../src/canonicalizer.ts"],"names":[],"mappings":"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"}
|
package/dist/polyfill.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
var _1 = require("
|
|
4
|
-
if (!('getCanonicalLocales' in Intl)
|
|
3
|
+
var _1 = require(".");
|
|
4
|
+
if (!('getCanonicalLocales' in Intl) ||
|
|
5
|
+
// Native Intl.getCanonicalLocales is just buggy
|
|
6
|
+
Intl.getCanonicalLocales('und-x-private')[0] === 'x-private') {
|
|
5
7
|
Object.defineProperty(Intl, 'getCanonicalLocales', {
|
|
6
8
|
value: _1.getCanonicalLocales,
|
|
7
9
|
writable: true,
|
package/dist/polyfill.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"polyfill.js","sourceRoot":"","sources":["../src/polyfill.ts"],"names":[],"mappings":";;AAAA,
|
|
1
|
+
{"version":3,"file":"polyfill.js","sourceRoot":"","sources":["../src/polyfill.ts"],"names":[],"mappings":";;AAAA,sBAAsC;AACtC,IACE,CAAC,CAAC,qBAAqB,IAAI,IAAI,CAAC;IAChC,gDAAgD;IAC9C,IAAY,CAAC,mBAAkD,CAC/D,eAAe,CAChB,CAAC,CAAC,CAAC,KAAK,WAAW,EACpB;IACA,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,qBAAqB,EAAE;QACjD,KAAK,EAAE,sBAAmB;QAC1B,QAAQ,EAAE,IAAI;QACd,UAAU,EAAE,KAAK;QACjB,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;CACJ"}
|
package/dist/umd/intl-locale.js
CHANGED
|
@@ -2145,6 +2145,13 @@
|
|
|
2145
2145
|
}
|
|
2146
2146
|
};
|
|
2147
2147
|
|
|
2148
|
+
var __spreadArrays$1 = (undefined && undefined.__spreadArrays) || function () {
|
|
2149
|
+
for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
|
|
2150
|
+
for (var r = Array(s), k = 0, i = 0; i < il; i++)
|
|
2151
|
+
for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
|
|
2152
|
+
r[k] = a[j];
|
|
2153
|
+
return r;
|
|
2154
|
+
};
|
|
2148
2155
|
function canonicalizeAttrs(strs) {
|
|
2149
2156
|
return Object.keys(strs.reduce(function (all, str) {
|
|
2150
2157
|
all[str.toLowerCase()] = 1;
|
|
@@ -2175,6 +2182,16 @@
|
|
|
2175
2182
|
function compareExtension(e1, e2) {
|
|
2176
2183
|
return e1.type < e2.type ? -1 : e1.type > e2.type ? 1 : 0;
|
|
2177
2184
|
}
|
|
2185
|
+
function mergeVariants(v1, v2) {
|
|
2186
|
+
var result = __spreadArrays$1(v1);
|
|
2187
|
+
for (var _i = 0, v2_1 = v2; _i < v2_1.length; _i++) {
|
|
2188
|
+
var v = v2_1[_i];
|
|
2189
|
+
if (v1.indexOf(v) < 0) {
|
|
2190
|
+
result.push(v);
|
|
2191
|
+
}
|
|
2192
|
+
}
|
|
2193
|
+
return result;
|
|
2194
|
+
}
|
|
2178
2195
|
/**
|
|
2179
2196
|
* CAVEAT: We don't do this section in the spec bc they have no JSON data
|
|
2180
2197
|
* Use the bcp47 data to replace keys, types, tfields, and tvalues by their canonical forms. See Section 3.6.4 U Extension Data Files) and Section 3.7.1 T Extension Data Files. The aliases are in the alias attribute value, while the canonical is in the name attribute value. For example,
|
|
@@ -2184,29 +2201,99 @@
|
|
|
2184
2201
|
en-u-ms-imperial ⇒ en-u-ms-uksystem
|
|
2185
2202
|
* @param lang
|
|
2186
2203
|
*/
|
|
2187
|
-
function canonicalizeUnicodeLanguageId(
|
|
2204
|
+
function canonicalizeUnicodeLanguageId(unicodeLanguageId) {
|
|
2188
2205
|
/**
|
|
2189
|
-
* If the language subtag matches the type attribute of a languageAlias element in Supplemental Data,
|
|
2190
|
-
*
|
|
2191
|
-
*
|
|
2192
|
-
* - Five special deprecated grandfathered codes (such as i-default) are in type attributes, and are also replaced.
|
|
2206
|
+
* If the language subtag matches the type attribute of a languageAlias element in Supplemental Data, replace the language subtag with the replacement value.
|
|
2207
|
+
* 1. If there are additional subtags in the replacement value, add them to the result, but only if there is no corresponding subtag already in the tag.
|
|
2208
|
+
* 2. Five special deprecated grandfathered codes (such as i-default) are in type attributes, and are also replaced.
|
|
2193
2209
|
*/
|
|
2194
|
-
|
|
2195
|
-
|
|
2196
|
-
|
|
2197
|
-
|
|
2198
|
-
|
|
2199
|
-
|
|
2200
|
-
|
|
2210
|
+
// From https://github.com/unicode-org/icu/blob/master/icu4j/main/classes/core/src/com/ibm/icu/util/ULocale.java#L1246
|
|
2211
|
+
// Try language _ variant
|
|
2212
|
+
var finalLangAst = unicodeLanguageId;
|
|
2213
|
+
if (unicodeLanguageId.variants.length) {
|
|
2214
|
+
var replacedLang_1 = '';
|
|
2215
|
+
for (var _i = 0, _a = unicodeLanguageId.variants; _i < _a.length; _i++) {
|
|
2216
|
+
var variant = _a[_i];
|
|
2217
|
+
if ((replacedLang_1 =
|
|
2218
|
+
languageAlias[emitUnicodeLanguageId({
|
|
2219
|
+
lang: unicodeLanguageId.lang,
|
|
2220
|
+
variants: [variant],
|
|
2221
|
+
})])) {
|
|
2222
|
+
var replacedLangAst = parseUnicodeLanguageId(replacedLang_1.split(SEPARATOR));
|
|
2223
|
+
finalLangAst = {
|
|
2224
|
+
lang: replacedLangAst.lang,
|
|
2225
|
+
script: finalLangAst.script || replacedLangAst.script,
|
|
2226
|
+
region: finalLangAst.region || replacedLangAst.region,
|
|
2227
|
+
variants: mergeVariants(finalLangAst.variants, replacedLangAst.variants),
|
|
2228
|
+
};
|
|
2229
|
+
break;
|
|
2230
|
+
}
|
|
2231
|
+
}
|
|
2232
|
+
}
|
|
2233
|
+
// language _ script _ country
|
|
2234
|
+
// ug-Arab-CN -> ug-CN
|
|
2235
|
+
if (finalLangAst.script && finalLangAst.region) {
|
|
2236
|
+
var replacedLang_2 = languageAlias[emitUnicodeLanguageId({
|
|
2237
|
+
lang: finalLangAst.lang,
|
|
2238
|
+
script: finalLangAst.script,
|
|
2239
|
+
region: finalLangAst.region,
|
|
2240
|
+
variants: [],
|
|
2241
|
+
})];
|
|
2242
|
+
if (replacedLang_2) {
|
|
2243
|
+
var replacedLangAst = parseUnicodeLanguageId(replacedLang_2.split(SEPARATOR));
|
|
2244
|
+
finalLangAst = {
|
|
2245
|
+
lang: replacedLangAst.lang,
|
|
2246
|
+
script: replacedLangAst.script,
|
|
2247
|
+
region: replacedLangAst.region,
|
|
2248
|
+
variants: finalLangAst.variants,
|
|
2249
|
+
};
|
|
2250
|
+
}
|
|
2251
|
+
}
|
|
2252
|
+
// language _ country
|
|
2253
|
+
// eg. az_AZ -> az_Latn_A
|
|
2254
|
+
if (finalLangAst.region) {
|
|
2255
|
+
var replacedLang_3 = languageAlias[emitUnicodeLanguageId({
|
|
2256
|
+
lang: finalLangAst.lang,
|
|
2257
|
+
region: finalLangAst.region,
|
|
2258
|
+
variants: [],
|
|
2259
|
+
})];
|
|
2260
|
+
if (replacedLang_3) {
|
|
2261
|
+
var replacedLangAst = parseUnicodeLanguageId(replacedLang_3.split(SEPARATOR));
|
|
2262
|
+
finalLangAst = {
|
|
2263
|
+
lang: replacedLangAst.lang,
|
|
2264
|
+
script: finalLangAst.script || replacedLangAst.script,
|
|
2265
|
+
region: replacedLangAst.region,
|
|
2266
|
+
variants: finalLangAst.variants,
|
|
2267
|
+
};
|
|
2268
|
+
}
|
|
2269
|
+
}
|
|
2270
|
+
// only language
|
|
2271
|
+
// e.g. twi -> ak
|
|
2272
|
+
var replacedLang = languageAlias[emitUnicodeLanguageId({
|
|
2273
|
+
lang: finalLangAst.lang,
|
|
2274
|
+
variants: [],
|
|
2275
|
+
})];
|
|
2276
|
+
if (replacedLang) {
|
|
2277
|
+
var replacedLangAst = parseUnicodeLanguageId(replacedLang.split(SEPARATOR));
|
|
2278
|
+
finalLangAst = {
|
|
2279
|
+
lang: replacedLangAst.lang,
|
|
2280
|
+
script: finalLangAst.script || replacedLangAst.script,
|
|
2281
|
+
region: finalLangAst.region || replacedLangAst.region,
|
|
2282
|
+
variants: finalLangAst.variants,
|
|
2283
|
+
};
|
|
2201
2284
|
}
|
|
2202
|
-
if (
|
|
2203
|
-
var region =
|
|
2285
|
+
if (finalLangAst.region) {
|
|
2286
|
+
var region = finalLangAst.region.toUpperCase();
|
|
2204
2287
|
var regionAlias = territoryAlias[region];
|
|
2205
2288
|
var replacedRegion = void 0;
|
|
2206
2289
|
if (regionAlias) {
|
|
2207
2290
|
var regions = regionAlias.split(' ');
|
|
2208
2291
|
replacedRegion = regions[0];
|
|
2209
|
-
var likelySubtag = supplemental.likelySubtags[
|
|
2292
|
+
var likelySubtag = supplemental.likelySubtags[emitUnicodeLanguageId({
|
|
2293
|
+
lang: finalLangAst.lang,
|
|
2294
|
+
script: finalLangAst.script,
|
|
2295
|
+
variants: [],
|
|
2296
|
+
})];
|
|
2210
2297
|
if (likelySubtag) {
|
|
2211
2298
|
var likelyRegion = parseUnicodeLanguageId(likelySubtag.split(SEPARATOR)).region;
|
|
2212
2299
|
if (likelyRegion && regions.indexOf(likelyRegion) > -1) {
|
|
@@ -2215,32 +2302,35 @@
|
|
|
2215
2302
|
}
|
|
2216
2303
|
}
|
|
2217
2304
|
if (replacedRegion) {
|
|
2218
|
-
|
|
2305
|
+
finalLangAst.region = replacedRegion;
|
|
2219
2306
|
}
|
|
2307
|
+
finalLangAst.region = finalLangAst.region.toUpperCase();
|
|
2220
2308
|
}
|
|
2221
|
-
if (
|
|
2222
|
-
|
|
2223
|
-
|
|
2224
|
-
|
|
2225
|
-
|
|
2309
|
+
if (finalLangAst.script) {
|
|
2310
|
+
finalLangAst.script =
|
|
2311
|
+
finalLangAst.script[0].toUpperCase() +
|
|
2312
|
+
finalLangAst.script.slice(1).toLowerCase();
|
|
2313
|
+
if (scriptAlias[finalLangAst.script]) {
|
|
2314
|
+
finalLangAst.script = scriptAlias[finalLangAst.script];
|
|
2226
2315
|
}
|
|
2227
2316
|
}
|
|
2228
|
-
if (
|
|
2229
|
-
for (var i = 0; i <
|
|
2230
|
-
var variant =
|
|
2317
|
+
if (finalLangAst.variants.length) {
|
|
2318
|
+
for (var i = 0; i < finalLangAst.variants.length; i++) {
|
|
2319
|
+
var variant = finalLangAst.variants[i].toLowerCase();
|
|
2231
2320
|
if (variantAlias[variant]) {
|
|
2232
2321
|
var alias = variantAlias[variant];
|
|
2233
2322
|
if (isUnicodeVariantSubtag(alias)) {
|
|
2234
|
-
|
|
2323
|
+
finalLangAst.variants[i] = alias;
|
|
2235
2324
|
}
|
|
2236
2325
|
else if (isUnicodeLanguageSubtag(alias)) {
|
|
2237
2326
|
// Yes this can happen per the spec
|
|
2238
|
-
|
|
2327
|
+
finalLangAst.lang = alias;
|
|
2239
2328
|
}
|
|
2240
2329
|
}
|
|
2241
2330
|
}
|
|
2242
|
-
|
|
2331
|
+
finalLangAst.variants.sort();
|
|
2243
2332
|
}
|
|
2333
|
+
return finalLangAst;
|
|
2244
2334
|
}
|
|
2245
2335
|
/**
|
|
2246
2336
|
* Canonicalize based on
|
|
@@ -2250,7 +2340,7 @@
|
|
|
2250
2340
|
* @param locale
|
|
2251
2341
|
*/
|
|
2252
2342
|
function canonicalizeUnicodeLocaleId(locale) {
|
|
2253
|
-
canonicalizeUnicodeLanguageId(locale.lang);
|
|
2343
|
+
locale.lang = canonicalizeUnicodeLanguageId(locale.lang);
|
|
2254
2344
|
if (locale.extensions) {
|
|
2255
2345
|
for (var _i = 0, _a = locale.extensions; _i < _a.length; _i++) {
|
|
2256
2346
|
var extension = _a[_i];
|
|
@@ -2263,7 +2353,7 @@
|
|
|
2263
2353
|
break;
|
|
2264
2354
|
case 't':
|
|
2265
2355
|
if (extension.lang) {
|
|
2266
|
-
canonicalizeUnicodeLanguageId(extension.lang);
|
|
2356
|
+
extension.lang = canonicalizeUnicodeLanguageId(extension.lang);
|
|
2267
2357
|
}
|
|
2268
2358
|
extension.fields = canonicalizeKVs(extension.fields);
|
|
2269
2359
|
break;
|