UNPKG

@alauda-fe/common

Version:

Alauda frontend team common codes.

39 lines 6.13 kB
import { isLocalDev } from '../core/public-api'; import { FALLBACK_LANGUAGE, LOCALE_STORAGE } from './constants'; let __availableLanguages; export async function loadAvailableLanguages() { __availableLanguages = await fetch(isLocalDev() ? '/console-i18n/languages.json' : '/console/api/v1/i18n/languages') .then(res => res.json()) .then(res => res.availableLanguages) .catch(err => { console.error(err); return [{ id: 'en', name: 'English' }]; }); return __availableLanguages; } export function getAvailableLanguages() { if (!__availableLanguages) { throw new Error('[i18n] Available languages not loaded. loadAvailableLanguages() must be called at app initialization before the app bootstraps.'); } return __availableLanguages; } export function getUserLanguage(availableLanguages) { availableLanguages = availableLanguages || getAvailableLanguages().map(lang => lang.id); const localeLanguage = localStorage.getItem(LOCALE_STORAGE); const userLanguages = (localeLanguage ? [localeLanguage] : []).concat(navigator.languages); for (const userLang of userLanguages) { const resultLang = availableLanguages.find(availableLang => availableLang === userLang || availableLang.split('-')[0] === userLang.split('-')[0]); if (resultLang) { return resultLang; } } return FALLBACK_LANGUAGE; } export function isBuiltInLanguage(language) { return ['en'].includes(language); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvdHJhbnNsYXRlL2kxOG4tY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVoRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBT2hFLElBQUksb0JBQWdDLENBQUM7QUFFckMsTUFBTSxDQUFDLEtBQUssVUFBVSxzQkFBc0I7SUFDMUMsb0JBQW9CLEdBQUcsTUFBTSxLQUFLLENBQ2hDLFVBQVUsRUFBRTtRQUNWLENBQUMsQ0FBQyw4QkFBOEI7UUFDaEMsQ0FBQyxDQUFDLGdDQUFnQyxDQUNyQztTQUNFLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUN2QixJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUM7U0FDbkMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1FBQ1gsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNuQixPQUFPLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQ3pDLENBQUMsQ0FBQyxDQUFDO0lBRUwsT0FBTyxvQkFBb0IsQ0FBQztBQUM5QixDQUFDO0FBRUQsTUFBTSxVQUFVLHFCQUFxQjtJQUduQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUMxQixNQUFNLElBQUksS0FBSyxDQUNiLGlJQUFpSSxDQUNsSSxDQUFDO0lBQ0osQ0FBQztJQUNELE9BQU8sb0JBQW9CLENBQUM7QUFDOUIsQ0FBQztBQUVELE1BQU0sVUFBVSxlQUFlLENBQUMsa0JBQTZCO0lBQzNELGtCQUFrQjtRQUNoQixrQkFBa0IsSUFBSSxxQkFBcUIsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUVyRSxNQUFNLGNBQWMsR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzVELE1BQU0sYUFBYSxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQ25FLFNBQVMsQ0FBQyxTQUFTLENBQ3BCLENBQUM7SUFFRixLQUFLLE1BQU0sUUFBUSxJQUFJLGFBQWEsRUFBRSxDQUFDO1FBQ3JDLE1BQU0sVUFBVSxHQUFHLGtCQUFrQixDQUFDLElBQUksQ0FDeEMsYUFBYSxDQUFDLEVBQUUsQ0FDZCxhQUFhLEtBQUssUUFBUTtZQUMxQixhQUFhLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQ3pELENBQUM7UUFDRixJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2YsT0FBTyxVQUFVLENBQUM7UUFDcEIsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLGlCQUFpQixDQUFDO0FBQzNCLENBQUM7QUFFRCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsUUFBZ0I7SUFDaEQsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUNuQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGVlcFJlYWRvbmx5IH0gZnJvbSAndHMtZXNzZW50aWFscyc7XG5cbmltcG9ydCB7IGlzTG9jYWxEZXYgfSBmcm9tICcuLi9jb3JlL3B1YmxpYy1hcGknO1xuXG5pbXBvcnQgeyBGQUxMQkFDS19MQU5HVUFHRSwgTE9DQUxFX1NUT1JBR0UgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5cbmludGVyZmFjZSBMYW5nSW5mbyB7XG4gIGlkOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbn1cblxubGV0IF9fYXZhaWxhYmxlTGFuZ3VhZ2VzOiBMYW5nSW5mb1tdO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbG9hZEF2YWlsYWJsZUxhbmd1YWdlcygpOiBQcm9taXNlPExhbmdJbmZvW10+IHtcbiAgX19hdmFpbGFibGVMYW5ndWFnZXMgPSBhd2FpdCBmZXRjaChcbiAgICBpc0xvY2FsRGV2KClcbiAgICAgID8gJy9jb25zb2xlLWkxOG4vbGFuZ3VhZ2VzLmpzb24nXG4gICAgICA6ICcvY29uc29sZS9hcGkvdjEvaTE4bi9sYW5ndWFnZXMnLFxuICApXG4gICAgLnRoZW4ocmVzID0+IHJlcy5qc29uKCkpXG4gICAgLnRoZW4ocmVzID0+IHJlcy5hdmFpbGFibGVMYW5ndWFnZXMpXG4gICAgLmNhdGNoKGVyciA9PiB7XG4gICAgICBjb25zb2xlLmVycm9yKGVycik7XG4gICAgICByZXR1cm4gW3sgaWQ6ICdlbicsIG5hbWU6ICdFbmdsaXNoJyB9XTtcbiAgICB9KTtcblxuICByZXR1cm4gX19hdmFpbGFibGVMYW5ndWFnZXM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRBdmFpbGFibGVMYW5ndWFnZXMoKTogRGVlcFJlYWRvbmx5PFxuICB0eXBlb2YgX19hdmFpbGFibGVMYW5ndWFnZXNcbj4ge1xuICBpZiAoIV9fYXZhaWxhYmxlTGFuZ3VhZ2VzKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ1tpMThuXSBBdmFpbGFibGUgbGFuZ3VhZ2VzIG5vdCBsb2FkZWQuIGxvYWRBdmFpbGFibGVMYW5ndWFnZXMoKSBtdXN0IGJlIGNhbGxlZCBhdCBhcHAgaW5pdGlhbGl6YXRpb24gYmVmb3JlIHRoZSBhcHAgYm9vdHN0cmFwcy4nLFxuICAgICk7XG4gIH1cbiAgcmV0dXJuIF9fYXZhaWxhYmxlTGFuZ3VhZ2VzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VXNlckxhbmd1YWdlKGF2YWlsYWJsZUxhbmd1YWdlcz86IHN0cmluZ1tdKSB7XG4gIGF2YWlsYWJsZUxhbmd1YWdlcyA9XG4gICAgYXZhaWxhYmxlTGFuZ3VhZ2VzIHx8IGdldEF2YWlsYWJsZUxhbmd1YWdlcygpLm1hcChsYW5nID0+IGxhbmcuaWQpO1xuXG4gIGNvbnN0IGxvY2FsZUxhbmd1YWdlID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oTE9DQUxFX1NUT1JBR0UpO1xuICBjb25zdCB1c2VyTGFuZ3VhZ2VzID0gKGxvY2FsZUxhbmd1YWdlID8gW2xvY2FsZUxhbmd1YWdlXSA6IFtdKS5jb25jYXQoXG4gICAgbmF2aWdhdG9yLmxhbmd1YWdlcyxcbiAgKTtcblxuICBmb3IgKGNvbnN0IHVzZXJMYW5nIG9mIHVzZXJMYW5ndWFnZXMpIHtcbiAgICBjb25zdCByZXN1bHRMYW5nID0gYXZhaWxhYmxlTGFuZ3VhZ2VzLmZpbmQoXG4gICAgICBhdmFpbGFibGVMYW5nID0+XG4gICAgICAgIGF2YWlsYWJsZUxhbmcgPT09IHVzZXJMYW5nIHx8XG4gICAgICAgIGF2YWlsYWJsZUxhbmcuc3BsaXQoJy0nKVswXSA9PT0gdXNlckxhbmcuc3BsaXQoJy0nKVswXSxcbiAgICApO1xuICAgIGlmIChyZXN1bHRMYW5nKSB7XG4gICAgICByZXR1cm4gcmVzdWx0TGFuZztcbiAgICB9XG4gIH1cblxuICByZXR1cm4gRkFMTEJBQ0tfTEFOR1VBR0U7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0J1aWx0SW5MYW5ndWFnZShsYW5ndWFnZTogc3RyaW5nKSB7XG4gIHJldHVybiBbJ2VuJ10uaW5jbHVkZXMobGFuZ3VhZ2UpO1xufVxuIl19