2022-02-13 23:39:27 +08:00
|
|
|
// Copyright 2021 The Casdoor Authors. All Rights Reserved.
|
2021-02-19 23:23:59 +08:00
|
|
|
//
|
|
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
|
// you may not use this file except in compliance with the License.
|
|
|
|
// You may obtain a copy of the License at
|
|
|
|
//
|
|
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
//
|
|
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
// See the License for the specific language governing permissions and
|
|
|
|
// limitations under the License.
|
|
|
|
|
2021-09-14 01:22:13 +08:00
|
|
|
import i18n from "i18next";
|
|
|
|
import en from "./locales/en/data.json";
|
2023-02-18 17:35:36 +08:00
|
|
|
import zh from "./locales/zh/data.json";
|
|
|
|
import es from "./locales/es/data.json";
|
2021-09-14 01:22:13 +08:00
|
|
|
import fr from "./locales/fr/data.json";
|
|
|
|
import de from "./locales/de/data.json";
|
2023-02-18 17:35:36 +08:00
|
|
|
import ja from "./locales/ja/data.json";
|
2021-09-14 01:22:13 +08:00
|
|
|
import ko from "./locales/ko/data.json";
|
|
|
|
import ru from "./locales/ru/data.json";
|
2023-02-18 17:35:36 +08:00
|
|
|
import vi from "./locales/vi/data.json";
|
2021-09-14 01:22:13 +08:00
|
|
|
import * as Conf from "./Conf";
|
2022-10-12 13:52:02 +02:00
|
|
|
import {initReactI18next} from "react-i18next";
|
2021-02-19 23:23:59 +08:00
|
|
|
|
|
|
|
const resources = {
|
|
|
|
en: en,
|
2021-07-03 10:09:29 +08:00
|
|
|
zh: zh,
|
2023-02-18 17:35:36 +08:00
|
|
|
es: es,
|
2021-07-03 10:09:29 +08:00
|
|
|
fr: fr,
|
|
|
|
de: de,
|
2023-02-18 17:35:36 +08:00
|
|
|
ja: ja,
|
2021-07-03 10:09:29 +08:00
|
|
|
ko: ko,
|
|
|
|
ru: ru,
|
2023-02-18 17:35:36 +08:00
|
|
|
vi: vi,
|
2021-02-19 23:23:59 +08:00
|
|
|
};
|
|
|
|
|
2021-09-14 01:22:13 +08:00
|
|
|
function initLanguage() {
|
|
|
|
let language = localStorage.getItem("language");
|
2022-08-13 11:23:16 +08:00
|
|
|
if (language === undefined || language === null || language === "") {
|
2021-09-14 01:22:13 +08:00
|
|
|
if (Conf.ForceLanguage !== "") {
|
|
|
|
language = Conf.ForceLanguage;
|
|
|
|
} else {
|
2022-08-08 23:35:24 +08:00
|
|
|
const userLanguage = navigator.language;
|
2021-09-14 01:22:13 +08:00
|
|
|
switch (userLanguage) {
|
2023-02-18 17:35:36 +08:00
|
|
|
case "en":
|
|
|
|
language = "en";
|
|
|
|
break;
|
|
|
|
case "en-US":
|
|
|
|
language = "en";
|
|
|
|
break;
|
2022-07-10 15:45:55 +08:00
|
|
|
case "zh-CN":
|
|
|
|
language = "zh";
|
|
|
|
break;
|
|
|
|
case "zh":
|
|
|
|
language = "zh";
|
|
|
|
break;
|
2023-02-18 17:35:36 +08:00
|
|
|
case "es":
|
|
|
|
language = "es";
|
2022-07-10 15:45:55 +08:00
|
|
|
break;
|
|
|
|
case "fr":
|
|
|
|
language = "fr";
|
|
|
|
break;
|
|
|
|
case "de":
|
|
|
|
language = "de";
|
|
|
|
break;
|
2023-02-18 17:35:36 +08:00
|
|
|
case "ja":
|
|
|
|
language = "ja";
|
|
|
|
break;
|
2022-07-10 15:45:55 +08:00
|
|
|
case "ko":
|
|
|
|
language = "ko";
|
|
|
|
break;
|
|
|
|
case "ru":
|
|
|
|
language = "ru";
|
|
|
|
break;
|
2023-02-18 17:35:36 +08:00
|
|
|
case "vi":
|
|
|
|
language = "vi";
|
2022-07-10 15:45:55 +08:00
|
|
|
break;
|
|
|
|
default:
|
|
|
|
language = Conf.DefaultLanguage;
|
2021-09-14 01:22:13 +08:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return language;
|
|
|
|
}
|
|
|
|
|
2022-10-12 13:52:02 +02:00
|
|
|
i18n.use(initReactI18next).init({
|
2021-09-14 01:22:13 +08:00
|
|
|
lng: initLanguage(),
|
2021-02-19 23:23:59 +08:00
|
|
|
|
2021-09-14 01:22:13 +08:00
|
|
|
resources: resources,
|
2021-02-19 23:23:59 +08:00
|
|
|
|
2021-09-14 01:22:13 +08:00
|
|
|
keySeparator: false,
|
2021-02-19 23:23:59 +08:00
|
|
|
|
2021-09-14 01:22:13 +08:00
|
|
|
interpolation: {
|
2022-12-02 00:06:28 +08:00
|
|
|
escapeValue: true,
|
2021-09-14 01:22:13 +08:00
|
|
|
},
|
2022-07-10 15:45:55 +08:00
|
|
|
// debug: true,
|
2021-09-14 01:22:13 +08:00
|
|
|
saveMissing: true,
|
|
|
|
});
|
2021-02-19 23:23:59 +08:00
|
|
|
|
2021-09-14 01:22:13 +08:00
|
|
|
export default i18n;
|