Skip to content

Commit 58f505d

Browse files
committed
更新readme
1 parent a1bddec commit 58f505d

7 files changed

+78
-9
lines changed

GUI/DictForm.Designer.cs

+3-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

README.md

+67-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,68 @@
11
# ja-learner
2-
2+
3+
4+
5+
![image-20231020171054952](README/image-20231020171054952.png)
6+
7+
## 介绍
8+
9+
JA-Learner 是一款简单、轻便、实用的日语学习工具,集成了基于 MeCab 的汉字注音、语法分析功能,以及基于 GPT 的翻译功能。
10+
11+
本软件主要有以下特性:
12+
13+
- 对输入的日语进行分词、注音,使用不同颜色显示不同词性的单词,使句子更加清晰易读。
14+
15+
- 哪里不会点哪里,点击单词快速查询 MOJi 辞書。
16+
17+
- 调用 GPT 接口翻译句子、解说句子的单词和语法成分。
18+
19+
- 吸附其它窗口、读取剪贴板实时更新文本,配合游戏文本提取工具,提升游戏文本的阅读体验。
20+
21+
## 使用
22+
23+
### 窗口吸附
24+
25+
在主窗口的“系统设置”面板中,首先点击“选择窗口”按钮,然后把鼠标移到想要吸附的窗口,点一下左键。此时右边选框中的文字会变“与 xxx 对齐”,把选框勾上,窗口就吸附到游戏窗口边上了。
26+
27+
![为了演示把游戏窗口缩小了很多](README/attach.gif)
28+
29+
### 游戏文本提取
30+
31+
本软件**并没有**内置的游戏文本提取的功能,但是可以实时读取剪贴板。建议使用 [Textractor](https://github.com/Artikash/Textractor)[manga-ocr](https://github.com/kha-white/manga-ocr) 等文本提取工具将游戏文本提取至剪贴板,然后在本软件中勾选“读取剪贴板”,即可实时同步游戏文本。
32+
33+
![用 Textractor 提取文本](README/text-extraction.gif)
34+
35+
### 使用 GPT(需要 API KEY)
36+
37+
`config.txt` 的第一行输入 API KEY,第二行输入 API URL。
38+
39+
如果你使用官方 API,那么 `config.txt` 中的内容应该是这样的:
40+
41+
```
42+
sk-xxxxxxxxx
43+
https://api.openai.com/{0}/{1}
44+
```
45+
46+
如果你使用第三方反代,就要将第二行修改为相应的域名。
47+
48+
配置好 API KEY 就可以使用 GPT 翻译和解说文本了:
49+
50+
![GPT 提供翻译和解读](README/gpt.gif)
51+
52+
## 声明
53+
54+
### 分析与翻译仅供参考
55+
56+
无论是基于 MeCab 的分词、注音,还是基于 GPT 的翻译、解析,都无法保证 100% 的准确率。
57+
58+
比如 MeCab 经常把应该读成「からだ」的「身体」注音成「しんたい」,人名的读音基本乱标(这倒也正常,后续可能会添加自定义词典功能解决这个问题),也会时不时出现一些其它低级错误。
59+
60+
GPT 偶尔也会发癫,比如使用简体中文以外的语言回复、唐突[塞氏翻译法](https://zh.moegirl.org.cn/zh-hans/塞氏翻译法)等等。不过大多数时候还是很靠谱的,在翻译一些俗语、流行语时甚至比谷歌、DeepL 还强一些。
61+
62+
如果遇到可疑的注音,建议点击单词查看 MOJi 词典的解释和注音,或者使用 GPT 的解说功能。如果 GPT 翻译出错,再次点击翻译按钮重新翻译,可能会得到更好(或者更离谱)的翻译结果。
63+
64+
### 本项目使用的第三方库与工具
65+
66+
- 分词、注音:[kekyo/MeCab.DotNet](https://github.com/kekyo/MeCab.DotNet)
67+
- GPT:[OkGoDoIt/OpenAI-API-dotnet](https://github.com/OkGoDoIt/OpenAI-API-dotnet)
68+
- 单词搜索:[MOJi 辞書](https://www.mojidict.com/)

README/attach.gif

4.49 MB
Loading

README/gpt.gif

440 KB
Loading

README/image-20231020171054952.png

28 KB
Loading

README/text-extraction.gif

835 KB
Loading

TextAnalyzer.cs

+8-6
Original file line numberDiff line numberDiff line change
@@ -32,13 +32,15 @@ internal class TextAnalyzer
3232
public TextAnalyzer() {
3333
// 初始化 mecab dotnet
3434
parameter = new MeCabParam();
35-
// 读取用户词典
36-
string[] userdic = Directory.GetFiles("dic/userdic");
37-
for (int i = 0; i < userdic.Length; i++)
38-
{
39-
userdic[i] = "userdic/" + Path.GetFileName(userdic[i]);
35+
if (Directory.Exists("dic/userdic")){
36+
// 读取用户词典
37+
string[] userdic = Directory.GetFiles("dic/userdic");
38+
for (int i = 0; i < userdic.Length; i++)
39+
{
40+
userdic[i] = "userdic/" + Path.GetFileName(userdic[i]);
41+
}
42+
parameter.UserDic = userdic;
4043
}
41-
parameter.UserDic = userdic;
4244
tagger = MeCabTagger.Create(parameter);
4345
}
4446

0 commit comments

Comments
 (0)