使用 GitHub Action + Google Translate 实现翻译 RSS 订阅源全文
随着 RSS 订阅源越来越多,从非中文 RSS 订阅源获取消息就出了点问题,
英文站点不多的时候,看原始文章标题还是没感到什么阻碍的。所以并没有使用到翻译。
随着订阅源增多,再怎么说英语也不是日常语言,获取信息的速度明显不如中文,
况且慢慢地有俄语,韩语等语言的订阅源,就完全看不懂了,产生了翻译 RSS 的需求。
在一番寻找下,最终找了一个基于 GitHub Action + Google Translate 实现翻译 RSS 订阅源全文的项目。
2023-11-24更新 此文可能已经落后版本,请查看新的文章《本地/云端部署 AI 翻译 RSS 订阅源工具》
需要准备的东西
这次你只需要准备一个github账号。
注册地址(https://github.com/signup)
输入邮箱地址和密码,选择免费计划,验证邮箱地址,按照提示操作,创建您的个人帐户。
PS:如果你感觉部分内容是英文的识别困难,用浏览器的翻译功能吧。
GitHub部署
Fork项目
- 登录你的Github,并且进入项目(https://github.com/tjsky/RSS-Translation)
- 点击右上角的【Fork】将项目复刻到你自己的仓库
- 如果你有git使用基础,请将fork到的代码重新add到一个新的仓库使用,而不是直接修改fork后的这个仓库使用。
记录三个需要的参数
U_NAME
就是你github的用户名,你可以点右上角的头像看到一行字:
Signed in as xxxxxx
,这个xxxx就是你的用户名
U_EMAIL
就是你github的注册邮箱,如果你实在是记不清了,可以点右上角的头像
Settings→Access→Emails,然后右侧就会看到你的邮箱了
WORK_TOKEN
因为项目涉及使用脚本操作仓库内容,所以需要给脚本修改仓库内文件的权限,需要申请一个Repository Secret令牌。
1. 点击网页右上角自己的头像,点 【Settings】
- 点击左侧最下方的【Developer settings】
-
点击左侧下方的【Personal access tokens】-【Tokens(classic)】 ,点击左上角的 【Generate new token (classic)】新建一个token
-
新建token
- Note: rss translate
- Select scopes:勾选【repo】和【workflow】(你直接勾workflow,repo就全勾上了)
- Expiration:选【No expiration】(无期限)
- 点击页面最下方的 【Generate token】
- 复制token
注意一定要在这里复制好,错过这个页面你就再也看不到token了。
注意一定要在这里复制好,错过这个页面你就再也看不到token了。
注意一定要在这里复制好,错过这个页面你就再也看不到token了。
设置需要的令牌
点击 【Settings】,展开左侧的【Secrets and varlables】,点击【Actions 】 点击【 New repository secret】
- 给翻译仓库设定 U_NAME 参数
- Name: U_NAME
- Value: 上边U_NAME所说的你的用户名
- 点击 【Add secret】
- 给翻译仓库设定 U_EMAIL 参数
- Name: U_EMAIL
- Value: 上边 U_EMAIL 所说的你的邮箱
- 点击 【Add secret】
- 给翻译仓库设定 WORK_TOKEN 参数
- Name: WORK_TOKEN
- Value: 上边 WORK_TOKEN 所说的你的令牌
- 点击 【Add secret】
给需要的权限
- 给与actions读写权限
- 点击 【Settings】,展开左侧的【Actions】
- 点击【General 】 找到【 Workflow permissions】
- 将选项改为【Read and write permissions】
- 点击 Save 按钮。
- 开启 GitHub Pages
- 点击【Settings】
- 在左侧 【Code and automation】 下找到 【Pages】 点击进入
- 将 【Branch】 设置为 【main】
- 点击 【Save】
设置需要的 RSS 翻译订阅源
- 点击【Code】,点击进入【 test.ini 】文件
-
点击笔形图标,编辑代码
-
设置你需要的订阅源
前两行的内容不要动。
[cfg]
base = "rss/"
需要改 RSS 订阅源请改后面的代码,格式如下
[source001]
:订阅序号,从001开始增长,注意请确保编号不要重复,不然代码会报错name = “mckinsey_rss”
:生成订阅的名称,其中name为英文或阿拉伯数字,不要添加后缀!!!!,本项目生成的文件为固定的.xml格式文件,不需要name有后缀,此外name也不要过长。url = "http://www.mckinsey.com/insights/rss"
:RSS订阅链接
–max = "10"
:每次RSS订阅源获取的更新条数,如果你的订阅源为全文订阅(就是会显示一大堆文字的话),请适当减少这个数字的大小,因为脚本使用的翻译接口,有最大字符数限制,一次更新太多(翻译太多)会导致后面的文字没有被翻译。md5 = ""
:留空即可,将来脚本会自己计算这个数字写入action = "auto"
:翻译方向,设置为auto会将任意文字翻译为中文,如果想指定可以看这个
源语言->目标语言。比如:en->zh-CN
意思就是从英语翻译为中文简体。
- 点击最下边的【Commit changes】提交修改。
测试翻译
– 点击 【Actions】
– 点击【circle_translate】
– 选择 【Run worldiow】
– 你会看到1~2个黄圈圈在转。运行成功会显示绿色的勾,运行失败会显示红色的叉。如果出现红叉,一般都是你修改ini文件时,什么地方写错了,权限、令牌设置错误,比如少打了一个 字母啊,空格漏了啊,代码对齐有问题,少写了什么必须设置的参数,什么参数设置错误了。请仔细检查。
修改运行参数
- 点击【Code】,点击进入【 README.md 】文件
-
点击笔形图标,编辑代码
-
将第5行中,一切你看到的
tjsky
改成你自己github用户名(就上边所说的U_NAME),7/9/11行的内容你可以随便改。 -
但需要注意要保持
## 已转换翻译源
这行字在第13行,[source001]
在第14行,代码更新订阅网页时,会修改从13行开始的内容,代码完全是按行号更新的,如果行号不对可能会导致奇怪的问题。 -
点击最下边的【Commit changes】提交修改。
使用 RSS 翻译订阅源全文
如果前边没出现错误(主要是actions上没出现红叉),那么你可以在你自己项目的介绍页,看到这样的内容
点击那个【查看 Rss-Translation】链接,就可以跳转到订阅列表页,每条项目的 ->
左侧的是原始订阅链接,右侧是转换后的链接,这个链接和其他的RSS订阅链接一样处理就好了。
注意
- 这个项目纯属娱乐,因为很多网站的RSS订阅格式并不是很规范(当然这个也不赖网站,因为RSS本身就是一个非常混乱的标准)不排除会出现,翻译后的 RSS 翻译订阅源,阅读器报错无法使用的情况。
- 尽量不要翻译那种全文显示的订阅源(比如RSSHUB生成的那种)字数太长翻译很容易出错,如果因为过长出错,请对应减少
max = " "
参数的数字。 - 默认设置是每2小时所有拉取一次订阅源并翻译,如果需要改的更短请修改
.github/workflows/circle_translate.yml
文件第7行,比如
内容 | 时间 |
---|---|
– cron: ‘0 */2 * * *’ | 每2小时运行一次 |
– cron: ‘0 * * * *’ | 每1小时运行一次 |
– cron: ‘*/30 * * * *’ | 每30分钟运行一次 |
因为github actions的设计,运行时间会根据github本身负载调整,实际更新间隔会略有加长,比如你设定1小时运行一次,实际可能是1小时7分钟间隔,1小时3分钟间隔。
– 默认是使用bing翻译,如果需要修改请修改Rss-Translation/.github/workflows
第43行。
/circle_translate.yml
wyf
2024-04-03 23:54
你好,把翻译后的链接(链接可以在浏览打开)放入到Reeder(feed 添加订阅)后显示:Reeder could not find a feed at the specified location!
lwx
2024-03-23 10:55
我都按你上面的步骤做了,在本地阅读器导入显示 “Error: 解析XML信息流时出错” ,在feedbro导入也不行,试了在inoreader导入开源,在但是翻译后的订阅里没有内容且只有标题被翻译了
去年夏天
2024-03-23 11:25
试试,用新文章里的《本地/云端部署 AI 翻译 RSS 订阅源工具》
这个旧文章里面的代码有点老了,有些bug也没修。(比如你说的只翻译标题问题)
newsll
2023-10-25 15:52
发现标题没有被翻译,有没有好的解决办法?
去年夏天
2023-11-25 09:48
代码已经更新,问题已经解决
mundane
2023-07-04 18:10
请问下用什么阅读器啊?
订阅链接是这样的吗?
https://raw.githubusercontent.com/mundane799699/RSS-Translation/main/rss/wanquribao_rss.xml
去年夏天
2023-07-05 08:52
在这个页面看Rss-Translation,每一个条目箭头“->”右侧的就是订阅链接。
阅读器的话,可以看下这里的介绍
gjdhxy
2023-06-29 21:28
“返回你repo的Upptime项目。点击 【Settings】,展开左侧的【Secrets】,点击【Actions 】 点击【 New repository secret】”
和
“开启 GitHub Pages
点击【Settings】
在左侧 【Code and automation】 下找到 【Pages】 点击进入
将 【Branch】 设置为 【main】
点击 【Save】”
没找到位置。
继续操作没有问题,也翻译完成。
点击“查看RSS-Tranlation”显示404
在“已转换翻译源”下“->”后的内容无法订阅,在feedly中显示GitHub的界面。
折腾失败。
去年夏天
2023-06-30 08:57
gjdhxy
2023-07-06 10:58
我还是不理解什么叫我repo的Upptime项目
去年夏天
2023-07-06 11:47
额,我修改了一下教程表述。。看下这样能理解不?
gjdhxy
2023-07-17 11:09
这次成功了,感谢博主细心回复!
gjdhxy
2023-07-17 17:10
dalao感兴趣写个用gpt的api总结rss源不,跟GPT-4和Claude2一起学了您的代码和chatpaper的代码,自己还是没写出来,对GitHub了解还是不多,只能本地跑通了但是GitHub自动化还是没整会。
这会脑子用光了,去看点轻松愉快的订阅舒缓一下。