1.按照下面网址的介绍更改欧路词典处理文件
2.新建一个模板
新建一个模板,名称为“Dict2Anki-v6.1.3”,后面的版本换成自己的版本。如图所示:
3.添加字段
包含字段包含如下:
['term', 'definition', 'sentenceFront', 'sentenceBack', 'phraseFront', 'phraseBack', 'image', 'BrEPhonetic', 'AmEPhonetic', 'BrEPron', 'AmEPron']
其中的名称不可修改。如图所示:
4.不新增卡片
另外,在卡片页面,不需要添加新的卡片,最后只保留一个default的卡片,不然会出现一个单词出现在两个卡片中。其中一个是你定义的,一个是插件自己新增的。
此时就可以按照正常流程操作了。
5.原因分析
报错信息显示出现在addon_Windows.py的第442行,如下图所示:
该行调用noteManager.py的getOrCreateModel函数,这个函数主要获取或生成模板。
具体到getOrCreateModel函数中,定位到noteManager.py的55行,如下图所示:
从代码来看,是要创建一个新的模板,然而因为某种原因(我猜测是版本冲突)导致这一步出现问题。上面解决方法也是根据这里来解决的。
先看图1中传入的MODEL_NAME是什么?具体看constants.py中的定义,如图所示:
由图3可知,MODEL_NAME为“Dict2Anki-v6.1.3”。再看图2中函数中的if判断语句,如果该模型中的字段与图3中的MODEL_FIELDS相同,则直接返回model,此时避免了上述的出现错误的地方。
6.为什么不新增卡片
在图1中443行调用了noteManager.py的getOrCreateModelCardTemplate函数,该函数主要用于获取或生成卡片格式
图1中调用getOrCreateModelCardTemplate函数时,传入一个名为"default"的卡片格式名称。如图4所示,当 “default”不在卡片格式模板中时,该方法会创建一个名为“default”的卡片格式,如果此时新建其他的卡片格式,则会出现重复的卡片,分别在你新建的卡片格式集合和“default”的卡片格式集合中。
7.总结
以上即是解决方法和原因分析,希望能帮到你。