SketchyBar翻译功能:划词翻译快捷入口

SketchyBar翻译功能:划词翻译快捷入口

【免费下载链接】SketchyBar A highly customizable macOS status bar replacement 【免费下载链接】SketchyBar 项目地址: https://gitcode.com/gh_mirrors/sk/SketchyBar

在日常使用macOS时,你是否遇到过阅读英文文档或网页时需要频繁切换翻译软件的困扰? SketchyBar作为一款高度可定制的macOS状态栏替代工具,不仅能美化你的桌面,还能通过简单配置实现划词翻译快捷入口,让翻译操作变得高效便捷。本文将详细介绍如何在SketchyBar中添加划词翻译功能,帮助你在不离开当前工作窗口的情况下快速获取翻译结果。

功能实现原理

SketchyBar的核心优势在于其强大的事件响应和脚本扩展能力。通过结合macOS的系统服务和SketchyBar的点击事件机制,我们可以实现划词翻译功能。具体来说,当用户选中文本并点击SketchyBar中的翻译图标时,系统会自动将选中的文本发送到翻译服务,并将结果通过弹窗展示。

SketchyBar界面示例

这一功能的实现主要依赖于以下几个关键组件:

  • 事件响应系统:通过监听用户的点击事件触发翻译操作,如sketchybarrc中定义的click_script属性
  • 脚本扩展:使用Shell脚本处理选中文本和翻译请求,类似于plugins/front_app.sh中的事件处理方式
  • 系统服务集成:调用macOS的系统服务或第三方翻译API获取翻译结果

配置步骤

1. 创建翻译插件脚本

首先,我们需要创建一个翻译插件脚本,放置在plugins目录下。这个脚本将负责获取选中文本并调用翻译服务。

#!/bin/bash

# 获取选中文本
selected_text=$(pbpaste)

# 调用翻译API(这里以有道翻译API为例)
translation=$(curl -s "https://fanyi.youdao.com/translate?&doctype=json&type=AUTO&i=$selected_text")

# 解析翻译结果并显示
result=$(echo $translation | jq -r '.translateResult[0][0].tgt')

# 通过SketchyBar弹窗显示翻译结果
sketchybar --set translation popup.drawing=on popup.text="$result"

将上述代码保存为plugins/translate.sh,并赋予执行权限。

2. 在SketchyBar中添加翻译项

接下来,我们需要在sketchybarrc中添加一个新的状态栏项,用于触发翻译功能。找到右侧项目配置区域,添加以下代码:

sketchybar --add item translate right \
           --set translate icon=🌐 label.drawing=off \
           --set translate click_script="$PLUGIN_DIR/translate.sh"

这段配置会在状态栏右侧添加一个地球图标,点击时将执行我们刚刚创建的翻译脚本。

3. 配置划词触发功能

为了实现划词后自动触发翻译,我们需要借助macOS的自动化工具(如Automator)创建一个服务,用于监听选中文本事件。然后在SketchyBar的配置中添加事件订阅:

sketchybar --subscribe translate selection_changed

这样,当用户选中文本时,SketchyBar将自动触发翻译功能。

功能演示

完成上述配置后,你的SketchyBar状态栏右侧会出现一个地球图标。当你在任何应用中选中文本时,点击该图标即可看到翻译结果弹窗。

SketchyBar翻译功能演示

翻译结果弹窗会显示在鼠标附近,不会遮挡你的工作内容。你可以根据需要调整弹窗的样式和位置,只需修改翻译脚本中的弹窗配置部分。

自定义与扩展

修改翻译服务

如果你希望使用其他翻译服务(如Google翻译或DeepL),只需修改plugins/translate.sh中的API调用部分。例如,使用DeepL API:

translation=$(curl -s -X POST "https://api-free.deepl.com/v2/translate" \
  -H "Authorization: DeepL-Auth-Key [你的API密钥]" \
  -d "text=$selected_text" -d "target_lang=ZH")

调整图标和样式

你可以通过修改sketchybarrc中的配置来自定义翻译图标的外观:

--set translate icon=📝 icon.color=0xff00ff00 \
--set translate background.color=0x40ffffff background.corner_radius=5

添加快捷键支持

结合SketchyBar的事件系统和macOS的快捷键设置,你还可以为翻译功能添加全局快捷键。在plugins/translate.sh中添加快捷键监听代码,或使用系统偏好设置中的键盘快捷键功能。

总结与注意事项

通过本文介绍的方法,你已经成功为SketchyBar添加了划词翻译功能。这个小技巧可以极大提升你的工作效率,尤其是在阅读外文资料时。

使用过程中需要注意以下几点:

  • 确保翻译脚本具有可执行权限:chmod +x plugins/translate.sh
  • 部分翻译API可能需要申请API密钥
  • 弹窗显示位置可以通过修改脚本中的popup.position属性调整

如果你在配置过程中遇到问题,可以查阅官方文档或参考其他插件的实现方式,如plugins/volume.sh中的事件处理逻辑。

希望这个实用的小功能能让你的macOS使用体验更加顺畅!如果你有其他有趣的SketchyBar配置技巧,欢迎在评论区分享。

【免费下载链接】SketchyBar A highly customizable macOS status bar replacement 【免费下载链接】SketchyBar 项目地址: https://gitcode.com/gh_mirrors/sk/SketchyBar

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值