划词翻译

选中文字自动翻译

< Feedback on 划词翻译

Review: Good - script works

§
Posted: 2018-04-01
Edited: 2018-04-01

一个小建议,关于翻译中对某些特殊英文串的处理

嗨, 你好。

问题描述

我非常的喜欢你写的这个脚本,很多时候我都是靠这个脚本来学习,因为我的英文能力基本上等于零,所以有些时候在翻看网上的代码的时候会遇到一些很尴尬的情况。

你知道,很多注释或者变量名的写法都是使用大小写而不是空格来切分单词的,所以当我想用这个小脚本来翻译对应的内容的时候,会因为无法识别这种句子,无法完成翻译。

解决方法

我想到一个好办法,在你的脚本中稍微修改一下,现在效果不错,特地反馈一下。

在你的代码55行下面添加下面一句. var mytext = text.replace(/([a-z])([A-Z])/g, '$1 $2');

然后修改一下下面这句成为这样。 var encodeText = encodeURIComponent(mytext);

可能会有的问题

因为我没有测试过日文或者韩文,所以不知道这种单纯的用正则的方法给大写字母前加空格的做法会不会影响其他的语言。


祝这个脚本更好 我不会写java脚本,希望能帮到像我这样无知却有特殊需求的人。

§
Posted: 2018-04-01

我想了一下,这样做也可以。 var encodeText = encodeURIComponent(text.replace(/([a-z])([A-Z])/g, '$1 $2'));

冻猫Author
§
Posted: 2018-04-12

感谢你的反馈,非常实用的功能,之后我会加上的。

不影其他语言。 只要适合你自己使用习惯就好,这样改没问题的。

要翻译变量的话,有些大写缩写可以分离出来。 encodeURIComponent-->encode URI Component encodeComponent-->encode Component encodeURI-->encode URI

var text = 'encodeURIComponent'; var mytext = text.replace(/([a-z])([A-Z])/g, '$1 $2'); mytext = mytext.replace(/([A-Z]+)([A-Z][a-z])/g,'$1 $2'); 或者 var text = 'encodeURIComponent'; var mytext = text.replace(/([a-z])([A-Z])/g, '$1 $2').replace(/([A-Z]+)([A-Z][a-z])/g,'$1 $2');

只用一个replace也可以,不过如果没出现多个大写字母的话,单词中间会多一个空格,但是不影响翻译结果。 var text = 'encodeURIComponent'; var mytext = text.replace(/([a-z])([A-Z]*)([A-Z][a-z])/g, '$1 $2 $3');

§
Posted: 2018-04-13

很棒

Post reply

Sign in to post a reply.