查看: 1719|回复: 5
打印 上一主题 下一主题

[求助] stardict词典的同义词条如何合并

[复制链接]

该用户从未签到

40

主题

177

回帖

1628

积分

版主

Rank: 10Rank: 10Rank: 10

积分
1628

灌水大神章小蜜蜂章笑傲江湖章管理组专用章

跳转到指定楼层
1
发表于 2015-1-18 04:35:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 LYX1692 于 2015-1-18 04:38 编辑

不知道有没有大神以前做过星际译王的词典,有个问题求教。
我喜欢用Kindle多看看书,里面的词典采用的stardict格式的。

请问,stardict格式的词典,同义词条该如何合并?
比如说搜索centre,自动导向center。

百度找了好久,只找到一个说要编辑.syn格式的文件。
可是连最起码的用什么工具编写,又怎么编译都没交待。


The .syn file contains information for synonyms, that means, when you input a
synonym, StarDict will search another word that related to it.

The format is simple. Each item contain one string and a number.
synonym_word;  // a utf-8 string terminated by '\0'.
original_word_index; // original word's index in .idx file.
Then other items without separation.
When you input synonym_word, StarDict will search original_word;

The length of "synonym_word" should be less than 256. In other
words, (strlen(word) < 256).
original_word_index is a 32-bits unsigned number in network byte order.
Two or more items may have the same "synonym_word" with different
original_word_index.
The items must be sorted by stardict_strcmp() with synonym_word.

该用户从未签到

15

主题

137

回帖

2342

积分

解元

Rank: 5Rank: 5

积分
2342

灌水大神章小蜜蜂章笑傲江湖章

2
发表于 2015-1-19 04:06:52 | 只看该作者
.idx .ifo .syn是编译后的文件,需要提取出文本,修改后再编译。
提取文本和编译软件StarDict Editor
StarDict Editor支持Babylon文本格式的编译
例:
babylon 格式
apple|apples
the meaning of apple

eeeee
kkkkk

===
apple|apples
编译后会生成xxx.syn文件,查apple或apples都会直接指向同一个解释,”the meaning of apple“。
这是用Babylon格式的方法。

因为不熟悉stardict格式,可以用StarDict Editor反编译出文本,看看。
===

