fix: switch language immediately (#630)
This commit is contained in:
parent
5e22772e1c
commit
fed3b24443
|
@ -40,6 +40,7 @@ import VectorListPage from "./VectorListPage";
|
||||||
import VectorEditPage from "./VectorEditPage";
|
import VectorEditPage from "./VectorEditPage";
|
||||||
import SigninPage from "./SigninPage";
|
import SigninPage from "./SigninPage";
|
||||||
import i18next from "i18next";
|
import i18next from "i18next";
|
||||||
|
import {withTranslation} from "react-i18next";
|
||||||
import LanguageSelect from "./LanguageSelect";
|
import LanguageSelect from "./LanguageSelect";
|
||||||
import ChatEditPage from "./ChatEditPage";
|
import ChatEditPage from "./ChatEditPage";
|
||||||
import ChatListPage from "./ChatListPage";
|
import ChatListPage from "./ChatListPage";
|
||||||
|
@ -487,4 +488,4 @@ class App extends Component {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export default withRouter(App);
|
export default withRouter(withTranslation()(App));
|
||||||
|
|
|
@ -27,7 +27,6 @@ class LanguageSelect extends React.Component {
|
||||||
constructor(props) {
|
constructor(props) {
|
||||||
super(props);
|
super(props);
|
||||||
this.state = {
|
this.state = {
|
||||||
classes: props,
|
|
||||||
languages: props.languages ?? Setting.Countries.map(item => item.key),
|
languages: props.languages ?? Setting.Countries.map(item => item.key),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -217,41 +217,14 @@ export function getLanguage() {
|
||||||
|
|
||||||
export function setLanguage(language) {
|
export function setLanguage(language) {
|
||||||
localStorage.setItem("language", language);
|
localStorage.setItem("language", language);
|
||||||
changeMomentLanguage(language);
|
|
||||||
i18next.changeLanguage(language);
|
i18next.changeLanguage(language);
|
||||||
}
|
}
|
||||||
|
|
||||||
export function changeLanguage(language) {
|
export function changeLanguage(language) {
|
||||||
localStorage.setItem("language", language);
|
setLanguage(language);
|
||||||
changeMomentLanguage(language);
|
|
||||||
i18next.changeLanguage(language);
|
|
||||||
window.location.reload(true);
|
window.location.reload(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
export function changeMomentLanguage(lng) {
|
|
||||||
return;
|
|
||||||
// if (lng === "zh") {
|
|
||||||
// moment.locale("zh", {
|
|
||||||
// relativeTime: {
|
|
||||||
// future: "%s内",
|
|
||||||
// past: "%s前",
|
|
||||||
// s: "几秒",
|
|
||||||
// ss: "%d秒",
|
|
||||||
// m: "1分钟",
|
|
||||||
// mm: "%d分钟",
|
|
||||||
// h: "1小时",
|
|
||||||
// hh: "%d小时",
|
|
||||||
// d: "1天",
|
|
||||||
// dd: "%d天",
|
|
||||||
// M: "1个月",
|
|
||||||
// MM: "%d个月",
|
|
||||||
// y: "1年",
|
|
||||||
// yy: "%d年",
|
|
||||||
// },
|
|
||||||
// });
|
|
||||||
// }
|
|
||||||
}
|
|
||||||
|
|
||||||
export function getTag(text, type, state) {
|
export function getTag(text, type, state) {
|
||||||
let icon = null;
|
let icon = null;
|
||||||
let style = {};
|
let style = {};
|
||||||
|
@ -610,8 +583,6 @@ export const Countries = [{label: "English", key: "en", country: "US", alt: "Eng
|
||||||
{label: "日本語", key: "ja", country: "JP", alt: "日本語"},
|
{label: "日本語", key: "ja", country: "JP", alt: "日本語"},
|
||||||
{label: "한국어", key: "ko", country: "KR", alt: "한국어"},
|
{label: "한국어", key: "ko", country: "KR", alt: "한국어"},
|
||||||
{label: "Русский", key: "ru", country: "RU", alt: "Русский"},
|
{label: "Русский", key: "ru", country: "RU", alt: "Русский"},
|
||||||
{label: "TiếngViệt", key: "vi", country: "VN", alt: "TiếngViệt"},
|
|
||||||
{label: "Português", key: "pt", country: "BR", alt: "Português"},
|
|
||||||
];
|
];
|
||||||
|
|
||||||
export function getItem(label, key, icon, children, type) {
|
export function getItem(label, key, icon, children, type) {
|
||||||
|
|
|
@ -15,12 +15,26 @@
|
||||||
import i18n from "i18next";
|
import i18n from "i18next";
|
||||||
import zh from "./locales/zh/data.json";
|
import zh from "./locales/zh/data.json";
|
||||||
import en from "./locales/en/data.json";
|
import en from "./locales/en/data.json";
|
||||||
|
import es from "./locales/es/data.json";
|
||||||
|
import fr from "./locales/fr/data.json";
|
||||||
|
import de from "./locales/de/data.json";
|
||||||
|
import id from "./locales/id/data.json";
|
||||||
|
import ja from "./locales/ja/data.json";
|
||||||
|
import ko from "./locales/ko/data.json";
|
||||||
|
import ru from "./locales/ru/data.json";
|
||||||
import * as Conf from "./Conf";
|
import * as Conf from "./Conf";
|
||||||
import * as Setting from "./Setting";
|
import {initReactI18next} from "react-i18next";
|
||||||
|
|
||||||
const resources = {
|
const resources = {
|
||||||
en: en,
|
en: en,
|
||||||
zh: zh,
|
zh: zh,
|
||||||
|
es: es,
|
||||||
|
fr: fr,
|
||||||
|
de: de,
|
||||||
|
id: id,
|
||||||
|
ja: ja,
|
||||||
|
ko: ko,
|
||||||
|
ru: ru,
|
||||||
};
|
};
|
||||||
|
|
||||||
function initLanguage() {
|
function initLanguage() {
|
||||||
|
@ -31,29 +45,49 @@ function initLanguage() {
|
||||||
} else {
|
} else {
|
||||||
const userLanguage = navigator.language;
|
const userLanguage = navigator.language;
|
||||||
switch (userLanguage) {
|
switch (userLanguage) {
|
||||||
case "zh-CN":
|
|
||||||
language = "zh";
|
|
||||||
break;
|
|
||||||
case "zh":
|
|
||||||
language = "zh";
|
|
||||||
break;
|
|
||||||
case "en":
|
case "en":
|
||||||
language = "en";
|
language = "en";
|
||||||
break;
|
break;
|
||||||
case "en-US":
|
case "en-US":
|
||||||
language = "en";
|
language = "en";
|
||||||
break;
|
break;
|
||||||
|
case "zh-CN":
|
||||||
|
language = "zh";
|
||||||
|
break;
|
||||||
|
case "zh":
|
||||||
|
language = "zh";
|
||||||
|
break;
|
||||||
|
case "es":
|
||||||
|
language = "es";
|
||||||
|
break;
|
||||||
|
case "fr":
|
||||||
|
language = "fr";
|
||||||
|
break;
|
||||||
|
case "de":
|
||||||
|
language = "de";
|
||||||
|
break;
|
||||||
|
case "id":
|
||||||
|
language = "id";
|
||||||
|
break;
|
||||||
|
case "ja":
|
||||||
|
language = "ja";
|
||||||
|
break;
|
||||||
|
case "ko":
|
||||||
|
language = "ko";
|
||||||
|
break;
|
||||||
|
case "ru":
|
||||||
|
language = "ru";
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
language = Conf.DefaultLanguage;
|
language = Conf.DefaultLanguage;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Setting.changeMomentLanguage(language);
|
|
||||||
|
|
||||||
return language;
|
return language;
|
||||||
}
|
}
|
||||||
|
|
||||||
i18n.init({
|
i18n.use(initReactI18next).init({
|
||||||
lng: initLanguage(),
|
lng: initLanguage(),
|
||||||
|
|
||||||
resources: resources,
|
resources: resources,
|
||||||
|
|
Loading…
Reference in New Issue