feat: support multi url for DEEPLX

This commit is contained in:
Gabe Yuan
2024-04-20 14:01:34 +08:00
parent a5cfb0ca1d
commit 1938f432dd
3 changed files with 20 additions and 7 deletions

View File

@@ -790,8 +790,8 @@ export const I18N = {
en: `Secondary Context Menus`,
},
mulkeys_help: {
zh: `支持用换行或英文逗号“,”分隔多个KEY轮询调用。`,
en: `Supports multiple KEY polling calls separated by newlines or English commas ",".`,
zh: `支持用换行或英文逗号“,”分隔轮询调用。`,
en: `Supports polling calls separated by newlines or English commas ",".`,
},
translation_element_tag: {
zh: `译文元素标签`,

View File

@@ -29,9 +29,10 @@ import { genDeeplFree } from "../apis/deepl";
import { genBaidu } from "../apis/baidu";
const keyMap = new Map();
const urlMap = new Map();
// 轮询key
const keyPick = (translator, key = "") => {
// 轮询key/url
const keyPick = (translator, key = "", cacheMap) => {
const keys = key
.split(/\n|,/)
.map((item) => item.trim())
@@ -41,9 +42,9 @@ const keyPick = (translator, key = "") => {
return "";
}
const preIndex = keyMap.get(translator) ?? -1;
const preIndex = cacheMap.get(translator) ?? -1;
const curIndex = (preIndex + 1) % keys.length;
keyMap.set(translator, curIndex);
cacheMap.set(translator, curIndex);
return keys[curIndex];
};
@@ -336,7 +337,10 @@ export const newTransReq = ({ translator, text, from, to }, apiSetting) => {
case OPT_TRANS_GEMINI:
case OPT_TRANS_CLOUDFLAREAI:
case OPT_TRANS_NIUTRANS:
args.key = keyPick(translator, args.key);
args.key = keyPick(translator, args.key, keyMap);
break;
case OPT_TRANS_DEEPLX:
args.url = keyPick(translator, args.url, urlMap);
break;
default:
}

View File

@@ -6,6 +6,7 @@ import {
OPT_TRANS_ALL,
OPT_TRANS_MICROSOFT,
OPT_TRANS_DEEPL,
OPT_TRANS_DEEPLX,
OPT_TRANS_DEEPLFREE,
OPT_TRANS_BAIDU,
OPT_TRANS_TENCENT,
@@ -171,6 +172,11 @@ function ApiFields({ translator }) {
name="url"
value={url}
onChange={handleChange}
multiline={translator === OPT_TRANS_DEEPLX}
maxRows={10}
helperText={
translator === OPT_TRANS_DEEPLX ? i18n("mulkeys_help") : ""
}
/>
<TextField
size="small"
@@ -179,6 +185,7 @@ function ApiFields({ translator }) {
value={key}
onChange={handleChange}
multiline={mulkeysTranslators.includes(translator)}
maxRows={10}
helperText={keyHelper}
/>
</>
@@ -200,6 +207,7 @@ function ApiFields({ translator }) {
value={prompt}
onChange={handleChange}
multiline
maxRows={10}
/>
</>
)}
@@ -231,6 +239,7 @@ function ApiFields({ translator }) {
value={customOption}
onChange={handleChange}
multiline
maxRows={10}
/>
)}