Update all non-major dependencies
[ProtonMail-WebClient.git] / applications / account / src / static / localeMapping.ts
blob4dec90cfc5fa4449552a36c4a349ea10a2aa07e3
1 export { getLangAttribute } from '@proton/shared/lib/i18n/helper';
3 export const getLanguage = (locale: string) => locale.split(/[_-]/)[0];
5 const localeMapping = {
6     fr_FR: 'fr',
7     en_US: 'en',
8     es_LA: 'es',
9     pt_PT: 'pt',
12 const getLanguageLocale = (locale: string) => {
13     const result = localeMapping[locale as keyof typeof localeMapping] || locale;
14     return result.replace('_', '-').toLowerCase();
17 export const getLocaleMap = (localeFiles: string[]) => {
18     const ext = '.json';
20     const getLocaleWithoutExt = (localePath: string) => {
21         return localePath.replace(ext, '');
22     };
24     const map = localeFiles.reduce<{ [key: string]: string[] }>((acc, localePath) => {
25         if (!localePath.endsWith(ext)) {
26             return acc;
27         }
28         const fullLocale = getLocaleWithoutExt(localePath);
29         const language = getLanguage(fullLocale);
30         if (!acc[language]) {
31             acc[language] = [];
32         }
33         acc[language].push(localePath);
34         return acc;
35     }, {});
37     return localeFiles.reduce<{ [key: string]: string }>((acc, localePath) => {
38         if (!localePath.endsWith(ext) || localePath.includes('en_US')) {
39             return acc;
40         }
42         const fullLocale = getLocaleWithoutExt(localePath);
43         const replacedLocale = getLanguageLocale(fullLocale);
44         const language = getLanguage(replacedLocale);
45         let shortLocale = language;
46         if (map[language].length > 1) {
47             shortLocale = replacedLocale;
48         }
50         acc[fullLocale] = shortLocale;
52         return acc;
53     }, {});
56 export default getLanguageLocale;