Improve the windows respond by using thread
[QFreeRecite.git] / README
blobf1300a377e1d89a019c3ff79d61dd9ae619f0f16
1 --------------------------------------声明------------------------------------------
2 QFreeRecite(以及FreeRecite)软件是一款基于GPLv3授权的自由软件,你可以在遵循GPLv3的前
3 提下自由地使用、修改、和发布自己的FreeRecite版本。但是,未经作者同意,你不可将本软件
4 以及所有相关的衍生产品用于商业用途。典型的不被允许的商业行为是重连接QFreeRecite到其他
5 的商业网站,对于违反此声明的商业行为,作者将依法维护自己的权益。
7 QFreeRecite的作者保拥有对此声明的解释权。
8 ------------------------------------------------------------------------------------
12 -----------------------------------使用说明------------------------------------
13 一、Free Recite的特点
14   
15   1.Free Recite采用了记忆曲线的原理,在初次记忆中根据作者自己
16     的亲身体会,又加入有十分有效率的记忆循环。
18   2.支持自定义词汇背诵,使用单一字典,不需按照任何教材。支持单
19     词发音。
21   3.字典设计灵活,词汇量大:可随时修改字典,且现在已经有5万余
22     词汇。 此外,该字典模式不仅可以背诵英文单词,任何语言皆可
23     套用这种格式。
25   4.软件体积小,依赖关系简单(CUI版需要shell和C++,GUI版需要Qt4)。
27   5.软件免费,开放代码,遵循GPLv3协议,是一款真正的自由软件。
29 二、如何安装(这里只介绍*nix系统下从源代码安装,Windows下有相应的安装包)
31 1.下载源码,进入源码目录:
32 $ cd FreeRecite
34 2.生成Makefile:
35 $ mkdir build
36 $ cd build
37 $ cmake -DCMAKE_INSTALL_PREFIX=/usr .. 
39 注释:
40       创建目录build。
42       进入build目录的目的是进行外部编译,将所有的编译中间文件都存放在build目录
43       下。这样,就不用"make distclean",而是直接删除build下所有文件就能删除中间
44       文件。
46       CMAKE_INSTALL_PREFIX变量指定了文件的安装目录,如果不指定,将会被安装到
47       /usr/local目录下。这里要注意,命令后面的两个句点号 ".." 不可以缺少。
49 3.编译程序:
50 $ make
52 4.安装程序:(需要超级用户权限)
53 # make install
55 5.卸载程序:(需要超级用户权限)
56 # make uninstall
58 6.下载单词发音文件(需要超级用户权限)
59 $ wget http://nchc.dl.sourceforge.net/sourceforge/stardict/WyabdcRealPeopleTTS.tar.bz2
60 # tar xvfj WyabdcRealPeopleTTS.tar.bz2 /usr/share
62 三、如何使用(命令行界面版本)
64 1.帮助:在命令行下输入frt命令,或者 frt --help 可以显示一个简单但很有用的帮助文
65   档。FreeRecite所有的用法都在这个文档中列出。如:
66   $ frt
67    usage: frt [--version]  [--help] COMMAND [ARGS]
68    The most commonly used git commands are:
69    all             显示所有任务信息
70    cls             清楚stress中的内容(敬告:stress中的信息很有用,请甚用此功能)
71    done            输出已经记住的单词
72    export   <ID>   输出相应ID的任务中的单词
73    ls              显示当前需要复习的任务信息
74    new      <file> 从文件file中取词新建一个任务
75    merge    <file> 把本地字典和全局字典合并到file中
76    modify   [word] 改变单词在字典中的词义
77    remove   <ID>   移出一个相应ID的任务
78    recite   <ID>   背诵ID对应的任务,recite使用了循环记忆系统,帮助你快速记忆
79    rrecite  <ID>   反向背诵,即按照由英文到中文的提示方式背诵,下同
80    test     <ID>   测试ID对应的人物,测试过程没有溶于的循环,结果会被系统记录
81    rtest    <ID>   反向测试
82    stress          复习那些比较难的单词,在测试过程中错误的单词会被stress记录
83    rstress         反向复习
84    status          显示当先的学习进度,包括单词总数,平均记忆速度等
86    --help          显示此菜单的英文帮助文档
87    --version       显示当前版本号
89 3.新建一个任务:
90   FreeRecite的最大优点就是用户可自己定义需要记忆的词汇。方法很简单,把生词(或
91   词组)存放在一个文件中,以换行为分割,例如:
92   $ cat myfile 
93   hello
94   free
95   recite
96   $ frt new myfile 
97   Give a task name for it?
98   (Press Enter will give a default name): myfile
99   Creat a task SUCCESS!
100   $ 
101   注:为了方便以后复习,Free Recite要求你在新建任务时给任务起个名字。如果名字为
102       空,那么Free Recite将会按照创建任务时的时间产生默认任务名。
103       此外,你不用担心你的文件中有重复的单词,Free Recite会自动帮你把重复的单词
104       过滤出;并向你提示那些在字典中找不到的单词。你可以从任务中删除这个词,还可
105       以修改你的字典。事实上,这个导入的文件格式就是stardict中默认的 ~/dic.txt文
106       件的存放格式,你可以直接导入这个文件。
108 4.查看需要复习的任务:
109   $ frt ls
110   There's 1 tasks should review.
111   N  Name                Step     ID    
112   0  myfile              0    1233264782
113   我们刚才新建了一个任务,使用命令'frt ls'会把所有现在需要复习的任务显示出来,包
114   括任务名,复习阶段和一个ID。用户在对指定任务进行操作时必须引用其ID。
116 5.查看任务中都有那些单词:
117   用户在复习或者除此记忆的时候,总要知道这个任务中有那些单词,那么命令
118    'frt export <task ID>' 可以很容易地做到:
119   $ frt export 1233264782
120   free         [fri:] a. 自由的,免费的;vt. 使自由,使摆脱
121   hello        ['hʌ'lәu] int.英(美)喂,你好
122   recite       [ri'sait] vt.背(朗)诵;列举出vi.背诵,朗诵
123   注:第三个参数是任务的ID,就是4中显示的ID列的数字。
124   
125 6.使用recite命令加速记忆:
126   Free Recite为了让用户更加快速的完成初次记忆,在recite记忆功能里加入了记忆循环
127   系统,能有效地帮助对没有掌握的单词进行循环复习。例如:
128   $ frt recite 1233264782
129    Amount: 3 R_Num: 3 R_Times: 3
130    [M]: a. 自由的,免费的;vt. 使自由,使摆脱
131    **********************************************
132    *Input :_
134   注:recite和后面提到的test的界面是一样的。其中,Amount表示 该任务中包含单词的
135       总数;R_Num表示没有掌握的词数;R_Time表示在记忆循环中还要输入单词的总次数。
136       在Input: 后面输入答案后以回车结束,结果就会反馈到终端中。
138 7.使用test命令按时复习:
139   test的界面以及操作方法和recite基本一致:
140   $frt test 1233264782
141   他们的主要区别是:
142   a.test会把任务的分数结果提交给系统,看用户是否达到要求;recite只是测试用户记忆
143     该组单词的平均速度。
144   b.此外,test会把用户答错的单词放到系统中,使用stress命令可以将这些单词导出到终
145     端上帮助用户重点复习;而recite不会。
146   c.test中的单词是以随机顺序出现的,而recite是以字母顺序出现的。
147   *建议: 第一次(step = 0)背单词时使用recite; 
148           以后复习(step > 0) 时使用test。
150   注:和recite与test的原理相同,Free Recite 提供了从单词回忆解释的相关过程,使用
151       命令 rrecite 和 rtest。 前面的那个 'r' 代表单词 reverse,表示"反向"的意思。
153 8.recite和test中的转义命令:
154   recite和test中有五个转义命令: \hint  \modify  \add  \rm  \stop 这四个命令很有
155   用,在help文档中没有列出,这里有必要重点介绍一下。这些功能的具体好处只有用户体
156   验过才会知道。这些命令都是在*Input: 提示符后输入的,而且都没有参数。 
157   其中,\hint 命令不能用到rrecite和rtest中,它的作用是就当前单词向用户惊醒提示,
158   如首字母和单词长度以及音标;\modify用来改变当前正在测试的单词在字典中的解释或者
159   音标;\add可将一个新词添加到任务中;\rm可将当前正在测试的这个单词从任务中移除;
160   \stop中止测试循环,退出到shell。 
161   例如:
162   $ frt recite 1233264782
163    Amount: 3 R_Num: 3 R_Times: 3
164    [M]: a. 自由的,免费的;vt. 使自由,使摆脱
165    **********************************************
166    *Input :  \modify
167    θ_ɑ_ʌ_ә_є_æ_ɔ_ʃ_ð_ŋ_ʒ
168    0_1_2_3_4_5_6_7_8_9_=
169    [T]: fri:                (在这里输入音标)
170    [M]: 自由软件            (在这里输入解释)
171    
172   结束后,下次显示free这个单词就会把“自由软件”当作解释了。 上面那些奇怪的符号表
173   示的是音标中的特殊字符,大多数音标都可以找到相应的英文字母来代替,但也有些不
174   行。那么,就用上行符号对应的数字来代替他们,FreeRecite使用的utf-8编码会自动把
175   相应的字符转换成音标。
177 9.用stress命令查看难点单词:
178   在背单词的过程中,总会有一些词是难度较大,因此用户在复习中很容易答错。
179   FreeRecite会把用户答错的单词记录下来,使用'frt stress'命令会把所有这些单词输
180   出到终端上方便用户查看。下面是我自己复习过程中的难点单词输出结果:
181   $ frt stress
182   assistance   [ә'sistәns] n.help, aid 协作; 援助; 帮助
183   campaign     [kæm'pein] n.战役,运动;竞选运动 vi.领导,发起运动
184   capability   [,keipә'biliti] n.能力;才能;(pl)可发展的能力或特性等
185   decisively   [di'saisivli] ad. 决然地;断然
186   evacuation   [ivækju'eiʃәn] n.撤退,撤离
187   expulsion    [ik'spʌʃәn] n. 逐出, 开除, 驱逐, 排气
189 10.清空难点单词存档:
190   当你发现stress的词很多,或者你已经掌握了提示过的这些,那么使用'frt cls'命令可
191   以清空系统stress中的内容,下次会重新开始记忆。
193 11.修改字典中的单词:
194   除了可以在recite或者test的过程中使用\modify命令修改单词外,Free Recite还允许用
195   户直接指定要修改的单词,命令格式为:
196   $frt modify [word]
197   其中 word 是可选的参数,如果没有输入,那么FreeRecite会自动提示([W])你输入单
198   词,提示符为[W]。modify 的操作和test过程中的修改操作大致相同,这里不再重复。
201 四、图形界面版本(QFreeRecite)
202   为了方便更多非计算机用户和Windows用户使用,我们利用Qt4强大的的可移植性设计了
203 这个图形界面版本,目前已经开发完成。关于QFreeRecite的使用更加简单明了,可以说
204 一目了然,所以这里就不再赘述。
206   至此,我们已经将FreeRecite大部分的使用方法介绍了,如果你有一些shell的基础,你
207 会发现FreeRecite结合shell能给你带来更多强大的功能。欢迎测试,如果遇到Bug,希望你
208 能后及时反馈给我们:
209         Kermit Mei <kermit.mei@gmail.com>.
210         Jianjun Kong <kongjianjun@gmail.com>
212 如果我们可以帮助你,那将是我们最大的收获!
213 感谢您的使用!