Git Product home page Git Product logo

bluesea's Introduction

BlueSea

BlueSea,是一个有趣的英语学习扩展程序。她支持划词翻译、单词高亮、单词弹幕、记忆曲线复习、词频统计...

内容列表

背景

作为开发者,虽然日常总是与英语打交道,但通常是带有强烈目的性的。

因此,在解决技术问题或学习新技能的过程里,遭遇模陌生的单词时,往往直接借助翻译软件,一掠而过。不做记忆,同一个生词下次再相遇依旧不认识。

BlueSea,就是用来解决这个问题的 🔧 。她会帮你记下在日常工作、生活中遭遇的生词,并设计一套科学的复习方案,有趣的复习方式来帮助你记住更多的单词。当然,不仅仅是背单词,她能做更多。

现有功能清单:

  • 页面英文划词翻译、发音
  • 本地单词管理(单词本)
  • 词频统计(总词频,当日词频,页面内词频)
  • 精确的全局单词高亮
  • 单词弹幕(复习、发音)
  • 卡片式单词复习功能(仅在单词弹幕关闭时生效)
  • 根据遗忘曲线,自动安排单词学习计划(卡片或弹幕)
  • 导入/导出
  • 单词查询

开发与使用

下载代码到本地

git clone https://github.com/jiangqizheng/BlueSea

在 chrome 地址栏输入 chrome://extensions/ 进入到扩展程序管理界面,然后点击 加载已解压的扩展程序 选择刚刚下载到本地的 BlueSea 目录即可。

当前为测试阶段,请加载已解压的扩展程序来使用。安装扩展后,建议刷新页面。

更新

直接使用 git pull 进行更新,更新后重启 chrome 或刷新页面即可。

如出现文件合并冲突提示: `error: Your local changes to the following files would be overwritten by merge`

可以使用

`git add -A`
`git commit -m "update"`
`git pull`

配置项

{
	"划词翻译": true, //基础配置(优先级最高),是否启动划词翻译
  	"单词高亮": true, //基础配置
	"单词弹幕": true, //基础配置
	"黑名单": [],
	"中文注解": true,//全局高亮的时候,是否在单词右上角直接显示中文翻译
	"划词默认发音": true,//划词或者鼠标移入弹幕时,是否自动发音
	"单词弹幕数量上限": 10,//一屏内单词弹幕数量,据电脑性能量力而行
	"单词弹幕速度": 10, // 单位秒,默认为弹幕走完一个周期需要10秒
	"隐藏完成复习的单词": true//出于性能考虑,建议保持隐藏
 	"有道智云appkey": "", //参考下面说明,配置后支持句子翻译
  	"有道智云key": "", //参考下面说明,配置后支持句子翻译
}

后续会逐步增加可配置项(自定义遗忘曲线、高亮样式、弹幕速度...)

有道智云配置

因我的【有道智云】免费额度即将耗尽,所以暂时限制句子翻译,目前仅支持单词与短语翻译(小于四个单词)如需句子翻译,更新插件至最新、并在配置内添加自己的 有道智云key有道智云appkey

申请有道智云翻译服务流程:

  • 注册有道智云帐号并登录到控制台页面
  • 创建一个翻译实例:控制台 > 自然语言翻译 > 翻译实例 > 创建翻译实例
  • 创建一个应用并绑定翻译服务:控制台 > 应用管理 > 我的应用 > 创建应用 > 绑定服务
  • 最后在应用详情中,可以看到应用ID(有道智云appkey)与应用密钥(有道智云key),然后将其添加至插件的配置中,保存并更新,然后刷新页面即可。

其他:

  • 如果不需要句子翻译,就无需进行配置。默认已经支持了单词与短语翻译,通常来说够用了。
  • 关于价格,注册后,系统赠送50元代金券,可以额外添加微信领取50元,累计100元额度。按其每百万字符48元的价格,够用上一年了。
  • 关于安全性,配置key后,后台不会做任何记录。如果对安全性存疑, 在 background.js 中自行调用有道智云api即可。或者自行部署腾讯云函数也一样。

演示

仅供参考,迭代后实际界面可能已经发生改变。

在页面上遇到生词,进行划词翻译、发音

划词翻译

将生词加入单词本,并根据遗忘曲线,生成复习计划。在复习期间内的单词,将在页面内被高亮展示,鼠标移入可以查看信息。

单词高亮

单词到复习时间,自动创建单词弹幕在页面内出现,选择认识或不认识,动态调整复习计划。

单词弹幕

单词卡片,查看单词具体信息

单词卡片

单词本,进行单词管理,或查看词频与其他信息

单词本

配置中心,进行各类配置设定

