diff --git a/.gitignore b/.gitignore index fe92a50..6baa2c1 100644 --- a/.gitignore +++ b/.gitignore @@ -3,4 +3,6 @@ /index.php /src/node_modules /src/package-lock.json -/storage \ No newline at end of file +/storage +/tests/tested.json +__pycache__ diff --git a/i18n.json.REMOVED.git-id b/i18n.json.REMOVED.git-id index 3746578..bea66eb 100644 --- a/i18n.json.REMOVED.git-id +++ b/i18n.json.REMOVED.git-id @@ -1 +1 @@ -5ad28c8d02d5d6fdd61554711bd952779427686b \ No newline at end of file +611e2b7444b13bf5b7d8c0b33f5ebdf29c8acbe6 \ No newline at end of file diff --git a/javascript/main.entry.js.REMOVED.git-id b/javascript/main.entry.js.REMOVED.git-id index a4ab5c8..2fcdf20 100644 --- a/javascript/main.entry.js.REMOVED.git-id +++ b/javascript/main.entry.js.REMOVED.git-id @@ -1 +1 @@ -a2f08f76a93bc09fe85ebfed51247a1f37ecd9f9 \ No newline at end of file +384f7026f90087a5f0e604c3aef95cd9f8bd9525 \ No newline at end of file diff --git a/javascript/main.entry.js.map.REMOVED.git-id b/javascript/main.entry.js.map.REMOVED.git-id index 231c440..c19ae8f 100644 --- a/javascript/main.entry.js.map.REMOVED.git-id +++ b/javascript/main.entry.js.map.REMOVED.git-id @@ -1 +1 @@ -23b01f3cc69f5cc760cde3fc373c354f95e9b721 \ No newline at end of file +c1262f4231e67498db0dec618bed72d30c2b2c24 \ No newline at end of file diff --git a/scripts/translate.py b/scripts/translate.py index 3c87cd6..743975f 100644 --- a/scripts/translate.py +++ b/scripts/translate.py @@ -311,11 +311,13 @@ def translate(text, from_lang, to_lang, api, api_config = {}): result['message'] = 'translate_api_not_support' return result + result['translated_text'] = result['translated_text'].strip() + caches[cache_name] = result['translated_text'] result['success'] = True return result except Exception as e: - print(e) + # print(e) result['message'] = str(e) return result \ No newline at end of file diff --git a/src/src/App.vue b/src/src/App.vue index 5b88f89..7c816f2 100755 --- a/src/src/App.vue +++ b/src/src/App.vue @@ -12,11 +12,16 @@ v-model:enable-tooltip="enableTooltip" v-model:translate-api="translateApi" :translate-api-config="translateApiConfig" - @click:translate-api="onTranslateApiClick"> + @click:translate-api="onTranslateApiClick" + @click:select-language="onSelectLanguageClick"> +
@@ -42,10 +47,12 @@ import TranslateSetting from "@/components/translateSetting.vue"; import common from "@/utils/common"; import IconClose from "@/components/icons/iconClose.vue"; import IconLoading from "@/components/icons/iconLoading.vue"; +import SelectLanguage from "@/components/selectLanguage.vue"; export default { name: 'App', components: { + SelectLanguage, IconLoading, IconClose, TranslateSetting, @@ -136,6 +143,8 @@ export default { startWatchSave: false, + showSelectLanguage: false, + pasteBtn: null, showPastePopup: false, pasteTitle: '', @@ -319,6 +328,9 @@ export default { this.translateApiConfig = config }) }, + onSelectLanguageClick(e) { + this.$refs.selectLanguage.open(e) + }, onTranslateApiClick() { this.$refs.translateSetting.open(this.translateApi) }, diff --git a/src/src/components/icons/iconApi.vue b/src/src/components/icons/iconApi.vue new file mode 100755 index 0000000..e08226f --- /dev/null +++ b/src/src/components/icons/iconApi.vue @@ -0,0 +1,27 @@ + + \ No newline at end of file diff --git a/src/src/components/icons/iconI18n.vue b/src/src/components/icons/iconI18n.vue new file mode 100644 index 0000000..0ef9c91 --- /dev/null +++ b/src/src/components/icons/iconI18n.vue @@ -0,0 +1,27 @@ + + \ No newline at end of file diff --git a/src/src/components/phystonPrompt.vue b/src/src/components/phystonPrompt.vue index b8eb6b7..0b4d1ff 100755 --- a/src/src/components/phystonPrompt.vue +++ b/src/src/components/phystonPrompt.vue @@ -5,82 +5,62 @@
{{ neg ? getLang('negative_prompt') : getLang('prompt') }}
({{ counterText }})
-
{{ getLang('local_language') }}{{ isEnglish ? '' : '/Language' }}:
- +
+
+ +
+
+ +
+
-
-
{{ getLang('translate_api') }}:
-
-
{{ translateApiItem.name }}
-
-
-
+
- -
-
-
-
- -
-
-
-
- +
+
+ +
+
+ +
+
- -
-
-
-
- +
+
+ + +
+
+ + +
+
- -
-
-
-
- - - +
+
+ +
+
+ +
+
@@ -250,10 +230,14 @@ import IconInput from "@/components/icons/iconInput.vue"; import IconRemove from "@/components/icons/iconRemove.vue"; import IconTooltip from "@/components/icons/iconTooltip.vue"; import IconGithub from "@/components/icons/iconGithub.vue"; +import IconI18n from "@/components/icons/iconI18n.vue"; +import IconApi from "@/components/icons/iconApi.vue"; export default { name: 'PhystonPrompt', components: { + IconApi, + IconI18n, IconGithub, IconTooltip, IconRemove, @@ -307,7 +291,7 @@ export default { default: '', }, }, - emits: ['update:languageCode', 'update:autoTranslateToEnglish', 'update:autoTranslateToLocal', 'update:hideDefaultInput', 'update:enableTooltip', 'update:translateApi', 'click:translateApi'], + emits: ['update:languageCode', 'update:autoTranslateToEnglish', 'update:autoTranslateToLocal', 'update:hideDefaultInput', 'update:enableTooltip', 'update:translateApi', 'click:translateApi', 'click:selectLanguage'], data() { return { prompt: '', @@ -889,7 +873,7 @@ export default { } .extend-content { - select, .current-translate-api { + select, .select-btn { padding: 0 10px 0 5px; font-size: 0.8rem; appearance: auto; @@ -904,7 +888,7 @@ export default { } } - .current-translate-api { + .select-btn { cursor: pointer; padding: 0 10px; @@ -914,6 +898,32 @@ export default { } } + .extend-btn-group{ + display: flex; + justify-content: center; + align-items: center; + color: var(--button-secondary-text-color); + background: var(--button-secondary-background-fill); + border: 1px solid var(--button-secondary-border-color); + padding: 0; + border-radius: 4px; + + .extend-btn-item { + cursor: pointer; + border-left: 1px solid var(--button-secondary-border-color); + height: 26px; + width: 30px; + display: flex; + justify-content: center; + align-items: center; + + &:first-child { + border-left: 0; + margin-left: 0; + } + } + } + .gradio-button, a { height: 26px !important; min-height: 26px !important; diff --git a/src/src/components/selectLanguage.vue b/src/src/components/selectLanguage.vue new file mode 100644 index 0000000..e41ece1 --- /dev/null +++ b/src/src/components/selectLanguage.vue @@ -0,0 +1,126 @@ + + + \ No newline at end of file diff --git a/src/src/main.js b/src/src/main.js index 939a09f..e2ff53a 100755 --- a/src/src/main.js +++ b/src/src/main.js @@ -19,8 +19,9 @@ onUiLoaded(() => { app.mixin(CommonMixin) app.directive('tooltip', { mounted(el, binding) { - app.config.globalProperties.$tippyList.push(tippy(el, { - content: binding.value, + // data-tippy-content + el.setAttribute('data-tippy-content', binding.value) + const instance = tippy(el, { placement: 'bottom', theme: 'light', allowHTML: true, @@ -30,8 +31,14 @@ onUiLoaded(() => { instance.disable() } }, - })) + }) + el.$tippyInstance = instance + app.config.globalProperties.$tippyList.push(instance) }, + updated(el, binding) { + el.setAttribute('data-tippy-content', binding.value) + el.$tippyInstance.setContent(binding.value) + } }) app.mount('#physton-prompt-all-in-one') diff --git a/src/src/mixins/languageMixin.js b/src/src/mixins/languageMixin.js index 78eba91..040ce3e 100644 --- a/src/src/mixins/languageMixin.js +++ b/src/src/mixins/languageMixin.js @@ -26,6 +26,17 @@ export default { data() { return {} }, + computed: { + langName() { + for (const key in this.languages) { + const item = this.languages[key] + if (item.code === this.languageCode) { + return item.name + } + } + return item.name + } + }, methods: { getLang(key) { return common.getLang(key, this.languageCode, this.languages) diff --git a/style.css b/style.css index 4560287..0f2b73a 100755 --- a/style.css +++ b/style.css @@ -1 +1 @@ -.lds-ripple{display:inline-block;position:relative;width:80px;height:80px}.lds-ripple div{position:absolute;border:4px solid #fff;opacity:1;border-radius:50%;animation:lds-ripple 1s cubic-bezier(0,.2,.8,1) infinite}.lds-ripple div:nth-child(2){animation-delay:-.5s}@keyframes lds-ripple{0%{top:36px;left:36px;width:0;height:0;opacity:0}4.9%{top:36px;left:36px;width:0;height:0;opacity:0}5%{top:36px;left:36px;width:0;height:0;opacity:1}to{top:0px;left:0px;width:72px;height:72px;opacity:0}}.physton-prompt-history[data-v-c1827645]{position:absolute;z-index:999;width:0;height:0;padding:0;box-shadow:0 0 3px #4a54ff;border-radius:6px 6px 4px 4px;background-color:#1e1e1ee6;transition:height .1s ease-in-out,width .1s ease-in-out;top:-9999px;left:-9999px}.physton-prompt-history .history-content[data-v-c1827645]{position:relative}.physton-prompt-history .history-detail[data-v-c1827645]{position:absolute;right:-404px;top:0;width:400px;z-index:1000;background:center center #4A54FF;background-image:linear-gradient(315deg,#6772FF 0,#00F9E5 100%);background-size:104% 104%;box-shadow:0 0 3px #4a54ff;border-radius:6px 6px 4px 4px;background-color:#1e1e1ee6;padding:10px;color:#1d1d1d}.physton-prompt-history .history-detail .history-item-tags[data-v-c1827645]{display:flex;justify-content:flex-start;align-items:flex-start;flex-wrap:wrap}.physton-prompt-history .history-detail .history-item-tags .history-item-tag[data-v-c1827645]{margin-right:5px;margin-bottom:5px}.physton-prompt-history .history-detail .history-item-tags .history-item-tag[data-v-c1827645]:last-child{margin-right:0}.physton-prompt-history .history-detail .history-item-tags .history-item-tag .item-tag-value[data-v-c1827645]{padding:4px 6px;border-radius:5px;background:rgba(30,30,30,.9);font-size:12px;color:#fff}.physton-prompt-history .history-detail .history-item-tags .history-item-tag .item-tag-local-value[data-v-c1827645]{font-size:12px;margin-top:2px}.physton-prompt-history .history-list[data-v-c1827645]{width:100%;height:100%;overflow:hidden;overflow-y:auto;position:relative}.physton-prompt-history .history-list .history-clear[data-v-c1827645]{background:rgba(30,30,30,.9);position:sticky;top:0;padding:10px;cursor:pointer;border-bottom:1px solid #4A54FF;color:#ff4a4a;text-align:center;display:flex;justify-content:center;align-items:center}.physton-prompt-history .history-list .history-clear[data-v-c1827645]:hover{border-bottom:1px solid #ff4a4a;background:center center #4A54FF}.physton-prompt-history .history-list .history-item[data-v-c1827645]{padding:6px 10px;border-bottom:1px solid #3c3c3c;cursor:pointer}.physton-prompt-history .history-list .history-item[data-v-c1827645]:hover{background:center center #4A54FF;background-image:linear-gradient(315deg,#6772FF 0,#00F9E5 100%);background-size:104% 104%}.physton-prompt-history .history-list .history-item:hover .history-item-prompt[data-v-c1827645]{overflow:visible;white-space:normal;color:#1d1d1d}.physton-prompt-history .history-list .history-item .history-item-header[data-v-c1827645]{display:flex;justify-content:space-between;align-items:center;margin-bottom:5px}.physton-prompt-history .history-list .history-item .history-item-header .item-header-left[data-v-c1827645],.physton-prompt-history .history-list .history-item .history-item-header .item-header-right[data-v-c1827645]{display:flex;justify-content:flex-start;align-items:center}.physton-prompt-history .history-list .history-item .history-item-header .item-header-left>div[data-v-c1827645],.physton-prompt-history .history-list .history-item .history-item-header .item-header-right>div[data-v-c1827645]{margin-right:10px;font-size:14px;color:#fff}.physton-prompt-history .history-list .history-item .history-item-header .item-header-left>div[data-v-c1827645]:last-child,.physton-prompt-history .history-list .history-item .history-item-header .item-header-right>div[data-v-c1827645]:last-child{margin-right:0}.physton-prompt-history .history-list .history-item .history-item-header .item-header-left .item-header-index[data-v-c1827645]{background:#4A54FF;padding:2px 0;width:32px;text-align:center}.physton-prompt-history .history-list .history-item .history-item-header .item-header-left .item-header-time[data-v-c1827645]{width:110px}.physton-prompt-history .history-list .history-item .history-item-header .item-header-left .item-header-name .header-name-input[data-v-c1827645]{background:transparent;border:1px solid #3c3c3c;height:20px;padding:0 4px;width:210px;font-size:12px;color:#00f9e5}.physton-prompt-history .history-list .history-item .history-item-header .item-header-left .item-header-name .header-name-input[data-v-c1827645]:focus{outline:none;border-color:#4a54ff}.physton-prompt-history .history-list .history-item .history-item-header .item-header-right[data-v-c1827645]{font-size:12px;color:#fff}.physton-prompt-history .history-list .history-item .history-item-prompt[data-v-c1827645]{margin-top:5px;font-size:14px;line-height:18px;color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.physton-prompt-history .history-empty[data-v-c1827645]{height:100%;display:flex;justify-content:center;align-items:center}.physton-prompt-history .history-empty span[data-v-c1827645]{font-size:14px;color:#999}.physton-prompt-favorite[data-v-75a6c294]{position:absolute;z-index:999;width:0;height:0;padding:0;box-shadow:0 0 3px #4a54ff;border-radius:6px 6px 4px 4px;background-color:#1e1e1ee6;transition:height .1s ease-in-out,width .1s ease-in-out;top:-9999px;left:-9999px}.physton-prompt-favorite .favorite-content[data-v-75a6c294]{position:relative}.physton-prompt-favorite .favorite-detail[data-v-75a6c294]{position:absolute;right:-404px;top:0;width:400px;z-index:1000;background:center center #4A54FF;background-image:linear-gradient(315deg,#6772FF 0,#00F9E5 100%);background-size:104% 104%;box-shadow:0 0 3px #4a54ff;border-radius:6px 6px 4px 4px;background-color:#1e1e1ee6;padding:10px;color:#1d1d1d}.physton-prompt-favorite .favorite-detail .favorite-item-tags[data-v-75a6c294]{display:flex;justify-content:flex-start;align-items:flex-start;flex-wrap:wrap}.physton-prompt-favorite .favorite-detail .favorite-item-tags .favorite-item-tag[data-v-75a6c294]{margin-right:5px;margin-bottom:5px}.physton-prompt-favorite .favorite-detail .favorite-item-tags .favorite-item-tag[data-v-75a6c294]:last-child{margin-right:0}.physton-prompt-favorite .favorite-detail .favorite-item-tags .favorite-item-tag .item-tag-value[data-v-75a6c294]{padding:4px 6px;border-radius:5px;background:rgba(30,30,30,.9);font-size:12px;color:#fff}.physton-prompt-favorite .favorite-detail .favorite-item-tags .favorite-item-tag .item-tag-local-value[data-v-75a6c294]{font-size:12px;margin-top:2px}.physton-prompt-favorite .favorite-list[data-v-75a6c294]{width:100%;height:100%;overflow:hidden;overflow-y:auto}.physton-prompt-favorite .favorite-list .favorite-item[data-v-75a6c294]{padding:6px 10px;border-bottom:1px solid #3c3c3c;cursor:pointer}.physton-prompt-favorite .favorite-list .favorite-item[data-v-75a6c294]:hover{background:center center #4A54FF;background-image:linear-gradient(315deg,#6772FF 0,#00F9E5 100%);background-size:104% 104%}.physton-prompt-favorite .favorite-list .favorite-item:hover .favorite-item-prompt[data-v-75a6c294]{overflow:visible;white-space:normal;color:#1d1d1d}.physton-prompt-favorite .favorite-list .favorite-item .favorite-item-header[data-v-75a6c294]{display:flex;justify-content:space-between;align-items:center;margin-bottom:5px}.physton-prompt-favorite .favorite-list .favorite-item .favorite-item-header .item-header-left[data-v-75a6c294],.physton-prompt-favorite .favorite-list .favorite-item .favorite-item-header .item-header-right[data-v-75a6c294]{display:flex;justify-content:flex-start;align-items:center}.physton-prompt-favorite .favorite-list .favorite-item .favorite-item-header .item-header-left>div[data-v-75a6c294],.physton-prompt-favorite .favorite-list .favorite-item .favorite-item-header .item-header-right>div[data-v-75a6c294]{margin-right:10px;font-size:14px;color:#fff}.physton-prompt-favorite .favorite-list .favorite-item .favorite-item-header .item-header-left>div[data-v-75a6c294]:last-child,.physton-prompt-favorite .favorite-list .favorite-item .favorite-item-header .item-header-right>div[data-v-75a6c294]:last-child{margin-right:0}.physton-prompt-favorite .favorite-list .favorite-item .favorite-item-header .item-header-left .item-header-index[data-v-75a6c294]{background:#4A54FF;padding:2px 0;width:32px;text-align:center}.physton-prompt-favorite .favorite-list .favorite-item .favorite-item-header .item-header-left .item-header-time[data-v-75a6c294]{width:110px}.physton-prompt-favorite .favorite-list .favorite-item .favorite-item-header .item-header-left .item-header-name .header-name-input[data-v-75a6c294]{background:transparent;border:1px solid #3c3c3c;height:20px;padding:0 4px;width:210px;font-size:12px;color:#00f9e5}.physton-prompt-favorite .favorite-list .favorite-item .favorite-item-header .item-header-left .item-header-name .header-name-input[data-v-75a6c294]:focus{outline:none;border-color:#4a54ff}.physton-prompt-favorite .favorite-list .favorite-item .favorite-item-header .item-header-right[data-v-75a6c294]{font-size:12px;color:#fff}.physton-prompt-favorite .favorite-list .favorite-item .favorite-item-prompt[data-v-75a6c294]{margin-top:5px;font-size:14px;line-height:18px;color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.physton-prompt-favorite .favorite-empty[data-v-75a6c294]{height:100%;display:flex;justify-content:center;align-items:center}.physton-prompt-favorite .favorite-empty span[data-v-75a6c294]{font-size:14px;color:#999}.physton-prompt{border:1px solid var(--input-border-color);padding:0 10px;margin:5px 0}.physton-prompt div{line-height:1}.physton-prompt svg{display:inline-block}.physton-prompt .icon-svg{display:inline-block;line-height:1}.physton-prompt .prompt-header{margin:5px 0 10px;display:flex;justify-content:flex-start;align-items:center;border-bottom:1px dashed var(--input-border-color);flex-wrap:wrap}.physton-prompt .prompt-header>*{margin-right:10px;margin-bottom:10px}.physton-prompt .prompt-header>*:last-child{margin-right:0}.physton-prompt .prompt-header .prompt-header-title{font-weight:700;font-size:1rem}.physton-prompt .prompt-header .prompt-header-counter{font-size:.9rem}.physton-prompt .prompt-header .prompt-header-break{flex-basis:100%;height:0;margin-bottom:0}.physton-prompt .prompt-header .prompt-header-extend{margin-right:10px;display:flex;justify-content:flex-start;align-items:center}.physton-prompt .prompt-header .prompt-header-extend:last-child{margin-right:0}.physton-prompt .prompt-header .prompt-header-extend .extend-title{font-size:.8rem;margin-right:5px}.physton-prompt .prompt-header .prompt-header-extend .extend-content select,.physton-prompt .prompt-header .prompt-header-extend .extend-content .current-translate-api{padding:0 10px 0 5px;font-size:.8rem;appearance:auto;border:var(--button-border-width) solid var(--body-text-color);background:var(--body-background-fill);color:var(--body-text-color);height:20px;line-height:20px}.physton-prompt .prompt-header .prompt-header-extend .extend-content select:hover,.physton-prompt .prompt-header .prompt-header-extend .extend-content .current-translate-api:hover{border-color:var(--button-primary-border-color)}.physton-prompt .prompt-header .prompt-header-extend .extend-content .current-translate-api{cursor:pointer;padding:0 10px}.physton-prompt .prompt-header .prompt-header-extend .extend-content .current-translate-api:hover{background:var(--button-primary-background-fill-hover);border-color:var(--button-primary-border-color-hover)}.physton-prompt .prompt-header .prompt-header-extend .extend-content .gradio-button,.physton-prompt .prompt-header .prompt-header-extend .extend-content a{height:26px!important;min-height:26px!important;max-height:26px!important}.physton-prompt .prompt-header .prompt-header-extend .extend-content .gradio-checkbox{cursor:pointer}.physton-prompt .prompt-header .prompt-header-extend .extend-content input[type=checkbox]{--ring-color: transparent;position:relative;box-shadow:var(--input-shadow);border:1px solid var(--checkbox-border-color);border-radius:var(--checkbox-border-radius);background-color:var(--checkbox-background-color);line-height:var(--line-sm);width:16px;height:16px}.physton-prompt .prompt-header .prompt-header-extend .extend-content input[type=checkbox]:checked{border-color:var(--checkbox-border-color-selected);background-image:var(--checkbox-check);background-color:var(--checkbox-background-color-selected)}.physton-prompt .prompt-tags{display:flex;flex-wrap:wrap;justify-content:flex-start;align-items:flex-start}.physton-prompt .prompt-tags>*{margin-right:12px;margin-bottom:8px}.physton-prompt .prompt-tags>*:last-child{margin-right:0}.physton-prompt .prompt-tags.droping .btn-tag-extend{display:none!important}.physton-prompt .prompt-tags input[type=text],.physton-prompt .prompt-tags input[type=number]{display:inline-block;overflow-y:scroll;height:24px;padding:4px;border:1px solid #02b7fd;appearance:none;background-color:transparent;font-size:.9rem;line-height:.9rem;font-family:inherit;font-weight:inherit;border-radius:4px}.physton-prompt .prompt-tags input[type=text]:focus,.physton-prompt .prompt-tags input[type=number]:focus{box-shadow:var(--input-shadow-focus);border-color:var(--input-border-color-focus)}.physton-prompt .prompt-tags .prompt-tag{display:inline-flex;align-items:center}.physton-prompt .prompt-tags .prompt-tag.disabled{opacity:.5}.physton-prompt .prompt-tags .prompt-tag .prompt-tag-main{display:flex;justify-content:flex-start;align-items:flex-start;position:relative}.physton-prompt .prompt-tags .prompt-tag .prompt-tag-main:hover .prompt-tag-edit,.physton-prompt .prompt-tags .prompt-tag .prompt-tag-main:hover .btn-tag-extend{box-shadow:0 0 3px #4a54ff}.physton-prompt .prompt-tags .prompt-tag .prompt-tag-main:hover .btn-tag-extend{display:flex}.physton-prompt .prompt-tags .prompt-tag .prompt-tag-main .prompt-tag-edit{display:flex;justify-content:center;align-items:center;position:relative;border-radius:4px}.physton-prompt .prompt-tags .prompt-tag .prompt-tag-main .prompt-tag-edit .prompt-tag-value{padding:4px!important;font-size:.9rem!important;height:24px!important;min-height:unset!important;border-radius:4px 0 0 4px!important}.physton-prompt .prompt-tags .prompt-tag .prompt-tag-main .prompt-tag-edit .prompt-tag-value .weight-character{color:#d81e06}.physton-prompt .prompt-tags .prompt-tag .prompt-tag-main .prompt-tag-edit .input-tag-edit{border-radius:4px 0 0 4px!important}.physton-prompt .prompt-tags .prompt-tag .prompt-tag-main .prompt-tag-edit .btn-tag-delete{display:flex;justify-content:center;align-items:center;cursor:pointer;border:var(--button-border-width) solid var(--button-secondary-border-color);background:var(--button-secondary-background-fill);padding:0;width:16px;height:24px;border-radius:0 4px 4px 0}.physton-prompt .prompt-tags .prompt-tag .prompt-tag-main .prompt-tag-edit .btn-tag-delete:hover{background:#d81e06}.physton-prompt .prompt-tags .prompt-tag .prompt-tag-main .prompt-tag-edit .btn-tag-delete:hover svg{fill:#fff!important}.physton-prompt .prompt-tags .prompt-tag .prompt-tag-main .btn-tag-extend{display:none;justify-content:flex-start;align-items:center;position:absolute;top:-32px;left:0;z-index:100;padding:0;box-shadow:0 0 3px #4a54ff;background:center center #4A54FF;background-image:linear-gradient(315deg,#6772FF 0,#00F9E5 100%);background-size:104% 104%;border-radius:4px;overflow:hidden}.physton-prompt .prompt-tags .prompt-tag .prompt-tag-main .btn-tag-extend>*{height:32px;width:32px;border:0;border-radius:0;padding:5px;min-width:auto;font-size:.9rem;min-height:auto;background:transparent;color:#fff;border-right:1px solid rgba(255,255,255,.2)}.physton-prompt .prompt-tags .prompt-tag .prompt-tag-main .btn-tag-extend>*:last-child{border-right:0}.physton-prompt .prompt-tags .prompt-tag .prompt-tag-main .btn-tag-extend>*:hover{background:rgba(255,255,255,.2)}.physton-prompt .prompt-tags .prompt-tag .prompt-tag-main .btn-tag-extend>input{width:54px;border:0}.physton-prompt .prompt-tags .prompt-tag .prompt-tag-main .btn-tag-extend input[type=number]::-webkit-inner-spin-button,.physton-prompt .prompt-tags .prompt-tag .prompt-tag-main .btn-tag-extend input[type=number]::-webkit-outer-spin-button{opacity:1}.physton-prompt .prompt-tags .prompt-tag .prompt-local-language{margin-top:2px;display:flex;justify-content:flex-start;align-items:center}.physton-prompt .prompt-tags .prompt-tag .prompt-local-language .translate-to-local{cursor:pointer}.physton-prompt .prompt-tags .prompt-tag .prompt-local-language .local-language{font-size:.8rem;color:var(--body-text-color-subdued);margin-left:2px}.physton-prompt .prompt-tags .input-tag-append{min-width:200px}.physton-prompt .prompt-tags .gradio-button{max-width:none!important;width:auto!important;padding:4px 12px!important}.physton-prompt-translate-setting{position:fixed;top:0;left:0;width:100%;height:100%;z-index:2000;display:flex;justify-content:center;align-items:center;background:rgba(0,0,0,.5)}.physton-prompt-translate-setting .translate-setting-main{width:700px;height:auto;padding:20px;margin:0;box-shadow:0 0 3px #4a54ff;border-radius:6px 6px 4px 4px;background-color:#1e1e1ee6;transition:height .1s ease-in-out,width .1s ease-in-out;color:#fff}.physton-prompt-translate-setting .translate-setting-main .setting-line{display:flex;justify-content:flex-start;align-items:flex-start;margin-bottom:10px}.physton-prompt-translate-setting .translate-setting-main .setting-line .line-title{font-size:16px;font-weight:700;color:#fff;width:150px;line-height:24px}.physton-prompt-translate-setting .translate-setting-main .setting-line .line-content{flex:1;font-size:14px;color:#fff}.physton-prompt-translate-setting .translate-setting-main .setting-line .line-content span{font-size:14px;color:#fff}.physton-prompt-translate-setting .translate-setting-main .setting-line .line-content .api-name{display:inline-block;background:center center #4A54FF;background-image:linear-gradient(315deg,#6772FF 0,#00F9E5 100%);background-size:104% 104%;color:#1d1d1d;border-radius:2px;padding:4px}.physton-prompt-translate-setting .translate-setting-main .setting-line .line-content input,.physton-prompt-translate-setting .translate-setting-main .setting-line .line-content textarea,.physton-prompt-translate-setting .translate-setting-main .setting-line .line-content select{background:rgba(30,30,30,.9);border:1px solid #3c3c3c;padding:4px;width:100%;font-size:14px;color:#fff;resize:none}.physton-prompt-translate-setting .translate-setting-main .setting-line .line-content input:focus,.physton-prompt-translate-setting .translate-setting-main .setting-line .line-content textarea:focus,.physton-prompt-translate-setting .translate-setting-main .setting-line .line-content select:focus{outline:none;border-color:#4a54ff}.physton-prompt-translate-setting .translate-setting-main .setting-line .line-content .test-input{height:150px}.physton-prompt-translate-setting .translate-setting-main .setting-line .line-content .test-btn{cursor:pointer;padding:0 40px;height:40px;line-height:40px;color:#fff;background:#108bb5;border-radius:4px;display:inline-block}.physton-prompt-translate-setting .translate-setting-main .setting-line .line-content .translate-error{color:#ff4a4a;font-size:14px;margin-bottom:10px}.physton-prompt-translate-setting .translate-setting-main .setting-line .line-content .help-list{font-size:14px;line-height:24px}.physton-prompt-translate-setting .translate-setting-main .setting-line .line-content .help-list .help-item{margin-bottom:10px}.physton-prompt-translate-setting .translate-setting-main .setting-line .line-content .help-list .help-item:last-child{margin-bottom:0}.physton-prompt-translate-setting .translate-setting-main .setting-line .line-content .help-list .help-item a{color:#fff;text-decoration:none;font-size:14px;border-bottom:1px solid #fff;padding-bottom:4px}.physton-prompt-translate-setting .translate-setting-main .setting-line .line-content .help-list .help-item a:hover{color:#108bb5;border-bottom-color:#108bb5}.physton-prompt-translate-setting .translate-setting-main .setting-btns{display:flex;justify-content:flex-end;align-items:center;margin-top:10px}.physton-prompt-translate-setting .translate-setting-main .setting-btns .translate-save{cursor:pointer;padding:0 40px;height:40px;line-height:40px;color:#fff;background:center center #4A54FF;background-image:linear-gradient(315deg,#6772FF 0,#00F9E5 100%);background-size:104% 104%;border-radius:4px;display:inline-block;margin-right:10px}.physton-prompt-translate-setting .translate-setting-main .setting-btns .translate-close{cursor:pointer;padding:0 40px;height:40px;line-height:40px;color:#4a54ff;background:transparent;border:1px solid #4A54FF;border-radius:4px;display:inline-block}.toast-title{font-weight:700}.toast-message{-ms-word-wrap:break-word;word-wrap:break-word}.toast-message a,.toast-message label{color:#fff}.toast-message a:hover{color:#ccc;text-decoration:none}.toast-close-button{position:relative;right:-.3em;top:-.3em;float:right;font-size:20px;font-weight:700;color:#fff;-webkit-text-shadow:0 1px 0 #fff;text-shadow:0 1px 0 #fff;opacity:.8;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=80);filter:alpha(opacity=80);line-height:1}.toast-close-button:focus,.toast-close-button:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.4;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=40);filter:alpha(opacity=40)}.rtl .toast-close-button{left:-.3em;float:left;right:.3em}button.toast-close-button{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none}.toast-top-center{top:0;right:0;width:100%}.toast-bottom-center{bottom:0;right:0;width:100%}.toast-top-full-width{top:0;right:0;width:100%}.toast-bottom-full-width{bottom:0;right:0;width:100%}.toast-top-left{top:12px;left:12px}.toast-top-right{top:12px;right:12px}.toast-bottom-right{right:12px;bottom:12px}.toast-bottom-left{bottom:12px;left:12px}#toast-container{position:fixed;z-index:999999;pointer-events:none}#toast-container *{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}#toast-container>div{position:relative;pointer-events:auto;overflow:hidden;margin:0 0 6px;padding:15px 15px 15px 50px;width:300px;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;background-position:15px center;background-repeat:no-repeat;-moz-box-shadow:0 0 12px #999;-webkit-box-shadow:0 0 12px #999;box-shadow:0 0 12px #999;color:#fff;opacity:.8;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=80);filter:alpha(opacity=80)}#toast-container>div.rtl{direction:rtl;padding:15px 50px 15px 15px;background-position:right 15px center}#toast-container>div:hover{-moz-box-shadow:0 0 12px #000;-webkit-box-shadow:0 0 12px #000;box-shadow:0 0 12px #000;opacity:1;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100);filter:alpha(opacity=100);cursor:pointer}#toast-container>.toast-info{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGwSURBVEhLtZa9SgNBEMc9sUxxRcoUKSzSWIhXpFMhhYWFhaBg4yPYiWCXZxBLERsLRS3EQkEfwCKdjWJAwSKCgoKCcudv4O5YLrt7EzgXhiU3/4+b2ckmwVjJSpKkQ6wAi4gwhT+z3wRBcEz0yjSseUTrcRyfsHsXmD0AmbHOC9Ii8VImnuXBPglHpQ5wwSVM7sNnTG7Za4JwDdCjxyAiH3nyA2mtaTJufiDZ5dCaqlItILh1NHatfN5skvjx9Z38m69CgzuXmZgVrPIGE763Jx9qKsRozWYw6xOHdER+nn2KkO+Bb+UV5CBN6WC6QtBgbRVozrahAbmm6HtUsgtPC19tFdxXZYBOfkbmFJ1VaHA1VAHjd0pp70oTZzvR+EVrx2Ygfdsq6eu55BHYR8hlcki+n+kERUFG8BrA0BwjeAv2M8WLQBtcy+SD6fNsmnB3AlBLrgTtVW1c2QN4bVWLATaIS60J2Du5y1TiJgjSBvFVZgTmwCU+dAZFoPxGEEs8nyHC9Bwe2GvEJv2WXZb0vjdyFT4Cxk3e/kIqlOGoVLwwPevpYHT+00T+hWwXDf4AJAOUqWcDhbwAAAAASUVORK5CYII=)!important}#toast-container>.toast-error{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVEhLrZa/SgNBEMZzh0WKCClSCKaIYOED+AAKeQQLG8HWztLCImBrYadgIdY+gIKNYkBFSwu7CAoqCgkkoGBI/E28PdbLZmeDLgzZzcx83/zZ2SSXC1j9fr+I1Hq93g2yxH4iwM1vkoBWAdxCmpzTxfkN2RcyZNaHFIkSo10+8kgxkXIURV5HGxTmFuc75B2RfQkpxHG8aAgaAFa0tAHqYFfQ7Iwe2yhODk8+J4C7yAoRTWI3w/4klGRgR4lO7Rpn9+gvMyWp+uxFh8+H+ARlgN1nJuJuQAYvNkEnwGFck18Er4q3egEc/oO+mhLdKgRyhdNFiacC0rlOCbhNVz4H9FnAYgDBvU3QIioZlJFLJtsoHYRDfiZoUyIxqCtRpVlANq0EU4dApjrtgezPFad5S19Wgjkc0hNVnuF4HjVA6C7QrSIbylB+oZe3aHgBsqlNqKYH48jXyJKMuAbiyVJ8KzaB3eRc0pg9VwQ4niFryI68qiOi3AbjwdsfnAtk0bCjTLJKr6mrD9g8iq/S/B81hguOMlQTnVyG40wAcjnmgsCNESDrjme7wfftP4P7SP4N3CJZdvzoNyGq2c/HWOXJGsvVg+RA/k2MC/wN6I2YA2Pt8GkAAAAASUVORK5CYII=)!important}#toast-container>.toast-success{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADsSURBVEhLY2AYBfQMgf///3P8+/evAIgvA/FsIF+BavYDDWMBGroaSMMBiE8VC7AZDrIFaMFnii3AZTjUgsUUWUDA8OdAH6iQbQEhw4HyGsPEcKBXBIC4ARhex4G4BsjmweU1soIFaGg/WtoFZRIZdEvIMhxkCCjXIVsATV6gFGACs4Rsw0EGgIIH3QJYJgHSARQZDrWAB+jawzgs+Q2UO49D7jnRSRGoEFRILcdmEMWGI0cm0JJ2QpYA1RDvcmzJEWhABhD/pqrL0S0CWuABKgnRki9lLseS7g2AlqwHWQSKH4oKLrILpRGhEQCw2LiRUIa4lwAAAABJRU5ErkJggg==)!important}#toast-container>.toast-warning{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGYSURBVEhL5ZSvTsNQFMbXZGICMYGYmJhAQIJAICYQPAACiSDB8AiICQQJT4CqQEwgJvYASAQCiZiYmJhAIBATCARJy+9rTsldd8sKu1M0+dLb057v6/lbq/2rK0mS/TRNj9cWNAKPYIJII7gIxCcQ51cvqID+GIEX8ASG4B1bK5gIZFeQfoJdEXOfgX4QAQg7kH2A65yQ87lyxb27sggkAzAuFhbbg1K2kgCkB1bVwyIR9m2L7PRPIhDUIXgGtyKw575yz3lTNs6X4JXnjV+LKM/m3MydnTbtOKIjtz6VhCBq4vSm3ncdrD2lk0VgUXSVKjVDJXJzijW1RQdsU7F77He8u68koNZTz8Oz5yGa6J3H3lZ0xYgXBK2QymlWWA+RWnYhskLBv2vmE+hBMCtbA7KX5drWyRT/2JsqZ2IvfB9Y4bWDNMFbJRFmC9E74SoS0CqulwjkC0+5bpcV1CZ8NMej4pjy0U+doDQsGyo1hzVJttIjhQ7GnBtRFN1UarUlH8F3xict+HY07rEzoUGPlWcjRFRr4/gChZgc3ZL2d8oAAAAASUVORK5CYII=)!important}#toast-container.toast-bottom-center>div,#toast-container.toast-top-center>div{width:300px;margin-left:auto;margin-right:auto}#toast-container.toast-bottom-full-width>div,#toast-container.toast-top-full-width>div{width:96%;margin-left:auto;margin-right:auto}.toast{background-color:#030303}.toast-success{background-color:#51a351}.toast-error{background-color:#bd362f}.toast-info{background-color:#2f96b4}.toast-warning{background-color:#f89406}.toast-progress{position:absolute;left:0;bottom:0;height:4px;background-color:#000;opacity:.4;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=40);filter:alpha(opacity=40)}@media all and (max-width:240px){#toast-container>div{padding:8px 8px 8px 50px;width:11em}#toast-container>div.rtl{padding:8px 50px 8px 8px}#toast-container .toast-close-button{right:-.2em;top:-.2em}#toast-container .rtl .toast-close-button{left:-.2em;right:.2em}}@media all and (min-width:241px) and (max-width:480px){#toast-container>div{padding:8px 8px 8px 50px;width:18em}#toast-container>div.rtl{padding:8px 50px 8px 8px}#toast-container .toast-close-button{right:-.2em;top:-.2em}#toast-container .rtl .toast-close-button{left:-.2em;right:.2em}}@media all and (min-width:481px) and (max-width:768px){#toast-container>div{padding:15px 15px 15px 50px;width:25em}#toast-container>div.rtl{padding:15px 50px 15px 15px}}.tippy-box[data-animation=fade][data-state=hidden]{opacity:0}[data-tippy-root]{max-width:calc(100vw - 10px)}.tippy-box{position:relative;background-color:#333;color:#fff;border-radius:4px;font-size:14px;line-height:1.4;white-space:normal;outline:0;transition-property:transform,visibility,opacity}.tippy-box[data-placement^=top]>.tippy-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-arrow:before{bottom:-7px;left:0;border-width:8px 8px 0;border-top-color:initial;transform-origin:center top}.tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{top:-7px;left:0;border-width:0 8px 8px;border-bottom-color:initial;transform-origin:center bottom}.tippy-box[data-placement^=left]>.tippy-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-arrow:before{border-width:8px 0 8px 8px;border-left-color:initial;right:-7px;transform-origin:center left}.tippy-box[data-placement^=right]>.tippy-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-arrow:before{left:-7px;border-width:8px 8px 8px 0;border-right-color:initial;transform-origin:center right}.tippy-box[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-arrow{width:16px;height:16px;color:#333}.tippy-arrow:before{content:"";position:absolute;border-color:transparent;border-style:solid}.tippy-content{position:relative;padding:5px 9px;z-index:1}.hover-scale-120{animation:all .3s}.hover-scale-120:hover{transform:scale(1.2)}.hover-scale-140{animation:all .3s}.hover-scale-140:hover{transform:scale(1.4)}.physton-paste-popup{position:fixed;top:0;left:0;width:100%;height:100%;z-index:2000;display:flex;justify-content:center;align-items:center;background:rgba(0,0,0,.5)}.physton-paste-popup .paste-popup-main{width:700px;height:auto;padding:20px;margin:0;box-shadow:0 0 3px #4a54ff;border-radius:6px 6px 4px 4px;background-color:#1e1e1ee6;transition:height .1s ease-in-out,width .1s ease-in-out;color:#fff;position:relative}.physton-paste-popup .paste-popup-main .paste-popup-close{display:block;padding:4px;position:absolute;right:-14px;top:-14px;background:#ffffffe6;border-radius:50%;box-shadow:0 1px 5px #d81e06;cursor:pointer}.physton-paste-popup .paste-popup-main .paste-popup-close:hover{background:#d81e06}.physton-paste-popup .paste-popup-main .paste-popup-title{font-size:14px;font-weight:700;margin-bottom:10px;word-break:keep-all;white-space:nowrap;overflow:hidden}.physton-paste-popup .paste-popup-main .paste-popup-body .paste-content{background:rgba(30,30,30,.9);border:1px solid #3c3c3c;padding:4px;width:100%;font-size:14px;color:#fff;resize:none;height:400px;box-sizing:border-box}.physton-paste-popup .paste-popup-main .paste-popup-body .paste-content:focus{outline:none;border-color:#4a54ff}.physton-paste-popup .paste-popup-main .paste-popup-body .paste-submit{background:center center #4A54FF;background-image:linear-gradient(315deg,#6772FF 0,#00F9E5 100%);background-size:104% 104%;color:#1d1d1d;border-radius:10px;padding:10px;margin-top:10px;text-align:center;color:#fff;font-size:20px;cursor:pointer;display:flex;justify-content:center;align-items:center}.physton-paste-popup .paste-popup-main .paste-popup-body .paste-submit:hover{box-shadow:0 0 14px #4a54ff} +.lds-ripple{display:inline-block;position:relative;width:80px;height:80px}.lds-ripple div{position:absolute;border:4px solid #fff;opacity:1;border-radius:50%;animation:lds-ripple 1s cubic-bezier(0,.2,.8,1) infinite}.lds-ripple div:nth-child(2){animation-delay:-.5s}@keyframes lds-ripple{0%{top:36px;left:36px;width:0;height:0;opacity:0}4.9%{top:36px;left:36px;width:0;height:0;opacity:0}5%{top:36px;left:36px;width:0;height:0;opacity:1}to{top:0px;left:0px;width:72px;height:72px;opacity:0}}.physton-prompt-history[data-v-c1827645]{position:absolute;z-index:999;width:0;height:0;padding:0;box-shadow:0 0 3px #4a54ff;border-radius:6px 6px 4px 4px;background-color:#1e1e1ee6;transition:height .1s ease-in-out,width .1s ease-in-out;top:-9999px;left:-9999px}.physton-prompt-history .history-content[data-v-c1827645]{position:relative}.physton-prompt-history .history-detail[data-v-c1827645]{position:absolute;right:-404px;top:0;width:400px;z-index:1000;background:center center #4A54FF;background-image:linear-gradient(315deg,#6772FF 0,#00F9E5 100%);background-size:104% 104%;box-shadow:0 0 3px #4a54ff;border-radius:6px 6px 4px 4px;background-color:#1e1e1ee6;padding:10px;color:#1d1d1d}.physton-prompt-history .history-detail .history-item-tags[data-v-c1827645]{display:flex;justify-content:flex-start;align-items:flex-start;flex-wrap:wrap}.physton-prompt-history .history-detail .history-item-tags .history-item-tag[data-v-c1827645]{margin-right:5px;margin-bottom:5px}.physton-prompt-history .history-detail .history-item-tags .history-item-tag[data-v-c1827645]:last-child{margin-right:0}.physton-prompt-history .history-detail .history-item-tags .history-item-tag .item-tag-value[data-v-c1827645]{padding:4px 6px;border-radius:5px;background:rgba(30,30,30,.9);font-size:12px;color:#fff}.physton-prompt-history .history-detail .history-item-tags .history-item-tag .item-tag-local-value[data-v-c1827645]{font-size:12px;margin-top:2px}.physton-prompt-history .history-list[data-v-c1827645]{width:100%;height:100%;overflow:hidden;overflow-y:auto;position:relative}.physton-prompt-history .history-list .history-clear[data-v-c1827645]{background:rgba(30,30,30,.9);position:sticky;top:0;padding:10px;cursor:pointer;border-bottom:1px solid #4A54FF;color:#ff4a4a;text-align:center;display:flex;justify-content:center;align-items:center}.physton-prompt-history .history-list .history-clear[data-v-c1827645]:hover{border-bottom:1px solid #ff4a4a;background:center center #4A54FF}.physton-prompt-history .history-list .history-item[data-v-c1827645]{padding:6px 10px;border-bottom:1px solid #3c3c3c;cursor:pointer}.physton-prompt-history .history-list .history-item[data-v-c1827645]:hover{background:center center #4A54FF;background-image:linear-gradient(315deg,#6772FF 0,#00F9E5 100%);background-size:104% 104%}.physton-prompt-history .history-list .history-item:hover .history-item-prompt[data-v-c1827645]{overflow:visible;white-space:normal;color:#1d1d1d}.physton-prompt-history .history-list .history-item .history-item-header[data-v-c1827645]{display:flex;justify-content:space-between;align-items:center;margin-bottom:5px}.physton-prompt-history .history-list .history-item .history-item-header .item-header-left[data-v-c1827645],.physton-prompt-history .history-list .history-item .history-item-header .item-header-right[data-v-c1827645]{display:flex;justify-content:flex-start;align-items:center}.physton-prompt-history .history-list .history-item .history-item-header .item-header-left>div[data-v-c1827645],.physton-prompt-history .history-list .history-item .history-item-header .item-header-right>div[data-v-c1827645]{margin-right:10px;font-size:14px;color:#fff}.physton-prompt-history .history-list .history-item .history-item-header .item-header-left>div[data-v-c1827645]:last-child,.physton-prompt-history .history-list .history-item .history-item-header .item-header-right>div[data-v-c1827645]:last-child{margin-right:0}.physton-prompt-history .history-list .history-item .history-item-header .item-header-left .item-header-index[data-v-c1827645]{background:#4A54FF;padding:2px 0;width:32px;text-align:center}.physton-prompt-history .history-list .history-item .history-item-header .item-header-left .item-header-time[data-v-c1827645]{width:110px}.physton-prompt-history .history-list .history-item .history-item-header .item-header-left .item-header-name .header-name-input[data-v-c1827645]{background:transparent;border:1px solid #3c3c3c;height:20px;padding:0 4px;width:210px;font-size:12px;color:#00f9e5}.physton-prompt-history .history-list .history-item .history-item-header .item-header-left .item-header-name .header-name-input[data-v-c1827645]:focus{outline:none;border-color:#4a54ff}.physton-prompt-history .history-list .history-item .history-item-header .item-header-right[data-v-c1827645]{font-size:12px;color:#fff}.physton-prompt-history .history-list .history-item .history-item-prompt[data-v-c1827645]{margin-top:5px;font-size:14px;line-height:18px;color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.physton-prompt-history .history-empty[data-v-c1827645]{height:100%;display:flex;justify-content:center;align-items:center}.physton-prompt-history .history-empty span[data-v-c1827645]{font-size:14px;color:#999}.physton-prompt-favorite[data-v-75a6c294]{position:absolute;z-index:999;width:0;height:0;padding:0;box-shadow:0 0 3px #4a54ff;border-radius:6px 6px 4px 4px;background-color:#1e1e1ee6;transition:height .1s ease-in-out,width .1s ease-in-out;top:-9999px;left:-9999px}.physton-prompt-favorite .favorite-content[data-v-75a6c294]{position:relative}.physton-prompt-favorite .favorite-detail[data-v-75a6c294]{position:absolute;right:-404px;top:0;width:400px;z-index:1000;background:center center #4A54FF;background-image:linear-gradient(315deg,#6772FF 0,#00F9E5 100%);background-size:104% 104%;box-shadow:0 0 3px #4a54ff;border-radius:6px 6px 4px 4px;background-color:#1e1e1ee6;padding:10px;color:#1d1d1d}.physton-prompt-favorite .favorite-detail .favorite-item-tags[data-v-75a6c294]{display:flex;justify-content:flex-start;align-items:flex-start;flex-wrap:wrap}.physton-prompt-favorite .favorite-detail .favorite-item-tags .favorite-item-tag[data-v-75a6c294]{margin-right:5px;margin-bottom:5px}.physton-prompt-favorite .favorite-detail .favorite-item-tags .favorite-item-tag[data-v-75a6c294]:last-child{margin-right:0}.physton-prompt-favorite .favorite-detail .favorite-item-tags .favorite-item-tag .item-tag-value[data-v-75a6c294]{padding:4px 6px;border-radius:5px;background:rgba(30,30,30,.9);font-size:12px;color:#fff}.physton-prompt-favorite .favorite-detail .favorite-item-tags .favorite-item-tag .item-tag-local-value[data-v-75a6c294]{font-size:12px;margin-top:2px}.physton-prompt-favorite .favorite-list[data-v-75a6c294]{width:100%;height:100%;overflow:hidden;overflow-y:auto}.physton-prompt-favorite .favorite-list .favorite-item[data-v-75a6c294]{padding:6px 10px;border-bottom:1px solid #3c3c3c;cursor:pointer}.physton-prompt-favorite .favorite-list .favorite-item[data-v-75a6c294]:hover{background:center center #4A54FF;background-image:linear-gradient(315deg,#6772FF 0,#00F9E5 100%);background-size:104% 104%}.physton-prompt-favorite .favorite-list .favorite-item:hover .favorite-item-prompt[data-v-75a6c294]{overflow:visible;white-space:normal;color:#1d1d1d}.physton-prompt-favorite .favorite-list .favorite-item .favorite-item-header[data-v-75a6c294]{display:flex;justify-content:space-between;align-items:center;margin-bottom:5px}.physton-prompt-favorite .favorite-list .favorite-item .favorite-item-header .item-header-left[data-v-75a6c294],.physton-prompt-favorite .favorite-list .favorite-item .favorite-item-header .item-header-right[data-v-75a6c294]{display:flex;justify-content:flex-start;align-items:center}.physton-prompt-favorite .favorite-list .favorite-item .favorite-item-header .item-header-left>div[data-v-75a6c294],.physton-prompt-favorite .favorite-list .favorite-item .favorite-item-header .item-header-right>div[data-v-75a6c294]{margin-right:10px;font-size:14px;color:#fff}.physton-prompt-favorite .favorite-list .favorite-item .favorite-item-header .item-header-left>div[data-v-75a6c294]:last-child,.physton-prompt-favorite .favorite-list .favorite-item .favorite-item-header .item-header-right>div[data-v-75a6c294]:last-child{margin-right:0}.physton-prompt-favorite .favorite-list .favorite-item .favorite-item-header .item-header-left .item-header-index[data-v-75a6c294]{background:#4A54FF;padding:2px 0;width:32px;text-align:center}.physton-prompt-favorite .favorite-list .favorite-item .favorite-item-header .item-header-left .item-header-time[data-v-75a6c294]{width:110px}.physton-prompt-favorite .favorite-list .favorite-item .favorite-item-header .item-header-left .item-header-name .header-name-input[data-v-75a6c294]{background:transparent;border:1px solid #3c3c3c;height:20px;padding:0 4px;width:210px;font-size:12px;color:#00f9e5}.physton-prompt-favorite .favorite-list .favorite-item .favorite-item-header .item-header-left .item-header-name .header-name-input[data-v-75a6c294]:focus{outline:none;border-color:#4a54ff}.physton-prompt-favorite .favorite-list .favorite-item .favorite-item-header .item-header-right[data-v-75a6c294]{font-size:12px;color:#fff}.physton-prompt-favorite .favorite-list .favorite-item .favorite-item-prompt[data-v-75a6c294]{margin-top:5px;font-size:14px;line-height:18px;color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.physton-prompt-favorite .favorite-empty[data-v-75a6c294]{height:100%;display:flex;justify-content:center;align-items:center}.physton-prompt-favorite .favorite-empty span[data-v-75a6c294]{font-size:14px;color:#999}.physton-prompt{border:1px solid var(--input-border-color);padding:0 10px;margin:5px 0}.physton-prompt div{line-height:1}.physton-prompt svg{display:inline-block}.physton-prompt .icon-svg{display:inline-block;line-height:1}.physton-prompt .prompt-header{margin:5px 0 10px;display:flex;justify-content:flex-start;align-items:center;border-bottom:1px dashed var(--input-border-color);flex-wrap:wrap}.physton-prompt .prompt-header>*{margin-right:10px;margin-bottom:10px}.physton-prompt .prompt-header>*:last-child{margin-right:0}.physton-prompt .prompt-header .prompt-header-title{font-weight:700;font-size:1rem}.physton-prompt .prompt-header .prompt-header-counter{font-size:.9rem}.physton-prompt .prompt-header .prompt-header-break{flex-basis:100%;height:0;margin-bottom:0}.physton-prompt .prompt-header .prompt-header-extend{margin-right:10px;display:flex;justify-content:flex-start;align-items:center}.physton-prompt .prompt-header .prompt-header-extend:last-child{margin-right:0}.physton-prompt .prompt-header .prompt-header-extend .extend-title{font-size:.8rem;margin-right:5px}.physton-prompt .prompt-header .prompt-header-extend .extend-content select,.physton-prompt .prompt-header .prompt-header-extend .extend-content .select-btn{padding:0 10px 0 5px;font-size:.8rem;appearance:auto;border:var(--button-border-width) solid var(--body-text-color);background:var(--body-background-fill);color:var(--body-text-color);height:20px;line-height:20px}.physton-prompt .prompt-header .prompt-header-extend .extend-content select:hover,.physton-prompt .prompt-header .prompt-header-extend .extend-content .select-btn:hover{border-color:var(--button-primary-border-color)}.physton-prompt .prompt-header .prompt-header-extend .extend-content .select-btn{cursor:pointer;padding:0 10px}.physton-prompt .prompt-header .prompt-header-extend .extend-content .select-btn:hover{background:var(--button-primary-background-fill-hover);border-color:var(--button-primary-border-color-hover)}.physton-prompt .prompt-header .prompt-header-extend .extend-content .extend-btn-group{display:flex;justify-content:center;align-items:center;color:var(--button-secondary-text-color);background:var(--button-secondary-background-fill);border:1px solid var(--button-secondary-border-color);padding:0;border-radius:4px}.physton-prompt .prompt-header .prompt-header-extend .extend-content .extend-btn-group .extend-btn-item{cursor:pointer;border-left:1px solid var(--button-secondary-border-color);height:26px;width:30px;display:flex;justify-content:center;align-items:center}.physton-prompt .prompt-header .prompt-header-extend .extend-content .extend-btn-group .extend-btn-item:first-child{border-left:0;margin-left:0}.physton-prompt .prompt-header .prompt-header-extend .extend-content .gradio-button,.physton-prompt .prompt-header .prompt-header-extend .extend-content a{height:26px!important;min-height:26px!important;max-height:26px!important}.physton-prompt .prompt-header .prompt-header-extend .extend-content .gradio-checkbox{cursor:pointer}.physton-prompt .prompt-header .prompt-header-extend .extend-content input[type=checkbox]{--ring-color: transparent;position:relative;box-shadow:var(--input-shadow);border:1px solid var(--checkbox-border-color);border-radius:var(--checkbox-border-radius);background-color:var(--checkbox-background-color);line-height:var(--line-sm);width:16px;height:16px}.physton-prompt .prompt-header .prompt-header-extend .extend-content input[type=checkbox]:checked{border-color:var(--checkbox-border-color-selected);background-image:var(--checkbox-check);background-color:var(--checkbox-background-color-selected)}.physton-prompt .prompt-tags{display:flex;flex-wrap:wrap;justify-content:flex-start;align-items:flex-start}.physton-prompt .prompt-tags>*{margin-right:12px;margin-bottom:8px}.physton-prompt .prompt-tags>*:last-child{margin-right:0}.physton-prompt .prompt-tags.droping .btn-tag-extend{display:none!important}.physton-prompt .prompt-tags input[type=text],.physton-prompt .prompt-tags input[type=number]{display:inline-block;overflow-y:scroll;height:24px;padding:4px;border:1px solid #02b7fd;appearance:none;background-color:transparent;font-size:.9rem;line-height:.9rem;font-family:inherit;font-weight:inherit;border-radius:4px}.physton-prompt .prompt-tags input[type=text]:focus,.physton-prompt .prompt-tags input[type=number]:focus{box-shadow:var(--input-shadow-focus);border-color:var(--input-border-color-focus)}.physton-prompt .prompt-tags .prompt-tag{display:inline-flex;align-items:center}.physton-prompt .prompt-tags .prompt-tag.disabled{opacity:.5}.physton-prompt .prompt-tags .prompt-tag .prompt-tag-main{display:flex;justify-content:flex-start;align-items:flex-start;position:relative}.physton-prompt .prompt-tags .prompt-tag .prompt-tag-main:hover .prompt-tag-edit,.physton-prompt .prompt-tags .prompt-tag .prompt-tag-main:hover .btn-tag-extend{box-shadow:0 0 3px #4a54ff}.physton-prompt .prompt-tags .prompt-tag .prompt-tag-main:hover .btn-tag-extend{display:flex}.physton-prompt .prompt-tags .prompt-tag .prompt-tag-main .prompt-tag-edit{display:flex;justify-content:center;align-items:center;position:relative;border-radius:4px}.physton-prompt .prompt-tags .prompt-tag .prompt-tag-main .prompt-tag-edit .prompt-tag-value{padding:4px!important;font-size:.9rem!important;height:24px!important;min-height:unset!important;border-radius:4px 0 0 4px!important}.physton-prompt .prompt-tags .prompt-tag .prompt-tag-main .prompt-tag-edit .prompt-tag-value .weight-character{color:#d81e06}.physton-prompt .prompt-tags .prompt-tag .prompt-tag-main .prompt-tag-edit .input-tag-edit{border-radius:4px 0 0 4px!important}.physton-prompt .prompt-tags .prompt-tag .prompt-tag-main .prompt-tag-edit .btn-tag-delete{display:flex;justify-content:center;align-items:center;cursor:pointer;border:var(--button-border-width) solid var(--button-secondary-border-color);background:var(--button-secondary-background-fill);padding:0;width:16px;height:24px;border-radius:0 4px 4px 0}.physton-prompt .prompt-tags .prompt-tag .prompt-tag-main .prompt-tag-edit .btn-tag-delete:hover{background:#d81e06}.physton-prompt .prompt-tags .prompt-tag .prompt-tag-main .prompt-tag-edit .btn-tag-delete:hover svg{fill:#fff!important}.physton-prompt .prompt-tags .prompt-tag .prompt-tag-main .btn-tag-extend{display:none;justify-content:flex-start;align-items:center;position:absolute;top:-32px;left:0;z-index:100;padding:0;box-shadow:0 0 3px #4a54ff;background:center center #4A54FF;background-image:linear-gradient(315deg,#6772FF 0,#00F9E5 100%);background-size:104% 104%;border-radius:4px;overflow:hidden}.physton-prompt .prompt-tags .prompt-tag .prompt-tag-main .btn-tag-extend>*{height:32px;width:32px;border:0;border-radius:0;padding:5px;min-width:auto;font-size:.9rem;min-height:auto;background:transparent;color:#fff;border-right:1px solid rgba(255,255,255,.2)}.physton-prompt .prompt-tags .prompt-tag .prompt-tag-main .btn-tag-extend>*:last-child{border-right:0}.physton-prompt .prompt-tags .prompt-tag .prompt-tag-main .btn-tag-extend>*:hover{background:rgba(255,255,255,.2)}.physton-prompt .prompt-tags .prompt-tag .prompt-tag-main .btn-tag-extend>input{width:54px;border:0}.physton-prompt .prompt-tags .prompt-tag .prompt-tag-main .btn-tag-extend input[type=number]::-webkit-inner-spin-button,.physton-prompt .prompt-tags .prompt-tag .prompt-tag-main .btn-tag-extend input[type=number]::-webkit-outer-spin-button{opacity:1}.physton-prompt .prompt-tags .prompt-tag .prompt-local-language{margin-top:2px;display:flex;justify-content:flex-start;align-items:center}.physton-prompt .prompt-tags .prompt-tag .prompt-local-language .translate-to-local{cursor:pointer}.physton-prompt .prompt-tags .prompt-tag .prompt-local-language .local-language{font-size:.8rem;color:var(--body-text-color-subdued);margin-left:2px}.physton-prompt .prompt-tags .input-tag-append{min-width:200px}.physton-prompt .prompt-tags .gradio-button{max-width:none!important;width:auto!important;padding:4px 12px!important}.physton-prompt-translate-setting{position:fixed;top:0;left:0;width:100%;height:100%;z-index:2000;display:flex;justify-content:center;align-items:center;background:rgba(0,0,0,.5)}.physton-prompt-translate-setting .translate-setting-main{width:700px;height:auto;padding:20px;margin:0;box-shadow:0 0 3px #4a54ff;border-radius:6px 6px 4px 4px;background-color:#1e1e1ee6;transition:height .1s ease-in-out,width .1s ease-in-out;color:#fff}.physton-prompt-translate-setting .translate-setting-main .setting-line{display:flex;justify-content:flex-start;align-items:flex-start;margin-bottom:10px}.physton-prompt-translate-setting .translate-setting-main .setting-line .line-title{font-size:16px;font-weight:700;color:#fff;width:150px;line-height:24px}.physton-prompt-translate-setting .translate-setting-main .setting-line .line-content{flex:1;font-size:14px;color:#fff}.physton-prompt-translate-setting .translate-setting-main .setting-line .line-content span{font-size:14px;color:#fff}.physton-prompt-translate-setting .translate-setting-main .setting-line .line-content .api-name{display:inline-block;background:center center #4A54FF;background-image:linear-gradient(315deg,#6772FF 0,#00F9E5 100%);background-size:104% 104%;color:#1d1d1d;border-radius:2px;padding:4px}.physton-prompt-translate-setting .translate-setting-main .setting-line .line-content input,.physton-prompt-translate-setting .translate-setting-main .setting-line .line-content textarea,.physton-prompt-translate-setting .translate-setting-main .setting-line .line-content select{background:rgba(30,30,30,.9);border:1px solid #3c3c3c;padding:4px;width:100%;font-size:14px;color:#fff;resize:none}.physton-prompt-translate-setting .translate-setting-main .setting-line .line-content input:focus,.physton-prompt-translate-setting .translate-setting-main .setting-line .line-content textarea:focus,.physton-prompt-translate-setting .translate-setting-main .setting-line .line-content select:focus{outline:none;border-color:#4a54ff}.physton-prompt-translate-setting .translate-setting-main .setting-line .line-content .test-input{height:150px}.physton-prompt-translate-setting .translate-setting-main .setting-line .line-content .test-btn{cursor:pointer;padding:0 40px;height:40px;line-height:40px;color:#fff;background:#108bb5;border-radius:4px;display:inline-block}.physton-prompt-translate-setting .translate-setting-main .setting-line .line-content .translate-error{color:#ff4a4a;font-size:14px;margin-bottom:10px}.physton-prompt-translate-setting .translate-setting-main .setting-line .line-content .help-list{font-size:14px;line-height:24px}.physton-prompt-translate-setting .translate-setting-main .setting-line .line-content .help-list .help-item{margin-bottom:10px}.physton-prompt-translate-setting .translate-setting-main .setting-line .line-content .help-list .help-item:last-child{margin-bottom:0}.physton-prompt-translate-setting .translate-setting-main .setting-line .line-content .help-list .help-item a{color:#fff;text-decoration:none;font-size:14px;border-bottom:1px solid #fff;padding-bottom:4px}.physton-prompt-translate-setting .translate-setting-main .setting-line .line-content .help-list .help-item a:hover{color:#108bb5;border-bottom-color:#108bb5}.physton-prompt-translate-setting .translate-setting-main .setting-btns{display:flex;justify-content:flex-end;align-items:center;margin-top:10px}.physton-prompt-translate-setting .translate-setting-main .setting-btns .translate-save{cursor:pointer;padding:0 40px;height:40px;line-height:40px;color:#fff;background:center center #4A54FF;background-image:linear-gradient(315deg,#6772FF 0,#00F9E5 100%);background-size:104% 104%;border-radius:4px;display:inline-block;margin-right:10px}.physton-prompt-translate-setting .translate-setting-main .setting-btns .translate-close{cursor:pointer;padding:0 40px;height:40px;line-height:40px;color:#4a54ff;background:transparent;border:1px solid #4A54FF;border-radius:4px;display:inline-block}.physton-prompt-select-language{position:fixed;z-index:2000;margin-top:5px;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center;background:rgba(0,0,0,.5)}.physton-prompt-select-language .language-main{height:70%;position:relative}.physton-prompt-select-language .language-main .language-close{display:block;padding:4px;position:absolute;right:-14px;top:-14px;background:#ffffffe6;border-radius:50%;box-shadow:0 1px 5px #d81e06;cursor:pointer;z-index:1}.physton-prompt-select-language .language-main .language-close:hover{background:#d81e06}.physton-prompt-select-language .language-main .language-list{height:100%;overflow:hidden;overflow-y:scroll;display:block;box-shadow:0 0 3px #4a54ff;border-radius:6px 6px 4px 4px;background-color:#1e1e1ee6;transition:height .1s ease-in-out,width .1s ease-in-out;position:relative}.physton-prompt-select-language .language-main .language-list .language-item{color:#fff;font-size:14px;padding:10px;cursor:pointer}.physton-prompt-select-language .language-main .language-list .language-item:hover,.physton-prompt-select-language .language-main .language-list .language-item.selected{background:center center #4A54FF;background-image:linear-gradient(315deg,#6772FF 0,#00F9E5 100%);background-size:104% 104%}.toast-title{font-weight:700}.toast-message{-ms-word-wrap:break-word;word-wrap:break-word}.toast-message a,.toast-message label{color:#fff}.toast-message a:hover{color:#ccc;text-decoration:none}.toast-close-button{position:relative;right:-.3em;top:-.3em;float:right;font-size:20px;font-weight:700;color:#fff;-webkit-text-shadow:0 1px 0 #fff;text-shadow:0 1px 0 #fff;opacity:.8;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=80);filter:alpha(opacity=80);line-height:1}.toast-close-button:focus,.toast-close-button:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.4;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=40);filter:alpha(opacity=40)}.rtl .toast-close-button{left:-.3em;float:left;right:.3em}button.toast-close-button{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none}.toast-top-center{top:0;right:0;width:100%}.toast-bottom-center{bottom:0;right:0;width:100%}.toast-top-full-width{top:0;right:0;width:100%}.toast-bottom-full-width{bottom:0;right:0;width:100%}.toast-top-left{top:12px;left:12px}.toast-top-right{top:12px;right:12px}.toast-bottom-right{right:12px;bottom:12px}.toast-bottom-left{bottom:12px;left:12px}#toast-container{position:fixed;z-index:999999;pointer-events:none}#toast-container *{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}#toast-container>div{position:relative;pointer-events:auto;overflow:hidden;margin:0 0 6px;padding:15px 15px 15px 50px;width:300px;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;background-position:15px center;background-repeat:no-repeat;-moz-box-shadow:0 0 12px #999;-webkit-box-shadow:0 0 12px #999;box-shadow:0 0 12px #999;color:#fff;opacity:.8;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=80);filter:alpha(opacity=80)}#toast-container>div.rtl{direction:rtl;padding:15px 50px 15px 15px;background-position:right 15px center}#toast-container>div:hover{-moz-box-shadow:0 0 12px #000;-webkit-box-shadow:0 0 12px #000;box-shadow:0 0 12px #000;opacity:1;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100);filter:alpha(opacity=100);cursor:pointer}#toast-container>.toast-info{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGwSURBVEhLtZa9SgNBEMc9sUxxRcoUKSzSWIhXpFMhhYWFhaBg4yPYiWCXZxBLERsLRS3EQkEfwCKdjWJAwSKCgoKCcudv4O5YLrt7EzgXhiU3/4+b2ckmwVjJSpKkQ6wAi4gwhT+z3wRBcEz0yjSseUTrcRyfsHsXmD0AmbHOC9Ii8VImnuXBPglHpQ5wwSVM7sNnTG7Za4JwDdCjxyAiH3nyA2mtaTJufiDZ5dCaqlItILh1NHatfN5skvjx9Z38m69CgzuXmZgVrPIGE763Jx9qKsRozWYw6xOHdER+nn2KkO+Bb+UV5CBN6WC6QtBgbRVozrahAbmm6HtUsgtPC19tFdxXZYBOfkbmFJ1VaHA1VAHjd0pp70oTZzvR+EVrx2Ygfdsq6eu55BHYR8hlcki+n+kERUFG8BrA0BwjeAv2M8WLQBtcy+SD6fNsmnB3AlBLrgTtVW1c2QN4bVWLATaIS60J2Du5y1TiJgjSBvFVZgTmwCU+dAZFoPxGEEs8nyHC9Bwe2GvEJv2WXZb0vjdyFT4Cxk3e/kIqlOGoVLwwPevpYHT+00T+hWwXDf4AJAOUqWcDhbwAAAAASUVORK5CYII=)!important}#toast-container>.toast-error{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVEhLrZa/SgNBEMZzh0WKCClSCKaIYOED+AAKeQQLG8HWztLCImBrYadgIdY+gIKNYkBFSwu7CAoqCgkkoGBI/E28PdbLZmeDLgzZzcx83/zZ2SSXC1j9fr+I1Hq93g2yxH4iwM1vkoBWAdxCmpzTxfkN2RcyZNaHFIkSo10+8kgxkXIURV5HGxTmFuc75B2RfQkpxHG8aAgaAFa0tAHqYFfQ7Iwe2yhODk8+J4C7yAoRTWI3w/4klGRgR4lO7Rpn9+gvMyWp+uxFh8+H+ARlgN1nJuJuQAYvNkEnwGFck18Er4q3egEc/oO+mhLdKgRyhdNFiacC0rlOCbhNVz4H9FnAYgDBvU3QIioZlJFLJtsoHYRDfiZoUyIxqCtRpVlANq0EU4dApjrtgezPFad5S19Wgjkc0hNVnuF4HjVA6C7QrSIbylB+oZe3aHgBsqlNqKYH48jXyJKMuAbiyVJ8KzaB3eRc0pg9VwQ4niFryI68qiOi3AbjwdsfnAtk0bCjTLJKr6mrD9g8iq/S/B81hguOMlQTnVyG40wAcjnmgsCNESDrjme7wfftP4P7SP4N3CJZdvzoNyGq2c/HWOXJGsvVg+RA/k2MC/wN6I2YA2Pt8GkAAAAASUVORK5CYII=)!important}#toast-container>.toast-success{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADsSURBVEhLY2AYBfQMgf///3P8+/evAIgvA/FsIF+BavYDDWMBGroaSMMBiE8VC7AZDrIFaMFnii3AZTjUgsUUWUDA8OdAH6iQbQEhw4HyGsPEcKBXBIC4ARhex4G4BsjmweU1soIFaGg/WtoFZRIZdEvIMhxkCCjXIVsATV6gFGACs4Rsw0EGgIIH3QJYJgHSARQZDrWAB+jawzgs+Q2UO49D7jnRSRGoEFRILcdmEMWGI0cm0JJ2QpYA1RDvcmzJEWhABhD/pqrL0S0CWuABKgnRki9lLseS7g2AlqwHWQSKH4oKLrILpRGhEQCw2LiRUIa4lwAAAABJRU5ErkJggg==)!important}#toast-container>.toast-warning{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGYSURBVEhL5ZSvTsNQFMbXZGICMYGYmJhAQIJAICYQPAACiSDB8AiICQQJT4CqQEwgJvYASAQCiZiYmJhAIBATCARJy+9rTsldd8sKu1M0+dLb057v6/lbq/2rK0mS/TRNj9cWNAKPYIJII7gIxCcQ51cvqID+GIEX8ASG4B1bK5gIZFeQfoJdEXOfgX4QAQg7kH2A65yQ87lyxb27sggkAzAuFhbbg1K2kgCkB1bVwyIR9m2L7PRPIhDUIXgGtyKw575yz3lTNs6X4JXnjV+LKM/m3MydnTbtOKIjtz6VhCBq4vSm3ncdrD2lk0VgUXSVKjVDJXJzijW1RQdsU7F77He8u68koNZTz8Oz5yGa6J3H3lZ0xYgXBK2QymlWWA+RWnYhskLBv2vmE+hBMCtbA7KX5drWyRT/2JsqZ2IvfB9Y4bWDNMFbJRFmC9E74SoS0CqulwjkC0+5bpcV1CZ8NMej4pjy0U+doDQsGyo1hzVJttIjhQ7GnBtRFN1UarUlH8F3xict+HY07rEzoUGPlWcjRFRr4/gChZgc3ZL2d8oAAAAASUVORK5CYII=)!important}#toast-container.toast-bottom-center>div,#toast-container.toast-top-center>div{width:300px;margin-left:auto;margin-right:auto}#toast-container.toast-bottom-full-width>div,#toast-container.toast-top-full-width>div{width:96%;margin-left:auto;margin-right:auto}.toast{background-color:#030303}.toast-success{background-color:#51a351}.toast-error{background-color:#bd362f}.toast-info{background-color:#2f96b4}.toast-warning{background-color:#f89406}.toast-progress{position:absolute;left:0;bottom:0;height:4px;background-color:#000;opacity:.4;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=40);filter:alpha(opacity=40)}@media all and (max-width:240px){#toast-container>div{padding:8px 8px 8px 50px;width:11em}#toast-container>div.rtl{padding:8px 50px 8px 8px}#toast-container .toast-close-button{right:-.2em;top:-.2em}#toast-container .rtl .toast-close-button{left:-.2em;right:.2em}}@media all and (min-width:241px) and (max-width:480px){#toast-container>div{padding:8px 8px 8px 50px;width:18em}#toast-container>div.rtl{padding:8px 50px 8px 8px}#toast-container .toast-close-button{right:-.2em;top:-.2em}#toast-container .rtl .toast-close-button{left:-.2em;right:.2em}}@media all and (min-width:481px) and (max-width:768px){#toast-container>div{padding:15px 15px 15px 50px;width:25em}#toast-container>div.rtl{padding:15px 50px 15px 15px}}.tippy-box[data-animation=fade][data-state=hidden]{opacity:0}[data-tippy-root]{max-width:calc(100vw - 10px)}.tippy-box{position:relative;background-color:#333;color:#fff;border-radius:4px;font-size:14px;line-height:1.4;white-space:normal;outline:0;transition-property:transform,visibility,opacity}.tippy-box[data-placement^=top]>.tippy-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-arrow:before{bottom:-7px;left:0;border-width:8px 8px 0;border-top-color:initial;transform-origin:center top}.tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{top:-7px;left:0;border-width:0 8px 8px;border-bottom-color:initial;transform-origin:center bottom}.tippy-box[data-placement^=left]>.tippy-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-arrow:before{border-width:8px 0 8px 8px;border-left-color:initial;right:-7px;transform-origin:center left}.tippy-box[data-placement^=right]>.tippy-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-arrow:before{left:-7px;border-width:8px 8px 8px 0;border-right-color:initial;transform-origin:center right}.tippy-box[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-arrow{width:16px;height:16px;color:#333}.tippy-arrow:before{content:"";position:absolute;border-color:transparent;border-style:solid}.tippy-content{position:relative;padding:5px 9px;z-index:1}.hover-scale-120{animation:all .3s}.hover-scale-120:hover{transform:scale(1.2)}.hover-scale-140{animation:all .3s}.hover-scale-140:hover{transform:scale(1.4)}.physton-paste-popup{position:fixed;top:0;left:0;width:100%;height:100%;z-index:2000;display:flex;justify-content:center;align-items:center;background:rgba(0,0,0,.5)}.physton-paste-popup .paste-popup-main{width:700px;height:auto;padding:20px;margin:0;box-shadow:0 0 3px #4a54ff;border-radius:6px 6px 4px 4px;background-color:#1e1e1ee6;transition:height .1s ease-in-out,width .1s ease-in-out;color:#fff;position:relative}.physton-paste-popup .paste-popup-main .paste-popup-close{display:block;padding:4px;position:absolute;right:-14px;top:-14px;background:#ffffffe6;border-radius:50%;box-shadow:0 1px 5px #d81e06;cursor:pointer}.physton-paste-popup .paste-popup-main .paste-popup-close:hover{background:#d81e06}.physton-paste-popup .paste-popup-main .paste-popup-title{font-size:14px;font-weight:700;margin-bottom:10px;word-break:keep-all;white-space:nowrap;overflow:hidden}.physton-paste-popup .paste-popup-main .paste-popup-body .paste-content{background:rgba(30,30,30,.9);border:1px solid #3c3c3c;padding:4px;width:100%;font-size:14px;color:#fff;resize:none;height:400px;box-sizing:border-box}.physton-paste-popup .paste-popup-main .paste-popup-body .paste-content:focus{outline:none;border-color:#4a54ff}.physton-paste-popup .paste-popup-main .paste-popup-body .paste-submit{background:center center #4A54FF;background-image:linear-gradient(315deg,#6772FF 0,#00F9E5 100%);background-size:104% 104%;color:#1d1d1d;border-radius:10px;padding:10px;margin-top:10px;text-align:center;color:#fff;font-size:20px;cursor:pointer;display:flex;justify-content:center;align-items:center}.physton-paste-popup .paste-popup-main .paste-popup-body .paste-submit:hover{box-shadow:0 0 14px #4a54ff} diff --git a/tests/translate.py b/tests/translate.py new file mode 100644 index 0000000..ebdfc1a --- /dev/null +++ b/tests/translate.py @@ -0,0 +1,82 @@ +import os +import sys +sys.path.append(os.path.join(os.path.dirname(__file__), "..")) +import time +import json +from scripts.translate import translate +from scripts.get_i18n import get_i18n +from scripts.get_translate_apis import get_translate_apis +from scripts.storage import storage + +i18n = get_i18n() +st = storage() +text = 'Hello World, I am a boy' + +tested_file = os.path.join(os.path.dirname(__file__), 'tested.json') +tested = [] +if os.path.exists(tested_file): + with open(tested_file, 'r') as f: + tested = json.load(f) + +def is_tested(api_key, from_lang, to_lang): + for item in tested: + if item['api'] == api_key and item['from'] == from_lang and item['to'] == to_lang: + return item['translated_text'] + return False + +def add_tested(api_key, from_lang, to_lang, translated_text): + tested.append({ + 'api': api_key, + 'from': from_lang, + 'to': to_lang, + 'translated_text': translated_text + }) + with open(tested_file, 'w') as f: + json.dump(tested, f, indent=4, ensure_ascii=False) + +def test_api(api): + print(f"开始测试 {api['name']}") + config_name = 'translate_api.' + api['key'] + config = st.get(config_name) + if not config: + config = {} + for lang_code in api['support']: + if lang_code == 'en_US' or lang_code == 'en_GB': + continue + if not api['support'][lang_code]: + continue + if api['key'] == 'openai' or api['key'] == 'deepl': + continue + + translated_text = is_tested(api['key'], 'en_US', lang_code) + if not translated_text: + print(f" 测试 en_US -> {lang_code}", end=' ') + result = translate(text, from_lang='en_US', to_lang=lang_code, api=api['key'],api_config=config) + if not result['success']: + print(f"失败: {result['message']}") + time.sleep(0.5) + # raise Exception(f"测试 {api['name']} 失败:{result['message']}") + continue + add_tested(api['key'], 'en_US', lang_code, result['translated_text']) + translated_text = result['translated_text'] + print(f" 结果: {translated_text}") + time.sleep(0.5) + + if not is_tested(api['key'], lang_code, 'en_US'): + print(f" 测试 {lang_code} -> en_US", end=' ') + result = translate(translated_text, from_lang=lang_code, to_lang='en_US', api=api['key'],api_config=config) + if not result['success']: + print(f"失败: {result['message']}") + time.sleep(0.5) + # raise Exception(f"测试 {api['name']} 失败:{result['message']}") + continue + translated_text = result['translated_text'] + add_tested(api['key'], lang_code, 'en_US', translated_text) + print(f" 结果: {translated_text}") + time.sleep(0.5) + +apis = get_translate_apis() +for group in apis['apis']: + for api in group['children']: + test_api(api) + diff --git a/translate_apis.backup.json b/translate_apis.backup.json new file mode 100644 index 0000000..dbd0d80 --- /dev/null +++ b/translate_apis.backup.json @@ -0,0 +1,620 @@ +[ + { + "key": "deepl_free", + "name": "[Free] DeepL, Germany", + "type": "translators", + "translator": "deepl", + "support": { + "bg_BG": "bg", + "cs_CZ": "cs", + "da_DK": "da", + "de_DE": "de", + "el_GR": "el", + "en_GB": "en", + "en_US": "en", + "es_ES": "es", + "et_EE": "et", + "fi_FI": "fi", + "fr_FR": "fr", + "hu_HU": "hu", + "id_ID": "id", + "it_IT": "it", + "ja_JP": "ja", + "ko_KR": "ko", + "lt_LT": "lt", + "lv_LV": "lv", + "no_NO": "nb", + "nl_NL": "nl", + "pl_PL": "pl", + "pt_BR": "pt", + "pt_PT": "pt", + "ro_RO": "ro", + "ru_RU": "ru", + "sk_SK": "sk", + "sl_SI": "sl", + "sv_SE": "sv", + "tr_TR": "tr", + "uk_UA": "uk", + "zh_CN": "zh" + }, + "help": [ + { + "title": "DeepL - Deepl, Germany", + "url": "https://www.deepl.com/translator" + }, + { + "title": "[github]translators", + "url": "https://github.com/UlionTse/translators" + } + ] + }, + { + "key": "myMemory_free", + "name": "[Free] MyMemory, Italy", + "type": "translators", + "translator": "myMemory", + "support": { + "zh_CN": "zh-CN", + "zh_HK": "zh-TW", + "zh_TW": "zh-TW", + "en_US": "en-GB", + "en_GB": "en-GB", + "af_ZA": "af-ZA", + "sq_AL": "sq-AL", + "am_ET": "am-ET", + "ar_SA": "ar-SA", + "hy_AM": "hy-AM", + "as_IN": false, + "az_Latn_AZ": "az-AZ", + "bn_BD": "bn-IN", + "ba_RU": false, + "eu_ES": "eu-ES", + "bs_Latn_BA": "bs-BA", + "bg_BG": "bg-BG", + "ca_ES": "ca-ES", + "hr_HR": "hr-HR", + "cs_CZ": "cs-CZ", + "da_DK": "da-DK", + "prs_AF": false, + "dv_MV": "dv-MV", + "nl_NL": "nl-NL", + "et_EE": "et-EE", + "fo_FO": "fo-FO", + "fj_FJ": false, + "fil_PH": false, + "fi_FI": "fi-FI", + "fr_FR": "fr-FR", + "fr_CA": "fr-FR", + "gl_ES": "gl-ES", + "ka_GE": "ka-GE", + "de_DE": "de-DE", + "el_GR": "el-GR", + "gu_IN": "gu-IN", + "ht_HT": "ht-HT", + "he_IL": "he-IL", + "hi_IN": "hi-IN", + "mww_Latn_US": false, + "hu_HU": "hu-HU", + "is_IS": "is-IS", + "id_ID": "id-ID", + "ikt_CA": false, + "iu_CA": false, + "iu_Latn_CA": false, + "ga_IE": "ga-IE", + "it_IT": "it-IT", + "ja_JP": "ja-JP", + "kn_IN": "kn-IN", + "kk_KZ": "kk-KZ", + "km_KH": "km-KM", + "tlh_Latn": false, + "tlh_Piqd": false, + "ko_KR": "ko-KR", + "ku_Arab_IQ": "ckb-IQ", + "ku_Latn_TR": "ku-TR", + "ky_KG": "ky-KG", + "lo_LA": "lo-LA", + "lv_LV": "lv-LV", + "lt_LT": "lt-LT", + "mk_MK": "mk-MK", + "mg_MG": "mg-MG", + "ms_Latn_MY": "ms-MY", + "ml_IN": false, + "mt_MT": "mt-MT", + "mi_NZ": "mi-NZ", + "mr_IN": false, + "mn_Cyrl_MN": "mn-MN", + "mn_Mong_CN": "mn-MN", + "my_MM": "my-MM", + "ne_NP": "ne-NP", + "no_NO": "no-NO", + "or_IN": false, + "ps_AF": "ps-PK", + "fa_IR": "fa-IR", + "pl_PL": "pl-PL", + "pt_BR": "pt-PT", + "pt_PT": "pt-PT", + "pa_Guru_IN": "pa-IN", + "otq_Latn_MX": false, + "ro_RO": "ro-RO", + "ru_RU": "ru-RU", + "sm_Latn_WS": "sm-WS", + "sr_Cyrl_RS": "sr-RS", + "sr_Latn_RS": "sr-RS", + "sk_SK": "sk-SK", + "sl_SI": "sl-SI", + "so_SO": "so-SO", + "es_ES": "es-ES", + "sw_KE": "sw-SZ", + "sv_SE": "sv-SE", + "ty_PF": false, + "ta_IN": "ta-LK", + "tt_Latn_RU": false, + "te_IN": "te-IN", + "th_TH": "th-TH", + "bo_CN": "bo-CN", + "ti_ET": "ti-TI", + "to_TO": "to-TO", + "tr_TR": "tr-TR", + "uk_UA": "uk-UA", + "ur_PK": "ur-PK", + "ug_Arab_CN": false, + "uz_Latn_UZ": "uz-UZ", + "vi_VN": "vi-VN", + "cy_GB": "cy-GB", + "yua_MX": false, + "zu_ZA": "zu-ZA" + }, + "help": [ + { + "title": "MyMemory - Translated, Italy", + "url": "https://mymemory.translated.net/" + }, + { + "title": "[github]translators", + "url": "https://github.com/UlionTse/translators" + } + ] + }, + { + "key": "yandex_free", + "name": "[Free] Yandex, Russia", + "type": "translators", + "translator": "yandex", + "support": { + "zh_CN": "zh", + "zh_HK": false, + "zh_TW": false, + "en_US": "en", + "en_GB": "en", + "af_ZA": "af", + "sq_AL": "sq", + "am_ET": "am", + "ar_SA": "ar", + "hy_AM": "hy", + "as_IN": false, + "az_Latn_AZ": "az", + "bn_BD": "bn", + "ba_RU": "ba", + "eu_ES": "eu", + "bs_Latn_BA": "bs", + "bg_BG": "bg", + "ca_ES": "ca", + "hr_HR": "hr", + "cs_CZ": "cs", + "da_DK": "da", + "prs_AF": false, + "dv_MV": false, + "nl_NL": "nl", + "et_EE": "et", + "fo_FO": false, + "fj_FJ": false, + "fil_PH": false, + "fi_FI": "fi", + "fr_FR": "fr", + "fr_CA": false, + "gl_ES": "gl", + "ka_GE": "ka", + "de_DE": "de", + "el_GR": "el", + "gu_IN": "gu", + "ht_HT": "ht", + "he_IL": "he", + "hi_IN": "hi", + "mww_Latn_US": false, + "hu_HU": "hu", + "is_IS": "is", + "id_ID": "id", + "ikt_CA": false, + "iu_CA": false, + "iu_Latn_CA": false, + "ga_IE": "ga", + "it_IT": "it", + "ja_JP": "ja", + "kn_IN": "kn", + "kk_KZ": "kk", + "km_KH": "km", + "tlh_Latn": false, + "tlh_Piqd": false, + "ko_KR": "ko", + "ku_Arab_IQ": false, + "ku_Latn_TR": false, + "ky_KG": "ky", + "lo_LA": "lo", + "lv_LV": "lv", + "lt_LT": "lt", + "mk_MK": "mk", + "mg_MG": "mg", + "ms_Latn_MY": "ms", + "ml_IN": "ml", + "mt_MT": "mt", + "mi_NZ": "mi", + "mr_IN": "mr", + "mn_Cyrl_MN": "mn", + "mn_Mong_CN": "mn", + "my_MM": "my", + "ne_NP": "ne", + "no_NO": "no", + "or_IN": false, + "ps_AF": false, + "fa_IR": "fa", + "pl_PL": "pl", + "pt_BR": "pt-BR", + "pt_PT": "pt", + "pa_Guru_IN": "pa", + "otq_Latn_MX": false, + "ro_RO": "ro", + "ru_RU": "ru", + "sm_Latn_WS": false, + "sr_Cyrl_RS": "sr", + "sr_Latn_RS": "sr-Latn", + "sk_SK": "sk", + "sl_SI": "sl", + "so_SO": false, + "es_ES": "es", + "sw_KE": "sw", + "sv_SE": "sv", + "ty_PF": false, + "ta_IN": "ta", + "tt_Latn_RU": "tt", + "te_IN": "te", + "th_TH": "th", + "bo_CN": false, + "ti_ET": false, + "to_TO": false, + "tr_TR": "tr", + "uk_UA": "uk", + "ur_PK": "ur", + "ug_Arab_CN": false, + "uz_Latn_UZ": "uz", + "vi_VN": "vi", + "cy_GB": "cy", + "yua_MX": false, + "zu_ZA": "zu" + }, + "help": [ + { + "title": "Yandex - Yandex, Russia", + "url": "https://translate.yandex.com/" + }, + { + "title": "[github]translators", + "url": "https://github.com/UlionTse/translators" + } + ] + }, + { + "key": "niutrans_free", + "name": "[Free] Niutrans / 小牛翻译, China", + "type": "translators", + "translator": "niutrans", + "support": { + "zh_CN": "zh", + "zh_HK": "cht", + "zh_TW": "cht", + "en_US": "en", + "en_GB": "en", + "af_ZA": "af", + "sq_AL": "sq", + "am_ET": "am", + "ar_SA": "ar", + "hy_AM": "hy", + "as_IN": false, + "az_Latn_AZ": "az", + "bn_BD": "bn", + "ba_RU": "ba", + "eu_ES": "eu", + "bs_Latn_BA": "bs", + "bg_BG": "bg", + "ca_ES": "ca", + "hr_HR": "hr", + "cs_CZ": "cs", + "da_DK": "da", + "prs_AF": false, + "dv_MV": "dv", + "nl_NL": "nl", + "et_EE": "et", + "fo_FO": "fo", + "fj_FJ": "fj", + "fil_PH": "fil", + "fi_FI": "fi", + "fr_FR": "fr", + "fr_CA": "fr", + "gl_ES": "gl", + "ka_GE": "ka", + "de_DE": "de", + "el_GR": "el", + "gu_IN": "gu", + "ht_HT": "ht", + "he_IL": "he", + "hi_IN": "hi", + "mww_Latn_US": "mww", + "hu_HU": "hu", + "is_IS": "is", + "id_ID": "id", + "ikt_CA": false, + "iu_CA": false, + "iu_Latn_CA": false, + "ga_IE": "ga", + "it_IT": "it", + "ja_JP": "ja", + "kn_IN": "kn", + "kk_KZ": "kk", + "km_KH": "km", + "tlh_Latn": false, + "tlh_Piqd": false, + "ko_KR": "ko", + "ku_Arab_IQ": "ku", + "ku_Latn_TR": false, + "ky_KG": "ky", + "lo_LA": "lo", + "lv_LV": "lv", + "lt_LT": "lt", + "mk_MK": "mk", + "mg_MG": "mg", + "ms_Latn_MY": "ms", + "ml_IN": "ml", + "mt_MT": "mt", + "mi_NZ": "mi", + "mr_IN": "mr", + "mn_Cyrl_MN": "mn", + "mn_Mong_CN": "mn", + "my_MM": "my", + "ne_NP": "ne", + "no_NO": "no", + "or_IN": "or", + "ps_AF": "ps", + "fa_IR": "fa", + "pl_PL": "pl", + "pt_BR": "pt", + "pt_PT": "pt", + "pa_Guru_IN": "pa", + "otq_Latn_MX": "otq", + "ro_RO": "ro", + "ru_RU": "ru", + "sm_Latn_WS": "sm", + "sr_Cyrl_RS": "sr", + "sr_Latn_RS": "sr", + "sk_SK": "sk", + "sl_SI": "sl", + "so_SO": "so", + "es_ES": "es", + "sw_KE": "sw", + "sv_SE": "sv", + "ty_PF": "ty", + "ta_IN": "ta", + "tt_Latn_RU": "tt", + "te_IN": "te", + "th_TH": "th", + "bo_CN": false, + "ti_ET": "ti", + "to_TO": "to", + "tr_TR": "tr", + "uk_UA": "uk", + "ur_PK": "ur", + "ug_Arab_CN": false, + "uz_Latn_UZ": "uz", + "vi_VN": "vi", + "cy_GB": "cy", + "yua_MX": "yua", + "zu_ZA": "zu" + }, + "help": [ + { + "title": "Niutrans/小牛翻译 - Northeastern University / Niutrans, China", + "url": "https://niutrans.com/trans" + }, + { + "title": "[github]translators", + "url": "https://github.com/UlionTse/translators" + } + ] + }, + { + "key": "qqFanyi_free", + "name": "[Free] QQFanyi / 腾讯翻译君, China", + "type": "translators", + "translator": "qqFanyi", + "support": { + "zh_CN": "zh", + "fr_FR": "fr", + "es_ES": "es", + "it_IT": "it", + "de_DE": "de", + "tr_TR": "tr", + "ru_RU": "ru", + "pt_PT": "pt", + "vi_VN": "vi", + "id_ID": "id", + "th_TH": "th", + "ms_Latn_MY": "ms", + "ar_SA": "ar", + "hi_IN": "hi" + }, + "help": [ + { + "title": "QQFanyi/腾讯翻译君 - Tencent, China", + "url": "https://fanyi.qq.com/" + }, + { + "title": "[github]translators", + "url": "https://github.com/UlionTse/translators" + } + ] + }, + { + "key": "volcEngine_free", + "name": "[Free] VolcEngine / 火山翻译, China", + "type": "translators", + "translator": "volcEngine", + "support": { + "zh_CN": "zh", + "zh_HK": "zh-Hant", + "zh_TW": "zh-Hant", + "en_US": "en", + "en_GB": "en", + "af_ZA": "af", + "sq_AL": "sq", + "am_ET": "am", + "ar_SA": "ar", + "hy_AM": "hy", + "as_IN": false, + "az_Latn_AZ": "az", + "bn_BD": "bn", + "ba_RU": "ba", + "eu_ES": false, + "bs_Latn_BA": "bs", + "bg_BG": "bg", + "ca_ES": "ca", + "hr_HR": "hr", + "cs_CZ": "cs", + "da_DK": "da", + "prs_AF": false, + "dv_MV": false, + "nl_NL": "nl", + "et_EE": "et", + "fo_FO": false, + "fj_FJ": "fj", + "fil_PH": false, + "fi_FI": "fi", + "fr_FR": "fr", + "fr_CA": "fr", + "gl_ES": "gl", + "ka_GE": "ka", + "de_DE": "de", + "el_GR": "el", + "gu_IN": "gu", + "ht_HT": "ht", + "he_IL": "he", + "hi_IN": "hi", + "mww_Latn_US": false, + "hu_HU": "hu", + "is_IS": false, + "id_ID": "id", + "ikt_CA": false, + "iu_CA": "iu", + "iu_Latn_CA": "iu", + "ga_IE": false, + "it_IT": "it", + "ja_JP": "ja", + "kn_IN": "kn", + "kk_KZ": false, + "km_KH": "km", + "tlh_Latn": false, + "tlh_Piqd": false, + "ko_KR": "ko", + "ku_Arab_IQ": false, + "ku_Latn_TR": "kmr", + "ky_KG": false, + "lo_LA": "lo", + "lv_LV": "lv", + "lt_LT": "lt", + "mk_MK": "mk", + "mg_MG": false, + "ms_Latn_MY": "ms", + "ml_IN": "ml", + "mt_MT": false, + "mi_NZ": false, + "mr_IN": "mr", + "mn_Cyrl_MN": "mn", + "mn_Mong_CN": "mn", + "my_MM": "my", + "ne_NP": false, + "no_NO": "no", + "or_IN": false, + "ps_AF": false, + "fa_IR": "fa", + "pl_PL": "pl", + "pt_BR": "pt", + "pt_PT": "pt", + "pa_Guru_IN": "pa", + "otq_Latn_MX": false, + "ro_RO": "ro", + "ru_RU": "ru", + "sm_Latn_WS": "sm", + "sr_Cyrl_RS": "sr", + "sr_Latn_RS": "sr", + "sk_SK": "sk", + "sl_SI": "sl", + "so_SO": "so", + "es_ES": "es", + "sw_KE": "sw", + "sv_SE": "sv", + "ty_PF": "ty", + "ta_IN": "ta", + "tt_Latn_RU": "tt", + "te_IN": "te", + "th_TH": "th", + "bo_CN": false, + "ti_ET": "ti", + "to_TO": "to", + "tr_TR": "tr", + "uk_UA": "uk", + "ur_PK": "ur", + "ug_Arab_CN": false, + "uz_Latn_UZ": false, + "vi_VN": "vi", + "cy_GB": "cy", + "yua_MX": false, + "zu_ZA": "zu" + }, + "help": [ + { + "title": "VolcEngine/火山翻译 - Bytedance, China", + "url": "https://translate.volcengine.com/" + }, + { + "title": "[github]translators", + "url": "https://github.com/UlionTse/translators" + } + ] + }, + { + "key": "yeekit_free", + "name": "[Free] Yeekit / 中译语通, China", + "type": "translators", + "translator": "yeekit", + "support": { + "ar_SA": "ar", + "ru_RU": "ru", + "de_DE": "de", + "fr_FR": "fr", + "ko_KR": "ko", + "pt_BR": "pt", + "pt_PT": "pt", + "ja_JP": "ja", + "es_ES": "es", + "en_US": "en", + "zh_CN": "zh" + }, + "help": [ + { + "title": "Yeekit/中译语通 - CTC, China", + "url": "https://www.yeekit.com/site/translate" + }, + { + "title": "[github]translators", + "url": "https://github.com/UlionTse/translators" + } + ] + } +] \ No newline at end of file diff --git a/translate_apis.json.REMOVED.git-id b/translate_apis.json.REMOVED.git-id index 2ee18e4..936bf57 100644 --- a/translate_apis.json.REMOVED.git-id +++ b/translate_apis.json.REMOVED.git-id @@ -1 +1 @@ -acb730813049605c549d0f45ab286a9edd81abca \ No newline at end of file +200755004fe8e6c7507b787f0e82266539689145 \ No newline at end of file