Skip to content

🌈一个跨平台的划词翻译和OCR软件 | A cross-platform software for text translation and recognition.

License

Notifications You must be signed in to change notification settings

allentown521/saladict

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

沙拉翻译

🌈 一个跨平台的划词翻译软件

License Tauri JavaScript Rust Windows MacOS Linux



中文 | English | 한글

目录

使用说明

划词翻译 输入翻译 外部调用
鼠标选中需要翻译的文本,按下设置的划词翻译快捷键即可 按下输入翻译快捷键呼出翻译窗口,输入待翻译文本后按下 回车 翻译 通过被其他软件调用实现更加方便高效的功能, 详见 外部调用
剪切板监听模式 截图 OCR 截图翻译
右键点击菜单栏图标,选择 监听剪切板 启动剪切板监听,复制文字即可完成翻译 按下截图 OCR 快捷键后框选需要识别区域即可完成识别 按下截图翻译快捷键后框选需要识别区域即可完成翻译

特色功能

支持接口

翻译

更多接口支持见 插件系统

文字识别

更多接口支持见 插件系统

语音合成

更多接口支持见 插件系统

生词本

更多接口支持见 插件系统

插件系统

软件内置接口数量有限,但是您可以通过插件系统来扩展软件的功能。

插件安装

你可以在 Plugin List 查找你需要的插件,然后前往插件仓库下载插件。

沙拉翻译 插件的扩展名为 .potext, 下载得到.potext文件之后, 在 偏好设置-服务设置-添加外部插件-安装外部插件 选择对应的 .potext 即可安装成功,添加到服务列表中即可像内置服务一样正常使用了。

故障排除

  • 找不到指定的模块 (Windows)

    出现类似这样的报错是因为系统缺少 C++库,前往这里安装即可解决问题。

  • 不是有效的 Win32 应用程序 (Windows)

    出现类似这样的报错说明你没有下载对应系统或者架构的插件,前往插件仓库下载正确的插件即可解决问题。

插件开发

Plugin List 中的 模板 章节提供了各种插件的开发模板,具体的开发文档请查看对应的模板仓库。

安装指南

Windows

通过 Microsoft Store 安装

Download on the Microsoft Store

通过 Winget 安装

winget install allentown521.Saladict

手动安装

  1. Release 页面下载最新 exe 安装包。

    • 64 位机器下载 saladict_{version}_x64-setup.exe
    • 32 位机器下载 saladict_{version}_x86-setup.exe
    • arm64 机器下载 saladict_{version}_arm64-setup.exe
  2. 双击安装包进行安装。

故障排除

  • 启动后没有界面,点击托盘图标没有反应

    检查是否卸载/禁用了 WebView2,如果卸载/禁用了 WebView2,请手动安装 WebView2 或将其恢复。

    如果是企业版系统不方便安装或无法安装 WebView2,请尝试在 Release 下载内置 WebView2 的版本 saladict_{version}_{arch}_fix_webview2_runtime-setup.exe

    若问题仍然存在请尝试使用 Windows7 兼容模式启动。

MacOS

Mac App Store 安装

M-series Macs 用户可以从 Mac App Store 安装。

Download on the Mac App Store

由于技术限制,Mac App Store 版本不支持 划词翻译快捷键划词翻译

手动安装

  1. Release 页面下载最新的 dmg 安装包。(如果您使用的是 M1 芯片,请下载名为saladict_{version}_aarch64.dmg的安装包,否则请下载名为saladict_{version}_x64.dmg的安装包)
  2. 双击下载的文件后将 沙拉翻译 拖入 Applications 文件夹即可完成安装。

通过 Brew 安装

  1. 添加我们的 tap:
brew tap allentown521/homebrew-saladict
  1. 安装 沙拉翻译:
brew install --cask saladict
  1. 升级 沙拉翻译
brew upgrade --cask saladict

故障排除

  • 如果每次打开时都遇到辅助功能权限提示,或者无法进行划词翻译,请前往设置 -> 隐私与安全 -> 辅助功能,移除 “沙拉翻译”,并重新添加 “沙拉翻译”。

Linux

Debian/Ubuntu

  1. Release 页面下载最新的对应架构的 deb 安装包。

外部调用

沙拉翻译 提供了完整的 HTTP 接口,以便可以被其他软件调用。您可以通过向 127.0.0.1:port 发送 HTTP 请求来调用 沙拉翻译,其中的port是 沙拉翻译 监听的端口号,默认为60606,可以在软件设置中进行更改。

API 文档:

POST "/" => 翻译指定文本(body为需要翻译的文本),
GET "/config" => 打开设置,
POST "/translate" => 翻译指定文本(同"/"),
GET "/selection_translate" => 划词翻译,
GET "/input_translate" => 输入翻译,
GET "/ocr_recognize" => 截图OCR,
GET "/ocr_translate" => 截图翻译,
GET "/ocr_recognize?screenshot=false" => 截图OCR(不使用软件内截图),
GET "/ocr_translate?screenshot=false" => 截图翻译(不使用软件内截图),
GET "/ocr_recognize?screenshot=true" => 截图OCR,
GET "/ocr_translate?screenshot=true" => 截图翻译,

