Files
kiss-translator/src/config/index.js

680 lines
22 KiB
JavaScript
Raw Normal View History

2023-08-18 16:48:44 +08:00
import {
DEFAULT_SELECTOR,
2024-01-02 17:55:59 +08:00
DEFAULT_KEEP_SELECTOR,
2023-08-18 16:48:44 +08:00
GLOBAL_KEY,
2023-09-01 22:27:25 +08:00
REMAIN_KEY,
2023-08-25 17:07:53 +08:00
SHADOW_KEY,
2023-08-18 16:48:44 +08:00
DEFAULT_RULE,
2023-09-01 22:27:25 +08:00
DEFAULT_OW_RULE,
2023-08-18 16:48:44 +08:00
BUILTIN_RULES,
} from "./rules";
2023-08-30 18:05:37 +08:00
import { APP_NAME, APP_LCNAME } from "./app";
2023-07-20 13:45:41 +08:00
export { I18N, UI_LANGS } from "./i18n";
2023-09-01 22:27:25 +08:00
export {
GLOBAL_KEY,
REMAIN_KEY,
SHADOW_KEY,
DEFAULT_RULE,
DEFAULT_OW_RULE,
BUILTIN_RULES,
APP_LCNAME,
};
2023-07-20 13:45:41 +08:00
export const STOKEY_MSAUTH = `${APP_NAME}_msauth`;
2023-10-20 17:44:48 +08:00
export const STOKEY_BDAUTH = `${APP_NAME}_bdauth`;
2023-07-20 13:45:41 +08:00
export const STOKEY_SETTING = `${APP_NAME}_setting`;
export const STOKEY_RULES = `${APP_NAME}_rules`;
2023-10-26 17:32:55 +08:00
export const STOKEY_WORDS = `${APP_NAME}_words`;
2023-07-31 15:08:51 +08:00
export const STOKEY_SYNC = `${APP_NAME}_sync`;
2023-08-16 22:38:58 +08:00
export const STOKEY_FAB = `${APP_NAME}_fab`;
2023-08-20 19:27:29 +08:00
export const STOKEY_RULESCACHE_PREFIX = `${APP_NAME}_rulescache_`;
2023-07-31 03:10:09 +08:00
2023-08-21 14:03:39 +08:00
export const CMD_TOGGLE_TRANSLATE = "toggleTranslate";
2023-08-21 16:06:21 +08:00
export const CMD_TOGGLE_STYLE = "toggleStyle";
2023-09-10 13:56:11 +08:00
export const CMD_OPEN_OPTIONS = "openOptions";
2023-11-22 11:02:48 +08:00
export const CMD_OPEN_TRANBOX = "openTranbox";
2023-08-21 14:03:39 +08:00
2023-08-04 16:48:40 +08:00
export const CLIENT_WEB = "web";
export const CLIENT_CHROME = "chrome";
export const CLIENT_EDGE = "edge";
export const CLIENT_FIREFOX = "firefox";
export const CLIENT_USERSCRIPT = "userscript";
2023-08-05 18:15:01 +08:00
export const CLIENT_EXTS = [CLIENT_CHROME, CLIENT_EDGE, CLIENT_FIREFOX];
2023-08-04 16:48:40 +08:00
2023-09-18 13:28:36 +08:00
export const KV_RULES_KEY = "kiss-rules.json";
2023-10-26 17:32:55 +08:00
export const KV_WORDS_KEY = "kiss-words.json";
2023-09-18 13:28:36 +08:00
export const KV_RULES_SHARE_KEY = "kiss-rules-share.json";
export const KV_SETTING_KEY = "kiss-setting.json";
2023-08-20 23:30:08 +08:00
export const KV_SALT_SYNC = "KISS-Translator-SYNC";
export const KV_SALT_SHARE = "KISS-Translator-SHARE";
2023-07-20 13:45:41 +08:00
export const CACHE_NAME = `${APP_NAME}_cache`;
export const MSG_FETCH = "fetch";
export const MSG_GET_HTTPCACHE = "get_httpcache";
2023-09-23 19:16:51 +08:00
export const MSG_OPEN_OPTIONS = "open_options";
export const MSG_SAVE_RULE = "save_rule";
2023-07-20 13:45:41 +08:00
export const MSG_TRANS_TOGGLE = "trans_toggle";
2023-08-21 16:06:21 +08:00
export const MSG_TRANS_TOGGLE_STYLE = "trans_toggle_style";
2023-11-22 11:02:48 +08:00
export const MSG_OPEN_TRANBOX = "open_tranbox";
2023-07-20 13:45:41 +08:00
export const MSG_TRANS_GETRULE = "trans_getrule";
export const MSG_TRANS_PUTRULE = "trans_putrule";
2023-08-06 21:12:01 +08:00
export const MSG_TRANS_CURRULE = "trans_currule";
2023-12-11 11:25:02 +08:00
export const MSG_CONTEXT_MENUS = "context_menus";
2024-01-22 13:11:02 +08:00
export const MSG_COMMAND_SHORTCUTS = "command_shortcuts";
2024-03-14 18:06:28 +08:00
export const MSG_INJECT_JS = "inject_js";
export const MSG_INJECT_CSS = "inject_css";
2024-03-26 12:00:09 +08:00
export const MSG_UPDATE_CSP = "update_csp";
2023-08-06 21:12:01 +08:00
2023-07-20 13:45:41 +08:00
export const THEME_LIGHT = "light";
export const THEME_DARK = "dark";
2023-07-31 15:08:51 +08:00
export const URL_KISS_WORKER = "https://github.com/fishjar/kiss-worker";
2023-09-01 11:03:53 +08:00
export const URL_KISS_PROXY = "https://github.com/fishjar/kiss-proxy";
2023-09-04 22:29:39 +08:00
export const URL_KISS_RULES = "https://github.com/fishjar/kiss-rules";
2023-09-04 23:12:35 +08:00
export const URL_KISS_RULES_NEW_ISSUE =
"https://github.com/fishjar/kiss-rules/issues/new";
2023-07-20 13:45:41 +08:00
export const URL_RAW_PREFIX =
"https://raw.githubusercontent.com/fishjar/kiss-translator/master";
2023-10-20 17:44:48 +08:00
export const URL_CACHE_TRAN = `https://${APP_LCNAME}/translate`;
2024-05-22 23:33:30 +08:00
// api.cognitive.microsofttranslator.com
2023-10-20 17:44:48 +08:00
export const URL_MICROSOFT_TRAN =
"https://api-edge.cognitive.microsofttranslator.com/translate";
2023-07-20 13:45:41 +08:00
export const URL_MICROSOFT_AUTH = "https://edge.microsoft.com/translate/auth";
2024-05-22 23:33:30 +08:00
export const URL_MICROSOFT_LANGDETECT =
"https://api-edge.cognitive.microsofttranslator.com/detect?api-version=3.0";
export const URL_GOOGLE_TRAN =
"https://translate.googleapis.com/translate_a/single";
2023-10-10 18:03:05 +08:00
export const URL_BAIDU_LANGDETECT = "https://fanyi.baidu.com/langdetect";
2024-03-19 11:48:30 +08:00
export const URL_BAIDU_SUGGEST = "https://fanyi.baidu.com/sug";
2024-03-25 18:14:12 +08:00
export const URL_BAIDU_TTS = "https://fanyi.baidu.com/gettts";
2023-10-20 17:44:48 +08:00
export const URL_BAIDU_WEB = "https://fanyi.baidu.com/";
2024-01-18 15:26:37 +08:00
export const URL_BAIDU_TRANSAPI = "https://fanyi.baidu.com/transapi";
export const URL_BAIDU_TRANSAPI_V2 = "https://fanyi.baidu.com/v2transapi";
2023-10-20 17:44:48 +08:00
export const URL_DEEPLFREE_TRAN = "https://www2.deepl.com/jsonrpc";
export const URL_TENCENT_TRANSMART = "https://transmart.qq.com/api/imt";
2024-04-12 11:31:01 +08:00
export const URL_NIUTRANS_REG =
"https://niutrans.com/login?active=3&userSource=kiss-translator";
2023-07-20 13:45:41 +08:00
2024-04-07 16:55:54 +08:00
export const DEFAULT_USER_AGENT =
"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36";
2024-05-23 00:08:10 +08:00
export const OPT_DICT_BAIDU = "Baidu";
2023-07-20 13:45:41 +08:00
export const OPT_TRANS_GOOGLE = "Google";
export const OPT_TRANS_MICROSOFT = "Microsoft";
2023-09-02 16:57:09 +08:00
export const OPT_TRANS_DEEPL = "DeepL";
2023-10-17 11:33:26 +08:00
export const OPT_TRANS_DEEPLX = "DeepLX";
2023-10-20 17:44:48 +08:00
export const OPT_TRANS_DEEPLFREE = "DeepLFree";
2024-04-12 11:31:01 +08:00
export const OPT_TRANS_NIUTRANS = "NiuTrans";
2023-10-10 18:03:05 +08:00
export const OPT_TRANS_BAIDU = "Baidu";
2023-10-20 17:44:48 +08:00
export const OPT_TRANS_TENCENT = "Tencent";
2023-07-20 13:45:41 +08:00
export const OPT_TRANS_OPENAI = "OpenAI";
2024-04-28 16:58:09 +08:00
export const OPT_TRANS_OPENAI_2 = "OpenAI2";
export const OPT_TRANS_OPENAI_3 = "OpenAI3";
2023-12-21 14:15:14 +08:00
export const OPT_TRANS_GEMINI = "Gemini";
2023-10-26 11:13:50 +08:00
export const OPT_TRANS_CLOUDFLAREAI = "CloudflareAI";
2024-04-28 21:43:20 +08:00
export const OPT_TRANS_OLLAMA = "Ollama";
export const OPT_TRANS_OLLAMA_2 = "Ollama2";
export const OPT_TRANS_OLLAMA_3 = "Ollama3";
2023-09-06 14:57:02 +08:00
export const OPT_TRANS_CUSTOMIZE = "Custom";
2024-04-01 11:50:29 +08:00
export const OPT_TRANS_CUSTOMIZE_2 = "Custom2";
export const OPT_TRANS_CUSTOMIZE_3 = "Custom3";
export const OPT_TRANS_CUSTOMIZE_4 = "Custom4";
export const OPT_TRANS_CUSTOMIZE_5 = "Custom5";
2023-07-20 13:45:41 +08:00
export const OPT_TRANS_ALL = [
OPT_TRANS_GOOGLE,
OPT_TRANS_MICROSOFT,
2024-01-18 15:26:37 +08:00
OPT_TRANS_BAIDU,
OPT_TRANS_TENCENT,
2023-09-02 16:57:09 +08:00
OPT_TRANS_DEEPL,
2023-10-20 17:44:48 +08:00
OPT_TRANS_DEEPLFREE,
2023-10-17 11:33:26 +08:00
OPT_TRANS_DEEPLX,
2024-04-12 11:31:01 +08:00
OPT_TRANS_NIUTRANS,
2023-07-20 13:45:41 +08:00
OPT_TRANS_OPENAI,
2024-04-28 16:58:09 +08:00
OPT_TRANS_OPENAI_2,
OPT_TRANS_OPENAI_3,
2023-12-21 14:15:14 +08:00
OPT_TRANS_GEMINI,
2023-10-26 11:13:50 +08:00
OPT_TRANS_CLOUDFLAREAI,
2024-04-28 21:43:20 +08:00
OPT_TRANS_OLLAMA,
OPT_TRANS_OLLAMA_2,
OPT_TRANS_OLLAMA_3,
2023-09-06 00:25:46 +08:00
OPT_TRANS_CUSTOMIZE,
2024-04-01 11:50:29 +08:00
OPT_TRANS_CUSTOMIZE_2,
OPT_TRANS_CUSTOMIZE_3,
OPT_TRANS_CUSTOMIZE_4,
OPT_TRANS_CUSTOMIZE_5,
2023-07-20 13:45:41 +08:00
];
2024-05-22 23:33:30 +08:00
export const OPT_LANGDETECTOR_ALL = [
OPT_TRANS_GOOGLE,
OPT_TRANS_MICROSOFT,
OPT_TRANS_BAIDU,
OPT_TRANS_TENCENT,
];
2023-07-20 13:45:41 +08:00
export const OPT_LANGS_TO = [
["en", "English - English"],
["zh-CN", "Simplified Chinese - 简体中文"],
["zh-TW", "Traditional Chinese - 繁體中文"],
["ar", "Arabic - العربية"],
["bg", "Bulgarian - Български"],
["ca", "Catalan - Català"],
["hr", "Croatian - Hrvatski"],
["cs", "Czech - Čeština"],
["da", "Danish - Dansk"],
["nl", "Dutch - Nederlands"],
["fi", "Finnish - Suomi"],
["fr", "French - Français"],
["de", "German - Deutsch"],
["el", "Greek - Ελληνικά"],
["hi", "Hindi - हिन्दी"],
["hu", "Hungarian - Magyar"],
["id", "Indonesian - Indonesia"],
["it", "Italian - Italiano"],
["ja", "Japanese - 日本語"],
["ko", "Korean - 한국어"],
["ms", "Malay - Melayu"],
["mt", "Maltese - Malti"],
["nb", "Norwegian - Norsk Bokmål"],
["pl", "Polish - Polski"],
["pt", "Portuguese - Português"],
["ro", "Romanian - Română"],
["ru", "Russian - Русский"],
["sk", "Slovak - Slovenčina"],
["sl", "Slovenian - Slovenščina"],
["es", "Spanish - Español"],
["sv", "Swedish - Svenska"],
["ta", "Tamil - தமிழ்"],
["te", "Telugu - తెలుగు"],
["th", "Thai - ไทย"],
["tr", "Turkish - Türkçe"],
["uk", "Ukrainian - Українська"],
["vi", "Vietnamese - Tiếng Việt"],
];
export const OPT_LANGS_FROM = [["auto", "Auto-detect"], ...OPT_LANGS_TO];
export const OPT_LANGS_SPECIAL = {
2023-10-13 10:48:01 +08:00
[OPT_TRANS_GOOGLE]: new Map(OPT_LANGS_FROM.map(([key]) => [key, key])),
2023-07-20 13:45:41 +08:00
[OPT_TRANS_MICROSOFT]: new Map([
2023-10-13 10:48:01 +08:00
...OPT_LANGS_FROM.map(([key]) => [key, key]),
2023-07-20 13:45:41 +08:00
["auto", ""],
["zh-CN", "zh-Hans"],
["zh-TW", "zh-Hant"],
]),
2023-09-02 16:57:09 +08:00
[OPT_TRANS_DEEPL]: new Map([
...OPT_LANGS_FROM.map(([key]) => [key, key.toUpperCase()]),
["auto", ""],
["zh-CN", "ZH"],
["zh-TW", "ZH"],
]),
2023-10-20 17:44:48 +08:00
[OPT_TRANS_DEEPLFREE]: new Map([
...OPT_LANGS_FROM.map(([key]) => [key, key.toUpperCase()]),
["auto", "auto"],
["zh-CN", "ZH"],
["zh-TW", "ZH"],
]),
2023-10-17 11:33:26 +08:00
[OPT_TRANS_DEEPLX]: new Map([
...OPT_LANGS_FROM.map(([key]) => [key, key.toUpperCase()]),
["auto", "auto"],
2023-10-17 11:33:26 +08:00
["zh-CN", "ZH"],
["zh-TW", "ZH"],
]),
2024-04-12 11:31:01 +08:00
[OPT_TRANS_NIUTRANS]: new Map([
...OPT_LANGS_FROM.map(([key]) => [key, key]),
["auto", "auto"],
["zh-CN", "zh"],
["zh-TW", "cht"],
]),
2023-10-10 18:03:05 +08:00
[OPT_TRANS_BAIDU]: new Map([
2023-10-13 10:48:01 +08:00
...OPT_LANGS_FROM.map(([key]) => [key, key]),
2023-10-10 18:03:05 +08:00
["zh-CN", "zh"],
["zh-TW", "cht"],
["ar", "ara"],
["bg", "bul"],
["ca", "cat"],
["hr", "hrv"],
["da", "dan"],
["fi", "fin"],
["fr", "fra"],
["hi", "mai"],
["ja", "jp"],
["ko", "kor"],
["ms", "may"],
["mt", "mlt"],
["nb", "nor"],
["ro", "rom"],
["ru", "ru"],
["sl", "slo"],
["es", "spa"],
["sv", "swe"],
["ta", "tam"],
["te", "tel"],
["uk", "ukr"],
["vi", "vie"],
]),
2023-10-20 17:44:48 +08:00
[OPT_TRANS_TENCENT]: new Map([
["auto", "auto"],
["zh-CN", "zh"],
["zh-TW", "zh"],
["en", "en"],
["ar", "ar"],
["de", "de"],
["ru", "ru"],
["fr", "fr"],
["fi", "fil"],
["ko", "ko"],
["ms", "ms"],
["pt", "pt"],
["ja", "ja"],
["th", "th"],
["tr", "tr"],
["es", "es"],
["it", "it"],
["hi", "hi"],
["id", "id"],
["vi", "vi"],
]),
2023-07-20 13:45:41 +08:00
[OPT_TRANS_OPENAI]: new Map(
2023-07-21 11:55:30 +08:00
OPT_LANGS_FROM.map(([key, val]) => [key, val.split(" - ")[0]])
2023-07-20 13:45:41 +08:00
),
2024-04-28 16:58:09 +08:00
[OPT_TRANS_OPENAI_2]: new Map(
OPT_LANGS_FROM.map(([key, val]) => [key, val.split(" - ")[0]])
),
[OPT_TRANS_OPENAI_3]: new Map(
OPT_LANGS_FROM.map(([key, val]) => [key, val.split(" - ")[0]])
),
2023-12-21 14:15:14 +08:00
[OPT_TRANS_GEMINI]: new Map(
OPT_LANGS_FROM.map(([key, val]) => [key, val.split(" - ")[0]])
),
2024-04-28 21:43:20 +08:00
[OPT_TRANS_OLLAMA]: new Map(
OPT_LANGS_FROM.map(([key, val]) => [key, val.split(" - ")[0]])
),
[OPT_TRANS_OLLAMA_2]: new Map(
OPT_LANGS_FROM.map(([key, val]) => [key, val.split(" - ")[0]])
),
[OPT_TRANS_OLLAMA_3]: new Map(
OPT_LANGS_FROM.map(([key, val]) => [key, val.split(" - ")[0]])
),
2023-10-26 11:13:50 +08:00
[OPT_TRANS_CLOUDFLAREAI]: new Map([
["auto", ""],
["zh-CN", "chinese"],
["zh-TW", "chinese"],
["en", "english"],
["ar", "arabic"],
["de", "german"],
["ru", "russian"],
["fr", "french"],
["pt", "portuguese"],
["ja", "japanese"],
["es", "spanish"],
["hi", "hindi"],
]),
2023-10-13 10:48:01 +08:00
[OPT_TRANS_CUSTOMIZE]: new Map([
...OPT_LANGS_FROM.map(([key]) => [key, key]),
["auto", ""],
]),
2024-04-10 13:37:16 +08:00
[OPT_TRANS_CUSTOMIZE_2]: new Map([
...OPT_LANGS_FROM.map(([key]) => [key, key]),
["auto", ""],
]),
[OPT_TRANS_CUSTOMIZE_3]: new Map([
...OPT_LANGS_FROM.map(([key]) => [key, key]),
["auto", ""],
]),
[OPT_TRANS_CUSTOMIZE_4]: new Map([
...OPT_LANGS_FROM.map(([key]) => [key, key]),
["auto", ""],
]),
[OPT_TRANS_CUSTOMIZE_5]: new Map([
...OPT_LANGS_FROM.map(([key]) => [key, key]),
["auto", ""],
]),
2023-07-20 13:45:41 +08:00
};
2023-09-14 14:45:22 +08:00
export const OPT_LANGS_LIST = OPT_LANGS_TO.map(([lang]) => lang);
2024-05-22 23:33:30 +08:00
export const OPT_LANGS_MICROSOFT = new Map(
Array.from(OPT_LANGS_SPECIAL[OPT_TRANS_MICROSOFT].entries()).map(([k, v]) => [
v,
k,
])
);
2023-10-10 18:03:05 +08:00
export const OPT_LANGS_BAIDU = new Map(
Array.from(OPT_LANGS_SPECIAL[OPT_TRANS_BAIDU].entries()).map(([k, v]) => [
v,
k,
])
);
2023-10-20 17:44:48 +08:00
export const OPT_LANGS_TENCENT = new Map(
Array.from(OPT_LANGS_SPECIAL[OPT_TRANS_TENCENT].entries()).map(([k, v]) => [
v,
k,
])
);
OPT_LANGS_TENCENT.set("zh", "zh-CN");
2023-07-20 13:45:41 +08:00
2023-07-21 11:55:30 +08:00
export const OPT_STYLE_NONE = "style_none"; // 无
2023-07-20 13:45:41 +08:00
export const OPT_STYLE_LINE = "under_line"; // 下划线
2023-07-21 11:55:30 +08:00
export const OPT_STYLE_DOTLINE = "dot_line"; // 点状线
2023-07-21 12:31:21 +08:00
export const OPT_STYLE_DASHLINE = "dash_line"; // 虚线
2023-07-21 11:55:30 +08:00
export const OPT_STYLE_WAVYLINE = "wavy_line"; // 波浪线
2023-07-20 13:45:41 +08:00
export const OPT_STYLE_FUZZY = "fuzzy"; // 模糊
2023-09-01 15:57:05 +08:00
export const OPT_STYLE_HIGHLIGHT = "highlight"; // 高亮
2023-11-28 11:41:45 +08:00
export const OPT_STYLE_BLOCKQUOTE = "blockquote"; // 引用
2023-09-01 15:57:05 +08:00
export const OPT_STYLE_DIY = "diy_style"; // 自定义样式
2023-07-21 11:55:30 +08:00
export const OPT_STYLE_ALL = [
OPT_STYLE_NONE,
OPT_STYLE_LINE,
OPT_STYLE_DOTLINE,
OPT_STYLE_DASHLINE,
OPT_STYLE_WAVYLINE,
OPT_STYLE_FUZZY,
2023-09-01 15:57:05 +08:00
OPT_STYLE_HIGHLIGHT,
2023-11-28 11:41:45 +08:00
OPT_STYLE_BLOCKQUOTE,
2023-09-01 15:57:05 +08:00
OPT_STYLE_DIY,
];
export const OPT_STYLE_USE_COLOR = [
OPT_STYLE_LINE,
OPT_STYLE_DOTLINE,
OPT_STYLE_DASHLINE,
OPT_STYLE_WAVYLINE,
OPT_STYLE_HIGHLIGHT,
2023-11-28 11:41:45 +08:00
OPT_STYLE_BLOCKQUOTE,
2023-07-21 11:55:30 +08:00
];
2023-07-20 13:45:41 +08:00
2024-03-16 23:37:27 +08:00
export const OPT_TIMING_PAGESCROLL = "mk_pagescroll"; // 滚动加载翻译
export const OPT_TIMING_PAGEOPEN = "mk_pageopen"; // 直接翻译到底
export const OPT_TIMING_MOUSEOVER = "mk_mouseover";
export const OPT_TIMING_CONTROL = "mk_ctrlKey";
export const OPT_TIMING_SHIFT = "mk_shiftKey";
export const OPT_TIMING_ALT = "mk_altKey";
export const OPT_TIMING_ALL = [
OPT_TIMING_PAGESCROLL,
OPT_TIMING_PAGEOPEN,
OPT_TIMING_MOUSEOVER,
OPT_TIMING_CONTROL,
OPT_TIMING_SHIFT,
OPT_TIMING_ALT,
2023-09-06 18:00:18 +08:00
];
2023-08-04 16:05:14 +08:00
export const DEFAULT_FETCH_LIMIT = 10; // 默认最大任务数量
2023-08-06 22:31:42 +08:00
export const DEFAULT_FETCH_INTERVAL = 100; // 默认任务间隔时间
2023-07-20 13:45:41 +08:00
2024-04-17 17:38:54 +08:00
export const INPUT_PLACE_URL = "{{url}}"; // 占位符
export const INPUT_PLACE_FROM = "{{from}}"; // 占位符
export const INPUT_PLACE_TO = "{{to}}"; // 占位符
export const INPUT_PLACE_TEXT = "{{text}}"; // 占位符
export const INPUT_PLACE_KEY = "{{key}}"; // 占位符
2024-05-12 16:25:20 +08:00
export const INPUT_PLACE_MODEL = "{{model}}"; // 占位符
2023-07-20 13:45:41 +08:00
2023-08-08 16:41:47 +08:00
export const DEFAULT_COLOR = "#209CEE"; // 默认高亮背景色/线条颜色
2024-03-19 10:00:00 +08:00
export const DEFAULT_TRANS_TAG = "span";
2024-03-16 23:37:27 +08:00
export const DEFAULT_SELECT_STYLE =
"-webkit-line-clamp: unset; max-height: none; height: auto;";
2024-03-15 16:00:20 +08:00
2023-08-08 13:29:15 +08:00
// 全局规则
export const GLOBLA_RULE = {
2024-03-16 23:37:27 +08:00
pattern: "*", // 匹配网址
selector: DEFAULT_SELECTOR, // 选择器
keepSelector: DEFAULT_KEEP_SELECTOR, // 保留元素选择器
terms: "", // 专业术语
translator: OPT_TRANS_MICROSOFT, // 翻译服务
fromLang: "auto", // 源语言
toLang: "zh-CN", // 目标语言
textStyle: OPT_STYLE_DASHLINE, // 译文样式
transOpen: "false", // 开启翻译
bgColor: "", // 译文颜色
textDiyStyle: "", // 自定义译文样式
selectStyle: DEFAULT_SELECT_STYLE, // 选择器节点样式
parentStyle: DEFAULT_SELECT_STYLE, // 选择器父节点样式
injectJs: "", // 注入JS
injectCss: "", // 注入CSS
transOnly: "false", // 是否仅显示译文
transTiming: OPT_TIMING_PAGESCROLL, // 翻译时机/鼠标悬停翻译
transTag: DEFAULT_TRANS_TAG, // 译文元素标签
transTitle: "false", // 是否同时翻译页面标题
detectRemote: "false", // 是否使用远程语言检测
skipLangs: [], // 不翻译的语言
fixerSelector: "", // 修复函数选择器
fixerFunc: "-", // 修复函数
2024-05-15 11:07:13 +08:00
transStartHook: "", // 钩子函数
transEndHook: "", // 钩子函数
transRemoveHook: "", // 钩子函数
2023-08-08 13:29:15 +08:00
};
2023-09-14 10:59:50 +08:00
// 输入框翻译
2023-09-14 14:45:22 +08:00
export const OPT_INPUT_TRANS_SIGNS = ["/", "//", "\\", "\\\\", ">", ">>"];
2023-09-22 15:33:37 +08:00
export const DEFAULT_INPUT_SHORTCUT = ["AltLeft", "KeyI"];
2023-09-13 15:53:40 +08:00
export const DEFAULT_INPUT_RULE = {
transOpen: true,
translator: OPT_TRANS_MICROSOFT,
fromLang: "auto",
toLang: "en",
2023-09-14 10:59:50 +08:00
triggerShortcut: DEFAULT_INPUT_SHORTCUT,
2023-09-13 15:53:40 +08:00
triggerCount: 1,
2023-09-15 20:44:01 +08:00
triggerTime: 200,
2023-09-14 14:45:22 +08:00
transSign: OPT_INPUT_TRANS_SIGNS[0],
2023-09-13 15:53:40 +08:00
};
2023-10-23 18:02:42 +08:00
// 划词翻译
2024-04-16 16:29:59 +08:00
export const PHONIC_MAP = {
en_phonic: ["英", "uk"],
us_phonic: ["美", "en"],
};
2024-04-16 12:47:55 +08:00
export const OPT_TRANBOX_TRIGGER_CLICK = "click";
export const OPT_TRANBOX_TRIGGER_HOVER = "hover";
export const OPT_TRANBOX_TRIGGER_SELECT = "select";
export const OPT_TRANBOX_TRIGGER_ALL = [
OPT_TRANBOX_TRIGGER_CLICK,
OPT_TRANBOX_TRIGGER_HOVER,
OPT_TRANBOX_TRIGGER_SELECT,
];
2024-01-04 12:18:36 +08:00
export const DEFAULT_TRANBOX_SHORTCUT = ["AltLeft", "KeyS"];
2023-10-23 18:02:42 +08:00
export const DEFAULT_TRANBOX_SETTING = {
transOpen: true,
translator: OPT_TRANS_MICROSOFT,
fromLang: "auto",
toLang: "zh-CN",
toLang2: "en",
2024-01-04 12:18:36 +08:00
tranboxShortcut: DEFAULT_TRANBOX_SHORTCUT,
2023-10-23 18:02:42 +08:00
btnOffsetX: 10,
btnOffsetY: 10,
2024-04-21 19:19:06 +08:00
boxOffsetX: 0,
boxOffsetY: 10,
2024-04-01 12:25:59 +08:00
hideTranBtn: false, // 是否隐藏翻译按钮
2024-04-16 12:47:55 +08:00
hideClickAway: false, // 是否点击外部关闭弹窗
simpleStyle: false, // 是否简洁界面
2024-04-20 18:07:16 +08:00
followSelection: false, // 翻译框是否跟随选中文本
2024-04-16 12:47:55 +08:00
triggerMode: OPT_TRANBOX_TRIGGER_CLICK, // 触发翻译方式
2024-04-17 15:35:44 +08:00
extStyles: "", // 附加样式
2024-05-23 00:08:10 +08:00
enDict: OPT_DICT_BAIDU, // 英文词典
2023-10-23 18:02:42 +08:00
};
2023-08-20 19:27:29 +08:00
// 订阅列表
export const DEFAULT_SUBRULES_LIST = [
{
url: process.env.REACT_APP_RULESURL,
2023-09-04 17:04:28 +08:00
selected: false,
},
{
url: process.env.REACT_APP_RULESURL_ON,
2023-08-20 19:27:29 +08:00
selected: true,
},
{
2023-09-04 17:04:28 +08:00
url: process.env.REACT_APP_RULESURL_OFF,
2023-08-30 18:05:37 +08:00
selected: false,
2023-08-20 19:27:29 +08:00
},
];
2023-09-06 00:25:46 +08:00
// 翻译接口
2024-04-01 11:50:29 +08:00
const defaultCustomApi = {
url: "",
key: "",
2024-05-12 16:10:11 +08:00
customOption: "", // (作废)
reqHook: "", // request 钩子函数
resHook: "", // response 钩子函数
2024-04-01 11:50:29 +08:00
fetchLimit: DEFAULT_FETCH_LIMIT,
fetchInterval: DEFAULT_FETCH_INTERVAL,
};
2024-04-28 16:58:09 +08:00
const defaultOpenaiApi = {
url: "https://api.openai.com/v1/chat/completions",
key: "",
model: "gpt-4",
prompt: `You will be provided with a sentence in ${INPUT_PLACE_FROM}, and your task is to translate it into ${INPUT_PLACE_TO}.`,
temperature: 0,
maxTokens: 256,
2024-04-28 16:58:09 +08:00
fetchLimit: 1,
fetchInterval: 500,
};
2024-04-28 21:43:20 +08:00
const defaultOllamaApi = {
url: "http://localhost:11434/api/generate",
key: "",
model: "llama3",
prompt: `Translate the following text from ${INPUT_PLACE_FROM} to ${INPUT_PLACE_TO}:\n\n${INPUT_PLACE_TEXT}`,
fetchLimit: 1,
fetchInterval: 500,
};
2023-09-06 00:25:46 +08:00
export const DEFAULT_TRANS_APIS = {
[OPT_TRANS_GOOGLE]: {
2024-05-22 23:33:30 +08:00
url: URL_GOOGLE_TRAN,
2023-09-06 14:57:02 +08:00
key: "",
2024-03-21 15:07:50 +08:00
fetchLimit: DEFAULT_FETCH_LIMIT, // 最大任务数量
fetchInterval: DEFAULT_FETCH_INTERVAL, // 任务间隔时间
},
[OPT_TRANS_MICROSOFT]: {
fetchLimit: DEFAULT_FETCH_LIMIT,
fetchInterval: DEFAULT_FETCH_INTERVAL,
},
[OPT_TRANS_BAIDU]: {
fetchLimit: DEFAULT_FETCH_LIMIT,
fetchInterval: DEFAULT_FETCH_INTERVAL,
},
[OPT_TRANS_TENCENT]: {
fetchLimit: DEFAULT_FETCH_LIMIT,
fetchInterval: DEFAULT_FETCH_INTERVAL,
2023-09-06 00:25:46 +08:00
},
[OPT_TRANS_DEEPL]: {
url: "https://api-free.deepl.com/v2/translate",
key: "",
2024-03-21 15:07:50 +08:00
fetchLimit: 1,
fetchInterval: 500,
},
[OPT_TRANS_DEEPLFREE]: {
fetchLimit: 1,
fetchInterval: 500,
2023-09-06 00:25:46 +08:00
},
2023-10-17 11:33:26 +08:00
[OPT_TRANS_DEEPLX]: {
url: "http://localhost:1188/translate",
key: "",
2024-03-21 15:07:50 +08:00
fetchLimit: 1,
fetchInterval: 500,
2023-10-17 11:33:26 +08:00
},
2024-04-12 11:31:01 +08:00
[OPT_TRANS_NIUTRANS]: {
url: "https://api.niutrans.com/NiuTransServer/translation",
key: "",
dictNo: "",
memoryNo: "",
fetchLimit: DEFAULT_FETCH_LIMIT,
fetchInterval: DEFAULT_FETCH_INTERVAL,
},
2024-04-28 16:58:09 +08:00
[OPT_TRANS_OPENAI]: defaultOpenaiApi,
[OPT_TRANS_OPENAI_2]: defaultOpenaiApi,
[OPT_TRANS_OPENAI_3]: defaultOpenaiApi,
2023-12-21 14:15:14 +08:00
[OPT_TRANS_GEMINI]: {
2024-05-12 16:25:20 +08:00
url: `https://generativelanguage.googleapis.com/v1/models/${INPUT_PLACE_MODEL}:generateContent?key=${INPUT_PLACE_KEY}`,
2023-12-21 14:15:14 +08:00
key: "",
model: "gemini-pro",
2024-04-17 17:38:54 +08:00
prompt: `Translate the following text from ${INPUT_PLACE_FROM} to ${INPUT_PLACE_TO}:\n\n${INPUT_PLACE_TEXT}`,
2024-03-21 15:07:50 +08:00
fetchLimit: 1,
fetchInterval: 500,
2023-12-21 14:15:14 +08:00
},
2023-10-26 11:13:50 +08:00
[OPT_TRANS_CLOUDFLAREAI]: {
2024-05-12 16:25:20 +08:00
url: "https://api.cloudflare.com/client/v4/accounts/{{ACCOUNT_ID}}/ai/run/@cf/meta/m2m100-1.2b",
2023-10-26 11:13:50 +08:00
key: "",
2024-03-21 15:07:50 +08:00
fetchLimit: 1,
fetchInterval: 500,
2023-10-26 11:13:50 +08:00
},
2024-04-28 21:43:20 +08:00
[OPT_TRANS_OLLAMA]: defaultOllamaApi,
[OPT_TRANS_OLLAMA_2]: defaultOllamaApi,
[OPT_TRANS_OLLAMA_3]: defaultOllamaApi,
2024-04-01 11:50:29 +08:00
[OPT_TRANS_CUSTOMIZE]: defaultCustomApi,
[OPT_TRANS_CUSTOMIZE_2]: defaultCustomApi,
[OPT_TRANS_CUSTOMIZE_3]: defaultCustomApi,
[OPT_TRANS_CUSTOMIZE_4]: defaultCustomApi,
[OPT_TRANS_CUSTOMIZE_5]: defaultCustomApi,
2023-09-06 00:25:46 +08:00
};
2023-09-07 18:12:45 +08:00
// 默认快捷键
export const OPT_SHORTCUT_TRANSLATE = "toggleTranslate";
export const OPT_SHORTCUT_STYLE = "toggleStyle";
export const OPT_SHORTCUT_POPUP = "togglePopup";
2023-09-09 15:08:34 +08:00
export const OPT_SHORTCUT_SETTING = "openSetting";
2023-09-07 18:12:45 +08:00
export const DEFAULT_SHORTCUTS = {
2023-09-22 15:33:37 +08:00
[OPT_SHORTCUT_TRANSLATE]: ["AltLeft", "KeyQ"],
[OPT_SHORTCUT_STYLE]: ["AltLeft", "KeyC"],
[OPT_SHORTCUT_POPUP]: ["AltLeft", "KeyK"],
[OPT_SHORTCUT_SETTING]: ["AltLeft", "KeyO"],
2023-09-07 18:12:45 +08:00
};
2023-08-22 21:45:23 +08:00
export const TRANS_MIN_LENGTH = 5; // 最短翻译长度
export const TRANS_MAX_LENGTH = 5000; // 最长翻译长度
2023-09-22 16:37:35 +08:00
export const TRANS_NEWLINE_LENGTH = 20; // 换行字符数
2023-11-24 17:07:29 +08:00
export const DEFAULT_BLACKLIST = [
"https://fishjar.github.io/kiss-translator/options.html",
"https://translate.google.com",
"https://www.deepl.com/translator",
"oapi.dingtalk.com",
2024-03-13 16:35:40 +08:00
"login.dingtalk.com",
2023-11-24 17:07:29 +08:00
]; // 禁用翻译名单
2024-03-26 12:00:09 +08:00
export const DEFAULT_CSPLIST = ["https://github.com"]; // 禁用CSP名单
2023-08-22 21:45:23 +08:00
2023-07-20 13:45:41 +08:00
export const DEFAULT_SETTING = {
darkMode: false, // 深色模式
2023-08-15 12:30:32 +08:00
uiLang: "en", // 界面语言
2024-03-21 15:07:50 +08:00
// fetchLimit: DEFAULT_FETCH_LIMIT, // 最大任务数量(移至transApis作废)
// fetchInterval: DEFAULT_FETCH_INTERVAL, // 任务间隔时间(移至transApis作废)
2023-08-22 21:45:23 +08:00
minLength: TRANS_MIN_LENGTH,
maxLength: TRANS_MAX_LENGTH,
2023-09-01 11:21:06 +08:00
newlineLength: TRANS_NEWLINE_LENGTH,
2023-07-20 13:45:41 +08:00
clearCache: false, // 是否在浏览器下次启动时清除缓存
2023-08-20 19:27:29 +08:00
injectRules: true, // 是否注入订阅规则
2024-03-16 23:37:27 +08:00
// injectWebfix: true, // 是否注入修复补丁(作废)
// detectRemote: false, // 是否使用远程语言检测(移至rule作废)
// contextMenus: true, // 是否添加右键菜单(作废)
2024-02-05 11:28:34 +08:00
contextMenuType: 1, // 右键菜单类型(0不显示1简单菜单2多级菜单)
2024-03-16 23:37:27 +08:00
// transTag: DEFAULT_TRANS_TAG, // 译文元素标签(移至rule作废)
// transOnly: false, // 是否仅显示译文(移至rule作废)
// transTitle: false, // 是否同时翻译页面标题(移至rule作废)
2023-08-20 19:27:29 +08:00
subrulesList: DEFAULT_SUBRULES_LIST, // 订阅列表
2023-09-01 22:27:25 +08:00
owSubrule: DEFAULT_OW_RULE, // 覆写订阅规则
2023-09-06 00:25:46 +08:00
transApis: DEFAULT_TRANS_APIS, // 翻译接口
2024-03-16 23:37:27 +08:00
// mouseKey: OPT_TIMING_PAGESCROLL, // 翻译时机/鼠标悬停翻译(移至rule作废)
2023-09-07 18:12:45 +08:00
shortcuts: DEFAULT_SHORTCUTS, // 快捷键
2023-09-13 15:53:40 +08:00
inputRule: DEFAULT_INPUT_RULE, // 输入框设置
2023-10-23 18:02:42 +08:00
tranboxSetting: DEFAULT_TRANBOX_SETTING, // 划词翻译设置
2023-11-11 16:59:38 +08:00
touchTranslate: 2, // 触屏翻译
2023-11-24 17:07:29 +08:00
blacklist: DEFAULT_BLACKLIST.join(",\n"), // 禁用翻译名单
2024-03-26 12:00:09 +08:00
csplist: DEFAULT_CSPLIST.join(",\n"), // 禁用CSP名单
2024-03-16 23:37:27 +08:00
// disableLangs: [], // 不翻译的语言(移至rule作废)
transInterval: 500, // 翻译间隔时间
2024-05-22 23:33:30 +08:00
langDetector: OPT_TRANS_MICROSOFT, // 远程语言识别服务
2023-07-20 13:45:41 +08:00
};
2023-08-18 16:48:44 +08:00
export const DEFAULT_RULES = [GLOBLA_RULE];
2023-08-17 15:55:44 +08:00
2023-09-18 15:45:32 +08:00
export const OPT_SYNCTYPE_WORKER = "KISS-Worker";
export const OPT_SYNCTYPE_WEBDAV = "WebDAV";
export const OPT_SYNCTYPE_ALL = [OPT_SYNCTYPE_WORKER, OPT_SYNCTYPE_WEBDAV];
2023-07-31 15:08:51 +08:00
export const DEFAULT_SYNC = {
2023-09-18 15:45:32 +08:00
syncType: OPT_SYNCTYPE_WORKER, // 同步方式
2023-07-31 15:08:51 +08:00
syncUrl: "", // 数据同步接口
2023-09-18 15:45:32 +08:00
syncUser: "", // 数据同步用户名
2023-07-31 15:08:51 +08:00
syncKey: "", // 数据同步密钥
2023-09-20 17:47:23 +08:00
syncMeta: {}, // 数据更新及同步信息
subRulesSyncAt: 0, // 订阅规则同步时间
2023-09-11 17:56:31 +08:00
dataCaches: {}, // 缓存同步时间
2023-07-31 15:08:51 +08:00
};