Skip to content
This repository was archived by the owner on Jan 16, 2022. It is now read-only.

Commit f974ccf

Browse files
fix(i18n): fixed current locale
1 parent 730c347 commit f974ccf

File tree

11 files changed

+73
-41
lines changed

11 files changed

+73
-41
lines changed

i18n/translations/de-DE.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,7 @@
138138
},
139139
"lng": {
140140
"english": "Englisch",
141+
"japanese": "Japanisch",
141142
"portuguese": "Portugiesisch",
142143
"spanish": "Spanisch",
143144
"german": "Deutsch",

i18n/translations/en-US.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,7 @@
138138
},
139139
"lng": {
140140
"english": "English",
141+
"japanese": "Japanese",
141142
"portuguese": "Portuguese",
142143
"spanish": "Spanish",
143144
"german": "German",
@@ -146,4 +147,4 @@
146147
},
147148
"help-to-translate": "Help to translate",
148149
"change-language": "Change language"
149-
}
150+
}

i18n/translations/es-ES.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,7 @@
138138
},
139139
"lng": {
140140
"english": "Inglés",
141+
"japanese": "Japonés",
141142
"portuguese": "Portugués",
142143
"spanish": "Español",
143144
"german": "Alemán",

i18n/translations/fr-FR.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,7 @@
138138
},
139139
"lng": {
140140
"english": "Anglaise",
141+
"japanese": "Japonaise",
141142
"portuguese": "Portugaise",
142143
"spanish": "Espagnol",
143144
"german": "Allemande",
@@ -146,4 +147,4 @@
146147
},
147148
"help-to-translate": "Aide à traduire",
148149
"change-language": "Changer la langue"
149-
}
150+
}

i18n/translations/ja-JP.json

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -135,5 +135,16 @@
135135
"app-context-not-correct-used": "AppContextが正しく使用されませんでした",
136136
"theme-context-not-correct-used": "ThemeContextが正しく使用されませんでした",
137137
"package-meta-is-required-at-detail-context": "DetailContextではpackageMetaが必要です"
138-
}
139-
}
138+
},
139+
"lng": {
140+
"english": "英語",
141+
"japanese": "日本語",
142+
"portuguese": "ポルトガル語",
143+
"spanish": "スペイン語",
144+
"german": "ドイツ人",
145+
"chinese": "中国の",
146+
"french": "フランス語"
147+
},
148+
"help-to-translate": "翻訳を助ける",
149+
"change-language": "言語を変更"
150+
}

i18n/translations/pt-BR.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,7 @@
138138
},
139139
"lng": {
140140
"english": "Inglês",
141+
"japanese": "Japonês",
141142
"portuguese": "Português",
142143
"spanish": "Espanhol",
143144
"german": "Alemão",
@@ -146,4 +147,4 @@
146147
},
147148
"help-to-translate": "Ajude a traduzir",
148149
"change-language": "Mudar idioma"
149-
}
150+
}

i18n/translations/zh-CN.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,7 @@
137137
},
138138
"lng": {
139139
"english": "英語",
140+
"japanese": "日語",
140141
"portuguese": "葡萄牙語",
141142
"spanish": "西班牙文",
142143
"german": "德語",
@@ -145,4 +146,4 @@
145146
},
146147
"help-to-translate": "幫助翻譯",
147148
"change-language": "改變語言"
148-
}
149+
}

