diff --git a/src/config/i18n.js b/src/config/i18n.js
index d036bf4..ad5c803 100644
--- a/src/config/i18n.js
+++ b/src/config/i18n.js
@@ -352,4 +352,12 @@ export const I18N = {
zh: `清除失败`,
en: `Clear failed`,
},
+ share: {
+ zh: `分享`,
+ en: `Share`,
+ },
+ help: {
+ zh: `求助`,
+ en: `Help`,
+ },
};
diff --git a/src/config/index.js b/src/config/index.js
index 540ff02..2a5f9ed 100644
--- a/src/config/index.js
+++ b/src/config/index.js
@@ -58,6 +58,7 @@ export const THEME_DARK = "dark";
export const URL_KISS_WORKER = "https://github.com/fishjar/kiss-worker";
export const URL_KISS_PROXY = "https://github.com/fishjar/kiss-proxy";
+export const URL_KISS_RULES = "https://github.com/fishjar/kiss-rules";
export const URL_RAW_PREFIX =
"https://raw.githubusercontent.com/fishjar/kiss-translator/master";
export const URL_MICROSOFT_AUTH = "https://edge.microsoft.com/translate/auth";
diff --git a/src/views/Options/Header.js b/src/views/Options/Header.js
index 5351b9c..454c08a 100644
--- a/src/views/Options/Header.js
+++ b/src/views/Options/Header.js
@@ -36,6 +36,7 @@ function Header(props) {
underline="none"
color="inherit"
href={process.env.REACT_APP_HOMEPAGE}
+ target="_blank"
>{`${i18n("app_name")} v${process.env.REACT_APP_VERSION}`}
diff --git a/src/views/Options/Rules.js b/src/views/Options/Rules.js
index 5593276..36f3df1 100644
--- a/src/views/Options/Rules.js
+++ b/src/views/Options/Rules.js
@@ -13,6 +13,7 @@ import {
OPT_STYLE_ALL,
OPT_STYLE_DIY,
OPT_STYLE_USE_COLOR,
+ URL_KISS_RULES,
} from "../../config";
import { useState, useRef, useEffect, useMemo } from "react";
import { useI18n } from "../../hooks/I18n";
@@ -35,6 +36,7 @@ import Radio from "@mui/material/Radio";
import RadioGroup from "@mui/material/RadioGroup";
import DeleteIcon from "@mui/icons-material/Delete";
import IconButton from "@mui/material/IconButton";
+import HelpIcon from "@mui/icons-material/Help";
import ShareIcon from "@mui/icons-material/Share";
import SyncIcon from "@mui/icons-material/Sync";
import { useSubRules } from "../../hooks/SubRules";
@@ -470,7 +472,23 @@ function ShareButton({ rules, injectRules, selectedUrl }) {
onClick={handleClick}
startIcon={}
>
- {"分享"}
+ {i18n("share")}
+
+ );
+}
+
+function HelpButton() {
+ const i18n = useI18n();
+ return (
+
);
}
@@ -552,6 +570,8 @@ function UserRules({ subRules }) {
selectedUrl={selectedUrl}
/>
+
+
{i18n("add")}
+
{showInput && (
diff --git a/src/views/Options/Setting.js b/src/views/Options/Setting.js
index 2478ce2..c9683eb 100644
--- a/src/views/Options/Setting.js
+++ b/src/views/Options/Setting.js
@@ -213,7 +213,9 @@ export default function Settings() {
value={googleUrl}
onChange={handleChange}
helperText={
- {i18n("about_api_proxy")}
+
+ {i18n("about_api_proxy")}
+
}
/>
@@ -254,7 +256,9 @@ export default function Settings() {
value={openaiUrl}
onChange={handleChange}
helperText={
- {i18n("about_api_proxy")}
+
+ {i18n("about_api_proxy")}
+
}
/>
diff --git a/src/views/Options/SyncSetting.js b/src/views/Options/SyncSetting.js
index 5ffb95a..0ffefbe 100644
--- a/src/views/Options/SyncSetting.js
+++ b/src/views/Options/SyncSetting.js
@@ -58,7 +58,9 @@ export default function SyncSetting() {
value={syncUrl}
onChange={handleChange}
helperText={
- {i18n("about_sync_api")}
+
+ {i18n("about_sync_api")}
+
}
/>