Open happyjared opened 6 years ago
谢谢反馈,近期会做修复
每次使用 Hexo g 生成新 blog 时,会对所有的文章标题进行翻译,而 google 对同一个标题的翻译结果不同,会导致已有文章的阅读数量丢失。
能否对已翻译标题文章不进行再次翻译,避免该问题发生。
@0x4C43 你好,插件在进行翻译标题时,源标题是按照blog内容中的title
字段进行抓取的,不是文件名称。请确认下你的title字段有没有修改过,另外按照你的标题我在本地做了重现,翻译了几次后标题均一致。
你好,标题中有中文冒号的情况下无法在public
下生成正确的html,util.js
有对title去除特殊符号但未包括中文冒号,括号和逗号等
@happyjared 你好,同楼上问题一样,翻译的标题来源是从md文件的title
字段读取的,我添加了中英文的冒号后,可以正常翻译。见下图
请看下你的title
设置的是什么
@cometlj 你好,像下面这个就不行了。
hexo new HELLO+测试(一):你好
hexo g
翻译后原文是这样:
public
目录对应是这样:
这种html是生成失败的。
请问把标题的所有中英文符号和英文都去掉,然后再翻译是否会更好?
@cometlj 原文中已存在translate_title的情况下,当翻译结果跟原文里的不一致时,是否不进行覆盖会更好,这样有一部分老文章和更方便手动调整翻译?
标题中存在 "+" 不能翻译的情况我也碰到过,只好把标题改了。两次翻译不一致的问题确实是存在的,赞同 @cometlj 的解决方案。
当
_config.yml
配置使用google翻译(无代理),然后某一文章标题中带有标点符号+
,使用hexo g
会出错,生成的文件是异常(文件名为空,最终url后缀是.html),谷歌翻译返回的状态码是403,输出实际请求及错误例如:https://translate.google.cn/translate_a/t?client=t&sl=zh-CN&tl=en&hl=zh-CN$dt=at&dt=bd&dt=ex&dt=ld&dt=md&dt=qca&dt=rw&dt=rm&dt=ss&dt=t&ie=UTF-8&oe=UTF-8&clearbtn=1&otf=1&pc=1&ssel=0&tsel=0&kc=2&v=1.0&source=is&tk=71458.468060&q=Docker%20+%20MySQL%20(8.0.11)%20%E4%B8%BB%E4%BB%8E%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA ,查看源码中的util.js
,看到那里只是对title进行了encodeURI(),但该方法似乎只作用于纯字符串。注:当使用
baidu_no_appid
不会出错,但是url会保留这些有点小丑的标点符号