DictTango Android新版问题词典收集贴

此贴为收集升级到DictTango v2.3.7.7后,仍然查询不到词条但词条实际存在的问题。
如需报告问题,请跟帖提供以下明细,我有时间会检查一下。

  1. 词典下载链接
  2. 测试词条
  3. Builder: 是用Mdx Builder创建还是MDict Utils创建的
  4. 安卓版本
  5. 可选项:截图或者录屏

和

这两个词典,问题描述间第一个帖子里最新回复

还有Diccionario de español para extranjeros 现代西班牙语大词典 mdx - 西班牙语 - FreeMdict Forum
和
DIPELE 西班牙语学习词典 mdx - 西班牙语 - FreeMdict Forum
这两个词典
DictTango更新后问题依旧存在,现代西班牙语大词典和西班牙语学习词典从深蓝拉列表都可以看到存在ano词条,但更新后的DictTango也好,深蓝也好,搜索该词,这两部词典就是都无结果
词条e·yec·ción也是,检索eyección和eyeccion两个软件依旧都无结果
corazón依旧是只能在深蓝上有查询结果,DictTango更新后,现代西班牙语大词典和西班牙语学习词典依旧是无结果

以上的四个词典都是mdict_utils打包的

另外就是希望加强对(古)希腊字母,西里尔字母的支持,好些词典,词头是大写字母开头的,或者全是大写形式的,或者查的单词字母上面带特殊符号的,这种情况就查不到了

这个古希腊语词典,就无法查询διώκτης,必须查διωκτης才有结果
https://github.com/nikita-moor/latin-dictionary/releases/download/2020-02-14/LiddellScott1940-mdict.zip

这个俄语词典,搜索сéрдце就没结果,必须搜索сердце才行

这个俄语词典,词头就是全部用的大写西里尔字母

另外建议增加mdx 3.0格式支持,3.0就没那么多排序问题了,作者的实现(这个改叫zdb了,我一开始以为换了新格式):

江山代有才人出,3.0留给Vibe Coding的后来者去实现吧

先说上面这个词典,我们从原词典的词条顺序就可以看出存在排序问题:以 de 和 dé 开头的单词混在一起,没有正确分组。这种排序会导致二分查找失败。

第二个截图是 MDX Builder 的排序结果,所有以 dé 开头的单词都被正确地排在一起,没有与 de 开头的单词混杂,这才是正确的排序方式。

我估计其他词典也存在类似的问题,所以暂时不花时间逐个检查了。

原词典的排序

Mdx Builder重制后的排序

词条列表
RFJ_Entries.txt (4.8 MB)
RFJ_Entries_MdxBuilder.txt (4.8 MB)

奇怪,这种等于做了额外忽略accentd的操作,mdict utils代码里没有这种操作啊

对,根据MDict Utils的代码,这种情况其实不应该发生

我从Releases · liuyug/mdict-utils · GitHub 下载MductUtils后再重新打包,顺序就对了

上面这个词典并不存在сéрдце这个词条

词条列表
新时代大俄汉词典_entries.txt (3.1 MB)

很多词典里面条目都是有特殊符号的,有时候在辞典软件因为不认识点击跳转到某个词后,很多情况下这个词上面就有特殊符号,但有特殊符号的话,软件现在无非直接检索。
所以为了检索方便最好还是加一个

但现在的问题是,作者没有添加这个сéрдце词条,只有сeрдце,这种情况词典软件是没有办法自动生成一个词条的。

你给的截屏也是查询сeрдце,词条对应的词典内容里才有сéрдце,这种情况普通查词是不可能通过сéрдце查到内容的,只能通过全文搜索查询。

不能内置个像中文码表,日语单词词形还原类似的功能吗,尤其是俄语字母大写自动转小写,有些俄国人的辞典就所有词头都纯大写

暂时还做不到这个功能。你可以先试试其他已经支持这个功能的词典。最近论坛上也出了不少 Vibe Coding 做的作品,它们很多是通过索引来实现的。如果你希望有这个功能,找这些作者反馈或提出需求,应该会比较容易实现。

DictTango 目前采用的是二分查找,并没有建立索引。由于它是直接根据词典的内码进行查询,所以要实现“将带重音符号的字母还原成普通英文字母后再进行查询”这个功能,会比较复杂。

这和普通的英语单词词形还原不太一样。英语单词的原型通常只有一个,例如一个单词可以还原到一个基本形式;但对于包含特殊字符的单词,一个词可能对应几十甚至上百种不同的组合。如果为了支持这种查询方式,就需要针对每个查询尝试大量可能的组合,这对目前基于二分查找的查询方式来说,会带来比较明显的性能影响。

所以目前 DictTango 暂时不会采用这种实现方式。

Hi, I apologize if this is the wrong place to contact you.
I recently noticed Dict Tango only supports the entry:// url scheme and lacks support for the bword:// url scheme. On the other hand, wuDict and GoldenDict natively support both entry:// and bword:// url schemes. Is it possible to add the bword:// URL scheme compatibility?

Currently, if an imported dictionary is using the bword:// URL scheme, an issue arises because of the missing scheme support. I will explain it below:
If a user is looking at a dictionary entry and then taps another word in the entry to make the app navigate to its definition, the DictTango app will not navigate correctly, outputting the error below:

"The web page at bword://thewordthatwasclicked could not be loaded because:

net::ERR_UNKNOWN_URL_SCHEME"

bword:// is not a standard protocol supported by the MDX format, so I don’t plan to support it for now. You can use “Find and Replace” in Dictionary List to replace bword:// with entry://.

mdx3.0貌似完全是另一个格式了吧?那样的话,没准还不如直接用stardict+res.zip的方案?GoldenDict-ng是支持的。
对于排序,AI说:stardict引入了 .idx.clt 文件, 向下兼容:没有 .idx.clt 文件时,旧软件依然能按默认的 ASCII 规则读取 .idx,词典基本可用。有了它,支持 Collation 的软件就能获得更准确的多语言排序。

上面提的,全大写西里尔字母词条的俄语词典完全无法使用的问题能修复下吗

这个是作为例子的词典,里面全是大写字母

如俄语农民一词,查小写的крестьянин就查不到,只能检索全大写字母,КРЕСТЬЯНИН,才有结果

软件端能不能实现输入大写字母自动显示小写字母检索结果呢?