@alauda-fe/common
Version:
Alauda frontend team common codes.
39 lines • 5.89 kB
JavaScript
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('Available languages not loaded');
}
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvdHJhbnNsYXRlL2kxOG4tY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVoRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBT2hFLElBQUksb0JBQWdDLENBQUM7QUFFckMsTUFBTSxDQUFDLEtBQUssVUFBVSxzQkFBc0I7SUFDMUMsb0JBQW9CLEdBQUcsTUFBTSxLQUFLLENBQ2hDLFVBQVUsRUFBRTtRQUNWLENBQUMsQ0FBQyw4QkFBOEI7UUFDaEMsQ0FBQyxDQUFDLGdDQUFnQyxDQUNyQztTQUNFLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUN2QixJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUM7U0FDbkMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1FBQ1gsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNuQixPQUFPLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQ3pDLENBQUMsQ0FBQyxDQUFDO0lBRUwsT0FBTyxvQkFBb0IsQ0FBQztBQUM5QixDQUFDO0FBRUQsTUFBTSxVQUFVLHFCQUFxQjtJQUduQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUMxQixNQUFNLElBQUksS0FBSyxDQUFDLGdDQUFnQyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUNELE9BQU8sb0JBQW9CLENBQUM7QUFDOUIsQ0FBQztBQUVELE1BQU0sVUFBVSxlQUFlLENBQUMsa0JBQTZCO0lBQzNELGtCQUFrQjtRQUNoQixrQkFBa0IsSUFBSSxxQkFBcUIsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUVyRSxNQUFNLGNBQWMsR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzVELE1BQU0sYUFBYSxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQ25FLFNBQVMsQ0FBQyxTQUFTLENBQ3BCLENBQUM7SUFFRixLQUFLLE1BQU0sUUFBUSxJQUFJLGFBQWEsRUFBRSxDQUFDO1FBQ3JDLE1BQU0sVUFBVSxHQUFHLGtCQUFrQixDQUFDLElBQUksQ0FDeEMsYUFBYSxDQUFDLEVBQUUsQ0FDZCxhQUFhLEtBQUssUUFBUTtZQUMxQixhQUFhLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQ3pELENBQUM7UUFDRixJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2YsT0FBTyxVQUFVLENBQUM7UUFDcEIsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLGlCQUFpQixDQUFDO0FBQzNCLENBQUM7QUFFRCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsUUFBZ0I7SUFDaEQsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUNuQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGVlcFJlYWRvbmx5IH0gZnJvbSAndHMtZXNzZW50aWFscyc7XG5cbmltcG9ydCB7IGlzTG9jYWxEZXYgfSBmcm9tICcuLi9jb3JlL3B1YmxpYy1hcGknO1xuXG5pbXBvcnQgeyBGQUxMQkFDS19MQU5HVUFHRSwgTE9DQUxFX1NUT1JBR0UgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5cbmludGVyZmFjZSBMYW5nSW5mbyB7XG4gIGlkOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbn1cblxubGV0IF9fYXZhaWxhYmxlTGFuZ3VhZ2VzOiBMYW5nSW5mb1tdO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbG9hZEF2YWlsYWJsZUxhbmd1YWdlcygpOiBQcm9taXNlPExhbmdJbmZvW10+IHtcbiAgX19hdmFpbGFibGVMYW5ndWFnZXMgPSBhd2FpdCBmZXRjaChcbiAgICBpc0xvY2FsRGV2KClcbiAgICAgID8gJy9jb25zb2xlLWkxOG4vbGFuZ3VhZ2VzLmpzb24nXG4gICAgICA6ICcvY29uc29sZS9hcGkvdjEvaTE4bi9sYW5ndWFnZXMnLFxuICApXG4gICAgLnRoZW4ocmVzID0+IHJlcy5qc29uKCkpXG4gICAgLnRoZW4ocmVzID0+IHJlcy5hdmFpbGFibGVMYW5ndWFnZXMpXG4gICAgLmNhdGNoKGVyciA9PiB7XG4gICAgICBjb25zb2xlLmVycm9yKGVycik7XG4gICAgICByZXR1cm4gW3sgaWQ6ICdlbicsIG5hbWU6ICdFbmdsaXNoJyB9XTtcbiAgICB9KTtcblxuICByZXR1cm4gX19hdmFpbGFibGVMYW5ndWFnZXM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRBdmFpbGFibGVMYW5ndWFnZXMoKTogRGVlcFJlYWRvbmx5PFxuICB0eXBlb2YgX19hdmFpbGFibGVMYW5ndWFnZXNcbj4ge1xuICBpZiAoIV9fYXZhaWxhYmxlTGFuZ3VhZ2VzKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdBdmFpbGFibGUgbGFuZ3VhZ2VzIG5vdCBsb2FkZWQnKTtcbiAgfVxuICByZXR1cm4gX19hdmFpbGFibGVMYW5ndWFnZXM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRVc2VyTGFuZ3VhZ2UoYXZhaWxhYmxlTGFuZ3VhZ2VzPzogc3RyaW5nW10pIHtcbiAgYXZhaWxhYmxlTGFuZ3VhZ2VzID1cbiAgICBhdmFpbGFibGVMYW5ndWFnZXMgfHwgZ2V0QXZhaWxhYmxlTGFuZ3VhZ2VzKCkubWFwKGxhbmcgPT4gbGFuZy5pZCk7XG5cbiAgY29uc3QgbG9jYWxlTGFuZ3VhZ2UgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShMT0NBTEVfU1RPUkFHRSk7XG4gIGNvbnN0IHVzZXJMYW5ndWFnZXMgPSAobG9jYWxlTGFuZ3VhZ2UgPyBbbG9jYWxlTGFuZ3VhZ2VdIDogW10pLmNvbmNhdChcbiAgICBuYXZpZ2F0b3IubGFuZ3VhZ2VzLFxuICApO1xuXG4gIGZvciAoY29uc3QgdXNlckxhbmcgb2YgdXNlckxhbmd1YWdlcykge1xuICAgIGNvbnN0IHJlc3VsdExhbmcgPSBhdmFpbGFibGVMYW5ndWFnZXMuZmluZChcbiAgICAgIGF2YWlsYWJsZUxhbmcgPT5cbiAgICAgICAgYXZhaWxhYmxlTGFuZyA9PT0gdXNlckxhbmcgfHxcbiAgICAgICAgYXZhaWxhYmxlTGFuZy5zcGxpdCgnLScpWzBdID09PSB1c2VyTGFuZy5zcGxpdCgnLScpWzBdLFxuICAgICk7XG4gICAgaWYgKHJlc3VsdExhbmcpIHtcbiAgICAgIHJldHVybiByZXN1bHRMYW5nO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBGQUxMQkFDS19MQU5HVUFHRTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQnVpbHRJbkxhbmd1YWdlKGxhbmd1YWdlOiBzdHJpbmcpIHtcbiAgcmV0dXJuIFsnZW4nXS5pbmNsdWRlcyhsYW5ndWFnZSk7XG59XG4iXX0=