使用 GitHub Action + Google Translate 实现翻译 RSS 订阅源全文
随着 RSS 订阅源越来越多,从非中文 RSS 订阅源获取消息就出了点问题,
英文站点不多的时候,看原始文章标题还是没感到什么阻碍的。所以并没有使用到翻译。
随着订阅源增多,再怎么说英语也不是日常语言,获取信息的速度明显不如中文,
况且慢慢地有俄语,韩语等语言的订阅源,就完全看不懂了,产生了翻译 RSS 的需求。
在一番寻找下,最终找了一个基于GitHub Action + Google Translate
实现翻译 RSS 订阅源全文的项目。
需要准备的东西
这次你只需要准备一个github账号。
注册地址(https://github.com/signup)
输入邮箱地址和密码,选择免费计划,验证邮箱地址,按照提示操作,创建您的个人帐户。
PS:如果你感觉部分内容是英文的识别困难,用浏览器的翻译功能吧。
GitHub部署
记录三个需要的参数
U_NAME
就是你github的用户名,你可以点右上角的头像看到一行字:
Signed in as xxxxxx
,这个xxxx就是你的用户名
U_EMAIL
就是你github的注册邮箱,如果你实在是记不清了,可以点右上角的头像
Settings→Access→Emails
,然后右侧就会看到你的邮箱了
WORK_TOKEN
因为项目涉及使用脚本操作仓库内容,所以需要给脚本修改仓库内文件的权限,需要申请一个Repository Secret令牌。
-
点击网页右上角自己的头像,点 【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了。 -
返回你repo的Upptime项目。点击 【Settings】,展开左侧的【Secrets】,点击【Actions 】 点击【 New repository secret】
Fork项目
- 登录你的Github,并且进入项目(https://github.com/Jv0id/RSS-Translation)
- 点击右上角的【Fork】将项目复刻到你自己的仓库
设置需要的令牌
点击 【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 翻译订阅源
1,点击【Code】,点击进入【 test.ini 】文件
2,编辑该文件
3,设置你需要的订阅源
前两行的内容不要动。
[cfg]
base = "rss/"
需要改 RSS 订阅源请改后面的代码,格式如下
- [source001]:订阅序号,从001开始增长,注意请确保编号不要重复,不然代码会报错
- name = "mckinsey_rss.xml":生成订阅的名称,只允许包含英文字母(a-zA-Z)、数字(0-9)、(-,_,.,~)4个特殊字符,并且结尾一定是.xml或.rss
- 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/6/8/10这4行中,一切你看到的Jv0id改成你自己github用户名(就上边所说的U_NAME)
注意要保持## 已转换翻译源这行字在第12行,[source001]在第14行,代码更新订阅网页时是完全按行号更新的,如果行号不对可能会导致奇怪的问题。
4.点击最下边的【Commit changes】提交修改。
使用 RSS 翻译订阅源全文
如果前边没出现错误(主要是actions上没出现红叉),那么你可以在你自己项目的介绍页,看到这样的内容
点击那个【查看 XXXXXXX】链接,就可以跳转到订阅列表页,其他就可以一帮的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分钟间隔。