@formatjs/intl-localematcher 0.2.22 → 0.2.23
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/abstract/BestFitMatcher.d.ts.map +1 -1
- package/abstract/BestFitMatcher.js +9 -3
- package/abstract/CanonicalizeLocaleList.d.ts +6 -0
- package/abstract/CanonicalizeLocaleList.d.ts.map +1 -0
- package/abstract/CanonicalizeLocaleList.js +12 -0
- package/index.d.ts.map +1 -1
- package/index.js +2 -1
- package/lib/abstract/BestFitMatcher.d.ts.map +1 -1
- package/lib/abstract/BestFitMatcher.js +9 -3
- package/lib/abstract/CanonicalizeLocaleList.d.ts +6 -0
- package/lib/abstract/CanonicalizeLocaleList.d.ts.map +1 -0
- package/lib/abstract/CanonicalizeLocaleList.js +8 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +2 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BestFitMatcher.d.ts","sourceRoot":"","sources":["../../../../../../packages/intl-localematcher/abstract/BestFitMatcher.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,mBAAmB,EAAC,MAAM,SAAS,CAAA;AAG3C;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,EAC7B,gBAAgB,EAAE,MAAM,EAAE,EAC1B,gBAAgB,EAAE,MAAM,MAAM,GAC7B,mBAAmB,
|
|
1
|
+
{"version":3,"file":"BestFitMatcher.d.ts","sourceRoot":"","sources":["../../../../../../packages/intl-localematcher/abstract/BestFitMatcher.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,mBAAmB,EAAC,MAAM,SAAS,CAAA;AAG3C;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,EAC7B,gBAAgB,EAAE,MAAM,EAAE,EAC1B,gBAAgB,EAAE,MAAM,MAAM,GAC7B,mBAAmB,CA2DrB"}
|
|
@@ -11,14 +11,18 @@ var utils_1 = require("./utils");
|
|
|
11
11
|
*/
|
|
12
12
|
function BestFitMatcher(availableLocales, requestedLocales, getDefaultLocale) {
|
|
13
13
|
var minimizedAvailableLocaleMap = {};
|
|
14
|
-
availableLocales.forEach(function (l) { return (minimizedAvailableLocaleMap[l] = l); });
|
|
15
14
|
var minimizedAvailableLocales = new Set();
|
|
16
15
|
availableLocales.forEach(function (locale) {
|
|
17
16
|
var minimizedLocale = new Intl.Locale(locale)
|
|
18
17
|
.minimize()
|
|
19
18
|
.toString();
|
|
19
|
+
var canonicalizedLocale = Intl.getCanonicalLocales(locale)[0] || locale;
|
|
20
20
|
minimizedAvailableLocaleMap[minimizedLocale] = locale;
|
|
21
|
+
minimizedAvailableLocaleMap[locale] = locale;
|
|
22
|
+
minimizedAvailableLocaleMap[canonicalizedLocale] = locale;
|
|
21
23
|
minimizedAvailableLocales.add(minimizedLocale);
|
|
24
|
+
minimizedAvailableLocales.add(locale);
|
|
25
|
+
minimizedAvailableLocales.add(canonicalizedLocale);
|
|
22
26
|
});
|
|
23
27
|
var foundLocale;
|
|
24
28
|
for (var _i = 0, requestedLocales_1 = requestedLocales; _i < requestedLocales_1.length; _i++) {
|
|
@@ -46,9 +50,11 @@ function BestFitMatcher(availableLocales, requestedLocales, getDefaultLocale) {
|
|
|
46
50
|
// Lookup algo on maximized locale
|
|
47
51
|
foundLocale = (0, BestAvailableLocale_1.BestAvailableLocale)(minimizedAvailableLocales, maximizedRequestedLocale);
|
|
48
52
|
}
|
|
53
|
+
if (!foundLocale) {
|
|
54
|
+
return { locale: getDefaultLocale() };
|
|
55
|
+
}
|
|
49
56
|
return {
|
|
50
|
-
locale:
|
|
51
|
-
getDefaultLocale(),
|
|
57
|
+
locale: minimizedAvailableLocaleMap[foundLocale] || foundLocale,
|
|
52
58
|
};
|
|
53
59
|
}
|
|
54
60
|
exports.BestFitMatcher = BestFitMatcher;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CanonicalizeLocaleList.d.ts","sourceRoot":"","sources":["../../../../../../packages/intl-localematcher/abstract/CanonicalizeLocaleList.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE,CAG5E"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CanonicalizeLocaleList = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* http://ecma-international.org/ecma-402/7.0/index.html#sec-canonicalizelocalelist
|
|
6
|
+
* @param locales
|
|
7
|
+
*/
|
|
8
|
+
function CanonicalizeLocaleList(locales) {
|
|
9
|
+
// TODO
|
|
10
|
+
return Intl.getCanonicalLocales(locales);
|
|
11
|
+
}
|
|
12
|
+
exports.CanonicalizeLocaleList = CanonicalizeLocaleList;
|
package/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/intl-localematcher/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/intl-localematcher/index.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,IAAI;IACnB,SAAS,EAAE,QAAQ,GAAG,UAAU,CAAA;CACjC;AAED,wBAAgB,KAAK,CACnB,gBAAgB,EAAE,MAAM,EAAE,EAC1B,gBAAgB,EAAE,MAAM,EAAE,EAC1B,aAAa,EAAE,MAAM,EACrB,IAAI,CAAC,EAAE,IAAI,GACV,MAAM,CAgBR;AAED,OAAO,EAAC,sBAAsB,EAAC,MAAM,mCAAmC,CAAA;AACxE,OAAO,EAAC,aAAa,EAAC,MAAM,0BAA0B,CAAA"}
|
package/index.js
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ResolveLocale = exports.LookupSupportedLocales = exports.match = void 0;
|
|
4
|
+
var CanonicalizeLocaleList_1 = require("./abstract/CanonicalizeLocaleList");
|
|
4
5
|
var ResolveLocale_1 = require("./abstract/ResolveLocale");
|
|
5
6
|
function match(requestedLocales, availableLocales, defaultLocale, opts) {
|
|
6
7
|
var locales = availableLocales.reduce(function (all, l) {
|
|
7
8
|
all.add(l);
|
|
8
9
|
return all;
|
|
9
10
|
}, new Set());
|
|
10
|
-
return (0, ResolveLocale_1.ResolveLocale)(locales, requestedLocales, {
|
|
11
|
+
return (0, ResolveLocale_1.ResolveLocale)(locales, (0, CanonicalizeLocaleList_1.CanonicalizeLocaleList)(requestedLocales), {
|
|
11
12
|
localeMatcher: (opts === null || opts === void 0 ? void 0 : opts.algorithm) || 'best fit',
|
|
12
13
|
}, [], {}, function () { return defaultLocale; }).locale;
|
|
13
14
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BestFitMatcher.d.ts","sourceRoot":"","sources":["../../../../../../../packages/intl-localematcher/abstract/BestFitMatcher.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,mBAAmB,EAAC,MAAM,SAAS,CAAA;AAG3C;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,EAC7B,gBAAgB,EAAE,MAAM,EAAE,EAC1B,gBAAgB,EAAE,MAAM,MAAM,GAC7B,mBAAmB,
|
|
1
|
+
{"version":3,"file":"BestFitMatcher.d.ts","sourceRoot":"","sources":["../../../../../../../packages/intl-localematcher/abstract/BestFitMatcher.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,mBAAmB,EAAC,MAAM,SAAS,CAAA;AAG3C;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,EAC7B,gBAAgB,EAAE,MAAM,EAAE,EAC1B,gBAAgB,EAAE,MAAM,MAAM,GAC7B,mBAAmB,CA2DrB"}
|
|
@@ -8,14 +8,18 @@ import { UNICODE_EXTENSION_SEQUENCE_REGEX } from './utils';
|
|
|
8
8
|
*/
|
|
9
9
|
export function BestFitMatcher(availableLocales, requestedLocales, getDefaultLocale) {
|
|
10
10
|
var minimizedAvailableLocaleMap = {};
|
|
11
|
-
availableLocales.forEach(function (l) { return (minimizedAvailableLocaleMap[l] = l); });
|
|
12
11
|
var minimizedAvailableLocales = new Set();
|
|
13
12
|
availableLocales.forEach(function (locale) {
|
|
14
13
|
var minimizedLocale = new Intl.Locale(locale)
|
|
15
14
|
.minimize()
|
|
16
15
|
.toString();
|
|
16
|
+
var canonicalizedLocale = Intl.getCanonicalLocales(locale)[0] || locale;
|
|
17
17
|
minimizedAvailableLocaleMap[minimizedLocale] = locale;
|
|
18
|
+
minimizedAvailableLocaleMap[locale] = locale;
|
|
19
|
+
minimizedAvailableLocaleMap[canonicalizedLocale] = locale;
|
|
18
20
|
minimizedAvailableLocales.add(minimizedLocale);
|
|
21
|
+
minimizedAvailableLocales.add(locale);
|
|
22
|
+
minimizedAvailableLocales.add(canonicalizedLocale);
|
|
19
23
|
});
|
|
20
24
|
var foundLocale;
|
|
21
25
|
for (var _i = 0, requestedLocales_1 = requestedLocales; _i < requestedLocales_1.length; _i++) {
|
|
@@ -43,8 +47,10 @@ export function BestFitMatcher(availableLocales, requestedLocales, getDefaultLoc
|
|
|
43
47
|
// Lookup algo on maximized locale
|
|
44
48
|
foundLocale = BestAvailableLocale(minimizedAvailableLocales, maximizedRequestedLocale);
|
|
45
49
|
}
|
|
50
|
+
if (!foundLocale) {
|
|
51
|
+
return { locale: getDefaultLocale() };
|
|
52
|
+
}
|
|
46
53
|
return {
|
|
47
|
-
locale:
|
|
48
|
-
getDefaultLocale(),
|
|
54
|
+
locale: minimizedAvailableLocaleMap[foundLocale] || foundLocale,
|
|
49
55
|
};
|
|
50
56
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CanonicalizeLocaleList.d.ts","sourceRoot":"","sources":["../../../../../../../packages/intl-localematcher/abstract/CanonicalizeLocaleList.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE,CAG5E"}
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/intl-localematcher/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/intl-localematcher/index.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,IAAI;IACnB,SAAS,EAAE,QAAQ,GAAG,UAAU,CAAA;CACjC;AAED,wBAAgB,KAAK,CACnB,gBAAgB,EAAE,MAAM,EAAE,EAC1B,gBAAgB,EAAE,MAAM,EAAE,EAC1B,aAAa,EAAE,MAAM,EACrB,IAAI,CAAC,EAAE,IAAI,GACV,MAAM,CAgBR;AAED,OAAO,EAAC,sBAAsB,EAAC,MAAM,mCAAmC,CAAA;AACxE,OAAO,EAAC,aAAa,EAAC,MAAM,0BAA0B,CAAA"}
|
package/lib/index.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
|
+
import { CanonicalizeLocaleList } from './abstract/CanonicalizeLocaleList';
|
|
1
2
|
import { ResolveLocale } from './abstract/ResolveLocale';
|
|
2
3
|
export function match(requestedLocales, availableLocales, defaultLocale, opts) {
|
|
3
4
|
var locales = availableLocales.reduce(function (all, l) {
|
|
4
5
|
all.add(l);
|
|
5
6
|
return all;
|
|
6
7
|
}, new Set());
|
|
7
|
-
return ResolveLocale(locales, requestedLocales, {
|
|
8
|
+
return ResolveLocale(locales, CanonicalizeLocaleList(requestedLocales), {
|
|
8
9
|
localeMatcher: (opts === null || opts === void 0 ? void 0 : opts.algorithm) || 'best fit',
|
|
9
10
|
}, [], {}, function () { return defaultLocale; }).locale;
|
|
10
11
|
}
|