53 Star 608 Fork 134

GVPKai / Qwerty-Learner

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
toBuildDict.md 4.28 KB
一键复制 编辑 原始数据 按行查看 历史
KaiyiWing 提交于 2023-04-18 21:09 . docs: polish readme

如何导入新的词典 📚

注意,我们的词典主要来源于社区贡献。当你想要导入新的词典时,最好准备好词典的源文件,以便我们能够更好的帮助你。

0. 交给我们!🤝

0.1 如果你没有任何编程基础 🚫💻

我们推荐你加入 qwerty learner 社区群,在群中反映你的需求,我们的开发者会帮助你导入词典。

groupQRcode

0.2 如果你不会编程,但会使用 github🐙

我们推荐你以“Dictionary Request”为开头发起 Issue,描述你的词典需求并提供词典来源。

1. 亲自动手!🛠️

1.1 词典的目标文件格式 📄

词典的文件格式是 词典名.json ,其内容结构应当是:

[
    {
        "name" : "xxx" ,
        "trans" : ["xxx", "xxx",...]
    },
    ...
]

例如:

  { "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 中完成的,你需要在该文件中添加一行代码,格式如下:

{
    "id": "xxx",
    "name": "xxx",
    "description": "xxx",
    "category": "xxx",
    "url": "./dicts/xxx.json",
    "length": xxx
}

例如:

  {
    "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 社区寻求帮助。我们是一个非常友好的社区,随时欢迎你的加入!🤝

TypeScript
1
https://gitee.com/KaiyiWing/qwerty-learner.git
git@gitee.com:KaiyiWing/qwerty-learner.git
KaiyiWing
qwerty-learner
Qwerty-Learner
master

搜索帮助