我目前的 RSS 阅读方案是,在 NAS 上部署了 FreshRSS,桌面端用网页来做大部分的 RSS 阅读。手机端则用 Fiery Feeds(iOS)、FeedMe(Android)做快速阅读。
由于 RSS 有较多外文订阅源,一部分源比较高频,我并不想每一篇都去精读,我想尽量做到“快速了解外文 RSS 的标题”,这样可以极大提高信息获取效率。
浏览器阅读时可以通过浏览器插件进行整页翻译,但很可惜大多数手机端 RSS 阅读器都没有这样的功能。
为了提高手机端快速阅览外文内容。我试着改进了一个 FreshRSS 插件 TranslateTitlesCN,使其支持了本地翻译方案 LibreTranslate,这样就不需要考虑网络的问题。
这张图是最终实现的效果,接下来我会介绍详细的步骤。
插件介绍
本文用到的是 FreshRSS-TranslateTitlesCN 插件,该插件已经支持 DeepLX 和 Google Translate 这两个在线翻译服务。
不过我使用过后发现经常出现网络方面的问题,导致时常无法进行 Google 翻译。改用 DeeplX 也需要注意频繁请求的问题。有时候还会由于插件写入速度过快导致 FreshRSS 默认的 SQLite 被搞挂了。
所以我决定用 3 步来改进我的方案——
- 将 FreshRSS 的数据库服务升级到 PostgreSQL。
- 部署一个开源的翻译服务 LibreTranslate 替代 Google Translate。
- 改进插件本身,使其支持 LibreTranslate 翻译。
你可以直接用我 Fork 并添加了 LibreTranslate 的版本,这个版本还修复了源插件无法在自动刷新时进行翻译的问题。后期我会尝试提一个 PR 到源仓库。
2024-11-23-更新:作者已接受了 PR,在源仓库也可以下载到相同的版本了。
我把打包后的插件放在了 Release 里,你可以直接下载。
🔗 Releases · yarin-zhang/FreshRSS-TranslateTitlesCN
通过 Docker 部署 FreshRSS 服务
由于整套方案都是基于 FreshRSS 实现的,所以你需要跳转到这篇文章,先把 FreshRSS 部署起来。
- 如何通过 Docker 部署 FreshRSS 作为本地 RSS 阅读器
通过 Docker 部署 LibreTranslate 服务
LibreTranslate 是一个支持多语言翻译的轻量级开源工具,并且可以通过 Docker 快速部署。
🔗 Libretranslate - DockerHub
以下是部署步骤:
首先,下载并运行 Docker 容器,在终端中运行以下命令启动 LibreTranslate 服务:
docker run -d --name libretranslate -p 5000:5000 libretranslate/libretranslate
如果你是群晖 NAS,可以通过 Container Manager 进行部署。注意 5000 端口是 DSM 管理页面的端口,因此需要改为其他的,比如 5555 。
启动后需要检查服务是否运行。打开浏览器访问 http://【NAS 的 IP 地址】:5555,如果看到 LibreTranslate 的界面,说明服务已成功运行。
如果没有看到页面,但服务已经启动了。则需要检查容器日志,LibreTranslate 会自动下载 92 种语言翻译模型,这一步可能需要耗时几分钟到数十分钟,尽量确保你的网络可以正常连接到外网。在下载完成后,会显示翻译网页。
注意 Docker 网络地址。如果 FreshRSS 和 LibreTranslate 在同一台机器上运行,你需要确保在配置插件时找到 Docker 容器的内部网络地址,通常类似于 http://172.17.0.10。
这里有一个注意点,由于 Docker 内部的通信是不走外部端口的,所以无论你将端口映射为 5555 还是其他,只要是 Docker 间的通信,比如从 FreshRSS 访问 LibreTranslate,仍然是访问 5000 端口。
因此,将其组合为 http://172.17.0.10:5000 ,稍后会将其用作翻译服务的地址。
安装并使用插件
为支持 LibreTranslate,我 Fork 了原始插件并进行了修改,添加了对 LibreTranslate 的支持。你可以通过以下链接获取最新版本:
🔗 Releases · yarin-zhang/FreshRSS-TranslateTitlesCN
- 下载插件 从仓库中下载最新的插件压缩包,并将其解压到 FreshRSS 的插件目录 ./extensions 中。
- 启用插件 在 FreshRSS 的设置页面中,启用插件并进行配置。
- 配置 LibreTranslate 地址 在插件设置中填写 LibreTranslate 服务地址,例如 http://172.17.0.10:5000 。
- 勾选订阅源 你需要勾选需要翻译的订阅源,然后会为该订阅源的每一篇文章前插入中文标题。
保存