配置

补充

  • 部分页面可能因网站设置了 csp 安全策略,会导致发音失败。
  • 关于根据遗忘曲线生成的复习时间节点逻辑说明,单词具有一个 level 字段,每次进行操作后会进行 +1 或 归零,然后根据最新的 level 生成下一次需要复习的时间节点。
  • 关于默认设置的遗忘曲线为[5,30,12 * 60,24 * 60,2 * 24 * 60,4 * 24 * 60,7 * 24 * 60,15 * 24 * 60,30 * 24 * 60] (单位分钟)。单词被收藏5分钟后将提示复习,然后是30分钟后,12小时后,以此类推。
  • 导出,支持 .json 与 .txt 导出。如果需要更多的导出格式,提交 pr 或者在 issues 中指出。
  • 导入,支持 .json 与 .txt 导入,具体格式参考导出的数据(使用 .txt 进行导入时,因为需要拉取每个单词的翻译信息所以会比较慢,并在导入期间内,不要进行其他操作)。
  • 关于性能,已测试在一个页面内最多标记 100+ 单词。单词本中测试收录 5000+ 单词,后续增加分组功能,缓解性能压力。
  • 翻译提示窗部分样式参考 ChaZD

更新日志

CHANGELOG.md

维护者

@jiangqizheng

如何贡献

非常欢迎你的加入!提一个 Issue 或者提交一个 Pull Request。

欢迎Star、Fork、

贡献者

后续更新

bluesea's People

Contributors

code-twelve avatar jiangqizheng avatar myuanz avatar think2011 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

bluesea's Issues

[feature] 对pdf的划词功能

我常用浏览器打开pdf进行阅读 希望可以增加对pdf的划词功能

如果打算支持该功能 有一点需要注意
有些pdf 例如论文 其文字本身就可以被选择中
而由扫描或者图片转换得到的pdf 本身就无法选中其中的单词 可以用 OCR 工具来识别 pdf 中的词汇
tesseract.js: 基于Javascript开发的ocr工具

OCR是一种文字识别工具 如果加入了OCR功能 不只是在pdf中 在视频等非文本的地方也能够取词(需要配合悬停取词)

[feature] 更新方式优化

目前的更新方式是只有重新安装一种么?重新安装后 显示有两个插件 原有的词库并不会跟着迁移 需要再手动导出导入词库 希望可以优化下更新 至少词库能够同步迁移 如果更新能够直接覆盖原插件上 体验会更好一些

[feature]希望增加鼠标悬浮显示单词释义的模式

看到"熟悉又陌生的单词"时, 往往需要回想一下含义, 然后进行确认, 这个回想是有利于巩固记忆的
如果把释义直接显示出来, 就没有回想的机会了
如果能提供一个模式, 鼠标悬浮到带下划线的单词上才出现释义, 效果会很好

