Skip to content

Commit fed3b24

Browse files
authored
fix: switch language immediately (#630)
1 parent 5e22772 commit fed3b24

4 files changed

Lines changed: 44 additions & 39 deletions

File tree

web/src/App.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ import VectorListPage from "./VectorListPage";
4040
import VectorEditPage from "./VectorEditPage";
4141
import SigninPage from "./SigninPage";
4242
import i18next from "i18next";
43+
import {withTranslation} from "react-i18next";
4344
import LanguageSelect from "./LanguageSelect";
4445
import ChatEditPage from "./ChatEditPage";
4546
import ChatListPage from "./ChatListPage";
@@ -487,4 +488,4 @@ class App extends Component {
487488
}
488489
}
489490

490-
export default withRouter(App);
491+
export default withRouter(withTranslation()(App));

web/src/LanguageSelect.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ class LanguageSelect extends React.Component {
2727
constructor(props) {
2828
super(props);
2929
this.state = {
30-
classes: props,
3130
languages: props.languages ?? Setting.Countries.map(item => item.key),
3231
};
3332

web/src/Setting.js

Lines changed: 1 addition & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -217,41 +217,14 @@ export function getLanguage() {
217217

218218
export function setLanguage(language) {
219219
localStorage.setItem("language", language);
220-
changeMomentLanguage(language);
221220
i18next.changeLanguage(language);
222221
}
223222

224223
export function changeLanguage(language) {
225-
localStorage.setItem("language", language);
226-
changeMomentLanguage(language);
227-
i18next.changeLanguage(language);
224+
setLanguage(language);
228225
window.location.reload(true);
229226
}
230227

231-
export function changeMomentLanguage(lng) {
232-
return;
233-
// if (lng === "zh") {
234-
// moment.locale("zh", {
235-
// relativeTime: {
236-
// future: "%s内",
237-
// past: "%s前",
238-
// s: "几秒",
239-
// ss: "%d秒",
240-
// m: "1分钟",
241-
// mm: "%d分钟",
242-
// h: "1小时",
243-
// hh: "%d小时",
244-
// d: "1天",
245-
// dd: "%d天",
246-
// M: "1个月",
247-
// MM: "%d个月",
248-
// y: "1年",
249-
// yy: "%d年",
250-
// },
251-
// });
252-
// }
253-
}
254-
255228
export function getTag(text, type, state) {
256229
let icon = null;
257230
let style = {};
@@ -610,8 +583,6 @@ export const Countries = [{label: "English", key: "en", country: "US", alt: "Eng
610583
{label: "日本語", key: "ja", country: "JP", alt: "日本語"},
611584
{label: "한국어", key: "ko", country: "KR", alt: "한국어"},
612585
{label: "Русский", key: "ru", country: "RU", alt: "Русский"},
613-
{label: "TiếngViệt", key: "vi", country: "VN", alt: "TiếngViệt"},
614-
{label: "Português", key: "pt", country: "BR", alt: "Português"},
615586
];
616587

617588
export function getItem(label, key, icon, children, type) {

web/src/i18n.js

Lines changed: 41 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,26 @@
1515
import i18n from "i18next";
1616
import zh from "./locales/zh/data.json";
1717
import en from "./locales/en/data.json";
18+
import es from "./locales/es/data.json";
19+
import fr from "./locales/fr/data.json";
20+
import de from "./locales/de/data.json";
21+
import id from "./locales/id/data.json";
22+
import ja from "./locales/ja/data.json";
23+
import ko from "./locales/ko/data.json";
24+
import ru from "./locales/ru/data.json";
1825
import * as Conf from "./Conf";
19-
import * as Setting from "./Setting";
26+
import {initReactI18next} from "react-i18next";
2027

2128
const resources = {
2229
en: en,
2330
zh: zh,
31+
es: es,
32+
fr: fr,
33+
de: de,
34+
id: id,
35+
ja: ja,
36+
ko: ko,
37+
ru: ru,
2438
};
2539

2640
function initLanguage() {
@@ -31,29 +45,49 @@ function initLanguage() {
3145
} else {
3246
const userLanguage = navigator.language;
3347
switch (userLanguage) {
48+
case "en":
49+
language = "en";
50+
break;
51+
case "en-US":
52+
language = "en";
53+
break;
3454
case "zh-CN":
3555
language = "zh";
3656
break;
3757
case "zh":
3858
language = "zh";
3959
break;
40-
case "en":
41-
language = "en";
60+
case "es":
61+
language = "es";
4262
break;
43-
case "en-US":
44-
language = "en";
63+
case "fr":
64+
language = "fr";
65+
break;
66+
case "de":
67+
language = "de";
68+
break;
69+
case "id":
70+
language = "id";
71+
break;
72+
case "ja":
73+
language = "ja";
74+
break;
75+
case "ko":
76+
language = "ko";
77+
break;
78+
case "ru":
79+
language = "ru";
4580
break;
4681
default:
4782
language = Conf.DefaultLanguage;
4883
}
4984
}
5085
}
51-
Setting.changeMomentLanguage(language);
5286

5387
return language;
5488
}
5589

56-
i18n.init({
90+
i18n.use(initReactI18next).init({
5791
lng: initLanguage(),
5892

5993
resources: resources,

0 commit comments

Comments
 (0)