Tab file(text)
apple     the meaning of apple
eeeee     kkkkk
(text格式 synonym信息丢失
===Textual StarDict dictionary xml格式===

  <?xml version="1.0" encoding="UTF-8" ?>
- <stardict xmlns:xi="http://www.w3.org/2003/XInclude">
- <info>
  <version>2.4.2</version>
  <bookname>3</bookname>
  <author />
  <email />
  <website />
  <description />
  <date />
  <dicttype />
  </info>
- <article>
  <key>apple</key>
  <synonym>apples</synonym>
- <definition type="m">
<![CDATA[
the meaning of apple
  ]]>
  </definition>
  </article>
- <article>
  <key>eeeee</key>
- <definition type="m">
<![CDATA[
kkkkk
  ]]>
  </definition>
  </article>
  </stardict>
======

该用户从未签到

15

主题

137

回帖

2342

积分

解元

Rank: 5Rank: 5

积分
2342

灌水大神章小蜜蜂章笑傲江湖章

3
发表于 2015-1-19 04:10:05 | 只看该作者
本帖最后由 qunwang6 于 2015-1-19 11:29 编辑

其它
stardict-textual-dict-example.xml
http://code.google.com/p/stardic ... e3841c0fda092c68b6f

StarDict格式的词典转txt
方法一:
StarDict Editor
http://code.google.com/p/stardic ... xe&can=2&q=
1.下载、解压StarDict词典的压缩包xxx.tar.bz2
2.将解压后文件夹内的xxx.dict.dz重命名为xxx.dict.zip然后解开为xxx.dict文本文件
3.打开StarDict Editor,选DeCompile,文件xxx.ifo
4.DeCompile
方法二:
StarDict转txt程序:cvtstardict2txt.zip
http://www.pythonclub.org/python-files/stardict

1.下载、解压StarDict词典的压缩包xxx.tar.bz2
2.将解压后文件夹内的xxx.dict.dz重命名为xxx.dict.zip然后解开为xxx.dict文本文件
3.用cvtstardict2txt提取
方法三:
pyglossary
https://github.com/ilius/pyglossary
1.下载、解压StarDict词典的压缩包xxx.tar.bz2
2.cd 词典文件夹
3.python /Applications/Utilities/DictionaryDevelopmentKit/pyglossary/pyglossary.pyw --read-options=resPath=OtherResources --write-format=AppleDict xxx.ifo xxx.xml

编译成StarDict格式的词典
方法一:
StarDict Editor
http://code.google.com/p/stardic ... xe&can=2&q=
方法二:
pyglossary
https://github.com/ilius/pyglossary
python /Applications/Utilities/DictionaryDevelopmentKit/pyglossary/pyglossary.pyw --read-options=resPath=OtherResources --write-format=Stardict xxx.txt xxx.ifo


===
文本格式
a     1\n2\n3
b     4\\5\n6
c     789

每行开头,是一个单词;接著,是一个Tab符(如果你的文本编辑器有 "Tab=空格" 选项,勿选之);接下来是单词音标及释义。n 表示换行,\ 表示斜线 。词典文件的最后一行,必须是一空行。

<A href='bword://DAKOS'>DAKOS</A>



How to add HTML tags to StarDict file?


a   <span style="font-color:#008000">prep.</span> <i>(en relaciones de proporción, equivalencia)</i> per.
abajo   <span style="font-color:green">adv.</span> below.
a mano   by hand.
abarcar   <span style="font-color:green">v.</span> <i>(temas/materias)</i> to cover; <i>(superficie/territorio)</i> to span, cover.
===
Compile any supported file format to StarDict dictionary.

Tab file format
---------------
Here is a example dict.tab file:
============
a     1\n2\n3
b     4\\5\n6
c     789
============
Each line contains a word - definition pair. The word is splitted from definition with a tab character. You may use the following escapes: \n - new line, \\ - \, \t - tab character.


Babylon source file format
--------------------------
=====
apple|apples
the meaning of apple

2dimensional|2dimensionale|2dimensionaler|2dimensionales|2dimensionalem|2dimensionalen
two dimensional's meaning<br>the second line.

=====
Each article must be followed by an empty line. The file must end with two empty lines!

You may specify field like bookname, author, description that will be used in the generated StarDict dictionary. You may specify options effecting processing of the babylon source file. See libbabylongfile.cpp source file for complete list of supported fields and options. To specify options and fields, leave the first line blank, than write options, one option per line. Precede each line with a hash sign.
For example:
=====

#bookname=My dictionary
#author=My name
#description=...
#other fields=

articles...
=====

Textual StarDict file format
----------------------------
See doc\TextualDictionaryFileFormat in source tarball for information about Textual StarDict dictionary.

Babylon

单词
解释(用htm的格式,如<B></B>可以设黑体;<font face=xxx></font>可以设字体等等。
(空行)
下一个单词。。。
词典文件的最后一行,必须是一空行。

该用户从未签到

40

主题

177

回帖

1628

积分

版主

Rank: 10Rank: 10Rank: 10

积分
1628

灌水大神章小蜜蜂章笑傲江湖章管理组专用章

4
 楼主| 发表于 2015-1-19 15:29:07 | 只看该作者
qunwang6 发表于 2015-1-19 04:06
.idx .ifo .syn是编译后的文件,需要提取出文本,修改后再编译。
提取文本和编译软件StarDict Editor
Sta ...

太谢谢了。我放弃了原来的Txt Tab File,改用Babylon的文本格式。
照您说的方式果然生成了同义词条。
太厉害了。
  • TA的每日心情
    无聊
    2021-1-15 05:13
  • 签到天数: 271 天

    [LV.8]以坛为家I

    11

    主题

    471

    回帖

    6760

    积分

    会元

    Rank: 7Rank: 7Rank: 7

    积分
    6760

    灌水大神章

    5
    发表于 2017-9-2 04:17:44 | 只看该作者
    qunwang6 发表于 2015-1-19 04:10
    其它
    stardict-textual-dict-example.xml
    http://code.google.com/p/stardict-3/source/browse/dict/doc/ ...

    大神, 有办法搞定 StarDict 或者 Babylon 格式词典的发音不? 想做成像 MDict 这样声音跟着词条走, 而不是把声音文件打成个大包然后按文件名字匹配单词, 例如一个单词能发英音和美英....
  • TA的每日心情
    开心
    2017-10-25 12:37
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    0

    主题

    12

    回帖

    122

    积分

    被盗用户

    积分
    122
    6
    发表于 2017-10-13 15:48:09 | 只看该作者
    <article>
    <key>krīḍā-bhūmi</key>
    <synonym>krīḍābhūmi</synonym>
    <synonym>遊戲其地</synonym>
    <synonym>རྩེ་བའི་ས།</synonym>

    <definition type="g">
    <![CDATA[krīḍā-bhūmi
            遊戲其地
            <font size="3" face="Tibetan Machine Uni">རྩེ་བའི་ས།</font>
            rtze ba'i sa]]>
    </definition>
    </article>
    ------------------------------------------------

    如上,stardict中的同义词词条是用<synonym>***</synonym>