示例:

  • 调用划词翻译:

    如果想要调用 沙拉翻译 划词翻译,只需向127.0.0.1:port发送请求即可。

    例如通过 curl 发送请求:

    curl "127.0.0.1:60606/selection_translate"

不使用软件内截图

这一功能可以让您在不使用软件内截图的情况下调用截图 OCR/截图翻译功能,这样您就可以使用您喜欢的截图工具来截图了,也可以解决在某些平台下 沙拉翻译 自带的截图无法使用的问题。

调用流程

  1. 使用其他截图工具截图
  2. 将截图保存在 $CACHE/allen.town.focus.saladict/Saladict_screenshot_cut.png
  3. 127.0.0.1:port/ocr_recognize?screenshot=false发送请求即可调用成功

$CACHE为系统缓存目录,例如在 Windows 上为C:\Users\{用户名}\AppData\Local\allen.town.focus.saladict\pot_screenshot_cut.png

示例

在 Linux 下调用 Flameshot 进行截图 OCR:

rm ~/.cache/allen.town.focus.saladict/pot_screenshot_cut.png && flameshot gui -s -p ~/.cache/allen.town.focus.saladict/pot_screenshot_cut.png && curl "127.0.0.1:60606/ocr_recognize?screenshot=false"

现有用法 (快捷划词翻译)

SnipDo (Windows)

  1. Microsoft Store 下载安装 SnipDo。
  2. Release 下载 沙拉翻译 的 SnipDo 扩展 (Saladict.pbar)
  3. 双击下载的扩展文件完成安装。
  4. 选中文字,可以看到弹出的 SnipDo 工具条,点击翻译按钮即可翻译。

PopClip (MacOS)

  1. 官网 下载安装 PopClip
  • 软件是收费的,国内用户可以从 Mac应用软件分享 下载免费版,有能力还是请支持正版。
  1. Release 下载 沙拉翻译 的 PopClip 扩展 (Saladict.popclipextz)
  2. 双击下载的扩展文件完成安装。
  3. 在 PopClip 的扩展中启用 沙拉翻译 扩展,选中文本即可点击翻译。

Starry (Linux)

Starry 目前仍处于开发阶段,因此您只能手动编译它。

Github: ccslykx/Starry

Wayland 支持

由于各大发行版对于 Wayland 的支持程度不同,所以 沙拉翻译 本身没法做到特别完美的支持,这里可以提供一些常见问题的解决方案,通过合理的设置之后,沙拉翻译 也可以在 Wayland 下完美运行。

Ubuntu 22.04 开始默认使用 Wayland 作为显示服务器,如果需要使用 X11 作为显示服务器:
1. 在登录界面点击齿轮图标
2. 选择 "Ubuntu on Xorg"(使用 X11 而不是 Wayland)
3. 然后登录

这样可以解决以下几个问题

快捷键无法使用

由于 Tauri 的快捷键方案并没有支持 Wayland,所以 沙拉翻译 应用内的快捷键设置在 Wayland 下无法使用。 您可以设置系统快捷用 curl 发送请求来触发 沙拉翻译,详见外部调用

截图无法使用

在一些纯 Wayland 桌面环境/窗口管理器(如 Hyprland)上,沙拉翻译 内置的截图无法使用,这时可以通过使用其他截图工具代替,详见 不使用软件内截图

下面给出在 Hyprland 下的配置示例(通过 grim 和 slurp 实现截图):

bind = ALT, X, exec, grim -g "$(slurp)" ~/.cache/allen.town.focus.saladict/pot_screenshot_cut.png && curl "127.0.0.1:60606/ocr_recognize?screenshot=false"
bind = ALT, C, exec, grim -g "$(slurp)" ~/.cache/allen.town.focus.saladict/pot_screenshot_cut.png && curl "127.0.0.1:60606/ocr_translate?screenshot=false"

其他桌面环境/窗口管理器也是类似的操作

划词翻译窗口跟随鼠标位置

由于目前 沙拉翻译 在 Wayland 下还无法获取到正确的鼠标坐标,所以内部的实现无法工作。 对于某些桌面环境/窗口管理器,可以通过设置窗口规则来实现窗口跟随鼠标位置,这里以 Hyprland 为例:

windowrulev2 = float, class:(saladict), title:(Translator|OCR|PopClip|Screenshot Translate) # Translation window floating
windowrulev2 = move cursor 0 0, class:(saladict), title:(Translator|PopClip|Screenshot Translate) # Translation window follows the mouse position.

国际化(Weblate)

贡献者

手动编译

环境要求

Node.js >= 18.0.0

pnpm >= 8.5.0

Rust >= 1.80.0

开始编译

  1. Clone 仓库

    git clone https://github.com/allentown521/saladict.git
  2. 安装依赖

    cd saladict
    pnpm install
  3. 安装依赖(仅 Linux 需要)

    sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.0-dev libayatana-appindicator3-dev librsvg2-dev patchelf libxdo-dev libxcb1 libxrandr2 libdbus-1-3
  4. 开发调试

    pnpm tauri dev # Run the app in development mode
  5. 打包构建

    pnpm tauri build # Build into installation package

About

🌈一个跨平台的划词翻译和OCR软件 | A cross-platform software for text translation and recognition.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 83.1%
  • Rust 13.6%
  • TypeScript 3.0%
  • HTML 0.1%
  • CSS 0.1%
  • Shell 0.1%