src/components/Icon/Icon.tsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import austria from './img/austria.svg';
1313
import spain from './img/spain.svg';
1414
import usa from './img/usa.svg';
1515
import france from './img/france.svg';
16+
import japan from './img/japan.svg';
1617
import earth from './img/earth.svg';
1718
import verdaccio from './img/verdaccio.svg';
1819
import filebinary from './img/filebinary.svg';
@@ -32,6 +33,7 @@ export interface IconsMap {
3233
france: string;
3334
germany: string;
3435
india: string;
36+
japan: string;
3537
earth: string;
3638
verdaccio: string;
3739
license: string;
@@ -60,6 +62,7 @@ export const Icons: IconsMap = {
6062
germany,
6163
usa,
6264
france,
65+
japan,
6366
};
6467

6568
export interface Props {

src/components/Icon/img/japan.svg

Lines changed: 1 addition & 0 deletions
Loading

src/components/LanguageSwitch/LanguageSwitch.tsx

Lines changed: 45 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import Grow from '@material-ui/core/Grow';
99
import Popper from '@material-ui/core/Popper';
1010
import MenuList from '@material-ui/core/MenuList';
1111
import styled from '@emotion/styled';
12-
import { css } from '@emotion/core';
1312

1413
import { Language } from '../../../i18n/config';
1514
import ThemeContext from '../../design-tokens/ThemeContext';
@@ -25,34 +24,48 @@ import Icon from '../Icon';
2524

2625
const VERDACCIO_UI_GITHUB_REPOSITORY = 'https://github.com/verdaccio/ui';
2726

28-
const getTranslatedCurrentLanguage = (
29-
t: TFunction
30-
): { [key: string]: { translation: string; icon: React.ComponentProps<typeof Icon>['name'] } } => ({
31-
'en-us': {
32-
translation: t('lng.english'),
33-
icon: 'usa',
34-
},
35-
'fr-fr': {
36-
translation: t('lng.french'),
37-
icon: 'france',
38-
},
39-
'pt-br': {
40-
translation: t('lng.portuguese'),
41-
icon: 'brazil',
42-
},
43-
'de-de': {
44-
translation: t('lng.german'),
45-
icon: 'germany',
46-
},
47-
'es-es': {
48-
translation: t('lng.spanish'),
49-
icon: 'spain',
50-
},
51-
'zh-cn': {
52-
translation: t('lng.chinese'),
53-
icon: 'china',
54-
},
55-
});
27+
const getTranslatedCurrentLanguageDetails = (
28+
t: TFunction,
29+
currentLanguage: string
30+
): { translation: string; icon: React.ComponentProps<typeof Icon>['name'] } => {
31+
switch (currentLanguage) {
32+
case 'fr-FR':
33+
return {
34+
translation: t('lng.french'),
35+
icon: 'france',
36+
};
37+
case 'pt-BR':
38+
return {
39+
translation: t('lng.portuguese'),
40+
icon: 'brazil',
41+
};
42+
case 'de-DE':
43+
return {
44+
translation: t('lng.german'),
45+
icon: 'germany',
46+
};
47+
case 'es-ES':
48+
return {
49+
translation: t('lng.spanish'),
50+
icon: 'spain',
51+
};
52+
case 'zh-CN':
53+
return {
54+
translation: t('lng.chinese'),
55+
icon: 'china',
56+
};
57+
case 'ja-JP':
58+
return {
59+
translation: t('lng.japanese'),
60+
icon: 'japan',
61+
};
62+
default:
63+
return {
64+
translation: t('lng.english'),
65+
icon: 'usa',
66+
};
67+
}
68+
};
5669

5770
const LanguageSwitch = () => {
5871
const themeContext = useContext(ThemeContext);
@@ -65,9 +78,9 @@ const LanguageSwitch = () => {
6578
}
6679

6780
const languages = (i18next.options.resources ? Object.keys(i18next.options.resources) : []) as Array<Language>;
68-
const currentLanguage: Language = i18next.language || i18next.options?.fallbackLng?.[0];
81+
const currentLanguage = themeContext.language;
6982

70-
const { translation: userLanguage } = getTranslatedCurrentLanguage(t)[currentLanguage.toLowerCase()];
83+
const { translation: userLanguage } = getTranslatedCurrentLanguageDetails(t, currentLanguage);
7184

7285
const handleToggle = useCallback(() => {
7386
setOpen(prevOpen => !prevOpen);
@@ -124,7 +137,7 @@ const LanguageSwitch = () => {
124137
{languages
125138
.filter(language => language !== currentLanguage)
126139
.map(language => {
127-
const { icon, translation } = getTranslatedCurrentLanguage(t)[language.toLowerCase()];
140+
const { icon, translation } = getTranslatedCurrentLanguageDetails(t, language);
128141
return (
129142
<StyledMenuItem
130143
key={language}

0 commit comments

Comments
 (0)