Chrome插件实现GitHub代码翻译v0.0.3

简介: 实现Chrome插件, 基于本地词典数据, 提供Github在线源码翻译功能. Show how to translate English source code to Chinese on Github pages.

2018_10_17_github_

续前文浏览器插件实现GitHub代码翻译原型演示, 通过调用浏览器插件-离线英汉词典的批量查词接口, 实现了源码的初步命名直译.

源码库仍在: program-in-chinese/webextension_github_code_translator

还缺失的功能: 驼峰命名法拆分. 比如图中所示, BasicCalculator未翻译.

语言关键词词典.js. 內建词典包括常用关键词, 以及Java和Python的专用关键词:

var 通用关键词 = {
  'assert': "断言",
  'import': "导入",
  "if": "如果",
  "else": "否则",
  "while": "每当",
  "for": "对于",
  "in": "在",
  "switch": "岔",
  "case": "分支",
  "break": "跳出",
  "continue": "继续",
  "return": "返回",
  "throw": "抛出",
  "finally": "善后",
  'class': "类别",
  'is': "为"
}

var 专用关键词 = {
  /*
  参考 http://zetcode.com/lang/python/keywords/
  import keyword
  print("Python keywords: ", keyword.kwlist)
  */
  "python": {
    'False': "假",
    'None': "空",
    'True': "真",
    'and': "且",
    'as': "as",
    'def': "定义",
    "del": "删除",
    'elif': "否则如果",
    'except': "except",
    'from': "从",
    'global': "全局",
    'lambda': "lambda",
    'nonlocal': "nonlocal",
    'not': "不",
    'or': "或",
    'pass': "轮空",
    'raise': "抛出",
    'with': "with",
    'yield': "产出"
  },
  // 参考 https://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html
  "java": {
...
  }
}

释义处理.js. 查词后, 选取一个"合适"的词义, 这里还很粗糙:

function 首选(中文释义, 所有词性) {
  if (!中文释义) {
    return;
  }
  var 首选词义 = "";
  var 词性到释义 = 分词性(中文释义, 所有词性);
  //console.log(词性到释义);
  if (词性到释义[词性_计算机]) {
    首选词义 = 词性到释义[词性_计算机][0];
  } else {
    // 取第一个词性的第一释义
    for (var 词性 in 词性到释义) {
      首选词义 = 词性到释义[词性][0];
      break;
    }
  }
  return 首选词义;
}

主界面.js中进行翻译的主体部分:

function 翻译() {
  var 原代码拷贝 = document.getElementsByTagName('table')[0];
  var 顶节点 = 原代码拷贝.parentElement;
  var 编程语言 = 取编程语言(顶节点);
  var span字段列表 = 原代码拷贝.getElementsByTagName('span');
  var 文本字段列表 = 取子文本节点(document);

  关键词词典 = 取所有关键词(编程语言);
  // 合并两个部分
  添加所有待查词(span字段列表);
  添加所有待查词(文本字段列表);

  chrome.runtime.sendMessage(
    "ndifefelacmidghjaehmhicbchbidhpe",
    命名词典,
    function(返回值) {
      命名词典 = 返回值.所有释义;
      for (var 词 in 命名词典) {
        命名词典[词] = 常用命名[词] ? 常用命名[词] : 首选(命名词典[词], 词性);
      }
      翻译字段列表(span字段列表);
      翻译字段列表(文本字段列表);

      顶节点.insertBefore(document.createTextNode("编程语言: " + 编程语言), 原代码拷贝);
    }
  );
}
相关文章
|
9天前
|
人工智能 IDE 编译器
idea如何使用AI编程提升效率-在IntelliJ IDEA 中安装 GitHub Copilot 插件的步骤-卓伊凡
idea如何使用AI编程提升效率-在IntelliJ IDEA 中安装 GitHub Copilot 插件的步骤-卓伊凡
71 15
idea如何使用AI编程提升效率-在IntelliJ IDEA 中安装 GitHub Copilot 插件的步骤-卓伊凡
|
1月前
|
Web App开发 存储 开发者
Chrome 插件上架发布全流程指南
浏览器插件开发完以后,要发布到 Chrome Web Store上,也是需要颇费一番周折的,本文就从注册账号开始,一直到最后发布上架的全流程进行指导,希望帮助你提供一些经验,避免踩坑,耗时耗力。
249 8
|
1月前
|
Devops Shell 网络安全
git使用之如何将一套代码同时推送至github|gitee|gitcode|gitlab等多个仓库-含添加ssh-优雅草央千澈完美解决-提供整体提交代码
git使用之如何将一套代码同时推送至github|gitee|gitcode|gitlab等多个仓库-含添加ssh-优雅草央千澈完美解决-提供整体提交代码
85 16
git使用之如何将一套代码同时推送至github|gitee|gitcode|gitlab等多个仓库-含添加ssh-优雅草央千澈完美解决-提供整体提交代码
|
4月前
|
开发工具 git Python
代码管理记录(二):Github代码上传实操
本文是关于如何使用Git将本地代码上传到GitHub的实操指南。介绍了Git的基本概念、安装方法,并通过详细的步骤指导用户从GitHub创建仓库到使用Git命令初始化、添加、提交代码,最终将代码推送到远程仓库。同时,还汇总了一些常见的错误及其解决方法。
124 2
代码管理记录(二):Github代码上传实操
|
4月前
|
Web App开发 JSON JavaScript
vue学习:chrome 中 vuetools 开发插件 的下载、安装
这篇文章介绍了如何在Chrome浏览器中下载、安装并测试Vue.js开发插件——vue-devtools。
731 0
vue学习:chrome 中 vuetools 开发插件 的下载、安装
|
6月前
|
Web App开发 存储 前端开发
《Chrome谷歌插件Top10》开发最好用的谷歌插件
本文介绍了多个实用的浏览器插件及其安装方法。包括CSDN浏览器助手,提供高效开发工具;FeHelper,前端必备工具,支持格式化、压缩等功能;uBlock Origin,有效屏蔽广告和弹窗;PageLiner,网页标尺工具,便于前端设计;Fatkun,批量下载图片;Smallpdf,文件转换工具;Octotree,GitHub代码树插件;Awesome Screenshot,截图与录屏工具;ColorZilla,颜色拾取器;Dark Reader,暗黑模式阅读插件。安装方式有通过Chrome商店搜索或下载crx插件本地安装。
128 11
|
6月前
|
Web App开发 JSON 前端开发
30个Chrome 灵魂插件!
30个Chrome 灵魂插件!
81 4
|
6月前
|
数据安全/隐私保护
【Azure Developer】Github Action使用Azure/login@v1插件登录遇见错误的替代方案
【Azure Developer】Github Action使用Azure/login@v1插件登录遇见错误的替代方案
|
6月前
|
Web App开发 前端开发 JavaScript
灵魂拷问-前端的作用--chrome插件篇
本文会从浏览器插件应用场景切入,穿插插件基础能力和常见入口的介绍,核心回答如下三个问题:插件可以被使用在哪些场景?不同的使用场景我们的主要代码实现思路是怎样的?我们可以从哪些角度入手自己开发一款可以落地实用的浏览器插件?
|
6月前
|
安全 网络协议 Shell
Github代码仓库SSH配置流程
这篇文章是关于如何配置SSH以安全地连接到GitHub代码仓库的详细指南,包括使用一键脚本简化配置过程、生成SSH密钥对、添加密钥到SSH代理、将公钥添加到GitHub账户以及测试SSH连接的步骤。
146 0
Github代码仓库SSH配置流程

热门文章

最新文章