accounts-frontend/packages/app/components/i18n/localeFlags.ts

39 lines
949 B
TypeScript
Raw Normal View History

import supportedLocales from 'app/i18n';
const localeToCountryCode = {
en: 'gb',
be: 'by',
pt: 'br',
uk: 'ua',
vi: 'vn',
sl: 'si',
sr: 'rs',
zh: 'cn',
};
2019-12-07 16:58:52 +05:30
const SUPPORTED_LANGUAGES: string[] = Object.keys(supportedLocales);
export default {
2019-12-07 16:58:52 +05:30
getCountryList(): string[] {
return SUPPORTED_LANGUAGES.map(
locale => localeToCountryCode[locale] || locale,
);
},
/**
* Возвращает для указанной локали её флаг с учётом всех нюансов загрузки флага
* и подбора соответствующего локали флага.
*
* @param {string} locale
*
* @returns {string}
*/
getIconUrl(locale: string): string {
2019-12-25 17:00:47 +05:30
// eslint-disable-next-line @typescript-eslint/no-var-requires
const mod = require(`flag-icon-css/flags/4x3/${localeToCountryCode[
locale
] || locale}.svg`);
return mod.default || mod;
},
};