-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathproject.config.ts
49 lines (42 loc) · 1.18 KB
/
project.config.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
import { Currency } from '@commercetools/frontend-sdk/lib/types/Currency';
interface LocalizationMapping {
locale: string;
localeName: string;
currency: Currency;
currencyCode: string;
countryName: string;
countryCode: string;
countries: Array<string>;
}
const localizationMapper = {
en: {
locale: 'en-US',
localeName: 'English',
currency: 'USD',
currencyCode: '$',
countryCode: 'US',
countryName: 'United States',
countries: ['US'],
},
de: {
locale: 'de-DE',
localeName: 'German',
currency: 'EUR',
currencyCode: '€',
countryCode: 'DE',
countryName: 'Germany',
countries: ['DE'],
},
} as Record<string, LocalizationMapping>;
const locales = Object.keys(localizationMapper);
const defaultLocale = locales[0];
export const i18nConfig = { locales, defaultLocale };
export const getLocalizationInfo = (locale: string) => {
if (!(locale in localizationMapper)) {
console.warn(
`Invalid locale ${locale} provided. Possible values are ${Object.keys(localizationMapper).join(', ')}`,
);
return localizationMapper[defaultLocale];
}
return localizationMapper[locale as keyof typeof localizationMapper];
};