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

290 lines
8.9 KiB
JavaScript
Raw Normal View History

2023-08-18 16:48:44 +08:00
import {
DEFAULT_SELECTOR,
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`;
export const STOKEY_SETTING = `${APP_NAME}_setting`;
export const STOKEY_RULES = `${APP_NAME}_rules`;
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-09-08 16:56:00 +08:00
export const STOKEY_WEBFIXCACHE_PREFIX = `${APP_NAME}_webfixcache_`;
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-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-07-31 03:10:09 +08:00
export const KV_RULES_KEY = "KT_RULES";
2023-08-20 23:30:08 +08:00
export const KV_RULES_SHARE_KEY = "KT_RULES_SHARE";
2023-07-31 03:10:09 +08:00
export const KV_SETTING_KEY = "KT_SETTING";
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_FETCH_LIMIT = "fetch_limit";
2023-08-11 16:48:09 +08:00
export const MSG_FETCH_CLEAR = "fetch_clear";
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-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-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";
export const URL_MICROSOFT_AUTH = "https://edge.microsoft.com/translate/auth";
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-07-20 13:45:41 +08:00
export const OPT_TRANS_OPENAI = "OpenAI";
2023-09-06 14:57:02 +08:00
export const OPT_TRANS_CUSTOMIZE = "Custom";
2023-07-20 13:45:41 +08:00
export const OPT_TRANS_ALL = [
OPT_TRANS_GOOGLE,
OPT_TRANS_MICROSOFT,
2023-09-02 16:57:09 +08:00
OPT_TRANS_DEEPL,
2023-07-20 13:45:41 +08:00
OPT_TRANS_OPENAI,
2023-09-06 00:25:46 +08:00
OPT_TRANS_CUSTOMIZE,
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 = {
[OPT_TRANS_MICROSOFT]: new Map([
["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-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
),
2023-09-06 14:57:02 +08:00
[OPT_TRANS_CUSTOMIZE]: new Map([["auto", ""]]),
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"; // 高亮
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,
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-07-21 11:55:30 +08:00
];
2023-07-20 13:45:41 +08:00
2023-09-06 18:00:18 +08:00
export const OPT_MOUSEKEY_DISABLE = "mk_disable";
2023-09-06 23:44:01 +08:00
export const OPT_MOUSEKEY_MOUSEOVER = "mk_mouseover";
2023-09-06 23:35:09 +08:00
export const OPT_MOUSEKEY_CONTROL = "mk_ctrlKey";
export const OPT_MOUSEKEY_SHIFT = "mk_shiftKey";
export const OPT_MOUSEKEY_ALT = "mk_altKey";
2023-09-06 18:00:18 +08:00
export const OPT_MOUSEKEY_ALL = [
OPT_MOUSEKEY_DISABLE,
2023-09-06 23:44:01 +08:00
OPT_MOUSEKEY_MOUSEOVER,
2023-09-06 18:00:18 +08:00
OPT_MOUSEKEY_CONTROL,
OPT_MOUSEKEY_SHIFT,
OPT_MOUSEKEY_ALT,
];
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
export const PROMPT_PLACE_FROM = "{{from}}"; // 占位符
export const PROMPT_PLACE_TO = "{{to}}"; // 占位符
2023-08-08 16:41:47 +08:00
export const DEFAULT_COLOR = "#209CEE"; // 默认高亮背景色/线条颜色
2023-08-08 13:29:15 +08:00
// 全局规则
export const GLOBLA_RULE = {
2023-07-20 13:45:41 +08:00
pattern: "*",
selector: DEFAULT_SELECTOR,
translator: OPT_TRANS_MICROSOFT,
fromLang: "auto",
toLang: "zh-CN",
2023-07-21 11:55:30 +08:00
textStyle: OPT_STYLE_DASHLINE,
2023-08-08 13:29:15 +08:00
transOpen: "false",
2023-08-08 16:41:47 +08:00
bgColor: "",
2023-09-01 15:57:05 +08:00
textDiyStyle: "",
2023-08-08 13:29:15 +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
// 翻译接口
export const DEFAULT_TRANS_APIS = {
[OPT_TRANS_GOOGLE]: {
url: "https://translate.googleapis.com/translate_a/single",
2023-09-06 14:57:02 +08:00
key: "",
2023-09-06 00:25:46 +08:00
},
[OPT_TRANS_MICROSOFT]: {
url: "https://api-edge.cognitive.microsofttranslator.com/translate",
authUrl: "https://edge.microsoft.com/translate/auth",
},
[OPT_TRANS_DEEPL]: {
url: "https://api-free.deepl.com/v2/translate",
key: "",
},
[OPT_TRANS_OPENAI]: {
url: "https://api.openai.com/v1/chat/completion",
key: "",
model: "gpt-4",
prompt: `You will be provided with a sentence in ${PROMPT_PLACE_FROM}, and your task is to translate it into ${PROMPT_PLACE_TO}.`,
},
[OPT_TRANS_CUSTOMIZE]: {
url: "",
key: "",
},
};
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 = {
[OPT_SHORTCUT_TRANSLATE]: ["Alt", "q"],
[OPT_SHORTCUT_STYLE]: ["Alt", "c"],
[OPT_SHORTCUT_POPUP]: ["Alt", "k"],
2023-09-09 15:08:34 +08:00
[OPT_SHORTCUT_SETTING]: ["Alt", "o"],
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-01 11:21:06 +08:00
export const TRANS_NEWLINE_LENGTH = 40; // 换行字符数
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", // 界面语言
2023-08-04 16:05:14 +08:00
fetchLimit: DEFAULT_FETCH_LIMIT, // 最大任务数量
fetchInterval: DEFAULT_FETCH_INTERVAL, // 任务间隔时间
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, // 是否注入订阅规则
2023-09-08 16:56:00 +08:00
injectWebfix: true, // 是否注入修复补丁
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, // 翻译接口
2023-09-06 18:00:18 +08:00
mouseKey: OPT_MOUSEKEY_DISABLE, // 鼠标悬停翻译
2023-09-07 18:12:45 +08:00
shortcuts: DEFAULT_SHORTCUTS, // 快捷键
2023-09-09 15:08:34 +08:00
hideFab: false, // 是否隐藏按钮
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-07-31 15:08:51 +08:00
export const DEFAULT_SYNC = {
syncUrl: "", // 数据同步接口
syncKey: "", // 数据同步密钥
settingUpdateAt: 0,
settingSyncAt: 0,
rulesUpdateAt: 0,
rulesSyncAt: 0,
subRulesSyncAt: 0, // 订阅规则同步时间
2023-09-11 17:56:31 +08:00
dataCaches: {}, // 缓存同步时间
2023-07-31 15:08:51 +08:00
};