如前文在浏览器插件中读取JSON资源文件末所述, 用浏览器插件实现了不依赖任何在线翻译服务的英汉词典. 由于词典包含77万个词条, 插件大小也达到了13+MB.

词典数据也包含很多常见短语:

源码库: program-in-chinese/webextension_english_chinese_dictionary

在火狐插件网站提交审核时, 发现源文件大小有限制, 超过4MB就不能被审核服务自动分析. 于是按每个词典文件五万词条进行分隔(详见转换到JSON; 按五万行分隔json · program-in-chinese/english-chinese-dictionary@10b55f6)

插件源码主要是导入词典数据和查询/显示两部分:

加载词典.js

const 词典路径 = '词典数据/词典'
const 文件扩展 = '.json'
var 词典文件 = {};
for (var 文件序号 = 0; 文件序号 < 16; 文件序号++) {词典文件[文件序号] = false;
}
var 词典数据 = {};function 载入部分词典(文件) {return function () {var 文件路径 = 词典路径 + 文件 + 文件扩展;fetch(chrome.runtime.getURL(文件路径)).then((响应) => 响应.json()).then((数据) => {for (var 英文 in 数据) {词典数据[英文] = 数据[英文];}词典文件[文件] = true;});}
}for (var 文件 in 词典文件) {载入部分词典(文件)();
}function 已载入词典() {for (var 文件 in 词典文件) {if (!词典文件[文件]) {return false;}}return true;
}function 取释义(选中文本) {var 释义 = 词典数据[选中文本];if (!释义) {选中文本 = 选中文本.toLowerCase();释义 = 词典数据[选中文本];}return 释义;
}

主界面.js

function 翻译选中文本() {chrome.tabs.executeScript({code: "window.getSelection().toString();"}, function (选中内容) {// TODO: 如果没有toString, 报错: -,.toLowerCase is not functionvar 选中文本 = 选中内容.toString();if (!选中文本) {置弹窗内容("无选中文本");return;}var 词典接口 = chrome.extension.getBackgroundPage();if (!词典接口.已载入词典()) {置弹窗内容("载入词典数据中...");return;}var 释义 = 词典接口.取释义(选中文本);置弹窗内容(选中文本, 释义);});
}function 置弹窗内容(英文, 释义) {var 窗体 = document.body;var 英文部分 = document.getElementById("英文");var 释义部分 = document.getElementById("释义");英文部分.appendChild(document.createTextNode(英文));var 多行 = 释义.split('\\n');for (var 行数 in 多行) {释义部分.appendChild(document.createTextNode(多行[行数]));释义部分.appendChild(document.createElement("br"));}
}翻译选中文本();

另, 已在Chrome插件商店发布. 链接如下:

  • 火狐插件
  • Chrome插件

浏览器插件-离线英汉词典 2018-10-12相关推荐

  1. Python对英汉词典的若干操作(#10)

    从网上下载了一个英汉词典txt版,整理后放在了py文件同一目录下,取名为"英汉词典".后面要用正则表达式处理这些单词. 1.读取英汉词典前10行 f=open("英汉词典 ...

  2. 【小型JavaFx项目】英汉词典

    英汉词典 简介 知识点简介 效果图 源代码 Word.java DictionaryFunction.java DictionaryFrame.java 简介 花了1个多小时帮数媒的同学用以前的项目改 ...

  3. APP Designer 制作简易英汉词典的回调函数书写

    APP Designer 制作简易英汉词典的回调函数书写 在学习MATLAB 的App Designer 时看到的一个有意思的小项目,主要步骤参考了slandarer 的MATLAB 手把手带你制作第 ...

  4. 电子英汉词典c语言程序设计报告,英汉电子词典设计报告_设计_C语言_C语言程序设计.doc...

    英汉电子词典设计报告_设计_C语言_C语言程序设计 课程设计 课程名称 :C语言程序课程设计 题目名称 :电子英汉词典 学生学院 :电气信息学院 专业班级 :自动化1101 学 号 :20110102 ...

  5. linux英汉字典代码,Ubuntu安装英汉词典(词库)详细步骤

    Ubuntu安装英汉词典(词库)详细步骤 发布时间:2013-05-26 11:26:08   作者:佚名   我要评论 linux并不缺少词典软件.但是缺少词库.所有的词典软件都需要,自己下载安装词 ...

  6. c语言电子英汉词典编程报告,电子英汉词典的编程C语言报告.doc

    课程设计(论文) 课 题: 电子英汉词典的编程 学 院: 专 业: 学生姓名: 学 号: 指导老师 : 目录 *内容摘要-----------.---..-------------..3 *关键词-- ...

  7. 电子英汉词典c语言设计报告,C语言课程设计——电子英汉词典汇编.doc

    PAGE 课 程 设 计 报 告 课程名称 C语言课程设计 课题名称 电子英汉词典 专 业 纺织服装学院 班 级 纺工1203 学 号 姓 名 指导教师 田 媛 2014年 01 月06 日 湖南工程 ...

  8. python英汉词典

    # -*- coding: utf-8 -*- """ Created on Tue Dec 18 01:06:45 2018@author: Administrator ...

  9. 英汉词典c语言报告程序,C语言电子英汉词典程序设计报告-自动化1203-李煜明.docx...

    课 程 设 计 报 告 课程名称 C语言课程设计 课题名称 电子英汉词典 专 业 自动化 班 级 1203 学 号 201201020304 姓 名 李煜明 指导教师 欧阳湘江 田媛 张晓清 2013 ...

最新文章

  1. 日调用量超三十万亿,腾讯开源百万级服务发现和治理中心北极星
  2. 计算机等级delphi取消,计算机二级DELPHI控件:DELPHI过滤记录的实现方法
  3. 正则表达式:获取一串字符串中,某个字符串到某个字符串之间的字符串,不包含左右,只取中间
  4. Delphi6及SqlServer对于生僻字䶮的支持测试
  5. 转载关于通过判断浏览器的userAgent,用正则来判断是否是ios和Android客户端
  6. java关键字汉化_java关键字是什么
  7. 漫谈 - 从技术业务骨干走向管理
  8. 命令查询每个文件文件数
  9. 定时任务莫名停止,Spring 定时任务存在 Bug??
  10. vscode的pip安装
  11. Lisp真的是屠龙之技吗?
  12. 无法删除的文件夹怎么办?如何删除删不掉的文件夹
  13. UltraCompare如何进行模块和线路模式合并?
  14. 固定翼位置控制_L1
  15. 计算机思维能力培养的核心是什么,【计算机基础论文】计算机基础教学中计算思维能力培养(共6714字)...
  16. 弹窗广告关不掉?工信部:用这个方法举报!
  17. 最近我都干了些什么——反思!!
  18. 怎么样关闭计算机的操作音,电脑报警音怎么关闭
  19. 深入理解pdf.js,PDFObject, iframe 三种方式来打开PDF文件的区别
  20. FDTD仿真、解决微环透射率大于1 T大于1的问题

热门文章

  1. 差分进化算法及其Python实现
  2. FPGA入门相关资料
  3. Windows和Linux下的系统声音控制
  4. 【 五子棋对战平台(java_gobang) 】
  5. aardio调用AForge操作摄像头并实现镜像旋转功能
  6. FPGA驱动FT601实现USB3.0相机 OV5640视频采集 提供2套工程源码和QT上位机源码
  7. 计算机二级考试C语言选择题知识点总结,易错点总结(持续更新)
  8. mysql 加密脱敏字段模糊查询 笔记
  9. 基于NanoHttpd的Android视频服务器开发
  10. 2019好程序员Java开发入门视频教程分享