续前文: Chrome插件实现GitHub代码离线翻译v0.0.4

添加了对"码云"在线代码的翻译支持, 因此改名暂为"一马". 在此贴中调研了常用的在线代码网站: 各位都在什么源码站上在线看代码? - V2EX, 暂未发现其他.

注: 此插件调用浏览器插件-离线英汉词典 0.0.7进行查词, 因此也不依赖任何在线翻译服务, 不存在API调用限制.

改进功能:

  • 支持"码云"代码翻译
  • 添加 C/PHP 关键词的翻译
  • 删除释义中的括号内内容

    "码云"的代码段与GitHub的HTML结构略有不同, 暂时分别处理如下:
function 获取代码段() {var 当前域名 = window.location.host;// 默认, 适用于GitHubvar 代码段节点 = document.body.getElementsByTagName('table')[0];if (当前域名 == "gitee.com") {代码段节点 = document.body.getElementsByClassName('code')[0]}// GitHub: 父节点的class包含编程语言信息, 如class="blob-wrapper data type-python "return [代码段节点.parentElement.outerHTML];
}function 翻译() {// TODO: 避免与`获取代码段()`重复var 编程语言 = "";var 原代码拷贝 = document.body.getElementsByClassName('code');var 顶节点 = null;if (原代码拷贝.length == 0) {原代码拷贝 = document.getElementsByTagName('table')[0];顶节点 = 原代码拷贝.parentElement;编程语言 = 取编程语言(顶节点);} else {添加CSS("https://gitee.com/assets/application-e5df8140372297eda15f23497886ffdb.css");原代码拷贝 = 原代码拷贝[0];}
...
}

大幅增加了通用关键词的手工翻译, 以覆盖尽可能多的编程语言:

// TODO: 并非所有编程语言都有. 会影响命名翻译.
var 通用关键词 = {"abstract": "抽象","and": "且","as": "as","assert": "断言","break": "跳出","boolean": "布尔","byte": "字节","char": "字节","const": "const","case": "分支","class": "类别","catch": "接住","continue": "继续","default": "默认","do": "执行","double": "双浮点","else": "否则","enum": "枚举","extends": "扩展","extern": "外部","false": "假","final": "最终","finally": "善后","float": "单浮点","for": "对于","function": "函数","global": "全局","goto": "goto","if": "如果","implements": "实现","import": "导入","in": "在","include": "包括","instanceof": "为实例","int": "整数","interface": "接口","is": "为","long": "长整数","native": "native","new": "新","null": "空","or": "或","package": "包","private": "私有","protected": "保护","public": "公有","return": "返回","short": "短整数","signed": "有符号","sizeof": "大小","static": "静态","struct": "结构","super": "父类","switch": "岔","synchronized": "同步","this": "本身","throw": "抛出","throws": "会抛出","transient": "transient","true": "真","try": "尝试","typedef": "类型定义","union": "联合","unsigned": "无符号","void": "无值","volatile": "volatile","while": "每当","with": "with","yield": "产出"
}var 专用关键词 = {// https://msdn.microsoft.com/en-us/library/befeaky0.aspx"c": {"auto": "auto","register": "register"},// http://php.net/manual/en/reserved.keywords.php"php": {// array()"callable": "可调用","clone": "克隆","const": "const","declare": "声明",// die()"echo": "回响","elseif": "否则如果",// empty()"enddeclare": "结束声明","endfor": "结束for","endforeach": "结束foreach","endif": "结束if","endswitch": "结束switch","endwhile": "结束while",// eval()// exit()"foreach": "对每个","implements": "实现","include_once": "包括_单次","instanceof": "为实例","insteadof": "insteadof","interface": "接口",// isset()// list()"namespace": "命名空间","print": "打印","require": "需要","require": "需要_单次","trait": "trait",// unset()"use": "use","var": "var","xor": "异或"},"javascript": {"arguments": "参数","await": "等待","debugger": "调试器","delete": "删除","eval": "eval","export": "导出","let": "让","typeof": "为类型","var": "变量"},/*参考 http://zetcode.com/lang/python/keywords/import keywordprint("Python keywords: ", keyword.kwlist)*/"python": {"False": "假","None": "空","True": "真","def": "定义","del": "删除","elif": "否则如果","except": "except","from": "从","lambda": "lambda","nonlocal": "nonlocal","not": "不","pass": "轮空","raise": "抛出",},// 参考 https://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html"java": {"strictfp": "strictfp"}
}

Chrome插件商店

下个版本打算改进的(11/02/2018: 在0.0.11版中已基本完成):

  • 让用户可以选择是否中文化关键词 · Issue #3 · program-in-chinese/webextension_github_code_translator

  • 常用命名/缩写的手工翻译 · Issue #17 · program-in-chinese/webextension_github_code_translator

  • 复数词汇取原词释义 · Issue #12 · program-in-chinese/webextension_github_code_translator: 也许还需要词频数据.

