SketchyBar翻译功能:划词翻译快捷入口
在日常使用macOS时,你是否遇到过阅读英文文档或网页时需要频繁切换翻译软件的困扰? SketchyBar作为一款高度可定制的macOS状态栏替代工具,不仅能美化你的桌面,还能通过简单配置实现划词翻译快捷入口,让翻译操作变得高效便捷。本文将详细介绍如何在SketchyBar中添加划词翻译功能,帮助你在不离开当前工作窗口的情况下快速获取翻译结果。
功能实现原理
SketchyBar的核心优势在于其强大的事件响应和脚本扩展能力。通过结合macOS的系统服务和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状态栏右侧会出现一个地球图标。当你在任何应用中选中文本时,点击该图标即可看到翻译结果弹窗。
翻译结果弹窗会显示在鼠标附近,不会遮挡你的工作内容。你可以根据需要调整弹窗的样式和位置,只需修改翻译脚本中的弹窗配置部分。
自定义与扩展
修改翻译服务
如果你希望使用其他翻译服务(如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配置技巧,欢迎在评论区分享。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考





