Skip to content

Commit 8dd7671

Browse files
committed
🌐(frontend) add language name to LanguagePicker
The language picker were only showing the language code, now it shows the language name.
1 parent fe39152 commit 8dd7671

File tree

5 files changed

+15
-7
lines changed

5 files changed

+15
-7
lines changed

src/frontend/apps/e2e/__tests__/app-impress/language.spec.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,11 @@ test.describe('Language', () => {
1313
).toBeVisible();
1414

1515
const header = page.locator('header').first();
16-
await header.getByRole('combobox').getByText('EN').click();
17-
await header.getByRole('option', { name: 'FR' }).click();
18-
await expect(header.getByRole('combobox').getByText('FR')).toBeVisible();
16+
await header.getByRole('combobox').getByText('English').click();
17+
await header.getByRole('option', { name: 'Français' }).click();
18+
await expect(
19+
header.getByRole('combobox').getByText('Français'),
20+
).toBeVisible();
1921

2022
await expect(
2123
page.getByRole('button', {

src/frontend/apps/impress/src/features/language/LanguagePicker.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import { useTranslation } from 'react-i18next';
55
import styled from 'styled-components';
66

77
import { Box, Text } from '@/components/';
8+
import { LANGUAGES_ALLOWED } from '@/i18n/conf';
89

910
import IconLanguage from './assets/icon-language.svg?url';
1011

@@ -49,7 +50,7 @@ export const LanguagePicker = () => {
4950
$align="center"
5051
>
5152
<Image priority src={IconLanguage} alt={t('Language Icon')} />
52-
<Text $theme="primary">{lang.toUpperCase()}</Text>
53+
<Text $theme="primary">{LANGUAGES_ALLOWED[lang]}</Text>
5354
</Box>
5455
),
5556
}));
Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1-
export const LANGUAGES_ALLOWED = ['en', 'fr'];
1+
export const LANGUAGES_ALLOWED: { [key: string]: string } = {
2+
en: 'English',
3+
fr: 'Français',
4+
};
25
export const LANGUAGE_LOCAL_STORAGE = 'impress-language';
36
export const BASE_LANGUAGE = 'fr';

src/frontend/apps/impress/src/i18n/initI18n.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ i18n
1313
interpolation: {
1414
escapeValue: false,
1515
},
16-
preload: LANGUAGES_ALLOWED,
16+
preload: Object.keys(LANGUAGES_ALLOWED),
1717
nsSeparator: '||',
1818
})
1919
.catch(() => {

src/frontend/apps/impress/src/i18n/utils.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,5 +22,7 @@ export const getLanguage = () => {
2222

2323
const language = splitLocaleCode(languageStore).language;
2424

25-
return LANGUAGES_ALLOWED.includes(language) ? language : BASE_LANGUAGE;
25+
return Object.keys(LANGUAGES_ALLOWED).includes(language)
26+
? language
27+
: BASE_LANGUAGE;
2628
};

0 commit comments

Comments
 (0)