在线代码离线翻译Chrome插件一马v0.0.8 2018-10-31相关推荐

  1. 2018-11-04 在线代码离线翻译Chrome插件一马v0.0.14

    续前文: 在线代码离线翻译Chrome插件"一马"v0.0.8. 主要改进如下. 项目源码库: program-in-chinese/webextension_github_cod ...

  2. idea 划词就能翻译的插件_划词翻译插件下载-划词翻译Chrome插件-独木成林

    划词翻译Chrome插件是一款强大的电脑翻译工具,它基于谷歌Chrome内核,可以帮助用户进行国内外多种语音的翻译操作,拥有百度翻译.有道翻译和谷歌翻译等多种翻译引擎,支持中外文互译,并且多种文档都有 ...

  3. c多语言开发,“手把手”教你开发一个多语言翻译chrome插件

    多语言互译chrome插件 最近逛掘金看了下,前端必备技能项竟然有"chrome插件开发",想想了自己的英语功力(开机自启动"有道翻译"-哈哈哈),于是,话不多 ...

  4. 如何离线安装chrome插件

    如何离线安装chrome插件 本文转自Work Hard Work Smart博客园博客,原文链接:http://www.cnblogs.com/linlf03/p/6838852.html,如需转载 ...

  5. 在线视频调速 chrome插件

    在线视频调速 chrome插件 网站视频播放格式主要为html5,flash等等. 对于主流视频网站 Chrome插件 video speed controller 在chrome网上应用商店下载安装 ...

  6. 2018-10-19 Chrome插件实现GitHub代码离线翻译v0.0.4

    续前文Chrome插件实现GitHub代码翻译v0.0.3. 添加了对驼峰命名的支持. 由于调用浏览器插件-离线英汉词典进行词汇翻译, 因此也不依赖于任何在线翻译服务. Chrome插件: 官网链接 ...

  7. Chrome插件实现GitHub代码离线翻译v0.0.4 2018-10-19

    续前文Chrome插件实现GitHub代码翻译v0.0.3. 添加了对驼峰命名的支持. 由于调用浏览器插件-离线英汉词典进行词汇翻译, 因此也不依赖于任何在线翻译服务. Chrome插件: 官网链接 ...

  8. 一些实用的Chrome插件

    FEHelper 简介 本插件支持Chrome.Firefox.MS-Edge浏览器,内部工具集持续增加,目前包括 JSON自动/手动格式化.JSON内容比对.代码美化与压缩.信息编解码转换.二维码生 ...

  9. idea svn插件离线安装_idea离线安装lombock插件

    技术交流群:233513714 安装过程 1.首先找到插件包 插件包可以在两个地方下载,分别是IDEA的官方插件仓库和GitHub里lombok-intellij-plugin仓库中的release包 ...

最新文章

  1. 1.8M超轻量目标检测模型NanoDet,比YOLO跑得快
  2. 如何用计算机玩我的世界,怎样在电脑上玩《我的世界》
  3. [51nod1376] 最长递增子序列的数量
  4. apollo 配置中心_分布式配置中心之Apollo
  5. python中深拷贝和浅拷贝
  6. linux 计划任务 实例,计划任务 cron 的配置和实例
  7. java设计模式观察者模式吗_Java设计模式之观察者模式原理与用法详解
  8. 电脑cpu和手机cpu的差距有多大?
  9. 服务器应用层次划分,服务器按应用层次划分的话可以分为哪几种?
  10. Win10快捷键大全快速开发切换操作之道
  11. 2020年中国汽车后市场行业发展现状分析,汽车保有量不断提升,行业发展前景广阔「图」
  12. flutter 如何判断页面渲染完毕
  13. Excel数据分析实战之开宗明义: Excel与数据分析实战
  14. Numpy 学习专题(十)—— 大作业
  15. 【WinForm】关于截图识别数字并计算的桌面程序实现方案
  16. 计算机与资源管理器有何区别,资源管理器与我的电脑有什么不同.PPT
  17. anytime you feel the pain,hey,dear,refrain
  18. 我的奇思妙想机器人消防员_我的奇思妙想智能机器人作文400字
  19. 【C语言刷题】文件操作章节配套练习(选择题 + 编程题)
  20. 打印机驱动中如何生成证书及签名

热门文章

  1. Java简单雷电游戏代码
  2. maven的settings配置文件详解
  3. 数学与造芯片_“芯片砸钱不行,得砸数学家”!8本书助你成为数学家
  4. SqlParameter in (@ids)_se7en3_新浪博客
  5. 【iOS-iap防护】验证用户付费收据!拒绝iap Cracker!拒绝iap Free!让iphone越狱用户无从下手!【2012年5月2日更新防护iap Free的方法】
  6. Centos7制作Openstack下win7 镜像
  7. linux 查看网卡连接网线,查看网卡是否连接网线
  8. uniapp输入框弹起软键盘顶起页面
  9. 基于Android Q 修改默认音量等级
  10. 《嫌疑人X的献身》——两个天才之间的思想火花