commit 555848247943d92af7111e08db6be2260e5416dc Author: eddy Date: Sun Jul 19 21:09:58 2026 +0800 init diff --git a/PROMPT.md b/PROMPT.md new file mode 100644 index 0000000..5e492b7 --- /dev/null +++ b/PROMPT.md @@ -0,0 +1,33 @@ +## AI 英语助教 + +我想记牢这些单词 (words-2025-08-26.json),帮我用 html 写一个 WebSite。 +- index.html +- styles.css +- script.js + +### 核心功能 + +1. 导入 JSON 单词(支持文件选择和粘贴,自动去重) +2. 添加 AI 模型(OpenAI 兼容 Chat Completions API) +3. 邮件提词(粘贴英文邮件,智能提取单词,过滤停用词/人名,AI 批量翻译后加入词库) +4. 邮件学习(全文阅读模式、AI 分析、全文翻译、高亮词库单词) +5. AI 测试(英译中 / 中翻英,分组出题,支持错题测试和收藏测试) +6. 错题复习(卡片学习模式,认识/模糊/不认识三档评价) +7. 艾宾浩斯遗忘曲线复习(6 阶段间隔:1/2/4/7/15/30 天) +8. 学习数据统计(Chart.js 柱状图,错题 Top 10,掌握分布) +9. 单词收藏(星标收藏,支持按收藏筛选和测试) + +### 设置页面 + +- API Key(password 输入框) +- API URL(格式:`https://tohub.com/v1`) +- Model(默认 `gemini-3-flash`) +- 内置词库自动加载开关 +- 数据管理(导出/导入备份、清空数据) + +### 技术要求 + +- 不用数据库,数据存放在浏览器 localStorage +- 纯前端,无需构建工具 +- 响应式设计,支持移动端 +- 明暗主题切换 diff --git a/README.md b/README.md new file mode 100644 index 0000000..65c35a4 --- /dev/null +++ b/README.md @@ -0,0 +1,92 @@ +# AI 英语助教 + +一个纯前端的英语单词学习应用。无需后端,学习数据保存在浏览器 `localStorage`;可导入词库、从邮件提词、进行测试和错题复习,并支持可选的 OpenAI 兼容 AI 服务。 + +仓库包含两个可独立运行的版本: + +- `src/`:当前单文件式实现(`index.html`、`styles.css`、`script.js`)。 +- `refactor/`:ES Modules 重构版;按页面、服务、UI 与样式拆分,保持原有功能和数据兼容。 + +## 启动 + +应用需要通过 HTTP 服务运行,不能直接打开 HTML 文件。 + +```powershell +# 在仓库根目录运行 +python -m http.server 8000 +``` + +开发原版 `src/` 时,Windows 10 可用仓库根目录的脚本一键控制服务: + +```powershell +python serve.py start # 后台启动,访问 http://localhost:8000/ +python serve.py status # 查看运行状态 +python serve.py stop # 停止服务 +``` + +脚本不生成 PID 文件,而是通过 8000 端口识别 `src/` 的本地 HTTP 服务;当端口被其他程序占用时,可在提示后选择强制关闭该进程并启动。 + +打开: + +- 原版:(使用上述根目录命令)或 (使用 `serve.py`) +- 重构版: + +也可启动重构版预设脚本: + +```powershell +cd refactor +npm run serve +``` + +该脚本会将仓库根目录作为 HTTP 根目录,因此可正确读取根目录的 `data/` 词库。两版若要共享已有学习数据,必须使用相同的协议、主机和端口;`localStorage` 按 origin 隔离。 + +## 功能概览 + +- 单词库:JSON 导入与导出、搜索、分类与收藏筛选、详情和发音。 +- 学习与复习:基于 `[1, 2, 4, 7, 15, 30]` 天间隔的复习计划、错题卡片复习与学习统计。 +- 测试:英译中、中译英、本地或 AI 出题、错题与收藏范围测试。 +- 邮件学习:从英文邮件提取词汇、批量翻译入库、全文阅读、高亮、朗读与 AI 分析。 +- 设置:主题、AI 配置、词库自动加载、完整数据备份与恢复。 + +## 技术与外部服务 + +- 原生 HTML、CSS、JavaScript;重构版使用浏览器原生 ES Modules,无构建步骤。 +- Font Awesome、Chart.js。 +- Free Dictionary API、Azure TTS、有道 TTS 与浏览器 Web Speech(网络语音不可用时回退到浏览器朗读)。 +- OpenAI 兼容 Chat Completions API(可选,用于出题、翻译和邮件分析)。 + +CDN 或第三方 API 被网络、离线环境或 CSP 阻止时,相应的图标、图表、AI 或网络语音功能会受限。 + +## 数据与兼容性 + +核心数据包括单词、练习记录、复习计划、收藏、邮件、主题与 AI 设置。重构版沿用原版的数据结构,并支持将默认词库的旧键(如 `words`、`records`、`schedule`、`favorites`)迁移为按词库分组的存储键。 + +重构版的主要目录: + +- `refactor/js/core/`:状态、存储、路由与事件委托。 +- `refactor/js/services/`:TTS、AI、复习算法、统计、出题、提词与词库服务。 +- `refactor/js/pages/`:各页面和学习流程。 +- `refactor/js/ui/`:主题、侧边栏、Toast、Modal 与 DOM 工具。 +- `refactor/styles/`:按原样式级联顺序拆分的样式文件。 + +重构版不使用内联事件处理器;交互通过命名空间化的 `data-action` 和统一事件委托处理。 + +## 验收 + +重构版的手工验收清单位于 [`refactor/docs/smoke-test.md`](refactor/docs/smoke-test.md)。验证时请在开发者工具中检查 Console,并确认两版使用同一 origin 后再检查历史数据。 + +## 发布与缓存 + +Linux 服务器可使用 `deploy.sh` 一键下载并部署 `main` 分支的最新版本: + +- 保留 deploy 参数,以便下载脚本后直接执行部署,而不是进入交互菜单。 + +```bash +bash <(curl -fsSL https://raw.githubusercontent.com/ghuang-top/AI_English/main/deploy.sh) deploy +``` + +脚本会将 `src/index.html`、`src/js/` 和 `src/styles/` 部署到 `/root/data/docker_data/Nginx/html/english/ai/`,清理目标目录中的其他内容,但保留已有的 `data/` 目录。运行前请确认目标路径符合服务器配置;脚本需要 root 权限以及 `curl`、`tar`、`find` 命令。 + +`src/index.html` 通过 CSS 和 JavaScript URL 的 `v` 查询参数控制静态资源缓存。每次发布修改了 `src/styles.css` 或 `src/script.js`,请同步递增对应版本号。服务器应优先为 `index.html` 设置 `Cache-Control: no-cache`;带版本号的静态资源可长期缓存。 + +设置页的“获取最新版本”仅清理应用资源缓存,不应改为清除 `localStorage`,以免丢失学习数据和 AI 配置。 diff --git a/data/gpt5.6-2026-07-12.json b/data/gpt5.6-2026-07-12.json new file mode 100644 index 0000000..286259e --- /dev/null +++ b/data/gpt5.6-2026-07-12.json @@ -0,0 +1,4664 @@ +[ + { + "id": 1, + "english": "use", + "frequency": 40, + "category": "action_verbs", + "chinese": "使用;利用", + "phonetic": "/juːz/", + "forms": { + "verb": [ + "uses (第三人称单数)", + "using (现在分词)", + "used (过去式/过去分词)" + ] + }, + "example": { + "en": "That is what we use on BB and AS.", + "cn": "这就是我们在 BB 和 AS 上所使用的方案。" + } + }, + { + "id": 2, + "english": "image", + "frequency": 33, + "category": "technical_core", + "chinese": "图像", + "phonetic": "/ˈɪmɪdʒ/", + "forms": { + "noun": "images (复数)" + }, + "example": { + "en": "I think the machine is displaying the binary image, meaning the images were already processed.", + "cn": "我认为机器当前显示的是二值图像,这意味着这些图像已经经过处理。" + } + }, + { + "id": 3, + "english": "vision", + "frequency": 25, + "category": "technical_core", + "chinese": "视觉;视野", + "phonetic": "/ˈvɪʒən/", + "forms": { + "noun": "visions (复数)" + }, + "example": { + "en": "Hi Zhijie,\n\nI would like to ask for your feedback / comments on some of the questions I have to how the Avaline FAEs set up the vision.", + "cn": "志杰,你好:\n\n关于 Avaline 现场应用工程师如何设置视觉系统,我有一些问题,希望听取你的反馈和意见。" + } + }, + { + "id": 4, + "english": "feature", + "frequency": 20, + "category": "technical_core", + "chinese": "特征;特点", + "phonetic": "/ˈfiːtʃər/", + "forms": { + "noun": "features (复数)" + }, + "example": { + "en": "On the pickup tool we have a feature which we use to check the repeatability of the bond head position over the camera during inspection.", + "cn": "拾取工具上有一个特征,我们用它来检查检测期间焊头在相机上方位置的重复性。" + } + }, + { + "id": 5, + "english": "frame", + "frequency": 20, + "category": "high_frequency", + "chinese": "框架;引线框架", + "phonetic": "/freɪm/", + "forms": { + "noun": "frames (复数)" + }, + "example": { + "en": "In Yangjie and on the Rohm application our vision reports data which we initially interpreted as a pitch mismatch between lead frame and clip.", + "cn": "在扬杰以及 Rohm 应用中,我们的视觉系统报告了一些数据,最初我们将其解读为引线框架与夹焊片之间的间距不匹配。" + } + }, + { + "id": 6, + "english": "question", + "frequency": 20, + "category": "action_verbs", + "chinese": "问题;疑问", + "phonetic": "/ˈkwestʃən/", + "forms": { + "noun": "questions (复数)", + "verb": [ + "questioning (现在分词)", + "questioned (过去式/过去分词)" + ] + }, + "example": { + "en": "The most burning question is why the cross hair is not always located at the center of the feature which we believe to use as the fiducial.", + "cn": "目前最迫切的问题是:为什么十字准星并不总是位于我们认为应作为基准标记的特征中心?" + } + }, + { + "id": 7, + "english": "bond", + "frequency": 19, + "category": "high_frequency", + "chinese": "焊接;键合;连接", + "phonetic": "/bɒnd/", + "forms": { + "verb": [ + "bonded (过去式/过去分词)", + "bonding (现在分词)" + ] + }, + "example": { + "en": "On the pickup tool we have a feature which we use to check the repeatability of the bond head position over the camera during inspection.", + "cn": "拾取工具上有一个特征,我们用它来检查检测期间焊头在相机上方位置的重复性。" + } + }, + { + "id": 8, + "english": "clip", + "frequency": 19, + "category": "technical_core", + "chinese": "夹子;夹焊片", + "phonetic": "/klɪp/", + "forms": { + "noun": "clips (复数)" + }, + "example": { + "en": "These are the images we upload for each clip transfer inspection.", + "cn": "这些是我们为每次夹焊片转移检测上传的图像。" + } + }, + { + "id": 9, + "english": "lead", + "frequency": 19, + "category": "technical_core", + "chinese": "引线;领导;铅", + "phonetic": "/liːd/(引线、领导);/led/(铅)", + "forms": {}, + "example": { + "en": "In Yangjie and on the Rohm application our vision reports data which we initially interpreted as a pitch mismatch between lead frame and clip.", + "cn": "在扬杰以及 Rohm 应用中,我们的视觉系统报告了一些数据,最初我们将其解读为引线框架与夹焊片之间的间距不匹配。" + } + }, + { + "id": 10, + "english": "fiducial", + "frequency": 18, + "category": "technical_core", + "chinese": "基准标记;基准点", + "phonetic": "/fɪˈduːʃəl/", + "forms": { + "noun": "fiducials (复数)" + }, + "example": { + "en": "The most burning question is why the cross hair is not always located at the center of the feature which we believe to use as the fiducial.", + "cn": "目前最迫切的问题是:为什么十字准星并不总是位于我们认为应作为基准标记的特征中心?" + } + }, + { + "id": 11, + "english": "measure", + "frequency": 18, + "category": "technical_operations", + "chinese": "测量;衡量", + "phonetic": "/ˈmeʒər/", + "forms": { + "verb": [ + "measured (过去式/过去分词)", + "measures (第三人称单数)" + ] + }, + "example": { + "en": "From a usability aspect of the machine we need the capability to define characteristic features on the material (lead frame, clip, die) which we then find in our image, determine the position and measure relative distances to compare with the bonding diagram.", + "cn": "从机器易用性的角度来看,我们需要能够在材料(引线框架、夹焊片、芯片)上定义特征性标志,然后在图像中找到这些标志、确定其位置并测量相对距离,以便与键合图进行比较。" + } + }, + { + "id": 12, + "english": "slot", + "frequency": 18, + "category": "technical_core", + "chinese": "槽;狭缝", + "phonetic": "/slɒt/", + "forms": { + "noun": "slots (复数)" + }, + "example": { + "en": "I believe at least for the fiducial on the lead frame we will in most cases always look at a slot.", + "cn": "我认为,至少对于引线框架上的基准标记,大多数情况下我们查看的都会是一个槽口。" + } + }, + { + "id": 13, + "english": "look", + "frequency": 15, + "category": "action_verbs", + "chinese": "看;查看", + "phonetic": "/lʊk/", + "forms": { + "verb": [ + "looking (现在分词)", + "looks (第三人称单数)" + ] + }, + "example": { + "en": "I believe we agreed that he will meet with Jianfei Monday or Tuesday to take a closer look at this.", + "cn": "我记得我们已经商定,他会在周一或周二与建飞会面,进一步仔细查看这个问题。" + } + }, + { + "id": 14, + "english": "different", + "frequency": 13, + "category": "high_frequency", + "chinese": "不同的", + "phonetic": "/ˈdɪfərənt/", + "forms": { + "adverb": "differently" + }, + "example": { + "en": "If you are having robustness and accuracy issues, it is best to ask the field to collect lots of images (with different light levels) and then have Eddy run some study offline to optimize the vision teach.", + "cn": "如果遇到稳健性和精度问题,最好让现场人员采集大量不同光照等级的图像,然后请 Eddy 离线开展研究,以优化视觉示教。" + } + }, + { + "id": 15, + "english": "find", + "frequency": 13, + "category": "action_verbs", + "chinese": "找到;查找", + "phonetic": "/faɪnd/", + "forms": { + "verb": [ + "finds (第三人称单数)", + "finding (现在分词)", + "found (过去式/过去分词)" + ] + }, + "example": { + "en": "But of course, it would be great if we could find a more effective / lower cost / more re-use & synergies solution asap.", + "cn": "当然,如果能尽快找到一种更高效、成本更低、复用程度更高且协同效应更好的解决方案,那就再好不过了。" + } + }, + { + "id": 16, + "english": "measurement", + "frequency": 13, + "category": "technical_core", + "chinese": "测量;尺寸", + "phonetic": "/ˈmeʒərmənt/", + "forms": { + "noun": "measurements (复数)" + }, + "example": { + "en": "But when we talked about measurement, that is different.", + "cn": "但我们谈到测量时,情况就不同了。" + } + }, + { + "id": 17, + "english": "please", + "frequency": 13, + "category": "high_frequency", + "chinese": "请", + "phonetic": "/pliːz/", + "forms": {}, + "example": { + "en": "@Vladimir Pribula, please let’s use the opportunity of you being in Suzhou to look into this first-hand.", + "cn": "@Vladimir Pribula,请利用你在苏州的机会,亲自到现场调查一下这个问题。" + } + }, + { + "id": 18, + "english": "show", + "frequency": 13, + "category": "action_verbs", + "chinese": "显示;展示", + "phonetic": "/ʃəʊ/", + "forms": { + "verb": [ + "shows (第三人称单数)", + "showing (现在分词)", + "showed (过去式)", + "shown (过去分词)" + ] + }, + "example": { + "en": "Jianfei can show this application on the bonder (we have bonded frames and can install the old chucks).", + "cn": "建飞可以在焊线机上演示此应用(我们有已完成键合的框架,也可以安装旧夹具)。" + } + }, + { + "id": 19, + "english": "data", + "frequency": 12, + "category": "high_frequency", + "chinese": "数据", + "phonetic": "/ˈdeɪtə/", + "forms": {}, + "example": { + "en": "To repeat for all on this email: Our clip inspection data at Rohm (and at Yanjie) indicate that something is systematically wrong.", + "cn": "再向这封邮件中的所有人重申一次:我们在 Rohm(以及扬杰)的夹焊片检测数据表明,系统中存在某种系统性错误。" + } + }, + { + "id": 20, + "english": "teach", + "frequency": 12, + "category": "technical_operations", + "chinese": "示教;教导", + "phonetic": "/tiːtʃ/", + "forms": { + "verb": "teaching (现在分词)" + }, + "example": { + "en": "If you are having robustness and accuracy issues, it is best to ask the field to collect lots of images (with different light levels) and then have Eddy run some study offline to optimize the vision teach.", + "cn": "如果遇到稳健性和精度问题,最好让现场人员采集大量不同光照等级的图像,然后请 Eddy 离线开展研究,以优化视觉示教。" + } + }, + { + "id": 21, + "english": "level", + "frequency": 11, + "category": "high_frequency", + "chinese": "水平;等级;电平", + "phonetic": "/ˈlevəl/", + "forms": { + "noun": "levels (复数)" + }, + "example": { + "en": "In addition, I’m wondering whether there are (known) procedures to set the light level.", + "cn": "另外,我想知道是否有已知的光照等级设置流程。" + } + }, + { + "id": 22, + "english": "process", + "frequency": 11, + "category": "technical_operations", + "chinese": "处理;过程", + "phonetic": "/ˈprəʊses/", + "forms": { + "verb": [ + "processing (现在分词)", + "processed (过去式/过去分词)" + ] + }, + "example": { + "en": "It may be that we store the images binary but process them in a different format.", + "cn": "我们可能以二值格式存储图像,但使用另一种格式进行处理。" + } + }, + { + "id": 23, + "english": "system", + "frequency": 11, + "category": "high_frequency", + "chinese": "系统", + "phonetic": "/ˈsɪstəm/", + "forms": { + "noun": "systems (复数)" + }, + "example": { + "en": "It is likely that the parts which our machine produces are accurate, but our system reports bad data.", + "cn": "机器生产的零件很可能是准确的,但我们的系统报告了错误数据。" + } + }, + { + "id": 24, + "english": "accurate", + "frequency": 10, + "category": "high_frequency", + "chinese": "精确的", + "phonetic": "/ˈækjərət/", + "forms": { + "adverb": "accurately" + }, + "example": { + "en": "But detailed material inspection data collected in Santa Ana on the Rohm material show that the lead frame and the clip from Rohm are very accurate and match on the micron level.", + "cn": "然而,在圣安娜对 Rohm 材料采集的详细来料检测数据显示,Rohm 的引线框架和夹焊片精度很高,在微米级别上彼此匹配。" + } + }, + { + "id": 25, + "english": "distance", + "frequency": 10, + "category": "high_frequency", + "chinese": "距离", + "phonetic": "/ˈdɪstəns/", + "forms": { + "noun": "distances (复数)" + }, + "example": { + "en": "So maybe a good test is to capture the slot locations in one image, then move the camera by an (encoder) controlled distance and capture the same slot locations again and see whether the distances in between the slots changed with the shift of the lead frame in the FoV (by shifting the camera by a distance controlled on the 1m level).", + "cn": "因此,一个合适的测试方法或许是:先在一幅图像中采集各槽口的位置,然后让相机移动一段由编码器控制的距离,再次采集相同槽口的位置,观察当引线框架在视野中发生偏移时,槽口之间的距离是否随之变化(即让相机移动一段精确到 1 μm 级别的受控距离)。" + } + }, + { + "id": 26, + "english": "material", + "frequency": 10, + "category": "high_frequency", + "chinese": "材料", + "phonetic": "/məˈtɪəriəl/", + "forms": {}, + "example": { + "en": "But detailed material inspection data collected in Santa Ana on the Rohm material show that the lead frame and the clip from Rohm are very accurate and match on the micron level.", + "cn": "然而,在圣安娜对 Rohm 材料采集的详细来料检测数据显示,Rohm 的引线框架和夹焊片精度很高,在微米级别上彼此匹配。" + } + }, + { + "id": 27, + "english": "position", + "frequency": 10, + "category": "high_frequency", + "chinese": "位置;定位", + "phonetic": "/pəˈzɪʃən/", + "forms": { + "noun": "positions (复数)", + "verb": "positioning (现在分词)" + }, + "example": { + "en": "On the pickup tool we have a feature which we use to check the repeatability of the bond head position over the camera during inspection.", + "cn": "拾取工具上有一个特征,我们用它来检查检测期间焊头在相机上方位置的重复性。" + } + }, + { + "id": 28, + "english": "algorithm", + "frequency": 9, + "category": "technical_core", + "chinese": "算法", + "phonetic": "/ˈælɡərɪðəm/", + "forms": {}, + "example": { + "en": "Is it using area-based algorithm or edge-based algorithm?", + "cn": "它使用的是基于区域的算法,还是基于边缘的算法?" + } + }, + { + "id": 29, + "english": "camera", + "frequency": 9, + "category": "technical_core", + "chinese": "相机;摄像头", + "phonetic": "/ˈkæmərə/", + "forms": {}, + "example": { + "en": "Finally, Zhijie, could you please align with Vlad and Bruce on the plan we have for the up-looking vision, i.e., why we are hooked to the Zebra camera, and why the phases are as they are?", + "cn": "最后,志杰,能否请你与 Vlad 和 Bruce 就我们的上视视觉方案达成一致,包括为何目前受制于 Zebra 相机,以及各阶段为何如此安排?" + } + }, + { + "id": 30, + "english": "machine", + "frequency": 9, + "category": "high_frequency", + "chinese": "机器", + "phonetic": "/məˈʃiːn/", + "forms": { + "noun": "machines (复数)" + }, + "example": { + "en": "I think the machine is displaying the binary image, meaning the images were already processed.", + "cn": "我认为机器当前显示的是二值图像,这意味着这些图像已经经过处理。" + } + }, + { + "id": 31, + "english": "set", + "frequency": 9, + "category": "action_verbs", + "chinese": "设置;设定", + "phonetic": "/set/", + "forms": { + "verb": "sets (第三人称单数)" + }, + "example": { + "en": "Hi Zhijie,\n\nI would like to ask for your feedback / comments on some of the questions I have to how the Avaline FAEs set up the vision.", + "cn": "志杰,你好:\n\n关于 Avaline 现场应用工程师如何设置视觉系统,我有一些问题,希望听取你的反馈和意见。" + } + }, + { + "id": 32, + "english": "binary", + "frequency": 8, + "category": "technical_core", + "chinese": "二值的;二进制的", + "phonetic": "/ˈbaɪnəri/", + "forms": {}, + "example": { + "en": "I think the machine is displaying the binary image, meaning the images were already processed.", + "cn": "我认为机器当前显示的是二值图像,这意味着这些图像已经经过处理。" + } + }, + { + "id": 33, + "english": "device", + "frequency": 8, + "category": "high_frequency", + "chinese": "器件;设备", + "phonetic": "/dɪˈvaɪs/", + "forms": { + "noun": "devices (复数)" + }, + "example": { + "en": "Shouldn’t it be at the center of the feature which we want to use to define the position of the item (device on lead frame, clip) so we can compare the machine reported dimensions with the dimensions given on the bonding diagram?", + "cn": "十字准星难道不应该位于我们用于确定对象(引线框架上的器件或夹焊片)位置的特征中心吗?这样我们才能将机器报告的尺寸与键合图中给出的尺寸进行比较。" + } + }, + { + "id": 34, + "english": "distortion", + "frequency": 8, + "category": "technical_core", + "chinese": "畸变;失真", + "phonetic": "/dɪˈstɔːʃən/", + "forms": { + "noun": "distortions (复数)" + }, + "example": { + "en": "This would allow us to check for distortion and verify our calibration.", + "cn": "这样我们就可以检查畸变并验证标定结果。" + } + }, + { + "id": 35, + "english": "know", + "frequency": 8, + "category": "action_verbs", + "chinese": "知道", + "phonetic": "/nəʊ/", + "forms": { + "verb": "known (过去分词)" + }, + "example": { + "en": "Let me know if there are other things I can help.", + "cn": "如果还有其他我能帮忙的事情,请告诉我。" + } + }, + { + "id": 36, + "english": "across", + "frequency": 7, + "category": "high_frequency", + "chinese": "横跨", + "phonetic": "/əˈkrɒs/", + "forms": {}, + "example": { + "en": "It assumes low distortion across the FoV.", + "cn": "该方法假设整个视野内的畸变较小。" + } + }, + { + "id": 37, + "english": "check", + "frequency": 7, + "category": "action_verbs", + "chinese": "检查;核对", + "phonetic": "/tʃek/", + "forms": { + "verb": "checked (过去式/过去分词)" + }, + "example": { + "en": "On the pickup tool we have a feature which we use to check the repeatability of the bond head position over the camera during inspection.", + "cn": "拾取工具上有一个特征,我们用它来检查检测期间焊头在相机上方位置的重复性。" + } + }, + { + "id": 38, + "english": "edge", + "frequency": 7, + "category": "technical_core", + "chinese": "边缘", + "phonetic": "/edʒ/", + "forms": { + "noun": "edges (复数)" + }, + "example": { + "en": "Is it using area-based algorithm or edge-based algorithm?", + "cn": "它使用的是基于区域的算法,还是基于边缘的算法?" + } + }, + { + "id": 39, + "english": "good", + "frequency": 7, + "category": "high_frequency", + "chinese": "好的", + "phonetic": "/ɡʊd/", + "forms": {}, + "example": { + "en": "Last night (US time) we had the summit and I heard Vlad asking a lot of good questions.", + "cn": "昨晚(美国时间)我们召开了峰会,我听到 Vlad 提出了很多很好的问题。" + } + }, + { + "id": 40, + "english": "information", + "frequency": 7, + "category": "high_frequency", + "chinese": "信息", + "phonetic": "/ˌɪnfəˈmeɪʃən/", + "forms": {}, + "example": { + "en": "I also copied Eddy (not sure he will still be in Suzhou) and Li Yang, both may give you more insight / details how these images are processed, and Benson and CK for their information about this activity.", + "cn": "我还抄送了 Eddy(不确定他届时是否仍在苏州)和李阳,他们或许能提供有关这些图像处理方式的更多见解和细节;同时也抄送 Benson 和 CK,让他们了解这项活动。" + } + }, + { + "id": 41, + "english": "inspection", + "frequency": 7, + "category": "technical_operations", + "chinese": "检查;检测", + "phonetic": "/ɪnˈspekʃən/", + "forms": {}, + "example": { + "en": "These are the images we upload for each clip transfer inspection.", + "cn": "这些是我们为每次夹焊片转移检测上传的图像。" + } + }, + { + "id": 42, + "english": "light", + "frequency": 7, + "category": "high_frequency", + "chinese": "光;光线;轻的", + "phonetic": "/laɪt/", + "forms": { + "noun": "lighting (照明)" + }, + "example": { + "en": "In addition, I’m wondering whether there are (known) procedures to set the light level.", + "cn": "另外,我想知道是否有已知的光照等级设置流程。" + } + }, + { + "id": 43, + "english": "next", + "frequency": 7, + "category": "time_planning", + "chinese": "下一个", + "phonetic": "/nekst/", + "forms": {}, + "example": { + "en": "I also heard that he is still in China next week.", + "cn": "我还听说他下周仍在中国。" + } + }, + { + "id": 44, + "english": "raw", + "frequency": 7, + "category": "high_frequency", + "chinese": "原始的", + "phonetic": "/rɔː/", + "forms": {}, + "example": { + "en": "Generally for best accuracy, raw gray level images should be used for processing.", + "cn": "通常,为获得最佳精度,应使用原始灰度图像进行处理。" + } + }, + { + "id": 45, + "english": "week", + "frequency": 7, + "category": "time_planning", + "chinese": "周", + "phonetic": "/wiːk/", + "forms": { + "noun": "weeks (复数)" + }, + "example": { + "en": "I also heard that he is still in China next week.", + "cn": "我还听说他下周仍在中国。" + } + }, + { + "id": 46, + "english": "work", + "frequency": 7, + "category": "action_verbs", + "chinese": "工作", + "phonetic": "/wɜːk/", + "forms": {}, + "example": { + "en": "If it is, for the given hardware, what would have to be changed / improved, to gain more contrast or work with more contrast than just this ‘black & white’?", + "cn": "如果确实如此,在现有硬件条件下需要做哪些更改或改进,才能获得更高的对比度,而不只是使用这种‘黑白’对比?" + } + }, + { + "id": 47, + "english": "actual", + "frequency": 6, + "category": "high_frequency", + "chinese": "实际的", + "phonetic": "/ˈæktʃuəl/", + "forms": { + "adverb": "actually" + }, + "example": { + "en": "In order for the ball measurement to be very close to the actual ball size that got measured in the scope room, we have a ball size correction step during teach where we have the operator dial in the average ball size (measured on the scope) for the bonder measured balls, and the vision system would then remember the offset between the scope measurement and bonder measurement.", + "cn": "为了使焊球测量结果尽可能接近显微镜室测得的实际焊球尺寸,我们在示教过程中设置了焊球尺寸校正步骤:操作员输入显微镜测得的平均焊球尺寸,用于校正焊线机测得的焊球;随后视觉系统会记住显微镜测量值与焊线机测量值之间的偏差。" + } + }, + { + "id": 48, + "english": "ball", + "frequency": 6, + "category": "high_frequency", + "chinese": "焊球;球", + "phonetic": "/bɔːl/", + "forms": { + "noun": "balls (复数)" + }, + "example": { + "en": "In order for the ball measurement to be very close to the actual ball size that got measured in the scope room, we have a ball size correction step during teach where we have the operator dial in the average ball size (measured on the scope) for the bonder measured balls, and the vision system would then remember the offset between the scope measurement and bonder measurement.", + "cn": "为了使焊球测量结果尽可能接近显微镜室测得的实际焊球尺寸,我们在示教过程中设置了焊球尺寸校正步骤:操作员输入显微镜测得的平均焊球尺寸,用于校正焊线机测得的焊球;随后视觉系统会记住显微镜测量值与焊线机测量值之间的偏差。" + } + }, + { + "id": 49, + "english": "change", + "frequency": 6, + "category": "action_verbs", + "chinese": "改变;变化", + "phonetic": "/tʃeɪndʒ/", + "forms": { + "verb": "changed (过去式/过去分词)" + }, + "example": { + "en": "I believe you know that we discussed that but put it off to a later phase, because Mike repeatedly told us that it would require a design change, mean no re-use, and extend the timeline significantly.", + "cn": "我相信你知道,我们讨论过此事,但将其推迟到了后续阶段,因为 Mike 多次告诉我们,这需要更改设计、无法复用现有方案,并会大幅延长时间线。" + } + }, + { + "id": 50, + "english": "day", + "frequency": 6, + "category": "time_planning", + "chinese": "天;日", + "phonetic": "/deɪ/", + "forms": { + "noun": "days (复数)" + }, + "example": { + "en": "It was difficult for me to hear and understand much during the summit day yesterday.", + "cn": "昨天峰会期间,我很难听清并理解太多内容。" + } + }, + { + "id": 51, + "english": "diagram", + "frequency": 6, + "category": "technical_core", + "chinese": "图;示意图;图解", + "phonetic": "/ˈdaɪəɡræm/", + "forms": {}, + "example": { + "en": "Shouldn’t it be at the center of the feature which we want to use to define the position of the item (device on lead frame, clip) so we can compare the machine reported dimensions with the dimensions given on the bonding diagram?", + "cn": "十字准星难道不应该位于我们用于确定对象(引线框架上的器件或夹焊片)位置的特征中心吗?这样我们才能将机器报告的尺寸与键合图中给出的尺寸进行比较。" + } + }, + { + "id": 52, + "english": "dimension", + "frequency": 6, + "category": "technical_core", + "chinese": "尺寸;维度", + "phonetic": "/daɪˈmenʃən/", + "forms": { + "noun": "dimensions (复数)" + }, + "example": { + "en": "What images are used to process and extract the dimension information?", + "cn": "使用哪些图像进行处理并提取尺寸信息?" + } + }, + { + "id": 53, + "english": "email", + "frequency": 6, + "category": "communication", + "chinese": "邮件", + "phonetic": "/ˈiːmeɪl/", + "forms": {}, + "example": { + "en": "Below is the email which I had sent 2 weeks ago with some of the questions which you asked me again 2 days ago (type of images, …).", + "cn": "下面是我两周前发送的邮件,其中包含一些你两天前再次问到的问题(图像类型等)。" + } + }, + { + "id": 54, + "english": "error", + "frequency": 6, + "category": "high_frequency", + "chinese": "误差;错误", + "phonetic": "/ˈerər/", + "forms": { + "noun": "errors (复数)" + }, + "example": { + "en": "We expected that the further from the center of the FOV, the larger the error between the glass target and LF.", + "cn": "我们原本预计,距离视野中心越远,玻璃标靶与引线框架之间的误差就越大。" + } + }, + { + "id": 55, + "english": "make", + "frequency": 6, + "category": "action_verbs", + "chinese": "制作;使", + "phonetic": "/meɪk/", + "forms": {}, + "example": { + "en": "So if we want to make a change we need to make it now, and fast.", + "cn": "因此,如果要做更改,就必须现在立即行动。" + } + }, + { + "id": 56, + "english": "operator", + "frequency": 6, + "category": "technical_operations", + "chinese": "操作员", + "phonetic": "/ˈɒpəreɪtər/", + "forms": {}, + "example": { + "en": "This can be shown with a sequence of screen shots, maybe better with a video that shows the screen while the operator does the setup / teaching.", + "cn": "可以通过一系列屏幕截图来展示;也许使用视频效果更好,视频可在操作员进行设置和示教时同步展示屏幕画面。" + } + }, + { + "id": 57, + "english": "possible", + "frequency": 6, + "category": "high_frequency", + "chinese": "可能的", + "phonetic": "/ˈpɒsɪbəl/", + "forms": {}, + "example": { + "en": "Please correct my description below if possible today Thursday 7/9, and add additional items to be checked, documented.", + "cn": "如有可能,请于今天(7 月 9 日,星期四)修正我下面的描述,并补充其他需要检查和记录的项目。" + } + }, + { + "id": 58, + "english": "review", + "frequency": 6, + "category": "action_verbs", + "chinese": "评审;审查", + "phonetic": "/rɪˈvjuː/", + "forms": {}, + "example": { + "en": "Any improvement(s) we could apply there from your review and hopefully suggestions, if feasible in this short notice, would be very helpful.", + "cn": "如果时间允许,根据你的评审和建议在如此紧迫的期限内实施任何可行的改进,都会非常有帮助。" + } + }, + { + "id": 59, + "english": "test", + "frequency": 6, + "category": "technical_operations", + "chinese": "测试", + "phonetic": "/test/", + "forms": { + "verb": "tested (过去式/过去分词)" + }, + "example": { + "en": "That is a quick and dirty test to check if there is any distortion in the system.", + "cn": "这是一个快速而粗略的测试,用于检查系统中是否存在畸变。" + } + }, + { + "id": 60, + "english": "think", + "frequency": 6, + "category": "action_verbs", + "chinese": "认为;思考", + "phonetic": "/θɪŋk/", + "forms": { + "verb": "thought (过去式/过去分词)" + }, + "example": { + "en": "I think the machine is displaying the binary image, meaning the images were already processed.", + "cn": "我认为机器当前显示的是二值图像,这意味着这些图像已经经过处理。" + } + }, + { + "id": 61, + "english": "today", + "frequency": 6, + "category": "time_planning", + "chinese": "今天", + "phonetic": "/təˈdeɪ/", + "forms": {}, + "example": { + "en": "Please correct my description below if possible today Thursday 7/9, and add additional items to be checked, documented.", + "cn": "如有可能,请于今天(7 月 9 日,星期四)修正我下面的描述,并补充其他需要检查和记录的项目。" + } + }, + { + "id": 62, + "english": "understand", + "frequency": 6, + "category": "action_verbs", + "chinese": "理解", + "phonetic": "/ˌʌndəˈstænd/", + "forms": {}, + "example": { + "en": "It was difficult for me to hear and understand much during the summit day yesterday.", + "cn": "昨天峰会期间,我很难听清并理解太多内容。" + } + }, + { + "id": 63, + "english": "user", + "frequency": 6, + "category": "high_frequency", + "chinese": "用户", + "phonetic": "/ˈjuːzər/", + "forms": {}, + "example": { + "en": "o\tHypothesis was that some light reflects off of the edges of the LF when it’s away from the center of the FOV:\no\t \n\nObservations in the data:\n-\tThe errors have a repeating pattern every 6 devices - @Yang Li is there any concept of a shared reference system like we have in BB, where the user only needs to teach an fiducial for one device, and then that’s copied to all other devices in the index?", + "cn": "o\t假设:当引线框架偏离视野中心时,其边缘会反射部分光线:\no\t \n\n数据观察结果:\n-\t误差每 6 个器件呈现一次重复规律。@Yang Li,系统中是否存在类似 BB 的共享参考系概念?在 BB 中,用户只需为一个器件示教一个基准标记,随后该标记会复制到同一索引中的所有其他器件。" + } + }, + { + "id": 64, + "english": "video", + "frequency": 6, + "category": "communication", + "chinese": "视频", + "phonetic": "/ˈvɪdiəʊ/", + "forms": {}, + "example": { + "en": "This can be shown with a sequence of screen shots, maybe better with a video that shows the screen while the operator does the setup / teaching.", + "cn": "可以通过一系列屏幕截图来展示;也许使用视频效果更好,视频可在操作员进行设置和示教时同步展示屏幕画面。" + } + }, + { + "id": 65, + "english": "window", + "frequency": 6, + "category": "high_frequency", + "chinese": "窗口", + "phonetic": "/ˈwɪndəʊ/", + "forms": {}, + "example": { + "en": "The crosshair for each fiducial is just the center of the teach window set by the operator.", + "cn": "每个基准标记的十字准星只是操作员所设示教窗口的中心。" + } + }, + { + "id": 66, + "english": "ago", + "frequency": 5, + "category": "time_planning", + "chinese": "以前", + "phonetic": "/əˈɡəʊ/", + "forms": {}, + "example": { + "en": "Regards,\nChristoph\n\n\n\nQuestions on Vision on CB in Avaline\n\n\n\n\nHi Zhijie,\n\nFollowing up on our call from 2 days ago.", + "cn": "此致\nChristoph\n\n\n\nAvaline 中 CB 视觉相关问题\n\n\n\n\n志杰,你好:\n\n跟进一下我们两天前的通话。" + } + }, + { + "id": 67, + "english": "application", + "frequency": 5, + "category": "high_frequency", + "chinese": "应用;应用程序", + "phonetic": "/ˌæplɪˈkeɪʃən/", + "forms": {}, + "example": { + "en": "Jianfei can show this application on the bonder (we have bonded frames and can install the old chucks).", + "cn": "建飞可以在焊线机上演示此应用(我们有已完成键合的框架,也可以安装旧夹具)。" + } + }, + { + "id": 68, + "english": "calibration", + "frequency": 5, + "category": "technical_core", + "chinese": "校准;标定", + "phonetic": "/ˌkælɪˈbreɪʃən/", + "forms": {}, + "example": { + "en": "This would allow us to check for distortion and verify our calibration.", + "cn": "这样我们就可以检查畸变并验证标定结果。" + } + }, + { + "id": 69, + "english": "compare", + "frequency": 5, + "category": "high_frequency", + "chinese": "比较", + "phonetic": "/kəmˈpeər/", + "forms": { + "verb": "compared (过去式/过去分词)" + }, + "example": { + "en": "Shouldn’t it be at the center of the feature which we want to use to define the position of the item (device on lead frame, clip) so we can compare the machine reported dimensions with the dimensions given on the bonding diagram?", + "cn": "十字准星难道不应该位于我们用于确定对象(引线框架上的器件或夹焊片)位置的特征中心吗?这样我们才能将机器报告的尺寸与键合图中给出的尺寸进行比较。" + } + }, + { + "id": 70, + "english": "field", + "frequency": 5, + "category": "high_frequency", + "chinese": "现场;视野;字段", + "phonetic": "/fiːld/", + "forms": {}, + "example": { + "en": "If you are having robustness and accuracy issues, it is best to ask the field to collect lots of images (with different light levels) and then have Eddy run some study offline to optimize the vision teach.", + "cn": "如果遇到稳健性和精度问题,最好让现场人员采集大量不同光照等级的图像,然后请 Eddy 离线开展研究,以优化视觉示教。" + } + }, + { + "id": 71, + "english": "give", + "frequency": 5, + "category": "action_verbs", + "chinese": "给;提供", + "phonetic": "/ɡɪv/", + "forms": { + "verb": "given (过去分词)" + }, + "example": { + "en": "I also copied Eddy (not sure he will still be in Suzhou) and Li Yang, both may give you more insight / details how these images are processed, and Benson and CK for their information about this activity.", + "cn": "我还抄送了 Eddy(不确定他届时是否仍在苏州)和李阳,他们或许能提供有关这些图像处理方式的更多见解和细节;同时也抄送 Benson 和 CK,让他们了解这项活动。" + } + }, + { + "id": 72, + "english": "help", + "frequency": 5, + "category": "action_verbs", + "chinese": "帮助", + "phonetic": "/help/", + "forms": { + "verb": "helps (第三人称单数)" + }, + "example": { + "en": "Let me know if there are other things I can help.", + "cn": "如果还有其他我能帮忙的事情,请告诉我。" + } + }, + { + "id": 73, + "english": "low", + "frequency": 5, + "category": "high_frequency", + "chinese": "低的", + "phonetic": "/ləʊ/", + "forms": { + "adjective": "lower (比较级)" + }, + "example": { + "en": "The images which we upload appear to be binary and to have low pixel count (this latter we seem to have changed on the Suzhou clip bonder but is still low pixel count on the clip bonder in Rohm Thailand).", + "cn": "我们上传的图像似乎是二值图像,而且像素数较低(苏州夹焊片焊线机上的这一点似乎已经调整,但泰国 Rohm 的夹焊片焊线机仍然像素数较低)。" + } + }, + { + "id": 74, + "english": "move", + "frequency": 5, + "category": "action_verbs", + "chinese": "移动", + "phonetic": "/muːv/", + "forms": { + "verb": "moving (现在分词)" + }, + "example": { + "en": "And we can move the lead frame around in a controlled manner.", + "cn": "而且我们可以以受控方式移动引线框架。" + } + }, + { + "id": 75, + "english": "origin", + "frequency": 5, + "category": "technical_core", + "chinese": "原点;来源", + "phonetic": "/ˈɒrɪdʒɪn/", + "forms": { + "noun": "origins (复数)" + }, + "example": { + "en": "The user still sets their teach window the same as they do today, but then within that teach window they need to click on a corner feature to use as an origin/reference point.", + "cn": "用户仍像目前一样设置示教窗口,但随后需要在该窗口内单击一个角点特征,将其用作原点或参考点。" + } + }, + { + "id": 76, + "english": "pattern", + "frequency": 5, + "category": "technical_core", + "chinese": "图案;模式;规律", + "phonetic": "/ˈpætən/", + "forms": { + "noun": "patterns (复数)" + }, + "example": { + "en": "On a ball bonder, we measured the position of a lead frame corner while moving to various locations on a grid pattern across the field of view and compared the same measurement to our XY table map target which is glass with a very thin deposition of chrome fiducials.", + "cn": "在一台球焊机上,我们让引线框架角点沿覆盖整个视野的网格移动到不同位置,并测量其位置;然后将各次测量结果与 XY 工作台的映射标靶进行比较。该标靶由玻璃制成,表面沉积有一层很薄的铬基准标记。" + } + }, + { + "id": 77, + "english": "pixel", + "frequency": 5, + "category": "technical_core", + "chinese": "像素", + "phonetic": "/ˈpɪksəl/", + "forms": {}, + "example": { + "en": "The images which we upload appear to be binary and to have low pixel count (this latter we seem to have changed on the Suzhou clip bonder but is still low pixel count on the clip bonder in Rohm Thailand).", + "cn": "我们上传的图像似乎是二值图像,而且像素数较低(苏州夹焊片焊线机上的这一点似乎已经调整,但泰国 Rohm 的夹焊片焊线机仍然像素数较低)。" + } + }, + { + "id": 78, + "english": "send", + "frequency": 5, + "category": "action_verbs", + "chinese": "发送", + "phonetic": "/send/", + "forms": { + "verb": "sent (过去式/过去分词)" + }, + "example": { + "en": "If you have please send any recommendations for the review meeting in Suzhou on Monday 2pm.", + "cn": "如有任何建议,请发给我,供周一下午 2 点在苏州举行的评审会议使用。" + } + }, + { + "id": 79, + "english": "step", + "frequency": 5, + "category": "time_planning", + "chinese": "步骤", + "phonetic": "/step/", + "forms": { + "noun": "steps (复数)" + }, + "example": { + "en": "Even just getting on the same page on what we actually do with the images would be a good step.", + "cn": "哪怕只是就我们实际如何处理图像达成共识,也是很好的第一步。" + } + }, + { + "id": 80, + "english": "time", + "frequency": 5, + "category": "time_planning", + "chinese": "时间", + "phonetic": "/taɪm/", + "forms": {}, + "example": { + "en": "Last night (US time) we had the summit and I heard Vlad asking a lot of good questions.", + "cn": "昨晚(美国时间)我们召开了峰会,我听到 Vlad 提出了很多很好的问题。" + } + }, + { + "id": 81, + "english": "view", + "frequency": 5, + "category": "high_frequency", + "chinese": "视图;视野;查看", + "phonetic": "/vjuː/", + "forms": {}, + "example": { + "en": "That said, we actually map the light intensity over the Field of View, if it is being done as part of FAT.", + "cn": "不过,如果光强映射属于 FAT 的一部分,我们实际上会对整个视野内的光强进行映射。" + } + }, + { + "id": 82, + "english": "best", + "frequency": 4, + "category": "high_frequency", + "chinese": "最好的", + "phonetic": "/best/", + "forms": {}, + "example": { + "en": "Is this the best approach?", + "cn": "这是最佳方案吗?" + } + }, + { + "id": 83, + "english": "collect", + "frequency": 4, + "category": "technical_operations", + "chinese": "收集", + "phonetic": "/kəˈlekt/", + "forms": { + "verb": "collected (过去式/过去分词)" + }, + "example": { + "en": "If you are having robustness and accuracy issues, it is best to ask the field to collect lots of images (with different light levels) and then have Eddy run some study offline to optimize the vision teach.", + "cn": "如果遇到稳健性和精度问题,最好让现场人员采集大量不同光照等级的图像,然后请 Eddy 离线开展研究,以优化视觉示教。" + } + }, + { + "id": 84, + "english": "correct", + "frequency": 4, + "category": "action_verbs", + "chinese": "正确的;纠正", + "phonetic": "/kəˈrekt/", + "forms": {}, + "example": { + "en": "Please correct my description below if possible today Thursday 7/9, and add additional items to be checked, documented.", + "cn": "如有可能,请于今天(7 月 9 日,星期四)修正我下面的描述,并补充其他需要检查和记录的项目。" + } + }, + { + "id": 85, + "english": "cross", + "frequency": 4, + "category": "high_frequency", + "chinese": "十字;交叉", + "phonetic": "/krɒs/", + "forms": {}, + "example": { + "en": "The most burning question is why the cross hair is not always located at the center of the feature which we believe to use as the fiducial.", + "cn": "目前最迫切的问题是:为什么十字准星并不总是位于我们认为应作为基准标记的特征中心?" + } + }, + { + "id": 86, + "english": "experience", + "frequency": 4, + "category": "high_frequency", + "chinese": "经验;经历", + "phonetic": "/ɪkˈspɪəriəns/", + "forms": { + "noun": "experiences (复数)" + }, + "example": { + "en": "Next week Rohm Japan engineers in Thailand will start ‘using the machines’ and compare with their experience with the ASM system.", + "cn": "下周,Rohm 日本驻泰国的工程师将开始‘使用这些机器’,并与他们使用 ASM 系统的经验进行比较。" + } + }, + { + "id": 87, + "english": "glass", + "frequency": 4, + "category": "high_frequency", + "chinese": "玻璃的;玻璃", + "phonetic": "/ɡlɑːs/", + "forms": {}, + "example": { + "en": "On a ball bonder, we measured the position of a lead frame corner while moving to various locations on a grid pattern across the field of view and compared the same measurement to our XY table map target which is glass with a very thin deposition of chrome fiducials.", + "cn": "在一台球焊机上,我们让引线框架角点沿覆盖整个视野的网格移动到不同位置,并测量其位置;然后将各次测量结果与 XY 工作台的映射标靶进行比较。该标靶由玻璃制成,表面沉积有一层很薄的铬基准标记。" + } + }, + { + "id": 88, + "english": "grid", + "frequency": 4, + "category": "technical_core", + "chinese": "网格;栅格", + "phonetic": "/ɡrɪd/", + "forms": { + "noun": "grids (复数)" + }, + "example": { + "en": "On a ball bonder, we measured the position of a lead frame corner while moving to various locations on a grid pattern across the field of view and compared the same measurement to our XY table map target which is glass with a very thin deposition of chrome fiducials.", + "cn": "在一台球焊机上,我们让引线框架角点沿覆盖整个视野的网格移动到不同位置,并测量其位置;然后将各次测量结果与 XY 工作台的映射标靶进行比较。该标靶由玻璃制成,表面沉积有一层很薄的铬基准标记。" + } + }, + { + "id": 89, + "english": "instead", + "frequency": 4, + "category": "high_frequency", + "chinese": "而不是;代替", + "phonetic": "/ɪnˈsted/", + "forms": {}, + "example": { + "en": "But it seemed that FtW people spent ~50% of the day talking about this approach, and alternatives, for example using a USB camera (as on the other visions on Avaline) instead of the Zebra camera.", + "cn": "但 FtW 的人员似乎花了当天约 50% 的时间讨论该方案及其替代方案,例如使用 USB 相机(与 Avaline 上其他视觉系统相同)来替代 Zebra 相机。" + } + }, + { + "id": 90, + "english": "link", + "frequency": 4, + "category": "high_frequency", + "chinese": "链接", + "phonetic": "/lɪŋk/", + "forms": {}, + "example": { + "en": "I sent you and Vlad the link to a video which was created today and shows how the application engineer sets up the inspection after Clip Place.", + "cn": "我已将今天制作的视频链接发送给你和 Vlad。该视频展示了应用工程师如何设置夹焊片放置后的检测。" + } + }, + { + "id": 91, + "english": "note", + "frequency": 4, + "category": "communication", + "chinese": "注意;笔记", + "phonetic": "/nəʊt/", + "forms": {}, + "example": { + "en": "Please note that Jianfei will be on leave from Wednesday 7/1 on, so ideally the two of you can meet at the bonder before Wednesday.", + "cn": "请注意,建飞将从 7 月 1 日(星期三)起休假,因此最好你们两位能在星期三之前到焊线机旁会面。" + } + }, + { + "id": 92, + "english": "pitch", + "frequency": 4, + "category": "technical_core", + "chinese": "间距;节距", + "phonetic": "/pɪtʃ/", + "forms": {}, + "example": { + "en": "In Yangjie and on the Rohm application our vision reports data which we initially interpreted as a pitch mismatch between lead frame and clip.", + "cn": "在扬杰以及 Rohm 应用中,我们的视觉系统报告了一些数据,最初我们将其解读为引线框架与夹焊片之间的间距不匹配。" + } + }, + { + "id": 93, + "english": "repeatability", + "frequency": 4, + "category": "high_frequency", + "chinese": "重复性;可重复性", + "phonetic": "/rɪˌpiːtəˈbɪlɪti/", + "forms": {}, + "example": { + "en": "On the pickup tool we have a feature which we use to check the repeatability of the bond head position over the camera during inspection.", + "cn": "拾取工具上有一个特征,我们用它来检查检测期间焊头在相机上方位置的重复性。" + } + }, + { + "id": 94, + "english": "reticle", + "frequency": 4, + "category": "technical_core", + "chinese": "分划板;标线片", + "phonetic": "/ˈretɪkəl/", + "forms": {}, + "example": { + "en": "We want to look at the image quality with a reticle that is accurate and provides a contrast that allows robust feature definition and find.", + "cn": "我们希望使用精度可靠、且能提供足够对比度的分划板来评估图像质量,从而稳健地定义并查找特征。" + } + }, + { + "id": 95, + "english": "screen", + "frequency": 4, + "category": "high_frequency", + "chinese": "屏幕", + "phonetic": "/skriːn/", + "forms": {}, + "example": { + "en": "I wonder if it is a customer preference to see binary image on the screen.", + "cn": "我想知道,在屏幕上查看二值图像是否是客户的偏好。" + } + }, + { + "id": 96, + "english": "setup", + "frequency": 4, + "category": "technical_operations", + "chinese": "设置;安装", + "phonetic": "/ˈsetʌp/", + "forms": {}, + "example": { + "en": "Attached is a slide where I have a few questions related to an example of a setup.", + "cn": "附件是一张幻灯片,其中列出了我对某个设置示例的几个相关问题。" + } + }, + { + "id": 97, + "english": "size", + "frequency": 4, + "category": "high_frequency", + "chinese": "尺寸;大小", + "phonetic": "/saɪz/", + "forms": {}, + "example": { + "en": "Did we measure the same feature repeatedly and get 1.6 um at 1sigma with 14um pixel size?", + "cn": "我们是否对同一特征进行了重复测量,并在像素尺寸为 14 μm 时得到 1σ 为 1.6 μm 的结果?" + } + }, + { + "id": 98, + "english": "tool", + "frequency": 4, + "category": "high_frequency", + "chinese": "工具", + "phonetic": "/tuːl/", + "forms": {}, + "example": { + "en": "On the pickup tool we have a feature which we use to check the repeatability of the bond head position over the camera during inspection.", + "cn": "拾取工具上有一个特征,我们用它来检查检测期间焊头在相机上方位置的重复性。" + } + }, + { + "id": 99, + "english": "want", + "frequency": 4, + "category": "action_verbs", + "chinese": "想要", + "phonetic": "/wɒnt/", + "forms": {}, + "example": { + "en": "Also please note that we are installing this application in Rohm Thailand end of next week and want to get acceptance by middle of July.", + "cn": "另请注意,我们将在下周末于泰国 Rohm 安装此应用,并希望在 7 月中旬前通过验收。" + } + }, + { + "id": 100, + "english": "able", + "frequency": 3, + "category": "high_frequency", + "chinese": "能够的", + "phonetic": "/ˈeɪbəl/", + "forms": {}, + "example": { + "en": "Regards,\nBenson\n\n\n\nQuestions on Vision on CB in Avaline\n\n\n\n\n\n\nZhijie,\n\nYes, being able to reliably and accurately find a feature with high repeatability is a necessary but not sufficient capability to do measurements.", + "cn": "此致\nBenson\n\n\n\nAvaline 中 CB 视觉相关问题\n\n\n\n\n\n\n志杰:\n\n是的,能够以高重复性可靠且准确地找到特征,是进行测量的必要条件,但并非充分条件。" + } + }, + { + "id": 101, + "english": "accuracy", + "frequency": 3, + "category": "high_frequency", + "chinese": "精度;准确性", + "phonetic": "/ˈækjərəsi/", + "forms": {}, + "example": { + "en": "Generally for best accuracy, raw gray level images should be used for processing.", + "cn": "通常,为获得最佳精度,应使用原始灰度图像进行处理。" + } + }, + { + "id": 102, + "english": "allow", + "frequency": 3, + "category": "high_frequency", + "chinese": "允许", + "phonetic": "/əˈlaʊ/", + "forms": { + "verb": "allows (第三人称单数)" + }, + "example": { + "en": "This would allow us to check for distortion and verify our calibration.", + "cn": "这样我们就可以检查畸变并验证标定结果。" + } + }, + { + "id": 103, + "english": "approach", + "frequency": 3, + "category": "high_frequency", + "chinese": "方法;接近", + "phonetic": "/əˈprəʊtʃ/", + "forms": {}, + "example": { + "en": "Is this the best approach?", + "cn": "这是最佳方案吗?" + } + }, + { + "id": 104, + "english": "assume", + "frequency": 3, + "category": "high_frequency", + "chinese": "假设", + "phonetic": "/əˈsjuːm/", + "forms": { + "verb": "assumes (第三人称单数)" + }, + "example": { + "en": "I assume that is a software function, correct?", + "cn": "我理解这是一个软件功能,对吗?" + } + }, + { + "id": 105, + "english": "attach", + "frequency": 3, + "category": "technical_operations", + "chinese": "附上;连接", + "phonetic": "/əˈtætʃ/", + "forms": { + "verb": "attached (过去式/过去分词)" + }, + "example": { + "en": "I attach Jianfei’s email with the link sent to me for others to view.", + "cn": "我附上建飞发给我的邮件,其中包含链接,供其他人查看。" + } + }, + { + "id": 106, + "english": "capability", + "frequency": 3, + "category": "high_frequency", + "chinese": "能力", + "phonetic": "/ˌkeɪpəˈbɪlɪti/", + "forms": {}, + "example": { + "en": "And the marketing input at the summit showed that there is a good demand for the flip capability, and (all) our competitors have it.", + "cn": "峰会上的市场反馈表明,客户对翻转功能有较大需求,而且我们的所有竞争对手都具备这一功能。" + } + }, + { + "id": 107, + "english": "center", + "frequency": 3, + "category": "high_frequency", + "chinese": "中心", + "phonetic": "/ˈsentər/", + "forms": { + "noun": "centers (复数)" + }, + "example": { + "en": "The most burning question is why the cross hair is not always located at the center of the feature which we believe to use as the fiducial.", + "cn": "最亟待解答的问题是:为什么十字准线并不总是位于我们认为应作为基准标记的特征中心?" + } + }, + { + "id": 108, + "english": "close", + "frequency": 3, + "category": "high_frequency", + "chinese": "靠近的;关闭", + "phonetic": "/kləʊs/", + "forms": {}, + "example": { + "en": "In order for the ball measurement to be very close to the actual ball size that got measured in the scope room, we have a ball size correction step during teach where we have the operator dial in the average ball size (measured on the scope) for the bonder measured balls, and the vision system would then remember the offset between the scope measurement and bonder measurement.", + "cn": "为了使焊球测量值尽可能接近显微镜室测得的实际焊球尺寸,我们在示教过程中设置了焊球尺寸校正步骤:由操作员输入显微镜测得的平均焊球尺寸,用于校正焊线机测得的焊球;随后视觉系统会记住显微镜测量值与焊线机测量值之间的偏差。" + } + }, + { + "id": 109, + "english": "confirm", + "frequency": 3, + "category": "action_verbs", + "chinese": "确认", + "phonetic": "/kənˈfɜːm/", + "forms": { + "verb": "confirmed (过去式/过去分词)" + }, + "example": { + "en": "I’m literally ‘relieved’ that you confirm that we currently do not ‘Implement “origins” for fiducials that are grounded to a feature on the material’.", + "cn": "你确认我们目前确实没有“为基准标记实现与材料特征绑定的原点”,我真是如释重负。" + } + }, + { + "id": 110, + "english": "contrast", + "frequency": 3, + "category": "technical_core", + "chinese": "对比度;对比", + "phonetic": "/ˈkɒntrɑːst/", + "forms": {}, + "example": { + "en": "If it is, for the given hardware, what would have to be changed / improved, to gain more contrast or work with more contrast than just this ‘black & white’?", + "cn": "如果确实如此,那么针对现有硬件,需要做哪些更改或改进,才能获得更高的对比度,而不只是这种“黑白”效果?" + } + }, + { + "id": 111, + "english": "crosshair", + "frequency": 3, + "category": "high_frequency", + "chinese": "十字准星", + "phonetic": "/ˈkrɒsheər/", + "forms": {}, + "example": { + "en": "What is the meaning of the crosshair?", + "cn": "十字准线表示什么?" + } + }, + { + "id": 112, + "english": "detail", + "frequency": 3, + "category": "high_frequency", + "chinese": "细节", + "phonetic": "/ˈdiːteɪl/", + "forms": { + "noun": "details (复数)", + "adjective": "detailed (详细的)" + }, + "example": { + "en": "At Yangjie this is less or not of an issue, as they seem not to look at this detail level.", + "cn": "在扬杰,这个问题较轻微,甚至不构成问题,因为他们似乎不会关注到如此细的层级。" + } + }, + { + "id": 113, + "english": "document", + "frequency": 3, + "category": "communication", + "chinese": "文档;记录;把……记录下来", + "phonetic": "/ˈdɒkjʊmənt/", + "forms": { + "verb": "documented (过去式/过去分词)" + }, + "example": { + "en": "Thanks,\nChristoph\n\n\n\nQuestions on Vision on CB in Avaline\n\n\nHi Christoph,\n\nSee some answers in the attached document.", + "cn": "谢谢,\nChristoph\n\n\n\nAvaline 夹片焊接机视觉问题\n\n\nChristoph,你好:\n\n请查看随附文档中的部分答复。" + } + }, + { + "id": 114, + "english": "engineer", + "frequency": 3, + "category": "high_frequency", + "chinese": "工程师", + "phonetic": "/ˌendʒɪˈnɪər/", + "forms": {}, + "example": { + "en": "@Zhijie Wang, we were hoping that there is an experienced vision engineer in Suzhou who can attend that meeting at the machine.", + "cn": "@Zhijie Wang,我们原本希望苏州有一位经验丰富的视觉工程师,能够到设备现场参加该会议。" + } + }, + { + "id": 115, + "english": "example", + "frequency": 3, + "category": "high_frequency", + "chinese": "例子", + "phonetic": "/ɪɡˈzɑːmpəl/", + "forms": {}, + "example": { + "en": "Attached is a slide where I have a few questions related to an example of a setup.", + "cn": "附件是一页幻灯片,其中列出了我针对一个设置示例提出的几个问题。" + } + }, + { + "id": 116, + "english": "follow", + "frequency": 3, + "category": "action_verbs", + "chinese": "跟进;遵循", + "phonetic": "/ˈfɒləʊ/", + "forms": { + "verb": "following (现在分词)" + }, + "example": { + "en": "If you see that a step by step description helps to better understand what is being done, please let me know, and I will ask Jianfei to follow up.", + "cn": "如果你认为逐步说明有助于更好地理解当前操作,请告诉我,我会请 Jianfei 继续跟进。" + } + }, + { + "id": 117, + "english": "gray", + "frequency": 3, + "category": "technical_core", + "chinese": "灰色的;灰度", + "phonetic": "/ɡreɪ/", + "forms": {}, + "example": { + "en": "Generally for best accuracy, raw gray level images should be used for processing.", + "cn": "一般而言,为获得最佳精度,应使用原始灰度图像进行处理。" + } + }, + { + "id": 118, + "english": "inspect", + "frequency": 3, + "category": "technical_operations", + "chinese": "检查;检测", + "phonetic": "/ɪnˈspekt/", + "forms": {}, + "example": { + "en": "With the up-looking vision we inspect the clips after pick.", + "cn": "我们使用上视视觉在拾取后检查夹片。" + } + }, + { + "id": 119, + "english": "issue", + "frequency": 3, + "category": "business_core", + "chinese": "问题;发布", + "phonetic": "/ˈɪʃuː/", + "forms": { + "noun": "issues (复数)" + }, + "example": { + "en": "We also hear from Yangjie that their material supplier confirmed the material to be accurate, and that the ASM machines don’t show the issue.", + "cn": "我们还从扬杰获悉,其材料供应商已确认材料精度合格,而且 ASM 设备没有出现这一问题。" + } + }, + { + "id": 120, + "english": "last", + "frequency": 3, + "category": "time_planning", + "chinese": "最后的;持续", + "phonetic": "/lɑːst/", + "forms": {}, + "example": { + "en": "Last night (US time) we had the summit and I heard Vlad asking a lot of good questions.", + "cn": "昨晚(美国时间)我们召开了专题会议,我听到 Vlad 提出了很多很好的问题。" + } + }, + { + "id": 121, + "english": "lot", + "frequency": 3, + "category": "high_frequency", + "chinese": "许多", + "phonetic": "/lɒt/", + "forms": {}, + "example": { + "en": "Last night (US time) we had the summit and I heard Vlad asking a lot of good questions.", + "cn": "昨晚(美国时间)我们召开了专题会议,我听到 Vlad 提出了很多很好的问题。" + } + }, + { + "id": 122, + "english": "map", + "frequency": 3, + "category": "high_frequency", + "chinese": "映射;地图", + "phonetic": "/mæp/", + "forms": {}, + "example": { + "en": "That said, we actually map the light intensity over the Field of View, if it is being done as part of FAT.", + "cn": "不过,前提是这项工作属于 FAT 的一部分;事实上,我们确实会对整个视野内的光照强度进行映射。" + } + }, + { + "id": 123, + "english": "mean", + "frequency": 3, + "category": "action_verbs", + "chinese": "意味着;平均值", + "phonetic": "/miːn/", + "forms": { + "verb": "meaning (现在分词)" + }, + "example": { + "en": "I believe you know that we discussed that but put it off to a later phase, because Mike repeatedly told us that it would require a design change, mean no re-use, and extend the timeline significantly.", + "cn": "我相信你知道,我们讨论过此事,但将其推迟到了后续阶段,因为 Mike 多次告诉我们,这需要更改设计、无法复用现有方案,并会大幅延长项目周期。" + } + }, + { + "id": 124, + "english": "need", + "frequency": 3, + "category": "action_verbs", + "chinese": "需要", + "phonetic": "/niːd/", + "forms": { + "verb": [ + "needs (第三人称单数)", + "needed (过去式/过去分词)" + ] + }, + "example": { + "en": "Note that we are in the RFQ process for manufacturing the first 5 prototypes and that we will need up-looking vision for the currently favored flip module concept.", + "cn": "请注意,我们正在为首批 5 台原型机的制造进行询价,而目前倾向采用的翻转模块方案将需要上视视觉。" + } + }, + { + "id": 125, + "english": "observation", + "frequency": 3, + "category": "high_frequency", + "chinese": "观察", + "phonetic": "/ˌɒbzəˈveɪʃən/", + "forms": {}, + "example": { + "en": "But it requires to find the centers of those slots accurately, which brings us back to the question, what our vision (algorithm) actually finds, given the observation that the cross hairs are visually off.", + "cn": "但这要求准确找到这些槽孔的中心。鉴于观察到十字准线在视觉上存在偏移,这又回到了原来的问题:我们的视觉系统(算法)实际找到的究竟是什么?" + } + }, + { + "id": 126, + "english": "pickup", + "frequency": 3, + "category": "technical_operations", + "chinese": "拾取", + "phonetic": "/ˈpɪkʌp/", + "forms": {}, + "example": { + "en": "On the pickup tool we have a feature which we use to check the repeatability of the bond head position over the camera during inspection.", + "cn": "拾取工具上有一个特征,我们用它来检查检测过程中焊头位于相机上方时的位置重复性。" + } + }, + { + "id": 127, + "english": "place", + "frequency": 3, + "category": "technical_operations", + "chinese": "放置;位置", + "phonetic": "/pleɪs/", + "forms": { + "verb": "placed (过去式/过去分词)" + }, + "example": { + "en": "The operator can place that teach window wherever they please relative to unique features.", + "cn": "操作员可以根据独特特征的相对位置,将示教窗口放在任意位置。" + } + }, + { + "id": 128, + "english": "provide", + "frequency": 3, + "category": "action_verbs", + "chinese": "提供", + "phonetic": "/prəˈvaɪd/", + "forms": { + "verb": "provides (第三人称单数)" + }, + "example": { + "en": "I will do my best to outline what we would like him to collect, document and provide back for review.", + "cn": "我会尽力列明希望他收集、记录并提交回来供评审的内容。" + } + }, + { + "id": 129, + "english": "quick", + "frequency": 3, + "category": "high_frequency", + "chinese": "快速的", + "phonetic": "/kwɪk/", + "forms": {}, + "example": { + "en": "That is a quick and dirty test to check if there is any distortion in the system.", + "cn": "这是一项快速的粗略测试,用于检查系统是否存在畸变。" + } + }, + { + "id": 130, + "english": "relative", + "frequency": 3, + "category": "high_frequency", + "chinese": "相对的", + "phonetic": "/ˈrelətɪv/", + "forms": {}, + "example": { + "en": "From a usability aspect of the machine we need the capability to define characteristic features on the material (lead frame, clip, die) which we then find in our image, determine the position and measure relative distances to compare with the bonding diagram.", + "cn": "从设备易用性的角度看,我们需要能够在材料(引线框架、夹片、芯片)上定义特征,然后在图像中找到这些特征、确定其位置并测量相对距离,以便与焊接图进行比较。" + } + }, + { + "id": 131, + "english": "repeat", + "frequency": 3, + "category": "action_verbs", + "chinese": "重复", + "phonetic": "/rɪˈpiːt/", + "forms": { + "verb": "repeating (现在分词)" + }, + "example": { + "en": "To repeat for all on this email: Our clip inspection data at Rohm (and at Yanjie) indicate that something is systematically wrong.", + "cn": "再次向本邮件中的所有人说明:我们在 Rohm(以及扬杰)的夹片检测数据表明,系统中存在某种系统性错误。" + } + }, + { + "id": 132, + "english": "require", + "frequency": 3, + "category": "action_verbs", + "chinese": "需要", + "phonetic": "/rɪˈkwaɪər/", + "forms": { + "verb": "requires (第三人称单数)" + }, + "example": { + "en": "I believe you know that we discussed that but put it off to a later phase, because Mike repeatedly told us that it would require a design change, mean no re-use, and extend the timeline significantly.", + "cn": "我相信你知道,我们讨论过此事,但将其推迟到了后续阶段,因为 Mike 多次告诉我们,这需要更改设计、无法复用现有方案,并会大幅延长项目周期。" + } + }, + { + "id": 133, + "english": "runtime", + "frequency": 3, + "category": "technical_operations", + "chinese": "运行时", + "phonetic": "/ˈrʌntaɪm/", + "forms": {}, + "example": { + "en": "At runtime the bonder would use that to compensate for its measurement.", + "cn": "运行时,焊线机会使用该偏差对测量结果进行补偿。" + } + }, + { + "id": 134, + "english": "scope", + "frequency": 3, + "category": "business_core", + "chinese": "显微镜;范围", + "phonetic": "/skəʊp/", + "forms": {}, + "example": { + "en": "In order for the ball measurement to be very close to the actual ball size that got measured in the scope room, we have a ball size correction step during teach where we have the operator dial in the average ball size (measured on the scope) for the bonder measured balls, and the vision system would then remember the offset between the scope measurement and bonder measurement.", + "cn": "为了使焊球测量值尽可能接近显微镜室测得的实际焊球尺寸,我们在示教过程中设置了焊球尺寸校正步骤:由操作员输入显微镜测得的平均焊球尺寸,用于校正焊线机测得的焊球;随后视觉系统会记住显微镜测量值与焊线机测量值之间的偏差。" + } + }, + { + "id": 135, + "english": "summit", + "frequency": 3, + "category": "high_frequency", + "chinese": "峰会;高层会议", + "phonetic": "/ˈsʌmɪt/", + "forms": {}, + "example": { + "en": "Last night (US time) we had the summit and I heard Vlad asking a lot of good questions.", + "cn": "昨晚(美国时间)我们召开了专题会议,我听到 Vlad 提出了很多很好的问题。" + } + }, + { + "id": 136, + "english": "sure", + "frequency": 3, + "category": "high_frequency", + "chinese": "确定的;当然", + "phonetic": "/ʃʊər/", + "forms": {}, + "example": { + "en": "I also copied Eddy (not sure he will still be in Suzhou) and Li Yang, both may give you more insight / details how these images are processed, and Benson and CK for their information about this activity.", + "cn": "我也抄送了 Eddy(不确定他届时是否还在苏州)和 Li Yang;他们或许能进一步说明这些图像的处理方式并提供更多细节。我还抄送了 Benson 和 CK,让他们了解这项工作。" + } + }, + { + "id": 137, + "english": "target", + "frequency": 3, + "category": "business_core", + "chinese": "目标;靶标", + "phonetic": "/ˈtɑːɡɪt/", + "forms": {}, + "example": { + "en": "What if you just use some standard target with grids and do some measurement?", + "cn": "是否可以直接使用带网格的标准靶标进行一些测量?" + } + }, + { + "id": 138, + "english": "verify", + "frequency": 3, + "category": "technical_operations", + "chinese": "验证;核实", + "phonetic": "/ˈverɪfaɪ/", + "forms": { + "verb": "verified (过去式/过去分词)" + }, + "example": { + "en": "This would allow us to check for distortion and verify our calibration.", + "cn": "这样我们就能检查畸变并验证校准结果。" + } + }, + { + "id": 139, + "english": "weekend", + "frequency": 3, + "category": "time_planning", + "chinese": "周末", + "phonetic": "/ˌwiːkˈend/", + "forms": {}, + "example": { + "en": "Thanks\nZhijie\n\n\n+ Thomas\n\nMay need CK help to answer some of question below ideally by this weekend.", + "cn": "谢谢\nZhijie\n\n\n+ Thomas\n\n最好能在本周末前请 CK 协助回答下面的一些问题。" + } + }, + { + "id": 140, + "english": "address", + "frequency": 2, + "category": "action_verbs", + "chinese": "处理;地址", + "phonetic": "/əˈdres/", + "forms": {}, + "example": { + "en": "Note that last night (US time) in the Avaline development review meeting it was decided to have a review meeting in Suzhou next Monday 2pm led by Benson, with Li Yang and CK, to further address this topic.", + "cn": "请注意,昨晚(美国时间)的 Avaline 开发评审会上决定,下周一下午 2 点在苏州召开评审会议,由 Benson 主持,Li Yang 和 CK 参加,以进一步处理这一议题。" + } + }, + { + "id": 141, + "english": "answer", + "frequency": 2, + "category": "action_verbs", + "chinese": "回答", + "phonetic": "/ˈɑːnsər/", + "forms": { + "noun": "answers (复数)", + "verb": "answered (过去式/过去分词)" + }, + "example": { + "en": "Thanks\nZhijie\n\n\n+ Thomas\n\nMay need CK help to answer some of question below ideally by this weekend.", + "cn": "谢谢\nZhijie\n\n\n+ Thomas\n\n最好能在本周末前请 CK 协助回答下面的一些问题。" + } + }, + { + "id": 142, + "english": "area", + "frequency": 2, + "category": "high_frequency", + "chinese": "区域;面积", + "phonetic": "/ˈeəriə/", + "forms": {}, + "example": { + "en": "Is it using area-based algorithm or edge-based algorithm?", + "cn": "它使用的是基于区域的算法,还是基于边缘的算法?" + } + }, + { + "id": 143, + "english": "average", + "frequency": 2, + "category": "high_frequency", + "chinese": "平均", + "phonetic": "/ˈævərɪdʒ/", + "forms": {}, + "example": { + "en": "In order for the ball measurement to be very close to the actual ball size that got measured in the scope room, we have a ball size correction step during teach where we have the operator dial in the average ball size (measured on the scope) for the bonder measured balls, and the vision system would then remember the offset between the scope measurement and bonder measurement.", + "cn": "为了使焊球测量值尽可能接近显微镜室测得的实际焊球尺寸,我们在示教过程中设置了焊球尺寸校正步骤:由操作员输入显微镜测得的平均焊球尺寸,用于校正焊线机测得的焊球;随后视觉系统会记住显微镜测量值与焊线机测量值之间的偏差。" + } + }, + { + "id": 144, + "english": "black", + "frequency": 2, + "category": "high_frequency", + "chinese": "黑色的", + "phonetic": "/blæk/", + "forms": {}, + "example": { + "en": "If it is, for the given hardware, what would have to be changed / improved, to gain more contrast or work with more contrast than just this ‘black & white’?", + "cn": "如果确实如此,那么针对现有硬件,需要做哪些更改或改进,才能获得更高的对比度,而不只是这种“黑白”效果?" + } + }, + { + "id": 145, + "english": "box", + "frequency": 2, + "category": "high_frequency", + "chinese": "盒子;框", + "phonetic": "/bɒks/", + "forms": {}, + "example": { + "en": "@Guo Ping Huang, you could use Halcon to get the slots as “blobs”, then calculate the bounding box for the user-chosen slot, then use the center of that bounding box as the origin.", + "cn": "@Guo Ping Huang,你可以使用 Halcon 将槽孔提取为“连通域”,然后计算用户所选槽孔的外接矩形,再以该外接矩形的中心作为原点。" + } + }, + { + "id": 146, + "english": "capture", + "frequency": 2, + "category": "technical_operations", + "chinese": "捕获;获取", + "phonetic": "/ˈkæptʃər/", + "forms": {}, + "example": { + "en": "So maybe a good test is to capture the slot locations in one image, then move the camera by an (encoder) controlled distance and capture the same slot locations again and see whether the distances in between the slots changed with the shift of the lead frame in the FoV (by shifting the camera by a distance controlled on the 1m level).", + "cn": "因此,一个不错的测试方法或许是:先在一幅图像中获取槽孔位置,然后让相机移动一段由编码器控制的距离,再次获取相同槽孔的位置,检查槽孔间距是否会随着引线框架在视野中的偏移而变化(相机移动距离控制在 1 微米量级)。" + } + }, + { + "id": 147, + "english": "cause", + "frequency": 2, + "category": "high_frequency", + "chinese": "导致;原因", + "phonetic": "/kɔːz/", + "forms": { + "verb": "caused (过去式/过去分词)" + }, + "example": { + "en": "Lighting may cause the apparent position of a lead frame edge to vary across the field of view.", + "cn": "照明可能会使引线框架边缘的表观位置在整个视野范围内发生变化。" + } + }, + { + "id": 148, + "english": "consistent", + "frequency": 2, + "category": "high_frequency", + "chinese": "一致的", + "phonetic": "/kənˈsɪstənt/", + "forms": {}, + "example": { + "en": "But instead we measured consistent but very unusual diagonal bands of higher error.", + "cn": "但我们测得的却是一致但非常异常的高误差斜向条带。" + } + }, + { + "id": 149, + "english": "correction", + "frequency": 2, + "category": "high_frequency", + "chinese": "校正", + "phonetic": "/kəˈrekʃən/", + "forms": {}, + "example": { + "en": "In order for the ball measurement to be very close to the actual ball size that got measured in the scope room, we have a ball size correction step during teach where we have the operator dial in the average ball size (measured on the scope) for the bonder measured balls, and the vision system would then remember the offset between the scope measurement and bonder measurement.", + "cn": "为了使焊球测量值尽可能接近显微镜室测得的实际焊球尺寸,我们在示教过程中设置了焊球尺寸校正步骤:由操作员输入显微镜测得的平均焊球尺寸,用于校正焊线机测得的焊球;随后视觉系统会记住显微镜测量值与焊线机测量值之间的偏差。" + } + }, + { + "id": 150, + "english": "cost", + "frequency": 2, + "category": "business_core", + "chinese": "成本;花费", + "phonetic": "/kɒst/", + "forms": {}, + "example": { + "en": "But of course, it would be great if we could find a more effective / lower cost / more re-use & synergies solution asap.", + "cn": "当然,如果能尽快找到一个更有效、成本更低、复用程度和协同效应更高的解决方案,那就再好不过了。" + } + }, + { + "id": 151, + "english": "count", + "frequency": 2, + "category": "high_frequency", + "chinese": "数量;计数", + "phonetic": "/kaʊnt/", + "forms": {}, + "example": { + "en": "The images which we upload appear to be binary and to have low pixel count (this latter we seem to have changed on the Suzhou clip bonder but is still low pixel count on the clip bonder in Rohm Thailand).", + "cn": "我们上传的图像似乎是二值图像,而且像素数较低(苏州的夹片焊接机似乎已经对此做了调整,但 Rohm 泰国的夹片焊接机像素数仍然较低)。" + } + }, + { + "id": 152, + "english": "create", + "frequency": 2, + "category": "action_verbs", + "chinese": "创建", + "phonetic": "/kriːˈeɪt/", + "forms": { + "verb": "created (过去式/过去分词)" + }, + "example": { + "en": "We can’t use the customer’s bonding diagram to set up or inspect the assemblies we create.", + "cn": "我们无法使用客户的焊接图来设置或检查我们生产的组件。" + } + }, + { + "id": 153, + "english": "define", + "frequency": 2, + "category": "action_verbs", + "chinese": "定义", + "phonetic": "/dɪˈfaɪn/", + "forms": {}, + "example": { + "en": "Shouldn’t it be at the center of the feature which we want to use to define the position of the item (device on lead frame, clip) so we can compare the machine reported dimensions with the dimensions given on the bonding diagram?", + "cn": "它难道不应该位于我们用来定义对象(引线框架上的器件、夹片)位置的特征中心吗?这样我们才能将设备报告的尺寸与焊接图给出的尺寸进行比较。" + } + }, + { + "id": 154, + "english": "description", + "frequency": 2, + "category": "high_frequency", + "chinese": "描述", + "phonetic": "/dɪˈskrɪpʃən/", + "forms": {}, + "example": { + "en": "Please correct my description below if possible today Thursday 7/9, and add additional items to be checked, documented.", + "cn": "如有可能,请在今天(周四 7 月 9 日)更正我下面的说明,并补充其他需要检查和记录的项目。" + } + }, + { + "id": 155, + "english": "die", + "frequency": 2, + "category": "technical_core", + "chinese": "芯片;模具", + "phonetic": "/daɪ/", + "forms": {}, + "example": { + "en": "From a usability aspect of the machine we need the capability to define characteristic features on the material (lead frame, clip, die) which we then find in our image, determine the position and measure relative distances to compare with the bonding diagram.", + "cn": "从设备易用性的角度看,我们需要能够在材料(引线框架、夹片、芯片)上定义特征,然后在图像中找到这些特征、确定其位置并测量相对距离,以便与焊接图进行比较。" + } + }, + { + "id": 156, + "english": "favor", + "frequency": 2, + "category": "high_frequency", + "chinese": "帮忙;偏好", + "phonetic": "/ˈfeɪvər/", + "forms": { + "verb": "favored (过去式/过去分词)" + }, + "example": { + "en": "Finally, @Jian Fei Yang, can you please do me a favor and work with Li Yang and Eddy tomorrow to get ‘ a diagram showing how the regions are taught and how they are used at runtime to measure the distances?", + "cn": "最后,@Jian Fei Yang,能否请你帮个忙,明天与 Li Yang 和 Eddy 一起制作一张示意图,说明这些区域是如何示教的,以及运行时如何使用它们测量距离?" + } + }, + { + "id": 157, + "english": "feedback", + "frequency": 2, + "category": "business_core", + "chinese": "反馈", + "phonetic": "/ˈfiːdbæk/", + "forms": {}, + "example": { + "en": "Hi Zhijie,\n\nI would like to ask for your feedback / comments on some of the questions I have to how the Avaline FAEs set up the vision.", + "cn": "Zhijie,你好:\n\n我想请你就 Avaline 现场应用工程师如何设置视觉系统方面的一些问题提供反馈或意见。" + } + }, + { + "id": 158, + "english": "first", + "frequency": 2, + "category": "time_planning", + "chinese": "第一;首先", + "phonetic": "/fɜːst/", + "forms": {}, + "example": { + "en": "@Vladimir Pribula, please let’s use the opportunity of you being in Suzhou to look into this first-hand.", + "cn": "@Vladimir Pribula,请利用你在苏州的机会,到现场亲自了解一下这个问题。" + } + }, + { + "id": 159, + "english": "fix", + "frequency": 2, + "category": "technical_operations", + "chinese": "修复", + "phonetic": "/fɪks/", + "forms": { + "verb": "fixing (现在分词)" + }, + "example": { + "en": "We need to understand the problem and then fix it.", + "cn": "我们需要先弄清问题,然后将其解决。" + } + }, + { + "id": 160, + "english": "flip", + "frequency": 2, + "category": "high_frequency", + "chinese": "翻转;倒装", + "phonetic": "/flɪp/", + "forms": {}, + "example": { + "en": "Note that we are in the RFQ process for manufacturing the first 5 prototypes and that we will need up-looking vision for the currently favored flip module concept.", + "cn": "请注意,我们正在为首批 5 台原型机的制造进行询价,而目前倾向采用的翻转模块方案将需要上视视觉。" + } + }, + { + "id": 161, + "english": "forward", + "frequency": 2, + "category": "action_verbs", + "chinese": "转发;向前", + "phonetic": "/ˈfɔːwəd/", + "forms": {}, + "example": { + "en": "I’m looking forward to see that changed as soon as possible.", + "cn": "我期待尽快看到这一点得到改变。" + } + }, + { + "id": 162, + "english": "general", + "frequency": 2, + "category": "high_frequency", + "chinese": "一般的;总的", + "phonetic": "/ˈdʒenərəl/", + "forms": {}, + "example": { + "en": "In general, I see that we set the light always very bright.", + "cn": "总体而言,我发现我们总是把光源设置得非常亮。" + } + }, + { + "id": 163, + "english": "hear", + "frequency": 2, + "category": "action_verbs", + "chinese": "听到", + "phonetic": "/hɪər/", + "forms": {}, + "example": { + "en": "It was difficult for me to hear and understand much during the summit day yesterday.", + "cn": "昨天的专题会议期间,我很难听清并理解大部分内容。" + } + }, + { + "id": 164, + "english": "helpful", + "frequency": 2, + "category": "high_frequency", + "chinese": "有帮助的", + "phonetic": "/ˈhelpfəl/", + "forms": {}, + "example": { + "en": "Any improvement(s) we could apply there from your review and hopefully suggestions, if feasible in this short notice, would be very helpful.", + "cn": "如果时间允许,你们评审后提出并可在如此紧迫的期限内实施的任何改进或建议,都会非常有帮助。" + } + }, + { + "id": 165, + "english": "high", + "frequency": 2, + "category": "high_frequency", + "chinese": "高的", + "phonetic": "/haɪ/", + "forms": { + "adjective": "higher (比较级)" + }, + "example": { + "en": "Regards,\nBenson\n\n\n\nQuestions on Vision on CB in Avaline\n\n\n\n\n\n\nZhijie,\n\nYes, being able to reliably and accurately find a feature with high repeatability is a necessary but not sufficient capability to do measurements.", + "cn": "此致\nBenson\n\n\n\nAvaline 夹片焊接机视觉问题\n\n\n\n\n\n\nZhijie:\n\n是的,能够以高重复性可靠、准确地找到特征,是进行测量的必要条件,但并非充分条件。" + } + }, + { + "id": 166, + "english": "implement", + "frequency": 2, + "category": "technical_operations", + "chinese": "实施;实现", + "phonetic": "/ˈɪmplɪment/", + "forms": {}, + "example": { + "en": "Here are my thoughts and recommendations:\n-\tImplement “origins” for fiducials that are grounded to a feature on the material.", + "cn": "以下是我的想法和建议:\n-\t为基准标记实现与材料特征绑定的“原点”。" + } + }, + { + "id": 167, + "english": "include", + "frequency": 2, + "category": "action_verbs", + "chinese": "包含", + "phonetic": "/ɪnˈkluːd/", + "forms": { + "verb": "includes (第三人称单数)" + }, + "example": { + "en": "-\tFor debugging, saved images should be in the raw format, but also include metadata for the preprocessing used.", + "cn": "-\t为便于调试,保存的图像应采用原始格式,同时还应包含所用预处理的元数据。" + } + }, + { + "id": 168, + "english": "indicate", + "frequency": 2, + "category": "action_verbs", + "chinese": "显示;表明", + "phonetic": "/ˈɪndɪkeɪt/", + "forms": {}, + "example": { + "en": "To repeat for all on this email: Our clip inspection data at Rohm (and at Yanjie) indicate that something is systematically wrong.", + "cn": "再次向本邮件中的所有人说明:我们在 Rohm(以及扬杰)的夹片检测数据表明,系统中存在某种系统性错误。" + } + }, + { + "id": 169, + "english": "item", + "frequency": 2, + "category": "high_frequency", + "chinese": "项目;条目", + "phonetic": "/ˈaɪtəm/", + "forms": {}, + "example": { + "en": "Shouldn’t it be at the center of the feature which we want to use to define the position of the item (device on lead frame, clip) so we can compare the machine reported dimensions with the dimensions given on the bonding diagram?", + "cn": "它难道不应该位于我们用来定义对象(引线框架上的器件、夹片)位置的特征中心吗?这样我们才能将设备报告的尺寸与焊接图给出的尺寸进行比较。" + } + }, + { + "id": 170, + "english": "large", + "frequency": 2, + "category": "high_frequency", + "chinese": "大的", + "phonetic": "/lɑːdʒ/", + "forms": {}, + "example": { + "en": "Being able to find the centers of the slots reliably we can use the lead frame as ‘reticle’ to map the FoV to see whether we have (large) distortions which give these large measurement errors, i.e., whether we see the 6, distances in X and the 10,600m distances in Y different in the different locations in the FoV.", + "cn": "如果能够可靠地找到槽孔中心,就可以把引线框架用作“标线板”来映射视野,以判断是否存在导致这些较大测量误差的明显畸变;也就是说,检查 X 方向 6,000 微米和 Y 方向 10,600 微米的距离在视野不同位置是否有所不同。" + } + }, + { + "id": 171, + "english": "learn", + "frequency": 2, + "category": "action_verbs", + "chinese": "学习", + "phonetic": "/lɜːn/", + "forms": { + "verb": "learned (过去式/过去分词)" + }, + "example": { + "en": "There we may need to learn the better algorithm.", + "cn": "在那里,我们可能需要采用更合适的算法。" + } + }, + { + "id": 172, + "english": "less", + "frequency": 2, + "category": "high_frequency", + "chinese": "较少的", + "phonetic": "/les/", + "forms": {}, + "example": { + "en": "At Yangjie this is less or not of an issue, as they seem not to look at this detail level.", + "cn": "在扬杰,这个问题较轻微,甚至不构成问题,因为他们似乎不会关注到如此细的层级。" + } + }, + { + "id": 173, + "english": "magnification", + "frequency": 2, + "category": "technical_core", + "chinese": "放大倍数;放大", + "phonetic": "/ˌmæɡnɪfɪˈkeɪʃən/", + "forms": {}, + "example": { + "en": "Magnification calibration is done by teaching a fiducial on any material, then moving the camera by a known distance to measure the microns per pixel of this particular optics.", + "cn": "放大倍率校准的做法是:在任意材料上示教一个基准标记,然后将相机移动一段已知距离,以测量这套特定光学系统的微米/像素值。" + } + }, + { + "id": 174, + "english": "metadata", + "frequency": 2, + "category": "high_frequency", + "chinese": "元数据", + "phonetic": "/ˈmetəˌdeɪtə/", + "forms": {}, + "example": { + "en": "-\tFor debugging, saved images should be in the raw format, but also include metadata for the preprocessing used.", + "cn": "-\t为便于调试,保存的图像应采用原始格式,同时还应包含所用预处理的元数据。" + } + }, + { + "id": 175, + "english": "micron", + "frequency": 2, + "category": "technical_core", + "chinese": "微米", + "phonetic": "/ˈmaɪkrɒn/", + "forms": {}, + "example": { + "en": "But detailed material inspection data collected in Santa Ana on the Rohm material show that the lead frame and the clip from Rohm are very accurate and match on the micron level.", + "cn": "但在圣安娜对 Rohm 材料采集的详细材料检测数据显示,Rohm 的引线框架和夹片精度很高,并且在微米级别上相互匹配。" + } + }, + { + "id": 176, + "english": "mode", + "frequency": 2, + "category": "high_frequency", + "chinese": "模式", + "phonetic": "/məʊd/", + "forms": {}, + "example": { + "en": "On the Wedge bonder, there is a mode to select using gray level or binary operation.", + "cn": "楔焊机上有一种模式,可选择使用灰度处理或二值处理。" + } + }, + { + "id": 177, + "english": "necessary", + "frequency": 2, + "category": "high_frequency", + "chinese": "必要的", + "phonetic": "/ˈnesɪsəri/", + "forms": {}, + "example": { + "en": "But in some cases, it may be necessary to binarize the image for robustness.", + "cn": "但在某些情况下,为提高稳健性,可能有必要对图像进行二值化。" + } + }, + { + "id": 178, + "english": "operation", + "frequency": 2, + "category": "technical_operations", + "chinese": "操作;运行", + "phonetic": "/ˌɒpəˈreɪʃən/", + "forms": {}, + "example": { + "en": "On the Wedge bonder, there is a mode to select using gray level or binary operation.", + "cn": "楔焊机上有一种模式,可选择使用灰度处理或二值处理。" + } + }, + { + "id": 179, + "english": "part", + "frequency": 2, + "category": "high_frequency", + "chinese": "零件;部分", + "phonetic": "/pɑːt/", + "forms": { + "noun": "parts (复数)" + }, + "example": { + "en": "That said, we actually map the light intensity over the Field of View, if it is being done as part of FAT.", + "cn": "不过,前提是这项工作属于 FAT 的一部分;事实上,我们确实会对整个视野内的光照强度进行映射。" + } + }, + { + "id": 180, + "english": "pick", + "frequency": 2, + "category": "technical_operations", + "chinese": "拾取;挑选", + "phonetic": "/pɪk/", + "forms": {}, + "example": { + "en": "With the up-looking vision we inspect the clips after pick.", + "cn": "我们使用上视视觉在拾取后检查夹片。" + } + }, + { + "id": 181, + "english": "placement", + "frequency": 2, + "category": "technical_operations", + "chinese": "贴装;放置", + "phonetic": "/ˈpleɪsmənt/", + "forms": {}, + "example": { + "en": "They are very data focused, and we still owe them an explanation of the systematic behavior of the clip placement data in Y.", + "cn": "他们非常重视数据,而我们仍需向他们解释夹片 Y 方向贴装数据所呈现的系统性规律。" + } + }, + { + "id": 182, + "english": "problem", + "frequency": 2, + "category": "high_frequency", + "chinese": "问题", + "phonetic": "/ˈprɒbləm/", + "forms": {}, + "example": { + "en": "We need to understand the problem and then fix it.", + "cn": "我们需要先弄清问题,然后将其解决。" + } + }, + { + "id": 183, + "english": "put", + "frequency": 2, + "category": "action_verbs", + "chinese": "放置", + "phonetic": "/pʊt/", + "forms": {}, + "example": { + "en": "I believe you know that we discussed that but put it off to a later phase, because Mike repeatedly told us that it would require a design change, mean no re-use, and extend the timeline significantly.", + "cn": "我相信你知道,我们讨论过此事,但将其推迟到了后续阶段,因为 Mike 多次告诉我们,这需要更改设计、无法复用现有方案,并会大幅延长项目周期。" + } + }, + { + "id": 184, + "english": "quality", + "frequency": 2, + "category": "business_core", + "chinese": "质量", + "phonetic": "/ˈkwɒlɪti/", + "forms": {}, + "example": { + "en": "We want to look at the image quality with a reticle that is accurate and provides a contrast that allows robust feature definition and find.", + "cn": "我们希望使用精确的标线板来检查图像质量;该标线板应能提供足够的对比度,从而稳健地定义并查找特征。" + } + }, + { + "id": 185, + "english": "reference", + "frequency": 2, + "category": "communication", + "chinese": "参考;基准", + "phonetic": "/ˈrefərəns/", + "forms": {}, + "example": { + "en": "o\tHypothesis was that some light reflects off of the edges of the LF when it’s away from the center of the FOV:\no\t \n\nObservations in the data:\n-\tThe errors have a repeating pattern every 6 devices - @Yang Li is there any concept of a shared reference system like we have in BB, where the user only needs to teach an fiducial for one device, and then that’s copied to all other devices in the index?", + "cn": "o\t假设:当引线框架偏离视野中心时,部分光线会从其边缘反射:\no\t \n\n数据观察结果:\n-\t误差每 6 个器件呈现一次重复模式——@Yang Li,系统中是否存在类似 BB 的共享参考系概念?在 BB 中,用户只需为一个器件示教一个基准标记,该标记随后会复制到该索引中的所有其他器件。" + } + }, + { + "id": 186, + "english": "robust", + "frequency": 2, + "category": "high_frequency", + "chinese": "稳健的", + "phonetic": "/rəʊˈbʌst/", + "forms": {}, + "example": { + "en": "We want to look at the image quality with a reticle that is accurate and provides a contrast that allows robust feature definition and find.", + "cn": "我们希望使用精确的标线板来检查图像质量;该标线板应能提供足够的对比度,从而稳健地定义并查找特征。" + } + }, + { + "id": 187, + "english": "robustness", + "frequency": 2, + "category": "high_frequency", + "chinese": "稳健性", + "phonetic": "/rəʊˈbʌstnɪs/", + "forms": {}, + "example": { + "en": "But in some cases, it may be necessary to binarize the image for robustness.", + "cn": "但在某些情况下,为提高稳健性,可能有必要对图像进行二值化。" + } + }, + { + "id": 188, + "english": "shift", + "frequency": 2, + "category": "high_frequency", + "chinese": "移动;偏移", + "phonetic": "/ʃɪft/", + "forms": { + "verb": "shifting (现在分词)" + }, + "example": { + "en": "So maybe a good test is to capture the slot locations in one image, then move the camera by an (encoder) controlled distance and capture the same slot locations again and see whether the distances in between the slots changed with the shift of the lead frame in the FoV (by shifting the camera by a distance controlled on the 1m level).", + "cn": "因此,一个不错的测试方法或许是:先在一幅图像中获取槽孔位置,然后让相机移动一段由编码器控制的距离,再次获取相同槽孔的位置,检查槽孔间距是否会随着引线框架在视野中的偏移而变化(相机移动距离控制在 1 微米量级)。" + } + }, + { + "id": 189, + "english": "software", + "frequency": 2, + "category": "technical_core", + "chinese": "软件", + "phonetic": "/ˈsɒftweər/", + "forms": {}, + "example": { + "en": "I assume that is a software function, correct?", + "cn": "我认为这是软件功能,对吗?" + } + }, + { + "id": 190, + "english": "standard", + "frequency": 2, + "category": "high_frequency", + "chinese": "标准的;标准", + "phonetic": "/ˈstændəd/", + "forms": {}, + "example": { + "en": "What if you just use some standard target with grids and do some measurement?", + "cn": "是否可以直接使用带网格的标准靶标进行一些测量?" + } + }, + { + "id": 191, + "english": "start", + "frequency": 2, + "category": "time_planning", + "chinese": "开始", + "phonetic": "/stɑːt/", + "forms": {}, + "example": { + "en": "Next week Rohm Japan engineers in Thailand will start ‘using the machines’ and compare with their experience with the ASM system.", + "cn": "下周,Rohm 日本驻泰国的工程师将开始“使用这些设备”,并与他们使用 ASM 系统的经验进行比较。" + } + }, + { + "id": 192, + "english": "store", + "frequency": 2, + "category": "high_frequency", + "chinese": "存储", + "phonetic": "/stɔːr/", + "forms": {}, + "example": { + "en": "It may be that we store the images binary but process them in a different format.", + "cn": "我们可能以二值格式存储图像,但会采用另一种格式处理图像。" + } + }, + { + "id": 193, + "english": "systematic", + "frequency": 2, + "category": "high_frequency", + "chinese": "系统性的", + "phonetic": "/ˌsɪstɪˈmætɪk/", + "forms": {}, + "example": { + "en": "They are very data focused, and we still owe them an explanation of the systematic behavior of the clip placement data in Y.", + "cn": "他们非常重视数据,而我们仍需向他们解释夹片 Y 方向贴装数据所呈现的系统性规律。" + } + }, + { + "id": 194, + "english": "tomorrow", + "frequency": 2, + "category": "time_planning", + "chinese": "明天", + "phonetic": "/təˈmɒrəʊ/", + "forms": {}, + "example": { + "en": "Finally, @Jian Fei Yang, can you please do me a favor and work with Li Yang and Eddy tomorrow to get ‘ a diagram showing how the regions are taught and how they are used at runtime to measure the distances?", + "cn": "最后,@Jian Fei Yang,能否请你帮个忙,明天与 Li Yang 和 Eddy 一起制作一张示意图,说明这些区域是如何示教的,以及运行时如何使用它们测量距离?" + } + }, + { + "id": 195, + "english": "try", + "frequency": 2, + "category": "action_verbs", + "chinese": "尝试", + "phonetic": "/traɪ/", + "forms": {}, + "example": { + "en": "@Jian Fei Yang, let’s try to understand from Li Yang and Eddy where that cross hair is placed by the system / software.", + "cn": "@Jian Fei Yang,我们来向 Li Yang 和 Eddy 了解一下,系统或软件把十字准线放在什么位置。" + } + }, + { + "id": 196, + "english": "type", + "frequency": 2, + "category": "high_frequency", + "chinese": "类型", + "phonetic": "/taɪp/", + "forms": {}, + "example": { + "en": "Below is the email which I had sent 2 weeks ago with some of the questions which you asked me again 2 days ago (type of images, …).", + "cn": "下面是我两周前发送的邮件,其中包含你两天前再次问我的一些问题(图像类型等)。" + } + }, + { + "id": 197, + "english": "unique", + "frequency": 2, + "category": "high_frequency", + "chinese": "独特的;唯一的", + "phonetic": "/juːˈniːk/", + "forms": {}, + "example": { + "en": "The operator can place that teach window wherever they please relative to unique features.", + "cn": "操作员可以根据独特特征的相对位置,将示教窗口放在任意位置。" + } + }, + { + "id": 198, + "english": "upload", + "frequency": 2, + "category": "technical_operations", + "chinese": "上传", + "phonetic": "/ʌpˈləʊd/", + "forms": {}, + "example": { + "en": "These are the images we upload for each clip transfer inspection.", + "cn": "这些是我们为每次夹片转移检测上传的图像。" + } + }, + { + "id": 199, + "english": "vary", + "frequency": 2, + "category": "high_frequency", + "chinese": "变化", + "phonetic": "/ˈveəri/", + "forms": { + "verb": "varied (过去式/过去分词)" + }, + "example": { + "en": "Lighting may cause the apparent position of a lead frame edge to vary across the field of view.", + "cn": "照明可能会使引线框架边缘的表观位置在整个视野范围内发生变化。" + } + }, + { + "id": 200, + "english": "white", + "frequency": 2, + "category": "high_frequency", + "chinese": "白色的", + "phonetic": "/waɪt/", + "forms": {}, + "example": { + "en": "If it is, for the given hardware, what would have to be changed / improved, to gain more contrast or work with more contrast than just this ‘black & white’?", + "cn": "如果确实如此,那么针对现有硬件,需要做哪些更改或改进,才能获得更高的对比度,而不只是这种“非黑即白”的效果?" + } + }, + { + "id": 201, + "english": "within", + "frequency": 2, + "category": "high_frequency", + "chinese": "在...之内", + "phonetic": "/wɪˈðɪn/", + "forms": {}, + "example": { + "en": "The user still sets their teach window the same as they do today, but then within that teach window they need to click on a corner feature to use as an origin/reference point.", + "cn": "用户仍像现在一样设置示教窗口,但随后需要在该窗口内点击一个角点特征,将其用作原点/参考点。" + } + }, + { + "id": 202, + "english": "wrong", + "frequency": 2, + "category": "high_frequency", + "chinese": "错误的", + "phonetic": "/rɒŋ/", + "forms": {}, + "example": { + "en": "To repeat for all on this email: Our clip inspection data at Rohm (and at Yanjie) indicate that something is systematically wrong.", + "cn": "再次向本邮件中的所有人说明:我们在罗姆(以及扬杰)的夹片检测数据表明,系统中存在某种系统性问题。" + } + }, + { + "id": 203, + "english": "acceptance", + "frequency": 1, + "category": "business_core", + "chinese": "验收;接受", + "phonetic": "/əkˈseptəns/", + "forms": {}, + "example": { + "en": "Also please note that we are installing this application in Rohm Thailand end of next week and want to get acceptance by middle of July.", + "cn": "另请注意,我们将在下周末于罗姆泰国工厂安装此应用,并希望在7月中旬前完成验收。" + } + }, + { + "id": 204, + "english": "active", + "frequency": 1, + "category": "high_frequency", + "chinese": "积极的;主动的", + "phonetic": "/ˈæktɪv/", + "forms": {}, + "example": { + "en": "I still suggest some active choice by the user here in case the teach window includes more than one slot or portions of other slots to make the fiducial unique.", + "cn": "我仍建议由用户在此处主动做出选择,以防示教窗口包含多个槽位或其他槽位的一部分,从而确保基准特征具有唯一性。" + } + }, + { + "id": 205, + "english": "activity", + "frequency": 1, + "category": "high_frequency", + "chinese": "活动", + "phonetic": "/ækˈtɪvɪti/", + "forms": {}, + "example": { + "en": "I also copied Eddy (not sure he will still be in Suzhou) and Li Yang, both may give you more insight / details how these images are processed, and Benson and CK for their information about this activity.", + "cn": "我还抄送了Eddy(不确定他届时是否仍在苏州)和李阳,他们或许能进一步说明这些图像的处理方式并提供更多细节;同时抄送Benson和CK,让他们了解此项工作。" + } + }, + { + "id": 206, + "english": "add", + "frequency": 1, + "category": "high_frequency", + "chinese": "添加", + "phonetic": "/æd/", + "forms": {}, + "example": { + "en": "Please correct my description below if possible today Thursday 7/9, and add additional items to be checked, documented.", + "cn": "如有可能,请在今天(7月9日,星期四)更正我下面的描述,并补充需要检查和记录的其他项目。" + } + }, + { + "id": 207, + "english": "additional", + "frequency": 1, + "category": "high_frequency", + "chinese": "额外的", + "phonetic": "/əˈdɪʃənəl/", + "forms": {}, + "example": { + "en": "Please correct my description below if possible today Thursday 7/9, and add additional items to be checked, documented.", + "cn": "如有可能,请在今天(7月9日,星期四)更正我下面的描述,并补充需要检查和记录的其他项目。" + } + }, + { + "id": 208, + "english": "align", + "frequency": 1, + "category": "technical_operations", + "chinese": "对齐;协调", + "phonetic": "/əˈlaɪn/", + "forms": {}, + "example": { + "en": "Finally, Zhijie, could you please align with Vlad and Bruce on the plan we have for the up-looking vision, i.e., why we are hooked to the Zebra camera, and why the phases are as they are?", + "cn": "最后,志杰,能否请你与Vlad和Bruce就我们的上视视觉方案进行协调,即说明为什么要连接Zebra相机,以及各阶段为何这样安排?" + } + }, + { + "id": 209, + "english": "alignment", + "frequency": 1, + "category": "technical_operations", + "chinese": "对齐;校准", + "phonetic": "/əˈlaɪnmənt/", + "forms": {}, + "example": { + "en": "That is kind of expected for most vision systems as focus here is alignment.", + "cn": "对于大多数视觉系统而言,这种情况基本符合预期,因为这里的重点是对准。" + } + }, + { + "id": 210, + "english": "alternative", + "frequency": 1, + "category": "high_frequency", + "chinese": "替代方案", + "phonetic": "/ɔːlˈtɜːnətɪv/", + "forms": {}, + "example": { + "en": "What image processing techniques are used?’ If that is not possible, @Benson Tang, as an alternative/backup, can Jianfei try to ask Wang Fang as he developed most / all of this?", + "cn": "使用了哪些图像处理技术?如果无法做到,@Benson Tang,作为替代/备用方案,建飞能否尝试询问王芳?因为其中大部分或全部内容都是他开发的。" + } + }, + { + "id": 211, + "english": "apparent", + "frequency": 1, + "category": "high_frequency", + "chinese": "表面上的;貌似的;显然的", + "phonetic": "/əˈpærənt/", + "forms": {}, + "example": { + "en": "Lighting may cause the apparent position of a lead frame edge to vary across the field of view.", + "cn": "光照可能导致引线框架边缘在整个视野中的表观位置发生变化。" + } + }, + { + "id": 212, + "english": "appear", + "frequency": 1, + "category": "high_frequency", + "chinese": "出现;看起来", + "phonetic": "/əˈpɪər/", + "forms": {}, + "example": { + "en": "The images which we upload appear to be binary and to have low pixel count (this latter we seem to have changed on the Suzhou clip bonder but is still low pixel count on the clip bonder in Rohm Thailand).", + "cn": "我们上传的图像看起来是二值图像,而且像素数较低(后一个问题似乎已在苏州夹片焊接机上调整,但罗姆泰国工厂的夹片焊接机像素数仍然较低)。" + } + }, + { + "id": 213, + "english": "appearance", + "frequency": 1, + "category": "high_frequency", + "chinese": "外观;出现", + "phonetic": "/əˈpɪərəns/", + "forms": {}, + "example": { + "en": "This is used to sharpen the appearance of edges to make edge detection for a geometric based fiducial algorithm work more robustly.", + "cn": "此处理用于增强边缘的清晰度,使基于几何特征的基准算法能够更稳健地进行边缘检测。" + } + }, + { + "id": 214, + "english": "appreciate", + "frequency": 1, + "category": "communication", + "chinese": "感谢;欣赏", + "phonetic": "/əˈpriːʃieɪt/", + "forms": {}, + "example": { + "en": "Appreciate your comments.", + "cn": "感谢您的意见。" + } + }, + { + "id": 215, + "english": "argument", + "frequency": 1, + "category": "high_frequency", + "chinese": "论点;争论", + "phonetic": "/ˈɑːɡjumənt/", + "forms": {}, + "example": { + "en": "As the 6 locations are very close, I believe the light argument is also less likely.", + "cn": "由于这6个位置彼此非常接近,我认为光照因素导致问题的可能性也较低。" + } + }, + { + "id": 216, + "english": "around", + "frequency": 1, + "category": "high_frequency", + "chinese": "周围;大约", + "phonetic": "/əˈraʊnd/", + "forms": {}, + "example": { + "en": "And we can move the lead frame around in a controlled manner.", + "cn": "而且我们可以以受控方式移动引线框架。" + } + }, + { + "id": 217, + "english": "array", + "frequency": 1, + "category": "technical_core", + "chinese": "阵列;数组", + "phonetic": "/əˈreɪ/", + "forms": {}, + "example": { + "en": "The lead frame pitch is very accurate in X (6,000m) and Y (10,600m), and the clip is very accurate in X with 6,000m pitch (pitch on lead frame and clip should be identical, otherwise the array transfer doesn’t work).", + "cn": "引线框架在X方向(6,000微米)和Y方向(10,600微米)的节距都非常精确,夹片在X方向的6,000微米节距也非常精确(引线框架与夹片的节距应完全相同,否则阵列转移无法正常工作)。" + } + }, + { + "id": 218, + "english": "aspect", + "frequency": 1, + "category": "high_frequency", + "chinese": "方面", + "phonetic": "/ˈæspekt/", + "forms": {}, + "example": { + "en": "From a usability aspect of the machine we need the capability to define characteristic features on the material (lead frame, clip, die) which we then find in our image, determine the position and measure relative distances to compare with the bonding diagram.", + "cn": "从机器易用性的角度看,我们需要能够在材料(引线框架、夹片、芯片)上定义特征,在图像中找到这些特征、确定其位置并测量相对距离,再与焊接图进行比较。" + } + }, + { + "id": 219, + "english": "attend", + "frequency": 1, + "category": "action_verbs", + "chinese": "参加", + "phonetic": "/əˈtend/", + "forms": {}, + "example": { + "en": "@Zhijie Wang, we were hoping that there is an experienced vision engineer in Suzhou who can attend that meeting at the machine.", + "cn": "@Zhijie Wang,我们希望苏州能有一位经验丰富的视觉工程师参加在机器旁举行的会议。" + } + }, + { + "id": 220, + "english": "aware", + "frequency": 1, + "category": "high_frequency", + "chinese": "知晓的", + "phonetic": "/əˈweər/", + "forms": {}, + "example": { + "en": "Vlad\n\n\n+@Alex Zhao\n\nChristoph,\n\nAlex got quite a lot of experiences in BB vision and he can share his perspective as to how we do things on BB vision, I can have a quick chat with him this weekend so he is aware of what problems you guys are facing.", + "cn": "Vlad\n\n\n+@Alex Zhao\n\nChristoph,\n\nAlex在BB视觉方面经验丰富,可以从BB视觉的工作方式出发分享看法。我可以在本周末与他简短沟通,让他了解你们目前面临的问题。" + } + }, + { + "id": 221, + "english": "bad", + "frequency": 1, + "category": "high_frequency", + "chinese": "差的;坏的", + "phonetic": "/bæd/", + "forms": {}, + "example": { + "en": "It is likely that the parts which our machine produces are accurate, but our system reports bad data.", + "cn": "我们的机器生产出的零件很可能是准确的,但系统却报告了错误数据。" + } + }, + { + "id": 222, + "english": "barrel", + "frequency": 1, + "category": "technical_core", + "chinese": "桶;筒;桶形", + "phonetic": "/ˈbærəl/", + "forms": {}, + "example": { + "en": "If there’s barrel or pincushion distortion in the optics, this calibration will not correct for that.", + "cn": "如果光学系统存在桶形或枕形畸变,此校准无法对其进行修正。" + } + }, + { + "id": 223, + "english": "binarize", + "frequency": 1, + "category": "technical_core", + "chinese": "使二值化;对……进行二值化", + "phonetic": "/ˈbaɪnəraɪz/", + "forms": {}, + "example": { + "en": "But in some cases, it may be necessary to binarize the image for robustness.", + "cn": "但在某些情况下,为提高稳健性,可能有必要对图像进行二值化。" + } + }, + { + "id": 224, + "english": "bright", + "frequency": 1, + "category": "high_frequency", + "chinese": "明亮的", + "phonetic": "/braɪt/", + "forms": {}, + "example": { + "en": "In general, I see that we set the light always very bright.", + "cn": "总体来看,我们总是把光照设置得很亮。" + } + }, + { + "id": 225, + "english": "calibrate", + "frequency": 1, + "category": "technical_core", + "chinese": "校准", + "phonetic": "/ˈkælɪbreɪt/", + "forms": {}, + "example": { + "en": "This patterned varied unpredictably from LF feature to LF feature, so we could not calibrate it out.", + "cn": "该模式在不同引线框架特征之间以不可预测的方式变化,因此我们无法通过校准将其消除。" + } + }, + { + "id": 226, + "english": "capable", + "frequency": 1, + "category": "high_frequency", + "chinese": "有能力的", + "phonetic": "/ˈkeɪpəbəl/", + "forms": {}, + "example": { + "en": "We have other data for the vision system that indicate that it is capable.", + "cn": "我们还有其他视觉系统数据表明,该系统具备所需能力。" + } + }, + { + "id": 227, + "english": "case", + "frequency": 1, + "category": "high_frequency", + "chinese": "案例;情况", + "phonetic": "/keɪs/", + "forms": {}, + "example": { + "en": "I still suggest some active choice by the user here in case the teach window includes more than one slot or portions of other slots to make the fiducial unique.", + "cn": "我仍建议由用户在此处主动做出选择,以防示教窗口包含多个槽位或其他槽位的一部分,从而确保基准特征具有唯一性。" + } + }, + { + "id": 228, + "english": "characteristic", + "frequency": 1, + "category": "high_frequency", + "chinese": "特征;特性", + "phonetic": "/ˌkærɪktəˈrɪstɪk/", + "forms": {}, + "example": { + "en": "From a usability aspect of the machine we need the capability to define characteristic features on the material (lead frame, clip, die) which we then find in our image, determine the position and measure relative distances to compare with the bonding diagram.", + "cn": "从机器易用性的角度看,我们需要能够在材料(引线框架、夹片、芯片)上定义特征,在图像中找到这些特征、确定其位置并测量相对距离,再与焊接图进行比较。" + } + }, + { + "id": 229, + "english": "chat", + "frequency": 1, + "category": "communication", + "chinese": "聊天", + "phonetic": "/tʃæt/", + "forms": {}, + "example": { + "en": "Vlad\n\n\n+@Alex Zhao\n\nChristoph,\n\nAlex got quite a lot of experiences in BB vision and he can share his perspective as to how we do things on BB vision, I can have a quick chat with him this weekend so he is aware of what problems you guys are facing.", + "cn": "Vlad\n\n\n+@Alex Zhao\n\nChristoph,\n\nAlex在BB视觉方面经验丰富,可以从BB视觉的工作方式出发分享看法。我可以在本周末与他简短沟通,让他了解你们目前面临的问题。" + } + }, + { + "id": 230, + "english": "choose", + "frequency": 1, + "category": "action_verbs", + "chinese": "选择", + "phonetic": "/tʃuːz/", + "forms": {}, + "example": { + "en": "Regards,\nChristoph\n\n\nHey Christoph,\n\nYes, instead of using a corner feature, the operator can choose a slot within the teach window.", + "cn": "此致\nChristoph\n\n\nChristoph,你好:\n\n可以,不使用角点特征时,操作员可以在示教窗口内选择一个槽位。" + } + }, + { + "id": 231, + "english": "chrome", + "frequency": 1, + "category": "high_frequency", + "chinese": "铬;铬层", + "phonetic": "/krəʊm/", + "forms": {}, + "example": { + "en": "On a ball bonder, we measured the position of a lead frame corner while moving to various locations on a grid pattern across the field of view and compared the same measurement to our XY table map target which is glass with a very thin deposition of chrome fiducials.", + "cn": "在一台球焊机上,我们让引线框架角点按网格模式移动到视野内的不同位置并测量其位置,再将测量结果与XY平台标定靶进行比较;该标定靶为玻璃材质,表面沉积有一层极薄的铬基准标记。" + } + }, + { + "id": 232, + "english": "click", + "frequency": 1, + "category": "high_frequency", + "chinese": "点击", + "phonetic": "/klɪk/", + "forms": {}, + "example": { + "en": "The user still sets their teach window the same as they do today, but then within that teach window they need to click on a corner feature to use as an origin/reference point.", + "cn": "用户仍像现在一样设置示教窗口,但随后需要在该窗口内点击一个角点特征,将其用作原点/参考点。" + } + }, + { + "id": 233, + "english": "compensate", + "frequency": 1, + "category": "technical_operations", + "chinese": "补偿", + "phonetic": "/ˈkɒmpenseɪt/", + "forms": {}, + "example": { + "en": "At runtime the bonder would use that to compensate for its measurement.", + "cn": "在运行过程中,焊接机会利用该数据对测量结果进行补偿。" + } + }, + { + "id": 234, + "english": "compensation", + "frequency": 1, + "category": "technical_operations", + "chinese": "补偿", + "phonetic": "/ˌkɒmpenˈseɪʃən/", + "forms": {}, + "example": { + "en": "But maybe a per-fiducial compensation would still be possible.", + "cn": "不过,或许仍可针对每个基准特征分别进行补偿。" + } + }, + { + "id": 235, + "english": "complete", + "frequency": 1, + "category": "high_frequency", + "chinese": "完整的;完成", + "phonetic": "/kəmˈpliːt/", + "forms": {}, + "example": { + "en": "It covers the complete FoV and we can see whether the same feature measures the same everywhere in the FoV.", + "cn": "它覆盖整个视野,我们可以据此确认同一特征在视野内各处的测量结果是否一致。" + } + }, + { + "id": 236, + "english": "complex", + "frequency": 1, + "category": "high_frequency", + "chinese": "复杂的", + "phonetic": "/ˈkɒmpleks/", + "forms": {}, + "example": { + "en": "I understand that it may require more complex processing (by Halcon?).", + "cn": "我理解这可能需要进行更复杂的处理(使用Halcon?)。" + } + }, + { + "id": 237, + "english": "concept", + "frequency": 1, + "category": "high_frequency", + "chinese": "概念", + "phonetic": "/ˈkɒnsept/", + "forms": {}, + "example": { + "en": "Note that we are in the RFQ process for manufacturing the first 5 prototypes and that we will need up-looking vision for the currently favored flip module concept.", + "cn": "请注意,我们正处于首批5台原型机制造的询价阶段,而目前倾向采用的翻转模块方案将需要上视视觉。" + } + }, + { + "id": 238, + "english": "control", + "frequency": 1, + "category": "action_verbs", + "chinese": "控制", + "phonetic": "/kənˈtrəʊl/", + "forms": {}, + "example": { + "en": "The operator can control the preprocessing, e.g.", + "cn": "操作员可以控制预处理,例如:" + } + }, + { + "id": 239, + "english": "conversation", + "frequency": 1, + "category": "communication", + "chinese": "对话", + "phonetic": "/ˌkɒnvəˈseɪʃən/", + "forms": {}, + "example": { + "en": "Thanks,\nChristoph\n\n\nHey Christoph,\n\nI think all of this discussion is related to a conversation I had with Li Yang and Eddy while in Suzhou.", + "cn": "谢谢,\nChristoph\n\n\nChristoph,你好:\n\n我认为这里的所有讨论都与我在苏州时同李阳和Eddy的一次谈话有关。" + } + }, + { + "id": 240, + "english": "corner", + "frequency": 1, + "category": "high_frequency", + "chinese": "角;角落", + "phonetic": "/ˈkɔːnər/", + "forms": { + "noun": "corners (复数)" + }, + "example": { + "en": "On a ball bonder, we measured the position of a lead frame corner while moving to various locations on a grid pattern across the field of view and compared the same measurement to our XY table map target which is glass with a very thin deposition of chrome fiducials.", + "cn": "在一台球焊机上,我们让引线框架角点按网格模式移动到视野内的不同位置并测量其位置,再将测量结果与XY平台标定靶进行比较;该标定靶为玻璃材质,表面沉积有一层极薄的铬基准标记。" + } + }, + { + "id": 241, + "english": "critical", + "frequency": 1, + "category": "high_frequency", + "chinese": "关键的;危急的", + "phonetic": "/ˈkrɪtɪkəl/", + "forms": {}, + "example": { + "en": "Like I said, the image processing techniques used in the measurement is also very critical.", + "cn": "正如我所说,测量中使用的图像处理技术也非常关键。" + } + }, + { + "id": 242, + "english": "definition", + "frequency": 1, + "category": "high_frequency", + "chinese": "定义;清晰度", + "phonetic": "/ˌdefɪˈnɪʃən/", + "forms": {}, + "example": { + "en": "We want to look at the image quality with a reticle that is accurate and provides a contrast that allows robust feature definition and find.", + "cn": "我们希望使用一个精度可靠且对比度适当的标线片来检查图像质量,从而能够稳健地定义并查找特征。" + } + }, + { + "id": 243, + "english": "demand", + "frequency": 1, + "category": "business_core", + "chinese": "需求", + "phonetic": "/dɪˈmɑːnd/", + "forms": {}, + "example": { + "en": "And the marketing input at the summit showed that there is a good demand for the flip capability, and (all) our competitors have it.", + "cn": "峰会上的市场反馈表明,市场对翻转功能有较大需求,而且我们的(所有)竞争对手都具备这一功能。" + } + }, + { + "id": 244, + "english": "deposition", + "frequency": 1, + "category": "technical_core", + "chinese": "沉积;沉积层", + "phonetic": "/ˌdepəˈzɪʃən/", + "forms": {}, + "example": { + "en": "On a ball bonder, we measured the position of a lead frame corner while moving to various locations on a grid pattern across the field of view and compared the same measurement to our XY table map target which is glass with a very thin deposition of chrome fiducials.", + "cn": "在一台球焊机上,我们让引线框架角点按网格模式移动到视野内的不同位置并测量其位置,再将测量结果与XY平台标定靶进行比较;该标定靶为玻璃材质,表面沉积有一层极薄的铬基准标记。" + } + }, + { + "id": 245, + "english": "design", + "frequency": 1, + "category": "business_core", + "chinese": "设计", + "phonetic": "/dɪˈzaɪn/", + "forms": {}, + "example": { + "en": "I believe you know that we discussed that but put it off to a later phase, because Mike repeatedly told us that it would require a design change, mean no re-use, and extend the timeline significantly.", + "cn": "我相信你知道我们讨论过此事,但将其推迟到了后续阶段,因为Mike多次告诉我们,这需要更改设计、无法复用,并会大幅延长项目周期。" + } + }, + { + "id": 246, + "english": "detection", + "frequency": 1, + "category": "technical_operations", + "chinese": "检测", + "phonetic": "/dɪˈtekʃən/", + "forms": {}, + "example": { + "en": "This is used to sharpen the appearance of edges to make edge detection for a geometric based fiducial algorithm work more robustly.", + "cn": "此处理用于增强边缘的清晰度,使基于几何特征的基准算法能够更稳健地进行边缘检测。" + } + }, + { + "id": 247, + "english": "determine", + "frequency": 1, + "category": "high_frequency", + "chinese": "确定", + "phonetic": "/dɪˈtɜːmɪn/", + "forms": {}, + "example": { + "en": "From a usability aspect of the machine we need the capability to define characteristic features on the material (lead frame, clip, die) which we then find in our image, determine the position and measure relative distances to compare with the bonding diagram.", + "cn": "从机器易用性的角度看,我们需要能够在材料(引线框架、夹片、芯片)上定义特征,在图像中找到这些特征、确定其位置并测量相对距离,再与焊接图进行比较。" + } + }, + { + "id": 248, + "english": "development", + "frequency": 1, + "category": "business_core", + "chinese": "开发;发展", + "phonetic": "/dɪˈveləpmənt/", + "forms": {}, + "example": { + "en": "Note that last night (US time) in the Avaline development review meeting it was decided to have a review meeting in Suzhou next Monday 2pm led by Benson, with Li Yang and CK, to further address this topic.", + "cn": "请注意,在昨晚(美国时间)的Avaline开发评审会上,大家决定于下周一下午2点在苏州召开评审会,由Benson主持,李阳和CK参加,以进一步处理此议题。" + } + }, + { + "id": 249, + "english": "deviation", + "frequency": 1, + "category": "high_frequency", + "chinese": "偏差", + "phonetic": "/ˌdiːviˈeɪʃən/", + "forms": {}, + "example": { + "en": "In the email were the data for ~200 transfers resulting in the <2m standard deviation.", + "cn": "邮件中包含约200次转移的数据,其标准差小于2微米。" + } + }, + { + "id": 250, + "english": "dial", + "frequency": 1, + "category": "high_frequency", + "chinese": "拨号;调节", + "phonetic": "/ˈdaɪəl/", + "forms": {}, + "example": { + "en": "In order for the ball measurement to be very close to the actual ball size that got measured in the scope room, we have a ball size correction step during teach where we have the operator dial in the average ball size (measured on the scope) for the bonder measured balls, and the vision system would then remember the offset between the scope measurement and bonder measurement.", + "cn": "为了使焊接机测得的焊球尺寸尽可能接近显微镜室测得的实际尺寸,我们在示教过程中设置了焊球尺寸校正步骤:由操作员输入显微镜测得的平均焊球尺寸,视觉系统随后会记住显微镜测量值与焊接机测量值之间的偏差。" + } + }, + { + "id": 251, + "english": "difficult", + "frequency": 1, + "category": "high_frequency", + "chinese": "困难的", + "phonetic": "/ˈdɪfɪkəlt/", + "forms": {}, + "example": { + "en": "It was difficult for me to hear and understand much during the summit day yesterday.", + "cn": "昨天峰会期间,我很难听清并理解大部分内容。" + } + }, + { + "id": 252, + "english": "discussion", + "frequency": 1, + "category": "communication", + "chinese": "讨论", + "phonetic": "/dɪˈskʌʃən/", + "forms": {}, + "example": { + "en": "Thanks,\nChristoph\n\n\nHey Christoph,\n\nI think all of this discussion is related to a conversation I had with Li Yang and Eddy while in Suzhou.", + "cn": "谢谢,\nChristoph\n\n\nChristoph,你好:\n\n我认为这里的所有讨论都与我在苏州时同李阳和Eddy的一次谈话有关。" + } + }, + { + "id": 253, + "english": "display", + "frequency": 1, + "category": "high_frequency", + "chinese": "显示", + "phonetic": "/dɪˈspleɪ/", + "forms": {}, + "example": { + "en": "Do we have option to display raw image?", + "cn": "我们是否可以选择显示原始图像?" + } + }, + { + "id": 254, + "english": "effective", + "frequency": 1, + "category": "high_frequency", + "chinese": "有效的", + "phonetic": "/ɪˈfektɪv/", + "forms": {}, + "example": { + "en": "But of course, it would be great if we could find a more effective / lower cost / more re-use & synergies solution asap.", + "cn": "当然,如果我们能尽快找到一种更有效、成本更低、复用程度与协同效应更高的解决方案,那就再好不过了。" + } + }, + { + "id": 255, + "english": "end", + "frequency": 1, + "category": "time_planning", + "chinese": "结束;末端", + "phonetic": "/end/", + "forms": {}, + "example": { + "en": "Also please note that we are installing this application in Rohm Thailand end of next week and want to get acceptance by middle of July.", + "cn": "另请注意,我们将在下周末于罗姆泰国工厂安装此应用,并希望在7月中旬前完成验收。" + } + }, + { + "id": 256, + "english": "exclude", + "frequency": 1, + "category": "high_frequency", + "chinese": "排除", + "phonetic": "/ɪkˈskluːd/", + "forms": {}, + "example": { + "en": "The original hypothesis of the material being the factor we can exclude.", + "cn": "我们可以排除材料是影响因素这一原始假设。" + } + }, + { + "id": 257, + "english": "explanation", + "frequency": 1, + "category": "communication", + "chinese": "解释", + "phonetic": "/ˌekspləˈneɪʃən/", + "forms": {}, + "example": { + "en": "They are very data focused, and we still owe them an explanation of the systematic behavior of the clip placement data in Y.", + "cn": "他们非常重视数据,而我们仍欠他们一个关于夹片Y方向放置数据为何呈现系统性规律的解释。" + } + }, + { + "id": 258, + "english": "extend", + "frequency": 1, + "category": "high_frequency", + "chinese": "延长;扩展", + "phonetic": "/ɪkˈstend/", + "forms": {}, + "example": { + "en": "I believe you know that we discussed that but put it off to a later phase, because Mike repeatedly told us that it would require a design change, mean no re-use, and extend the timeline significantly.", + "cn": "我相信你知道我们讨论过此事,但将其推迟到了后续阶段,因为Mike多次告诉我们,这需要更改设计、无法复用,并会大幅延长项目周期。" + } + }, + { + "id": 259, + "english": "extract", + "frequency": 1, + "category": "technical_operations", + "chinese": "提取;抽取", + "phonetic": "/ɪkˈstrækt/", + "forms": {}, + "example": { + "en": "What images are used to process and extract the dimension information?", + "cn": "使用哪些图像进行处理并提取尺寸信息?" + } + }, + { + "id": 260, + "english": "factor", + "frequency": 1, + "category": "high_frequency", + "chinese": "因素", + "phonetic": "/ˈfæktər/", + "forms": {}, + "example": { + "en": "The original hypothesis of the material being the factor we can exclude.", + "cn": "我们可以排除材料是影响因素这一原始假设。" + } + }, + { + "id": 261, + "english": "familiar", + "frequency": 1, + "category": "high_frequency", + "chinese": "熟悉的", + "phonetic": "/fəˈmɪliər/", + "forms": {}, + "example": { + "en": "We have some vision engineers in the Bangalore ASMT office, but not at all familiar with Avaline.", + "cn": "我们在班加罗尔的ASMT办公室有一些视觉工程师,但他们完全不熟悉Avaline。" + } + }, + { + "id": 262, + "english": "fast", + "frequency": 1, + "category": "high_frequency", + "chinese": "快速的", + "phonetic": "/fɑːst/", + "forms": {}, + "example": { + "en": "So if we want to make a change we need to make it now, and fast.", + "cn": "因此,如果要做出更改,就必须现在立即行动。" + } + }, + { + "id": 263, + "english": "feasible", + "frequency": 1, + "category": "business_core", + "chinese": "可行的", + "phonetic": "/ˈfiːzɪbəl/", + "forms": {}, + "example": { + "en": "Any improvement(s) we could apply there from your review and hopefully suggestions, if feasible in this short notice, would be very helpful.", + "cn": "如果能根据您的评审和建议在如此短的时间内实施任何可行的改进,将会非常有帮助。" + } + }, + { + "id": 264, + "english": "figure", + "frequency": 1, + "category": "high_frequency", + "chinese": "弄明白;数字;图形", + "phonetic": "/ˈfɪɡər/", + "forms": {}, + "example": { + "en": "We can not afford to lose more time on this as this is only the start to figure out what is wrong.", + "cn": "我们不能再在此事上耽误时间,因为这还只是查明问题所在的第一步。" + } + }, + { + "id": 265, + "english": "focus", + "frequency": 1, + "category": "high_frequency", + "chinese": "焦点;聚焦", + "phonetic": "/ˈfəʊkəs/", + "forms": { + "verb": "focused (过去式/过去分词)" + }, + "example": { + "en": "That is kind of expected for most vision systems as focus here is alignment.", + "cn": "对于大多数视觉系统而言,这种情况基本符合预期,因为这里的重点是对准。" + } + }, + { + "id": 266, + "english": "front", + "frequency": 1, + "category": "high_frequency", + "chinese": "前面;前端的", + "phonetic": "/frʌnt/", + "forms": {}, + "example": { + "en": "The image shown on screen is a preprocessed image (this is confirmed from my observation in front of the machine).", + "cn": "屏幕上显示的是预处理图像(这是我在机器旁观察后确认的)。" + } + }, + { + "id": 267, + "english": "function", + "frequency": 1, + "category": "high_frequency", + "chinese": "功能;函数", + "phonetic": "/ˈfʌŋkʃən/", + "forms": {}, + "example": { + "en": "I assume that is a software function, correct?", + "cn": "我认为这是软件功能,对吗?" + } + }, + { + "id": 268, + "english": "gain", + "frequency": 1, + "category": "high_frequency", + "chinese": "增益;获得", + "phonetic": "/ɡeɪn/", + "forms": {}, + "example": { + "en": "If it is, for the given hardware, what would have to be changed / improved, to gain more contrast or work with more contrast than just this ‘black & white’?", + "cn": "如果确实如此,那么针对现有硬件,需要做哪些更改或改进,才能获得更高的对比度,而不只是这种“非黑即白”的效果?" + } + }, + { + "id": 269, + "english": "gamma", + "frequency": 1, + "category": "technical_core", + "chinese": "伽马", + "phonetic": "/ˈɡæmə/", + "forms": {}, + "example": { + "en": "gamma correction, to make it look essentially like a binary image or even truly a binary image.", + "cn": "进行伽马校正,使其看起来基本像二值图像,甚至成为真正的二值图像。" + } + }, + { + "id": 270, + "english": "geometric", + "frequency": 1, + "category": "high_frequency", + "chinese": "几何的", + "phonetic": "/ˌdʒiːəˈmetrɪk/", + "forms": {}, + "example": { + "en": "This is used to sharpen the appearance of edges to make edge detection for a geometric based fiducial algorithm work more robustly.", + "cn": "此处理用于增强边缘的清晰度,使基于几何特征的基准算法能够更稳健地进行边缘检测。" + } + }, + { + "id": 271, + "english": "great", + "frequency": 1, + "category": "high_frequency", + "chinese": "很好的", + "phonetic": "/ɡreɪt/", + "forms": {}, + "example": { + "en": "But of course, it would be great if we could find a more effective / lower cost / more re-use & synergies solution asap.", + "cn": "当然,如果我们能尽快找到一种更有效、成本更低、复用程度与协同效应更高的解决方案,那就再好不过了。" + } + }, + { + "id": 272, + "english": "hardware", + "frequency": 1, + "category": "technical_core", + "chinese": "硬件", + "phonetic": "/ˈhɑːdweər/", + "forms": {}, + "example": { + "en": "If it is, for the given hardware, what would have to be changed / improved, to gain more contrast or work with more contrast than just this ‘black & white’?", + "cn": "如果确实如此,那么针对现有硬件,需要做哪些更改或改进,才能获得更高的对比度,而不只是这种“非黑即白”的效果?" + } + }, + { + "id": 273, + "english": "illumination", + "frequency": 1, + "category": "technical_core", + "chinese": "照明;光照", + "phonetic": "/ɪˌluːmɪˈneɪʃən/", + "forms": {}, + "example": { + "en": "It is also possible that illumination differences at different locations had caused the features to look different thus they were measured differently.", + "cn": "不同位置的光照差异也可能使特征呈现不同的外观,从而导致测量结果不同。" + } + }, + { + "id": 274, + "english": "improvement", + "frequency": 1, + "category": "business_core", + "chinese": "改进", + "phonetic": "/ɪmˈpruːvmənt/", + "forms": {}, + "example": { + "en": "Any improvement(s) we could apply there from your review and hopefully suggestions, if feasible in this short notice, would be very helpful.", + "cn": "如果能根据您的评审和建议在如此短的时间内实施任何可行的改进,将会非常有帮助。" + } + }, + { + "id": 275, + "english": "insight", + "frequency": 1, + "category": "high_frequency", + "chinese": "见解;洞察", + "phonetic": "/ˈɪnsaɪt/", + "forms": {}, + "example": { + "en": "I also copied Eddy (not sure he will still be in Suzhou) and Li Yang, both may give you more insight / details how these images are processed, and Benson and CK for their information about this activity.", + "cn": "我还抄送了Eddy(不确定他届时是否仍在苏州)和李阳,他们或许能进一步说明这些图像的处理方式并提供更多细节;同时抄送Benson和CK,让他们了解此项工作。" + } + }, + { + "id": 276, + "english": "install", + "frequency": 1, + "category": "technical_operations", + "chinese": "安装", + "phonetic": "/ɪnˈstɔːl/", + "forms": {}, + "example": { + "en": "Jianfei can show this application on the bonder (we have bonded frames and can install the old chucks).", + "cn": "建飞可以在焊线机上演示此应用(我们已有完成焊接的框架,也可以安装旧夹具)。" + } + }, + { + "id": 277, + "english": "intensity", + "frequency": 1, + "category": "technical_core", + "chinese": "强度", + "phonetic": "/ɪnˈtensɪti/", + "forms": {}, + "example": { + "en": "That said, we actually map the light intensity over the Field of View, if it is being done as part of FAT.", + "cn": "也就是说,如果这是工厂验收测试(FAT)的一部分,我们实际上会绘制整个视场内的光强分布图。" + } + }, + { + "id": 278, + "english": "kind", + "frequency": 1, + "category": "high_frequency", + "chinese": "种类;友善的", + "phonetic": "/kaɪnd/", + "forms": {}, + "example": { + "en": "That is kind of expected for most vision systems as focus here is alignment.", + "cn": "对于大多数视觉系统来说,这基本符合预期,因为这里的重点是对准。" + } + }, + { + "id": 279, + "english": "least", + "frequency": 1, + "category": "high_frequency", + "chinese": "最少的", + "phonetic": "/liːst/", + "forms": {}, + "example": { + "en": "I believe at least for the fiducial on the lead frame we will in most cases always look at a slot.", + "cn": "我认为,至少对于引线框架上的基准标记,大多数情况下我们始终会识别一个槽口。" + } + }, + { + "id": 280, + "english": "leave", + "frequency": 1, + "category": "action_verbs", + "chinese": "离开;假期;休假", + "phonetic": "/liːv/", + "forms": {}, + "example": { + "en": "Please note that Jianfei will be on leave from Wednesday 7/1 on, so ideally the two of you can meet at the bonder before Wednesday.", + "cn": "请注意,建飞将从 7 月 1 日星期三起休假,因此你们两位最好能在星期三之前到焊线机旁碰面。" + } + }, + { + "id": 281, + "english": "list", + "frequency": 1, + "category": "high_frequency", + "chinese": "列出;列表", + "phonetic": "/lɪst/", + "forms": {}, + "example": { + "en": "Please let me know whether Jianfei shall list the different steps seen in the video.", + "cn": "请告知是否需要建飞列出视频中展示的各个步骤。" + } + }, + { + "id": 282, + "english": "match", + "frequency": 1, + "category": "action_verbs", + "chinese": "匹配", + "phonetic": "/mætʃ/", + "forms": {}, + "example": { + "en": "But detailed material inspection data collected in Santa Ana on the Rohm material show that the lead frame and the clip from Rohm are very accurate and match on the micron level.", + "cn": "但是,在圣安娜对罗姆材料采集的详细材料检验数据显示,罗姆的引线框架和夹片精度非常高,在微米级别上相互匹配。" + } + }, + { + "id": 283, + "english": "middle", + "frequency": 1, + "category": "high_frequency", + "chinese": "中间的;中间", + "phonetic": "/ˈmɪdəl/", + "forms": {}, + "example": { + "en": "Also please note that we are installing this application in Rohm Thailand end of next week and want to get acceptance by middle of July.", + "cn": "另请注意,我们将在下周末于罗姆泰国安装此应用,并希望在 7 月中旬前通过验收。" + } + }, + { + "id": 284, + "english": "mismatch", + "frequency": 1, + "category": "high_frequency", + "chinese": "不匹配;失配", + "phonetic": "/ˈmɪsmætʃ/", + "forms": {}, + "example": { + "en": "In Yangjie and on the Rohm application our vision reports data which we initially interpreted as a pitch mismatch between lead frame and clip.", + "cn": "在扬杰以及罗姆应用中,我们的视觉系统报告了一些数据,起初我们将其解读为引线框架与夹片之间的节距不匹配。" + } + }, + { + "id": 285, + "english": "modulation", + "frequency": 1, + "category": "high_frequency", + "chinese": "调制", + "phonetic": "/ˌmɒdjʊˈleɪʃən/", + "forms": {}, + "example": { + "en": "That would be a rather strange but systematic distortion, with a modulation period of a few millimeter.", + "cn": "这会是一种相当奇怪但具有系统性的畸变,其调制周期为几毫米。" + } + }, + { + "id": 286, + "english": "module", + "frequency": 1, + "category": "technical_core", + "chinese": "模块", + "phonetic": "/ˈmɒdjuːl/", + "forms": {}, + "example": { + "en": "Note that we are in the RFQ process for manufacturing the first 5 prototypes and that we will need up-looking vision for the currently favored flip module concept.", + "cn": "请注意,我们目前正在为首批 5 台样机的制造进行询价,而且当前优选的翻转模块方案将需要上视视觉。" + } + }, + { + "id": 287, + "english": "much", + "frequency": 1, + "category": "high_frequency", + "chinese": "许多", + "phonetic": "/mʌtʃ/", + "forms": {}, + "example": { + "en": "It was difficult for me to hear and understand much during the summit day yesterday.", + "cn": "昨天的峰会期间,我很难听清并理解太多内容。" + } + }, + { + "id": 288, + "english": "nice", + "frequency": 1, + "category": "high_frequency", + "chinese": "好的", + "phonetic": "/naɪs/", + "forms": {}, + "example": { + "en": "On the HPLF application we would use the same approach to find the clip, as if has those nice square slots.", + "cn": "在 HPLF 应用中,我们会采用相同的方法来查找夹片,因为它有那些规则的方形槽口。" + } + }, + { + "id": 289, + "english": "notice", + "frequency": 1, + "category": "action_verbs", + "chinese": "通知;注意到", + "phonetic": "/ˈnəʊtɪs/", + "forms": {}, + "example": { + "en": "Any improvement(s) we could apply there from your review and hopefully suggestions, if feasible in this short notice, would be very helpful.", + "cn": "如果能根据您的评审和建议对其进行任何改进,并且在如此仓促的情况下仍可实施,那将非常有帮助。" + } + }, + { + "id": 290, + "english": "office", + "frequency": 1, + "category": "high_frequency", + "chinese": "办公室", + "phonetic": "/ˈɒfɪs/", + "forms": {}, + "example": { + "en": "We have some vision engineers in the Bangalore ASMT office, but not at all familiar with Avaline.", + "cn": "我们在班加罗尔的 ASMT 办公室有一些视觉工程师,但他们完全不熟悉 Avaline。" + } + }, + { + "id": 291, + "english": "offline", + "frequency": 1, + "category": "high_frequency", + "chinese": "离线的", + "phonetic": "/ˌɒfˈlaɪn/", + "forms": {}, + "example": { + "en": "If you are having robustness and accuracy issues, it is best to ask the field to collect lots of images (with different light levels) and then have Eddy run some study offline to optimize the vision teach.", + "cn": "如果遇到鲁棒性和精度问题,最好让现场采集大量不同光照级别的图像,然后由 Eddy 离线开展研究,以优化视觉示教。" + } + }, + { + "id": 292, + "english": "offset", + "frequency": 1, + "category": "technical_operations", + "chinese": "偏移;补偿", + "phonetic": "/ˈɒfset/", + "forms": {}, + "example": { + "en": "In order for the ball measurement to be very close to the actual ball size that got measured in the scope room, we have a ball size correction step during teach where we have the operator dial in the average ball size (measured on the scope) for the bonder measured balls, and the vision system would then remember the offset between the scope measurement and bonder measurement.", + "cn": "为了使球体测量值尽可能接近显微镜室测得的实际球体尺寸,我们在示教过程中设有球径校正步骤:操作员为焊线机测得的球体输入平均球径(由显微镜测得),视觉系统随后会记住显微镜测量值与焊线机测量值之间的偏差。" + } + }, + { + "id": 293, + "english": "old", + "frequency": 1, + "category": "high_frequency", + "chinese": "旧的", + "phonetic": "/əʊld/", + "forms": {}, + "example": { + "en": "Jianfei can show this application on the bonder (we have bonded frames and can install the old chucks).", + "cn": "建飞可以在焊线机上演示此应用(我们已有完成焊接的框架,也可以安装旧夹具)。" + } + }, + { + "id": 294, + "english": "opportunity", + "frequency": 1, + "category": "business_core", + "chinese": "机会", + "phonetic": "/ˌɒpəˈtjuːnɪti/", + "forms": {}, + "example": { + "en": "@Vladimir Pribula, please let’s use the opportunity of you being in Suzhou to look into this first-hand.", + "cn": "@Vladimir Pribula,请利用您在苏州的机会,亲自深入了解一下这个问题。" + } + }, + { + "id": 295, + "english": "optimize", + "frequency": 1, + "category": "technical_operations", + "chinese": "优化", + "phonetic": "/ˈɒptɪmaɪz/", + "forms": {}, + "example": { + "en": "If you are having robustness and accuracy issues, it is best to ask the field to collect lots of images (with different light levels) and then have Eddy run some study offline to optimize the vision teach.", + "cn": "如果遇到鲁棒性和精度问题,最好让现场采集大量不同光照级别的图像,然后由 Eddy 离线开展研究,以优化视觉示教。" + } + }, + { + "id": 296, + "english": "option", + "frequency": 1, + "category": "business_core", + "chinese": "选项", + "phonetic": "/ˈɒpʃən/", + "forms": {}, + "example": { + "en": "Do we have option to display raw image?", + "cn": "我们是否可以选择显示原始图像?" + } + }, + { + "id": 297, + "english": "original", + "frequency": 1, + "category": "time_planning", + "chinese": "原始的;最初的", + "phonetic": "/əˈrɪdʒɪnəl/", + "forms": {}, + "example": { + "en": "The original hypothesis of the material being the factor we can exclude.", + "cn": "最初关于材料是影响因素的假设可以排除了。" + } + }, + { + "id": 298, + "english": "outline", + "frequency": 1, + "category": "communication", + "chinese": "概述;提纲", + "phonetic": "/ˈaʊtlaɪn/", + "forms": {}, + "example": { + "en": "I will do my best to outline what we would like him to collect, document and provide back for review.", + "cn": "我会尽力说明我们希望他收集和记录哪些内容,以及需要反馈哪些资料以供评审。" + } + }, + { + "id": 299, + "english": "page", + "frequency": 1, + "category": "communication", + "chinese": "页面;页;共识(on the same page)", + "phonetic": "/peɪdʒ/", + "forms": {}, + "example": { + "en": "Even just getting on the same page on what we actually do with the images would be a good step.", + "cn": "哪怕只是就我们实际如何处理这些图像达成共识,也是一个很好的进展。" + } + }, + { + "id": 300, + "english": "pair", + "frequency": 1, + "category": "high_frequency", + "chinese": "对;一双", + "phonetic": "/peər/", + "forms": {}, + "example": { + "en": "For ease of use by developers, could be worthwhile to save a pair of images with metadata (one raw and one preprocessed).", + "cn": "为方便开发人员使用,值得保存一对带元数据的图像(一张原始图像和一张预处理图像)。" + } + }, + { + "id": 301, + "english": "particular", + "frequency": 1, + "category": "high_frequency", + "chinese": "特定的;特别的", + "phonetic": "/pəˈtɪkjʊlər/", + "forms": {}, + "example": { + "en": "Magnification calibration is done by teaching a fiducial on any material, then moving the camera by a known distance to measure the microns per pixel of this particular optics.", + "cn": "放大倍率校准的做法是:在任意材料上示教一个基准标记,然后将相机移动一段已知距离,以测量该特定光学系统的微米/像素值。" + } + }, + { + "id": 302, + "english": "people", + "frequency": 1, + "category": "high_frequency", + "chinese": "人员;人们", + "phonetic": "/ˈpiːpəl/", + "forms": {}, + "example": { + "en": "But it seemed that FtW people spent ~50% of the day talking about this approach, and alternatives, for example using a USB camera (as on the other visions on Avaline) instead of the Zebra camera.", + "cn": "但 FtW 团队似乎花了当天约 50% 的时间讨论这种方案及其替代方案,例如使用 USB 相机(如 Avaline 上其他视觉系统所用)来代替 Zebra 相机。" + } + }, + { + "id": 303, + "english": "period", + "frequency": 1, + "category": "time_planning", + "chinese": "周期;期间", + "phonetic": "/ˈpɪəriəd/", + "forms": {}, + "example": { + "en": "That would be a rather strange but systematic distortion, with a modulation period of a few millimeter.", + "cn": "这会是一种相当奇怪但具有系统性的畸变,其调制周期为几毫米。" + } + }, + { + "id": 304, + "english": "perspective", + "frequency": 1, + "category": "high_frequency", + "chinese": "视角;观点;透视", + "phonetic": "/pəˈspektɪv/", + "forms": {}, + "example": { + "en": "Vlad\n\n\n+@Alex Zhao\n\nChristoph,\n\nAlex got quite a lot of experiences in BB vision and he can share his perspective as to how we do things on BB vision, I can have a quick chat with him this weekend so he is aware of what problems you guys are facing.", + "cn": "Vlad\n\n\n+@Alex Zhao\n\nChristoph:\n\nAlex 在 BB 视觉方面拥有丰富经验,可以分享我们在 BB 视觉上的做法和他的看法。我可以在本周末与他简短沟通,让他了解你们目前面临的问题。" + } + }, + { + "id": 305, + "english": "phase", + "frequency": 1, + "category": "business_core", + "chinese": "阶段;相位", + "phonetic": "/feɪz/", + "forms": {}, + "example": { + "en": "I believe you know that we discussed that but put it off to a later phase, because Mike repeatedly told us that it would require a design change, mean no re-use, and extend the timeline significantly.", + "cn": "我相信你知道我们讨论过这一点,但将其推迟到了后续阶段,因为 Mike 多次告诉我们,这需要更改设计,意味着无法复用,并会显著延长时间线。" + } + }, + { + "id": 306, + "english": "plan", + "frequency": 1, + "category": "business_core", + "chinese": "计划", + "phonetic": "/plæn/", + "forms": {}, + "example": { + "en": "Finally, Zhijie, could you please align with Vlad and Bruce on the plan we have for the up-looking vision, i.e., why we are hooked to the Zebra camera, and why the phases are as they are?", + "cn": "最后,Zhijie,能否请你与 Vlad 和 Bruce 就我们的上视视觉计划达成一致,也就是说明为什么必须使用 Zebra 相机,以及各阶段为何这样安排?" + } + }, + { + "id": 307, + "english": "point", + "frequency": 1, + "category": "high_frequency", + "chinese": "点;指向", + "phonetic": "/pɔɪnt/", + "forms": {}, + "example": { + "en": "The user still sets their teach window the same as they do today, but then within that teach window they need to click on a corner feature to use as an origin/reference point.", + "cn": "用户仍像现在一样设置示教窗口,但随后需要在该窗口内单击一个角点特征,将其用作原点/参考点。" + } + }, + { + "id": 308, + "english": "post", + "frequency": 1, + "category": "high_frequency", + "chinese": "后;岗位", + "phonetic": "/pəʊst/", + "forms": {}, + "example": { + "en": "Just FYI, on the BB we do Post Bond Inspection.", + "cn": "仅供参考,我们在 BB 上会进行焊后检查。" + } + }, + { + "id": 309, + "english": "preference", + "frequency": 1, + "category": "high_frequency", + "chinese": "偏好", + "phonetic": "/ˈprefərəns/", + "forms": {}, + "example": { + "en": "I wonder if it is a customer preference to see binary image on the screen.", + "cn": "我想知道,在屏幕上查看二值图像是否是客户的偏好。" + } + }, + { + "id": 310, + "english": "prepare", + "frequency": 1, + "category": "action_verbs", + "chinese": "准备", + "phonetic": "/prɪˈpeər/", + "forms": {}, + "example": { + "en": "I just realize, I will also send the link to Alex so he can use the video to prepare for Monday afternoon.", + "cn": "我刚意识到,我也会把链接发给 Alex,以便他利用该视频为周一下午做好准备。" + } + }, + { + "id": 311, + "english": "production", + "frequency": 1, + "category": "business_core", + "chinese": "生产", + "phonetic": "/prəˈdʌkʃən/", + "forms": {}, + "example": { + "en": "We can review the data for 24 hours operation in production at Yangjie.", + "cn": "我们可以评审扬杰生产现场连续运行 24 小时的数据。" + } + }, + { + "id": 312, + "english": "purchase", + "frequency": 1, + "category": "technical_operations", + "chinese": "购买", + "phonetic": "/ˈpɜːtʃəs/", + "forms": {}, + "example": { + "en": "We should purchase a new / different one.", + "cn": "我们应该购买一个新的或不同型号的。" + } + }, + { + "id": 313, + "english": "realize", + "frequency": 1, + "category": "action_verbs", + "chinese": "意识到;实现", + "phonetic": "/ˈrɪəlaɪz/", + "forms": {}, + "example": { + "en": "I just realize, I will also send the link to Alex so he can use the video to prepare for Monday afternoon.", + "cn": "我刚意识到,我也会把链接发给 Alex,以便他利用该视频为周一下午做好准备。" + } + }, + { + "id": 314, + "english": "resolution", + "frequency": 1, + "category": "technical_core", + "chinese": "分辨率;解决方案;决议", + "phonetic": "/ˌrezəˈluːʃən/", + "forms": {}, + "example": { + "en": "We discussed and questioned system resolution.", + "cn": "我们讨论了系统分辨率,并对此提出了疑问。" + } + }, + { + "id": 315, + "english": "run", + "frequency": 1, + "category": "technical_operations", + "chinese": "运行", + "phonetic": "/rʌn/", + "forms": {}, + "example": { + "en": "If you are having robustness and accuracy issues, it is best to ask the field to collect lots of images (with different light levels) and then have Eddy run some study offline to optimize the vision teach.", + "cn": "如果遇到鲁棒性和精度问题,最好让现场采集大量不同光照级别的图像,然后由 Eddy 离线开展研究,以优化视觉示教。" + } + }, + { + "id": 316, + "english": "save", + "frequency": 1, + "category": "action_verbs", + "chinese": "保存;节省", + "phonetic": "/seɪv/", + "forms": {}, + "example": { + "en": "For ease of use by developers, could be worthwhile to save a pair of images with metadata (one raw and one preprocessed).", + "cn": "为方便开发人员使用,值得保存一对带元数据的图像(一张原始图像和一张预处理图像)。" + } + }, + { + "id": 317, + "english": "select", + "frequency": 1, + "category": "action_verbs", + "chinese": "选择", + "phonetic": "/sɪˈlekt/", + "forms": {}, + "example": { + "en": "On the Wedge bonder, there is a mode to select using gray level or binary operation.", + "cn": "楔焊机上有一种模式,可选择使用灰度处理或二值化操作。" + } + }, + { + "id": 318, + "english": "sequence", + "frequency": 1, + "category": "high_frequency", + "chinese": "序列;顺序", + "phonetic": "/ˈsiːkwəns/", + "forms": {}, + "example": { + "en": "This can be shown with a sequence of screen shots, maybe better with a video that shows the screen while the operator does the setup / teaching.", + "cn": "可以用一系列屏幕截图来展示;如果录制操作员进行设置/示教时的屏幕视频,效果可能更好。" + } + }, + { + "id": 319, + "english": "share", + "frequency": 1, + "category": "action_verbs", + "chinese": "分享", + "phonetic": "/ʃeər/", + "forms": {}, + "example": { + "en": "Vlad\n\n\n+@Alex Zhao\n\nChristoph,\n\nAlex got quite a lot of experiences in BB vision and he can share his perspective as to how we do things on BB vision, I can have a quick chat with him this weekend so he is aware of what problems you guys are facing.", + "cn": "Vlad\n\n\n+@Alex Zhao\n\nChristoph:\n\nAlex 在 BB 视觉方面拥有丰富经验,可以分享我们在 BB 视觉上的做法和他的看法。我可以在本周末与他简短沟通,让他了解你们目前面临的问题。" + } + }, + { + "id": 320, + "english": "sharpen", + "frequency": 1, + "category": "high_frequency", + "chinese": "锐化;增强", + "phonetic": "/ˈʃɑːpən/", + "forms": {}, + "example": { + "en": "This is used to sharpen the appearance of edges to make edge detection for a geometric based fiducial algorithm work more robustly.", + "cn": "该处理用于增强边缘外观,使基于几何特征的基准标记算法能够更稳健地进行边缘检测。" + } + }, + { + "id": 321, + "english": "shipment", + "frequency": 1, + "category": "high_frequency", + "chinese": "装运;货物", + "phonetic": "/ˈʃɪpmənt/", + "forms": {}, + "example": { + "en": "Likely the reticle which we recently purchased is in the shipment to Rohm that is stuck in customs.", + "cn": "我们最近购买的标线片很可能就在那批发往罗姆、目前滞留海关的货物中。" + } + }, + { + "id": 322, + "english": "short", + "frequency": 1, + "category": "high_frequency", + "chinese": "短的;短缺的", + "phonetic": "/ʃɔːt/", + "forms": {}, + "example": { + "en": "Any improvement(s) we could apply there from your review and hopefully suggestions, if feasible in this short notice, would be very helpful.", + "cn": "如果能根据您的评审和建议对其进行任何改进,并且在如此仓促的情况下仍可实施,那将非常有帮助。" + } + }, + { + "id": 323, + "english": "situation", + "frequency": 1, + "category": "high_frequency", + "chinese": "情况;局面", + "phonetic": "/ˌsɪtʃuˈeɪʃən/", + "forms": {}, + "example": { + "en": "At Rohm the situation is different.", + "cn": "罗姆现场的情况有所不同。" + } + }, + { + "id": 324, + "english": "slide", + "frequency": 1, + "category": "high_frequency", + "chinese": "幻灯片", + "phonetic": "/slaɪd/", + "forms": {}, + "example": { + "en": "Attached is a slide where I have a few questions related to an example of a setup.", + "cn": "附件是一页幻灯片,其中有几个与某个设置示例相关的问题。" + } + }, + { + "id": 325, + "english": "solution", + "frequency": 1, + "category": "business_core", + "chinese": "解决方案", + "phonetic": "/səˈluːʃən/", + "forms": {}, + "example": { + "en": "But of course, it would be great if we could find a more effective / lower cost / more re-use & synergies solution asap.", + "cn": "当然,如果我们能尽快找到一种更有效、成本更低、复用程度和协同效应更高的解决方案,那就太好了。" + } + }, + { + "id": 326, + "english": "soon", + "frequency": 1, + "category": "time_planning", + "chinese": "很快", + "phonetic": "/suːn/", + "forms": {}, + "example": { + "en": "I’m looking forward to see that changed as soon as possible.", + "cn": "我期待看到此项尽快得到更改。" + } + }, + { + "id": 327, + "english": "stability", + "frequency": 1, + "category": "high_frequency", + "chinese": "稳定性", + "phonetic": "/stəˈbɪlɪti/", + "forms": {}, + "example": { + "en": "It is a measure for the machine stability.", + "cn": "这是衡量机器稳定性的一个指标。" + } + }, + { + "id": 328, + "english": "stand", + "frequency": 1, + "category": "high_frequency", + "chinese": "站立;成立;仍然有效;立场", + "phonetic": "/stænd/", + "forms": {}, + "example": { + "en": "But my recommendations still stand.", + "cn": "但我的建议仍然有效。" + } + }, + { + "id": 329, + "english": "strange", + "frequency": 1, + "category": "high_frequency", + "chinese": "奇怪的", + "phonetic": "/streɪndʒ/", + "forms": {}, + "example": { + "en": "That would be a rather strange but systematic distortion, with a modulation period of a few millimeter.", + "cn": "这会是一种相当奇怪但具有系统性的畸变,其调制周期为几毫米。" + } + }, + { + "id": 330, + "english": "study", + "frequency": 1, + "category": "high_frequency", + "chinese": "研究;学习", + "phonetic": "/ˈstʌdi/", + "forms": {}, + "example": { + "en": "If you are having robustness and accuracy issues, it is best to ask the field to collect lots of images (with different light levels) and then have Eddy run some study offline to optimize the vision teach.", + "cn": "如果遇到鲁棒性和精度问题,最好让现场采集大量不同光照级别的图像,然后由 Eddy 离线开展研究,以优化视觉示教。" + } + }, + { + "id": 331, + "english": "sufficient", + "frequency": 1, + "category": "high_frequency", + "chinese": "足够的", + "phonetic": "/səˈfɪʃənt/", + "forms": {}, + "example": { + "en": "Regards,\nBenson\n\n\n\nQuestions on Vision on CB in Avaline\n\n\n\n\n\n\nZhijie,\n\nYes, being able to reliably and accurately find a feature with high repeatability is a necessary but not sufficient capability to do measurements.", + "cn": "此致\nBenson\n\n\n\n关于 Avaline 中 CB 视觉的问题\n\n\n\n\n\n\nZhijie:\n\n是的,能够以高重复性可靠且准确地找到某个特征,是执行测量的必要条件,但并非充分条件。" + } + }, + { + "id": 332, + "english": "table", + "frequency": 1, + "category": "high_frequency", + "chinese": "表格;桌子;工作台;平台", + "phonetic": "/ˈteɪbəl/", + "forms": {}, + "example": { + "en": "On a ball bonder, we measured the position of a lead frame corner while moving to various locations on a grid pattern across the field of view and compared the same measurement to our XY table map target which is glass with a very thin deposition of chrome fiducials.", + "cn": "在球焊机上,我们让引线框架的一个角点在整个视场内按网格图案移动到不同位置,并测量其位置;然后将这些测量结果与我们的 XY 工作台标定靶进行比较,该标定靶为玻璃材质,表面沉积有非常薄的铬制基准标记。" + } + }, + { + "id": 333, + "english": "thin", + "frequency": 1, + "category": "high_frequency", + "chinese": "薄的", + "phonetic": "/θɪn/", + "forms": {}, + "example": { + "en": "On a ball bonder, we measured the position of a lead frame corner while moving to various locations on a grid pattern across the field of view and compared the same measurement to our XY table map target which is glass with a very thin deposition of chrome fiducials.", + "cn": "在球焊机上,我们让引线框架的一个角点在整个视场内按网格图案移动到不同位置,并测量其位置;然后将这些测量结果与我们的 XY 工作台标定靶进行比较,该标定靶为玻璃材质,表面沉积有非常薄的铬制基准标记。" + } + }, + { + "id": 334, + "english": "taught", + "frequency": 1, + "category": "technical_operations", + "chinese": "教;示教(teach 的过去式/过去分词)", + "phonetic": "/tɔːt/", + "forms": { + "verb": "taught (teach 的过去式/过去分词)" + }, + "example": { + "en": "1)\tShow how the vision is set up, a fiducial taught, the setup checked, on Avaline.", + "cn": "1)\t展示如何在 Avaline 上设置视觉系统、示教基准标记以及检查设置。" + } + }, + { + "id": 335, + "english": "timeline", + "frequency": 1, + "category": "business_core", + "chinese": "时间线;进度安排;工期", + "phonetic": "/ˈtaɪmlaɪn/", + "forms": {}, + "example": { + "en": "I believe you know that we discussed that but put it off to a later phase, because Mike repeatedly told us that it would require a design change, mean no re-use, and extend the timeline significantly.", + "cn": "我相信你知道我们讨论过这一点,但将其推迟到了后续阶段,因为 Mike 多次告诉我们,这需要更改设计,意味着无法复用,并会显著延长工期。" + } + }, + { + "id": 336, + "english": "topic", + "frequency": 1, + "category": "business_core", + "chinese": "主题;话题", + "phonetic": "/ˈtɒpɪk/", + "forms": {}, + "example": { + "en": "Note that last night (US time) in the Avaline development review meeting it was decided to have a review meeting in Suzhou next Monday 2pm led by Benson, with Li Yang and CK, to further address this topic.", + "cn": "请注意,昨晚(美国时间)的 Avaline 开发评审会上决定,下周一下午 2 点在苏州召开一次由 Benson 主持、Li Yang 和 CK 参加的评审会,以进一步讨论此问题。" + } + }, + { + "id": 337, + "english": "transfer", + "frequency": 1, + "category": "technical_operations", + "chinese": "转移;传输", + "phonetic": "/trænsˈfɜːr/", + "forms": { + "noun": "transfers (复数)" + }, + "example": { + "en": "These are the images we upload for each clip transfer inspection.", + "cn": "这些是我们为每次夹片转移检查上传的图像。" + } + }, + { + "id": 338, + "english": "uniform", + "frequency": 1, + "category": "high_frequency", + "chinese": "均匀的;一致的", + "phonetic": "/ˈjuːnɪfɔːm/", + "forms": {}, + "example": { + "en": "-\tCompare the found position of a leadframe’s fiducial across the field of view (move the fiducial to a grid of locations) to a glass calibration jig’s found position\n-\tIdeally using a glass jig, measure the lens distortion across the FOV (grid locations) to see if the magnification is uniform across the FoV.", + "cn": "-\t将引线框架基准标记在整个视场内各位置(把基准标记移动到网格中的各点)的检测位置,与玻璃标定治具的检测位置进行比较\n-\t最好使用玻璃治具测量整个视场(网格位置)的镜头畸变,以确认整个视场内的放大倍率是否均匀。" + } + }, + { + "id": 339, + "english": "unusual", + "frequency": 1, + "category": "high_frequency", + "chinese": "不寻常的", + "phonetic": "/ʌnˈjuːʒuəl/", + "forms": {}, + "example": { + "en": "But instead we measured consistent but very unusual diagonal bands of higher error.", + "cn": "但我们测得的却是稳定出现、但非常异常的高误差对角条带。" + } + }, + { + "id": 340, + "english": "way", + "frequency": 1, + "category": "high_frequency", + "chinese": "方式;方法;路", + "phonetic": "/weɪ/", + "forms": {}, + "example": { + "en": "The crosshair is in no way related to the features on the material themselves.", + "cn": "十字准线与材料本身的特征完全无关。" + } + }, + { + "id": 341, + "english": "wonder", + "frequency": 1, + "category": "high_frequency", + "chinese": "想知道", + "phonetic": "/ˈwʌndər/", + "forms": { + "verb": "wondering (现在分词)" + }, + "example": { + "en": "I wonder if it is a customer preference to see binary image on the screen.", + "cn": "我想知道,在屏幕上查看二值图像是否是客户的偏好。" + } + }, + { + "id": 342, + "english": "worthwhile", + "frequency": 1, + "category": "high_frequency", + "chinese": "值得的", + "phonetic": "/ˌwɜːθˈwaɪl/", + "forms": {}, + "example": { + "en": "For ease of use by developers, could be worthwhile to save a pair of images with metadata (one raw and one preprocessed).", + "cn": "为方便开发人员使用,值得保存一对带元数据的图像(一张原始图像和一张预处理图像)。" + } + }, + { + "id": 343, + "english": "yesterday", + "frequency": 1, + "category": "time_planning", + "chinese": "昨天", + "phonetic": "/ˈjestədeɪ/", + "forms": {}, + "example": { + "en": "It was difficult for me to hear and understand much during the summit day yesterday.", + "cn": "昨天的峰会期间,我很难听清并理解太多内容。" + } + } +] diff --git a/data/words-2025-08-26.json b/data/words-2025-08-26.json new file mode 100644 index 0000000..66ca5dd --- /dev/null +++ b/data/words-2025-08-26.json @@ -0,0 +1,12250 @@ +[ + { + "id": 1, + "english": "missing", + "frequency": 25, + "category": "high_frequency", + "chinese": "丢失的", + "phonetic": "/ˈmɪsɪŋ/", + "forms": { + "adjective": "形容词", + "verb": [ + "misses (第三人称单数)", + "missing (现在分词)", + "missed (过去式/过去分词)" + ] + }, + "example": { + "en": "We are looking for the missing parts.", + "cn": "我们正在寻找丢失的零件。" + } + }, + { + "id": 2, + "english": "parts", + "frequency": 36, + "category": "high_frequency", + "chinese": "零件", + "phonetic": "/pɑːrts/", + "forms": { + "noun": "part的复数形式", + "verb": [ + "parts (第三人称单数)", + "parting (现在分词)", + "parted (过去式/过去分词)" + ] + }, + "example": { + "en": "The machine is made of many different parts.", + "cn": "这台机器由许多不同的零件组成。" + } + }, + { + "id": 3, + "english": "seems", + "frequency": 22, + "category": "high_frequency", + "chinese": "似乎", + "phonetic": "/siːmz/", + "forms": { + "verb": "seem的第三人称单数形式" + }, + "example": { + "en": "It seems that the chuck was found.", + "cn": "夹具似乎被找到了。" + } + }, + { + "id": 4, + "english": "chuck", + "frequency": 59, + "category": "high_frequency", + "chinese": "夹具", + "phonetic": "/tʃʌk/", + "forms": { + "noun": "chucks (复数)", + "plural": "chucks (复数)" + }, + "example": { + "en": "The dispense chuck for the CB had to be remade.", + "cn": "用于CB的点胶夹具必须重做。" + } + }, + { + "id": 5, + "english": "found", + "frequency": 18, + "category": "high_frequency", + "chinese": "找到", + "phonetic": "/faʊnd/", + "forms": { + "verb": "find的过去式/过去分词" + }, + "example": { + "en": "The missing item was finally found.", + "cn": "丢失的物品终于被找到了。" + } + }, + { + "id": 6, + "english": "search", + "frequency": 20, + "category": "action_verbs", + "chinese": "搜索", + "phonetic": "/sɜːrtʃ/", + "forms": { + "verb": [ + "searches (第三人称单数)", + "searching (现在分词)", + "searched (过去式/过去分词)" + ], + "plural": "searches (复数)" + }, + "example": { + "en": "Thanks for helping to search for it.", + "cn": "感谢帮助寻找它。" + } + }, + { + "id": 7, + "english": "confirm", + "frequency": 17, + "category": "business_core", + "chinese": "确认", + "phonetic": "/kənˈfɜːrm/", + "forms": { + "verb": [ + "confirms (第三人称单数)", + "confirming (现在分词)", + "confirmed (过去式/过去分词)" + ] + }, + "example": { + "en": "Please confirm your attendance.", + "cn": "请确认您是否出席。" + } + }, + { + "id": 8, + "english": "dispense", + "frequency": 57, + "category": "high_frequency", + "chinese": "点胶", + "phonetic": "/dɪˈspens/", + "forms": { + "verb": [ + "dispenses (第三人称单数)", + "dispensing (现在分词)", + "dispensed (过去式/过去分词)" + ] + }, + "example": { + "en": "This machine can dispense adhesive accurately.", + "cn": "这台机器可以精确地点胶。" + } + }, + { + "id": 9, + "english": "remade", + "frequency": 15, + "category": "action_verbs", + "chinese": "重做", + "phonetic": "/ˌriːˈmeɪd/", + "forms": { + "verb": "remake的过去式/过去分词" + }, + "example": { + "en": "The faulty part had to be remade.", + "cn": "有问题的零件必须重做。" + } + }, + { + "id": 10, + "english": "shipped", + "frequency": 16, + "category": "business_core", + "chinese": "运送", + "phonetic": "/ʃɪpt/", + "forms": { + "verb": "ship的过去式/过去分词" + }, + "example": { + "en": "The goods were shipped yesterday.", + "cn": "货物昨天已经运送出去了。" + } + }, + { + "id": 11, + "english": "correct", + "frequency": 18, + "category": "high_frequency", + "chinese": "正确的", + "phonetic": "/kəˈrekt/", + "forms": { + "adjective": "形容词", + "verb": [ + "corrects (第三人称单数)", + "correcting (现在分词)", + "corrected (过去式/过去分词)" + ] + }, + "example": { + "en": "Is this information correct?", + "cn": "这个信息是正确的吗?" + } + }, + { + "id": 12, + "english": "drawing", + "frequency": 14, + "category": "technical_core", + "chinese": "图纸", + "phonetic": "/ˈdrɔːɪŋ/", + "forms": { + "noun": "drawings (复数)", + "verb": [ + "draws (第三人称单数)", + "drawing (现在分词)", + "drawed (过去式/过去分词)" + ], + "plural": "drawings (复数)" + }, + "example": { + "en": "Can you send me the drawing for the chuck?", + "cn": "你能把夹具的图纸发给我吗?" + } + }, + { + "id": 13, + "english": "process", + "frequency": 43, + "category": "business_core", + "chinese": "工艺", + "phonetic": "/ˈprəʊses/", + "forms": { + "noun": "processes (复数)", + "verb": [ + "processes (第三人称单数)", + "processing (现在分词)", + "processed (过去式/过去分词)" + ] + }, + "example": { + "en": "We need to improve the pick and place process.", + "cn": "我们需要改进取放工艺。" + } + }, + { + "id": 14, + "english": "expedite", + "frequency": 12, + "category": "business_core", + "chinese": "加快", + "phonetic": "/ˈekspədaɪt/", + "forms": { + "verb": [ + "expedites (第三人称单数)", + "expediting (现在分词)", + "expedited (过去式/过去分词)" + ] + }, + "example": { + "en": "We will expedite the order with the supplier.", + "cn": "我们将催促供应商加快订单处理。" + } + }, + { + "id": 15, + "english": "supplier", + "frequency": 14, + "category": "business_core", + "chinese": "供应商", + "phonetic": "/səˈplaɪər/", + "forms": { + "noun": "suppliers (复数)", + "plural": "suppliers (复数)" + }, + "example": { + "en": "We need to find a new supplier.", + "cn": "我们需要找一个新的供应商。" + } + }, + { + "id": 16, + "english": "original", + "frequency": 13, + "category": "high_frequency", + "chinese": "原始的", + "phonetic": "/əˈrɪdʒənl/", + "forms": { + "adjective": "形容词", + "noun": "原件" + }, + "example": { + "en": "We can't find the original one.", + "cn": "我们找不到原始的那个。" + } + }, + { + "id": 17, + "english": "parallel", + "frequency": 11, + "category": "technical_operations", + "chinese": "同时地", + "phonetic": "/ˈpærəlel/", + "forms": { + "adverb": "副词", + "adjective": "平行的" + }, + "example": { + "en": "In parallel, I will try to find another solution.", + "cn": "与此同时,我会尝试寻找另一个解决方案。" + } + }, + { + "id": 18, + "english": "desperately", + "frequency": 10, + "category": "high_frequency", + "chinese": "拼命地", + "phonetic": "/ˈdespərətli/", + "forms": { + "adverb": "desperately (副词)", + "adjective": "desperate (形容词)" + }, + "example": { + "en": "We are desperately looking for the chucks.", + "cn": "我们正在拼命地寻找那些夹具。" + } + }, + { + "id": 19, + "english": "bonder", + "frequency": 66, + "category": "high_frequency", + "chinese": "焊接机", + "phonetic": "/ˈbɒndər/", + "forms": { + "noun": "bonders (复数)", + "plural": "bonders (复数)" + }, + "example": { + "en": "The clip bonder stayed in Singapore.", + "cn": "夹片焊接机留在了新加坡。" + } + }, + { + "id": 20, + "english": "perform", + "frequency": 15, + "category": "action_verbs", + "chinese": "执行", + "phonetic": "/pərˈfɔːrm/", + "forms": { + "verb": [ + "performs (第三人称单数)", + "performing (现在分词)", + "performed (过去式/过去分词)" + ] + }, + "example": { + "en": "We are unable to perform critical tests.", + "cn": "我们无法执行关键测试。" + } + }, + { + "id": 21, + "english": "critical", + "frequency": 16, + "category": "high_frequency", + "chinese": "关键的", + "phonetic": "/ˈkrɪtɪkl/", + "forms": { + "adjective": "形容词", + "adverb": "critically (副词形式)" + }, + "example": { + "en": "This is a critical test for the project.", + "cn": "这是项目的一个关键测试。" + } + }, + { + "id": 22, + "english": "setback", + "frequency": 9, + "category": "business_core", + "chinese": "挫折", + "phonetic": "/ˈsetbæk/", + "forms": { + "noun": "setbacks (复数)", + "plural": "setbacks (复数)" + }, + "example": { + "en": "This is a huge setback for the demo preparation.", + "cn": "这对演示准备工作来说是一个巨大的挫折。" + } + }, + { + "id": 23, + "english": "preparation", + "frequency": 12, + "category": "business_core", + "chinese": "准备", + "phonetic": "/ˌprepəˈreɪʃn/", + "forms": { + "noun": "不可数名词", + "plural": "preparations (复数)" + }, + "example": { + "en": "The preparation for the event took weeks.", + "cn": "这次活动的准备工作花了好几个星期。" + } + }, + { + "id": 24, + "english": "unprepared", + "frequency": 8, + "category": "high_frequency", + "chinese": "未准备好的", + "phonetic": "/ˌʌnprɪˈpeərd/", + "forms": { + "adjective": "形容词" + }, + "example": { + "en": "We will be more or less unprepared for the demo.", + "cn": "我们或多或少会对演示毫无准备。" + } + }, + { + "id": 25, + "english": "effort", + "frequency": 13, + "category": "high_frequency", + "chinese": "努力", + "phonetic": "/ˈefərt/", + "forms": { + "noun": "efforts (复数)", + "plural": "efforts (复数)" + }, + "example": { + "en": "Please make a strong effort to look everywhere.", + "cn": "请努力搜查所有地方。" + } + }, + { + "id": 26, + "english": "weekend", + "frequency": 11, + "category": "high_frequency", + "chinese": "周末", + "phonetic": "/ˈwiːkend/", + "forms": { + "noun": "weekends (复数)", + "plural": "weekends (复数)" + }, + "example": { + "en": "They can ship them to Singapore over the weekend.", + "cn": "他们可以在周末把它们运到新加坡。" + } + }, + { + "id": 27, + "english": "indexer", + "frequency": 7, + "category": "technical_core", + "chinese": "分度器", + "phonetic": "/ˈɪndeksər/", + "forms": { + "noun": "indexers (复数)", + "plural": "indexers (复数)" + }, + "example": { + "en": "Did anybody use these parts to work on the indexer?", + "cn": "有没有人用这些零件来维修分度器?" + } + }, + { + "id": 28, + "english": "clip", + "frequency": 48, + "category": "high_frequency", + "chinese": "夹子", + "phonetic": "/klɪp/", + "forms": { + "noun": "clips (复数)", + "verb": [ + "clips (第三人称单数)", + "clipping (现在分词)", + "clipped (过去式/过去分词)" + ], + "plural": "clips (复数)" + }, + "example": { + "en": "The clip bonder stayed in Singapore.", + "cn": "夹片焊接机留在了新加坡。" + } + }, + { + "id": 29, + "english": "error", + "frequency": 80, + "category": "technical_core", + "chinese": "错误", + "phonetic": "/ˈerər/", + "forms": { + "plural": "errors (复数)" + }, + "example": { + "en": "The system reported an unknown error.", + "cn": "系统报告了一个未知错误。" + } + }, + { + "id": 30, + "english": "code", + "frequency": 90, + "category": "technical_core", + "chinese": "代码", + "phonetic": "/koʊd/", + "forms": { + "plural": "codes (复数)" + }, + "example": { + "en": "Please check the error code in the manual.", + "cn": "请在手册中查找错误代码。" + } + }, + { + "id": 31, + "english": "language", + "frequency": 70, + "category": "high_frequency", + "chinese": "语言", + "phonetic": "/ˈlæŋɡwɪdʒ/", + "forms": { + "plural": "languages (复数)" + }, + "example": { + "en": "The language errors need to be corrected.", + "cn": "语言错误需要被纠正。" + } + }, + { + "id": 32, + "english": "corrected", + "frequency": 50, + "category": "action_verbs", + "chinese": "纠正", + "phonetic": "/kəˈrektɪd/", + "forms": { + "infinitive": "correct (原形)", + "verb": [ + "corrects (第三人称单数)", + "correcting (现在分词)", + "corrected (过去式/过去分词)" + ] + }, + "example": { + "en": "He corrected the mistakes in the report.", + "cn": "他纠正了报告中的错误。" + } + }, + { + "id": 33, + "english": "customer", + "frequency": 85, + "category": "business_core", + "chinese": "客户", + "phonetic": "/ˈkʌstəmər/", + "forms": { + "plural": "customers (复数)" + }, + "example": { + "en": "The changes must be done before the customer visit.", + "cn": "这些变更必须在客户来访前完成。" + } + }, + { + "id": 34, + "english": "visit", + "frequency": 60, + "category": "action_verbs", + "chinese": "访问", + "phonetic": "/ˈvɪzɪt/", + "forms": { + "verb": [ + "visits (第三人称单数)", + "visiting (现在分词)", + "visited (过去式/过去分词)" + ], + "plural": "visits (复数)" + }, + "example": { + "en": "We are expecting a visit from the auditors.", + "cn": "我们预计审计人员会来访。" + } + }, + { + "id": 35, + "english": "plan", + "frequency": 95, + "category": "time_planning", + "chinese": "计划", + "phonetic": "/plæn/", + "forms": { + "verb": [ + "plans (第三人称单数)", + "planning (现在分词)", + "planned (过去式/过去分词)" + ], + "plural": "plans (复数)" + }, + "example": { + "en": "Please plan and arrange the schedule.", + "cn": "请计划和安排日程。" + } + }, + { + "id": 36, + "english": "arrange", + "frequency": 75, + "category": "time_planning", + "chinese": "安排", + "phonetic": "/əˈreɪndʒ/", + "forms": { + "verb": [ + "arranges (第三人称单数)", + "arranging (现在分词)", + "arranged (过去式/过去分词)" + ] + }, + "example": { + "en": "Can you arrange a meeting for next week?", + "cn": "你能安排一个下周的会议吗?" + } + }, + { + "id": 37, + "english": "estimated", + "frequency": 40, + "category": "time_planning", + "chinese": "估计的", + "phonetic": "/ˈestɪmeɪtɪd/", + "forms": { + "infinitive": "estimate (原形)", + "verb": [ + "estimates (第三人称单数)", + "estimating (现在分词)", + "estimated (过去式/过去分词)" + ] + }, + "example": { + "en": "Please provide an estimated date of completion.", + "cn": "请提供一个预计的完成日期。" + } + }, + { + "id": 38, + "english": "date", + "frequency": 85, + "category": "time_planning", + "chinese": "日期", + "phonetic": "/deɪt/", + "forms": { + "plural": "dates (复数)" + }, + "example": { + "en": "What is the delivery date?", + "cn": "交货日期是哪天?" + } + }, + { + "id": 39, + "english": "check", + "frequency": 100, + "category": "action_verbs", + "chinese": "检查", + "phonetic": "/tʃek/", + "forms": { + "verb": [ + "checks (第三人称单数)", + "checking (现在分词)", + "checked (过去式/过去分词)" + ], + "plural": "checks (复数)" + }, + "example": { + "en": "I will check again early next week.", + "cn": "我下周初会再次检查。" + } + }, + { + "id": 40, + "english": "early", + "frequency": 90, + "category": "time_planning", + "chinese": "早", + "phonetic": "/ˈɜːrli/", + "forms": { + "adverb": "early (副词)", + "comparative": "earlier (比较级)", + "superlative": "earliest (最高级)" + }, + "example": { + "en": "He arrived early for the meeting.", + "cn": "他提前到达了会场。" + } + }, + { + "id": 41, + "english": "translation", + "frequency": 55, + "category": "communication", + "chinese": "翻译", + "phonetic": "/trænsˈleɪʃn/", + "forms": { + "plural": "translations (复数)" + }, + "example": { + "en": "We need to correct the translation.", + "cn": "我们需要纠正这个翻译。" + } + }, + { + "id": 42, + "english": "version", + "frequency": 70, + "category": "technical_core", + "chinese": "版本", + "phonetic": "/ˈvɜːrʒn/", + "forms": { + "plural": "versions (复数)" + }, + "example": { + "en": "This is the latest version of the software.", + "cn": "这是这个软件的最新版本。" + } + }, + { + "id": 43, + "english": "upgrades", + "frequency": 45, + "category": "technical_operations", + "chinese": "升级", + "phonetic": "/ʌpˈɡreɪdz/", + "forms": { + "singular": "upgrade (单数)", + "verb": [ + "upgrades (第三人称单数)", + "upgrading (现在分词)", + "upgraded (过去式/过去分词)" + ] + }, + "example": { + "en": "The next upgrades will include this fix.", + "cn": "下一次升级将包含此修复。" + } + }, + { + "id": 44, + "english": "always", + "frequency": 120, + "category": "high_frequency", + "chinese": "总是", + "phonetic": "/ˈɔːlweɪz/", + "forms": { + "adverb": "always (副词)" + }, + "example": { + "en": "This is always correct.", + "cn": "这一直都是正确的。" + } + }, + { + "id": 45, + "english": "vision", + "frequency": 35, + "category": "technical_core", + "chinese": "视觉", + "phonetic": "/ˈvɪʒən/", + "forms": { + "plural": "visions (复数)" + }, + "example": { + "en": "The vision system needs calibration.", + "cn": "视觉系统需要校准。" + } + }, + { + "id": 46, + "english": "backlog", + "frequency": 30, + "category": "time_planning", + "chinese": "积压工作", + "phonetic": "/ˈbæklɔːɡ/", + "forms": { + "plural": "backlogs (复数)" + }, + "example": { + "en": "We have a large backlog of tasks to complete.", + "cn": "我们有大量积压的任务需要完成。" + } + }, + { + "id": 47, + "english": "review", + "frequency": 85, + "category": "business_core", + "chinese": "审查", + "phonetic": "/rɪˈvjuː/", + "forms": { + "verb": [ + "reviews (第三人称单数)", + "reviewing (现在分词)", + "reviewed (过去式/过去分词)" + ], + "plural": "reviews (复数)" + }, + "example": { + "en": "Please review the document before the meeting.", + "cn": "请在会议前审阅这份文件。" + } + }, + { + "id": 48, + "english": "prepared", + "frequency": 60, + "category": "action_verbs", + "chinese": "准备好的", + "phonetic": "/prɪˈpeərd/", + "forms": { + "infinitive": "prepare (原形)", + "verb": [ + "prepares (第三人称单数)", + "preparing (现在分词)", + "prepared (过去式/过去分词)" + ] + }, + "example": { + "en": "Please come prepared to the call.", + "cn": "请准备好再参加电话会议。" + } + }, + { + "id": 49, + "english": "translate", + "frequency": 50, + "category": "communication", + "chinese": "翻译", + "phonetic": "/trænsˈleɪt/", + "forms": { + "verb": [ + "translates (第三人称单数)", + "translating (现在分词)", + "translated (过去式/过去分词)" + ] + }, + "example": { + "en": "You will be needed to translate.", + "cn": "将需要你来进行翻译。" + } + }, + { + "id": 50, + "english": "assignments", + "frequency": 60, + "category": "time_planning", + "chinese": "任务", + "phonetic": "/əˈsaɪnmənts/", + "forms": { + "singular": "assignment (单数)" + }, + "example": { + "en": "He has several assignments to complete.", + "cn": "他有几项任务需要完成。" + } + }, + { + "id": 51, + "english": "tasks", + "frequency": 95, + "category": "time_planning", + "chinese": "任务", + "phonetic": "/tæsks/", + "forms": { + "singular": "task (单数)", + "verb": [ + "tasks (第三人称单数)", + "tasking (现在分词)", + "tasked (过去式/过去分词)" + ] + }, + "example": { + "en": "All have tasks assigned in the Vision Backlog.", + "cn": "所有人都已在视觉待办清单(Vision Backlog)中被分配了任务。" + } + }, + { + "id": 52, + "english": "assigned", + "frequency": 70, + "category": "action_verbs", + "chinese": "分配", + "phonetic": "/əˈsaɪnd/", + "forms": { + "infinitive": "assign (原形)", + "verb": [ + "assigns (第三人称单数)", + "assigning (现在分词)", + "assigned (过去式/过去分词)" + ] + }, + "example": { + "en": "The teacher assigned homework to the students.", + "cn": "老师给学生们布置了家庭作业。" + } + }, + { + "id": 53, + "english": "below", + "frequency": 80, + "category": "high_frequency", + "chinese": "下面", + "phonetic": "/bɪˈloʊ/", + "forms": { + "preposition": "below (介词)", + "adverb": "below (副词)" + }, + "example": { + "en": "Please see the details below.", + "cn": "请看下面的详细信息。" + } + }, + { + "id": 54, + "english": "due", + "frequency": 90, + "category": "time_planning", + "chinese": "到期的", + "phonetic": "/duː/", + "forms": { + "adjective": "due (形容词)" + }, + "example": { + "en": "The due dates are in the column CP.", + "cn": "截止日期在CP栏。" + } + }, + { + "id": 55, + "english": "dates", + "frequency": 85, + "category": "time_planning", + "chinese": "日期", + "phonetic": "/deɪts/", + "forms": { + "singular": "date (单数)", + "verb": [ + "dats (第三人称单数)", + "dating (现在分词)", + "dated (过去式/过去分词)" + ] + }, + "example": { + "en": "We need to set the dates for the next meeting.", + "cn": "我们需要确定下次会议的日期。" + } + }, + { + "id": 56, + "english": "column", + "frequency": 40, + "category": "technical_core", + "chinese": "列", + "phonetic": "/ˈkɑːləm/", + "forms": { + "plural": "columns (复数)" + }, + "example": { + "en": "The data is organized in rows and columns.", + "cn": "数据按行和列组织。" + } + }, + { + "id": 57, + "english": "urgent", + "frequency": 75, + "category": "business_core", + "chinese": "紧急的", + "phonetic": "/ˈɜːrdʒənt/", + "forms": { + "adjective": "urgent (形容词)", + "adverb": "urgently (副词)" + }, + "example": { + "en": "This is an urgent message.", + "cn": "这是一条紧急信息。" + } + }, + { + "id": 58, + "english": "bold", + "frequency": 25, + "category": "technical_operations", + "chinese": "粗体", + "phonetic": "/boʊld/", + "forms": { + "adjective": "bold (形容词)", + "verb": [ + "bolds (第三人称单数)", + "bolding (现在分词)", + "bolded (过去式/过去分词)" + ] + }, + "example": { + "en": "Please make the title bold.", + "cn": "请将标题设置为粗体。" + } + }, + { + "id": 59, + "english": "read", + "frequency": 100, + "category": "high_frequency", + "chinese": "阅读", + "phonetic": "/riːd/", + "forms": { + "past": "read (过去式 /riːd/ -> /red/)", + "participle": "read (过去分词 /riːd/ -> /red/)", + "verb": [ + "reads (第三人称单数)", + "reading (现在分词)" + ] + }, + "example": { + "en": "Please read carefully.", + "cn": "请仔细阅读。" + } + }, + { + "id": 60, + "english": "carefully", + "frequency": 85, + "category": "high_frequency", + "chinese": "仔细地", + "phonetic": "/ˈkerfəli/", + "forms": { + "adverb": "carefully (副词)", + "adjective": "careful (形容词)" + }, + "example": { + "en": "He listened carefully to the instructions.", + "cn": "他仔细地听了说明。" + } + }, + { + "id": 61, + "english": "ask", + "frequency": 110, + "category": "communication", + "chinese": "问", + "phonetic": "/æsk/", + "forms": { + "verb": [ + "asks (第三人称单数)", + "asking (现在分词)", + "asked (过去式/过去分词)" + ] + }, + "example": { + "en": "If needed, please ask questions.", + "cn": "如果需要,请提问。" + } + }, + { + "id": 62, + "english": "questions", + "frequency": 95, + "category": "communication", + "chinese": "问题", + "phonetic": "/ˈkwestʃənz/", + "forms": { + "singular": "question (单数)", + "verb": [ + "questions (第三人称单数)", + "questioning (现在分词)", + "questioned (过去式/过去分词)" + ] + }, + "example": { + "en": "Do you have any questions?", + "cn": "你有什么问题吗?" + } + }, + { + "id": 63, + "english": "start", + "frequency": 100, + "category": "high_frequency", + "chinese": "开始", + "phonetic": "/stɑːrt/", + "forms": { + "verb": [ + "starts (第三人称单数)", + "starting (现在分词)", + "started (过去式/过去分词)" + ], + "plural": "starts (复数)" + }, + "example": { + "en": "I will start following up.", + "cn": "我将开始跟进。" + } + }, + { + "id": 64, + "english": "following up", + "frequency": 65, + "category": "business_core", + "chinese": "跟进", + "phonetic": "/ˈfɑːloʊɪŋ ʌp/", + "forms": { + "phrasal_verb": "follow up (短语动词)", + "verb": [ + "follows up (第三人称单数)", + "following up (现在分词)", + "followed up (过去式/过去分词)" + ], + "plural": "following ups (复数)" + }, + "example": { + "en": "She is following up on the customer's complaint.", + "cn": "她正在跟进客户的投诉。" + } + }, + { + "id": 65, + "english": "reply", + "frequency": 80, + "category": "communication", + "chinese": "回复", + "phonetic": "/rɪˈplaɪ/", + "forms": { + "verb": [ + "replies (第三人称单数)", + "replying (现在分词)", + "replied (过去式/过去分词)" + ], + "noun": "reply (名词)", + "plural": "replies (复数)" + }, + "example": { + "en": "Please reply to this email as soon as possible.", + "cn": "请尽快回复此电子邮件。" + } + }, + { + "id": 66, + "english": "reach out", + "frequency": 70, + "category": "communication", + "chinese": "联系", + "phonetic": "/riːtʃ aʊt/", + "forms": { + "phrasal_verb": "reach out (短语动词)", + "verb": [ + "reaches out (第三人称单数)", + "reaching out (现在分词)", + "reached out (过去式/过去分词)" + ], + "plural": "reach outs (复数)" + }, + "example": { + "en": "I will reach out on your Tuesday to review your plan.", + "cn": "我将在你周二的时候联系你,审查你的计划。" + } + }, + { + "id": 67, + "english": "target", + "frequency": 75, + "category": "business_core", + "chinese": "目标", + "phonetic": "/ˈtɑːrɡɪt/", + "forms": { + "noun": "target (名词)", + "verb": [ + "targets (第三人称单数)", + "targeting (现在分词)", + "targeted (过去式/过去分词)" + ], + "plural": "targets (复数)" + }, + "example": { + "en": "Let's target to have this problem closed.", + "cn": "让我们力争解决这个问题。" + } + }, + { + "id": 68, + "english": "problem", + "frequency": 90, + "category": "high_frequency", + "chinese": "问题", + "phonetic": "/ˈprɑːbləm/", + "forms": { + "plural": "problems (复数)" + }, + "example": { + "en": "We need to find a solution to this problem.", + "cn": "我们需要找到解决这个问题的方法。" + } + }, + { + "id": 69, + "english": "closed", + "frequency": 85, + "category": "action_verbs", + "chinese": "解决", + "phonetic": "/kloʊzd/", + "forms": { + "infinitive": "close (原形)", + "verb": [ + "closes (第三人称单数)", + "closing (现在分词)", + "closed (过去式/过去分词)" + ], + "adjective": "closed (形容词)" + }, + "example": { + "en": "The case is now closed.", + "cn": "这个案子现在已经了结了。" + } + }, + { + "id": 70, + "english": "image", + "frequency": 80, + "category": "technical_operations", + "chinese": "图像", + "phonetic": "/ˈɪmɪdʒ/", + "forms": { + "plural": "images (复数)" + }, + "example": { + "en": "The system performs image analysis.", + "cn": "该系统执行图像分析。" + } + }, + { + "id": 71, + "english": "analysis", + "frequency": 85, + "category": "business_core", + "chinese": "分析", + "phonetic": "/əˈnæləsɪs/", + "forms": { + "plural": "analyses (复数)", + "verb": "analyze/analyse (动词)" + }, + "example": { + "en": "We need to do a detailed analysis of the data.", + "cn": "我们需要对数据进行详细分析。" + } + }, + { + "id": 72, + "english": "struggle", + "frequency": 70, + "category": "action_verbs", + "chinese": "挣扎;努力", + "phonetic": "/ˈstrʌɡl/", + "forms": { + "verb": [ + "struggles (第三人称单数)", + "struggling (现在分词)", + "struggled (过去式/过去分词)" + ], + "noun": "struggle (名词)", + "plural": "struggles (复数)" + }, + "example": { + "en": "We continue to struggle with setting up the vision system.", + "cn": "我们在设置视觉系统方面仍然很吃力。" + } + }, + { + "id": 73, + "english": "solidly", + "frequency": 45, + "category": "technical_operations", + "chinese": "可靠地", + "phonetic": "/ˈsɑːlɪdli/", + "forms": { + "adverb": "solidly (副词)", + "adjective": "solid (形容词)" + }, + "example": { + "en": "We need to solidly measure the die placement.", + "cn": "我们需要可靠地测量芯片位置。" + } + }, + { + "id": 74, + "english": "measure", + "frequency": 90, + "category": "technical_operations", + "chinese": "测量", + "phonetic": "/ˈmeʒər/", + "forms": { + "verb": [ + "measures (第三人称单数)", + "measuring (现在分词)", + "measured (过去式/过去分词)" + ], + "noun": "measure (名词)", + "plural": "measures (复数)" + }, + "example": { + "en": "Could that tool be used to measure the die position?", + "cn": "那个工具可以用来测量芯片位置吗?" + } + }, + { + "id": 75, + "english": "placement", + "frequency": 60, + "category": "technical_operations", + "chinese": "放置;位置", + "phonetic": "/ˈpleɪsmənt/", + "forms": { + "noun": "placement (名词)", + "verb": "place (动词)", + "plural": "placements (复数)" + }, + "example": { + "en": "The die placement is not accurate.", + "cn": "芯片的放置位置不准确。" + } + }, + { + "id": 76, + "english": "especially", + "frequency": 95, + "category": "high_frequency", + "chinese": "尤其", + "phonetic": "/ɪˈspeʃəli/", + "forms": { + "adverb": "especially (副词)", + "adjective": "especial (形容词)" + }, + "example": { + "en": "It is difficult, especially when we use blank dice.", + "cn": "这很困难,尤其是当我们使用空白芯片时。" + } + }, + { + "id": 77, + "english": "blank", + "frequency": 55, + "category": "technical_core", + "chinese": "空白的", + "phonetic": "/blæŋk/", + "forms": { + "adjective": "blank (形容词)", + "noun": "blank (名词)" + }, + "example": { + "en": "We use blank dice for testing.", + "cn": "我们使用空白芯片进行测试。" + } + }, + { + "id": 78, + "english": "limited", + "frequency": 85, + "category": "business_core", + "chinese": "有限的", + "phonetic": "/ˈlɪmɪtɪd/", + "forms": { + "adjective": "limited (形容词)", + "verb": "limit (动词)" + }, + "example": { + "en": "Customer material is always limited and expensive.", + "cn": "客户的材料总是有限且昂贵的。" + } + }, + { + "id": 79, + "english": "expensive", + "frequency": 90, + "category": "high_frequency", + "chinese": "昂贵的", + "phonetic": "/ɪkˈspensɪv/", + "forms": { + "adjective": "expensive (形容词)", + "noun": "expense (名词)" + }, + "example": { + "en": "This is a very expensive piece of equipment.", + "cn": "这是一台非常昂贵的设备。" + } + }, + { + "id": 80, + "english": "guidelines", + "frequency": 65, + "category": "business_core", + "chinese": "指导方针", + "phonetic": "/ˈɡaɪdlaɪnz/", + "forms": { + "singular": "guideline (单数)" + }, + "example": { + "en": "Do we have some guidelines for how to set up the lighting?", + "cn": "我们有关于如何设置照明的指导方针吗?" + } + }, + { + "id": 81, + "english": "success", + "frequency": 95, + "category": "business_core", + "chinese": "成功", + "phonetic": "/səkˈses/", + "forms": { + "noun": "success (名词)", + "verb": "succeed (动词)", + "adjective": "successful (形容词)" + }, + "example": { + "en": "This is critical for the success at Yangjie.", + "cn": "这对在扬杰的成功至关重要。" + } + }, + { + "id": 82, + "english": "intensive", + "frequency": 50, + "category": "business_core", + "chinese": "密集的", + "phonetic": "/ɪnˈtensɪv/", + "forms": { + "adjective": "intensive (形容词)", + "adverb": "intensively (副词)" + }, + "example": { + "en": "How time intensive is that?", + "cn": "那需要花费多少时间?" + } + }, + { + "id": 83, + "english": "script", + "frequency": 75, + "category": "technical_core", + "chinese": "脚本", + "phonetic": "/skrɪpt/", + "forms": { + "plural": "scripts (复数)", + "verb": [ + "scripts (第三人称单数)", + "scripting (现在分词)", + "scripted (过去式/过去分词)" + ] + }, + "example": { + "en": "Is it possible to create a script for this task?", + "cn": "是否可以为此任务创建一个脚本?" + } + }, + { + "id": 84, + "english": "tool", + "frequency": 85, + "category": "technical_operations", + "chinese": "工具", + "phonetic": "/tuːl/", + "forms": { + "plural": "tools (复数)" + }, + "example": { + "en": "You created a measurement tool.", + "cn": "你创建了一个测量工具。" + } + }, + { + "id": 85, + "english": "accurately", + "frequency": 80, + "category": "technical_operations", + "chinese": "准确地", + "phonetic": "/ˈækjərətli/", + "forms": { + "adverb": "accurately (副词)", + "adjective": "accurate (形容词)" + }, + "example": { + "en": "The tool can accurately shift the die position.", + "cn": "该工具可以准确地移动芯片位置。" + } + }, + { + "id": 86, + "english": "functionality", + "frequency": 70, + "category": "technical_operations", + "chinese": "功能", + "phonetic": "/ˌfʌŋkʃəˈnæləti/", + "forms": { + "noun": "functionality (名词)", + "adjective": "functional (形容词)", + "plural": "functionalities (复数)" + }, + "example": { + "en": "This functionality is very critical.", + "cn": "这个功能非常关键。" + } + }, + { + "id": 87, + "english": "uniformity", + "frequency": 40, + "category": "technical_core", + "chinese": "均匀性", + "phonetic": "/ˌjuːnɪˈfɔːrməti/", + "forms": { + "noun": "uniformity (名词)", + "adjective": "uniform (形容词)", + "plural": "uniformities (复数)" + }, + "example": { + "en": "We found very bad light uniformity.", + "cn": "我们发现光的均匀性非常差。" + } + }, + { + "id": 88, + "english": "lenses", + "frequency": 60, + "category": "technical_core", + "chinese": "镜头", + "phonetic": "/ˈlenzɪz/", + "forms": { + "singular": "lens (单数)", + "verb": [ + "lenss (第三人称单数)", + "lensing (现在分词)", + "lensed (过去式/过去分词)" + ] + }, + "example": { + "en": "We use different lenses.", + "cn": "我们使用不同的镜头。" + } + }, + { + "id": 89, + "english": "alternate", + "frequency": 55, + "category": "business_core", + "chinese": "替代的", + "phonetic": "/ˈɔːltərnət/", + "forms": { + "adjective": "alternate (形容词)", + "verb": [ + "alternates (第三人称单数)", + "alternating (现在分词)", + "alternated (过去式/过去分词)" + ] + }, + "example": { + "en": "Basler claims to have an alternate lens.", + "cn": "巴斯勒声称有替代镜头。" + } + }, + { + "id": 90, + "english": "performance", + "frequency": 90, + "category": "business_core", + "chinese": "性能", + "phonetic": "/pərˈfɔːrməns/", + "forms": { + "noun": "performance (名词)", + "verb": "perform (动词)", + "plural": "performances (复数)" + }, + "example": { + "en": "CP will ask Basler to demonstrate the performance.", + "cn": "CP会要求巴斯勒演示其性能。" + } + }, + { + "id": 91, + "english": "alternative", + "frequency": 75, + "category": "business_core", + "chinese": "替代方案", + "phonetic": "/ɔːlˈtɜːrnətɪv/", + "forms": { + "plural": "alternatives (复数)", + "adjective": "alternative (形容词)" + }, + "example": { + "en": "It can be an alternative to the 3520 lens.", + "cn": "它可以作为3520镜头的替代方案。" + } + }, + { + "id": 92, + "english": "modified", + "frequency": 65, + "category": "action_verbs", + "chinese": "修改过的", + "phonetic": "/ˈmɑːdɪfaɪd/", + "forms": { + "infinitive": "modify (原形)", + "verb": [ + "modifies (第三人称单数)", + "modifying (现在分词)", + "modified (过去式/过去分词)" + ], + "adjective": "modified (形容词)" + }, + "example": { + "en": "We need a modified plate.", + "cn": "我们需要一个修改过的板。" + } + }, + { + "id": 93, + "english": "implement", + "frequency": 80, + "category": "business_core", + "chinese": "实施", + "phonetic": "/ˈɪmplɪment/", + "forms": { + "verb": [ + "implements (第三人称单数)", + "implementing (现在分词)", + "implemented (过去式/过去分词)" + ], + "noun": "implementation (名词)" + }, + "example": { + "en": "We want to implement this at Yangjie.", + "cn": "我们想在扬杰实施这个方案。" + } + }, + { + "id": 94, + "english": "appreciate", + "frequency": 85, + "category": "communication", + "chinese": "感激", + "phonetic": "/əˈpriːʃieɪt/", + "forms": { + "verb": [ + "appreciates (第三人称单数)", + "appreciating (现在分词)", + "appreciated (过去式/过去分词)" + ], + "noun": "appreciation (名词)" + }, + "example": { + "en": "I would appreciate if you could prepare the design changes.", + "cn": "如果您能准备好设计变更,我将不胜感激。" + } + }, + { + "id": 95, + "english": "documentation", + "frequency": 70, + "category": "business_core", + "chinese": "文档", + "phonetic": "/ˌdɑːkjumenˈteɪʃn/", + "forms": { + "noun": "documentation (名词)", + "verb": "document (动词)", + "plural": "documentations (复数)" + }, + "example": { + "en": "Please prepare the documentation to drive these modified parts.", + "cn": "请准备文档来推动这些修改零件的生产。" + } + }, + { + "id": 96, + "english": "die", + "frequency": 75, + "category": "technical_core", + "chinese": "芯片", + "phonetic": "/daɪ/", + "forms": { + "plural": "dies (复数)" + }, + "example": { + "en": "The red cross is not in the center of the die.", + "cn": "红十字不在芯片的中心。" + } + }, + { + "id": 97, + "english": "report", + "frequency": 95, + "category": "communication", + "chinese": "报告", + "phonetic": "/rɪˈpɔːrt/", + "forms": { + "verb": [ + "reports (第三人称单数)", + "reporting (现在分词)", + "reported (过去式/过去分词)" + ], + "plural": "reports (复数)" + }, + "example": { + "en": "Please report progress with the volume correction feature.", + "cn": "请报告体积校正功能的进展。" + } + }, + { + "id": 98, + "english": "progress", + "frequency": 90, + "category": "business_core", + "chinese": "进展", + "phonetic": "/ˈprɑːɡres/", + "forms": { + "verb": [ + "progresses (第三人称单数)", + "progressing (现在分词)", + "progressed (过去式/过去分词)" + ] + }, + "example": { + "en": "We did not make the planned progress.", + "cn": "我们没有取得计划中的进展。" + } + }, + { + "id": 99, + "english": "volume", + "frequency": 75, + "category": "technical_core", + "chinese": "体积;量", + "phonetic": "/ˈvɑːljuːm/", + "forms": { + "plural": "volumes (复数)" + }, + "example": { + "en": "This feature is for dispense volume auto-compensation.", + "cn": "此功能用于点胶量自动补偿。" + } + }, + { + "id": 100, + "english": "correction", + "frequency": 70, + "category": "technical_operations", + "chinese": "校正", + "phonetic": "/kəˈrekʃn/", + "forms": { + "plural": "corrections (复数)", + "verb": "correct (动词)" + }, + "example": { + "en": "The auto-correction of solder dispense volume is a key feature.", + "cn": "焊料点胶量的自动校正是关键功能。" + } + }, + { + "id": 101, + "english": "feature", + "frequency": 85, + "category": "technical_core", + "chinese": "功能", + "phonetic": "/ˈfiːtʃər/", + "forms": { + "plural": "features (复数)" + }, + "example": { + "en": "This feature will also be needed for Rohm.", + "cn": "罗姆公司也将需要此功能。" + } + }, + { + "id": 102, + "english": "communicate", + "frequency": 90, + "category": "communication", + "chinese": "沟通", + "phonetic": "/kəˈmjuːnɪkeɪt/", + "forms": { + "verb": [ + "communicates (第三人称单数)", + "communicating (现在分词)", + "communicated (过去式/过去分词)" + ] + }, + "example": { + "en": "Let's use this email trail to communicate.", + "cn": "让我们用这个邮件线索来沟通。" + } + }, + { + "id": 103, + "english": "update", + "frequency": 95, + "category": "action_verbs", + "chinese": "更新", + "phonetic": "/ʌpˈdeɪt/", + "forms": { + "verb": [ + "updates (第三人称单数)", + "updating (现在分词)", + "updated (过去式/过去分词)" + ], + "plural": "updates (复数)" + }, + "example": { + "en": "Please reply back with updates and data.", + "cn": "请回复更新和数据。" + } + }, + { + "id": 104, + "english": "clarification", + "frequency": 70, + "category": "communication", + "chinese": "澄清", + "phonetic": "/ˌklærəfɪˈkeɪʃn/", + "forms": { + "plural": "clarifications (复数)" + }, + "example": { + "en": "If something is not clear, I will ask for clarification.", + "cn": "如果有什么不清楚的地方,我会要求澄清。" + } + }, + { + "id": 105, + "english": "priority", + "frequency": 85, + "category": "business_core", + "chinese": "优先", + "phonetic": "/praɪˈɔːrəti/", + "forms": { + "plural": "priorities (复数)" + }, + "example": { + "en": "This is the highest priority item.", + "cn": "这是最高优先级的项目。" + } + }, + { + "id": 106, + "english": "unfortunately", + "frequency": 80, + "category": "high_frequency", + "chinese": "不幸地", + "phonetic": "/ʌnˈfɔːrtʃənətli/", + "forms": { + "adverb": "unfortunately (副词)", + "adjective": "unfortunate (形容词)" + }, + "example": { + "en": "Unfortunately, last week we did not make the planned progress.", + "cn": "不幸的是,上周我们没有取得计划中的进展。" + } + }, + { + "id": 107, + "english": "auto-compensation", + "frequency": 45, + "category": "technical_core", + "chinese": "自动补偿", + "phonetic": "/ˌɔːtoʊ ˌkɑːmpenˈseɪʃn/", + "forms": { + "compound_noun": "auto-compensation (复合名词)", + "verb": "compensate (动词)", + "plural": "auto-compensations (复数)" + }, + "example": { + "en": "The 'Dispense volume / area auto-compensation' is the highest priority item.", + "cn": "“点胶体积/面积自动补偿”是最高优先级的项目。" + } + }, + { + "id": 108, + "english": "patterns", + "frequency": 70, + "category": "technical_core", + "chinese": "图案;模式", + "phonetic": "/ˈpætərnz/", + "forms": { + "singular": "pattern (单数)", + "verb": [ + "patterns (第三人称单数)", + "patterning (现在分词)", + "patterned (过去式/过去分词)" + ] + }, + "example": { + "en": "It must be applied to single dot and multi-dot patterns.", + "cn": "它必须应用于单点和多点图案。" + } + }, + { + "id": 109, + "english": "pressure", + "frequency": 85, + "category": "business_core", + "chinese": "压力", + "phonetic": "/ˈpreʃər/", + "forms": { + "noun": "pressure (名词)", + "verb": [ + "pressures (第三人称单数)", + "pressuring (现在分词)", + "pressured (过去式/过去分词)" + ], + "plural": "pressures (复数)" + }, + "example": { + "en": "We are under growing time pressure.", + "cn": "我们的时间压力越来越大。" + } + }, + { + "id": 110, + "english": "milestones", + "frequency": 65, + "category": "time_planning", + "chinese": "里程碑", + "phonetic": "/ˈmaɪlstoʊnz/", + "forms": { + "singular": "milestone (单数)" + }, + "example": { + "en": "They have very critical milestones before end of February.", + "cn": "他们在二月底之前有非常关键的里程碑。" + } + }, + { + "id": 111, + "english": "implementation", + "frequency": 75, + "category": "business_core", + "chinese": "实施", + "phonetic": "/ˌɪmplɪmenˈteɪʃn/", + "forms": { + "noun": "implementation (名词)", + "verb": "implement (动词)", + "plural": "implementations (复数)" + }, + "example": { + "en": "Your implementation doesn't reach the target value.", + "cn": "您的实施方案没有达到目标值。" + } + }, + { + "id": 112, + "english": "difficulties", + "frequency": 80, + "category": "business_core", + "chinese": "困难", + "phonetic": "/ˈdɪfɪkəltiz/", + "forms": { + "singular": "difficulty (单数)", + "adjective": "difficult (形容词)" + }, + "example": { + "en": "We are wondering why you encounter such difficulties with this feature.", + "cn": "我们想知道为什么您在这个功能上遇到这么多困难。" + } + }, + { + "id": 113, + "english": "algorithm", + "frequency": 60, + "category": "technical_core", + "chinese": "算法", + "phonetic": "/ˈælɡərɪðəm/", + "forms": { + "plural": "algorithms (复数)" + }, + "example": { + "en": "I had seen that your 'algorithm logic' was wrong.", + "cn": "我曾发现你的“算法逻辑”是错误的。" + } + }, + { + "id": 114, + "english": "continuously", + "frequency": 75, + "category": "technical_operations", + "chinese": "持续地", + "phonetic": "/kənˈtɪnjuəsli/", + "forms": { + "adverb": "continuously (副词)", + "adjective": "continuous (形容词)" + }, + "example": { + "en": "The time was continuously increased.", + "cn": "时间被持续地增加。" + } + }, + { + "id": 115, + "english": "negligible", + "frequency": 35, + "category": "technical_core", + "chinese": "微不足道的", + "phonetic": "/ˈneɡlɪdʒəbl/", + "forms": { + "adjective": "negligible (形容词)", + "adverb": "negligibly (副词)" + }, + "example": { + "en": "The effect was negligible.", + "cn": "效果微不足道。" + } + }, + { + "id": 116, + "english": "monitor", + "frequency": 80, + "category": "technical_operations", + "chinese": "监控", + "phonetic": "/ˈmɑːnɪtər/", + "forms": { + "verb": [ + "monitors (第三人称单数)", + "monitoring (现在分词)", + "monitored (过去式/过去分词)" + ], + "noun": "monitor (名词)", + "plural": "monitors (复数)" + }, + "example": { + "en": "You can report and monitor to see whether the algorithm does what it should do.", + "cn": "您可以报告和监控,以查看算法是否按预期工作。" + } + }, + { + "id": 117, + "english": "capability", + "frequency": 75, + "category": "business_core", + "chinese": "能力", + "phonetic": "/ˌkeɪpəˈbɪləti/", + "forms": { + "plural": "capabilities (复数)", + "adjective": "capable (形容词)" + }, + "example": { + "en": "This problem limits capability against specs.", + "cn": "这个问题限制了我们达到规格要求的能力。" + } + }, + { + "id": 118, + "english": "reliability", + "frequency": 70, + "category": "technical_core", + "chinese": "可靠性", + "phonetic": "/rɪˌlaɪəˈbɪləti/", + "forms": { + "noun": "reliability (名词)", + "adjective": "reliable (形容词)", + "plural": "reliabilities (复数)" + }, + "example": { + "en": "This is a reliability risk.", + "cn": "这是一个可靠性风险。" + } + }, + { + "id": 119, + "english": "improvement", + "frequency": 85, + "category": "business_core", + "chinese": "改进", + "phonetic": "/ɪmˈpruːvmənt/", + "forms": { + "plural": "improvements (复数)", + "verb": "improve (动词)" + }, + "example": { + "en": "We expect a significant improvement in the process.", + "cn": "我们期待工艺有显著改进。" + } + }, + { + "id": 120, + "english": "requirements", + "frequency": 90, + "category": "business_core", + "chinese": "要求", + "phonetic": "/rɪˈkwaɪərmənts/", + "forms": { + "singular": "requirement (单数)", + "verb": "require (动词)" + }, + "example": { + "en": "These are on the customer's requirements list.", + "cn": "这些在客户的需求清单上。" + } + }, + { + "id": 121, + "english": "applications", + "frequency": 80, + "category": "technical_operations", + "chinese": "应用", + "phonetic": "/ˌæplɪˈkeɪʃnz/", + "forms": { + "singular": "application (单数)", + "verb": "apply (动词)" + }, + "example": { + "en": "We need to get their applications to work.", + "cn": "我们需要让他们的应用程序工作起来。" + } + }, + { + "id": 122, + "english": "evaluate", + "frequency": 75, + "category": "business_core", + "chinese": "评估", + "phonetic": "/ɪˈvæljueɪt/", + "forms": { + "verb": [ + "evaluates (第三人称单数)", + "evaluating (现在分词)", + "evaluated (过去式/过去分词)" + ], + "noun": "evaluation (名词)" + }, + "example": { + "en": "Customers evaluate us against their present supplier.", + "cn": "客户将我们与他们现有的供应商进行评估。" + } + }, + { + "id": 123, + "english": "qualified", + "frequency": 70, + "category": "business_core", + "chinese": "合格的", + "phonetic": "/ˈkwɑːlɪfaɪd/", + "forms": { + "adjective": "qualified (形容词)", + "verb": "qualify (动词)", + "noun": "qualification (名词)" + }, + "example": { + "en": "We need to get qualified at Yangjie.", + "cn": "我们需要在扬杰获得资格。" + } + }, + { + "id": 124, + "english": "roadmap", + "frequency": 65, + "category": "time_planning", + "chinese": "路线图", + "phonetic": "/ˈroʊdmæp/", + "forms": { + "plural": "roadmaps (复数)" + }, + "example": { + "en": "These are the roadmap items for the future.", + "cn": "这些是未来的路线图项目。" + } + }, + { + "id": 125, + "english": "inefficient", + "frequency": 55, + "category": "business_core", + "chinese": "效率低的", + "phonetic": "/ˌɪnɪˈfɪʃnt/", + "forms": { + "adjective": "inefficient (形容词)", + "adverb": "inefficiently (副词)", + "noun": "inefficiency (名词)" + }, + "example": { + "en": "The current process is becoming more and more inefficient.", + "cn": "目前的流程变得越来越低效。" + } + }, + { + "id": 126, + "english": "coordinate", + "frequency": 75, + "category": "business_core", + "chinese": "协调", + "phonetic": "/koʊˈɔːrdɪneɪt/", + "forms": { + "verb": [ + "coordinates (第三人称单数)", + "coordinating (现在分词)", + "coordinated (过去式/过去分词)" + ], + "noun": "coordination (名词)", + "plural": "coordinates (复数)" + }, + "example": { + "en": "I will coordinate and communicate technical concepts.", + "cn": "我将协调和沟通技术概念。" + } + }, + { + "id": 127, + "english": "integration", + "frequency": 70, + "category": "technical_operations", + "chinese": "集成", + "phonetic": "/ˌɪntɪˈɡreɪʃn/", + "forms": { + "noun": "integration (名词)", + "verb": "integrate (动词)", + "plural": "integrations (复数)" + }, + "example": { + "en": "We need electrical and software integration.", + "cn": "我们需要电气和软件集成。" + } + }, + { + "id": 128, + "english": "guidance", + "frequency": 75, + "category": "business_core", + "chinese": "指导", + "phonetic": "/ˈɡaɪdns/", + "forms": { + "noun": "guidance (名词)", + "verb": "guide (动词)" + }, + "example": { + "en": "He can work on one under his guidance.", + "cn": "他可以在他的指导下处理其中一个。" + } + }, + { + "id": 129, + "english": "resources", + "frequency": 85, + "category": "business_core", + "chinese": "资源", + "phonetic": "/ˈriːsɔːrsɪz/", + "forms": { + "singular": "resource (单数)" + }, + "example": { + "en": "We need to make the best with the available resources.", + "cn": "我们需要充分利用现有资源。" + } + }, + { + "id": 130, + "english": "efficiency", + "frequency": 80, + "category": "business_core", + "chinese": "效率", + "phonetic": "/ɪˈfɪʃnsi/", + "forms": { + "noun": "efficiency (名词)", + "adjective": "efficient (形容词)", + "plural": "efficiencies (复数)" + }, + "example": { + "en": "We can improve efficiency in many situations.", + "cn": "我们可以在许多情况下提高效率。" + } + }, + { + "id": 131, + "english": "concerns", + "frequency": 85, + "category": "communication", + "chinese": "担忧;关注", + "phonetic": "/kənˈsɜːrnz/", + "forms": { + "singular": "concern (单数)", + "verb": [ + "concerns (第三人称单数)", + "concerning (现在分词)", + "concerned (过去式/过去分词)" + ] + }, + "example": { + "en": "Please let me know your comments or concerns.", + "cn": "请告诉我您的意见或担忧。" + } + }, + { + "id": 132, + "english": "approach", + "frequency": 90, + "category": "business_core", + "chinese": "方法", + "phonetic": "/əˈproʊtʃ/", + "forms": { + "plural": "approaches (复数)", + "verb": [ + "approaches (第三人称单数)", + "approaching (现在分词)", + "approached (过去式/过去分词)" + ] + }, + "example": { + "en": "I plan to change the approach.", + "cn": "我计划改变方法。" + } + }, + { + "id": 133, + "english": "engineering", + "frequency": 75, + "category": "technical_core", + "chinese": "工程", + "phonetic": "/ˌendʒɪˈnɪrɪŋ/", + "forms": { + "noun": "engineering (名词)", + "verb": "engineer (动词)" + }, + "example": { + "en": "We have a growing list of items on Avaline which need engineering work.", + "cn": "我们在Avaline上有一份越来越长的清单,需要工程方面的工作。" + } + }, + { + "id": 134, + "english": "expanded", + "frequency": 70, + "category": "technical_operations", + "chinese": "扩展的", + "phonetic": "/ɪkˈspændɪd/", + "forms": { + "infinitive": "expand (原形)", + "verb": [ + "expands (第三人称单数)", + "expanding (现在分词)", + "expanded (过去式/过去分词)" + ], + "adjective": "expanded (形容词)" + }, + "example": { + "en": "Please get the expanded auto-correction feature ready.", + "cn": "请准备好扩展的自动校正功能。" + } + }, + { + "id": 135, + "english": "debug", + "frequency": 75, + "category": "technical_core", + "chinese": "调试", + "phonetic": "/diːˈbʌɡ/", + "forms": { + "verb": [ + "debugs (第三人称单数)", + "debugging (现在分词)", + "debugged (过去式/过去分词)" + ] + }, + "example": { + "en": "It would be great if we could debug it then.", + "cn": "如果我们能在那时调试它就太好了。" + } + }, + { + "id": 136, + "english": "remote", + "frequency": 85, + "category": "technical_operations", + "chinese": "远程的", + "phonetic": "/rɪˈmoʊt/", + "forms": { + "adjective": "remote (形容词)", + "adverb": "remotely (副词)" + }, + "example": { + "en": "We can debug it with you remote in.", + "cn": "我们可以在您远程接入的情况下进行调试。" + } + }, + { + "id": 137, + "english": "concept", + "frequency": 80, + "category": "business_core", + "chinese": "概念", + "phonetic": "/ˈkɑːnsept/", + "forms": { + "plural": "concepts (复数)" + }, + "example": { + "en": "The concept for auto-correction is correct.", + "cn": "自动校正的概念是正确的。" + } + }, + { + "id": 138, + "english": "nozzles", + "frequency": 60, + "category": "technical_core", + "chinese": "喷嘴", + "phonetic": "/ˈnɑːzlz/", + "forms": { + "singular": "nozzle (单数)" + }, + "example": { + "en": "We are dispensing with 2-column multi-tube nozzles.", + "cn": "我们正在使用双列多管喷嘴进行点胶。" + } + }, + { + "id": 139, + "english": "variable", + "frequency": 70, + "category": "technical_core", + "chinese": "变量", + "phonetic": "/ˈveriəbl/", + "forms": { + "plural": "variables (复数)", + "adjective": "variable (形容词)" + }, + "example": { + "en": "Please try to make the number of tubes a variable.", + "cn": "请尝试将管的数量设为变量。" + } + }, + { + "id": 140, + "english": "implemented", + "frequency": 80, + "category": "business_core", + "chinese": "实施", + "phonetic": "/ˈɪmplɪmentɪd/", + "forms": { + "infinitive": "implement (原形)", + "verb": [ + "implements (第三人称单数)", + "implementing (现在分词)", + "implemented (过去式/过去分词)" + ], + "adjective": "implemented (形容词)" + }, + "example": { + "en": "The other two features are implemented.", + "cn": "另外两个功能已经实施了。" + } + }, + { + "id": 141, + "english": "collected", + "frequency": 75, + "category": "action_verbs", + "chinese": "收集", + "phonetic": "/kəˈlektɪd/", + "forms": { + "infinitive": "collect (原形)", + "verb": [ + "collects (第三人称单数)", + "collecting (现在分词)", + "collected (过去式/过去分词)" + ], + "adjective": "collected (形容词)" + }, + "example": { + "en": "Can you share any data you collected?", + "cn": "你能分享你收集到的任何数据吗?" + } + }, + { + "id": 142, + "english": "verify", + "frequency": 80, + "category": "technical_operations", + "chinese": "验证", + "phonetic": "/ˈverɪfaɪ/", + "forms": { + "verb": [ + "verifies (第三人称单数)", + "verifying (现在分词)", + "verified (过去式/过去分词)" + ], + "noun": "verification (名词)" + }, + "example": { + "en": "We need to verify the proper function.", + "cn": "我们需要验证其功能是否正常。" + } + }, + { + "id": 143, + "english": "proper", + "frequency": 85, + "category": "high_frequency", + "chinese": "正确的;适当的", + "phonetic": "/ˈprɑːpər/", + "forms": { + "adjective": "proper (形容词)", + "adverb": "properly (副词)" + }, + "example": { + "en": "Please ensure the proper function of the machine.", + "cn": "请确保机器的正常功能。" + } + }, + { + "id": 144, + "english": "orientation", + "frequency": 65, + "category": "technical_core", + "chinese": "方向", + "phonetic": "/ˌɔːriənˈteɪʃn/", + "forms": { + "noun": "orientation (名词)", + "verb": "orient/orientate (动词)", + "plural": "orientations (复数)" + }, + "example": { + "en": "The Lead Frame Orientation sensor needs to be completed.", + "cn": "引线框架方向传感器需要完成。" + } + }, + { + "id": 145, + "english": "syringe", + "frequency": 55, + "category": "technical_core", + "chinese": "注射器", + "phonetic": "/sɪˈrɪndʒ/", + "forms": { + "noun": "syringe (名词)", + "plural": "syringes (复数)" + }, + "example": { + "en": "We need to complete the Syringe life time recording.", + "cn": "我们需要完成注射器寿命记录。" + } + }, + { + "id": 146, + "english": "lifetime", + "frequency": 70, + "category": "technical_core", + "chinese": "寿命", + "phonetic": "/ˈlaɪftaɪm/", + "forms": { + "noun": "lifetime (名词)", + "adjective": "lifetime (形容词)", + "plural": "lifetimes (复数)" + }, + "example": { + "en": "The lifetime of this component is about five years.", + "cn": "这个部件的寿命大约是五年。" + } + }, + { + "id": 147, + "english": "recording", + "frequency": 65, + "category": "action_verbs", + "chinese": "记录", + "phonetic": "/rɪˈkɔːrdɪŋ/", + "forms": { + "noun": "recording (名词)", + "verb": "record (动词原形)", + "gerund": "recording (动名词)", + "plural": "recordings (复数)" + }, + "example": { + "en": "The system is recording the data.", + "cn": "系统正在记录数据。" + } + }, + { + "id": 148, + "english": "operate", + "frequency": 90, + "category": "technical_operations", + "chinese": "操作", + "phonetic": "/ˈɑːpəreɪt/", + "forms": { + "verb": [ + "operates (第三人称单数)", + "operating (现在分词)", + "operated (过去式/过去分词)" + ] + }, + "example": { + "en": "CB3 can already operate with the new lens.", + "cn": "CB3已经可以使用新镜头进行操作。" + } + }, + { + "id": 149, + "english": "focal length", + "frequency": 45, + "category": "technical_core", + "chinese": "焦距", + "phonetic": "/ˈfoʊkl leŋθ/", + "forms": { + "noun": "focal length (名词)", + "plural": "focal lengths (复数)" + }, + "example": { + "en": "The lens has a short focal length.", + "cn": "这个镜头的焦距很短。" + } + }, + { + "id": 150, + "english": "rework", + "frequency": 60, + "category": "technical_operations", + "chinese": "返工", + "phonetic": "/ˈriːwɜːrk/", + "forms": { + "noun": "rework (名词)", + "verb": [ + "reworks (第三人称单数)", + "reworking (现在分词)", + "reworked (过去式/过去分词)" + ], + "plural": "reworks (复数)" + }, + "example": { + "en": "The parts will be shipped back for rework.", + "cn": "这些零件将被运回进行返工。" + } + }, + { + "id": 151, + "english": "worthwhile", + "frequency": 75, + "category": "high_frequency", + "chinese": "值得的", + "phonetic": "/ˌwɜːrθˈwaɪl/", + "forms": { + "adjective": "worthwhile (形容词)", + "adverb": "worthwhilely (副词)" + }, + "example": { + "en": "Is it worthwhile to ship it back?", + "cn": "把它运回去值得吗?" + } + }, + { + "id": 152, + "english": "shipment", + "frequency": 65, + "category": "business_core", + "chinese": "装运", + "phonetic": "/ˈʃɪpmənt/", + "forms": { + "noun": "shipment (名词)", + "plural": "shipments (复数)" + }, + "example": { + "en": "We can arrange the shipment.", + "cn": "我们可以安排装运。" + } + }, + { + "id": 153, + "english": "synchronize", + "frequency": 70, + "category": "technical_operations", + "chinese": "同步", + "phonetic": "/ˈsɪŋkrənaɪz/", + "forms": { + "verb": [ + "synchronizes (第三人称单数)", + "synchronizing (现在分词)", + "synchronized (过去式/过去分词)" + ] + }, + "example": { + "en": "We need to synchronize with the availability of the parts.", + "cn": "我们需要与零件的可用性同步。" + } + }, + { + "id": 154, + "english": "availability", + "frequency": 80, + "category": "business_core", + "chinese": "可用性", + "phonetic": "/əˌveɪləˈbɪləti/", + "forms": { + "noun": "availability (名词)", + "adjective": "available (形容词)", + "plural": "availabilities (复数)" + }, + "example": { + "en": "Please check the availability of the meeting room.", + "cn": "请检查会议室的可用性。" + } + }, + { + "id": 155, + "english": "evidence", + "frequency": 85, + "category": "high_frequency", + "chinese": "证据", + "phonetic": "/ˈevɪdəns/", + "forms": { + "noun": "evidence (名词)", + "verb": [ + "evidences (第三人称单数)", + "evidencing (现在分词)", + "evidenced (过去式/过去分词)" + ] + }, + "example": { + "en": "Do we have evidence that the red light has benefits?", + "cn": "我们有证据表明红光有好处吗?" + } + }, + { + "id": 156, + "english": "benefits", + "frequency": 90, + "category": "high_frequency", + "chinese": "好处", + "phonetic": "/ˈbenɪfɪts/", + "forms": { + "singular": "benefit (单数)", + "verb": [ + "benefits (第三人称单数)", + "benefiting (现在分词)", + "benefited (过去式/过去分词)" + ] + }, + "example": { + "en": "What are the benefits of this new approach?", + "cn": "这种新方法有什么好处?" + } + }, + { + "id": 157, + "english": "repeatability", + "frequency": 55, + "category": "technical_core", + "chinese": "可重复性", + "phonetic": "/rɪˌpiːtəˈbɪləti/", + "forms": { + "noun": "repeatability (名词)", + "adjective": "repeatable (形容词)", + "plural": "repeatabilities (复数)" + }, + "example": { + "en": "This is very good, compared to our solder dot repeatability.", + "cn": "与我们的焊点可重复性相比,这已经非常好了。" + } + }, + { + "id": 158, + "english": "reticle", + "frequency": 40, + "category": "technical_core", + "chinese": "标线片", + "phonetic": "/ˈretɪkl/", + "forms": { + "noun": "reticle (名词)", + "plural": "reticles (复数)" + }, + "example": { + "en": "What is the actual area of the dots on the reticle?", + "cn": "标线片上点的实际面积是多少?" + } + }, + { + "id": 159, + "english": "instruction", + "frequency": 85, + "category": "high_frequency", + "chinese": "指令;说明", + "phonetic": "/ɪnˈstrʌkʃn/", + "forms": { + "noun": "instruction (名词)", + "plural": "instructions (复数)" + }, + "example": { + "en": "Can you please create a Work Instruction for this measurement?", + "cn": "您能为这个测量创建一个工作指令吗?" + } + }, + { + "id": 160, + "english": "assembly", + "frequency": 70, + "category": "technical_operations", + "chinese": "装配", + "phonetic": "/əˈsembli/", + "forms": { + "noun": "assembly (名词)", + "verb": "assemble (动词)", + "plural": "assemblies (复数)" + }, + "example": { + "en": "This is included in the assembly.", + "cn": "这包含在装配中。" + } + }, + { + "id": 161, + "english": "calibrate", + "frequency": 65, + "category": "technical_operations", + "chinese": "校准", + "phonetic": "/ˈkælɪbreɪt/", + "forms": { + "verb": [ + "calibrates (第三人称单数)", + "calibrating (现在分词)", + "calibrated (过去式/过去分词)" + ] + }, + "example": { + "en": "We can calibrate our vision systems accordingly.", + "cn": "我们可以相应地校准我们的视觉系统。" + } + }, + { + "id": 162, + "english": "accordingly", + "frequency": 80, + "category": "high_frequency", + "chinese": "相应地", + "phonetic": "/əˈkɔːrdɪŋli/", + "forms": { + "adverb": "accordingly (副词)" + }, + "example": { + "en": "Please review the document and act accordingly.", + "cn": "请审阅文件并采取相应行动。" + } + }, + { + "id": 163, + "english": "independent", + "frequency": 80, + "category": "high_frequency", + "chinese": "独立的", + "phonetic": "/ˌɪndɪˈpendənt/", + "forms": { + "adjective": "independent (形容词)", + "adverb": "independently (副词)", + "noun": "independence (名词)" + }, + "example": { + "en": "We need to arrive at our own method, independent from a customer's method.", + "cn": "我们需要得出自己的方法,独立于客户的方法。" + } + }, + { + "id": 164, + "english": "purchased", + "frequency": 85, + "category": "business_core", + "chinese": "购买", + "phonetic": "/ˈpɜːrtʃəst/", + "forms": { + "infinitive": "purchase (原形)", + "verb": [ + "purchases (第三人称单数)", + "purchasing (现在分词)", + "purchased (过去式/过去分词)" + ], + "noun": "purchase (名词)" + }, + "example": { + "en": "This was one reason why we purchased the reticles.", + "cn": "这是我们购买标线片的原因之一。" + } + }, + { + "id": 165, + "english": "conclusion", + "frequency": 80, + "category": "high_frequency", + "chinese": "结论", + "phonetic": "/kənˈkluːʒn/", + "forms": { + "noun": "conclusion (名词)", + "plural": "conclusions (复数)", + "verb": "conclude (动词)" + }, + "example": { + "en": "I don't understand your conclusion.", + "cn": "我不明白你的结论。" + } + }, + { + "id": 166, + "english": "variation", + "frequency": 75, + "category": "technical_core", + "chinese": "变化", + "phonetic": "/ˌveriˈeɪʃn/", + "forms": { + "noun": "variation (名词)", + "plural": "variations (复数)", + "verb": "vary (动词)" + }, + "example": { + "en": "The variation of the measured dot area is +/-0.015mm2.", + "cn": "测量的点面积的变化为+/-0.015平方毫米。" + } + }, + { + "id": 167, + "english": "variability", + "frequency": 60, + "category": "technical_core", + "chinese": "可变性", + "phonetic": "/ˌveriəˈbɪləti/", + "forms": { + "noun": "variability (名词)", + "adjective": "variable (形容词)", + "plural": "variabilities (复数)" + }, + "example": { + "en": "I assume it has a variability.", + "cn": "我假设它有可变性。" + } + }, + { + "id": 168, + "english": "convinced", + "frequency": 75, + "category": "high_frequency", + "chinese": "确信的", + "phonetic": "/kənˈvɪnst/", + "forms": { + "adjective": "convinced (形容词)", + "verb": "convince (动词原形)", + "noun": "conviction (名词)" + }, + "example": { + "en": "I'm not convinced that you focus on the right aspects.", + "cn": "我不敢肯定你关注的是正确的方面。" + } + }, + { + "id": 169, + "english": "aspects", + "frequency": 85, + "category": "high_frequency", + "chinese": "方面", + "phonetic": "/ˈæspekts/", + "forms": { + "singular": "aspect (单数)", + "noun": "aspects (复数名词)" + }, + "example": { + "en": "We need to consider all aspects of the problem.", + "cn": "我们需要考虑问题的所有方面。" + } + }, + { + "id": 170, + "english": "stdev", + "frequency": 50, + "category": "technical_core", + "chinese": "标准差", + "phonetic": "/ˈstændərd diːviˈeɪʃən/", + "forms": { + "noun": "stdev (缩写名词)", + "full_form": "standard deviation (完整形式)", + "plural": "stdevs (复数)" + }, + "example": { + "en": "Please provide the measured average and stdev.", + "cn": "请提供测量的平均值和标准差。" + } + }, + { + "id": 171, + "english": "plot", + "frequency": 70, + "category": "technical_operations", + "chinese": "绘制", + "phonetic": "/plɑːt/", + "forms": { + "verb": [ + "plots (第三人称单数)", + "plotting (现在分词)", + "plotted (过去式/过去分词)" + ], + "noun": "plot (名词)", + "plural": "plots (复数)" + }, + "example": { + "en": "Then plot the measured averages against the actuals.", + "cn": "然后将测量的平均值与实际值进行对比绘制。" + } + }, + { + "id": 172, + "english": "synergies", + "frequency": 55, + "category": "business_core", + "chinese": "协同效应", + "phonetic": "/ˈsɪnərdʒiz/", + "forms": { + "singular": "synergy (单数)", + "noun": "synergies (复数名词)" + }, + "example": { + "en": "We then have synergies between the 2 vision modules.", + "cn": "这样我们两个视觉模块之间就有了协同效应。" + } + }, + { + "id": 173, + "english": "nervously", + "frequency": 60, + "category": "descriptive_words", + "chinese": "紧张地", + "phonetic": "/ˈnɜːrvəsli/", + "forms": { + "adverb": "nervously (副词)", + "adjective": "nervous (形容词)", + "noun": "nervousness (名词)" + }, + "example": { + "en": "I am nervously looking to use the auto-correction.", + "cn": "我正紧张地期望使用自动校正功能。" + } + }, + { + "id": 174, + "english": "consistency", + "frequency": 75, + "category": "technical_core", + "chinese": "一致性", + "phonetic": "/kənˈsɪstənsi/", + "forms": { + "noun": "consistency (名词)", + "adjective": "consistent (形容词)", + "adverb": "consistently (副词)", + "plural": "consistencies (复数)" + }, + "example": { + "en": "The process consistency is now much better.", + "cn": "过程的一致性现在好多了。" + } + }, + { + "id": 175, + "english": "dependence", + "frequency": 65, + "category": "technical_core", + "chinese": "依赖性", + "phonetic": "/dɪˈpendəns/", + "forms": { + "noun": "dependence (名词)", + "adjective": "dependent (形容词)", + "verb": "depend (动词)" + }, + "example": { + "en": "There is a significant row dependence.", + "cn": "存在显著的行依赖性。" + } + }, + { + "id": 176, + "english": "helpful", + "frequency": 85, + "category": "high_frequency", + "chinese": "有帮助的", + "phonetic": "/ˈhelpfl/", + "forms": { + "adjective": "helpful (形容词)", + "adverb": "helpfully (副词)" + }, + "example": { + "en": "This is helpful.", + "cn": "这很有帮助。" + } + }, + { + "id": 177, + "english": "impression", + "frequency": 80, + "category": "communication", + "chinese": "印象", + "phonetic": "/ɪmˈpreʃn/", + "forms": { + "plural": "impressions (复数)", + "verb": "impress (动词)" + }, + "example": { + "en": "My first impression is that the red light is better.", + "cn": "我的第一印象是红光更好。" + } + }, + { + "id": 178, + "english": "details", + "frequency": 90, + "category": "high_frequency", + "chinese": "细节", + "phonetic": "/ˈdiːteɪlz/", + "forms": { + "singular": "detail (单数)", + "verb": [ + "details (第三人称单数)", + "detailing (现在分词)", + "detailed (过去式/过去分词)" + ] + }, + "example": { + "en": "The red light is able to show the details of the die better.", + "cn": "红光能更好地显示芯片的细节。" + } + }, + { + "id": 179, + "english": "fiducial", + "frequency": 40, + "category": "technical_core", + "chinese": "基准点", + "phonetic": "/fɪˈduːʃl/", + "forms": { + "plural": "fiducials (复数)", + "adjective": "fiducial (形容词)" + }, + "example": { + "en": "We can better see the fiducial and the die.", + "cn": "我们可以更好地看到基准点和芯片。" + } + }, + { + "id": 180, + "english": "intensity", + "frequency": 75, + "category": "technical_core", + "chinese": "强度", + "phonetic": "/ɪnˈtensəti/", + "forms": { + "noun": "intensity (名词)", + "plural": "intensities (复数)", + "adjective": "intense (形容词)" + }, + "example": { + "en": "Could you do it for 2 or 3 light intensity levels?", + "cn": "你能用2到3个光强度水平来做吗?" + } + }, + { + "id": 181, + "english": "variations", + "frequency": 75, + "category": "technical_core", + "chinese": "变化", + "phonetic": "/ˌveriˈeɪʃnz/", + "forms": { + "singular": "variation (单数)", + "noun": "variations (复数名词)", + "verb": "vary (动词)" + }, + "example": { + "en": "Did you see any image appearance variations?", + "cn": "你看到任何图像外观变化吗?" + } + }, + { + "id": 182, + "english": "appearance", + "frequency": 80, + "category": "descriptive_words", + "chinese": "外观", + "phonetic": "/əˈpɪrəns/", + "forms": { + "plural": "appearances (复数)" + }, + "example": { + "en": "The side light changes the appearance of the dice.", + "cn": "侧光改变了芯片的外观。" + } + }, + { + "id": 183, + "english": "condition", + "frequency": 90, + "category": "high_frequency", + "chinese": "条件", + "phonetic": "/kənˈdɪʃn/", + "forms": { + "plural": "conditions (复数)" + }, + "example": { + "en": "What is the light condition on slide 6?", + "cn": "幻灯片6的光照条件是什么?" + } + }, + { + "id": 184, + "english": "option", + "frequency": 90, + "category": "high_frequency", + "chinese": "选项", + "phonetic": "/ˈɑːpʃn/", + "forms": { + "plural": "options (复数)" + }, + "example": { + "en": "Is the light which you used an option to install at the pick camera?", + "cn": "你使用的灯是可以在取料相机上安装的选项吗?" + } + }, + { + "id": 185, + "english": "elaborate", + "frequency": 70, + "category": "business_core", + "chinese": "详细说明", + "phonetic": "/ɪˈlæbəreɪt/", + "forms": { + "verb": [ + "elaborates (第三人称单数)", + "elaborating (现在分词)", + "elaborated (过去式/过去分词)" + ] + }, + "example": { + "en": "Can you elaborate on what is important for the vision?", + "cn": "你能详细说明一下对视觉系统来说哪些方面是重要的吗?" + } + }, + { + "id": 186, + "english": "reliably", + "frequency": 70, + "category": "business_core", + "chinese": "可靠地", + "phonetic": "/rɪˈlaɪəbli/", + "forms": { + "adverb": "reliably (副词)", + "adjective": "reliable (形容词)" + }, + "example": { + "en": "The vision needs to reliably find a die.", + "cn": "视觉系统需要可靠地找到芯片。" + } + }, + { + "id": 187, + "english": "indication", + "frequency": 70, + "category": "business_core", + "chinese": "指示", + "phonetic": "/ˌɪndɪˈkeɪʃn/", + "forms": { + "plural": "indications (复数)" + }, + "example": { + "en": "Can you measure something that gives an indication?", + "cn": "你能测量一些能给出指示的东西吗?" + } + }, + { + "id": 188, + "english": "unacceptable", + "frequency": 70, + "category": "business_core", + "chinese": "不可接受的", + "phonetic": "/ˌʌnəkˈseptəbl/", + "forms": {}, + "example": { + "en": "This lead time is completely unacceptable.", + "cn": "这个交货时间是完全不可接受的。" + } + }, + { + "id": 189, + "english": "consistently", + "frequency": 70, + "category": "business_core", + "chinese": "一贯地", + "phonetic": "/kənˈsɪstəntli/", + "forms": { + "adverb": "consistently (副词)", + "adjective": "consistent (形容词)" + }, + "example": { + "en": "They have consistently hurt our timeline.", + "cn": "他们一贯地损害我们的时间表。" + } + }, + { + "id": 190, + "english": "timeline", + "frequency": 70, + "category": "business_core", + "chinese": "时间表", + "phonetic": "/ˈtaɪmlaɪn/", + "forms": { + "plural": "timelines (复数)" + }, + "example": { + "en": "We need to meet the timeline.", + "cn": "我们需要赶上时间表。" + } + }, + { + "id": 191, + "english": "verification", + "frequency": 70, + "category": "business_core", + "chinese": "验证", + "phonetic": "/ˌverɪfɪˈkeɪʃn/", + "forms": { + "plural": "verifications (复数)" + }, + "example": { + "en": "We will not be allowed to proceed with the verification run.", + "cn": "我们将不被允许进行验证运行。" + } + }, + { + "id": 192, + "english": "fulfill", + "frequency": 70, + "category": "business_core", + "chinese": "满足", + "phonetic": "/fʊlˈfɪl/", + "forms": { + "verb": [ + "fulfills (第三人称单数)", + "fulfilling (现在分词)", + "fulfilled (过去式/过去分词)" + ] + }, + "example": { + "en": "We need to fulfill all other requirements.", + "cn": "我们需要满足所有其他要求。" + } + }, + { + "id": 193, + "english": "gating", + "frequency": 70, + "category": "business_core", + "chinese": "门控;限制", + "phonetic": "/ˈɡeɪtɪŋ/", + "forms": { + "verb": [ + "gats (第三人称单数)", + "gating (现在分词)", + "gated (过去式/过去分词)" + ] + }, + "example": { + "en": "Can we identify which parts are gating delivery?", + "cn": "我们能确定哪些零件是限制交付的吗?" + } + }, + { + "id": 194, + "english": "existing", + "frequency": 70, + "category": "business_core", + "chinese": "现有的", + "phonetic": "/ɪɡˈzɪstɪŋ/", + "forms": { + "verb": [ + "exists (第三人称单数)", + "existing (现在分词)", + "existed (过去式/过去分词)" + ], + "adjective": "existing (形容词)" + }, + "example": { + "en": "Can we modify an existing door?", + "cn": "我们可以修改现有的门吗?" + } + }, + { + "id": 195, + "english": "perfect", + "frequency": 70, + "category": "business_core", + "chinese": "完美的", + "phonetic": "/ˈpɜːrfɪkt/", + "forms": { + "adjective": "perfect (形容词)" + }, + "example": { + "en": "It doesn't look perfect.", + "cn": "它看起来不完美。" + } + }, + { + "id": 196, + "english": "shorten", + "frequency": 70, + "category": "business_core", + "chinese": "缩短", + "phonetic": "/ˈʃɔːrtn/", + "forms": { + "verb": [ + "shortens (第三人称单数)", + "shortening (现在分词)", + "shortened (过去式/过去分词)" + ] + }, + "example": { + "en": "Please work to shorten the lead time.", + "cn": "请努力缩短交货时间。" + } + }, + { + "id": 197, + "english": "source", + "frequency": 70, + "category": "business_core", + "chinese": "来源", + "phonetic": "/sɔːrs/", + "forms": { + "plural": "sources (复数)" + }, + "example": { + "en": "We can implement parts from an alternate source.", + "cn": "我们可以采用来自替代来源的零件。" + } + }, + { + "id": 198, + "english": "prove", + "frequency": 70, + "category": "business_core", + "chinese": "证明", + "phonetic": "/pruːv/", + "forms": { + "verb": [ + "proves (第三人称单数)", + "proving (现在分词)", + "proved/proven (过去式/过去分词)" + ] + }, + "example": { + "en": "We need to prove that the design works.", + "cn": "我们需要证明设计是可行的。" + } + }, + { + "id": 199, + "english": "aligns", + "frequency": 70, + "category": "business_core", + "chinese": "对齐;符合", + "phonetic": "/əˈlaɪnz/", + "forms": { + "infinitive": "align (原形)", + "verb": [ + "aligns (第三人称单数)", + "aligning (现在分词)", + "aligned (过去式/过去分词)" + ] + }, + "example": { + "en": "This height aligns well with the optimum dispense height.", + "cn": "这个高度与最佳点胶高度非常吻合。" + } + }, + { + "id": 200, + "english": "optimum", + "frequency": 70, + "category": "business_core", + "chinese": "最佳的", + "phonetic": "/ˈɑːptɪməm/", + "forms": { + "adjective": "optimum (形容词)" + }, + "example": { + "en": "We need to find the optimum settings.", + "cn": "我们需要找到最佳设置。" + } + }, + { + "id": 201, + "english": "determined", + "frequency": 70, + "category": "business_core", + "chinese": "确定的", + "phonetic": "/dɪˈtɜːrmɪnd/", + "forms": { + "infinitive": "determine (原形)", + "verb": [ + "determins (第三人称单数)", + "determining (现在分词)", + "determined (过去式/过去分词)" + ] + }, + "example": { + "en": "That height is determined from touch-down measurements.", + "cn": "那个高度是通过接触测量确定的。" + } + }, + { + "id": 202, + "english": "touch-down", + "frequency": 70, + "category": "business_core", + "chinese": "接触", + "phonetic": "/ˈtʌtʃ daʊn/", + "forms": { + "plural": "touch-downs (复数)" + }, + "example": { + "en": "We need to do careful touch-down tests.", + "cn": "我们需要进行仔细的接触测试。" + } + }, + { + "id": 203, + "english": "behavior", + "frequency": 70, + "category": "business_core", + "chinese": "行为;特性", + "phonetic": "/bɪˈheɪvjər/", + "forms": { + "plural": "behaviors (复数)" + }, + "example": { + "en": "The dispense behavior strongly indicates that the dispense height is wrong.", + "cn": "点胶特性强烈表明点胶高度是错误的。" + } + }, + { + "id": 204, + "english": "overflow", + "frequency": 70, + "category": "business_core", + "chinese": "溢出", + "phonetic": "/ˈoʊvərfloʊ/", + "forms": { + "plural": "overflows (复数)" + }, + "example": { + "en": "We had solder overflow.", + "cn": "我们遇到了焊料溢出的问题。" + } + }, + { + "id": 205, + "english": "adaptive", + "frequency": 45, + "category": "business_core", + "chinese": "自适应的", + "phonetic": "/əˈdæptɪv/", + "forms": { + "adjective": "adaptive (形容词)" + }, + "example": { + "en": "Repeat the test with the adaptive solder area correction.", + "cn": "使用自适应焊料面积校正重复测试。" + } + }, + { + "id": 206, + "english": "distance", + "frequency": 70, + "category": "business_core", + "chinese": "距离", + "phonetic": "/ˈdɪstəns/", + "forms": { + "plural": "distances (复数)" + }, + "example": { + "en": "Is the dispense height the distance between the nozzle tip and the substrate?", + "cn": "点胶高度是喷嘴尖端和基板之间的距离吗?" + } + }, + { + "id": 207, + "english": "substrate", + "frequency": 45, + "category": "business_core", + "chinese": "基板", + "phonetic": "/ˈsʌbstreɪt/", + "forms": { + "plural": "substrates (复数)" + }, + "example": { + "en": "The material is dispensed onto the substrate.", + "cn": "材料被点涂在基板上。" + } + }, + { + "id": 208, + "english": "phase", + "frequency": 70, + "category": "business_core", + "chinese": "阶段", + "phonetic": "/feɪz/", + "forms": { + "plural": "phases (复数)" + }, + "example": { + "en": "This is gating the next phase.", + "cn": "这正在限制下一阶段的进行。" + } + }, + { + "id": 209, + "english": "reminder", + "frequency": 70, + "category": "business_core", + "chinese": "提醒", + "phonetic": "/rɪˈmaɪndər/", + "forms": { + "plural": "reminders (复数)" + }, + "example": { + "en": "This is a friendly but urgent reminder.", + "cn": "这是一个友好但紧急的提醒。" + } + }, + { + "id": 210, + "english": "escalated", + "frequency": 70, + "category": "business_core", + "chinese": "升级", + "phonetic": "/ˈeskəleɪtɪd/", + "forms": { + "infinitive": "escalate (原形)", + "verb": [ + "escalats (第三人称单数)", + "escalating (现在分词)", + "escalated (过去式/过去分词)" + ] + }, + "example": { + "en": "This item is escalated in our corporate QBR.", + "cn": "这个项目在我们的公司季度业务回顾中被提级了。" + } + }, + { + "id": 211, + "english": "corporate", + "frequency": 70, + "category": "business_core", + "chinese": "公司的", + "phonetic": "/ˈkɔːrpərət/", + "forms": {}, + "example": { + "en": "This is a corporate level issue.", + "cn": "这是一个公司层面的问题。" + } + }, + { + "id": 212, + "english": "gap", + "frequency": 70, + "category": "business_core", + "chinese": "差距", + "phonetic": "/ɡæp/", + "forms": { + "plural": "gaps (复数)" + }, + "example": { + "en": "This is a critical gap at Yangjie.", + "cn": "这是扬杰的一个关键差距。" + } + }, + { + "id": 213, + "english": "session", + "frequency": 70, + "category": "business_core", + "chinese": "会议;会话", + "phonetic": "/ˈseʃn/", + "forms": { + "plural": "sessions (复数)" + }, + "example": { + "en": "I would like to set a remote session.", + "cn": "我想安排一个远程会议。" + } + }, + { + "id": 214, + "english": "robust", + "frequency": 70, + "category": "business_core", + "chinese": "稳健的", + "phonetic": "/roʊˈbʌst/", + "forms": { + "adjective": "robust (形容词)" + }, + "example": { + "en": "This can make the system more robust.", + "cn": "这可以使系统更加稳健。" + } + }, + { + "id": 215, + "english": "compensate", + "frequency": 70, + "category": "business_core", + "chinese": "补偿", + "phonetic": "/ˈkɑːmpenseɪt/", + "forms": { + "verb": [ + "compensates (第三人称单数)", + "compensating (现在分词)", + "compensated (过去式/过去分词)" + ] + }, + "example": { + "en": "We did this to compensate for the die position.", + "cn": "我们这样做是为了补偿芯片位置。" + } + }, + { + "id": 216, + "english": "averaging", + "frequency": 70, + "category": "business_core", + "chinese": "平均", + "phonetic": "/ˈævərɪdʒɪŋ/", + "forms": { + "verb": [ + "averags (第三人称单数)", + "averaging (现在分词)", + "averaged (过去式/过去分词)" + ] + }, + "example": { + "en": "That was based on significant averaging.", + "cn": "那是基于大量的平均计算。" + } + }, + { + "id": 217, + "english": "reacts", + "frequency": 70, + "category": "business_core", + "chinese": "反应", + "phonetic": "/riˈækts/", + "forms": { + "infinitive": "react (原形)", + "verb": [ + "reacts (第三人称单数)", + "reacting (现在分词)", + "reacted (过去式/过去分词)" + ] + }, + "example": { + "en": "Is there a better approach which reacts sooner?", + "cn": "有没有一种能更快反应的更好方法?" + } + }, + { + "id": 218, + "english": "assume", + "frequency": 70, + "category": "business_core", + "chinese": "假设", + "phonetic": "/əˈsuːm/", + "forms": { + "verb": [ + "assumes (第三人称单数)", + "assuming (现在分词)", + "assumed (过去式/过去分词)" + ] + }, + "example": { + "en": "Let's assume the material shall not be used after 10 hours.", + "cn": "让我们假设材料在10小时后就不能使用了。" + } + }, + { + "id": 219, + "english": "acceptable", + "frequency": 70, + "category": "business_core", + "chinese": "可接受的", + "phonetic": "/əkˈseptəbl/", + "forms": {}, + "example": { + "en": "The material is no more acceptable.", + "cn": "这种材料不再是可接受的。" + } + }, + { + "id": 220, + "english": "reducing", + "frequency": 80, + "category": "action_verbs", + "chinese": "减少", + "phonetic": "/rɪˈduːsɪŋ/", + "forms": { + "infinitive": "reduce (原形)", + "verb": [ + "reducs (第三人称单数)", + "reducing (现在分词)", + "reduced (过去式/过去分词)" + ] + }, + "example": { + "en": "Reducing the search area bears the risk.", + "cn": "减少搜索区域会带来风险。" + } + }, + { + "id": 221, + "english": "risk", + "frequency": 85, + "category": "business_core", + "chinese": "风险", + "phonetic": "/rɪsk/", + "forms": { + "plural": "risks (复数)" + }, + "example": { + "en": "There is a risk of data loss.", + "cn": "存在数据丢失的风险。" + } + }, + { + "id": 222, + "english": "fully", + "frequency": 85, + "category": "high_frequency", + "chinese": "完全地", + "phonetic": "/ˈfʊli/", + "forms": { + "adverb": "fully (副词)", + "adjective": "full (形容词)" + }, + "example": { + "en": "The dot is not fully inside the search area.", + "cn": "该点未完全在搜索区域内。" + } + }, + { + "id": 223, + "english": "inside", + "frequency": 80, + "category": "high_frequency", + "chinese": "在...里面", + "phonetic": "/ɪnˈsaɪd/", + "forms": { + "plural": "insides (复数)" + }, + "example": { + "en": "Please check what is inside the box.", + "cn": "请检查盒子里有什么。" + } + }, + { + "id": 224, + "english": "cut off", + "frequency": 65, + "category": "action_verbs", + "chinese": "切断", + "phonetic": "/kʌt ɔːf/", + "forms": { + "plural": "cut offs (复数)" + }, + "example": { + "en": "The area outside the search area is cut off.", + "cn": "搜索区域外的区域被切掉了。" + } + }, + { + "id": 225, + "english": "tie", + "frequency": 60, + "category": "action_verbs", + "chinese": "绑定", + "phonetic": "/taɪ/", + "forms": { + "verb": [ + "ties (第三人称单数)", + "tying (现在分词)", + "tied (过去式/过去分词)" + ], + "plural": "ties (复数)" + }, + "example": { + "en": "Is there no way to tie the left side of the search area to the edge of the lead?", + "cn": "有没有办法将搜索区域的左侧与引线的边缘绑定?" + } + }, + { + "id": 226, + "english": "edge", + "frequency": 70, + "category": "technical_core", + "chinese": "边缘", + "phonetic": "/edʒ/", + "forms": { + "plural": "edges (复数)" + }, + "example": { + "en": "Be careful with the sharp edge of the knife.", + "cn": "小心刀的锋利边缘。" + } + }, + { + "id": 227, + "english": "includes", + "frequency": 85, + "category": "high_frequency", + "chinese": "包括", + "phonetic": "/ɪnˈkluːdz/", + "forms": { + "infinitive": "include (原形)", + "verb": [ + "includs (第三人称单数)", + "including (现在分词)", + "included (过去式/过去分词)" + ] + }, + "example": { + "en": "The measurement includes the dark area of the chuck.", + "cn": "测量包括了夹头的暗区。" + } + }, + { + "id": 228, + "english": "dark", + "frequency": 75, + "category": "high_frequency", + "chinese": "黑暗的", + "phonetic": "/dɑːrk/", + "forms": {}, + "example": { + "en": "It's too dark to see anything.", + "cn": "太黑了,什么也看不见。" + } + }, + { + "id": 229, + "english": "window", + "frequency": 70, + "category": "technical_core", + "chinese": "窗口", + "phonetic": "/ˈwɪndoʊ/", + "forms": { + "plural": "windows (复数)" + }, + "example": { + "en": "The search window is too large.", + "cn": "搜索窗口太大了。" + } + }, + { + "id": 230, + "english": "lock", + "frequency": 65, + "category": "action_verbs", + "chinese": "锁定", + "phonetic": "/lɑːk/", + "forms": { + "verb": [ + "locks (第三人称单数)", + "locking (现在分词)", + "locked (过去式/过去分词)" + ], + "plural": "locks (复数)" + }, + "example": { + "en": "Is there a way to lock the search window to the edge of the lead?", + "cn": "有没有办法将搜索窗口锁定到引线的边缘?" + } + }, + { + "id": 231, + "english": "extend", + "frequency": 70, + "category": "action_verbs", + "chinese": "延伸", + "phonetic": "/ɪkˈstend/", + "forms": { + "verb": [ + "extends (第三人称单数)", + "extending (现在分词)", + "extended (过去式/过去分词)" + ] + }, + "example": { + "en": "The search area should not extend beyond the lead.", + "cn": "搜索区域不应超出引线范围。" + } + }, + { + "id": 232, + "english": "beyond", + "frequency": 75, + "category": "high_frequency", + "chinese": "超越", + "phonetic": "/biˈɑːnd/", + "forms": {}, + "example": { + "en": "The results were beyond our expectations.", + "cn": "结果超出了我们的预期。" + } + }, + { + "id": 233, + "english": "visible", + "frequency": 70, + "category": "technical_core", + "chinese": "可见的", + "phonetic": "/ˈvɪzəbl/", + "forms": {}, + "example": { + "en": "The chuck area must be black to make the lead better visible.", + "cn": "夹头区域必须是黑色的,以使引线更清晰可见。" + } + }, + { + "id": 234, + "english": "equal", + "frequency": 80, + "category": "high_frequency", + "chinese": "相等的", + "phonetic": "/ˈiːkwəl/", + "forms": {}, + "example": { + "en": "Make the search area equal to the lead area.", + "cn": "使搜索区域等于引线区域。" + } + }, + { + "id": 235, + "english": "thoughts", + "frequency": 80, + "category": "communication", + "chinese": "想法", + "phonetic": "/θɔːts/", + "forms": { + "singular": "thought (单数)" + }, + "example": { + "en": "Please let me know your thoughts and ideas.", + "cn": "请告诉我您的想法和主意。" + } + }, + { + "id": 236, + "english": "ideas", + "frequency": 80, + "category": "communication", + "chinese": "主意", + "phonetic": "/aɪˈdiːəz/", + "forms": { + "singular": "idea (单数)" + }, + "example": { + "en": "Do you have any ideas on how to solve this problem?", + "cn": "你对如何解决这个问题有什么主意吗?" + } + }, + { + "id": 237, + "english": "termination", + "frequency": 45, + "category": "technical_operations", + "chinese": "终止", + "phonetic": "/ˌtɜːrmɪˈneɪʃn/", + "forms": { + "plural": "terminations (复数)" + }, + "example": { + "en": "We need the termination of the line writing by moving back in X.", + "cn": "我们需要通过在X方向上后退来终止线状书写。" + } + }, + { + "id": 238, + "english": "diagram", + "frequency": 60, + "category": "technical_core", + "chinese": "图表", + "phonetic": "/ˈdaɪəɡræm/", + "forms": { + "plural": "diagrams (复数)" + }, + "example": { + "en": "Please see the timing diagram below.", + "cn": "请看下面的时序图。" + } + }, + { + "id": 239, + "english": "describe", + "frequency": 85, + "category": "communication", + "chinese": "描述", + "phonetic": "/dɪˈskraɪb/", + "forms": { + "verb": [ + "describes (第三人称单数)", + "describing (现在分词)", + "described (过去式/过去分词)" + ] + }, + "example": { + "en": "I believe I did describe this a few times.", + "cn": "我相信我已经描述过好几次了。" + } + }, + { + "id": 240, + "english": "soonest", + "frequency": 70, + "category": "time_planning", + "chinese": "尽快", + "phonetic": "/ˈsuːnɪst/", + "forms": {}, + "example": { + "en": "We need this soonest.", + "cn": "我们尽快需要这个。" + } + }, + { + "id": 241, + "english": "challenges", + "frequency": 80, + "category": "business_core", + "chinese": "挑战", + "phonetic": "/ˈtʃæləndʒɪz/", + "forms": { + "singular": "challenge (单数)", + "verb": [ + "challengs (第三人称单数)", + "challenging (现在分词)", + "challenged (过去式/过去分词)" + ] + }, + "example": { + "en": "We are facing several vision challenges.", + "cn": "我们正面临几个视觉方面的挑战。" + } + }, + { + "id": 242, + "english": "experts", + "frequency": 75, + "category": "business_core", + "chinese": "专家", + "phonetic": "/ˈekspɜːrts/", + "forms": { + "singular": "expert (单数)" + }, + "example": { + "en": "I reached out to the vision experts.", + "cn": "我联系了视觉专家。" + } + }, + { + "id": 243, + "english": "methods", + "frequency": 85, + "category": "business_core", + "chinese": "方法", + "phonetic": "/ˈmeθədz/", + "forms": { + "singular": "method (单数)" + }, + "example": { + "en": "We need to develop new methods.", + "cn": "我们需要开发新的方法。" + } + }, + { + "id": 244, + "english": "communicated", + "frequency": 90, + "category": "communication", + "chinese": "沟通", + "phonetic": "/kəˈmjuːnɪkeɪtɪd/", + "forms": { + "infinitive": "communicate (原形)", + "verb": [ + "communicats (第三人称单数)", + "communicating (现在分词)", + "communicated (过去式/过去分词)" + ] + }, + "example": { + "en": "You had communicated with him a while back.", + "cn": "你不久前曾与他沟通过。" + } + }, + { + "id": 245, + "english": "feedback", + "frequency": 85, + "category": "communication", + "chinese": "反馈", + "phonetic": "/ˈfiːdbæk/", + "forms": {}, + "example": { + "en": "Based on Zhijie's feedback, it should be possible.", + "cn": "根据志杰的反馈,这应该是可能的。" + } + }, + { + "id": 246, + "english": "utilize", + "frequency": 75, + "category": "action_verbs", + "chinese": "利用", + "phonetic": "/ˈjuːtəlaɪz/", + "forms": { + "verb": [ + "utilizes (第三人称单数)", + "utilizing (现在分词)", + "utilized (过去式/过去分词)" + ] + }, + "example": { + "en": "We need to better utilize Halcon.", + "cn": "我们需要更好地利用Halcon。" + } + }, + { + "id": 247, + "english": "pose", + "frequency": 70, + "category": "action_verbs", + "chinese": "提出;造成", + "phonetic": "/poʊz/", + "forms": { + "verb": [ + "poses (第三人称单数)", + "posing (现在分词)", + "posed (过去式/过去分词)" + ], + "plural": "poses (复数)" + }, + "example": { + "en": "This will pose lesser requirements to the image quality.", + "cn": "这将对图像质量提出较低的要求。" + } + }, + { + "id": 248, + "english": "lesser", + "frequency": 60, + "category": "high_frequency", + "chinese": "较小的;次要的", + "phonetic": "/ˈlesər/", + "forms": {}, + "example": { + "en": "This is a lesser problem.", + "cn": "这是一个次要问题。" + } + }, + { + "id": 249, + "english": "quality", + "frequency": 85, + "category": "business_core", + "chinese": "质量", + "phonetic": "/ˈkwɑːləti/", + "forms": { + "plural": "qualities (复数)" + }, + "example": { + "en": "The image quality is not good enough.", + "cn": "图像质量不够好。" + } + }, + { + "id": 250, + "english": "contrast", + "frequency": 70, + "category": "technical_core", + "chinese": "对比度", + "phonetic": "/ˈkɑːntræst/", + "forms": { + "plural": "contrasts (复数)" + }, + "example": { + "en": "The contrast of the image is too low.", + "cn": "图像的对比度太低了。" + } + }, + { + "id": 251, + "english": "detail", + "frequency": 85, + "category": "communication", + "chinese": "细节", + "phonetic": "/ˈdiːteɪl/", + "forms": { + "plural": "details (复数)" + }, + "example": { + "en": "Please provide more details.", + "cn": "请提供更多细节。" + } + }, + { + "id": 252, + "english": "guide", + "frequency": 80, + "category": "action_verbs", + "chinese": "指导", + "phonetic": "/ɡaɪd/", + "forms": { + "verb": [ + "guides (第三人称单数)", + "guiding (现在分词)", + "guided (过去式/过去分词)" + ], + "plural": "guides (复数)" + }, + "example": { + "en": "Can he guide you on this?", + "cn": "他能在这方面指导你吗?" + } + }, + { + "id": 253, + "english": "massively", + "frequency": 55, + "category": "technical_operations", + "chinese": "大量地;大规模地", + "phonetic": "/ˈmæsɪvli/", + "forms": { + "adverb": "massively (副词)", + "adjective": "massive (形容词)" + }, + "example": { + "en": "It seems that you massively over-saturate it with light.", + "cn": "看来你用光把它严重过度饱和了。" + } + }, + { + "id": 254, + "english": "over-saturate", + "frequency": 30, + "category": "technical_core", + "chinese": "过度饱和", + "phonetic": "/ˌoʊvərˈsætʃəreɪt/", + "forms": { + "verb": [ + "over-saturates (第三人称单数)", + "over-saturating (现在分词)", + "over-saturated (过去式/过去分词)" + ] + }, + "example": { + "en": "Do not over-saturate the image with light.", + "cn": "不要用光使图像过度饱和。" + } + }, + { + "id": 255, + "english": "reduce", + "frequency": 90, + "category": "action_verbs", + "chinese": "减少", + "phonetic": "/rɪˈduːs/", + "forms": { + "verb": [ + "reduces (第三人称单数)", + "reducing (现在分词)", + "reduced (过去式/过去分词)" + ], + "noun": "reduction (名词)" + }, + "example": { + "en": "Please review whether you can reduce the light in your test.", + "cn": "请检查您是否可以在测试中减少光线。" + } + }, + { + "id": 256, + "english": "order of magnitude", + "frequency": 45, + "category": "technical_core", + "chinese": "数量级", + "phonetic": "/ˈɔːrdər əv ˈmæɡnɪtuːd/", + "forms": { + "phrase": "order of magnitude (短语)", + "plural": "orders of magnitude (复数)" + }, + "example": { + "en": "Can you reduce the light by an order of magnitude?", + "cn": "你能把光线减少一个数量级吗?" + } + }, + { + "id": 257, + "english": "busy", + "frequency": 90, + "category": "high_frequency", + "chinese": "忙碌的", + "phonetic": "/ˈbɪzi/", + "forms": { + "adjective": "busy (形容词)", + "adverb": "busily (副词)" + }, + "example": { + "en": "We are busy with Yangjie and Rohm.", + "cn": "我们正忙于扬杰和罗姆的项目。" + } + }, + { + "id": 258, + "english": "temperature", + "frequency": 85, + "category": "technical_core", + "chinese": "温度", + "phonetic": "/ˈtemprətʃər/", + "forms": { + "plural": "temperatures (复数)" + }, + "example": { + "en": "There is a temperature control problem.", + "cn": "存在一个温度控制问题。" + } + }, + { + "id": 259, + "english": "control", + "frequency": 95, + "category": "technical_operations", + "chinese": "控制", + "phonetic": "/kənˈtroʊl/", + "forms": { + "verb": [ + "controls (第三人称单数)", + "controlling (现在分词)", + "controlled (过去式/过去分词)" + ], + "noun": "control (名词)", + "plural": "controls (复数)" + }, + "example": { + "en": "We need to control the temperature.", + "cn": "我们需要控制温度。" + } + }, + { + "id": 260, + "english": "zone", + "frequency": 75, + "category": "technical_core", + "chinese": "区域", + "phonetic": "/zoʊn/", + "forms": { + "plural": "zones (复数)", + "verb": [ + "zones (第三人称单数)", + "zoning (现在分词)", + "zoned (过去式/过去分词)" + ] + }, + "example": { + "en": "There is another zone that behaves similarly bad.", + "cn": "还有另一个区域表现得同样糟糕。" + } + }, + { + "id": 261, + "english": "behaves", + "frequency": 80, + "category": "technical_operations", + "chinese": "表现", + "phonetic": "/bɪˈheɪvz/", + "forms": { + "infinitive": "behave (原形)", + "verb": [ + "behaves (第三人称单数)", + "behaving (现在分词)", + "behaved (过去式/过去分词)" + ], + "noun": "behavior (名词)" + }, + "example": { + "en": "The system behaves as expected.", + "cn": "系统按预期运行。" + } + }, + { + "id": 262, + "english": "similarly", + "frequency": 85, + "category": "high_frequency", + "chinese": "类似地", + "phonetic": "/ˈsɪmələrli/", + "forms": { + "adverb": "similarly (副词)", + "adjective": "similar (形容词)" + }, + "example": { + "en": "The two problems are similarly difficult.", + "cn": "这两个问题同样困难。" + } + }, + { + "id": 263, + "english": "address", + "frequency": 90, + "category": "action_verbs", + "chinese": "处理", + "phonetic": "/əˈdres/", + "forms": { + "verb": [ + "addresses (第三人称单数)", + "addressing (现在分词)", + "addressed (过去式/过去分词)" + ], + "noun": "address (名词)" + }, + "example": { + "en": "Please help address this problem.", + "cn": "请帮助处理这个问题。" + } + }, + { + "id": 264, + "english": "support", + "frequency": 95, + "category": "business_core", + "chinese": "支持", + "phonetic": "/səˈpɔːrt/", + "forms": { + "verb": [ + "supports (第三人称单数)", + "supporting (现在分词)", + "supported (过去式/过去分词)" + ], + "noun": "support (名词)", + "plural": "supports (复数)" + }, + "example": { + "en": "We need to provide SECS/GEM support.", + "cn": "我们需要提供SECS/GEM支持。" + } + }, + { + "id": 265, + "english": "created", + "frequency": 90, + "category": "action_verbs", + "chinese": "创建", + "phonetic": "/kriˈeɪtɪd/", + "forms": { + "infinitive": "create (原形)", + "verb": [ + "creates (第三人称单数)", + "creating (现在分词)", + "created (过去式/过去分词)" + ], + "adjective": "created (形容词)" + }, + "example": { + "en": "You created these reports for Yangjie.", + "cn": "你为扬杰创建了这些报告。" + } + }, + { + "id": 266, + "english": "usable", + "frequency": 70, + "category": "technical_operations", + "chinese": "可用的", + "phonetic": "/ˈjuːzəbl/", + "forms": { + "adjective": "usable (形容词)", + "verb": "use (动词)" + }, + "example": { + "en": "Are they also usable for Rohm?", + "cn": "它们也适用于罗姆公司吗?" + } + }, + { + "id": 267, + "english": "operates", + "frequency": 80, + "category": "technical_operations", + "chinese": "运行", + "phonetic": "/ˈɑːpəreɪts/", + "forms": { + "infinitive": "operate (原形)", + "verb": [ + "operats (第三人称单数)", + "operating (现在分词)", + "operated (过去式/过去分词)" + ] + }, + "example": { + "en": "This LED operates at higher forward voltage.", + "cn": "这种LED在较高的正向电压下工作。" + } + }, + { + "id": 268, + "english": "forward", + "frequency": 75, + "category": "technical_core", + "chinese": "向前的", + "phonetic": "/ˈfɔːrwərd/", + "forms": {}, + "example": { + "en": "The forward voltage is a key parameter.", + "cn": "正向电压是一个关键参数。" + } + }, + { + "id": 269, + "english": "voltage", + "frequency": 70, + "category": "technical_core", + "chinese": "电压", + "phonetic": "/ˈvoʊltɪdʒ/", + "forms": { + "plural": "voltages (复数)" + }, + "example": { + "en": "The device requires a stable voltage.", + "cn": "该设备需要稳定的电压。" + } + }, + { + "id": 270, + "english": "luminous", + "frequency": 50, + "category": "technical_core", + "chinese": "发光的", + "phonetic": "/ˈluːmɪnəs/", + "forms": { + "adjective": "luminous (形容词)" + }, + "example": { + "en": "It creates the same luminous intensity.", + "cn": "它产生相同的发光强度。" + } + }, + { + "id": 271, + "english": "current", + "frequency": 85, + "category": "technical_core", + "chinese": "电流", + "phonetic": "/ˈkɜːrənt/", + "forms": { + "plural": "currents (复数)" + }, + "example": { + "en": "It operates at a lower forward current.", + "cn": "它在较低的正向电流下工作。" + } + }, + { + "id": 272, + "english": "versus", + "frequency": 70, + "category": "high_frequency", + "chinese": "与...相比", + "phonetic": "/ˈvɜːrsəs/", + "forms": { + "preposition": "versus (介词/连词)" + }, + "example": { + "en": "150mA versus the present at 350mA.", + "cn": "150毫安,而目前是350毫安。" + } + }, + { + "id": 273, + "english": "protect", + "frequency": 85, + "category": "action_verbs", + "chinese": "保护", + "phonetic": "/prəˈtekt/", + "forms": { + "verb": [ + "protects (第三人称单数)", + "protecting (现在分词)", + "protected (过去式/过去分词)" + ] + }, + "example": { + "en": "How will it help to protect in the present design?", + "cn": "在目前的设计中,它将如何帮助保护?" + } + }, + { + "id": 274, + "english": "chain", + "frequency": 60, + "category": "technical_core", + "chinese": "链", + "phonetic": "/tʃeɪn/", + "forms": { + "plural": "chains (复数)" + }, + "example": { + "en": "This is a 2-chain design.", + "cn": "这是一个双链设计。" + } + }, + { + "id": 275, + "english": "balance", + "frequency": 75, + "category": "business_core", + "chinese": "平衡", + "phonetic": "/ˈbæləns/", + "forms": { + "plural": "balances (复数)" + }, + "example": { + "en": "We need to maintain the balance of the system.", + "cn": "我们需要保持系统的平衡。" + } + }, + { + "id": 276, + "english": "forced", + "frequency": 70, + "category": "action_verbs", + "chinese": "被迫的", + "phonetic": "/fɔːrst/", + "forms": { + "infinitive": "force (原形)", + "verb": [ + "forcs (第三人称单数)", + "forcing (现在分词)", + "forced (过去式/过去分词)" + ] + }, + "example": { + "en": "We have been forced to move on.", + "cn": "我们被迫继续前进。" + } + }, + { + "id": 277, + "english": "installation", + "frequency": 70, + "category": "technical_operations", + "chinese": "安装", + "phonetic": "/ˌɪnstəˈleɪʃn/", + "forms": { + "plural": "installations (复数)" + }, + "example": { + "en": "We need a better installation.", + "cn": "我们需要一个更好的安装。" + } + }, + { + "id": 278, + "english": "off-the-shelf", + "frequency": 55, + "category": "business_core", + "chinese": "现成的", + "phonetic": "/ˌɔːf ðə ˈʃelf/", + "forms": {}, + "example": { + "en": "Can you find some off-the-shelf alternatives?", + "cn": "你能找到一些现成的替代品吗?" + } + }, + { + "id": 279, + "english": "alternatives", + "frequency": 75, + "category": "business_core", + "chinese": "替代品", + "phonetic": "/ɔːlˈtɜːrnətɪvz/", + "forms": { + "singular": "alternative (单数)" + }, + "example": { + "en": "We need to explore other alternatives.", + "cn": "我们需要探索其他替代方案。" + } + }, + { + "id": 280, + "english": "advise", + "frequency": 85, + "category": "communication", + "chinese": "建议", + "phonetic": "/ədˈvaɪz/", + "forms": { + "verb": [ + "advises (第三人称单数)", + "advising (现在分词)", + "advised (过去式/过去分词)" + ] + }, + "example": { + "en": "Please advise!", + "cn": "请提供建议!" + } + }, + { + "id": 281, + "english": "addition", + "frequency": 80, + "category": "high_frequency", + "chinese": "添加;增加(in addition:此外)", + "phonetic": "/əˈdɪʃn/", + "forms": { + "plural": "additions (复数)" + }, + "example": { + "en": "In addition, can't the software report the intensity?", + "cn": "此外,软件不能报告强度吗?" + } + }, + { + "id": 282, + "english": "figure", + "frequency": 80, + "category": "high_frequency", + "chinese": "数字;图", + "phonetic": "/ˈfɪɡjər/", + "forms": { + "plural": "figures (复数)" + }, + "example": { + "en": "Then we get a figure for the contrast.", + "cn": "然后我们得到了对比度的数值。" + } + }, + { + "id": 283, + "english": "extract", + "frequency": 75, + "category": "action_verbs", + "chinese": "提取", + "phonetic": "/ɪkˈstrækt/", + "forms": { + "verb": [ + "extracts (第三人称单数)", + "extracting (现在分词)", + "extracted (过去式/过去分词)" + ] + }, + "example": { + "en": "If we could extract that information, our DOE becomes numerical.", + "cn": "如果我们能提取这些信息,我们的实验设计就变成数字化的了。" + } + }, + { + "id": 284, + "english": "numerical", + "frequency": 60, + "category": "technical_core", + "chinese": "数字的", + "phonetic": "/nuːˈmerɪkl/", + "forms": {}, + "example": { + "en": "The data needs to be in a numerical format.", + "cn": "数据需要是数字格式。" + } + }, + { + "id": 285, + "english": "evaluated", + "frequency": 80, + "category": "business_core", + "chinese": "评估", + "phonetic": "/ɪˈvæljueɪtɪd/", + "forms": { + "infinitive": "evaluate (原形)", + "verb": [ + "evaluats (第三人称单数)", + "evaluating (现在分词)", + "evaluated (过去式/过去分词)" + ] + }, + "example": { + "en": "The results can be evaluated.", + "cn": "结果可以被评估。" + } + }, + { + "id": 286, + "english": "perimeter", + "frequency": 55, + "category": "technical_core", + "chinese": "周长;周边", + "phonetic": "/pəˈrɪmɪtər/", + "forms": { + "plural": "perimeters (复数)" + }, + "example": { + "en": "The die has a large ring around the perimeter.", + "cn": "芯片周边有一个大环。" + } + }, + { + "id": 287, + "english": "goal", + "frequency": 90, + "category": "business_core", + "chinese": "目标", + "phonetic": "/ɡoʊl/", + "forms": { + "plural": "goals (复数)" + }, + "example": { + "en": "The goal is to make the center area white.", + "cn": "目标是使中心区域变白。" + } + }, + { + "id": 288, + "english": "repeat", + "frequency": 85, + "category": "action_verbs", + "chinese": "重复", + "phonetic": "/rɪˈpiːt/", + "forms": { + "verb": [ + "repeats (第三人称单数)", + "repeating (现在分词)", + "repeated (过去式/过去分词)" + ] + }, + "example": { + "en": "Can you repeat with that die?", + "cn": "你能用那个芯片重复一遍吗?" + } + }, + { + "id": 289, + "english": "equally", + "frequency": 75, + "category": "high_frequency", + "chinese": "同样地", + "phonetic": "/ˈiːkwəli/", + "forms": { + "adverb": "equally (副词)", + "adjective": "equal (形容词)" + }, + "example": { + "en": "Wang Fang's work is equally urgent and critical.", + "cn": "王芳的工作同样紧急和关键。" + } + }, + { + "id": 290, + "english": "severe", + "frequency": 70, + "category": "high_frequency", + "chinese": "严重的", + "phonetic": "/sɪˈvɪr/", + "forms": { + "adjective": "severe (形容词)" + }, + "example": { + "en": "We have severe difficulties with the die place inspection.", + "cn": "我们在芯片放置检查方面遇到了严重的困难。" + } + }, + { + "id": 291, + "english": "inspection", + "frequency": 80, + "category": "technical_operations", + "chinese": "检查", + "phonetic": "/ɪnˈspekʃn/", + "forms": { + "plural": "inspections (复数)" + }, + "example": { + "en": "The die place inspection is failing.", + "cn": "芯片放置检查失败。" + } + }, + { + "id": 292, + "english": "parameters", + "frequency": 85, + "category": "technical_core", + "chinese": "参数", + "phonetic": "/pəˈræmɪtərz/", + "forms": { + "singular": "parameter (单数)" + }, + "example": { + "en": "We have 3 parameters to affect image appearance.", + "cn": "我们有3个参数来影响图像外观。" + } + }, + { + "id": 293, + "english": "exposure", + "frequency": 65, + "category": "technical_core", + "chinese": "曝光", + "phonetic": "/ɪkˈspoʊʒər/", + "forms": { + "plural": "exposures (复数)" + }, + "example": { + "en": "Exposure time is one of the parameters.", + "cn": "曝光时间是参数之一。" + } + }, + { + "id": 294, + "english": "gain", + "frequency": 65, + "category": "technical_core", + "chinese": "增益", + "phonetic": "/ɡeɪn/", + "forms": { + "plural": "gains (复数)" + }, + "example": { + "en": "Camera gain is another parameter.", + "cn": "相机增益是另一个参数。" + } + }, + { + "id": 295, + "english": "quantifiable", + "frequency": 40, + "category": "technical_core", + "chinese": "可量化的", + "phonetic": "/ˈkwɑːntɪfaɪəbl/", + "forms": {}, + "example": { + "en": "We do not have quantifiable output data.", + "cn": "我们没有可量化的输出数据。" + } + }, + { + "id": 296, + "english": "weaker", + "frequency": 65, + "category": "high_frequency", + "chinese": "较弱的", + "phonetic": "/ˈwiːkər/", + "forms": {}, + "example": { + "en": "Maybe the test shows that the weaker one is sufficient.", + "cn": "也许测试表明较弱的那个就足够了。" + } + }, + { + "id": 297, + "english": "sufficient", + "frequency": 75, + "category": "high_frequency", + "chinese": "足够的", + "phonetic": "/səˈfɪʃnt/", + "forms": {}, + "example": { + "en": "The light is not sufficient.", + "cn": "光线不足。" + } + }, + { + "id": 298, + "english": "decision", + "frequency": 90, + "category": "business_core", + "chinese": "决定", + "phonetic": "/dɪˈsɪʒn/", + "forms": { + "plural": "decisions (复数)" + }, + "example": { + "en": "We need to make a decision by tomorrow.", + "cn": "我们明天之前需要做出决定。" + } + }, + { + "id": 299, + "english": "ordered", + "frequency": 80, + "category": "action_verbs", + "chinese": "订购", + "phonetic": "/ˈɔːrdərd/", + "forms": { + "infinitive": "order (原形)", + "verb": [ + "orders (第三人称单数)", + "ordering (现在分词)", + "ordered (过去式/过去分词)" + ] + }, + "example": { + "en": "Have you ordered the side lights?", + "cn": "你订购侧灯了吗?" + } + }, + { + "id": 300, + "english": "received", + "frequency": 85, + "category": "action_verbs", + "chinese": "收到", + "phonetic": "/rɪˈsiːvd/", + "forms": { + "infinitive": "receive (原形)", + "verb": [ + "receivs (第三人称单数)", + "receiving (现在分词)", + "received (过去式/过去分词)" + ] + }, + "example": { + "en": "Will they be received tomorrow?", + "cn": "它们明天能收到吗?" + } + }, + { + "id": 301, + "english": "necessary", + "frequency": 85, + "category": "high_frequency", + "chinese": "必要的", + "phonetic": "/ˈnesəseri/", + "forms": { + "adjective": "necessary (形容词)" + }, + "example": { + "en": "This is a necessary improvement.", + "cn": "这是一个必要的改进。" + } + }, + { + "id": 302, + "english": "bracket", + "frequency": 55, + "category": "technical_core", + "chinese": "支架", + "phonetic": "/ˈbrækɪt/", + "forms": { + "plural": "brackets (复数)" + }, + "example": { + "en": "Any bracket needs to be manufacturable.", + "cn": "任何支架都需要是可制造的。" + } + }, + { + "id": 303, + "english": "manufacturable", + "frequency": 45, + "category": "technical_core", + "chinese": "可制造的", + "phonetic": "/ˌmænjuˈfæktʃərəbl/", + "forms": {}, + "example": { + "en": "The design must be manufacturable.", + "cn": "设计必须是可制造的。" + } + }, + { + "id": 304, + "english": "immediately", + "frequency": 85, + "category": "time_planning", + "chinese": "立即", + "phonetic": "/ɪˈmiːdiətli/", + "forms": { + "adverb": "immediately (副词)", + "adjective": "immediate (形容词)" + }, + "example": { + "en": "Please order 5x of these side lights immediately.", + "cn": "请立即订购5个这种侧灯。" + } + }, + { + "id": 305, + "english": "optimal", + "frequency": 75, + "category": "business_core", + "chinese": "最佳的", + "phonetic": "/ˈɑːptɪməl/", + "forms": { + "adjective": "optimal (形容词)" + }, + "example": { + "en": "Device the optimal arrangement by tomorrow.", + "cn": "明天之前设计出最佳布局。" + } + }, + { + "id": 306, + "english": "arrangement", + "frequency": 70, + "category": "business_core", + "chinese": "布局", + "phonetic": "/əˈreɪndʒmənt/", + "forms": { + "plural": "arrangements (复数)" + }, + "example": { + "en": "The arrangement of the components is critical.", + "cn": "组件的布局至关重要。" + } + }, + { + "id": 307, + "english": "EXTREMELY", + "frequency": 80, + "category": "high_frequency", + "chinese": "极其", + "phonetic": "/ɪkˈstriːmli/", + "forms": {}, + "example": { + "en": "This is EXTREMELY URGENT!", + "cn": "这非常紧急!" + } + }, + { + "id": 308, + "english": "serious", + "frequency": 80, + "category": "high_frequency", + "chinese": "严重的", + "phonetic": "/ˈsɪriəs/", + "forms": { + "adjective": "serious (形容词)" + }, + "example": { + "en": "We have a serious problem at Yangjie.", + "cn": "我们在扬杰遇到了一个严重的问题。" + } + }, + { + "id": 309, + "english": "attached", + "frequency": 80, + "category": "communication", + "chinese": "附上", + "phonetic": "/əˈtætʃt/", + "forms": { + "infinitive": "attach (原形)", + "verb": [ + "attaches (第三人称单数)", + "attaching (现在分词)", + "attached (过去式/过去分词)" + ] + }, + "example": { + "en": "Attached is the step file of the device.", + "cn": "附件是该设备的STP文件。" + } + }, + { + "id": 310, + "english": "mount", + "frequency": 70, + "category": "technical_operations", + "chinese": "安装", + "phonetic": "/maʊnt/", + "forms": { + "verb": [ + "mounts (第三人称单数)", + "mounting (现在分词)", + "mounted (过去式/过去分词)" + ], + "plural": "mounts (复数)" + }, + "example": { + "en": "Mount it with a bracket or alike.", + "cn": "用支架或类似的东西安装它。" + } + }, + { + "id": 311, + "english": "determine", + "frequency": 85, + "category": "action_verbs", + "chinese": "确定", + "phonetic": "/dɪˈtɜːrmɪn/", + "forms": { + "verb": [ + "determines (第三人称单数)", + "determining (现在分词)", + "determined (过去式/过去分词)" + ] + }, + "example": { + "en": "Determine the optimal location.", + "cn": "确定最佳位置。" + } + }, + { + "id": 312, + "english": "relative", + "frequency": 75, + "category": "high_frequency", + "chinese": "相对的", + "phonetic": "/ˈrelətɪv/", + "forms": { + "preposition": "relative (介词/连词)" + }, + "example": { + "en": "The optimal location relative to the bond pads.", + "cn": "相对于焊接盘的最佳位置。" + } + }, + { + "id": 313, + "english": "appropriate", + "frequency": 80, + "category": "high_frequency", + "chinese": "合适的", + "phonetic": "/əˈproʊpriət/", + "forms": { + "adjective": "appropriate (形容词)" + }, + "example": { + "en": "Look for appropriate off-the-shelf units.", + "cn": "寻找合适的现成单元。" + } + }, + { + "id": 314, + "english": "increase", + "frequency": 90, + "category": "action_verbs", + "chinese": "增加", + "phonetic": "/ɪnˈkriːs/", + "forms": { + "verb": [ + "increases (第三人称单数)", + "increasing (现在分词)", + "increased (过去式/过去分词)" + ], + "plural": "increases (复数)" + }, + "example": { + "en": "How can we increase the contrast?", + "cn": "我们如何增加对比度?" + } + }, + { + "id": 315, + "english": "advice", + "frequency": 85, + "category": "communication", + "chinese": "建议", + "phonetic": "/ədˈvaɪs/", + "forms": {}, + "example": { + "en": "Giving us advice.", + "cn": "给我们建议。" + } + }, + { + "id": 316, + "english": "raw", + "frequency": 60, + "category": "technical_core", + "chinese": "原始的", + "phonetic": "/rɔː/", + "forms": {}, + "example": { + "en": "We need the raw images.", + "cn": "我们需要原始图像。" + } + }, + { + "id": 317, + "english": "stages", + "frequency": 75, + "category": "time_planning", + "chinese": "阶段", + "phonetic": "/steɪdʒɪz/", + "forms": { + "singular": "stage (单数)", + "verb": [ + "stags (第三人称单数)", + "staging (现在分词)", + "staged (过去式/过去分词)" + ] + }, + "example": { + "en": "Collect raw images for the different process stages.", + "cn": "为不同的工艺阶段收集原始图像。" + } + }, + { + "id": 318, + "english": "wafer", + "frequency": 50, + "category": "technical_core", + "chinese": "晶圆", + "phonetic": "/ˈweɪfər/", + "forms": { + "plural": "wafers (复数)" + }, + "example": { + "en": "The image on wafer.", + "cn": "晶圆上的图像。" + } + }, + { + "id": 319, + "english": "lead frame", + "frequency": 45, + "category": "technical_core", + "chinese": "引线框架", + "phonetic": "/liːd freɪm/", + "forms": { + "plural": "lead frames (复数)" + }, + "example": { + "en": "The image on lead frame after die place.", + "cn": "芯片放置后在引线框架上的图像。" + } + }, + { + "id": 320, + "english": "collect", + "frequency": 80, + "category": "action_verbs", + "chinese": "收集", + "phonetic": "/kəˈlekt/", + "forms": { + "verb": [ + "collects (第三人称单数)", + "collecting (现在分词)", + "collected (过去式/过去分词)" + ] + }, + "example": { + "en": "Please collect a few images for each process station.", + "cn": "请为每个处理站收集几张图片。" + } + }, + { + "id": 321, + "english": "separate", + "frequency": 75, + "category": "action_verbs", + "chinese": "分开的", + "phonetic": "/ˈsepərət/", + "forms": {}, + "example": { + "en": "Put the images in separate folders.", + "cn": "将图像放在不同的文件夹中。" + } + }, + { + "id": 322, + "english": "provide", + "frequency": 90, + "category": "action_verbs", + "chinese": "提供", + "phonetic": "/prəˈvaɪd/", + "forms": { + "verb": [ + "provides (第三人称单数)", + "providing (现在分词)", + "provided (过去式/过去分词)" + ] + }, + "example": { + "en": "Please provide the image data.", + "cn": "请提供图像数据。" + } + }, + { + "id": 323, + "english": "collaborate", + "frequency": 75, + "category": "communication", + "chinese": "合作", + "phonetic": "/kəˈlæbəreɪt/", + "forms": { + "verb": [ + "collaborates (第三人称单数)", + "collaborating (现在分词)", + "collaborated (过去式/过去分词)" + ] + }, + "example": { + "en": "Let's use this email trail to collaborate on this problem.", + "cn": "让我们用这个邮件线索来合作解决这个问题。" + } + }, + { + "id": 324, + "english": "formal", + "frequency": 70, + "category": "business_core", + "chinese": "正式的", + "phonetic": "/ˈfɔːrml/", + "forms": { + "adjective": "formal (形容词)" + }, + "example": { + "en": "Die Pre formal Production setup.", + "cn": "芯片预正式生产设置。" + } + }, + { + "id": 325, + "english": "production", + "frequency": 85, + "category": "business_core", + "chinese": "生产", + "phonetic": "/prəˈdʌkʃn/", + "forms": { + "plural": "productions (复数)" + }, + "example": { + "en": "The machine is in production.", + "cn": "这台机器正在生产中。" + } + }, + { + "id": 326, + "english": "setup", + "frequency": 80, + "category": "technical_operations", + "chinese": "设置", + "phonetic": "/ˈsetʌp/", + "forms": { + "plural": "setups (复数)" + }, + "example": { + "en": "This is the production setup.", + "cn": "这是生产设置。" + } + }, + { + "id": 327, + "english": "robustness", + "frequency": 55, + "category": "technical_core", + "chinese": "稳健性", + "phonetic": "/roʊˈbʌstnəs/", + "forms": { + "noun": "不可数名词" + }, + "example": { + "en": "Improve the robustness of the inspection.", + "cn": "提高检查的稳健性。" + } + }, + { + "id": 329, + "english": "understand", + "frequency": 95, + "category": "high_frequency", + "chinese": "理解", + "phonetic": "/ˌʌndərˈstænd/", + "forms": { + "verb": [ + "understands (第三人称单数)", + "understanding (现在分词)", + "understood (过去式/过去分词)" + ] + }, + "example": { + "en": "I don't understand most of your points.", + "cn": "我不太明白你的大部分观点。" + } + }, + { + "id": 330, + "english": "points", + "frequency": 85, + "category": "communication", + "chinese": "观点", + "phonetic": "/pɔɪnts/", + "forms": { + "singular": "point (单数)", + "verb": [ + "points (第三人称单数)", + "pointing (现在分词)", + "pointed (过去式/过去分词)" + ] + }, + "example": { + "en": "He made some interesting points.", + "cn": "他提出了一些有趣的观点。" + } + }, + { + "id": 331, + "english": "specific", + "frequency": 85, + "category": "high_frequency", + "chinese": "具体的", + "phonetic": "/spəˈsɪfɪk/", + "forms": {}, + "example": { + "en": "Please be specific!", + "cn": "请说具体点!" + } + }, + { + "id": 332, + "english": "currently", + "frequency": 90, + "category": "time_planning", + "chinese": "目前", + "phonetic": "/ˈkɜːrəntli/", + "forms": { + "adverb": "currently (副词)", + "adjective": "current (形容词)" + }, + "example": { + "en": "Currently we have red lights on the dispense cameras.", + "cn": "目前我们的点胶相机上装的是红灯。" + } + }, + { + "id": 333, + "english": "different", + "frequency": 95, + "category": "high_frequency", + "chinese": "不同的", + "phonetic": "/ˈdɪfrənt/", + "forms": {}, + "example": { + "en": "What is different in your test?", + "cn": "你的测试有什么不同?" + } + }, + { + "id": 334, + "english": "over-driving", + "frequency": 35, + "category": "technical_operations", + "chinese": "过度驱动", + "phonetic": "/ˌoʊvərˈdraɪvɪŋ/", + "forms": { + "infinitive": "over-drive (原形)", + "verb": [ + "over-drivs (第三人称单数)", + "over-driving (现在分词)", + "over-drived (过去式/过去分词)" + ] + }, + "example": { + "en": "Are you over-driving the LEDs?", + "cn": "你是否过度驱动了LED?" + } + }, + { + "id": 335, + "english": "clarify", + "frequency": 80, + "category": "communication", + "chinese": "澄清", + "phonetic": "/ˈklærəfaɪ/", + "forms": { + "verb": [ + "clarifies (第三人称单数)", + "clarifying (现在分词)", + "clarified (过去式/过去分词)" + ] + }, + "example": { + "en": "Please clarify asap.", + "cn": "请尽快澄清。" + } + }, + { + "id": 336, + "english": "asap", + "frequency": 85, + "category": "time_planning", + "chinese": "尽快", + "phonetic": "/ˌeɪˌesˌeɪˈpiː/", + "forms": {}, + "example": { + "en": "I need the report asap.", + "cn": "我需要尽快拿到报告。" + } + }, + { + "id": 337, + "english": "present", + "frequency": 85, + "category": "time_planning", + "chinese": "目前的", + "phonetic": "/ˈpreznt/", + "forms": {}, + "example": { + "en": "Can you please list the present (default) setting?", + "cn": "你能列出当前(默认)的设置吗?" + } + }, + { + "id": 338, + "english": "default", + "frequency": 70, + "category": "technical_core", + "chinese": "默认", + "phonetic": "/dɪˈfɔːlt/", + "forms": { + "plural": "defaults (复数)" + }, + "example": { + "en": "The default value is 100.", + "cn": "默认值是100。" + } + }, + { + "id": 339, + "english": "apertures", + "frequency": 45, + "category": "technical_core", + "chinese": "光圈", + "phonetic": "/ˈæpərtʃərz/", + "forms": { + "singular": "aperture (单数)" + }, + "example": { + "en": "List the setting of the apertures on the cameras.", + "cn": "列出相机上光圈的设置。" + } + }, + { + "id": 340, + "english": "evaluation", + "frequency": 80, + "category": "business_core", + "chinese": "评估", + "phonetic": "/ɪˌvæljuˈeɪʃn/", + "forms": { + "plural": "evaluations (复数)" + }, + "example": { + "en": "The side light evaluation is ongoing.", + "cn": "侧灯评估正在进行中。" + } + }, + { + "id": 341, + "english": "recommendation", + "frequency": 75, + "category": "communication", + "chinese": "建议", + "phonetic": "/ˌrekəmenˈdeɪʃn/", + "forms": { + "plural": "recommendations (复数)" + }, + "example": { + "en": "You need to provide a recommendation to Eric.", + "cn": "你需要向埃里克提供建议。" + } + }, + { + "id": 342, + "english": "meant", + "frequency": 80, + "category": "high_frequency", + "chinese": "意指", + "phonetic": "/ment/", + "forms": { + "infinitive": "mean (原形)" + }, + "example": { + "en": "I do not understand what you meant with the 'dispenser light'.", + "cn": "我不明白你说的‘点胶灯’是什么意思。" + } + }, + { + "id": 343, + "english": "demonstrate", + "frequency": 75, + "category": "action_verbs", + "chinese": "演示", + "phonetic": "/ˈdemənstreɪt/", + "forms": { + "verb": [ + "demonstrates (第三人称单数)", + "demonstrating (现在分词)", + "demonstrated (过去式/过去分词)" + ] + }, + "example": { + "en": "Why don't you demonstrate the improvement potential?", + "cn": "你为什么不演示一下改进的潜力呢?" + } + }, + { + "id": 344, + "english": "potential", + "frequency": 80, + "category": "business_core", + "chinese": "潜力", + "phonetic": "/pəˈtenʃl/", + "forms": { + "plural": "potentials (复数)" + }, + "example": { + "en": "The project has great potential.", + "cn": "这个项目有很大的潜力。" + } + }, + { + "id": 345, + "english": "optimized", + "frequency": 70, + "category": "technical_operations", + "chinese": "优化的", + "phonetic": "/ˈɑːptɪmaɪzd/", + "forms": { + "infinitive": "optimize (原形)", + "verb": [ + "optimizes (第三人称单数)", + "optimizing (现在分词)", + "optimized (过去式/过去分词)" + ] + }, + "example": { + "en": "Document the results together with the optimized settings.", + "cn": "将结果与优化后的设置一起记录下来。" + } + }, + { + "id": 346, + "english": "variables", + "frequency": 70, + "category": "technical_core", + "chinese": "变量", + "phonetic": "/ˈveriəblz/", + "forms": { + "singular": "variable (单数)" + }, + "example": { + "en": "The settings for the variables which you refer to.", + "cn": "你提到的那些变量的设置。" + } + }, + { + "id": 347, + "english": "deploy", + "frequency": 75, + "category": "technical_operations", + "chinese": "部署", + "phonetic": "/dɪˈplɔɪ/", + "forms": { + "verb": [ + "deploys (第三人称单数)", + "deploying (现在分词)", + "deployed (过去式/过去分词)" + ] + }, + "example": { + "en": "We could deploy it quickly.", + "cn": "我们可以快速部署它。" + } + }, + { + "id": 348, + "english": "statement", + "frequency": 75, + "category": "communication", + "chinese": "陈述", + "phonetic": "/ˈsteɪtmənt/", + "forms": { + "plural": "statements (复数)" + }, + "example": { + "en": "How does that fit to your statement?", + "cn": "那如何与你的陈述相符?" + } + }, + { + "id": 349, + "english": "powerpoint", + "frequency": 60, + "category": "technical_operations", + "chinese": "幻灯片", + "phonetic": "/ˈpaʊərpɔɪnt/", + "forms": { + "plural": "powerpoints (复数)" + }, + "example": { + "en": "I just took a quick look at your powerpoint files.", + "cn": "我刚快速看了一下你的幻灯片文件。" + } + }, + { + "id": 350, + "english": "explain", + "frequency": 90, + "category": "communication", + "chinese": "解释", + "phonetic": "/ɪkˈspleɪn/", + "forms": { + "verb": [ + "explains (第三人称单数)", + "explaining (现在分词)", + "explained (过去式/过去分词)" + ] + }, + "example": { + "en": "Please explain in detail.", + "cn": "请详细解释。" + } + }, + { + "id": 355, + "english": "call", + "frequency": 180, + "category": "communication", + "chinese": "电话;呼叫", + "phonetic": "/kɔːl/", + "forms": { + "noun": "calls (复数)", + "verb": [ + "calls (第三人称单数)", + "calling (现在分词)", + "called (过去式/过去分词)" + ], + "plural": "calls (复数)" + }, + "example": { + "en": "I have to make an important call.", + "cn": "我得打一个重要的电话。" + } + }, + { + "id": 357, + "english": "bond", + "frequency": 70, + "category": "technical_core", + "chinese": "结合;纽带", + "phonetic": "/bɒnd/", + "forms": { + "noun": "bonds (复数)", + "verb": [ + "bonds (第三人称单数)", + "bonding (现在分词)", + "bonded (过去式/过去分词)" + ], + "plural": "bonds (复数)" + }, + "example": { + "en": "The two atoms bond together.", + "cn": "这两个原子结合在一起。" + } + }, + { + "id": 358, + "english": "camera", + "frequency": 110, + "category": "technical_core", + "chinese": "相机", + "phonetic": "/ˈkæmərə/", + "forms": { + "noun": "cameras (复数)", + "plural": "cameras (复数)" + }, + "example": { + "en": "This is a high-resolution camera.", + "cn": "这是一个高分辨率相机。" + } + }, + { + "id": 359, + "english": "lighting", + "frequency": 55, + "category": "technical_core", + "chinese": "照明", + "phonetic": "/ˈlaɪtɪŋ/", + "forms": { + "noun": "lighting (不可数名词)", + "base_verb": "light (动词原形)", + "verb": [ + "lights (第三人称单数)", + "lighting (现在分词)", + "lighted (过去式/过去分词)" + ] + }, + "example": { + "en": "The lighting in this room is too dim.", + "cn": "这个房间的照明太暗了。" + } + }, + { + "id": 360, + "english": "modify", + "frequency": 80, + "category": "action_verbs", + "chinese": "修改", + "phonetic": "/ˈmɒdɪfaɪ/", + "forms": { + "verb": [ + "modifies (第三人称单数)", + "modifying (现在分词)", + "modified (过去式/过去分词)" + ], + "noun": "modification (名词形式)" + }, + "example": { + "en": "We need to modify the design.", + "cn": "我们需要修改设计。" + } + }, + { + "id": 361, + "english": "model", + "frequency": 130, + "category": "business_core", + "chinese": "模型", + "phonetic": "/ˈmɒdl/", + "forms": { + "noun": "models (复数)", + "verb": [ + "models (第三人称单数)", + "modeling (现在分词)", + "modeled (过去式/过去分词)" + ], + "plural": "models (复数)" + }, + "example": { + "en": "He created a 3D model of the building.", + "cn": "他创建了这座建筑的3D模型。" + } + }, + { + "id": 363, + "english": "interference", + "frequency": 40, + "category": "technical_core", + "chinese": "干涉;干扰", + "phonetic": "/ˌɪntəˈfɪərəns/", + "forms": { + "noun": "interference (不可数名词)", + "base_verb": "interfere (动词原形)", + "plural": "interferences (复数)" + }, + "example": { + "en": "There is too much interference on this radio channel.", + "cn": "这个无线电频道干扰太多。" + } + }, + { + "id": 364, + "english": "replace", + "frequency": 100, + "category": "action_verbs", + "chinese": "替换", + "phonetic": "/rɪˈpleɪs/", + "forms": { + "verb": [ + "replaces (第三人称单数)", + "replacing (现在分词)", + "replaced (过去式/过去分词)" + ], + "noun": "replacement (名词形式)" + }, + "example": { + "en": "You should replace the old battery.", + "cn": "你应该更换旧电池。" + } + }, + { + "id": 365, + "english": "constraint", + "frequency": 50, + "category": "business_core", + "chinese": "约束;限制", + "phonetic": "/kənˈstreɪnt/", + "forms": { + "noun": "constraints (复数)", + "base_verb": "constrain (动词原形)", + "plural": "constraints (复数)" + }, + "example": { + "en": "We have to work within the given constraints.", + "cn": "我们必须在给定的限制内工作。" + } + }, + { + "id": 366, + "english": "design", + "frequency": 140, + "category": "technical_core", + "chinese": "设计", + "phonetic": "/dɪˈzaɪn/", + "forms": { + "noun": "designs (复数)", + "verb": [ + "designs (第三人称单数)", + "designing (现在分词)", + "designed (过去式/过去分词)" + ], + "plural": "designs (复数)" + }, + "example": { + "en": "She has a talent for fashion design.", + "cn": "她有服装设计的天赋。" + } + }, + { + "id": 367, + "english": "issues", + "frequency": 150, + "category": "business_core", + "chinese": "问题", + "phonetic": "/ˈɪʃuːz/", + "forms": { + "singular": "issue (单数)", + "verb": [ + "issus (第三人称单数)", + "issuing (现在分词)", + "issued (过去式/过去分词)" + ] + }, + "example": { + "en": "We need to discuss the current issues.", + "cn": "我们需要讨论当前的问题。" + } + }, + { + "id": 369, + "english": "expedited", + "frequency": 30, + "category": "business_core", + "chinese": "加快的;迅速的", + "phonetic": "/ˈekspədaɪtɪd/", + "forms": { + "adjective": "expedited (形容词)", + "base_verb": "expedite (动词原形)", + "verb": [ + "expedits (第三人称单数)", + "expediting (现在分词)", + "expedited (过去式/过去分词)" + ] + }, + "example": { + "en": "Please use expedited shipping for this order.", + "cn": "此订单请使用加急运送。" + } + }, + { + "id": 370, + "english": "delivery", + "frequency": 105, + "category": "business_core", + "chinese": "交付;递送", + "phonetic": "/dɪˈlɪvəri/", + "forms": { + "noun": "deliveries (复数)", + "base_verb": "deliver (动词原形)", + "plural": "deliveries (复数)" + }, + "example": { + "en": "The delivery is scheduled for tomorrow.", + "cn": "交货定于明天。" + } + }, + { + "id": 371, + "english": "impact", + "frequency": 160, + "category": "business_core", + "chinese": "影响;冲击", + "phonetic": "/ˈɪmpækt/", + "forms": { + "noun": "impacts (复数)", + "verb": [ + "impacts (第三人称单数)", + "impacting (现在分词)", + "impacted (过去式/过去分词)" + ], + "plural": "impacts (复数)" + }, + "example": { + "en": "The new law will have a significant impact on our business.", + "cn": "新法律将对我们的业务产生重大影响。" + } + }, + { + "id": 372, + "english": "massive", + "frequency": 75, + "category": "business_core", + "chinese": "巨大的;大量的", + "phonetic": "/ˈmæsɪv/", + "forms": { + "adjective": "massive (形容词)", + "adverb": "massively (副词)" + }, + "example": { + "en": "The project requires a massive investment.", + "cn": "该项目需要巨额投资。" + } + }, + { + "id": 373, + "english": "doubt", + "frequency": 110, + "category": "descriptive_words", + "chinese": "怀疑", + "phonetic": "/daʊt/", + "forms": { + "noun": "doubts (复数)", + "verb": [ + "doubts (第三人称单数)", + "doubting (现在分词)", + "doubted (过去式/过去分词)" + ], + "plural": "doubts (复数)" + }, + "example": { + "en": "I have no doubt that you will succeed.", + "cn": "我毫不怀疑你会成功。" + } + }, + { + "id": 374, + "english": "addressed", + "frequency": 85, + "category": "communication", + "chinese": "处理;解决", + "phonetic": "/əˈdrest/", + "forms": { + "past_participle": "addressed (过去分词)", + "base_verb": "address (动词原形)", + "verb": [ + "addresses (第三人称单数)", + "addressing (现在分词)", + "addressed (过去式/过去分词)" + ] + }, + "example": { + "en": "The issue has been addressed by the manager.", + "cn": "这个问题已经由经理处理了。" + } + }, + { + "id": 375, + "english": "sensor", + "frequency": 65, + "category": "technical_core", + "chinese": "传感器", + "phonetic": "/ˈsensə(r)/", + "forms": { + "noun": "sensors (复数)", + "plural": "sensors (复数)" + }, + "example": { + "en": "The device is equipped with multiple sensors.", + "cn": "该设备配备了多个传感器。" + } + }, + { + "id": 376, + "english": "tremendously", + "frequency": 45, + "category": "business_core", + "chinese": "极大地;非常", + "phonetic": "/trəˈmendəsli/", + "forms": { + "adverb": "tremendously (副词)", + "base_adjective": "tremendous (形容词原形)", + "adjective": "tremendous (形容词)" + }, + "example": { + "en": "The team has worked tremendously hard.", + "cn": "团队工作非常努力。" + } + }, + { + "id": 377, + "english": "tracker", + "frequency": 55, + "category": "technical_core", + "chinese": "追踪器", + "phonetic": "/ˈtrækə(r)/", + "forms": { + "noun": "trackers (复数)", + "base_verb": "track (动词原形)", + "plural": "trackers (复数)" + }, + "example": { + "en": "We use a GPS tracker to monitor the location of our vehicles.", + "cn": "我们使用GPS追踪器来监控车辆的位置。" + } + }, + { + "id": 379, + "english": "improvements", + "frequency": 120, + "category": "business_core", + "chinese": "改进;改善", + "phonetic": "/ɪmˈpruːvmənts/", + "forms": { + "singular": "improvement (单数)", + "base_verb": "improve (动词原形)" + }, + "example": { + "en": "We have made several improvements to the system.", + "cn": "我们对系统进行了多项改进。" + } + }, + { + "id": 380, + "english": "attend", + "frequency": 125, + "category": "business_core", + "chinese": "出席;参加", + "phonetic": "/əˈtend/", + "forms": { + "verb": [ + "attends (第三人称单数)", + "attending (现在分词)", + "attended (过去式/过去分词)" + ], + "noun": "attendance (名词形式)" + }, + "example": { + "en": "Are you going to attend the meeting?", + "cn": "你会参加会议吗?" + } + }, + { + "id": 381, + "english": "meeting", + "frequency": 170, + "category": "communication", + "chinese": "会议", + "phonetic": "/ˈmiːtɪŋ/", + "forms": { + "noun": "meetings (复数)", + "base_verb": "meet (动词原形)", + "verb": [ + "meets (第三人称单数)", + "meeting (现在分词)", + "meeted (过去式/过去分词)" + ], + "plural": "meetings (复数)" + }, + "example": { + "en": "The meeting will be held tomorrow.", + "cn": "会议将于明天举行。" + } + }, + { + "id": 382, + "english": "analyze", + "frequency": 47, + "category": "action_verbs", + "chinese": "分析", + "phonetic": "/ˈænəlaɪz/", + "forms": { + "verb": [ + "analyzes (第三人称单数)", + "analyzing (现在分词)", + "analyzed (过去式/过去分词)" + ] + }, + "example": { + "en": "We need to analyze the data carefully.", + "cn": "我们需要仔细分析数据。" + } + }, + { + "id": 384, + "english": "equipment", + "frequency": 95, + "category": "technical_core", + "chinese": "设备", + "phonetic": "/ɪˈkwɪpmənt/", + "forms": {}, + "example": { + "en": "The laboratory has all the necessary equipment.", + "cn": "实验室拥有所有必要的设备。" + } + }, + { + "id": 385, + "english": "consuming", + "frequency": 32, + "category": "business_core", + "chinese": "消耗的", + "phonetic": "/kənˈsjuːmɪŋ/", + "forms": { + "present_participle": "consuming (现在分词)", + "base_verb": "consum (动词原形)", + "verb": [ + "consums (第三人称单数)", + "consuming (现在分词)", + "consumed (过去式/过去分词)" + ] + }, + "example": { + "en": "This is a time-consuming task.", + "cn": "这是一项耗时的任务。" + } + }, + { + "id": 386, + "english": "require", + "frequency": 22, + "category": "action_verbs", + "chinese": "需要", + "phonetic": "/rɪˈkwaɪə(r)/", + "forms": { + "verb": [ + "requires (第三人称单数)", + "requiring (现在分词)", + "required (过去式/过去分词)" + ] + }, + "example": { + "en": "The project requires a lot of effort.", + "cn": "这个项目需要付出很多努力。" + } + }, + { + "id": 388, + "english": "void", + "frequency": 37, + "category": "business_core", + "chinese": "空的;无效的", + "phonetic": "/vɔɪd/", + "forms": {}, + "example": { + "en": "The contract was declared void.", + "cn": "合同被宣布无效。" + } + }, + { + "id": 389, + "english": "area", + "frequency": 49, + "category": "business_core", + "chinese": "区域", + "phonetic": "/ˈeəriə/", + "forms": { + "noun": "areas (复数)", + "plural": "areas (复数)" + }, + "example": { + "en": "This is a residential area.", + "cn": "这是一个住宅区。" + } + }, + { + "id": 390, + "english": "access", + "frequency": 34, + "category": "action_verbs", + "chinese": "进入;使用权", + "phonetic": "/ˈækses/", + "forms": { + "verb": [ + "accesses (第三人称单数)", + "accessing (现在分词)", + "accessed (过去式/过去分词)" + ] + }, + "example": { + "en": "You need a password to access the system.", + "cn": "你需要密码才能进入系统。" + } + }, + { + "id": 392, + "english": "import", + "frequency": 45, + "category": "business_core", + "chinese": "导入", + "phonetic": "/ɪmˈpɔːt/", + "forms": { + "verb": [ + "imports (第三人称单数)", + "importing (现在分词)", + "imported (过去式/过去分词)" + ] + }, + "example": { + "en": "You can import data from a CSV file.", + "cn": "您可以从CSV文件导入数据。" + } + }, + { + "id": 393, + "english": "threshold", + "frequency": 44, + "category": "business_core", + "chinese": "阈值", + "phonetic": "/ˈθreʃhəʊld/", + "forms": { + "noun": "thresholds (复数)", + "plural": "thresholds (复数)" + }, + "example": { + "en": "He has a high pain threshold.", + "cn": "他的痛阈很高。" + } + }, + { + "id": 395, + "english": "feasible", + "frequency": 40, + "category": "business_core", + "chinese": "可行的", + "phonetic": "/ˈfiːzəbl/", + "forms": {}, + "example": { + "en": "Is it feasible to finish the project by Friday?", + "cn": "周五前完成这个项目可行吗?" + } + }, + { + "id": 396, + "english": "enhance", + "frequency": 36, + "category": "action_verbs", + "chinese": "提高;增强", + "phonetic": "/ɪnˈhɑːns/", + "forms": { + "verb": [ + "enhances (第三人称单数)", + "enhancing (现在分词)", + "enhanced (过去式/过去分词)" + ] + }, + "example": { + "en": "Good lighting will enhance the image.", + "cn": "良好的照明会增强图像效果。" + } + }, + { + "id": 403, + "english": "inspect", + "frequency": 36, + "category": "business_core", + "chinese": "检查", + "phonetic": "/ɪnˈspekt/", + "forms": { + "verb": [ + "inspects (第三人称单数)", + "inspecting (现在分词)", + "inspected (过去式/过去分词)" + ] + }, + "example": { + "en": "You should inspect the equipment regularly.", + "cn": "你应该定期检查设备。" + } + }, + { + "id": 404, + "english": "flexibility", + "frequency": 43, + "category": "business_core", + "chinese": "灵活性", + "phonetic": "/ˌfleksəˈbɪləti/", + "forms": { + "noun": "flexibilities (复数)", + "plural": "flexibilities (复数)" + }, + "example": { + "en": "The new system offers greater flexibility.", + "cn": "新系统提供了更大的灵活性。" + } + }, + { + "id": 405, + "english": "prepare", + "frequency": 41, + "category": "action_verbs", + "chinese": "准备", + "phonetic": "/prɪˈpeə(r)/", + "forms": { + "verb": [ + "prepares (第三人称单数)", + "preparing (现在分词)", + "prepared (过去式/过去分词)" + ] + }, + "example": { + "en": "We need to prepare the machine for production.", + "cn": "我们需要为生产准备好机器。" + } + }, + { + "id": 407, + "english": "additional", + "frequency": 35, + "category": "business_core", + "chinese": "额外的", + "phonetic": "/əˈdɪʃənl/", + "forms": {}, + "example": { + "en": "We need additional resources for this project.", + "cn": "这个项目我们需要额外的资源。" + } + }, + { + "id": 410, + "english": "vacuum", + "frequency": 24, + "category": "business_core", + "chinese": "真空", + "phonetic": "/ˈvækjuəm/", + "forms": { + "noun": "vacuums (复数)", + "plural": "vacuums (复数)" + }, + "example": { + "en": "The process requires a high vacuum environment.", + "cn": "该过程需要高真空环境。" + } + }, + { + "id": 411, + "english": "clamping", + "frequency": 30, + "category": "business_core", + "chinese": "夹紧", + "phonetic": "/ˈklæmpɪŋ/", + "forms": { + "present_participle": "clamping (现在分词)", + "base_verb": "clamp (动词原形)", + "verb": [ + "clamps (第三人称单数)", + "clamping (现在分词)", + "clamped (过去式/过去分词)" + ] + }, + "example": { + "en": "The clamping force must be sufficient.", + "cn": "夹紧力必须足够。" + } + }, + { + "id": 412, + "english": "affect", + "frequency": 41, + "category": "business_core", + "chinese": "影响", + "phonetic": "/əˈfekt/", + "forms": { + "verb": [ + "affects (第三人称单数)", + "affecting (现在分词)", + "affected (过去式/过去分词)" + ] + }, + "example": { + "en": "This change will affect the final result.", + "cn": "这个改变会影响最终结果。" + } + }, + { + "id": 413, + "english": "competitor", + "frequency": 22, + "category": "business_core", + "chinese": "竞争者", + "phonetic": "/kəmˈpetɪtə(r)/", + "forms": { + "noun": "competitors (复数)", + "plural": "competitors (复数)" + }, + "example": { + "en": "Our main competitor launched a new product.", + "cn": "我们的主要竞争对手推出了一款新产品。" + } + }, + { + "id": 414, + "english": "applied", + "frequency": 25, + "category": "business_core", + "chinese": "应用的", + "phonetic": "/əˈplaɪd/", + "forms": { + "past_participle": "applied (过去分词)", + "base_verb": "appli (动词原形)", + "verb": [ + "applies (第三人称单数)", + "applying (现在分词)", + "applied (过去式/过去分词)" + ] + }, + "example": { + "en": "This method can be applied to other situations.", + "cn": "这种方法可以应用于其他情况。" + } + }, + { + "id": 415, + "english": "difficulty", + "frequency": 49, + "category": "business_core", + "chinese": "困难", + "phonetic": "/ˈdɪfɪkəlti/", + "forms": { + "noun": "difficulties (复数)", + "plural": "difficulties (复数)" + }, + "example": { + "en": "We are facing some technical difficulties.", + "cn": "我们正面临一些技术困难。" + } + }, + { + "id": 416, + "english": "responsible", + "frequency": 30, + "category": "business_core", + "chinese": "负责的", + "phonetic": "/rɪˈspɒnsəbl/", + "forms": {}, + "example": { + "en": "He is responsible for the software development.", + "cn": "他负责软件开发。" + } + }, + { + "id": 417, + "english": "software", + "frequency": 29, + "category": "business_core", + "chinese": "软件", + "phonetic": "/ˈsɒftweə(r)/", + "forms": {}, + "example": { + "en": "We need to install the new software.", + "cn": "我们需要安装新软件。" + } + }, + { + "id": 418, + "english": "optics", + "frequency": 28, + "category": "business_core", + "chinese": "光学", + "phonetic": "/ˈɒptɪks/", + "forms": {}, + "example": { + "en": "He is an expert in optics.", + "cn": "他是光学专家。" + } + }, + { + "id": 419, + "english": "hardware", + "frequency": 34, + "category": "business_core", + "chinese": "硬件", + "phonetic": "/ˈhɑːdweə(r)/", + "forms": {}, + "example": { + "en": "The problem is with the hardware, not the software.", + "cn": "问题出在硬件上,而不是软件。" + } + }, + { + "id": 420, + "english": "configuration", + "frequency": 36, + "category": "business_core", + "chinese": "配置", + "phonetic": "/kənˌfɪɡəˈreɪʃn/", + "forms": { + "noun": "configurations (复数)", + "plural": "configurations (复数)" + }, + "example": { + "en": "Please check the system configuration.", + "cn": "请检查系统配置。" + } + }, + { + "id": 422, + "english": "workload", + "frequency": 47, + "category": "business_core", + "chinese": "工作量", + "phonetic": "/ˈwɜːkləʊd/", + "forms": { + "noun": "workloads (复数)", + "plural": "workloads (复数)" + }, + "example": { + "en": "His workload is very heavy.", + "cn": "他的工作量很重。" + } + }, + { + "id": 423, + "english": "voluntarily", + "frequency": 31, + "category": "business_core", + "chinese": "自愿地", + "phonetic": "/ˈvɒləntrəli/", + "forms": { + "adverb": "voluntarily (副词)", + "base_adjective": "voluntary (形容词原形)", + "adjective": "voluntary (形容词)" + }, + "example": { + "en": "He voluntarily offered to help.", + "cn": "他自愿提出帮助。" + } + }, + { + "id": 425, + "english": "documented", + "frequency": 33, + "category": "business_core", + "chinese": "记录的", + "phonetic": "/ˈdɒkjumentɪd/", + "forms": { + "past_participle": "documented (过去分词)", + "base_verb": "document (动词原形)", + "verb": [ + "documents (第三人称单数)", + "documenting (现在分词)", + "documented (过去式/过去分词)" + ] + }, + "example": { + "en": "The process is well documented.", + "cn": "这个过程有详细的记录。" + } + }, + { + "id": 426, + "english": "slide", + "frequency": 32, + "category": "business_core", + "chinese": "幻灯片", + "phonetic": "/slaɪd/", + "forms": { + "noun": "slides (复数)", + "plural": "slides (复数)" + }, + "example": { + "en": "Please move to the next slide.", + "cn": "请翻到下一张幻灯片。" + } + }, + { + "id": 428, + "english": "lead", + "frequency": 35, + "category": "business_core", + "chinese": "引脚", + "phonetic": "/liːd/", + "forms": { + "noun": "leads (复数)", + "plural": "leads (复数)" + }, + "example": { + "en": "Check the solder on the lead frame.", + "cn": "检查引线框架上的焊料。" + } + }, + { + "id": 429, + "english": "frame", + "frequency": 35, + "category": "business_core", + "chinese": "框架", + "phonetic": "/freɪm/", + "forms": { + "noun": "frames (复数)", + "plural": "frames (复数)" + }, + "example": { + "en": "The lead frame holds the die.", + "cn": "引线框架固定着芯片。" + } + }, + { + "id": 431, + "english": "inner", + "frequency": 47, + "category": "business_core", + "chinese": "内部的", + "phonetic": "/ˈɪnə(r)/", + "forms": {}, + "example": { + "en": "The inner ring of the die is visible.", + "cn": "芯片的内环是可见的。" + } + }, + { + "id": 432, + "english": "outer", + "frequency": 37, + "category": "business_core", + "chinese": "外部的", + "phonetic": "/ˈaʊtə(r)/", + "forms": {}, + "example": { + "en": "The outer ring provides support.", + "cn": "外环提供支撑。" + } + }, + { + "id": 433, + "english": "ring", + "frequency": 31, + "category": "business_core", + "chinese": "环", + "phonetic": "/rɪŋ/", + "forms": { + "noun": "rings (复数)", + "plural": "rings (复数)" + }, + "example": { + "en": "The light source is a ring light.", + "cn": "光源是环形灯。" + } + }, + { + "id": 435, + "english": "applicable", + "frequency": 49, + "category": "business_core", + "chinese": "适用的", + "phonetic": "/əˈplɪkəbl/", + "forms": {}, + "example": { + "en": "This solution is applicable to many cases.", + "cn": "这个解决方案适用于许多情况。" + } + }, + { + "id": 436, + "english": "place", + "frequency": 29, + "category": "business_core", + "chinese": "放置", + "phonetic": "/pleɪs/", + "forms": { + "verb": [ + "places (第三人称单数)", + "placing (现在分词)", + "placed (过去式/过去分词)" + ], + "plural": "places (复数)" + }, + "example": { + "en": "The machine will place the component accurately.", + "cn": "机器将精确地放置组件。" + } + }, + { + "id": 437, + "english": "solder", + "frequency": 43, + "category": "business_core", + "chinese": "焊料", + "phonetic": "/ˈsəʊldə(r)/", + "forms": { + "noun": "solders (复数)", + "plural": "solders (复数)" + }, + "example": { + "en": "Apply solder to the pad.", + "cn": "将焊料涂在焊盘上。" + } + }, + { + "id": 439, + "english": "define", + "frequency": 41, + "category": "business_core", + "chinese": "定义", + "phonetic": "/dɪˈfaɪn/", + "forms": { + "verb": [ + "defines (第三人称单数)", + "defining (现在分词)", + "defined (过去式/过去分词)" + ] + }, + "example": { + "en": "Please define the requirements.", + "cn": "请定义需求。" + } + }, + { + "id": 440, + "english": "upgrade", + "frequency": 45, + "category": "business_core", + "chinese": "升级", + "phonetic": "/ʌpˈɡreɪd/", + "forms": { + "noun": "upgrades (复数)", + "plural": "upgrades (复数)" + }, + "example": { + "en": "We need to order an upgrade kit.", + "cn": "我们需要订购一个升级套件。" + } + }, + { + "id": 441, + "english": "kit", + "frequency": 37, + "category": "business_core", + "chinese": "套件", + "phonetic": "/kɪt/", + "forms": { + "noun": "kits (复数)", + "plural": "kits (复数)" + }, + "example": { + "en": "The kit includes all necessary parts.", + "cn": "该套件包括所有必要的零件。" + } + }, + { + "id": 442, + "english": "significant", + "frequency": 42, + "category": "business_core", + "chinese": "显著的;重要的", + "phonetic": "/sɪɡˈnɪfɪkənt/", + "forms": {}, + "example": { + "en": "This is a significant improvement.", + "cn": "这是一个显著的改进。" + } + }, + { + "id": 443, + "english": "generally", + "frequency": 47, + "category": "business_core", + "chinese": "通常;普遍地", + "phonetic": "/ˈdʒenrəli/", + "forms": { + "adverb": "generally (副词)", + "base_adjective": "general (形容词原形)", + "adjective": "general (形容词)" + }, + "example": { + "en": "We need a generally applicable solution.", + "cn": "我们需要一个普遍适用的解决方案。" + } + }, + { + "id": 444, + "english": "solution", + "frequency": 30, + "category": "business_core", + "chinese": "解决方案", + "phonetic": "/səˈluːʃn/", + "forms": { + "noun": "solutions (复数)", + "plural": "solutions (复数)" + }, + "example": { + "en": "We are looking for a better solution.", + "cn": "我们正在寻找一个更好的解决方案。" + } + }, + { + "id": 445, + "english": "somehow", + "frequency": 48, + "category": "business_core", + "chinese": "不知何故", + "phonetic": "/ˈsʌmhaʊ/", + "forms": {}, + "example": { + "en": "We'll get there somehow.", + "cn": "我们总会有办法到那里的。" + } + }, + { + "id": 446, + "english": "clear", + "frequency": 36, + "category": "business_core", + "chinese": "清楚的", + "phonetic": "/klɪə(r)/", + "forms": {}, + "example": { + "en": "The instructions are clear.", + "cn": "指令很清楚。" + } + }, + { + "id": 448, + "english": "analyzer", + "frequency": 40, + "category": "technical_core", + "chinese": "分析器", + "phonetic": "/ˈænəlaɪzə(r)/", + "forms": { + "noun": "analyzers (复数)", + "plural": "analyzers (复数)" + }, + "example": { + "en": "The spectrum analyzer is a useful tool.", + "cn": "频谱分析仪是一个有用的工具。" + } + }, + { + "id": 449, + "english": "convert", + "frequency": 20, + "category": "technical_operations", + "chinese": "转换", + "phonetic": "/kənˈvɜːt/", + "forms": { + "verb": [ + "converts (第三人称单数)", + "converting (现在分词)", + "converted (过去式/过去分词)" + ] + }, + "example": { + "en": "You need to convert the file to a different format.", + "cn": "你需要将文件转换为不同的格式。" + } + }, + { + "id": 450, + "english": "adjust", + "frequency": 41, + "category": "technical_operations", + "chinese": "调整", + "phonetic": "/əˈdʒʌst/", + "forms": { + "verb": [ + "adjusts (第三人称单数)", + "adjusting (现在分词)", + "adjusted (过去式/过去分词)" + ] + }, + "example": { + "en": "Please adjust the brightness of the screen.", + "cn": "请调整屏幕的亮度。" + } + }, + { + "id": 451, + "english": "rectangle", + "frequency": 45, + "category": "business_core", + "chinese": "矩形", + "phonetic": "/ˈrektæŋɡl/", + "forms": { + "noun": "rectangles (复数)", + "plural": "rectangles (复数)" + }, + "example": { + "en": "Draw a rectangle on the screen.", + "cn": "在屏幕上画一个矩形。" + } + }, + { + "id": 452, + "english": "disappears", + "frequency": 34, + "category": "business_core", + "chinese": "消失", + "phonetic": "/ˌdɪsəˈpɪəz/", + "forms": { + "verb": [ + "disappears (第三人称单数)", + "disappear (原形)", + "disappearing (现在分词)", + "disappeared (过去式/过去分词)" + ] + }, + "example": { + "en": "The image disappears when you click the button.", + "cn": "当你点击按钮时,图像消失了。" + } + }, + { + "id": 453, + "english": "filling", + "frequency": 35, + "category": "business_core", + "chinese": "填充", + "phonetic": "/ˈfɪlɪŋ/", + "forms": { + "present_participle": "filling (现在分词)", + "base_verb": "fill (动词原形)", + "verb": [ + "fills (第三人称单数)", + "filling (现在分词)", + "filled (过去式/过去分词)" + ], + "plural": "fillings (复数)" + }, + "example": { + "en": "The filling of the area is not working.", + "cn": "区域的填充不起作用。" + } + }, + { + "id": 454, + "english": "outlining", + "frequency": 30, + "category": "business_core", + "chinese": "勾勒轮廓", + "phonetic": "/ˈaʊtlaɪnɪŋ/", + "forms": { + "present_participle": "outlining (现在分词)", + "base_verb": "outlin (动词原形)", + "verb": [ + "outlins (第三人称单数)", + "outlining (现在分词)", + "outlined (过去式/过去分词)" + ] + }, + "example": { + "en": "The software is outlining the detected objects.", + "cn": "该软件正在勾勒出检测到的物体的轮廓。" + } + }, + { + "id": 455, + "english": "brighter", + "frequency": 26, + "category": "business_core", + "chinese": "更亮的", + "phonetic": "/ˈbraɪtə(r)/", + "forms": {}, + "example": { + "en": "The brighter areas indicate a defect.", + "cn": "较亮的区域表示有缺陷。" + } + }, + { + "id": 458, + "english": "latest", + "frequency": 20, + "category": "technical_core", + "chinese": "最新的", + "phonetic": "/ˈleɪtɪst/", + "forms": {}, + "example": { + "en": "I will try it tomorrow morning my time at the latest.", + "cn": "我最迟明天早上我的时间会试试。" + } + }, + { + "id": 459, + "english": "regards", + "frequency": 32, + "category": "business_core", + "chinese": "问候", + "phonetic": "/rɪˈɡɑːdz/", + "forms": { + "verb": [ + "regards (第三人称单数)", + "regarding (现在分词)", + "regarded (过去式/过去分词)" + ] + }, + "example": { + "en": "Best regards, Christoph.", + "cn": "顺致问候,克里斯托夫。" + } + }, + { + "id": 460, + "english": "action", + "frequency": 32, + "category": "business_core", + "chinese": "行动", + "phonetic": "/ˈækʃn/", + "forms": { + "noun": "actions (复数)", + "plural": "actions (复数)" + }, + "example": { + "en": "These are the action items for our team.", + "cn": "这些是我们团队的行动项目。" + } + }, + { + "id": 461, + "english": "items", + "frequency": 36, + "category": "business_core", + "chinese": "项目", + "phonetic": "/ˈaɪtəmz/", + "forms": { + "singular": "item (单数)" + }, + "example": { + "en": "We need to discuss all the items on the list.", + "cn": "我们需要讨论清单上的所有项目。" + } + }, + { + "id": 462, + "english": "board", + "frequency": 43, + "category": "business_core", + "chinese": "板", + "phonetic": "/bɔːd/", + "forms": { + "noun": "boards (复数)", + "plural": "boards (复数)" + }, + "example": { + "en": "The solution for the IO board is pending.", + "cn": "IO板的解决方案待定。" + } + }, + { + "id": 463, + "english": "sensors", + "frequency": 73, + "category": "technical_core", + "chinese": "传感器", + "phonetic": "/ˈsensəz/", + "forms": { + "singular": "sensor (单数)" + }, + "example": { + "en": "We will use pressure sensors for the process chucks.", + "cn": "我们将为工艺卡盘使用压力传感器。" + } + }, + { + "id": 464, + "english": "chucks", + "frequency": 45, + "category": "business_core", + "chinese": "卡盘", + "phonetic": "/tʃʌks/", + "forms": { + "singular": "chuck (单数)", + "verb": [ + "chucks (第三人称单数)", + "chucking (现在分词)", + "chucked (过去式/过去分词)" + ] + }, + "example": { + "en": "The process chucks require monitoring.", + "cn": "工艺卡盘需要监控。" + } + }, + { + "id": 465, + "english": "level", + "frequency": 31, + "category": "business_core", + "chinese": "水平;等级", + "phonetic": "/ˈlevl/", + "forms": { + "noun": "levels (复数)", + "plural": "levels (复数)" + }, + "example": { + "en": "Check the status of the 2-level light source.", + "cn": "检查双层光源的状态。" + } + }, + { + "id": 466, + "english": "status", + "frequency": 22, + "category": "business_core", + "chinese": "状态", + "phonetic": "/ˈsteɪtəs/", + "forms": { + "noun": "statuses (复数)" + }, + "example": { + "en": "What is the status of the project?", + "cn": "项目状态如何?" + } + }, + { + "id": 468, + "english": "improved", + "frequency": 38, + "category": "business_core", + "chinese": "改进的", + "phonetic": "/ɪmˈpruːvd/", + "forms": { + "past_participle": "improved (过去分词)", + "base_verb": "improv (动词原形)", + "verb": [ + "improvs (第三人称单数)", + "improving (现在分词)", + "improved (过去式/过去分词)" + ] + }, + "example": { + "en": "The improved version works better.", + "cn": "改进后的版本效果更好。" + } + }, + { + "id": 469, + "english": "invited", + "frequency": 28, + "category": "business_core", + "chinese": "受邀请的", + "phonetic": "/ɪnˈvaɪtɪd/", + "forms": { + "past_participle": "invited (过去分词)", + "base_verb": "invit (动词原形)", + "verb": [ + "invits (第三人称单数)", + "inviting (现在分词)", + "invited (过去式/过去分词)" + ] + }, + "example": { + "en": "Not all who are invited will be involved.", + "cn": "并非所有被邀请的人都会参与。" + } + }, + { + "id": 470, + "english": "involved", + "frequency": 42, + "category": "business_core", + "chinese": "参与的", + "phonetic": "/ɪnˈvɒlvd/", + "forms": { + "past_participle": "involved (过去分词)", + "base_verb": "involv (动词原形)", + "verb": [ + "involvs (第三人称单数)", + "involving (现在分词)", + "involved (过去式/过去分词)" + ] + }, + "example": { + "en": "He is involved in many projects.", + "cn": "他参与了许多项目。" + } + }, + { + "id": 472, + "english": "align", + "frequency": 27, + "category": "business_core", + "chinese": "对齐;使一致", + "phonetic": "/əˈlaɪn/", + "forms": { + "verb": [ + "aligns (第三人称单数)", + "aligning (现在分词)", + "aligned (过去式/过去分词)" + ] + }, + "example": { + "en": "We need to align our strategies.", + "cn": "我们需要统一我们的战略。" + } + }, + { + "id": 473, + "english": "settings", + "frequency": 33, + "category": "technical_core", + "chinese": "设置", + "phonetic": "/ˈsetɪŋz/", + "forms": { + "singular": "setting (单数)" + }, + "example": { + "en": "Please check the camera settings.", + "cn": "请检查相机设置。" + } + }, + { + "id": 474, + "english": "template", + "frequency": 40, + "category": "technical_core", + "chinese": "模板", + "phonetic": "/ˈtempleɪt/", + "forms": { + "noun": "templates (复数)", + "plural": "templates (复数)" + }, + "example": { + "en": "We should create a template for the reports.", + "cn": "我们应该为报告创建一个模板。" + } + }, + { + "id": 475, + "english": "compare", + "frequency": 26, + "category": "action_verbs", + "chinese": "比较", + "phonetic": "/kəmˈpeə(r)/", + "forms": { + "verb": [ + "compares (第三人称单数)", + "comparing (现在分词)", + "compared (过去式/过去分词)" + ] + }, + "example": { + "en": "We need to compare the results.", + "cn": "我们需要比较结果。" + } + }, + { + "id": 476, + "english": "assess", + "frequency": 31, + "category": "technical_operations", + "chinese": "评估", + "phonetic": "/əˈses/", + "forms": { + "verb": [ + "assesses (第三人称单数)", + "assessing (现在分词)", + "assessed (过去式/过去分词)" + ] + }, + "example": { + "en": "We need to assess the opportunities.", + "cn": "我们需要评估这些机会。" + } + }, + { + "id": 477, + "english": "opportunities", + "frequency": 30, + "category": "business_core", + "chinese": "机会", + "phonetic": "/ˌɒpəˈtjuːnətiz/", + "forms": { + "singular": "opportunity (单数)" + }, + "example": { + "en": "There are many opportunities for improvement.", + "cn": "有很多改进的机会。" + } + }, + { + "id": 478, + "english": "processing", + "frequency": 167, + "category": "technical_core", + "chinese": "处理", + "phonetic": "/ˈprəʊsesɪŋ/", + "forms": { + "present_participle": "processing (现在分词)", + "base_verb": "process (动词原形)", + "verb": [ + "processes (第三人称单数)", + "processing (现在分词)", + "processed (过去式/过去分词)" + ] + }, + "example": { + "en": "Image processing can enhance the details.", + "cn": "图像处理可以增强细节。" + } + }, + { + "id": 480, + "english": "efficient", + "frequency": 26, + "category": "business_core", + "chinese": "高效的", + "phonetic": "/ɪˈfɪʃnt/", + "forms": {}, + "example": { + "en": "We need a more efficient process.", + "cn": "我们需要一个更高效的流程。" + } + }, + { + "id": 481, + "english": "downtime", + "frequency": 25, + "category": "business_core", + "chinese": "停机时间", + "phonetic": "/ˈdaʊntaɪm/", + "forms": { + "noun": "downtimes (复数)", + "plural": "downtimes (复数)" + }, + "example": { + "en": "We need to limit the downtime of the line.", + "cn": "我们需要限制生产线的停机时间。" + } + }, + { + "id": 482, + "english": "repair", + "frequency": 28, + "category": "technical_operations", + "chinese": "修理", + "phonetic": "/rɪˈpeə(r)/", + "forms": { + "verb": [ + "repairs (第三人称单数)", + "repairing (现在分词)", + "repaired (过去式/过去分词)" + ], + "plural": "repairs (复数)" + }, + "example": { + "en": "The machine needs repair.", + "cn": "这台机器需要修理。" + } + }, + { + "id": 483, + "english": "measurement", + "frequency": 25, + "category": "technical_core", + "chinese": "测量", + "phonetic": "/ˈmeʒəmənt/", + "forms": { + "noun": "measurements (复数)", + "plural": "measurements (复数)" + }, + "example": { + "en": "The measurement was accurate.", + "cn": "测量是准确的。" + } + }, + { + "id": 484, + "english": "clamp", + "frequency": 33, + "category": "business_core", + "chinese": "夹具", + "phonetic": "/klæmp/", + "forms": { + "noun": "clamps (复数)", + "plural": "clamps (复数)" + }, + "example": { + "en": "The indexer clamp needs an upgrade.", + "cn": "分度器夹具需要升级。" + } + }, + { + "id": 485, + "english": "execute", + "frequency": 28, + "category": "business_core", + "chinese": "执行", + "phonetic": "/ˈeksɪkjuːt/", + "forms": { + "verb": [ + "executes (第三人称单数)", + "executing (现在分词)", + "executed (过去式/过去分词)" + ] + }, + "example": { + "en": "We need to decide when to execute the upgrade.", + "cn": "我们需要决定何时执行升级。" + } + }, + { + "id": 486, + "english": "integrate", + "frequency": 46, + "category": "business_core", + "chinese": "集成", + "phonetic": "/ˈɪntɪɡreɪt/", + "forms": { + "verb": [ + "integrates (第三人称单数)", + "integrating (现在分词)", + "integrated (过去式/过去分词)" + ] + }, + "example": { + "en": "We need to integrate the sensor into the software.", + "cn": "我们需要将传感器集成到软件中。" + } + }, + { + "id": 487, + "english": "confident", + "frequency": 37, + "category": "business_core", + "chinese": "自信的;确信的", + "phonetic": "/ˈkɒnfɪdənt/", + "forms": {}, + "example": { + "en": "We are confident that the sensor works.", + "cn": "我们确信传感器是有效的。" + } + }, + { + "id": 491, + "english": "presentation", + "frequency": 22, + "category": "business_core", + "chinese": "演讲;报告", + "phonetic": "/ˌpreznˈteɪʃn/", + "forms": { + "noun": "presentations (复数)", + "plural": "presentations (复数)" + }, + "example": { + "en": "We need to prepare for the customer presentation.", + "cn": "我们需要为客户报告做准备。" + } + }, + { + "id": 493, + "english": "platform", + "frequency": 27, + "category": "business_core", + "chinese": "平台", + "phonetic": "/ˈplætfɔːm/", + "forms": { + "noun": "platforms (复数)", + "plural": "platforms (复数)" + }, + "example": { + "en": "Do not move the platform in X.", + "cn": "不要在X方向移动平台。" + } + }, + { + "id": 494, + "english": "pneumatic", + "frequency": 22, + "category": "business_core", + "chinese": "气动的", + "phonetic": "/njuːˈmætɪk/", + "forms": {}, + "example": { + "en": "The original concept used a pneumatic move.", + "cn": "最初的概念使用气动移动。" + } + }, + { + "id": 496, + "english": "way", + "frequency": 24, + "category": "business_core", + "chinese": "方式;道路", + "phonetic": "/weɪ/", + "forms": { + "noun": "ways (复数)", + "plural": "ways (复数)" + }, + "example": { + "en": "Is there another way to do this?", + "cn": "还有其他方法可以做到这一点吗?" + } + }, + { + "id": 497, + "english": "files", + "frequency": 21, + "category": "business_core", + "chinese": "文件", + "phonetic": "/faɪlz/", + "forms": { + "singular": "file (单数)", + "verb": [ + "fils (第三人称单数)", + "filing (现在分词)", + "filed (过去式/过去分词)" + ] + }, + "example": { + "en": "I cannot open these files.", + "cn": "我打不开这些文件。" + } + }, + { + "id": 498, + "english": "time", + "frequency": 23, + "category": "business_core", + "chinese": "时间", + "phonetic": "/taɪm/", + "forms": { + "noun": "times (复数)", + "plural": "times (复数)" + }, + "example": { + "en": "I don't have enough time for this.", + "cn": "我没有足够的时间来做这个。" + } + }, + { + "id": 500, + "english": "week", + "frequency": 30, + "category": "business_core", + "chinese": "星期", + "phonetic": "/wiːk/", + "forms": { + "noun": "weeks (复数)", + "plural": "weeks (复数)" + }, + "example": { + "en": "The deadline is the end of the week.", + "cn": "截止日期是本周末。" + } + }, + { + "id": 503, + "english": "open", + "frequency": 26, + "category": "business_core", + "chinese": "打开", + "phonetic": "/ˈəʊpən/", + "forms": { + "verb": [ + "opens (第三人称单数)", + "opening (现在分词)", + "opened (过去式/过去分词)" + ] + }, + "example": { + "en": "The program cannot open the file.", + "cn": "程序无法打开该文件。" + } + }, + { + "id": 504, + "english": "around", + "frequency": 31, + "category": "business_core", + "chinese": "周围;大约(get around:绕过,解决)", + "phonetic": "/əˈraʊnd/", + "forms": {}, + "example": { + "en": "Is there a way to get around this problem?", + "cn": "有什么办法可以解决这个问题吗?" + } + }, + { + "id": 505, + "english": "challenging", + "frequency": 25, + "category": "business_core", + "chinese": "有挑战性的", + "phonetic": "/ˈtʃælɪndʒɪŋ/", + "forms": { + "present_participle": "challenging (现在分词)", + "base_verb": "challeng (动词原形)", + "verb": [ + "challengs (第三人称单数)", + "challenging (现在分词)", + "challenged (过去式/过去分词)" + ] + }, + "example": { + "en": "It is still challenging to detect the voids.", + "cn": "检测这些空洞仍然具有挑战性。" + } + }, + { + "id": 506, + "english": "detect", + "frequency": 40, + "category": "technical_operations", + "chinese": "检测", + "phonetic": "/dɪˈtekt/", + "forms": { + "verb": [ + "detects (第三人称单数)", + "detecting (现在分词)", + "detected (过去式/过去分词)" + ] + }, + "example": { + "en": "The sensor can detect small changes in temperature.", + "cn": "传感器可以检测到微小的温度变化。" + } + }, + { + "id": 507, + "english": "majority", + "frequency": 37, + "category": "business_core", + "chinese": "大多数", + "phonetic": "/məˈdʒɒrəti/", + "forms": { + "noun": "majorities (复数)", + "plural": "majorities (复数)" + }, + "example": { + "en": "The majority of the voids are small.", + "cn": "大多数空洞都很小。" + } + }, + { + "id": 508, + "english": "voids", + "frequency": 49, + "category": "business_core", + "chinese": "空洞", + "phonetic": "/vɔɪdz/", + "forms": { + "singular": "void (单数)", + "verb": [ + "voids (第三人称单数)", + "voiding (现在分词)", + "voided (过去式/过去分词)" + ] + }, + "example": { + "en": "The X-ray image shows several voids.", + "cn": "X射线图像显示了几个空洞。" + } + }, + { + "id": 509, + "english": "offering", + "frequency": 22, + "category": "business_core", + "chinese": "提供", + "phonetic": "/ˈɒfərɪŋ/", + "forms": { + "verb": [ + "offers (第三人称单数)", + "offering (现在分词)", + "offered (过去式/过去分词)" + ], + "plural": "offerings (复数)" + }, + "example": { + "en": "Thank you for offering your help.", + "cn": "谢谢你提供帮助。" + } + }, + { + "id": 513, + "english": "connect", + "frequency": 27, + "category": "business_core", + "chinese": "连接", + "phonetic": "/kəˈnekt/", + "forms": { + "verb": [ + "connects (第三人称单数)", + "connecting (现在分词)", + "connected (过去式/过去分词)" + ] + }, + "example": { + "en": "Connect the sensor to the board.", + "cn": "将传感器连接到电路板上。" + } + }, + { + "id": 514, + "english": "assembled", + "frequency": 26, + "category": "business_core", + "chinese": "组装好的", + "phonetic": "/əˈsembld/", + "forms": { + "past_participle": "assembled (过去分词)", + "base_verb": "assembl (动词原形)", + "verb": [ + "assembls (第三人称单数)", + "assembling (现在分词)", + "assembled (过去式/过去分词)" + ] + }, + "example": { + "en": "The PCBA will be assembled today.", + "cn": "印刷电路板将于今天组装。" + } + }, + { + "id": 516, + "english": "achieve", + "frequency": 34, + "category": "business_core", + "chinese": "实现;达到", + "phonetic": "/əˈtʃiːv/", + "forms": { + "verb": [ + "achieves (第三人称单数)", + "achieving (现在分词)", + "achieved (过去式/过去分词)" + ] + }, + "example": { + "en": "We used these settings to achieve good contrast.", + "cn": "我们使用这些设置来获得良好的对比度。" + } + }, + { + "id": 519, + "english": "topics", + "frequency": 47, + "category": "business_core", + "chinese": "主题;议题", + "phonetic": "/ˈtɒpɪks/", + "forms": { + "singular": "topic (单数)" + }, + "example": { + "en": "Please update on the lighting topics.", + "cn": "请更新有关照明议题的进展。" + } + }, + { + "id": 521, + "english": "exactly", + "frequency": 32, + "category": "business_core", + "chinese": "确切地;完全地", + "phonetic": "/ɪɡˈzæktli/", + "forms": { + "adverb": "exactly (副词)", + "base_adjective": "exact (形容词原形)", + "adjective": "exact (形容词)" + }, + "example": { + "en": "Use exactly the same settings.", + "cn": "使用完全相同的设置。" + } + }, + { + "id": 524, + "english": "proposals", + "frequency": 25, + "category": "communication", + "chinese": "提议", + "phonetic": "/prəˈpəʊzəlz/", + "forms": { + "singular": "proposal (单数)" + }, + "example": { + "en": "We need to review the design change proposals.", + "cn": "我们需要审查设计变更提议。" + } + }, + { + "id": 525, + "english": "telecentric", + "frequency": 40, + "category": "technical_core", + "chinese": "远心", + "phonetic": "/ˌtelɪˈsentrɪk/", + "forms": { + "noun": "telecentrics (复数)", + "plural": "telecentrics (复数)" + }, + "example": { + "en": "A telecentric lens can reduce perspective errors.", + "cn": "远心镜头可以减少透视误差。" + } + }, + { + "id": 526, + "english": "lens", + "frequency": 22, + "category": "technical_core", + "chinese": "镜头", + "phonetic": "/lenz/", + "forms": { + "noun": "lenses (复数)" + }, + "example": { + "en": "We need to change to a telecentric lens.", + "cn": "我们需要更换为远心镜头。" + } + }, + { + "id": 529, + "english": "concepts", + "frequency": 28, + "category": "business_core", + "chinese": "概念", + "phonetic": "/ˈkɒnsepts/", + "forms": { + "singular": "concept (单数)" + }, + "example": { + "en": "Please put your concepts together.", + "cn": "请把你的概念整合起来。" + } + }, + { + "id": 530, + "english": "supported", + "frequency": 30, + "category": "action_verbs", + "chinese": "支持的", + "phonetic": "/səˈpɔːtɪd/", + "forms": { + "past_participle": "supported (过去分词)", + "base_verb": "support (动词原形)", + "verb": [ + "supports (第三人称单数)", + "supporting (现在分词)", + "supported (过去式/过去分词)" + ] + }, + "example": { + "en": "The proposal should be supported with data.", + "cn": "该提议应有数据支持。" + } + }, + { + "id": 531, + "english": "improving", + "frequency": 35, + "category": "business_core", + "chinese": "改进", + "phonetic": "/ɪmˈpruːvɪŋ/", + "forms": { + "verb": [ + "improves (第三人称单数)", + "improving (现在分词)", + "improved (过去式/过去分词)" + ] + }, + "example": { + "en": "We need support in improving the designs.", + "cn": "我们需要在改进设计方面得到支持。" + } + }, + { + "id": 532, + "english": "designs", + "frequency": 24, + "category": "technical_core", + "chinese": "设计", + "phonetic": "/dɪˈzaɪnz/", + "forms": { + "singular": "design (单数)", + "verb": [ + "designs (第三人称单数)", + "designing (现在分词)", + "designed (过去式/过去分词)" + ] + }, + "example": { + "en": "The new designs are better.", + "cn": "新设计更好。" + } + }, + { + "id": 533, + "english": "summarize", + "frequency": 34, + "category": "business_core", + "chinese": "总结", + "phonetic": "/ˈsʌməraɪz/", + "forms": { + "verb": [ + "summarizes (第三人称单数)", + "summarizing (现在分词)", + "summarized (过去式/过去分词)" + ] + }, + "example": { + "en": "Can we summarize the present state?", + "cn": "我们能总结一下现状吗?" + } + }, + { + "id": 536, + "english": "application", + "frequency": 45, + "category": "business_core", + "chinese": "应用", + "phonetic": "/ˌæplɪˈkeɪʃn/", + "forms": { + "noun": "applications (复数)", + "plural": "applications (复数)" + }, + "example": { + "en": "This is for the Yangjie application.", + "cn": "这是为扬杰的应用。" + } + }, + { + "id": 537, + "english": "summary", + "frequency": 46, + "category": "business_core", + "chinese": "摘要", + "phonetic": "/ˈsʌməri/", + "forms": { + "noun": "summaries (复数)", + "plural": "summaries (复数)" + }, + "example": { + "en": "Please provide a summary of the meeting.", + "cn": "请提供会议摘要。" + } + }, + { + "id": 538, + "english": "unzipped", + "frequency": 26, + "category": "business_core", + "chinese": "解压缩的", + "phonetic": "/ʌnˈzɪpt/", + "forms": { + "past_participle": "unzipped (过去分词)", + "base_verb": "unzipp (动词原形)", + "verb": [ + "unzipps (第三人称单数)", + "unzipping (现在分词)", + "unzipped (过去式/过去分词)" + ] + }, + "example": { + "en": "The files are in the unzipped folder.", + "cn": "文件在解压缩的文件夹中。" + } + }, + { + "id": 539, + "english": "folder", + "frequency": 39, + "category": "business_core", + "chinese": "文件夹", + "phonetic": "/ˈfəʊldə(r)/", + "forms": { + "noun": "folders (复数)", + "plural": "folders (复数)" + }, + "example": { + "en": "Create a new folder for the project.", + "cn": "为项目创建一个新文件夹。" + } + }, + { + "id": 540, + "english": "struggled", + "frequency": 41, + "category": "business_core", + "chinese": "挣扎;奋斗", + "phonetic": "/ˈstrʌɡld/", + "forms": { + "verb": [ + "struggles (第三人称单数)", + "struggling (现在分词)", + "struggled (过去式/过去分词)" + ] + }, + "example": { + "en": "I struggled with the analyzer.", + "cn": "我用那个分析器用得很费劲。" + } + }, + { + "id": 541, + "english": "principle", + "frequency": 36, + "category": "business_core", + "chinese": "原则", + "phonetic": "/ˈprɪnsəpl/", + "forms": { + "noun": "principles (复数)", + "plural": "principles (复数)" + }, + "example": { + "en": "In principle, we have to analyze three areas.", + "cn": "原则上,我们必须分析三个领域。" + } + }, + { + "id": 542, + "english": "indicated", + "frequency": 35, + "category": "business_core", + "chinese": "指出的", + "phonetic": "/ˈɪndɪkeɪtɪd/", + "forms": { + "past_participle": "indicated (过去分词)", + "base_verb": "indicat (动词原形)", + "verb": [ + "indicats (第三人称单数)", + "indicating (现在分词)", + "indicated (过去式/过去分词)" + ] + }, + "example": { + "en": "Analyze the areas indicated in the image.", + "cn": "分析图像中所示的区域。" + } + }, + { + "id": 543, + "english": "focus", + "frequency": 21, + "category": "business_core", + "chinese": "聚焦", + "phonetic": "/ˈfəʊkəs/", + "forms": { + "verb": [ + "focuses (第三人称单数)", + "focusing (现在分词)", + "focused (过去式/过去分词)" + ] + }, + "example": { + "en": "Let's focus on the main issue.", + "cn": "让我们关注主要问题。" + } + }, + { + "id": 544, + "english": "conditions", + "frequency": 48, + "category": "business_core", + "chinese": "条件", + "phonetic": "/kənˈdɪʃnz/", + "forms": { + "singular": "condition (单数)", + "verb": [ + "conditions (第三人称单数)", + "conditioning (现在分词)", + "conditioned (过去式/过去分词)" + ] + }, + "example": { + "en": "We need to know the test conditions.", + "cn": "我们需要知道测试条件。" + } + }, + { + "id": 545, + "english": "tolerances", + "frequency": 26, + "category": "business_core", + "chinese": "公差", + "phonetic": "/ˈtɒlərənsɪz/", + "forms": { + "singular": "tolerance (单数)" + }, + "example": { + "en": "The 3D model does not have tolerances.", + "cn": "3D模型没有公差。" + } + }, + { + "id": 547, + "english": "tasked", + "frequency": 30, + "category": "business_core", + "chinese": "分派任务", + "phonetic": "/tɑːskt/", + "forms": { + "verb": [ + "tasks (第三人称单数)", + "tasking (现在分词)", + "tasked (过去式/过去分词)" + ] + }, + "example": { + "en": "You tasked TengYang to make the chuck.", + "cn": "你委托腾阳制作卡盘。" + } + }, + { + "id": 548, + "english": "re-arrange", + "frequency": 36, + "category": "business_core", + "chinese": "重新安排", + "phonetic": "/ˌriːəˈreɪndʒ/", + "forms": { + "verb": [ + "re-arranges (第三人称单数)", + "re-arranging (现在分词)", + "re-arranged (过去式/过去分词)" + ] + }, + "example": { + "en": "Can you re-arrange the chucks?", + "cn": "你能重新安排一下卡盘吗?" + } + }, + { + "id": 550, + "english": "gamma", + "frequency": 27, + "category": "technical_core", + "chinese": "伽马", + "phonetic": "/ˈɡæmə/", + "forms": { + "noun": "gammas (复数)", + "plural": "gammas (复数)" + }, + "example": { + "en": "An even higher gamma will keep black areas dark.", + "cn": "更高的伽马值将使黑色区域保持暗黑。" + } + }, + { + "id": 553, + "english": "gaps", + "frequency": 32, + "category": "business_core", + "chinese": "差距", + "phonetic": "/ɡæps/", + "forms": { + "singular": "gap (单数)", + "verb": [ + "gaps (第三人称单数)", + "gaping (现在分词)", + "gaped (过去式/过去分词)" + ] + }, + "example": { + "en": "We have some remaining gaps.", + "cn": "我们还有一些差距。" + } + }, + { + "id": 554, + "english": "reworked", + "frequency": 42, + "category": "business_core", + "chinese": "返工的", + "phonetic": "/ˌriːˈwɜːkt/", + "forms": { + "past_participle": "reworked (过去分词)", + "base_verb": "rework (动词原形)", + "verb": [ + "reworks (第三人称单数)", + "reworking (现在分词)", + "reworked (过去式/过去分词)" + ] + }, + "example": { + "en": "The reworked parts were installed.", + "cn": "返工的零件已经安装好了。" + } + }, + { + "id": 555, + "english": "enable", + "frequency": 34, + "category": "business_core", + "chinese": "使能够", + "phonetic": "/ɪˈneɪbl/", + "forms": { + "verb": [ + "enables (第三人称单数)", + "enabling (现在分词)", + "enabled (过去式/过去分词)" + ] + }, + "example": { + "en": "This will enable control of the claw height.", + "cn": "这将能够控制爪子的高度。" + } + }, + { + "id": 557, + "english": "tilt", + "frequency": 48, + "category": "business_core", + "chinese": "倾斜", + "phonetic": "/tɪlt/", + "forms": { + "noun": "tilts (复数)", + "plural": "tilts (复数)" + }, + "example": { + "en": "Control the clamp tilt.", + "cn": "控制夹具的倾斜度。" + } + }, + { + "id": 558, + "english": "closure", + "frequency": 21, + "category": "business_core", + "chinese": "结束;定案", + "phonetic": "/ˈkləʊʒə(r)/", + "forms": { + "noun": "closures (复数)", + "plural": "closures (复数)" + }, + "example": { + "en": "There was no closure on the process chucks.", + "cn": "工艺卡盘的问题还没有定论。" + } + }, + { + "id": 559, + "english": "optical", + "frequency": 33, + "category": "business_core", + "chinese": "光学的", + "phonetic": "/ˈɒptɪkl/", + "forms": {}, + "example": { + "en": "This enables very good optical contrast.", + "cn": "这可以实现非常好的光学对比度。" + } + }, + { + "id": 560, + "english": "benefit", + "frequency": 42, + "category": "business_core", + "chinese": "受益", + "phonetic": "/ˈbenɪfɪt/", + "forms": { + "verb": [ + "benefits (第三人称单数)", + "benefiting (现在分词)", + "benefited (过去式/过去分词)" + ], + "plural": "benefits (复数)" + }, + "example": { + "en": "The new settings do not benefit these chucks.", + "cn": "新设置对这些卡盘没有好处。" + } + }, + { + "id": 561, + "english": "document", + "frequency": 37, + "category": "business_core", + "chinese": "记录", + "phonetic": "/ˈdɒkjument/", + "forms": { + "verb": [ + "documents (第三人称单数)", + "documenting (现在分词)", + "documented (过去式/过去分词)" + ], + "plural": "documents (复数)" + }, + "example": { + "en": "Please document the manufacturing processes.", + "cn": "请记录制造过程。" + } + }, + { + "id": 562, + "english": "materials", + "frequency": 48, + "category": "technical_core", + "chinese": "材料", + "phonetic": "/məˈtɪəriəlz/", + "forms": { + "singular": "material (单数)" + }, + "example": { + "en": "Document the materials used.", + "cn": "记录所用材料。" + } + }, + { + "id": 563, + "english": "manufacturing", + "frequency": 41, + "category": "business_core", + "chinese": "制造", + "phonetic": "/ˌmænjuˈfæktʃərɪŋ/", + "forms": { + "present_participle": "manufacturing (现在分词)", + "base_verb": "manufactur (动词原形)", + "verb": [ + "manufacturs (第三人称单数)", + "manufacturing (现在分词)", + "manufactured (过去式/过去分词)" + ] + }, + "example": { + "en": "The manufacturing process is complex.", + "cn": "制造过程很复杂。" + } + }, + { + "id": 564, + "english": "suspect", + "frequency": 22, + "category": "business_core", + "chinese": "怀疑", + "phonetic": "/səˈspekt/", + "forms": { + "verb": [ + "suspects (第三人称单数)", + "suspecting (现在分词)", + "suspected (过去式/过去分词)" + ] + }, + "example": { + "en": "We suspect the bulk material is different.", + "cn": "我们怀疑原材料不同。" + } + }, + { + "id": 565, + "english": "bulk", + "frequency": 45, + "category": "business_core", + "chinese": "大量的;主要的", + "phonetic": "/bʌlk/", + "forms": {}, + "example": { + "en": "The bulk material might be the issue.", + "cn": "原材料可能是问题所在。" + } + }, + { + "id": 566, + "english": "regular", + "frequency": 39, + "category": "business_core", + "chinese": "常规的", + "phonetic": "/ˈreɡjələ(r)/", + "forms": {}, + "example": { + "en": "The regular blackening process is different.", + "cn": "常规的黑化工艺是不同的。" + } + }, + { + "id": 567, + "english": "configure", + "frequency": 33, + "category": "business_core", + "chinese": "配置", + "phonetic": "/kənˈfɪɡə(r)/", + "forms": { + "verb": [ + "configures (第三人称单数)", + "configuring (现在分词)", + "configured (过去式/过去分词)" + ] + }, + "example": { + "en": "Can we configure the software to work with these chucks?", + "cn": "我们可以配置软件以使用这些卡盘吗?" + } + }, + { + "id": 568, + "english": "identical", + "frequency": 34, + "category": "business_core", + "chinese": "相同的", + "phonetic": "/aɪˈdentɪkl/", + "forms": {}, + "example": { + "en": "The two chucks are identical.", + "cn": "这两个卡盘是相同的。" + } + }, + { + "id": 569, + "english": "copying", + "frequency": 40, + "category": "business_core", + "chinese": "复制", + "phonetic": "/ˈkɒpiɪŋ/", + "forms": { + "verb": [ + "copies (第三人称单数)", + "copying (现在分词)", + "copied (过去式/过去分词)" + ] + }, + "example": { + "en": "Make new chucks by copying the TengYang design.", + "cn": "通过复制腾阳的设计来制造新的卡盘。" + } + }, + { + "id": 571, + "english": "debugging", + "frequency": 46, + "category": "business_core", + "chinese": "调试", + "phonetic": "/diːˈbʌɡɪŋ/", + "forms": { + "present_participle": "debugging (现在分词)", + "base_verb": "debugg (动词原形)", + "verb": [ + "debuggs (第三人称单数)", + "debugging (现在分词)", + "debugged (过去式/过去分词)" + ] + }, + "example": { + "en": "This is the effect from debugging the bonder.", + "cn": "这是调试焊接机后的效果。" + } + }, + { + "id": 572, + "english": "adjusted", + "frequency": 47, + "category": "technical_operations", + "chinese": "调整过的", + "phonetic": "/əˈdʒʌstɪd/", + "forms": { + "past_participle": "adjusted (过去分词)", + "base_verb": "adjust (动词原形)", + "verb": [ + "adjusts (第三人称单数)", + "adjusting (现在分词)", + "adjusted (过去式/过去分词)" + ] + }, + "example": { + "en": "We mainly adjusted the Gamma value.", + "cn": "我们主要调整了伽马值。" + } + }, + { + "id": 573, + "english": "sensitive", + "frequency": 25, + "category": "business_core", + "chinese": "敏感的", + "phonetic": "/ˈsensətɪv/", + "forms": {}, + "example": { + "en": "The ring light is also sensitive to the chuck.", + "cn": "环形灯对卡盘也很敏感。" + } + }, + { + "id": 574, + "english": "extends", + "frequency": 27, + "category": "business_core", + "chinese": "延长", + "phonetic": "/ɪkˈstendz/", + "forms": { + "verb": [ + "extends (第三人称单数)", + "extending (现在分词)", + "extended (过去式/过去分词)" + ] + }, + "example": { + "en": "LiYong extends his stay by one day.", + "cn": "李勇延长逗留一天。" + } + }, + { + "id": 575, + "english": "changeover", + "frequency": 25, + "category": "business_core", + "chinese": "转换", + "phonetic": "/ˈtʃeɪndʒəʊvə(r)/", + "forms": { + "noun": "changeovers (复数)", + "plural": "changeovers (复数)" + }, + "example": { + "en": "He does the changeover for Jianfei.", + "cn": "他为建飞做转换工作。" + } + }, + { + "id": 576, + "english": "revert", + "frequency": 39, + "category": "business_core", + "chinese": "恢复", + "phonetic": "/rɪˈvɜːt/", + "forms": { + "verb": [ + "reverts (第三人称单数)", + "reverting (现在分词)", + "reverted (过去式/过去分词)" + ] + }, + "example": { + "en": "We will revert back to the present configuration.", + "cn": "我们将恢复到目前的配置。" + } + }, + { + "id": 577, + "english": "encoder", + "frequency": 29, + "category": "business_core", + "chinese": "编码器", + "phonetic": "/ɪnˈkəʊdə(r)/", + "forms": { + "noun": "encoders (复数)", + "plural": "encoders (复数)" + }, + "example": { + "en": "Check the encoder scale for cleanliness.", + "cn": "检查编码器刻度是否清洁。" + } + }, + { + "id": 578, + "english": "scale", + "frequency": 34, + "category": "business_core", + "chinese": "刻度;规模", + "phonetic": "/skeɪl/", + "forms": { + "noun": "scales (复数)", + "plural": "scales (复数)" + }, + "example": { + "en": "The encoder scale might be dirty.", + "cn": "编码器刻度可能脏了。" + } + }, + { + "id": 579, + "english": "cleanliness", + "frequency": 40, + "category": "business_core", + "chinese": "清洁度", + "phonetic": "/ˈklenlinəs/", + "forms": { + "noun": "不可数名词" + }, + "example": { + "en": "Check the scale for cleanliness.", + "cn": "检查刻度的清洁度。" + } + }, + { + "id": 580, + "english": "contribute", + "frequency": 45, + "category": "business_core", + "chinese": "促成;贡献", + "phonetic": "/kənˈtrɪbjuːt/", + "forms": { + "verb": [ + "contributes (第三人称单数)", + "contributing (现在分词)", + "contributed (过去式/过去分词)" + ] + }, + "example": { + "en": "This may contribute to the random error.", + "cn": "这可能会导致随机误差。" + } + }, + { + "id": 581, + "english": "random", + "frequency": 43, + "category": "business_core", + "chinese": "随机的", + "phonetic": "/ˈrændəm/", + "forms": {}, + "example": { + "en": "We see a random error.", + "cn": "我们看到了一个随机误差。" + } + }, + { + "id": 582, + "english": "couplings", + "frequency": 45, + "category": "business_core", + "chinese": "联轴器", + "phonetic": "/ˈkʌplɪŋz/", + "forms": { + "singular": "coupling (单数)" + }, + "example": { + "en": "The motor shaft couplings need to be fixed.", + "cn": "电机轴联轴器需要修理。" + } + }, + { + "id": 583, + "english": "quantity", + "frequency": 42, + "category": "business_core", + "chinese": "数量", + "phonetic": "/ˈkwɒntəti/", + "forms": { + "noun": "quantities (复数)", + "plural": "quantities (复数)" + }, + "example": { + "en": "Order the appropriate quantity of correct parts.", + "cn": "订购适量的正确零件。" + } + }, + { + "id": 584, + "english": "weaknesses", + "frequency": 44, + "category": "business_core", + "chinese": "弱点", + "phonetic": "/ˈwiːknəsɪz/", + "forms": { + "singular": "weakness (单数)" + }, + "example": { + "en": "Look for other design weaknesses.", + "cn": "寻找其他设计弱点。" + } + }, + { + "id": 585, + "english": "organize", + "frequency": 43, + "category": "technical_operations", + "chinese": "组织", + "phonetic": "/ˈɔːɡənaɪz/", + "forms": { + "verb": [ + "organizes (第三人称单数)", + "organizing (现在分词)", + "organized (过去式/过去分词)" + ] + }, + "example": { + "en": "Please organize this small activity.", + "cn": "请组织这次小型活动。" + } + }, + { + "id": 586, + "english": "activity", + "frequency": 34, + "category": "business_core", + "chinese": "活动", + "phonetic": "/ækˈtɪvəti/", + "forms": { + "noun": "activities (复数)", + "plural": "activities (复数)" + }, + "example": { + "en": "We have a lot of activities planned.", + "cn": "我们计划了很多活动。" + } + }, + { + "id": 587, + "english": "wear", + "frequency": 28, + "category": "business_core", + "chinese": "磨损", + "phonetic": "/weə(r)/", + "forms": {}, + "example": { + "en": "There may be a problem with wear.", + "cn": "可能会有磨损问题。" + } + }, + { + "id": 588, + "english": "columns", + "frequency": 24, + "category": "business_core", + "chinese": "列", + "phonetic": "/ˈkɒləmz/", + "forms": { + "singular": "column (单数)" + }, + "example": { + "en": "The die bonder processes the odd columns.", + "cn": "固晶机处理奇数列。" + } + }, + { + "id": 589, + "english": "odd", + "frequency": 27, + "category": "business_core", + "chinese": "奇数的", + "phonetic": "/ɒd/", + "forms": {}, + "example": { + "en": "One dispenser works on odd columns.", + "cn": "一个点胶机处理奇数列。" + } + }, + { + "id": 590, + "english": "even", + "frequency": 22, + "category": "business_core", + "chinese": "偶数的", + "phonetic": "/ˈiːvn/", + "forms": {}, + "example": { + "en": "The other dispenser works on even columns.", + "cn": "另一个点胶机处理偶数列。" + } + }, + { + "id": 591, + "english": "processes", + "frequency": 170, + "category": "technical_core", + "chinese": "处理", + "phonetic": "/ˈprəʊsesɪz/", + "forms": { + "verb": [ + "processes (第三人称单数)", + "processing (现在分词)", + "processed (过去式/过去分词)" + ] + }, + "example": { + "en": "The machine processes two columns at once.", + "cn": "这台机器一次处理两列。" + } + }, + { + "id": 594, + "english": "prevent", + "frequency": 23, + "category": "action_verbs", + "chinese": "防止", + "phonetic": "/prɪˈvent/", + "forms": { + "verb": [ + "prevents (第三人称单数)", + "preventing (现在分词)", + "prevented (过去式/过去分词)" + ] + }, + "example": { + "en": "This is to prevent mistakes.", + "cn": "这是为了防止错误。" + } + }, + { + "id": 595, + "english": "mistakes", + "frequency": 32, + "category": "business_core", + "chinese": "错误", + "phonetic": "/mɪˈsteɪks/", + "forms": { + "singular": "mistake (单数)", + "verb": [ + "mistaks (第三人称单数)", + "mistaking (现在分词)", + "mistaked (过去式/过去分词)" + ] + }, + "example": { + "en": "We need to avoid making mistakes.", + "cn": "我们需要避免犯错。" + } + }, + { + "id": 597, + "english": "coating", + "frequency": 45, + "category": "business_core", + "chinese": "涂层", + "phonetic": "/ˈkəʊtɪŋ/", + "forms": { + "noun": "coatings (复数)", + "verb": [ + "coats (第三人称单数)", + "coating (现在分词)", + "coated (过去式/过去分词)" + ], + "plural": "coatings (复数)" + }, + "example": { + "en": "The laser removes the coating.", + "cn": "激光去除了涂层。" + } + }, + { + "id": 598, + "english": "removes", + "frequency": 33, + "category": "business_core", + "chinese": "移除", + "phonetic": "/rɪˈmuːvz/", + "forms": { + "verb": [ + "removes (第三人称单数)", + "removing (现在分词)", + "removed (过去式/过去分词)" + ] + }, + "example": { + "en": "The process removes the top layer.", + "cn": "该过程移除了顶层。" + } + }, + { + "id": 599, + "english": "reworking", + "frequency": 21, + "category": "business_core", + "chinese": "返工", + "phonetic": "/ˌriːˈwɜːkɪŋ/", + "forms": { + "present_participle": "reworking (现在分词)", + "base_verb": "rework (动词原形)", + "verb": [ + "reworks (第三人称单数)", + "reworking (现在分词)", + "reworked (过去式/过去分词)" + ] + }, + "example": { + "en": "Try reworking the chuck with the laser.", + "cn": "尝试用激光返工卡盘。" + } + }, + { + "id": 600, + "english": "separately", + "frequency": 47, + "category": "action_verbs", + "chinese": "分别地", + "phonetic": "/ˈseprətli/", + "forms": { + "adverb": "separately (副词)", + "base_adjective": "separate (形容词原形)", + "adjective": "separate (形容词)" + }, + "example": { + "en": "I will contact you separately.", + "cn": "我会单独联系你。" + } + }, + { + "id": 601, + "english": "roughness", + "frequency": 29, + "category": "business_core", + "chinese": "粗糙度", + "phonetic": "/ˈrʌfnəs/", + "forms": { + "noun": "不可数名词" + }, + "example": { + "en": "Measure the surface roughness.", + "cn": "测量表面粗糙度。" + } + }, + { + "id": 602, + "english": "disappointing", + "frequency": 47, + "category": "business_core", + "chinese": "令人失望的", + "phonetic": "/ˌdɪsəˈpɔɪntɪŋ/", + "forms": { + "present_participle": "disappointing (现在分词)", + "base_verb": "disappoint (动词原形)", + "verb": [ + "disappoints (第三人称单数)", + "disappointing (现在分词)", + "disappointed (过去式/过去分词)" + ] + }, + "example": { + "en": "This was very disappointing.", + "cn": "这非常令人失望。" + } + }, + { + "id": 603, + "english": "ideally", + "frequency": 44, + "category": "business_core", + "chinese": "理想地", + "phonetic": "/aɪˈdiəli/", + "forms": { + "adverb": "ideally (副词)", + "base_adjective": "ideal (形容词原形)", + "adjective": "ideal (形容词)" + }, + "example": { + "en": "Ideally, the inner area is white.", + "cn": "理想情况下,内部区域是白色的。" + } + }, + { + "id": 605, + "english": "properly", + "frequency": 40, + "category": "business_core", + "chinese": "适当地", + "phonetic": "/ˈprɒpəli/", + "forms": { + "adverb": "properly (副词)", + "base_adjective": "proper (形容词原形)", + "adjective": "proper (形容词)" + }, + "example": { + "en": "The die may not be detected properly.", + "cn": "芯片可能无法被正确检测到。" + } + }, + { + "id": 606, + "english": "influence", + "frequency": 46, + "category": "business_core", + "chinese": "影响", + "phonetic": "/ˈɪnfluəns/", + "forms": { + "noun": "influences (复数)", + "plural": "influences (复数)" + }, + "example": { + "en": "There is an influence from DPI on the placement.", + "cn": "DPI对贴装有影响。" + } + }, + { + "id": 607, + "english": "reported", + "frequency": 43, + "category": "business_core", + "chinese": "报告的", + "phonetic": "/rɪˈpɔːtɪd/", + "forms": { + "past_participle": "reported (过去分词)", + "base_verb": "report (动词原形)", + "verb": [ + "reports (第三人称单数)", + "reporting (现在分词)", + "reported (过去式/过去分词)" + ] + }, + "example": { + "en": "The reported die placement is not accurate.", + "cn": "报告的芯片贴装位置不准确。" + } + }, + { + "id": 608, + "english": "backup", + "frequency": 31, + "category": "business_core", + "chinese": "备用", + "phonetic": "/ˈbækʌp/", + "forms": { + "noun": "backups (复数)", + "plural": "backups (复数)" + }, + "example": { + "en": "We need a backup plan.", + "cn": "我们需要一个备用计划。" + } + }, + { + "id": 610, + "english": "reliable", + "frequency": 25, + "category": "business_core", + "chinese": "可靠的", + "phonetic": "/rɪˈlaɪəbl/", + "forms": {}, + "example": { + "en": "The solution needs to be reliable.", + "cn": "解决方案需要可靠。" + } + }, + { + "id": 611, + "english": "available", + "frequency": 37, + "category": "business_core", + "chinese": "可用的", + "phonetic": "/əˈveɪləbl/", + "forms": {}, + "example": { + "en": "When can these sets be available?", + "cn": "这些套件什么时候能准备好?" + } + }, + { + "id": 612, + "english": "torqued", + "frequency": 39, + "category": "business_core", + "chinese": "上紧的", + "phonetic": "/tɔːkt/", + "forms": { + "past_participle": "torqued (过去分词)", + "base_verb": "torqu (动词原形)", + "verb": [ + "torqus (第三人称单数)", + "torquing (现在分词)", + "torqued (过去式/过去分词)" + ] + }, + "example": { + "en": "How do we make sure the screws are properly torqued?", + "cn": "我们如何确保螺丝被正确拧紧?" + } + }, + { + "id": 613, + "english": "loose", + "frequency": 36, + "category": "business_core", + "chinese": "松动", + "phonetic": "/luːs/", + "forms": { + "adjective": "形容词" + }, + "example": { + "en": "The screws might get loose.", + "cn": "螺丝可能会松动。" + } + }, + { + "id": 614, + "english": "frequent", + "frequency": 48, + "category": "business_core", + "chinese": "频繁的", + "phonetic": "/ˈfriːkwənt/", + "forms": {}, + "example": { + "en": "The machine has frequent fast moves.", + "cn": "机器有频繁的快速移动。" + } + }, + { + "id": 615, + "english": "jerks", + "frequency": 23, + "category": "business_core", + "chinese": "颠簸;急动", + "phonetic": "/dʒɜːks/", + "forms": { + "singular": "jerk (单数)", + "verb": [ + "jerks (第三人称单数)", + "jerking (现在分词)", + "jerked (过去式/过去分词)" + ] + }, + "example": { + "en": "The moves cause jerks and vibrations.", + "cn": "这些移动会引起颠簸和振动。" + } + }, + { + "id": 616, + "english": "vibrations", + "frequency": 37, + "category": "business_core", + "chinese": "振动", + "phonetic": "/vaɪˈbreɪʃnz/", + "forms": { + "singular": "vibration (单数)" + }, + "example": { + "en": "The vibrations can loosen the screws.", + "cn": "振动会使螺丝松动。" + } + }, + { + "id": 617, + "english": "cancel", + "frequency": 48, + "category": "business_core", + "chinese": "取消", + "phonetic": "/ˈkænsl/", + "forms": { + "verb": [ + "cancels (第三人称单数)", + "canceling (现在分词)", + "canceled (过去式/过去分词)" + ] + }, + "example": { + "en": "I need to cancel the call.", + "cn": "我需要取消这次通话。" + } + }, + { + "id": 618, + "english": "emergency", + "frequency": 22, + "category": "time_planning", + "chinese": "紧急情况", + "phonetic": "/ɪˈmɜːdʒənsi/", + "forms": { + "noun": "emergencies (复数)", + "plural": "emergencies (复数)" + }, + "example": { + "en": "We have an emergency at Yangjie.", + "cn": "我们在扬杰有紧急情况。" + } + }, + { + "id": 619, + "english": "turnaround", + "frequency": 30, + "category": "time_planning", + "chinese": "周转", + "phonetic": "/ˈtɜːnəraʊnd/", + "forms": { + "noun": "turnarounds (复数)", + "plural": "turnarounds (复数)" + }, + "example": { + "en": "We will have a daily meeting on the Yangjie turnaround.", + "cn": "我们将就扬杰的周转问题举行每日会议。" + } + }, + { + "id": 620, + "english": "assign", + "frequency": 26, + "category": "technical_operations", + "chinese": "分配", + "phonetic": "/əˈsaɪn/", + "forms": { + "verb": [ + "assigns (第三人称单数)", + "assigning (现在分词)", + "assigned (过去式/过去分词)" + ] + }, + "example": { + "en": "We will assign tasks to the team.", + "cn": "我们将向团队分配任务。" + } + }, + { + "id": 622, + "english": "targeting", + "frequency": 30, + "category": "business_core", + "chinese": "瞄准", + "phonetic": "/ˈtɑːɡɪtɪŋ/", + "forms": { + "present_participle": "targeting (现在分词)", + "base_verb": "target (动词原形)", + "verb": [ + "targets (第三人称单数)", + "targeting (现在分词)", + "targeted (过去式/过去分词)" + ] + }, + "example": { + "en": "DPA stands for targeting, before dispense.", + "cn": "DPA代表点胶前的瞄准。" + } + }, + { + "id": 625, + "english": "applies", + "frequency": 22, + "category": "business_core", + "chinese": "适用", + "phonetic": "/əˈplaɪz/", + "forms": { + "verb": [ + "applies (第三人称单数)", + "applying (现在分词)", + "applied (过去式/过去分词)" + ] + }, + "example": { + "en": "The same applies to the test with Richard.", + "cn": "这同样适用于与理查德的测试。" + } + }, + { + "id": 626, + "english": "surfaces", + "frequency": 21, + "category": "business_core", + "chinese": "表面", + "phonetic": "/ˈsɜːfɪsɪz/", + "forms": { + "singular": "surface (单数)", + "verb": [ + "surfacs (第三人称单数)", + "surfacing (现在分词)", + "surfaced (过去式/过去分词)" + ] + }, + "example": { + "en": "He created these surfaces with his laser.", + "cn": "他用他的激光创造了这些表面。" + } + }, + { + "id": 628, + "english": "laser", + "frequency": 31, + "category": "technical_core", + "chinese": "激光", + "phonetic": "/ˈleɪzə(r)/", + "forms": { + "noun": "lasers (复数)", + "plural": "lasers (复数)" + }, + "example": { + "en": "Laser processing can change the surface properties.", + "cn": "激光加工可以改变表面特性。" + } + }, + { + "id": 629, + "english": "marking", + "frequency": 44, + "category": "business_core", + "chinese": "标记", + "phonetic": "/ˈmɑːkɪŋ/", + "forms": { + "present_participle": "marking (现在分词)", + "base_verb": "mark (动词原形)", + "verb": [ + "marks (第三人称单数)", + "marking (现在分词)", + "marked (过去式/过去分词)" + ], + "plural": "markings (复数)" + }, + "example": { + "en": "This is like laser marking.", + "cn": "这就像激光打标。" + } + }, + { + "id": 630, + "english": "coated", + "frequency": 32, + "category": "business_core", + "chinese": "涂层的", + "phonetic": "/ˈkəʊtɪd/", + "forms": { + "past_participle": "coated (过去分词)", + "base_verb": "coat (动词原形)", + "verb": [ + "coats (第三人称单数)", + "coating (现在分词)", + "coated (过去式/过去分词)" + ] + }, + "example": { + "en": "The chuck was coated with DLC.", + "cn": "卡盘上涂有类金刚石碳膜。" + } + }, + { + "id": 631, + "english": "resistance", + "frequency": 38, + "category": "business_core", + "chinese": "抗性", + "phonetic": "/rɪˈzɪstəns/", + "forms": { + "noun": "resistances (复数)", + "plural": "resistances (复数)" + }, + "example": { + "en": "The coating is for wear resistance.", + "cn": "涂层是为了耐磨。" + } + }, + { + "id": 632, + "english": "interaction", + "frequency": 24, + "category": "business_core", + "chinese": "相互作用", + "phonetic": "/ˌɪntərˈækʃn/", + "forms": { + "noun": "interactions (复数)", + "plural": "interactions (复数)" + }, + "example": { + "en": "Is it an interaction with the coating?", + "cn": "是与涂层的相互作用吗?" + } + }, + { + "id": 633, + "english": "suggestion", + "frequency": 34, + "category": "business_core", + "chinese": "建议", + "phonetic": "/səˈdʒestʃən/", + "forms": { + "noun": "suggestions (复数)", + "plural": "suggestions (复数)" + }, + "example": { + "en": "The only suggestion I have is to test the surfaces.", + "cn": "我唯一的建议是测试这些表面。" + } + }, + { + "id": 635, + "english": "adjustments", + "frequency": 27, + "category": "technical_operations", + "chinese": "调整", + "phonetic": "/əˈdʒʌstmənts/", + "forms": { + "singular": "adjustment (单数)" + }, + "example": { + "en": "You can do the light and camera setting adjustments.", + "cn": "你可以进行灯光和相机设置的调整。" + } + }, + { + "id": 636, + "english": "observed", + "frequency": 46, + "category": "business_core", + "chinese": "观察到的", + "phonetic": "/əbˈzɜːvd/", + "forms": { + "past_participle": "observed (过去分词)", + "base_verb": "observ (动词原形)", + "verb": [ + "observs (第三人称单数)", + "observing (现在分词)", + "observed (过去式/过去分词)" + ] + }, + "example": { + "en": "I observed CP doing this in Yangjie.", + "cn": "我观察到CP在扬杰这样做。" + } + }, + { + "id": 638, + "english": "maintain", + "frequency": 49, + "category": "action_verbs", + "chinese": "维护", + "phonetic": "/meɪnˈteɪn/", + "forms": { + "verb": [ + "maintains (第三人称单数)", + "maintaining (现在分词)", + "maintained (过去式/过去分词)" + ] + }, + "example": { + "en": "We can't maintain two software branches.", + "cn": "我们无法维护两个软件分支。" + } + }, + { + "id": 639, + "english": "branches", + "frequency": 49, + "category": "business_core", + "chinese": "分支", + "phonetic": "/brɑːntʃɪz/", + "forms": { + "singular": "branch (单数)", + "verb": [ + "branches (第三人称单数)", + "branching (现在分词)", + "branched (过去式/过去分词)" + ] + }, + "example": { + "en": "The software has multiple branches.", + "cn": "该软件有多个分支。" + } + }, + { + "id": 640, + "english": "capacity", + "frequency": 27, + "category": "business_core", + "chinese": "能力;容量", + "phonetic": "/kəˈpæsəti/", + "forms": { + "noun": "capacities (复数)", + "plural": "capacities (复数)" + }, + "example": { + "en": "We don't have the capacity to support this line.", + "cn": "我们没有能力支持这条生产线。" + } + }, + { + "id": 642, + "english": "puzzled", + "frequency": 29, + "category": "business_core", + "chinese": "困惑的", + "phonetic": "/ˈpʌzld/", + "forms": { + "past_participle": "puzzled (过去分词)", + "base_verb": "puzzl (动词原形)", + "verb": [ + "puzzls (第三人称单数)", + "puzzling (现在分词)", + "puzzled (过去式/过去分词)" + ] + }, + "example": { + "en": "I'm still puzzled that we can't move the rail.", + "cn": "我仍然对我们无法移动导轨感到困惑。" + } + }, + { + "id": 643, + "english": "manually", + "frequency": 35, + "category": "business_core", + "chinese": "手动地", + "phonetic": "/ˈmænjuəli/", + "forms": { + "adverb": "manually (副词)", + "base_adjective": "manual (形容词原形)", + "adjective": "manual (形容词)" + }, + "example": { + "en": "Can you move the rail manually?", + "cn": "你能手动移动导轨吗?" + } + }, + { + "id": 644, + "english": "specifications", + "frequency": 48, + "category": "business_core", + "chinese": "规格", + "phonetic": "/ˌspesɪfɪˈkeɪʃnz/", + "forms": { + "singular": "specification (单数)" + }, + "example": { + "en": "These are the customer's purchase specifications.", + "cn": "这些是客户的采购规格。" + } + }, + { + "id": 646, + "english": "suggestions", + "frequency": 32, + "category": "communication", + "chinese": "建议", + "phonetic": "/səˈdʒestʃənz/", + "forms": { + "singular": "suggestion (单数)" + }, + "example": { + "en": "Attached are the suggestions from Alex.", + "cn": "附件是亚历克斯的建议。" + } + }, + { + "id": 647, + "english": "refers", + "frequency": 46, + "category": "business_core", + "chinese": "指的是", + "phonetic": "/rɪˈfɜːz/", + "forms": { + "verb": [ + "refers (第三人称单数)", + "referring (现在分词)", + "referred (过去式/过去分词)" + ] + }, + "example": { + "en": "I believe he refers to such a tool.", + "cn": "我相信他指的是这样一个工具。" + } + }, + { + "id": 648, + "english": "engineers", + "frequency": 21, + "category": "business_core", + "chinese": "工程师", + "phonetic": "/ˌendʒɪˈnɪəz/", + "forms": { + "singular": "engineer (单数)", + "verb": [ + "engineers (第三人称单数)", + "engineering (现在分词)", + "engineered (过去式/过去分词)" + ] + }, + "example": { + "en": "Jianfei knows the two engineers in Suzhou.", + "cn": "建飞认识苏州的两位工程师。" + } + }, + { + "id": 649, + "english": "inform", + "frequency": 29, + "category": "action_verbs", + "chinese": "通知", + "phonetic": "/ɪnˈfɔːm/", + "forms": { + "verb": [ + "informs (第三人称单数)", + "informing (现在分词)", + "informed (过去式/过去分词)" + ] + }, + "example": { + "en": "Can you inform the engineers about our need?", + "cn": "你能把我们的需求通知工程师们吗?" + } + }, + { + "id": 650, + "english": "introduce", + "frequency": 48, + "category": "action_verbs", + "chinese": "介绍", + "phonetic": "/ˌɪntrəˈdjuːs/", + "forms": { + "verb": [ + "introduces (第三人称单数)", + "introducing (现在分词)", + "introduced (过去式/过去分词)" + ] + }, + "example": { + "en": "Please introduce Jianfei to the team.", + "cn": "请把建飞介绍给团队。" + } + }, + { + "id": 652, + "english": "limitation", + "frequency": 25, + "category": "business_core", + "chinese": "限制", + "phonetic": "/ˌlɪmɪˈteɪʃn/", + "forms": { + "noun": "limitations (复数)", + "plural": "limitations (复数)" + }, + "example": { + "en": "The first step is to see whether we can implement the limitation.", + "cn": "第一步是看我们是否能实施这个限制。" + } + }, + { + "id": 653, + "english": "trigger", + "frequency": 24, + "category": "action_verbs", + "chinese": "触发", + "phonetic": "/ˈtrɪɡə(r)/", + "forms": { + "verb": [ + "triggers (第三人称单数)", + "triggering (现在分词)", + "triggered (过去式/过去分词)" + ], + "plural": "triggers (复数)" + }, + "example": { + "en": "That is what I want to trigger here.", + "cn": "这就是我想在这里触发的。" + } + }, + { + "id": 654, + "english": "obviously", + "frequency": 25, + "category": "business_core", + "chinese": "显然", + "phonetic": "/ˈɒbviəsli/", + "forms": { + "adverb": "obviously (副词)", + "base_adjective": "obvious (形容词原形)", + "adjective": "obvious (形容词)" + }, + "example": { + "en": "Obviously, if the resistor reduces the light intensity, we can't use it.", + "cn": "显然,如果电阻降低了光强度,我们就不能使用它。" + } + }, + { + "id": 655, + "english": "purpose", + "frequency": 44, + "category": "business_core", + "chinese": "目的", + "phonetic": "/ˈpɜːpəs/", + "forms": { + "noun": "purposes (复数)", + "plural": "purposes (复数)" + }, + "example": { + "en": "That is the purpose of this request.", + "cn": "这就是这个请求的目的。" + } + }, + { + "id": 656, + "english": "request", + "frequency": 24, + "category": "business_core", + "chinese": "请求", + "phonetic": "/rɪˈkwest/", + "forms": { + "noun": "requests (复数)", + "plural": "requests (复数)" + }, + "example": { + "en": "I have a request for you.", + "cn": "我有一个请求给你。" + } + }, + { + "id": 657, + "english": "instruct", + "frequency": 30, + "category": "action_verbs", + "chinese": "指示", + "phonetic": "/ɪnˈstrʌkt/", + "forms": { + "verb": [ + "instructs (第三人称单数)", + "instructing (现在分词)", + "instructed (过去式/过去分词)" + ] + }, + "example": { + "en": "Please instruct them on the implementation.", + "cn": "请就实施事宜向他们发出指示。" + } + }, + { + "id": 658, + "english": "partially", + "frequency": 46, + "category": "business_core", + "chinese": "部分地", + "phonetic": "/ˈpɑːʃəli/", + "forms": { + "adverb": "partially (副词)", + "base_adjective": "partial (形容词原形)", + "adjective": "partial (形容词)" + }, + "example": { + "en": "The chucks were partially tested.", + "cn": "卡盘经过了部分测试。" + } + }, + { + "id": 659, + "english": "coaxial", + "frequency": 36, + "category": "technical_core", + "chinese": "同轴的", + "phonetic": "/ˌkəʊˈæksiəl/", + "forms": {}, + "example": { + "en": "Use the present red coaxial light.", + "cn": "使用目前的红色同轴灯。" + } + }, + { + "id": 661, + "english": "locate", + "frequency": 39, + "category": "action_verbs", + "chinese": "定位", + "phonetic": "/ləʊˈkeɪt/", + "forms": { + "verb": [ + "locates (第三人称单数)", + "locating (现在分词)", + "located (过去式/过去分词)" + ] + }, + "example": { + "en": "This is to locate the lead frame pad.", + "cn": "这是为了定位引线框架焊盘。" + } + }, + { + "id": 662, + "english": "presence", + "frequency": 36, + "category": "business_core", + "chinese": "存在", + "phonetic": "/ˈprezns/", + "forms": {}, + "example": { + "en": "Confirm the presence of solder.", + "cn": "确认焊料的存在。" + } + }, + { + "id": 664, + "english": "arrives", + "frequency": 37, + "category": "business_core", + "chinese": "到达", + "phonetic": "/əˈraɪvz/", + "forms": { + "verb": [ + "arrives (第三人称单数)", + "arriving (现在分词)", + "arrived (过去式/过去分词)" + ] + }, + "example": { + "en": "If the ring light arrives, perform two tests.", + "cn": "如果环形灯到了,就进行两次测试。" + } + }, + { + "id": 665, + "english": "strong", + "frequency": 46, + "category": "business_core", + "chinese": "强的", + "phonetic": "/strɒŋ/", + "forms": {}, + "example": { + "en": "We need a strong contrast.", + "cn": "我们需要强烈的对比度。" + } + }, + { + "id": 666, + "english": "sensitivity", + "frequency": 32, + "category": "business_core", + "chinese": "灵敏度", + "phonetic": "/ˌsensəˈtɪvəti/", + "forms": { + "noun": "sensitivities (复数)", + "plural": "sensitivities (复数)" + }, + "example": { + "en": "The sensor has a high sensitivity.", + "cn": "该传感器灵敏度高。" + } + }, + { + "id": 667, + "english": "leaks", + "frequency": 38, + "category": "business_core", + "chinese": "泄漏", + "phonetic": "/liːks/", + "forms": { + "singular": "leak (单数)", + "verb": [ + "leaks (第三人称单数)", + "leaking (现在分词)", + "leaked (过去式/过去分词)" + ] + }, + "example": { + "en": "The leaks are between the vacuum generator and the sensor.", + "cn": "泄漏点在真空发生器和传感器之间。" + } + }, + { + "id": 668, + "english": "generator", + "frequency": 37, + "category": "business_core", + "chinese": "发生器", + "phonetic": "/ˈdʒenəreɪtə(r)/", + "forms": { + "noun": "generators (复数)", + "plural": "generators (复数)" + }, + "example": { + "en": "The vacuum generator is not working.", + "cn": "真空发生器不工作了。" + } + }, + { + "id": 670, + "english": "known", + "frequency": 184, + "category": "business_core", + "chinese": "已知的", + "phonetic": "/nəʊn/", + "forms": {}, + "example": { + "en": "This is a known issue.", + "cn": "这是一个已知的问题。" + } + }, + { + "id": 672, + "english": "typical", + "frequency": 48, + "category": "business_core", + "chinese": "典型的", + "phonetic": "/ˈtɪpɪkl/", + "forms": {}, + "example": { + "en": "We want to see a typical curve.", + "cn": "我们想看一个典型的曲线。" + } + }, + { + "id": 673, + "english": "reference", + "frequency": 27, + "category": "business_core", + "chinese": "参考", + "phonetic": "/ˈrefrəns/", + "forms": { + "noun": "references (复数)", + "plural": "references (复数)" + }, + "example": { + "en": "We will take this as a reference.", + "cn": "我们将以此为参考。" + } + }, + { + "id": 674, + "english": "calibration", + "frequency": 21, + "category": "business_core", + "chinese": "校准", + "phonetic": "/ˌkælɪˈbreɪʃn/", + "forms": { + "noun": "calibrations (复数)", + "plural": "calibrations (复数)" + }, + "example": { + "en": "CP can help with the sensor calibration.", + "cn": "CP可以帮助进行传感器校准。" + } + }, + { + "id": 675, + "english": "quotes", + "frequency": 25, + "category": "business_core", + "chinese": "报价", + "phonetic": "/kwəʊts/", + "forms": { + "singular": "quote (单数)", + "verb": [ + "quots (第三人称单数)", + "quoting (现在分词)", + "quoted (过去式/过去分词)" + ] + }, + "example": { + "en": "Please make sure you have quotes and lead times.", + "cn": "请确保您有报价和交货时间。" + } + }, + { + "id": 676, + "english": "messages", + "frequency": 26, + "category": "business_core", + "chinese": "消息", + "phonetic": "/ˈmesɪdʒɪz/", + "forms": { + "singular": "message (单数)", + "verb": [ + "messages (第三人称单数)", + "messaging (现在分词)", + "messaged (过去式/过去分词)" + ] + }, + "example": { + "en": "Send me Teams messages if you have questions.", + "cn": "如果你有问题,请给我发Teams消息。" + } + }, + { + "id": 678, + "english": "circuit", + "frequency": 44, + "category": "technical_core", + "chinese": "电路", + "phonetic": "/ˈsɜːkɪt/", + "forms": { + "noun": "circuits (复数)", + "plural": "circuits (复数)" + }, + "example": { + "en": "The LED circuit has a series resistor.", + "cn": "LED电路有一个串联电阻。" + } + }, + { + "id": 681, + "english": "aspect", + "frequency": 37, + "category": "business_core", + "chinese": "方面", + "phonetic": "/ˈæspekt/", + "forms": { + "noun": "aspects (复数)", + "plural": "aspects (复数)" + }, + "example": { + "en": "We can look at it from a potential improvement aspect.", + "cn": "我们可以从潜在改进的方面来看待它。" + } + }, + { + "id": 682, + "english": "list", + "frequency": 32, + "category": "business_core", + "chinese": "列出", + "phonetic": "/lɪst/", + "forms": { + "verb": [ + "lists (第三人称单数)", + "listing (现在分词)", + "listed (过去式/过去分词)" + ], + "plural": "lists (复数)" + }, + "example": { + "en": "You don't list the intensity of the side light.", + "cn": "你没有列出侧灯的强度。" + } + }, + { + "id": 684, + "english": "common", + "frequency": 44, + "category": "business_core", + "chinese": "常见的", + "phonetic": "/ˈkɒmən/", + "forms": {}, + "example": { + "en": "Using a side light seems to be common practice.", + "cn": "使用侧灯似乎是普遍的做法。" + } + }, + { + "id": 685, + "english": "practice", + "frequency": 44, + "category": "business_core", + "chinese": "实践;做法", + "phonetic": "/ˈpræktɪs/", + "forms": { + "noun": "practices (复数)", + "plural": "practices (复数)" + }, + "example": { + "en": "This is a common practice in the industry.", + "cn": "这是行业内的普遍做法。" + } + }, + { + "id": 686, + "english": "catalog", + "frequency": 38, + "category": "business_core", + "chinese": "目录", + "phonetic": "/ˈkætəlɒɡ/", + "forms": { + "noun": "catalogs (复数)", + "plural": "catalogs (复数)" + }, + "example": { + "en": "Luke sent a 68 page catalog.", + "cn": "卢克发来了一份68页的目录。" + } + }, + { + "id": 687, + "english": "extracted", + "frequency": 37, + "category": "action_verbs", + "chinese": "提取的", + "phonetic": "/ɪkˈstræktɪd/", + "forms": { + "past_participle": "extracted (过去分词)", + "base_verb": "extract (动词原形)", + "verb": [ + "extracts (第三人称单数)", + "extracting (现在分词)", + "extracted (过去式/过去分词)" + ] + }, + "example": { + "en": "This is what I extracted from Luke's measurements.", + "cn": "这是我从卢克的测量数据中提取的。" + } + }, + { + "id": 688, + "english": "measurements", + "frequency": 48, + "category": "technical_core", + "chinese": "测量", + "phonetic": "/ˈmeʒəmənts/", + "forms": { + "singular": "measurement (单数)" + }, + "example": { + "en": "The measurements are accurate.", + "cn": "测量是准确的。" + } + }, + { + "id": 689, + "english": "arrangements", + "frequency": 28, + "category": "business_core", + "chinese": "布置;安排", + "phonetic": "/əˈreɪndʒmənts/", + "forms": { + "singular": "arrangement (单数)" + }, + "example": { + "en": "There are two arrangements of the sensor.", + "cn": "有两种传感器的布置方式。" + } + }, + { + "id": 690, + "english": "actual", + "frequency": 37, + "category": "business_core", + "chinese": "实际的", + "phonetic": "/ˈæktʃuəl/", + "forms": {}, + "example": { + "en": "This shows the actual condition in the chuck.", + "cn": "这显示了卡盘内的实际情况。" + } + }, + { + "id": 692, + "english": "false", + "frequency": 39, + "category": "business_core", + "chinese": "错误的", + "phonetic": "/fɔːls/", + "forms": {}, + "example": { + "en": "This gives a false impression of good clamping.", + "cn": "这给人一种夹紧良好的错觉。" + } + }, + { + "id": 694, + "english": "consequence", + "frequency": 30, + "category": "business_core", + "chinese": "结果;后果", + "phonetic": "/ˈkɒnsɪkwəns/", + "forms": { + "noun": "consequences (复数)", + "plural": "consequences (复数)" + }, + "example": { + "en": "As a consequence, we need to rework the chucks.", + "cn": "因此,我们需要返工这些卡盘。" + } + }, + { + "id": 696, + "english": "effective", + "frequency": 39, + "category": "business_core", + "chinese": "有效的", + "phonetic": "/ɪˈfektɪv/", + "forms": {}, + "example": { + "en": "The pressure measurement is not effective.", + "cn": "压力测量是无效的。" + } + }, + { + "id": 697, + "english": "port", + "frequency": 32, + "category": "business_core", + "chinese": "端口", + "phonetic": "/pɔːt/", + "forms": { + "noun": "ports (复数)", + "plural": "ports (复数)" + }, + "example": { + "en": "The chuck needs a second port for the sensor.", + "cn": "卡盘需要第二个端口用于传感器。" + } + }, + { + "id": 698, + "english": "resistors", + "frequency": 27, + "category": "technical_core", + "chinese": "电阻器", + "phonetic": "/rɪˈzɪstəz/", + "forms": { + "singular": "resistor (单数)" + }, + "example": { + "en": "The 50Ohm series resistor was tested.", + "cn": "50欧姆串联电阻已经过测试。" + } + }, + { + "id": 700, + "english": "criteria", + "frequency": 34, + "category": "business_core", + "chinese": "标准", + "phonetic": "/kraɪˈtɪəriə/", + "forms": { + "singular": "criterion (单数)" + }, + "example": { + "en": "What is the criteria for choosing the setting?", + "cn": "选择设置的标准是什么?" + } + }, + { + "id": 701, + "english": "choosing", + "frequency": 24, + "category": "business_core", + "chinese": "选择", + "phonetic": "/ˈtʃuːzɪŋ/", + "forms": { + "verb": [ + "chooses (第三人称单数)", + "choosing (现在分词)", + "chose (过去式)", + "chosen (过去分词)" + ] + }, + "example": { + "en": "The criteria for choosing the right material is important.", + "cn": "选择合适材料的标准很重要。" + } + }, + { + "id": 702, + "english": "minimal", + "frequency": 20, + "category": "business_core", + "chinese": "最小的", + "phonetic": "/ˈmɪnɪml/", + "forms": {}, + "example": { + "en": "We want minimal impact on the chuck appearance.", + "cn": "我们希望对卡盘外观的影响最小。" + } + }, + { + "id": 703, + "english": "maintains", + "frequency": 30, + "category": "action_verbs", + "chinese": "保持", + "phonetic": "/meɪnˈteɪnz/", + "forms": { + "verb": [ + "maintains (第三人称单数)", + "maintaining (现在分词)", + "maintained (过去式/过去分词)" + ] + }, + "example": { + "en": "This setting maintains a darker appearance of the chuck.", + "cn": "此设置可保持卡盘较暗的外观。" + } + }, + { + "id": 704, + "english": "darker", + "frequency": 23, + "category": "business_core", + "chinese": "更暗的", + "phonetic": "/ˈdɑːkə(r)/", + "forms": {}, + "example": { + "en": "The chuck has a darker appearance.", + "cn": "卡盘的外观更暗。" + } + }, + { + "id": 705, + "english": "screening", + "frequency": 40, + "category": "business_core", + "chinese": "筛选", + "phonetic": "/ˈskriːnɪŋ/", + "forms": { + "present_participle": "screening (现在分词)", + "base_verb": "screen (动词原形)", + "verb": [ + "screens (第三人称单数)", + "screening (现在分词)", + "screened (过去式/过去分词)" + ], + "plural": "screenings (复数)" + }, + "example": { + "en": "Did you do a screening of the settings?", + "cn": "你对设置进行筛选了吗?" + } + }, + { + "id": 706, + "english": "range", + "frequency": 38, + "category": "business_core", + "chinese": "范围", + "phonetic": "/reɪndʒ/", + "forms": { + "noun": "ranges (复数)", + "plural": "ranges (复数)" + }, + "example": { + "en": "Can you show images for a range of settings?", + "cn": "你能显示一系列设置的图像吗?" + } + }, + { + "id": 707, + "english": "gradual", + "frequency": 22, + "category": "business_core", + "chinese": "逐渐的", + "phonetic": "/ˈɡrædʒuəl/", + "forms": {}, + "example": { + "en": "The change in appearance is gradual.", + "cn": "外观的变化是逐渐的。" + } + }, + { + "id": 708, + "english": "tradeoff", + "frequency": 22, + "category": "business_core", + "chinese": "权衡", + "phonetic": "/ˈtreɪdɒf/", + "forms": { + "noun": "tradeoffs (复数)", + "plural": "tradeoffs (复数)" + }, + "example": { + "en": "There is a tradeoff between die and chuck appearance.", + "cn": "在芯片和卡盘外观之间需要权衡。" + } + }, + { + "id": 710, + "english": "eventual", + "frequency": 49, + "category": "business_core", + "chinese": "最终的", + "phonetic": "/ɪˈventʃuəl/", + "forms": {}, + "example": { + "en": "This is for an eventual upgrade.", + "cn": "这是为了最终的升级。" + } + }, + { + "id": 711, + "english": "mentioned", + "frequency": 29, + "category": "business_core", + "chinese": "提到的", + "phonetic": "/ˈmenʃənd/", + "forms": { + "past_participle": "mentioned (过去分词)", + "base_verb": "mention (动词原形)", + "verb": [ + "mentions (第三人称单数)", + "mentioning (现在分词)", + "mentioned (过去式/过去分词)" + ] + }, + "example": { + "en": "You mentioned that the red LEDs are 6V.", + "cn": "你提到红色LED是6V的。" + } + }, + { + "id": 712, + "english": "failures", + "frequency": 43, + "category": "business_core", + "chinese": "故障", + "phonetic": "/ˈfeɪljəz/", + "forms": { + "singular": "failure (单数)" + }, + "example": { + "en": "We need to prepare for potential failures.", + "cn": "我们需要为潜在的故障做准备。" + } + }, + { + "id": 713, + "english": "repeatable", + "frequency": 27, + "category": "action_verbs", + "chinese": "可重复的", + "phonetic": "/rɪˈpiːtəbl/", + "forms": {}, + "example": { + "en": "We need to see how repeatable the behavior is.", + "cn": "我们需要看看这种行为的可重复性如何。" + } + }, + { + "id": 716, + "english": "downset", + "frequency": 38, + "category": "business_core", + "chinese": "下压", + "phonetic": "/ˈdaʊnset/", + "forms": { + "noun": "downsets (复数)", + "plural": "downsets (复数)" + }, + "example": { + "en": "The chuck's downset is not consistent.", + "cn": "卡盘的下压不一致。" + } + }, + { + "id": 717, + "english": "gauge", + "frequency": 45, + "category": "business_core", + "chinese": "测量仪", + "phonetic": "/ɡeɪdʒ/", + "forms": { + "noun": "gauges (复数)", + "plural": "gauges (复数)" + }, + "example": { + "en": "Perform the force gauge pull test.", + "cn": "执行测力计拉力测试。" + } + }, + { + "id": 718, + "english": "frictional", + "frequency": 28, + "category": "business_core", + "chinese": "摩擦的", + "phonetic": "/ˈfrɪkʃənl/", + "forms": {}, + "example": { + "en": "Measure the frictional holding forces.", + "cn": "测量摩擦保持力。" + } + }, + { + "id": 719, + "english": "holding", + "frequency": 27, + "category": "business_core", + "chinese": "保持", + "phonetic": "/ˈhəʊldɪŋ/", + "forms": { + "present_participle": "holding (现在分词)", + "base_verb": "hold (动词原形)", + "verb": [ + "holds (第三人称单数)", + "holding (现在分词)", + "holded (过去式/过去分词)" + ], + "plural": "holdings (复数)" + }, + "example": { + "en": "The holding force is important.", + "cn": "保持力很重要。" + } + }, + { + "id": 720, + "english": "forces", + "frequency": 45, + "category": "action_verbs", + "chinese": "力", + "phonetic": "/fɔːsɪz/", + "forms": { + "singular": "force (单数)", + "verb": [ + "forcs (第三人称单数)", + "forcing (现在分词)", + "forced (过去式/过去分词)" + ] + }, + "example": { + "en": "The vacuum holes create holding forces.", + "cn": "真空孔产生保持力。" + } + }, + { + "id": 722, + "english": "install", + "frequency": 27, + "category": "technical_operations", + "chinese": "安装", + "phonetic": "/ɪnˈstɔːl/", + "forms": { + "verb": [ + "installs (第三人称单数)", + "installing (现在分词)", + "installed (过去式/过去分词)" + ] + }, + "example": { + "en": "We will install the sensors on the machine.", + "cn": "我们将在机器上安装传感器。" + } + }, + { + "id": 723, + "english": "beta", + "frequency": 37, + "category": "business_core", + "chinese": "贝塔;测试版", + "phonetic": "/ˈbiːtə/", + "forms": { + "noun": "betas (复数)", + "plural": "betas (复数)" + }, + "example": { + "en": "This will serve as a beta test.", + "cn": "这将作为一次beta测试。" + } + }, + { + "id": 724, + "english": "dynamic", + "frequency": 40, + "category": "business_core", + "chinese": "动态的", + "phonetic": "/daɪˈnæmɪk/", + "forms": {}, + "example": { + "en": "This is a dynamic pressure measurement.", + "cn": "这是一种动态压力测量。" + } + }, + { + "id": 726, + "english": "respective", + "frequency": 25, + "category": "business_core", + "chinese": "各自的", + "phonetic": "/rɪˈspektɪv/", + "forms": {}, + "example": { + "en": "Add the data to the respective log files.", + "cn": "将数据添加到各自的日志文件中。" + } + }, + { + "id": 727, + "english": "log", + "frequency": 45, + "category": "business_core", + "chinese": "日志", + "phonetic": "/lɒɡ/", + "forms": { + "noun": "logs (复数)", + "plural": "logs (复数)" + }, + "example": { + "en": "Check the log files for errors.", + "cn": "检查日志文件中的错误。" + } + }, + { + "id": 728, + "english": "indications", + "frequency": 26, + "category": "business_core", + "chinese": "迹象", + "phonetic": "/ˌɪndɪˈkeɪʃnz/", + "forms": { + "singular": "indication (单数)" + }, + "example": { + "en": "There are some indications of a problem.", + "cn": "有一些问题迹象。" + } + }, + { + "id": 729, + "english": "non-uniformity", + "frequency": 47, + "category": "business_core", + "chinese": "不均匀性", + "phonetic": "/ˌnɒnˌjuːnɪˈfɔːməti/", + "forms": { + "noun": "non-uniformities (复数)", + "plural": "non-uniformities (复数)" + }, + "example": { + "en": "The light non-uniformity may have an effect.", + "cn": "光的不均匀性可能会产生影响。" + } + }, + { + "id": 730, + "english": "contributor", + "frequency": 44, + "category": "business_core", + "chinese": "贡献者;促成因素", + "phonetic": "/kənˈtrɪbjətə(r)/", + "forms": { + "noun": "contributors (复数)", + "plural": "contributors (复数)" + }, + "example": { + "en": "The lens was identified as a contributor to this problem.", + "cn": "镜头被认为是导致此问题的因素之一。" + } + }, + { + "id": 732, + "english": "re-positioning", + "frequency": 45, + "category": "business_core", + "chinese": "重新定位", + "phonetic": "/ˌriːpəˈzɪʃənɪŋ/", + "forms": { + "present_participle": "re-positioning (现在分词)", + "base_verb": "re-position (动词原形)", + "verb": [ + "re-positions (第三人称单数)", + "re-positioning (现在分词)", + "re-positioned (过去式/过去分词)" + ] + }, + "example": { + "en": "This requires a re-positioning of the camera.", + "cn": "这需要重新定位相机。" + } + }, + { + "id": 734, + "english": "worse", + "frequency": 35, + "category": "business_core", + "chinese": "更糟的", + "phonetic": "/wɜːs/", + "forms": {}, + "example": { + "en": "The situation may get worse.", + "cn": "情况可能会变得更糟。" + } + }, + { + "id": 735, + "english": "hurts", + "frequency": 30, + "category": "business_core", + "chinese": "损害", + "phonetic": "/hɜːts/", + "forms": { + "verb": [ + "hurts (第三人称单数)", + "hurting (现在分词)", + "hurt (过去式/过去分词)" + ] + }, + "example": { + "en": "This non-uniformity hurts our yield.", + "cn": "这种不均匀性损害了我们的良率。" + } + }, + { + "id": 736, + "english": "yield", + "frequency": 45, + "category": "business_core", + "chinese": "产量", + "phonetic": "/jiːld/", + "forms": { + "noun": "yields (复数)", + "plural": "yields (复数)" + }, + "example": { + "en": "We need to improve the yield.", + "cn": "我们需要提高产量。" + } + }, + { + "id": 737, + "english": "replacement", + "frequency": 48, + "category": "action_verbs", + "chinese": "替换品", + "phonetic": "/rɪˈpleɪsmənt/", + "forms": { + "noun": "replacements (复数)", + "plural": "replacements (复数)" + }, + "example": { + "en": "We don't need a replacement for now.", + "cn": "我们暂时不需要替换品。" + } + }, + { + "id": 738, + "english": "upcoming", + "frequency": 26, + "category": "business_core", + "chinese": "即将到来的", + "phonetic": "/ˈʌpkʌmɪŋ/", + "forms": { + "present_participle": "upcoming (现在分词)", + "base_verb": "upcom (动词原形)" + }, + "example": { + "en": "This is for the upcoming upgrade.", + "cn": "这是为即将到来的升级。" + } + }, + { + "id": 739, + "english": "aligning", + "frequency": 21, + "category": "business_core", + "chinese": "对准", + "phonetic": "/əˈlaɪnɪŋ/", + "forms": { + "verb": [ + "aligns (第三人称单数)", + "aligning (现在分词)", + "aligned (过去式/过去分词)" + ] + }, + "example": { + "en": "We are aligning the process chucks and clamps.", + "cn": "我们正在对准工艺卡盘和夹具。" + } + }, + { + "id": 740, + "english": "absolute", + "frequency": 36, + "category": "business_core", + "chinese": "绝对的", + "phonetic": "/ˈæbsəluːt/", + "forms": {}, + "example": { + "en": "This is the absolute minimum.", + "cn": "这是绝对的最低要求。" + } + }, + { + "id": 741, + "english": "minimum", + "frequency": 32, + "category": "business_core", + "chinese": "最小量", + "phonetic": "/ˈmɪnɪməm/", + "forms": { + "noun": "minimums (复数)", + "plural": "minimums (复数)" + }, + "example": { + "en": "We need to send the absolute minimum.", + "cn": "我们需要发送最少的数量。" + } + }, + { + "id": 742, + "english": "fittings", + "frequency": 24, + "category": "business_core", + "chinese": "配件", + "phonetic": "/ˈfɪtɪŋz/", + "forms": { + "singular": "fitting (单数)" + }, + "example": { + "en": "Please add fittings and brackets.", + "cn": "请添加配件和支架。" + } + }, + { + "id": 743, + "english": "recommended", + "frequency": 39, + "category": "business_core", + "chinese": "推荐的", + "phonetic": "/ˌrekəˈmendɪd/", + "forms": { + "past_participle": "recommended (过去分词)", + "base_verb": "recommend (动词原形)", + "verb": [ + "recommends (第三人称单数)", + "recommending (现在分词)", + "recommended (过去式/过去分词)" + ] + }, + "example": { + "en": "Provide the recommended camera settings.", + "cn": "提供推荐的相机设置。" + } + }, + { + "id": 744, + "english": "aperture", + "frequency": 28, + "category": "business_core", + "chinese": "光圈", + "phonetic": "/ˈæpətʃə(r)/", + "forms": { + "noun": "apertures (复数)", + "plural": "apertures (复数)" + }, + "example": { + "en": "The camera has a fixed aperture.", + "cn": "该相机具有固定光圈。" + } + }, + { + "id": 746, + "english": "smooth", + "frequency": 27, + "category": "business_core", + "chinese": "顺利的", + "phonetic": "/smuːð/", + "forms": {}, + "example": { + "en": "This will enable a smooth installation.", + "cn": "这将使安装顺利进行。" + } + }, + { + "id": 747, + "english": "outline", + "frequency": 26, + "category": "business_core", + "chinese": "概述;轮廓", + "phonetic": "/ˈaʊtlaɪn/", + "forms": { + "noun": "outlines (复数)", + "plural": "outlines (复数)" + }, + "example": { + "en": "Please outline what we have.", + "cn": "请概述我们所拥有的。" + } + }, + { + "id": 748, + "english": "spares", + "frequency": 26, + "category": "business_core", + "chinese": "备件", + "phonetic": "/speəz/", + "forms": { + "singular": "spare (单数)", + "verb": [ + "spars (第三人称单数)", + "sparing (现在分词)", + "spared (过去式/过去分词)" + ] + }, + "example": { + "en": "We need spares in case of failures.", + "cn": "我们需要备件以防发生故障。" + } + }, + { + "id": 749, + "english": "couplers", + "frequency": 27, + "category": "business_core", + "chinese": "联轴器", + "phonetic": "/ˈkʌpləz/", + "forms": { + "singular": "coupler (单数)" + }, + "example": { + "en": "We need to send the correct couplers.", + "cn": "我们需要发送正确的联轴器。" + } + }, + { + "id": 750, + "english": "identified", + "frequency": 38, + "category": "business_core", + "chinese": "识别出的", + "phonetic": "/aɪˈdentɪfaɪd/", + "forms": { + "past_participle": "identified (过去分词)", + "base_verb": "identifi (动词原形)", + "verb": [ + "identifies (第三人称单数)", + "identifying (现在分词)", + "identified (过去式/过去分词)" + ] + }, + "example": { + "en": "Luke identified the correct couplers.", + "cn": "卢克识别出了正确的联轴器。" + } + }, + { + "id": 751, + "english": "alternatively", + "frequency": 46, + "category": "business_core", + "chinese": "或者", + "phonetic": "/ɔːlˈtɜːnətɪvli/", + "forms": { + "adverb": "alternatively (副词)", + "base_adjective": "alternative (形容词原形)", + "adjective": "alternative (形容词)" + }, + "example": { + "en": "Alternatively, we can have them sent directly.", + "cn": "或者,我们可以让他们直接发送。" + } + }, + { + "id": 752, + "english": "directly", + "frequency": 32, + "category": "business_core", + "chinese": "直接地", + "phonetic": "/dəˈrektli/", + "forms": { + "adverb": "directly (副词)", + "base_adjective": "direct (形容词原形)", + "adjective": "direct (形容词)" + }, + "example": { + "en": "Please contact me directly.", + "cn": "请直接与我联系。" + } + }, + { + "id": 753, + "english": "conclude", + "frequency": 37, + "category": "business_core", + "chinese": "断定", + "phonetic": "/kənˈkluːd/", + "forms": { + "verb": [ + "concludes (第三人称单数)", + "concluding (现在分词)", + "concluded (过去式/过去分词)" + ] + }, + "example": { + "en": "If we conclude this can address the problem, please send one.", + "cn": "如果我们断定这可以解决问题,请发送一个。" + } + }, + { + "id": 754, + "english": "cylinders", + "frequency": 47, + "category": "business_core", + "chinese": "气缸", + "phonetic": "/ˈsɪlɪndəz/", + "forms": { + "singular": "cylinder (单数)" + }, + "example": { + "en": "This is for the cylinders of the wafer table.", + "cn": "这是用于晶圆台的气缸。" + } + }, + { + "id": 756, + "english": "component", + "frequency": 25, + "category": "technical_core", + "chinese": "部件", + "phonetic": "/kəmˈpəʊnənt/", + "forms": { + "noun": "components (复数)", + "plural": "components (复数)" + }, + "example": { + "en": "This is a high-performance component.", + "cn": "这是一个高性能部件。" + } + }, + { + "id": 758, + "english": "individual", + "frequency": 26, + "category": "business_core", + "chinese": "个别的", + "phonetic": "/ˌɪndɪˈvɪdʒuəl/", + "forms": {}, + "example": { + "en": "Coordinate with the individual DRIs.", + "cn": "与各个直接责任人协调。" + } + }, + { + "id": 761, + "english": "stand-by", + "frequency": 31, + "category": "business_core", + "chinese": "待命", + "phonetic": "/ˈstænd baɪ/", + "forms": { + "noun": "stand-bys (复数)", + "plural": "stand-bys (复数)" + }, + "example": { + "en": "Please be on stand-by to review images.", + "cn": "请随时待命以审查图像。" + } + }, + { + "id": 762, + "english": "fine-tune", + "frequency": 36, + "category": "business_core", + "chinese": "微调", + "phonetic": "/ˌfaɪn ˈtjuːn/", + "forms": { + "verb": [ + "fine-tunes (第三人称单数)", + "fine-tuning (现在分词)", + "fine-tuned (过去式/过去分词)" + ] + }, + "example": { + "en": "Help fine-tune the light and camera settings.", + "cn": "帮助微调灯光和相机设置。" + } + }, + { + "id": 763, + "english": "correctness", + "frequency": 32, + "category": "business_core", + "chinese": "正确性", + "phonetic": "/kəˈrektnəs/", + "forms": { + "noun": "不可数名词" + }, + "example": { + "en": "We need to verify the correctness of parts.", + "cn": "我们需要验证零件的正确性。" + } + }, + { + "id": 764, + "english": "realize", + "frequency": 46, + "category": "business_core", + "chinese": "意识到", + "phonetic": "/ˈriːəlaɪz/", + "forms": { + "verb": [ + "realizes (第三人称单数)", + "realizing (现在分词)", + "realized (过去式/过去分词)" + ] + }, + "example": { + "en": "We need to realize that we need to go back.", + "cn": "我们需要意识到我们需要回去。" + } + }, + { + "id": 766, + "english": "rotated", + "frequency": 43, + "category": "business_core", + "chinese": "旋转的", + "phonetic": "/rəʊˈteɪtɪd/", + "forms": { + "past_participle": "rotated (过去分词)", + "base_verb": "rotat (动词原形)", + "verb": [ + "rotats (第三人称单数)", + "rotating (现在分词)", + "rotated (过去式/过去分词)" + ] + }, + "example": { + "en": "Test the rotated position sensor.", + "cn": "测试旋转后的位置传感器。" + } + }, + { + "id": 767, + "english": "specifically", + "frequency": 41, + "category": "business_core", + "chinese": "具体地", + "phonetic": "/spəˈsɪfɪkli/", + "forms": { + "adverb": "specifically (副词)", + "base_adjective": "specific (形容词原形)", + "adjective": "specific (形容词)" + }, + "example": { + "en": "He will test the sensor specifically.", + "cn": "他将专门测试该传感器。" + } + }, + { + "id": 768, + "english": "pins", + "frequency": 45, + "category": "business_core", + "chinese": "销钉", + "phonetic": "/pɪnz/", + "forms": { + "singular": "pin (单数)", + "verb": [ + "pins (第三人称单数)", + "pining (现在分词)", + "pined (过去式/过去分词)" + ] + }, + "example": { + "en": "The pins on the indexer clamps are a risk.", + "cn": "分度器夹具上的销钉存在风险。" + } + }, + { + "id": 770, + "english": "touch", + "frequency": 45, + "category": "business_core", + "chinese": "触摸;涉及", + "phonetic": "/tʌtʃ/", + "forms": { + "verb": [ + "touches (第三人称单数)", + "touching (现在分词)", + "touched (过去式/过去分词)" + ], + "plural": "touches (复数)" + }, + "example": { + "en": "Do not touch it.", + "cn": "不要碰它。" + } + }, + { + "id": 771, + "english": "enhancement", + "frequency": 27, + "category": "action_verbs", + "chinese": "增强", + "phonetic": "/ɪnˈhɑːnsmənt/", + "forms": { + "noun": "enhancements (复数)", + "plural": "enhancements (复数)" + }, + "example": { + "en": "This is a key enhancement.", + "cn": "这是一项关键的增强功能。" + } + }, + { + "id": 772, + "english": "flux", + "frequency": 36, + "category": "business_core", + "chinese": "助焊剂", + "phonetic": "/flʌks/", + "forms": { + "noun": "fluxes (复数)", + "plural": "fluxes (复数)" + }, + "example": { + "en": "The flux is flowing down the openings.", + "cn": "助焊剂正从开口处流下。" + } + }, + { + "id": 773, + "english": "flowing", + "frequency": 21, + "category": "business_core", + "chinese": "流动的", + "phonetic": "/ˈfləʊɪŋ/", + "forms": { + "present_participle": "flowing (现在分词)", + "base_verb": "flow (动词原形)", + "verb": [ + "flows (第三人称单数)", + "flowing (现在分词)", + "flowed (过去式/过去分词)" + ] + }, + "example": { + "en": "The water is flowing.", + "cn": "水在流动。" + } + }, + { + "id": 774, + "english": "openings", + "frequency": 32, + "category": "business_core", + "chinese": "开口", + "phonetic": "/ˈəʊpnɪŋz/", + "forms": { + "singular": "opening (单数)" + }, + "example": { + "en": "The flux is flowing down the openings in the vacuum chamber.", + "cn": "助焊剂正从真空室的开口处流下。" + } + }, + { + "id": 775, + "english": "chamber", + "frequency": 22, + "category": "business_core", + "chinese": "室", + "phonetic": "/ˈtʃeɪmbə(r)/", + "forms": { + "noun": "chambers (复数)", + "plural": "chambers (复数)" + }, + "example": { + "en": "The vacuum chamber needs to be cleaned.", + "cn": "真空室需要清洁。" + } + }, + { + "id": 776, + "english": "crucial", + "frequency": 32, + "category": "business_core", + "chinese": "至关重要的", + "phonetic": "/ˈkruːʃl/", + "forms": {}, + "example": { + "en": "These are crucial to extend the time between cleaning.", + "cn": "这些对于延长清洁间隔时间至关重要。" + } + }, + { + "id": 778, + "english": "cleaning", + "frequency": 22, + "category": "business_core", + "chinese": "清洁", + "phonetic": "/ˈkliːnɪŋ/", + "forms": { + "present_participle": "cleaning (现在分词)", + "base_verb": "clean (动词原形)", + "verb": [ + "cleans (第三人称单数)", + "cleaning (现在分词)", + "cleaned (过去式/过去分词)" + ], + "plural": "cleanings (复数)" + }, + "example": { + "en": "The time between cleaning is too short.", + "cn": "清洁间隔时间太短。" + } + }, + { + "id": 779, + "english": "add-on", + "frequency": 21, + "category": "business_core", + "chinese": "附加物", + "phonetic": "/ˈæd ɒn/", + "forms": { + "noun": "add-ons (复数)", + "plural": "add-ons (复数)" + }, + "example": { + "en": "This is a small add-on to the VRO.", + "cn": "这是对VRO的一个小补充。" + } + }, + { + "id": 780, + "english": "maintenance", + "frequency": 32, + "category": "business_core", + "chinese": "维护", + "phonetic": "/ˈmeɪntənəns/", + "forms": {}, + "example": { + "en": "We need to do this every maintenance.", + "cn": "我们每次维护都需要这样做。" + } + }, + { + "id": 781, + "english": "exhaust", + "frequency": 33, + "category": "business_core", + "chinese": "排气", + "phonetic": "/ɪɡˈzɔːst/", + "forms": { + "noun": "exhausts (复数)", + "plural": "exhausts (复数)" + }, + "example": { + "en": "Check the flow meters in the exhaust path.", + "cn": "检查排气路径中的流量计。" + } + }, + { + "id": 782, + "english": "path", + "frequency": 46, + "category": "business_core", + "chinese": "路径", + "phonetic": "/pɑːθ/", + "forms": { + "noun": "paths", + "plural": "paths (复数)" + }, + "example": { + "en": "The exhaust path is blocked.", + "cn": "排气路径被堵塞了。" + } + }, + { + "id": 783, + "english": "establish", + "frequency": 46, + "category": "business_core", + "chinese": "建立", + "phonetic": "/ɪˈstæblɪʃ/", + "forms": { + "verb": [ + "establishes (第三人称单数)", + "establishing (现在分词)", + "established (过去式/过去分词)" + ] + }, + "example": { + "en": "We need to establish an understanding.", + "cn": "我们需要建立共识。" + } + }, + { + "id": 784, + "english": "mountings", + "frequency": 35, + "category": "technical_operations", + "chinese": "安装件", + "phonetic": "/ˈmaʊntɪŋz/", + "forms": { + "singular": "mounting (单数)" + }, + "example": { + "en": "Check all sensor mountings.", + "cn": "检查所有传感器的安装件。" + } + }, + { + "id": 785, + "english": "screws", + "frequency": 30, + "category": "business_core", + "chinese": "螺丝", + "phonetic": "/skruːz/", + "forms": { + "singular": "screw (单数)", + "verb": [ + "screws (第三人称单数)", + "screwing (现在分词)", + "screwed (过去式/过去分词)" + ] + }, + "example": { + "en": "Make sure all screws are tight.", + "cn": "确保所有螺丝都已拧紧。" + } + }, + { + "id": 786, + "english": "tight", + "frequency": 20, + "category": "business_core", + "chinese": "紧的", + "phonetic": "/taɪt/", + "forms": {}, + "example": { + "en": "The screws are not tight enough.", + "cn": "螺丝不够紧。" + } + }, + { + "id": 787, + "english": "wetness", + "frequency": 29, + "category": "business_core", + "chinese": "湿度", + "phonetic": "/ˈwetnəs/", + "forms": { + "noun": "不可数名词" + }, + "example": { + "en": "Document the wetness inside the filter tanks.", + "cn": "记录滤清器罐内的湿度。" + } + }, + { + "id": 788, + "english": "electrodes", + "frequency": 26, + "category": "business_core", + "chinese": "电极", + "phonetic": "/ɪˈlektrəʊdz/", + "forms": { + "singular": "electrode (单数)" + }, + "example": { + "en": "Is there flux on the inner MHG electrodes?", + "cn": "内部MHG电极上是否有助焊剂?" + } + }, + { + "id": 790, + "english": "blurry", + "frequency": 24, + "category": "business_core", + "chinese": "模糊的", + "phonetic": "/ˈblɜːri/", + "forms": {}, + "example": { + "en": "The edges of the lead frame are too blurry.", + "cn": "引线框架的边缘太模糊了。" + } + }, + { + "id": 791, + "english": "major", + "frequency": 25, + "category": "business_core", + "chinese": "重大的", + "phonetic": "/ˈmeɪdʒə(r)/", + "forms": {}, + "example": { + "en": "This is a major setback.", + "cn": "这是一个重大的挫折。" + } + }, + { + "id": 793, + "english": "expecting", + "frequency": 39, + "category": "business_core", + "chinese": "期待", + "phonetic": "/ɪkˈspektɪŋ/", + "forms": { + "verb": [ + "expects (第三人称单数)", + "expecting (现在分词)", + "expected (过去式/过去分词)" + ] + }, + "example": { + "en": "We were expecting to reduce the PR problems.", + "cn": "我们原本期望减少 PR(图像识别)问题。" + } + }, + { + "id": 794, + "english": "significantly", + "frequency": 31, + "category": "business_core", + "chinese": "显著地", + "phonetic": "/sɪɡˈnɪfɪkəntli/", + "forms": { + "adverb": "significantly (副词)", + "base_adjective": "significant (形容词原形)", + "adjective": "significant (形容词)" + }, + "example": { + "en": "The new process significantly improved the quality.", + "cn": "新工艺显著提高了质量。" + } + }, + { + "id": 795, + "english": "square", + "frequency": 44, + "category": "business_core", + "chinese": "方形的", + "phonetic": "/skweə(r)/", + "forms": {}, + "example": { + "en": "It is not even square anymore.", + "cn": "它甚至不再是方形的了。" + } + }, + { + "id": 796, + "english": "hesitant", + "frequency": 41, + "category": "business_core", + "chinese": "犹豫的", + "phonetic": "/ˈhezɪtənt/", + "forms": {}, + "example": { + "en": "The team is hesitant to try this again.", + "cn": "团队对再次尝试此方法感到犹豫。" + } + }, + { + "id": 797, + "english": "varied", + "frequency": 34, + "category": "business_core", + "chinese": "变化的", + "phonetic": "/ˈveərid/", + "forms": { + "past_participle": "varied (过去分词)", + "base_verb": "vari (动词原形)", + "verb": [ + "varies (第三人称单数)", + "varying (现在分词)", + "varied (过去式/过去分词)" + ] + }, + "example": { + "en": "The results varied in the tests.", + "cn": "测试结果各不相同。" + } + }, + { + "id": 799, + "english": "develop", + "frequency": 22, + "category": "business_core", + "chinese": "制定;开发", + "phonetic": "/dɪˈveləp/", + "forms": { + "verb": [ + "develops (第三人称单数)", + "developing (现在分词)", + "developed (过去式/过去分词)" + ] + }, + "example": { + "en": "Please prepare to develop a plan.", + "cn": "请准备制定一个计划。" + } + }, + { + "id": 801, + "english": "pros", + "frequency": 37, + "category": "business_core", + "chinese": "优点", + "phonetic": "/prəʊz/", + "forms": {}, + "example": { + "en": "Think about the pros and cons.", + "cn": "考虑一下优缺点。" + } + }, + { + "id": 802, + "english": "cons", + "frequency": 22, + "category": "business_core", + "chinese": "缺点", + "phonetic": "/kɒnz/", + "forms": {}, + "example": { + "en": "What are the cons of this approach?", + "cn": "这种方法的缺点是什么?" + } + }, + { + "id": 803, + "english": "confidently", + "frequency": 30, + "category": "business_core", + "chinese": "自信地", + "phonetic": "/ˈkɒnfɪdəntli/", + "forms": { + "adverb": "confidently (副词)", + "base_adjective": "confident (形容词原形)", + "adjective": "confident (形容词)" + }, + "example": { + "en": "We can confidently install them.", + "cn": "我们可以自信地安装它们。" + } + }, + { + "id": 804, + "english": "down-holder", + "frequency": 22, + "category": "business_core", + "chinese": "压紧器", + "phonetic": "/daʊn ˈhəʊldə(r)/", + "forms": { + "noun": "down-holders (复数)", + "plural": "down-holders (复数)" + }, + "example": { + "en": "We need to perform down-holder tests.", + "cn": "我们需要执行压紧器测试。" + } + }, + { + "id": 805, + "english": "dispenser", + "frequency": 32, + "category": "business_core", + "chinese": "点胶机", + "phonetic": "/dɪˈspensə(r)/", + "forms": { + "noun": "dispensers (复数)", + "plural": "dispensers (复数)" + }, + "example": { + "en": "This is the left dispenser on the Die Bonders.", + "cn": "这是芯片贴合机上的左点胶机。" + } + }, + { + "id": 806, + "english": "mechanically", + "frequency": 22, + "category": "business_core", + "chinese": "机械地", + "phonetic": "/məˈkænɪkli/", + "forms": { + "adverb": "mechanically (副词)", + "base_adjective": "mechanical (形容词原形)", + "adjective": "mechanical (形容词)" + }, + "example": { + "en": "We mechanically press the frame down.", + "cn": "我们用机械方式将框架向下压。" + } + }, + { + "id": 807, + "english": "contact", + "frequency": 46, + "category": "business_core", + "chinese": "接触", + "phonetic": "/ˈkɒntækt/", + "forms": { + "noun": "contacts (复数)", + "plural": "contacts (复数)" + }, + "example": { + "en": "Bring the pads in closer contact to the vacuum holes.", + "cn": "使焊盘与真空孔更紧密地接触。" + } + }, + { + "id": 808, + "english": "manufacturer", + "frequency": 27, + "category": "business_core", + "chinese": "制造商", + "phonetic": "/ˌmænjuˈfæktʃərə(r)/", + "forms": { + "noun": "manufacturers (复数)", + "plural": "manufacturers (复数)" + }, + "example": { + "en": "Line up a XK manufacturer.", + "cn": "联系一家XK制造商。" + } + }, + { + "id": 809, + "english": "notice", + "frequency": 30, + "category": "business_core", + "chinese": "通知", + "phonetic": "/ˈnəʊtɪs/", + "forms": { + "noun": "notices (复数)", + "plural": "notices (复数)" + }, + "example": { + "en": "Make the down-holders on very short notice.", + "cn": "在很短的时间内制作好压紧器。" + } + }, + { + "id": 810, + "english": "side", + "frequency": 65, + "category": "high_frequency", + "chinese": "侧面", + "phonetic": "/saɪd/", + "forms": { + "noun": "sides (复数)", + "adjective": "侧面的,次要的", + "plural": "sides (复数)" + }, + "example": { + "en": "Please look at the problem from the other side.", + "cn": "请从另一面看待这个问题。" + } + }, + { + "id": 811, + "english": "light", + "frequency": 155, + "category": "high_frequency", + "chinese": "光", + "phonetic": "/laɪt/", + "forms": { + "verb": [ + "lights (第三人称单数)", + "lighting (现在分词)", + "lit (过去式/过去分词)" + ], + "adjective": "lighter (比较级), lightest (最高级)", + "plural": "lights (复数)" + }, + "example": { + "en": "The sun provides light and heat.", + "cn": "太阳提供光和热。" + } + }, + { + "id": 814, + "english": "expand", + "frequency": 14, + "category": "action_verbs", + "chinese": "扩展", + "phonetic": "/ɪkˈspænd/", + "forms": { + "verb": [ + "expands (第三人称单数)", + "expanding (现在分词)", + "expanded (过去式/过去分词)" + ] + }, + "example": { + "en": "The company plans to expand its operations in Europe.", + "cn": "公司计划在欧洲扩展业务。" + } + }, + { + "id": 819, + "english": "continue", + "frequency": 16, + "category": "action_verbs", + "chinese": "继续", + "phonetic": "/kənˈtɪnjuː/", + "forms": { + "verb": [ + "continues (第三人称单数)", + "continuing (现在分词)", + "continued (过去式/过去分词)" + ] + }, + "example": { + "en": "We will continue the discussion tomorrow.", + "cn": "我们明天将继续讨论。" + } + }, + { + "id": 820, + "english": "pursue", + "frequency": 12, + "category": "action_verbs", + "chinese": "继续", + "phonetic": "/pərˈsuː/", + "forms": { + "verb": [ + "pursues (第三人称单数)", + "pursuing (现在分词)", + "pursued (过去式/过去分词)" + ] + }, + "example": { + "en": "The company decided to pursue the new project.", + "cn": "公司决定继续推进这个新项目。" + } + }, + { + "id": 821, + "english": "drop", + "frequency": 15, + "category": "action_verbs", + "chinese": "放弃", + "phonetic": "/drɒp/", + "forms": { + "verb": [ + "drops (第三人称单数)", + "dropping (现在分词)", + "dropped (过去式/过去分词)" + ], + "noun": "drops (复数)", + "plural": "drops (复数)" + }, + "example": { + "en": "We may have to drop the idea due to lack of funding.", + "cn": "由于资金不足,我们可能不得不放弃这个想法。" + } + }, + { + "id": 823, + "english": "need", + "frequency": 109, + "category": "high_frequency", + "chinese": "需要", + "phonetic": "/niːd/", + "forms": { + "verb": [ + "needs (第三人称单数)", + "needing (现在分词)", + "needed (过去式/过去分词)" + ] + }, + "example": { + "en": "We need to analyze what needs to be done.", + "cn": "我们需要分析需要做什么。" + } + }, + { + "id": 826, + "english": "test", + "frequency": 66, + "category": "action_verbs", + "chinese": "测试", + "phonetic": "/test/", + "forms": { + "verb": [ + "tests (第三人称单数)", + "testing (现在分词)", + "tested (过去式/过去分词)" + ], + "noun": "tests (复数)", + "plural": "tests (复数)" + }, + "example": { + "en": "We need to test the new software thoroughly.", + "cn": "我们需要彻底测试新软件。" + } + }, + { + "id": 827, + "english": "general", + "frequency": 16, + "category": "high_frequency", + "chinese": "总体的", + "phonetic": "/ˈdʒenrəl/", + "forms": { + "adjective": "形容词", + "noun": "将军" + }, + "example": { + "en": "This is a general overview of the topic.", + "cn": "这是对该主题的总体概述。" + } + }, + { + "id": 829, + "english": "cause", + "frequency": 18, + "category": "high_frequency", + "chinese": "原因", + "phonetic": "/kɔːz/", + "forms": { + "verb": [ + "causes (第三人称单数)", + "causing (现在分词)", + "caused (过去式/过去分词)" + ], + "noun": "causes (复数)", + "plural": "causes (复数)" + }, + "example": { + "en": "The cause of the accident is still unknown.", + "cn": "事故的原因仍然未知。" + } + }, + { + "id": 830, + "english": "effect", + "frequency": 16, + "category": "high_frequency", + "chinese": "结果", + "phonetic": "/ɪˈfekt/", + "forms": { + "verb": [ + "effects (第三人称单数)", + "effecting (现在分词)", + "effected (过去式/过去分词)" + ], + "noun": "effects (复数)", + "plural": "effects (复数)" + }, + "example": { + "en": "The new policy will have a significant effect on the economy.", + "cn": "新政策将对经济产生重大影响。" + } + }, + { + "id": 831, + "english": "miss", + "frequency": 14, + "category": "action_verbs", + "chinese": "错过", + "phonetic": "/mɪs/", + "forms": { + "verb": [ + "misses (第三人称单数)", + "missing (现在分词)", + "missed (过去式/过去分词)" + ] + }, + "example": { + "en": "We can't afford to miss this opportunity.", + "cn": "我们不能错过这个机会。" + } + }, + { + "id": 833, + "english": "setting", + "frequency": 21, + "category": "high_frequency", + "chinese": "设置", + "phonetic": "/ˈsetɪŋ/", + "forms": { + "noun": "settings (复数)", + "verb": [ + "sets (第三人称单数)", + "setting (现在分词)", + "set (过去式/过去分词)" + ], + "plural": "settings (复数)" + }, + "example": { + "en": "You can change the settings in the control panel.", + "cn": "您可以在控制面板中更改设置。" + } + }, + { + "id": 834, + "english": "standard", + "frequency": 19, + "category": "technical_operations", + "chinese": "标准", + "phonetic": "/ˈstændərd/", + "forms": { + "noun": "standards (复数)", + "adjective": "标准的", + "plural": "standards (复数)" + }, + "example": { + "en": "This work does not meet our quality standard.", + "cn": "这项工作不符合我们的质量标准。" + } + }, + { + "id": 838, + "english": "change", + "frequency": 17, + "category": "action_verbs", + "chinese": "改变", + "phonetic": "/tʃeɪndʒ/", + "forms": { + "verb": [ + "changes (第三人称单数)", + "changing (现在分词)", + "changed (过去式/过去分词)" + ], + "noun": "changes (复数)", + "plural": "changes (复数)" + }, + "example": { + "en": "The system configuration may not be changed.", + "cn": "系统配置可能不会被更改。" + } + }, + { + "id": 840, + "english": "use", + "frequency": 42, + "category": "high_frequency", + "chinese": "使用", + "phonetic": "/juːz/", + "forms": { + "verb": [ + "uses (第三人称单数)", + "using (现在分词)", + "used (过去式/过去分词)" + ], + "noun": "uses (复数)", + "plural": "uses (复数)" + }, + "example": { + "en": "We will continue its use if the test is successful.", + "cn": "如果测试成功,我们将继续使用它。" + } + } +] diff --git a/data/words-2026-07-12.json b/data/words-2026-07-12.json new file mode 100644 index 0000000..7d6d5f6 --- /dev/null +++ b/data/words-2026-07-12.json @@ -0,0 +1,14337 @@ +[ + { + "id": 1, + "english": "able", + "frequency": 3, + "category": "high_frequency", + "chinese": "能够的", + "phonetic": "/ˈeɪbəl/", + "forms": {}, + "example": { + "en": "The system is able to find the feature reliably.", + "cn": "系统能够可靠地找到该特征。" + } + }, + { + "id": 2, + "english": "absolute", + "frequency": 36, + "category": "business_core", + "chinese": "绝对的", + "phonetic": "/ˈæbsəluːt/", + "forms": {}, + "example": { + "en": "This is the absolute minimum.", + "cn": "这是绝对的最低要求。" + } + }, + { + "id": 3, + "english": "accept", + "frequency": 71, + "category": "business_core", + "chinese": "接受", + "phonetic": "/əkˈsept/", + "forms": { + "derivatives": [ + "acceptable(可接受的)", + "acceptance(验收;接受)" + ] + }, + "example": { + "en": "We accept the result.", + "cn": "我们接受这个结果。" + } + }, + { + "id": 4, + "english": "access", + "frequency": 34, + "category": "action_verbs", + "chinese": "进入;使用权", + "phonetic": "/ˈækses/", + "forms": { + "verb": [ + "accesses (第三人称单数)", + "accessing (现在分词)", + "accessed (过去式/过去分词)" + ] + }, + "example": { + "en": "You need a password to access the system.", + "cn": "你需要密码才能进入系统。" + } + }, + { + "id": 5, + "english": "accord", + "frequency": 80, + "category": "high_frequency", + "chinese": "一致;符合", + "phonetic": "/əˈkɔːrd/", + "forms": { + "derivatives": [ + "accordingly(相应地)" + ] + }, + "example": { + "en": "The result accords with the data.", + "cn": "结果与数据一致。" + } + }, + { + "id": 6, + "english": "accurate", + "frequency": 10, + "category": "high_frequency", + "chinese": "精确的", + "phonetic": "/ˈækjərət/", + "forms": { + "adverb": "accurately", + "derivatives": [ + "accuracy(精度;准确性)", + "accurately(准确地)" + ] + }, + "example": { + "en": "But detailed material inspection data collected in Santa Ana on the Rohm material show that the lead frame and the clip from Rohm are very accurate and match on the micron level.", + "cn": "然而,在圣安娜对 Rohm 材料采集的详细来料检测数据显示,Rohm 的引线框架和夹焊片精度很高,在微米级别上彼此匹配。" + } + }, + { + "id": 7, + "english": "achieve", + "frequency": 34, + "category": "business_core", + "chinese": "实现;达到", + "phonetic": "/əˈtʃiːv/", + "forms": { + "verb": [ + "achieves (第三人称单数)", + "achieving (现在分词)", + "achieved (过去式/过去分词)" + ] + }, + "example": { + "en": "We used these settings to achieve good contrast.", + "cn": "我们使用这些设置来获得良好的对比度。" + } + }, + { + "id": 8, + "english": "across", + "frequency": 7, + "category": "high_frequency", + "chinese": "横跨", + "phonetic": "/əˈkrɒs/", + "forms": {}, + "example": { + "en": "It assumes low distortion across the FoV.", + "cn": "该方法假设整个视野内的畸变较小。" + } + }, + { + "id": 9, + "english": "action", + "frequency": 32, + "category": "business_core", + "chinese": "行动", + "phonetic": "/ˈækʃn/", + "forms": { + "noun": "actions (复数)", + "plural": "actions (复数)" + }, + "example": { + "en": "These are the action items for our team.", + "cn": "这些是我们团队的行动项目。" + } + }, + { + "id": 10, + "english": "active", + "frequency": 1, + "category": "high_frequency", + "chinese": "积极的;主动的", + "phonetic": "/ˈæktɪv/", + "forms": { + "derivatives": [ + "activity(活动)" + ] + }, + "example": { + "en": "I still suggest some active choice by the user here in case the teach window includes more than one slot or portions of other slots to make the fiducial unique.", + "cn": "我仍建议由用户在此处主动做出选择,以防示教窗口包含多个槽位或其他槽位的一部分,从而确保基准特征具有唯一性。" + } + }, + { + "id": 11, + "english": "actual", + "frequency": 37, + "category": "business_core", + "chinese": "实际的", + "phonetic": "/ˈæktʃuəl/", + "forms": {}, + "example": { + "en": "This shows the actual condition in the chuck.", + "cn": "这显示了卡盘内的实际情况。" + } + }, + { + "id": 12, + "english": "adaptive", + "frequency": 45, + "category": "business_core", + "chinese": "自适应的", + "phonetic": "/əˈdæptɪv/", + "forms": { + "adjective": "adaptive (形容词)" + }, + "example": { + "en": "Repeat the test with the adaptive solder area correction.", + "cn": "使用自适应焊料面积校正重复测试。" + } + }, + { + "id": 13, + "english": "add", + "frequency": 1, + "category": "high_frequency", + "chinese": "添加", + "phonetic": "/æd/", + "forms": { + "derivatives": [ + "addition(此外)" + ] + }, + "example": { + "en": "Please correct my description below if possible today Thursday 7/9, and add additional items to be checked, documented.", + "cn": "如有可能,请在今天(7月9日,星期四)更正我下面的描述,并补充需要检查和记录的其他项目。" + } + }, + { + "id": 14, + "english": "add-on", + "frequency": 21, + "category": "business_core", + "chinese": "附加物", + "phonetic": "/ˈæd ɒn/", + "forms": { + "noun": "add-ons (复数)", + "plural": "add-ons (复数)" + }, + "example": { + "en": "This is a small add-on to the VRO.", + "cn": "这是对VRO的一个小补充。" + } + }, + { + "id": 15, + "english": "additional", + "frequency": 35, + "category": "business_core", + "chinese": "额外的", + "phonetic": "/əˈdɪʃənl/", + "forms": {}, + "example": { + "en": "We need additional resources for this project.", + "cn": "这个项目我们需要额外的资源。" + } + }, + { + "id": 16, + "english": "address", + "frequency": 90, + "category": "action_verbs", + "chinese": "处理", + "phonetic": "/əˈdres/", + "forms": { + "verb": [ + "addresses (第三人称单数)", + "addressing (现在分词)", + "addressed (过去式/过去分词)" + ], + "noun": "address (名词)" + }, + "example": { + "en": "Please help address this problem.", + "cn": "请帮助处理这个问题。" + } + }, + { + "id": 17, + "english": "addressed", + "frequency": 85, + "category": "communication", + "chinese": "处理;解决", + "phonetic": "/əˈdrest/", + "forms": { + "past_participle": "addressed (过去分词)", + "base_verb": "address (动词原形)", + "verb": [ + "addresses (第三人称单数)", + "addressing (现在分词)", + "addressed (过去式/过去分词)" + ] + }, + "example": { + "en": "The issue has been addressed by the manager.", + "cn": "这个问题已经由经理处理了。" + } + }, + { + "id": 18, + "english": "adjust", + "frequency": 41, + "category": "technical_operations", + "chinese": "调整", + "phonetic": "/əˈdʒʌst/", + "forms": { + "verb": [ + "adjusts (第三人称单数)", + "adjusting (现在分词)", + "adjusted (过去式/过去分词)" + ] + }, + "example": { + "en": "Please adjust the brightness of the screen.", + "cn": "请调整屏幕的亮度。" + } + }, + { + "id": 19, + "english": "adjusted", + "frequency": 47, + "category": "technical_operations", + "chinese": "调整过的", + "phonetic": "/əˈdʒʌstɪd/", + "forms": { + "past_participle": "adjusted (过去分词)", + "base_verb": "adjust (动词原形)", + "verb": [ + "adjusts (第三人称单数)", + "adjusting (现在分词)", + "adjusted (过去式/过去分词)" + ] + }, + "example": { + "en": "We mainly adjusted the Gamma value.", + "cn": "我们主要调整了伽马值。" + } + }, + { + "id": 20, + "english": "adjustments", + "frequency": 27, + "category": "technical_operations", + "chinese": "调整", + "phonetic": "/əˈdʒʌstmənts/", + "forms": { + "singular": "adjustment (单数)" + }, + "example": { + "en": "You can do the light and camera setting adjustments.", + "cn": "你可以进行灯光和相机设置的调整。" + } + }, + { + "id": 21, + "english": "advice", + "frequency": 85, + "category": "communication", + "chinese": "建议", + "phonetic": "/ədˈvaɪs/", + "forms": {}, + "example": { + "en": "Please give us some advice.", + "cn": "请给我们一些建议。" + } + }, + { + "id": 22, + "english": "advise", + "frequency": 85, + "category": "communication", + "chinese": "建议", + "phonetic": "/ədˈvaɪz/", + "forms": { + "verb": [ + "advises (第三人称单数)", + "advising (现在分词)", + "advised (过去式/过去分词)" + ] + }, + "example": { + "en": "Please advise!", + "cn": "请提供建议!" + } + }, + { + "id": 23, + "english": "affect", + "frequency": 41, + "category": "business_core", + "chinese": "影响", + "phonetic": "/əˈfekt/", + "forms": { + "verb": [ + "affects (第三人称单数)", + "affecting (现在分词)", + "affected (过去式/过去分词)" + ] + }, + "example": { + "en": "This change will affect the final result.", + "cn": "这个改变会影响最终结果。" + } + }, + { + "id": 24, + "english": "ago", + "frequency": 5, + "category": "time_planning", + "chinese": "以前", + "phonetic": "/əˈɡəʊ/", + "forms": {}, + "example": { + "en": "We discussed this issue two days ago.", + "cn": "我们两天前讨论了这个问题。" + } + }, + { + "id": 25, + "english": "algorithm", + "frequency": 60, + "category": "technical_core", + "chinese": "算法", + "phonetic": "/ˈælɡərɪðəm/", + "forms": { + "plural": "algorithms (复数)" + }, + "example": { + "en": "I had seen that your 'algorithm logic' was wrong.", + "cn": "我曾发现你的“算法逻辑”是错误的。" + } + }, + { + "id": 26, + "english": "align", + "frequency": 27, + "category": "business_core", + "chinese": "对齐;使一致", + "phonetic": "/əˈlaɪn/", + "forms": { + "verb": [ + "aligns (第三人称单数)", + "aligning (现在分词)", + "aligned (过去式/过去分词)" + ], + "derivatives": [ + "alignment(对齐;校准)" + ] + }, + "example": { + "en": "We need to align our strategies.", + "cn": "我们需要统一我们的战略。" + } + }, + { + "id": 27, + "english": "aligning", + "frequency": 21, + "category": "business_core", + "chinese": "对准", + "phonetic": "/əˈlaɪnɪŋ/", + "forms": { + "verb": [ + "aligns (第三人称单数)", + "aligning (现在分词)", + "aligned (过去式/过去分词)" + ] + }, + "example": { + "en": "We are aligning the process chucks and clamps.", + "cn": "我们正在对准工艺卡盘和夹具。" + } + }, + { + "id": 28, + "english": "aligns", + "frequency": 70, + "category": "business_core", + "chinese": "对齐;符合", + "phonetic": "/əˈlaɪnz/", + "forms": { + "infinitive": "align (原形)", + "verb": [ + "aligns (第三人称单数)", + "aligning (现在分词)", + "aligned (过去式/过去分词)" + ] + }, + "example": { + "en": "This height aligns well with the optimum dispense height.", + "cn": "这个高度与最佳点胶高度非常吻合。" + } + }, + { + "id": 29, + "english": "allow", + "frequency": 3, + "category": "high_frequency", + "chinese": "允许", + "phonetic": "/əˈlaʊ/", + "forms": { + "verb": "allows (第三人称单数)" + }, + "example": { + "en": "This would allow us to check for distortion and verify our calibration.", + "cn": "这样我们就可以检查畸变并验证标定结果。" + } + }, + { + "id": 30, + "english": "alternate", + "frequency": 55, + "category": "business_core", + "chinese": "替代的", + "phonetic": "/ˈɔːltərnət/", + "forms": { + "adjective": "alternate (形容词)", + "verb": [ + "alternates (第三人称单数)", + "alternating (现在分词)", + "alternated (过去式/过去分词)" + ] + }, + "example": { + "en": "Basler claims to have an alternate lens.", + "cn": "巴斯勒声称有替代镜头。" + } + }, + { + "id": 31, + "english": "alternative", + "frequency": 75, + "category": "business_core", + "chinese": "替代方案", + "phonetic": "/ɔːlˈtɜːrnətɪv/", + "forms": { + "plural": "alternatives (复数)", + "adjective": "alternative (形容词)" + }, + "example": { + "en": "It can be an alternative to the 3520 lens.", + "cn": "它可以作为3520镜头的替代方案。" + } + }, + { + "id": 32, + "english": "alternatively", + "frequency": 46, + "category": "business_core", + "chinese": "或者", + "phonetic": "/ɔːlˈtɜːnətɪvli/", + "forms": { + "adverb": "alternatively (副词)", + "base_adjective": "alternative (形容词原形)", + "adjective": "alternative (形容词)" + }, + "example": { + "en": "Alternatively, we can have them sent directly.", + "cn": "或者,我们可以让他们直接发送。" + } + }, + { + "id": 33, + "english": "alternatives", + "frequency": 75, + "category": "business_core", + "chinese": "替代品", + "phonetic": "/ɔːlˈtɜːrnətɪvz/", + "forms": { + "singular": "alternative (单数)" + }, + "example": { + "en": "We need to explore other alternatives.", + "cn": "我们需要探索其他替代方案。" + } + }, + { + "id": 34, + "english": "always", + "frequency": 120, + "category": "high_frequency", + "chinese": "总是", + "phonetic": "/ˈɔːlweɪz/", + "forms": { + "adverb": "always (副词)" + }, + "example": { + "en": "This is always correct.", + "cn": "这一直都是正确的。" + } + }, + { + "id": 35, + "english": "analyze", + "frequency": 47, + "category": "action_verbs", + "chinese": "分析", + "phonetic": "/ˈænəlaɪz/", + "forms": { + "verb": [ + "analyzes (第三人称单数)", + "analyzing (现在分词)", + "analyzed (过去式/过去分词)" + ], + "derivatives": [ + "analysis(分析)", + "analyzer(分析器)" + ] + }, + "example": { + "en": "We need to analyze the data carefully.", + "cn": "我们需要仔细分析数据。" + } + }, + { + "id": 36, + "english": "answer", + "frequency": 2, + "category": "action_verbs", + "chinese": "回答", + "phonetic": "/ˈɑːnsər/", + "forms": { + "verb": [ + "answers (第三人称单数)", + "answered (过去式/过去分词)" + ] + }, + "example": { + "en": "The engineer can answer questions about the vision system.", + "cn": "工程师可以回答有关视觉系统的问题。" + } + }, + { + "id": 37, + "english": "aperture", + "frequency": 28, + "category": "business_core", + "chinese": "光圈", + "phonetic": "/ˈæpətʃə(r)/", + "forms": { + "noun": "apertures (复数)", + "plural": "apertures (复数)" + }, + "example": { + "en": "The camera has a fixed aperture.", + "cn": "该相机具有固定光圈。" + } + }, + { + "id": 38, + "english": "apertures", + "frequency": 45, + "category": "technical_core", + "chinese": "光圈", + "phonetic": "/ˈæpərtʃərz/", + "forms": { + "singular": "aperture (单数)" + }, + "example": { + "en": "List the setting of the apertures on the cameras.", + "cn": "列出相机上光圈的设置。" + } + }, + { + "id": 39, + "english": "appear", + "frequency": 1, + "category": "high_frequency", + "chinese": "出现;看起来", + "phonetic": "/əˈpɪər/", + "forms": { + "derivatives": [ + "apparent(表面上的;貌似的;显然的)", + "appearance(外观)" + ] + }, + "example": { + "en": "The images which we upload appear to be binary and to have low pixel count (this latter we seem to have changed on the Suzhou clip bonder but is still low pixel count on the clip bonder in Rohm Thailand).", + "cn": "我们上传的图像看起来是二值图像,而且像素数较低(后一个问题似乎已在苏州夹片焊接机上调整,但罗姆泰国工厂的夹片焊接机像素数仍然较低)。" + } + }, + { + "id": 40, + "english": "applications", + "frequency": 80, + "category": "technical_operations", + "chinese": "应用", + "phonetic": "/ˌæplɪˈkeɪʃnz/", + "forms": { + "singular": "application (单数)", + "verb": "apply (动词)" + }, + "example": { + "en": "We need to get their applications to work.", + "cn": "我们需要让他们的应用程序工作起来。" + } + }, + { + "id": 41, + "english": "applied", + "frequency": 25, + "category": "business_core", + "chinese": "应用的", + "phonetic": "/əˈplaɪd/", + "forms": { + "past_participle": "applied (过去分词)", + "base_verb": "apply (动词原形)", + "verb": [ + "applies (第三人称单数)", + "applying (现在分词)", + "applied (过去式/过去分词)" + ] + }, + "example": { + "en": "This method can be applied to other situations.", + "cn": "这种方法可以应用于其他情况。" + } + }, + { + "id": 42, + "english": "applies", + "frequency": 22, + "category": "business_core", + "chinese": "适用", + "phonetic": "/əˈplaɪz/", + "forms": { + "verb": [ + "applies (第三人称单数)", + "applying (现在分词)", + "applied (过去式/过去分词)" + ] + }, + "example": { + "en": "The same applies to the test with Richard.", + "cn": "这同样适用于与理查德的测试。" + } + }, + { + "id": 43, + "english": "apply", + "frequency": 94, + "category": "business_core", + "chinese": "应用;申请", + "phonetic": "/əˈplaɪ/", + "forms": { + "derivatives": [ + "applicable(适用的)", + "application(应用)" + ] + }, + "example": { + "en": "Apply the setting to every image.", + "cn": "将该设置应用到每张图像。" + } + }, + { + "id": 44, + "english": "appreciate", + "frequency": 85, + "category": "communication", + "chinese": "感激", + "phonetic": "/əˈpriːʃieɪt/", + "forms": { + "verb": [ + "appreciates (第三人称单数)", + "appreciating (现在分词)", + "appreciated (过去式/过去分词)" + ], + "noun": "appreciation (名词)" + }, + "example": { + "en": "I would appreciate it if you could prepare the design changes.", + "cn": "如果您能准备好设计变更,我将不胜感激。" + } + }, + { + "id": 45, + "english": "approach", + "frequency": 90, + "category": "business_core", + "chinese": "方法", + "phonetic": "/əˈproʊtʃ/", + "forms": { + "plural": "approaches (复数)", + "verb": [ + "approaches (第三人称单数)", + "approaching (现在分词)", + "approached (过去式/过去分词)" + ] + }, + "example": { + "en": "I plan to change the approach.", + "cn": "我计划改变方法。" + } + }, + { + "id": 46, + "english": "appropriate", + "frequency": 80, + "category": "high_frequency", + "chinese": "合适的", + "phonetic": "/əˈproʊpriət/", + "forms": { + "adjective": "appropriate (形容词)" + }, + "example": { + "en": "Look for appropriate off-the-shelf units.", + "cn": "寻找合适的现成单元。" + } + }, + { + "id": 47, + "english": "area", + "frequency": 49, + "category": "business_core", + "chinese": "区域", + "phonetic": "/ˈeəriə/", + "forms": { + "noun": "areas (复数)", + "plural": "areas (复数)" + }, + "example": { + "en": "This is a residential area.", + "cn": "这是一个住宅区。" + } + }, + { + "id": 48, + "english": "argument", + "frequency": 1, + "category": "high_frequency", + "chinese": "论点;争论", + "phonetic": "/ˈɑːɡjumənt/", + "forms": {}, + "example": { + "en": "As the 6 locations are very close, I believe the light argument is also less likely.", + "cn": "由于这6个位置彼此非常接近,我认为光照因素导致问题的可能性也较低。" + } + }, + { + "id": 49, + "english": "around", + "frequency": 31, + "category": "business_core", + "chinese": "周围;大约(get around:绕过,解决)", + "phonetic": "/əˈraʊnd/", + "forms": {}, + "example": { + "en": "Is there a way to get around this problem?", + "cn": "有什么办法可以解决这个问题吗?" + } + }, + { + "id": 50, + "english": "arrange", + "frequency": 75, + "category": "time_planning", + "chinese": "安排", + "phonetic": "/əˈreɪndʒ/", + "forms": { + "verb": [ + "arranges (第三人称单数)", + "arranging (现在分词)", + "arranged (过去式/过去分词)" + ], + "derivatives": [ + "arrangement(布局)" + ] + }, + "example": { + "en": "Can you arrange a meeting for next week?", + "cn": "你能安排一个下周的会议吗?" + } + }, + { + "id": 51, + "english": "arrangements", + "frequency": 28, + "category": "business_core", + "chinese": "布置;安排", + "phonetic": "/əˈreɪndʒmənts/", + "forms": { + "singular": "arrangement (单数)" + }, + "example": { + "en": "There are two arrangements of the sensor.", + "cn": "有两种传感器的布置方式。" + } + }, + { + "id": 52, + "english": "array", + "frequency": 1, + "category": "technical_core", + "chinese": "阵列;数组", + "phonetic": "/əˈreɪ/", + "forms": {}, + "example": { + "en": "The lead frame pitch is very accurate in X (6,000m) and Y (10,600m), and the clip is very accurate in X with 6,000m pitch (pitch on lead frame and clip should be identical, otherwise the array transfer doesn’t work).", + "cn": "引线框架在X方向(6,000微米)和Y方向(10,600微米)的节距都非常精确,夹片在X方向的6,000微米节距也非常精确(引线框架与夹片的节距应完全相同,否则阵列转移无法正常工作)。" + } + }, + { + "id": 53, + "english": "arrives", + "frequency": 37, + "category": "business_core", + "chinese": "到达", + "phonetic": "/əˈraɪvz/", + "forms": { + "verb": [ + "arrives (第三人称单数)", + "arriving (现在分词)", + "arrived (过去式/过去分词)" + ] + }, + "example": { + "en": "If the ring light arrives, perform two tests.", + "cn": "如果环形灯到了,就进行两次测试。" + } + }, + { + "id": 54, + "english": "asap", + "frequency": 85, + "category": "time_planning", + "chinese": "尽快", + "phonetic": "/ˌeɪˌesˌeɪˈpiː/", + "forms": {}, + "example": { + "en": "I need the report asap.", + "cn": "我需要尽快拿到报告。" + } + }, + { + "id": 55, + "english": "ask", + "frequency": 110, + "category": "communication", + "chinese": "问", + "phonetic": "/æsk/", + "forms": { + "verb": [ + "asks (第三人称单数)", + "asking (现在分词)", + "asked (过去式/过去分词)" + ] + }, + "example": { + "en": "If needed, please ask questions.", + "cn": "如果需要,请提问。" + } + }, + { + "id": 56, + "english": "aspect", + "frequency": 37, + "category": "business_core", + "chinese": "方面", + "phonetic": "/ˈæspekt/", + "forms": { + "noun": "aspects (复数)", + "plural": "aspects (复数)" + }, + "example": { + "en": "We can look at it from a potential improvement aspect.", + "cn": "我们可以从潜在改进的方面来看待它。" + } + }, + { + "id": 57, + "english": "aspects", + "frequency": 85, + "category": "high_frequency", + "chinese": "方面", + "phonetic": "/ˈæspekts/", + "forms": { + "singular": "aspect (单数)", + "noun": "aspects (复数名词)" + }, + "example": { + "en": "We need to consider all aspects of the problem.", + "cn": "我们需要考虑问题的所有方面。" + } + }, + { + "id": 58, + "english": "assembled", + "frequency": 26, + "category": "business_core", + "chinese": "组装好的", + "phonetic": "/əˈsembld/", + "forms": { + "past_participle": "assembled (过去分词)", + "base_verb": "assemble (动词原形)", + "verb": [ + "assembles (第三人称单数)", + "assembling (现在分词)", + "assembled (过去式/过去分词)" + ] + }, + "example": { + "en": "The PCBA will be assembled today.", + "cn": "印刷电路板将于今天组装。" + } + }, + { + "id": 59, + "english": "assembly", + "frequency": 70, + "category": "technical_operations", + "chinese": "装配", + "phonetic": "/əˈsembli/", + "forms": { + "noun": "assembly (名词)", + "verb": "assemble (动词)", + "plural": "assemblies (复数)" + }, + "example": { + "en": "This is included in the assembly.", + "cn": "这包含在装配中。" + } + }, + { + "id": 60, + "english": "assess", + "frequency": 31, + "category": "technical_operations", + "chinese": "评估", + "phonetic": "/əˈses/", + "forms": { + "verb": [ + "assesses (第三人称单数)", + "assessing (现在分词)", + "assessed (过去式/过去分词)" + ] + }, + "example": { + "en": "We need to assess the opportunities.", + "cn": "我们需要评估这些机会。" + } + }, + { + "id": 61, + "english": "assign", + "frequency": 26, + "category": "technical_operations", + "chinese": "分配", + "phonetic": "/əˈsaɪn/", + "forms": { + "verb": [ + "assigns (第三人称单数)", + "assigning (现在分词)", + "assigned (过去式/过去分词)" + ] + }, + "example": { + "en": "We will assign tasks to the team.", + "cn": "我们将向团队分配任务。" + } + }, + { + "id": 62, + "english": "assigned", + "frequency": 70, + "category": "action_verbs", + "chinese": "分配", + "phonetic": "/əˈsaɪnd/", + "forms": { + "infinitive": "assign (原形)", + "verb": [ + "assigns (第三人称单数)", + "assigning (现在分词)", + "assigned (过去式/过去分词)" + ] + }, + "example": { + "en": "The teacher assigned homework to the students.", + "cn": "老师给学生们布置了家庭作业。" + } + }, + { + "id": 63, + "english": "assignments", + "frequency": 60, + "category": "time_planning", + "chinese": "任务", + "phonetic": "/əˈsaɪnmənts/", + "forms": { + "singular": "assignment (单数)" + }, + "example": { + "en": "He has several assignments to complete.", + "cn": "他有几项任务需要完成。" + } + }, + { + "id": 64, + "english": "assume", + "frequency": 70, + "category": "business_core", + "chinese": "假设", + "phonetic": "/əˈsuːm/", + "forms": { + "verb": [ + "assumes (第三人称单数)", + "assuming (现在分词)", + "assumed (过去式/过去分词)" + ] + }, + "example": { + "en": "Let's assume the material shall not be used after 10 hours.", + "cn": "让我们假设材料在10小时后就不能使用了。" + } + }, + { + "id": 65, + "english": "attach", + "frequency": 3, + "category": "technical_operations", + "chinese": "附上;连接", + "phonetic": "/əˈtætʃ/", + "forms": { + "verb": [ + "attached (过去式/过去分词)", + "Attached (过去式/过去分词)" + ] + }, + "example": { + "en": "I attach Jianfei’s email with the link sent to me for others to view.", + "cn": "我附上建飞发给我的邮件,其中包含链接,供其他人查看。" + } + }, + { + "id": 66, + "english": "attached", + "frequency": 80, + "category": "communication", + "chinese": "附上", + "phonetic": "/əˈtætʃt/", + "forms": { + "infinitive": "attach (原形)", + "verb": [ + "attaches (第三人称单数)", + "attaching (现在分词)", + "attached (过去式/过去分词)" + ] + }, + "example": { + "en": "Attached is the step file of the device.", + "cn": "附件是该设备的STP文件。" + } + }, + { + "id": 67, + "english": "attend", + "frequency": 125, + "category": "business_core", + "chinese": "出席;参加", + "phonetic": "/əˈtend/", + "forms": { + "verb": [ + "attends (第三人称单数)", + "attending (现在分词)", + "attended (过去式/过去分词)" + ], + "noun": "attendance (名词形式)" + }, + "example": { + "en": "Are you going to attend the meeting?", + "cn": "你会参加会议吗?" + } + }, + { + "id": 68, + "english": "auto-compensation", + "frequency": 45, + "category": "technical_core", + "chinese": "自动补偿", + "phonetic": "/ˌɔːtoʊ ˌkɑːmpenˈseɪʃn/", + "forms": { + "compound_noun": "auto-compensation (复合名词)", + "verb": "compensate (动词)", + "plural": "auto-compensations (复数)" + }, + "example": { + "en": "The 'Dispense volume / area auto-compensation' is the highest priority item.", + "cn": "“点胶体积/面积自动补偿”是最高优先级的项目。" + } + }, + { + "id": 69, + "english": "available", + "frequency": 37, + "category": "business_core", + "chinese": "可用的", + "phonetic": "/əˈveɪləbl/", + "forms": { + "derivatives": [ + "availability(可用性)" + ] + }, + "example": { + "en": "When can these sets be available?", + "cn": "这些套件什么时候能准备好?" + } + }, + { + "id": 70, + "english": "average", + "frequency": 2, + "category": "high_frequency", + "chinese": "平均", + "phonetic": "/ˈævərɪdʒ/", + "forms": {}, + "example": { + "en": "In order for the ball measurement to be very close to the actual ball size that got measured in the scope room, we have a ball size correction step during teach where we have the operator dial in the average ball size (measured on the scope) for the bonder measured balls, and the vision system would then remember the offset between the scope measurement and bonder measurement.", + "cn": "为了使焊球测量值尽可能接近显微镜室测得的实际焊球尺寸,我们在示教过程中设置了焊球尺寸校正步骤:由操作员输入显微镜测得的平均焊球尺寸,用于校正焊线机测得的焊球;随后视觉系统会记住显微镜测量值与焊线机测量值之间的偏差。" + } + }, + { + "id": 71, + "english": "averaging", + "frequency": 70, + "category": "business_core", + "chinese": "平均", + "phonetic": "/ˈævərɪdʒɪŋ/", + "forms": { + "verb": [ + "averages (第三人称单数)", + "averaging (现在分词)", + "averaged (过去式/过去分词)" + ] + }, + "example": { + "en": "That was based on significant averaging.", + "cn": "那是基于大量的平均计算。" + } + }, + { + "id": 72, + "english": "aware", + "frequency": 1, + "category": "high_frequency", + "chinese": "知晓的", + "phonetic": "/əˈweər/", + "forms": {}, + "example": { + "en": "The engineer is aware of the problems affecting the vision system.", + "cn": "工程师已了解影响视觉系统的问题。" + } + }, + { + "id": 73, + "english": "backlog", + "frequency": 30, + "category": "time_planning", + "chinese": "积压工作", + "phonetic": "/ˈbæklɔːɡ/", + "forms": { + "plural": "backlogs (复数)" + }, + "example": { + "en": "We have a large backlog of tasks to complete.", + "cn": "我们有大量积压的任务需要完成。" + } + }, + { + "id": 74, + "english": "backup", + "frequency": 31, + "category": "business_core", + "chinese": "备用", + "phonetic": "/ˈbækʌp/", + "forms": { + "noun": "backups (复数)", + "plural": "backups (复数)" + }, + "example": { + "en": "We need a backup plan.", + "cn": "我们需要一个备用计划。" + } + }, + { + "id": 75, + "english": "bad", + "frequency": 1, + "category": "high_frequency", + "chinese": "差的;坏的", + "phonetic": "/bæd/", + "forms": {}, + "example": { + "en": "It is likely that the parts which our machine produces are accurate, but our system reports bad data.", + "cn": "我们的机器生产出的零件很可能是准确的,但系统却报告了错误数据。" + } + }, + { + "id": 76, + "english": "balance", + "frequency": 75, + "category": "business_core", + "chinese": "平衡", + "phonetic": "/ˈbæləns/", + "forms": { + "plural": "balances (复数)" + }, + "example": { + "en": "We need to maintain the balance of the system.", + "cn": "我们需要保持系统的平衡。" + } + }, + { + "id": 77, + "english": "ball", + "frequency": 6, + "category": "high_frequency", + "chinese": "焊球;球", + "phonetic": "/bɔːl/", + "forms": { + "noun": "balls (复数)" + }, + "example": { + "en": "In order for the ball measurement to be very close to the actual ball size that got measured in the scope room, we have a ball size correction step during teach where we have the operator dial in the average ball size (measured on the scope) for the bonder measured balls, and the vision system would then remember the offset between the scope measurement and bonder measurement.", + "cn": "为了使焊球测量结果尽可能接近显微镜室测得的实际焊球尺寸,我们在示教过程中设置了焊球尺寸校正步骤:操作员输入显微镜测得的平均焊球尺寸,用于校正焊线机测得的焊球;随后视觉系统会记住显微镜测量值与焊线机测量值之间的偏差。" + } + }, + { + "id": 78, + "english": "barrel", + "frequency": 1, + "category": "technical_core", + "chinese": "桶;筒;桶形", + "phonetic": "/ˈbærəl/", + "forms": {}, + "example": { + "en": "If there’s barrel or pincushion distortion in the optics, this calibration will not correct for that.", + "cn": "如果光学系统存在桶形或枕形畸变,此校准无法对其进行修正。" + } + }, + { + "id": 79, + "english": "behaves", + "frequency": 80, + "category": "technical_operations", + "chinese": "表现", + "phonetic": "/bɪˈheɪvz/", + "forms": { + "infinitive": "behave (原形)", + "verb": [ + "behaves (第三人称单数)", + "behaving (现在分词)", + "behaved (过去式/过去分词)" + ], + "noun": "behavior (名词)" + }, + "example": { + "en": "The system behaves as expected.", + "cn": "系统按预期运行。" + } + }, + { + "id": 80, + "english": "behavior", + "frequency": 70, + "category": "business_core", + "chinese": "行为;特性", + "phonetic": "/bɪˈheɪvjər/", + "forms": { + "plural": "behaviors (复数)" + }, + "example": { + "en": "The dispense behavior strongly indicates that the dispense height is wrong.", + "cn": "点胶特性强烈表明点胶高度是错误的。" + } + }, + { + "id": 81, + "english": "believe", + "frequency": 7, + "category": "action_verbs", + "chinese": "相信;认为", + "phonetic": "/bɪˈliːv/", + "forms": {}, + "example": { + "en": "I believe this method will improve the inspection accuracy.", + "cn": "我相信这种方法会提高检测精度。" + } + }, + { + "id": 82, + "english": "below", + "frequency": 80, + "category": "high_frequency", + "chinese": "下面", + "phonetic": "/bɪˈloʊ/", + "forms": { + "preposition": "below (介词)", + "adverb": "below (副词)" + }, + "example": { + "en": "Please see the details below.", + "cn": "请看下面的详细信息。" + } + }, + { + "id": 83, + "english": "benefit", + "frequency": 42, + "category": "business_core", + "chinese": "受益", + "phonetic": "/ˈbenɪfɪt/", + "forms": { + "verb": [ + "benefits (第三人称单数)", + "benefiting (现在分词)", + "benefited (过去式/过去分词)" + ], + "plural": "benefits (复数)" + }, + "example": { + "en": "The new settings do not benefit these chucks.", + "cn": "新设置对这些卡盘没有好处。" + } + }, + { + "id": 84, + "english": "benefits", + "frequency": 90, + "category": "high_frequency", + "chinese": "好处", + "phonetic": "/ˈbenɪfɪts/", + "forms": { + "singular": "benefit (单数)", + "verb": [ + "benefits (第三人称单数)", + "benefiting (现在分词)", + "benefited (过去式/过去分词)" + ] + }, + "example": { + "en": "What are the benefits of this new approach?", + "cn": "这种新方法有什么好处?" + } + }, + { + "id": 85, + "english": "best", + "frequency": 4, + "category": "high_frequency", + "chinese": "最好的", + "phonetic": "/best/", + "forms": {}, + "example": { + "en": "Is this the best approach?", + "cn": "这是最佳方案吗?" + } + }, + { + "id": 86, + "english": "beta", + "frequency": 37, + "category": "business_core", + "chinese": "贝塔;测试版", + "phonetic": "/ˈbiːtə/", + "forms": { + "noun": "betas (复数)", + "plural": "betas (复数)" + }, + "example": { + "en": "This will serve as a beta test.", + "cn": "这将作为一次beta测试。" + } + }, + { + "id": 87, + "english": "beyond", + "frequency": 75, + "category": "high_frequency", + "chinese": "超越", + "phonetic": "/biˈɑːnd/", + "forms": {}, + "example": { + "en": "The results were beyond our expectations.", + "cn": "结果超出了我们的预期。" + } + }, + { + "id": 88, + "english": "binarize", + "frequency": 1, + "category": "technical_core", + "chinese": "使二值化;对……进行二值化", + "phonetic": "/ˈbaɪnəraɪz/", + "forms": {}, + "example": { + "en": "But in some cases, it may be necessary to binarize the image for robustness.", + "cn": "但在某些情况下,为提高稳健性,可能有必要对图像进行二值化。" + } + }, + { + "id": 89, + "english": "binary", + "frequency": 8, + "category": "technical_core", + "chinese": "二值的;二进制的", + "phonetic": "/ˈbaɪnəri/", + "forms": {}, + "example": { + "en": "I think the machine is displaying the binary image, meaning the images were already processed.", + "cn": "我认为机器当前显示的是二值图像,这意味着这些图像已经经过处理。" + } + }, + { + "id": 90, + "english": "black", + "frequency": 2, + "category": "high_frequency", + "chinese": "黑色的", + "phonetic": "/blæk/", + "forms": {}, + "example": { + "en": "If it is, for the given hardware, what would have to be changed / improved, to gain more contrast or work with more contrast than just this ‘black & white’?", + "cn": "如果确实如此,那么针对现有硬件,需要做哪些更改或改进,才能获得更高的对比度,而不只是这种“黑白”效果?" + } + }, + { + "id": 91, + "english": "blank", + "frequency": 55, + "category": "technical_core", + "chinese": "空白的", + "phonetic": "/blæŋk/", + "forms": { + "adjective": "blank (形容词)", + "noun": "blank (名词)" + }, + "example": { + "en": "We use blank dice for testing.", + "cn": "我们使用空白芯片进行测试。" + } + }, + { + "id": 92, + "english": "blurry", + "frequency": 24, + "category": "business_core", + "chinese": "模糊的", + "phonetic": "/ˈblɜːri/", + "forms": {}, + "example": { + "en": "The edges of the lead frame are too blurry.", + "cn": "引线框架的边缘太模糊了。" + } + }, + { + "id": 93, + "english": "board", + "frequency": 43, + "category": "business_core", + "chinese": "板", + "phonetic": "/bɔːd/", + "forms": { + "noun": "boards (复数)", + "plural": "boards (复数)" + }, + "example": { + "en": "The solution for the IO board is pending.", + "cn": "IO板的解决方案待定。" + } + }, + { + "id": 94, + "english": "bold", + "frequency": 25, + "category": "technical_operations", + "chinese": "粗体", + "phonetic": "/boʊld/", + "forms": { + "adjective": "bold (形容词)", + "verb": [ + "bolds (第三人称单数)", + "bolding (现在分词)", + "bolded (过去式/过去分词)" + ] + }, + "example": { + "en": "Please make the title bold.", + "cn": "请将标题设置为粗体。" + } + }, + { + "id": 95, + "english": "bond", + "frequency": 70, + "category": "technical_core", + "chinese": "结合;纽带", + "phonetic": "/bɒnd/", + "forms": { + "noun": "bonds (复数)", + "verb": [ + "bonds (第三人称单数)", + "bonding (现在分词)", + "bonded (过去式/过去分词)" + ], + "plural": "bonds (复数)" + }, + "example": { + "en": "The two atoms bond together.", + "cn": "这两个原子结合在一起。" + } + }, + { + "id": 96, + "english": "bonder", + "frequency": 66, + "category": "high_frequency", + "chinese": "焊接机", + "phonetic": "/ˈbɒndər/", + "forms": { + "noun": "bonders (复数)", + "plural": "bonders (复数)" + }, + "example": { + "en": "The clip bonder stayed in Singapore.", + "cn": "夹片焊接机留在了新加坡。" + } + }, + { + "id": 97, + "english": "box", + "frequency": 2, + "category": "high_frequency", + "chinese": "盒子;框", + "phonetic": "/bɒks/", + "forms": {}, + "example": { + "en": "The engineer calculated the bounding box around the selected slot.", + "cn": "工程师计算了所选槽孔的外接矩形。" + } + }, + { + "id": 98, + "english": "bracket", + "frequency": 55, + "category": "technical_core", + "chinese": "支架", + "phonetic": "/ˈbrækɪt/", + "forms": { + "plural": "brackets (复数)" + }, + "example": { + "en": "Any bracket needs to be manufacturable.", + "cn": "任何支架都需要是可制造的。" + } + }, + { + "id": 99, + "english": "branches", + "frequency": 49, + "category": "business_core", + "chinese": "分支", + "phonetic": "/brɑːntʃɪz/", + "forms": { + "singular": "branch (单数)", + "verb": [ + "branches (第三人称单数)", + "branching (现在分词)", + "branched (过去式/过去分词)" + ] + }, + "example": { + "en": "The software has multiple branches.", + "cn": "该软件有多个分支。" + } + }, + { + "id": 100, + "english": "bright", + "frequency": 1, + "category": "high_frequency", + "chinese": "明亮的", + "phonetic": "/braɪt/", + "forms": {}, + "example": { + "en": "In general, I see that we always set the light very bright.", + "cn": "总体来看,我们总是把光照设置得很亮。" + } + }, + { + "id": 101, + "english": "brighter", + "frequency": 26, + "category": "business_core", + "chinese": "更亮的", + "phonetic": "/ˈbraɪtə(r)/", + "forms": {}, + "example": { + "en": "The brighter areas indicate a defect.", + "cn": "较亮的区域表示有缺陷。" + } + }, + { + "id": 102, + "english": "bulk", + "frequency": 45, + "category": "business_core", + "chinese": "大量的;主要的", + "phonetic": "/bʌlk/", + "forms": {}, + "example": { + "en": "The bulk material might be the issue.", + "cn": "原材料可能是问题所在。" + } + }, + { + "id": 103, + "english": "busy", + "frequency": 90, + "category": "high_frequency", + "chinese": "忙碌的", + "phonetic": "/ˈbɪzi/", + "forms": { + "adjective": "busy (形容词)", + "adverb": "busily (副词)" + }, + "example": { + "en": "We are busy with Yangjie and Rohm.", + "cn": "我们正忙于扬杰和罗姆的项目。" + } + }, + { + "id": 104, + "english": "calibrate", + "frequency": 65, + "category": "technical_operations", + "chinese": "校准", + "phonetic": "/ˈkælɪbreɪt/", + "forms": { + "verb": [ + "calibrates (第三人称单数)", + "calibrating (现在分词)", + "calibrated (过去式/过去分词)" + ], + "derivatives": [ + "calibration(校准)" + ] + }, + "example": { + "en": "We can calibrate our vision systems accordingly.", + "cn": "我们可以相应地校准我们的视觉系统。" + } + }, + { + "id": 105, + "english": "call", + "frequency": 180, + "category": "communication", + "chinese": "电话;呼叫", + "phonetic": "/kɔːl/", + "forms": { + "noun": "calls (复数)", + "verb": [ + "calls (第三人称单数)", + "calling (现在分词)", + "called (过去式/过去分词)" + ], + "plural": "calls (复数)" + }, + "example": { + "en": "I have to make an important call.", + "cn": "我得打一个重要的电话。" + } + }, + { + "id": 106, + "english": "camera", + "frequency": 110, + "category": "technical_core", + "chinese": "相机", + "phonetic": "/ˈkæmərə/", + "forms": { + "noun": "cameras (复数)", + "plural": "cameras (复数)" + }, + "example": { + "en": "This is a high-resolution camera.", + "cn": "这是一个高分辨率相机。" + } + }, + { + "id": 107, + "english": "cancel", + "frequency": 48, + "category": "business_core", + "chinese": "取消", + "phonetic": "/ˈkænsl/", + "forms": { + "verb": [ + "cancels (第三人称单数)", + "canceling (现在分词)", + "canceled (过去式/过去分词)" + ] + }, + "example": { + "en": "I need to cancel the call.", + "cn": "我需要取消这次通话。" + } + }, + { + "id": 108, + "english": "capable", + "frequency": 1, + "category": "high_frequency", + "chinese": "有能力的", + "phonetic": "/ˈkeɪpəbəl/", + "forms": { + "derivatives": [ + "capability(能力)" + ] + }, + "example": { + "en": "We have other data for the vision system that indicate that it is capable.", + "cn": "我们还有其他视觉系统数据表明,该系统具备所需能力。" + } + }, + { + "id": 109, + "english": "capacity", + "frequency": 27, + "category": "business_core", + "chinese": "能力;容量", + "phonetic": "/kəˈpæsəti/", + "forms": { + "noun": "capacities (复数)", + "plural": "capacities (复数)" + }, + "example": { + "en": "We don't have the capacity to support this line.", + "cn": "我们没有能力支持这条生产线。" + } + }, + { + "id": 110, + "english": "capture", + "frequency": 2, + "category": "technical_operations", + "chinese": "捕获;获取", + "phonetic": "/ˈkæptʃər/", + "forms": {}, + "example": { + "en": "So maybe a good test is to capture the slot locations in one image, then move the camera by an (encoder) controlled distance and capture the same slot locations again and see whether the distances in between the slots changed with the shift of the lead frame in the FoV (by shifting the camera by a distance controlled on the 1m level).", + "cn": "因此,一个不错的测试方法或许是:先在一幅图像中获取槽孔位置,然后让相机移动一段由编码器控制的距离,再次获取相同槽孔的位置,检查槽孔间距是否会随着引线框架在视野中的偏移而变化(相机移动距离控制在 1 微米量级)。" + } + }, + { + "id": 111, + "english": "carefully", + "frequency": 85, + "category": "high_frequency", + "chinese": "仔细地", + "phonetic": "/ˈkerfəli/", + "forms": { + "adverb": "carefully (副词)", + "adjective": "careful (形容词)" + }, + "example": { + "en": "He listened carefully to the instructions.", + "cn": "他仔细地听了说明。" + } + }, + { + "id": 112, + "english": "case", + "frequency": 1, + "category": "high_frequency", + "chinese": "案例;情况", + "phonetic": "/keɪs/", + "forms": {}, + "example": { + "en": "In this case, the software places the crosshair at the detected position.", + "cn": "在这种情况下,软件会将十字准星放在检测到的位置。" + } + }, + { + "id": 113, + "english": "catalog", + "frequency": 38, + "category": "business_core", + "chinese": "目录", + "phonetic": "/ˈkætəlɒɡ/", + "forms": { + "noun": "catalogs (复数)", + "plural": "catalogs (复数)" + }, + "example": { + "en": "Luke sent a 68-page catalog.", + "cn": "卢克发来了一份68页的目录。" + } + }, + { + "id": 114, + "english": "cause", + "frequency": 18, + "category": "high_frequency", + "chinese": "原因", + "phonetic": "/kɔːz/", + "forms": { + "verb": [ + "causes (第三人称单数)", + "causing (现在分词)", + "caused (过去式/过去分词)" + ], + "noun": "causes (复数)", + "plural": "causes (复数)" + }, + "example": { + "en": "The cause of the accident is still unknown.", + "cn": "事故的原因仍然未知。" + } + }, + { + "id": 115, + "english": "center", + "frequency": 3, + "category": "high_frequency", + "chinese": "中心", + "phonetic": "/ˈsentər/", + "forms": { + "noun": "centers (复数)" + }, + "example": { + "en": "The most pressing question is why the crosshair is not always centered on the feature that we intend to use as the fiducial.", + "cn": "最迫切的问题是:为什么十字准星并不总是位于我们打算用作基准标记的特征中心?" + } + }, + { + "id": 116, + "english": "chain", + "frequency": 60, + "category": "technical_core", + "chinese": "链", + "phonetic": "/tʃeɪn/", + "forms": { + "plural": "chains (复数)" + }, + "example": { + "en": "This is a 2-chain design.", + "cn": "这是一个双链设计。" + } + }, + { + "id": 117, + "english": "challenges", + "frequency": 80, + "category": "business_core", + "chinese": "挑战", + "phonetic": "/ˈtʃæləndʒɪz/", + "forms": { + "singular": "challenge (单数)", + "verb": [ + "challenges (第三人称单数)", + "challenging (现在分词)", + "challenged (过去式/过去分词)" + ] + }, + "example": { + "en": "We are facing several vision challenges.", + "cn": "我们正面临几个视觉方面的挑战。" + } + }, + { + "id": 118, + "english": "challenging", + "frequency": 25, + "category": "business_core", + "chinese": "有挑战性的", + "phonetic": "/ˈtʃælɪndʒɪŋ/", + "forms": { + "present_participle": "challenging (现在分词)", + "base_verb": "challenge (动词原形)", + "verb": [ + "challenges (第三人称单数)", + "challenging (现在分词)", + "challenged (过去式/过去分词)" + ] + }, + "example": { + "en": "It is still challenging to detect the voids.", + "cn": "检测这些空洞仍然具有挑战性。" + } + }, + { + "id": 119, + "english": "chamber", + "frequency": 22, + "category": "business_core", + "chinese": "室", + "phonetic": "/ˈtʃeɪmbə(r)/", + "forms": { + "noun": "chambers (复数)", + "plural": "chambers (复数)" + }, + "example": { + "en": "The vacuum chamber needs to be cleaned.", + "cn": "真空室需要清洁。" + } + }, + { + "id": 120, + "english": "change", + "frequency": 17, + "category": "action_verbs", + "chinese": "改变", + "phonetic": "/tʃeɪndʒ/", + "forms": { + "verb": [ + "changes (第三人称单数)", + "changing (现在分词)", + "changed (过去式/过去分词)" + ], + "noun": "changes (复数)", + "plural": "changes (复数)" + }, + "example": { + "en": "The system configuration may not be changed.", + "cn": "系统配置可能不会被更改。" + } + }, + { + "id": 121, + "english": "changeover", + "frequency": 25, + "category": "business_core", + "chinese": "转换", + "phonetic": "/ˈtʃeɪndʒəʊvə(r)/", + "forms": { + "noun": "changeovers (复数)", + "plural": "changeovers (复数)" + }, + "example": { + "en": "He will handle the changeover for Jianfei.", + "cn": "他为建飞做转换工作。" + } + }, + { + "id": 122, + "english": "characteristic", + "frequency": 1, + "category": "high_frequency", + "chinese": "特征;特性", + "phonetic": "/ˌkærɪktəˈrɪstɪk/", + "forms": {}, + "example": { + "en": "From a usability aspect of the machine we need the capability to define characteristic features on the material (lead frame, clip, die) which we then find in our image, determine the position and measure relative distances to compare with the bonding diagram.", + "cn": "从机器易用性的角度看,我们需要能够在材料(引线框架、夹片、芯片)上定义特征,在图像中找到这些特征、确定其位置并测量相对距离,再与焊接图进行比较。" + } + }, + { + "id": 123, + "english": "chat", + "frequency": 1, + "category": "communication", + "chinese": "聊天", + "phonetic": "/tʃæt/", + "forms": {}, + "example": { + "en": "We can have a brief chat about the vision problems.", + "cn": "我们可以简短讨论一下视觉系统的问题。" + } + }, + { + "id": 124, + "english": "check", + "frequency": 100, + "category": "action_verbs", + "chinese": "检查", + "phonetic": "/tʃek/", + "forms": { + "verb": [ + "checks (第三人称单数)", + "checking (现在分词)", + "checked (过去式/过去分词)" + ], + "plural": "checks (复数)" + }, + "example": { + "en": "I will check again early next week.", + "cn": "我下周初会再次检查。" + } + }, + { + "id": 125, + "english": "choose", + "frequency": 1, + "category": "action_verbs", + "chinese": "选择", + "phonetic": "/tʃuːz/", + "forms": {}, + "example": { + "en": "The operator can choose a slot within the teach window.", + "cn": "操作员可以在示教窗口内选择一个槽孔。" + } + }, + { + "id": 126, + "english": "choosing", + "frequency": 24, + "category": "business_core", + "chinese": "选择", + "phonetic": "/ˈtʃuːzɪŋ/", + "forms": { + "verb": [ + "chooses (第三人称单数)", + "choosing (现在分词)", + "chose (过去式)", + "chosen (过去分词)" + ] + }, + "example": { + "en": "The criterion for choosing the right material is important.", + "cn": "选择合适材料的标准很重要。" + } + }, + { + "id": 127, + "english": "chrome", + "frequency": 1, + "category": "high_frequency", + "chinese": "铬;铬层", + "phonetic": "/krəʊm/", + "forms": {}, + "example": { + "en": "On a ball bonder, we measured the position of a lead frame corner while moving to various locations on a grid pattern across the field of view and compared the same measurement to our XY table map target which is glass with a very thin deposition of chrome fiducials.", + "cn": "在一台球焊机上,我们让引线框架角点按网格模式移动到视野内的不同位置并测量其位置,再将测量结果与XY平台标定靶进行比较;该标定靶为玻璃材质,表面沉积有一层极薄的铬基准标记。" + } + }, + { + "id": 128, + "english": "chuck", + "frequency": 59, + "category": "high_frequency", + "chinese": "夹具", + "phonetic": "/tʃʌk/", + "forms": { + "noun": "chucks (复数)", + "plural": "chucks (复数)" + }, + "example": { + "en": "The dispense chuck for the CB had to be remade.", + "cn": "用于CB的点胶夹具必须重做。" + } + }, + { + "id": 129, + "english": "chucks", + "frequency": 45, + "category": "business_core", + "chinese": "卡盘", + "phonetic": "/tʃʌks/", + "forms": { + "singular": "chuck (单数)", + "verb": [ + "chucks (第三人称单数)", + "chucking (现在分词)", + "chucked (过去式/过去分词)" + ] + }, + "example": { + "en": "The process chucks require monitoring.", + "cn": "工艺卡盘需要监控。" + } + }, + { + "id": 130, + "english": "circuit", + "frequency": 44, + "category": "technical_core", + "chinese": "电路", + "phonetic": "/ˈsɜːkɪt/", + "forms": { + "noun": "circuits (复数)", + "plural": "circuits (复数)" + }, + "example": { + "en": "The LED circuit has a series resistor.", + "cn": "LED电路有一个串联电阻。" + } + }, + { + "id": 131, + "english": "clamp", + "frequency": 33, + "category": "business_core", + "chinese": "夹具", + "phonetic": "/klæmp/", + "forms": { + "noun": "clamps (复数)", + "plural": "clamps (复数)" + }, + "example": { + "en": "The indexer clamp needs an upgrade.", + "cn": "分度器夹具需要升级。" + } + }, + { + "id": 132, + "english": "clamping", + "frequency": 30, + "category": "business_core", + "chinese": "夹紧", + "phonetic": "/ˈklæmpɪŋ/", + "forms": { + "present_participle": "clamping (现在分词)", + "base_verb": "clamp (动词原形)", + "verb": [ + "clamps (第三人称单数)", + "clamping (现在分词)", + "clamped (过去式/过去分词)" + ] + }, + "example": { + "en": "The clamping force must be sufficient.", + "cn": "夹紧力必须足够。" + } + }, + { + "id": 133, + "english": "clarify", + "frequency": 80, + "category": "communication", + "chinese": "澄清", + "phonetic": "/ˈklærəfaɪ/", + "forms": { + "verb": [ + "clarifies (第三人称单数)", + "clarifying (现在分词)", + "clarified (过去式/过去分词)" + ], + "derivatives": [ + "clarification(澄清)" + ] + }, + "example": { + "en": "Please clarify asap.", + "cn": "请尽快澄清。" + } + }, + { + "id": 134, + "english": "cleaning", + "frequency": 22, + "category": "business_core", + "chinese": "清洁", + "phonetic": "/ˈkliːnɪŋ/", + "forms": { + "present_participle": "cleaning (现在分词)", + "base_verb": "clean (动词原形)", + "verb": [ + "cleans (第三人称单数)", + "cleaning (现在分词)", + "cleaned (过去式/过去分词)" + ], + "plural": "cleanings (复数)" + }, + "example": { + "en": "The time between cleaning is too short.", + "cn": "清洁间隔时间太短。" + } + }, + { + "id": 135, + "english": "cleanliness", + "frequency": 40, + "category": "technical_core", + "chinese": "清洁度", + "phonetic": "/ˈklenlinəs/", + "forms": {}, + "example": { + "en": "Check the scale for cleanliness.", + "cn": "检查刻度的清洁度。" + } + }, + { + "id": 136, + "english": "clear", + "frequency": 36, + "category": "business_core", + "chinese": "清楚的", + "phonetic": "/klɪə(r)/", + "forms": {}, + "example": { + "en": "The instructions are clear.", + "cn": "指令很清楚。" + } + }, + { + "id": 137, + "english": "click", + "frequency": 1, + "category": "high_frequency", + "chinese": "点击", + "phonetic": "/klɪk/", + "forms": {}, + "example": { + "en": "The user still sets their teach window the same as they do today, but then within that teach window they need to click on a corner feature to use as an origin/reference point.", + "cn": "用户仍像现在一样设置示教窗口,但随后需要在该窗口内点击一个角点特征,将其用作原点/参考点。" + } + }, + { + "id": 138, + "english": "clip", + "frequency": 48, + "category": "high_frequency", + "chinese": "夹子", + "phonetic": "/klɪp/", + "forms": { + "noun": "clips (复数)", + "verb": [ + "clips (第三人称单数)", + "clipping (现在分词)", + "clipped (过去式/过去分词)" + ], + "plural": "clips (复数)" + }, + "example": { + "en": "The clip bonder stayed in Singapore.", + "cn": "夹片焊接机留在了新加坡。" + } + }, + { + "id": 139, + "english": "close", + "frequency": 3, + "category": "high_frequency", + "chinese": "靠近的;关闭", + "phonetic": "/kləʊs/", + "forms": { + "derivatives": [ + "closure(结束;定案)" + ] + }, + "example": { + "en": "In order for the ball measurement to be very close to the actual ball size that got measured in the scope room, we have a ball size correction step during teach where we have the operator dial in the average ball size (measured on the scope) for the bonder measured balls, and the vision system would then remember the offset between the scope measurement and bonder measurement.", + "cn": "为了使焊球测量值尽可能接近显微镜室测得的实际焊球尺寸,我们在示教过程中设置了焊球尺寸校正步骤:由操作员输入显微镜测得的平均焊球尺寸,用于校正焊线机测得的焊球;随后视觉系统会记住显微镜测量值与焊线机测量值之间的偏差。" + } + }, + { + "id": 140, + "english": "closed", + "frequency": 85, + "category": "action_verbs", + "chinese": "解决", + "phonetic": "/kloʊzd/", + "forms": { + "infinitive": "close (原形)", + "verb": [ + "closes (第三人称单数)", + "closing (现在分词)", + "closed (过去式/过去分词)" + ], + "adjective": "closed (形容词)" + }, + "example": { + "en": "The case is now closed.", + "cn": "这个案子现在已经了结了。" + } + }, + { + "id": 141, + "english": "coated", + "frequency": 32, + "category": "business_core", + "chinese": "涂层的", + "phonetic": "/ˈkəʊtɪd/", + "forms": { + "past_participle": "coated (过去分词)", + "base_verb": "coat (动词原形)", + "verb": [ + "coats (第三人称单数)", + "coating (现在分词)", + "coated (过去式/过去分词)" + ] + }, + "example": { + "en": "The chuck was coated with DLC.", + "cn": "卡盘上涂有类金刚石碳膜。" + } + }, + { + "id": 142, + "english": "coating", + "frequency": 45, + "category": "business_core", + "chinese": "涂层", + "phonetic": "/ˈkəʊtɪŋ/", + "forms": { + "noun": "coatings (复数)", + "verb": [ + "coats (第三人称单数)", + "coating (现在分词)", + "coated (过去式/过去分词)" + ], + "plural": "coatings (复数)" + }, + "example": { + "en": "The laser removes the coating.", + "cn": "激光去除了涂层。" + } + }, + { + "id": 143, + "english": "coaxial", + "frequency": 36, + "category": "technical_core", + "chinese": "同轴的", + "phonetic": "/ˌkəʊˈæksiəl/", + "forms": {}, + "example": { + "en": "Use the present red coaxial light.", + "cn": "使用目前的红色同轴灯。" + } + }, + { + "id": 144, + "english": "code", + "frequency": 90, + "category": "technical_core", + "chinese": "代码", + "phonetic": "/koʊd/", + "forms": { + "plural": "codes (复数)" + }, + "example": { + "en": "Please check the error code in the manual.", + "cn": "请在手册中查找错误代码。" + } + }, + { + "id": 145, + "english": "collaborate", + "frequency": 75, + "category": "communication", + "chinese": "合作", + "phonetic": "/kəˈlæbəreɪt/", + "forms": { + "verb": [ + "collaborates (第三人称单数)", + "collaborating (现在分词)", + "collaborated (过去式/过去分词)" + ] + }, + "example": { + "en": "Let's use this email trail to collaborate on this problem.", + "cn": "让我们用这个邮件线索来合作解决这个问题。" + } + }, + { + "id": 146, + "english": "collect", + "frequency": 80, + "category": "action_verbs", + "chinese": "收集", + "phonetic": "/kəˈlekt/", + "forms": { + "verb": [ + "collects (第三人称单数)", + "collecting (现在分词)", + "collected (过去式/过去分词)" + ] + }, + "example": { + "en": "Please collect a few images for each process station.", + "cn": "请为每个处理站收集几张图片。" + } + }, + { + "id": 147, + "english": "collected", + "frequency": 75, + "category": "action_verbs", + "chinese": "收集", + "phonetic": "/kəˈlektɪd/", + "forms": { + "infinitive": "collect (原形)", + "verb": [ + "collects (第三人称单数)", + "collecting (现在分词)", + "collected (过去式/过去分词)" + ], + "adjective": "collected (形容词)" + }, + "example": { + "en": "Can you share any data you collected?", + "cn": "你能分享你收集到的任何数据吗?" + } + }, + { + "id": 148, + "english": "column", + "frequency": 40, + "category": "technical_core", + "chinese": "列", + "phonetic": "/ˈkɑːləm/", + "forms": { + "plural": "columns (复数)" + }, + "example": { + "en": "The data is organized in rows and columns.", + "cn": "数据按行和列组织。" + } + }, + { + "id": 149, + "english": "columns", + "frequency": 24, + "category": "business_core", + "chinese": "列", + "phonetic": "/ˈkɒləmz/", + "forms": { + "singular": "column (单数)" + }, + "example": { + "en": "The die bonder processes the odd columns.", + "cn": "固晶机处理奇数列。" + } + }, + { + "id": 150, + "english": "common", + "frequency": 44, + "category": "business_core", + "chinese": "常见的", + "phonetic": "/ˈkɒmən/", + "forms": {}, + "example": { + "en": "Using a side light seems to be common practice.", + "cn": "使用侧灯似乎是普遍的做法。" + } + }, + { + "id": 151, + "english": "communicate", + "frequency": 90, + "category": "communication", + "chinese": "沟通", + "phonetic": "/kəˈmjuːnɪkeɪt/", + "forms": { + "verb": [ + "communicates (第三人称单数)", + "communicating (现在分词)", + "communicated (过去式/过去分词)" + ] + }, + "example": { + "en": "Let's use this email trail to communicate.", + "cn": "让我们用这个邮件线索来沟通。" + } + }, + { + "id": 152, + "english": "communicated", + "frequency": 90, + "category": "communication", + "chinese": "沟通", + "phonetic": "/kəˈmjuːnɪkeɪtɪd/", + "forms": { + "infinitive": "communicate (原形)", + "verb": [ + "communicates (第三人称单数)", + "communicating (现在分词)", + "communicated (过去式/过去分词)" + ] + }, + "example": { + "en": "You had communicated with him a while back.", + "cn": "你不久前曾与他沟通过。" + } + }, + { + "id": 153, + "english": "compare", + "frequency": 26, + "category": "action_verbs", + "chinese": "比较", + "phonetic": "/kəmˈpeə(r)/", + "forms": { + "verb": [ + "compares (第三人称单数)", + "comparing (现在分词)", + "compared (过去式/过去分词)" + ] + }, + "example": { + "en": "We need to compare the results.", + "cn": "我们需要比较结果。" + } + }, + { + "id": 154, + "english": "compensate", + "frequency": 70, + "category": "business_core", + "chinese": "补偿", + "phonetic": "/ˈkɑːmpenseɪt/", + "forms": { + "verb": [ + "compensates (第三人称单数)", + "compensating (现在分词)", + "compensated (过去式/过去分词)" + ], + "derivatives": [ + "compensation(补偿)" + ] + }, + "example": { + "en": "We did this to compensate for the die position.", + "cn": "我们这样做是为了补偿芯片位置。" + } + }, + { + "id": 155, + "english": "competitor", + "frequency": 22, + "category": "business_core", + "chinese": "竞争者", + "phonetic": "/kəmˈpetɪtə(r)/", + "forms": { + "noun": "competitors (复数)", + "plural": "competitors (复数)" + }, + "example": { + "en": "Our main competitor launched a new product.", + "cn": "我们的主要竞争对手推出了一款新产品。" + } + }, + { + "id": 156, + "english": "complete", + "frequency": 1, + "category": "high_frequency", + "chinese": "完整的;完成", + "phonetic": "/kəmˈpliːt/", + "forms": {}, + "example": { + "en": "It covers the complete FoV and we can see whether the same feature measures the same everywhere in the FoV.", + "cn": "它覆盖整个视野,我们可以据此确认同一特征在视野内各处的测量结果是否一致。" + } + }, + { + "id": 157, + "english": "complex", + "frequency": 1, + "category": "high_frequency", + "chinese": "复杂的", + "phonetic": "/ˈkɒmpleks/", + "forms": {}, + "example": { + "en": "I understand that it may require more complex processing (by Halcon?).", + "cn": "我理解这可能需要进行更复杂的处理(使用Halcon?)。" + } + }, + { + "id": 158, + "english": "component", + "frequency": 25, + "category": "technical_core", + "chinese": "部件", + "phonetic": "/kəmˈpəʊnənt/", + "forms": { + "noun": "components (复数)", + "plural": "components (复数)" + }, + "example": { + "en": "This is a high-performance component.", + "cn": "这是一个高性能部件。" + } + }, + { + "id": 159, + "english": "concept", + "frequency": 80, + "category": "business_core", + "chinese": "概念", + "phonetic": "/ˈkɑːnsept/", + "forms": { + "plural": "concepts (复数)" + }, + "example": { + "en": "The concept for auto-correction is correct.", + "cn": "自动校正的概念是正确的。" + } + }, + { + "id": 160, + "english": "concepts", + "frequency": 28, + "category": "business_core", + "chinese": "概念", + "phonetic": "/ˈkɒnsept s/", + "forms": { + "singular": "concept (单数)" + }, + "example": { + "en": "Please put your concepts together.", + "cn": "请把你的概念整合起来。" + } + }, + { + "id": 161, + "english": "concerns", + "frequency": 85, + "category": "communication", + "chinese": "担忧;关注", + "phonetic": "/kənˈsɜːrnz/", + "forms": { + "singular": "concern (单数)", + "verb": [ + "concerns (第三人称单数)", + "concerning (现在分词)", + "concerned (过去式/过去分词)" + ] + }, + "example": { + "en": "Please let me know your comments or concerns.", + "cn": "请告诉我您的意见或担忧。" + } + }, + { + "id": 162, + "english": "conclude", + "frequency": 37, + "category": "business_core", + "chinese": "断定", + "phonetic": "/kənˈkluːd/", + "forms": { + "verb": [ + "concludes (第三人称单数)", + "concluding (现在分词)", + "concluded (过去式/过去分词)" + ], + "derivatives": [ + "conclusion(结论)" + ] + }, + "example": { + "en": "If we conclude this can address the problem, please send one.", + "cn": "如果我们断定这可以解决问题,请发送一个。" + } + }, + { + "id": 163, + "english": "condition", + "frequency": 90, + "category": "high_frequency", + "chinese": "条件", + "phonetic": "/kənˈdɪʃn/", + "forms": { + "plural": "conditions (复数)" + }, + "example": { + "en": "What is the light condition on slide 6?", + "cn": "幻灯片6的光照条件是什么?" + } + }, + { + "id": 164, + "english": "conditions", + "frequency": 48, + "category": "business_core", + "chinese": "条件", + "phonetic": "/kənˈdɪʃnz/", + "forms": { + "singular": "condition (单数)", + "verb": [ + "conditions (第三人称单数)", + "conditioning (现在分词)", + "conditioned (过去式/过去分词)" + ] + }, + "example": { + "en": "We need to know the test conditions.", + "cn": "我们需要知道测试条件。" + } + }, + { + "id": 165, + "english": "confident", + "frequency": 37, + "category": "business_core", + "chinese": "自信的;确信的", + "phonetic": "/ˈkɒnfɪdənt/", + "forms": {}, + "example": { + "en": "We are confident that the sensor works.", + "cn": "我们确信传感器是有效的。" + } + }, + { + "id": 166, + "english": "confidently", + "frequency": 30, + "category": "business_core", + "chinese": "自信地", + "phonetic": "/ˈkɒnfɪdəntli/", + "forms": { + "adverb": "confidently (副词)", + "base_adjective": "confident (形容词原形)", + "adjective": "confident (形容词)" + }, + "example": { + "en": "We can confidently install them.", + "cn": "我们可以自信地安装它们。" + } + }, + { + "id": 167, + "english": "configure", + "frequency": 33, + "category": "business_core", + "chinese": "配置", + "phonetic": "/kənˈfɪɡə(r)/", + "forms": { + "verb": [ + "configures (第三人称单数)", + "configuring (现在分词)", + "configured (过去式/过去分词)" + ], + "derivatives": [ + "configuration(配置)" + ] + }, + "example": { + "en": "Can we configure the software to work with these chucks?", + "cn": "我们可以配置软件以使用这些卡盘吗?" + } + }, + { + "id": 168, + "english": "confirm", + "frequency": 17, + "category": "business_core", + "chinese": "确认", + "phonetic": "/kənˈfɜːrm/", + "forms": { + "verb": [ + "confirms (第三人称单数)", + "confirming (现在分词)", + "confirmed (过去式/过去分词)" + ] + }, + "example": { + "en": "Please confirm your attendance.", + "cn": "请确认您是否出席。" + } + }, + { + "id": 169, + "english": "connect", + "frequency": 27, + "category": "business_core", + "chinese": "连接", + "phonetic": "/kəˈnekt/", + "forms": { + "verb": [ + "connects (第三人称单数)", + "connecting (现在分词)", + "connected (过去式/过去分词)" + ] + }, + "example": { + "en": "Connect the sensor to the board.", + "cn": "将传感器连接到电路板上。" + } + }, + { + "id": 170, + "english": "cons", + "frequency": 22, + "category": "business_core", + "chinese": "缺点", + "phonetic": "/kɒnz/", + "forms": {}, + "example": { + "en": "What are the cons of this approach?", + "cn": "这种方法的缺点是什么?" + } + }, + { + "id": 171, + "english": "consequence", + "frequency": 30, + "category": "business_core", + "chinese": "结果;后果", + "phonetic": "/ˈkɒnsɪkwəns/", + "forms": { + "noun": "consequences (复数)", + "plural": "consequences (复数)" + }, + "example": { + "en": "As a consequence, we need to rework the chucks.", + "cn": "因此,我们需要返工这些卡盘。" + } + }, + { + "id": 172, + "english": "consist", + "frequency": 77, + "category": "high_frequency", + "chinese": "由……组成", + "phonetic": "/kənˈsɪst/", + "forms": { + "derivatives": [ + "consistency(一致性)", + "consistent(一致的)" + ] + }, + "example": { + "en": "The system consists of three parts.", + "cn": "该系统由三个部分组成。" + } + }, + { + "id": 173, + "english": "consistently", + "frequency": 70, + "category": "business_core", + "chinese": "一贯地", + "phonetic": "/kənˈsɪstəntli/", + "forms": { + "adverb": "consistently (副词)", + "adjective": "consistent (形容词)" + }, + "example": { + "en": "They have consistently delayed our timeline.", + "cn": "他们一贯地拖延我们的时间表。" + } + }, + { + "id": 174, + "english": "constraint", + "frequency": 50, + "category": "business_core", + "chinese": "约束;限制", + "phonetic": "/kənˈstreɪnt/", + "forms": { + "noun": "constraints (复数)", + "base_verb": "constrain (动词原形)", + "plural": "constraints (复数)" + }, + "example": { + "en": "We have to work within the given constraints.", + "cn": "我们必须在给定的限制内工作。" + } + }, + { + "id": 175, + "english": "consuming", + "frequency": 32, + "category": "business_core", + "chinese": "消耗的", + "phonetic": "/kənˈsjuːmɪŋ/", + "forms": { + "present_participle": "consuming (现在分词)", + "base_verb": "consume (动词原形)", + "verb": [ + "consumes (第三人称单数)", + "consuming (现在分词)", + "consumed (过去式/过去分词)" + ] + }, + "example": { + "en": "This is a time-consuming task.", + "cn": "这是一项耗时的任务。" + } + }, + { + "id": 176, + "english": "contact", + "frequency": 46, + "category": "business_core", + "chinese": "接触", + "phonetic": "/ˈkɒntækt/", + "forms": { + "noun": "contacts (复数)", + "plural": "contacts (复数)" + }, + "example": { + "en": "Bring the pads in closer contact to the vacuum holes.", + "cn": "使焊盘与真空孔更紧密地接触。" + } + }, + { + "id": 177, + "english": "continue", + "frequency": 16, + "category": "action_verbs", + "chinese": "继续", + "phonetic": "/kənˈtɪnjuː/", + "forms": { + "verb": [ + "continues (第三人称单数)", + "continuing (现在分词)", + "continued (过去式/过去分词)" + ] + }, + "example": { + "en": "We will continue the discussion tomorrow.", + "cn": "我们明天将继续讨论。" + } + }, + { + "id": 178, + "english": "continuously", + "frequency": 75, + "category": "technical_operations", + "chinese": "持续地", + "phonetic": "/kənˈtɪnjuəsli/", + "forms": { + "adverb": "continuously (副词)", + "adjective": "continuous (形容词)" + }, + "example": { + "en": "The time was continuously increased.", + "cn": "时间被持续地增加。" + } + }, + { + "id": 179, + "english": "contrast", + "frequency": 70, + "category": "technical_core", + "chinese": "对比度", + "phonetic": "/ˈkɑːntræst/", + "forms": { + "plural": "contrasts (复数)" + }, + "example": { + "en": "The contrast of the image is too low.", + "cn": "图像的对比度太低了。" + } + }, + { + "id": 180, + "english": "contribute", + "frequency": 45, + "category": "business_core", + "chinese": "促成;贡献", + "phonetic": "/kənˈtrɪbjuːt/", + "forms": { + "verb": [ + "contributes (第三人称单数)", + "contributing (现在分词)", + "contributed (过去式/过去分词)" + ], + "derivatives": [ + "contributor(贡献者;促成因素)" + ] + }, + "example": { + "en": "This may contribute to the random error.", + "cn": "这可能会导致随机误差。" + } + }, + { + "id": 181, + "english": "control", + "frequency": 95, + "category": "technical_operations", + "chinese": "控制", + "phonetic": "/kənˈtroʊl/", + "forms": { + "verb": [ + "controls (第三人称单数)", + "controlling (现在分词)", + "controlled (过去式/过去分词)" + ], + "noun": "control (名词)", + "plural": "controls (复数)" + }, + "example": { + "en": "We need to control the temperature.", + "cn": "我们需要控制温度。" + } + }, + { + "id": 182, + "english": "conversation", + "frequency": 1, + "category": "communication", + "chinese": "对话", + "phonetic": "/ˌkɒnvəˈseɪʃən/", + "forms": {}, + "example": { + "en": "The conversation focused on improving vision accuracy.", + "cn": "这次谈话重点讨论了如何提高视觉精度。" + } + }, + { + "id": 183, + "english": "convert", + "frequency": 20, + "category": "technical_operations", + "chinese": "转换", + "phonetic": "/kənˈvɜːt/", + "forms": { + "verb": [ + "converts (第三人称单数)", + "converting (现在分词)", + "converted (过去式/过去分词)" + ] + }, + "example": { + "en": "You need to convert the file to a different format.", + "cn": "你需要将文件转换为不同的格式。" + } + }, + { + "id": 184, + "english": "convinced", + "frequency": 75, + "category": "high_frequency", + "chinese": "确信的", + "phonetic": "/kənˈvɪnst/", + "forms": { + "adjective": "convinced (形容词)", + "verb": "convince (动词原形)", + "noun": "conviction (名词)" + }, + "example": { + "en": "I'm not convinced that you focus on the right aspects.", + "cn": "我不敢肯定你关注的是正确的方面。" + } + }, + { + "id": 185, + "english": "coordinate", + "frequency": 75, + "category": "business_core", + "chinese": "协调", + "phonetic": "/koʊˈɔːrdɪneɪt/", + "forms": { + "verb": [ + "coordinates (第三人称单数)", + "coordinating (现在分词)", + "coordinated (过去式/过去分词)" + ], + "noun": "coordination (名词)", + "plural": "coordinates (复数)" + }, + "example": { + "en": "I will coordinate and communicate technical concepts.", + "cn": "我将协调和沟通技术概念。" + } + }, + { + "id": 186, + "english": "copying", + "frequency": 40, + "category": "business_core", + "chinese": "复制", + "phonetic": "/ˈkɒpiɪŋ/", + "forms": { + "verb": [ + "copies (第三人称单数)", + "copying (现在分词)", + "copied (过去式/过去分词)" + ] + }, + "example": { + "en": "Make new chucks by copying the TengYang design.", + "cn": "通过复制腾阳的设计来制造新的卡盘。" + } + }, + { + "id": 187, + "english": "corner", + "frequency": 1, + "category": "high_frequency", + "chinese": "角;角落", + "phonetic": "/ˈkɔːnər/", + "forms": { + "noun": "corners (复数)" + }, + "example": { + "en": "On a ball bonder, we measured the position of a lead frame corner while moving to various locations on a grid pattern across the field of view and compared the same measurement to our XY table map target which is glass with a very thin deposition of chrome fiducials.", + "cn": "在一台球焊机上,我们让引线框架角点按网格模式移动到视野内的不同位置并测量其位置,再将测量结果与XY平台标定靶进行比较;该标定靶为玻璃材质,表面沉积有一层极薄的铬基准标记。" + } + }, + { + "id": 188, + "english": "corporate", + "frequency": 70, + "category": "business_core", + "chinese": "公司的", + "phonetic": "/ˈkɔːrpərət/", + "forms": {}, + "example": { + "en": "This is a corporate level issue.", + "cn": "这是一个公司层面的问题。" + } + }, + { + "id": 189, + "english": "correct", + "frequency": 18, + "category": "high_frequency", + "chinese": "正确的", + "phonetic": "/kəˈrekt/", + "forms": { + "adjective": "形容词", + "verb": [ + "corrects (第三人称单数)", + "correcting (现在分词)", + "corrected (过去式/过去分词)" + ], + "derivatives": [ + "correction(校正)", + "correctness(正确性)" + ] + }, + "example": { + "en": "Is this information correct?", + "cn": "这个信息是正确的吗?" + } + }, + { + "id": 190, + "english": "corrected", + "frequency": 50, + "category": "action_verbs", + "chinese": "纠正", + "phonetic": "/kəˈrektɪd/", + "forms": { + "infinitive": "correct (原形)", + "verb": [ + "corrects (第三人称单数)", + "correcting (现在分词)", + "corrected (过去式/过去分词)" + ] + }, + "example": { + "en": "He corrected the mistakes in the report.", + "cn": "他纠正了报告中的错误。" + } + }, + { + "id": 191, + "english": "cost", + "frequency": 2, + "category": "business_core", + "chinese": "成本;花费", + "phonetic": "/kɒst/", + "forms": {}, + "example": { + "en": "But of course, it would be great if we could find a more effective / lower cost / more re-use & synergies solution asap.", + "cn": "当然,如果能尽快找到一个更有效、成本更低、复用程度和协同效应更高的解决方案,那就再好不过了。" + } + }, + { + "id": 192, + "english": "count", + "frequency": 2, + "category": "high_frequency", + "chinese": "数量;计数", + "phonetic": "/kaʊnt/", + "forms": {}, + "example": { + "en": "The images which we upload appear to be binary and to have low pixel count (this latter we seem to have changed on the Suzhou clip bonder but is still low pixel count on the clip bonder in Rohm Thailand).", + "cn": "我们上传的图像似乎是二值图像,而且像素数较低(苏州的夹片焊接机似乎已经对此做了调整,但 Rohm 泰国的夹片焊接机像素数仍然较低)。" + } + }, + { + "id": 193, + "english": "couplers", + "frequency": 27, + "category": "business_core", + "chinese": "联轴器", + "phonetic": "/ˈkʌpləz/", + "forms": { + "singular": "coupler (单数)" + }, + "example": { + "en": "We need to send the correct couplers.", + "cn": "我们需要发送正确的联轴器。" + } + }, + { + "id": 194, + "english": "couplings", + "frequency": 45, + "category": "business_core", + "chinese": "联轴器", + "phonetic": "/ˈkʌplɪŋz/", + "forms": { + "singular": "coupling (单数)" + }, + "example": { + "en": "The motor shaft couplings need to be fixed.", + "cn": "电机轴联轴器需要修理。" + } + }, + { + "id": 195, + "english": "create", + "frequency": 2, + "category": "action_verbs", + "chinese": "创建", + "phonetic": "/kriːˈeɪt/", + "forms": { + "verb": "created (过去式/过去分词)" + }, + "example": { + "en": "We can’t use the customer’s bonding diagram to set up or inspect the assemblies we create.", + "cn": "我们无法使用客户的焊接图来设置或检查我们生产的组件。" + } + }, + { + "id": 196, + "english": "created", + "frequency": 90, + "category": "action_verbs", + "chinese": "创建", + "phonetic": "/kriˈeɪtɪd/", + "forms": { + "infinitive": "create (原形)", + "verb": [ + "creates (第三人称单数)", + "creating (现在分词)", + "created (过去式/过去分词)" + ], + "adjective": "created (形容词)" + }, + "example": { + "en": "You created these reports for Yangjie.", + "cn": "你为扬杰创建了这些报告。" + } + }, + { + "id": 197, + "english": "criteria", + "frequency": 34, + "category": "business_core", + "chinese": "标准", + "phonetic": "/kraɪˈtɪəriə/", + "forms": { + "singular": "criterion (单数)" + }, + "example": { + "en": "The acceptance criteria are defined in the specification.", + "cn": "验收标准已在规格书中定义。" + } + }, + { + "id": 198, + "english": "critical", + "frequency": 16, + "category": "high_frequency", + "chinese": "关键的", + "phonetic": "/ˈkrɪtɪkl/", + "forms": { + "adjective": "形容词", + "adverb": "critically (副词形式)" + }, + "example": { + "en": "This is a critical test for the project.", + "cn": "这是项目的一个关键测试。" + } + }, + { + "id": 199, + "english": "cross", + "frequency": 4, + "category": "high_frequency", + "chinese": "十字;交叉", + "phonetic": "/krɒs/", + "forms": {}, + "example": { + "en": "Draw a cross at the center of the detected feature.", + "cn": "在检测到的特征中心画一个十字。" + } + }, + { + "id": 200, + "english": "crosshair", + "frequency": 3, + "category": "high_frequency", + "chinese": "十字准星", + "phonetic": "/ˈkrɒsheər/", + "forms": {}, + "example": { + "en": "What is the meaning of the crosshair?", + "cn": "十字准线表示什么?" + } + }, + { + "id": 201, + "english": "crucial", + "frequency": 32, + "category": "business_core", + "chinese": "至关重要的", + "phonetic": "/ˈkruːʃl/", + "forms": {}, + "example": { + "en": "These are crucial to extend the time between cleaning.", + "cn": "这些对于延长清洁间隔时间至关重要。" + } + }, + { + "id": 202, + "english": "current", + "frequency": 85, + "category": "technical_core", + "chinese": "电流", + "phonetic": "/ˈkɜːrənt/", + "forms": { + "plural": "currents (复数)" + }, + "example": { + "en": "It operates at a lower forward current.", + "cn": "它在较低的正向电流下工作。" + } + }, + { + "id": 203, + "english": "currently", + "frequency": 90, + "category": "time_planning", + "chinese": "目前", + "phonetic": "/ˈkɜːrəntli/", + "forms": { + "adverb": "currently (副词)", + "adjective": "current (形容词)" + }, + "example": { + "en": "Currently we have red lights on the dispense cameras.", + "cn": "目前我们的点胶相机上装的是红灯。" + } + }, + { + "id": 204, + "english": "customer", + "frequency": 85, + "category": "business_core", + "chinese": "客户", + "phonetic": "/ˈkʌstəmər/", + "forms": { + "plural": "customers (复数)" + }, + "example": { + "en": "The changes must be done before the customer visit.", + "cn": "这些变更必须在客户来访前完成。" + } + }, + { + "id": 205, + "english": "cut off", + "frequency": 65, + "category": "action_verbs", + "chinese": "切断", + "phonetic": "/kʌt ɔːf/", + "forms": { + "plural": "cut offs (复数)" + }, + "example": { + "en": "The area outside the search area is cut off.", + "cn": "搜索区域外的区域被切掉了。" + } + }, + { + "id": 206, + "english": "cylinders", + "frequency": 47, + "category": "business_core", + "chinese": "气缸", + "phonetic": "/ˈsɪlɪndəz/", + "forms": { + "singular": "cylinder (单数)" + }, + "example": { + "en": "This is for the cylinders of the wafer table.", + "cn": "这是用于晶圆台的气缸。" + } + }, + { + "id": 207, + "english": "dark", + "frequency": 75, + "category": "high_frequency", + "chinese": "黑暗的", + "phonetic": "/dɑːrk/", + "forms": {}, + "example": { + "en": "It's too dark to see anything.", + "cn": "太黑了,什么也看不见。" + } + }, + { + "id": 208, + "english": "darker", + "frequency": 23, + "category": "business_core", + "chinese": "更暗的", + "phonetic": "/ˈdɑːkə(r)/", + "forms": {}, + "example": { + "en": "The chuck has a darker appearance.", + "cn": "卡盘的外观更暗。" + } + }, + { + "id": 209, + "english": "data", + "frequency": 12, + "category": "high_frequency", + "chinese": "数据", + "phonetic": "/ˈdeɪtə/", + "forms": {}, + "example": { + "en": "To repeat for all on this email: Our clip inspection data at Rohm (and at Yanjie) indicate that something is systematically wrong.", + "cn": "再向这封邮件中的所有人重申一次:我们在 Rohm(以及扬杰)的夹焊片检测数据表明,系统中存在某种系统性错误。" + } + }, + { + "id": 210, + "english": "date", + "frequency": 85, + "category": "time_planning", + "chinese": "日期", + "phonetic": "/deɪt/", + "forms": { + "plural": "dates (复数)" + }, + "example": { + "en": "What is the delivery date?", + "cn": "交货日期是哪天?" + } + }, + { + "id": 211, + "english": "dates", + "frequency": 85, + "category": "time_planning", + "chinese": "日期", + "phonetic": "/deɪts/", + "forms": { + "singular": "date (单数)", + "verb": [ + "dates (第三人称单数)", + "dating (现在分词)", + "dated (过去式/过去分词)" + ] + }, + "example": { + "en": "We need to set the dates for the next meeting.", + "cn": "我们需要确定下次会议的日期。" + } + }, + { + "id": 212, + "english": "day", + "frequency": 6, + "category": "time_planning", + "chinese": "天;日", + "phonetic": "/deɪ/", + "forms": { + "noun": "days (复数)" + }, + "example": { + "en": "It was difficult for me to hear and understand much during the summit day yesterday.", + "cn": "昨天峰会期间,我很难听清并理解太多内容。" + } + }, + { + "id": 213, + "english": "debug", + "frequency": 75, + "category": "technical_core", + "chinese": "调试", + "phonetic": "/diːˈbʌɡ/", + "forms": { + "verb": [ + "debugs (第三人称单数)", + "debugging (现在分词)", + "debugged (过去式/过去分词)" + ] + }, + "example": { + "en": "It would be great if we could debug it then.", + "cn": "如果我们能在那时调试它就太好了。" + } + }, + { + "id": 214, + "english": "debugging", + "frequency": 46, + "category": "business_core", + "chinese": "调试", + "phonetic": "/diːˈbʌɡɪŋ/", + "forms": { + "present_participle": "debugging (现在分词)", + "base_verb": "debug (动词原形)", + "verb": [ + "debugs (第三人称单数)", + "debugging (现在分词)", + "debugged (过去式/过去分词)" + ] + }, + "example": { + "en": "This is the result of debugging the bonder.", + "cn": "这是调试焊接机后的效果。" + } + }, + { + "id": 215, + "english": "decision", + "frequency": 90, + "category": "business_core", + "chinese": "决定", + "phonetic": "/dɪˈsɪʒn/", + "forms": { + "plural": "decisions (复数)" + }, + "example": { + "en": "We need to make a decision by tomorrow.", + "cn": "我们明天之前需要做出决定。" + } + }, + { + "id": 216, + "english": "default", + "frequency": 70, + "category": "technical_core", + "chinese": "默认", + "phonetic": "/dɪˈfɔːlt/", + "forms": { + "plural": "defaults (复数)" + }, + "example": { + "en": "The default value is 100.", + "cn": "默认值是100。" + } + }, + { + "id": 217, + "english": "define", + "frequency": 41, + "category": "business_core", + "chinese": "定义", + "phonetic": "/dɪˈfaɪn/", + "forms": { + "verb": [ + "defines (第三人称单数)", + "defining (现在分词)", + "defined (过去式/过去分词)" + ], + "derivatives": [ + "definition(定义;清晰度)" + ] + }, + "example": { + "en": "Please define the requirements.", + "cn": "请定义需求。" + } + }, + { + "id": 218, + "english": "delivery", + "frequency": 105, + "category": "business_core", + "chinese": "交付;递送", + "phonetic": "/dɪˈlɪvəri/", + "forms": { + "noun": "deliveries (复数)", + "base_verb": "deliver (动词原形)", + "plural": "deliveries (复数)" + }, + "example": { + "en": "The delivery is scheduled for tomorrow.", + "cn": "交货定于明天。" + } + }, + { + "id": 219, + "english": "demand", + "frequency": 1, + "category": "business_core", + "chinese": "需求", + "phonetic": "/dɪˈmɑːnd/", + "forms": {}, + "example": { + "en": "And the marketing input at the summit showed that there is a good demand for the flip capability, and (all) our competitors have it.", + "cn": "峰会上的市场反馈表明,市场对翻转功能有较大需求,而且我们的(所有)竞争对手都具备这一功能。" + } + }, + { + "id": 220, + "english": "demonstrate", + "frequency": 75, + "category": "action_verbs", + "chinese": "演示", + "phonetic": "/ˈdemənstreɪt/", + "forms": { + "verb": [ + "demonstrates (第三人称单数)", + "demonstrating (现在分词)", + "demonstrated (过去式/过去分词)" + ] + }, + "example": { + "en": "Why don't you demonstrate the improvement potential?", + "cn": "你为什么不演示一下改进的潜力呢?" + } + }, + { + "id": 221, + "english": "dependence", + "frequency": 65, + "category": "technical_core", + "chinese": "依赖性", + "phonetic": "/dɪˈpendəns/", + "forms": { + "noun": "dependence (名词)", + "adjective": "dependent (形容词)", + "verb": "depend (动词)" + }, + "example": { + "en": "There is a significant row dependence.", + "cn": "存在显著的行依赖性。" + } + }, + { + "id": 222, + "english": "deploy", + "frequency": 75, + "category": "technical_operations", + "chinese": "部署", + "phonetic": "/dɪˈplɔɪ/", + "forms": { + "verb": [ + "deploys (第三人称单数)", + "deploying (现在分词)", + "deployed (过去式/过去分词)" + ] + }, + "example": { + "en": "We could deploy it quickly.", + "cn": "我们可以快速部署它。" + } + }, + { + "id": 223, + "english": "deposition", + "frequency": 1, + "category": "technical_core", + "chinese": "沉积;沉积层", + "phonetic": "/ˌdepəˈzɪʃən/", + "forms": {}, + "example": { + "en": "On a ball bonder, we measured the position of a lead frame corner while moving to various locations on a grid pattern across the field of view and compared the same measurement to our XY table map target which is glass with a very thin deposition of chrome fiducials.", + "cn": "在一台球焊机上,我们让引线框架角点按网格模式移动到视野内的不同位置并测量其位置,再将测量结果与XY平台标定靶进行比较;该标定靶为玻璃材质,表面沉积有一层极薄的铬基准标记。" + } + }, + { + "id": 224, + "english": "describe", + "frequency": 85, + "category": "communication", + "chinese": "描述", + "phonetic": "/dɪˈskraɪb/", + "forms": { + "verb": [ + "describes (第三人称单数)", + "describing (现在分词)", + "described (过去式/过去分词)" + ], + "derivatives": [ + "description(描述)" + ] + }, + "example": { + "en": "I believe I did describe this a few times.", + "cn": "我相信我已经描述过好几次了。" + } + }, + { + "id": 225, + "english": "design", + "frequency": 140, + "category": "technical_core", + "chinese": "设计", + "phonetic": "/dɪˈzaɪn/", + "forms": { + "noun": "designs (复数)", + "verb": [ + "designs (第三人称单数)", + "designing (现在分词)", + "designed (过去式/过去分词)" + ], + "plural": "designs (复数)" + }, + "example": { + "en": "She has a talent for fashion design.", + "cn": "她有服装设计的天赋。" + } + }, + { + "id": 226, + "english": "designs", + "frequency": 24, + "category": "technical_core", + "chinese": "设计", + "phonetic": "/dɪˈzaɪnz/", + "forms": { + "singular": "design (单数)", + "verb": [ + "designs (第三人称单数)", + "designing (现在分词)", + "designed (过去式/过去分词)" + ] + }, + "example": { + "en": "The new designs are better.", + "cn": "新设计更好。" + } + }, + { + "id": 227, + "english": "desperately", + "frequency": 10, + "category": "high_frequency", + "chinese": "拼命地", + "phonetic": "/ˈdespərətli/", + "forms": { + "adverb": "desperately (副词)", + "adjective": "desperate (形容词)" + }, + "example": { + "en": "We are desperately looking for the chucks.", + "cn": "我们正在拼命地寻找那些夹具。" + } + }, + { + "id": 228, + "english": "detail", + "frequency": 85, + "category": "communication", + "chinese": "细节", + "phonetic": "/ˈdiːteɪl/", + "forms": { + "plural": "details (复数)" + }, + "example": { + "en": "Please provide more details.", + "cn": "请提供更多细节。" + } + }, + { + "id": 229, + "english": "details", + "frequency": 90, + "category": "high_frequency", + "chinese": "细节", + "phonetic": "/ˈdiːteɪlz/", + "forms": { + "singular": "detail (单数)", + "verb": [ + "details (第三人称单数)", + "detailing (现在分词)", + "detailed (过去式/过去分词)" + ] + }, + "example": { + "en": "The red light is able to show the details of the die better.", + "cn": "红光能更好地显示芯片的细节。" + } + }, + { + "id": 230, + "english": "detect", + "frequency": 40, + "category": "technical_operations", + "chinese": "检测", + "phonetic": "/dɪˈtekt/", + "forms": { + "verb": [ + "detects (第三人称单数)", + "detecting (现在分词)", + "detected (过去式/过去分词)" + ], + "derivatives": [ + "detection(检测)" + ] + }, + "example": { + "en": "The sensor can detect small changes in temperature.", + "cn": "传感器可以检测到微小的温度变化。" + } + }, + { + "id": 231, + "english": "determine", + "frequency": 85, + "category": "action_verbs", + "chinese": "确定", + "phonetic": "/dɪˈtɜːrmɪn/", + "forms": { + "verb": [ + "determines (第三人称单数)", + "determining (现在分词)", + "determined (过去式/过去分词)" + ] + }, + "example": { + "en": "Determine the optimal location.", + "cn": "确定最佳位置。" + } + }, + { + "id": 232, + "english": "determined", + "frequency": 70, + "category": "business_core", + "chinese": "确定的", + "phonetic": "/dɪˈtɜːrmɪnd/", + "forms": { + "infinitive": "determine (原形)", + "verb": [ + "determines (第三人称单数)", + "determining (现在分词)", + "determined (过去式/过去分词)" + ] + }, + "example": { + "en": "That height is determined from touch-down measurements.", + "cn": "那个高度是通过接触测量确定的。" + } + }, + { + "id": 233, + "english": "develop", + "frequency": 22, + "category": "business_core", + "chinese": "制定;开发", + "phonetic": "/dɪˈveləp/", + "forms": { + "verb": [ + "develops (第三人称单数)", + "developing (现在分词)", + "developed (过去式/过去分词)" + ], + "derivatives": [ + "development(开发;发展)" + ] + }, + "example": { + "en": "Please prepare to develop a plan.", + "cn": "请准备制定一个计划。" + } + }, + { + "id": 234, + "english": "deviation", + "frequency": 1, + "category": "high_frequency", + "chinese": "偏差", + "phonetic": "/ˌdiːviˈeɪʃən/", + "forms": {}, + "example": { + "en": "In the email were the data for ~200 transfers resulting in the <2m standard deviation.", + "cn": "邮件中包含约200次转移的数据,其标准差小于2微米。" + } + }, + { + "id": 235, + "english": "device", + "frequency": 8, + "category": "high_frequency", + "chinese": "器件;设备", + "phonetic": "/dɪˈvaɪs/", + "forms": { + "noun": "devices (复数)" + }, + "example": { + "en": "Shouldn’t it be at the center of the feature which we want to use to define the position of the item (device on lead frame, clip) so we can compare the machine reported dimensions with the dimensions given on the bonding diagram?", + "cn": "十字准星难道不应该位于我们用于确定对象(引线框架上的器件或夹焊片)位置的特征中心吗?这样我们才能将机器报告的尺寸与键合图中给出的尺寸进行比较。" + } + }, + { + "id": 236, + "english": "diagram", + "frequency": 60, + "category": "technical_core", + "chinese": "图表", + "phonetic": "/ˈdaɪəɡræm/", + "forms": { + "plural": "diagrams (复数)" + }, + "example": { + "en": "Please see the timing diagram below.", + "cn": "请看下面的时序图。" + } + }, + { + "id": 237, + "english": "dial", + "frequency": 1, + "category": "high_frequency", + "chinese": "拨号;调节", + "phonetic": "/ˈdaɪəl/", + "forms": {}, + "example": { + "en": "In order for the ball measurement to be very close to the actual ball size that got measured in the scope room, we have a ball size correction step during teach where we have the operator dial in the average ball size (measured on the scope) for the bonder measured balls, and the vision system would then remember the offset between the scope measurement and bonder measurement.", + "cn": "为了使焊接机测得的焊球尺寸尽可能接近显微镜室测得的实际尺寸,我们在示教过程中设置了焊球尺寸校正步骤:由操作员输入显微镜测得的平均焊球尺寸,视觉系统随后会记住显微镜测量值与焊接机测量值之间的偏差。" + } + }, + { + "id": 238, + "english": "die", + "frequency": 75, + "category": "technical_core", + "chinese": "芯片", + "phonetic": "/daɪ/", + "forms": { + "plural": "dies (复数)" + }, + "example": { + "en": "The red cross is not in the center of the die.", + "cn": "红十字不在芯片的中心。" + } + }, + { + "id": 239, + "english": "different", + "frequency": 95, + "category": "high_frequency", + "chinese": "不同的", + "phonetic": "/ˈdɪfrənt/", + "forms": {}, + "example": { + "en": "What is different in your test?", + "cn": "你的测试有什么不同?" + } + }, + { + "id": 240, + "english": "difficult", + "frequency": 1, + "category": "high_frequency", + "chinese": "困难的", + "phonetic": "/ˈdɪfɪkəlt/", + "forms": {}, + "example": { + "en": "It was difficult for me to hear and understand much during the summit day yesterday.", + "cn": "昨天峰会期间,我很难听清并理解大部分内容。" + } + }, + { + "id": 241, + "english": "difficulties", + "frequency": 80, + "category": "business_core", + "chinese": "困难", + "phonetic": "/ˈdɪfɪkəltiz/", + "forms": { + "singular": "difficulty (单数)", + "adjective": "difficult (形容词)" + }, + "example": { + "en": "We are wondering why you encounter such difficulties with this feature.", + "cn": "我们想知道为什么您在这个功能上遇到这么多困难。" + } + }, + { + "id": 242, + "english": "difficulty", + "frequency": 49, + "category": "business_core", + "chinese": "困难", + "phonetic": "/ˈdɪfɪkəlti/", + "forms": { + "noun": "difficulties (复数)", + "plural": "difficulties (复数)" + }, + "example": { + "en": "We are facing some technical difficulties.", + "cn": "我们正面临一些技术困难。" + } + }, + { + "id": 243, + "english": "dimension", + "frequency": 6, + "category": "technical_core", + "chinese": "尺寸;维度", + "phonetic": "/daɪˈmenʃən/", + "forms": { + "noun": "dimensions (复数)" + }, + "example": { + "en": "What images are used to process and extract the dimension information?", + "cn": "使用哪些图像进行处理并提取尺寸信息?" + } + }, + { + "id": 244, + "english": "directly", + "frequency": 32, + "category": "business_core", + "chinese": "直接地", + "phonetic": "/dəˈrektli/", + "forms": { + "adverb": "directly (副词)", + "base_adjective": "direct (形容词原形)", + "adjective": "direct (形容词)" + }, + "example": { + "en": "Please contact me directly.", + "cn": "请直接与我联系。" + } + }, + { + "id": 245, + "english": "disappears", + "frequency": 34, + "category": "business_core", + "chinese": "消失", + "phonetic": "/ˌdɪsəˈpɪəz/", + "forms": { + "verb": [ + "disappears (第三人称单数)", + "disappear (原形)", + "disappearing (现在分词)", + "disappeared (过去式/过去分词)" + ] + }, + "example": { + "en": "The image disappears when you click the button.", + "cn": "当你点击按钮时,图像消失了。" + } + }, + { + "id": 246, + "english": "disappointing", + "frequency": 47, + "category": "business_core", + "chinese": "令人失望的", + "phonetic": "/ˌdɪsəˈpɔɪntɪŋ/", + "forms": { + "present_participle": "disappointing (现在分词)", + "base_verb": "disappoint (动词原形)", + "verb": [ + "disappoints (第三人称单数)", + "disappointing (现在分词)", + "disappointed (过去式/过去分词)" + ] + }, + "example": { + "en": "This was very disappointing.", + "cn": "这非常令人失望。" + } + }, + { + "id": 247, + "english": "discuss", + "frequency": 4, + "category": "action_verbs", + "chinese": "讨论;商议", + "phonetic": "/dɪˈskʌs/", + "forms": { + "verb": "discussed (过去式/过去分词)", + "derivatives": [ + "discussion(讨论)" + ] + }, + "example": { + "en": "We discussed and questioned system resolution.", + "cn": "我们讨论了系统分辨率,并对此提出了疑问。" + } + }, + { + "id": 248, + "english": "dispense", + "frequency": 57, + "category": "high_frequency", + "chinese": "点胶", + "phonetic": "/dɪˈspens/", + "forms": { + "verb": [ + "dispenses (第三人称单数)", + "dispensing (现在分词)", + "dispensed (过去式/过去分词)" + ], + "derivatives": [ + "dispenser(点胶机)" + ] + }, + "example": { + "en": "This machine can dispense adhesive accurately.", + "cn": "这台机器可以精确地点胶。" + } + }, + { + "id": 249, + "english": "display", + "frequency": 1, + "category": "high_frequency", + "chinese": "显示", + "phonetic": "/dɪˈspleɪ/", + "forms": {}, + "example": { + "en": "Do we have the option to display the raw image?", + "cn": "我们是否可以选择显示原始图像?" + } + }, + { + "id": 250, + "english": "distance", + "frequency": 70, + "category": "business_core", + "chinese": "距离", + "phonetic": "/ˈdɪstəns/", + "forms": { + "plural": "distances (复数)" + }, + "example": { + "en": "Is the dispense height the distance between the nozzle tip and the substrate?", + "cn": "点胶高度是喷嘴尖端和基板之间的距离吗?" + } + }, + { + "id": 251, + "english": "distortion", + "frequency": 8, + "category": "technical_core", + "chinese": "畸变;失真", + "phonetic": "/dɪˈstɔːʃən/", + "forms": { + "noun": "distortions (复数)" + }, + "example": { + "en": "This would allow us to check for distortion and verify our calibration.", + "cn": "这样我们就可以检查畸变并验证标定结果。" + } + }, + { + "id": 252, + "english": "document", + "frequency": 37, + "category": "business_core", + "chinese": "记录", + "phonetic": "/ˈdɒkjument/", + "forms": { + "verb": [ + "documents (第三人称单数)", + "documenting (现在分词)", + "documented (过去式/过去分词)" + ], + "plural": "documents (复数)", + "derivatives": [ + "documentation(文档)" + ] + }, + "example": { + "en": "Please document the manufacturing processes.", + "cn": "请记录制造过程。" + } + }, + { + "id": 253, + "english": "documented", + "frequency": 33, + "category": "business_core", + "chinese": "记录的", + "phonetic": "/ˈdɒkjumentɪd/", + "forms": { + "past_participle": "documented (过去分词)", + "base_verb": "document (动词原形)", + "verb": [ + "documents (第三人称单数)", + "documenting (现在分词)", + "documented (过去式/过去分词)" + ] + }, + "example": { + "en": "The process is well documented.", + "cn": "这个过程有详细的记录。" + } + }, + { + "id": 254, + "english": "doubt", + "frequency": 110, + "category": "descriptive_words", + "chinese": "怀疑", + "phonetic": "/daʊt/", + "forms": { + "noun": "doubts (复数)", + "verb": [ + "doubts (第三人称单数)", + "doubting (现在分词)", + "doubted (过去式/过去分词)" + ], + "plural": "doubts (复数)" + }, + "example": { + "en": "I have no doubt that you will succeed.", + "cn": "我毫不怀疑你会成功。" + } + }, + { + "id": 255, + "english": "down-holder", + "frequency": 22, + "category": "business_core", + "chinese": "压紧器", + "phonetic": "/daʊn ˈhəʊldə(r)/", + "forms": { + "noun": "down-holders (复数)", + "plural": "down-holders (复数)" + }, + "example": { + "en": "We need to perform down-holder tests.", + "cn": "我们需要执行压紧器测试。" + } + }, + { + "id": 256, + "english": "downset", + "frequency": 38, + "category": "business_core", + "chinese": "下压", + "phonetic": "/ˈdaʊnset/", + "forms": { + "noun": "downsets (复数)", + "plural": "downsets (复数)" + }, + "example": { + "en": "The chuck's downset is not consistent.", + "cn": "卡盘的下压不一致。" + } + }, + { + "id": 257, + "english": "downtime", + "frequency": 25, + "category": "business_core", + "chinese": "停机时间", + "phonetic": "/ˈdaʊntaɪm/", + "forms": { + "noun": "downtimes (复数)", + "plural": "downtimes (复数)" + }, + "example": { + "en": "We need to limit the downtime of the line.", + "cn": "我们需要限制生产线的停机时间。" + } + }, + { + "id": 258, + "english": "drawing", + "frequency": 14, + "category": "technical_core", + "chinese": "图纸", + "phonetic": "/ˈdrɔːɪŋ/", + "forms": { + "noun": "drawings (复数)", + "verb": [ + "draws (第三人称单数)", + "drawing (现在分词)", + "drew (过去式), drawn (过去分词)" + ], + "plural": "drawings (复数)" + }, + "example": { + "en": "Can you send me the drawing for the chuck?", + "cn": "你能把夹具的图纸发给我吗?" + } + }, + { + "id": 259, + "english": "drop", + "frequency": 15, + "category": "action_verbs", + "chinese": "放弃", + "phonetic": "/drɒp/", + "forms": { + "verb": [ + "drops (第三人称单数)", + "dropping (现在分词)", + "dropped (过去式/过去分词)" + ], + "noun": "drops (复数)", + "plural": "drops (复数)" + }, + "example": { + "en": "We may have to drop the idea due to lack of funding.", + "cn": "由于资金不足,我们可能不得不放弃这个想法。" + } + }, + { + "id": 260, + "english": "due", + "frequency": 90, + "category": "time_planning", + "chinese": "到期的", + "phonetic": "/duː/", + "forms": { + "adjective": "due (形容词)" + }, + "example": { + "en": "The due dates are in the column CP.", + "cn": "截止日期在CP栏。" + } + }, + { + "id": 261, + "english": "dynamic", + "frequency": 40, + "category": "business_core", + "chinese": "动态的", + "phonetic": "/daɪˈnæmɪk/", + "forms": {}, + "example": { + "en": "This is a dynamic pressure measurement.", + "cn": "这是一种动态压力测量。" + } + }, + { + "id": 262, + "english": "early", + "frequency": 90, + "category": "time_planning", + "chinese": "早", + "phonetic": "/ˈɜːrli/", + "forms": { + "adjective": "early (形容词)", + "adverb": "early (副词)", + "comparative": "earlier (比较级)", + "superlative": "earliest (最高级)" + }, + "example": { + "en": "He arrived early for the meeting.", + "cn": "他提前到达了会场。" + } + }, + { + "id": 263, + "english": "edge", + "frequency": 70, + "category": "technical_core", + "chinese": "边缘", + "phonetic": "/edʒ/", + "forms": { + "plural": "edges (复数)" + }, + "example": { + "en": "Be careful with the sharp edge of the knife.", + "cn": "小心刀的锋利边缘。" + } + }, + { + "id": 264, + "english": "effect", + "frequency": 16, + "category": "high_frequency", + "chinese": "结果", + "phonetic": "/ɪˈfekt/", + "forms": { + "verb": [ + "effects (第三人称单数)", + "effecting (现在分词)", + "effected (过去式/过去分词)" + ], + "noun": "effects (复数)", + "plural": "effects (复数)", + "derivatives": [ + "effective(有效的)" + ] + }, + "example": { + "en": "The new policy will have a significant effect on the economy.", + "cn": "新政策将对经济产生重大影响。" + } + }, + { + "id": 265, + "english": "efficient", + "frequency": 26, + "category": "business_core", + "chinese": "高效的", + "phonetic": "/ɪˈfɪʃnt/", + "forms": { + "derivatives": [ + "efficiency(效率)" + ] + }, + "example": { + "en": "We need a more efficient process.", + "cn": "我们需要一个更高效的流程。" + } + }, + { + "id": 266, + "english": "effort", + "frequency": 13, + "category": "high_frequency", + "chinese": "努力", + "phonetic": "/ˈefərt/", + "forms": { + "noun": "efforts (复数)", + "plural": "efforts (复数)" + }, + "example": { + "en": "Please make a strong effort to look everywhere.", + "cn": "请努力搜查所有地方。" + } + }, + { + "id": 267, + "english": "elaborate", + "frequency": 70, + "category": "business_core", + "chinese": "详细说明", + "phonetic": "/ɪˈlæbəreɪt/", + "forms": { + "verb": [ + "elaborates (第三人称单数)", + "elaborating (现在分词)", + "elaborated (过去式/过去分词)" + ] + }, + "example": { + "en": "Can you elaborate on what is important for the vision?", + "cn": "你能详细说明一下对视觉系统来说哪些方面是重要的吗?" + } + }, + { + "id": 268, + "english": "electrodes", + "frequency": 26, + "category": "business_core", + "chinese": "电极", + "phonetic": "/ɪˈlektrəʊdz/", + "forms": { + "singular": "electrode (单数)" + }, + "example": { + "en": "Is there flux on the inner MHG electrodes?", + "cn": "内部MHG电极上是否有助焊剂?" + } + }, + { + "id": 269, + "english": "email", + "frequency": 6, + "category": "communication", + "chinese": "邮件", + "phonetic": "/ˈiːmeɪl/", + "forms": {}, + "example": { + "en": "Below is the email which I had sent 2 weeks ago with some of the questions which you asked me again 2 days ago (type of images, …).", + "cn": "下面是我两周前发送的邮件,其中包含一些你两天前再次问到的问题(图像类型等)。" + } + }, + { + "id": 270, + "english": "emergency", + "frequency": 22, + "category": "time_planning", + "chinese": "紧急情况", + "phonetic": "/ɪˈmɜːdʒənsi/", + "forms": { + "noun": "emergencies (复数)", + "plural": "emergencies (复数)" + }, + "example": { + "en": "We have an emergency at Yangjie.", + "cn": "我们在扬杰有紧急情况。" + } + }, + { + "id": 271, + "english": "enable", + "frequency": 34, + "category": "business_core", + "chinese": "使能够", + "phonetic": "/ɪˈneɪbl/", + "forms": { + "verb": [ + "enables (第三人称单数)", + "enabling (现在分词)", + "enabled (过去式/过去分词)" + ] + }, + "example": { + "en": "This will enable control of the claw height.", + "cn": "这将能够控制爪子的高度。" + } + }, + { + "id": 272, + "english": "encoder", + "frequency": 29, + "category": "business_core", + "chinese": "编码器", + "phonetic": "/ɪnˈkəʊdə(r)/", + "forms": { + "noun": "encoders (复数)", + "plural": "encoders (复数)" + }, + "example": { + "en": "Check the encoder scale for cleanliness.", + "cn": "检查编码器刻度是否清洁。" + } + }, + { + "id": 273, + "english": "end", + "frequency": 1, + "category": "time_planning", + "chinese": "结束;末端", + "phonetic": "/end/", + "forms": {}, + "example": { + "en": "Also please note that we are installing this application in Rohm Thailand end of next week and want to get acceptance by middle of July.", + "cn": "另请注意,我们将在下周末于罗姆泰国工厂安装此应用,并希望在7月中旬前完成验收。" + } + }, + { + "id": 274, + "english": "engineer", + "frequency": 3, + "category": "high_frequency", + "chinese": "工程师", + "phonetic": "/ˌendʒɪˈnɪər/", + "forms": { + "derivatives": [ + "engineering(工程)" + ] + }, + "example": { + "en": "An experienced vision engineer can attend the meeting at the machine.", + "cn": "一位经验丰富的视觉工程师可以到设备现场参加会议。" + } + }, + { + "id": 275, + "english": "engineers", + "frequency": 21, + "category": "business_core", + "chinese": "工程师", + "phonetic": "/ˌendʒɪˈnɪəz/", + "forms": { + "singular": "engineer (单数)", + "verb": [ + "engineers (第三人称单数)", + "engineering (现在分词)", + "engineered (过去式/过去分词)" + ] + }, + "example": { + "en": "Jianfei knows the two engineers in Suzhou.", + "cn": "建飞认识苏州的两位工程师。" + } + }, + { + "id": 276, + "english": "enhance", + "frequency": 36, + "category": "action_verbs", + "chinese": "提高;增强", + "phonetic": "/ɪnˈhɑːns/", + "forms": { + "verb": [ + "enhances (第三人称单数)", + "enhancing (现在分词)", + "enhanced (过去式/过去分词)" + ], + "derivatives": [ + "enhancement(增强)" + ] + }, + "example": { + "en": "Good lighting will enhance the image.", + "cn": "良好的照明会增强图像效果。" + } + }, + { + "id": 277, + "english": "equal", + "frequency": 80, + "category": "high_frequency", + "chinese": "相等的", + "phonetic": "/ˈiːkwəl/", + "forms": {}, + "example": { + "en": "Make the search area equal to the lead area.", + "cn": "使搜索区域等于引线区域。" + } + }, + { + "id": 278, + "english": "equally", + "frequency": 75, + "category": "high_frequency", + "chinese": "同样地", + "phonetic": "/ˈiːkwəli/", + "forms": { + "adverb": "equally (副词)", + "adjective": "equal (形容词)" + }, + "example": { + "en": "Wang Fang's work is equally urgent and critical.", + "cn": "王芳的工作同样紧急和关键。" + } + }, + { + "id": 279, + "english": "equipment", + "frequency": 95, + "category": "technical_core", + "chinese": "设备", + "phonetic": "/ɪˈkwɪpmənt/", + "forms": {}, + "example": { + "en": "The laboratory has all the necessary equipment.", + "cn": "实验室拥有所有必要的设备。" + } + }, + { + "id": 280, + "english": "error", + "frequency": 80, + "category": "technical_core", + "chinese": "错误", + "phonetic": "/ˈerər/", + "forms": { + "plural": "errors (复数)" + }, + "example": { + "en": "The system reported an unknown error.", + "cn": "系统报告了一个未知错误。" + } + }, + { + "id": 281, + "english": "escalated", + "frequency": 70, + "category": "business_core", + "chinese": "升级", + "phonetic": "/ˈeskəleɪtɪd/", + "forms": { + "infinitive": "escalate (原形)", + "verb": [ + "escalates (第三人称单数)", + "escalating (现在分词)", + "escalated (过去式/过去分词)" + ] + }, + "example": { + "en": "This item is escalated in our corporate QBR.", + "cn": "这个项目在我们的公司季度业务回顾中被提级了。" + } + }, + { + "id": 282, + "english": "especially", + "frequency": 95, + "category": "high_frequency", + "chinese": "尤其", + "phonetic": "/ɪˈspeʃəli/", + "forms": { + "adverb": "especially (副词)", + "adjective": "especial (形容词)" + }, + "example": { + "en": "It is difficult, especially when we use blank dice.", + "cn": "这很困难,尤其是当我们使用空白芯片时。" + } + }, + { + "id": 283, + "english": "establish", + "frequency": 46, + "category": "business_core", + "chinese": "建立", + "phonetic": "/ɪˈstæblɪʃ/", + "forms": { + "verb": [ + "establishes (第三人称单数)", + "establishing (现在分词)", + "established (过去式/过去分词)" + ] + }, + "example": { + "en": "We need to establish an understanding.", + "cn": "我们需要建立共识。" + } + }, + { + "id": 284, + "english": "estimated", + "frequency": 40, + "category": "time_planning", + "chinese": "估计的", + "phonetic": "/ˈestɪmeɪtɪd/", + "forms": { + "infinitive": "estimate (原形)", + "verb": [ + "estimates (第三人称单数)", + "estimating (现在分词)", + "estimated (过去式/过去分词)" + ] + }, + "example": { + "en": "Please provide an estimated date of completion.", + "cn": "请提供一个预计的完成日期。" + } + }, + { + "id": 285, + "english": "evaluate", + "frequency": 75, + "category": "business_core", + "chinese": "评估", + "phonetic": "/ɪˈvæljueɪt/", + "forms": { + "verb": [ + "evaluates (第三人称单数)", + "evaluating (现在分词)", + "evaluated (过去式/过去分词)" + ], + "noun": "evaluation (名词)", + "derivatives": [ + "evaluation(评估)" + ] + }, + "example": { + "en": "Customers evaluate us against their present supplier.", + "cn": "客户将我们与他们现有的供应商进行评估。" + } + }, + { + "id": 286, + "english": "evaluated", + "frequency": 80, + "category": "business_core", + "chinese": "评估", + "phonetic": "/ɪˈvæljueɪtɪd/", + "forms": { + "infinitive": "evaluate (原形)", + "verb": [ + "evaluates (第三人称单数)", + "evaluating (现在分词)", + "evaluated (过去式/过去分词)" + ] + }, + "example": { + "en": "The results can be evaluated.", + "cn": "结果可以被评估。" + } + }, + { + "id": 287, + "english": "even", + "frequency": 22, + "category": "business_core", + "chinese": "偶数的", + "phonetic": "/ˈiːvn/", + "forms": {}, + "example": { + "en": "The other dispenser works on even columns.", + "cn": "另一个点胶机处理偶数列。" + } + }, + { + "id": 288, + "english": "eventual", + "frequency": 49, + "category": "business_core", + "chinese": "最终的", + "phonetic": "/ɪˈventʃuəl/", + "forms": {}, + "example": { + "en": "This is for an eventual upgrade.", + "cn": "这是为了最终的升级。" + } + }, + { + "id": 289, + "english": "evidence", + "frequency": 85, + "category": "high_frequency", + "chinese": "证据", + "phonetic": "/ˈevɪdəns/", + "forms": { + "noun": "evidence (名词)", + "verb": [ + "evidences (第三人称单数)", + "evidencing (现在分词)", + "evidenced (过去式/过去分词)" + ] + }, + "example": { + "en": "Do we have evidence that the red light has benefits?", + "cn": "我们有证据表明红光有好处吗?" + } + }, + { + "id": 290, + "english": "exactly", + "frequency": 32, + "category": "business_core", + "chinese": "确切地;完全地", + "phonetic": "/ɪɡˈzæktli/", + "forms": { + "adverb": "exactly (副词)", + "base_adjective": "exact (形容词原形)", + "adjective": "exact (形容词)" + }, + "example": { + "en": "Use exactly the same settings.", + "cn": "使用完全相同的设置。" + } + }, + { + "id": 291, + "english": "example", + "frequency": 3, + "category": "high_frequency", + "chinese": "例子", + "phonetic": "/ɪɡˈzɑːmpəl/", + "forms": {}, + "example": { + "en": "Attached is a slide where I have a few questions related to an example of a setup.", + "cn": "附件是一页幻灯片,其中列出了我针对一个设置示例提出的几个问题。" + } + }, + { + "id": 292, + "english": "exclude", + "frequency": 1, + "category": "high_frequency", + "chinese": "排除", + "phonetic": "/ɪkˈskluːd/", + "forms": {}, + "example": { + "en": "We can exclude the original hypothesis that the material is the cause.", + "cn": "我们可以排除材料是影响因素这一原始假设。" + } + }, + { + "id": 293, + "english": "execute", + "frequency": 28, + "category": "business_core", + "chinese": "执行", + "phonetic": "/ˈeksɪkjuːt/", + "forms": { + "verb": [ + "executes (第三人称单数)", + "executing (现在分词)", + "executed (过去式/过去分词)" + ] + }, + "example": { + "en": "We need to decide when to execute the upgrade.", + "cn": "我们需要决定何时执行升级。" + } + }, + { + "id": 294, + "english": "exhaust", + "frequency": 33, + "category": "business_core", + "chinese": "排气", + "phonetic": "/ɪɡˈzɔːst/", + "forms": { + "noun": "exhausts (复数)", + "plural": "exhausts (复数)" + }, + "example": { + "en": "Check the flow meters in the exhaust path.", + "cn": "检查排气路径中的流量计。" + } + }, + { + "id": 295, + "english": "existing", + "frequency": 70, + "category": "business_core", + "chinese": "现有的", + "phonetic": "/ɪɡˈzɪstɪŋ/", + "forms": { + "verb": [ + "exists (第三人称单数)", + "existing (现在分词)", + "existed (过去式/过去分词)" + ], + "adjective": "existing (形容词)" + }, + "example": { + "en": "Can we modify an existing door?", + "cn": "我们可以修改现有的门吗?" + } + }, + { + "id": 296, + "english": "expand", + "frequency": 14, + "category": "action_verbs", + "chinese": "扩展", + "phonetic": "/ɪkˈspænd/", + "forms": { + "verb": [ + "expands (第三人称单数)", + "expanding (现在分词)", + "expanded (过去式/过去分词)" + ] + }, + "example": { + "en": "The company plans to expand its operations in Europe.", + "cn": "公司计划在欧洲扩展业务。" + } + }, + { + "id": 297, + "english": "expanded", + "frequency": 70, + "category": "technical_operations", + "chinese": "扩展的", + "phonetic": "/ɪkˈspændɪd/", + "forms": { + "infinitive": "expand (原形)", + "verb": [ + "expands (第三人称单数)", + "expanding (现在分词)", + "expanded (过去式/过去分词)" + ], + "adjective": "expanded (形容词)" + }, + "example": { + "en": "Please get the expanded auto-correction feature ready.", + "cn": "请准备好扩展的自动校正功能。" + } + }, + { + "id": 298, + "english": "expecting", + "frequency": 39, + "category": "business_core", + "chinese": "期待", + "phonetic": "/ɪkˈspektɪŋ/", + "forms": { + "verb": [ + "expects (第三人称单数)", + "expecting (现在分词)", + "expected (过去式/过去分词)" + ] + }, + "example": { + "en": "We were expecting to reduce the PR problems.", + "cn": "我们原本期望减少 PR(图像识别)问题。" + } + }, + { + "id": 299, + "english": "expedite", + "frequency": 12, + "category": "business_core", + "chinese": "加快", + "phonetic": "/ˈekspədaɪt/", + "forms": { + "verb": [ + "expedites (第三人称单数)", + "expediting (现在分词)", + "expedited (过去式/过去分词)" + ] + }, + "example": { + "en": "We will expedite the order with the supplier.", + "cn": "我们将催促供应商加快订单处理。" + } + }, + { + "id": 300, + "english": "expedited", + "frequency": 30, + "category": "business_core", + "chinese": "加快的;迅速的", + "phonetic": "/ˈekspədaɪtɪd/", + "forms": { + "adjective": "expedited (形容词)", + "base_verb": "expedite (动词原形)", + "verb": [ + "expedits (第三人称单数)", + "expediting (现在分词)", + "expedited (过去式/过去分词)" + ] + }, + "example": { + "en": "Please use expedited shipping for this order.", + "cn": "此订单请使用加急运送。" + } + }, + { + "id": 301, + "english": "expensive", + "frequency": 90, + "category": "high_frequency", + "chinese": "昂贵的", + "phonetic": "/ɪkˈspensɪv/", + "forms": { + "adjective": "expensive (形容词)", + "noun": "expense (名词)" + }, + "example": { + "en": "This is a very expensive piece of equipment.", + "cn": "这是一台非常昂贵的设备。" + } + }, + { + "id": 302, + "english": "experience", + "frequency": 4, + "category": "high_frequency", + "chinese": "经验;经历", + "phonetic": "/ɪkˈspɪəriəns/", + "forms": { + "noun": "experiences (复数)" + }, + "example": { + "en": "Next week Rohm Japan engineers in Thailand will start ‘using the machines’ and compare with their experience with the ASM system.", + "cn": "下周,Rohm 日本驻泰国的工程师将开始‘使用这些机器’,并与他们使用 ASM 系统的经验进行比较。" + } + }, + { + "id": 303, + "english": "experts", + "frequency": 75, + "category": "business_core", + "chinese": "专家", + "phonetic": "/ˈekspɜːrts/", + "forms": { + "singular": "expert (单数)" + }, + "example": { + "en": "I reached out to the vision experts.", + "cn": "我联系了视觉专家。" + } + }, + { + "id": 304, + "english": "explain", + "frequency": 90, + "category": "communication", + "chinese": "解释", + "phonetic": "/ɪkˈspleɪn/", + "forms": { + "verb": [ + "explains (第三人称单数)", + "explaining (现在分词)", + "explained (过去式/过去分词)" + ], + "derivatives": [ + "explanation(解释)" + ] + }, + "example": { + "en": "Please explain in detail.", + "cn": "请详细解释。" + } + }, + { + "id": 305, + "english": "exposure", + "frequency": 65, + "category": "technical_core", + "chinese": "曝光", + "phonetic": "/ɪkˈspoʊʒər/", + "forms": { + "plural": "exposures (复数)" + }, + "example": { + "en": "Exposure time is one of the parameters.", + "cn": "曝光时间是参数之一。" + } + }, + { + "id": 306, + "english": "extend", + "frequency": 70, + "category": "action_verbs", + "chinese": "延伸", + "phonetic": "/ɪkˈstend/", + "forms": { + "verb": [ + "extends (第三人称单数)", + "extending (现在分词)", + "extended (过去式/过去分词)" + ] + }, + "example": { + "en": "The search area should not extend beyond the lead.", + "cn": "搜索区域不应超出引线范围。" + } + }, + { + "id": 307, + "english": "extends", + "frequency": 27, + "category": "business_core", + "chinese": "延长", + "phonetic": "/ɪkˈstendz/", + "forms": { + "verb": [ + "extends (第三人称单数)", + "extending (现在分词)", + "extended (过去式/过去分词)" + ] + }, + "example": { + "en": "This software update extends the system’s operating range.", + "cn": "此次软件更新扩展了系统的工作范围。" + } + }, + { + "id": 308, + "english": "extract", + "frequency": 75, + "category": "action_verbs", + "chinese": "提取", + "phonetic": "/ɪkˈstrækt/", + "forms": { + "verb": [ + "extracts (第三人称单数)", + "extracting (现在分词)", + "extracted (过去式/过去分词)" + ] + }, + "example": { + "en": "If we could extract that information, our DOE becomes numerical.", + "cn": "如果我们能提取这些信息,我们的实验设计就变成数字化的了。" + } + }, + { + "id": 309, + "english": "extracted", + "frequency": 37, + "category": "action_verbs", + "chinese": "提取的", + "phonetic": "/ɪkˈstræktɪd/", + "forms": { + "past_participle": "extracted (过去分词)", + "base_verb": "extract (动词原形)", + "verb": [ + "extracts (第三人称单数)", + "extracting (现在分词)", + "extracted (过去式/过去分词)" + ] + }, + "example": { + "en": "This is what I extracted from Luke's measurements.", + "cn": "这是我从卢克的测量数据中提取的。" + } + }, + { + "id": 310, + "english": "extremely", + "frequency": 80, + "category": "high_frequency", + "chinese": "极其", + "phonetic": "/ɪkˈstriːmli/", + "forms": {}, + "example": { + "en": "This is EXTREMELY URGENT!", + "cn": "这非常紧急!" + } + }, + { + "id": 311, + "english": "factor", + "frequency": 1, + "category": "high_frequency", + "chinese": "因素", + "phonetic": "/ˈfæktər/", + "forms": {}, + "example": { + "en": "Cost is an important factor in this decision.", + "cn": "成本是此决策中的一个重要因素。" + } + }, + { + "id": 312, + "english": "failures", + "frequency": 43, + "category": "business_core", + "chinese": "故障", + "phonetic": "/ˈfeɪljəz/", + "forms": { + "singular": "failure (单数)" + }, + "example": { + "en": "We need to prepare for potential failures.", + "cn": "我们需要为潜在的故障做准备。" + } + }, + { + "id": 313, + "english": "false", + "frequency": 39, + "category": "business_core", + "chinese": "错误的", + "phonetic": "/fɔːls/", + "forms": {}, + "example": { + "en": "This gives a false impression of good clamping.", + "cn": "这给人一种夹紧良好的错觉。" + } + }, + { + "id": 314, + "english": "familiar", + "frequency": 1, + "category": "high_frequency", + "chinese": "熟悉的", + "phonetic": "/fəˈmɪliər/", + "forms": {}, + "example": { + "en": "We have some vision engineers in the Bangalore ASMT office, but they are not at all familiar with Avaline.", + "cn": "我们在班加罗尔的ASMT办公室有一些视觉工程师,但他们完全不熟悉Avaline。" + } + }, + { + "id": 315, + "english": "fast", + "frequency": 1, + "category": "high_frequency", + "chinese": "快速的", + "phonetic": "/fɑːst/", + "forms": {}, + "example": { + "en": "So if we want to make a change we need to make it now, and fast.", + "cn": "因此,如果要做出更改,就必须现在立即行动。" + } + }, + { + "id": 316, + "english": "favor", + "frequency": 2, + "category": "high_frequency", + "chinese": "帮忙;偏好", + "phonetic": "/ˈfeɪvər/", + "forms": { + "verb": "favored (过去式/过去分词)" + }, + "example": { + "en": "Could you do me a favor and forward this email?", + "cn": "你能帮个忙把这封邮件转发一下吗?" + } + }, + { + "id": 317, + "english": "feasible", + "frequency": 40, + "category": "business_core", + "chinese": "可行的", + "phonetic": "/ˈfiːzəbl/", + "forms": {}, + "example": { + "en": "Is it feasible to finish the project by Friday?", + "cn": "周五前完成这个项目可行吗?" + } + }, + { + "id": 318, + "english": "feature", + "frequency": 85, + "category": "technical_core", + "chinese": "功能", + "phonetic": "/ˈfiːtʃər/", + "forms": { + "plural": "features (复数)" + }, + "example": { + "en": "This feature will also be needed for Rohm.", + "cn": "罗姆公司也将需要此功能。" + } + }, + { + "id": 319, + "english": "feedback", + "frequency": 85, + "category": "communication", + "chinese": "反馈", + "phonetic": "/ˈfiːdbæk/", + "forms": {}, + "example": { + "en": "Based on Zhijie's feedback, it should be possible.", + "cn": "根据志杰的反馈,这应该是可能的。" + } + }, + { + "id": 320, + "english": "fiducial", + "frequency": 40, + "category": "technical_core", + "chinese": "基准点", + "phonetic": "/fɪˈduːʃl/", + "forms": { + "plural": "fiducials (复数)", + "adjective": "fiducial (形容词)" + }, + "example": { + "en": "We can better see the fiducial and the die.", + "cn": "我们可以更好地看到基准点和芯片。" + } + }, + { + "id": 321, + "english": "field", + "frequency": 5, + "category": "high_frequency", + "chinese": "现场;视野;字段", + "phonetic": "/fiːld/", + "forms": {}, + "example": { + "en": "If you are having robustness and accuracy issues, it is best to ask the field to collect lots of images (with different light levels) and then have Eddy run some study offline to optimize the vision teach.", + "cn": "如果遇到稳健性和精度问题,最好让现场人员采集大量不同光照等级的图像,然后请 Eddy 离线开展研究,以优化视觉示教。" + } + }, + { + "id": 322, + "english": "figure", + "frequency": 80, + "category": "high_frequency", + "chinese": "数字;图", + "phonetic": "/ˈfɪɡjər/", + "forms": { + "plural": "figures (复数)" + }, + "example": { + "en": "Then we get a figure for the contrast.", + "cn": "然后我们得到了对比度的数值。" + } + }, + { + "id": 323, + "english": "files", + "frequency": 21, + "category": "business_core", + "chinese": "文件", + "phonetic": "/faɪlz/", + "forms": { + "singular": "file (单数)", + "verb": [ + "fils (第三人称单数)", + "filing (现在分词)", + "filed (过去式/过去分词)" + ] + }, + "example": { + "en": "I cannot open these files.", + "cn": "我打不开这些文件。" + } + }, + { + "id": 324, + "english": "filling", + "frequency": 35, + "category": "business_core", + "chinese": "填充", + "phonetic": "/ˈfɪlɪŋ/", + "forms": { + "present_participle": "filling (现在分词)", + "base_verb": "fill (动词原形)", + "verb": [ + "fills (第三人称单数)", + "filling (现在分词)", + "filled (过去式/过去分词)" + ], + "plural": "fillings (复数)" + }, + "example": { + "en": "The filling of the area is not working.", + "cn": "区域的填充不起作用。" + } + }, + { + "id": 325, + "english": "find", + "frequency": 13, + "category": "action_verbs", + "chinese": "找到;查找", + "phonetic": "/faɪnd/", + "forms": { + "verb": [ + "finds (第三人称单数)", + "finding (现在分词)", + "found (过去式/过去分词)" + ] + }, + "example": { + "en": "But of course, it would be great if we could find a more effective / lower cost / more re-use & synergies solution asap.", + "cn": "当然,如果能尽快找到一种更高效、成本更低、复用程度更高且协同效应更好的解决方案,那就再好不过了。" + } + }, + { + "id": 326, + "english": "fine-tune", + "frequency": 36, + "category": "business_core", + "chinese": "微调", + "phonetic": "/ˌfaɪn ˈtjuːn/", + "forms": { + "verb": [ + "fine-tunes (第三人称单数)", + "fine-tuning (现在分词)", + "fine-tuned (过去式/过去分词)" + ] + }, + "example": { + "en": "Help fine-tune the light and camera settings.", + "cn": "帮助微调灯光和相机设置。" + } + }, + { + "id": 327, + "english": "first", + "frequency": 2, + "category": "time_planning", + "chinese": "第一;首先", + "phonetic": "/fɜːst/", + "forms": {}, + "example": { + "en": "First, let's confirm the measurement setup.", + "cn": "首先,让我们确认测量设置。" + } + }, + { + "id": 328, + "english": "fittings", + "frequency": 24, + "category": "business_core", + "chinese": "配件", + "phonetic": "/ˈfɪtɪŋz/", + "forms": { + "singular": "fitting (单数)" + }, + "example": { + "en": "Please add fittings and brackets.", + "cn": "请添加配件和支架。" + } + }, + { + "id": 329, + "english": "fix", + "frequency": 2, + "category": "technical_operations", + "chinese": "修复", + "phonetic": "/fɪks/", + "forms": { + "verb": "fixing (现在分词)" + }, + "example": { + "en": "We need to fix this issue as soon as possible.", + "cn": "我们需要尽快修复这个问题。" + } + }, + { + "id": 330, + "english": "flexibility", + "frequency": 43, + "category": "business_core", + "chinese": "灵活性", + "phonetic": "/ˌfleksəˈbɪləti/", + "forms": { + "noun": "flexibilities (复数)", + "plural": "flexibilities (复数)" + }, + "example": { + "en": "The new system offers greater flexibility.", + "cn": "新系统提供了更大的灵活性。" + } + }, + { + "id": 331, + "english": "flip", + "frequency": 2, + "category": "high_frequency", + "chinese": "翻转;倒装", + "phonetic": "/flɪp/", + "forms": {}, + "example": { + "en": "Note that we are in the RFQ process for manufacturing the first 5 prototypes and that we will need up-looking vision for the currently favored flip module concept.", + "cn": "请注意,我们正在为首批 5 台原型机的制造进行询价,而目前倾向采用的翻转模块方案将需要上视视觉。" + } + }, + { + "id": 332, + "english": "flowing", + "frequency": 21, + "category": "business_core", + "chinese": "流动的", + "phonetic": "/ˈfləʊɪŋ/", + "forms": { + "present_participle": "flowing (现在分词)", + "base_verb": "flow (动词原形)", + "verb": [ + "flows (第三人称单数)", + "flowing (现在分词)", + "flowed (过去式/过去分词)" + ] + }, + "example": { + "en": "The water is flowing.", + "cn": "水在流动。" + } + }, + { + "id": 333, + "english": "flux", + "frequency": 36, + "category": "business_core", + "chinese": "助焊剂", + "phonetic": "/flʌks/", + "forms": { + "noun": "fluxes (复数)", + "plural": "fluxes (复数)" + }, + "example": { + "en": "The flux is flowing down the openings.", + "cn": "助焊剂正从开口处流下。" + } + }, + { + "id": 334, + "english": "focal length", + "frequency": 45, + "category": "technical_core", + "chinese": "焦距", + "phonetic": "/ˈfoʊkl leŋθ/", + "forms": { + "noun": "focal length (名词)", + "plural": "focal lengths (复数)" + }, + "example": { + "en": "The lens has a short focal length.", + "cn": "这个镜头的焦距很短。" + } + }, + { + "id": 335, + "english": "focus", + "frequency": 21, + "category": "business_core", + "chinese": "聚焦", + "phonetic": "/ˈfəʊkəs/", + "forms": { + "verb": [ + "focuses (第三人称单数)", + "focusing (现在分词)", + "focused (过去式/过去分词)" + ] + }, + "example": { + "en": "Let's focus on the main issue.", + "cn": "让我们关注主要问题。" + } + }, + { + "id": 336, + "english": "folder", + "frequency": 39, + "category": "business_core", + "chinese": "文件夹", + "phonetic": "/ˈfəʊldə(r)/", + "forms": { + "noun": "folders (复数)", + "plural": "folders (复数)" + }, + "example": { + "en": "Create a new folder for the project.", + "cn": "为项目创建一个新文件夹。" + } + }, + { + "id": 337, + "english": "follow", + "frequency": 3, + "category": "action_verbs", + "chinese": "跟进;遵循", + "phonetic": "/ˈfɒləʊ/", + "forms": { + "verb": [ + "Following (现在分词)", + "following (现在分词)" + ] + }, + "example": { + "en": "If you see that a step by step description helps to better understand what is being done, please let me know, and I will ask Jianfei to follow up.", + "cn": "如果你认为逐步说明有助于更好地理解当前操作,请告诉我,我会请 Jianfei 继续跟进。" + } + }, + { + "id": 338, + "english": "following up", + "frequency": 65, + "category": "business_core", + "chinese": "跟进", + "phonetic": "/ˈfɑːloʊɪŋ ʌp/", + "forms": { + "phrasal_verb": "follow up (短语动词)", + "verb": [ + "follows up (第三人称单数)", + "following up (现在分词)", + "followed up (过去式/过去分词)" + ], + "plural": "following ups (复数)" + }, + "example": { + "en": "She is following up on the customer's complaint.", + "cn": "她正在跟进客户的投诉。" + } + }, + { + "id": 339, + "english": "forced", + "frequency": 70, + "category": "action_verbs", + "chinese": "被迫的", + "phonetic": "/fɔːrst/", + "forms": { + "infinitive": "force (原形)", + "verb": [ + "forces (第三人称单数)", + "forcing (现在分词)", + "forced (过去式/过去分词)" + ] + }, + "example": { + "en": "We have been forced to move on.", + "cn": "我们被迫继续前进。" + } + }, + { + "id": 340, + "english": "forces", + "frequency": 45, + "category": "action_verbs", + "chinese": "力", + "phonetic": "/fɔːsɪz/", + "forms": { + "singular": "force (单数)", + "verb": [ + "forces (第三人称单数)", + "forcing (现在分词)", + "forced (过去式/过去分词)" + ] + }, + "example": { + "en": "The vacuum holes create holding forces.", + "cn": "真空孔产生保持力。" + } + }, + { + "id": 341, + "english": "formal", + "frequency": 70, + "category": "business_core", + "chinese": "正式的", + "phonetic": "/ˈfɔːrml/", + "forms": { + "adjective": "formal (形容词)" + }, + "example": { + "en": "Please submit a formal engineering change request.", + "cn": "请提交正式的工程变更申请。" + } + }, + { + "id": 342, + "english": "forward", + "frequency": 75, + "category": "technical_core", + "chinese": "向前的", + "phonetic": "/ˈfɔːrwərd/", + "forms": {}, + "example": { + "en": "The forward voltage is a key parameter.", + "cn": "正向电压是一个关键参数。" + } + }, + { + "id": 343, + "english": "found", + "frequency": 18, + "category": "high_frequency", + "chinese": "找到", + "phonetic": "/faʊnd/", + "forms": { + "verb": "find的过去式/过去分词" + }, + "example": { + "en": "The missing item was finally found.", + "cn": "丢失的物品终于被找到了。" + } + }, + { + "id": 344, + "english": "frame", + "frequency": 35, + "category": "business_core", + "chinese": "框架", + "phonetic": "/freɪm/", + "forms": { + "noun": "frames (复数)", + "plural": "frames (复数)" + }, + "example": { + "en": "The lead frame holds the die.", + "cn": "引线框架固定着芯片。" + } + }, + { + "id": 345, + "english": "frequent", + "frequency": 48, + "category": "business_core", + "chinese": "频繁的", + "phonetic": "/ˈfriːkwənt/", + "forms": {}, + "example": { + "en": "The machine has frequent fast moves.", + "cn": "机器有频繁的快速移动。" + } + }, + { + "id": 346, + "english": "frictional", + "frequency": 28, + "category": "business_core", + "chinese": "摩擦的", + "phonetic": "/ˈfrɪkʃənl/", + "forms": {}, + "example": { + "en": "Measure the frictional holding forces.", + "cn": "测量摩擦保持力。" + } + }, + { + "id": 347, + "english": "front", + "frequency": 1, + "category": "high_frequency", + "chinese": "前面;前端的", + "phonetic": "/frʌnt/", + "forms": {}, + "example": { + "en": "The image shown on screen is a preprocessed image (this is confirmed from my observation in front of the machine).", + "cn": "屏幕上显示的是预处理图像(这是我在机器旁观察后确认的)。" + } + }, + { + "id": 348, + "english": "fulfill", + "frequency": 70, + "category": "business_core", + "chinese": "满足", + "phonetic": "/fʊlˈfɪl/", + "forms": { + "verb": [ + "fulfills (第三人称单数)", + "fulfilling (现在分词)", + "fulfilled (过去式/过去分词)" + ] + }, + "example": { + "en": "We need to fulfill all other requirements.", + "cn": "我们需要满足所有其他要求。" + } + }, + { + "id": 349, + "english": "fully", + "frequency": 85, + "category": "high_frequency", + "chinese": "完全地", + "phonetic": "/ˈfʊli/", + "forms": { + "adverb": "fully (副词)", + "adjective": "full (形容词)" + }, + "example": { + "en": "The dot is not fully inside the search area.", + "cn": "该点未完全在搜索区域内。" + } + }, + { + "id": 350, + "english": "function", + "frequency": 1, + "category": "high_frequency", + "chinese": "功能;函数", + "phonetic": "/ˈfʌŋkʃən/", + "forms": {}, + "example": { + "en": "I assume that is a software function, correct?", + "cn": "我认为这是软件功能,对吗?" + } + }, + { + "id": 351, + "english": "functionality", + "frequency": 70, + "category": "technical_operations", + "chinese": "功能", + "phonetic": "/ˌfʌŋkʃəˈnæləti/", + "forms": { + "noun": "functionality (名词)", + "adjective": "functional (形容词)", + "plural": "functionalities (复数)" + }, + "example": { + "en": "This functionality is very critical.", + "cn": "这个功能非常关键。" + } + }, + { + "id": 352, + "english": "gain", + "frequency": 65, + "category": "technical_core", + "chinese": "增益", + "phonetic": "/ɡeɪn/", + "forms": { + "plural": "gains (复数)" + }, + "example": { + "en": "Camera gain is another parameter.", + "cn": "相机增益是另一个参数。" + } + }, + { + "id": 353, + "english": "gamma", + "frequency": 27, + "category": "technical_core", + "chinese": "伽马", + "phonetic": "/ˈɡæmə/", + "forms": { + "noun": "gammas (复数)", + "plural": "gammas (复数)" + }, + "example": { + "en": "An even higher gamma will keep black areas dark.", + "cn": "更高的伽马值将使黑色区域保持暗黑。" + } + }, + { + "id": 354, + "english": "gap", + "frequency": 70, + "category": "business_core", + "chinese": "差距", + "phonetic": "/ɡæp/", + "forms": { + "plural": "gaps (复数)" + }, + "example": { + "en": "This is a critical gap at Yangjie.", + "cn": "这是扬杰的一个关键差距。" + } + }, + { + "id": 355, + "english": "gaps", + "frequency": 32, + "category": "business_core", + "chinese": "差距", + "phonetic": "/ɡæps/", + "forms": { + "singular": "gap (单数)", + "verb": [ + "gaps (第三人称单数)", + "gaping (现在分词)", + "gaped (过去式/过去分词)" + ] + }, + "example": { + "en": "We have some remaining gaps.", + "cn": "我们还有一些差距。" + } + }, + { + "id": 356, + "english": "gating", + "frequency": 70, + "category": "business_core", + "chinese": "门控;限制", + "phonetic": "/ˈɡeɪtɪŋ/", + "forms": { + "verb": [ + "gates (第三人称单数)", + "gating (现在分词)", + "gated (过去式/过去分词)" + ] + }, + "example": { + "en": "Can we identify which parts are gating delivery?", + "cn": "我们能确定哪些零件是限制交付的吗?" + } + }, + { + "id": 357, + "english": "gauge", + "frequency": 45, + "category": "business_core", + "chinese": "测量仪", + "phonetic": "/ɡeɪdʒ/", + "forms": { + "noun": "gauges (复数)", + "plural": "gauges (复数)" + }, + "example": { + "en": "Perform the force gauge pull test.", + "cn": "执行测力计拉力测试。" + } + }, + { + "id": 358, + "english": "general", + "frequency": 16, + "category": "high_frequency", + "chinese": "总体的", + "phonetic": "/ˈdʒenrəl/", + "forms": { + "adjective": "形容词", + "noun": "将军" + }, + "example": { + "en": "This is a general overview of the topic.", + "cn": "这是对该主题的总体概述。" + } + }, + { + "id": 359, + "english": "generally", + "frequency": 47, + "category": "business_core", + "chinese": "通常;普遍地", + "phonetic": "/ˈdʒenrəli/", + "forms": { + "adverb": "generally (副词)", + "base_adjective": "general (形容词原形)", + "adjective": "general (形容词)" + }, + "example": { + "en": "We need a generally applicable solution.", + "cn": "我们需要一个普遍适用的解决方案。" + } + }, + { + "id": 360, + "english": "generator", + "frequency": 37, + "category": "business_core", + "chinese": "发生器", + "phonetic": "/ˈdʒenəreɪtə(r)/", + "forms": { + "noun": "generators (复数)", + "plural": "generators (复数)" + }, + "example": { + "en": "The vacuum generator is not working.", + "cn": "真空发生器不工作了。" + } + }, + { + "id": 361, + "english": "geometric", + "frequency": 1, + "category": "technical_core", + "chinese": "几何的", + "phonetic": "/ˌdʒiːəˈmetrɪk/", + "forms": {}, + "example": { + "en": "The algorithm uses geometric features to locate the part.", + "cn": "该算法使用几何特征定位零件。" + } + }, + { + "id": 362, + "english": "get", + "frequency": 8, + "category": "action_verbs", + "chinese": "得到;获得;变得", + "phonetic": "/ɡet/", + "forms": { + "verb": [ + "got (过去式/过去分词)", + "getting (现在分词)" + ] + }, + "example": { + "en": "Also please note that we are installing this application in Rohm Thailand end of next week and want to get acceptance by middle of July.", + "cn": "另请注意,我们将在下周末于泰国罗姆安装此应用,并希望在 7 月中旬前完成验收。" + } + }, + { + "id": 363, + "english": "give", + "frequency": 5, + "category": "action_verbs", + "chinese": "给;提供", + "phonetic": "/ɡɪv/", + "forms": { + "verb": "given" + }, + "example": { + "en": "I also copied Eddy (not sure he will still be in Suzhou) and Li Yang, both may give you more insight / details how these images are processed, and Benson and CK for their information about this activity.", + "cn": "我还抄送了 Eddy(不确定他届时是否仍在苏州)和杨立,他们或许能提供有关这些图像处理方式的更多见解和细节;同时也抄送 Benson 和 CK,让他们了解这项活动。" + } + }, + { + "id": 364, + "english": "glass", + "frequency": 4, + "category": "high_frequency", + "chinese": "玻璃的;玻璃", + "phonetic": "/ɡlɑːs/", + "forms": {}, + "example": { + "en": "On a ball bonder, we measured the position of a lead frame corner while moving to various locations on a grid pattern across the field of view and compared the same measurement to our XY table map target which is glass with a very thin deposition of chrome fiducials.", + "cn": "在一台球焊机上,我们让引线框架角点沿覆盖整个视野的网格移动到不同位置,并测量其位置;然后将各次测量结果与 XY 工作台的映射标靶进行比较。该标靶由玻璃制成,表面沉积有一层很薄的铬基准标记。" + } + }, + { + "id": 365, + "english": "goal", + "frequency": 90, + "category": "business_core", + "chinese": "目标", + "phonetic": "/ɡoʊl/", + "forms": { + "plural": "goals (复数)" + }, + "example": { + "en": "The goal is to make the center area white.", + "cn": "目标是使中心区域变白。" + } + }, + { + "id": 366, + "english": "good", + "frequency": 7, + "category": "high_frequency", + "chinese": "好的", + "phonetic": "/ɡʊd/", + "forms": {}, + "example": { + "en": "Last night (US time) we had the summit and I heard Vlad asking a lot of good questions.", + "cn": "昨晚(美国时间)我们召开了峰会,我听到 Vlad 提出了很多很好的问题。" + } + }, + { + "id": 367, + "english": "gradual", + "frequency": 22, + "category": "business_core", + "chinese": "逐渐的", + "phonetic": "/ˈɡrædʒuəl/", + "forms": {}, + "example": { + "en": "The change in appearance is gradual.", + "cn": "外观的变化是逐渐的。" + } + }, + { + "id": 368, + "english": "gray", + "frequency": 3, + "category": "technical_core", + "chinese": "灰色的;灰度", + "phonetic": "/ɡreɪ/", + "forms": {}, + "example": { + "en": "Generally for best accuracy, raw gray level images should be used for processing.", + "cn": "一般而言,为获得最佳精度,应使用原始灰度图像进行处理。" + } + }, + { + "id": 369, + "english": "great", + "frequency": 1, + "category": "high_frequency", + "chinese": "很好的", + "phonetic": "/ɡreɪt/", + "forms": {}, + "example": { + "en": "But of course, it would be great if we could find a more effective / lower cost / more re-use & synergies solution asap.", + "cn": "当然,如果我们能尽快找到一种更有效、成本更低、复用程度与协同效应更高的解决方案,那就再好不过了。" + } + }, + { + "id": 370, + "english": "grid", + "frequency": 4, + "category": "technical_core", + "chinese": "网格;栅格", + "phonetic": "/ɡrɪd/", + "forms": { + "noun": "grids (复数)" + }, + "example": { + "en": "On a ball bonder, we measured the position of a lead frame corner while moving to various locations on a grid pattern across the field of view and compared the same measurement to our XY table map target which is glass with a very thin deposition of chrome fiducials.", + "cn": "在一台球焊机上,我们让引线框架角点沿覆盖整个视野的网格移动到不同位置,并测量其位置;然后将各次测量结果与 XY 工作台的映射标靶进行比较。该标靶由玻璃制成,表面沉积有一层很薄的铬基准标记。" + } + }, + { + "id": 371, + "english": "guide", + "frequency": 80, + "category": "action_verbs", + "chinese": "指导", + "phonetic": "/ɡaɪd/", + "forms": { + "verb": [ + "guides (第三人称单数)", + "guiding (现在分词)", + "guided (过去式/过去分词)" + ], + "plural": "guides (复数)", + "derivatives": [ + "guidance(指导)" + ] + }, + "example": { + "en": "Can he guide you on this?", + "cn": "他能在这方面指导你吗?" + } + }, + { + "id": 372, + "english": "guidelines", + "frequency": 65, + "category": "business_core", + "chinese": "指导方针", + "phonetic": "/ˈɡaɪdlaɪnz/", + "forms": { + "singular": "guideline (单数)" + }, + "example": { + "en": "Do we have some guidelines for how to set up the lighting?", + "cn": "我们有关于如何设置照明的指导方针吗?" + } + }, + { + "id": 373, + "english": "hardware", + "frequency": 34, + "category": "business_core", + "chinese": "硬件", + "phonetic": "/ˈhɑːdweə(r)/", + "forms": {}, + "example": { + "en": "The problem is with the hardware, not the software.", + "cn": "问题出在硬件上,而不是软件。" + } + }, + { + "id": 374, + "english": "hear", + "frequency": 2, + "category": "action_verbs", + "chinese": "听到", + "phonetic": "/hɪər/", + "forms": {}, + "example": { + "en": "It was difficult for me to hear and understand much during the summit day yesterday.", + "cn": "昨天的专题会议期间,我很难听清并理解大部分内容。" + } + }, + { + "id": 375, + "english": "help", + "frequency": 5, + "category": "action_verbs", + "chinese": "帮助", + "phonetic": "/help/", + "forms": { + "verb": "helps (第三人称单数)" + }, + "example": { + "en": "Let me know if there are other things I can help with.", + "cn": "如果还有其他我能帮忙的事情,请告诉我。" + } + }, + { + "id": 376, + "english": "helpful", + "frequency": 85, + "category": "high_frequency", + "chinese": "有帮助的", + "phonetic": "/ˈhelpfl/", + "forms": { + "adjective": "helpful (形容词)", + "adverb": "helpfully (副词)" + }, + "example": { + "en": "This is helpful.", + "cn": "这很有帮助。" + } + }, + { + "id": 377, + "english": "hesitant", + "frequency": 41, + "category": "business_core", + "chinese": "犹豫的", + "phonetic": "/ˈhezɪtənt/", + "forms": {}, + "example": { + "en": "The team is hesitant to try this again.", + "cn": "团队对再次尝试此方法感到犹豫。" + } + }, + { + "id": 378, + "english": "high", + "frequency": 2, + "category": "high_frequency", + "chinese": "高的", + "phonetic": "/haɪ/", + "forms": { + "adjective": "higher (比较级)" + }, + "example": { + "en": "High repeatability is necessary for accurate measurements.", + "cn": "高重复性是准确测量的必要条件。" + } + }, + { + "id": 379, + "english": "holding", + "frequency": 27, + "category": "business_core", + "chinese": "保持", + "phonetic": "/ˈhəʊldɪŋ/", + "forms": { + "present_participle": "holding (现在分词)", + "base_verb": "hold (动词原形)", + "verb": [ + "holds (第三人称单数)", + "holding (现在分词)", + "held (过去式/过去分词)" + ], + "plural": "holdings (复数)" + }, + "example": { + "en": "The holding force is important.", + "cn": "保持力很重要。" + } + }, + { + "id": 380, + "english": "hurts", + "frequency": 30, + "category": "business_core", + "chinese": "损害", + "phonetic": "/hɜːts/", + "forms": { + "verb": [ + "hurts (第三人称单数)", + "hurting (现在分词)", + "hurt (过去式/过去分词)" + ] + }, + "example": { + "en": "This non-uniformity hurts our yield.", + "cn": "这种不均匀性损害了我们的良率。" + } + }, + { + "id": 381, + "english": "ideally", + "frequency": 44, + "category": "business_core", + "chinese": "理想地", + "phonetic": "/aɪˈdiəli/", + "forms": { + "adverb": "ideally (副词)", + "base_adjective": "ideal (形容词原形)", + "adjective": "ideal (形容词)" + }, + "example": { + "en": "Ideally, the inner area is white.", + "cn": "理想情况下,内部区域是白色的。" + } + }, + { + "id": 382, + "english": "ideas", + "frequency": 80, + "category": "communication", + "chinese": "主意", + "phonetic": "/aɪˈdiːəz/", + "forms": { + "singular": "idea (单数)" + }, + "example": { + "en": "Do you have any ideas on how to solve this problem?", + "cn": "你对如何解决这个问题有什么主意吗?" + } + }, + { + "id": 383, + "english": "identical", + "frequency": 34, + "category": "business_core", + "chinese": "相同的", + "phonetic": "/aɪˈdentɪkl/", + "forms": {}, + "example": { + "en": "The two chucks are identical.", + "cn": "这两个卡盘是相同的。" + } + }, + { + "id": 384, + "english": "identified", + "frequency": 38, + "category": "business_core", + "chinese": "识别出的", + "phonetic": "/aɪˈdentɪfaɪd/", + "forms": { + "past_participle": "identified (过去分词)", + "base_verb": "identify (动词原形)", + "verb": [ + "identifies (第三人称单数)", + "identifying (现在分词)", + "identified (过去式/过去分词)" + ] + }, + "example": { + "en": "Luke identified the correct couplers.", + "cn": "卢克识别出了正确的联轴器。" + } + }, + { + "id": 385, + "english": "illumination", + "frequency": 1, + "category": "technical_core", + "chinese": "照明;光照", + "phonetic": "/ɪˌluːmɪˈneɪʃən/", + "forms": {}, + "example": { + "en": "It is also possible that illumination differences at different locations had caused the features to look different thus they were measured differently.", + "cn": "不同位置的光照差异也可能使特征呈现不同的外观,从而导致测量结果不同。" + } + }, + { + "id": 386, + "english": "image", + "frequency": 80, + "category": "technical_operations", + "chinese": "图像", + "phonetic": "/ˈɪmɪdʒ/", + "forms": { + "plural": "images (复数)" + }, + "example": { + "en": "The system performs image analysis.", + "cn": "该系统执行图像分析。" + } + }, + { + "id": 387, + "english": "immediately", + "frequency": 85, + "category": "time_planning", + "chinese": "立即", + "phonetic": "/ɪˈmiːdiətli/", + "forms": { + "adverb": "immediately (副词)", + "adjective": "immediate (形容词)" + }, + "example": { + "en": "Please order 5x of these side lights immediately.", + "cn": "请立即订购5个这种侧灯。" + } + }, + { + "id": 388, + "english": "impact", + "frequency": 160, + "category": "business_core", + "chinese": "影响;冲击", + "phonetic": "/ˈɪmpækt/", + "forms": { + "noun": "impacts (复数)", + "verb": [ + "impacts (第三人称单数)", + "impacting (现在分词)", + "impacted (过去式/过去分词)" + ], + "plural": "impacts (复数)" + }, + "example": { + "en": "The new law will have a significant impact on our business.", + "cn": "新法律将对我们的业务产生重大影响。" + } + }, + { + "id": 389, + "english": "implement", + "frequency": 80, + "category": "business_core", + "chinese": "实施", + "phonetic": "/ˈɪmplɪment/", + "forms": { + "verb": [ + "implements (第三人称单数)", + "implementing (现在分词)", + "implemented (过去式/过去分词)" + ], + "noun": "implementation (名词)", + "derivatives": [ + "implementation(实施)" + ] + }, + "example": { + "en": "We want to implement this at Yangjie.", + "cn": "我们想在扬杰实施这个方案。" + } + }, + { + "id": 390, + "english": "implemented", + "frequency": 80, + "category": "business_core", + "chinese": "实施", + "phonetic": "/ˈɪmplɪmentɪd/", + "forms": { + "infinitive": "implement (原形)", + "verb": [ + "implements (第三人称单数)", + "implementing (现在分词)", + "implemented (过去式/过去分词)" + ], + "adjective": "implemented (形容词)" + }, + "example": { + "en": "The other two features are implemented.", + "cn": "另外两个功能已经实施了。" + } + }, + { + "id": 391, + "english": "import", + "frequency": 45, + "category": "business_core", + "chinese": "导入", + "phonetic": "/ɪmˈpɔːt/", + "forms": { + "verb": [ + "imports (第三人称单数)", + "importing (现在分词)", + "imported (过去式/过去分词)" + ] + }, + "example": { + "en": "You can import data from a CSV file.", + "cn": "您可以从CSV文件导入数据。" + } + }, + { + "id": 392, + "english": "impression", + "frequency": 80, + "category": "communication", + "chinese": "印象", + "phonetic": "/ɪmˈpreʃn/", + "forms": { + "plural": "impressions (复数)", + "verb": "impress (动词)" + }, + "example": { + "en": "My first impression is that the red light is better.", + "cn": "我的第一印象是红光更好。" + } + }, + { + "id": 393, + "english": "improved", + "frequency": 38, + "category": "business_core", + "chinese": "改进的", + "phonetic": "/ɪmˈpruːvd/", + "forms": { + "past_participle": "improved (过去分词)", + "base_verb": "improve (动词原形)", + "verb": [ + "improves (第三人称单数)", + "improving (现在分词)", + "improved (过去式/过去分词)" + ] + }, + "example": { + "en": "The improved version works better.", + "cn": "改进后的版本效果更好。" + } + }, + { + "id": 394, + "english": "improvement", + "frequency": 85, + "category": "business_core", + "chinese": "改进", + "phonetic": "/ɪmˈpruːvmənt/", + "forms": { + "plural": "improvements (复数)", + "verb": "improve (动词)" + }, + "example": { + "en": "This adjustment resulted in a significant improvement in image quality.", + "cn": "这项调整显著改善了图像质量。" + } + }, + { + "id": 395, + "english": "improvements", + "frequency": 120, + "category": "business_core", + "chinese": "改进;改善", + "phonetic": "/ɪmˈpruːvmənts/", + "forms": { + "singular": "improvement (单数)", + "base_verb": "improve (动词原形)" + }, + "example": { + "en": "We have made several improvements to the system.", + "cn": "我们对系统进行了多项改进。" + } + }, + { + "id": 396, + "english": "improving", + "frequency": 35, + "category": "business_core", + "chinese": "改进", + "phonetic": "/ɪmˈpruːvɪŋ/", + "forms": { + "verb": [ + "improves (第三人称单数)", + "improving (现在分词)", + "improved (过去式/过去分词)" + ] + }, + "example": { + "en": "We need support in improving the designs.", + "cn": "我们需要在改进设计方面得到支持。" + } + }, + { + "id": 397, + "english": "include", + "frequency": 2, + "category": "action_verbs", + "chinese": "包含", + "phonetic": "/ɪnˈkluːd/", + "forms": { + "verb": "includes (第三人称单数)" + }, + "example": { + "en": "-\tFor debugging, saved images should be in the raw format, but also include metadata for the preprocessing used.", + "cn": "-\t为便于调试,保存的图像应采用原始格式,同时还应包含所用预处理的元数据。" + } + }, + { + "id": 398, + "english": "includes", + "frequency": 85, + "category": "high_frequency", + "chinese": "包括", + "phonetic": "/ɪnˈkluːdz/", + "forms": { + "infinitive": "include (原形)", + "verb": [ + "includs (第三人称单数)", + "including (现在分词)", + "included (过去式/过去分词)" + ] + }, + "example": { + "en": "The measurement includes the dark area of the chuck.", + "cn": "测量包括了夹头的暗区。" + } + }, + { + "id": 399, + "english": "increase", + "frequency": 90, + "category": "action_verbs", + "chinese": "增加", + "phonetic": "/ɪnˈkriːs/", + "forms": { + "verb": [ + "increases (第三人称单数)", + "increasing (现在分词)", + "increased (过去式/过去分词)" + ], + "plural": "increases (复数)" + }, + "example": { + "en": "How can we increase the contrast?", + "cn": "我们如何增加对比度?" + } + }, + { + "id": 400, + "english": "independent", + "frequency": 80, + "category": "high_frequency", + "chinese": "独立的", + "phonetic": "/ˌɪndɪˈpendənt/", + "forms": { + "adjective": "independent (形容词)", + "adverb": "independently (副词)", + "noun": "independence (名词)" + }, + "example": { + "en": "We need to arrive at our own method, independent from a customer's method.", + "cn": "我们需要得出自己的方法,独立于客户的方法。" + } + }, + { + "id": 401, + "english": "index", + "frequency": 3, + "category": "technical_core", + "chinese": "索引;指数", + "phonetic": "/ˈɪndeks/", + "forms": { + "derivatives": [ + "indexer(分度器)" + ] + }, + "example": { + "en": "It looks like the fiducial is shared across all devices in an index.", + "cn": "看起来该基准标记在同一索引中的所有器件之间是共享的。" + } + }, + { + "id": 402, + "english": "indicate", + "frequency": 2, + "category": "action_verbs", + "chinese": "显示;表明", + "phonetic": "/ˈɪndɪkeɪt/", + "forms": { + "derivatives": [ + "indication(指示)" + ] + }, + "example": { + "en": "To repeat for all on this email: Our clip inspection data at Rohm (and at Yanjie) indicate that something is systematically wrong.", + "cn": "再次向本邮件中的所有人说明:我们在 Rohm(以及扬杰)的夹片检测数据表明,系统中存在某种系统性错误。" + } + }, + { + "id": 403, + "english": "indicated", + "frequency": 35, + "category": "business_core", + "chinese": "指出的", + "phonetic": "/ˈɪndɪkeɪtɪd/", + "forms": { + "past_participle": "indicated (过去分词)", + "base_verb": "indicate (动词原形)", + "verb": [ + "indicates (第三人称单数)", + "indicating (现在分词)", + "indicated (过去式/过去分词)" + ] + }, + "example": { + "en": "Analyze the areas indicated in the image.", + "cn": "分析图像中所示的区域。" + } + }, + { + "id": 404, + "english": "indications", + "frequency": 26, + "category": "business_core", + "chinese": "迹象", + "phonetic": "/ˌɪndɪˈkeɪʃnz/", + "forms": { + "singular": "indication (单数)" + }, + "example": { + "en": "There are some indications of a problem.", + "cn": "有一些问题迹象。" + } + }, + { + "id": 405, + "english": "individual", + "frequency": 26, + "category": "business_core", + "chinese": "个别的", + "phonetic": "/ˌɪndɪˈvɪdʒuəl/", + "forms": {}, + "example": { + "en": "Coordinate with the individual DRIs.", + "cn": "与各个直接责任人协调。" + } + }, + { + "id": 406, + "english": "inefficient", + "frequency": 55, + "category": "business_core", + "chinese": "效率低的", + "phonetic": "/ˌɪnɪˈfɪʃnt/", + "forms": { + "adjective": "inefficient (形容词)", + "adverb": "inefficiently (副词)", + "noun": "inefficiency (名词)" + }, + "example": { + "en": "The current process is becoming more and more inefficient.", + "cn": "目前的流程变得越来越低效。" + } + }, + { + "id": 407, + "english": "influence", + "frequency": 46, + "category": "business_core", + "chinese": "影响", + "phonetic": "/ˈɪnfluəns/", + "forms": { + "noun": "influences (复数)", + "plural": "influences (复数)" + }, + "example": { + "en": "There is an influence from DPI on the placement.", + "cn": "DPI对贴装有影响。" + } + }, + { + "id": 408, + "english": "inform", + "frequency": 29, + "category": "action_verbs", + "chinese": "通知", + "phonetic": "/ɪnˈfɔːm/", + "forms": { + "verb": [ + "informs (第三人称单数)", + "informing (现在分词)", + "informed (过去式/过去分词)" + ], + "derivatives": [ + "information(信息)" + ] + }, + "example": { + "en": "Can you inform the engineers about our need?", + "cn": "你能把我们的需求通知工程师们吗?" + } + }, + { + "id": 409, + "english": "inner", + "frequency": 47, + "category": "business_core", + "chinese": "内部的", + "phonetic": "/ˈɪnə(r)/", + "forms": {}, + "example": { + "en": "The inner ring of the die is visible.", + "cn": "芯片的内环是可见的。" + } + }, + { + "id": 410, + "english": "inside", + "frequency": 80, + "category": "high_frequency", + "chinese": "在...里面", + "phonetic": "/ɪnˈsaɪd/", + "forms": { + "plural": "insides (复数)" + }, + "example": { + "en": "Please check what is inside the box.", + "cn": "请检查盒子里有什么。" + } + }, + { + "id": 411, + "english": "insight", + "frequency": 1, + "category": "high_frequency", + "chinese": "见解;洞察", + "phonetic": "/ˈɪnsaɪt/", + "forms": {}, + "example": { + "en": "I also copied Eddy (not sure he will still be in Suzhou) and Li Yang, both may give you more insight / details how these images are processed, and Benson and CK for their information about this activity.", + "cn": "我还抄送了Eddy(不确定他届时是否仍在苏州)和李阳,他们或许能进一步说明这些图像的处理方式并提供更多细节;同时抄送Benson和CK,让他们了解此项工作。" + } + }, + { + "id": 412, + "english": "inspect", + "frequency": 36, + "category": "business_core", + "chinese": "检查", + "phonetic": "/ɪnˈspekt/", + "forms": { + "verb": [ + "inspects (第三人称单数)", + "inspecting (现在分词)", + "inspected (过去式/过去分词)" + ], + "derivatives": [ + "inspection(检查)" + ] + }, + "example": { + "en": "You should inspect the equipment regularly.", + "cn": "你应该定期检查设备。" + } + }, + { + "id": 413, + "english": "install", + "frequency": 27, + "category": "technical_operations", + "chinese": "安装", + "phonetic": "/ɪnˈstɔːl/", + "forms": { + "verb": [ + "installs (第三人称单数)", + "installing (现在分词)", + "installed (过去式/过去分词)" + ], + "derivatives": [ + "installation(安装)" + ] + }, + "example": { + "en": "We will install the sensors on the machine.", + "cn": "我们将在机器上安装传感器。" + } + }, + { + "id": 414, + "english": "instead", + "frequency": 4, + "category": "high_frequency", + "chinese": "而不是;代替", + "phonetic": "/ɪnˈsted/", + "forms": {}, + "example": { + "en": "But it seemed that FtW people spent ~50% of the day talking about this approach, and alternatives, for example using a USB camera (as on the other visions on Avaline) instead of the Zebra camera.", + "cn": "但 FtW 的人员似乎花了当天约 50% 的时间讨论该方案及其替代方案,例如使用 USB 相机(与 Avaline 上其他视觉系统相同)来替代 Zebra 相机。" + } + }, + { + "id": 415, + "english": "instruct", + "frequency": 30, + "category": "action_verbs", + "chinese": "指示", + "phonetic": "/ɪnˈstrʌkt/", + "forms": { + "verb": [ + "instructs (第三人称单数)", + "instructing (现在分词)", + "instructed (过去式/过去分词)" + ], + "derivatives": [ + "instruction(指令;说明)" + ] + }, + "example": { + "en": "Please instruct them on the implementation.", + "cn": "请就实施事宜向他们发出指示。" + } + }, + { + "id": 416, + "english": "integrate", + "frequency": 46, + "category": "business_core", + "chinese": "集成", + "phonetic": "/ˈɪntɪɡreɪt/", + "forms": { + "verb": [ + "integrates (第三人称单数)", + "integrating (现在分词)", + "integrated (过去式/过去分词)" + ], + "derivatives": [ + "integration(集成)" + ] + }, + "example": { + "en": "We need to integrate the sensor into the software.", + "cn": "我们需要将传感器集成到软件中。" + } + }, + { + "id": 417, + "english": "intensity", + "frequency": 75, + "category": "technical_core", + "chinese": "强度", + "phonetic": "/ɪnˈtensəti/", + "forms": { + "noun": "intensity (名词)", + "plural": "intensities (复数)", + "adjective": "intense (形容词)" + }, + "example": { + "en": "Could you do it for 2 or 3 light intensity levels?", + "cn": "你能用2到3个光强度水平来做吗?" + } + }, + { + "id": 418, + "english": "intensive", + "frequency": 50, + "category": "business_core", + "chinese": "密集的", + "phonetic": "/ɪnˈtensɪv/", + "forms": { + "adjective": "intensive (形容词)", + "adverb": "intensively (副词)" + }, + "example": { + "en": "How time intensive is that?", + "cn": "那需要花费多少时间?" + } + }, + { + "id": 419, + "english": "interaction", + "frequency": 24, + "category": "business_core", + "chinese": "相互作用", + "phonetic": "/ˌɪntərˈækʃn/", + "forms": { + "noun": "interactions (复数)", + "plural": "interactions (复数)" + }, + "example": { + "en": "Is it an interaction with the coating?", + "cn": "是与涂层的相互作用吗?" + } + }, + { + "id": 420, + "english": "interference", + "frequency": 40, + "category": "technical_core", + "chinese": "干涉;干扰", + "phonetic": "/ˌɪntəˈfɪərəns/", + "forms": { + "noun": "interference (不可数名词)", + "base_verb": "interfere (动词原形)", + "plural": "interferences (复数)" + }, + "example": { + "en": "There is too much interference on this radio channel.", + "cn": "这个无线电频道干扰太多。" + } + }, + { + "id": 421, + "english": "introduce", + "frequency": 48, + "category": "action_verbs", + "chinese": "介绍", + "phonetic": "/ˌɪntrəˈdjuːs/", + "forms": { + "verb": [ + "introduces (第三人称单数)", + "introducing (现在分词)", + "introduced (过去式/过去分词)" + ] + }, + "example": { + "en": "Please introduce Jianfei to the team.", + "cn": "请把建飞介绍给团队。" + } + }, + { + "id": 422, + "english": "invited", + "frequency": 28, + "category": "business_core", + "chinese": "受邀请的", + "phonetic": "/ɪnˈvaɪtɪd/", + "forms": { + "past_participle": "invited (过去分词)", + "base_verb": "invite (动词原形)", + "verb": [ + "invites (第三人称单数)", + "inviting (现在分词)", + "invited (过去式/过去分词)" + ] + }, + "example": { + "en": "Not all who are invited will be involved.", + "cn": "并非所有被邀请的人都会参与。" + } + }, + { + "id": 423, + "english": "involved", + "frequency": 42, + "category": "business_core", + "chinese": "参与的", + "phonetic": "/ɪnˈvɒlvd/", + "forms": { + "past_participle": "involved (过去分词)", + "base_verb": "involve (动词原形)", + "verb": [ + "involves (第三人称单数)", + "involving (现在分词)", + "involved (过去式/过去分词)" + ] + }, + "example": { + "en": "He is involved in many projects.", + "cn": "他参与了许多项目。" + } + }, + { + "id": 424, + "english": "issue", + "frequency": 3, + "category": "business_core", + "chinese": "问题;发布", + "phonetic": "/ˈɪʃuː/", + "forms": { + "noun": "issues (复数)" + }, + "example": { + "en": "We also hear from Yangjie that their material supplier confirmed the material to be accurate, and that the ASM machines don’t show the issue.", + "cn": "我们还从扬杰获悉,其材料供应商已确认材料精度合格,而且 ASM 设备没有出现这一问题。" + } + }, + { + "id": 425, + "english": "issues", + "frequency": 150, + "category": "business_core", + "chinese": "问题", + "phonetic": "/ˈɪʃuːz/", + "forms": { + "singular": "issue (单数)", + "verb": [ + "issus (第三人称单数)", + "issuing (现在分词)", + "issued (过去式/过去分词)" + ] + }, + "example": { + "en": "We need to discuss the current issues.", + "cn": "我们需要讨论当前的问题。" + } + }, + { + "id": 426, + "english": "item", + "frequency": 2, + "category": "high_frequency", + "chinese": "项目;条目", + "phonetic": "/ˈaɪtəm/", + "forms": {}, + "example": { + "en": "Shouldn’t it be at the center of the feature which we want to use to define the position of the item (device on lead frame, clip) so we can compare the machine reported dimensions with the dimensions given on the bonding diagram?", + "cn": "它难道不应该位于我们用来定义对象(引线框架上的器件、夹片)位置的特征中心吗?这样我们才能将设备报告的尺寸与焊接图给出的尺寸进行比较。" + } + }, + { + "id": 427, + "english": "items", + "frequency": 36, + "category": "business_core", + "chinese": "项目", + "phonetic": "/ˈaɪtəmz/", + "forms": { + "singular": "item (单数)" + }, + "example": { + "en": "We need to discuss all the items on the list.", + "cn": "我们需要讨论清单上的所有项目。" + } + }, + { + "id": 428, + "english": "jerks", + "frequency": 23, + "category": "business_core", + "chinese": "颠簸;急动", + "phonetic": "/dʒɜːks/", + "forms": { + "singular": "jerk (单数)", + "verb": [ + "jerks (第三人称单数)", + "jerking (现在分词)", + "jerked (过去式/过去分词)" + ] + }, + "example": { + "en": "The moves cause jerks and vibrations.", + "cn": "这些移动会引起颠簸和振动。" + } + }, + { + "id": 429, + "english": "kind", + "frequency": 1, + "category": "high_frequency", + "chinese": "种类;友善的", + "phonetic": "/kaɪnd/", + "forms": {}, + "example": { + "en": "That is kind of expected for most vision systems as focus here is alignment.", + "cn": "对于大多数视觉系统来说,这基本符合预期,因为这里的重点是对准。" + } + }, + { + "id": 430, + "english": "kit", + "frequency": 37, + "category": "business_core", + "chinese": "套件", + "phonetic": "/kɪt/", + "forms": { + "noun": "kits (复数)", + "plural": "kits (复数)" + }, + "example": { + "en": "The kit includes all necessary parts.", + "cn": "该套件包括所有必要的零件。" + } + }, + { + "id": 431, + "english": "know", + "frequency": 8, + "category": "action_verbs", + "chinese": "知道", + "phonetic": "/nəʊ/", + "forms": { + "verb": "known" + }, + "example": { + "en": "Let me know if there are other things I can help with.", + "cn": "如果还有其他我能帮忙的事情,请告诉我。" + } + }, + { + "id": 432, + "english": "known", + "frequency": 184, + "category": "business_core", + "chinese": "已知的", + "phonetic": "/nəʊn/", + "forms": {}, + "example": { + "en": "This is a known issue.", + "cn": "这是一个已知的问题。" + } + }, + { + "id": 433, + "english": "language", + "frequency": 70, + "category": "high_frequency", + "chinese": "语言", + "phonetic": "/ˈlæŋɡwɪdʒ/", + "forms": { + "plural": "languages (复数)" + }, + "example": { + "en": "The language errors need to be corrected.", + "cn": "语言错误需要被纠正。" + } + }, + { + "id": 434, + "english": "large", + "frequency": 2, + "category": "high_frequency", + "chinese": "大的", + "phonetic": "/lɑːdʒ/", + "forms": {}, + "example": { + "en": "Being able to find the centers of the slots reliably we can use the lead frame as ‘reticle’ to map the FoV to see whether we have (large) distortions which give these large measurement errors, i.e., whether we see the 6, distances in X and the 10,600m distances in Y different in the different locations in the FoV.", + "cn": "如果能够可靠地找到槽孔中心,就可以把引线框架用作“标线板”来映射视野,以判断是否存在导致这些较大测量误差的明显畸变;也就是说,检查 X 方向 6,000 微米和 Y 方向 10,600 微米的距离在视野不同位置是否有所不同。" + } + }, + { + "id": 435, + "english": "laser", + "frequency": 31, + "category": "technical_core", + "chinese": "激光", + "phonetic": "/ˈleɪzə(r)/", + "forms": { + "noun": "lasers (复数)", + "plural": "lasers (复数)" + }, + "example": { + "en": "Laser processing can change the surface properties.", + "cn": "激光加工可以改变表面特性。" + } + }, + { + "id": 436, + "english": "last", + "frequency": 3, + "category": "time_planning", + "chinese": "最后的;持续", + "phonetic": "/lɑːst/", + "forms": {}, + "example": { + "en": "Last night (US time) we had the summit and I heard Vlad asking a lot of good questions.", + "cn": "昨晚(美国时间)我们召开了专题会议,我听到 Vlad 提出了很多很好的问题。" + } + }, + { + "id": 437, + "english": "latest", + "frequency": 20, + "category": "technical_core", + "chinese": "最新的", + "phonetic": "/ˈleɪtɪst/", + "forms": {}, + "example": { + "en": "I will try it by tomorrow morning, my time, at the latest.", + "cn": "按我所在时区计算,我最迟会在明天上午试一下。" + } + }, + { + "id": 438, + "english": "lead", + "frequency": 35, + "category": "business_core", + "chinese": "引脚", + "phonetic": "/liːd/", + "forms": { + "noun": "leads (复数)", + "plural": "leads (复数)" + }, + "example": { + "en": "Check the solder on the lead frame.", + "cn": "检查引线框架上的焊料。" + } + }, + { + "id": 439, + "english": "lead frame", + "frequency": 45, + "category": "technical_core", + "chinese": "引线框架", + "phonetic": "/liːd freɪm/", + "forms": { + "plural": "lead frames (复数)" + }, + "example": { + "en": "The image on lead frame after die place.", + "cn": "芯片放置后在引线框架上的图像。" + } + }, + { + "id": 440, + "english": "leaks", + "frequency": 38, + "category": "business_core", + "chinese": "泄漏", + "phonetic": "/liːks/", + "forms": { + "singular": "leak (单数)", + "verb": [ + "leaks (第三人称单数)", + "leaking (现在分词)", + "leaked (过去式/过去分词)" + ] + }, + "example": { + "en": "The leaks are between the vacuum generator and the sensor.", + "cn": "泄漏点在真空发生器和传感器之间。" + } + }, + { + "id": 441, + "english": "learn", + "frequency": 2, + "category": "action_verbs", + "chinese": "学习", + "phonetic": "/lɜːn/", + "forms": { + "verb": "learned (过去式/过去分词)" + }, + "example": { + "en": "We need to learn how the algorithm processes the images.", + "cn": "我们需要学习该算法是如何处理这些图像的。" + } + }, + { + "id": 442, + "english": "least", + "frequency": 1, + "category": "high_frequency", + "chinese": "最少的", + "phonetic": "/liːst/", + "forms": {}, + "example": { + "en": "I believe at least for the fiducial on the lead frame we will in most cases always look at a slot.", + "cn": "我认为,至少对于引线框架上的基准标记,大多数情况下我们始终会识别一个槽口。" + } + }, + { + "id": 443, + "english": "leave", + "frequency": 1, + "category": "action_verbs", + "chinese": "离开;假期;休假", + "phonetic": "/liːv/", + "forms": {}, + "example": { + "en": "Please note that Jianfei will be on leave from Wednesday 7/1 on, so ideally the two of you can meet at the bonder before Wednesday.", + "cn": "请注意,建飞将从 7 月 1 日星期三起休假,因此你们两位最好能在星期三之前到焊线机旁碰面。" + } + }, + { + "id": 444, + "english": "lens", + "frequency": 22, + "category": "technical_core", + "chinese": "镜头", + "phonetic": "/lenz/", + "forms": { + "noun": "lenses (复数)" + }, + "example": { + "en": "We need to change to a telecentric lens.", + "cn": "我们需要更换为远心镜头。" + } + }, + { + "id": 445, + "english": "lenses", + "frequency": 60, + "category": "technical_core", + "chinese": "镜头", + "phonetic": "/ˈlenzɪz/", + "forms": { + "singular": "lens (单数)", + "verb": [ + "lenss (第三人称单数)", + "lensing (现在分词)", + "lensed (过去式/过去分词)" + ] + }, + "example": { + "en": "We use different lenses.", + "cn": "我们使用不同的镜头。" + } + }, + { + "id": 446, + "english": "less", + "frequency": 2, + "category": "high_frequency", + "chinese": "较少的", + "phonetic": "/les/", + "forms": {}, + "example": { + "en": "At Yangjie this is less or not of an issue, as they seem not to look at this detail level.", + "cn": "在扬杰,这个问题较轻微,甚至不构成问题,因为他们似乎不会关注到如此细的层级。" + } + }, + { + "id": 447, + "english": "lesser", + "frequency": 60, + "category": "high_frequency", + "chinese": "较小的;次要的", + "phonetic": "/ˈlesər/", + "forms": {}, + "example": { + "en": "This is a lesser problem.", + "cn": "这是一个次要问题。" + } + }, + { + "id": 448, + "english": "level", + "frequency": 31, + "category": "business_core", + "chinese": "水平;等级", + "phonetic": "/ˈlevl/", + "forms": { + "noun": "levels (复数)", + "plural": "levels (复数)" + }, + "example": { + "en": "Check the status of the 2-level light source.", + "cn": "检查双层光源的状态。" + } + }, + { + "id": 449, + "english": "lifetime", + "frequency": 70, + "category": "technical_core", + "chinese": "寿命", + "phonetic": "/ˈlaɪftaɪm/", + "forms": { + "noun": "lifetime (名词)", + "adjective": "lifetime (形容词)", + "plural": "lifetimes (复数)" + }, + "example": { + "en": "The lifetime of this component is about five years.", + "cn": "这个部件的寿命大约是五年。" + } + }, + { + "id": 450, + "english": "light", + "frequency": 155, + "category": "high_frequency", + "chinese": "光", + "phonetic": "/laɪt/", + "forms": { + "verb": [ + "lights (第三人称单数)", + "lighting (现在分词)", + "lit (过去式/过去分词)" + ], + "adjective": "lighter (比较级), lightest (最高级)", + "plural": "lights (复数)" + }, + "example": { + "en": "The sun provides light and heat.", + "cn": "太阳提供光和热。" + } + }, + { + "id": 451, + "english": "lighting", + "frequency": 55, + "category": "technical_core", + "chinese": "照明", + "phonetic": "/ˈlaɪtɪŋ/", + "forms": { + "noun": "lighting (不可数名词)", + "base_verb": "light (动词原形)", + "verb": [ + "lights (第三人称单数)", + "lighting (现在分词)", + "lighted (过去式/过去分词)" + ] + }, + "example": { + "en": "The lighting in this room is too dim.", + "cn": "这个房间的照明太暗了。" + } + }, + { + "id": 452, + "english": "limitation", + "frequency": 25, + "category": "business_core", + "chinese": "限制", + "phonetic": "/ˌlɪmɪˈteɪʃn/", + "forms": { + "noun": "limitations (复数)", + "plural": "limitations (复数)" + }, + "example": { + "en": "The first step is to see whether we can implement the limitation.", + "cn": "第一步是看我们是否能实施这个限制。" + } + }, + { + "id": 453, + "english": "limited", + "frequency": 85, + "category": "business_core", + "chinese": "有限的", + "phonetic": "/ˈlɪmɪtɪd/", + "forms": { + "adjective": "limited (形容词)", + "verb": "limit (动词)" + }, + "example": { + "en": "Customer material is always limited and expensive.", + "cn": "客户的材料总是有限且昂贵的。" + } + }, + { + "id": 454, + "english": "link", + "frequency": 4, + "category": "high_frequency", + "chinese": "链接", + "phonetic": "/lɪŋk/", + "forms": {}, + "example": { + "en": "I sent you and Vlad the link to a video which was created today and shows how the application engineer sets up the inspection after Clip Place.", + "cn": "我已将今天制作的视频链接发送给你和 Vlad。该视频展示了应用工程师如何设置夹焊片放置后的检测。" + } + }, + { + "id": 455, + "english": "list", + "frequency": 32, + "category": "business_core", + "chinese": "列出", + "phonetic": "/lɪst/", + "forms": { + "verb": [ + "lists (第三人称单数)", + "listing (现在分词)", + "listed (过去式/过去分词)" + ], + "plural": "lists (复数)" + }, + "example": { + "en": "You don't list the intensity of the side light.", + "cn": "你没有列出侧灯的强度。" + } + }, + { + "id": 456, + "english": "locate", + "frequency": 39, + "category": "action_verbs", + "chinese": "定位", + "phonetic": "/ləʊˈkeɪt/", + "forms": { + "verb": [ + "locates (第三人称单数)", + "locating (现在分词)", + "located (过去式/过去分词)" + ], + "derivatives": [ + "location(位置;地点)" + ] + }, + "example": { + "en": "This is to locate the lead frame pad.", + "cn": "这是为了定位引线框架焊盘。" + } + }, + { + "id": 457, + "english": "lock", + "frequency": 65, + "category": "action_verbs", + "chinese": "锁定", + "phonetic": "/lɑːk/", + "forms": { + "verb": [ + "locks (第三人称单数)", + "locking (现在分词)", + "locked (过去式/过去分词)" + ], + "plural": "locks (复数)" + }, + "example": { + "en": "Is there a way to lock the search window to the edge of the lead?", + "cn": "有没有办法将搜索窗口锁定到引线的边缘?" + } + }, + { + "id": 458, + "english": "log", + "frequency": 45, + "category": "business_core", + "chinese": "日志", + "phonetic": "/lɒɡ/", + "forms": { + "noun": "logs (复数)", + "plural": "logs (复数)" + }, + "example": { + "en": "Check the log files for errors.", + "cn": "检查日志文件中的错误。" + } + }, + { + "id": 459, + "english": "look", + "frequency": 15, + "category": "action_verbs", + "chinese": "看;查看", + "phonetic": "/lʊk/", + "forms": { + "verb": [ + "looking (现在分词)", + "looks (第三人称单数)" + ] + }, + "example": { + "en": "I believe we agreed that he will meet with Jianfei Monday or Tuesday to take a closer look at this.", + "cn": "我记得我们已经商定,他会在周一或周二与建飞会面,进一步仔细查看这个问题。" + } + }, + { + "id": 460, + "english": "lose", + "frequency": 36, + "category": "business_core", + "chinese": "失去;丢失", + "phonetic": "/luːz/", + "forms": { + "verb": [ + "loses (第三人称单数)", + "losing (现在分词)", + "lost (过去式/过去分词)" + ] + }, + "example": { + "en": "Be careful not to lose the small screws.", + "cn": "小心不要丢失这些小螺丝。" + } + }, + { + "id": 461, + "english": "lot", + "frequency": 3, + "category": "high_frequency", + "chinese": "许多", + "phonetic": "/lɒt/", + "forms": {}, + "example": { + "en": "Last night (US time) we had the summit and I heard Vlad asking a lot of good questions.", + "cn": "昨晚(美国时间)我们召开了专题会议,我听到 Vlad 提出了很多很好的问题。" + } + }, + { + "id": 462, + "english": "low", + "frequency": 5, + "category": "high_frequency", + "chinese": "低的", + "phonetic": "/ləʊ/", + "forms": { + "adjective": "lower (比较级)" + }, + "example": { + "en": "The images which we upload appear to be binary and to have low pixel count (this latter we seem to have changed on the Suzhou clip bonder but is still low pixel count on the clip bonder in Rohm Thailand).", + "cn": "我们上传的图像似乎是二值图像,而且像素数较低(苏州夹片焊接机上的这一点似乎已经调整,但泰国 Rohm 的夹片焊接机仍然像素数较低)。" + } + }, + { + "id": 463, + "english": "luminous", + "frequency": 50, + "category": "technical_core", + "chinese": "发光的", + "phonetic": "/ˈluːmɪnəs/", + "forms": { + "adjective": "luminous (形容词)" + }, + "example": { + "en": "It creates the same luminous intensity.", + "cn": "它产生相同的发光强度。" + } + }, + { + "id": 464, + "english": "machine", + "frequency": 9, + "category": "high_frequency", + "chinese": "机器", + "phonetic": "/məˈʃiːn/", + "forms": { + "noun": "machines (复数)" + }, + "example": { + "en": "I think the machine is displaying the binary image, meaning the images were already processed.", + "cn": "我认为机器当前显示的是二值图像,这意味着这些图像已经经过处理。" + } + }, + { + "id": 465, + "english": "magnification", + "frequency": 2, + "category": "technical_core", + "chinese": "放大倍数;放大", + "phonetic": "/ˌmæɡnɪfɪˈkeɪʃən/", + "forms": {}, + "example": { + "en": "Magnification calibration is done by teaching a fiducial on any material, then moving the camera by a known distance to measure the microns per pixel of this particular optics.", + "cn": "放大倍率校准的做法是:在任意材料上示教一个基准标记,然后将相机移动一段已知距离,以测量这套特定光学系统的微米/像素值。" + } + }, + { + "id": 466, + "english": "maintain", + "frequency": 49, + "category": "action_verbs", + "chinese": "维护", + "phonetic": "/meɪnˈteɪn/", + "forms": { + "verb": [ + "maintains (第三人称单数)", + "maintaining (现在分词)", + "maintained (过去式/过去分词)" + ], + "derivatives": [ + "maintenance(维护)" + ] + }, + "example": { + "en": "We can't maintain two software branches.", + "cn": "我们无法维护两个软件分支。" + } + }, + { + "id": 467, + "english": "maintains", + "frequency": 30, + "category": "action_verbs", + "chinese": "保持", + "phonetic": "/meɪnˈteɪnz/", + "forms": { + "verb": [ + "maintains (第三人称单数)", + "maintaining (现在分词)", + "maintained (过去式/过去分词)" + ] + }, + "example": { + "en": "This setting maintains a darker appearance of the chuck.", + "cn": "此设置可保持卡盘较暗的外观。" + } + }, + { + "id": 468, + "english": "major", + "frequency": 25, + "category": "business_core", + "chinese": "重大的", + "phonetic": "/ˈmeɪdʒə(r)/", + "forms": { + "derivatives": [ + "majority(大多数)" + ] + }, + "example": { + "en": "This is a major setback.", + "cn": "这是一个重大的挫折。" + } + }, + { + "id": 469, + "english": "make", + "frequency": 6, + "category": "action_verbs", + "chinese": "制作;使", + "phonetic": "/meɪk/", + "forms": {}, + "example": { + "en": "So if we want to make a change we need to make it now, and fast.", + "cn": "因此,如果要做更改,就必须现在立即行动。" + } + }, + { + "id": 470, + "english": "manually", + "frequency": 35, + "category": "business_core", + "chinese": "手动地", + "phonetic": "/ˈmænjuəli/", + "forms": { + "adverb": "manually (副词)", + "base_adjective": "manual (形容词原形)", + "adjective": "manual (形容词)" + }, + "example": { + "en": "Can you move the rail manually?", + "cn": "你能手动移动导轨吗?" + } + }, + { + "id": 471, + "english": "manufacturable", + "frequency": 45, + "category": "technical_core", + "chinese": "可制造的", + "phonetic": "/ˌmænjuˈfæktʃərəbl/", + "forms": {}, + "example": { + "en": "The design must be manufacturable.", + "cn": "设计必须是可制造的。" + } + }, + { + "id": 472, + "english": "manufacturer", + "frequency": 27, + "category": "business_core", + "chinese": "制造商", + "phonetic": "/ˌmænjuˈfæktʃərə(r)/", + "forms": { + "noun": "manufacturers (复数)", + "plural": "manufacturers (复数)" + }, + "example": { + "en": "Line up an XK manufacturer.", + "cn": "联系一家XK制造商。" + } + }, + { + "id": 473, + "english": "manufacturing", + "frequency": 41, + "category": "business_core", + "chinese": "制造", + "phonetic": "/ˌmænjuˈfæktʃərɪŋ/", + "forms": { + "present_participle": "manufacturing (现在分词)", + "base_verb": "manufacture (动词原形)", + "verb": [ + "manufactures (第三人称单数)", + "manufacturing (现在分词)", + "manufactured (过去式/过去分词)" + ] + }, + "example": { + "en": "The manufacturing process is complex.", + "cn": "制造过程很复杂。" + } + }, + { + "id": 474, + "english": "map", + "frequency": 3, + "category": "high_frequency", + "chinese": "映射;地图", + "phonetic": "/mæp/", + "forms": {}, + "example": { + "en": "That said, we actually map the light intensity over the Field of View, if it is being done as part of FAT.", + "cn": "不过,前提是这项工作属于 FAT 的一部分;事实上,我们确实会对整个视野内的光照强度进行映射。" + } + }, + { + "id": 475, + "english": "marking", + "frequency": 44, + "category": "business_core", + "chinese": "标记", + "phonetic": "/ˈmɑːkɪŋ/", + "forms": { + "present_participle": "marking (现在分词)", + "base_verb": "mark (动词原形)", + "verb": [ + "marks (第三人称单数)", + "marking (现在分词)", + "marked (过去式/过去分词)" + ], + "plural": "markings (复数)" + }, + "example": { + "en": "This is like laser marking.", + "cn": "这就像激光打标。" + } + }, + { + "id": 476, + "english": "massive", + "frequency": 75, + "category": "business_core", + "chinese": "巨大的;大量的", + "phonetic": "/ˈmæsɪv/", + "forms": { + "adjective": "massive (形容词)", + "adverb": "massively (副词)" + }, + "example": { + "en": "The project requires a massive investment.", + "cn": "该项目需要巨额投资。" + } + }, + { + "id": 477, + "english": "massively", + "frequency": 55, + "category": "technical_operations", + "chinese": "大量地;大规模地", + "phonetic": "/ˈmæsɪvli/", + "forms": { + "adverb": "massively (副词)", + "adjective": "massive (形容词)" + }, + "example": { + "en": "It seems that you massively over-saturate it with light.", + "cn": "看来你用光把它严重过度饱和了。" + } + }, + { + "id": 478, + "english": "match", + "frequency": 1, + "category": "action_verbs", + "chinese": "匹配", + "phonetic": "/mætʃ/", + "forms": {}, + "example": { + "en": "But detailed material inspection data collected in Santa Ana on the Rohm material show that the lead frame and the clip from Rohm are very accurate and match on the micron level.", + "cn": "但是,在圣安娜对罗姆材料采集的详细材料检验数据显示,罗姆的引线框架和夹片精度非常高,在微米级别上相互匹配。" + } + }, + { + "id": 479, + "english": "material", + "frequency": 10, + "category": "high_frequency", + "chinese": "材料", + "phonetic": "/məˈtɪəriəl/", + "forms": {}, + "example": { + "en": "But detailed material inspection data collected in Santa Ana on the Rohm material show that the lead frame and the clip from Rohm are very accurate and match on the micron level.", + "cn": "然而,在圣安娜对 Rohm 材料采集的详细来料检测数据显示,Rohm 的引线框架和夹焊片精度很高,在微米级别上彼此匹配。" + } + }, + { + "id": 480, + "english": "materials", + "frequency": 48, + "category": "technical_core", + "chinese": "材料", + "phonetic": "/məˈtɪəriəlz/", + "forms": { + "singular": "material (单数)" + }, + "example": { + "en": "Document the materials used.", + "cn": "记录所用材料。" + } + }, + { + "id": 481, + "english": "mean", + "frequency": 3, + "category": "action_verbs", + "chinese": "意味着;平均值", + "phonetic": "/miːn/", + "forms": { + "verb": "meaning (现在分词)" + }, + "example": { + "en": "I believe you know that we discussed that but put it off to a later phase, because Mike repeatedly told us that it would require a design change, mean no re-use, and extend the timeline significantly.", + "cn": "我相信你知道,我们讨论过此事,但将其推迟到了后续阶段,因为 Mike 多次告诉我们,这需要更改设计、无法复用现有方案,并会大幅延长项目周期。" + } + }, + { + "id": 482, + "english": "meant", + "frequency": 80, + "category": "high_frequency", + "chinese": "意指", + "phonetic": "/ment/", + "forms": { + "infinitive": "mean (原形)" + }, + "example": { + "en": "I do not understand what you meant by the “dispenser light.”", + "cn": "我不明白你说的‘点胶灯’是什么意思。" + } + }, + { + "id": 483, + "english": "measure", + "frequency": 90, + "category": "technical_operations", + "chinese": "测量", + "phonetic": "/ˈmeʒər/", + "forms": { + "verb": [ + "measures (第三人称单数)", + "measuring (现在分词)", + "measured (过去式/过去分词)" + ], + "noun": "measure (名词)", + "plural": "measures (复数)", + "derivatives": [ + "measurement(测量)" + ] + }, + "example": { + "en": "Could that tool be used to measure the die position?", + "cn": "那个工具可以用来测量芯片位置吗?" + } + }, + { + "id": 484, + "english": "measurements", + "frequency": 48, + "category": "technical_core", + "chinese": "测量", + "phonetic": "/ˈmeʒəmənts/", + "forms": { + "singular": "measurement (单数)" + }, + "example": { + "en": "The measurements are accurate.", + "cn": "测量是准确的。" + } + }, + { + "id": 485, + "english": "mechanically", + "frequency": 22, + "category": "business_core", + "chinese": "机械地", + "phonetic": "/məˈkænɪkli/", + "forms": { + "adverb": "mechanically (副词)", + "base_adjective": "mechanical (形容词原形)", + "adjective": "mechanical (形容词)" + }, + "example": { + "en": "We mechanically press the frame down.", + "cn": "我们用机械方式将框架向下压。" + } + }, + { + "id": 486, + "english": "meet", + "frequency": 6, + "category": "action_verbs", + "chinese": "会面;见面;(meeting)会议", + "phonetic": "/miːt/", + "forms": { + "verb": "meeting (现在分词)", + "derivatives": [ + "meeting(会议)" + ] + }, + "example": { + "en": "I believe we agreed that he will meet with Jianfei Monday or Tuesday to take a closer look at this.", + "cn": "我记得我们已商定,他将于周一或周二与建飞会面,以进一步仔细查看此问题。" + } + }, + { + "id": 487, + "english": "mentioned", + "frequency": 29, + "category": "business_core", + "chinese": "提到的", + "phonetic": "/ˈmenʃənd/", + "forms": { + "past_participle": "mentioned (过去分词)", + "base_verb": "mention (动词原形)", + "verb": [ + "mentions (第三人称单数)", + "mentioning (现在分词)", + "mentioned (过去式/过去分词)" + ] + }, + "example": { + "en": "You mentioned that the red LEDs are 6V.", + "cn": "你提到红色LED是6V的。" + } + }, + { + "id": 488, + "english": "messages", + "frequency": 26, + "category": "business_core", + "chinese": "消息", + "phonetic": "/ˈmesɪdʒɪz/", + "forms": { + "singular": "message (单数)", + "verb": [ + "messages (第三人称单数)", + "messaging (现在分词)", + "messaged (过去式/过去分词)" + ] + }, + "example": { + "en": "Send me Teams messages if you have questions.", + "cn": "如果你有问题,请给我发Teams消息。" + } + }, + { + "id": 489, + "english": "metadata", + "frequency": 2, + "category": "high_frequency", + "chinese": "元数据", + "phonetic": "/ˈmetəˌdeɪtə/", + "forms": {}, + "example": { + "en": "-\tFor debugging, saved images should be in the raw format, but also include metadata for the preprocessing used.", + "cn": "-\t为便于调试,保存的图像应采用原始格式,同时还应包含所用预处理的元数据。" + } + }, + { + "id": 490, + "english": "methods", + "frequency": 85, + "category": "business_core", + "chinese": "方法", + "phonetic": "/ˈmeθədz/", + "forms": { + "singular": "method (单数)" + }, + "example": { + "en": "We need to develop new methods.", + "cn": "我们需要开发新的方法。" + } + }, + { + "id": 491, + "english": "micron", + "frequency": 2, + "category": "technical_core", + "chinese": "微米", + "phonetic": "/ˈmaɪkrɒn/", + "forms": {}, + "example": { + "en": "But detailed material inspection data collected in Santa Ana on the Rohm material show that the lead frame and the clip from Rohm are very accurate and match on the micron level.", + "cn": "但在圣安娜对 Rohm 材料采集的详细材料检测数据显示,Rohm 的引线框架和夹片精度很高,并且在微米级别上相互匹配。" + } + }, + { + "id": 492, + "english": "middle", + "frequency": 1, + "category": "high_frequency", + "chinese": "中间的;中间", + "phonetic": "/ˈmɪdəl/", + "forms": {}, + "example": { + "en": "Also please note that we are installing this application in Rohm Thailand end of next week and want to get acceptance by middle of July.", + "cn": "另请注意,我们将在下周末于罗姆泰国安装此应用,并希望在 7 月中旬前通过验收。" + } + }, + { + "id": 493, + "english": "milestones", + "frequency": 65, + "category": "time_planning", + "chinese": "里程碑", + "phonetic": "/ˈmaɪlstoʊnz/", + "forms": { + "singular": "milestone (单数)" + }, + "example": { + "en": "They have very critical milestones before the end of February.", + "cn": "他们在二月底之前有非常关键的里程碑。" + } + }, + { + "id": 494, + "english": "minimal", + "frequency": 20, + "category": "business_core", + "chinese": "最小的", + "phonetic": "/ˈmɪnɪml/", + "forms": {}, + "example": { + "en": "We want minimal impact on the chuck appearance.", + "cn": "我们希望对卡盘外观的影响最小。" + } + }, + { + "id": 495, + "english": "minimum", + "frequency": 32, + "category": "business_core", + "chinese": "最小量", + "phonetic": "/ˈmɪnɪməm/", + "forms": { + "noun": "minimums (复数)", + "plural": "minimums (复数)" + }, + "example": { + "en": "We need to send the absolute minimum.", + "cn": "我们需要发送最少的数量。" + } + }, + { + "id": 496, + "english": "mismatch", + "frequency": 1, + "category": "high_frequency", + "chinese": "不匹配;失配", + "phonetic": "/ˈmɪsmætʃ/", + "forms": {}, + "example": { + "en": "In Yangjie and on the Rohm application our vision reports data which we initially interpreted as a pitch mismatch between lead frame and clip.", + "cn": "在扬杰以及罗姆应用中,我们的视觉系统报告了一些数据,起初我们将其解读为引线框架与夹片之间的节距不匹配。" + } + }, + { + "id": 497, + "english": "miss", + "frequency": 14, + "category": "action_verbs", + "chinese": "错过", + "phonetic": "/mɪs/", + "forms": { + "verb": [ + "misses (第三人称单数)", + "missing (现在分词)", + "missed (过去式/过去分词)" + ] + }, + "example": { + "en": "We can't afford to miss this opportunity.", + "cn": "我们不能错过这个机会。" + } + }, + { + "id": 498, + "english": "missing", + "frequency": 25, + "category": "high_frequency", + "chinese": "丢失的", + "phonetic": "/ˈmɪsɪŋ/", + "forms": { + "adjective": "形容词", + "verb": [ + "misses (第三人称单数)", + "missing (现在分词)", + "missed (过去式/过去分词)" + ] + }, + "example": { + "en": "We are looking for the missing parts.", + "cn": "我们正在寻找丢失的零件。" + } + }, + { + "id": 499, + "english": "mistakes", + "frequency": 32, + "category": "business_core", + "chinese": "错误", + "phonetic": "/mɪˈsteɪks/", + "forms": { + "singular": "mistake (单数)", + "verb": [ + "mistaks (第三人称单数)", + "mistaking (现在分词)", + "mistaked (过去式/过去分词)" + ] + }, + "example": { + "en": "We need to avoid making mistakes.", + "cn": "我们需要避免犯错。" + } + }, + { + "id": 500, + "english": "mode", + "frequency": 2, + "category": "high_frequency", + "chinese": "模式", + "phonetic": "/məʊd/", + "forms": {}, + "example": { + "en": "On the Wedge bonder, there is a mode to select using gray level or binary operation.", + "cn": "楔焊机上有一种模式,可选择使用灰度处理或二值处理。" + } + }, + { + "id": 501, + "english": "model", + "frequency": 130, + "category": "business_core", + "chinese": "模型", + "phonetic": "/ˈmɒdl/", + "forms": { + "noun": "models (复数)", + "verb": [ + "models (第三人称单数)", + "modeling (现在分词)", + "modeled (过去式/过去分词)" + ], + "plural": "models (复数)" + }, + "example": { + "en": "He created a 3D model of the building.", + "cn": "他创建了这座建筑的3D模型。" + } + }, + { + "id": 502, + "english": "modified", + "frequency": 65, + "category": "action_verbs", + "chinese": "修改过的", + "phonetic": "/ˈmɑːdɪfaɪd/", + "forms": { + "infinitive": "modify (原形)", + "verb": [ + "modifies (第三人称单数)", + "modifying (现在分词)", + "modified (过去式/过去分词)" + ], + "adjective": "modified (形容词)" + }, + "example": { + "en": "We need a modified plate.", + "cn": "我们需要一个修改过的板。" + } + }, + { + "id": 503, + "english": "modify", + "frequency": 80, + "category": "action_verbs", + "chinese": "修改", + "phonetic": "/ˈmɒdɪfaɪ/", + "forms": { + "verb": [ + "modifies (第三人称单数)", + "modifying (现在分词)", + "modified (过去式/过去分词)" + ], + "noun": "modification (名词形式)" + }, + "example": { + "en": "We need to modify the design.", + "cn": "我们需要修改设计。" + } + }, + { + "id": 504, + "english": "modulation", + "frequency": 1, + "category": "high_frequency", + "chinese": "调制", + "phonetic": "/ˌmɒdjʊˈleɪʃən/", + "forms": {}, + "example": { + "en": "That would be a rather strange but systematic distortion, with a modulation period of a few millimeters.", + "cn": "这会是一种相当奇怪但具有系统性的畸变,其调制周期为几毫米。" + } + }, + { + "id": 505, + "english": "module", + "frequency": 1, + "category": "technical_core", + "chinese": "模块", + "phonetic": "/ˈmɒdjuːl/", + "forms": {}, + "example": { + "en": "Note that we are in the RFQ process for manufacturing the first 5 prototypes and that we will need up-looking vision for the currently favored flip module concept.", + "cn": "请注意,我们目前正在为首批 5 台样机的制造进行询价,而且当前优选的翻转模块方案将需要上视视觉。" + } + }, + { + "id": 506, + "english": "monitor", + "frequency": 80, + "category": "technical_operations", + "chinese": "监控", + "phonetic": "/ˈmɑːnɪtər/", + "forms": { + "verb": [ + "monitors (第三人称单数)", + "monitoring (现在分词)", + "monitored (过去式/过去分词)" + ], + "noun": "monitor (名词)", + "plural": "monitors (复数)" + }, + "example": { + "en": "You can report and monitor to see whether the algorithm does what it should do.", + "cn": "您可以报告和监控,以查看算法是否按预期工作。" + } + }, + { + "id": 507, + "english": "mount", + "frequency": 70, + "category": "technical_operations", + "chinese": "安装", + "phonetic": "/maʊnt/", + "forms": { + "verb": [ + "mounts (第三人称单数)", + "mounting (现在分词)", + "mounted (过去式/过去分词)" + ], + "plural": "mounts (复数)" + }, + "example": { + "en": "Mount it with a bracket or something similar.", + "cn": "用支架或类似的东西安装它。" + } + }, + { + "id": 508, + "english": "mountings", + "frequency": 35, + "category": "technical_operations", + "chinese": "安装件", + "phonetic": "/ˈmaʊntɪŋz/", + "forms": { + "singular": "mounting (单数)" + }, + "example": { + "en": "Check all sensor mountings.", + "cn": "检查所有传感器的安装件。" + } + }, + { + "id": 509, + "english": "move", + "frequency": 5, + "category": "action_verbs", + "chinese": "移动", + "phonetic": "/muːv/", + "forms": { + "verb": "moving (现在分词)" + }, + "example": { + "en": "And we can move the lead frame around in a controlled manner.", + "cn": "而且我们可以以受控方式移动引线框架。" + } + }, + { + "id": 510, + "english": "much", + "frequency": 1, + "category": "high_frequency", + "chinese": "许多", + "phonetic": "/mʌtʃ/", + "forms": {}, + "example": { + "en": "It was difficult for me to hear and understand much during the summit day yesterday.", + "cn": "昨天的峰会期间,我很难听清并理解太多内容。" + } + }, + { + "id": 511, + "english": "necessary", + "frequency": 85, + "category": "high_frequency", + "chinese": "必要的", + "phonetic": "/ˈnesəseri/", + "forms": { + "adjective": "necessary (形容词)" + }, + "example": { + "en": "This is a necessary improvement.", + "cn": "这是一个必要的改进。" + } + }, + { + "id": 512, + "english": "need", + "frequency": 109, + "category": "high_frequency", + "chinese": "需要", + "phonetic": "/niːd/", + "forms": { + "verb": [ + "needs (第三人称单数)", + "needing (现在分词)", + "needed (过去式/过去分词)" + ] + }, + "example": { + "en": "We need to analyze what needs to be done.", + "cn": "我们需要分析需要做什么。" + } + }, + { + "id": 513, + "english": "negligible", + "frequency": 35, + "category": "technical_core", + "chinese": "微不足道的", + "phonetic": "/ˈneɡlɪdʒəbl/", + "forms": { + "adjective": "negligible (形容词)", + "adverb": "negligibly (副词)" + }, + "example": { + "en": "The effect was negligible.", + "cn": "效果微不足道。" + } + }, + { + "id": 514, + "english": "nervously", + "frequency": 60, + "category": "descriptive_words", + "chinese": "紧张地", + "phonetic": "/ˈnɜːrvəsli/", + "forms": { + "adverb": "nervously (副词)", + "adjective": "nervous (形容词)", + "noun": "nervousness (名词)" + }, + "example": { + "en": "I am nervously looking to use the auto-correction.", + "cn": "我正紧张地期望使用自动校正功能。" + } + }, + { + "id": 515, + "english": "next", + "frequency": 7, + "category": "time_planning", + "chinese": "下一个", + "phonetic": "/nekst/", + "forms": {}, + "example": { + "en": "I also heard that he is still in China next week.", + "cn": "我还听说他下周仍在中国。" + } + }, + { + "id": 516, + "english": "nice", + "frequency": 1, + "category": "high_frequency", + "chinese": "好的", + "phonetic": "/naɪs/", + "forms": {}, + "example": { + "en": "The new interface has a nice, clean layout.", + "cn": "新界面的布局简洁美观。" + } + }, + { + "id": 517, + "english": "non-uniformity", + "frequency": 47, + "category": "business_core", + "chinese": "不均匀性", + "phonetic": "/ˌnɒnˌjuːnɪˈfɔːməti/", + "forms": { + "noun": "non-uniformities (复数)", + "plural": "non-uniformities (复数)" + }, + "example": { + "en": "The light non-uniformity may have an effect.", + "cn": "光的不均匀性可能会产生影响。" + } + }, + { + "id": 518, + "english": "note", + "frequency": 4, + "category": "communication", + "chinese": "注意;笔记", + "phonetic": "/nəʊt/", + "forms": {}, + "example": { + "en": "Please note that Jianfei will be on leave from Wednesday 7/1 on, so ideally the two of you can meet at the bonder before Wednesday.", + "cn": "请注意,建飞将从 7 月 1 日(星期三)起休假,因此最好你们两位能在星期三之前到焊线机旁会面。" + } + }, + { + "id": 519, + "english": "notice", + "frequency": 30, + "category": "business_core", + "chinese": "通知", + "phonetic": "/ˈnəʊtɪs/", + "forms": { + "noun": "notices (复数)", + "plural": "notices (复数)" + }, + "example": { + "en": "Make the down-holders on very short notice.", + "cn": "在很短的时间内制作好压紧器。" + } + }, + { + "id": 520, + "english": "nozzles", + "frequency": 60, + "category": "technical_core", + "chinese": "喷嘴", + "phonetic": "/ˈnɑːzlz/", + "forms": { + "singular": "nozzle (单数)" + }, + "example": { + "en": "We are dispensing with 2-column multi-tube nozzles.", + "cn": "我们正在使用双列多管喷嘴进行点胶。" + } + }, + { + "id": 521, + "english": "numerical", + "frequency": 60, + "category": "technical_core", + "chinese": "数字的", + "phonetic": "/nuːˈmerɪkl/", + "forms": {}, + "example": { + "en": "The data needs to be in a numerical format.", + "cn": "数据需要是数字格式。" + } + }, + { + "id": 522, + "english": "observation", + "frequency": 3, + "category": "high_frequency", + "chinese": "观察", + "phonetic": "/ˌɒbzəˈveɪʃən/", + "forms": {}, + "example": { + "en": "But it requires to find the centers of those slots accurately, which brings us back to the question, what our vision (algorithm) actually finds, given the observation that the cross hairs are visually off.", + "cn": "但这要求准确找到这些槽孔的中心。鉴于观察到十字准线在视觉上存在偏移,这又回到了原来的问题:我们的视觉系统(算法)实际找到的究竟是什么?" + } + }, + { + "id": 523, + "english": "observed", + "frequency": 46, + "category": "business_core", + "chinese": "观察到的", + "phonetic": "/əbˈzɜːvd/", + "forms": { + "past_participle": "observed (过去分词)", + "base_verb": "observe (动词原形)", + "verb": [ + "observes (第三人称单数)", + "observing (现在分词)", + "observed (过去式/过去分词)" + ] + }, + "example": { + "en": "I observed CP doing this in Yangjie.", + "cn": "我观察到CP在扬杰这样做。" + } + }, + { + "id": 524, + "english": "obviously", + "frequency": 25, + "category": "business_core", + "chinese": "显然", + "phonetic": "/ˈɒbviəsli/", + "forms": { + "adverb": "obviously (副词)", + "base_adjective": "obvious (形容词原形)", + "adjective": "obvious (形容词)" + }, + "example": { + "en": "Obviously, if the resistor reduces the light intensity, we can't use it.", + "cn": "显然,如果电阻降低了光强度,我们就不能使用它。" + } + }, + { + "id": 525, + "english": "odd", + "frequency": 27, + "category": "business_core", + "chinese": "奇数的", + "phonetic": "/ɒd/", + "forms": {}, + "example": { + "en": "One dispenser works on odd columns.", + "cn": "一个点胶机处理奇数列。" + } + }, + { + "id": 526, + "english": "off-the-shelf", + "frequency": 55, + "category": "business_core", + "chinese": "现成的", + "phonetic": "/ˌɔːf ðə ˈʃelf/", + "forms": {}, + "example": { + "en": "Can you find some off-the-shelf alternatives?", + "cn": "你能找到一些现成的替代品吗?" + } + }, + { + "id": 527, + "english": "offering", + "frequency": 22, + "category": "business_core", + "chinese": "提供", + "phonetic": "/ˈɒfərɪŋ/", + "forms": { + "verb": [ + "offers (第三人称单数)", + "offering (现在分词)", + "offered (过去式/过去分词)" + ], + "plural": "offerings (复数)" + }, + "example": { + "en": "Thank you for offering your help.", + "cn": "谢谢你提供帮助。" + } + }, + { + "id": 528, + "english": "office", + "frequency": 1, + "category": "high_frequency", + "chinese": "办公室", + "phonetic": "/ˈɒfɪs/", + "forms": {}, + "example": { + "en": "We have some vision engineers in the Bangalore ASMT office, but they are not at all familiar with Avaline.", + "cn": "我们在班加罗尔的 ASMT 办公室有一些视觉工程师,但他们完全不熟悉 Avaline。" + } + }, + { + "id": 529, + "english": "offline", + "frequency": 1, + "category": "high_frequency", + "chinese": "离线的", + "phonetic": "/ˌɒfˈlaɪn/", + "forms": {}, + "example": { + "en": "If you are having robustness and accuracy issues, it is best to ask the field to collect lots of images (with different light levels) and then have Eddy run some study offline to optimize the vision teach.", + "cn": "如果遇到鲁棒性和精度问题,最好让现场采集大量不同光照级别的图像,然后由 Eddy 离线开展研究,以优化视觉示教。" + } + }, + { + "id": 530, + "english": "offset", + "frequency": 1, + "category": "technical_operations", + "chinese": "偏移;补偿", + "phonetic": "/ˈɒfset/", + "forms": {}, + "example": { + "en": "In order for the ball measurement to be very close to the actual ball size that got measured in the scope room, we have a ball size correction step during teach where we have the operator dial in the average ball size (measured on the scope) for the bonder measured balls, and the vision system would then remember the offset between the scope measurement and bonder measurement.", + "cn": "为了使球体测量值尽可能接近显微镜室测得的实际球体尺寸,我们在示教过程中设有球径校正步骤:操作员为焊线机测得的球体输入平均球径(由显微镜测得),视觉系统随后会记住显微镜测量值与焊线机测量值之间的偏差。" + } + }, + { + "id": 531, + "english": "old", + "frequency": 1, + "category": "high_frequency", + "chinese": "旧的", + "phonetic": "/əʊld/", + "forms": {}, + "example": { + "en": "Jianfei can show this application on the bonder (we have bonded frames and can install the old chucks).", + "cn": "建飞可以在焊接机上演示此应用(我们已有完成焊接的框架,也可以安装旧夹具)。" + } + }, + { + "id": 532, + "english": "open", + "frequency": 26, + "category": "business_core", + "chinese": "打开", + "phonetic": "/ˈəʊpən/", + "forms": { + "verb": [ + "opens (第三人称单数)", + "opening (现在分词)", + "opened (过去式/过去分词)" + ] + }, + "example": { + "en": "The program cannot open the file.", + "cn": "程序无法打开该文件。" + } + }, + { + "id": 533, + "english": "openings", + "frequency": 32, + "category": "business_core", + "chinese": "开口", + "phonetic": "/ˈəʊpnɪŋz/", + "forms": { + "singular": "opening (单数)" + }, + "example": { + "en": "The flux is flowing down the openings in the vacuum chamber.", + "cn": "助焊剂正从真空室的开口处流下。" + } + }, + { + "id": 534, + "english": "operate", + "frequency": 90, + "category": "technical_operations", + "chinese": "操作", + "phonetic": "/ˈɑːpəreɪt/", + "forms": { + "verb": [ + "operates (第三人称单数)", + "operating (现在分词)", + "operated (过去式/过去分词)" + ], + "derivatives": [ + "operation(操作;运行)", + "operator(操作员)" + ] + }, + "example": { + "en": "CB3 can already operate with the new lens.", + "cn": "CB3已经可以使用新镜头进行操作。" + } + }, + { + "id": 535, + "english": "operates", + "frequency": 80, + "category": "technical_operations", + "chinese": "运行", + "phonetic": "/ˈɑːpəreɪts/", + "forms": { + "infinitive": "operate (原形)", + "verb": [ + "operates (第三人称单数)", + "operating (现在分词)", + "operated (过去式/过去分词)" + ] + }, + "example": { + "en": "This LED operates at higher forward voltage.", + "cn": "这种LED在较高的正向电压下工作。" + } + }, + { + "id": 536, + "english": "opportunities", + "frequency": 30, + "category": "business_core", + "chinese": "机会", + "phonetic": "/ˌɒpəˈtjuːnətiz/", + "forms": { + "singular": "opportunity (单数)" + }, + "example": { + "en": "There are many opportunities for improvement.", + "cn": "有很多改进的机会。" + } + }, + { + "id": 537, + "english": "opportunity", + "frequency": 1, + "category": "business_core", + "chinese": "机会", + "phonetic": "/ˌɒpəˈtjuːnɪti/", + "forms": {}, + "example": { + "en": "This visit is a good opportunity to inspect the machine first-hand.", + "cn": "这次访问是亲自检查机器的好机会。" + } + }, + { + "id": 538, + "english": "optical", + "frequency": 33, + "category": "business_core", + "chinese": "光学的", + "phonetic": "/ˈɒptɪkl/", + "forms": { + "derivatives": [ + "optics(光学)" + ] + }, + "example": { + "en": "This enables very good optical contrast.", + "cn": "这可以实现非常好的光学对比度。" + } + }, + { + "id": 539, + "english": "optimize", + "frequency": 1, + "category": "technical_operations", + "chinese": "优化", + "phonetic": "/ˈɒptɪmaɪz/", + "forms": { + "derivatives": [ + "optimal(最佳的)", + "optimum(最佳的)" + ] + }, + "example": { + "en": "If you are having robustness and accuracy issues, it is best to ask the field to collect lots of images (with different light levels) and then have Eddy run some study offline to optimize the vision teach.", + "cn": "如果遇到鲁棒性和精度问题,最好让现场采集大量不同光照级别的图像,然后由 Eddy 离线开展研究,以优化视觉示教。" + } + }, + { + "id": 540, + "english": "optimized", + "frequency": 70, + "category": "technical_operations", + "chinese": "优化的", + "phonetic": "/ˈɑːptɪmaɪzd/", + "forms": { + "infinitive": "optimize (原形)", + "verb": [ + "optimizes (第三人称单数)", + "optimizing (现在分词)", + "optimized (过去式/过去分词)" + ] + }, + "example": { + "en": "Document the results together with the optimized settings.", + "cn": "将结果与优化后的设置一起记录下来。" + } + }, + { + "id": 541, + "english": "option", + "frequency": 90, + "category": "high_frequency", + "chinese": "选项", + "phonetic": "/ˈɑːpʃn/", + "forms": { + "plural": "options (复数)" + }, + "example": { + "en": "Is the light you used an option that can be installed on the pick camera?", + "cn": "你使用的灯是可以在取料相机上安装的选项吗?" + } + }, + { + "id": 542, + "english": "order of magnitude", + "frequency": 45, + "category": "technical_core", + "chinese": "数量级", + "phonetic": "/ˈɔːrdər əv ˈmæɡnɪtuːd/", + "forms": { + "phrase": "order of magnitude (短语)", + "plural": "orders of magnitude (复数)" + }, + "example": { + "en": "Can you reduce the light by an order of magnitude?", + "cn": "你能把光线减少一个数量级吗?" + } + }, + { + "id": 543, + "english": "ordered", + "frequency": 80, + "category": "action_verbs", + "chinese": "订购", + "phonetic": "/ˈɔːrdərd/", + "forms": { + "infinitive": "order (原形)", + "verb": [ + "orders (第三人称单数)", + "ordering (现在分词)", + "ordered (过去式/过去分词)" + ] + }, + "example": { + "en": "Have you ordered the side lights?", + "cn": "你订购侧灯了吗?" + } + }, + { + "id": 544, + "english": "organize", + "frequency": 43, + "category": "technical_operations", + "chinese": "组织", + "phonetic": "/ˈɔːɡənaɪz/", + "forms": { + "verb": [ + "organizes (第三人称单数)", + "organizing (现在分词)", + "organized (过去式/过去分词)" + ] + }, + "example": { + "en": "Please organize this small activity.", + "cn": "请组织这次小型活动。" + } + }, + { + "id": 545, + "english": "orientation", + "frequency": 65, + "category": "technical_core", + "chinese": "方向", + "phonetic": "/ˌɔːriənˈteɪʃn/", + "forms": { + "noun": "orientation (名词)", + "verb": "orient/orientate (动词)", + "plural": "orientations (复数)" + }, + "example": { + "en": "The Lead Frame Orientation sensor needs to be completed.", + "cn": "引线框架方向传感器需要完成。" + } + }, + { + "id": 546, + "english": "origin", + "frequency": 5, + "category": "technical_core", + "chinese": "原点;来源", + "phonetic": "/ˈɒrɪdʒɪn/", + "forms": { + "noun": "origins (复数)" + }, + "example": { + "en": "The user still sets their teach window the same as they do today, but then within that teach window they need to click on a corner feature to use as an origin/reference point.", + "cn": "用户仍像目前一样设置示教窗口,但随后需要在该窗口内单击一个角点特征,将其用作原点或参考点。" + } + }, + { + "id": 547, + "english": "original", + "frequency": 13, + "category": "high_frequency", + "chinese": "原始的", + "phonetic": "/əˈrɪdʒənl/", + "forms": { + "adjective": "形容词", + "noun": "原件" + }, + "example": { + "en": "We can't find the original one.", + "cn": "我们找不到原始的那个。" + } + }, + { + "id": 548, + "english": "outer", + "frequency": 37, + "category": "business_core", + "chinese": "外部的", + "phonetic": "/ˈaʊtə(r)/", + "forms": {}, + "example": { + "en": "The outer ring provides support.", + "cn": "外环提供支撑。" + } + }, + { + "id": 549, + "english": "outline", + "frequency": 26, + "category": "business_core", + "chinese": "概述;轮廓", + "phonetic": "/ˈaʊtlaɪn/", + "forms": { + "noun": "outlines (复数)", + "plural": "outlines (复数)" + }, + "example": { + "en": "Please outline what we have.", + "cn": "请概述我们所拥有的。" + } + }, + { + "id": 550, + "english": "outlining", + "frequency": 30, + "category": "business_core", + "chinese": "勾勒轮廓", + "phonetic": "/ˈaʊtlaɪnɪŋ/", + "forms": { + "present_participle": "outlining (现在分词)", + "base_verb": "outline (动词原形)", + "verb": [ + "outlines (第三人称单数)", + "outlining (现在分词)", + "outlined (过去式/过去分词)" + ] + }, + "example": { + "en": "The software is outlining the detected objects.", + "cn": "该软件正在勾勒出检测到的物体的轮廓。" + } + }, + { + "id": 551, + "english": "over-driving", + "frequency": 35, + "category": "technical_operations", + "chinese": "过度驱动", + "phonetic": "/ˌoʊvərˈdraɪvɪŋ/", + "forms": { + "infinitive": "over-drive (原形)", + "verb": [ + "over-drivs (第三人称单数)", + "over-driving (现在分词)", + "over-drived (过去式/过去分词)" + ] + }, + "example": { + "en": "Are you over-driving the LEDs?", + "cn": "你是否过度驱动了LED?" + } + }, + { + "id": 552, + "english": "over-saturate", + "frequency": 30, + "category": "technical_core", + "chinese": "过度饱和", + "phonetic": "/ˌoʊvərˈsætʃəreɪt/", + "forms": { + "verb": [ + "over-saturates (第三人称单数)", + "over-saturating (现在分词)", + "over-saturated (过去式/过去分词)" + ] + }, + "example": { + "en": "Do not over-saturate the image with light.", + "cn": "不要用光使图像过度饱和。" + } + }, + { + "id": 553, + "english": "overflow", + "frequency": 70, + "category": "business_core", + "chinese": "溢出", + "phonetic": "/ˈoʊvərfloʊ/", + "forms": { + "plural": "overflows (复数)" + }, + "example": { + "en": "We had solder overflow.", + "cn": "我们遇到了焊料溢出的问题。" + } + }, + { + "id": 554, + "english": "page", + "frequency": 1, + "category": "communication", + "chinese": "页面;页;共识(on the same page)", + "phonetic": "/peɪdʒ/", + "forms": {}, + "example": { + "en": "Even just getting on the same page on what we actually do with the images would be a good step.", + "cn": "哪怕只是就我们实际如何处理这些图像达成共识,也是一个很好的进展。" + } + }, + { + "id": 555, + "english": "pair", + "frequency": 1, + "category": "high_frequency", + "chinese": "对;一双", + "phonetic": "/peər/", + "forms": {}, + "example": { + "en": "For ease of use by developers, it could be worthwhile to save a pair of images with metadata (one raw and one preprocessed).", + "cn": "为方便开发人员使用,值得保存一对带元数据的图像(一张原始图像和一张预处理图像)。" + } + }, + { + "id": 556, + "english": "parallel", + "frequency": 11, + "category": "technical_operations", + "chinese": "同时地", + "phonetic": "/ˈpærəlel/", + "forms": { + "adverb": "副词", + "adjective": "平行的" + }, + "example": { + "en": "In parallel, I will try to find another solution.", + "cn": "与此同时,我会尝试寻找另一个解决方案。" + } + }, + { + "id": 557, + "english": "parameters", + "frequency": 85, + "category": "technical_core", + "chinese": "参数", + "phonetic": "/pəˈræmɪtərz/", + "forms": { + "singular": "parameter (单数)" + }, + "example": { + "en": "We have three parameters that affect the appearance of the image.", + "cn": "我们有3个参数来影响图像外观。" + } + }, + { + "id": 558, + "english": "part", + "frequency": 2, + "category": "high_frequency", + "chinese": "零件;部分", + "phonetic": "/pɑːt/", + "forms": { + "noun": "parts (复数)" + }, + "example": { + "en": "That said, we actually map the light intensity over the Field of View, if it is being done as part of FAT.", + "cn": "不过,前提是这项工作属于 FAT 的一部分;事实上,我们确实会对整个视野内的光照强度进行映射。" + } + }, + { + "id": 559, + "english": "partially", + "frequency": 46, + "category": "business_core", + "chinese": "部分地", + "phonetic": "/ˈpɑːʃəli/", + "forms": { + "adverb": "partially (副词)", + "base_adjective": "partial (形容词原形)", + "adjective": "partial (形容词)" + }, + "example": { + "en": "The chucks were partially tested.", + "cn": "卡盘经过了部分测试。" + } + }, + { + "id": 560, + "english": "particular", + "frequency": 1, + "category": "high_frequency", + "chinese": "特定的;特别的", + "phonetic": "/pəˈtɪkjʊlər/", + "forms": {}, + "example": { + "en": "Magnification calibration is done by teaching a fiducial on any material, then moving the camera by a known distance to measure the microns per pixel of this particular optics.", + "cn": "放大倍率校准的做法是:在任意材料上示教一个基准标记,然后将相机移动一段已知距离,以测量该特定光学系统的微米/像素值。" + } + }, + { + "id": 561, + "english": "parts", + "frequency": 36, + "category": "high_frequency", + "chinese": "零件", + "phonetic": "/pɑːrts/", + "forms": { + "noun": "part的复数形式", + "verb": [ + "parts (第三人称单数)", + "parting (现在分词)", + "parted (过去式/过去分词)" + ] + }, + "example": { + "en": "The machine is made of many different parts.", + "cn": "这台机器由许多不同的零件组成。" + } + }, + { + "id": 562, + "english": "path", + "frequency": 46, + "category": "business_core", + "chinese": "路径", + "phonetic": "/pɑːθ/", + "forms": { + "noun": "paths", + "plural": "paths (复数)" + }, + "example": { + "en": "The exhaust path is blocked.", + "cn": "排气路径被堵塞了。" + } + }, + { + "id": 563, + "english": "pattern", + "frequency": 5, + "category": "technical_core", + "chinese": "图案;模式;规律", + "phonetic": "/ˈpætən/", + "forms": { + "verb": "patterned (过去式/过去分词)" + }, + "example": { + "en": "On a ball bonder, we measured the position of a lead frame corner while moving to various locations on a grid pattern across the field of view and compared the same measurement to our XY table map target which is glass with a very thin deposition of chrome fiducials.", + "cn": "在一台球焊机上,我们让引线框架角点沿覆盖整个视野的网格移动到不同位置,并测量其位置;然后将各次测量结果与 XY 工作台的映射标靶进行比较。该标靶由玻璃制成,表面沉积有一层很薄的铬基准标记。" + } + }, + { + "id": 564, + "english": "patterns", + "frequency": 70, + "category": "technical_core", + "chinese": "图案;模式", + "phonetic": "/ˈpætərnz/", + "forms": { + "singular": "pattern (单数)", + "verb": [ + "patterns (第三人称单数)", + "patterning (现在分词)", + "patterned (过去式/过去分词)" + ] + }, + "example": { + "en": "It must be applied to single dot and multi-dot patterns.", + "cn": "它必须应用于单点和多点图案。" + } + }, + { + "id": 565, + "english": "people", + "frequency": 1, + "category": "high_frequency", + "chinese": "人员;人们", + "phonetic": "/ˈpiːpəl/", + "forms": {}, + "example": { + "en": "But it seemed that FtW people spent ~50% of the day talking about this approach, and alternatives, for example using a USB camera (as on the other visions on Avaline) instead of the Zebra camera.", + "cn": "但 FtW 团队似乎花了当天约 50% 的时间讨论这种方案及其替代方案,例如使用 USB 相机(如 Avaline 上其他视觉系统所用)来代替 Zebra 相机。" + } + }, + { + "id": 566, + "english": "perfect", + "frequency": 70, + "category": "business_core", + "chinese": "完美的", + "phonetic": "/ˈpɜːrfɪkt/", + "forms": { + "adjective": "perfect (形容词)" + }, + "example": { + "en": "It doesn't look perfect.", + "cn": "它看起来不完美。" + } + }, + { + "id": 567, + "english": "perform", + "frequency": 15, + "category": "action_verbs", + "chinese": "执行", + "phonetic": "/pərˈfɔːrm/", + "forms": { + "verb": [ + "performs (第三人称单数)", + "performing (现在分词)", + "performed (过去式/过去分词)" + ], + "derivatives": [ + "performance(性能)" + ] + }, + "example": { + "en": "We are unable to perform critical tests.", + "cn": "我们无法执行关键测试。" + } + }, + { + "id": 568, + "english": "perimeter", + "frequency": 55, + "category": "technical_core", + "chinese": "周长;周边", + "phonetic": "/pəˈrɪmɪtər/", + "forms": { + "plural": "perimeters (复数)" + }, + "example": { + "en": "The die has a large ring around the perimeter.", + "cn": "芯片周边有一个大环。" + } + }, + { + "id": 569, + "english": "period", + "frequency": 1, + "category": "time_planning", + "chinese": "周期;期间", + "phonetic": "/ˈpɪəriəd/", + "forms": {}, + "example": { + "en": "That would be a rather strange but systematic distortion, with a modulation period of a few millimeters.", + "cn": "这会是一种相当奇怪但具有系统性的畸变,其调制周期为几毫米。" + } + }, + { + "id": 570, + "english": "perspective", + "frequency": 1, + "category": "high_frequency", + "chinese": "视角;观点;透视", + "phonetic": "/pəˈspektɪv/", + "forms": {}, + "example": { + "en": "The engineer shared his perspective on the vision system.", + "cn": "工程师分享了他对视觉系统的看法。" + } + }, + { + "id": 571, + "english": "phase", + "frequency": 70, + "category": "business_core", + "chinese": "阶段", + "phonetic": "/feɪz/", + "forms": { + "plural": "phases (复数)" + }, + "example": { + "en": "This is gating the next phase.", + "cn": "这正在限制下一阶段的进行。" + } + }, + { + "id": 572, + "english": "pick", + "frequency": 2, + "category": "technical_operations", + "chinese": "拾取;挑选", + "phonetic": "/pɪk/", + "forms": {}, + "example": { + "en": "With the up-looking vision we inspect the clips after pick.", + "cn": "我们使用上视视觉在拾取后检查夹片。" + } + }, + { + "id": 573, + "english": "pickup", + "frequency": 3, + "category": "technical_operations", + "chinese": "拾取", + "phonetic": "/ˈpɪkʌp/", + "forms": {}, + "example": { + "en": "On the pickup tool we have a feature which we use to check the repeatability of the bond head position over the camera during inspection.", + "cn": "拾取工具上有一个特征,我们用它来检查检测过程中焊头位于相机上方时的位置重复性。" + } + }, + { + "id": 574, + "english": "pins", + "frequency": 45, + "category": "business_core", + "chinese": "销钉", + "phonetic": "/pɪnz/", + "forms": { + "singular": "pin (单数)", + "verb": [ + "pins (第三人称单数)", + "pining (现在分词)", + "pined (过去式/过去分词)" + ] + }, + "example": { + "en": "The pins on the indexer clamps are a risk.", + "cn": "分度器夹具上的销钉存在风险。" + } + }, + { + "id": 575, + "english": "pitch", + "frequency": 4, + "category": "technical_core", + "chinese": "间距;节距", + "phonetic": "/pɪtʃ/", + "forms": {}, + "example": { + "en": "In Yangjie and on the Rohm application our vision reports data which we initially interpreted as a pitch mismatch between lead frame and clip.", + "cn": "在扬杰以及 Rohm 应用中,我们的视觉系统报告了一些数据,最初我们将其解读为引线框架与夹焊片之间的间距不匹配。" + } + }, + { + "id": 576, + "english": "pixel", + "frequency": 5, + "category": "technical_core", + "chinese": "像素", + "phonetic": "/ˈpɪksəl/", + "forms": {}, + "example": { + "en": "The images which we upload appear to be binary and to have low pixel count (this latter we seem to have changed on the Suzhou clip bonder but is still low pixel count on the clip bonder in Rohm Thailand).", + "cn": "我们上传的图像似乎是二值图像,而且像素数较低(苏州夹片焊接机上的这一点似乎已经调整,但泰国 Rohm 的夹片焊接机仍然像素数较低)。" + } + }, + { + "id": 577, + "english": "place", + "frequency": 29, + "category": "business_core", + "chinese": "放置", + "phonetic": "/pleɪs/", + "forms": { + "verb": [ + "places (第三人称单数)", + "placing (现在分词)", + "placed (过去式/过去分词)" + ], + "plural": "places (复数)", + "derivatives": [ + "placement(放置;位置)" + ] + }, + "example": { + "en": "The machine will place the component accurately.", + "cn": "机器将精确地放置组件。" + } + }, + { + "id": 578, + "english": "plan", + "frequency": 95, + "category": "time_planning", + "chinese": "计划", + "phonetic": "/plæn/", + "forms": { + "verb": [ + "plans (第三人称单数)", + "planning (现在分词)", + "planned (过去式/过去分词)" + ], + "plural": "plans (复数)" + }, + "example": { + "en": "Please plan and arrange the schedule.", + "cn": "请计划和安排日程。" + } + }, + { + "id": 579, + "english": "platform", + "frequency": 27, + "category": "business_core", + "chinese": "平台", + "phonetic": "/ˈplætfɔːm/", + "forms": { + "noun": "platforms (复数)", + "plural": "platforms (复数)" + }, + "example": { + "en": "Do not move the platform in X.", + "cn": "不要在X方向移动平台。" + } + }, + { + "id": 580, + "english": "please", + "frequency": 13, + "category": "high_frequency", + "chinese": "请", + "phonetic": "/pliːz/", + "forms": {}, + "example": { + "en": "Please investigate the issue first-hand while you are in Suzhou.", + "cn": "请在苏州期间亲自调查这个问题。" + } + }, + { + "id": 581, + "english": "plot", + "frequency": 70, + "category": "technical_operations", + "chinese": "绘制", + "phonetic": "/plɑːt/", + "forms": { + "verb": [ + "plots (第三人称单数)", + "plotting (现在分词)", + "plotted (过去式/过去分词)" + ], + "noun": "plot (名词)", + "plural": "plots (复数)" + }, + "example": { + "en": "Then plot the measured averages against the actuals.", + "cn": "然后将测量的平均值与实际值进行对比绘制。" + } + }, + { + "id": 582, + "english": "pneumatic", + "frequency": 22, + "category": "business_core", + "chinese": "气动的", + "phonetic": "/njuːˈmætɪk/", + "forms": {}, + "example": { + "en": "The original concept used a pneumatic move.", + "cn": "最初的概念使用气动移动。" + } + }, + { + "id": 583, + "english": "point", + "frequency": 1, + "category": "high_frequency", + "chinese": "点;指向", + "phonetic": "/pɔɪnt/", + "forms": {}, + "example": { + "en": "The user still sets their teach window the same as they do today, but then within that teach window they need to click on a corner feature to use as an origin/reference point.", + "cn": "用户仍像现在一样设置示教窗口,但随后需要在该窗口内单击一个角点特征,将其用作原点/参考点。" + } + }, + { + "id": 584, + "english": "points", + "frequency": 85, + "category": "communication", + "chinese": "观点", + "phonetic": "/pɔɪnts/", + "forms": { + "singular": "point (单数)", + "verb": [ + "points (第三人称单数)", + "pointing (现在分词)", + "pointed (过去式/过去分词)" + ] + }, + "example": { + "en": "He made some interesting points.", + "cn": "他提出了一些有趣的观点。" + } + }, + { + "id": 585, + "english": "port", + "frequency": 32, + "category": "business_core", + "chinese": "端口", + "phonetic": "/pɔːt/", + "forms": { + "noun": "ports (复数)", + "plural": "ports (复数)" + }, + "example": { + "en": "The chuck needs a second port for the sensor.", + "cn": "卡盘需要第二个端口用于传感器。" + } + }, + { + "id": 586, + "english": "pose", + "frequency": 70, + "category": "action_verbs", + "chinese": "提出;造成", + "phonetic": "/poʊz/", + "forms": { + "verb": [ + "poses (第三人称单数)", + "posing (现在分词)", + "posed (过去式/过去分词)" + ], + "plural": "poses (复数)" + }, + "example": { + "en": "Loose wiring may pose a safety risk.", + "cn": "接线松动可能造成安全风险。" + } + }, + { + "id": 587, + "english": "position", + "frequency": 10, + "category": "high_frequency", + "chinese": "位置;定位", + "phonetic": "/pəˈzɪʃən/", + "forms": { + "noun": "positions (复数)" + }, + "example": { + "en": "On the pickup tool we have a feature which we use to check the repeatability of the bond head position over the camera during inspection.", + "cn": "拾取工具上有一个特征,我们用它来检查检测期间焊头在相机上方位置的重复性。" + } + }, + { + "id": 588, + "english": "possible", + "frequency": 6, + "category": "high_frequency", + "chinese": "可能的", + "phonetic": "/ˈpɒsɪbəl/", + "forms": {}, + "example": { + "en": "Please correct my description below if possible today Thursday 7/9, and add additional items to be checked, documented.", + "cn": "如有可能,请于今天(7 月 9 日,星期四)修正我下面的描述,并补充其他需要检查和记录的项目。" + } + }, + { + "id": 589, + "english": "post", + "frequency": 1, + "category": "high_frequency", + "chinese": "后;岗位", + "phonetic": "/pəʊst/", + "forms": {}, + "example": { + "en": "Just FYI, on the BB we do Post Bond Inspection.", + "cn": "仅供参考,我们在 BB 上会进行焊后检查。" + } + }, + { + "id": 590, + "english": "potential", + "frequency": 80, + "category": "business_core", + "chinese": "潜力", + "phonetic": "/pəˈtenʃl/", + "forms": { + "plural": "potentials (复数)" + }, + "example": { + "en": "The project has great potential.", + "cn": "这个项目有很大的潜力。" + } + }, + { + "id": 591, + "english": "PowerPoint", + "frequency": 60, + "category": "technical_operations", + "chinese": "幻灯片", + "phonetic": "/ˈpaʊərpɔɪnt/", + "forms": { + "plural": "powerpoints (复数)" + }, + "example": { + "en": "I just took a quick look at your powerpoint files.", + "cn": "我刚快速看了一下你的幻灯片文件。" + } + }, + { + "id": 592, + "english": "practice", + "frequency": 44, + "category": "business_core", + "chinese": "实践;做法", + "phonetic": "/ˈpræktɪs/", + "forms": { + "noun": "practices (复数)", + "plural": "practices (复数)" + }, + "example": { + "en": "This is a common practice in the industry.", + "cn": "这是行业内的普遍做法。" + } + }, + { + "id": 593, + "english": "preference", + "frequency": 1, + "category": "high_frequency", + "chinese": "偏好", + "phonetic": "/ˈprefərəns/", + "forms": {}, + "example": { + "en": "I wonder if it is a customer preference to see a binary image on the screen.", + "cn": "我想知道,在屏幕上查看二值图像是否是客户的偏好。" + } + }, + { + "id": 594, + "english": "prepare", + "frequency": 41, + "category": "action_verbs", + "chinese": "准备", + "phonetic": "/prɪˈpeə(r)/", + "forms": { + "verb": [ + "prepares (第三人称单数)", + "preparing (现在分词)", + "prepared (过去式/过去分词)" + ], + "derivatives": [ + "preparation(准备)" + ] + }, + "example": { + "en": "We need to prepare the machine for production.", + "cn": "我们需要为生产准备好机器。" + } + }, + { + "id": 595, + "english": "prepared", + "frequency": 60, + "category": "action_verbs", + "chinese": "准备好的", + "phonetic": "/prɪˈpeərd/", + "forms": { + "infinitive": "prepare (原形)", + "verb": [ + "prepares (第三人称单数)", + "preparing (现在分词)", + "prepared (过去式/过去分词)" + ] + }, + "example": { + "en": "Please come prepared to the call.", + "cn": "请准备好再参加电话会议。" + } + }, + { + "id": 596, + "english": "present", + "frequency": 85, + "category": "time_planning", + "chinese": "目前的", + "phonetic": "/ˈpreznt/", + "forms": { + "derivatives": [ + "presence(存在)", + "presentation(演讲;报告)" + ] + }, + "example": { + "en": "Can you please list the present (default) setting?", + "cn": "你能列出当前(默认)的设置吗?" + } + }, + { + "id": 597, + "english": "pressure", + "frequency": 85, + "category": "business_core", + "chinese": "压力", + "phonetic": "/ˈpreʃər/", + "forms": { + "noun": "pressure (名词)", + "verb": [ + "pressures (第三人称单数)", + "pressuring (现在分词)", + "pressured (过去式/过去分词)" + ], + "plural": "pressures (复数)" + }, + "example": { + "en": "We are under growing time pressure.", + "cn": "我们的时间压力越来越大。" + } + }, + { + "id": 598, + "english": "prevent", + "frequency": 23, + "category": "action_verbs", + "chinese": "防止", + "phonetic": "/prɪˈvent/", + "forms": { + "verb": [ + "prevents (第三人称单数)", + "preventing (现在分词)", + "prevented (过去式/过去分词)" + ] + }, + "example": { + "en": "This is to prevent mistakes.", + "cn": "这是为了防止错误。" + } + }, + { + "id": 599, + "english": "principle", + "frequency": 36, + "category": "business_core", + "chinese": "原则", + "phonetic": "/ˈprɪnsəpl/", + "forms": { + "noun": "principles (复数)", + "plural": "principles (复数)" + }, + "example": { + "en": "In principle, we have to analyze three areas.", + "cn": "原则上,我们必须分析三个领域。" + } + }, + { + "id": 600, + "english": "priority", + "frequency": 85, + "category": "business_core", + "chinese": "优先", + "phonetic": "/praɪˈɔːrəti/", + "forms": { + "plural": "priorities (复数)" + }, + "example": { + "en": "This is the highest priority item.", + "cn": "这是最高优先级的项目。" + } + }, + { + "id": 601, + "english": "problem", + "frequency": 90, + "category": "high_frequency", + "chinese": "问题", + "phonetic": "/ˈprɑːbləm/", + "forms": { + "plural": "problems (复数)" + }, + "example": { + "en": "We need to find a solution to this problem.", + "cn": "我们需要找到解决这个问题的方法。" + } + }, + { + "id": 602, + "english": "process", + "frequency": 43, + "category": "business_core", + "chinese": "工艺", + "phonetic": "/ˈprəʊses/", + "forms": { + "noun": "processes (复数)", + "verb": [ + "processes (第三人称单数)", + "processing (现在分词)", + "processed (过去式/过去分词)" + ], + "derivatives": [ + "processing(处理)" + ] + }, + "example": { + "en": "We need to improve the pick and place process.", + "cn": "我们需要改进取放工艺。" + } + }, + { + "id": 603, + "english": "processes", + "frequency": 170, + "category": "technical_core", + "chinese": "处理", + "phonetic": "/ˈprəʊsesɪz/", + "forms": { + "verb": [ + "processes (第三人称单数)", + "processing (现在分词)", + "processed (过去式/过去分词)" + ] + }, + "example": { + "en": "The machine processes two columns at once.", + "cn": "这台机器一次处理两列。" + } + }, + { + "id": 604, + "english": "production", + "frequency": 85, + "category": "business_core", + "chinese": "生产", + "phonetic": "/prəˈdʌkʃn/", + "forms": { + "plural": "productions (复数)" + }, + "example": { + "en": "The machine is in production.", + "cn": "这台机器正在生产中。" + } + }, + { + "id": 605, + "english": "progress", + "frequency": 90, + "category": "business_core", + "chinese": "进展", + "phonetic": "/ˈprɑːɡres/", + "forms": { + "verb": [ + "progresses (第三人称单数)", + "progressing (现在分词)", + "progressed (过去式/过去分词)" + ] + }, + "example": { + "en": "We did not make the planned progress.", + "cn": "我们没有取得计划中的进展。" + } + }, + { + "id": 606, + "english": "proper", + "frequency": 85, + "category": "high_frequency", + "chinese": "正确的;适当的", + "phonetic": "/ˈprɑːpər/", + "forms": { + "adjective": "proper (形容词)", + "adverb": "properly (副词)" + }, + "example": { + "en": "Please ensure the proper function of the machine.", + "cn": "请确保机器的正常功能。" + } + }, + { + "id": 607, + "english": "properly", + "frequency": 40, + "category": "business_core", + "chinese": "适当地", + "phonetic": "/ˈprɒpəli/", + "forms": { + "adverb": "properly (副词)", + "base_adjective": "proper (形容词原形)", + "adjective": "proper (形容词)" + }, + "example": { + "en": "The die may not be detected properly.", + "cn": "芯片可能无法被正确检测到。" + } + }, + { + "id": 608, + "english": "proposals", + "frequency": 25, + "category": "communication", + "chinese": "提议", + "phonetic": "/prəˈpəʊzəlz/", + "forms": { + "singular": "proposal (单数)" + }, + "example": { + "en": "We need to review the design change proposals.", + "cn": "我们需要审查设计变更提议。" + } + }, + { + "id": 609, + "english": "pros", + "frequency": 37, + "category": "business_core", + "chinese": "优点", + "phonetic": "/prəʊz/", + "forms": {}, + "example": { + "en": "Think about the pros and cons.", + "cn": "考虑一下优缺点。" + } + }, + { + "id": 610, + "english": "protect", + "frequency": 85, + "category": "action_verbs", + "chinese": "保护", + "phonetic": "/prəˈtekt/", + "forms": { + "verb": [ + "protects (第三人称单数)", + "protecting (现在分词)", + "protected (过去式/过去分词)" + ] + }, + "example": { + "en": "How will it provide protection in the present design?", + "cn": "在目前的设计中,它将如何帮助保护?" + } + }, + { + "id": 611, + "english": "prove", + "frequency": 70, + "category": "business_core", + "chinese": "证明", + "phonetic": "/pruːv/", + "forms": { + "verb": [ + "proves (第三人称单数)", + "proving (现在分词)", + "proved/proven (过去式/过去分词)" + ] + }, + "example": { + "en": "We need to prove that the design works.", + "cn": "我们需要证明设计是可行的。" + } + }, + { + "id": 612, + "english": "provide", + "frequency": 90, + "category": "action_verbs", + "chinese": "提供", + "phonetic": "/prəˈvaɪd/", + "forms": { + "verb": [ + "provides (第三人称单数)", + "providing (现在分词)", + "provided (过去式/过去分词)" + ] + }, + "example": { + "en": "Please provide the image data.", + "cn": "请提供图像数据。" + } + }, + { + "id": 613, + "english": "purchase", + "frequency": 1, + "category": "technical_operations", + "chinese": "购买", + "phonetic": "/ˈpɜːtʃəs/", + "forms": {}, + "example": { + "en": "We should purchase a new / different one.", + "cn": "我们应该购买一个新的或不同型号的。" + } + }, + { + "id": 614, + "english": "purchased", + "frequency": 85, + "category": "business_core", + "chinese": "购买", + "phonetic": "/ˈpɜːrtʃəst/", + "forms": { + "infinitive": "purchase (原形)", + "verb": [ + "purchases (第三人称单数)", + "purchasing (现在分词)", + "purchased (过去式/过去分词)" + ], + "noun": "purchase (名词)" + }, + "example": { + "en": "This was one reason why we purchased the reticles.", + "cn": "这是我们购买标线片的原因之一。" + } + }, + { + "id": 615, + "english": "purpose", + "frequency": 44, + "category": "business_core", + "chinese": "目的", + "phonetic": "/ˈpɜːpəs/", + "forms": { + "noun": "purposes (复数)", + "plural": "purposes (复数)" + }, + "example": { + "en": "That is the purpose of this request.", + "cn": "这就是这个请求的目的。" + } + }, + { + "id": 616, + "english": "pursue", + "frequency": 12, + "category": "action_verbs", + "chinese": "继续", + "phonetic": "/pərˈsuː/", + "forms": { + "verb": [ + "pursues (第三人称单数)", + "pursuing (现在分词)", + "pursued (过去式/过去分词)" + ] + }, + "example": { + "en": "The company decided to pursue the new project.", + "cn": "公司决定继续推进这个新项目。" + } + }, + { + "id": 617, + "english": "put", + "frequency": 2, + "category": "action_verbs", + "chinese": "放置", + "phonetic": "/pʊt/", + "forms": {}, + "example": { + "en": "I believe you know that we discussed that but put it off to a later phase, because Mike repeatedly told us that it would require a design change, mean no re-use, and extend the timeline significantly.", + "cn": "我相信你知道,我们讨论过此事,但将其推迟到了后续阶段,因为 Mike 多次告诉我们,这需要更改设计、无法复用现有方案,并会大幅延长项目周期。" + } + }, + { + "id": 618, + "english": "puzzled", + "frequency": 29, + "category": "business_core", + "chinese": "困惑的", + "phonetic": "/ˈpʌzld/", + "forms": { + "past_participle": "puzzled (过去分词)", + "base_verb": "puzzle (动词原形)", + "verb": [ + "puzzles (第三人称单数)", + "puzzling (现在分词)", + "puzzled (过去式/过去分词)" + ] + }, + "example": { + "en": "I'm still puzzled that we can't move the rail.", + "cn": "我仍然对我们无法移动导轨感到困惑。" + } + }, + { + "id": 619, + "english": "qualified", + "frequency": 70, + "category": "business_core", + "chinese": "合格的", + "phonetic": "/ˈkwɑːlɪfaɪd/", + "forms": { + "adjective": "qualified (形容词)", + "verb": "qualify (动词)", + "noun": "qualification (名词)" + }, + "example": { + "en": "We need to get qualified at Yangjie.", + "cn": "我们需要在扬杰获得资格。" + } + }, + { + "id": 620, + "english": "quality", + "frequency": 85, + "category": "business_core", + "chinese": "质量", + "phonetic": "/ˈkwɑːləti/", + "forms": { + "plural": "qualities (复数)" + }, + "example": { + "en": "The image quality is not good enough.", + "cn": "图像质量不够好。" + } + }, + { + "id": 621, + "english": "quantifiable", + "frequency": 40, + "category": "technical_core", + "chinese": "可量化的", + "phonetic": "/ˈkwɑːntɪfaɪəbl/", + "forms": {}, + "example": { + "en": "We do not have quantifiable output data.", + "cn": "我们没有可量化的输出数据。" + } + }, + { + "id": 622, + "english": "quantity", + "frequency": 42, + "category": "business_core", + "chinese": "数量", + "phonetic": "/ˈkwɒntəti/", + "forms": { + "noun": "quantities (复数)", + "plural": "quantities (复数)" + }, + "example": { + "en": "Order the appropriate quantity of correct parts.", + "cn": "订购适量的正确零件。" + } + }, + { + "id": 623, + "english": "question", + "frequency": 20, + "category": "action_verbs", + "chinese": "问题;疑问", + "phonetic": "/ˈkwestʃən/", + "forms": { + "noun": "questions (复数)", + "verb": "questioned (过去式/过去分词)" + }, + "example": { + "en": "The most pressing question is why the crosshair is not always centered on the feature that we intend to use as the fiducial.", + "cn": "最迫切的问题是:为什么十字准星并不总是位于我们打算用作基准标记的特征中心?" + } + }, + { + "id": 624, + "english": "questions", + "frequency": 95, + "category": "communication", + "chinese": "问题", + "phonetic": "/ˈkwestʃənz/", + "forms": { + "singular": "question (单数)", + "verb": [ + "questions (第三人称单数)", + "questioning (现在分词)", + "questioned (过去式/过去分词)" + ] + }, + "example": { + "en": "Do you have any questions?", + "cn": "你有什么问题吗?" + } + }, + { + "id": 625, + "english": "quick", + "frequency": 3, + "category": "high_frequency", + "chinese": "快速的", + "phonetic": "/kwɪk/", + "forms": {}, + "example": { + "en": "That is a quick and dirty test to check if there is any distortion in the system.", + "cn": "这是一项快速的粗略测试,用于检查系统是否存在畸变。" + } + }, + { + "id": 626, + "english": "quotes", + "frequency": 25, + "category": "business_core", + "chinese": "报价", + "phonetic": "/kwəʊts/", + "forms": { + "singular": "quote (单数)", + "verb": [ + "quots (第三人称单数)", + "quoting (现在分词)", + "quoted (过去式/过去分词)" + ] + }, + "example": { + "en": "Please make sure you have quotes and lead times.", + "cn": "请确保您有报价和交货时间。" + } + }, + { + "id": 627, + "english": "random", + "frequency": 43, + "category": "business_core", + "chinese": "随机的", + "phonetic": "/ˈrændəm/", + "forms": {}, + "example": { + "en": "We see a random error.", + "cn": "我们看到了一个随机误差。" + } + }, + { + "id": 628, + "english": "range", + "frequency": 38, + "category": "business_core", + "chinese": "范围", + "phonetic": "/reɪndʒ/", + "forms": { + "noun": "ranges (复数)", + "plural": "ranges (复数)" + }, + "example": { + "en": "Can you show images for a range of settings?", + "cn": "你能显示一系列设置的图像吗?" + } + }, + { + "id": 629, + "english": "raw", + "frequency": 60, + "category": "technical_core", + "chinese": "原始的", + "phonetic": "/rɔː/", + "forms": {}, + "example": { + "en": "We need the raw images.", + "cn": "我们需要原始图像。" + } + }, + { + "id": 630, + "english": "re-arrange", + "frequency": 36, + "category": "business_core", + "chinese": "重新安排", + "phonetic": "/ˌriːəˈreɪndʒ/", + "forms": { + "verb": [ + "re-arranges (第三人称单数)", + "re-arranging (现在分词)", + "re-arranged (过去式/过去分词)" + ] + }, + "example": { + "en": "Can you re-arrange the chucks?", + "cn": "你能重新安排一下卡盘吗?" + } + }, + { + "id": 631, + "english": "re-positioning", + "frequency": 45, + "category": "business_core", + "chinese": "重新定位", + "phonetic": "/ˌriːpəˈzɪʃənɪŋ/", + "forms": { + "present_participle": "re-positioning (现在分词)", + "base_verb": "re-position (动词原形)", + "verb": [ + "re-positions (第三人称单数)", + "re-positioning (现在分词)", + "re-positioned (过去式/过去分词)" + ] + }, + "example": { + "en": "This requires a re-positioning of the camera.", + "cn": "这需要重新定位相机。" + } + }, + { + "id": 632, + "english": "reach out", + "frequency": 70, + "category": "communication", + "chinese": "联系", + "phonetic": "/riːtʃ aʊt/", + "forms": { + "phrasal_verb": "reach out (短语动词)", + "verb": [ + "reaches out (第三人称单数)", + "reaching out (现在分词)", + "reached out (过去式/过去分词)" + ], + "plural": "reach outs (复数)" + }, + "example": { + "en": "I will reach out to you on Tuesday to review your plan.", + "cn": "我将在你周二的时候联系你,审查你的计划。" + } + }, + { + "id": 633, + "english": "reacts", + "frequency": 70, + "category": "business_core", + "chinese": "反应", + "phonetic": "/riˈækts/", + "forms": { + "infinitive": "react (原形)", + "verb": [ + "reacts (第三人称单数)", + "reacting (现在分词)", + "reacted (过去式/过去分词)" + ] + }, + "example": { + "en": "Is there a better approach which reacts sooner?", + "cn": "有没有一种能更快反应的更好方法?" + } + }, + { + "id": 634, + "english": "read", + "frequency": 100, + "category": "high_frequency", + "chinese": "阅读", + "phonetic": "/riːd/", + "forms": { + "past": "read (过去式 /riːd/ -> /red/)", + "participle": "read (过去分词 /riːd/ -> /red/)", + "verb": [ + "reads (第三人称单数)", + "reading (现在分词)" + ] + }, + "example": { + "en": "Please read carefully.", + "cn": "请仔细阅读。" + } + }, + { + "id": 635, + "english": "realize", + "frequency": 46, + "category": "business_core", + "chinese": "意识到", + "phonetic": "/ˈriːəlaɪz/", + "forms": { + "verb": [ + "realizes (第三人称单数)", + "realizing (现在分词)", + "realized (过去式/过去分词)" + ] + }, + "example": { + "en": "We need to realize that we need to go back.", + "cn": "我们需要意识到我们需要回去。" + } + }, + { + "id": 636, + "english": "received", + "frequency": 85, + "category": "action_verbs", + "chinese": "收到", + "phonetic": "/rɪˈsiːvd/", + "forms": { + "infinitive": "receive (原形)", + "verb": [ + "receives (第三人称单数)", + "receiving (现在分词)", + "received (过去式/过去分词)" + ] + }, + "example": { + "en": "Will they be received tomorrow?", + "cn": "它们明天能收到吗?" + } + }, + { + "id": 637, + "english": "recommendation", + "frequency": 75, + "category": "communication", + "chinese": "建议", + "phonetic": "/ˌrekəmenˈdeɪʃn/", + "forms": { + "plural": "recommendations (复数)" + }, + "example": { + "en": "You need to provide a recommendation to Eric.", + "cn": "你需要向埃里克提供建议。" + } + }, + { + "id": 638, + "english": "recommended", + "frequency": 39, + "category": "business_core", + "chinese": "推荐的", + "phonetic": "/ˌrekəˈmendɪd/", + "forms": { + "past_participle": "recommended (过去分词)", + "base_verb": "recommend (动词原形)", + "verb": [ + "recommends (第三人称单数)", + "recommending (现在分词)", + "recommended (过去式/过去分词)" + ] + }, + "example": { + "en": "Provide the recommended camera settings.", + "cn": "提供推荐的相机设置。" + } + }, + { + "id": 639, + "english": "recording", + "frequency": 65, + "category": "action_verbs", + "chinese": "记录", + "phonetic": "/rɪˈkɔːrdɪŋ/", + "forms": { + "noun": "recording (名词)", + "verb": "record (动词原形)", + "gerund": "recording (动名词)", + "plural": "recordings (复数)" + }, + "example": { + "en": "The system is recording the data.", + "cn": "系统正在记录数据。" + } + }, + { + "id": 640, + "english": "rectangle", + "frequency": 45, + "category": "business_core", + "chinese": "矩形", + "phonetic": "/ˈrektæŋɡl/", + "forms": { + "noun": "rectangles (复数)", + "plural": "rectangles (复数)" + }, + "example": { + "en": "Draw a rectangle on the screen.", + "cn": "在屏幕上画一个矩形。" + } + }, + { + "id": 641, + "english": "reduce", + "frequency": 90, + "category": "action_verbs", + "chinese": "减少", + "phonetic": "/rɪˈduːs/", + "forms": { + "verb": [ + "reduces (第三人称单数)", + "reducing (现在分词)", + "reduced (过去式/过去分词)" + ], + "noun": "reduction (名词)", + "derivatives": [ + "reducing(减少)" + ] + }, + "example": { + "en": "Please review whether you can reduce the light in your test.", + "cn": "请检查您是否可以在测试中减少光线。" + } + }, + { + "id": 642, + "english": "reference", + "frequency": 27, + "category": "business_core", + "chinese": "参考", + "phonetic": "/ˈrefrəns/", + "forms": { + "noun": "references (复数)", + "plural": "references (复数)" + }, + "example": { + "en": "We will take this as a reference.", + "cn": "我们将以此为参考。" + } + }, + { + "id": 643, + "english": "refers", + "frequency": 46, + "category": "business_core", + "chinese": "指的是", + "phonetic": "/rɪˈfɜːz/", + "forms": { + "verb": [ + "refers (第三人称单数)", + "referring (现在分词)", + "referred (过去式/过去分词)" + ] + }, + "example": { + "en": "I believe he refers to such a tool.", + "cn": "我相信他指的是这样一个工具。" + } + }, + { + "id": 644, + "english": "regards", + "frequency": 32, + "category": "business_core", + "chinese": "问候", + "phonetic": "/rɪˈɡɑːdz/", + "forms": { + "verb": [ + "regards (第三人称单数)", + "regarding (现在分词)", + "regarded (过去式/过去分词)" + ] + }, + "example": { + "en": "Please send my regards to the engineering team.", + "cn": "请代我向工程团队问好。" + } + }, + { + "id": 645, + "english": "regular", + "frequency": 39, + "category": "business_core", + "chinese": "常规的", + "phonetic": "/ˈreɡjələ(r)/", + "forms": {}, + "example": { + "en": "The regular blackening process is different.", + "cn": "常规的黑化工艺是不同的。" + } + }, + { + "id": 646, + "english": "relative", + "frequency": 75, + "category": "high_frequency", + "chinese": "相对的", + "phonetic": "/ˈrelətɪv/", + "forms": { + "preposition": "relative (介词/连词)" + }, + "example": { + "en": "The optimal location relative to the bond pads.", + "cn": "相对于焊接盘的最佳位置。" + } + }, + { + "id": 647, + "english": "reliable", + "frequency": 25, + "category": "business_core", + "chinese": "可靠的", + "phonetic": "/rɪˈlaɪəbl/", + "forms": { + "derivatives": [ + "reliability(可靠性)" + ] + }, + "example": { + "en": "The solution needs to be reliable.", + "cn": "解决方案需要可靠。" + } + }, + { + "id": 648, + "english": "reliably", + "frequency": 70, + "category": "business_core", + "chinese": "可靠地", + "phonetic": "/rɪˈlaɪəbli/", + "forms": { + "adverb": "reliably (副词)", + "adjective": "reliable (形容词)" + }, + "example": { + "en": "The vision needs to reliably find a die.", + "cn": "视觉系统需要可靠地找到芯片。" + } + }, + { + "id": 649, + "english": "remade", + "frequency": 15, + "category": "action_verbs", + "chinese": "重做", + "phonetic": "/ˌriːˈmeɪd/", + "forms": { + "verb": "remake的过去式/过去分词" + }, + "example": { + "en": "The faulty part had to be remade.", + "cn": "有问题的零件必须重做。" + } + }, + { + "id": 650, + "english": "reminder", + "frequency": 70, + "category": "business_core", + "chinese": "提醒", + "phonetic": "/rɪˈmaɪndər/", + "forms": { + "plural": "reminders (复数)" + }, + "example": { + "en": "This is a friendly but urgent reminder.", + "cn": "这是一个友好但紧急的提醒。" + } + }, + { + "id": 651, + "english": "remote", + "frequency": 85, + "category": "technical_operations", + "chinese": "远程的", + "phonetic": "/rɪˈmoʊt/", + "forms": { + "adjective": "remote (形容词)", + "adverb": "remotely (副词)" + }, + "example": { + "en": "We can debug it with you remote in.", + "cn": "我们可以在您远程接入的情况下进行调试。" + } + }, + { + "id": 652, + "english": "removes", + "frequency": 33, + "category": "business_core", + "chinese": "移除", + "phonetic": "/rɪˈmuːvz/", + "forms": { + "verb": [ + "removes (第三人称单数)", + "removing (现在分词)", + "removed (过去式/过去分词)" + ] + }, + "example": { + "en": "The process removes the top layer.", + "cn": "该过程移除了顶层。" + } + }, + { + "id": 653, + "english": "repair", + "frequency": 28, + "category": "technical_operations", + "chinese": "修理", + "phonetic": "/rɪˈpeə(r)/", + "forms": { + "verb": [ + "repairs (第三人称单数)", + "repairing (现在分词)", + "repaired (过去式/过去分词)" + ], + "plural": "repairs (复数)" + }, + "example": { + "en": "The machine needs repair.", + "cn": "这台机器需要修理。" + } + }, + { + "id": 654, + "english": "repeat", + "frequency": 85, + "category": "action_verbs", + "chinese": "重复", + "phonetic": "/rɪˈpiːt/", + "forms": { + "verb": [ + "repeats (第三人称单数)", + "repeating (现在分词)", + "repeated (过去式/过去分词)" + ] + }, + "example": { + "en": "Can you repeat with that die?", + "cn": "你能用那个芯片重复一遍吗?" + } + }, + { + "id": 655, + "english": "repeatability", + "frequency": 55, + "category": "technical_core", + "chinese": "可重复性", + "phonetic": "/rɪˌpiːtəˈbɪləti/", + "forms": { + "noun": "repeatability (名词)", + "adjective": "repeatable (形容词)", + "plural": "repeatabilities (复数)" + }, + "example": { + "en": "This is very good, compared to our solder dot repeatability.", + "cn": "与我们的焊点可重复性相比,这已经非常好了。" + } + }, + { + "id": 656, + "english": "repeatable", + "frequency": 27, + "category": "action_verbs", + "chinese": "可重复的", + "phonetic": "/rɪˈpiːtəbl/", + "forms": {}, + "example": { + "en": "We need to see how repeatable the behavior is.", + "cn": "我们需要看看这种行为的可重复性如何。" + } + }, + { + "id": 657, + "english": "replace", + "frequency": 100, + "category": "action_verbs", + "chinese": "替换", + "phonetic": "/rɪˈpleɪs/", + "forms": { + "verb": [ + "replaces (第三人称单数)", + "replacing (现在分词)", + "replaced (过去式/过去分词)" + ], + "noun": "replacement (名词形式)", + "derivatives": [ + "replacement(替换品)" + ] + }, + "example": { + "en": "You should replace the old battery.", + "cn": "你应该更换旧电池。" + } + }, + { + "id": 658, + "english": "reply", + "frequency": 80, + "category": "communication", + "chinese": "回复", + "phonetic": "/rɪˈplaɪ/", + "forms": { + "verb": [ + "replies (第三人称单数)", + "replying (现在分词)", + "replied (过去式/过去分词)" + ], + "noun": "reply (名词)", + "plural": "replies (复数)" + }, + "example": { + "en": "Please reply to this email as soon as possible.", + "cn": "请尽快回复此电子邮件。" + } + }, + { + "id": 659, + "english": "report", + "frequency": 95, + "category": "communication", + "chinese": "报告", + "phonetic": "/rɪˈpɔːrt/", + "forms": { + "verb": [ + "reports (第三人称单数)", + "reporting (现在分词)", + "reported (过去式/过去分词)" + ], + "plural": "reports (复数)" + }, + "example": { + "en": "Please report progress with the volume correction feature.", + "cn": "请报告体积校正功能的进展。" + } + }, + { + "id": 660, + "english": "reported", + "frequency": 43, + "category": "business_core", + "chinese": "报告的", + "phonetic": "/rɪˈpɔːtɪd/", + "forms": { + "past_participle": "reported (过去分词)", + "base_verb": "report (动词原形)", + "verb": [ + "reports (第三人称单数)", + "reporting (现在分词)", + "reported (过去式/过去分词)" + ] + }, + "example": { + "en": "The reported die placement is not accurate.", + "cn": "报告的芯片贴装位置不准确。" + } + }, + { + "id": 661, + "english": "request", + "frequency": 24, + "category": "business_core", + "chinese": "请求", + "phonetic": "/rɪˈkwest/", + "forms": { + "noun": "requests (复数)", + "plural": "requests (复数)" + }, + "example": { + "en": "I have a request for you.", + "cn": "我有一个请求给你。" + } + }, + { + "id": 662, + "english": "require", + "frequency": 22, + "category": "action_verbs", + "chinese": "需要", + "phonetic": "/rɪˈkwaɪə(r)/", + "forms": { + "verb": [ + "requires (第三人称单数)", + "requiring (现在分词)", + "required (过去式/过去分词)" + ] + }, + "example": { + "en": "The project requires a lot of effort.", + "cn": "这个项目需要付出很多努力。" + } + }, + { + "id": 663, + "english": "requirements", + "frequency": 90, + "category": "business_core", + "chinese": "要求", + "phonetic": "/rɪˈkwaɪərmənts/", + "forms": { + "singular": "requirement (单数)", + "verb": "require (动词)" + }, + "example": { + "en": "These are on the customer's requirements list.", + "cn": "这些在客户的需求清单上。" + } + }, + { + "id": 664, + "english": "resistance", + "frequency": 38, + "category": "business_core", + "chinese": "抗性", + "phonetic": "/rɪˈzɪstəns/", + "forms": { + "noun": "resistances (复数)", + "plural": "resistances (复数)" + }, + "example": { + "en": "The coating is for wear resistance.", + "cn": "涂层是为了耐磨。" + } + }, + { + "id": 665, + "english": "resistors", + "frequency": 27, + "category": "technical_core", + "chinese": "电阻器", + "phonetic": "/rɪˈzɪstəz/", + "forms": { + "singular": "resistor (单数)" + }, + "example": { + "en": "The 50Ohm series resistor was tested.", + "cn": "50欧姆串联电阻已经过测试。" + } + }, + { + "id": 666, + "english": "resolution", + "frequency": 1, + "category": "technical_core", + "chinese": "分辨率;解决方案;决议", + "phonetic": "/ˌrezəˈluːʃən/", + "forms": {}, + "example": { + "en": "We discussed and questioned system resolution.", + "cn": "我们讨论了系统分辨率,并对此提出了疑问。" + } + }, + { + "id": 667, + "english": "resources", + "frequency": 85, + "category": "business_core", + "chinese": "资源", + "phonetic": "/ˈriːsɔːrsɪz/", + "forms": { + "singular": "resource (单数)" + }, + "example": { + "en": "We need to make the best use of the available resources.", + "cn": "我们需要充分利用现有资源。" + } + }, + { + "id": 668, + "english": "respective", + "frequency": 25, + "category": "business_core", + "chinese": "各自的", + "phonetic": "/rɪˈspektɪv/", + "forms": {}, + "example": { + "en": "Add the data to the respective log files.", + "cn": "将数据添加到各自的日志文件中。" + } + }, + { + "id": 669, + "english": "responsible", + "frequency": 30, + "category": "business_core", + "chinese": "负责的", + "phonetic": "/rɪˈspɒnsəbl/", + "forms": {}, + "example": { + "en": "He is responsible for the software development.", + "cn": "他负责软件开发。" + } + }, + { + "id": 670, + "english": "reticle", + "frequency": 40, + "category": "technical_core", + "chinese": "标线片", + "phonetic": "/ˈretɪkl/", + "forms": { + "noun": "reticle (名词)", + "plural": "reticles (复数)" + }, + "example": { + "en": "What is the actual area of the dots on the reticle?", + "cn": "标线片上点的实际面积是多少?" + } + }, + { + "id": 671, + "english": "revert", + "frequency": 39, + "category": "business_core", + "chinese": "恢复", + "phonetic": "/rɪˈvɜːt/", + "forms": { + "verb": [ + "reverts (第三人称单数)", + "reverting (现在分词)", + "reverted (过去式/过去分词)" + ] + }, + "example": { + "en": "We will revert to the present configuration.", + "cn": "我们将恢复到目前的配置。" + } + }, + { + "id": 672, + "english": "review", + "frequency": 85, + "category": "business_core", + "chinese": "审查", + "phonetic": "/rɪˈvjuː/", + "forms": { + "verb": [ + "reviews (第三人称单数)", + "reviewing (现在分词)", + "reviewed (过去式/过去分词)" + ], + "plural": "reviews (复数)" + }, + "example": { + "en": "Please review the document before the meeting.", + "cn": "请在会议前审阅这份文件。" + } + }, + { + "id": 673, + "english": "rework", + "frequency": 60, + "category": "technical_operations", + "chinese": "返工", + "phonetic": "/ˈriːwɜːrk/", + "forms": { + "noun": "rework (名词)", + "verb": [ + "reworks (第三人称单数)", + "reworking (现在分词)", + "reworked (过去式/过去分词)" + ], + "plural": "reworks (复数)" + }, + "example": { + "en": "The parts will be shipped back for rework.", + "cn": "这些零件将被运回进行返工。" + } + }, + { + "id": 674, + "english": "reworked", + "frequency": 42, + "category": "business_core", + "chinese": "返工的", + "phonetic": "/ˌriːˈwɜːkt/", + "forms": { + "past_participle": "reworked (过去分词)", + "base_verb": "rework (动词原形)", + "verb": [ + "reworks (第三人称单数)", + "reworking (现在分词)", + "reworked (过去式/过去分词)" + ] + }, + "example": { + "en": "The reworked parts were installed.", + "cn": "返工的零件已经安装好了。" + } + }, + { + "id": 675, + "english": "reworking", + "frequency": 21, + "category": "business_core", + "chinese": "返工", + "phonetic": "/ˌriːˈwɜːkɪŋ/", + "forms": { + "present_participle": "reworking (现在分词)", + "base_verb": "rework (动词原形)", + "verb": [ + "reworks (第三人称单数)", + "reworking (现在分词)", + "reworked (过去式/过去分词)" + ] + }, + "example": { + "en": "Try reworking the chuck with the laser.", + "cn": "尝试用激光返工卡盘。" + } + }, + { + "id": 676, + "english": "ring", + "frequency": 31, + "category": "business_core", + "chinese": "环", + "phonetic": "/rɪŋ/", + "forms": { + "noun": "ring (名词)", + "plural": "rings (复数)", + "verb": [ + "rings (第三人称单数)", + "ringing (现在分词)", + "rang (过去式)", + "rung (过去分词)" + ] + }, + "example": { + "en": "The light source is a ring light.", + "cn": "光源是环形灯。" + } + }, + { + "id": 677, + "english": "risk", + "frequency": 85, + "category": "business_core", + "chinese": "风险", + "phonetic": "/rɪsk/", + "forms": { + "plural": "risks (复数)" + }, + "example": { + "en": "There is a risk of data loss.", + "cn": "存在数据丢失的风险。" + } + }, + { + "id": 678, + "english": "roadmap", + "frequency": 65, + "category": "time_planning", + "chinese": "路线图", + "phonetic": "/ˈroʊdmæp/", + "forms": { + "plural": "roadmaps (复数)" + }, + "example": { + "en": "These are the roadmap items for the future.", + "cn": "这些是未来的路线图项目。" + } + }, + { + "id": 679, + "english": "robust", + "frequency": 70, + "category": "business_core", + "chinese": "稳健的", + "phonetic": "/roʊˈbʌst/", + "forms": { + "adjective": "robust (形容词)", + "derivatives": [ + "robustness(稳健性)" + ] + }, + "example": { + "en": "This can make the system more robust.", + "cn": "这可以使系统更加稳健。" + } + }, + { + "id": 680, + "english": "rotated", + "frequency": 43, + "category": "business_core", + "chinese": "旋转的", + "phonetic": "/rəʊˈteɪtɪd/", + "forms": { + "past_participle": "rotated (过去分词)", + "base_verb": "rotate (动词原形)", + "verb": [ + "rotates (第三人称单数)", + "rotating (现在分词)", + "rotated (过去式/过去分词)" + ] + }, + "example": { + "en": "Test the rotated position sensor.", + "cn": "测试旋转后的位置传感器。" + } + }, + { + "id": 681, + "english": "roughness", + "frequency": 29, + "category": "technical_core", + "chinese": "粗糙度", + "phonetic": "/ˈrʌfnəs/", + "forms": {}, + "example": { + "en": "Measure the surface roughness.", + "cn": "测量表面粗糙度。" + } + }, + { + "id": 682, + "english": "run", + "frequency": 1, + "category": "technical_operations", + "chinese": "运行", + "phonetic": "/rʌn/", + "forms": {}, + "example": { + "en": "If you are having robustness and accuracy issues, it is best to ask the field to collect lots of images (with different light levels) and then have Eddy run some study offline to optimize the vision teach.", + "cn": "如果遇到鲁棒性和精度问题,最好让现场采集大量不同光照级别的图像,然后由 Eddy 离线开展研究,以优化视觉示教。" + } + }, + { + "id": 683, + "english": "runtime", + "frequency": 3, + "category": "technical_operations", + "chinese": "运行时", + "phonetic": "/ˈrʌntaɪm/", + "forms": {}, + "example": { + "en": "At runtime the bonder would use that to compensate for its measurement.", + "cn": "运行时,焊线机会使用该偏差对测量结果进行补偿。" + } + }, + { + "id": 684, + "english": "save", + "frequency": 1, + "category": "action_verbs", + "chinese": "保存;节省", + "phonetic": "/seɪv/", + "forms": {}, + "example": { + "en": "For ease of use by developers, it could be worthwhile to save a pair of images with metadata (one raw and one preprocessed).", + "cn": "为方便开发人员使用,值得保存一对带元数据的图像(一张原始图像和一张预处理图像)。" + } + }, + { + "id": 685, + "english": "scale", + "frequency": 34, + "category": "business_core", + "chinese": "刻度;规模", + "phonetic": "/skeɪl/", + "forms": { + "noun": "scales (复数)", + "plural": "scales (复数)" + }, + "example": { + "en": "The encoder scale might be dirty.", + "cn": "编码器刻度可能脏了。" + } + }, + { + "id": 686, + "english": "scope", + "frequency": 3, + "category": "business_core", + "chinese": "显微镜;范围", + "phonetic": "/skəʊp/", + "forms": {}, + "example": { + "en": "In order for the ball measurement to be very close to the actual ball size that got measured in the scope room, we have a ball size correction step during teach where we have the operator dial in the average ball size (measured on the scope) for the bonder measured balls, and the vision system would then remember the offset between the scope measurement and bonder measurement.", + "cn": "为了使焊球测量值尽可能接近显微镜室测得的实际焊球尺寸,我们在示教过程中设置了焊球尺寸校正步骤:由操作员输入显微镜测得的平均焊球尺寸,用于校正焊线机测得的焊球;随后视觉系统会记住显微镜测量值与焊线机测量值之间的偏差。" + } + }, + { + "id": 687, + "english": "screen", + "frequency": 4, + "category": "high_frequency", + "chinese": "屏幕", + "phonetic": "/skriːn/", + "forms": { + "derivatives": [ + "screening(筛选)" + ] + }, + "example": { + "en": "I wonder if it is a customer preference to see a binary image on the screen.", + "cn": "我想知道,在屏幕上查看二值图像是否是客户的偏好。" + } + }, + { + "id": 688, + "english": "screws", + "frequency": 30, + "category": "business_core", + "chinese": "螺丝", + "phonetic": "/skruːz/", + "forms": { + "singular": "screw (单数)", + "verb": [ + "screws (第三人称单数)", + "screwing (现在分词)", + "screwed (过去式/过去分词)" + ] + }, + "example": { + "en": "Make sure all screws are tight.", + "cn": "确保所有螺丝都已拧紧。" + } + }, + { + "id": 689, + "english": "script", + "frequency": 75, + "category": "technical_core", + "chinese": "脚本", + "phonetic": "/skrɪpt/", + "forms": { + "plural": "scripts (复数)", + "verb": [ + "scripts (第三人称单数)", + "scripting (现在分词)", + "scripted (过去式/过去分词)" + ] + }, + "example": { + "en": "Is it possible to create a script for this task?", + "cn": "是否可以为此任务创建一个脚本?" + } + }, + { + "id": 690, + "english": "search", + "frequency": 20, + "category": "action_verbs", + "chinese": "搜索", + "phonetic": "/sɜːrtʃ/", + "forms": { + "verb": [ + "searches (第三人称单数)", + "searching (现在分词)", + "searched (过去式/过去分词)" + ], + "plural": "searches (复数)" + }, + "example": { + "en": "Thanks for helping to search for it.", + "cn": "感谢帮助寻找它。" + } + }, + { + "id": 691, + "english": "see", + "frequency": 13, + "category": "action_verbs", + "chinese": "看见;明白;发现", + "phonetic": "/siː/", + "forms": { + "verb": "seen (过去分词)" + }, + "example": { + "en": "In general, I see that we always set the light very bright.", + "cn": "总体而言,我发现我们总是把光照设置得非常亮。" + } + }, + { + "id": 692, + "english": "seem", + "frequency": 3, + "category": "high_frequency", + "chinese": "似乎;好像", + "phonetic": "/siːm/", + "forms": { + "verb": "seemed (过去式/过去分词)" + }, + "example": { + "en": "At Yangjie this is less or not of an issue, as they seem not to look at this detail level.", + "cn": "在扬杰,这个问题较轻微甚至不构成问题,因为他们似乎不会关注到如此细的层级。" + } + }, + { + "id": 693, + "english": "seems", + "frequency": 22, + "category": "high_frequency", + "chinese": "似乎", + "phonetic": "/siːmz/", + "forms": { + "verb": "seem的第三人称单数形式" + }, + "example": { + "en": "It seems that the chuck was found.", + "cn": "夹具似乎被找到了。" + } + }, + { + "id": 694, + "english": "select", + "frequency": 1, + "category": "action_verbs", + "chinese": "选择", + "phonetic": "/sɪˈlekt/", + "forms": {}, + "example": { + "en": "On the Wedge bonder, there is a mode to select using gray level or binary operation.", + "cn": "楔焊机上有一种模式,可选择使用灰度处理或二值化操作。" + } + }, + { + "id": 695, + "english": "send", + "frequency": 5, + "category": "action_verbs", + "chinese": "发送", + "phonetic": "/send/", + "forms": { + "verb": "sent" + }, + "example": { + "en": "If you have please send any recommendations for the review meeting in Suzhou on Monday 2pm.", + "cn": "如有任何建议,请发给我,供周一下午 2 点在苏州举行的评审会议使用。" + } + }, + { + "id": 696, + "english": "sense", + "frequency": 122, + "category": "technical_core", + "chinese": "感觉;感知", + "phonetic": "/sens/", + "forms": { + "derivatives": [ + "sensitive(敏感的)", + "sensitivity(灵敏度)", + "sensor(传感器)" + ] + }, + "example": { + "en": "The sensor can sense small changes.", + "cn": "传感器可以感知微小变化。" + } + }, + { + "id": 697, + "english": "sensors", + "frequency": 73, + "category": "technical_core", + "chinese": "传感器", + "phonetic": "/ˈsensəz/", + "forms": { + "singular": "sensor (单数)" + }, + "example": { + "en": "We will use pressure sensors for the process chucks.", + "cn": "我们将为工艺卡盘使用压力传感器。" + } + }, + { + "id": 698, + "english": "separate", + "frequency": 75, + "category": "action_verbs", + "chinese": "分开的", + "phonetic": "/ˈsepərət/", + "forms": {}, + "example": { + "en": "Put the images in separate folders.", + "cn": "将图像放在不同的文件夹中。" + } + }, + { + "id": 699, + "english": "separately", + "frequency": 47, + "category": "action_verbs", + "chinese": "分别地", + "phonetic": "/ˈseprətli/", + "forms": { + "adverb": "separately (副词)", + "base_adjective": "separate (形容词原形)", + "adjective": "separate (形容词)" + }, + "example": { + "en": "I will contact you separately.", + "cn": "我会单独联系你。" + } + }, + { + "id": 700, + "english": "sequence", + "frequency": 1, + "category": "high_frequency", + "chinese": "序列;顺序", + "phonetic": "/ˈsiːkwəns/", + "forms": {}, + "example": { + "en": "This can be shown with a sequence of screen shots, maybe better with a video that shows the screen while the operator does the setup / teaching.", + "cn": "可以用一系列屏幕截图来展示;如果录制操作员进行设置/示教时的屏幕视频,效果可能更好。" + } + }, + { + "id": 701, + "english": "serious", + "frequency": 80, + "category": "high_frequency", + "chinese": "严重的", + "phonetic": "/ˈsɪriəs/", + "forms": { + "adjective": "serious (形容词)" + }, + "example": { + "en": "We have a serious problem at Yangjie.", + "cn": "我们在扬杰遇到了一个严重的问题。" + } + }, + { + "id": 702, + "english": "session", + "frequency": 70, + "category": "business_core", + "chinese": "会议;会话", + "phonetic": "/ˈseʃn/", + "forms": { + "plural": "sessions (复数)" + }, + "example": { + "en": "I would like to set a remote session.", + "cn": "我想安排一个远程会议。" + } + }, + { + "id": 703, + "english": "set", + "frequency": 9, + "category": "action_verbs", + "chinese": "设置;设定", + "phonetic": "/set/", + "forms": { + "verb": "sets (第三人称单数)", + "derivatives": [ + "setting(设置)" + ] + }, + "example": { + "en": "Hi Zhijie,\n\nI would like to ask for your feedback / comments on some of the questions I have to how the Avaline FAEs set up the vision.", + "cn": "志杰,你好:\n\n关于 Avaline 现场应用工程师如何设置视觉系统,我有一些问题,希望听取你的反馈和意见。" + } + }, + { + "id": 704, + "english": "setback", + "frequency": 9, + "category": "business_core", + "chinese": "挫折", + "phonetic": "/ˈsetbæk/", + "forms": { + "noun": "setbacks (复数)", + "plural": "setbacks (复数)" + }, + "example": { + "en": "This is a huge setback for the demo preparation.", + "cn": "这对演示准备工作来说是一个巨大的挫折。" + } + }, + { + "id": 705, + "english": "settings", + "frequency": 33, + "category": "technical_core", + "chinese": "设置", + "phonetic": "/ˈsetɪŋz/", + "forms": { + "singular": "setting (单数)" + }, + "example": { + "en": "Please check the camera settings.", + "cn": "请检查相机设置。" + } + }, + { + "id": 706, + "english": "setup", + "frequency": 80, + "category": "technical_operations", + "chinese": "设置", + "phonetic": "/ˈsetʌp/", + "forms": { + "plural": "setups (复数)" + }, + "example": { + "en": "This is the production setup.", + "cn": "这是生产设置。" + } + }, + { + "id": 707, + "english": "severe", + "frequency": 70, + "category": "high_frequency", + "chinese": "严重的", + "phonetic": "/sɪˈvɪr/", + "forms": { + "adjective": "severe (形容词)" + }, + "example": { + "en": "We have severe difficulties with the die placement inspection.", + "cn": "我们在芯片放置检查方面遇到了严重的困难。" + } + }, + { + "id": 708, + "english": "share", + "frequency": 1, + "category": "action_verbs", + "chinese": "分享", + "phonetic": "/ʃeər/", + "forms": {}, + "example": { + "en": "Engineers share their findings after the review.", + "cn": "工程师在审查后分享他们的发现。" + } + }, + { + "id": 709, + "english": "sharpen", + "frequency": 1, + "category": "high_frequency", + "chinese": "锐化;增强", + "phonetic": "/ˈʃɑːpən/", + "forms": {}, + "example": { + "en": "This is used to sharpen the appearance of edges to make edge detection for a geometry-based fiducial algorithm work more robustly.", + "cn": "该处理用于增强边缘外观,使基于几何特征的基准标记算法能够更稳健地进行边缘检测。" + } + }, + { + "id": 710, + "english": "shift", + "frequency": 2, + "category": "high_frequency", + "chinese": "移动;偏移", + "phonetic": "/ʃɪft/", + "forms": { + "verb": "shifting (现在分词)" + }, + "example": { + "en": "So maybe a good test is to capture the slot locations in one image, then move the camera by an (encoder) controlled distance and capture the same slot locations again and see whether the distances in between the slots changed with the shift of the lead frame in the FoV (by shifting the camera by a distance controlled on the 1m level).", + "cn": "因此,一个不错的测试方法或许是:先在一幅图像中获取槽孔位置,然后让相机移动一段由编码器控制的距离,再次获取相同槽孔的位置,检查槽孔间距是否会随着引线框架在视野中的偏移而变化(相机移动距离控制在 1 微米量级)。" + } + }, + { + "id": 711, + "english": "shipment", + "frequency": 65, + "category": "business_core", + "chinese": "装运", + "phonetic": "/ˈʃɪpmənt/", + "forms": { + "noun": "shipment (名词)", + "plural": "shipments (复数)" + }, + "example": { + "en": "We can arrange the shipment.", + "cn": "我们可以安排装运。" + } + }, + { + "id": 712, + "english": "shipped", + "frequency": 16, + "category": "business_core", + "chinese": "运送", + "phonetic": "/ʃɪpt/", + "forms": { + "verb": "ship的过去式/过去分词" + }, + "example": { + "en": "The goods were shipped yesterday.", + "cn": "货物昨天已经运送出去了。" + } + }, + { + "id": 713, + "english": "short", + "frequency": 1, + "category": "high_frequency", + "chinese": "短的;短缺的", + "phonetic": "/ʃɔːt/", + "forms": {}, + "example": { + "en": "Any improvement(s) we could apply there from your review and hopefully suggestions, if feasible on such short notice, would be very helpful.", + "cn": "如果能根据您的评审和建议对其进行任何改进,并且在如此仓促的情况下仍可实施,那将非常有帮助。" + } + }, + { + "id": 714, + "english": "shorten", + "frequency": 70, + "category": "business_core", + "chinese": "缩短", + "phonetic": "/ˈʃɔːrtn/", + "forms": { + "verb": [ + "shortens (第三人称单数)", + "shortening (现在分词)", + "shortened (过去式/过去分词)" + ] + }, + "example": { + "en": "Please work to shorten the lead time.", + "cn": "请努力缩短交货时间。" + } + }, + { + "id": 715, + "english": "show", + "frequency": 13, + "category": "action_verbs", + "chinese": "显示;展示", + "phonetic": "/ʃəʊ/", + "forms": { + "verb": [ + "shows (第三人称单数)", + "showing (现在分词)", + "showed (过去式)", + "shown (过去分词)" + ] + }, + "example": { + "en": "Jianfei can show this application on the bonder (we have bonded frames and can install the old chucks).", + "cn": "建飞可以在焊接机上演示此应用(我们有已完成键合的框架,也可以安装旧夹具)。" + } + }, + { + "id": 716, + "english": "side", + "frequency": 65, + "category": "high_frequency", + "chinese": "侧面", + "phonetic": "/saɪd/", + "forms": { + "noun": "sides (复数)", + "adjective": "侧面的,次要的", + "plural": "sides (复数)" + }, + "example": { + "en": "Please look at the problem from the other side.", + "cn": "请从另一面看待这个问题。" + } + }, + { + "id": 717, + "english": "significant", + "frequency": 42, + "category": "business_core", + "chinese": "显著的;重要的", + "phonetic": "/sɪɡˈnɪfɪkənt/", + "forms": {}, + "example": { + "en": "This is a significant improvement.", + "cn": "这是一个显著的改进。" + } + }, + { + "id": 718, + "english": "significantly", + "frequency": 31, + "category": "business_core", + "chinese": "显著地", + "phonetic": "/sɪɡˈnɪfɪkəntli/", + "forms": { + "adverb": "significantly (副词)", + "base_adjective": "significant (形容词原形)", + "adjective": "significant (形容词)" + }, + "example": { + "en": "The new process significantly improved the quality.", + "cn": "新工艺显著提高了质量。" + } + }, + { + "id": 719, + "english": "similarly", + "frequency": 85, + "category": "high_frequency", + "chinese": "类似地", + "phonetic": "/ˈsɪmələrli/", + "forms": { + "adverb": "similarly (副词)", + "adjective": "similar (形容词)" + }, + "example": { + "en": "The two problems are similarly difficult.", + "cn": "这两个问题同样困难。" + } + }, + { + "id": 720, + "english": "situation", + "frequency": 1, + "category": "high_frequency", + "chinese": "情况;局面", + "phonetic": "/ˌsɪtʃuˈeɪʃən/", + "forms": {}, + "example": { + "en": "At Rohm the situation is different.", + "cn": "罗姆现场的情况有所不同。" + } + }, + { + "id": 721, + "english": "size", + "frequency": 4, + "category": "high_frequency", + "chinese": "尺寸;大小", + "phonetic": "/saɪz/", + "forms": {}, + "example": { + "en": "Did we measure the same feature repeatedly and get 1.6 um at 1sigma with 14um pixel size?", + "cn": "我们是否对同一特征进行了重复测量,并在像素尺寸为 14 μm 时得到 1σ 为 1.6 μm 的结果?" + } + }, + { + "id": 722, + "english": "slide", + "frequency": 32, + "category": "business_core", + "chinese": "幻灯片", + "phonetic": "/slaɪd/", + "forms": { + "noun": "slides (复数)", + "plural": "slides (复数)" + }, + "example": { + "en": "Please move to the next slide.", + "cn": "请翻到下一张幻灯片。" + } + }, + { + "id": 723, + "english": "slot", + "frequency": 18, + "category": "technical_core", + "chinese": "槽;狭缝", + "phonetic": "/slɒt/", + "forms": { + "noun": "slots (复数)" + }, + "example": { + "en": "I believe at least for the fiducial on the lead frame we will in most cases always look at a slot.", + "cn": "我认为,至少对于引线框架上的基准标记,大多数情况下我们查看的都会是一个槽口。" + } + }, + { + "id": 724, + "english": "smooth", + "frequency": 27, + "category": "business_core", + "chinese": "顺利的", + "phonetic": "/smuːð/", + "forms": {}, + "example": { + "en": "This will enable a smooth installation.", + "cn": "这将使安装顺利进行。" + } + }, + { + "id": 725, + "english": "software", + "frequency": 29, + "category": "business_core", + "chinese": "软件", + "phonetic": "/ˈsɒftweə(r)/", + "forms": {}, + "example": { + "en": "We need to install the new software.", + "cn": "我们需要安装新软件。" + } + }, + { + "id": 726, + "english": "solder", + "frequency": 43, + "category": "business_core", + "chinese": "焊料", + "phonetic": "/ˈsəʊldə(r)/", + "forms": { + "noun": "solders (复数)", + "plural": "solders (复数)" + }, + "example": { + "en": "Apply solder to the pad.", + "cn": "将焊料涂在焊盘上。" + } + }, + { + "id": 727, + "english": "solidly", + "frequency": 45, + "category": "technical_operations", + "chinese": "可靠地", + "phonetic": "/ˈsɑːlɪdli/", + "forms": { + "adverb": "solidly (副词)", + "adjective": "solid (形容词)" + }, + "example": { + "en": "We need to solidly measure the die placement.", + "cn": "我们需要可靠地测量芯片位置。" + } + }, + { + "id": 728, + "english": "solution", + "frequency": 30, + "category": "business_core", + "chinese": "解决方案", + "phonetic": "/səˈluːʃn/", + "forms": { + "noun": "solutions (复数)", + "plural": "solutions (复数)" + }, + "example": { + "en": "We are looking for a better solution.", + "cn": "我们正在寻找一个更好的解决方案。" + } + }, + { + "id": 729, + "english": "somehow", + "frequency": 48, + "category": "business_core", + "chinese": "不知何故", + "phonetic": "/ˈsʌmhaʊ/", + "forms": {}, + "example": { + "en": "We'll get there somehow.", + "cn": "我们总会有办法到那里的。" + } + }, + { + "id": 730, + "english": "soon", + "frequency": 1, + "category": "time_planning", + "chinese": "很快", + "phonetic": "/suːn/", + "forms": {}, + "example": { + "en": "I’m looking forward to seeing that changed as soon as possible.", + "cn": "我期待看到此项尽快得到更改。" + } + }, + { + "id": 731, + "english": "soonest", + "frequency": 70, + "category": "time_planning", + "chinese": "尽快", + "phonetic": "/ˈsuːnɪst/", + "forms": {}, + "example": { + "en": "Please send the test results at your soonest convenience.", + "cn": "请尽早发送测试结果。" + } + }, + { + "id": 732, + "english": "source", + "frequency": 70, + "category": "business_core", + "chinese": "来源", + "phonetic": "/sɔːrs/", + "forms": { + "plural": "sources (复数)" + }, + "example": { + "en": "We can implement parts from an alternate source.", + "cn": "我们可以采用来自替代来源的零件。" + } + }, + { + "id": 733, + "english": "spares", + "frequency": 26, + "category": "business_core", + "chinese": "备件", + "phonetic": "/speəz/", + "forms": { + "singular": "spare (单数)", + "verb": [ + "spars (第三人称单数)", + "sparing (现在分词)", + "spared (过去式/过去分词)" + ] + }, + "example": { + "en": "We need spares in case of failures.", + "cn": "我们需要备件以防发生故障。" + } + }, + { + "id": 734, + "english": "specific", + "frequency": 85, + "category": "high_frequency", + "chinese": "具体的", + "phonetic": "/spəˈsɪfɪk/", + "forms": {}, + "example": { + "en": "Please be specific!", + "cn": "请说具体点!" + } + }, + { + "id": 735, + "english": "specifically", + "frequency": 41, + "category": "business_core", + "chinese": "具体地", + "phonetic": "/spəˈsɪfɪkli/", + "forms": { + "adverb": "specifically (副词)", + "base_adjective": "specific (形容词原形)", + "adjective": "specific (形容词)" + }, + "example": { + "en": "He will test the sensor specifically.", + "cn": "他将专门测试该传感器。" + } + }, + { + "id": 736, + "english": "specifications", + "frequency": 48, + "category": "business_core", + "chinese": "规格", + "phonetic": "/ˌspesɪfɪˈkeɪʃnz/", + "forms": { + "singular": "specification (单数)" + }, + "example": { + "en": "These are the customer's purchase specifications.", + "cn": "这些是客户的采购规格。" + } + }, + { + "id": 737, + "english": "square", + "frequency": 44, + "category": "business_core", + "chinese": "方形的", + "phonetic": "/skweə(r)/", + "forms": {}, + "example": { + "en": "It is not even square anymore.", + "cn": "它甚至不再是方形的了。" + } + }, + { + "id": 738, + "english": "stability", + "frequency": 1, + "category": "high_frequency", + "chinese": "稳定性", + "phonetic": "/stəˈbɪlɪti/", + "forms": {}, + "example": { + "en": "It is a measure of the machine's stability.", + "cn": "这是衡量机器稳定性的一个指标。" + } + }, + { + "id": 739, + "english": "stages", + "frequency": 75, + "category": "time_planning", + "chinese": "阶段", + "phonetic": "/steɪdʒɪz/", + "forms": { + "singular": "stage (单数)", + "verb": [ + "stags (第三人称单数)", + "staging (现在分词)", + "staged (过去式/过去分词)" + ] + }, + "example": { + "en": "Collect raw images for the different process stages.", + "cn": "为不同的工艺阶段收集原始图像。" + } + }, + { + "id": 740, + "english": "stand", + "frequency": 1, + "category": "high_frequency", + "chinese": "站立;成立;仍然有效;立场", + "phonetic": "/stænd/", + "forms": { + "derivatives": [ + "standard(标准)" + ] + }, + "example": { + "en": "But my recommendations still stand.", + "cn": "但我的建议仍然有效。" + } + }, + { + "id": 741, + "english": "stand-by", + "frequency": 31, + "category": "business_core", + "chinese": "待命", + "phonetic": "/ˈstænd baɪ/", + "forms": { + "noun": "stand-bys (复数)" + }, + "example": { + "en": "Please be on stand-by to review images.", + "cn": "请随时待命以审查图像。" + } + }, + { + "id": 742, + "english": "start", + "frequency": 100, + "category": "high_frequency", + "chinese": "开始", + "phonetic": "/stɑːrt/", + "forms": { + "verb": [ + "starts (第三人称单数)", + "starting (现在分词)", + "started (过去式/过去分词)" + ], + "plural": "starts (复数)" + }, + "example": { + "en": "I will start following up.", + "cn": "我将开始跟进。" + } + }, + { + "id": 743, + "english": "statement", + "frequency": 75, + "category": "communication", + "chinese": "陈述", + "phonetic": "/ˈsteɪtmənt/", + "forms": { + "plural": "statements (复数)" + }, + "example": { + "en": "How does that fit with your statement?", + "cn": "那如何与你的陈述相符?" + } + }, + { + "id": 744, + "english": "status", + "frequency": 22, + "category": "business_core", + "chinese": "状态", + "phonetic": "/ˈsteɪtəs/", + "forms": { + "noun": "statuses (复数)" + }, + "example": { + "en": "What is the status of the project?", + "cn": "项目状态如何?" + } + }, + { + "id": 745, + "english": "stdev", + "frequency": 50, + "category": "technical_core", + "chinese": "标准差", + "phonetic": "/ˈstændərd diːviˈeɪʃən/", + "forms": { + "noun": "stdev (缩写名词)", + "full_form": "standard deviation (完整形式)", + "plural": "stdevs (复数)" + }, + "example": { + "en": "Please provide the measured average and stdev.", + "cn": "请提供测量的平均值和标准差。" + } + }, + { + "id": 746, + "english": "step", + "frequency": 5, + "category": "time_planning", + "chinese": "步骤", + "phonetic": "/step/", + "forms": { + "noun": "steps (复数)" + }, + "example": { + "en": "Even just getting on the same page on what we actually do with the images would be a good step.", + "cn": "哪怕只是就我们实际如何处理图像达成共识,也是很好的第一步。" + } + }, + { + "id": 747, + "english": "store", + "frequency": 2, + "category": "high_frequency", + "chinese": "存储", + "phonetic": "/stɔːr/", + "forms": {}, + "example": { + "en": "Store the measurement data in the project database.", + "cn": "将测量数据存储在项目数据库中。" + } + }, + { + "id": 748, + "english": "strange", + "frequency": 1, + "category": "high_frequency", + "chinese": "奇怪的", + "phonetic": "/streɪndʒ/", + "forms": {}, + "example": { + "en": "That would be a rather strange but systematic distortion, with a modulation period of a few millimeters.", + "cn": "这会是一种相当奇怪但具有系统性的畸变,其调制周期为几毫米。" + } + }, + { + "id": 749, + "english": "strong", + "frequency": 46, + "category": "business_core", + "chinese": "强的", + "phonetic": "/strɒŋ/", + "forms": {}, + "example": { + "en": "We need a strong contrast.", + "cn": "我们需要强烈的对比度。" + } + }, + { + "id": 750, + "english": "struggle", + "frequency": 70, + "category": "action_verbs", + "chinese": "挣扎;努力", + "phonetic": "/ˈstrʌɡl/", + "forms": { + "verb": [ + "struggles (第三人称单数)", + "struggling (现在分词)", + "struggled (过去式/过去分词)" + ], + "noun": "struggle (名词)", + "plural": "struggles (复数)" + }, + "example": { + "en": "We continue to struggle with setting up the vision system.", + "cn": "我们在设置视觉系统方面仍然很吃力。" + } + }, + { + "id": 751, + "english": "struggled", + "frequency": 41, + "category": "business_core", + "chinese": "挣扎;奋斗", + "phonetic": "/ˈstrʌɡld/", + "forms": { + "verb": [ + "struggles (第三人称单数)", + "struggling (现在分词)", + "struggled (过去式/过去分词)" + ] + }, + "example": { + "en": "I struggled with the analyzer.", + "cn": "我使用那个分析器时遇到了困难。" + } + }, + { + "id": 752, + "english": "study", + "frequency": 1, + "category": "high_frequency", + "chinese": "研究;学习", + "phonetic": "/ˈstʌdi/", + "forms": {}, + "example": { + "en": "If you are having robustness and accuracy issues, it is best to ask the field to collect lots of images (with different light levels) and then have Eddy run some study offline to optimize the vision teach.", + "cn": "如果遇到鲁棒性和精度问题,最好让现场采集大量不同光照级别的图像,然后由 Eddy 离线开展研究,以优化视觉示教。" + } + }, + { + "id": 753, + "english": "substrate", + "frequency": 45, + "category": "business_core", + "chinese": "基板", + "phonetic": "/ˈsʌbstreɪt/", + "forms": { + "plural": "substrates (复数)" + }, + "example": { + "en": "The material is dispensed onto the substrate.", + "cn": "材料被点涂在基板上。" + } + }, + { + "id": 754, + "english": "success", + "frequency": 95, + "category": "business_core", + "chinese": "成功", + "phonetic": "/səkˈses/", + "forms": { + "noun": "success (名词)", + "verb": "succeed (动词)", + "adjective": "successful (形容词)" + }, + "example": { + "en": "This is critical for the success at Yangjie.", + "cn": "这对在扬杰的成功至关重要。" + } + }, + { + "id": 755, + "english": "sufficient", + "frequency": 75, + "category": "high_frequency", + "chinese": "足够的", + "phonetic": "/səˈfɪʃnt/", + "forms": {}, + "example": { + "en": "The light is not sufficient.", + "cn": "光线不足。" + } + }, + { + "id": 756, + "english": "suggestion", + "frequency": 34, + "category": "business_core", + "chinese": "建议", + "phonetic": "/səˈdʒestʃən/", + "forms": { + "noun": "suggestions (复数)", + "plural": "suggestions (复数)" + }, + "example": { + "en": "The only suggestion I have is to test the surfaces.", + "cn": "我唯一的建议是测试这些表面。" + } + }, + { + "id": 757, + "english": "suggestions", + "frequency": 32, + "category": "communication", + "chinese": "建议", + "phonetic": "/səˈdʒestʃənz/", + "forms": { + "singular": "suggestion (单数)" + }, + "example": { + "en": "Attached are the suggestions from Alex.", + "cn": "附件是亚历克斯的建议。" + } + }, + { + "id": 758, + "english": "summarize", + "frequency": 34, + "category": "business_core", + "chinese": "总结", + "phonetic": "/ˈsʌməraɪz/", + "forms": { + "verb": [ + "summarizes (第三人称单数)", + "summarizing (现在分词)", + "summarized (过去式/过去分词)" + ], + "derivatives": [ + "summary(摘要)" + ] + }, + "example": { + "en": "Can we summarize the present state?", + "cn": "我们能总结一下现状吗?" + } + }, + { + "id": 759, + "english": "summit", + "frequency": 3, + "category": "high_frequency", + "chinese": "峰会;高层会议", + "phonetic": "/ˈsʌmɪt/", + "forms": {}, + "example": { + "en": "Last night (US time) we had the summit and I heard Vlad asking a lot of good questions.", + "cn": "昨晚(美国时间)我们召开了专题会议,我听到 Vlad 提出了很多很好的问题。" + } + }, + { + "id": 760, + "english": "supplier", + "frequency": 14, + "category": "business_core", + "chinese": "供应商", + "phonetic": "/səˈplaɪər/", + "forms": { + "noun": "suppliers (复数)", + "plural": "suppliers (复数)" + }, + "example": { + "en": "We need to find a new supplier.", + "cn": "我们需要找一个新的供应商。" + } + }, + { + "id": 761, + "english": "support", + "frequency": 95, + "category": "business_core", + "chinese": "支持", + "phonetic": "/səˈpɔːrt/", + "forms": { + "verb": [ + "supports (第三人称单数)", + "supporting (现在分词)", + "supported (过去式/过去分词)" + ], + "noun": "support (名词)", + "plural": "supports (复数)" + }, + "example": { + "en": "We need to provide SECS/GEM support.", + "cn": "我们需要提供SECS/GEM支持。" + } + }, + { + "id": 762, + "english": "supported", + "frequency": 30, + "category": "action_verbs", + "chinese": "支持的", + "phonetic": "/səˈpɔːtɪd/", + "forms": { + "past_participle": "supported (过去分词)", + "base_verb": "support (动词原形)", + "verb": [ + "supports (第三人称单数)", + "supporting (现在分词)", + "supported (过去式/过去分词)" + ] + }, + "example": { + "en": "The proposal should be supported with data.", + "cn": "该提议应有数据支持。" + } + }, + { + "id": 763, + "english": "sure", + "frequency": 3, + "category": "high_frequency", + "chinese": "确定的;当然", + "phonetic": "/ʃʊər/", + "forms": {}, + "example": { + "en": "I also copied Eddy (not sure he will still be in Suzhou) and Li Yang, both may give you more insight / details how these images are processed, and Benson and CK for their information about this activity.", + "cn": "我也抄送了 Eddy(不确定他届时是否还在苏州)和 Li Yang;他们或许能进一步说明这些图像的处理方式并提供更多细节。我还抄送了 Benson 和 CK,让他们了解这项工作。" + } + }, + { + "id": 764, + "english": "surfaces", + "frequency": 21, + "category": "business_core", + "chinese": "表面", + "phonetic": "/ˈsɜːfɪsɪz/", + "forms": { + "singular": "surface (单数)", + "verb": [ + "surfacs (第三人称单数)", + "surfacing (现在分词)", + "surfaced (过去式/过去分词)" + ] + }, + "example": { + "en": "He created these surfaces with his laser.", + "cn": "他用他的激光创造了这些表面。" + } + }, + { + "id": 765, + "english": "suspect", + "frequency": 22, + "category": "business_core", + "chinese": "怀疑", + "phonetic": "/səˈspekt/", + "forms": { + "verb": [ + "suspects (第三人称单数)", + "suspecting (现在分词)", + "suspected (过去式/过去分词)" + ] + }, + "example": { + "en": "We suspect the bulk material is different.", + "cn": "我们怀疑原材料不同。" + } + }, + { + "id": 766, + "english": "synchronize", + "frequency": 70, + "category": "technical_operations", + "chinese": "同步", + "phonetic": "/ˈsɪŋkrənaɪz/", + "forms": { + "verb": [ + "synchronizes (第三人称单数)", + "synchronizing (现在分词)", + "synchronized (过去式/过去分词)" + ] + }, + "example": { + "en": "We need to synchronize with the availability of the parts.", + "cn": "我们需要与零件的可用性同步。" + } + }, + { + "id": 767, + "english": "synergies", + "frequency": 55, + "category": "business_core", + "chinese": "协同效应", + "phonetic": "/ˈsɪnərdʒiz/", + "forms": { + "singular": "synergy (单数)", + "noun": "synergies (复数名词)" + }, + "example": { + "en": "We then have synergies between the 2 vision modules.", + "cn": "这样我们两个视觉模块之间就有了协同效应。" + } + }, + { + "id": 768, + "english": "syringe", + "frequency": 55, + "category": "technical_core", + "chinese": "注射器", + "phonetic": "/sɪˈrɪndʒ/", + "forms": { + "noun": "syringe (名词)", + "plural": "syringes (复数)" + }, + "example": { + "en": "We need to complete the Syringe life time recording.", + "cn": "我们需要完成注射器寿命记录。" + } + }, + { + "id": 769, + "english": "system", + "frequency": 11, + "category": "high_frequency", + "chinese": "系统", + "phonetic": "/ˈsɪstəm/", + "forms": { + "noun": "systems (复数)", + "derivatives": [ + "systematic(系统性的)" + ] + }, + "example": { + "en": "It is likely that the parts which our machine produces are accurate, but our system reports bad data.", + "cn": "机器生产的零件很可能是准确的,但我们的系统报告了错误数据。" + } + }, + { + "id": 770, + "english": "table", + "frequency": 1, + "category": "high_frequency", + "chinese": "表格;桌子;工作台;平台", + "phonetic": "/ˈteɪbəl/", + "forms": {}, + "example": { + "en": "On a ball bonder, we measured the position of a lead frame corner while moving to various locations on a grid pattern across the field of view and compared the same measurement to our XY table map target which is glass with a very thin deposition of chrome fiducials.", + "cn": "在球焊机上,我们让引线框架的一个角点在整个视场内按网格图案移动到不同位置,并测量其位置;然后将这些测量结果与我们的 XY 工作台标定靶进行比较,该标定靶为玻璃材质,表面沉积有非常薄的铬制基准标记。" + } + }, + { + "id": 771, + "english": "target", + "frequency": 75, + "category": "business_core", + "chinese": "目标", + "phonetic": "/ˈtɑːrɡɪt/", + "forms": { + "noun": "target (名词)", + "verb": [ + "targets (第三人称单数)", + "targeting (现在分词)", + "targeted (过去式/过去分词)" + ], + "plural": "targets (复数)" + }, + "example": { + "en": "The measured value is within the target range.", + "cn": "测量值在目标范围内。" + } + }, + { + "id": 772, + "english": "targeting", + "frequency": 30, + "category": "business_core", + "chinese": "瞄准", + "phonetic": "/ˈtɑːɡɪtɪŋ/", + "forms": { + "present_participle": "targeting (现在分词)", + "base_verb": "target (动词原形)", + "verb": [ + "targets (第三人称单数)", + "targeting (现在分词)", + "targeted (过去式/过去分词)" + ] + }, + "example": { + "en": "DPA stands for targeting, before dispense.", + "cn": "DPA代表点胶前的瞄准。" + } + }, + { + "id": 773, + "english": "tasked", + "frequency": 30, + "category": "business_core", + "chinese": "分派任务", + "phonetic": "/tɑːskt/", + "forms": { + "verb": [ + "tasks (第三人称单数)", + "tasking (现在分词)", + "tasked (过去式/过去分词)" + ] + }, + "example": { + "en": "You tasked TengYang to make the chuck.", + "cn": "你委托腾阳制作卡盘。" + } + }, + { + "id": 774, + "english": "tasks", + "frequency": 95, + "category": "time_planning", + "chinese": "任务", + "phonetic": "/tæsks/", + "forms": { + "singular": "task (单数)", + "verb": [ + "tasks (第三人称单数)", + "tasking (现在分词)", + "tasked (过去式/过去分词)" + ] + }, + "example": { + "en": "All have tasks assigned in the Vision Backlog.", + "cn": "所有人都已在视觉待办清单(Vision Backlog)中被分配了任务。" + } + }, + { + "id": 775, + "english": "taught", + "frequency": 1, + "category": "technical_operations", + "chinese": "教;示教(teach 的过去式/过去分词)", + "phonetic": "/tɔːt/", + "forms": { + "verb": "taught (teach 的过去式/过去分词)" + }, + "example": { + "en": "1)\tShow how the vision is set up, a fiducial taught, the setup checked, on Avaline.", + "cn": "1)\t展示如何在 Avaline 上设置视觉系统、示教基准标记以及检查设置。" + } + }, + { + "id": 776, + "english": "teach", + "frequency": 12, + "category": "technical_operations", + "chinese": "示教;教导", + "phonetic": "/tiːtʃ/", + "forms": { + "verb": "teaching (现在分词)" + }, + "example": { + "en": "If you are having robustness and accuracy issues, it is best to ask the field to collect lots of images (with different light levels) and then have Eddy run some study offline to optimize the vision teach.", + "cn": "如果遇到稳健性和精度问题,最好让现场人员采集大量不同光照等级的图像,然后请 Eddy 离线开展研究,以优化视觉示教。" + } + }, + { + "id": 777, + "english": "technique", + "frequency": 3, + "category": "technical_core", + "chinese": "技术;工艺;方法", + "phonetic": "/tekˈniːk/", + "forms": { + "noun": "techniques (复数)" + }, + "example": { + "en": "As I said, the image-processing techniques used in the measurement are also very critical.", + "cn": "正如我所说,测量中使用的图像处理技术也非常关键。" + } + }, + { + "id": 778, + "english": "telecentric", + "frequency": 40, + "category": "technical_core", + "chinese": "远心", + "phonetic": "/ˌtelɪˈsentrɪk/", + "forms": { + "noun": "telecentrics (复数)" + }, + "example": { + "en": "A telecentric lens can reduce perspective errors.", + "cn": "远心镜头可以减少透视误差。" + } + }, + { + "id": 779, + "english": "temperature", + "frequency": 85, + "category": "technical_core", + "chinese": "温度", + "phonetic": "/ˈtemprətʃər/", + "forms": { + "plural": "temperatures (复数)" + }, + "example": { + "en": "There is a temperature control problem.", + "cn": "存在一个温度控制问题。" + } + }, + { + "id": 780, + "english": "template", + "frequency": 40, + "category": "technical_core", + "chinese": "模板", + "phonetic": "/ˈtempleɪt/", + "forms": { + "noun": "templates (复数)", + "plural": "templates (复数)" + }, + "example": { + "en": "We should create a template for the reports.", + "cn": "我们应该为报告创建一个模板。" + } + }, + { + "id": 781, + "english": "termination", + "frequency": 45, + "category": "technical_operations", + "chinese": "终止", + "phonetic": "/ˌtɜːrmɪˈneɪʃn/", + "forms": { + "plural": "terminations (复数)" + }, + "example": { + "en": "We need the termination of the line writing by moving back in X.", + "cn": "我们需要通过在X方向上后退来终止线状书写。" + } + }, + { + "id": 782, + "english": "test", + "frequency": 66, + "category": "action_verbs", + "chinese": "测试", + "phonetic": "/test/", + "forms": { + "verb": [ + "tests (第三人称单数)", + "testing (现在分词)", + "tested (过去式/过去分词)" + ], + "noun": "tests (复数)", + "plural": "tests (复数)" + }, + "example": { + "en": "We need to test the new software thoroughly.", + "cn": "我们需要彻底测试新软件。" + } + }, + { + "id": 783, + "english": "thin", + "frequency": 1, + "category": "high_frequency", + "chinese": "薄的", + "phonetic": "/θɪn/", + "forms": {}, + "example": { + "en": "On a ball bonder, we measured the position of a lead frame corner while moving to various locations on a grid pattern across the field of view and compared the same measurement to our XY table map target which is glass with a very thin deposition of chrome fiducials.", + "cn": "在球焊机上,我们让引线框架的一个角点在整个视场内按网格图案移动到不同位置,并测量其位置;然后将这些测量结果与我们的 XY 工作台标定靶进行比较,该标定靶为玻璃材质,表面沉积有非常薄的铬制基准标记。" + } + }, + { + "id": 784, + "english": "think", + "frequency": 6, + "category": "action_verbs", + "chinese": "认为;思考", + "phonetic": "/θɪŋk/", + "forms": { + "verb": "thought" + }, + "example": { + "en": "I think the machine is displaying the binary image, meaning the images were already processed.", + "cn": "我认为机器当前显示的是二值图像,这意味着这些图像已经经过处理。" + } + }, + { + "id": 785, + "english": "thoughts", + "frequency": 80, + "category": "communication", + "chinese": "想法", + "phonetic": "/θɔːts/", + "forms": { + "singular": "thought (单数)" + }, + "example": { + "en": "Please let me know your thoughts and ideas.", + "cn": "请告诉我您的想法和主意。" + } + }, + { + "id": 786, + "english": "threshold", + "frequency": 44, + "category": "business_core", + "chinese": "阈值", + "phonetic": "/ˈθreʃhəʊld/", + "forms": { + "noun": "thresholds (复数)", + "plural": "thresholds (复数)" + }, + "example": { + "en": "He has a high pain threshold.", + "cn": "他的痛阈很高。" + } + }, + { + "id": 787, + "english": "tie", + "frequency": 60, + "category": "action_verbs", + "chinese": "绑定", + "phonetic": "/taɪ/", + "forms": { + "verb": [ + "ties (第三人称单数)", + "tying (现在分词)", + "tied (过去式/过去分词)" + ], + "plural": "ties (复数)" + }, + "example": { + "en": "Is there no way to tie the left side of the search area to the edge of the lead?", + "cn": "有没有办法将搜索区域的左侧与引线的边缘绑定?" + } + }, + { + "id": 788, + "english": "tight", + "frequency": 20, + "category": "business_core", + "chinese": "紧的", + "phonetic": "/taɪt/", + "forms": {}, + "example": { + "en": "The screws are not tight enough.", + "cn": "螺丝不够紧。" + } + }, + { + "id": 789, + "english": "tilt", + "frequency": 48, + "category": "business_core", + "chinese": "倾斜", + "phonetic": "/tɪlt/", + "forms": { + "noun": "tilts (复数)", + "plural": "tilts (复数)" + }, + "example": { + "en": "Control the clamp tilt.", + "cn": "控制夹具的倾斜度。" + } + }, + { + "id": 790, + "english": "time", + "frequency": 23, + "category": "business_core", + "chinese": "时间", + "phonetic": "/taɪm/", + "forms": { + "noun": "times (复数)", + "plural": "times (复数)" + }, + "example": { + "en": "I don't have enough time for this.", + "cn": "我没有足够的时间来做这个。" + } + }, + { + "id": 791, + "english": "timeline", + "frequency": 70, + "category": "business_core", + "chinese": "时间表", + "phonetic": "/ˈtaɪmlaɪn/", + "forms": { + "plural": "timelines (复数)" + }, + "example": { + "en": "We need to meet the timeline.", + "cn": "我们需要赶上时间表。" + } + }, + { + "id": 792, + "english": "today", + "frequency": 6, + "category": "time_planning", + "chinese": "今天", + "phonetic": "/təˈdeɪ/", + "forms": {}, + "example": { + "en": "Please correct my description below if possible today Thursday 7/9, and add additional items to be checked, documented.", + "cn": "如有可能,请于今天(7 月 9 日,星期四)修正我下面的描述,并补充其他需要检查和记录的项目。" + } + }, + { + "id": 793, + "english": "tolerances", + "frequency": 26, + "category": "business_core", + "chinese": "公差", + "phonetic": "/ˈtɒlərənsɪz/", + "forms": { + "singular": "tolerance (单数)" + }, + "example": { + "en": "The 3D model does not have tolerances.", + "cn": "3D模型没有公差。" + } + }, + { + "id": 794, + "english": "tomorrow", + "frequency": 2, + "category": "time_planning", + "chinese": "明天", + "phonetic": "/təˈmɒrəʊ/", + "forms": {}, + "example": { + "en": "We will review the test results tomorrow.", + "cn": "我们明天将审查测试结果。" + } + }, + { + "id": 795, + "english": "tool", + "frequency": 85, + "category": "technical_operations", + "chinese": "工具", + "phonetic": "/tuːl/", + "forms": { + "plural": "tools (复数)" + }, + "example": { + "en": "You created a measurement tool.", + "cn": "你创建了一个测量工具。" + } + }, + { + "id": 796, + "english": "topic", + "frequency": 1, + "category": "business_core", + "chinese": "主题;话题", + "phonetic": "/ˈtɒpɪk/", + "forms": {}, + "example": { + "en": "Note that last night (US time) in the Avaline development review meeting it was decided to have a review meeting in Suzhou next Monday 2pm led by Benson, with Li Yang and CK, to further address this topic.", + "cn": "请注意,昨晚(美国时间)的 Avaline 开发评审会上决定,下周一下午 2 点在苏州召开一次由 Benson 主持、Li Yang 和 CK 参加的评审会,以进一步讨论此问题。" + } + }, + { + "id": 797, + "english": "topics", + "frequency": 47, + "category": "business_core", + "chinese": "主题;议题", + "phonetic": "/ˈtɒpɪks/", + "forms": { + "singular": "topic (单数)" + }, + "example": { + "en": "Please provide an update on the lighting topics.", + "cn": "请更新有关照明议题的进展。" + } + }, + { + "id": 798, + "english": "torqued", + "frequency": 39, + "category": "business_core", + "chinese": "上紧的", + "phonetic": "/tɔːkt/", + "forms": { + "past_participle": "torqued (过去分词)", + "base_verb": "torque (动词原形)", + "verb": [ + "torques (第三人称单数)", + "torquing (现在分词)", + "torqued (过去式/过去分词)" + ] + }, + "example": { + "en": "How do we make sure the screws are properly torqued?", + "cn": "我们如何确保螺丝被正确拧紧?" + } + }, + { + "id": 799, + "english": "touch", + "frequency": 45, + "category": "business_core", + "chinese": "触摸;涉及", + "phonetic": "/tʌtʃ/", + "forms": { + "verb": [ + "touches (第三人称单数)", + "touching (现在分词)", + "touched (过去式/过去分词)" + ], + "plural": "touches (复数)" + }, + "example": { + "en": "Do not touch it.", + "cn": "不要碰它。" + } + }, + { + "id": 800, + "english": "touch-down", + "frequency": 70, + "category": "business_core", + "chinese": "接触", + "phonetic": "/ˈtʌtʃ daʊn/", + "forms": { + "plural": "touch-downs (复数)" + }, + "example": { + "en": "We need to do careful touch-down tests.", + "cn": "我们需要进行仔细的接触测试。" + } + }, + { + "id": 801, + "english": "tracker", + "frequency": 55, + "category": "technical_core", + "chinese": "追踪器", + "phonetic": "/ˈtrækə(r)/", + "forms": { + "noun": "trackers (复数)", + "base_verb": "track (动词原形)", + "plural": "trackers (复数)" + }, + "example": { + "en": "We use a GPS tracker to monitor the location of our vehicles.", + "cn": "我们使用GPS追踪器来监控车辆的位置。" + } + }, + { + "id": 802, + "english": "tradeoff", + "frequency": 22, + "category": "business_core", + "chinese": "权衡", + "phonetic": "/ˈtreɪdɒf/", + "forms": { + "noun": "tradeoffs (复数)", + "plural": "tradeoffs (复数)" + }, + "example": { + "en": "There is a tradeoff between die and chuck appearance.", + "cn": "在芯片和卡盘外观之间需要权衡。" + } + }, + { + "id": 803, + "english": "transfer", + "frequency": 1, + "category": "technical_operations", + "chinese": "转移;传输", + "phonetic": "/trænsˈfɜːr/", + "forms": { + "noun": "transfers (复数)" + }, + "example": { + "en": "These are the images we upload for each clip transfer inspection.", + "cn": "这些是我们为每次夹片转移检查上传的图像。" + } + }, + { + "id": 804, + "english": "translate", + "frequency": 50, + "category": "communication", + "chinese": "翻译", + "phonetic": "/trænsˈleɪt/", + "forms": { + "verb": [ + "translates (第三人称单数)", + "translating (现在分词)", + "translated (过去式/过去分词)" + ], + "derivatives": [ + "translation(翻译)" + ] + }, + "example": { + "en": "You will be needed to translate.", + "cn": "将需要你来进行翻译。" + } + }, + { + "id": 805, + "english": "tremendously", + "frequency": 45, + "category": "business_core", + "chinese": "极大地;非常", + "phonetic": "/trəˈmendəsli/", + "forms": { + "adverb": "tremendously (副词)", + "base_adjective": "tremendous (形容词原形)", + "adjective": "tremendous (形容词)" + }, + "example": { + "en": "The team has worked tremendously hard.", + "cn": "团队工作非常努力。" + } + }, + { + "id": 806, + "english": "trigger", + "frequency": 24, + "category": "action_verbs", + "chinese": "触发", + "phonetic": "/ˈtrɪɡə(r)/", + "forms": { + "verb": [ + "triggers (第三人称单数)", + "triggering (现在分词)", + "triggered (过去式/过去分词)" + ], + "plural": "triggers (复数)" + }, + "example": { + "en": "That is what I want to trigger here.", + "cn": "这就是我想在这里触发的。" + } + }, + { + "id": 807, + "english": "try", + "frequency": 2, + "category": "action_verbs", + "chinese": "尝试", + "phonetic": "/traɪ/", + "forms": {}, + "example": { + "en": "We will try to understand where the software places the crosshair.", + "cn": "我们将尝试弄清软件把十字准星放在哪里。" + } + }, + { + "id": 808, + "english": "turnaround", + "frequency": 30, + "category": "time_planning", + "chinese": "周转", + "phonetic": "/ˈtɜːnəraʊnd/", + "forms": { + "noun": "turnarounds (复数)", + "plural": "turnarounds (复数)" + }, + "example": { + "en": "We will have a daily meeting on the Yangjie turnaround.", + "cn": "我们将就扬杰的周转问题举行每日会议。" + } + }, + { + "id": 809, + "english": "type", + "frequency": 2, + "category": "high_frequency", + "chinese": "类型", + "phonetic": "/taɪp/", + "forms": {}, + "example": { + "en": "Below is the email which I had sent 2 weeks ago with some of the questions which you asked me again 2 days ago (type of images, …).", + "cn": "下面是我两周前发送的邮件,其中包含你两天前再次问我的一些问题(图像类型等)。" + } + }, + { + "id": 810, + "english": "typical", + "frequency": 48, + "category": "business_core", + "chinese": "典型的", + "phonetic": "/ˈtɪpɪkl/", + "forms": {}, + "example": { + "en": "We want to see a typical curve.", + "cn": "我们想看一个典型的曲线。" + } + }, + { + "id": 811, + "english": "unacceptable", + "frequency": 70, + "category": "business_core", + "chinese": "不可接受的", + "phonetic": "/ˌʌnəkˈseptəbl/", + "forms": {}, + "example": { + "en": "This lead time is completely unacceptable.", + "cn": "这个交货时间是完全不可接受的。" + } + }, + { + "id": 812, + "english": "understand", + "frequency": 95, + "category": "high_frequency", + "chinese": "理解", + "phonetic": "/ˌʌndərˈstænd/", + "forms": { + "verb": [ + "understands (第三人称单数)", + "understanding (现在分词)", + "understood (过去式/过去分词)" + ] + }, + "example": { + "en": "I don't understand most of your points.", + "cn": "我不太明白你的大部分观点。" + } + }, + { + "id": 813, + "english": "unfortunately", + "frequency": 80, + "category": "high_frequency", + "chinese": "不幸地", + "phonetic": "/ʌnˈfɔːrtʃənətli/", + "forms": { + "adverb": "unfortunately (副词)", + "adjective": "unfortunate (形容词)" + }, + "example": { + "en": "Unfortunately, last week we did not make the planned progress.", + "cn": "不幸的是,上周我们没有取得计划中的进展。" + } + }, + { + "id": 814, + "english": "uniform", + "frequency": 1, + "category": "high_frequency", + "chinese": "均匀的;一致的", + "phonetic": "/ˈjuːnɪfɔːm/", + "forms": { + "derivatives": [ + "uniformity(均匀性)" + ] + }, + "example": { + "en": "-\tCompare the found position of a leadframe’s fiducial across the field of view (move the fiducial to a grid of locations) to a glass calibration jig’s found position\n-\tIdeally using a glass jig, measure the lens distortion across the FOV (grid locations) to see if the magnification is uniform across the FoV.", + "cn": "-\t将引线框架基准标记在整个视场内各位置(把基准标记移动到网格中的各点)的检测位置,与玻璃标定治具的检测位置进行比较\n-\t最好使用玻璃治具测量整个视场(网格位置)的镜头畸变,以确认整个视场内的放大倍率是否均匀。" + } + }, + { + "id": 815, + "english": "unique", + "frequency": 2, + "category": "high_frequency", + "chinese": "独特的;唯一的", + "phonetic": "/juːˈniːk/", + "forms": {}, + "example": { + "en": "Each component has a unique serial number.", + "cn": "每个组件都有唯一的序列号。" + } + }, + { + "id": 816, + "english": "unprepared", + "frequency": 8, + "category": "high_frequency", + "chinese": "未准备好的", + "phonetic": "/ˌʌnprɪˈpeərd/", + "forms": { + "adjective": "unprepared (形容词)" + }, + "example": { + "en": "We will be more or less unprepared for the demo.", + "cn": "我们或多或少会对演示毫无准备。" + } + }, + { + "id": 817, + "english": "unusual", + "frequency": 1, + "category": "high_frequency", + "chinese": "不寻常的", + "phonetic": "/ʌnˈjuːʒuəl/", + "forms": {}, + "example": { + "en": "But instead we measured consistent but very unusual diagonal bands of higher error.", + "cn": "但我们测得的却是稳定出现、但非常异常的高误差对角条带。" + } + }, + { + "id": 818, + "english": "unzipped", + "frequency": 26, + "category": "business_core", + "chinese": "解压缩的", + "phonetic": "/ʌnˈzɪpt/", + "forms": { + "past_participle": "unzipped (过去分词)", + "base_verb": "unzip (动词原形)", + "verb": [ + "unzips (第三人称单数)", + "unzipping (现在分词)", + "unzipped (过去式/过去分词)" + ] + }, + "example": { + "en": "The files are in the unzipped folder.", + "cn": "文件在解压缩的文件夹中。" + } + }, + { + "id": 819, + "english": "upcoming", + "frequency": 26, + "category": "business_core", + "chinese": "即将到来的", + "phonetic": "/ˈʌpkʌmɪŋ/", + "forms": { + "adjective": "upcoming (形容词)" + }, + "example": { + "en": "This is for the upcoming upgrade.", + "cn": "这是为即将到来的升级。" + } + }, + { + "id": 820, + "english": "update", + "frequency": 95, + "category": "action_verbs", + "chinese": "更新", + "phonetic": "/ʌpˈdeɪt/", + "forms": { + "verb": [ + "updates (第三人称单数)", + "updating (现在分词)", + "updated (过去式/过去分词)" + ], + "plural": "updates (复数)" + }, + "example": { + "en": "Please update the inspection parameters before the next run.", + "cn": "请在下次运行前更新检测参数。" + } + }, + { + "id": 821, + "english": "upgrade", + "frequency": 45, + "category": "business_core", + "chinese": "升级", + "phonetic": "/ʌpˈɡreɪd/", + "forms": { + "noun": "upgrades (复数)", + "plural": "upgrades (复数)" + }, + "example": { + "en": "We need to order an upgrade kit.", + "cn": "我们需要订购一个升级套件。" + } + }, + { + "id": 822, + "english": "upgrades", + "frequency": 45, + "category": "technical_operations", + "chinese": "升级", + "phonetic": "/ʌpˈɡreɪdz/", + "forms": { + "singular": "upgrade (单数)", + "verb": [ + "upgrades (第三人称单数)", + "upgrading (现在分词)", + "upgraded (过去式/过去分词)" + ] + }, + "example": { + "en": "The next upgrades will include this fix.", + "cn": "下一次升级将包含此修复。" + } + }, + { + "id": 823, + "english": "upload", + "frequency": 2, + "category": "technical_operations", + "chinese": "上传", + "phonetic": "/ʌpˈləʊd/", + "forms": {}, + "example": { + "en": "These are the images we upload for each clip transfer inspection.", + "cn": "这些是我们为每次夹片转移检测上传的图像。" + } + }, + { + "id": 824, + "english": "urgent", + "frequency": 75, + "category": "business_core", + "chinese": "紧急的", + "phonetic": "/ˈɜːrdʒənt/", + "forms": { + "adjective": "urgent (形容词)", + "adverb": "urgently (副词)" + }, + "example": { + "en": "This is an urgent message.", + "cn": "这是一条紧急信息。" + } + }, + { + "id": 825, + "english": "use", + "frequency": 42, + "category": "high_frequency", + "chinese": "使用", + "phonetic": "/juːz/", + "forms": { + "verb": [ + "uses (第三人称单数)", + "using (现在分词)", + "used (过去式/过去分词)" + ], + "noun": "uses (复数)", + "plural": "uses (复数)", + "derivatives": [ + "usable(可用的)", + "user(用户)" + ] + }, + "example": { + "en": "We will continue its use if the test is successful.", + "cn": "如果测试成功,我们将继续使用它。" + } + }, + { + "id": 826, + "english": "utilize", + "frequency": 75, + "category": "action_verbs", + "chinese": "利用", + "phonetic": "/ˈjuːtəlaɪz/", + "forms": { + "verb": [ + "utilizes (第三人称单数)", + "utilizing (现在分词)", + "utilized (过去式/过去分词)" + ] + }, + "example": { + "en": "We need to better utilize Halcon.", + "cn": "我们需要更好地利用Halcon。" + } + }, + { + "id": 827, + "english": "vacuum", + "frequency": 24, + "category": "business_core", + "chinese": "真空", + "phonetic": "/ˈvækjuəm/", + "forms": { + "noun": "vacuums (复数)", + "plural": "vacuums (复数)" + }, + "example": { + "en": "The process requires a high vacuum environment.", + "cn": "该过程需要高真空环境。" + } + }, + { + "id": 828, + "english": "variables", + "frequency": 70, + "category": "technical_core", + "chinese": "变量", + "phonetic": "/ˈveriəblz/", + "forms": { + "singular": "variable (单数)" + }, + "example": { + "en": "The settings for the variables which you refer to.", + "cn": "你提到的那些变量的设置。" + } + }, + { + "id": 829, + "english": "variations", + "frequency": 75, + "category": "technical_core", + "chinese": "变化", + "phonetic": "/ˌveriˈeɪʃnz/", + "forms": { + "singular": "variation (单数)", + "noun": "variations (复数名词)", + "verb": "vary (动词)" + }, + "example": { + "en": "Did you see any image appearance variations?", + "cn": "你看到任何图像外观变化吗?" + } + }, + { + "id": 830, + "english": "varied", + "frequency": 34, + "category": "business_core", + "chinese": "变化的", + "phonetic": "/ˈveərid/", + "forms": { + "past_participle": "varied (过去分词)", + "base_verb": "vary (动词原形)", + "verb": [ + "varies (第三人称单数)", + "varying (现在分词)", + "varied (过去式/过去分词)" + ] + }, + "example": { + "en": "The results varied in the tests.", + "cn": "测试结果各不相同。" + } + }, + { + "id": 831, + "english": "vary", + "frequency": 2, + "category": "high_frequency", + "chinese": "变化", + "phonetic": "/ˈveəri/", + "forms": { + "verb": "varied (过去式/过去分词)", + "derivatives": [ + "variability(可变性)", + "variable(变量)", + "variation(变化)" + ] + }, + "example": { + "en": "Lighting may cause the apparent position of a lead frame edge to vary across the field of view.", + "cn": "照明可能会使引线框架边缘的表观位置在整个视野范围内发生变化。" + } + }, + { + "id": 832, + "english": "verify", + "frequency": 80, + "category": "technical_operations", + "chinese": "验证", + "phonetic": "/ˈverɪfaɪ/", + "forms": { + "verb": [ + "verifies (第三人称单数)", + "verifying (现在分词)", + "verified (过去式/过去分词)" + ], + "noun": "verification (名词)", + "derivatives": [ + "verification(验证)" + ] + }, + "example": { + "en": "We need to verify the proper function.", + "cn": "我们需要验证其功能是否正常。" + } + }, + { + "id": 833, + "english": "version", + "frequency": 70, + "category": "technical_core", + "chinese": "版本", + "phonetic": "/ˈvɜːrʒn/", + "forms": { + "plural": "versions (复数)" + }, + "example": { + "en": "This is the latest version of the software.", + "cn": "这是这个软件的最新版本。" + } + }, + { + "id": 834, + "english": "versus", + "frequency": 70, + "category": "high_frequency", + "chinese": "与...相比", + "phonetic": "/ˈvɜːrsəs/", + "forms": { + "preposition": "versus (介词)" + }, + "example": { + "en": "150mA versus the present at 350mA.", + "cn": "150毫安,而目前是350毫安。" + } + }, + { + "id": 835, + "english": "vibrations", + "frequency": 37, + "category": "business_core", + "chinese": "振动", + "phonetic": "/vaɪˈbreɪʃnz/", + "forms": { + "singular": "vibration (单数)" + }, + "example": { + "en": "The vibrations can loosen the screws.", + "cn": "振动会使螺丝松动。" + } + }, + { + "id": 836, + "english": "video", + "frequency": 6, + "category": "communication", + "chinese": "视频", + "phonetic": "/ˈvɪdiəʊ/", + "forms": {}, + "example": { + "en": "This can be shown with a sequence of screen shots, maybe better with a video that shows the screen while the operator does the setup / teaching.", + "cn": "可以通过一系列屏幕截图来展示;也许使用视频效果更好,视频可在操作员进行设置和示教时同步展示屏幕画面。" + } + }, + { + "id": 837, + "english": "view", + "frequency": 5, + "category": "high_frequency", + "chinese": "视图;视野;查看", + "phonetic": "/vjuː/", + "forms": {}, + "example": { + "en": "That said, we actually map the light intensity over the Field of View, if it is being done as part of FAT.", + "cn": "不过,如果光强映射属于 FAT 的一部分,我们实际上会对整个视野内的光强进行映射。" + } + }, + { + "id": 838, + "english": "visible", + "frequency": 70, + "category": "technical_core", + "chinese": "可见的", + "phonetic": "/ˈvɪzəbl/", + "forms": {}, + "example": { + "en": "The chuck area must be black to make the lead more visible.", + "cn": "夹头区域必须是黑色的,以使引线更清晰可见。" + } + }, + { + "id": 839, + "english": "vision", + "frequency": 35, + "category": "technical_core", + "chinese": "视觉", + "phonetic": "/ˈvɪʒən/", + "forms": { + "plural": "visions (复数)" + }, + "example": { + "en": "The vision system needs calibration.", + "cn": "视觉系统需要校准。" + } + }, + { + "id": 840, + "english": "visit", + "frequency": 60, + "category": "action_verbs", + "chinese": "访问", + "phonetic": "/ˈvɪzɪt/", + "forms": { + "verb": [ + "visits (第三人称单数)", + "visiting (现在分词)", + "visited (过去式/过去分词)" + ], + "plural": "visits (复数)" + }, + "example": { + "en": "We are expecting a visit from the auditors.", + "cn": "我们预计审计人员会来访。" + } + }, + { + "id": 841, + "english": "void", + "frequency": 37, + "category": "business_core", + "chinese": "空的;无效的", + "phonetic": "/vɔɪd/", + "forms": {}, + "example": { + "en": "The contract was declared void.", + "cn": "合同被宣布无效。" + } + }, + { + "id": 842, + "english": "voids", + "frequency": 49, + "category": "business_core", + "chinese": "空洞", + "phonetic": "/vɔɪdz/", + "forms": { + "singular": "void (单数)", + "verb": [ + "voids (第三人称单数)", + "voiding (现在分词)", + "voided (过去式/过去分词)" + ] + }, + "example": { + "en": "The X-ray image shows several voids.", + "cn": "X射线图像显示了几个空洞。" + } + }, + { + "id": 843, + "english": "voltage", + "frequency": 70, + "category": "technical_core", + "chinese": "电压", + "phonetic": "/ˈvoʊltɪdʒ/", + "forms": { + "plural": "voltages (复数)" + }, + "example": { + "en": "The device requires a stable voltage.", + "cn": "该设备需要稳定的电压。" + } + }, + { + "id": 844, + "english": "volume", + "frequency": 75, + "category": "technical_core", + "chinese": "体积;量", + "phonetic": "/ˈvɑːljuːm/", + "forms": { + "plural": "volumes (复数)" + }, + "example": { + "en": "This feature is for dispense volume auto-compensation.", + "cn": "此功能用于点胶量自动补偿。" + } + }, + { + "id": 845, + "english": "voluntarily", + "frequency": 31, + "category": "business_core", + "chinese": "自愿地", + "phonetic": "/ˈvɒləntrəli/", + "forms": { + "adverb": "voluntarily (副词)", + "base_adjective": "voluntary (形容词原形)", + "adjective": "voluntary (形容词)" + }, + "example": { + "en": "He voluntarily offered to help.", + "cn": "他自愿提出帮助。" + } + }, + { + "id": 846, + "english": "wafer", + "frequency": 50, + "category": "technical_core", + "chinese": "晶圆", + "phonetic": "/ˈweɪfər/", + "forms": { + "plural": "wafers (复数)" + }, + "example": { + "en": "The image on wafer.", + "cn": "晶圆上的图像。" + } + }, + { + "id": 847, + "english": "want", + "frequency": 4, + "category": "action_verbs", + "chinese": "想要", + "phonetic": "/wɒnt/", + "forms": {}, + "example": { + "en": "Also please note that we are installing this application in Rohm Thailand end of next week and want to get acceptance by middle of July.", + "cn": "另请注意,我们将在下周末于泰国 Rohm 安装此应用,并希望在 7 月中旬前通过验收。" + } + }, + { + "id": 848, + "english": "way", + "frequency": 24, + "category": "business_core", + "chinese": "方式;道路", + "phonetic": "/weɪ/", + "forms": { + "noun": "ways (复数)", + "plural": "ways (复数)" + }, + "example": { + "en": "Is there another way to do this?", + "cn": "还有其他方法可以做到这一点吗?" + } + }, + { + "id": 849, + "english": "weaker", + "frequency": 65, + "category": "high_frequency", + "chinese": "较弱的", + "phonetic": "/ˈwiːkər/", + "forms": {}, + "example": { + "en": "Maybe the test shows that the weaker one is sufficient.", + "cn": "也许测试表明较弱的那个就足够了。" + } + }, + { + "id": 850, + "english": "weaknesses", + "frequency": 44, + "category": "business_core", + "chinese": "弱点", + "phonetic": "/ˈwiːknəsɪz/", + "forms": { + "singular": "weakness (单数)" + }, + "example": { + "en": "Look for other design weaknesses.", + "cn": "寻找其他设计弱点。" + } + }, + { + "id": 851, + "english": "wear", + "frequency": 28, + "category": "business_core", + "chinese": "磨损", + "phonetic": "/weə(r)/", + "forms": {}, + "example": { + "en": "There may be a problem with wear.", + "cn": "可能会有磨损问题。" + } + }, + { + "id": 852, + "english": "week", + "frequency": 30, + "category": "business_core", + "chinese": "星期", + "phonetic": "/wiːk/", + "forms": { + "noun": "weeks (复数)", + "plural": "weeks (复数)" + }, + "example": { + "en": "The deadline is the end of the week.", + "cn": "截止日期是本周末。" + } + }, + { + "id": 853, + "english": "weekend", + "frequency": 11, + "category": "high_frequency", + "chinese": "周末", + "phonetic": "/ˈwiːkend/", + "forms": { + "noun": "weekends (复数)", + "plural": "weekends (复数)" + }, + "example": { + "en": "They can ship them to Singapore over the weekend.", + "cn": "他们可以在周末把它们运到新加坡。" + } + }, + { + "id": 854, + "english": "wetness", + "frequency": 29, + "category": "technical_core", + "chinese": "潮湿;湿润程度", + "phonetic": "/ˈwetnəs/", + "forms": {}, + "example": { + "en": "Check the wetness of the surface before applying the coating.", + "cn": "涂覆前请检查表面的潮湿程度。" + } + }, + { + "id": 855, + "english": "white", + "frequency": 2, + "category": "high_frequency", + "chinese": "白色的", + "phonetic": "/waɪt/", + "forms": {}, + "example": { + "en": "Place the component on a white background for inspection.", + "cn": "将组件放在白色背景上进行检测。" + } + }, + { + "id": 856, + "english": "window", + "frequency": 70, + "category": "technical_core", + "chinese": "窗口", + "phonetic": "/ˈwɪndoʊ/", + "forms": { + "plural": "windows (复数)" + }, + "example": { + "en": "The search window is too large.", + "cn": "搜索窗口太大了。" + } + }, + { + "id": 857, + "english": "within", + "frequency": 2, + "category": "high_frequency", + "chinese": "在...之内", + "phonetic": "/wɪˈðɪn/", + "forms": {}, + "example": { + "en": "The user still sets their teach window the same as they do today, but then within that teach window they need to click on a corner feature to use as an origin/reference point.", + "cn": "用户仍像现在一样设置示教窗口,但随后需要在该窗口内点击一个角点特征,将其用作原点/参考点。" + } + }, + { + "id": 858, + "english": "wonder", + "frequency": 1, + "category": "high_frequency", + "chinese": "想知道", + "phonetic": "/ˈwʌndər/", + "forms": { + "verb": "wondering (现在分词)" + }, + "example": { + "en": "I wonder if it is a customer preference to see a binary image on the screen.", + "cn": "我想知道,在屏幕上查看二值图像是否是客户的偏好。" + } + }, + { + "id": 859, + "english": "work", + "frequency": 7, + "category": "action_verbs", + "chinese": "工作", + "phonetic": "/wɜːk/", + "forms": {}, + "example": { + "en": "The system must work reliably under varying lighting conditions.", + "cn": "系统必须在不同照明条件下可靠运行。" + } + }, + { + "id": 860, + "english": "workload", + "frequency": 47, + "category": "business_core", + "chinese": "工作量", + "phonetic": "/ˈwɜːkləʊd/", + "forms": { + "noun": "workloads (复数)", + "plural": "workloads (复数)" + }, + "example": { + "en": "His workload is very heavy.", + "cn": "他的工作量很重。" + } + }, + { + "id": 861, + "english": "worse", + "frequency": 35, + "category": "business_core", + "chinese": "更糟的", + "phonetic": "/wɜːs/", + "forms": {}, + "example": { + "en": "The situation may get worse.", + "cn": "情况可能会变得更糟。" + } + }, + { + "id": 862, + "english": "worthwhile", + "frequency": 75, + "category": "high_frequency", + "chinese": "值得的", + "phonetic": "/ˌwɜːrθˈwaɪl/", + "forms": { + "adjective": "worthwhile (形容词)" + }, + "example": { + "en": "Is it worthwhile to ship it back?", + "cn": "把它运回去值得吗?" + } + }, + { + "id": 863, + "english": "wrong", + "frequency": 2, + "category": "high_frequency", + "chinese": "错误的", + "phonetic": "/rɒŋ/", + "forms": {}, + "example": { + "en": "The inspection data indicate that something is systematically wrong.", + "cn": "检测数据表明,某个环节存在系统性错误。" + } + }, + { + "id": 864, + "english": "yesterday", + "frequency": 1, + "category": "time_planning", + "chinese": "昨天", + "phonetic": "/ˈjestədeɪ/", + "forms": {}, + "example": { + "en": "It was difficult for me to hear and understand much during the summit day yesterday.", + "cn": "昨天的峰会期间,我很难听清并理解太多内容。" + } + }, + { + "id": 865, + "english": "yield", + "frequency": 45, + "category": "business_core", + "chinese": "良率", + "phonetic": "/jiːld/", + "forms": { + "noun": "yields (复数)", + "plural": "yields (复数)" + }, + "example": { + "en": "We need to improve the yield.", + "cn": "我们需要提高良率。" + } + }, + { + "id": 866, + "english": "zone", + "frequency": 75, + "category": "technical_core", + "chinese": "区域", + "phonetic": "/zoʊn/", + "forms": { + "plural": "zones (复数)", + "verb": [ + "zones (第三人称单数)", + "zoning (现在分词)", + "zoned (过去式/过去分词)" + ] + }, + "example": { + "en": "There is another zone that behaves similarly badly.", + "cn": "还有另一个区域表现得同样糟糕。" + } + } +] diff --git a/deploy.sh b/deploy.sh new file mode 100644 index 0000000..82fda61 --- /dev/null +++ b/deploy.sh @@ -0,0 +1,174 @@ +#!/usr/bin/env bash + +set -Eeuo pipefail + +REPO_ARCHIVE_URL="https://github.com/ghuang-top/AI_English/archive/refs/heads/main.tar.gz" +TARGET_DIR="/root/data/docker_data/Nginx/html/english/ai" +PRESERVED_NAME="data" + +RED='\033[0;31m' +GREEN='\033[0;32m' +YELLOW='\033[0;33m' +BLUE='\033[0;34m' +CYAN='\033[0;36m' +NC='\033[0m' + +print_info() { + echo -e "${BLUE}[INFO]${NC} $1" +} + +print_success() { + echo -e "${GREEN}[SUCCESS]${NC} $1" +} + +print_warning() { + echo -e "${YELLOW}[WARNING]${NC} $1" +} + +print_error() { + echo -e "${RED}[ERROR]${NC} $1" >&2 +} + +check_root() { + if [[ ${EUID} -ne 0 ]]; then + print_error "此脚本需要 root 权限运行" + print_info "请切换到 root 用户,或使用 sudo bash 执行脚本" + exit 1 + fi +} + +check_dependencies() { + local command_name + for command_name in curl tar find; do + if ! command -v "$command_name" >/dev/null 2>&1; then + print_error "缺少必要命令: $command_name" + exit 1 + fi + done +} + +prepare_target() { + if [[ -e "$TARGET_DIR" && ! -d "$TARGET_DIR" ]]; then + print_error "目标路径存在,但不是文件夹: $TARGET_DIR" + exit 1 + fi + + mkdir -p "$TARGET_DIR" +} + +clear_target() { + prepare_target + print_info "正在清空目标目录(保留 $TARGET_DIR/$PRESERVED_NAME/)..." + + find "$TARGET_DIR" -mindepth 1 -maxdepth 1 ! -name "$PRESERVED_NAME" \ + -exec rm -rf -- {} + + + print_success "目标目录已清空,$PRESERVED_NAME/ 中的内容未改动" +} + +deploy() ( + local temp_dir archive_file source_dir + temp_dir=$(mktemp -d) + archive_file="$temp_dir/repository.tar.gz" + trap 'rm -rf -- "$temp_dir"' EXIT + + print_info "正在从 GitHub 下载最新版本..." + if ! curl -fL --retry 3 --connect-timeout 15 "$REPO_ARCHIVE_URL" -o "$archive_file"; then + print_error "仓库下载失败,请检查网络连接后重试" + return 1 + fi + + print_info "正在解压并验证部署文件..." + if ! tar -xzf "$archive_file" -C "$temp_dir"; then + print_error "仓库压缩包解压失败" + return 1 + fi + + source_dir=$(find "$temp_dir" -mindepth 2 -maxdepth 2 -type d -name src -print -quit) + if [[ -z "$source_dir" || ! -f "$source_dir/index.html" || ! -d "$source_dir/js" || ! -d "$source_dir/styles" ]]; then + print_error "仓库中缺少 src/index.html、src/js 或 src/styles,已取消部署" + return 1 + fi + + clear_target + + print_info "正在拷贝网站文件到 $TARGET_DIR ..." + cp -a "$source_dir/index.html" "$source_dir/js" "$source_dir/styles" "$TARGET_DIR/" + + print_success "部署完成" + print_info "已部署: index.html、js/、styles/" + print_info "已保留: $TARGET_DIR/$PRESERVED_NAME/" +) + +confirm_clear() { + local answer + print_warning "将清空 $TARGET_DIR 中除 $PRESERVED_NAME/ 外的所有内容" + read -r -p "确认继续?[y/N]: " answer + if [[ "$answer" =~ ^[Yy]$ ]]; then + clear_target + else + print_info "已取消清空" + fi +} + +show_menu() { + clear 2>/dev/null || true + echo -e "${CYAN}============================================${NC}" + echo " AI English 一键部署脚本" + echo -e "${CYAN}============================================${NC}" + echo -e "${GREEN}1.${NC} 下载并部署最新版本" + echo -e "${GREEN}2.${NC} 清空网站文件(保留 data/)" + echo -e "${GREEN}0.${NC} 退出" + echo "" +} + +run_menu() { + local choice + while true; do + show_menu + read -r -p "请选择操作 [0-2]: " choice + case "$choice" in + 1) + # 部署失败时回到菜单,而不是因 set -e 直接退出脚本 + deploy || print_warning "部署失败,可稍后重试" + read -r -p "按 Enter 键继续..." + ;; + 2) + confirm_clear + read -r -p "按 Enter 键继续..." + ;; + 0) + print_info "退出脚本" + return 0 + ;; + *) + print_error "无效选择,请重新输入" + sleep 1 + ;; + esac + done +} + +main() { + check_root + check_dependencies + + case "${1:-menu}" in + deploy) + deploy + ;; + clear) + confirm_clear + ;; + menu) + run_menu + ;; + *) + print_error "未知参数: $1" + echo "用法: $0 [deploy|clear|menu]" >&2 + exit 1 + ;; + esac +} + +main "$@" diff --git a/docs/smoke-test.md b/docs/smoke-test.md new file mode 100644 index 0000000..28503f0 --- /dev/null +++ b/docs/smoke-test.md @@ -0,0 +1,49 @@ +# 手工冒烟测试 + +## 测试准备 + +1. 用 HTTP 静态服务器启动 `refactor/`,打开开发者工具并保持 Console 可见。 +2. 在原版设置页导出完整备份;确认重构版与原版使用相同 origin 后刷新重构版。 +3. 记录测试前 localStorage 的键名与关键数据数量,避免误把端口不同导致的空数据判断为兼容失败。 + +## 路由与全局 UI + +- [ ] 依次进入 `#home`、`#words`、`#quiz`、`#review`、`#extract`、`#mail-learn`、`#stats`、`#settings`,前进/后退正常。 +- [ ] 深浅主题切换后刷新仍保持;统计图在两种主题下可重绘。 +- [ ] 移动端菜单、遮罩关闭、Toast、Modal 遮罩与关闭按钮正常;Esc 可关 Modal/侧栏。 +- [ ] 全程 Console 无 `ReferenceError`、未知 action、模块加载或 404 错误。 + +## 数据兼容 + +- [ ] 旧 `words/records/schedule/favorites` 能迁移到默认词库前缀键,结构和值不变。 +- [ ] 各词库的 `words:`、`records:`、`schedule:`、`favorites:` 可切换并恢复。 +- [ ] 设置、邮件、主题、过滤词、自动加载和自动播放设置刷新后恢复。 +- [ ] 导出全部数据,再导入该备份,单词/记录/计划/收藏/邮件数量一致;API Key 不进入导出文件。 + +## 单词库 + +- [ ] 搜索输入防抖、分类/收藏/错题/频次筛选、分页及滚动正常。 +- [ ] JSON 导入、导出、重复过滤、详情、编辑释义、收藏、朗读和删除正常。 +- [ ] 自动播放可启停,重复次数/间隔/滚动设置生效;快速点击多个发音只保留最后请求。 + +## 测验与复习 + +- [ ] 本地英译中、中翻英;50/100 分组、全部/错题/收藏范围、随机/顺序、题量均正常。 +- [ ] 答题、上一题、下一题、结束、结果、再测一次正常,记录与 schedule 更新。 +- [ ] 配置 AI 后可出题;失败或 429 时提示并回退本地题库。 +- [ ] 错题列表及开始复习正常;翻卡、认识/模糊/不认识、进度跳转、收藏和朗读正常。 +- [ ] 复习快捷键 ←、→、Space、1/2/3 仅在复习会话且无 Modal 时生效。 + +## 邮件提词与学习 + +- [ ] 粘贴提词、专有名词过滤、chips 全选/反选、AI 翻译入库及保存邮件正常。 +- [ ] 批量模式可读取 txt/md/html/eml,多文件移除、频次提取、去重和入库正常。 +- [ ] 已保存邮件可载入/删除;AI 分析、全文翻译、高亮词库单词正常。 +- [ ] 阅读模式逐句显示、句子朗读/翻译、全部翻译、词库词 tooltip、生词查询与加入词库正常。 + +## 设置与词库 + +- [ ] AI、Azure TTS 配置保存与连接测试正常;Azure 失败后语音回退正常。 +- [ ] 内置词库切换、自动加载、手动加载、过滤词增删/搜索/复制正常。 +- [ ] 清除收藏、清空数据的双重确认及保留收藏单词行为与原版一致。 +- [ ] “获取最新版本”只清应用缓存并刷新,不清 localStorage。 diff --git a/serve.py b/serve.py new file mode 100644 index 0000000..6a7c002 --- /dev/null +++ b/serve.py @@ -0,0 +1,119 @@ +"""Windows development server controls for the src application.""" + +from __future__ import annotations + +import argparse +import subprocess +import sys +import time +from pathlib import Path + +ROOT = Path(__file__).resolve().parent +SOURCE_DIR = ROOT / "src" +PORT = 8000 + + +def listener_pid() -> int | None: + result = subprocess.run( + ["powershell", "-NoProfile", "-Command", f"(Get-NetTCPConnection -LocalPort {PORT} -State Listen -ErrorAction SilentlyContinue | Select-Object -First 1 -ExpandProperty OwningProcess)"], + capture_output=True, + text=True, + check=False, + ) + try: + return int(result.stdout.strip()) + except ValueError: + return None + + +def command_line(pid: int) -> str: + result = subprocess.run( + ["powershell", "-NoProfile", "-Command", f"(Get-CimInstance Win32_Process -Filter 'ProcessId = {pid}').CommandLine"], + capture_output=True, + text=True, + check=False, + ) + return result.stdout.strip() + + +def is_src_server(pid: int) -> bool: + command = command_line(pid).lower() + return "-m http.server" in command and str(SOURCE_DIR).lower() in command + + +def terminate_process(pid: int) -> bool: + result = subprocess.run( + ["taskkill", "/PID", str(pid), "/T", "/F"], + stdout=subprocess.DEVNULL, + stderr=subprocess.DEVNULL, + check=False, + ) + return result.returncode == 0 + + +def start() -> None: + listener = listener_pid() + if listener: + if is_src_server(listener): + print(f"服务已运行:http://localhost:{PORT}/(PID {listener})") + return + + answer = input( + f"端口 {PORT} 已被其他程序使用(PID {listener})。" + "是否关闭该进程并强制启动?[y/N]: " + ).strip().lower() + if answer not in ("y", "yes"): + print("已取消启动。") + return + if not terminate_process(listener): + print(f"无法关闭 PID {listener},请以管理员身份运行终端后重试。") + return + time.sleep(0.3) + if listener_pid(): + print(f"端口 {PORT} 仍被占用,无法启动服务。") + return + print(f"已关闭 PID {listener},正在启动服务。") + + process = subprocess.Popen( + [sys.executable, "-m", "http.server", str(PORT), "--directory", str(SOURCE_DIR)], + cwd=ROOT, + creationflags=subprocess.CREATE_NEW_PROCESS_GROUP | subprocess.DETACHED_PROCESS, + stdout=subprocess.DEVNULL, + stderr=subprocess.DEVNULL, + ) + time.sleep(0.3) + if listener_pid() == process.pid: + print(f"服务已启动:http://localhost:{PORT}/(PID {process.pid})") + else: + print("服务启动失败,请确认 Python 可用且端口未被占用。") + + +def stop() -> None: + listener = listener_pid() + if not listener or not is_src_server(listener): + print("src 开发服务器未启动。") + return + + if terminate_process(listener): + print("服务已停止。") + else: + print(f"无法停止 PID {listener},请以管理员身份运行终端后重试。") + + +def status() -> None: + listener = listener_pid() + if listener and is_src_server(listener): + print(f"服务运行中:http://localhost:{PORT}/(PID {listener})") + else: + print("src 开发服务器未启动。") + + +def main() -> None: + parser = argparse.ArgumentParser(description="控制 src 的本地 HTTP 开发服务器。") + parser.add_argument("command", choices=("start", "stop", "status"), help="执行的操作") + args = parser.parse_args() + {"start": start, "stop": stop, "status": status}[args.command]() + + +if __name__ == "__main__": + main() diff --git a/src/index.html b/src/index.html new file mode 100644 index 0000000..786cb70 --- /dev/null +++ b/src/index.html @@ -0,0 +1,108 @@ + + + + + + + + + + + + AI 英语助教 + + + + + + +
+
+ +

AI 英语助教

+ +
+ + + +
+ +
+
+
+ +
+
+ + + + + + diff --git a/src/js/constants.js b/src/js/constants.js new file mode 100644 index 0000000..f9aefe8 --- /dev/null +++ b/src/js/constants.js @@ -0,0 +1,15 @@ +// ==================== Constants ==================== +export const EBBINGHAUS_INTERVALS = [1, 2, 4, 7, 15, 30]; +export const STAGE_LABELS = ['第1次', '第2次', '第3次', '第4次', '第5次', '第6次']; +export const WORDS_PER_PAGE = 30; +export const WORD_TRANSLATE_BATCH_SIZE = 20; +export const LETTERS = ['A', 'B', 'C', 'D']; + +// ==================== App State ==================== +export const WORD_LIBRARIES = [ + { id: 'words-2025-08-26', name: '基础词库(2025-08-26)', file: 'words-2025-08-26.json' }, + { id: 'words-2026-07-12', name: '新版核心词库(2026-07-12)', file: 'words-2026-07-12.json' }, + { id: 'gpt5.6-2026-07-12', name: 'GPT-5.6 词库(2026-07-12)', file: 'gpt5.6-2026-07-12.json' } +]; +export const DEFAULT_WORD_LIBRARY = WORD_LIBRARIES[0].id; + diff --git a/src/js/core/actions.js b/src/js/core/actions.js new file mode 100644 index 0000000..143754e --- /dev/null +++ b/src/js/core/actions.js @@ -0,0 +1,25 @@ +const actions = new Map(); +const pendingElements = new WeakSet(); + +export function registerActions(namespace, ...modules) { + // 逐个合并模块,越靠后的模块优先级越高(页面/包装实现可覆盖共享实现)。 + // 显式合并才能在同名但实现不同的情况下发出告警,而不是被对象展开静默去重。 + const handlers = {}; + for (const module of modules) { + for (const [name, fn] of Object.entries(module)) { + if (typeof fn !== 'function') continue; + if (name in handlers && handlers[name] !== fn) { + console.warn(`[actions] "${namespace}" 命名空间内 "${name}" 存在多个实现,采用后注册者`); + } + handlers[name] = fn; + } + } + for (const [name, fn] of Object.entries(handlers)) { + const action = `${namespace}.${name}`; + if (actions.has(action)) throw new Error(`Duplicate action: ${action}`); + actions.set(action, fn); + } +} +function parseArg(value) { if (value == null) return value; if (/^-?\d+(?:\.\d+)?$/.test(value)) return Number(value); if (value === 'true') return true; if (value === 'false') return false; return value; } +async function dispatch(event) { const el = event.target.closest('[data-action]'); if (!el || !event.currentTarget.contains(el)) return; const expected = el.dataset.actionEvent || 'click'; if (expected !== event.type) return; if (el.classList.contains('modal-overlay') && event.target !== el) return; event.preventDefault(); event.stopPropagation(); const fn = actions.get(el.dataset.action); if (!fn) { console.error('Unknown action:', el.dataset.action); return; } if (pendingElements.has(el)) return; const args = []; Object.keys(el.dataset).filter(k => /^arg\d+$/.test(k)).sort((a,b) => Number(a.slice(3))-Number(b.slice(3))).forEach(k => args[Number(k.slice(3))] = parseArg(el.dataset[k])); if (el.dataset.valueArg != null) args[Number(el.dataset.valueArg)] = el.dataset.valueNumber === 'true' ? Number(el.value) : el.value; if (el.dataset.elementArg != null) args[Number(el.dataset.elementArg)] = el; if (el.dataset.passElement === 'true') args.unshift(el); pendingElements.add(el); try { await fn(...args); } catch (error) { console.error('Action failed:', el.dataset.action, error); } finally { pendingElements.delete(el); } } +export function bindActionDelegates() { ['page-content','modal-root'].forEach(id => { const root = document.getElementById(id); ['click','input','change','keydown'].forEach(type => root.addEventListener(type, dispatch)); }); } diff --git a/src/js/core/router.js b/src/js/core/router.js new file mode 100644 index 0000000..03fc871 --- /dev/null +++ b/src/js/core/router.js @@ -0,0 +1,38 @@ +import { state } from './state.js'; +import { closeSidebar } from '../ui/sidebar.js'; + +// ==================== Router ==================== +export function navigate(page) { + window.location.hash = '#' + page; +} + +export function onHashChange() { + const requestedPage = window.location.hash.slice(1) || 'home'; + const page = Object.prototype.hasOwnProperty.call(pageRegistry, requestedPage) ? requestedPage : 'home'; + if (page !== requestedPage) history.replaceState(null, '', `${window.location.pathname}${window.location.search}#${page}`); + state.currentPage = page; + updateNav(page); + renderPage(page); + closeSidebar(); +} + +export function updateNav(page) { + document.querySelectorAll('.nav-item').forEach(item => { + item.classList.toggle('active', item.dataset.page === page); + }); +} + +const pageRegistry = {}; +let beforeRender = () => {}; +export function registerPage(page, renderFn) { pageRegistry[page] = renderFn; } +export function setBeforeRender(callback) { beforeRender = callback; } + +export function renderPage(page) { + beforeRender(); + const el = document.getElementById('page-content'); + el.classList.toggle('settings-page', page === 'settings'); + el.classList.remove('fade-in-up'); + void el.offsetWidth; + el.classList.add('fade-in-up'); + (pageRegistry[page] || pageRegistry.home)(el); +} diff --git a/src/js/core/state.js b/src/js/core/state.js new file mode 100644 index 0000000..c504e36 --- /dev/null +++ b/src/js/core/state.js @@ -0,0 +1,28 @@ +import { DEFAULT_WORD_LIBRARY } from '../constants.js'; + +export const state = { + words: [], + records: [], + schedule: {}, + favorites: [], + settings: { apiKey: '', apiUrl: '', model: '' }, + currentPage: 'home', + learnSession: null, + quizSession: null, + wordPage: 1, + wordSearch: '', + wordCategory: '', + learnAutoDisplay: true, + quizBatchSize: 50, + quizBatchIndex: -1, + quizMode: 'en2zh', + quizRemoveCorrectErrors: false, + mailEmails: [], + activeWordLibrary: DEFAULT_WORD_LIBRARY, + autoLoadEnabled: true, + batchExtractEnabled: false, + autoPlayRepeat: 1, + autoPlayInterval: 0, + autoPlayRepeatDelay: 0, + autoPlayScrollMode: 'center' +}; diff --git a/src/js/core/storage.js b/src/js/core/storage.js new file mode 100644 index 0000000..484ba97 --- /dev/null +++ b/src/js/core/storage.js @@ -0,0 +1,182 @@ +import { DEFAULT_WORD_LIBRARY, WORD_LIBRARIES } from '../constants.js'; +import { state } from './state.js'; +import { showToast } from '../ui/toast.js'; +import { invalidateErrorWordsCache } from '../services/stats.js'; + +// ==================== Storage ==================== +export const MAX_RECORDS = 5000; +export const STORAGE_KEYS = Object.freeze({ + words: 'words', + records: 'records', + schedule: 'schedule', + favorites: 'favorites', + settings: 'settings', + mailEmails: 'mailEmails', + activeWordLibrary: 'activeWordLibrary', + learnAutoDisplay: 'learnAutoDisplay', + autoLoadEnabled: 'autoLoadEnabled', + batchExtractEnabled: 'batchExtractEnabled', + autoPlayRepeat: 'autoPlayRepeat', + autoPlayInterval: 'autoPlayInterval', + autoPlayRepeatDelay: 'autoPlayRepeatDelay', + autoPlayScrollMode: 'autoPlayScrollMode', + customFilterWords: 'customFilterWords', + theme: 'theme' +}); + +export function getStorageItem(key) { + try { + return localStorage.getItem(key); + } catch (e) { + console.warn(`Failed to read localStorage key "${key}"`, e); + return null; + } +} + +export function snapshotStorageItems(keys) { + try { + return keys.map(key => ({ key, value: localStorage.getItem(key) })); + } catch (e) { + console.error('Failed to snapshot localStorage items', e); + return null; + } +} + +export function restoreStorageItems(snapshot) { + if (!Array.isArray(snapshot)) return false; + let restored = true; + snapshot.forEach(({ key, value }) => { + try { + if (value === null) localStorage.removeItem(key); + else localStorage.setItem(key, value); + } catch (e) { + restored = false; + console.warn(`Failed to restore localStorage key "${key}"`, e); + } + }); + return restored; +} + +export function saveStringSetting(key, value) { + try { + localStorage.setItem(key, String(value)); + return true; + } catch (e) { + console.error(`Failed to save localStorage key "${key}"`, e); + showToast('本地存储空间不足,部分数据可能未保存', 'error'); + return false; + } +} + +function removeStorageItem(key) { + try { + localStorage.removeItem(key); + return true; + } catch (e) { + console.warn(`Failed to remove localStorage key "${key}"`, e); + return false; + } +} + +export function loadJsonSetting(key, fallback) { + try { + const raw = getStorageItem(key); + if (raw == null) return fallback; + return JSON.parse(raw); + } catch (e) { + console.warn(`Failed to parse localStorage key "${key}"`, e); + return fallback; + } +} + +export function saveJsonSetting(key, value) { + try { + localStorage.setItem(key, JSON.stringify(value)); + return true; + } catch (e) { + console.error(`Failed to save localStorage key "${key}"`, e); + showToast('本地存储空间不足,部分数据可能未保存', 'error'); + return false; + } +} + +export function loadBooleanSetting(key, fallback) { + const raw = getStorageItem(key); + if (raw == null) return fallback; + if (raw === 'true' || raw === 'false') return raw === 'true'; + const parsed = loadJsonSetting(key, fallback); + if (typeof parsed === 'boolean') return parsed; + if (parsed === 'true' || parsed === 'false') return parsed === 'true'; + return fallback; +} + +export function loadNumberSetting(key, fallback) { + const raw = getStorageItem(key); + if (raw == null || raw.trim() === '') return fallback; + const parsed = Number(raw); + if (Number.isFinite(parsed)) return parsed; + const jsonValue = loadJsonSetting(key, fallback); + return typeof jsonValue === 'number' && Number.isFinite(jsonValue) ? jsonValue : fallback; +} + +export function getLibraryStorageKey(key, libraryId = state.activeWordLibrary) { + return `${key}:${libraryId}`; +} + +export function loadLibraryState(libraryId, useLegacyFallback = false) { + const loadLibraryValue = (key, fallback) => { + const storageKey = getLibraryStorageKey(key, libraryId); + if (getStorageItem(storageKey) != null) return loadJsonSetting(storageKey, fallback); + if (!useLegacyFallback || getStorageItem(key) == null) return fallback; + const legacyValue = loadJsonSetting(key, fallback); + if (saveJsonSetting(storageKey, legacyValue)) removeStorageItem(key); + return legacyValue; + }; + const words = loadLibraryValue(STORAGE_KEYS.words, []); + const records = loadLibraryValue(STORAGE_KEYS.records, []); + const schedule = loadLibraryValue(STORAGE_KEYS.schedule, {}); + const favorites = loadLibraryValue(STORAGE_KEYS.favorites, []); + state.words = Array.isArray(words) ? words : []; + state.records = Array.isArray(records) ? records : []; + state.schedule = schedule !== null && typeof schedule === 'object' && !Array.isArray(schedule) ? schedule : {}; + state.favorites = Array.isArray(favorites) ? favorites : []; + invalidateErrorWordsCache(); // 切换/加载词库后清空错题缓存 +} + +export function loadState() { + state.activeWordLibrary = getStorageItem(STORAGE_KEYS.activeWordLibrary) || DEFAULT_WORD_LIBRARY; + if (!WORD_LIBRARIES.some(library => library.id === state.activeWordLibrary)) state.activeWordLibrary = DEFAULT_WORD_LIBRARY; + loadLibraryState(state.activeWordLibrary, state.activeWordLibrary === DEFAULT_WORD_LIBRARY); + const settings = loadJsonSetting(STORAGE_KEYS.settings, {}); + state.learnAutoDisplay = loadBooleanSetting(STORAGE_KEYS.learnAutoDisplay, true); + const mailEmails = loadJsonSetting(STORAGE_KEYS.mailEmails, []); + state.autoLoadEnabled = loadBooleanSetting(STORAGE_KEYS.autoLoadEnabled, true); + state.batchExtractEnabled = loadBooleanSetting(STORAGE_KEYS.batchExtractEnabled, false); + state.autoPlayRepeat = loadNumberSetting(STORAGE_KEYS.autoPlayRepeat, 1) || 1; + state.autoPlayInterval = loadNumberSetting(STORAGE_KEYS.autoPlayInterval, 0) || 0; + state.autoPlayRepeatDelay = loadNumberSetting(STORAGE_KEYS.autoPlayRepeatDelay, 0) || 0; + state.autoPlayScrollMode = loadJsonSetting(STORAGE_KEYS.autoPlayScrollMode, 'center') === 'visible' ? 'visible' : 'center'; + state.settings = { + apiKey: '', + apiUrl: '', + model: '', + ttsEnabled: true, + ttsProvider: 'azure', + ttsApiKey: '', + ttsEndpoint: '', + ttsRegion: 'eastus', + ttsVoice: 'en-US-JennyNeural', + ttsOutputFormat: 'audio-24khz-48kbitrate-mono-mp3', + ttsPrefetchEnabled: false, + ...(settings !== null && typeof settings === 'object' && !Array.isArray(settings) ? settings : {}) + }; + state.mailEmails = Array.isArray(mailEmails) ? mailEmails : []; +} + +export function saveWords() { invalidateErrorWordsCache(); return saveJsonSetting(getLibraryStorageKey(STORAGE_KEYS.words), state.words); } +export function saveRecords() { invalidateErrorWordsCache(); return saveJsonSetting(getLibraryStorageKey(STORAGE_KEYS.records), state.records); } +export function saveSchedule() { return saveJsonSetting(getLibraryStorageKey(STORAGE_KEYS.schedule), state.schedule); } +export function saveFavorites() { return saveJsonSetting(getLibraryStorageKey(STORAGE_KEYS.favorites), state.favorites); } +export function saveSettings() { return saveJsonSetting(STORAGE_KEYS.settings, state.settings); } +export function saveEmails() { return saveJsonSetting(STORAGE_KEYS.mailEmails, state.mailEmails); } + diff --git a/src/js/data/stopwords.js b/src/js/data/stopwords.js new file mode 100644 index 0000000..af93304 --- /dev/null +++ b/src/js/data/stopwords.js @@ -0,0 +1,76 @@ +export const STOP_WORDS = new Set([ + 'a','an','the','and','or','but','in','on','at','to','for','of','with','by', + 'from','up','about','into','through','during','before','after','above','below', + 'between','out','off','over','under','again','further','then','once','here', + 'there','when','where','why','how','all','both','each','few','more','most', + 'other','some','such','no','not','only','own','same','so','than','too','very', + 's','t','can','will','just','don','should','now','i','me','my','myself','we', + 'our','ours','ourselves','you','your','yours','yourself','yourselves','he','him', + 'his','himself','she','her','hers','herself','it','its','itself','they','them', + 'their','theirs','themselves','what','which','who','whom','this','that','these', + 'those','am','is','are','was','were','be','been','being','have','has','had', + 'having','do','does','did','doing','would','could','ought','might','shall', + 'may','need','dare','if','as','while','because','until','also','although', + 're','ve','ll','d','m','o','ain','aren','couldn','didn','doesn','hadn','hasn', + 'haven','isn','ma','mightn','mustn','needn','shan','shouldn','wasn','weren', + 'won','wouldn','dear','hi','hello','thanks','thank','regards','best','sincerely', + 'sent','subject','cc','bcc','fwd','fw','pm','please', + 'like','get','got','make','made','go','going','gone','come','take','took', + 'know','knew','known','see','saw','seen','think','thought','say','said','tell', + 'told','give','gave','given','find','found','let','put','keep','kept','set', + 'seem','try','tried','left','call','called','must', + 'us','ok','okay','yes','well','much','many','still','even','back','new','old', + 'good','bad','great','little','big','long','right','last','first','next','sure', + 'really','quite','enough','already','yet','since','ago','however','therefore', + 'thus','hence','else','anyway','anything','everything','something','nothing', + 'someone','anyone','everyone', + 'monday','tuesday','wednesday','thursday','friday','saturday','sunday', + 'january','february','march','april','june','july','august','september', + 'october','november','december','today','tomorrow','yesterday','week','month','year', + 'time','day','way','thing','man','woman','child','world','life','hand','part', + 'case','point','company','number','group','problem','fact', + 'mm','cm','km','kg','lb','oz','ft','ml','dl','mg','gb','mb','kb','tb', + 'hz','mhz','ghz','px','pt','em','vh','vw','hp','rpm','mph','kph','psi', + 'am','vs','id','ip','url','http','https','www','html','css','pdf','doc', + 'etc','eg','ie','no','na','bc','ad','lf' +]); + +export const COMMON_NAMES = new Set([ + 'christoph','john','robert','michael','david','william','richard','joseph','thomas','charles', + 'christopher','daniel','matthew','anthony','mark','donald','steven','steve','paul','andrew', + 'joshua','kenneth','kevin','brian','george','timothy','ronald','edward','jason','jeffrey', + 'ryan','jacob','gary','nicholas','nick','eric','jonathan','stephen','larry','justin','scott', + 'brandon','benjamin','samuel','raymond','gregory','greg','frank','alexander','alex','patrick', + 'jack','dennis','jerry','tyler','aaron','jose','adam','nathan','henry','peter','zachary', + 'douglas','harold','johnny','ralph','eugene','russell','randy','philip','harry','vincent', + 'bobby','dylan','billy','albert','bruce','willie','gabriel','logan','alan','wayne', + 'roy','louis','carl','roger','keith','lawrence','terry', + 'sean','austin','jesse','joe','howard','victor','chris','jordan', + 'mary','patricia','jennifer','linda','barbara','elizabeth','susan','jessica','sarah','karen', + 'lisa','nancy','betty','margaret','sandra','ashley','dorothy','kimberly','emily','donna', + 'michelle','carol','amanda','melissa','deborah','stephanie','rebecca','sharon','laura','cynthia', + 'kathleen','amy','angela','shirley','anna','brenda','pamela','emma','nicole','helen', + 'samantha','katherine','christine','debra','rachel','carolyn','janet','catherine','maria','heather', + 'diane','ruth','julie','olivia','joyce','virginia','victoria','kelly','lauren','christina', + 'joan','evelyn','judith','megan','andrea','cheryl','hannah','jacqueline','martha','gloria', + 'teresa','ann','sara','madison','frances','kathryn','janice','jean','abigail','alice', + 'julia','judy','grace','amber','denise','crystal','diana','brittany','natalie','sophia', + 'rose','alexis','kayla','charlotte','tony','mike','dave','bob','jim','tim','tom','dan', + 'ben','sam','matt','rob','jeff','ted','ed','rick','ray','lee','ken','don', + 'smith','johnson','williams','brown','jones','garcia','miller','davis','rodriguez','martinez', + 'hernandez','lopez','gonzalez','wilson','anderson','taylor','moore','jackson','martin', + 'perez','thompson','white','harris','sanchez','clark','ramirez','lewis','robinson','walker', + 'young','allen','king','wright','torres','nguyen','hill','flores','green','adams','nelson', + 'baker','hall','rivera','campbell','mitchell','carter','roberts','gomez','phillips','evans', + 'turner','diaz','parker','cruz','edwards','collins','reyes','stewart','morris','morales', + 'murphy','cook','rogers','gutierrez','ortiz','morgan','cooper','peterson','bailey','reed', + 'howard','ramos','kim','cox','ward','richardson','watson','brooks','chavez','wood','bennett', + 'gray','mendoza','ruiz','hughes','price','alvarez','castillo','sanders','patel','myers', + 'long','ross','foster','jimenez','powell','jenkins','perry','sullivan','bell', + 'coleman','butler','henderson','barnes','gonzales','fisher','vasquez','simmons','graham', + 'murray','freeman','wells','webb','simpson','stevens','tucker','porter','hunter','hicks', + 'crawford','boyd','mason','kennedy','warren','dixon','rivas','wagner', + 'pena','peters','burns','gordon','shaw','holmes','rice','robertson','hunt','black','daniels', + 'palmer','mills','nichols','grant','knight','ferguson','stone','hawkins','dunn', + 'perkins','hudson','spencer','gardner','stephens','payne','pierce','berry','matthews','arnold' +]); diff --git a/src/js/main.js b/src/js/main.js new file mode 100644 index 0000000..edc7212 --- /dev/null +++ b/src/js/main.js @@ -0,0 +1,61 @@ +import * as m0 from './constants.js'; +import * as m1 from './data/stopwords.js'; +import * as m2 from './core/state.js'; +import * as m3 from './core/storage.js'; +import * as m4 from './services/favorites.js'; +import * as m5 from './core/router.js'; +import * as m6 from './ui/theme.js'; +import * as m7 from './ui/sidebar.js'; +import * as m8 from './ui/toast.js'; +import * as m9 from './ui/modal.js'; +import * as m10 from './services/tts.js'; +import * as m11 from './services/ai.js'; +import * as m12 from './services/ebbinghaus.js'; +import * as m13 from './services/stats.js'; +import * as m14 from './services/quiz-generator.js'; +import * as m15 from './ui/dom.js'; +import * as m16 from './services/extractor.js'; +import * as m17 from './services/mime.js'; +import * as m18 from './pages/home.js'; +import * as m19 from './pages/words.js'; +import * as m20 from './pages/learn.js'; +import * as m21 from './pages/quiz.js'; +import * as m22 from './pages/review.js'; +import * as m23 from './pages/stats.js'; +import * as m24 from './pages/extract.js'; +import * as m25 from './pages/mail-learn.js'; +import * as m26 from './pages/reader.js'; +import * as m27 from './pages/settings.js'; +import * as m28 from './pages/filter-words.js'; +import * as m29 from './services/library.js'; +import { bindActionDelegates, registerActions } from './core/actions.js'; + +const shared = [m5, m9, m10]; +registerActions('home', ...shared, m18); +registerActions('words', ...shared, m4, m19); +registerActions('learn', ...shared, m4, m20); +registerActions('quiz', ...shared, m4, m21); +registerActions('review', ...shared, m22); +registerActions('extract', ...shared, m24); +registerActions('mailLearn', ...shared, m25, m26); +registerActions('reader', ...shared, m26); +registerActions('settings', ...shared, m11, m24, m27, m28, m29); +registerActions('filterWords', ...shared, m28); +registerActions('modal', m9); + +m5.registerPage('home', m18.renderHome); +m5.registerPage('words', m19.renderWords); +m5.registerPage('quiz', m21.renderQuiz); +m5.registerPage('review', m22.renderReview); +m5.registerPage('extract', m24.renderExtract); +m5.registerPage('mail-learn', m25.renderMailLearn); +m5.registerPage('stats', m23.renderStats); +m5.registerPage('settings', m27.renderSettings); +m5.setBeforeRender(() => { + m19.stopAutoPlay(); + m23.destroyStudyChart(); +}); + +function cleanupUpdateParam() { const url = new URL(window.location.href); if (url.searchParams.has('_app_update')) { url.searchParams.delete('_app_update'); history.replaceState(null, '', url.pathname + url.search + url.hash); } } +function init() { m3.loadState(); m28.loadCustomFilterWords(); m6.initTheme(); bindActionDelegates(); document.getElementById('menu-btn').addEventListener('click', m7.toggleSidebar); document.getElementById('overlay').addEventListener('click', m7.closeSidebar); document.getElementById('theme-toggle').addEventListener('click', m6.toggleTheme); document.getElementById('theme-toggle-mobile').addEventListener('click', m6.toggleTheme); document.addEventListener('themechange', m23.refreshStudyChart); window.addEventListener('hashchange', m5.onHashChange); m20.bindLearnKeyboard(); m5.onHashChange(); cleanupUpdateParam(); m29.autoLoadWords().catch(error => console.error('Automatic word loading failed:', error)); } +try { init(); } catch (error) { console.error('Application initialization failed:', error); } diff --git a/src/js/pages/extract-batch-files.js b/src/js/pages/extract-batch-files.js new file mode 100644 index 0000000..a904878 --- /dev/null +++ b/src/js/pages/extract-batch-files.js @@ -0,0 +1,103 @@ +import { state } from '../core/state.js'; +import { extractEmlBody } from '../services/mime.js'; +import { escapeHtml } from '../ui/dom.js'; +import { showToast } from '../ui/toast.js'; + +export let batchUploadedTexts = []; +let batchFileReadGeneration = 0; + +function extractHtmlText(html) { + const documentFragment = new DOMParser().parseFromString(html, 'text/html'); + documentFragment.querySelectorAll('script, style, template, noscript').forEach(element => element.remove()); + return documentFragment.body?.textContent || ''; +} + +export function handleBatchFiles(input) { + const generation = ++batchFileReadGeneration; + const files = Array.from(input.files); + if (!files.length) { + batchUploadedTexts = []; + renderBatchFileList(); + return; + } + + const listElement = document.getElementById('batch-file-list'); + if (listElement) { + listElement.innerHTML = ' 读取文件中...'; + } + + batchUploadedTexts = []; + const loadedTexts = new Array(files.length); + let loaded = 0; + + function finishFile() { + if (generation !== batchFileReadGeneration) return; + loaded++; + if (loaded === files.length) { + batchUploadedTexts = loadedTexts.filter(Boolean); + renderBatchFileList(); + } + } + + files.forEach((file, index) => { + const reader = new FileReader(); + const name = file.name.toLowerCase(); + reader.onload = event => { + if (generation !== batchFileReadGeneration) return; + let text = event.target.result; + if (name.endsWith('.eml')) { + text = extractEmlBody(text); + if (!text.trim()) showToast(`邮件「${file.name}」未解析到可读正文`, 'warning'); + } else if (name.endsWith('.html') || name.endsWith('.htm')) { + text = extractHtmlText(text); + } + loadedTexts[index] = { name: file.name, content: text }; + finishFile(); + }; + reader.onerror = () => { + if (generation !== batchFileReadGeneration) return; + showToast(`文件「${file.name}」读取失败,已跳过`, 'warning'); + finishFile(); + }; + if (name.endsWith('.eml')) reader.readAsArrayBuffer(file); + else reader.readAsText(file); + }); +} + +export function renderBatchFileList() { + const listElement = document.getElementById('batch-file-list'); + if (!listElement) return; + if (batchUploadedTexts.length === 0) { + listElement.innerHTML = ''; + return; + } + + listElement.innerHTML = ` +
+
已加载 ${batchUploadedTexts.length} 个文件:
+ ${batchUploadedTexts.map((item, index) => `
+ + ${escapeHtml(item.name)} + ${(item.content.length / 1024).toFixed(1)}KB + +
`).join('')} +
`; + + updateBatchSourceInfo(); +} + +export function removeBatchFile(index) { + batchUploadedTexts.splice(index, 1); + renderBatchFileList(); +} + +export function updateBatchSourceInfo() { + const infoElement = document.getElementById('batch-source-info'); + if (!infoElement) return; + const uploadCount = batchUploadedTexts.length; + const savedCount = state.mailEmails.length; + const parts = []; + if (uploadCount > 0) parts.push(`${uploadCount} 个上传文件`); + if (savedCount > 0) parts.push(`${savedCount} 封已保存邮件`); + infoElement.textContent = parts.length > 0 ? parts.join(' + ') : '暂无来源'; +} diff --git a/src/js/pages/extract.js b/src/js/pages/extract.js new file mode 100644 index 0000000..2150e58 --- /dev/null +++ b/src/js/pages/extract.js @@ -0,0 +1,408 @@ +import { WORD_TRANSLATE_BATCH_SIZE } from '../constants.js'; +import { COMMON_NAMES } from '../data/stopwords.js'; +import { state } from '../core/state.js'; +import { saveEmails, saveJsonSetting, saveSchedule, saveWords, STORAGE_KEYS } from '../core/storage.js'; +import { renderPage } from '../core/router.js'; +import { showToast } from '../ui/toast.js'; +import { deduplicateBasic, deduplicateWithAI, filterNamesWithAI, translateWords } from '../services/ai.js'; +import { getToday, initWordSchedule } from '../services/ebbinghaus.js'; +import { autoResizeTextarea, escapeHtml } from '../ui/dom.js'; +import { detectProperNouns, extractEnglishWords, extractWithFrequency, findWordContext } from '../services/extractor.js'; +import { getNextId } from './words.js'; +import { batchUploadedTexts } from './extract-batch-files.js'; + +export { batchUploadedTexts, handleBatchFiles, removeBatchFile, renderBatchFileList, updateBatchSourceInfo } from './extract-batch-files.js'; +export let batchMode = false; +export let batchResults = []; +let extractGeneration = 0; + +function beginExtractGeneration() { + return ++extractGeneration; +} + +function isCurrentExtractGeneration(generation, ...elements) { + return generation === extractGeneration + && state.currentPage === 'extract' + && elements.every(element => element?.isConnected); +} + +// ==================== Page: Extract (邮件提词) ==================== +export function renderExtract(el) { + beginExtractGeneration(); + const batchSection = state.batchExtractEnabled ? ` +
+

批量提词

+

上传邮件文件或使用已保存邮件,批量提取单词并统计出现频次。

+
+ + +

支持 .txt / .md / .eml / .html / .htm 格式,可多选

+
+
+
+ + 已保存 ${state.mailEmails.length} 封邮件 + +
+
` : ''; + + el.innerHTML = ` + + +
+
+
+

粘贴邮件内容

+ +
+ + + +
+

自动过滤停用词和人名/专有名词${state.settings.apiKey ? '(已启用 AI 识别)' : '(配置 AI 可增强识别)'},只保留有学习价值的单词

+
+ ${batchSection} +
+ +
+
+

选择要添加的单词

+
+
+ + +
+ 使用说明:
+ 1. 在左侧粘贴邮件原文
+ 2. 点击「提取单词」
+ 3. 点击单词选中/取消(灰色划线表示已在词库中)
+ 4. 点击「翻译并添加选中」批量加入词库 +
+
+
+
+ `; + + const ta = document.getElementById('email-input'); + ta.addEventListener('input', () => autoResizeTextarea(ta)); + ta.addEventListener('paste', () => setTimeout(() => autoResizeTextarea(ta), 0)); +} + +export async function doExtractFromEmail() { + const generation = beginExtractGeneration(); + const inputEl = document.getElementById('email-input'); + const chipsContainer = document.getElementById('word-chips'); + const extractBtn = document.querySelector('[data-action="extract.doExtractFromEmail"]'); + const text = inputEl?.value.trim() || ''; + if (!text) { showToast('请粘贴邮件内容', 'error'); return; } + + batchMode = false; + if (extractBtn) { extractBtn.disabled = true; extractBtn.innerHTML = ' 提取中...'; } + + const extracted = extractEnglishWords(text); + if (!extracted.length) { + if (extractBtn?.isConnected) { extractBtn.disabled = false; extractBtn.innerHTML = ' 提取单词'; } + showToast('未提取到有效英文单词', 'info'); + return; + } + + const properNouns = detectProperNouns(text); + let filtered = extracted.filter(w => !COMMON_NAMES.has(w) && !properNouns.has(w)); + let nameCount = extracted.length - filtered.length; + + const hasAI = state.settings.apiKey && state.settings.apiUrl && state.settings.model; + if (hasAI && filtered.length > 0) { + showToast('正在使用 AI 识别人名...', 'info'); + const aiNames = await filterNamesWithAI(filtered); + if (!isCurrentExtractGeneration(generation, inputEl, chipsContainer)) return; + if (aiNames.length > 0) { + const aiNameSet = new Set(aiNames); + filtered = filtered.filter(w => !aiNameSet.has(w)); + nameCount += aiNames.length; + } + } + + let dedupCount = 0; + if (filtered.length > 0) { + if (hasAI) showToast('正在使用 AI 去重词形变化...', 'info'); + const dedupMapping = hasAI ? await deduplicateWithAI(filtered) : deduplicateBasic(filtered); + if (!isCurrentExtractGeneration(generation, inputEl, chipsContainer)) return; + dedupCount = Object.keys(dedupMapping).length; + if (dedupCount > 0) filtered = filtered.filter(w => !dedupMapping[w]); + } + + if (!isCurrentExtractGeneration(generation, inputEl, chipsContainer)) return; + if (extractBtn?.isConnected) { extractBtn.disabled = false; extractBtn.innerHTML = ' 提取单词'; } + + renderWordChips(filtered); + const nameMsg = nameCount > 0 ? `,过滤了 ${nameCount} 个人名/专有名词` : ''; + const dedupMsg = dedupCount > 0 ? `,合并了 ${dedupCount} 个词形变化` : ''; + showToast(`提取到 ${filtered.length} 个单词${nameMsg}${dedupMsg}`, 'success'); +} + +export function renderWordChips(wordList) { + const container = document.getElementById('word-chips'); + const existingWords = new Set(state.words.map(w => w.english.toLowerCase())); + + container.innerHTML = wordList.map(w => { + const isExist = existingWords.has(w); + return `${escapeHtml(w)}${isExist ? ' \u2713' : ''}`; + }).join(''); + + const selectable = wordList.filter(w => !existingWords.has(w)).length; + const existing = wordList.length - selectable; + document.getElementById('extract-info').textContent = `共 ${wordList.length} 个单词,${existing} 个已存在,${selectable} 个可添加`; + document.getElementById('extract-actions').style.display = selectable > 0 ? 'flex' : 'none'; +} + +export function toggleChip(el) { el.classList.toggle('selected'); updateSelectedCount(); } +export function selectAllChips() { document.querySelectorAll('.word-chip:not(.exists)').forEach(c => c.classList.add('selected')); updateSelectedCount(); } +export function deselectAllChips() { document.querySelectorAll('.word-chip.selected').forEach(c => c.classList.remove('selected')); updateSelectedCount(); } + +export function updateSelectedCount() { + const count = document.querySelectorAll('.word-chip.selected').length; + const btn = document.getElementById('add-selected-btn'); + if (btn) btn.innerHTML = ` 翻译并添加选中 (${count})`; +} + +export async function addSelectedWords() { + const generation = extractGeneration; + const libraryId = state.activeWordLibrary; + const chipsContainer = document.getElementById('word-chips'); + const chips = [...document.querySelectorAll('.word-chip.selected')]; + const selected = chips.map(c => ({ word: c.dataset.word, freq: parseInt(c.dataset.freq) || 0 })); + if (!selected.length) { showToast('请先选择要添加的单词', 'error'); return; } + + const isBatch = !!batchMode; + let emailText, emailTitle; + if (isBatch) { + const uploadedTexts = (batchUploadedTexts || []).map(t => t.content); + const savedTexts = state.mailEmails.map(e => e.content); + emailText = [...uploadedTexts, ...savedTexts].join('\n\n'); + emailTitle = '批量提取'; + } else { + emailText = document.getElementById('email-input').value.trim(); + emailTitle = emailText.slice(0, 40).replace(/\n/g, ' ') + '...'; + } + + const progress = document.getElementById('extract-progress'); + progress.style.display = 'block'; + document.getElementById('add-selected-btn').disabled = true; + let success = 0, fail = 0, skipped = 0; + const addedWordIds = []; + + const isCurrentOperation = () => state.activeWordLibrary === libraryId + && isCurrentExtractGeneration(generation, chipsContainer, progress); + const discardAddedWords = () => { + if (state.activeWordLibrary !== libraryId || addedWordIds.length === 0) return; + const addedIdSet = new Set(addedWordIds); + state.words = state.words.filter(word => !addedIdSet.has(word.id)); + state.schedule = { ...state.schedule }; + addedWordIds.forEach(id => delete state.schedule[id]); + saveWords(); + saveSchedule(); + }; + + const existing = new Set(state.words.map(w => String(w.english || '').trim().toLowerCase()).filter(Boolean)); + const handled = new Set(); + let nextId = getNextId(); // 循环外取一次基准 id,循环内自增,避免逐词全量重扫 + + for (let i = 0; i < selected.length; i += WORD_TRANSLATE_BATCH_SIZE) { + const batch = selected.slice(i, i + WORD_TRANSLATE_BATCH_SIZE); + const end = Math.min(i + batch.length, selected.length); + progress.textContent = `翻译中 ${i + 1}-${end}/${selected.length},一次请求 ${batch.length} 个单词...`; + try { + const results = await translateWords(batch.map(item => item.word)); + if (!isCurrentOperation()) { discardAddedWords(); return; } + // 翻译等待期间用户可能在别处手动加词,刷新基准防止 id 冲突 + nextId = Math.max(nextId, getNextId()); + const resultMap = new Map(results.map(item => [String(item.english || '').trim().toLowerCase(), item])); + + batch.forEach(item => { + const key = item.word.trim().toLowerCase(); + if (!key || handled.has(key)) return; + handled.add(key); + + if (existing.has(key)) { + skipped++; + return; + } + + const base = resultMap.get(key); + if (!base || !String(base.chinese || '').trim()) { + // 缺少中文释义的脏数据不入库,否则本地出题会因缺字段崩溃 + fail++; + return; + } + + const contextSentence = findWordContext(item.word, emailText); + const frequency = item.freq > 0 ? Math.max(base.frequency || 0, item.freq) : base.frequency; + state.words.push({ + id: nextId++, + ...base, + frequency, + sourceContext: contextSentence ? { emailTitle, sentence: contextSentence } : null + }); + const addedWordId = state.words[state.words.length - 1].id; + initWordSchedule(addedWordId, false); + addedWordIds.push(addedWordId); + existing.add(key); + success++; + }); + } catch (err) { + if (!isCurrentOperation()) { discardAddedWords(); return; } + batch.forEach(item => { + const key = item.word.trim().toLowerCase(); + if (!key || handled.has(key)) return; + handled.add(key); + if (existing.has(key)) { skipped++; return; } + fail++; + }); + } + } + + if (success > 0 && !(saveWords() && saveSchedule())) { + discardAddedWords(); + fail += success; + success = 0; + } + + document.getElementById('add-selected-btn').disabled = false; + const skippedText = skipped > 0 ? `,跳过 ${skipped} 个(已在词库)` : ''; + progress.textContent = `完成!成功 ${success} 个,失败 ${fail} 个${skippedText}`; + showToast(`批量添加完成:${success} 成功,${fail} 失败${skippedText}`, success > 0 ? 'success' : 'error'); + + if (success > 0) { + if (isBatch) { + doBatchExtract(); + } else { + const proper = detectProperNouns(emailText); + const refreshed = extractEnglishWords(emailText).filter(w => !COMMON_NAMES.has(w) && !proper.has(w)); + renderWordChips(refreshed); + } + } +} + +export function clearEmailExtract() { + beginExtractGeneration(); + batchMode = false; + batchResults = []; + const ta = document.getElementById('email-input'); + ta.value = ''; + ta.style.height = '200px'; + document.getElementById('word-chips').innerHTML = ''; + document.getElementById('extract-info').textContent = ''; + document.getElementById('extract-actions').style.display = 'none'; + document.getElementById('extract-progress').style.display = 'none'; + const statusEl = document.getElementById('batch-result'); + if (statusEl) statusEl.innerHTML = ''; +} + +export function saveEmailForLearn() { + const text = document.getElementById('email-input').value.trim(); + if (!text) { showToast('请先粘贴邮件内容', 'error'); return; } + const email = { id: Date.now(), content: text, date: getToday(), title: text.slice(0, 50) + '...' }; + state.mailEmails.push(email); + if (!saveEmails()) { + const index = state.mailEmails.indexOf(email); + if (index >= 0) state.mailEmails.splice(index, 1); + return; + } + showToast('邮件已保存,可在「邮件学习」中查看', 'success'); +} + +export async function doBatchExtract() { + const generation = beginExtractGeneration(); + const uploadedTexts = (batchUploadedTexts || []).map(t => t.content); + const savedTexts = state.mailEmails.map(e => e.content); + const allEmails = [...uploadedTexts, ...savedTexts]; + + if (allEmails.length === 0) { showToast('请上传文件或先保存邮件', 'warning'); return; } + + const batchBtn = document.getElementById('batch-extract-btn'); + const chipsContainer = document.getElementById('word-chips'); + if (batchBtn) { batchBtn.disabled = true; batchBtn.innerHTML = ' 提取中...'; } + + let results = extractWithFrequency(allEmails); + if (results.length === 0) { + if (batchBtn) { batchBtn.disabled = false; batchBtn.innerHTML = ' 批量提取'; } + showToast('未提取到有效单词', 'info'); + return; + } + + const words = results.map(r => r.word); + const hasAI = state.settings.apiKey && state.settings.apiUrl && state.settings.model; + let dedupCount = 0; + if (words.length > 0) { + if (hasAI) showToast('正在使用 AI 去重词形变化...', 'info'); + const dedupMapping = hasAI ? await deduplicateWithAI(words) : deduplicateBasic(words); + if (!isCurrentExtractGeneration(generation, chipsContainer)) return; + dedupCount = Object.keys(dedupMapping).length; + if (dedupCount > 0) { + const resultMap = {}; + for (const r of results) resultMap[r.word] = r; + for (const [variant, base] of Object.entries(dedupMapping)) { + if (resultMap[variant] && resultMap[base]) { + resultMap[base].emailCount = Math.max(resultMap[base].emailCount, resultMap[variant].emailCount); + resultMap[base].totalCount += resultMap[variant].totalCount; + } + } + results = results.filter(r => !dedupMapping[r.word]); + } + } + + if (!isCurrentExtractGeneration(generation, chipsContainer)) return; + if (batchBtn?.isConnected) { batchBtn.disabled = false; batchBtn.innerHTML = ' 批量提取'; } + + batchResults = results; + batchMode = true; + + const existingWords = new Set(state.words.map(w => w.english.toLowerCase())); + const infoEl = document.getElementById('extract-info'); + const actionsEl = document.getElementById('extract-actions'); + + if (!chipsContainer) return; + + chipsContainer.innerHTML = results.map(r => { + const isExist = existingWords.has(r.word); + return `${escapeHtml(r.word)} ${r.emailCount}${isExist ? ' \u2713' : ''}`; + }).join(''); + + const selectable = results.filter(r => !existingWords.has(r.word)).length; + const existing = results.length - selectable; + const dedupMsg = dedupCount > 0 ? `,合并 ${dedupCount} 个词形变化` : ''; + if (infoEl) infoEl.textContent = `从 ${allEmails.length} 个来源中提取到 ${results.length} 个单词,${existing} 个已存在,${selectable} 个可添加${dedupMsg}(频次排序)`; + if (actionsEl) actionsEl.style.display = selectable > 0 ? 'flex' : 'none'; + + const statusEl = document.getElementById('batch-result'); + if (statusEl) statusEl.innerHTML = ` 已提取到右侧面板`; + + updateSelectedCount(); + showToast(`批量提取完成:${results.length} 个单词${dedupMsg}`, 'success'); +} + +export function toggleBatchExtract(enabled) { + const previousValue = state.batchExtractEnabled; + state.batchExtractEnabled = !!enabled; + if (!saveJsonSetting(STORAGE_KEYS.batchExtractEnabled, state.batchExtractEnabled)) { + state.batchExtractEnabled = previousValue; + return false; + } + showToast(enabled ? '已开启批量提词模式' : '已关闭批量提词模式', 'info'); + if (state.currentPage === 'settings') renderPage('settings'); + return true; +} + diff --git a/src/js/pages/filter-words.js b/src/js/pages/filter-words.js new file mode 100644 index 0000000..15f81d0 --- /dev/null +++ b/src/js/pages/filter-words.js @@ -0,0 +1,149 @@ +import { COMMON_NAMES, STOP_WORDS } from '../data/stopwords.js'; +import { loadJsonSetting, saveJsonSetting, STORAGE_KEYS } from '../core/storage.js'; +import { showToast } from '../ui/toast.js'; +import { closeModal, showModal } from '../ui/modal.js'; +import { escapeHtml } from '../ui/dom.js'; + +// ==================== Filter Words Management ==================== +function normalizeCustomFilterWords(value) { + const data = value && typeof value === 'object' && !Array.isArray(value) ? value : {}; + const normalizeList = list => Array.isArray(list) + ? [...new Set(list.filter(word => typeof word === 'string').map(word => word.trim().toLowerCase()).filter(Boolean))] + : []; + return { + addedStopWords: normalizeList(data.addedStopWords), + removedStopWords: normalizeList(data.removedStopWords), + addedCommonNames: normalizeList(data.addedCommonNames), + removedCommonNames: normalizeList(data.removedCommonNames) + }; +} + +export function loadCustomFilterWords() { + const data = normalizeCustomFilterWords(loadJsonSetting(STORAGE_KEYS.customFilterWords, {})); + data.addedStopWords.forEach(w => STOP_WORDS.add(w)); + data.removedStopWords.forEach(w => STOP_WORDS.delete(w)); + data.addedCommonNames.forEach(w => COMMON_NAMES.add(w)); + data.removedCommonNames.forEach(w => COMMON_NAMES.delete(w)); +} + +export function saveCustomFilterWords(action, type, word) { + const data = normalizeCustomFilterWords(loadJsonSetting(STORAGE_KEYS.customFilterWords, {})); + + if (type === 'stop') { + if (action === 'add') { + data.addedStopWords = [...new Set([...data.addedStopWords, word])]; + data.removedStopWords = data.removedStopWords.filter(w => w !== word); + } else { + data.removedStopWords = [...new Set([...data.removedStopWords, word])]; + data.addedStopWords = data.addedStopWords.filter(w => w !== word); + } + } else if (type === 'names') { + if (action === 'add') { + data.addedCommonNames = [...new Set([...data.addedCommonNames, word])]; + data.removedCommonNames = data.removedCommonNames.filter(w => w !== word); + } else { + data.removedCommonNames = [...new Set([...data.removedCommonNames, word])]; + data.addedCommonNames = data.addedCommonNames.filter(w => w !== word); + } + } else { + return false; + } + + if (!saveJsonSetting(STORAGE_KEYS.customFilterWords, data)) return false; + const targetSet = type === 'stop' ? STOP_WORDS : COMMON_NAMES; + if (action === 'add') targetSet.add(word); + else targetSet.delete(word); + return true; +} + +export function showFilterWordsModal(type) { + const isStop = type === 'stop'; + const title = isStop ? ' 管理停用词' : ' 管理常见人名'; + const targetSet = isStop ? STOP_WORDS : COMMON_NAMES; + const words = [...targetSet].sort(); + + showModal(title, ` +
+
+ + +
+

多个词用空格或逗号分隔

+
+
+ + +
+
共 ${words.length} 个词,点击词语可删除
+
+ ${words.map(w => `${escapeHtml(w)}`).join('')} +
+ `); + + const input = document.getElementById('filter-word-input'); + if (input) { + input.addEventListener('keydown', e => { + if (e.key === 'Enter') addFilterWord(type); + }); + } +} + +export function addFilterWord(type) { + const input = document.getElementById('filter-word-input'); + if (!input) return; + const raw = input.value.trim().toLowerCase(); + if (!raw) return; + + const newWords = raw.split(/[\s,,]+/).filter(w => w.length > 0); + if (newWords.length === 0) return; + + let added = 0; + const targetSet = type === 'stop' ? STOP_WORDS : COMMON_NAMES; + for (const w of newWords) { + if (!targetSet.has(w) && saveCustomFilterWords('add', type, w)) added++; + } + + input.value = ''; + showToast(`已添加 ${added} 个词`, 'success'); + showFilterWordsModal(type); +} + +export function removeFilterWord(type, word) { + if (!confirm(`确定要删除「${word}」吗?`)) return false; + if (!saveCustomFilterWords('remove', type, word)) return false; + showToast(`已删除「${word}」`, 'info'); + showFilterWordsModal(type); + return true; +} + +export function filterWordSearch(type) { + const q = (document.getElementById('filter-word-search')?.value || '').toLowerCase(); + const container = document.getElementById('filter-words-container'); + if (!container) return; + container.querySelectorAll('.word-chip').forEach(chip => { + chip.style.display = chip.textContent.toLowerCase().includes(q) ? '' : 'none'; + }); +} + +export function copyFilterWords(type) { + const targetSet = type === 'stop' ? STOP_WORDS : COMMON_NAMES; + const name = type === 'stop' ? 'STOP_WORDS' : 'COMMON_NAMES'; + const words = [...targetSet].sort(); + + const lines = []; + for (let i = 0; i < words.length; i += 10) { + const chunk = words.slice(i, i + 10).map(w => `'${w}'`).join(','); + lines.push(' ' + chunk + (i + 10 < words.length ? ',' : '')); + } + + const code = `const ${name} = new Set([\n${lines.join('\n')}\n]);`; + + navigator.clipboard.writeText(code).then(() => { + showToast('已复制到剪贴板,可直接用来修改代码', 'success'); + }).catch(() => { + showModal('复制内容', ``, ` + + `); + }); +} + diff --git a/src/js/pages/home.js b/src/js/pages/home.js new file mode 100644 index 0000000..13a372a --- /dev/null +++ b/src/js/pages/home.js @@ -0,0 +1,91 @@ +import { state } from '../core/state.js'; +import { navigate } from '../core/router.js'; +import { getQuizErrorWords, getStats, getStreak } from '../services/stats.js'; +import { escapeHtml } from '../ui/dom.js'; + +// ==================== Page: Home ==================== +export function renderHome(el) { + const s = getStats(); + const streak = getStreak(); + const errorWords = getQuizErrorWords(); + + const hour = new Date().getHours(); + const greeting = hour < 6 ? '夜深了,注意休息' : hour < 12 ? '早上好,元气满满' : hour < 18 ? '下午好,继续加油' : '晚上好,坚持学习'; + + el.innerHTML = ` + + +
+
+
+
+
${s.total}
+
总单词
+
+
+
+
+
+
${s.mastered}
+
已掌握
+
+
+
+
+
+
${s.learning}
+
学习中
+
+
+
+
+
+
${s.due}
+
错题数
+
+
+
+ +
+
+
+

邮件提词

+

粘贴邮件,智能提取英文单词

+ +
+
+
+

AI 测试

+

智能出题,检测你的掌握程度

+ +
+
+
+

邮件学习

+

${state.mailEmails.length > 0 ? state.mailEmails.length + ' 封已保存邮件' : 'AI 分析邮件,全文学习'}

+ +
+
+ + ${errorWords.length > 0 ? ` +
+

错题单词预览

+
+ ${errorWords.slice(0, 12).map(w => ` +
+
${escapeHtml(w.english)}
+
${escapeHtml(w.chinese)}
+
正确率 ${w.correctRate}%
+
`).join('')} +
+ ${errorWords.length > 12 ? `

还有 ${errorWords.length - 12} 个...

` : ''} +
` : ''} + `; +} + diff --git a/src/js/pages/learn.js b/src/js/pages/learn.js new file mode 100644 index 0000000..a56b5c2 --- /dev/null +++ b/src/js/pages/learn.js @@ -0,0 +1,350 @@ +import { state } from '../core/state.js'; +import { saveJsonSetting, STORAGE_KEYS } from '../core/storage.js'; +import { isFavorite, toggleFavorite } from '../services/favorites.js'; +import { renderPage } from '../core/router.js'; +import { prefetchAudio, speak, speakSlow } from '../services/tts.js'; +import { recordAndUpdateSchedule } from '../services/ebbinghaus.js'; +import { getMastery } from '../services/stats.js'; +import { escapeHtml } from '../ui/dom.js'; +import { closeModal } from '../ui/modal.js'; +import { closeSidebar } from '../ui/sidebar.js'; +import { startReviewSession } from './review.js'; + +// ==================== Page: Learn Session (shared by Review) ==================== +export function startLearnSession(cards) { + if (!Array.isArray(cards) || cards.length === 0) return false; + state.learnSession = { + active: true, + isReview: true, + cards, + index: 0, + flipped: false, + autoDisplay: state.learnAutoDisplay, + results: { know: 0, fuzzy: 0, unknown: 0 }, + rated: [] + }; + renderPage('review'); + setTimeout(() => { + const word = state.learnSession?.cards[0]; + if (word) speak(word.english); + }, 300); + return true; +} + +export function getWeakWords() { + return state.words.filter(w => { + const sch = state.schedule[w.id]; + if (!sch) return false; + const total = sch.correctCount + sch.incorrectCount; + return total > 0 && (sch.incorrectCount / total) > 0.4; + }); +} + +export function renderLearnSession(el) { + const s = state.learnSession; + // 目前仅 startReviewSession 创建会话(均为 review)。非 review 会话不渲染会白屏,此处兜底结束会话 + if (!s || !s.isReview || !Array.isArray(s.cards)) { + console.warn('renderLearnSession: 收到非 review 的 learnSession,已结束该会话'); + endLearnSession(); + return; + } + if (s.index >= s.cards.length) { + renderLearnComplete(el); + return; + } + + const w = s.cards[s.index]; + const progress = ((s.index + 1) / s.cards.length * 100).toFixed(1); + const catMap = { high_frequency: 'HIGH FREQUENCY', medium_frequency: 'MEDIUM FREQUENCY', low_frequency: 'LOW FREQUENCY' }; + const catText = catMap[w.category] || (w.category || '').toUpperCase().replace(/_/g, ' '); + const catClass = w.category === 'high_frequency' ? 'high' : w.category === 'medium_frequency' ? 'mid' : 'low'; + const autoShow = s.autoDisplay !== false; + const isRevealed = autoShow || s.flipped; + const isReview = !!s.isReview; + const alreadyRated = isReview && s.rated && s.rated[s.index]; + + let formsHtml = ''; + if (w.forms) { + formsHtml = Object.entries(w.forms).map(([key, val]) => { + const v = Array.isArray(val) ? val.join(', ') : val; + return `
${escapeHtml(key)}: ${escapeHtml(v)}
`; + }).join(''); + } + const mastery = getMastery(w.id); + const masteryMap = { mastered: '已掌握', learning: '学习中', new: '新词' }; + const safeWord = escapeHtml(w.english); + + const cardHtml = ` +
+
+
${escapeHtml(w.english)}
+
+ ${escapeHtml(w.phonetic || '')} + ${w.frequency != null ? `频次: ${w.frequency}` : ''} +
+ ${catText ? `${escapeHtml(catText)}` : ''} + + ${isRevealed ? ` +
+
${escapeHtml(w.chinese)}
+ ${formsHtml ? `
${formsHtml}
` : ''} +
+ + + +
+ ${w.example ? ` +
+
${escapeHtml(w.example.en)}
+
${escapeHtml(w.example.cn)}
+
` : ''} + ` : ` +
+ + + +
+
点击卡片查看释义
+ `} +
+
${masteryMap[mastery] || '新词'}
+
`; + + const rateHtml = isReview ? ` +
+ ${isRevealed ? ` +
+ + + +
` : `
查看释义后评价
`} +
` : ''; + + if (isReview) { + const statusItems = s.cards.map((c, idx) => { + const rated = s.rated && s.rated[idx]; + const isCurrent = idx === s.index; + let icon = ''; + let labelText = ''; + if (rated === 'know') { icon = ''; labelText = '认识'; } + else if (rated === 'fuzzy') { icon = ''; labelText = '模糊'; } + else if (rated === 'unknown') { icon = ''; labelText = '不认识'; } + const activeClass = isCurrent ? 'review-status-active' : ''; + return `
+ ${icon} + ${escapeHtml(c.english)} + ${labelText ? `${labelText}` : ''} +
`; + }).join(''); + + const cardIndexChanged = state.lastReviewIndex !== s.index; + state.lastReviewIndex = s.index; + + el.innerHTML = ` + +
+
+ +
+
${cardHtml}
+
+
+
+
+

错题进度 ${s.index + 1} / ${s.cards.length}

+
+
${statusItems}
+
+
+
+ `; + if (cardIndexChanged) { + const card = el.querySelector('.lv2-gcard'); + if (card) { card.classList.add('lv2-gcard-anim'); } + } + const list = document.getElementById('review-status-list'); + const activeEl = list?.querySelector('.review-status-active'); + if (activeEl && list) { + const top = activeEl.offsetTop - list.offsetTop; + if (top < list.scrollTop || top + activeEl.offsetHeight > list.scrollTop + list.clientHeight) { + list.scrollTop = top - list.clientHeight / 2 + activeEl.offsetHeight / 2; + } + } + } + prefetchAudio(w.english); + const nextW = s.cards[s.index + 1]; + if (nextW) prefetchAudio(nextW.english); +} + +export function jumpToReviewCard(idx) { + if (!state.learnSession) return; + state.learnSession.index = idx; + state.learnSession.flipped = false; + rerenderLearnSession(); + const s = state.learnSession; + if (s.cards[idx]) { + speak(s.cards[idx].english); + } +} + +export function toggleLearnFavorite(wordId) { + if (!toggleFavorite(wordId)) return false; + const faved = isFavorite(wordId); + const btn = document.getElementById('learn-fav-btn'); + if (btn) { + btn.style.color = faved ? 'var(--warning)' : 'var(--text-muted)'; + btn.title = faved ? '取消收藏' : '收藏'; + } +} + +export function rerenderLearnSession() { + const el = document.getElementById('page-content'); + if (el && state.learnSession && state.learnSession.active) { + renderLearnSession(el); + } else { + renderPage(state.currentPage); + } +} + +export function flipLearnCard() { + if (!state.learnSession) return; + state.learnSession.flipped = !state.learnSession.flipped; + rerenderLearnSession(); +} + +export function rateLearnCard(rating) { + const s = state.learnSession; + if (!s) return; + if (!s.rated) s.rated = []; + + const oldRating = s.rated[s.index]; + if (oldRating || !['know', 'fuzzy', 'unknown'].includes(rating)) return; + + const w = s.cards[s.index]; + const isCorrect = rating === 'know'; + if (!recordAndUpdateSchedule(w.id, isCorrect, 'review', rating)) return; + + s.results[rating]++; + s.rated[s.index] = rating; + s.index++; + s.flipped = false; + rerenderLearnSession(); + if (s.index < s.cards.length) { + speak(s.cards[s.index].english); + } +} + +export function renderLearnComplete(el) { + const s = state.learnSession; + const total = s.cards.length; + + el.innerHTML = ` +
+
+

复习完成!

+

本组共 ${total} 个单词

+
+
+
${s.results.know}
+
认识
+
+
+
${s.results.fuzzy}
+
模糊
+
+
+
${s.results.unknown}
+
不认识
+
+
+
+ + +
+
+ `; +} + +export function startLearnAgain() { + state.learnSession = null; + startReviewSession(); +} + +export function endLearnSession() { + state.learnSession = null; + renderPage(state.currentPage); +} + +export function prevLearnCard() { + if (!state.learnSession || state.learnSession.index <= 0) return; + state.learnSession.index--; + state.learnSession.flipped = false; + rerenderLearnSession(); + const w = state.learnSession.cards[state.learnSession.index]; + if (w) speak(w.english); +} + +export function nextLearnCardDirect() { + const s = state.learnSession; + if (!s || !s.rated?.[s.index]) return; + s.index++; + s.flipped = false; + rerenderLearnSession(); + const w = s.cards[s.index]; + if (w) speak(w.english); +} + +export function toggleLearnAutoDisplay() { + if (!state.learnSession) return false; + const newVal = state.learnSession.autoDisplay === false; + if (!saveJsonSetting(STORAGE_KEYS.learnAutoDisplay, newVal)) return false; + state.learnSession.autoDisplay = newVal; + state.learnAutoDisplay = newVal; + state.learnSession.flipped = false; + rerenderLearnSession(); + return true; +} + + +export function bindLearnKeyboard() { + document.addEventListener('keydown', e => { + if (e.key === 'Escape') { + closeModal(); + closeSidebar(); + return; + } + if (e.target instanceof HTMLElement && (e.target.isContentEditable || /^(INPUT|TEXTAREA|SELECT|BUTTON)$/.test(e.target.tagName))) return; + const s = state.learnSession; + if (!s?.active || s.index >= s.cards.length || document.querySelector('.modal-overlay') || state.currentPage !== 'review') return; + const revealed = s.autoDisplay !== false || s.flipped; + if (e.key === 'ArrowLeft') { + e.preventDefault(); + prevLearnCard(); + } else if (e.key === 'ArrowRight') { + e.preventDefault(); + nextLearnCardDirect(); + } else if (e.key === ' ') { + e.preventDefault(); + if (s.autoDisplay === false && !s.flipped) flipLearnCard(); + else nextLearnCardDirect(); + } else if (e.key === '1' && revealed) { + rateLearnCard('know'); + } else if (e.key === '2' && revealed) { + rateLearnCard('fuzzy'); + } else if (e.key === '3' && revealed) { + rateLearnCard('unknown'); + } + }); +} diff --git a/src/js/pages/mail-learn.js b/src/js/pages/mail-learn.js new file mode 100644 index 0000000..e8283ce --- /dev/null +++ b/src/js/pages/mail-learn.js @@ -0,0 +1,192 @@ +import { state } from '../core/state.js'; +import { saveEmails } from '../core/storage.js'; +import { renderPage } from '../core/router.js'; +import { showToast } from '../ui/toast.js'; +import { speak } from '../services/tts.js'; +import { callAI } from '../services/ai.js'; +import { autoResizeTextarea, escapeHtml, formatMarkdown } from '../ui/dom.js'; + +let mailLearnRequestSeq = 0; + +export function beginMailLearnRequest(resultEl) { + return { seq: ++mailLearnRequestSeq, resultEl }; +} + +export function isCurrentMailLearnRequest(request) { + return request.seq === mailLearnRequestSeq + && request.resultEl.isConnected + && document.getElementById('mail-learn-result') === request.resultEl; +} + +// ==================== Page: Mail Learn (邮件学习) ==================== +export function renderMailLearn(el) { + el.innerHTML = ` + + +
+

粘贴邮件或选择已保存邮件

+ +
+ + + + +
+
+ + ${state.mailEmails.length > 0 ? ` +
+

已保存的邮件 (${state.mailEmails.length})

+
+ ${state.mailEmails.map((m, i) => ` +
+ +
+
${escapeHtml(m.title)}
+
${escapeHtml(m.date)}
+
+ +
`).join('')} +
+
` : ''} + +
+ `; + + const ta = document.getElementById('mail-learn-input'); + ta.addEventListener('input', () => autoResizeTextarea(ta)); + ta.addEventListener('paste', () => setTimeout(() => autoResizeTextarea(ta), 0)); +} + +export function loadSavedEmail(idx) { + const email = state.mailEmails[idx]; + if (email) { + document.getElementById('mail-learn-input').value = email.content; + autoResizeTextarea(document.getElementById('mail-learn-input')); + } +} + +export function deleteSavedEmail(idx) { + if (!confirm('确定删除这封保存的邮件?')) return false; + if (!Number.isInteger(idx) || idx < 0 || idx >= state.mailEmails.length) return false; + const [removedEmail] = state.mailEmails.splice(idx, 1); + if (!saveEmails()) { + state.mailEmails.splice(idx, 0, removedEmail); + return false; + } + renderPage('mail-learn'); + return true; +} + +export async function analyzeEmail() { + const text = document.getElementById('mail-learn-input').value.trim(); + if (!text) { showToast('请粘贴邮件内容', 'error'); return; } + + const resultEl = document.getElementById('mail-learn-result'); + const request = beginMailLearnRequest(resultEl); + resultEl.innerHTML = '
AI 正在分析邮件...
'; + + try { + const knownWords = state.words.map(w => w.english).join(', '); + const prompt = `你是英语邮件学习助手。请分析以下英文邮件,帮助学生学习: + +邮件内容: +""" +${text} +""" + +${knownWords ? `学生已学过的单词:${knownWords}` : ''} + +请从以下方面进行分析(用中文回答): + +1. **邮件主题概述**:简要说明邮件的主要内容和目的(2-3句话) + +2. **重点词汇**:列出邮件中 5-8 个重要/高级的词汇,包含音标、词性、中文释义和在邮件中的含义 + +3. **关键句型**:找出 3-5 个值得学习的句型/表达方式,给出中文翻译和用法说明 + +4. **语法要点**:指出邮件中涉及的 2-3 个语法点 + +5. **商务/邮件礼仪**:如果是商务邮件,说明邮件中的礼貌用语和写作技巧 + +6. **全文翻译**:给出邮件的完整中文翻译`; + + const content = await callAI([ + { role: 'system', content: '你是专业的英语邮件教学助手,分析详细且易于理解。' }, + { role: 'user', content: prompt } + ]); + + if (!isCurrentMailLearnRequest(request)) return; + resultEl.innerHTML = ` +
+

AI 分析结果

+
${formatMarkdown(content)}
+
+ `; + } catch (err) { + if (!isCurrentMailLearnRequest(request)) return; + resultEl.innerHTML = `
分析失败:${escapeHtml(err.message)}
`; + } +} + +export async function translateFullEmail() { + const text = document.getElementById('mail-learn-input').value.trim(); + if (!text) { showToast('请粘贴邮件内容', 'error'); return; } + + const resultEl = document.getElementById('mail-learn-result'); + const request = beginMailLearnRequest(resultEl); + resultEl.innerHTML = '
AI 正在翻译...
'; + + try { + const content = await callAI([ + { role: 'system', content: '你是翻译助手,翻译准确自然。' }, + { role: 'user', content: `请将以下英文邮件翻译为中文,保持格式:\n\n${text}` } + ]); + + if (!isCurrentMailLearnRequest(request)) return; + resultEl.innerHTML = ` +
+

原文

${escapeHtml(text)}
+

翻译

${escapeHtml(content)}
+
+ `; + } catch (err) { + if (!isCurrentMailLearnRequest(request)) return; + resultEl.innerHTML = `
翻译失败:${escapeHtml(err.message)}
`; + } +} + +export function highlightWordsInMail() { + const text = document.getElementById('mail-learn-input').value.trim(); + if (!text) { showToast('请粘贴邮件内容', 'error'); return; } + + const knownSet = new Set(state.words.map(w => w.english.toLowerCase())); + const words = text.split(/(\s+|[,.;:!?'"()\[\]{}<>\/\\—–-])/); + let highlighted = ''; + let matchCount = 0; + + words.forEach(w => { + const clean = w.toLowerCase().replace(/[^a-z]/g, ''); + if (knownSet.has(clean) && clean.length >= 2) { + highlighted += `${escapeHtml(w)}`; + matchCount++; + } else { + highlighted += escapeHtml(w); + } + }); + + const resultEl = document.getElementById('mail-learn-result'); + resultEl.innerHTML = ` +
+

高亮结果 ${matchCount} 个词库单词

+
${highlighted}
+

紫色高亮的单词来自你的词库,点击可以发音

+
+ `; +} + diff --git a/src/js/pages/quiz-audio.js b/src/js/pages/quiz-audio.js new file mode 100644 index 0000000..321525d --- /dev/null +++ b/src/js/pages/quiz-audio.js @@ -0,0 +1,64 @@ +import { state } from '../core/state.js'; +import { + QUIZ_AUDIO_PREFETCH_NEXT_THRESHOLD, + QUIZ_AUDIO_PREFETCH_WINDOW_SIZE, + logTts, + prefetchAudio +} from '../services/tts.js'; + +export function getQuizAudioTexts(questions) { + if (!Array.isArray(questions)) return []; + return questions.map(getQuizAudioText).filter(Boolean); +} + +export function getQuizAudioText(question) { + if (!question) return ''; + if (question.displayWord) return question.displayWord; + if (question.word?.english) return question.word.english; + if (question.wordId) { + const word = state.words.find(w => w.id === question.wordId); + if (word?.english) return word.english; + } + return question.question || ''; +} + +export function createQuizAudioPrefetchState(questions) { + const texts = getQuizAudioTexts(questions); + return { + texts, + nextStart: 0, + prefetchingStarts: new Set() + }; +} + +export function prefetchQuizAudioWindow(session, startIndex = 0) { + if (!session || session.mode !== 'en2zh' || !session.audioPrefetch) return; + const prefetch = session.audioPrefetch; + const start = Math.max(0, startIndex); + if (start >= prefetch.texts.length || prefetch.prefetchingStarts.has(start)) return; + + const end = Math.min(start + QUIZ_AUDIO_PREFETCH_WINDOW_SIZE, prefetch.texts.length); + const windowTexts = prefetch.texts.slice(start, end); + prefetch.prefetchingStarts.add(start); + + void prefetchAudio(windowTexts, 0.92, { allowCloud: true }) + .then(() => { + prefetch.nextStart = Math.max(prefetch.nextStart, end); + }) + .catch(err => { + logTts('quiz audio prefetch failed', err); + prefetch.nextStart = Math.max(prefetch.nextStart, end); + }) + .finally(() => { + prefetch.prefetchingStarts.delete(start); + }); +} + +export function maybePrefetchNextQuizAudioWindow(session) { + if (!session || session.mode !== 'en2zh' || !session.audioPrefetch) return; + const prefetch = session.audioPrefetch; + if (prefetch.nextStart >= prefetch.texts.length) return; + if (prefetch.nextStart - session.index <= QUIZ_AUDIO_PREFETCH_NEXT_THRESHOLD) { + prefetchQuizAudioWindow(session, prefetch.nextStart); + } +} diff --git a/src/js/pages/quiz-session.js b/src/js/pages/quiz-session.js new file mode 100644 index 0000000..88fddd1 --- /dev/null +++ b/src/js/pages/quiz-session.js @@ -0,0 +1,259 @@ +import { LETTERS } from '../constants.js'; +import { state } from '../core/state.js'; +import { renderPage } from '../core/router.js'; +import { isFavorite, toggleFavorite } from '../services/favorites.js'; +import { recordAndUpdateSchedule } from '../services/ebbinghaus.js'; +import { speak } from '../services/tts.js'; +import { escapeHtml } from '../ui/dom.js'; +import { getQuizAudioText, maybePrefetchNextQuizAudioWindow } from './quiz-audio.js'; + +export function renderQuizQuestion(el) { + const s = state.quizSession; + const q = s.questions[s.index]; + const answered = s.answers[s.index] !== undefined; + + const word = q.word || state.words.find(w => w.id === q.wordId); + const catMap = { high_frequency: 'HIGH FREQUENCY', medium_frequency: 'MEDIUM FREQUENCY', low_frequency: 'LOW FREQUENCY' }; + const catText = word ? (catMap[word.category] || (word.category || '').toUpperCase().replace(/_/g, ' ')) : ''; + const catClass = word ? (word.category === 'high_frequency' ? 'high' : word.category === 'medium_frequency' ? 'mid' : 'low') : ''; + let formsHtml = ''; + if (word && word.forms) { + formsHtml = Object.entries(word.forms).map(([key, val]) => { + const v = Array.isArray(val) ? val.join(', ') : val; + return `
${escapeHtml(key)}: ${escapeHtml(v)}
`; + }).join(''); + } + + const wordId = q.wordId || (word ? word.id : null); + const faved = wordId ? isFavorite(wordId) : false; + const safeQuizAudioText = escapeHtml(getQuizAudioText(q)); + const safeWord = escapeHtml(word?.english || ''); + + el.innerHTML = ` + +
+
+
第 ${s.index + 1} / ${s.questions.length} 题
+
+
+
+
${s.correct}
+ ${wordId ? `` : ''} +
+ +
+
+
+
${q.displayWord && q.displayWord !== q.question ? escapeHtml(q.displayWord) : escapeHtml(q.question)}
+ ${q.phonetic ? `
${escapeHtml(q.phonetic)}
` : ''} +
+ +
+ ${q.options.map((opt, i) => { + let cls = ''; + if (answered) { + cls = 'disabled'; + if (i === q.answer) cls += ' correct'; + else if (i === s.answers[s.index] && i !== q.answer) cls += ' wrong'; + } + return ` + `; + }).join('')} +
+ + ${answered ? ` +
+ + +
` : ''} +
+ +
+
+ ${!answered ? `
回答后显示
` : ''} + ${word ? ` +
+
+
${escapeHtml(word.english)}
+
+ ${escapeHtml(word.phonetic || '')} + ${word.frequency != null ? `频次: ${word.frequency}` : ''} +
+ ${catText ? `${escapeHtml(catText)}` : ''} +
+
${escapeHtml(word.chinese)}
+ ${formsHtml ? `
${formsHtml}
` : ''} +
+ + + +
+ ${word.example ? ` +
+
${escapeHtml(word.example.en)}
+
${escapeHtml(word.example.cn)}
+
` : ''} +
+
` : ''} +
+
+
+
+ `; +} + +export function toggleQuizFavorite(wordId) { + if (!toggleFavorite(wordId)) return false; + const faved = isFavorite(wordId); + const headerBtn = document.getElementById('quiz-fav-btn'); + if (headerBtn) { + headerBtn.style.color = faved ? 'var(--warning)' : 'var(--text-muted)'; + headerBtn.title = faved ? '取消收藏' : '收藏'; + } + const detailBtn = document.getElementById('quiz-detail-fav-btn'); + if (detailBtn) { + detailBtn.style.color = faved ? 'var(--warning)' : 'var(--text-muted)'; + detailBtn.title = faved ? '取消收藏' : '收藏'; + } +} + +export function answerQuiz(optionIndex) { + const s = state.quizSession; + if (!s || s.answers[s.index] !== undefined) return; + + const q = s.questions[s.index]; + const isCorrect = optionIndex === q.answer; + + if (q.wordId && !recordAndUpdateSchedule(q.wordId, isCorrect, 'quiz', s.mode, { + removeIncorrectQuizRecords: s.removeCorrectErrors + })) return; + + s.answers[s.index] = optionIndex; + if (isCorrect) s.correct++; + renderPage('quiz'); +} + +export function nextQuizQuestion() { + const s = state.quizSession; + s.index++; + if (s.index >= s.questions.length) { + s.finished = true; + } + renderPage('quiz'); + maybePrefetchNextQuizAudioWindow(s); + if (!s.finished && s.mode === 'en2zh') { + const q = s.questions[s.index]; + speak(getQuizAudioText(q)); + } +} + +export function prevQuizQuestion() { + const s = state.quizSession; + if (!s || s.index <= 0) return; + s.index--; + renderPage('quiz'); + maybePrefetchNextQuizAudioWindow(s); + if (s.mode === 'en2zh') { + const q = s.questions[s.index]; + speak(getQuizAudioText(q)); + } +} + +export function renderQuizResults(el) { + const s = state.quizSession; + const total = s.questions.length; + const pct = Math.round(s.correct / total * 100); + const elapsed = Math.round((Date.now() - s.startTime) / 1000); + const mins = Math.floor(elapsed / 60); + const secs = elapsed % 60; + + const circumference = 2 * Math.PI * 70; + const dashOffset = circumference * (1 - pct / 100); + const ringColor = pct >= 80 ? 'var(--success)' : pct >= 60 ? 'var(--warning)' : 'var(--error)'; + + el.innerHTML = ` + +
+
+
+ + + + +
+ ${pct}% + 正确率 +
+
+ +

+ ${pct >= 80 ? ' 优秀!' + : pct >= 60 ? ' 不错!' + : ' 继续努力!'} +

+ +
+
+
${s.correct}
+
正确
+
+
+
${total - s.correct}
+
错误
+
+
+
${mins}:${secs.toString().padStart(2, '0')}
+
用时
+
+
+ +
+ + +
+
+
+ `; + + requestAnimationFrame(() => { + const ring = el.querySelector('.ring-fill'); + if (ring) ring.setAttribute('stroke-dashoffset', ring.dataset.targetOffset); + }); +} + +export function selectQuizMode(btn, mode) { + document.querySelectorAll('.mode-toggle-btn').forEach(b => b.classList.remove('active')); + btn.classList.add('active'); + document.getElementById('quiz-mode-select').value = mode; + state.quizMode = mode; +} + +export function endQuiz() { + state.quizSession = null; + renderPage('quiz'); +} + +export function restartQuiz() { + state.quizSession = null; + renderPage('quiz'); +} diff --git a/src/js/pages/quiz.js b/src/js/pages/quiz.js new file mode 100644 index 0000000..b807a72 --- /dev/null +++ b/src/js/pages/quiz.js @@ -0,0 +1,373 @@ +import { state } from '../core/state.js'; +import { getFavoriteWords } from '../services/favorites.js'; +import { renderPage } from '../core/router.js'; +import { showToast } from '../ui/toast.js'; +import { speak } from '../services/tts.js'; +import { generateAIQuiz, getAiCooldownRemaining } from '../services/ai.js'; +import { getQuizErrorWords } from '../services/stats.js'; +import { generateLocalQuiz, shuffle } from '../services/quiz-generator.js'; +import { + createQuizAudioPrefetchState, + getQuizAudioText, + prefetchQuizAudioWindow +} from './quiz-audio.js'; +import { renderQuizQuestion, renderQuizResults } from './quiz-session.js'; + +export { + createQuizAudioPrefetchState, + getQuizAudioText, + getQuizAudioTexts, + maybePrefetchNextQuizAudioWindow, + prefetchQuizAudioWindow +} from './quiz-audio.js'; +export { + answerQuiz, + endQuiz, + nextQuizQuestion, + prevQuizQuestion, + renderQuizQuestion, + renderQuizResults, + restartQuiz, + selectQuizMode, + toggleQuizFavorite +} from './quiz-session.js'; + +let quizGeneration = 0; + +function isCurrentQuizGeneration(generation, libraryId) { + return generation === quizGeneration + && state.currentPage === 'quiz' + && state.activeWordLibrary === libraryId; +} + +// ==================== Batch Helpers ==================== +export function getWordBatches(batchSize) { + const batches = []; + for (let i = 0; i < state.words.length; i += batchSize) { + const end = Math.min(i + batchSize, state.words.length); + batches.push({ + index: batches.length, + start: i, + end, + label: `第${batches.length + 1}组`, + range: `${i + 1}-${end}`, + words: state.words.slice(i, end) + }); + } + return batches; +} + +export function getBatchWords(batchSize, batchIndex) { + if (batchIndex < 0) return [...state.words]; + const start = batchIndex * batchSize; + return state.words.slice(start, start + batchSize); +} + +export function onQuizBatchSizeChange(size) { + state.quizBatchSize = size; + state.quizBatchIndex = -1; + rerenderQuizSetup(); +} + +export function selectQuizBatch(index) { + state.quizBatchIndex = index; + rerenderQuizSetup(); +} + +export function rerenderQuizSetup() { + const el = document.getElementById('page-content'); + if (el && state.currentPage === 'quiz' && !(state.quizSession && state.quizSession.active)) { + renderQuiz(el); + } else { + renderPage('quiz'); + } +} +// ==================== Page: Quiz ==================== +export function renderQuiz(el) { + quizGeneration++; + if (state.words.length < 4) { + el.innerHTML = ` + +
+
+

单词不足

+

至少需要 4 个单词才能开始测试

+ +
`; + return; + } + + if (state.quizSession && state.quizSession.active) { + if (state.quizSession.finished) { + renderQuizResults(el); + } else { + renderQuizQuestion(el); + } + return; + } + + const hasAI = state.settings.apiKey && state.settings.apiUrl && state.settings.model; + + const batchWords = getBatchWords(state.quizBatchSize, state.quizBatchIndex); + + el.innerHTML = ` + + +
+
+

测试设置

+
+ +
+ + +
+ +
+
+ + +
+
+ +
+ + +
+
+
+ +
+ ${state.quizBatchIndex === -2 ? ` +
+ +
` : ''} +
+
+ 当前范围 + ${getQuizPoolCount()} 个单词 +
+
${getQuizPoolLabel()}
+
+ +
+ +
+

出题范围

+ ${renderQuizBatchSelector()} +
+
+ `; +} + +export function renderQuizBatchSelector() { + const errorCount = getQuizErrorWords().length; + const favCount = getFavoriteWords().length; + const batches = getWordBatches(state.quizBatchSize); + const bi = state.quizBatchIndex; + const isError = bi === -2, isFav = bi === -3, isGroup = bi >= -1; + + return ` +
+ +
+ + +
+
+
+ + +
+ + ${batches.map(b => ` + + `).join('')} +
+
`; +} + +export function getQuizPoolCount() { + if (state.quizBatchIndex === -2) return getQuizErrorWords().length; + if (state.quizBatchIndex === -3) return getFavoriteWords().length; + return getBatchWords(state.quizBatchSize, state.quizBatchIndex).length; +} + +export function getQuizPoolLabel() { + if (state.quizBatchIndex === -2) return '错题测试'; + if (state.quizBatchIndex === -3) return '收藏测试'; + if (state.quizBatchIndex === -1) return '全部单词'; + return '第' + (state.quizBatchIndex + 1) + '组'; +} + +export async function startQuiz() { + const mode = document.getElementById('quiz-mode-select').value; + const countVal = document.getElementById('quiz-count-select').value; + const quizOrder = document.querySelector('input[name="quiz-order"]:checked')?.value || 'random'; + const useAI = document.getElementById('use-ai').checked; + + const isErrorMode = state.quizBatchIndex === -2; + const removeCorrectEl = document.getElementById('quiz-remove-correct-errors'); + state.quizRemoveCorrectErrors = isErrorMode && removeCorrectEl ? removeCorrectEl.checked : false; + + let batchWords; + if (isErrorMode) { + batchWords = getQuizErrorWords(); + } else if (state.quizBatchIndex === -3) { + batchWords = getFavoriteWords(); + } else { + batchWords = getBatchWords(state.quizBatchSize, state.quizBatchIndex); + } + + if (quizOrder === 'order') { + batchWords = [...batchWords].sort((a, b) => a.id - b.id); + } + + const count = countVal === 'all' ? batchWords.length : parseInt(countVal); + + if (batchWords.length < 4) { + const msg = isErrorMode ? '错题不足4个,无法生成测试' + : state.quizBatchIndex === -3 ? '收藏不足4个,无法生成测试' + : '所选范围内单词不足4个,无法生成测试'; + showToast(msg, 'warning'); + return; + } + + const generation = ++quizGeneration; + const libraryId = state.activeWordLibrary; + let questions; + let lastQuizAI = false; + + const aiCooldownRemaining = useAI ? getAiCooldownRemaining() : 0; + const aiCooling = aiCooldownRemaining > 0; + if (aiCooling) { + const secs = Math.ceil(aiCooldownRemaining / 1000); + showToast(`API 冷却中(${secs}秒),本次使用本地题库`, 'info'); + } + + if (useAI && !aiCooling) { + const el = document.getElementById('page-content'); + el.innerHTML = ` + +
AI 正在出题,请稍候...
`; + + try { + const pool = (quizOrder === 'order' ? batchWords : shuffle(batchWords)).slice(0, Math.min(count * 3, batchWords.length)); + const aiQuestions = await generateAIQuiz(pool, mode, count); + if (!isCurrentQuizGeneration(generation, libraryId)) return; + lastQuizAI = true; + showToast('AI 出题成功', 'success'); + questions = aiQuestions.map((q, i) => { + const tagged = q.options.map((opt, idx) => ({ + text: opt, + correct: idx === q.answer + })); + const shuffled = shuffle(tagged); + const matchedWord = mode === 'en2zh' + ? (pool.find(w => w.english === q.question) + || pool.find(w => q.question.toLowerCase().includes(`'${w.english.toLowerCase()}'`)) + || pool.find(w => q.question.toLowerCase().includes(w.english.toLowerCase()))) + : (pool.find(w => w.chinese === q.question) + || pool.find(w => q.question.includes(w.chinese)) + || pool.find(w => q.options.includes(w.english) && q.question.includes(w.chinese))); + const cleanQuestion = mode === 'zh2en' && matchedWord ? matchedWord.chinese : q.question; + return { + ...q, + question: cleanQuestion, + options: shuffled.map(t => t.text), + answer: shuffled.findIndex(t => t.correct), + wordId: matchedWord?.id || null, + word: matchedWord || null, + phonetic: mode === 'en2zh' ? (matchedWord?.phonetic || '') : null, + displayWord: mode === 'en2zh' ? (matchedWord?.english || null) : null + }; + }); + } catch (e) { + if (!isCurrentQuizGeneration(generation, libraryId)) return; + lastQuizAI = false; + showToast('AI 出题失败,已切换本地题库:' + e.message, 'error'); + questions = generateLocalQuiz(mode, count, batchWords, quizOrder); + } + } else { + questions = generateLocalQuiz(mode, count, batchWords, quizOrder); + } + + if (!isCurrentQuizGeneration(generation, libraryId)) return; + + if (!questions || questions.length === 0) { + showToast('生成题目失败', 'error'); + return; + } + + const audioPrefetch = mode === 'en2zh' ? createQuizAudioPrefetchState(questions) : null; + + const sourceLabel = isErrorMode ? '错题测试' : state.quizBatchIndex === -3 ? '收藏测试' : state.quizBatchIndex === -1 ? '全部' : '第' + (state.quizBatchIndex + 1) + '组'; + const modeLabel = mode === 'en2zh' ? 'ENG → 中文' : '中文 → ENG'; + + state.quizSession = { + active: true, + finished: false, + mode, + questions, + index: 0, + answers: [], + correct: 0, + startTime: Date.now(), + isErrorMode: isErrorMode, + removeCorrectErrors: state.quizRemoveCorrectErrors, + sourceLabel, + modeLabel, + isAI: lastQuizAI, + audioPrefetch + }; + + renderPage('quiz'); + prefetchQuizAudioWindow(state.quizSession, 0); + + if (mode === 'en2zh' && questions.length > 0) { + const q = questions[0]; + speak(getQuizAudioText(q)); + } +} diff --git a/src/js/pages/reader.js b/src/js/pages/reader.js new file mode 100644 index 0000000..7f8d662 --- /dev/null +++ b/src/js/pages/reader.js @@ -0,0 +1,371 @@ +import { STOP_WORDS } from '../data/stopwords.js'; +import { state } from '../core/state.js'; +import { saveSchedule, saveWords } from '../core/storage.js'; +import { showToast } from '../ui/toast.js'; +import { speak } from '../services/tts.js'; +import { callAI, translateWord } from '../services/ai.js'; +import { initWordSchedule } from '../services/ebbinghaus.js'; +import { getMastery } from '../services/stats.js'; +import { escapeHtml, formatFormsHtml } from '../ui/dom.js'; +import { findWordContext } from '../services/extractor.js'; +import { getNextId } from './words.js'; +import { beginMailLearnRequest, isCurrentMailLearnRequest } from './mail-learn.js'; + +export let readerTranslations = {}; +export let readerSentences = []; +let readerSessionGeneration = 0; +// ==================== Full-Text Reading Mode ==================== +export function splitSentences(text) { + const raw = text.split(/(?<=[.!?])\s+|(?:\r?\n){2,}/); + return raw.map(s => s.trim()).filter(s => s.length > 0); +} + +export function isStopWord(w) { return STOP_WORDS.has(w.toLowerCase()); } + +export function buildReadingSentenceHtml(sentence) { + const knownMap = {}; + state.words.forEach(w => { knownMap[w.english.toLowerCase()] = w; }); + + const tokens = sentence.split(/(\s+|[,.;:!?'"()\[\]{}<>\/\\—–\-])/); + let html = ''; + tokens.forEach(tok => { + const clean = tok.toLowerCase().replace(/[^a-z'-]/g, ''); + const word = knownMap[clean]; + if (word && clean.length >= 2) { + html += `${escapeHtml(tok)}`; + } else if (/^[a-zA-Z]{2,}$/.test(clean) && !isStopWord(clean)) { + html += `${escapeHtml(tok)}`; + } else { + html += escapeHtml(tok); + } + }); + return html; +} + +export async function startFullReading() { + const sessionGeneration = ++readerSessionGeneration; + const text = document.getElementById('mail-learn-input').value.trim(); + if (!text) { showToast('请粘贴邮件内容', 'error'); return; } + + const sentences = splitSentences(text); + if (!sentences.length) { showToast('无法解析邮件内容', 'error'); return; } + + const resultEl = document.getElementById('mail-learn-result'); + const request = beginMailLearnRequest(resultEl); + resultEl.innerHTML = '
正在准备全文阅读...
'; + + let translations = {}; + const hasAI = state.settings.apiKey && state.settings.apiUrl && state.settings.model; + + if (hasAI) { + try { + const numbered = sentences.map((s, i) => `${i + 1}. ${s}`).join('\n'); + const content = await callAI([ + { role: 'system', content: '你是翻译助手。用户给出编号的英文句子,请逐句翻译为中文,严格保持编号格式返回。只返回翻译结果,每行格式:编号. 中文翻译' }, + { role: 'user', content: numbered } + ]); + if (sessionGeneration !== readerSessionGeneration || !isCurrentMailLearnRequest(request)) return; + content.split('\n').forEach(line => { + const m = line.match(/^(\d+)\.\s*(.+)/); + if (m) translations[Number(m[1]) - 1] = m[2].trim(); + }); + } catch (err) { + if (sessionGeneration !== readerSessionGeneration || !isCurrentMailLearnRequest(request)) return; + showToast('AI 翻译失败,阅读模式仍可使用:' + err.message, 'warning'); + } + } + + if (sessionGeneration !== readerSessionGeneration || !isCurrentMailLearnRequest(request) || !resultEl.isConnected) return; + const knownCount = countKnownWordsInText(text); + const totalUniqueWords = countUniqueWords(text); + const coveragePct = totalUniqueWords > 0 ? Math.round(knownCount / totalUniqueWords * 100) : 0; + + resultEl.innerHTML = ` +
+
+

全文阅读

+
+ ${sentences.length} 句 + 词库覆盖 ${coveragePct}% + +
+
+
+ 词库中的单词(点击查看详情) + 生词(点击查询) + 点击句子查看翻译 +
+
+ ${sentences.map((s, i) => ` +
+
${i + 1}
+
+
${buildReadingSentenceHtml(s)}
+ +
+ + + ${!translations[i] && hasAI ? `` : ''} +
+
+
`).join('')} +
+
+ + `; + + readerTranslations = translations; + readerSentences = sentences; +} + +export function countKnownWordsInText(text) { + const knownSet = new Set(state.words.map(w => w.english.toLowerCase())); + const tokens = text.match(/\b[a-zA-Z]{2,}\b/g) || []; + const unique = new Set(tokens.map(t => t.toLowerCase())); + let count = 0; + unique.forEach(w => { if (!STOP_WORDS.has(w) && knownSet.has(w)) count++; }); + return count; +} + +export function countUniqueWords(text) { + const tokens = text.match(/\b[a-zA-Z]{2,}\b/g) || []; + const unique = new Set(tokens.map(t => t.toLowerCase())); + let count = 0; + unique.forEach(w => { if (!STOP_WORDS.has(w)) count++; }); + return count; +} + +export function speakSentence(idx) { + const sentences = readerSentences; + if (sentences && sentences[idx]) speak(sentences[idx]); +} + +export function toggleSentenceTranslation(idx) { + const el = document.getElementById(`reader-cn-${idx}`); + if (!el) return; + el.style.display = el.style.display === 'none' ? 'block' : 'none'; +} + +export function toggleAllTranslations() { + const els = document.querySelectorAll('[id^="reader-cn-"]'); + const anyHidden = [...els].some(e => e.style.display === 'none'); + els.forEach(e => { e.style.display = anyHidden ? 'block' : 'none'; }); +} + +export async function aiTranslateSentence(idx, btnEl) { + const sessionGeneration = readerSessionGeneration; + const sentence = readerSentences?.[idx]; + if (!sentence) return; + + const cnEl = document.getElementById(`reader-cn-${idx}`); + if (!cnEl) return; + if (btnEl) btnEl.disabled = true; + + const isCurrentSentence = () => sessionGeneration === readerSessionGeneration + && readerSentences?.[idx] === sentence + && cnEl.isConnected + && (!btnEl || btnEl.isConnected); + + try { + const content = await callAI([ + { role: 'system', content: '你是翻译助手,只返回中文翻译结果,不要任何解释。' }, + { role: 'user', content: `翻译为中文:${sentence}` } + ]); + if (!isCurrentSentence()) return; + const translation = content.trim(); + cnEl.textContent = translation; + cnEl.style.display = 'block'; + readerTranslations[idx] = translation; + if (btnEl) btnEl.remove(); + } catch (err) { + if (!isCurrentSentence()) return; + showToast('翻译失败: ' + err.message, 'error'); + if (btnEl) btnEl.disabled = false; + } +} + +export function positionReaderTooltip(tip, el) { + const margin = 8; + const gap = 6; + const rect = el.getBoundingClientRect(); + const scrollTop = window.scrollY || document.documentElement.scrollTop; + const tipWidth = tip.offsetWidth; + const tipHeight = tip.offsetHeight; + const left = Math.min( + Math.max(rect.left, margin), + Math.max(margin, window.innerWidth - tipWidth - margin) + ); + const top = rect.bottom + gap + tipHeight <= window.innerHeight + ? rect.bottom + scrollTop + gap + : Math.max(scrollTop + margin, rect.top + scrollTop - tipHeight - gap); + + tip.style.left = `${left}px`; + tip.style.top = `${top}px`; +} + +let readerTipCloseHandler = null; +let readerTipCloseTimer = null; +let readerTipSeq = 0; + +function bindReaderTipClose(tip, anchorEl) { + if (readerTipCloseTimer !== null) { + clearTimeout(readerTipCloseTimer); + readerTipCloseTimer = null; + } + if (readerTipCloseHandler) { + document.removeEventListener('click', readerTipCloseHandler); + readerTipCloseHandler = null; + } + const handler = (e) => { + if (!tip.contains(e.target) && e.target !== anchorEl) { + ++readerTipSeq; + tip.style.display = 'none'; + document.removeEventListener('click', handler); + if (readerTipCloseHandler === handler) readerTipCloseHandler = null; + } + }; + readerTipCloseHandler = handler; + readerTipCloseTimer = setTimeout(() => { + readerTipCloseTimer = null; + if (readerTipCloseHandler === handler) { + document.addEventListener('click', handler); + } + }, 10); +} + +export function showReaderWordTip(el, wordId) { + ++readerTipSeq; + const word = state.words.find(w => w.id === wordId); + if (!word) return; + + const tip = document.getElementById('reader-word-tooltip'); + if (!tip) return; + + const mastery = getMastery(word.id); + const masteryText = mastery === 'mastered' ? '已掌握' : mastery === 'learning' ? '学习中' : '新词'; + const badgeClass = mastery === 'mastered' ? 'badge-success' : mastery === 'learning' ? 'badge-warning' : 'badge-primary'; + + tip.innerHTML = ` +
+ ${escapeHtml(word.english)} + ${escapeHtml(word.phonetic || '')} + ${masteryText} + +
+
${escapeHtml(word.chinese || '')}
+ ${word.forms ? `
${formatFormsHtml(word.forms)}
` : ''} + ${word.example ? `
${escapeHtml(word.example.en)}
${escapeHtml(word.example.cn)}
` : ''} + `; + + tip.style.display = 'block'; + positionReaderTooltip(tip, el); + + bindReaderTipClose(tip, el); +} + +export async function showReaderUnknownTip(el, word) { + const tip = document.getElementById('reader-word-tooltip'); + if (!tip) return; + + const seq = ++readerTipSeq; + + tip.innerHTML = ` +
+ ${escapeHtml(word)} + +
+
查询中...
+ `; + + tip.style.display = 'block'; + positionReaderTooltip(tip, el); + + bindReaderTipClose(tip, el); + + const hasAI = state.settings.apiKey && state.settings.apiUrl && state.settings.model; + if (hasAI) { + try { + const result = await translateWord(word); + if (seq !== readerTipSeq) return; + tip.innerHTML = ` +
+ ${escapeHtml(result.english || word)} + ${escapeHtml(result.phonetic || '')} + +
+
${escapeHtml(result.chinese || '')}
+ ${result.forms ? `
${formatFormsHtml(result.forms)}
` : ''} + ${result.example ? `
${escapeHtml(result.example.en)}
${escapeHtml(result.example.cn)}
` : ''} + + `; + positionReaderTooltip(tip, el); + } catch (err) { + if (seq !== readerTipSeq) return; + const cnEl = tip.querySelector('.reader-tip-cn'); + if (cnEl) cnEl.textContent = '查询失败: ' + err.message; + } + } else { + const cnEl = tip.querySelector('.reader-tip-cn'); + if (cnEl) cnEl.textContent = '请先配置 AI 设置以启用翻译'; + } +} + +export async function addWordFromReader(word, btnEl) { + const key = String(word || '').trim().toLowerCase(); + const libraryId = state.activeWordLibrary; + const sessionGeneration = readerSessionGeneration; + const wordExists = () => state.words.some(item => String(item.english || '').trim().toLowerCase() === key); + const isCurrentOperation = () => state.activeWordLibrary === libraryId + && readerSessionGeneration === sessionGeneration + && (!btnEl || btnEl.isConnected); + if (!key) return false; + if (wordExists()) { + showToast(`「${word}」已在词库中`, 'info'); + if (btnEl) { btnEl.disabled = true; btnEl.textContent = '已添加 ✓'; } + return true; + } + + if (btnEl) { btnEl.disabled = true; btnEl.textContent = '添加中...'; } + try { + const result = await translateWord(word); + if (!isCurrentOperation()) return false; + if (wordExists()) { + showToast(`「${word}」已在词库中`, 'info'); + if (btnEl) { btnEl.textContent = '已添加 ✓'; btnEl.classList.remove('btn-primary'); btnEl.classList.add('btn-success'); } + return true; + } + const emailText = document.getElementById('mail-learn-input')?.value || ''; + const contextSentence = findWordContext(word, emailText); + const emailTitle = emailText.slice(0, 40).replace(/\n/g, ' ') + '...'; + + const previousWords = state.words.slice(); + const previousSchedule = { ...state.schedule }; + const id = getNextId(); + state.words.push({ + id, + ...result, + sourceContext: contextSentence ? { emailTitle, sentence: contextSentence } : null + }); + initWordSchedule(id, false); + if (!(saveWords() && saveSchedule())) { + state.words = previousWords; + state.schedule = previousSchedule; + saveWords(); + saveSchedule(); + throw new Error('本地存储写入失败'); + } + showToast(`已添加「${word}」到词库`, 'success'); + if (btnEl) { btnEl.textContent = '已添加 \u2713'; btnEl.classList.remove('btn-primary'); btnEl.classList.add('btn-success'); } + return true; + } catch (err) { + if (!isCurrentOperation()) return false; + showToast('添加失败: ' + err.message, 'error'); + if (btnEl) { btnEl.disabled = false; btnEl.textContent = '重试'; } + return false; + } +} + diff --git a/src/js/pages/review.js b/src/js/pages/review.js new file mode 100644 index 0000000..4af542f --- /dev/null +++ b/src/js/pages/review.js @@ -0,0 +1,143 @@ +import { state } from '../core/state.js'; +import { navigate } from '../core/router.js'; +import { showToast } from '../ui/toast.js'; +import { getQuizErrorWords } from '../services/stats.js'; +import { shuffle } from '../services/quiz-generator.js'; +import { escapeHtml } from '../ui/dom.js'; +import { renderLearnSession, startLearnSession } from './learn.js'; + +// ==================== Page: Review ==================== +export function renderReview(el) { + if (state.words.length === 0) { + el.innerHTML = ` + +
+
+

暂无单词

+

请先导入单词

+ +
`; + return; + } + + if (state.learnSession && state.learnSession.active && state.learnSession.isReview) { + renderLearnSession(el); + return; + } + + const errorWords = getQuizErrorWords(); + + const critical = errorWords.filter(w => w.correctRate < 60); + const moderate = errorWords.filter(w => w.correctRate >= 60 && w.correctRate < 80); + const easy = errorWords.filter(w => w.correctRate >= 80); + + const hasQuizRecords = state.records.some(r => r.type === 'quiz'); + + el.innerHTML = ` + + + ${errorWords.length > 0 ? ` +
+
+
+
+
${errorWords.length}
+
错题总数
+
+
+
+
+
+
${critical.length}
+
需重点复习
+
+
+
+
+
+
${moderate.length}
+
需巩固
+
+
+
+
+
+
${easy.length}
+
接近掌握
+
+
+
` : ` +
+ ${hasQuizRecords + ? `

太棒了,没有错题!

继续保持,坚持练习

` + : `

还没有测试记录

请先进行 AI 测试,错题会自动收集到这里

` + } +
`} + + ${errorWords.length > 0 ? ` +
+

复习说明

+

复习内容来自 AI 测试中答错的单词,按正确率从低到高排列。通过反复练习巩固薄弱环节。

+
+ + ${critical.length > 0 ? ` +
+

需重点复习(正确率 < 60%)

+
+ ${critical.map(w => renderReviewWordItem(w)).join('')} +
+
` : ''} + + ${moderate.length > 0 ? ` +
+

需巩固(正确率 60-80%)

+
+ ${moderate.map(w => renderReviewWordItem(w)).join('')} +
+
` : ''} + + ${easy.length > 0 ? ` +
+

接近掌握(正确率 ≥ 80%)

+
+ ${easy.map(w => renderReviewWordItem(w)).join('')} +
+
` : ''} + ` : ''} + `; +} + +export function renderReviewWordItem(w) { + const stats = w.quizStats || {}; + const total = (stats.correct || 0) + (stats.incorrect || 0); + const rate = w.correctRate != null ? w.correctRate : (total > 0 ? Math.round(stats.correct / total * 100) : '-'); + const borderColor = rate < 60 ? 'var(--error)' : rate < 80 ? 'var(--warning)' : 'var(--success)'; + return ` +
+
${escapeHtml(w.english)}
+
${escapeHtml(w.chinese)}
+
正确 ${stats.correct || 0} 次 · 错误 ${stats.incorrect || 0} 次 · 正确率 ${rate}%
+
`; +} + +export function startReviewSession() { + const errorWords = getQuizErrorWords(); + if (errorWords.length === 0) { + showToast('没有需要复习的错题', 'info'); + return; + } + + startLearnSession(shuffle(errorWords)); +} + diff --git a/src/js/pages/settings-data.js b/src/js/pages/settings-data.js new file mode 100644 index 0000000..384200f --- /dev/null +++ b/src/js/pages/settings-data.js @@ -0,0 +1,419 @@ +import { EBBINGHAUS_INTERVALS, WORD_LIBRARIES } from '../constants.js'; +import { state } from '../core/state.js'; +import { + getLibraryStorageKey, + loadJsonSetting, + saveFavorites, + saveJsonSetting, + snapshotStorageItems, + restoreStorageItems, + STORAGE_KEYS +} from '../core/storage.js'; +import { renderPage } from '../core/router.js'; +import { closeModal, showModal } from '../ui/modal.js'; +import { showToast } from '../ui/toast.js'; +import { getToday } from '../services/ebbinghaus.js'; +import { invalidateErrorWordsCache } from '../services/stats.js'; + +let backupData = null; +let backupReadGeneration = 0; +let backupReadPending = false; + +export function exportAllData() { + const libraries = {}; + WORD_LIBRARIES.forEach(library => { + libraries[library.id] = library.id === state.activeWordLibrary ? { + words: state.words, + records: state.records, + schedule: state.schedule, + favorites: state.favorites + } : { + words: loadJsonSetting(getLibraryStorageKey(STORAGE_KEYS.words, library.id), []), + records: loadJsonSetting(getLibraryStorageKey(STORAGE_KEYS.records, library.id), []), + schedule: loadJsonSetting(getLibraryStorageKey(STORAGE_KEYS.schedule, library.id), {}), + favorites: loadJsonSetting(getLibraryStorageKey(STORAGE_KEYS.favorites, library.id), []) + }; + }); + const data = { + words: state.words, + records: state.records, + schedule: state.schedule, + favorites: state.favorites, + emails: state.mailEmails, + activeWordLibrary: state.activeWordLibrary, + libraries, + settings: Object.fromEntries(Object.entries(state.settings).filter(([key]) => !['apiKey', 'ttsApiKey'].includes(key))), + exportDate: new Date().toISOString() + }; + const blob = new Blob([JSON.stringify(data, null, 2)], { type: 'application/json' }); + const url = URL.createObjectURL(blob); + const a = document.createElement('a'); + a.href = url; + a.download = `ai-english-backup-${getToday()}.json`; + a.click(); + URL.revokeObjectURL(url); + showToast('数据已导出', 'success'); +} + +export function showImportAllModal() { + backupData = null; + backupReadPending = false; + backupReadGeneration++; + showModal(' 导入数据备份', ` +
+ + +

选择之前导出的备份文件

+
+ `, ` + + + `); +} + +export function handleImportBackup(input) { + const generation = ++backupReadGeneration; + backupData = null; + backupReadPending = false; + const importButton = document.getElementById('import-backup-btn'); + if (importButton) importButton.disabled = true; + + const file = input.files[0]; + if (!file) return; + + backupReadPending = true; + const reader = new FileReader(); + reader.onload = e => { + if (generation !== backupReadGeneration) return; + backupReadPending = false; + backupData = typeof e.target.result === 'string' ? e.target.result : null; + if (importButton) importButton.disabled = !backupData; + }; + reader.onerror = () => { + if (generation !== backupReadGeneration) return; + backupReadPending = false; + backupData = null; + if (importButton) importButton.disabled = true; + showToast('备份文件读取失败', 'error'); + }; + reader.readAsText(file); +} + +function normalizeBackupCategory(value) { + return typeof value === 'string' ? value.trim().slice(0, 100) : ''; +} + +function normalizeBackupWords(value) { + if (!Array.isArray(value)) throw new Error('单词数据格式错误'); + const usedIds = new Set(); + return value.map((raw, index) => { + if (!raw || typeof raw !== 'object' || Array.isArray(raw)) throw new Error(`第 ${index + 1} 个单词格式错误`); + const english = typeof raw.english === 'string' ? raw.english.trim() : ''; + const chinese = typeof raw.chinese === 'string' ? raw.chinese.trim() : ''; + if (!english || !chinese) throw new Error(`第 ${index + 1} 个单词缺少英文或释义`); + const numericId = Number(raw.id); + const id = Number.isSafeInteger(numericId) && numericId > 0 ? numericId : index + 1; + if (usedIds.has(id)) throw new Error(`单词 ID 重复:${id}`); + usedIds.add(id); + const word = { ...raw, id, english, chinese }; + if (Object.prototype.hasOwnProperty.call(raw, 'category')) word.category = normalizeBackupCategory(raw.category); + if (typeof raw.phonetic === 'string') word.phonetic = raw.phonetic.slice(0, 200); + if (Number.isFinite(Number(raw.frequency))) word.frequency = Number(raw.frequency); + if (raw.forms && typeof raw.forms === 'object' && !Array.isArray(raw.forms)) { + word.forms = Object.fromEntries(Object.entries(raw.forms).slice(0, 30).map(([key, val]) => [ + String(key).slice(0, 100), + Array.isArray(val) ? val.slice(0, 30).map(item => String(item).slice(0, 200)) : String(val).slice(0, 500) + ])); + } + if (raw.example && typeof raw.example === 'object' && !Array.isArray(raw.example)) { + word.example = { en: String(raw.example.en || '').slice(0, 5000), cn: String(raw.example.cn || '').slice(0, 5000) }; + } + if (raw.sourceContext && typeof raw.sourceContext === 'object' && !Array.isArray(raw.sourceContext)) { + word.sourceContext = { + emailTitle: String(raw.sourceContext.emailTitle || '').slice(0, 500), + sentence: String(raw.sourceContext.sentence || '').slice(0, 5000) + }; + } + return word; + }); +} + +function normalizeBackupSchedule(value) { + if (!value || typeof value !== 'object' || Array.isArray(value)) throw new Error('复习计划格式错误'); + const schedule = {}; + Object.entries(value).forEach(([wordId, raw]) => { + if (!raw || typeof raw !== 'object' || Array.isArray(raw)) return; + const numericWordId = Number(wordId); + if (!Number.isSafeInteger(numericWordId) || numericWordId <= 0) return; + const numericStage = Number(raw.stage); + const stage = Number.isFinite(numericStage) + ? Math.min(EBBINGHAUS_INTERVALS.length - 1, Math.max(0, Math.trunc(numericStage))) + : 0; + const normalizeCount = count => { + const numericCount = Number(count); + return Number.isFinite(numericCount) ? Math.max(0, Math.trunc(numericCount)) : 0; + }; + const nextReview = typeof raw.nextReview === 'string' && /^\d{4}-\d{2}-\d{2}$/.test(raw.nextReview) + ? raw.nextReview + : getToday(); + schedule[numericWordId] = { + stage, + nextReview, + correctCount: normalizeCount(raw.correctCount), + incorrectCount: normalizeCount(raw.incorrectCount) + }; + }); + return schedule; +} + +function normalizeBackupEmails(value) { + if (!Array.isArray(value)) throw new Error('邮件数据格式错误'); + return value.map((raw, index) => { + if (!raw || typeof raw !== 'object' || Array.isArray(raw)) throw new Error(`第 ${index + 1} 封邮件格式错误`); + return { + ...raw, + id: Number.isSafeInteger(Number(raw.id)) ? Number(raw.id) : index + 1, + title: String(raw.title || '').trim().slice(0, 500), + content: String(raw.content || '').slice(0, 200000), + date: String(raw.date || '').trim().slice(0, 100) + }; + }); +} + +function normalizeBackupRecords(value) { + if (!Array.isArray(value)) throw new Error('学习记录格式错误'); + return value.map((raw, index) => { + if (!raw || typeof raw !== 'object' || Array.isArray(raw)) throw new Error(`第 ${index + 1} 条学习记录格式错误`); + const wordId = Number(raw.wordId); + if (!Number.isSafeInteger(wordId) || wordId <= 0) throw new Error(`第 ${index + 1} 条学习记录的单词 ID 无效`); + if (typeof raw.isCorrect !== 'boolean') throw new Error(`第 ${index + 1} 条学习记录的答题结果无效`); + if (raw.type !== 'quiz' && raw.type !== 'review') throw new Error(`第 ${index + 1} 条学习记录的类型无效`); + const time = Number(raw.time); + return { + ...raw, + wordId, + date: typeof raw.date === 'string' && /^\d{4}-\d{2}-\d{2}$/.test(raw.date) ? raw.date : getToday(), + time: Number.isFinite(time) && time >= 0 ? time : Date.now(), + isCorrect: raw.isCorrect, + type: raw.type, + quizMode: typeof raw.quizMode === 'string' ? raw.quizMode.slice(0, 100) : '' + }; + }); +} + +function normalizeBackupFavorites(value) { + if (!Array.isArray(value)) throw new Error('收藏数据格式错误'); + return [...new Set(value.map(Number).filter(id => Number.isSafeInteger(id) && id > 0))]; +} + +function normalizeBackupLibrary(raw) { + if (!raw || typeof raw !== 'object' || Array.isArray(raw)) throw new Error('词库数据格式错误'); + return { + words: normalizeBackupWords(raw.words ?? []), + records: normalizeBackupRecords(raw.records ?? []), + schedule: normalizeBackupSchedule(raw.schedule ?? {}), + favorites: normalizeBackupFavorites(raw.favorites ?? []) + }; +} + +export function doImportBackup() { + if (backupReadPending) { + showToast('文件仍在读取中,请稍候', 'warning'); + return; + } + if (!backupData) { + showToast('请选择文件', 'warning'); + return; + } + const memorySnapshot = { + activeWordLibrary: state.activeWordLibrary, + words: state.words, + records: state.records, + schedule: state.schedule, + favorites: state.favorites, + mailEmails: state.mailEmails, + settings: state.settings + }; + const storageSnapshot = new Map(); + const rememberStorage = key => { + if (!storageSnapshot.has(key)) storageSnapshot.set(key, localStorage.getItem(key)); + }; + const persist = (key, value) => { + rememberStorage(key); + if (!saveJsonSetting(key, value)) throw new Error('本地存储写入失败'); + }; + + try { + const data = JSON.parse(backupData); + if (!data || typeof data !== 'object' || Array.isArray(data)) throw new Error('备份数据格式错误'); + const activeWordLibrary = WORD_LIBRARIES.some(library => library.id === data.activeWordLibrary) + ? data.activeWordLibrary + : state.activeWordLibrary; + const libraries = {}; + if (data.libraries != null) { + if (typeof data.libraries !== 'object' || Array.isArray(data.libraries)) throw new Error('词库备份格式错误'); + WORD_LIBRARIES.forEach(library => { + if (Object.prototype.hasOwnProperty.call(data.libraries, library.id)) { + libraries[library.id] = normalizeBackupLibrary(data.libraries[library.id]); + } + }); + } + + let activeLibrary = libraries[activeWordLibrary] || { + words: state.words, + records: state.records, + schedule: state.schedule, + favorites: state.favorites + }; + activeLibrary = { + words: data.words == null ? activeLibrary.words : normalizeBackupWords(data.words), + records: data.records == null ? normalizeBackupRecords(activeLibrary.records) : normalizeBackupRecords(data.records), + schedule: data.schedule == null ? normalizeBackupSchedule(activeLibrary.schedule) : normalizeBackupSchedule(data.schedule), + favorites: data.favorites == null ? normalizeBackupFavorites(activeLibrary.favorites) : normalizeBackupFavorites(data.favorites) + }; + libraries[activeWordLibrary] = activeLibrary; + const emails = data.emails == null ? state.mailEmails : normalizeBackupEmails(data.emails); + const settings = { ...state.settings }; + if (data.settings != null) { + if (!data.settings || typeof data.settings !== 'object' || Array.isArray(data.settings)) throw new Error('设置数据格式错误'); + const stringSettings = ['apiUrl', 'model', 'ttsProvider', 'ttsEndpoint', 'ttsRegion', 'ttsVoice', 'ttsOutputFormat']; + stringSettings.forEach(key => { + if (typeof data.settings[key] === 'string') settings[key] = data.settings[key].trim().slice(0, 1000); + }); + ['ttsEnabled', 'ttsPrefetchEnabled'].forEach(key => { + if (typeof data.settings[key] === 'boolean') settings[key] = data.settings[key]; + }); + } + + Object.entries(libraries).forEach(([libraryId, lib]) => { + persist(getLibraryStorageKey(STORAGE_KEYS.words, libraryId), lib.words); + persist(getLibraryStorageKey(STORAGE_KEYS.records, libraryId), lib.records); + persist(getLibraryStorageKey(STORAGE_KEYS.schedule, libraryId), lib.schedule); + persist(getLibraryStorageKey(STORAGE_KEYS.favorites, libraryId), lib.favorites); + }); + persist(STORAGE_KEYS.mailEmails, emails); + persist(STORAGE_KEYS.settings, settings); + rememberStorage(STORAGE_KEYS.activeWordLibrary); + localStorage.setItem(STORAGE_KEYS.activeWordLibrary, activeWordLibrary); + + state.activeWordLibrary = activeWordLibrary; + state.words = activeLibrary.words; + state.records = activeLibrary.records; + state.schedule = activeLibrary.schedule; + state.favorites = activeLibrary.favorites; + state.mailEmails = emails; + state.settings = settings; + invalidateErrorWordsCache(); + closeModal(); + state.learnSession = null; + state.quizSession = null; + showToast('数据恢复成功', 'success'); + renderPage(state.currentPage); + } catch (e) { + state.activeWordLibrary = memorySnapshot.activeWordLibrary; + state.words = memorySnapshot.words; + state.records = memorySnapshot.records; + state.schedule = memorySnapshot.schedule; + state.favorites = memorySnapshot.favorites; + state.mailEmails = memorySnapshot.mailEmails; + state.settings = memorySnapshot.settings; + storageSnapshot.forEach((value, key) => { + try { + if (value == null) localStorage.removeItem(key); + else localStorage.setItem(key, value); + } catch (restoreError) { + console.error(`恢复本地存储失败:${key}`, restoreError); + } + }); + showToast('导入失败:' + e.message, 'error'); + } +} + +export function clearAllData() { + if (!confirm('确定要清空所有数据吗?(所有词库的单词、学习记录、复习计划和保存邮件都将被删除,收藏单词将保留,此操作不可恢复!)')) return false; + if (!confirm('再次确认:所有词库的数据将永久删除且无法恢复(收藏单词保留),是否继续?')) return false; + + const libraryKeys = WORD_LIBRARIES.flatMap(library => [ + getLibraryStorageKey(STORAGE_KEYS.words, library.id), + getLibraryStorageKey(STORAGE_KEYS.records, library.id), + getLibraryStorageKey(STORAGE_KEYS.schedule, library.id), + getLibraryStorageKey(STORAGE_KEYS.favorites, library.id) + ]); + const storageSnapshot = snapshotStorageItems([...libraryKeys, STORAGE_KEYS.mailEmails]); + if (!storageSnapshot) { + showToast('无法读取本地存储,清空操作已取消', 'error'); + return false; + } + + const memorySnapshot = { + words: state.words, + records: state.records, + schedule: state.schedule, + favorites: state.favorites, + mailEmails: state.mailEmails + }; + const clearedLibraries = {}; + + try { + WORD_LIBRARIES.forEach(library => { + const words = library.id === state.activeWordLibrary + ? state.words + : loadJsonSetting(getLibraryStorageKey(STORAGE_KEYS.words, library.id), []); + const favorites = library.id === state.activeWordLibrary + ? state.favorites + : loadJsonSetting(getLibraryStorageKey(STORAGE_KEYS.favorites, library.id), []); + const favoriteIds = new Set(Array.isArray(favorites) ? favorites : []); + const keptWords = (Array.isArray(words) ? words : []).filter(word => favoriteIds.has(word.id)); + const schedule = Object.fromEntries(keptWords.map(word => [word.id, { + stage: 0, + nextReview: getToday(), + correctCount: 0, + incorrectCount: 0 + }])); + const cleared = { words: keptWords, records: [], schedule, favorites: keptWords.map(word => word.id) }; + clearedLibraries[library.id] = cleared; + if (!saveJsonSetting(getLibraryStorageKey(STORAGE_KEYS.words, library.id), cleared.words) + || !saveJsonSetting(getLibraryStorageKey(STORAGE_KEYS.records, library.id), cleared.records) + || !saveJsonSetting(getLibraryStorageKey(STORAGE_KEYS.schedule, library.id), cleared.schedule) + || !saveJsonSetting(getLibraryStorageKey(STORAGE_KEYS.favorites, library.id), cleared.favorites)) { + throw new Error('本地存储写入失败'); + } + }); + if (!saveJsonSetting(STORAGE_KEYS.mailEmails, [])) throw new Error('邮件数据清除失败'); + } catch (error) { + restoreStorageItems(storageSnapshot); + Object.assign(state, memorySnapshot); + showToast('清空失败:' + error.message, 'error'); + renderPage('settings'); + return false; + } + + const activeLibrary = clearedLibraries[state.activeWordLibrary]; + state.words = activeLibrary.words; + state.records = activeLibrary.records; + state.schedule = activeLibrary.schedule; + state.favorites = activeLibrary.favorites; + state.mailEmails = []; + state.learnSession = null; + state.quizSession = null; + invalidateErrorWordsCache(); + const keptCount = Object.values(clearedLibraries).reduce((count, library) => count + library.words.length, 0); + const keptMsg = keptCount > 0 ? `,保留了 ${keptCount} 个收藏单词` : ''; + showToast('所有词库数据已清空' + keptMsg, 'info'); + renderPage('settings'); + return true; +} + +export function clearFavorites() { + if (!confirm('确定要清除所有收藏单词吗?此操作不可恢复!')) return false; + const previousFavorites = state.favorites; + state.favorites = []; + if (!saveFavorites()) { + state.favorites = previousFavorites; + renderPage('settings'); + return false; + } + showToast('收藏单词已清除', 'info'); + renderPage('settings'); + return true; +} diff --git a/src/js/pages/settings.js b/src/js/pages/settings.js new file mode 100644 index 0000000..1e6ab54 --- /dev/null +++ b/src/js/pages/settings.js @@ -0,0 +1,405 @@ +import { WORD_LIBRARIES } from '../constants.js'; +import { COMMON_NAMES, STOP_WORDS } from '../data/stopwords.js'; +import { state } from '../core/state.js'; +import { saveJsonSetting, saveSettings, STORAGE_KEYS } from '../core/storage.js'; +import { renderPage } from '../core/router.js'; +import { showToast } from '../ui/toast.js'; +import { clearCloudTtsCache, getTtsSettings, resetCloudTtsAuthBlock, sanitizeAzureSpeechKey, testCloudTtsConnection as testAzureTTSConnection } from '../services/tts.js'; +import { callAI } from '../services/ai.js'; +import { escapeHtml } from '../ui/dom.js'; +export { toggleBatchExtract } from './extract.js'; +export { showFilterWordsModal } from './filter-words.js'; +export { manualLoadWords, switchWordLibrary, toggleAutoLoad } from '../services/library.js'; +export { clearAllData, clearFavorites, doImportBackup, exportAllData, handleImportBackup, showImportAllModal } from './settings-data.js'; +// ==================== Page: Settings ==================== +export function renderSettings(el) { + const s = state.settings; + + el.innerHTML = ` + + +
+
+

AI 模型配置

+
+ + +
+
+ + +

格式:https://your-api.com/v1

+
+
+ + +
+
+ + +
+
+ +
+

TTS 语音配置

+

优先使用云端 TTS 朗读,失败后自动回退到有道发音。

+
+
+
+
启用云端 TTS
+
开启后朗读会优先调用下面配置的 TTS 模型
+
+
+
+
+
+ + +
+
+ + +

例如 eastus,需与 API Key 所属区域一致。

+
+
+ + +
+
+
+
+
预取 Azure TTS 音频
+
提前生成 Azure 音频,减少播放等待,但会消耗更多请求额度
+
+
+
+
+
+ + +
+
+ +
+

数据管理

+

所有数据存储在浏览器本地,清除浏览器数据会丢失。建议定期导出备份。

+
+
+
${state.words.length}
+
单词
+
+
+
${state.records.length}
+
学习记录
+
+
+
${Object.keys(state.schedule).length}
+
复习计划
+
+
+
${state.favorites.length}
+
收藏单词
+
+
+
${state.mailEmails.length}
+
保存邮件
+
+
+
+ + +
+
+
+ + +
+

清空数据不可恢复,AI 配置和收藏单词将保留

+
+
+
+ +
+
+

词库与提词

+ +
+
当前单词库
+
切换后会使用所选词库,并为每个词库分别保留学习进度和收藏。
+
+ + +
+
+ +
+
+
+
+
+
+
启动时自动加载内置词库
+
若词库为空,自动加载 data/ 目录下的单词文件
+
+
+ +
+ +
+
+
+
+
+
+
邮件批量提词
+
在提词页面显示批量提取功能,支持上传文件并统计词频
+
+
+
+ +
+
过滤词管理
+

管理提词时自动排除的停用词和常见人名

+
+ + +
+
+
+ +
+

自动播放设置

+

配置单词库自动播放时的朗读次数和间隔时间

+ +
+
每个单词朗读次数
+
+ + + +
+
+ +
+
重复朗读间隔
+
同一单词多次朗读之间的间隔时间
+
+ + 毫秒(留空使用默认 1 秒) +
+
+ +
+
单词切换间隔
+
自动播放时切换到下一个单词的间隔时间
+
+ + 毫秒(留空使用默认 2.5 秒) +
+
+ +
+
播放时滚动方式
+
自动播放切换单词时,页面滚动行为
+
+ + +
+
+ +
+ +
+
+ +
+

应用更新

+

如果 iPhone Safari 仍显示旧版本,可重新获取最新页面和程序文件。单词、学习记录、收藏及设置不会被清除。

+
+ +
+
+
+ `; +} + +export async function forceRefreshBrowserCache() { + if (!confirm('确定获取最新版本并重新加载吗?本地学习数据和设置不会被删除。')) return; + + const button = document.getElementById('force-refresh-btn'); + if (button) { + button.disabled = true; + button.innerHTML = ' 正在获取最新版本...'; + } + + try { + // 当前无 Service Worker,Cache Storage 通常为空;此处为将来引入 SW 时的前瞻兼容。 + // 真正的缓存绕过依赖下方的时间戳 URL + 静态资源 ?v= 版本号。 + if ('caches' in window) { + const cacheNames = await caches.keys(); + await Promise.all(cacheNames.map(cacheName => caches.delete(cacheName))); + } + } catch (error) { + console.warn('清理应用缓存失败,将继续重新加载:', error); + } + + const url = new URL(window.location.href); + url.searchParams.set('_app_update', Date.now().toString()); + window.location.replace(url.toString()); +} + +export function setAutoPlayRepeat(count) { + const previousValue = state.autoPlayRepeat; + state.autoPlayRepeat = count; + if (!saveJsonSetting(STORAGE_KEYS.autoPlayRepeat, count)) { + state.autoPlayRepeat = previousValue; + return false; + } + const delayEl = document.getElementById('repeat-delay-setting'); + if (delayEl) delayEl.style.display = count <= 1 ? 'none' : ''; + if (state.currentPage === 'settings') renderPage('settings'); + return true; +} + +export function setAutoPlayScrollMode(mode) { + const previousValue = state.autoPlayScrollMode; + state.autoPlayScrollMode = mode === 'visible' ? 'visible' : 'center'; + if (!saveJsonSetting(STORAGE_KEYS.autoPlayScrollMode, state.autoPlayScrollMode)) { + state.autoPlayScrollMode = previousValue; + return false; + } + if (state.currentPage === 'settings') renderPage('settings'); + return true; +} + +export function saveAutoPlaySettings() { + const intervalVal = parseInt(document.getElementById('set-word-interval').value) || 0; + const repeatDelayVal = parseInt(document.getElementById('set-repeat-delay').value) || 0; + const previousInterval = state.autoPlayInterval; + const previousRepeatDelay = state.autoPlayRepeatDelay; + state.autoPlayInterval = intervalVal; + state.autoPlayRepeatDelay = repeatDelayVal; + const saved = saveJsonSetting(STORAGE_KEYS.autoPlayInterval, intervalVal) + && saveJsonSetting(STORAGE_KEYS.autoPlayRepeatDelay, repeatDelayVal); + if (!saved) { + state.autoPlayInterval = previousInterval; + state.autoPlayRepeatDelay = previousRepeatDelay; + saveJsonSetting(STORAGE_KEYS.autoPlayInterval, previousInterval); + saveJsonSetting(STORAGE_KEYS.autoPlayRepeatDelay, previousRepeatDelay); + return false; + } + showToast('播放设置已保存', 'success'); + return true; +} + +function valueById(id, fallback = '') { + const el = document.getElementById(id); + return el ? el.value.trim() : fallback; +} + +function syncSettingsFromForm() { + state.settings = { + ...state.settings, + apiKey: valueById('set-api-key', state.settings.apiKey || ''), + apiUrl: valueById('set-api-url', state.settings.apiUrl || '').replace(/\/$/, ''), + model: valueById('set-model', state.settings.model || ''), + ttsProvider: 'azure', + ttsApiKey: sanitizeAzureSpeechKey(valueById('set-tts-api-key', state.settings.ttsApiKey || '')), + ttsEndpoint: '', + ttsRegion: valueById('set-tts-region', state.settings.ttsRegion || 'eastus').toLowerCase(), + ttsVoice: valueById('set-tts-voice', state.settings.ttsVoice || 'en-US-JennyNeural'), + ttsOutputFormat: 'audio-24khz-48kbitrate-mono-mp3', + ttsPrefetchEnabled: state.settings.ttsPrefetchEnabled === true + }; +} + +export function toggleTtsEnabled() { + const previousSettings = state.settings; + syncSettingsFromForm(); + state.settings.ttsEnabled = state.settings.ttsEnabled === false; + resetCloudTtsAuthBlock(); + clearCloudTtsCache(); + if (!saveSettings()) { + state.settings = previousSettings; + return false; + } + renderPage('settings'); + return true; +} + +export function toggleTtsPrefetchEnabled() { + const previousSettings = state.settings; + syncSettingsFromForm(); + state.settings.ttsPrefetchEnabled = state.settings.ttsPrefetchEnabled !== true; + if (!saveSettings()) { + state.settings = previousSettings; + return false; + } + renderPage('settings'); + return true; +} + +function persistSettings() { + const previousSettings = state.settings; + syncSettingsFromForm(); + resetCloudTtsAuthBlock(); + clearCloudTtsCache(); + if (saveSettings()) return true; + state.settings = previousSettings; + return false; +} + +export function doSaveSettings() { + if (!persistSettings()) return false; + showToast('设置已保存', 'success'); + return true; +} + +export async function testTTSConnection() { + if (!persistSettings()) return; + const cfg = getTtsSettings(); + if (!cfg.enabled) { + showToast('请先启用云端 TTS', 'warning'); + return; + } + if (!cfg.apiKey || !cfg.region || !cfg.voice) { + showToast('请填写 TTS API Key、Region 和 Voice', 'warning'); + return; + } + showToast('正在测试 TTS...', 'info'); + try { + const played = await testAzureTTSConnection(); + showToast(played ? 'TTS 测试成功' : 'TTS 未播放:请检查配置或稍后重试', played ? 'success' : 'warning'); + } catch (e) { + showToast('TTS 测试失败:' + e.message, 'error'); + } +} + +export async function testAIConnection() { + if (!doSaveSettings()) return; + + if (!state.settings.apiKey || !state.settings.apiUrl || !state.settings.model) { + showToast('请填写所有配置项', 'warning'); + return; + } + + showToast('正在测试连接...', 'info'); + + try { + const reply = await callAI([ + { role: 'user', content: '请回复"连接成功"四个字' } + ]); + showToast('连接成功!AI 回复:' + reply.slice(0, 50), 'success'); + } catch (e) { + showToast('连接失败:' + e.message, 'error'); + } +} diff --git a/src/js/pages/stats.js b/src/js/pages/stats.js new file mode 100644 index 0000000..194ee86 --- /dev/null +++ b/src/js/pages/stats.js @@ -0,0 +1,216 @@ +import { state } from '../core/state.js'; +import { getToday } from '../services/ebbinghaus.js'; +import { getErrorTopWords, getLast30DaysData, getStats, getStreak } from '../services/stats.js'; +import { escapeHtml } from '../ui/dom.js'; + +let studyChart = null; +// ==================== Page: Stats ==================== +export function renderStats(el) { + destroyStudyChart(); + if (state.records.length === 0 && state.words.length === 0) { + el.innerHTML = ` + +
+
+

暂无数据

+

开始学习后这里会显示你的统计数据

+
`; + return; + } + + const s = getStats(); + const streak = getStreak(); + const todayRecords = state.records.filter(r => r.date === getToday()); + const todayCorrect = todayRecords.filter(r => r.isCorrect).length; + const todayTotal = todayRecords.length; + const todayRate = todayTotal > 0 ? Math.round(todayCorrect / todayTotal * 100) : 0; + + const allCorrect = state.records.filter(r => r.isCorrect).length; + const allTotal = state.records.length; + const allRate = allTotal > 0 ? Math.round(allCorrect / allTotal * 100) : 0; + + const dailyData = getLast30DaysData(); + const errorTop = getErrorTopWords(10); + + el.innerHTML = ` + + +
+
+
+
+
+
+
${s.total}
+
总单词
+
+
+
+
+
+
${s.mastered}
+
已掌握
+
+
+
+
+
+
${streak}
+
连续天数
+
+
+
+
+
+
${allRate}%
+
总正确率
+
+
+
+
+
+
${todayTotal}
+
今日练习次数
+
+
+
+
+
+
${todayRate}%
+
今日正确率
+
+
+
+
+

近30天学习量

+
+ +
+
+
+ +
+

最容易出错的单词 Top 10

+ ${errorTop.length > 0 ? ` +
+ + + + ${errorTop.map(w => { + const color = w.rate < 40 ? 'var(--error)' : w.rate < 70 ? 'var(--warning)' : 'var(--success)'; + return ` + + + + + + `; + }).join('')} + +
单词释义正确率次数
${escapeHtml(w.english)}${escapeHtml(w.chinese)} + ${w.rate}% +
+
${w.total}
+
` : '

暂无测试数据

完成 AI 测试后,错误统计将在此展示

'} +
+
+ +
+

掌握程度分布

+
+
+ 已掌握${s.mastered} +
+
+
+
+
+ 学习中${s.learning} +
+
+
+
+
+ 新词${s.newCount} +
+
+
+
+
+
+ `; + + renderStudyChart(dailyData); +} + +export function destroyStudyChart() { + if (!studyChart) return; + studyChart.destroy(); + studyChart = null; +} + +export function refreshStudyChart() { + if (!document.getElementById('study-chart')) return; + renderStudyChart(getLast30DaysData()); +} + +export function renderStudyChart(dailyData) { + const ctx = document.getElementById('study-chart'); + if (!ctx || typeof globalThis.Chart === 'undefined') return; + + destroyStudyChart(); + + const isDark = document.documentElement.getAttribute('data-theme') === 'dark'; + const gridColor = isDark ? 'rgba(148, 163, 184, 0.1)' : 'rgba(148, 163, 184, 0.15)'; + const textColor = isDark ? '#94a3b8' : '#64748b'; + + studyChart = new globalThis.Chart(ctx, { + type: 'bar', + data: { + labels: dailyData.map(d => d.label), + datasets: [{ + label: '每日学习量', + data: dailyData.map(d => d.count), + backgroundColor: 'rgba(99, 102, 241, 0.7)', + hoverBackgroundColor: 'rgba(99, 102, 241, 0.9)', + borderRadius: 4, + borderSkipped: false + }] + }, + options: { + responsive: true, + maintainAspectRatio: false, + plugins: { + legend: { display: false }, + tooltip: { + backgroundColor: isDark ? '#334155' : '#1e293b', + titleFont: { size: 12 }, + bodyFont: { size: 13 }, + padding: 10, + cornerRadius: 8 + } + }, + scales: { + y: { + beginAtZero: true, + grid: { color: gridColor }, + ticks: { color: textColor, font: { size: 11 } } + }, + x: { + grid: { display: false }, + ticks: { color: textColor, font: { size: 10 }, maxRotation: 45 } + } + } + } + }); +} diff --git a/src/js/pages/words-autoplay.js b/src/js/pages/words-autoplay.js new file mode 100644 index 0000000..6ce0c24 --- /dev/null +++ b/src/js/pages/words-autoplay.js @@ -0,0 +1,106 @@ +import { state } from '../core/state.js'; +import { logTts, prefetchAudio, speak, stopAllAudio } from '../services/tts.js'; + +let autoPlayActive = false; +let autoPlayTimer = null; + +export function toggleAutoPlay() { + if (autoPlayActive) stopAutoPlay(); + else startAutoPlay(); +} + +export function startAutoPlay() { + const rows = document.querySelectorAll('.word-table tbody tr[data-word-id]'); + const wordIds = Array.from(rows).map(row => Number.parseInt(row.dataset.wordId, 10)); + if (wordIds.length === 0) return; + + autoPlayActive = true; + updateAutoPlayBtn(); + prefetchWordListAudio(wordIds); + playWordSequence(wordIds, 0); +} + +export function prefetchWordListAudio(wordIds) { + const texts = wordIds + .map(id => state.words.find(word => word.id === id)?.english) + .filter(Boolean); + if (!texts.length) return; + void prefetchAudio(texts, 0.92, { allowCloud: true }) + .catch(error => logTts('word list audio prefetch failed', error)); +} + +export function playWordSequence(wordIds, index) { + if (!autoPlayActive || index >= wordIds.length) { + stopAutoPlay(); + return; + } + + const word = state.words.find(item => item.id === wordIds[index]); + if (!word) { + playWordSequence(wordIds, index + 1); + return; + } + + document.querySelectorAll('.word-table tbody tr').forEach(row => row.classList.remove('is-playing')); + const row = document.querySelector(`tr[data-word-id="${word.id}"]`); + if (row) { + row.classList.add('is-playing'); + let shouldScroll = true; + if (state.autoPlayScrollMode === 'visible') { + const rect = row.getBoundingClientRect(); + const viewportHeight = window.innerHeight || document.documentElement.clientHeight; + const header = document.getElementById('mobile-header'); + const topBound = header ? header.getBoundingClientRect().height : 0; + shouldScroll = rect.top < topBound || rect.bottom > viewportHeight; + } + if (shouldScroll) { + row.scrollIntoView({ + behavior: window.matchMedia('(prefers-reduced-motion: reduce)').matches ? 'auto' : 'smooth', + block: 'center', + inline: 'nearest' + }); + } + } + + const repeatCount = Math.max(1, state.autoPlayRepeat || 1); + const repeatDelay = state.autoPlayRepeatDelay || 1000; + const wordInterval = state.autoPlayInterval || 2500; + let spoken = 0; + + async function playCurrentWord() { + if (!autoPlayActive) return; + await speak(word.english); + if (!autoPlayActive) return; + spoken++; + if (spoken < repeatCount) { + autoPlayTimer = setTimeout(playCurrentWord, repeatDelay); + } else { + autoPlayTimer = setTimeout(() => playWordSequence(wordIds, index + 1), wordInterval); + } + } + + void playCurrentWord(); +} + +export function stopAutoPlay() { + autoPlayActive = false; + if (autoPlayTimer) { + clearTimeout(autoPlayTimer); + autoPlayTimer = null; + } + stopAllAudio(); + document.querySelectorAll('.word-table tbody tr').forEach(row => row.classList.remove('is-playing')); + updateAutoPlayBtn(); +} + +export function updateAutoPlayBtn() { + const button = document.getElementById('auto-play-btn'); + if (!button) return; + if (autoPlayActive) { + button.innerHTML = ' 停止播放'; + button.className = 'btn btn-error'; + } else { + button.innerHTML = ' 自动播放'; + button.className = 'btn btn-secondary'; + } +} diff --git a/src/js/pages/words.js b/src/js/pages/words.js new file mode 100644 index 0000000..8a82a8b --- /dev/null +++ b/src/js/pages/words.js @@ -0,0 +1,446 @@ +import { STAGE_LABELS, WORDS_PER_PAGE } from '../constants.js'; +import { state } from '../core/state.js'; +import { saveFavorites, saveRecords, saveSchedule, saveWords } from '../core/storage.js'; +import { isFavorite, toggleFavorite } from '../services/favorites.js'; +import { navigate, renderPage } from '../core/router.js'; +import { showToast } from '../ui/toast.js'; +import { closeModal, showModal } from '../ui/modal.js'; +import { speak } from '../services/tts.js'; +import { getToday, initWordSchedule } from '../services/ebbinghaus.js'; +import { getMastery, getQuizErrorWords } from '../services/stats.js'; +import { debounce, escapeHtml, formatFormsHtml } from '../ui/dom.js'; + +export { playWordSequence, prefetchWordListAudio, startAutoPlay, stopAutoPlay, toggleAutoPlay, updateAutoPlayBtn } from './words-autoplay.js'; + +export function getNextId() { + const usedIds = new Set([ + ...state.words.map(w => Number(w.id)), + ...state.records.map(r => Number(r.wordId)), + ...Object.keys(state.schedule).map(Number), + ...state.favorites.map(Number) + ].filter(Number.isFinite)); + let next = 1; + for (const id of usedIds) { + if (id >= next) next = id + 1; + } + return next; +} + +export function normalizeImportedWord(raw, id) { + const word = { ...raw, id }; + word.english = String(word.english || '').trim(); + word.chinese = String(word.chinese || '').trim(); + if (word.phonetic != null) word.phonetic = String(word.phonetic); + if (word.category != null) word.category = String(word.category); + if (word.frequency != null) word.frequency = Number(word.frequency) || 0; + return word; +} +// ==================== Page: Words ==================== +export function renderWords(el) { + const categories = [...new Set(state.words.map(w => w.category))].filter(Boolean); + + el.innerHTML = ` + + + ${state.words.length > 0 ? ` + +
` : ` +
+
+

单词库是空的

+

通过邮件提词或导入 JSON 文件添加单词

+
+ + +
+
`} + `; + + if (state.words.length > 0) renderWordList(); +} + +export function renderWordList() { + const container = document.getElementById('word-list-container'); + if (!container) return; + + let filtered = state.words; + if (state.wordSearch) { + const q = state.wordSearch.toLowerCase(); + filtered = filtered.filter(w => + w.english.toLowerCase().includes(q) || w.chinese.includes(q) + ); + } + if (state.wordCategory === '__favorites__') { + filtered = filtered.filter(w => isFavorite(w.id)); + } else if (state.wordCategory === '__errors__') { + const errorIds = new Set(getQuizErrorWords().map(w => w.id)); + filtered = filtered.filter(w => errorIds.has(w.id)); + } else if (state.wordCategory === '__freq_high__') { + filtered = filtered.filter(w => (w.frequency || 0) >= 50); + } else if (state.wordCategory === '__freq_mid__') { + filtered = filtered.filter(w => { const f = w.frequency || 0; return f >= 10 && f < 50; }); + } else if (state.wordCategory === '__freq_low__') { + filtered = filtered.filter(w => (w.frequency || 0) < 10 && (w.frequency || 0) > 0); + } else if (state.wordCategory) { + filtered = filtered.filter(w => w.category === state.wordCategory); + } + + const totalPages = Math.ceil(filtered.length / WORDS_PER_PAGE); + state.wordPage = totalPages === 0 ? 0 : Math.max(1, Math.min(state.wordPage, totalPages)); + const start = state.wordPage > 0 ? (state.wordPage - 1) * WORDS_PER_PAGE : 0; + const pageWords = filtered.slice(start, start + WORDS_PER_PAGE); + + container.innerHTML = ` +
+ + + + + + + + + + + + ${pageWords.map(w => { + const mastery = getMastery(w.id); + const badgeClass = mastery === 'mastered' ? 'badge-success' : mastery === 'learning' ? 'badge-warning' : 'badge-primary'; + const badgeText = mastery === 'mastered' ? '已掌握' : mastery === 'learning' ? '学习中' : '新词'; + const favored = isFavorite(w.id); + const safeEn = escapeHtml(w.english); + return ` + + + + + + + `; + }).join('')} + +
单词音标释义状态操作
${escapeHtml(w.english)}${escapeHtml(w.phonetic || '-')}${escapeHtml(w.chinese)}${badgeText} + + + + +
+ +
+ `; +} + +export function renderPagination(totalPages) { + let html = ''; + return html; +} + +export function goWordPage(p) { + state.wordPage = p; + renderWordList(); + + requestAnimationFrame(() => { + document.querySelector('.search-bar')?.scrollIntoView({ + behavior: window.matchMedia('(prefers-reduced-motion: reduce)').matches + ? 'auto' + : 'smooth', + block: 'start' + }); + }); +} + +const debouncedRenderWordList = debounce(() => renderWordList(), 180); + +export function onWordSearch(val) { + state.wordSearch = val; + state.wordPage = 1; + debouncedRenderWordList(); // 逐键防抖,避免每次击键全量重建列表 +} + +export function onCategoryFilter(val) { + state.wordCategory = val; + state.wordPage = 1; + renderWordList(); +} + +export function categoryLabel(cat) { + const map = { + high_frequency: '🔴 高频词汇', + medium_frequency: '🟡 中频词汇', + low_frequency: '🔵 低频词汇', + action_verbs: '⚡ 动作动词', + business_core: '💼 商务核心', + technical_core: '🔧 技术核心', + technical_operations: '🛠️ 技术操作', + time_planning: '📅 时间计划', + communication: '💬 沟通交流', + descriptive_words: '📝 描述词汇', + academic: '🎓 学术词汇', + daily_life: '🏠 日常生活', + emotions: '😊 情感词汇', + nature: '🌿 自然环境', + health: '🏥 健康医疗', + food: '🍽️ 饮食相关', + travel: '✈️ 旅行出行', + science: '🔬 科学技术', + law: '⚖️ 法律词汇', + finance: '💰 金融财务' + }; + return map[cat] || cat || '未分类'; +} + +export function showImportModal() { + showModal(' 导入单词', ` +
+ + +

支持项目自带的 words-*.json 格式

+
+
— 或者 —
+
+ + +
+ `, ` + + + `); +} + +let importFileReadGeneration = 0; + +export function handleImportFile(input) { + const generation = ++importFileReadGeneration; + const file = input.files[0]; + const target = document.getElementById('import-text'); + if (!file || !target) return; + const reader = new FileReader(); + reader.onload = e => { + if (generation === importFileReadGeneration && target.isConnected && input.isConnected && document.getElementById('import-text') === target) { + target.value = e.target.result; + } + }; + reader.onerror = () => { + if (generation === importFileReadGeneration && target.isConnected) showToast('单词文件读取失败', 'error'); + }; + reader.readAsText(file); +} + +export function doImport() { + const text = document.getElementById('import-text').value.trim(); + if (!text) { showToast('请选择文件或粘贴 JSON 内容', 'warning'); return; } + + try { + const data = JSON.parse(text); + if (!Array.isArray(data)) throw new Error('数据格式错误'); + + const valid = data.filter(w => w.english && w.chinese); + if (valid.length === 0) throw new Error('未找到有效单词'); + + const previousWords = state.words.slice(); + const previousSchedule = { ...state.schedule }; + const existingKeys = new Set(state.words.map(w => String(w.english || '').trim().toLowerCase()).filter(Boolean)); + let added = 0; + let nextId = getNextId(); + valid.forEach(raw => { + const key = String(raw.english || '').trim().toLowerCase(); + if (!key || existingKeys.has(key)) return; + const word = normalizeImportedWord(raw, nextId++); + state.words.push(word); + existingKeys.add(key); + initWordSchedule(word.id, false); + added++; + }); + + if (added === 0) { + showToast('没有新单词可导入(全部已存在)', 'info'); + return; + } + + if (!(saveWords() && saveSchedule())) { + state.words = previousWords; + state.schedule = previousSchedule; + saveWords(); + saveSchedule(); + throw new Error('本地存储写入失败'); + } + closeModal(); + showToast(`成功导入 ${added} 个单词(共 ${valid.length} 个,${valid.length - added} 个重复跳过)`, 'success'); + renderPage('words'); + } catch (e) { + showToast('导入失败:' + e.message, 'error'); + } +} + +export function exportWords() { + const blob = new Blob([JSON.stringify(state.words, null, 2)], { type: 'application/json' }); + const url = URL.createObjectURL(blob); + const a = document.createElement('a'); + a.href = url; + a.download = `words-export-${getToday()}.json`; + a.click(); + URL.revokeObjectURL(url); + showToast('导出成功', 'success'); +} + +export function toggleWordFavorite(wordId) { + if (!toggleFavorite(wordId)) return false; + const faved = isFavorite(wordId); + if (state.wordCategory === '__favorites__' && !faved) { + const row = document.querySelector(`tr[data-word-id="${wordId}"]`); + if (row) { + row.style.opacity = '0.45'; + const btn = row.querySelector('.fav-toggle-btn'); + if (btn) { + btn.style.color = 'var(--text-muted)'; + btn.title = '收藏'; + btn.querySelector('i').className = 'far fa-star'; + } + return true; + } + } + renderWordList(); + return true; +} + +export function deleteWord(id) { + if (!confirm('确定要删除这个单词吗?')) return false; + + const previousWords = state.words; + const previousSchedule = state.schedule; + const previousRecords = state.records; + const previousFavorites = state.favorites; + state.words = state.words.filter(w => w.id !== id); + state.schedule = { ...state.schedule }; + delete state.schedule[id]; + state.records = state.records.filter(r => r.wordId !== id); + state.favorites = state.favorites.filter(wordId => wordId !== id); + + const saved = saveWords() && saveSchedule() && saveRecords() && saveFavorites(); + if (!saved) { + state.words = previousWords; + state.schedule = previousSchedule; + state.records = previousRecords; + state.favorites = previousFavorites; + saveWords(); + saveSchedule(); + saveRecords(); + saveFavorites(); + renderWordList(); + return false; + } + + renderWordList(); + showToast('已删除', 'info'); + return true; +} + +export function showWordDetail(id) { + const w = state.words.find(x => x.id === id); + if (!w) return; + const sch = state.schedule[w.id]; + const mastery = getMastery(w.id); + const masteryText = mastery === 'mastered' ? '已掌握' : mastery === 'learning' ? '学习中' : '新词'; + const safeEn = escapeHtml(w.english); + showModal(safeEn, ` +
+
${escapeHtml(w.english)}
+
${escapeHtml(w.phonetic || '')}
+ + ${masteryText} +
+
+ 中文释义: ${escapeHtml(w.chinese)} + +
+ ${w.forms ? `
词形变化:
${formatFormsHtml(w.forms)}
` : ''} + ${w.example ? ` +
+ 例句:
+ ${escapeHtml(w.example.en)}
+ ${escapeHtml(w.example.cn)} +
` : ''} + ${w.sourceContext ? ` +
+
来源邮件
+
"${escapeHtml(w.sourceContext.sentence)}"
+
` : ''} + ${sch ? ` +
+ 复习阶段:${STAGE_LABELS[sch.stage] || '—'} | 下次复习:${escapeHtml(sch.nextReview || '—')}
+ 正确 ${sch.correctCount} 次 / 错误 ${sch.incorrectCount} 次 +
` : ''} + `); +} + +export function editWordChinese(id) { + const w = state.words.find(x => x.id === id); + if (!w) return; + const container = document.getElementById(`word-detail-chinese-${id}`); + if (!container) return; + container.innerHTML = ` + 中文释义: +
+ + + +
`; + const input = document.getElementById(`edit-chinese-input-${id}`); + if (input) { input.focus(); input.select(); } +} + +export function saveWordChinese(id) { + const input = document.getElementById(`edit-chinese-input-${id}`); + if (!input) return; + const newVal = input.value.trim(); + if (!newVal) { showToast('释义不能为空', 'warning'); return; } + const w = state.words.find(x => x.id === id); + if (!w) return; + const previousChinese = w.chinese; + w.chinese = newVal; + if (!saveWords()) { + w.chinese = previousChinese; + return; + } + if (state.currentPage === 'words') renderWordList(); + showToast('释义已更新', 'success'); + showWordDetail(id); +} + diff --git a/src/js/services/ai.js b/src/js/services/ai.js new file mode 100644 index 0000000..4eb36b9 --- /dev/null +++ b/src/js/services/ai.js @@ -0,0 +1,249 @@ +import { state } from '../core/state.js'; +import { extractJsonValue, isPlainObject, sanitizeAiQuestion } from './quiz-generator.js'; + +let aiCooldownUntil = 0; + +/** + * AI API client and language helpers. + * Inputs and outputs are plain text or word/question objects. Network calls use + * state.settings and do not write localStorage directly; HTTP 429 responses start + * an in-memory cooldown used by quiz generation. + */ +// ==================== AI API Client ==================== +export function getAiCooldownRemaining() { + return Math.max(0, aiCooldownUntil - Date.now()); +} +export async function callAI(messages, stream = false) { + const { apiKey, apiUrl, model } = state.settings; + if (!apiKey || !apiUrl || !model) { + throw new Error('请先在设置页面配置 AI 模型信息'); + } + + const url = apiUrl.replace(/\/$/, '') + '/chat/completions'; + const controller = new AbortController(); + let timedOut = false; + const timeoutId = setTimeout(() => { + timedOut = true; + controller.abort(); + }, 30000); + try { + const res = await fetch(url, { + method: 'POST', + signal: controller.signal, + headers: { + 'Content-Type': 'application/json', + 'Authorization': `Bearer ${apiKey}` + }, + body: JSON.stringify({ + model, + messages, + stream, + temperature: 0.7 + }) + }); + + if (stream) clearTimeout(timeoutId); + + if (!res.ok) { + const err = await res.text(); + let errMsg = ''; + try { + const parsed = JSON.parse(err); + const msg = parsed?.error?.message || parsed?.message || ''; + errMsg = msg.split('\n')[0]; + } catch (_) { + errMsg = err; + } + if (errMsg.length > 80) errMsg = errMsg.slice(0, 80) + '...'; + if (res.status === 429) { + aiCooldownUntil = Date.now() + 60000; + } + throw new Error(`API 请求失败 (${res.status}): ${errMsg}`); + } + + if (stream) return res; + + let data; + try { + data = await res.json(); + } catch (error) { + if (timedOut) throw error; + throw new Error('AI 返回的成功响应不是有效 JSON'); + } + if (!isPlainObject(data) || !Array.isArray(data.choices) || data.choices.length === 0) { + throw new Error('AI 返回的 choices 结构无效'); + } + const choice = data.choices[0]; + if (!isPlainObject(choice) || !isPlainObject(choice.message) + || typeof choice.message.content !== 'string' || !choice.message.content.trim()) { + throw new Error('AI 返回的消息内容结构无效'); + } + return choice.message.content; + } catch (error) { + if (timedOut) throw new Error('AI 请求超时(30 秒)'); + throw error; + } finally { + clearTimeout(timeoutId); + } +} + +export async function generateAIQuiz(words, mode, count) { + const wordList = words.map(w => `${w.english} - ${w.chinese}`).join('\n'); + const modeDesc = mode === 'en2zh' + ? '英译中(给出英文单词,选出正确的中文意思)' + : '中翻英(给出中文意思,选出正确的英文单词)'; + + const prompt = `你是英语学习助手。请根据以下单词列表生成 ${count} 道选择题。 +模式:${modeDesc} + +单词列表: +${wordList} + +请严格以JSON格式返回,不要包含任何markdown标记或其他文本,直接返回JSON: +{ + "questions": [ + { + "question": "题目文本(英文单词或中文意思)", + "options": ["选项A", "选项B", "选项C", "选项D"], + "answer": 0, + "explanation": "简短解析" + } + ] +} + +要求: +1. 每道题有4个选项,只有1个正确(answer是正确选项的索引0-3) +2. 干扰项要合理但有区分度 +3. 从列表中选不同的单词出题 +4. 【非常重要】所有4个选项的长度和格式必须高度一致,不能让正确答案明显更长或更短 +5. 中文选项只写一个最核心的词义,不要加括号补充、不要加多个义项,例如"放弃"而不是"放弃(某事或某物)" +6. 英文选项只写单词本身,不要附加解释`; + + const content = await callAI([ + { role: 'system', content: '你是一个专业的英语教学助手,只返回JSON格式数据。' }, + { role: 'user', content: prompt } + ]); + + const parsed = extractJsonValue(content, {}); + const questions = Array.isArray(parsed?.questions) ? parsed.questions.map(sanitizeAiQuestion).filter(Boolean) : []; + if (questions.length === 0) throw new Error('AI 返回的题目格式无效'); + return questions; +} + +export async function translateWord(word) { + const results = await translateWords([word]); + if (!results.length) throw new Error('AI 返回的单词数据格式无效'); + return results[0]; +} + +export async function translateWords(words) { + const uniqueWords = [...new Set(words.map(w => String(w || '').trim().toLowerCase()).filter(Boolean))]; + if (!uniqueWords.length) return []; + + const prompt = `你是英语词典助手。请为以下英文单词返回纯 JSON 数组(不要 markdown)。每个数组元素结构如下: +{ + "english": "<英文单词>", + "frequency": <整数词频,常见100/较常见50/一般25/少见10>, + "category": "", + "chinese": "<简洁中文释义>", + "phonetic": "<国际音标>", + "forms": { <词性>: "<说明>", "verb": ["第三人称","现在分词","过去式/过去分词"], "plural": "<复数>" }, + "example": { "en": "<英文例句>", "cn": "<中文翻译>" } +} + +要求: +1. 必须为每个输入单词返回一个对象。 +2. english 字段必须使用输入单词本身。 +3. 只返回 JSON 数组,不要解释。 + +单词列表:${uniqueWords.map(w => `"${w}"`).join(', ')}`; + + const content = await callAI([ + { role: 'system', content: '你是英语词典助手,只返回纯JSON。' }, + { role: 'user', content: prompt } + ]); + + const parsed = extractJsonValue(content, null); + const list = Array.isArray(parsed) ? parsed : (isPlainObject(parsed) && Array.isArray(parsed.words) ? parsed.words : []); + const byWord = new Map(); + list.forEach(item => { + if (!isPlainObject(item)) return; + const english = String(item.english || '').trim().toLowerCase(); + if (english) byWord.set(english, { ...item, english }); + }); + + const results = uniqueWords.map(word => byWord.get(word)).filter(Boolean); + if (!results.length && uniqueWords.length === 1 && list.length === 1 && isPlainObject(list[0])) { + results.push({ ...list[0], english: String(list[0].english || uniqueWords[0]).trim() }); + } + if (!results.length) throw new Error('AI 返回的单词数据格式无效'); + return results; +} + +export async function filterNamesWithAI(words) { + if (!state.settings.apiKey || !state.settings.apiUrl || !state.settings.model) return []; + try { + const content = await callAI([ + { role: 'system', content: '你是一个英语语言分析助手。请从给定的单词列表中识别出所有人名(包括英文名、姓氏、昵称等),只返回纯 JSON 数组。' }, + { role: 'user', content: `以下是从英文邮件中提取的单词列表,请识别其中哪些是人名(名字、姓氏、昵称),返回纯 JSON 数组(不要 markdown),如果没有人名就返回 []。\n\n单词列表:${words.join(', ')}` } + ]); + const parsed = extractJsonValue(content, []); + if (Array.isArray(parsed)) { + return parsed.map(n => String(n).toLowerCase()); + } + } catch (e) { + console.warn('AI name filtering failed:', e); + } + return []; +} + +export function deduplicateBasic(words) { + const wordSet = new Set(words); + const mapping = {}; + for (const w of words) { + if (mapping[w]) continue; + const checks = []; + if (w.endsWith('s') && !w.endsWith('ss') && w.length > 3) checks.push(w.slice(0, -1)); + if (w.endsWith('es') && w.length > 4) checks.push(w.slice(0, -2)); + if (w.endsWith('ies') && w.length > 4) checks.push(w.slice(0, -3) + 'y'); + if (w.endsWith('ed') && w.length > 4) { checks.push(w.slice(0, -2)); checks.push(w.slice(0, -1)); } + if (w.endsWith('ing') && w.length > 5) { checks.push(w.slice(0, -3)); checks.push(w.slice(0, -3) + 'e'); } + if (w.endsWith('er') && w.length > 4) { checks.push(w.slice(0, -2)); checks.push(w.slice(0, -1)); } + if (w.endsWith('est') && w.length > 5) { checks.push(w.slice(0, -3)); checks.push(w.slice(0, -2)); } + if (w.endsWith('ly') && w.length > 4) checks.push(w.slice(0, -2)); + for (const base of checks) { + if (base !== w && wordSet.has(base) && !mapping[base]) { + mapping[w] = base; + break; + } + } + } + return mapping; +} + +export async function deduplicateWithAI(words) { + if (!state.settings.apiKey || !state.settings.apiUrl || !state.settings.model) { + return deduplicateBasic(words); + } + if (words.length === 0) return {}; + try { + const content = await callAI([ + { role: 'system', content: '你是英语语言分析助手。从给定单词列表中找出同一个词的不同词形变化(如单复数、时态、比较级等),返回纯 JSON 对象,key 是应移除的变体词,value 是应保留的基本词形。没有重复返回 {}。不要用 markdown。' }, + { role: 'user', content: `分析以下单词,找出词形变化重复(如 chuck/chucks, process/processes, change/changed/changing 等同源词),返回 JSON 对象,key 是变体词,value 是基本形式。\n\n${words.join(', ')}` } + ]); + const result = extractJsonValue(content, {}); + if (isPlainObject(result)) { + const inputWords = new Set(words.map(word => String(word || '').trim().toLowerCase()).filter(Boolean)); + const mapping = {}; + for (const [variant, base] of Object.entries(result)) { + const vl = String(variant).trim().toLowerCase(); + const bl = String(base).trim().toLowerCase(); + if (vl !== bl && inputWords.has(vl) && inputWords.has(bl)) mapping[vl] = bl; + } + return mapping; + } + } catch (e) { + console.warn('AI deduplication failed:', e); + } + return deduplicateBasic(words); +} diff --git a/src/js/services/ebbinghaus.js b/src/js/services/ebbinghaus.js new file mode 100644 index 0000000..3366a85 --- /dev/null +++ b/src/js/services/ebbinghaus.js @@ -0,0 +1,148 @@ +import { EBBINGHAUS_INTERVALS } from '../constants.js'; +import { state } from '../core/state.js'; +import { MAX_RECORDS, saveRecords, saveSchedule } from '../core/storage.js'; + +/** + * Ebbinghaus scheduling and study-record helpers. Inputs are word IDs, dates, + * and quiz outcomes; mutations update shared state and persist records: + * and schedule: through the storage service. + */ +// ==================== Ebbinghaus Algorithm ==================== +export function toLocalDateStr(d) { + return `${d.getFullYear()}-${String(d.getMonth() + 1).padStart(2, '0')}-${String(d.getDate()).padStart(2, '0')}`; +} + +export function getToday() { + return toLocalDateStr(new Date()); +} + +export function addDays(dateStr, days) { + const [y, m, day] = dateStr.split('-').map(Number); + const d = new Date(y, m - 1, day); + d.setDate(d.getDate() + days); + return toLocalDateStr(d); +} + +export function getDueWords() { + const today = getToday(); + const due = []; + for (const [wordId, sch] of Object.entries(state.schedule)) { + if (sch.nextReview <= today) { + const word = state.words.find(w => w.id === Number(wordId)); + if (word) due.push({ ...word, schedule: sch }); + } + } + return due; +} + +export function initWordSchedule(wordId, save = true) { + if (state.schedule[wordId]) return true; + + state.schedule[wordId] = { + stage: 0, + nextReview: getToday(), + correctCount: 0, + incorrectCount: 0 + }; + if (!save || saveSchedule()) return true; + + delete state.schedule[wordId]; + return false; +} + +export function trimRecords(records, maxRecords, keepPerWord) { + if (records.length <= maxRecords) return records; + + const selected = new Set(); + const counts = new Map(); + + // 第一轮尽可能为每个单词和记录类型保留最新一条,避免整个组合被裁掉 + for (let i = records.length - 1; i >= 0; i--) { + const record = records[i]; + const key = `${record.wordId}:${record.type}`; + if (counts.has(key)) continue; + + selected.add(i); + counts.set(key, 1); + if (selected.size === maxRecords) break; + } + + // 第二轮按时间从新到旧填充剩余容量,每个组合优先保留 keepPerWord 条 + for (let i = records.length - 1; i >= 0 && selected.size < maxRecords; i--) { + if (selected.has(i)) continue; + + const record = records[i]; + const key = `${record.wordId}:${record.type}`; + const count = counts.get(key) || 0; + if (count < keepPerWord) { + selected.add(i); + counts.set(key, count + 1); + } + } + + // 组合较少时前两轮可能未填满容量,继续保留其余最新记录,避免一次裁剪丢失大量历史 + for (let i = records.length - 1; i >= 0 && selected.size < maxRecords; i--) { + selected.add(i); + } + + return [...selected] + .sort((a, b) => a - b) + .map(index => records[index]); +} + +export function recordAndUpdateSchedule(wordId, isCorrect, type, quizMode, options = {}) { + const previousRecords = state.records; + const previousSchedule = state.schedule; + const nextRecords = previousRecords.slice(); + const previousWordSchedule = previousSchedule[wordId]; + const nextWordSchedule = previousWordSchedule ? { ...previousWordSchedule } : { + stage: 0, + nextReview: getToday(), + correctCount: 0, + incorrectCount: 0 + }; + + nextRecords.push({ + wordId, + date: getToday(), + time: Date.now(), + isCorrect, + type, + quizMode + }); + + let recordsToSave = nextRecords; + if (options.removeIncorrectQuizRecords && isCorrect) { + recordsToSave = nextRecords.filter(record => !( + record.wordId === wordId + && record.type === 'quiz' + && !record.isCorrect + )); + } + if (recordsToSave.length > MAX_RECORDS) { + recordsToSave = trimRecords(recordsToSave, MAX_RECORDS, 10); + } + + if (isCorrect) { + nextWordSchedule.correctCount++; + nextWordSchedule.stage = Math.min(nextWordSchedule.stage + 1, EBBINGHAUS_INTERVALS.length - 1); + } else { + nextWordSchedule.incorrectCount++; + nextWordSchedule.stage = Math.max(0, nextWordSchedule.stage - 1); + } + nextWordSchedule.nextReview = addDays(getToday(), EBBINGHAUS_INTERVALS[nextWordSchedule.stage]); + + state.records = recordsToSave; + state.schedule = { ...previousSchedule, [wordId]: nextWordSchedule }; + + const recordsSaved = saveRecords(); + const scheduleSaved = saveSchedule(); + if (recordsSaved && scheduleSaved) return true; + + state.records = previousRecords; + state.schedule = previousSchedule; + saveRecords(); + saveSchedule(); + return false; +} + diff --git a/src/js/services/extractor.js b/src/js/services/extractor.js new file mode 100644 index 0000000..6c558de --- /dev/null +++ b/src/js/services/extractor.js @@ -0,0 +1,100 @@ +import { COMMON_NAMES, STOP_WORDS } from '../data/stopwords.js'; + +/** + * Pure English-word extraction helpers. Functions accept text or message arrays, + * return normalized words/frequencies/context, and have no DOM or storage side effects. + */ +export function detectProperNouns(text) { + const lines = text.split(/\n/).map(l => l.trim()).filter(Boolean); + const wordStats = new Map(); + + for (const line of lines) { + const sentences = line.split(/(?<=[.!?])\s+/); + for (const sentence of sentences) { + const words = sentence.match(/\b[a-zA-Z][a-zA-Z'-]*[a-zA-Z]\b/g) || []; + words.forEach((w, idx) => { + const lower = w.toLowerCase(); + if (lower.length < 2 || STOP_WORDS.has(lower)) return; + if (!wordStats.has(lower)) wordStats.set(lower, { cap: 0, low: 0 }); + const entry = wordStats.get(lower); + const isFirstWord = idx === 0; + if (w[0] === w[0].toUpperCase() && w[0] !== w[0].toLowerCase()) { + if (!isFirstWord) entry.cap++; + } else { + entry.low++; + } + }); + } + } + + const proper = new Set(); + for (const [word, s] of wordStats) { + if (s.cap > 0 && s.low === 0) proper.add(word); + } + return proper; +} + +export function extractEnglishWords(text) { + const cleaned = text + .replace(/https?:\/\/\S+/g, '') + .replace(/[\w.+-]+@[\w.-]+/g, '') + .replace(/<[^>]+>/g, '') + .replace(/[^a-zA-Z\s'-]/g, ' '); + + const rawWords = cleaned.match(/\b[a-zA-Z][a-zA-Z'-]*[a-zA-Z]\b|[a-zA-Z]\b/g) || []; + const seen = new Set(); + const result = []; + + for (const w of rawWords) { + const lower = w.toLowerCase(); + if (lower.length < 2) continue; + if (STOP_WORDS.has(lower)) continue; + if (seen.has(lower)) continue; + seen.add(lower); + result.push(lower); + } + + return result.sort(); +} + +export function extractWithFrequency(emails) { + const wordEmailCount = {}; + const wordTotalCount = {}; + + for (const emailText of emails) { + const cleaned = emailText + .replace(/https?:\/\/\S+/g, '') + .replace(/[\w.+-]+@[\w.-]+/g, '') + .replace(/<[^>]+>/g, '') + .replace(/[^a-zA-Z\s'-]/g, ' '); + const rawWords = cleaned.match(/\b[a-zA-Z][a-zA-Z'-]*[a-zA-Z]\b|[a-zA-Z]\b/g) || []; + const seenInEmail = new Set(); + + for (const w of rawWords) { + const lower = w.toLowerCase(); + if (lower.length < 2 || STOP_WORDS.has(lower)) continue; + wordTotalCount[lower] = (wordTotalCount[lower] || 0) + 1; + if (!seenInEmail.has(lower)) { + seenInEmail.add(lower); + wordEmailCount[lower] = (wordEmailCount[lower] || 0) + 1; + } + } + } + + const properNouns = new Set(); + for (const emailText of emails) { + detectProperNouns(emailText).forEach(n => properNouns.add(n)); + } + + return Object.keys(wordEmailCount) + .filter(w => !COMMON_NAMES.has(w) && !properNouns.has(w)) + .map(w => ({ word: w, emailCount: wordEmailCount[w], totalCount: wordTotalCount[w] })) + .sort((a, b) => b.emailCount - a.emailCount || b.totalCount - a.totalCount); +} + +export function findWordContext(word, emailText) { + const sentences = emailText.split(/[.!?;\n]+/).map(s => s.trim()).filter(Boolean); + const regex = new RegExp('\\b' + word.replace(/[.*+?^${}()|[\]\\]/g, '\\$&') + '\\b', 'i'); + const match = sentences.find(s => regex.test(s)); + return match ? match.slice(0, 120) : null; +} diff --git a/src/js/services/favorites.js b/src/js/services/favorites.js new file mode 100644 index 0000000..396d9f0 --- /dev/null +++ b/src/js/services/favorites.js @@ -0,0 +1,27 @@ +import { state } from '../core/state.js'; +import { saveFavorites } from '../core/storage.js'; + +/** + * Favorite-word queries and mutations. Functions read and update shared state; + * mutations persist the active library's favorites: key. + */ +export function isFavorite(wordId) { return state.favorites.includes(wordId); } + +export function toggleFavorite(wordId) { + const previousFavorites = state.favorites.slice(); + const idx = state.favorites.indexOf(wordId); + if (idx >= 0) { + state.favorites.splice(idx, 1); + } else { + state.favorites.push(wordId); + } + if (!saveFavorites()) { + state.favorites = previousFavorites; + return false; + } + return true; +} + +export function getFavoriteWords() { + return state.words.filter(w => state.favorites.includes(w.id)); +} diff --git a/src/js/services/library.js b/src/js/services/library.js new file mode 100644 index 0000000..bd72419 --- /dev/null +++ b/src/js/services/library.js @@ -0,0 +1,225 @@ +import { WORD_LIBRARIES } from '../constants.js'; +import { state } from '../core/state.js'; +import { + getLibraryStorageKey, + loadLibraryState, + restoreStorageItems, + saveFavorites, + saveJsonSetting, + saveRecords, + saveSchedule, + saveStringSetting, + saveWords, + snapshotStorageItems, + STORAGE_KEYS +} from '../core/storage.js'; +import { renderPage } from '../core/router.js'; +import { showToast } from '../ui/toast.js'; +import { initWordSchedule } from './ebbinghaus.js'; +import { getNextId, normalizeImportedWord } from '../pages/words.js'; + +/** + * Word-library loading and switching. Functions fetch data/*.json, update shared + * vocabulary state, and persist activeWordLibrary plus words/schedule library keys; + * failed mutations restore both memory and localStorage snapshots. + */ +// ==================== Auto Load Words ==================== +export function getWordLibrary(libraryId = state.activeWordLibrary) { + return WORD_LIBRARIES.find(library => library.id === libraryId) || WORD_LIBRARIES[0]; +} + +export async function fetchWordLibrary(libraryId) { + const library = getWordLibrary(libraryId); + const url = new URL(`../../../data/${library.file}`, import.meta.url); + const controller = new AbortController(); + let timedOut = false; + const timeoutId = setTimeout(() => { + timedOut = true; + controller.abort(); + }, 15000); + try { + const res = await fetch(url, { signal: controller.signal }); + if (!res.ok) throw new Error(`HTTP ${res.status}`); + const data = await res.json(); + if (!Array.isArray(data) || data.length === 0) throw new Error('词库内容为空'); + const valid = data.filter(word => word && word.english && word.chinese); + if (valid.length === 0) throw new Error('词库中没有有效单词'); + return valid; + } catch (error) { + const message = timedOut ? '请求超时(15 秒)' : error.message; + throw new Error(`无法加载${library.name}:${message}`); + } finally { + clearTimeout(timeoutId); + } +} + +export async function switchWordLibrary() { + const select = document.getElementById('word-library-select'); + const libraryId = select ? select.value : state.activeWordLibrary; + if (libraryId === state.activeWordLibrary) { + showToast('当前已是所选词库', 'info'); + return; + } + + const library = getWordLibrary(libraryId); + const previousLibraryId = state.activeWordLibrary; + const requestedLibraryId = library.id; + const memorySnapshot = { + words: state.words, + records: state.records, + schedule: state.schedule, + favorites: state.favorites + }; + const storageSnapshot = snapshotStorageItems([ + getLibraryStorageKey(STORAGE_KEYS.words, requestedLibraryId), + getLibraryStorageKey(STORAGE_KEYS.records, requestedLibraryId), + getLibraryStorageKey(STORAGE_KEYS.schedule, requestedLibraryId), + getLibraryStorageKey(STORAGE_KEYS.favorites, requestedLibraryId), + STORAGE_KEYS.activeWordLibrary + ]); + if (!storageSnapshot) { + showToast('无法读取本地存储,词库切换已取消', 'error'); + return; + } + const rollback = () => { + if (!restoreStorageItems(storageSnapshot)) console.error('Failed to restore word library storage'); + state.activeWordLibrary = previousLibraryId; + Object.assign(state, memorySnapshot); + }; + + state.activeWordLibrary = requestedLibraryId; + loadLibraryState(requestedLibraryId); + + try { + if (state.words.length === 0) { + const words = await fetchWordLibrary(requestedLibraryId); + if (state.activeWordLibrary !== requestedLibraryId) return; + const seenEn = new Set(); + const uniqueWords = words.filter(word => { + const lower = String(word.english).trim().toLowerCase(); + if (seenEn.has(lower)) return false; + seenEn.add(lower); + return true; + }); + state.words = uniqueWords.map((word, index) => normalizeImportedWord(word, index + 1)); + state.records = []; + state.schedule = {}; + state.favorites = []; + state.words.forEach(word => initWordSchedule(word.id, false)); + if (!saveWords() || !saveRecords() || !saveSchedule() || !saveFavorites()) throw new Error('词库数据保存失败,已恢复原词库'); + } + + if (state.activeWordLibrary !== requestedLibraryId) return; + if (!saveStringSetting(STORAGE_KEYS.activeWordLibrary, requestedLibraryId)) { + throw new Error('词库切换未保存,已恢复原词库'); + } + } catch (error) { + if (state.activeWordLibrary !== requestedLibraryId) return; + try { + rollback(); + } catch (rollbackError) { + console.error('Failed to roll back word library switch', rollbackError); + state.activeWordLibrary = previousLibraryId; + Object.assign(state, memorySnapshot); + } + showToast(error.message, 'error'); + renderPage('settings'); + return; + } + state.learnSession = null; + state.quizSession = null; + state.wordPage = 1; + state.wordSearch = ''; + state.wordCategory = ''; + showToast(`已切换到${library.name},共 ${state.words.length} 个单词`, 'success'); + renderPage('settings'); +} + +export function toggleAutoLoad(enabled) { + const nextEnabled = !!enabled; + if (!saveJsonSetting(STORAGE_KEYS.autoLoadEnabled, nextEnabled)) { + if (state.currentPage === 'settings') renderPage('settings'); + return false; + } + state.autoLoadEnabled = nextEnabled; + showToast(nextEnabled ? '已开启自动加载' : '已关闭自动加载', 'info'); + if (state.currentPage === 'settings') renderPage('settings'); + return true; +} + +export async function manualLoadWords() { + await doLoadWords(true); +} + +export async function autoLoadWords() { + if (!state.autoLoadEnabled) return; + await doLoadWords(false); +} + +export async function doLoadWords(force) { + if (!force && state.words.length > 0) return; + + const libraryId = state.activeWordLibrary; + let memorySnapshot; + let storageSnapshot; + try { + const valid = await fetchWordLibrary(libraryId); + if (state.activeWordLibrary !== libraryId) return; + memorySnapshot = { + words: state.words.slice(), + records: state.records.slice(), + schedule: { ...state.schedule }, + favorites: state.favorites.slice() + }; + storageSnapshot = snapshotStorageItems([ + getLibraryStorageKey(STORAGE_KEYS.words, libraryId), + getLibraryStorageKey(STORAGE_KEYS.records, libraryId), + getLibraryStorageKey(STORAGE_KEYS.schedule, libraryId), + getLibraryStorageKey(STORAGE_KEYS.favorites, libraryId) + ]); + if (!storageSnapshot) throw new Error('无法读取本地存储'); + if (state.words.length === 0) { + state.records = []; + state.schedule = {}; + state.favorites = []; + } + const existingEn = new Set(state.words.map(word => word.english.toLowerCase())); + let added = 0; + let nextId = getNextId(); + + valid.forEach(rawWord => { + const lower = rawWord.english.toLowerCase(); + if (existingEn.has(lower)) return; + const word = normalizeImportedWord(rawWord, nextId++); + state.words.push(word); + initWordSchedule(word.id, false); + existingEn.add(lower); + added++; + }); + + if (added > 0) { + if (!saveWords() || !saveRecords() || !saveSchedule() || !saveFavorites()) throw new Error('词库数据保存失败,已恢复加载前状态'); + showToast(`${force ? '手动' : '自动'}加载了 ${added} 个单词${valid.length - added > 0 ? `(${valid.length - added} 个重复跳过)` : ''}`, 'success'); + renderPage(state.currentPage); + } else if (force) { + showToast('没有新单词可加载(全部已存在)', 'info'); + } + } catch (error) { + if (state.activeWordLibrary !== libraryId) return; + if (memorySnapshot) { + state.words = memorySnapshot.words; + state.records = memorySnapshot.records; + state.schedule = memorySnapshot.schedule; + state.favorites = memorySnapshot.favorites; + } + if (storageSnapshot) { + try { + restoreStorageItems(storageSnapshot); + } catch (rollbackError) { + console.error('Failed to roll back loaded words', rollbackError); + } + } + if (force) showToast(error.message, 'warning'); + } +} + diff --git a/src/js/services/mime.js b/src/js/services/mime.js new file mode 100644 index 0000000..6ca6c17 --- /dev/null +++ b/src/js/services/mime.js @@ -0,0 +1,168 @@ +/** + * Pure MIME and EML decoding helpers. Inputs are raw strings or byte buffers; + * outputs are decoded text. The module has no DOM, network, or storage side effects. + */ +export function createTextDecoder(charset = 'utf-8') { + try { + return new TextDecoder(charset); + } catch (_) { + return new TextDecoder('utf-8'); + } +} + +function toBytePreservingString(input) { + if (typeof input === 'string') return input; + const bytes = input instanceof Uint8Array + ? input + : input instanceof ArrayBuffer + ? new Uint8Array(input) + : ArrayBuffer.isView(input) + ? new Uint8Array(input.buffer, input.byteOffset, input.byteLength) + : new Uint8Array(); + let result = ''; + const chunkSize = 0x8000; + for (let offset = 0; offset < bytes.length; offset += chunkSize) { + result += String.fromCharCode(...bytes.subarray(offset, offset + chunkSize)); + } + return result; +} + +function byteStringToBytes(text) { + return Uint8Array.from(text, char => char.charCodeAt(0) & 0xff); +} + +function decodeUnencodedBody(text, charset) { + // 未编码正文(7bit/8bit):先把「每字符 = 一个字节」的字节串按 charset 解码; + // 若声明 UTF-8 却解出替换符 U+FFFD,说明 text 实际上已是解析好的 JS 字符串(而非原始 + // 字节串),下面两种情况据此把它重新编码为 UTF-8 字节后再解码: + // 情况一:text 含真正的 Unicode 字符(码点 > 0xFF),必然不是字节串,直接重编码; + // 情况二:text 仅含高位 Latin-1 字节(0x80-0xFF),重编码后不再出现替换符时才采用。 + const decoder = createTextDecoder(charset); + const decoded = decoder.decode(byteStringToBytes(text)); + if (/^utf-?8$/i.test(charset) && decoded.includes('\ufffd') && /[^\u0000-\u00ff]/.test(text)) { + return decoder.decode(new TextEncoder().encode(text)); + } + if (/^utf-?8$/i.test(charset) && decoded.includes('\ufffd') && /[\u0080-\u00ff]/.test(text)) { + const encoded = new TextEncoder().encode(text); + const retry = decoder.decode(encoded); + if (!retry.includes('\ufffd')) return retry; + } + return decoded; +} + +export function decodeQuotedPrintable(text, charset) { + const unfolded = text.replace(/=\r?\n/g, ''); + const bytes = []; + for (let index = 0; index < unfolded.length; index++) { + if (unfolded[index] === '=' && /^[0-9A-Fa-f]{2}$/.test(unfolded.slice(index + 1, index + 3))) { + bytes.push(Number.parseInt(unfolded.slice(index + 1, index + 3), 16)); + index += 2; + } else { + bytes.push(unfolded.charCodeAt(index) & 0xff); + } + } + return createTextDecoder(charset).decode(Uint8Array.from(bytes)); +} + +export function decodeBase64(text, charset) { + try { + const binary = atob(text.replace(/\s+/g, '')); + return createTextDecoder(charset).decode(byteStringToBytes(binary)); + } catch (_) { + return text; + } +} + +export function splitMimeSection(section) { + const separatorIndex = section.search(/\r?\n\r?\n/); + if (separatorIndex < 0) return { headers: section, body: '' }; + + const separator = section.slice(separatorIndex).match(/^\r?\n\r?\n/)[0]; + return { + headers: section.slice(0, separatorIndex), + body: section.slice(separatorIndex + separator.length) + }; +} + +export function decodeBasicEntities(text) { + return text.replace(/&(nbsp|amp|lt|gt|quot|apos|#(?:\d+|x[0-9a-f]+));/gi, (match, entity) => { + const normalized = entity.toLowerCase(); + const entities = { nbsp: ' ', amp: '&', lt: '<', gt: '>', quot: '"', apos: "'" }; + if (normalized in entities) return entities[normalized]; + + const isHex = normalized.startsWith('#x'); + const codePoint = Number.parseInt(normalized.slice(isHex ? 2 : 1), isHex ? 16 : 10); + try { + return String.fromCodePoint(codePoint); + } catch (_) { + return match; + } + }); +} + +export function decodeMimePart(part) { + const unfoldedHeaders = part.headers.replace(/\r?\n[ \t]+/g, ' '); + const charsetMatch = unfoldedHeaders.match(/charset\s*=\s*(?:"([^"]+)"|([^;\s]+))/i); + const charset = charsetMatch ? (charsetMatch[1] || charsetMatch[2]) : 'utf-8'; + + let body; + if (/content-transfer-encoding:\s*quoted-printable/i.test(unfoldedHeaders)) { + body = decodeQuotedPrintable(part.body, charset); + } else if (/content-transfer-encoding:\s*base64/i.test(unfoldedHeaders)) { + body = decodeBase64(part.body, charset); + } else { + body = decodeUnencodedBody(part.body, charset); + } + if (/content-type:\s*text\/html\b/i.test(unfoldedHeaders)) { + body = body.replace(/<(script|style|template|noscript)\b[^>]*>[\s\S]*?(?:<\/\1\s*>|$)/gi, ' '); + body = decodeBasicEntities(body.replace(/<[^>]+>/g, ' ')); + } + return body; +} + +export function extractMimeText(section, depth = 0) { + const unfoldedHeaders = section.headers.replace(/\r?\n[ \t]+/g, ' '); + const isMultipart = /content-type:\s*multipart\//i.test(unfoldedHeaders); + if (!isMultipart) return decodeMimePart(section); + if (depth >= 5) return ''; + + const boundaryMatch = unfoldedHeaders.match(/boundary\s*=\s*(?:"([^"]+)"|([^;\s]+))/i); + const boundary = boundaryMatch && (boundaryMatch[1] || boundaryMatch[2]); + if (!boundary) return ''; + + const escapedBoundary = boundary.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); + const parts = section.body + .split(new RegExp(`(?:^|\\r?\\n)--${escapedBoundary}(?:--)?[ \\t]*(?=\\r?\\n|$)`)) + .map(part => part.replace(/^\r?\n/, '').replace(/\r?\n$/, '')) + .filter(part => part.trim() && part.trim() !== '--') + .map(splitMimeSection); + const partHeaders = item => item.headers.replace(/\r?\n[ \t]+/g, ' '); + const isType = (item, typeRe) => typeRe.test(partHeaders(item)); + const hasContentType = item => /(?:^|\s)content-type\s*:/i.test(partHeaders(item)); + const isPlainText = item => !hasContentType(item) || isType(item, /content-type:\s*text\/plain\b/i); + const candidates = parts.filter(item => !/content-disposition:\s*attachment\b/i.test(partHeaders(item))); + + if (/content-type:\s*multipart\/alternative\b/i.test(unfoldedHeaders)) { + const preferredCandidates = [ + ...candidates.filter(isPlainText), + ...candidates.filter(item => isType(item, /content-type:\s*text\/html\b/i)), + ...candidates.filter(item => isType(item, /content-type:\s*multipart\//i)) + ]; + for (const candidate of preferredCandidates) { + const body = extractMimeText(candidate, depth + 1); + if (body.trim()) return body; + } + return ''; + } + + for (const candidate of candidates) { + if (!isPlainText(candidate) && !isType(candidate, /content-type:\s*(?:text\/html|multipart\/)/i)) continue; + const body = extractMimeText(candidate, depth + 1); + if (body.trim()) return body; + } + return ''; +} + +export function extractEmlBody(input) { + return extractMimeText(splitMimeSection(toBytePreservingString(input))); +} diff --git a/src/js/services/quiz-generator.js b/src/js/services/quiz-generator.js new file mode 100644 index 0000000..6ab4cf2 --- /dev/null +++ b/src/js/services/quiz-generator.js @@ -0,0 +1,121 @@ +import { state } from '../core/state.js'; + +/** + * Pure quiz generation and AI-response validation helpers. Inputs and outputs + * are arrays/plain objects; the module reads vocabulary from state when needed + * and has no DOM, network, or localStorage side effects. + */ +// ==================== Local Quiz Generator ==================== +export function shuffle(arr) { + const a = [...arr]; + for (let i = a.length - 1; i > 0; i--) { + const j = Math.floor(Math.random() * (i + 1)); + [a[i], a[j]] = [a[j], a[i]]; + } + return a; +} + +export function generateLocalQuiz(mode, count, wordPool, order) { + const words = wordPool || state.words; + if (words.length < 4) return []; + + const allWords = state.words.length >= 4 ? state.words : words; + + const ordered = order === 'order' + ? [...words].sort((a, b) => a.id - b.id) + : shuffle(words); + const targetCount = Math.min(count, words.length); + // 干扰项按当前模式做文本去重,避免出现与正确答案释义相同的选项(同义词库常见) + // textOf 容错缺失字段(脏数据),避免对 undefined 调用 .trim() 导致本地出题整体崩溃 + const textOf = w => String((mode === 'en2zh' ? w.chinese : w.english) || '').trim(); + const questions = []; + + for (const word of ordered) { + if (questions.length >= targetCount) break; + + const correctText = textOf(word); + if (!correctText) continue; + const usedTexts = new Set([correctText]); + const others = []; + for (const o of shuffle(allWords)) { + if (o.id === word.id) continue; + const t = textOf(o); + if (!t || usedTexts.has(t)) continue; + usedTexts.add(t); + others.push(o); + if (others.length === 3) break; + } + // 同义词过多或脏数据导致凑不齐 3 个有效干扰项时跳过该词,避免生成少于四项的无效题目 + if (others.length < 3) continue; + + let question, tagged; + + if (mode === 'en2zh') { + question = word.english; + tagged = [ + { text: word.chinese, correct: true }, + ...others.map(o => ({ text: o.chinese, correct: false })) + ]; + } else { + question = word.chinese; + tagged = [ + { text: word.english, correct: true }, + ...others.map(o => ({ text: o.english, correct: false })) + ]; + } + + const shuffled = shuffle(tagged); + + questions.push({ + question, + phonetic: mode === 'en2zh' ? word.phonetic : null, + options: shuffled.map(t => t.text), + answer: shuffled.findIndex(t => t.correct), + wordId: word.id, + word + }); + } + + return questions; +} + +export function extractJsonValue(content, fallback = null) { + const cleaned = String(content || '').replace(/```json?\n?/gi, '').replace(/```/g, '').trim(); + try { + return JSON.parse(cleaned); + } catch (_) { + const firstObject = cleaned.indexOf('{'); + const lastObject = cleaned.lastIndexOf('}'); + const firstArray = cleaned.indexOf('['); + const lastArray = cleaned.lastIndexOf(']'); + const candidates = []; + if (firstObject >= 0 && lastObject > firstObject) candidates.push(cleaned.slice(firstObject, lastObject + 1)); + if (firstArray >= 0 && lastArray > firstArray) candidates.push(cleaned.slice(firstArray, lastArray + 1)); + for (const candidate of candidates) { + try { return JSON.parse(candidate); } catch (_) { /* try next */ } + } + return fallback; + } +} + +export function isPlainObject(value) { + if (value === null || typeof value !== 'object') return false; + const prototype = Object.getPrototypeOf(value); + return prototype === Object.prototype || prototype === null; +} + +export function sanitizeAiQuestion(q) { + if (!isPlainObject(q) || !Array.isArray(q.options) || q.options.length !== 4) return null; + const question = typeof q.question === 'string' ? q.question.trim() : ''; + const options = q.options.map(option => typeof option === 'string' ? option.trim() : ''); + if (!question || options.some(option => !option) || new Set(options).size !== 4) return null; + const answer = Number(q.answer); + if (!Number.isInteger(answer) || answer < 0 || answer > 3) return null; + return { + ...q, + question, + options, + answer, + explanation: String(q.explanation || '').trim() + }; +} diff --git a/src/js/services/stats.js b/src/js/services/stats.js new file mode 100644 index 0000000..7453887 --- /dev/null +++ b/src/js/services/stats.js @@ -0,0 +1,116 @@ +import { EBBINGHAUS_INTERVALS } from '../constants.js'; +import { state } from '../core/state.js'; +import { toLocalDateStr } from './ebbinghaus.js'; + +/** + * Derived learning statistics. Functions read words, records, schedule, and + * favorites from shared state, return computed values, and perform no storage writes. + */ +let errorWordsCache = null; +export function invalidateErrorWordsCache() { errorWordsCache = null; } +export function getMastery(wordId) { + const sch = state.schedule[wordId]; + if (!sch) return 'new'; + if (sch.stage >= EBBINGHAUS_INTERVALS.length - 1) return 'mastered'; + if (sch.stage >= 3) return 'learning'; + if (sch.correctCount > 0) return 'learning'; + return 'new'; +} + +export function getStats() { + const total = state.words.length; + let mastered = 0, learning = 0, newCount = 0; + state.words.forEach(w => { + const m = getMastery(w.id); + if (m === 'mastered') mastered++; + else if (m === 'learning') learning++; + else newCount++; + }); + const due = getQuizErrorWords().length; + return { total, mastered, learning, newCount, due }; +} + +export function getQuizErrorWords() { + if (errorWordsCache) return [...errorWordsCache]; + + const wordById = new Map(state.words.map(w => [w.id, w])); + const wordStats = {}; + state.records.filter(r => r.type === 'quiz').forEach(r => { + if (!wordStats[r.wordId]) wordStats[r.wordId] = { correct: 0, incorrect: 0 }; + if (r.isCorrect) wordStats[r.wordId].correct++; + else wordStats[r.wordId].incorrect++; + }); + + errorWordsCache = Object.entries(wordStats) + .filter(([, s]) => s.incorrect > 0) + .map(([id, stats]) => { + const word = wordById.get(Number(id)); + if (!word) return null; + const total = stats.correct + stats.incorrect; + const rate = total > 0 ? Math.round(stats.correct / total * 100) : 0; + return { ...word, quizStats: stats, correctRate: rate }; + }) + .filter(Boolean) + .sort((a, b) => a.correctRate - b.correctRate); + return [...errorWordsCache]; +} + +export function getStreak() { + const dates = [...new Set(state.records.map(r => r.date))].sort().reverse(); + if (dates.length === 0) return 0; + let streak = 0; + let check = new Date(); + for (let i = 0; i < 365; i++) { + const dateStr = toLocalDateStr(check); + if (dates.includes(dateStr)) { + streak++; + } else if (i > 0) { + break; + } + check.setDate(check.getDate() - 1); + } + return streak; +} + +export function getLast30DaysData() { + const data = []; + const today = new Date(); + + for (let i = 29; i >= 0; i--) { + const d = new Date(today); + d.setDate(d.getDate() - i); + const dateStr = toLocalDateStr(d); + const count = state.records.filter(r => r.date === dateStr).length; + data.push({ + date: dateStr, + label: `${d.getMonth() + 1}/${d.getDate()}`, + count + }); + } + + return data; +} + +export function getErrorTopWords(n) { + const wordStats = {}; + state.records.forEach(r => { + if (!wordStats[r.wordId]) wordStats[r.wordId] = { correct: 0, total: 0 }; + wordStats[r.wordId].total++; + if (r.isCorrect) wordStats[r.wordId].correct++; + }); + + return Object.entries(wordStats) + .filter(([, s]) => s.total >= 1) + .map(([id, s]) => { + const w = state.words.find(w => w.id === Number(id)); + if (!w) return null; + return { + ...w, + rate: Math.round(s.correct / s.total * 100), + total: s.total + }; + }) + .filter(Boolean) + .sort((a, b) => a.rate - b.rate) + .slice(0, n); +} diff --git a/src/js/services/tts.js b/src/js/services/tts.js new file mode 100644 index 0000000..9ba5008 --- /dev/null +++ b/src/js/services/tts.js @@ -0,0 +1,474 @@ +import { state } from '../core/state.js'; +import { showToast } from '../ui/toast.js'; + +/** + * Text-to-speech service with Azure, Youdao, and Web Speech fallbacks. + * Public calls accept text and return playback success. The service reads TTS + * configuration from state.settings, performs network/audio side effects, keeps + * only in-memory caches, and never writes localStorage. + */ +// ==================== TTS (Text-to-Speech) ==================== +let currentAudio = null; +let ttsObjectUrl = null; +let ttsFetchController = null; +let cloudTtsAuthBlockedUntil = 0; +let ttsRequestSeq = 0; + +export function resetCloudTtsAuthBlock() { + cloudTtsAuthBlockedUntil = 0; +} +export const CLOUD_TTS_CACHE_LIMIT = 50; +export const CLOUD_TTS_PREFETCH_CONCURRENCY = 4; +export const YOUDAO_TTS_PREFETCH_LIMIT = 50; +export const QUIZ_AUDIO_PREFETCH_WINDOW_SIZE = 50; +export const QUIZ_AUDIO_PREFETCH_NEXT_THRESHOLD = 1; +const cloudTtsCache = new Map(); +const cloudTtsInflight = new Map(); +const youdaoTtsPrefetchCache = new Map(); + +function abortCurrentTtsFetch() { + if (!ttsFetchController) return; + + const controller = ttsFetchController; + ttsFetchController = null; + + for (const [cacheKey, entry] of cloudTtsInflight.entries()) { + if (entry.controller === controller) { + clearTimeout(entry.timeoutId); + cloudTtsInflight.delete(cacheKey); + } + } + + controller.abort(); +} + +function stopCurrentAudioPlayback() { + if (currentAudio) { + currentAudio.pause(); + currentAudio.currentTime = 0; + currentAudio = null; + } + if (ttsObjectUrl) { + URL.revokeObjectURL(ttsObjectUrl); + ttsObjectUrl = null; + } +} + +function stopCurrentPlayback() { + abortCurrentTtsFetch(); + stopCurrentAudioPlayback(); + if ('speechSynthesis' in window) window.speechSynthesis.cancel(); +} + +export function stopAllAudio() { + ttsRequestSeq++; + stopCurrentPlayback(); +} + +export function clearCloudTtsCache() { + cloudTtsCache.clear(); +} + +export function sanitizeAzureSpeechKey(value) { + return sanitizeAzureSpeechKeyValue(value); +} + +export function getTtsSettings() { + return readTtsSettings(); +} + +function sanitizeAzureSpeechKeyValue(value) { + return String(value || '') + .replace(/```(?:\w+)?/g, '') + .replace(/[`'"\s]/g, '') + .trim(); +} + +function readTtsSettings() { + const s = state.settings || {}; + return { + enabled: s.ttsEnabled !== false, + provider: s.ttsProvider || 'azure', + apiKey: sanitizeAzureSpeechKeyValue(s.ttsApiKey), + endpoint: (s.ttsEndpoint || '').trim().replace(/\/$/, ''), + region: (s.ttsRegion || '').trim().toLowerCase(), + voice: (s.ttsVoice || 'en-US-JennyNeural').trim(), + outputFormat: (s.ttsOutputFormat || 'audio-24khz-48kbitrate-mono-mp3').trim() + }; +} + +function normalizeAzureTtsEndpoint(endpoint, region) { + let cleanEndpoint = (endpoint || '').trim().replace(/\/$/, ''); + cleanEndpoint = cleanEndpoint.replace(/\.stt\.speech\.microsoft\.com/i, '.tts.speech.microsoft.com'); + if (cleanEndpoint) { + return /\/cognitiveservices\/v1$/i.test(cleanEndpoint) ? cleanEndpoint : `${cleanEndpoint}/cognitiveservices/v1`; + } + return region ? `https://${region}.tts.speech.microsoft.com/cognitiveservices/v1` : ''; +} + +function escapeXml(str) { + return String(str == null ? '' : str) + .replace(/&/g, '&') + .replace(//g, '>') + .replace(/"/g, '"') + .replace(/'/g, '''); +} + +function voiceLangFromName(voice) { + const m = String(voice || '').match(/^([a-z]{2}-[A-Z]{2})-/); + return m ? m[1] : 'en-US'; +} + +function buildAzureSsml(text, voice, rate) { + const lang = voiceLangFromName(voice); + const pct = Math.round((rate - 1) * 100); + const rateAttr = pct === 0 ? '' : ` rate="${pct > 0 ? '+' : ''}${pct}%"`; + return `${escapeXml(text)}`; +} + +function isAzureTtsAuthError(status) { + return status === 401 || status === 403; +} + +function azureTtsErrorMessage(status, body, cfg) { + const endpoint = normalizeAzureTtsEndpoint(cfg.endpoint, cfg.region); + const detail = String(body || '').trim().slice(0, 300); + if (status === 401) { + return `Azure TTS 认证失败 (401):请确认 Speech API Key 属于 ${cfg.region || '当前'} 区域,并且没有复制到多余空格、引号或 Markdown 标记。当前请求地址:${endpoint}`; + } + if (status === 403) { + return `Azure TTS 无访问权限 (403):请检查 Speech 资源网络访问权限、订阅状态,以及当前区域 ${cfg.region || ''} 是否可用。当前请求地址:${endpoint}`; + } + return detail || `Azure TTS 请求失败 (${status})`; +} + +function getCloudTtsCache(cacheKey) { + if (!cloudTtsCache.has(cacheKey)) return null; + const blob = cloudTtsCache.get(cacheKey); + cloudTtsCache.delete(cacheKey); + cloudTtsCache.set(cacheKey, blob); + return blob; +} + +function setCloudTtsCache(cacheKey, blob) { + cloudTtsCache.set(cacheKey, blob); + while (cloudTtsCache.size > CLOUD_TTS_CACHE_LIMIT) { + const oldestKey = cloudTtsCache.keys().next().value; + cloudTtsCache.delete(oldestKey); + } +} + +function setYoudaoTtsPrefetchCache(cacheKey, audio) { + youdaoTtsPrefetchCache.set(cacheKey, audio); + while (youdaoTtsPrefetchCache.size > YOUDAO_TTS_PREFETCH_LIMIT) { + const oldestKey = youdaoTtsPrefetchCache.keys().next().value; + youdaoTtsPrefetchCache.delete(oldestKey); + } +} + +function getCloudTtsCacheKey(text, rate, cfg = readTtsSettings()) { + const endpoint = normalizeAzureTtsEndpoint(cfg.endpoint, cfg.region); + if (!cfg.enabled || cfg.provider !== 'azure' || !cfg.apiKey || !endpoint) return null; + return [cfg.provider, endpoint, cfg.voice, cfg.outputFormat, rate, text].join('\n'); +} + +async function fetchCloudTtsBlob(text, rate = 1, { abortCurrent = false } = {}) { + const cfg = readTtsSettings(); + if (cloudTtsAuthBlockedUntil > Date.now()) return null; + const endpoint = normalizeAzureTtsEndpoint(cfg.endpoint, cfg.region); + const cacheKey = getCloudTtsCacheKey(text, rate, cfg); + if (!cacheKey || !endpoint) return null; + + const cached = getCloudTtsCache(cacheKey); + if (cached) return cached; + + if (abortCurrent) { + abortCurrentTtsFetch(); + } + + const existing = cloudTtsInflight.get(cacheKey); + if (existing) { + if (abortCurrent) { + ttsFetchController = existing.controller; + } + return existing.promise; + } + + const controller = new AbortController(); + let timedOut = false; + const timeoutId = setTimeout(() => { + timedOut = true; + controller.abort(); + }, 15000); + if (abortCurrent) { + ttsFetchController = controller; + } + + const request = (async () => { + try { + const res = await fetch(endpoint, { + method: 'POST', + signal: controller.signal, + headers: { + 'Ocp-Apim-Subscription-Key': cfg.apiKey, + 'Content-Type': 'application/ssml+xml', + 'X-Microsoft-OutputFormat': cfg.outputFormat + }, + body: buildAzureSsml(text, cfg.voice, rate) + }); + if (!res.ok) { + const err = await res.text().catch(() => ''); + if (isAzureTtsAuthError(res.status)) { + cloudTtsAuthBlockedUntil = Date.now() + 5 * 60 * 1000; + } + throw new Error(azureTtsErrorMessage(res.status, err, cfg)); + } + resetCloudTtsAuthBlock(); + const blob = await res.blob(); + setCloudTtsCache(cacheKey, blob); + return blob; + } catch (error) { + if (timedOut) { + const timeoutError = new Error('Azure TTS 请求超时(15 秒)'); + timeoutError.name = 'TimeoutError'; + throw timeoutError; + } + throw error; + } finally { + clearTimeout(timeoutId); + if (ttsFetchController === controller) { + ttsFetchController = null; + } + const existing = cloudTtsInflight.get(cacheKey); + if (existing?.promise === request) { + cloudTtsInflight.delete(cacheKey); + } + } + })(); + + cloudTtsInflight.set(cacheKey, { promise: request, controller, timeoutId }); + return request; +} + +async function speakCloudTts(text, rate = 1, requestSeq = ttsRequestSeq) { + stopCurrentAudioPlayback(); + let blob = await fetchCloudTtsBlob(text, rate, { abortCurrent: true }); + if (!blob) return false; + + if (requestSeq !== ttsRequestSeq) return false; + + const objectUrl = URL.createObjectURL(blob); + ttsObjectUrl = objectUrl; + const audio = new Audio(objectUrl); + currentAudio = audio; + const cleanupAudio = () => { + if (ttsObjectUrl === objectUrl) { + URL.revokeObjectURL(objectUrl); + ttsObjectUrl = null; + } + if (currentAudio === audio) { + currentAudio = null; + } + }; + try { + await new Promise((resolve, reject) => { + let settled = false; + const settle = (fn, value) => { + if (settled) return; + settled = true; + fn(value); + }; + + audio.addEventListener('ended', () => settle(resolve, true), { once: true }); + audio.addEventListener('pause', () => settle(resolve, false), { once: true }); + audio.addEventListener('error', () => settle(reject, new Error('Azure TTS 音频播放失败')), { once: true }); + + const playPromise = audio.play(); + if (playPromise) playPromise.catch(err => settle(reject, err)); + }); + return true; + } finally { + cleanupAudio(); + } +} + +function speakYoudao(text, rate = 1) { + ttsLog('youdao TTS for:', text); + stopCurrentPlayback(); + + const cacheKey = `youdao\n${text}`; + let audio = youdaoTtsPrefetchCache.get(cacheKey); + if (audio) { + youdaoTtsPrefetchCache.delete(cacheKey); + audio.currentTime = 0; + } else { + audio = new Audio(); + audio.preload = 'auto'; + audio.src = `https://dict.youdao.com/dictvoice?audio=${encodeURIComponent(text)}&type=0`; + } + + if (rate !== 1) audio.playbackRate = rate; + currentAudio = audio; + const cleanupAudio = () => { + if (currentAudio === audio) { + currentAudio = null; + } + }; + + return new Promise((resolve) => { + let settled = false; + const settle = (value) => { + if (settled) return; + settled = true; + cleanupAudio(); + resolve(value); + }; + + audio.addEventListener('ended', () => { + ttsLog('youdao ended'); + settle(true); + }, { once: true }); + + audio.addEventListener('pause', () => { + ttsLog('youdao paused'); + settle(false); + }, { once: true }); + + audio.addEventListener('error', (e) => { + ttsLog('youdao audio error', e); + settle(false); + }, { once: true }); + + const p = audio.play(); + if (p) { + p.then(() => { + ttsLog('youdao playing OK'); + }).catch((err) => { + ttsLog('youdao play() rejected', err && err.name); + settle(false); + }); + } + }); +} + +export async function prefetchAudio(input, rate = 0.92, { allowCloud = false } = {}) { + const texts = (Array.isArray(input) ? input : [input]) + .map(text => String(text || '').trim()) + .filter(Boolean); + const uniqueTexts = [...new Set(texts)]; + if (!uniqueTexts.length) return 0; + + const cfg = readTtsSettings(); + const cloudPrefetchEnabled = state.settings?.ttsPrefetchEnabled === true; + if (allowCloud && cloudPrefetchEnabled && cfg.enabled && cfg.provider === 'azure' && cfg.apiKey) { + let cursor = 0; + let successCount = 0; + const workers = Array.from( + { length: Math.min(CLOUD_TTS_PREFETCH_CONCURRENCY, uniqueTexts.length) }, + async () => { + while (cursor < uniqueTexts.length) { + const text = uniqueTexts[cursor++]; + try { + const blob = await fetchCloudTtsBlob(text, rate); + if (blob) successCount++; + } catch (err) { + if (err && err.name !== 'AbortError') ttsLog('cloud TTS prefetch failed', err); + } + } + } + ); + await Promise.all(workers); + return successCount; + } + + let successCount = 0; + uniqueTexts.forEach(text => { + const cacheKey = `youdao\n${text}`; + if (youdaoTtsPrefetchCache.has(cacheKey)) { + successCount++; + return; + } + + try { + const audio = new Audio(); + audio.preload = 'auto'; + audio.src = `https://dict.youdao.com/dictvoice?audio=${encodeURIComponent(text)}&type=0`; + setYoudaoTtsPrefetchCache(cacheKey, audio); + audio.load(); + successCount++; + } catch (err) { + ttsLog('youdao TTS prefetch failed', err); + } + }); + return successCount; +} + +const TTS_DEBUG = false; +export function logTts() { if (TTS_DEBUG) console.log('[TTS]', ...arguments); } +function ttsLog() { logTts(...arguments); } + +function speakWebSpeech(text, rate = 1, requestSeq = ttsRequestSeq) { + if (!('speechSynthesis' in window) || typeof SpeechSynthesisUtterance === 'undefined') return Promise.resolve(false); + window.speechSynthesis.cancel(); + const utterance = new SpeechSynthesisUtterance(String(text || '')); + utterance.lang = 'en-US'; + utterance.rate = rate; + return new Promise(resolve => { + let settled = false; + const settle = value => { + if (settled) return; + settled = true; + resolve(value && requestSeq === ttsRequestSeq); + }; + utterance.onend = () => settle(true); + utterance.onerror = () => settle(false); + window.speechSynthesis.speak(utterance); + }); +} + +async function speakWithFallback(text, cloudRate, youdaoRate) { + const requestSeq = ++ttsRequestSeq; + ttsLog('speak() called with:', JSON.stringify(text)); + try { + const cloudPlayed = await speakCloudTts(text, cloudRate, requestSeq); + if (requestSeq !== ttsRequestSeq) return false; + if (cloudPlayed) return true; + } catch (err) { + if (requestSeq !== ttsRequestSeq || (err && err.name === 'AbortError')) return false; + ttsLog('cloud TTS failed -> youdao fallback', err); + if (/Azure TTS (认证失败|无访问权限)/.test(err && err.message)) showToast(err.message, 'error'); + } + + const youdaoPlayed = await speakYoudao(text, youdaoRate); + if (requestSeq !== ttsRequestSeq) return false; + if (youdaoPlayed) return true; + + ttsLog('youdao TTS failed -> Web Speech fallback'); + const webSpeechPlayed = await speakWebSpeech(text, youdaoRate, requestSeq); + if (!webSpeechPlayed && requestSeq === ttsRequestSeq) showToast('当前无法播放语音,请稍后重试', 'warning'); + return webSpeechPlayed; +} + +export function speak(text) { + return speakWithFallback(text, 0.92, 1); +} + +export async function speakLocal(text) { + const requestSeq = ++ttsRequestSeq; + const youdaoPlayed = await speakYoudao(text, 1); + if (requestSeq !== ttsRequestSeq || youdaoPlayed) return youdaoPlayed; + const webSpeechPlayed = await speakWebSpeech(text, 1, requestSeq); + if (!webSpeechPlayed && requestSeq === ttsRequestSeq) showToast('当前无法播放语音,请稍后重试', 'warning'); + return webSpeechPlayed; +} + +export function speakSlow(text) { + return speakWithFallback(text, 0.55, 0.7); +} + +export function testCloudTtsConnection(text = 'Hello, this is Azure text to speech.') { + const requestSeq = ++ttsRequestSeq; + return speakCloudTts(text, 0.92, requestSeq); +} + diff --git a/src/js/ui/dom.js b/src/js/ui/dom.js new file mode 100644 index 0000000..382763a --- /dev/null +++ b/src/js/ui/dom.js @@ -0,0 +1,45 @@ +// ==================== Utility ==================== +export function escapeHtml(str) { + const d = document.createElement('div'); + d.textContent = str == null ? '' : String(str); + return d.innerHTML.replace(/"/g, '"').replace(/'/g, '''); +} + +export function formatFormsHtml(forms) { + if (!forms) return ''; + const parts = []; + for (const [key, val] of Object.entries(forms)) { + if (Array.isArray(val)) { + parts.push(`${escapeHtml(key)} ${escapeHtml(val.join(', '))}`); + } else { + parts.push(`${escapeHtml(key)} ${escapeHtml(String(val))}`); + } + } + return parts.join('
'); +} +export function autoResizeTextarea(el) { + el.style.height = '0'; + el.style.height = Math.max(200, el.scrollHeight + 2) + 'px'; +} + +export function debounce(fn, delay) { + let timer = null; + return function(...args) { + clearTimeout(timer); + timer = setTimeout(() => fn.apply(this, args), delay); + }; +} +export function formatMarkdown(text) { + return escapeHtml(text) + .replace(/\*\*(.*?)\*\*/g, '$1') + .replace(/\*(.*?)\*/g, '$1') + .replace(/^### (.*$)/gm, '

$1

') + .replace(/^## (.*$)/gm, '

$1

') + .replace(/^# (.*$)/gm, '

$1

') + .replace(/^- (.*$)/gm, '
  • $1
  • ') + .replace(/^(\d+)\. (.*$)/gm, '
  • $2
  • ') + .replace(/(?:^
  • .*<\/li>\n?)+/gm, list => `
      ${list.replace(/\n/g, '')}
    \n`) + .replace(/`(.*?)`/g, '$1') + .replace(/\n\n/g, '

    ') + .replace(/\n/g, '
    '); +} diff --git a/src/js/ui/modal.js b/src/js/ui/modal.js new file mode 100644 index 0000000..34dd399 --- /dev/null +++ b/src/js/ui/modal.js @@ -0,0 +1,23 @@ +// ==================== Modal ==================== +export function showModal(title, bodyHTML, footerHTML = '') { + closeModal(); + const root = document.getElementById('modal-root'); + root.innerHTML = ` +

    `; +} + +export function closeModal() { + document.getElementById('modal-root').innerHTML = ''; +} + + +export function closeModalBackdrop(el) { closeModal(); } diff --git a/src/js/ui/sidebar.js b/src/js/ui/sidebar.js new file mode 100644 index 0000000..07d331d --- /dev/null +++ b/src/js/ui/sidebar.js @@ -0,0 +1,10 @@ +// ==================== Sidebar (Mobile) ==================== +export function toggleSidebar() { + document.getElementById('sidebar').classList.toggle('open'); + document.getElementById('overlay').classList.toggle('show'); +} + +export function closeSidebar() { + document.getElementById('sidebar').classList.remove('open'); + document.getElementById('overlay').classList.remove('show'); +} diff --git a/src/js/ui/theme.js b/src/js/ui/theme.js new file mode 100644 index 0000000..70824ad --- /dev/null +++ b/src/js/ui/theme.js @@ -0,0 +1,35 @@ +import { STORAGE_KEYS } from '../core/storage.js'; + +// ==================== Theme ==================== +export function initTheme() { + let saved = 'light'; + try { + const stored = localStorage.getItem(STORAGE_KEYS.theme); + if (stored === 'dark' || stored === 'light') saved = stored; + } catch (error) { + console.warn('Failed to read saved theme', error); + } + document.documentElement.setAttribute('data-theme', saved); + updateThemeIcon(saved); +} + +export function toggleTheme() { + const current = document.documentElement.getAttribute('data-theme'); + const next = current === 'dark' ? 'light' : 'dark'; + document.documentElement.setAttribute('data-theme', next); + try { + localStorage.setItem(STORAGE_KEYS.theme, next); + } catch (error) { + console.warn('Failed to save theme', error); + } + updateThemeIcon(next); + document.dispatchEvent(new CustomEvent('themechange', { detail: { theme: next } })); +} + +export function updateThemeIcon(theme) { + const icon = theme === 'dark' ? '' : ''; + const el = document.getElementById('theme-icon'); + if (el) el.innerHTML = icon; + const mob = document.getElementById('theme-toggle-mobile'); + if (mob) mob.innerHTML = icon; +} diff --git a/src/js/ui/toast.js b/src/js/ui/toast.js new file mode 100644 index 0000000..722cf06 --- /dev/null +++ b/src/js/ui/toast.js @@ -0,0 +1,15 @@ +import { escapeHtml } from './dom.js'; + +// ==================== Toast ==================== +export function showToast(msg, type = 'info') { + const container = document.getElementById('toast-container'); + const toast = document.createElement('div'); + const icons = { info: 'fa-info-circle', success: 'fa-check-circle', error: 'fa-times-circle', warning: 'fa-exclamation-triangle' }; + toast.className = `toast ${type}`; + toast.innerHTML = `${escapeHtml(msg)}`; + container.appendChild(toast); + setTimeout(() => { + toast.classList.add('hiding'); + setTimeout(() => toast.remove(), 300); + }, 3000); +} diff --git a/src/package.json b/src/package.json new file mode 100644 index 0000000..ddbe783 --- /dev/null +++ b/src/package.json @@ -0,0 +1,8 @@ +{ + "name": "ai-english-refactor", + "private": true, + "type": "module", + "scripts": { + "serve": "python -m http.server 8000 --directory .." + } +} diff --git a/src/styles/base.css b/src/styles/base.css new file mode 100644 index 0000000..3e0f6ee --- /dev/null +++ b/src/styles/base.css @@ -0,0 +1,22 @@ +/* ==================== Reset & Base ==================== */ +*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } + +html { font-size: 16px; scroll-behavior: smooth; -webkit-text-size-adjust: 100%; } + +body { + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans SC', sans-serif; + background: var(--bg); + color: var(--text); + line-height: 1.6; + min-height: 100vh; + min-height: 100dvh; + -webkit-font-smoothing: antialiased; + padding-bottom: env(safe-area-inset-bottom, 0); + overscroll-behavior: none; +} + +a { color: var(--primary); text-decoration: none; } +img { max-width: 100%; } +button { cursor: pointer; font-family: inherit; } +input, select, textarea { font-family: inherit; font-size: inherit; } + diff --git a/src/styles/components.css b/src/styles/components.css new file mode 100644 index 0000000..3362adf --- /dev/null +++ b/src/styles/components.css @@ -0,0 +1,425 @@ +/* ==================== Cards ==================== */ +.card { + background: var(--bg-card); + border: 1px solid var(--border); + border-radius: var(--radius); + padding: 24px; + box-shadow: var(--shadow); + transition: box-shadow var(--transition), transform var(--transition), border-color var(--transition); +} + +.card:hover { + box-shadow: var(--shadow-md); + border-color: color-mix(in srgb, var(--primary) 20%, var(--border)); +} + +.card h3 { + font-size: 16px; + font-weight: 600; + margin-bottom: 16px; + color: var(--text); + display: flex; + align-items: center; + gap: 8px; +} + +.card h3 i { + color: var(--primary); + font-size: 15px; +} + +/* ==================== Buttons ==================== */ +.btn { + display: inline-flex; + align-items: center; + justify-content: center; + gap: 8px; + padding: 10px 20px; + border: none; + border-radius: var(--radius-sm); + font-size: 14px; + font-weight: 600; + cursor: pointer; + transition: all var(--transition); + white-space: nowrap; +} + +.btn-primary { + background: linear-gradient(135deg, var(--primary), var(--primary-hover)); + color: #fff; + box-shadow: 0 2px 8px var(--primary-glow); +} + +.btn-primary:hover { + background: linear-gradient(135deg, var(--primary-hover), var(--primary)); + transform: translateY(-1px); + box-shadow: 0 6px 20px var(--primary-glow); +} + +.btn-secondary { + background: var(--bg); + color: var(--text); + border: 1px solid var(--border); +} + +.btn-secondary:hover { background: var(--border); } + +.btn-success { background: var(--success); color: #fff; } +.btn-success:hover { opacity: 0.9; } + +.btn-warning { background: var(--warning); color: #fff; } +.btn-error { background: var(--error); color: #fff; } +.btn-error:hover { opacity: 0.9; } + +.btn-ghost { + background: transparent; + color: var(--text-secondary); + padding: 8px 12px; +} + +.btn-ghost:hover { background: var(--primary-bg); color: var(--primary); } + +.btn-lg { padding: 14px 28px; font-size: 16px; } +.btn-sm { padding: 6px 14px; font-size: 13px; } +.btn-icon { + width: 36px; height: 36px; + padding: 0; border-radius: 50%; + display: inline-flex; align-items: center; justify-content: center; +} + +.btn:disabled { + opacity: 0.5; + cursor: not-allowed; + transform: none !important; +} + +/* ==================== Forms ==================== */ +.form-group { + margin-bottom: 20px; +} + +.form-group label { + display: block; + font-size: 14px; + font-weight: 600; + color: var(--text); + margin-bottom: 6px; +} + +.form-group .hint { + font-size: 12px; + color: var(--text-muted); + margin-top: 4px; +} + +input[type="text"], +input[type="password"], +input[type="number"], +input[type="url"], +textarea, +select { + width: 100%; + padding: 10px 14px; + border: 1px solid var(--border); + border-radius: var(--radius-sm); + background: var(--bg-input); + color: var(--text); + font-size: 14px; + transition: border-color var(--transition), box-shadow var(--transition); + outline: none; +} + +input:focus, textarea:focus, select:focus { + border-color: var(--primary); + box-shadow: 0 0 0 3px var(--primary-bg), 0 2px 8px var(--primary-glow); +} + +textarea { resize: vertical; min-height: 100px; } + +select { + appearance: none; + background-image: url("data:image/svg+xml,%3Csvg width='12' height='8' viewBox='0 0 12 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%2394a3b8' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); + background-repeat: no-repeat; + background-position: right 12px center; + padding-right: 36px; +} + +/* ==================== Badges ==================== */ +.badge { + display: inline-flex; + align-items: center; + gap: 4px; + padding: 4px 12px; + border-radius: 20px; + font-size: 12px; + font-weight: 600; + letter-spacing: 0.3px; + transition: all var(--transition); +} + +.badge-primary { background: var(--primary-bg); color: var(--primary); border: 1px solid color-mix(in srgb, var(--primary) 15%, transparent); } +.badge-success { background: var(--success-light); color: var(--success); border: 1px solid color-mix(in srgb, var(--success) 15%, transparent); } +.badge-warning { background: var(--warning-light); color: var(--warning); border: 1px solid color-mix(in srgb, var(--warning) 15%, transparent); } +.badge-error { background: var(--error-light); color: var(--error); border: 1px solid color-mix(in srgb, var(--error) 15%, transparent); } + +/* ==================== Toast ==================== */ +#toast-container { + position: fixed; + top: 20px; + right: 20px; + z-index: 9999; + display: flex; + flex-direction: column; + gap: 8px; +} + +.toast { + padding: 14px 20px; + border-radius: var(--radius-sm); + background: var(--bg-card); + border: 1px solid var(--border); + box-shadow: var(--shadow-lg); + font-size: 14px; + color: var(--text); + display: flex; + align-items: center; + gap: 10px; + animation: slideInRight 0.35s cubic-bezier(0.4, 0, 0.2, 1); + max-width: 360px; + backdrop-filter: blur(12px); +} + +.toast i { + font-size: 16px; + flex-shrink: 0; +} + +.toast.success { border-left: 4px solid var(--success); } +.toast.success i { color: var(--success); } +.toast.error { border-left: 4px solid var(--error); } +.toast.error i { color: var(--error); } +.toast.warning { border-left: 4px solid var(--warning); } +.toast.warning i { color: var(--warning); } +.toast.info { border-left: 4px solid var(--primary); } +.toast.info i { color: var(--primary); } + +.toast.hiding { animation: slideOutRight 0.3s ease forwards; } + +/* ==================== Modal ==================== */ +.modal-overlay { + position: fixed; + inset: 0; + background: rgba(0,0,0,0.5); + backdrop-filter: blur(4px); + z-index: 1000; + display: flex; + align-items: center; + justify-content: center; + padding: 20px; + animation: fadeIn 0.2s ease; +} + +.modal { + background: var(--bg-card); + border-radius: var(--radius); + box-shadow: 0 20px 60px rgba(0,0,0,0.15), 0 4px 16px rgba(0,0,0,0.1); + width: 100%; + max-width: 520px; + max-height: 85vh; + overflow-y: auto; + animation: modalIn 0.3s cubic-bezier(0.4, 0, 0.2, 1); +} + +@keyframes modalIn { + from { opacity: 0; transform: scale(0.9) translateY(10px); } + to { opacity: 1; transform: scale(1) translateY(0); } +} + +.modal-header { + padding: 20px 24px; + border-bottom: 1px solid var(--border); + display: flex; + align-items: center; + justify-content: space-between; +} + +.modal-header h3 { + font-size: 18px; + font-weight: 600; + margin: 0; + display: flex; + align-items: center; + gap: 8px; +} + +.modal-close { + background: none; + border: none; + font-size: 22px; + color: var(--text-muted); + cursor: pointer; + width: 32px; height: 32px; + display: flex; + align-items: center; + justify-content: center; + border-radius: 50%; + transition: all var(--transition); +} + +.modal-close:hover { background: var(--bg); color: var(--text); } + +.modal-body { padding: 24px; } +.modal-footer { + padding: 16px 24px; + border-top: 1px solid var(--border); + display: flex; + justify-content: flex-end; + gap: 10px; +} + +/* ==================== Pagination ==================== */ +.pagination { + display: flex; + justify-content: center; + align-items: center; + gap: 6px; + margin-top: 24px; +} + +.pagination button { + min-width: 36px; height: 36px; + border: 1px solid var(--border); + border-radius: var(--radius-xs); + background: var(--bg-card); + color: var(--text-secondary); + font-size: 14px; + cursor: pointer; + transition: all var(--transition); +} + +.pagination button:hover:not(:disabled) { + border-color: var(--primary); + color: var(--primary); + background: var(--primary-bg); + transform: translateY(-1px); +} + +.pagination button.active { + background: linear-gradient(135deg, var(--primary), var(--primary-hover)); + color: #fff; + border-color: var(--primary); + box-shadow: 0 2px 8px var(--primary-glow); +} + +.pagination button:disabled { opacity: 0.4; cursor: default; } + +/* ==================== Empty State ==================== */ +.empty-state { + text-align: center; + padding: 60px 20px; + color: var(--text-muted); +} + +.empty-state .empty-icon { + font-size: 56px; + margin-bottom: 20px; + color: var(--primary); + opacity: 0.7; + animation: emptyFloat 3s ease-in-out infinite; +} + +@keyframes emptyFloat { + 0%, 100% { transform: translateY(0); } + 50% { transform: translateY(-8px); } +} + +.empty-state h3 { font-size: 18px; color: var(--text-secondary); margin-bottom: 8px; } +.empty-state p { font-size: 14px; margin-bottom: 20px; } + +/* ==================== Loading ==================== */ +.loading { + display: flex; + align-items: center; + justify-content: center; + gap: 8px; + padding: 40px; + color: var(--text-muted); + font-size: 14px; +} + +.spinner { + width: 24px; height: 24px; + border: 3px solid var(--border); + border-top-color: var(--primary); + border-radius: 50%; + animation: spin 0.7s linear infinite; + filter: drop-shadow(0 0 2px var(--primary-glow)); +} + +/* ==================== Checkbox ==================== */ +input[type="checkbox"] { + width: 18px; height: 18px; + accent-color: var(--primary); + cursor: pointer; +} + +/* ==================== Animations ==================== */ +@keyframes fadeIn { + from { opacity: 0; } + to { opacity: 1; } +} + +@keyframes scaleIn { + from { opacity: 0; transform: scale(0.95); } + to { opacity: 1; transform: scale(1); } +} + +@keyframes slideInRight { + from { opacity: 0; transform: translateX(60px); } + to { opacity: 1; transform: translateX(0); } +} + +@keyframes slideOutRight { + from { opacity: 1; transform: translateX(0); } + to { opacity: 0; transform: translateX(60px); } +} + +@keyframes spin { + to { transform: rotate(360deg); } +} + +@keyframes fadeInUp { + from { opacity: 0; transform: translateY(12px); } + to { opacity: 1; transform: translateY(0); } +} + +.fade-in-up { + animation: fadeInUp 0.35s cubic-bezier(0.4, 0, 0.2, 1); +} + +/* ==================== Scrollbar ==================== */ +::-webkit-scrollbar { width: 6px; } +::-webkit-scrollbar-track { background: transparent; } +::-webkit-scrollbar-thumb { background: var(--border); border-radius: 3px; } +::-webkit-scrollbar-thumb:hover { background: var(--text-muted); } + +/* ==================== Toggle Switch ==================== */ +.toggle-switch { + width: 44px; height: 24px; border-radius: 12px; + background: var(--border); cursor: pointer; + position: relative; transition: background 0.25s ease; + flex-shrink: 0; +} + +.toggle-switch.active { background: var(--success); } + +.toggle-knob { + width: 20px; height: 20px; border-radius: 50%; + background: #fff; position: absolute; + top: 2px; left: 2px; + transition: transform 0.25s ease; + box-shadow: 0 1px 3px rgba(0,0,0,0.15); +} + +.toggle-switch.active .toggle-knob { transform: translateX(20px); } + diff --git a/src/styles/layout.css b/src/styles/layout.css new file mode 100644 index 0000000..2a13d76 --- /dev/null +++ b/src/styles/layout.css @@ -0,0 +1,222 @@ +/* ==================== Layout ==================== */ +#app { + display: flex; + min-height: 100vh; +} + +#mobile-header { + display: none; + position: fixed; + top: 0; left: 0; right: 0; + height: var(--header-h); + background: var(--bg-card); + border-bottom: 1px solid var(--border); + z-index: 100; + align-items: center; + padding: 0 16px; + gap: 12px; + backdrop-filter: blur(12px); + background: rgba(255,255,255,0.85); +} + +[data-theme="dark"] #mobile-header { + background: rgba(30,41,59,0.9); +} + +#mobile-header h1 { + font-size: 18px; + flex: 1; + text-align: center; +} + +#mobile-header button { + min-width: 44px; + min-height: 44px; + background: none; + border: none; + color: var(--text); + font-size: 20px; + padding: 8px; + display: flex; + align-items: center; + justify-content: center; + border-radius: 10px; +} + +/* ==================== Sidebar ==================== */ +#sidebar { + position: fixed; + top: 0; left: 0; bottom: 0; + width: var(--sidebar-w); + background: var(--bg-sidebar); + border-right: 1px solid var(--border); + display: flex; + flex-direction: column; + z-index: 200; + transition: transform var(--transition); +} + +.sidebar-header { + padding: 24px 20px; + display: flex; + align-items: center; + gap: 12px; + border-bottom: 1px solid var(--border); + background: linear-gradient(135deg, var(--primary-bg) 0%, transparent 80%); +} + +.sidebar-header .logo { + font-size: 24px; + width: 42px; + height: 42px; + display: flex; + align-items: center; + justify-content: center; + background: linear-gradient(135deg, var(--primary), var(--primary-hover)); + color: #fff; + border-radius: var(--radius-sm); + box-shadow: 0 4px 12px var(--primary-glow); +} + +.sidebar-header h2 { + font-size: 18px; + font-weight: 700; + color: var(--text); + letter-spacing: 0.5px; +} + +.sidebar-nav { + flex: 1; + padding: 12px; + overflow-y: auto; + display: flex; + flex-direction: column; + gap: 2px; +} + +.nav-item { + display: flex; + align-items: center; + gap: 12px; + padding: 11px 16px; + border-radius: var(--radius-sm); + color: var(--text-secondary); + font-size: 15px; + font-weight: 500; + transition: all var(--transition); + text-decoration: none; + position: relative; +} + +.nav-item:hover { + background: var(--primary-bg); + color: var(--primary); +} + +.nav-item.active { + background: var(--primary-bg); + color: var(--primary); + font-weight: 600; +} + +.nav-item.active::before { + content: ''; + position: absolute; + left: 0; + top: 6px; + bottom: 6px; + width: 3px; + background: linear-gradient(180deg, var(--primary), var(--primary-hover)); + border-radius: 0 3px 3px 0; + box-shadow: 2px 0 8px var(--primary-glow); +} + +.nav-icon { + font-size: 16px; + width: 24px; + text-align: center; + display: flex; + align-items: center; + justify-content: center; +} + +.sidebar-footer { + padding: 16px; + border-top: 1px solid var(--border); +} + +.sidebar-footer button { + display: flex; + align-items: center; + gap: 10px; + width: 100%; + padding: 10px 16px; + border: none; + border-radius: var(--radius-sm); + background: var(--primary-bg); + color: var(--text-secondary); + font-size: 14px; + transition: all var(--transition); +} + +.sidebar-footer button:hover { background: var(--border); } + +#overlay { + display: none; + position: fixed; + inset: 0; + background: rgba(0,0,0,0.4); + z-index: 150; + backdrop-filter: blur(2px); +} + +/* ==================== Main Content ==================== */ +#main-content { + flex: 1; + margin-left: var(--sidebar-w); + min-height: 100vh; + transition: margin-left var(--transition); +} + +#page-content { + max-width: 1100px; + margin: 0 auto; + padding: 32px 32px 60px; +} + +/* ==================== Page Header ==================== */ +.page-header { + display: flex; + align-items: center; + justify-content: space-between; + margin-bottom: 28px; + flex-wrap: wrap; + gap: 16px; + padding-bottom: 20px; + border-bottom: 1px solid var(--border); +} + +.page-header h1 { + font-size: 26px; + font-weight: 700; + background: linear-gradient(135deg, var(--text), var(--text-secondary)); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; +} + +.quiz-session-meta { + display: flex; + align-items: center; + gap: 10px; + flex-wrap: wrap; +} + +.page-desc { + color: var(--text-secondary); + font-size: 15px; + margin-top: 4px; +} + +.page-actions { display: flex; gap: 10px; flex-wrap: wrap; } + diff --git a/src/styles/pages/extract.css b/src/styles/pages/extract.css new file mode 100644 index 0000000..0a389d6 --- /dev/null +++ b/src/styles/pages/extract.css @@ -0,0 +1,18 @@ +/* ==================== Email Extract ==================== */ +.extract-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; } + +.word-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; } + +.word-chip { + display: inline-flex; align-items: center; gap: 4px; + padding: 6px 14px; border-radius: 20px; font-size: 13px; font-weight: 500; + cursor: pointer; transition: 0.2s; border: 1.5px solid var(--border); + background: var(--bg-card); color: var(--text-secondary); user-select: none; +} + +.word-chip:hover { border-color: var(--primary); color: var(--primary); } +.word-chip.selected { background: var(--primary); color: #fff; border-color: var(--primary); } +.word-chip.exists { background: var(--bg); color: var(--text-muted); border-color: var(--border); text-decoration: line-through; cursor: not-allowed; opacity: 0.6; } + +.extract-actions { display: flex; gap: 8px; align-items: center; margin-top: 16px; flex-wrap: wrap; } + diff --git a/src/styles/pages/home.css b/src/styles/pages/home.css new file mode 100644 index 0000000..ffaccba --- /dev/null +++ b/src/styles/pages/home.css @@ -0,0 +1,164 @@ +/* ==================== Stat Cards ==================== */ +.stat-grid { + display: grid; + grid-template-columns: repeat(4, 1fr); + gap: 16px; + margin-bottom: 28px; +} + +.stat-card { + background: var(--bg-card); + border: 1px solid var(--border); + border-radius: var(--radius); + padding: 22px 20px; + display: flex; + align-items: center; + gap: 16px; + box-shadow: var(--shadow); + transition: all var(--transition); + position: relative; + overflow: hidden; +} + +.stat-card::after { + content: ''; + position: absolute; + inset: 0; + background: linear-gradient(135deg, transparent 60%, var(--primary-bg)); + opacity: 0; + transition: opacity var(--transition); + pointer-events: none; +} + +.stat-card:hover { + transform: translateY(-3px); + box-shadow: var(--shadow-md); +} + +.stat-card:hover::after { + opacity: 1; +} + +.stat-icon { + width: 48px; height: 48px; + border-radius: var(--radius-sm); + display: flex; + align-items: center; + justify-content: center; + font-size: 18px; + flex-shrink: 0; + transition: transform var(--transition); +} + +.stat-card:hover .stat-icon { + transform: scale(1.1); +} + +.stat-value { + font-size: 28px; + font-weight: 700; + line-height: 1.2; +} + +.stat-label { + font-size: 13px; + color: var(--text-secondary); + margin-top: 2px; +} + +/* ==================== Home Actions ==================== */ +.home-actions { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); + gap: 20px; + margin-bottom: 28px; +} + +.home-actions-two { + grid-template-columns: repeat(2, 1fr); +} + +.action-card { + text-align: center; + padding: 36px 28px; + cursor: pointer; + transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1); + position: relative; + overflow: hidden; + border-top: 3px solid transparent; +} + +.action-card::before { + content: ''; + position: absolute; + top: -50%; + left: -50%; + width: 200%; + height: 200%; + background: radial-gradient(circle, var(--primary-bg) 0%, transparent 70%); + opacity: 0; + transition: opacity 0.4s ease; + pointer-events: none; +} + +.action-card:hover { + transform: translateY(-4px); + box-shadow: var(--shadow-lg); + border-top-color: var(--primary); +} + +.action-card:hover::before { + opacity: 1; +} + +.action-card .action-icon { + width: 64px; height: 64px; + border-radius: 18px; + display: flex; + align-items: center; + justify-content: center; + font-size: 26px; + margin: 0 auto 18px; + transition: transform 0.35s ease; +} + +.action-card:hover .action-icon { + transform: scale(1.1) rotate(-3deg); +} + +.action-card h3 { margin-bottom: 8px; font-size: 18px; justify-content: center; } + +.action-count { + font-size: 14px; + color: var(--text-secondary); + margin-bottom: 22px; +} + +/* ==================== Streak ==================== */ +.streak-display { + display: flex; + align-items: center; + gap: 8px; + padding: 10px 18px; + background: linear-gradient(135deg, #ff9a56, #ef4444); + border-radius: 24px; + color: #fff; + font-weight: 600; + font-size: 14px; + box-shadow: 0 4px 16px rgba(239, 68, 68, 0.35); + transition: all var(--transition); +} + +.streak-display:hover { + transform: scale(1.05); + box-shadow: 0 6px 20px rgba(239, 68, 68, 0.45); +} + +.streak-display i { font-size: 16px; animation: fireFlicker 1.5s ease-in-out infinite; } +.streak-display .streak-num { font-size: 20px; font-weight: 700; } + +@keyframes fireFlicker { + 0%, 100% { opacity: 1; transform: scale(1); } + 50% { opacity: 0.8; transform: scale(1.1); } +} + diff --git a/src/styles/pages/learn.css b/src/styles/pages/learn.css new file mode 100644 index 0000000..c291e10 --- /dev/null +++ b/src/styles/pages/learn.css @@ -0,0 +1,865 @@ +/* ==================== Flip Card ==================== */ +.learn-area { + display: flex; + flex-direction: column; + align-items: center; + gap: 24px; + padding: 20px 0; +} + +.learn-progress { + width: 100%; + max-width: 480px; + display: flex; + align-items: center; + gap: 12px; + font-size: 14px; + color: var(--text-secondary); +} + +.progress-bar { + flex: 1; + height: 6px; + background: var(--border); + border-radius: 3px; + overflow: hidden; +} + +.progress-fill { + height: 100%; + background: linear-gradient(90deg, var(--primary), var(--primary-hover)); + border-radius: 3px; + transition: width 0.5s cubic-bezier(0.4, 0, 0.2, 1); + position: relative; +} + +.progress-fill::after { + content: ''; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: linear-gradient(90deg, transparent, rgba(255,255,255,0.2), transparent); + animation: progressShimmer 2s infinite; +} + +@keyframes progressShimmer { + 0% { transform: translateX(-100%); } + 100% { transform: translateX(100%); } +} + +.flip-card { + perspective: 1000px; + width: 100%; + max-width: 480px; + height: 320px; + cursor: pointer; + -webkit-tap-highlight-color: transparent; +} + +.flip-card-inner { + position: relative; + width: 100%; + height: 100%; + transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1); + transform-style: preserve-3d; +} + +.flip-card.flipped .flip-card-inner { + transform: rotateY(180deg); +} + +.flip-card-front, +.flip-card-back { + position: absolute; + inset: 0; + backface-visibility: hidden; + -webkit-backface-visibility: hidden; + border-radius: var(--radius); + border: 1px solid var(--border); + background: var(--bg-card); + box-shadow: var(--shadow-md); + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + padding: 32px; + text-align: center; +} + +.flip-card-back { + transform: rotateY(180deg); + overflow-y: auto; + justify-content: flex-start; + padding-top: 28px; +} + +.card-word { + font-size: 36px; + font-weight: 700; + color: var(--text); + margin-bottom: 12px; +} + +.card-phonetic { + font-size: 18px; + color: var(--text-muted); + margin-bottom: 16px; +} + +.card-speak-btn { + background: var(--primary-bg); + color: var(--primary); + border: none; + width: 44px; height: 44px; + border-radius: 50%; + font-size: 20px; + cursor: pointer; + transition: all var(--transition); +} + +.card-speak-btn:hover { background: var(--primary); color: #fff; } + +.card-hint { + font-size: 14px; + color: var(--text-muted); + margin-top: 20px; +} + +.card-chinese { + font-size: 28px; + font-weight: 600; + color: var(--primary); + margin-bottom: 16px; +} + +.card-forms { + font-size: 14px; + color: var(--text-secondary); + margin-bottom: 12px; + line-height: 1.8; +} + +.card-example { + font-size: 14px; + color: var(--text-secondary); + line-height: 1.7; + text-align: left; + width: 100%; + max-width: 400px; +} + +.card-example-en { + font-style: italic; + color: var(--text); + margin-bottom: 4px; +} + +.learn-actions { + display: flex; + gap: 12px; + flex-wrap: wrap; + justify-content: center; +} + +.rate-btn { + padding: 12px 28px; + border: 2px solid; + border-radius: var(--radius-sm); + font-size: 15px; + font-weight: 600; + cursor: pointer; + transition: all var(--transition); + background: var(--bg-card); +} + +.rate-btn.know { border-color: var(--success); color: var(--success); } +.rate-btn.know:hover { background: var(--success); color: #fff; } + +.rate-btn.fuzzy { border-color: var(--warning); color: var(--warning); } +.rate-btn.fuzzy:hover { background: var(--warning); color: #fff; } + +.rate-btn.unknown { border-color: var(--error); color: var(--error); } +.rate-btn.unknown:hover { background: var(--error); color: #fff; } + +/* ==================== Setup Card (Learn / Quiz) ==================== */ +.setup-card { + max-width: 720px; + margin: 0 auto; + background: var(--bg-card); + border: 1px solid var(--border); + border-radius: var(--radius); + box-shadow: var(--shadow); + padding: 36px 40px 36px; +} + +.setup-card .form-group + .form-group { + margin-top: 8px; +} + +.setup-row { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 16px; +} + +.setup-row .form-group { + margin-bottom: 0; +} + +.setup-divider { + height: 1px; + background: var(--border); + margin: 24px 0; +} + +.mode-toggle { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 12px; +} + +.mode-toggle-btn { + padding: 10px 10px; + border: 2px solid var(--border); + border-radius: var(--radius-sm); + background: var(--bg-card); + cursor: pointer; + text-align: center; + transition: all var(--transition); +} + +.mode-toggle-btn:hover { + border-color: var(--primary); + background: var(--primary-bg); +} + +.mode-toggle-btn.active { + border-color: var(--primary); + background: var(--primary-bg); + box-shadow: 0 2px 8px var(--primary-glow); +} + +.mode-toggle-label { + font-size: 14px; + font-weight: 700; + color: var(--text); + letter-spacing: 0.3px; +} + +.mode-toggle-btn.active .mode-toggle-label { + color: var(--primary); +} + +.mode-toggle-hint { + font-size: 11px; + color: var(--text-muted); + margin-top: 2px; +} + +.setup-footer { + display: flex; + align-items: center; + justify-content: space-between; + gap: 16px; + flex-wrap: wrap; +} + +/* Quiz Setup two-column layout */ +.quiz-setup-layout { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 20px; + align-items: start; +} + +.quiz-setup-left { + position: sticky; + top: 16px; +} + +.quiz-setup-right .form-group:last-child { + margin-bottom: 0; +} + +.setup-card-header { + text-align: center; + margin-bottom: 32px; +} + +.setup-card-icon { + display: inline-flex; + align-items: center; + justify-content: center; + width: 52px; + height: 52px; + border-radius: 14px; + background: linear-gradient(135deg, var(--primary-bg), color-mix(in srgb, var(--primary) 15%, transparent)); + color: var(--primary); + font-size: 24px; + margin-bottom: 14px; + box-shadow: 0 4px 12px var(--primary-glow); +} + +.setup-card-header h2 { + font-size: 22px; + font-weight: 700; + color: var(--text); +} + +.setup-card-desc { + text-align: center; + font-size: 14px; + color: var(--text-secondary); + margin: -16px 0 28px; + line-height: 1.6; +} + +.setup-radio-group { + display: flex; + align-items: center; + gap: 28px; +} + +.setup-radio { + display: flex; + align-items: center; + gap: 6px; + cursor: pointer; + font-size: 14px; + color: var(--text); +} + +.setup-radio input[type="radio"] { + width: 18px; + height: 18px; + accent-color: var(--primary); + cursor: pointer; + margin: 0; +} + +.setup-checkbox { + margin-bottom: 24px; +} + +.setup-checkbox label { + display: flex; + align-items: center; + gap: 8px; + cursor: pointer; + font-size: 14px; + color: var(--text-secondary); +} + +/* ==================== Learn Controls ==================== */ +.learn-controls { + display: flex; + gap: 12px; + margin-bottom: 24px; + align-items: center; + flex-wrap: wrap; +} + +.learn-controls select { width: auto; min-width: 160px; } + +.learn-complete { + text-align: center; + padding: 40px; +} + +.learn-complete h2 { + font-size: 24px; + margin-bottom: 12px; +} + +.learn-complete .summary { + display: flex; + justify-content: center; + gap: 32px; + margin: 20px 0; +} + +.learn-complete .summary-item { text-align: center; } +.learn-complete .summary-item .num { font-size: 28px; font-weight: 700; } +.learn-complete .summary-item .lbl { font-size: 13px; color: var(--text-muted); } + +/* ==================== Learn V2 - Card ==================== */ +.lv2-topbar { + display: flex; + align-items: center; + justify-content: space-between; + gap: 16px; + margin-bottom: 20px; + padding-bottom: 16px; + border-bottom: 1px solid var(--border); + flex-wrap: wrap; +} + +.lv2-stats-row { + display: flex; + gap: 24px; + flex-wrap: wrap; +} + +.lv2-si { text-align: center; } + +.lv2-sv { + display: block; + font-size: 20px; + font-weight: 700; + color: var(--text); + line-height: 1.2; +} + +.lv2-sl { + display: block; + font-size: 11px; + color: var(--text-muted); + margin-top: 2px; +} + +.lv2-topbar-btns { + display: flex; + gap: 8px; +} + +.lv2-tb-btn { + padding: 8px 16px; + border: 1px solid var(--border); + border-radius: var(--radius-sm); + background: var(--bg-card); + color: var(--text-secondary); + font-size: 13px; + font-weight: 600; + cursor: pointer; + transition: all var(--transition); + display: inline-flex; + align-items: center; + gap: 6px; +} + +.lv2-tb-btn:hover { + border-color: var(--primary); + color: var(--primary); + background: var(--primary-bg); +} + +.lv2-tb-active { + background: var(--primary); + color: #fff; + border-color: var(--primary); +} + +.lv2-tb-active:hover { + background: var(--primary-hover); + border-color: var(--primary-hover); + color: #fff; +} + +.lv2-tb-end { color: var(--text-muted); } + +.lv2-tb-end:hover { + border-color: var(--error); + color: var(--error); + background: var(--error-light); +} + +.lv2-pbar { + width: 100%; + height: 5px; + background: var(--border); + border-radius: 3px; + margin-bottom: 24px; + overflow: hidden; +} + +.lv2-pfill { + height: 100%; + background: var(--primary); + border-radius: 3px; + transition: width 0.4s ease; +} + +.lv2-card-area { + display: flex; + justify-content: center; + margin-bottom: 24px; +} + +.lv2-gcard { + width: 100%; + max-width: 640px; + background: var(--bg-card); + border: 1px solid var(--border); + border-radius: var(--radius); + padding: 40px 36px; + text-align: center; + box-shadow: var(--shadow-md); + transition: all 0.3s ease; + position: relative; + overflow: hidden; +} + +.lv2-gcard::before { + content: ''; + position: absolute; + top: 0; + left: 0; + right: 0; + height: 3px; + background: linear-gradient(90deg, var(--primary), var(--primary-hover), var(--primary)); + opacity: 0; + transition: opacity 0.3s ease; +} + +.lv2-gcard:hover { + box-shadow: var(--shadow-lg); + border-color: color-mix(in srgb, var(--primary) 25%, var(--border)); +} + +.lv2-gcard:hover::before { + opacity: 1; +} + +.lv2-gcard-anim { + animation: lv2CardIn 0.3s ease-out; +} + +@keyframes lv2CardIn { + from { opacity: 0; transform: translateY(12px); } + to { opacity: 1; transform: translateY(0); } +} + +.lv2-gcard-inner { position: relative; } + +.lv2-gcard-badge { + position: absolute; + top: 16px; + right: 16px; + padding: 4px 12px; + border-radius: 12px; + background: var(--primary-bg); + color: var(--primary); + font-size: 11px; + font-weight: 600; +} + +.lv2-gcard-divider { + width: 50px; + height: 2px; + background: var(--border); + margin: 4px auto 20px; + border-radius: 1px; +} + +.lv2-gcard-word { + font-size: 38px; + font-weight: 800; + color: var(--primary); + margin-bottom: 10px; + letter-spacing: -0.5px; +} + +.lv2-gcard-prow { + display: flex; + align-items: center; + justify-content: center; + gap: 12px; + margin-bottom: 12px; +} + +.lv2-gcard-ph { + font-size: 17px; + color: var(--text-muted); + font-style: italic; +} + +.lv2-gcard-freq { + padding: 3px 10px; + background: var(--primary-bg); + color: var(--primary); + border-radius: 12px; + font-size: 12px; + font-weight: 600; +} + +.lv2-gcard-cat { + display: inline-block; + padding: 4px 14px; + border-radius: 16px; + font-size: 11px; + font-weight: 700; + letter-spacing: 1px; + margin-bottom: 8px; +} + +.lv2-gcard-cat-high { + background: var(--success-light); + color: var(--success); +} + +.lv2-gcard-cat-mid { + background: var(--warning-light); + color: var(--warning); +} + +.lv2-gcard-cat-low { + background: var(--error-light); + color: var(--error); +} + +.lv2-gcard-zh { + font-size: 26px; + font-weight: 700; + color: var(--text); + margin-bottom: 16px; +} + +.lv2-gcard-forms { + background: var(--bg); + border: 1px solid var(--border); + padding: 8px 16px; + border-radius: var(--radius-sm); + font-size: 13px; + color: var(--text-secondary); + margin-bottom: 16px; + text-align: left; +} + +.lv2-gcard-form-item { + padding: 4px 0; + line-height: 1.5; + word-break: break-word; +} + +.lv2-gcard-form-item + .lv2-gcard-form-item { + border-top: 1px dashed var(--border); +} + +.lv2-gcard-form-key { + color: var(--text-muted); + font-size: 12px; +} + +.lv2-gcard-speak-row { + display: flex; + align-items: center; + justify-content: center; + gap: 10px; + margin-bottom: 16px; +} + +.lv2-gcard-speak { + width: 46px; + height: 46px; + border: none; + border-radius: 50%; + background: var(--primary-bg); + color: var(--primary); + font-size: 18px; + cursor: pointer; + transition: all 0.2s; + display: flex; + align-items: center; + justify-content: center; +} + +.lv2-gcard-speak:hover { + background: var(--primary); + color: #fff; + transform: scale(1.08); +} + +.lv2-gcard-speak-slow { + width: 40px; + height: 40px; + font-size: 14px; +} + +.lv2-gcard-ex { + background: var(--bg); + border-left: 3px solid var(--primary); + padding: 12px 16px; + border-radius: 0 var(--radius-xs) var(--radius-xs) 0; + text-align: left; +} + +.lv2-gcard-ex-en { + font-size: 15px; + font-weight: 600; + font-style: italic; + color: var(--text); + margin-bottom: 4px; +} + +.lv2-gcard-ex-cn { + font-size: 14px; + color: var(--text-secondary); +} + +.lv2-gcard-hint { + font-size: 14px; + color: var(--text-muted); + margin-top: 20px; + animation: pulse 2s infinite; +} + +@keyframes pulse { + 0%, 100% { opacity: 0.6; } + 50% { opacity: 1; } +} + +.lv2-rate-row { + display: flex; + justify-content: center; + gap: 12px; + margin-bottom: 20px; + flex-wrap: wrap; +} + +.lv2-rate { + padding: 10px 28px; + border: 2px solid; + border-radius: var(--radius-sm); + font-size: 14px; + font-weight: 600; + cursor: pointer; + transition: all var(--transition); + background: var(--bg-card); + display: inline-flex; + align-items: center; + gap: 6px; +} + +.lv2-rate-know { border-color: var(--success); color: var(--success); } +.lv2-rate-know:hover, .lv2-rate-know.lv2-rate-selected { background: var(--success); color: #fff; } +.lv2-rate-fuzzy { border-color: var(--warning); color: var(--warning); } +.lv2-rate-fuzzy:hover, .lv2-rate-fuzzy.lv2-rate-selected { background: var(--warning); color: #fff; } +.lv2-rate-unknown { border-color: var(--error); color: var(--error); } +.lv2-rate-unknown:hover, .lv2-rate-unknown.lv2-rate-selected { background: var(--error); color: #fff; } + +.lv2-nav-row { + display: flex; + justify-content: center; + gap: 12px; + flex-wrap: wrap; +} + +.lv2-nav-btn { + padding: 11px 24px; + border: 1px solid var(--border); + border-radius: var(--radius-sm); + background: var(--bg-card); + color: var(--text); + font-size: 14px; + font-weight: 600; + cursor: pointer; + transition: all var(--transition); + display: inline-flex; + align-items: center; + gap: 6px; +} + +.lv2-nav-btn:hover:not(:disabled) { + border-color: var(--primary); + color: var(--primary); + background: var(--primary-bg); +} + +.lv2-nav-btn:disabled { + opacity: 0.4; + cursor: not-allowed; +} + +.lv2-nav-center { + background: var(--primary); + color: #fff; + border-color: var(--primary); +} + +.lv2-nav-center:hover:not(:disabled) { + background: var(--primary-hover); + border-color: var(--primary-hover); + color: #fff; +} + +/* Learn V2 - Complete Screen */ +.lv2-complete { + text-align: center; + max-width: 480px; + margin: 0 auto; + padding: 48px 32px; + background: var(--bg-card); + border: 1px solid var(--border); + border-radius: var(--radius); + box-shadow: var(--shadow-md); + animation: lv2CardIn 0.5s ease-out; + position: relative; + overflow: hidden; +} + +.lv2-complete::before { + content: ''; + position: absolute; + top: 0; + left: 0; + right: 0; + height: 4px; + background: linear-gradient(90deg, var(--success), var(--primary), var(--warning)); +} + +.lv2-complete-icon { + font-size: 60px; + margin-bottom: 16px; + color: var(--primary); + animation: celebrateIcon 0.6s ease-out 0.3s both; +} + +@keyframes celebrateIcon { + 0% { transform: scale(0); opacity: 0; } + 50% { transform: scale(1.2); } + 100% { transform: scale(1); opacity: 1; } +} + +.lv2-complete-title { + font-size: 24px; + font-weight: 700; + color: var(--text); + margin-bottom: 8px; +} + +.lv2-complete-desc { + font-size: 15px; + color: var(--text-secondary); + margin-bottom: 28px; +} + +.lv2-complete-stats { + display: flex; + justify-content: center; + gap: 36px; + margin-bottom: 28px; +} + +.lv2-cs-item { text-align: center; } + +.lv2-cs-val { + font-size: 32px; + font-weight: 700; + line-height: 1.2; +} + +.lv2-cs-lbl { + font-size: 13px; + color: var(--text-muted); + margin-top: 4px; +} + +.lv2-complete-actions { + display: flex; + gap: 12px; + justify-content: center; + flex-wrap: wrap; +} + diff --git a/src/styles/pages/mail-learn.css b/src/styles/pages/mail-learn.css new file mode 100644 index 0000000..0f86194 --- /dev/null +++ b/src/styles/pages/mail-learn.css @@ -0,0 +1,26 @@ +/* ==================== Mail Learn ==================== */ +.saved-email-item:hover { border-color: var(--primary) !important; } +.mail-learn-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; } + +.mail-original { + background: var(--bg); border: 1px solid var(--border); border-radius: var(--radius-sm); + padding: 20px; max-height: 600px; overflow-y: auto; line-height: 1.8; font-size: 14px; +} + +.mail-original .highlight-word { + background: var(--primary-bg); color: var(--primary); padding: 1px 4px; + border-radius: 4px; cursor: pointer; font-weight: 600; transition: all 0.2s; +} + +.mail-original .highlight-word:hover { background: var(--primary); color: #fff; } + +.ai-analysis { + background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius-sm); + padding: 20px; max-height: 600px; overflow-y: auto; +} + +.ai-analysis-content { line-height: 1.8; font-size: 14px; color: var(--text-secondary); } +.ai-analysis-content h4 { color: var(--text); margin: 16px 0 8px; font-size: 15px; } +.ai-analysis-content p { margin-bottom: 8px; } +.ai-analysis-content ul { padding-left: 20px; margin-bottom: 12px; } + diff --git a/src/styles/pages/quiz.css b/src/styles/pages/quiz.css new file mode 100644 index 0000000..b4576be --- /dev/null +++ b/src/styles/pages/quiz.css @@ -0,0 +1,360 @@ +/* ==================== Quiz ==================== */ + +.quiz-area { + max-width: 1100px; + margin: 0 auto; +} + +.quiz-layout { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 24px; + align-items: start; +} + +.quiz-left { + min-width: 0; +} + +.quiz-right { + min-width: 0; + position: sticky; + top: 16px; +} + +.quiz-word-panel { + border-radius: var(--radius); + overflow: hidden; + position: relative; +} + +.quiz-word-panel.locked .quiz-word-detail { + filter: blur(6px); + user-select: none; + pointer-events: none; +} + +.quiz-word-cover { + position: absolute; + inset: 0; + z-index: 10; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + gap: 10px; + border-radius: var(--radius); + border: 2px dashed var(--border); + color: var(--text-muted); + font-size: 14px; + font-weight: 500; + backdrop-filter: blur(8px); + -webkit-backdrop-filter: blur(8px); +} + +.quiz-word-cover i { + font-size: 28px; + color: var(--primary); +} + +.quiz-word-panel.revealed .quiz-word-detail { + animation: fadeReveal 0.35s ease; +} + +@keyframes fadeReveal { + from { opacity: 0; transform: translateY(8px); } + to { opacity: 1; transform: translateY(0); } +} + +.quiz-header { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 20px; + padding: 14px 20px; + background: var(--bg-card); + border: 1px solid var(--border); + border-radius: var(--radius); + box-shadow: var(--shadow); +} + +.quiz-counter { + font-size: 14px; + color: var(--text-secondary); + font-weight: 600; + white-space: nowrap; +} + +.quiz-timer { + font-size: 14px; + color: var(--text-muted); +} + +.quiz-question-card { + background: var(--bg-card); + border: 1px solid var(--border); + border-radius: var(--radius); + padding: 36px 32px; + text-align: center; + margin-bottom: 20px; + box-shadow: var(--shadow); +} + +.quiz-prompt { + font-size: 30px; + font-weight: 700; + margin-bottom: 8px; +} + +.quiz-prompt-hint { + font-size: 14px; + color: var(--text-muted); +} + +.quiz-options { + display: flex; + flex-direction: column; + gap: 10px; +} + +.quiz-option { + padding: 16px 20px; + border: 2px solid var(--border); + border-radius: var(--radius-sm); + background: var(--bg-card); + color: var(--text); + font-size: 16px; + text-align: left; + cursor: pointer; + transition: all 0.2s ease; + display: flex; + align-items: center; + gap: 12px; +} + +.quiz-option:hover:not(.disabled) { + border-color: var(--primary); + background: var(--primary-bg); + transform: translateX(4px); + box-shadow: 0 2px 8px var(--primary-glow); +} + +.quiz-option:active:not(.disabled) { + transform: translateX(2px) scale(0.99); +} + +.quiz-option .option-letter { + width: 30px; height: 30px; + border-radius: 50%; + background: var(--bg); + display: flex; + align-items: center; + justify-content: center; + font-size: 13px; + font-weight: 700; + flex-shrink: 0; + transition: all 0.2s ease; +} + +.quiz-option:hover:not(.disabled) .option-letter { + background: var(--primary); + color: #fff; +} + +.quiz-option.correct { + border-color: var(--success); + background: var(--success-light); + animation: quizCorrect 0.4s ease; +} + +.quiz-option.correct .option-letter { + background: var(--success); + color: #fff; +} + +.quiz-option.wrong { + border-color: var(--error); + background: var(--error-light); + animation: quizWrong 0.4s ease; +} + +.quiz-option.wrong .option-letter { + background: var(--error); + color: #fff; +} + +@keyframes quizCorrect { + 0% { transform: scale(1); } + 50% { transform: scale(1.02); } + 100% { transform: scale(1); } +} + +@keyframes quizWrong { + 0%, 100% { transform: translateX(0); } + 25% { transform: translateX(-4px); } + 75% { transform: translateX(4px); } +} + +.quiz-option.disabled { cursor: default; pointer-events: none; } + +.quiz-nav-row { + display: flex; + gap: 12px; + justify-content: center; + margin-top: 24px; + padding-top: 20px; + border-top: 1px solid var(--border); +} + +.quiz-explanation { + margin-top: 16px; + padding: 14px 18px; + background: var(--primary-bg); + border-radius: var(--radius-sm); + font-size: 14px; + color: var(--text-secondary); + line-height: 1.6; + display: flex; + align-items: flex-start; + gap: 8px; +} + +.quiz-explanation i { color: var(--primary); margin-top: 2px; } + +.quiz-word-detail { + background: var(--bg-card); + border: 1px solid var(--border); + border-radius: var(--radius); + padding: 28px 24px; + text-align: center; + box-shadow: var(--shadow); +} + +/* Quiz Results */ +.quiz-results { + max-width: 540px; + margin: 0 auto; + text-align: center; +} + +.quiz-results .card { padding: 44px 36px; } + +.quiz-ring-chart { + position: relative; + width: 160px; + height: 160px; + margin: 0 auto 24px; +} + +.quiz-ring-chart svg { + transform: rotate(-90deg); + width: 160px; + height: 160px; +} + +.quiz-ring-chart .ring-bg { + fill: transparent; + stroke: var(--border); + stroke-width: 10; +} + +.quiz-ring-chart .ring-fill { + fill: transparent; + stroke-width: 10; + stroke-linecap: round; + transition: stroke-dashoffset 1.2s cubic-bezier(0.4, 0, 0.2, 1); + filter: drop-shadow(0 0 4px currentColor); +} + +.quiz-ring-chart .ring-text { + position: absolute; + inset: 0; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; +} + +.quiz-ring-chart .ring-value { + font-size: 36px; + font-weight: 800; + line-height: 1.1; +} + +.quiz-ring-chart .ring-label { + font-size: 13px; + color: var(--text-muted); +} + +.quiz-score { + font-size: 64px; + font-weight: 800; + margin: 16px 0 8px; +} + +.quiz-score.good { color: var(--success); } +.quiz-score.medium { color: var(--warning); } +.quiz-score.bad { color: var(--error); } + +.quiz-score-label { + font-size: 15px; + color: var(--text-secondary); + margin-bottom: 24px; +} + +.quiz-result-stats { + display: flex; + justify-content: center; + gap: 32px; + margin-bottom: 28px; +} + +.quiz-result-stat { text-align: center; } +.quiz-result-stat .value { font-size: 24px; font-weight: 700; } +.quiz-result-stat .label { font-size: 13px; color: var(--text-muted); } + + +/* ==================== Batch Selector ==================== */ +.batch-group-grid { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(100px, 1fr)); + gap: 8px; +} + +.batch-group-btn { + padding: 10px 8px; + border: 2px solid var(--border); + border-radius: var(--radius-sm); + background: var(--bg-card); + color: var(--text); + font-size: 13px; + font-weight: 500; + cursor: pointer; + transition: all var(--transition); + text-align: center; + line-height: 1.4; +} + +.batch-group-btn small { + color: var(--text-muted); + font-weight: 400; +} + +.batch-group-btn:hover { + border-color: var(--primary); + background: var(--primary-bg); +} + +.batch-group-btn.active { + border-color: var(--primary); + background: var(--primary-bg); + color: var(--primary); + font-weight: 600; + box-shadow: 0 2px 8px var(--primary-glow); + transform: translateY(-1px); +} + +.batch-group-btn.active small { + color: var(--primary); +} + diff --git a/src/styles/pages/reader.css b/src/styles/pages/reader.css new file mode 100644 index 0000000..479f6ad --- /dev/null +++ b/src/styles/pages/reader.css @@ -0,0 +1,101 @@ +/* ==================== Full-Text Reader ==================== */ +.reader-card { padding: 0; overflow: hidden; } + +.reader-header { + display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 10px; + padding: 20px 24px; border-bottom: 1px solid var(--border); + background: linear-gradient(135deg, var(--primary-bg), transparent); +} +.reader-header h3 { margin-bottom: 0; } +.reader-stats { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; } + +.reader-legend { + display: flex; align-items: center; gap: 20px; flex-wrap: wrap; + padding: 12px 24px; background: var(--bg); border-bottom: 1px solid var(--border); + font-size: 12px; color: var(--text-muted); +} +.reader-legend > span { display: inline-flex; align-items: center; gap: 6px; } +.reader-dot { width: 10px; height: 10px; border-radius: 3px; display: inline-block; } +.known-dot { background: var(--primary); } +.unknown-dot { background: var(--warning); } + +.reader-body { padding: 12px 0; } + +.reader-sentence-block { + display: flex; gap: 0; padding: 0; + transition: background var(--transition); + border-left: 3px solid transparent; +} +.reader-sentence-block:hover { background: var(--primary-bg); border-left-color: var(--primary); } + +.reader-sentence-num { + width: 44px; flex-shrink: 0; padding: 14px 0; + text-align: center; font-size: 12px; font-weight: 600; + color: var(--text-muted); user-select: none; +} + +.reader-sentence-content { flex: 1; padding: 12px 20px 12px 0; border-bottom: 1px solid var(--border-light); } + +.reader-sentence-en { + font-size: 15px; line-height: 2; cursor: pointer; + color: var(--text); transition: color var(--transition); +} + +.reader-sentence-cn { + font-size: 14px; line-height: 1.7; color: var(--text-secondary); + padding: 10px 14px; margin-top: 8px; + background: var(--bg); border-radius: var(--radius-sm); + border-left: 3px solid var(--success); + animation: fadeInUp 0.25s ease; +} + +.reader-sentence-tools { + display: flex; gap: 2px; margin-top: 6px; opacity: 0; + transition: opacity 0.2s; +} +.reader-sentence-block:hover .reader-sentence-tools { opacity: 1; } + +.reader-word { + cursor: pointer; border-radius: 3px; padding: 0 2px; + transition: all 0.15s ease; position: relative; +} +.reader-word.known { + color: var(--primary); font-weight: 600; + text-decoration: underline; text-decoration-style: dotted; + text-underline-offset: 3px; text-decoration-color: color-mix(in srgb, var(--primary) 40%, transparent); +} +.reader-word.known:hover { background: var(--primary); color: #fff; text-decoration: none; border-radius: 4px; } +.reader-word.unknown { color: var(--warning); border-bottom: 1.5px dashed var(--warning); } +.reader-word.unknown:hover { background: var(--warning); color: #fff; border-bottom-color: transparent; border-radius: 4px; } + +/* ==================== Reader Tooltip ==================== */ +.reader-tooltip { + position: absolute; z-index: 500; + width: 300px; max-width: 90vw; + background: var(--bg-card); border: 1px solid var(--border); + border-radius: var(--radius); box-shadow: var(--shadow-lg); + padding: 16px; animation: fadeInUp 0.2s ease; +} +.reader-tip-header { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 8px; } +.reader-tip-header strong { font-size: 18px; color: var(--text); } +.reader-tip-cn { font-size: 15px; color: var(--text); margin-bottom: 8px; } +.reader-tip-forms { font-size: 12px; color: var(--text-secondary); line-height: 1.7; margin-bottom: 8px; } +.reader-tip-example { + font-size: 13px; padding: 8px 10px; + background: var(--bg); border-radius: var(--radius-sm); + border-left: 2px solid var(--primary); line-height: 1.6; +} +.reader-tip-example em { color: var(--text); } +.reader-tip-example span { color: var(--text-secondary); } + +@media (max-width: 768px) { + .extract-layout { grid-template-columns: 1fr; } + .mail-learn-layout { grid-template-columns: 1fr; } + .reader-header { padding: 14px 16px; } + .reader-legend { padding: 10px 16px; gap: 12px; } + .reader-sentence-num { width: 32px; font-size: 11px; } + .reader-sentence-content { padding-right: 12px; } + .reader-sentence-en { font-size: 14px; line-height: 1.9; } + .reader-sentence-tools { opacity: 1; } + .reader-tooltip { width: 280px; padding: 12px; } +} diff --git a/src/styles/pages/review.css b/src/styles/pages/review.css new file mode 100644 index 0000000..2893b61 --- /dev/null +++ b/src/styles/pages/review.css @@ -0,0 +1,30 @@ +/* ==================== Review ==================== */ + +.review-list { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); + gap: 12px; + margin-bottom: 24px; +} + +.review-word-item { + padding: 14px 16px; + background: var(--bg-card); + border: 1px solid var(--border); + border-left: 3px solid var(--border); + border-radius: var(--radius-sm); + font-size: 14px; + transition: all var(--transition); +} + +.review-word-item:hover { + border-color: var(--primary); + border-left-color: var(--primary); + box-shadow: var(--shadow); + transform: translateY(-1px); +} + +.review-word-item .rw-en { font-weight: 600; } +.review-word-item .rw-zh { color: var(--text-secondary); font-size: 13px; margin-top: 2px; } +.review-word-item .rw-stage { font-size: 12px; color: var(--text-muted); margin-top: 6px; } + diff --git a/src/styles/pages/settings.css b/src/styles/pages/settings.css new file mode 100644 index 0000000..f78d0ad --- /dev/null +++ b/src/styles/pages/settings.css @@ -0,0 +1,187 @@ +/* ==================== Settings ==================== */ +#page-content.settings-page { + max-width: 1180px; +} + +.settings-layout { + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: 24px; + align-items: stretch; +} + +.settings-layout + .settings-layout { + margin-top: 24px; +} + +.settings-card { + margin-bottom: 0; + display: flex; + flex-direction: column; +} + +.settings-card.full-width { + grid-column: 1 / -1; +} + +.settings-card.full-width .btn-group { + justify-content: flex-start; +} + +.settings-layout .card { + transition: all var(--transition); + border: 1px solid rgba(148, 163, 184, 0.22); +} + +.settings-layout .card:hover { + transform: translateY(-2px); + box-shadow: var(--shadow-lg); +} + +.settings-card .form-group:last-of-type { + margin-bottom: 0; +} + +.settings-card .settings-card-actions { + margin-top: auto; + padding-top: 20px; +} + +.settings-card h3 .icon-badge { + width: 28px; + height: 28px; + border-radius: var(--radius-xs); + display: inline-flex; + align-items: center; + justify-content: center; + font-size: 14px; + flex-shrink: 0; +} + +.settings-card-desc { + font-size: 13px; + color: var(--text-secondary); + margin-bottom: 16px; + line-height: 1.6; +} + +.settings-row { + display: flex; + align-items: center; + justify-content: space-between; + gap: 16px; + padding: 14px 16px; + background: var(--bg); + border-radius: var(--radius-sm); + border: 1px solid var(--border); +} + +.settings-row + .settings-row { + margin-top: 12px; +} + +.settings-row-main { + display: flex; + align-items: center; + gap: 12px; + flex: 1; + min-width: 0; +} + +.settings-row-title { + font-size: 14px; + font-weight: 600; + color: var(--text); +} + +.settings-row-desc { + font-size: 12px; + color: var(--text-muted); + margin-top: 2px; +} + +.settings-divider { + margin-top: 20px; + padding-top: 20px; + border-top: 1px solid var(--border); +} + +.settings-stat-grid { + display: grid; + grid-template-columns: repeat(5, 1fr); + gap: 12px; + margin: 16px 0 20px; + padding: 16px; + background: var(--bg); + border-radius: var(--radius-sm); + border: 1px solid var(--border); +} + +.settings-stat-item { + text-align: center; +} + +.settings-stat-value { + font-size: 22px; + font-weight: 700; + line-height: 1.2; +} + +.settings-stat-label { + font-size: 12px; + color: var(--text-muted); + margin-top: 4px; +} + +.word-library-picker { + display: flex; + align-items: center; + gap: 10px; +} + +.word-library-picker select { + flex: 1; + min-width: 0; +} + +.word-library-picker .btn { + flex-shrink: 0; +} + +@media (max-width: 520px) { + .word-library-picker { + align-items: stretch; + flex-direction: column; + } +} + +.settings-input-row { + display: flex; + align-items: center; + gap: 8px; +} + +.settings-input-row input { + width: 120px; + flex-shrink: 0; +} + +.settings-input-row .unit { + font-size: 13px; + color: var(--text-muted); +} + +/* ==================== Button Group ==================== */ +.btn-group { + display: flex; + gap: 10px; + flex-wrap: wrap; + margin-top: 4px; +} + +.settings-section { + margin-top: 24px; + padding-top: 24px; + border-top: 1px solid var(--border); +} + diff --git a/src/styles/pages/stats.css b/src/styles/pages/stats.css new file mode 100644 index 0000000..964e60f --- /dev/null +++ b/src/styles/pages/stats.css @@ -0,0 +1,146 @@ +/* ==================== Stats / Charts ==================== */ +.stats-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)); + gap: 20px; + margin-bottom: 24px; +} + +.stats-body { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 16px; + margin-bottom: 24px; +} + +.stats-left { + display: flex; + flex-direction: column; + gap: 16px; +} + +.stats-left-cards { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 16px; +} + +.stats-error-card { + display: flex; + flex-direction: column; +} + +.stats-error-card > :last-child { + flex: 1; +} + +.chart-container { + padding: 8px 0; + position: relative; +} + +.chart-container canvas { + max-height: 280px; +} + +.bar-chart { + display: flex; + align-items: flex-end; + gap: 4px; + height: 180px; + padding-top: 20px; +} + +.bar-group { + flex: 1; + display: flex; + flex-direction: column; + align-items: center; + gap: 6px; + min-width: 0; +} + +.bar { + width: 100%; + max-width: 28px; + border-radius: 4px 4px 0 0; + background: var(--primary); + transition: height 0.5s ease; + min-height: 2px; + position: relative; +} + +.bar:hover { opacity: 0.8; } + +.bar-value { + position: absolute; + top: -20px; + left: 50%; + transform: translateX(-50%); + font-size: 11px; + color: var(--text-muted); + white-space: nowrap; + display: none; +} + +.bar:hover .bar-value { display: block; } + +.bar-label { + font-size: 11px; + color: var(--text-muted); + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + max-width: 100%; +} + +.error-table { + width: 100%; + border-collapse: collapse; +} + +.error-table th, +.error-table td { + padding: 11px 14px; + text-align: left; + border-bottom: 1px solid var(--border); + font-size: 14px; +} + +.error-table th { + font-weight: 600; + color: var(--text-secondary); + font-size: 12px; + text-transform: uppercase; + letter-spacing: 0.3px; +} + +.error-table tbody tr { + transition: background var(--transition); +} + +.error-table tbody tr:hover td { + background: var(--primary-bg); +} + +.error-table tbody tr:last-child td { + border-bottom: none; +} + +.accuracy-bar { + height: 6px; + border-radius: 3px; + background: var(--border); + width: 60px; + display: inline-block; + vertical-align: middle; + margin-left: 6px; + overflow: hidden; +} + +.accuracy-fill { + height: 100%; + border-radius: 3px; + transition: width 0.4s ease; +} + diff --git a/src/styles/pages/words.css b/src/styles/pages/words.css new file mode 100644 index 0000000..d828532 --- /dev/null +++ b/src/styles/pages/words.css @@ -0,0 +1,138 @@ +/* ==================== Search Bar ==================== */ +.search-bar { + display: flex; + gap: 12px; + margin-bottom: 20px; + flex-wrap: wrap; +} + +.search-bar input { flex: 1; min-width: 200px; } +.search-bar select { width: 160px; } + +/* ==================== Word List (Table) ==================== */ +.word-table-wrapper { + background: var(--bg-card); + border: 1px solid var(--border); + border-radius: var(--radius); + overflow-x: auto; + overflow-y: hidden; + box-shadow: var(--shadow); + -webkit-overflow-scrolling: touch; +} + +.word-table { + width: 100%; + border-collapse: collapse; +} + +.word-table thead { + background: var(--bg); +} + +.word-table th { + padding: 12px 18px; + text-align: left; + font-size: 13px; + font-weight: 600; + color: var(--text-secondary); + text-transform: uppercase; + letter-spacing: 0.5px; + border-bottom: 1px solid var(--border); +} + +.word-table td { + padding: 12px 18px; + font-size: 14px; + border-bottom: 1px solid var(--border-light); + vertical-align: middle; +} + +.word-table tbody tr { + transition: all var(--transition); +} + +.word-table tbody tr:hover { + background: var(--primary-bg); +} + +.word-table tbody tr:nth-child(even) { + background: color-mix(in srgb, var(--bg) 50%, var(--bg-card)); +} + +.word-table tbody tr:nth-child(even):hover { + background: var(--primary-bg); +} + +.word-table tbody tr.is-playing, +.word-table tbody tr.is-playing:hover { + background: var(--primary-bg); + box-shadow: inset 3px 0 0 var(--primary); +} + +.word-table tbody tr:last-child td { + border-bottom: none; +} + +.word-table .word-cell { + font-weight: 600; + color: var(--primary); + cursor: pointer; +} + +.word-table .word-cell:hover { + text-decoration: underline; +} + +.word-table .phonetic-cell { + color: var(--text-muted); + font-size: 13px; +} + +.word-table .meaning-cell { + max-width: 200px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.word-table .action-cell { + text-align: right; + white-space: nowrap; +} + +.word-table .action-cell button { + background: none; + border: none; + color: var(--text-muted); + font-size: 15px; + padding: 4px 8px; + cursor: pointer; + transition: color var(--transition); + border-radius: 4px; +} + +.word-table .action-cell button:hover { + color: var(--primary); +} + +.word-table .action-cell button:hover .fa-star { + color: var(--warning); + transform: scale(1.2); + transition: transform 0.15s ease; +} + +.word-table .action-cell button.btn-delete:hover { + color: var(--error); +} + +.word-table-footer { + padding: 12px 18px; + display: flex; + align-items: center; + justify-content: space-between; + border-top: 1px solid var(--border); + background: var(--bg); + font-size: 13px; + color: var(--text-secondary); +} + diff --git a/src/styles/responsive.css b/src/styles/responsive.css new file mode 100644 index 0000000..54ed151 --- /dev/null +++ b/src/styles/responsive.css @@ -0,0 +1,527 @@ +/* ==================== Responsive ==================== */ +@media (max-width: 768px) { + html, + body { + max-width: 100%; + overflow-x: hidden; /* 旧浏览器回退 */ + overflow-x: clip; + } + + #app, + #main-content, + #page-content { + width: 100%; + max-width: 100%; + min-width: 0; + } + + #mobile-header { + display: flex; + height: calc(var(--header-h) + env(safe-area-inset-top, 0px)); + padding-top: env(safe-area-inset-top, 0px); + padding-right: max(12px, env(safe-area-inset-right, 0px)); + padding-left: max(12px, env(safe-area-inset-left, 0px)); + } + + #sidebar { + transform: translateX(-100%); + padding-top: env(safe-area-inset-top, 0px); + padding-bottom: env(safe-area-inset-bottom, 0px); + } + + #sidebar.open { + transform: translateX(0); + box-shadow: var(--shadow-lg); + } + + #overlay.show { display: block; } + + #main-content { + margin-left: 0; + padding-top: calc(var(--header-h) + env(safe-area-inset-top, 0px)); + } + + #page-content { + padding: 16px 12px 40px; + } + + .page-header { flex-direction: column; align-items: flex-start; gap: 10px; padding-bottom: 14px; } + .page-header h1 { font-size: 20px; } + + .card { padding: 16px; } + + .stat-grid { + grid-template-columns: repeat(2, 1fr); + gap: 10px; + } + + .stat-card { padding: 12px; gap: 10px; } + .stat-icon { width: 38px; height: 38px; font-size: 15px; } + .stat-value { font-size: 20px; } + .stat-label { font-size: 12px; } + + .home-actions { grid-template-columns: 1fr; } + .home-actions-two { grid-template-columns: 1fr; } + .action-card { padding: 24px 16px; border-top-width: 3px; } + .action-card h3 { font-size: 16px; } + .action-card .action-icon { width: 48px; height: 48px; font-size: 20px; border-radius: 12px; } + + .settings-layout { grid-template-columns: 1fr; } + .settings-stat-grid { grid-template-columns: repeat(3, 1fr); } + + .flip-card { height: 260px; max-width: 100%; } + .flip-card-front, .flip-card-back { padding: 20px 16px; } + .card-word { font-size: 26px; } + .card-phonetic { font-size: 15px; margin-bottom: 10px; } + .card-chinese { font-size: 22px; } + .card-forms { font-size: 13px; } + .card-example { font-size: 13px; } + .card-hint { font-size: 13px; } + + .learn-area { gap: 16px; padding: 12px 0; } + .learn-actions { flex-direction: column; width: 100%; max-width: 480px; } + .rate-btn { width: 100%; padding: 14px 20px; } + + .lv2-topbar { flex-direction: column; align-items: stretch; gap: 12px; padding-bottom: 12px; } + .lv2-stats-row { justify-content: space-between; gap: 8px; } + .lv2-sv { font-size: 16px; } + .lv2-sl { font-size: 10px; } + .lv2-topbar-btns { justify-content: flex-end; flex-wrap: wrap; } + .lv2-tb-btn { padding: 6px 12px; font-size: 12px; } + .lv2-gcard { padding: 28px 20px; } + .lv2-gcard-word { font-size: 28px; } + .lv2-gcard-ph { font-size: 15px; } + .lv2-gcard-freq { font-size: 11px; padding: 2px 8px; } + .lv2-gcard-cat { font-size: 10px; padding: 4px 12px; } + .lv2-gcard-zh { font-size: 22px; } + .lv2-gcard-forms { font-size: 12px; padding: 6px 12px; } + .lv2-gcard-speak { width: 40px; height: 40px; font-size: 16px; } + .lv2-gcard-speak-slow { width: 36px; height: 36px; font-size: 13px; } + .lv2-gcard-ex { padding: 10px 14px; } + .lv2-gcard-ex-en { font-size: 14px; } + .lv2-gcard-ex-cn { font-size: 13px; } + .lv2-gcard-badge { top: 12px; right: 12px; font-size: 10px; padding: 3px 10px; } + .lv2-rate-row { flex-direction: column; align-items: center; } + .lv2-rate { width: 100%; max-width: 320px; padding: 12px 20px; } + .lv2-nav-row { gap: 8px; } + .lv2-nav-btn { padding: 10px 18px; font-size: 13px; } + .lv2-complete { padding: 32px 20px; } + .lv2-complete-icon { font-size: 44px; } + .lv2-complete-title { font-size: 20px; } + .lv2-complete-stats { gap: 24px; } + .lv2-cs-val { font-size: 26px; } + + .setup-card { padding: 28px 20px 24px; max-width: 100%; } + .setup-row { grid-template-columns: 1fr; } + .batch-group-grid { grid-template-columns: repeat(auto-fill, minmax(85px, 1fr)); gap: 6px; } + .batch-group-btn { padding: 8px 6px; font-size: 12px; } + .quiz-layout { grid-template-columns: 1fr; } + .quiz-setup-layout { grid-template-columns: 1fr; } + .quiz-setup-left { position: static; } + .quiz-right { position: static; } + .quiz-session-header { + flex-direction: row; + align-items: center; + flex-wrap: nowrap; + gap: 6px; + margin-bottom: 10px; + padding-bottom: 8px; + } + .quiz-session-meta { + display: flex; + align-items: center; + gap: 5px; + min-width: 0; + flex: 1; + overflow-x: auto; + scrollbar-width: none; + } + .quiz-session-meta::-webkit-scrollbar { display: none; } + .quiz-session-meta h1 { display: none; } + .quiz-session-meta .badge { + flex: 0 0 auto; + padding: 4px 9px; + font-size: 11px; + } + .quiz-session-header .quiz-end-btn { + flex: 0 0 auto; + min-width: 44px; + min-height: 44px; + padding: 6px 8px; + font-size: 12px; + gap: 4px; + } + .quiz-end-btn span { display: none; } + .quiz-header { margin-bottom: 12px; padding: 10px 12px; } + .quiz-question-card { padding: 20px 16px; } + .quiz-prompt { font-size: 22px; } + .quiz-options { gap: 8px; } + .quiz-option { padding: 14px 14px; font-size: 15px; gap: 10px; } + .quiz-option .option-letter { width: 26px; height: 26px; font-size: 12px; } + .quiz-explanation { font-size: 13px; padding: 12px 14px; } + + .quiz-results .card { padding: 28px 20px; } + .quiz-score { font-size: 48px; } + .quiz-result-stats { gap: 20px; } + + .review-list { grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 8px; } + .review-word-item { padding: 10px 12px; } + + .stats-grid { grid-template-columns: 1fr; } + .stats-body { grid-template-columns: 1fr; } + .bar-chart { height: 130px; gap: 2px; } + .bar { max-width: 18px; } + .bar-label { font-size: 9px; } + + .error-table th, .error-table td { padding: 8px 10px; font-size: 13px; } + .accuracy-bar { width: 50px; } + + .settings-card { max-width: 100%; } + + .search-bar { gap: 10px; margin-bottom: 14px; } + .search-bar input, + .search-bar select { width: 100%; min-width: 0; min-height: 46px; } + .search-bar #auto-play-btn { width: 100%; min-height: 46px; } + + .word-table-wrapper { + overflow: visible; + border: 0; + background: transparent; + box-shadow: none; + } + .word-table, + .word-table tbody { display: block; width: 100%; } + .word-table { min-width: 0; } + .word-table thead { display: none; } + .word-table tbody { display: grid; gap: 6px; } + .word-table tbody tr, + .word-table tbody tr:nth-child(even) { + display: grid; + grid-template-columns: minmax(0, 1fr) auto; + grid-template-areas: + "word status" + "phonetic status" + "meaning actions"; + gap: 1px 10px; + padding: 10px 12px 8px; + border: 1px solid var(--border); + border-radius: var(--radius); + background: var(--bg-card); + box-shadow: var(--shadow-sm); + } + .word-table tbody tr.is-playing, + .word-table tbody tr.is-playing:nth-child(even), + .word-table tbody tr.is-playing:hover { + background: var(--primary-bg); + box-shadow: inset 3px 0 0 var(--primary), var(--shadow-sm); + } + .word-table td { + display: block; + padding: 0; + border: 0; + font-size: 14px; + } + .word-table .word-cell { + grid-area: word; + font-size: 22px; + line-height: 1.25; + min-width: 0; + overflow-wrap: anywhere; + } + .word-table .phonetic-cell { + display: block; + grid-area: phonetic; + margin-top: 1px; + font-size: 12px; + } + .word-table .meaning-cell { + grid-area: meaning; + align-self: center; + min-width: 0; + max-width: none; + overflow: visible; + text-overflow: clip; + color: var(--text); + font-size: 16px; + line-height: 1.4; + white-space: normal; + overflow-wrap: anywhere; + } + .word-table .status-cell { + grid-area: status; + align-self: start; + } + .word-table .status-cell .badge { white-space: nowrap; } + .word-table .action-cell { + grid-area: actions; + display: grid; + grid-template-columns: repeat(4, 36px); + align-self: center; + justify-content: end; + gap: 2px; + } + .word-table .action-cell button { + display: inline-flex; + align-items: center; + justify-content: center; + min-width: 36px; + min-height: 40px; + padding: 4px; + font-size: 14px; + } + .word-table-footer { + flex-direction: column; + gap: 10px; + margin-top: 12px; + padding: 12px 0 0; + border-top: 0; + background: transparent; + text-align: center; + } + + .modal { max-width: 100%; margin: 10px; } + .modal-header { padding: 16px; } + .modal-body { padding: 16px; } + .modal-footer { padding: 12px 16px; } + + .pagination button { min-width: 44px; height: 44px; font-size: 13px; } + + .btn { padding: 10px 16px; font-size: 13px; } + .btn-lg { padding: 12px 24px; font-size: 15px; } + + #toast-container { top: auto; bottom: 16px; right: 12px; left: 12px; } + .toast { max-width: 100%; font-size: 13px; padding: 12px 16px; } + + .streak-display { padding: 8px 14px; font-size: 13px; } + .streak-display .streak-num { font-size: 18px; } + + .learn-progress { font-size: 13px; gap: 8px; max-width: 100%; } + + .quiz-header { flex-wrap: wrap; gap: 8px; } + + .form-group label { font-size: 13px; } + input[type="text"], + input[type="password"], + input[type="number"], + input[type="url"], + textarea, + select { font-size: 16px; padding: 10px 12px; } + + .search-bar { gap: 8px; } +} + +@media (max-width: 380px) { + .word-table tbody tr, + .word-table tbody tr:nth-child(even) { + grid-template-areas: + "word status" + "phonetic status" + "meaning meaning" + "actions actions"; + } + .word-table .meaning-cell, + .word-table .action-cell { margin-top: 4px; } +} + +/* Review session grid layout */ +.review-session-grid { + display: grid; + grid-template-columns: 1fr 280px; + grid-template-rows: auto 1fr; + gap: 16px; +} + +.review-grid-footer { + grid-column: 1; + grid-row: 1; +} + +.review-grid-footer .review-rate-card { + background: var(--bg-card); + border: 1px solid var(--border); + border-radius: var(--radius); + padding: 18px 24px; + text-align: center; + box-shadow: var(--shadow-sm); + transition: box-shadow 0.2s; +} + +.review-grid-footer .review-rate-card:hover { + box-shadow: var(--shadow); +} + +.review-grid-footer .lv2-rate-row { + margin-bottom: 0; + gap: 70px; +} + +.review-rate-card .lv2-rate-row { + margin-bottom: 0; +} + +.review-rate-card .lv2-rate { + padding: 12px 36px; + font-size: 15px; + border-radius: 12px; + font-weight: 600; +} + +.review-rate-placeholder { + color: var(--text-muted); + font-size: 14px; + padding: 8px 0; + display: flex; + align-items: center; + justify-content: center; + gap: 6px; +} + +.review-grid-card { + grid-column: 1; + grid-row: 2; + min-width: 0; +} + +.review-grid-card .lv2-card-area { + margin-bottom: 0; +} + +.review-grid-card .lv2-gcard { + max-width: none; +} + +.review-grid-panel { + grid-column: 2; + grid-row: 1 / 3; + min-width: 0; + position: sticky; + top: 16px; + align-self: start; +} + +.review-status-panel { + background: var(--bg-card); + border: 1px solid var(--border); + border-radius: var(--radius); + overflow: hidden; + max-height: 620px; + display: flex; + flex-direction: column; + position: sticky; + top: 16px; + box-shadow: var(--shadow-sm); +} + +.review-status-header { + padding: 12px 16px; + border-bottom: 1px solid var(--border); + background: var(--bg); + flex-shrink: 0; +} + +.review-status-header h4 { + margin: 0; + font-size: 13px; + font-weight: 600; + color: var(--text-secondary); +} + +.review-status-list { + flex: 1; + overflow-y: auto; + padding: 4px 0; +} + +.review-status-item { + display: flex; + align-items: center; + gap: 8px; + padding: 7px 16px; + cursor: pointer; + transition: all 0.15s; + font-size: 13px; + border-left: 3px solid transparent; +} + +.review-status-item:hover { + background: var(--bg); +} + +.review-status-item.review-status-active { + background: var(--primary-bg); + border-left-color: var(--primary); + font-weight: 600; +} + +.review-status-icon { + flex-shrink: 0; + width: 18px; + text-align: center; + font-size: 14px; +} + +.review-status-word { + flex: 1; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + color: var(--text); +} + +.review-status-label { + flex-shrink: 0; + font-size: 11px; + color: var(--text-muted); + padding: 2px 8px; + border-radius: 8px; + background: var(--bg); +} + +@media (max-width: 768px) { + .review-session-grid { + grid-template-columns: 1fr; + grid-template-rows: auto auto auto; + } + .review-grid-footer { grid-row: 1; grid-column: 1; } + .review-grid-card { grid-row: 2; grid-column: 1; } + .review-grid-panel { grid-row: 3; grid-column: 1; } + .review-status-panel { max-height: none; position: static; } + .review-status-list { + max-height: 200px; + flex: none; + } + .review-rate-card .lv2-rate { + padding: 12px 20px; + font-size: 14px; + } +} + +@media (max-width: 400px) { + #page-content { padding: 12px 10px 36px; } + + .stat-grid { grid-template-columns: repeat(2, 1fr); gap: 8px; margin-bottom: 20px; } + .stat-card { padding: 10px; gap: 8px; } + .stat-icon { width: 34px; height: 34px; font-size: 13px; } + .stat-value { font-size: 18px; } + + .search-bar { flex-direction: column; } + .search-bar select { width: 100%; } + + .setup-card { padding: 24px 16px 20px; } + .setup-card-header h2 { font-size: 19px; } + .setup-card-icon { width: 40px; height: 40px; font-size: 18px; } + .batch-group-grid { grid-template-columns: repeat(3, 1fr); } + + .flip-card { height: 240px; } + .card-word { font-size: 22px; } + .card-chinese { font-size: 20px; } + .card-speak-btn { width: 38px; height: 38px; font-size: 17px; } + + .lv2-stats-row { gap: 6px; } + .lv2-sv { font-size: 14px; } + .lv2-gcard { padding: 24px 16px; } + .lv2-gcard-word { font-size: 24px; } + .lv2-gcard-zh { font-size: 20px; } + .lv2-nav-btn { padding: 9px 14px; font-size: 12px; } +} + diff --git a/src/styles/variables.css b/src/styles/variables.css new file mode 100644 index 0000000..699f72b --- /dev/null +++ b/src/styles/variables.css @@ -0,0 +1,63 @@ +/* ==================== Variables & Theme ==================== */ +:root { + --primary: #6366f1; + --primary-hover: #4f46e5; + --primary-light: #e0e7ff; + --primary-bg: rgba(99, 102, 241, 0.08); + --primary-glow: rgba(99, 102, 241, 0.25); + --success: #22c55e; + --success-light: #dcfce7; + --success-dark: #16a34a; + --warning: #f59e0b; + --warning-light: #fef3c7; + --error: #ef4444; + --error-light: #fee2e2; + --bg: #f1f5f9; + --bg-card: #ffffff; + --bg-sidebar: #ffffff; + --bg-input: #ffffff; + --text: #1e293b; + --text-secondary: #64748b; + --text-muted: #94a3b8; + --border: #e2e8f0; + --border-light: #f1f5f9; + --shadow-sm: 0 1px 2px rgba(0,0,0,0.04); + --shadow: 0 1px 3px rgba(0,0,0,0.06), 0 1px 2px rgba(0,0,0,0.04); + --shadow-md: 0 4px 12px rgba(0,0,0,0.07), 0 2px 4px rgba(0,0,0,0.04); + --shadow-lg: 0 12px 28px rgba(0,0,0,0.1); + --radius: 12px; + --radius-sm: 8px; + --radius-xs: 6px; + --sidebar-w: 260px; + --header-h: 56px; + --transition: 0.25s cubic-bezier(0.4, 0, 0.2, 1); +} + +[data-theme="dark"] { + --primary: #818cf8; + --primary-hover: #a5b4fc; + --primary-light: #312e81; + --primary-bg: rgba(129, 140, 248, 0.1); + --primary-glow: rgba(129, 140, 248, 0.2); + --success: #4ade80; + --success-light: #14532d; + --success-dark: #86efac; + --warning: #fbbf24; + --warning-light: #713f12; + --error: #f87171; + --error-light: #7f1d1d; + --bg: #0f172a; + --bg-card: #1e293b; + --bg-sidebar: #1e293b; + --bg-input: #334155; + --text: #f1f5f9; + --text-secondary: #94a3b8; + --text-muted: #64748b; + --border: #334155; + --border-light: #1e293b; + --shadow-sm: 0 1px 2px rgba(0,0,0,0.2); + --shadow: 0 1px 3px rgba(0,0,0,0.3); + --shadow-md: 0 4px 12px rgba(0,0,0,0.3); + --shadow-lg: 0 12px 28px rgba(0,0,0,0.4); +} + diff --git a/todo.md b/todo.md new file mode 100644 index 0000000..fc5954d --- /dev/null +++ b/todo.md @@ -0,0 +1,222 @@ +# src/ 重构 TODO + +> 分支:`dev-refactor`。每个 Phase 结束时应用可正常运行并单独提交一次 commit。 +> 核心约束:**不改变任何用户可见行为、不改变 localStorage 数据结构**(老用户数据必须无缝兼容)。 + +> **进度说明(2026-07-19 核对更新)**:代码级目标已全部达成。以下为与本文档原计划的已知差异,均已核对/对齐: +> - **提交粒度**:实际合并为 4 个 commit 提交(`9e5ddef`→`8686e65`→`9c4fc0b`→`56a0040`),非逐 Phase/逐页粒度;下文各「提交」项据此勾选。 +> - **CSS 结构**:已补齐 `pages/home.css`/`pages/words.css`,并把原 `components-extended.css`/`learn-session.css` 拆解归位、新增全局 `responsive.css`(见「三」已更新的目录树)。 +> - **路由**:`core/router.js` 采用单个 `registerPage(page, renderFn)`,与「六」示例一致。 +> - **window 桥接**:改为一次性重构,终态无桥接残留(与计划最终目标一致)。 +> - **仍未完成**:Phase 0 的 `before-refactor` tag 未打;尚未合并回 `main`;「验收清单」等人工冒烟项需实跑。 + +## 一、现状分析 + +| 文件 | 行数 | 问题 | +|---|---|---| +| `src/script.js` | 5139 | 单文件巨石:约 230 个函数全部挂在全局作用域,常量/状态/服务/8 个页面混在一起 | +| `src/styles.css` | 3346 | 单文件,含 40+ 个注释分节,主题变量与页面样式耦合 | +| `src/index.html` | 84 | 基本干净,仅需改脚本引入方式 | + +关键技术债: + +- **119 处内联 `onclick=`**(另有 7 处 `oninput=/onchange=/onkeydown=`)写在 JS 拼接的 HTML 字符串里,强依赖函数全局可见 —— 这是拆分 ES 模块的最大障碍。 +- 全局可变单例 `state`(script.js:97)+ 分散的 `saveXxx()` 持久化函数,无统一入口。 +- TTS 部分(script.js:356-753,约 400 行)内含多个模块级可变缓存(`_ttsRequestSeq`、云端音频缓存、有道预取缓存),需整体封装。 +- Chart.js 实例 `_studyChart` 需在重渲染时销毁,生命周期隐蔽。 +- 手动维护缓存版本号 `?v=20260715-1`(index.html:17、82)。 +- 无测试、无 package.json、无构建工具。 + +## 二、重构目标与原则 + +- [x] 目标:script.js 已按职责拆为 ES 模块(常量 / 状态存储 / 核心 UI / 领域服务 / 页面);大页面进一步拆出自动播放、批量文件、测验会话/音频和设置数据模块,单文件控制在 ~500 行内。 +- [x] 目标:消灭全部内联 `onclick=`,改为 `data-action` 事件委托。 +- [x] 目标:styles.css 按现有注释分节拆分为多个 CSS 文件。 +- [x] 原则:**保持无构建(no-build)**,使用浏览器原生 ES Modules(`