1.按照下面网址的介绍更改欧路词典处理文件

看这里

2.新建一个模板

新建一个模板,名称为“Dict2Anki-v6.1.3”,后面的版本换成自己的版本。如图所示:

关于Dict2Anki插件不能导入欧路词典的问题

3.添加字段

包含字段包含如下:

['term', 'definition', 'sentenceFront', 'sentenceBack', 'phraseFront', 'phraseBack', 'image', 'BrEPhonetic', 'AmEPhonetic', 'BrEPron', 'AmEPron']

其中的名称不可修改。如图所示:

关于Dict2Anki插件不能导入欧路词典的问题

4.不新增卡片

另外,在卡片页面,不需要添加新的卡片,最后只保留一个default的卡片,不然会出现一个单词出现在两个卡片中。其中一个是你定义的,一个是插件自己新增的。

关于Dict2Anki插件不能导入欧路词典的问题

此时就可以按照正常流程操作了。

5.原因分析

报错信息显示出现在addon_Windows.py的第442行,如下图所示:

关于Dict2Anki插件不能导入欧路词典的问题
图1

该行调用noteManager.pygetOrCreateModel函数,这个函数主要获取或生成模板。

具体到getOrCreateModel函数中,定位到noteManager.py的55行,如下图所示:

关于Dict2Anki插件不能导入欧路词典的问题
图2

从代码来看,是要创建一个新的模板,然而因为某种原因(我猜测是版本冲突)导致这一步出现问题。上面解决方法也是根据这里来解决的。

先看图1中传入的MODEL_NAME是什么?具体看constants.py中的定义,如图所示:

关于Dict2Anki插件不能导入欧路词典的问题
图3

图3可知,MODEL_NAME“Dict2Anki-v6.1.3”。再看图2中函数中的if判断语句,如果该模型中的字段与图3中的MODEL_FIELDS相同,则直接返回model,此时避免了上述的出现错误的地方。

6.为什么不新增卡片

图1中443行调用了noteManager.pygetOrCreateModelCardTemplate函数,该函数主要用于获取或生成卡片格式

关于Dict2Anki插件不能导入欧路词典的问题
图4

图1中调用getOrCreateModelCardTemplate函数时,传入一个名为"default"的卡片格式名称。如图4所示,当 “default”不在卡片格式模板中时,该方法会创建一个名为“default”的卡片格式,如果此时新建其他的卡片格式,则会出现重复的卡片,分别在你新建的卡片格式集合和“default”的卡片格式集合中。

7.总结

以上即是解决方法和原因分析,希望能帮到你。

相关文章:

  • 2022-12-23
  • 2021-11-22
  • 2021-05-30
  • 2021-11-19
  • 2021-06-15
  • 2021-04-25
  • 2021-04-08
  • 2021-05-01
猜你喜欢
  • 2021-09-07
  • 2021-08-15
  • 2021-09-13
  • 2021-12-12
  • 2021-08-24
  • 2021-08-18
  • 2022-12-23
相关资源
相似解决方案