diff --git a/src/config/i18n.js b/src/config/i18n.js index f867dce..08eaaac 100644 --- a/src/config/i18n.js +++ b/src/config/i18n.js @@ -847,7 +847,21 @@ export const I18N = { en: `Hide Fab Button`, zh_TW: `隱藏懸浮按鈕`, }, - + fab_click_action: { + zh: `单击悬浮按钮动作`, + en: `Single Click Fab Action`, + zh_TW: `單擊懸浮按钮動作`, + }, + fab_click_menu: { + zh: `弹出菜单`, + en: `Popup Menu`, + zh_TW: `彈出選單`, + }, + fab_click_translate: { + zh: `直接翻译`, + en: `Translate`, + zh_TW: `直接翻譯`, + }, hide_tran_button: { zh: `隐藏翻译按钮`, en: `Hide Translate Button`, diff --git a/src/config/setting.js b/src/config/setting.js index da7bdda..b1de363 100644 --- a/src/config/setting.js +++ b/src/config/setting.js @@ -120,6 +120,7 @@ export const DEFAULT_SETTING = { httpTimeout: DEFAULT_HTTP_TIMEOUT, clearCache: false, // 是否在浏览器下次启动时清除缓存 injectRules: true, // 是否注入订阅规则 + fabClickAction: 0, // 悬浮按钮点击行为 // injectWebfix: true, // 是否注入修复补丁(作废) // detectRemote: false, // 是否使用远程语言检测(移至rule,作废) // contextMenus: true, // 是否添加右键菜单(作废) diff --git a/src/views/Action/index.js b/src/views/Action/index.js index 5746daf..118080c 100644 --- a/src/views/Action/index.js +++ b/src/views/Action/index.js @@ -33,6 +33,8 @@ export default function Action({ translator, fab }) { }); const [moved, setMoved] = useState(false); + const { fabClickAction = 0 } = fab || {}; + const handleWindowResize = useMemo( () => debounce(() => { @@ -215,7 +217,14 @@ export default function Action({ translator, fab }) { color="primary" onClick={(e) => { if (!moved) { - setShowPopup((pre) => !pre); + if (fabClickAction === 1) { + translator.toggle(); + sendIframeMsg(MSG_TRANS_TOGGLE); + setShowPopup(false); + } + else { + setShowPopup((pre) => !pre); + } } }} > diff --git a/src/views/Options/Setting.js b/src/views/Options/Setting.js index 83beb09..3a7bdfb 100644 --- a/src/views/Options/Setting.js +++ b/src/views/Options/Setting.js @@ -122,7 +122,7 @@ export default function Settings() { transInterval = 500, langDetector = OPT_TRANS_MICROSOFT, } = setting; - const { isHide = false } = fab || {}; + const { isHide = false, fabClickAction = 0 } = fab || {}; return ( @@ -232,6 +232,19 @@ export default function Settings() { + + {i18n("fab_click_action")} + + + {i18n("context_menus")}