需要允许英语单词中的 - 符号

  1. 如 后缀-ward homeward 如此可以方便有道查询词根,词根记忆也是英语单词很重要的
  2. 如 前缀 pre- previous
  3. 如 有些单词 re-organization
      if (selectTextArr.length === 1) {
        // 非句子情况下,仅匹配纯粹单词,如果匹配到特殊符号就跳过,这里是为了避免干扰复制各类命令或url
        // 是否需要兼容,可能存在左右端误选了标点符号的情况呢?
        const symbolReg = /[`~!@#$%^&*()_\-+=<>?:"{}|,.\/;'\\[\]·~!@#¥%……&*()——\-+={}|《》?:“”【】、;‘',。、]/im;
        if (symbolReg.test(selectText)) {
          return;
        }
      }

[feature] 输入单词到词库中

这个工具最吸引我的地方就是其复习功能 我想把其他地方学到的生词加入到词库 但目前添加生词的方式似乎只有选取和导入 无法通过输入来添加生词 如果为了添加单个生词而使用导入功能 稍微有些麻烦 所以希望可以添加输入框 支持输入单词到词库

引用有道接口时使用https

如下图,目前用的是http,我试了https是没问题的,因为http会导致chrome浏览器左上角的小锁显示成不安全
image

txt 文件导入不能超过20个词

我第一次用txt来迁移词库时 出现了导入不能超过20词的提示 但用json好像没有这个问题

只能 txt 导入20词有些少 希望可以改进一下

单词释义不完整

一个单词可能有多种意思,在弹幕中,没有给出完整的所有解释。这导致复习时想记住的单词意思和显示的单词翻译不一致

近期迭代计划

  • 修正弹幕复习的相关逻辑,避免 level 计算异常 #24
  • 支持更详细的单词高亮配置,允许设定高亮的单词范围(例:仅高亮复习级别<3的单词),允许按复习级别配置不同高亮样式
  • 支持选词过滤器配置
  • 优化弹幕的展示,允许通过配置,显示更多内容 #19 #23 #30
  • 收藏单词时,保存上下文信息 #5
  • 开放编辑功能,允许对单词翻译进行编辑

[feature] 词典增加批量操作

想批量删除已经学会的单词 发现只能一个一个删 有些麻烦 希望能够多选 实现批量操作

如果今后实现分组功能 多选操作是很有必要的 例如批量删除 批量移入分组 批量添加等

[feature] 弹幕显示单词卡片

希望在配置中增加一个配置项,决定在点击弹幕的时候是显示简约意思,还是显示词库中的单词卡牌。
原因如下:
1.有时候弹幕显示的意思比较偏,这样一来,利用弹幕复习一直在记一个偏僻的单词,而没有记住那个常用的意思。
2. 弹幕显示的意思不全。比如acute是'急性的',而弹幕显示的是急性,这样会误导以为这个单词是一个名词。
3. 如果显示词库中的卡片,在急不来弹幕单词的时候,还可以显示点击发音,加深记忆。

與Anki整合

feature request:
生字本能同步到Anki (或可使用AnkiConnect)

level计算错误

有几个问题:

  1. 同一个单词在同一时间可能会同时出现多个弹幕框
  2. 对其中一个操作认识/不认识,另一个不会消失
  3. 对同一单词多个弹幕框点击认识,该单词Level都会增加,导致下一次复习时间不正确
  4. 同一单词多个弹幕框,前面都点认识,最后一个点不认识,level = 0
  5. 在弹幕框出现时,可以操作固定在浏览器右上角的扩展程序,对单词选择认识/不认识,同样会导致level计算错误

还有一点:

  1. 手动输入单词查询并选择是否加入单词本功能(对图片/pdf/其他无法选词/选词状态无法获取<input/code标签等>时很有用)

记住词典的排序选择

我喜欢用复习级别排序 但重启chrome后 词典排序就恢复默认设置(创建时间排序)

希望可以记住词典的排序选择 避免每次打开 chrome 都要重新设置

怎么查看配置呀?

怎么查看配置呀?配置中心怎么打开, 是在地址栏旁边有个L的图标吗,我的 chrome browse 没有这个图标
我的 chrome browse Version 87.0.4280.88

[feature] 显示当前版本

希望可以添加显示当前版本的功能

同时当前的版本号只有一个 每次更新都以时间显示 可以给每次更新都对应一个小的版本号 这样使用者能更准确的知道现在使用的是什么版本 支持哪些功能

[feature] 增加例句收藏功能

在收藏单词的时候, 顺便把其所在的例句收藏起来
这样可以在查看单词释义的时候, 把过去的例句显示出来

希望增加对复数形式、过去式的支持

比如我收藏了apple这个单词,当网页中出现apples的时候,却不会显示翻译。而日常英文网页用到的复数形式单词还是挺多的,把单复数都手动收藏一遍不现实,不止能否以正则的方法加入对单复数、过去式等同一单词不同形式的识别功能

[feature] 词库增加排序功能

希望词库增加排序功能

目前词库排序是按照加入时间 有些词因为反复记不住 需要多次去词库查看 但每次都要下拉才能看到 尤其是词库添加的词较多时 这样的操作有些不便

所以希望在词库加入排序功能 或者置顶功能 会提升一定的使用感

BUG

1.https://developer.mozilla.org/zh-CN/ 这个网站上的不出现任何提示
2.如果单词在网页的上端,出现的提示框会有一部分看不到
3.按发音单词不发音,包括github网站

单词显示不全&没有翻译

首先谢谢作者的辛勤劳动成果,这里有几个意见请作者参考
1.收藏的单词或词组显示不全
image
2.单词滚动的时候,能不能增加一两个中文翻译,只滚动单词感觉还是没记住
3.是不是可以增加一个功能,像看视频一样,只在浏览器的部分界面显示弹幕,这样全屏的滚动很容易造成误操作
谢谢作者:)

[feature] 自定义单词弹幕翻译

想要自定义单词字幕显示的翻译 但目前无处修改

你好 有时候要记熟词僻意 这时候单词卡和单词字幕上的默认翻译就不太理想 比如 provided 我想要修改单词字幕以显示“假如”的意思 而不是“提供”

希望可以实现这个功能

[功能增强]希望能自定义弹幕速度

如题,每个人可能有他适应的速度,有些人可能希望快一点,有些人可能希望慢一点,所以建议做成在一定的范围内速度可调比较好。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.