Browse Source

Fix compile errors

master
Yang Luo 2 years ago
parent
commit
ee95761c5e
6 changed files with 94 additions and 1 deletions
  1. +3
    -0
      web/src/Conf.js
  2. +31
    -0
      web/src/SelectLanguageBox.js
  3. +1
    -1
      web/src/Setting.js
  4. +57
    -0
      web/src/i18n.js
  5. +1
    -0
      web/src/locales/en/data.json
  6. +1
    -0
      web/src/locales/zh/data.json

+ 3
- 0
web/src/Conf.js View File

@@ -6,3 +6,6 @@ export const AuthConfig = {
organizationName: "casbin", organizationName: "casbin",
redirectPath: "/callback", redirectPath: "/callback",
}; };
export const ForceLanguage = "";
export const DefaultLanguage = "en";

+ 31
- 0
web/src/SelectLanguageBox.js View File

@@ -0,0 +1,31 @@
import React from "react";
import * as Setting from "./Setting";
import {Dropdown, Menu} from "antd";
import {createFromIconfontCN} from "@ant-design/icons";
import "./App.less";

const IconFont = createFromIconfontCN({
scriptUrl: "//at.alicdn.com/t/font_2680620_ffij16fkwdg.js",
});

const LanguageItems = [
{lang: "en", label: "English", icon: "icon-en"},
{lang: "zh", label: "中文", icon: "icon-zh"},
];

class SelectLanguageBox extends React.Component {
constructor(props) {
super(props);
this.state = {
classes: props,
};
}

render() {
return <Dropdown overlay={<Menu>{LanguageItems.map(({lang, label, icon}) => <Menu.Item key={lang} onClick={() => Setting.changeLanguage(lang)}><IconFont type={icon} />{label}</Menu.Item>)}</Menu>}>
<div className="language-box"></div>
</Dropdown>;
}
}

export default SelectLanguageBox;

+ 1
- 1
web/src/Setting.js View File

@@ -10,7 +10,7 @@ export let CasdoorSdk;
export function initServerUrl() { export function initServerUrl() {
const hostname = window.location.hostname; const hostname = window.location.hostname;
if (hostname === 'localhost') { if (hostname === 'localhost') {
ServerUrl = `http://${hostname}:15000`;
ServerUrl = `http://${hostname}:17000`;
} }
} }


+ 57
- 0
web/src/i18n.js View File

@@ -0,0 +1,57 @@
import i18n from "i18next";
import zh from "./locales/zh/data.json";
import en from "./locales/en/data.json";
import * as Conf from "./Conf";
import * as Setting from "./Setting";
import {initReactI18next} from "react-i18next";

const resources = {
en: en,
zh: zh,
};

function initLanguage() {
let language = localStorage.getItem("language");
if (language === undefined || language === null) {
if (Conf.ForceLanguage !== "") {
language = Conf.ForceLanguage;
} else {
const userLanguage = navigator.language;
switch (userLanguage) {
case "zh-CN":
language = "zh";
break;
case "zh":
language = "zh";
break;
case "en":
language = "en";
break;
case "en-US":
language = "en";
break;
default:
language = Conf.DefaultLanguage;
}
}
}
Setting.changeMomentLanguage(language);

return language;
}

i18n.use(initReactI18next).init({
lng: initLanguage(),

resources: resources,

keySeparator: false,

interpolation: {
escapeValue: false,
},
// debug: true,
saveMissing: true,
});

export default i18n;

+ 1
- 0
web/src/locales/en/data.json View File

@@ -0,0 +1 @@
{}

+ 1
- 0
web/src/locales/zh/data.json View File

@@ -0,0 +1 @@
{}

Loading…
Cancel
Save