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" ;
2024-04-21 13:16:44 +08:00
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" ;
2024-09-23 18:22:19 +08:00
export const OPT _TRANS _CLAUDE = "Claude" ;
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 ,
2024-09-23 18:22:19 +08:00
OPT _TRANS _CLAUDE ,
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 ( ) ] ) ,
2024-05-21 11:55:17 +08:00
[ "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-09-23 18:22:19 +08:00
[ OPT _TRANS _CLAUDE ] : 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" ,
2023-12-11 15:54:54 +08:00
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 = [
{
2023-08-22 16:27:09 +08:00
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" ,
2024-09-25 14:03:12 +08:00
prompt : ` Translate the following source text from ${ INPUT _PLACE _FROM } to ${ INPUT _PLACE _TO } . Output translation directly without any additional text. \n \n Source Text: ${ INPUT _PLACE _TEXT } \n \n Translated Text: ` ,
systemPrompt : ` You are a professional, authentic machine translation engine. You will be provided with a sentence in ${ INPUT _PLACE _FROM } , and your task is to translate it into ${ INPUT _PLACE _TO } . ` ,
2024-05-21 23:15:46 +08:00
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 : "" ,
2024-09-30 16:41:58 +08:00
model : "llama3.1" ,
system : "You are a professional, authentic machine translation engine." ,
prompt : ` Translate the following text from ${ INPUT _PLACE _FROM } to ${ INPUT _PLACE _TO } ,output translation directly without any additional text: \n \n ${ INPUT _PLACE _TEXT } ` ,
2024-04-28 21:43:20 +08:00
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
} ,
2024-09-23 18:22:19 +08:00
[ OPT _TRANS _CLAUDE ] : {
url : "https://api.anthropic.com/v1/messages" ,
key : "" ,
model : "claude-3-haiku-20240307" ,
prompt : ` Translate the following source text from ${ INPUT _PLACE _FROM } to ${ INPUT _PLACE _TO } . Output translation directly without any additional text. \n \n Source Text: ${ INPUT _PLACE _TEXT } \n \n Translated Text: ` ,
systemPrompt : ` You are a professional, authentic machine translation engine. ` ,
temperature : 0 ,
maxTokens : 1024 ,
fetchLimit : 1 ,
fetchInterval : 500 ,
} ,
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" ] ,
2023-11-23 17:47:50 +08:00
[ 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 : { } , // 数据更新及同步信息
2023-08-22 16:27:09 +08:00
subRulesSyncAt : 0 , // 订阅规则同步时间
2023-09-11 17:56:31 +08:00
dataCaches : { } , // 缓存同步时间
2023-07-31 15:08:51 +08:00
} ;