关键词:
续前文: Chrome插件实现GitHub代码离线翻译v0.0.4
添加了对"码云"在线代码的翻译支持, 因此改名暂为"一马". 在此贴中调研了常用的在线代码网站: 各位都在什么源码站上在线看代码? - V2EX, 暂未发现其他.
注: 此插件调用浏览器插件-离线英汉词典 0.0.7进行查词, 因此也不依赖任何在线翻译服务, 不存在API调用限制.
改进功能:
- 支持"码云"代码翻译
- 添加 C/PHP 关键词的翻译
- 删除释义中的括号内内容
"码云"的代码段与GitHub的HTML结构略有不同, 暂时分别处理如下:
function 获取代码段()
var 当前域名 = window.location.host;
// 默认, 适用于GitHub
var 代码段节点 = 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 keyword
print("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"
下个版本打算改进的(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: 也许还需要词频数据.
2018-10-19chrome插件实现github代码离线翻译v0.0.4(代码片段)
...器插件-离线英汉词典进行词汇翻译,因此也不依赖于任何在线翻译服务.Chrome插件:官网链接支持所有编程语言因为并不需要对源代码进行语法分析(之前Java源码英翻中进展-内测上线中使用了语法分析,工作量大很多),因此原则上已... 查看详情
机器学习服务助应用内文本语种在线和离线检测(代码片段)
...种再进行翻译。HMSCore机器学习服务的语种检测服务提供在线语种检测和离线语种检测,既支持检测单语种文本,也支持检测混合语种文本,涵盖南非荷兰语、阿拉伯语等百种语言。接入语种检测服务,App可以轻松... 查看详情
Chrome 在线和离线渲染 CSS 的方式不同?
】Chrome在线和离线渲染CSS的方式不同?【英文标题】:ChromeRendersCSSDifferentlyOnlinevsOffline?【发布时间】:2012-01-2115:57:26【问题描述】:我在本地加载时Chrome无法正常渲染我的页面,但页面上线后出现问题。我做的第一件事是检查Sa... 查看详情
离线语言翻译 API [关闭]
...e)。它们是HTTPRESTfulAPI,适用于网络或移动应用程序,即在线模式下运行的应用程序 查看详情
windows,win10如何离线安装chrome
windows,win10如何离线安装chrome背景现在很多程序都是在线安装,比如下载的exe很小,双击打开后再从网络获得其他数据(真正的安装数据)。比如腾讯管家、NetFramework、chrome就是这样但是,有的时候我们希望离线安装... 查看详情
2018-10-31签到
chrome,firefox(火狐),edge官方离线安装包下载(代码片段)
...需求调整好参数后,打开链接,将显示一个同“在线安装”类似的界面,但此时下载的是离线安装包Firefox(火狐)离线安装包https://www.mozilla.org/zh-CN/firefox/all离线安装包URL: https://www.https://www.mozilla.org/zh-CN/firefox/all根据... 查看详情
chrome离线安装包最新版(代码片段)
chrome离线安装包最新版 下载地址Chrome离线安装包最新版本64位x64https://www.google.cn/chrome/?standalone=1&platform=win64Chrome离线安装包最新版本32位x86https://www.google.cn/chrome/?standalone=1&platform=win32 查看详情
actionscript3在线还是离线?(代码片段)
php自定义skype在线/离线状态(代码片段)
如何下载chrome浏览器离线安装版本?
...间:2019/12/24问题描述从Chrome浏览器官网默认下载到的是在线引导安装包,需要先运行这个在线安装程序然后再连接互联网下载。这种安装模式,在我们给企业客户做批量部署时带来非常大的麻烦。我们希望能直接下载到最新的Ch... 查看详情
2018-10-31星期三
English:listening、speaking、reading、writing、translation1. Abeautifullifebeginswithabeautifulmind.2. Anythingispossible,aslongasyousetyourmind,heartandsoultoit.3. Oncewedreamtthatwewerest 查看详情
如何将本地文件网页显示,然后使用google在线翻译工具
...技术A对于英语渣渣而言,翻译工具是如此的重要。google在线翻译插件是如此的优秀,喜欢到一发不可收拾。然而对于本地文件,google工具也是爱莫能助?咋办呢。通过如下三步即可将本地文件网页显示,然后终于可以优雅的划... 查看详情
实现有道在线翻译(代码片段)
importrequestsfrombs4importBeautifulSoup#实现有道在线翻译trans_url=‘http://m.youdao.com/translate‘headers=‘User-Agent‘:‘Mozilla/5.0(Linux;Android6.0;Nexus5Build/MRA58N)AppleWebKit/537.36(KHTML,likeGecko)Chro 查看详情
2018年十月水题总结
...11月主要是DP和图论,稍微去CF做做杂题提高思维活跃度和代码能力,预计12月和1月是数据结构和数学,二月及以后是字符串,现在还是把基础打牢吧,不能像高中那样畸形发育了。2018.10.31POJ1273网络流模板题,计导课看一本翻译... 查看详情
ansible-playbookansible服务端的在线和离线安装(代码片段)
ansible服务端的在线和离线安装一、ansible服务端的在线安装1、安装epel源然后安装ansible2、配置主机清单(根据自己需求设置组)二、ansible服务端的离线安装1、将打包好的rpm包上传服务器,yum本地源做好即可2、解压并... 查看详情
ansible-playbookansible服务端的在线和离线安装(代码片段)
ansible服务端的在线和离线安装一、ansible服务端的在线安装1、安装epel源然后安装ansible2、配置主机清单(根据自己需求设置组)二、ansible服务端的离线安装1、将打包好的rpm包上传服务器,yum本地源做好即可2、解压并... 查看详情
android百度语音合成(含离线在线api合成方式,详细步骤+源码)(代码片段)
...置AndroidManifest.xml2.配置SDK3.离线SDK初始化4.导包5.运行三、在线语音合成-SDK方式1.创建页面2.编辑代码3.配置4.运行四、在线语音合成-API方式1.鉴权返回实体2.添加框架依赖3.搭建网络请求框架4.编辑布局和页面5.获取鉴权Token6.动态权... 查看详情