svelte-intl
Advanced tools
Comparing version
@@ -1,1 +0,1 @@ | ||
export declare const getBrowserLocale: (defaultLocale?: string) => string; | ||
export declare const getBrowserLocale: (defaultLocale?: string) => any; |
@@ -48,3 +48,3 @@ import { derived, writable, get } from 'svelte/store'; | ||
var _a; | ||
return (__assign({}, acc, (_a = {}, _a[key] = flatObject(translations[key]), _a))); | ||
return (__assign(__assign({}, acc), (_a = {}, _a[key] = flatObject(translations[key]), _a))); | ||
}, {}); }; | ||
@@ -99,3 +99,3 @@ var merge = function (obj1, obj2) { | ||
var $locale = stores[0], $translations = stores[1], $options = stores[2]; | ||
formatMessage.setup(__assign({}, $options, { locale: $locale, translations: flatTranslation($translations) })); | ||
formatMessage.setup(__assign(__assign({}, $options), { locale: $locale, translations: flatTranslation($translations) })); | ||
return formatMessage; | ||
@@ -113,17 +113,26 @@ }); | ||
if (defaultLocale === void 0) { defaultLocale = 'en'; } | ||
if (typeof window === 'undefined') | ||
return defaultLocale; // ssr or node (sapper) | ||
var target = window.navigator.language || window.navigator.languages[0]; | ||
if (target) { | ||
var currentLocales = get(locales); | ||
if (currentLocales.includes(target)) | ||
return target; // exact match | ||
var bestMatch = currentLocales.find(function (locale) { return target.startsWith(locale); }); | ||
var _a, _b, _c; | ||
var targets = ((_a = window) === null || _a === void 0 ? void 0 : _a.navigator.languages) || // user language preferences list | ||
[ | ||
((_b = window) === null || _b === void 0 ? void 0 : _b.navigator).userLanguage || // IE 10- | ||
((_c = window) === null || _c === void 0 ? void 0 : _c.navigator.language) || // browser ui language | ||
defaultLocale, | ||
]; | ||
var currentLocales = get(locales); | ||
var _loop_1 = function (i) { | ||
if (currentLocales.includes(targets[i])) | ||
return { value: targets[i] }; // exact match | ||
var bestMatch = currentLocales.find(function (locale) { return targets[i].startsWith(locale); }); | ||
if (bestMatch) | ||
return bestMatch; // en-US -> en | ||
return { value: bestMatch }; // en-US -> en | ||
}; | ||
for (var i = 0; i < targets.length; i = i + 1) { | ||
var state_1 = _loop_1(i); | ||
if (typeof state_1 === "object") | ||
return state_1.value; | ||
} | ||
var currentLocale = get(locale); | ||
return currentLocale || defaultLocale; // default to current or param | ||
return currentLocale || currentLocales[0]; // default to current or just first | ||
}; | ||
export { _, clear, defaultOptions, getBrowserLocale, locale, locales, options, translate, translations }; |
@@ -54,3 +54,3 @@ 'use strict'; | ||
var _a; | ||
return (__assign({}, acc, (_a = {}, _a[key] = flatObject(translations[key]), _a))); | ||
return (__assign(__assign({}, acc), (_a = {}, _a[key] = flatObject(translations[key]), _a))); | ||
}, {}); }; | ||
@@ -105,3 +105,3 @@ var merge = function (obj1, obj2) { | ||
var $locale = stores[0], $translations = stores[1], $options = stores[2]; | ||
formatMessage.setup(__assign({}, $options, { locale: $locale, translations: flatTranslation($translations) })); | ||
formatMessage.setup(__assign(__assign({}, $options), { locale: $locale, translations: flatTranslation($translations) })); | ||
return formatMessage; | ||
@@ -119,15 +119,24 @@ }); | ||
if (defaultLocale === void 0) { defaultLocale = 'en'; } | ||
if (typeof window === 'undefined') | ||
return defaultLocale; // ssr or node (sapper) | ||
var target = window.navigator.language || window.navigator.languages[0]; | ||
if (target) { | ||
var currentLocales = store.get(locales); | ||
if (currentLocales.includes(target)) | ||
return target; // exact match | ||
var bestMatch = currentLocales.find(function (locale) { return target.startsWith(locale); }); | ||
var _a, _b, _c; | ||
var targets = ((_a = window) === null || _a === void 0 ? void 0 : _a.navigator.languages) || // user language preferences list | ||
[ | ||
((_b = window) === null || _b === void 0 ? void 0 : _b.navigator).userLanguage || // IE 10- | ||
((_c = window) === null || _c === void 0 ? void 0 : _c.navigator.language) || // browser ui language | ||
defaultLocale, | ||
]; | ||
var currentLocales = store.get(locales); | ||
var _loop_1 = function (i) { | ||
if (currentLocales.includes(targets[i])) | ||
return { value: targets[i] }; // exact match | ||
var bestMatch = currentLocales.find(function (locale) { return targets[i].startsWith(locale); }); | ||
if (bestMatch) | ||
return bestMatch; // en-US -> en | ||
return { value: bestMatch }; // en-US -> en | ||
}; | ||
for (var i = 0; i < targets.length; i = i + 1) { | ||
var state_1 = _loop_1(i); | ||
if (typeof state_1 === "object") | ||
return state_1.value; | ||
} | ||
var currentLocale = store.get(locale); | ||
return currentLocale || defaultLocale; // default to current or param | ||
return currentLocale || currentLocales[0]; // default to current or just first | ||
}; | ||
@@ -134,0 +143,0 @@ |
{ | ||
"name": "svelte-intl", | ||
"version": "1.0.5", | ||
"version": "1.1.0", | ||
"description": "Internationalize your Svelte 3 apps", | ||
@@ -38,13 +38,13 @@ "main": "dist/index.js", | ||
"devDependencies": { | ||
"@types/jest": "^24.0.13", | ||
"format-message": "^6.2.1", | ||
"jest": "^24.8.0", | ||
"@types/jest": "^24.9.1", | ||
"format-message": "^6.2.3", | ||
"jest": "^24.9.0", | ||
"rollup": "1.12.4", | ||
"rollup-plugin-typescript2": "^0.21.1", | ||
"svelte": "^3.4.4", | ||
"ts-jest": "^24.0.2", | ||
"tslint": "^5.17.0", | ||
"tslint-config-airbnb": "^5.11.1", | ||
"typescript": "^3.5.1" | ||
"rollup-plugin-typescript2": "^0.21.2", | ||
"svelte": "^3.18.1", | ||
"ts-jest": "^24.3.0", | ||
"tslint": "^5.20.1", | ||
"tslint-config-airbnb": "^5.11.2", | ||
"typescript": "^3.7.5" | ||
} | ||
} |
18356
5.78%301
6.36%