1. 起因
起初订阅的RSS源都是英文站点,英文站点看文章标题还是有点墨水的。所以并没有使用到翻译。
但是随着订阅源增多,慢慢地有俄罗斯、西班牙等语言。
这个就很头疼了,看都看不懂,接着就有了想将RSS源进行翻译。
2. 思路
项目基于RSSHub进行拓展:
所需的npm包:
- 安装npm包
- 实现
因为一个RSS源有需要item,所以我是获取了所有item中的title并且存进数组。进行全部翻译。
翻译完成之后才拆分出来,防止google翻译API请求太频繁!!!const Parser = require('rss-parser'); const translate = require('translation-google'); //在国内需要加这个前缀 translate.suffix = 'cn'; module.exports = async (ctx) => { const parser = new Parser(); //rss订阅地址 const baseUrl = 'https://example.com/rss'; const feed = await parser.parseURL(baseUrl); //临时的item const tempItem = []; feed.items.forEach((item) => { tempItem.push(item.title); }); await translate(tempItem.join("\n") , { to:'zh-cn'}).then((res) => { const itemTitles = res.text.split("\n"); feed.items.forEach((item, index) => { feed.items[index].title = itemTitles[index]; }); }).catch((err) => { console.log(err); }); ctx.state.data = { title: `title ~ 资讯`, link: `www.example.com/`, description: 'title ~ 资讯', item: feed.items, }; };
上面的是自动检测语言并且翻译成中文,如果需要翻译成其他语言。可以自行查看文档
如若转载,请注明出处:https://www.ozabc.com/gongju/535655.html