mirror of
https://github.com/RealKai42/qwerty-learner.git
synced 2026-04-04 22:09:04 +08:00
124 lines
4.3 KiB
Markdown
124 lines
4.3 KiB
Markdown
# 如何导入新的词典 📚
|
||
|
||
注意,我们的词典主要来源于社区贡献。当你想要导入新的词典时,最好准备好词典的源文件,以便我们能够更好的帮助你。
|
||
|
||
## 0. 交给我们!🤝
|
||
|
||
### 0.1 如果你没有任何编程基础 🚫💻
|
||
|
||
我们推荐你加入 qwerty learner 社区群,在群中反映你的需求,我们的开发者会帮助你导入词典。
|
||
|
||

|
||
|
||
### 0.2 如果你不会编程,但会使用 github🐙
|
||
|
||
我们推荐你以“Dictionary Request”为开头发起 Issue,描述你的词典需求并提供词典来源。
|
||
|
||
## 1. 亲自动手!🛠️
|
||
|
||
### 1.1 词典的目标文件格式 📄
|
||
|
||
词典的文件格式是 `词典名.json` ,其内容结构应当是:
|
||
|
||
```json
|
||
[
|
||
{
|
||
"name" : "xxx" ,
|
||
"trans" : ["xxx", "xxx",...]
|
||
},
|
||
...
|
||
]
|
||
```
|
||
|
||
例如:
|
||
|
||
```json
|
||
{ "name": "file", "trans": ["n. 档案,公文箱,锉刀,[计算机] 文件 vt. 列队行进,归档,申请"] },
|
||
{
|
||
"name": "command",
|
||
"trans": [
|
||
"n.命令,指挥; 司令部,指挥部; [计算机]指令; 控制力 vt.指挥,控制,命令; 命令; 应得,值得 vi.给出命令; 命令,指令 adj.指挥的,根据命令(或要求)而作的"
|
||
]
|
||
},
|
||
{ "name": "use", "trans": ["n. 运用,用法,使用权,适用 vt. 使用,利用,对待 vi. 吸毒"] },
|
||
{ "name": "program", "trans": ["n. 节目(单),程序,计划 vt. 规划,拟定计划,制作节目"] },
|
||
{ "name": "line", "trans": ["n. 行,线,航线,场界,皱纹,家族 vt. &vi. 用做衬里,排成一行,顺...排列 vi. 排成一行,顺...排列,划线于"] },
|
||
{ "name": "if", "trans": ["conj. 如果,是否,即使 n. 条件,设想"] },
|
||
|
||
```
|
||
|
||
#### 1.1.0 如何将词典的源文件转换为目标文件格式?🔄
|
||
|
||
由于词典的源文件格式、来源各异,我们无法为你提供统一的转换方法,但是我们可以提供一些思路:
|
||
|
||
#### 1.1.1 你可以将部分词典源文件的内容发送给 ChatGPT 并描述需求,让 ChatGPT 生成转换脚本 🤖
|
||
|
||
#### 1.1.2 你也可以使用在线工具将词典源文件转换为目标文件格式,此类在线工具有很多,如 <https://csvjson.com/csv2json> 🔧
|
||
|
||
#### 1.1.3 如果内容不多,你也可以手动将词典源文件转换为目标文件格式,或批量交给 ChatGPT 生成 ✍️
|
||
|
||
#### 1.1.4 如果你卡在了这一步,可以回到 0 部分,交给我们来帮你完成这一步 🔄
|
||
|
||
### 1.2 词典的目标文件位置 📍
|
||
|
||
词典的目标文件位置是 `/public/dicts/`,请将处理好的词典文件放置在该目录下
|
||
|
||
### 1.3 词典的索引建立 🔍
|
||
|
||
词典的索引建立是在 `/resources/dictionary.ts` 中完成的,你需要在该文件中添加一行代码,格式如下:
|
||
|
||
```json
|
||
{
|
||
"id": "xxx",
|
||
"name": "xxx",
|
||
"description": "xxx",
|
||
"category": "xxx",
|
||
"url": "./dicts/xxx.json",
|
||
"length": xxx
|
||
}
|
||
```
|
||
|
||
例如:
|
||
|
||
```json
|
||
{
|
||
"id": "cet4",
|
||
"name": "CET-4",
|
||
"description": "大学英语四级词库",
|
||
"category": "英语学习",
|
||
"url": "/dicts/CET4_T.json",
|
||
"length": 2607,
|
||
"language": "en",
|
||
},
|
||
{
|
||
"id": "cet6",
|
||
"name": "CET-6",
|
||
"description": "大学英语六级词库",
|
||
"category": "英语学习",
|
||
"url": "/dicts/CET6_T.json",
|
||
"length": 2345,
|
||
"language": "en",
|
||
},
|
||
```
|
||
|
||
其中,
|
||
`id` 需要是所有词典中唯一的
|
||
`name` 是展示给所有用户的词典名
|
||
`description` 是词典描述
|
||
`category` 是词典分类(你可以事先阅读所有已存在的词典分类,来为新的词典选择合适的分类)
|
||
`url` 是词典的目标文件位置
|
||
`length` 是词典的单词数量(可以通过运行脚本 `scripts/update-dict-size.js` 来自动计算)
|
||
`language` 表示词典的语言
|
||
|
||
### 1.4 测试 🧪
|
||
|
||
使用 yarn 指令安装依赖,然后使用 yarn dev 启动开发服务器,访问 "http://localhost:5173"
|
||
|
||
如果你的词典已经成功导入,你将在词典列表中看到你的词典。🎉
|
||
|
||
### 1.5 提交 PR 📝
|
||
|
||
现在你可以提交 PR 了,我们会尽快 review 你的代码,如果一切顺利,你的词典将会在下一个版本中发布。🎉
|
||
|
||
## 别忘了,在任何步骤遇到困难时,你都可以转向 qwerty learner 社区寻求帮助。我们是一个非常友好的社区,随时欢迎你的加入!🤝
|