为什么要做这个小程序?
来来来,先看一下 Wikipedia 上的头疼解释:
法语动词变位(法语:Conjugaison du verbe en français),是指法语动词为了表达不同的语式、时态、体、人称和数而产生的形式变化。法语动词可以分为三组:
- 第一组:不定式以-er(aller 除外)
- 第二组:不定式以-ir 结尾,现在分词以-issant 结尾
- (以上两组为规则动词)
- 第三组:不规则动词
- 第一部分:不定式以-ir 结尾,现在分词以-ant 结尾
- 第二部分:不定式以-oir 结尾
- 第三部分:不定式以-re 结尾
- aller
看着虽然头疼,但是解释的挺精确到位了。然而这仅仅是打开了它的冰山一角,更头疼的在后面:法语的动词变位变位中七种不同语气:直陈式(indicatif),虚拟式(subjonctif),条件式(conditionnel),命令式(impératif),分词(participe),不定式(infinitif),动名词(gérondif)。
配合上面的语气,还有各种时态:
直陈式:
- 现在时 (présent)
- 复合过去时 (passé composé)
- 未完成过去时 (imparfait)
- 愈过去时 (plus-que-parfait)
- 简单过去时 (passé simple)
- 先过去时 (passé antérieur)
- 简单将来时 (futur simple)
- 先将来时 (futur antérieur)
虚拟式
- 现在时
- 过去时 (passé)
- 未完成过去时
- 愈过去时
命令式
- 现在时
- 过去时
条件式
- 现在时
- 过去时
不定式
- 现在时
- 过去时
分词
- 现在分词
- 过去分词
动名词:将现在分词置于介词en
之后构成。
好的,大概就这么多。刚才提到了所有的动词分为三组动词,分别是第一组、第二组、第三组(这不是废话么,但确实是这么叫的),其中第一组、第二组动词的所有变位形式还算是比较固定的,第三组就是不规则动词。
但是,事实是,不管是不是规则动词还是不规则动词:记起来都很令人头疼。
小程序的第一版 v1.0.0
于是,我想要做一个小程序,来帮助被法语动词变位弄头疼的朋友。一开始这个小程序是采用去网上扒现成的动词变位数据。我用了陈教授推荐的 webscraper 扒了一个动词变位网站上的动词变位数据,每次扒一个单词。
别看才一个单词,一个单词 6 个人称,16 种时态,再加上现在分词和过去分词,大概有 100 不到一丢丢种情况。爬完几个之后就变成了熟练工,第一版小程序上线时,一共有 30 个动词的查询和背诵,这时数据表中就有了接近 3000 种情况。
既然是记忆小助手,那它的主要功能必定是帮助你更好地进行记忆,这里采用了最简单粗暴地打字默写形式,答对了过,答不对继续填到对跳下一个。朋友们可以自己选择时态和单词范围,因为第一版才 30 个动词,所以都是基础常用词。
小程序的第二版 v1.2.0
30 个动词肯定不够用啊,而且第一版的界面用了腾讯官方的 weui,觉得有点小丑,于是就换了一个 UI 组件 ColorUI,瞬间看上去感觉好了很多。除了界面有了全新的改变,动词突然从 30 个涨到了几乎涵盖所有法语动词的 7016 个动词。按照之前那种,每种情况单独存一条的话,会有 701600 左右种情况,对于微信小程序来说显然存不了那么多(小程序大小上限为 2 兆)。
后来的解决方案是这样的:在 github 上找 conjugaison francaise,没想到居然还找到了,顺藤摸瓜找到了个开源的数据库叫做 verbiste,里面列出了 7016 个动词的对应典型动词,每一个典型动词都详细列出了每个时态是对应哪种词根。当 7016 个动词的词根和这些典型动词的词尾相结合之后,便形成了相应的动词变位。当然拿到这个文件之后需要进行相应的改动变成 json 格式。
然后么,大概就分为这两种情况:
- 简单时态: 动词的词根加上对应典型动词的词尾
- 复合时态: 判断用 avoir 还是 être,然后加上动词的过去分词(过去分词也是根据上述进行拼接的)
除此之外,还有一些细节问题,比如第一人称 Je 和后面动词的缩合问题。举个简单点的例子,一个动词的变位再怎么变第一个字母是不太会变的,但是有一个动词很特殊 être,照道理 Je 碰到它都需要缩合成 J’。être 的第一人称单数居然是 Je suis,这就不用缩合,好的,这是一个坑货。
还有一些细节,比如法语有很多特殊字符:éèçàêîÏù 等等,所以我多增加了一列叫做”简单单词“:比方说 être 的简单动词就是 etre。这样的话就出现了用户可以不限特殊字符地查找动词了。
小程序的第三版 v1.3.0
这一版也是最新的,基本功能和上一版本差不多,另外加了一个”学习功能“,专供懒人的懒人模式,不用打字照样记忆(虽然这样我觉得会没有打字记忆效率高)。
卡片顺序和单词参考了“法语动词变位渐进”。卡片的单词内容大致如下,不同的时态下方的单词数量和内容均有所不同,具体如下图(点击看大图):
具体的内容可以参见如下:
主要更新内容
v1.3.0 日期:2019/05/07
- 增加中文翻译
- 更换欢迎页面,欢迎页面可以直达想要用的功能
- 增加学习模式,卡片式学习(实际上是懒人模式,不用打字即可背变位)
- 修复了直陈式简单过去时默写时的判断问题(2019/05/06)
- 7000 词查询部分按钮在 ios 端会出现 bug,已换成透明
- 修复了一些小问题
- 更新了一些信息
更新于 2019-05-10