Free Software, Open Data, Open Map

ダウンロード: stardict-tools-tabfile-fix-issue37.diff

ダウンロード中: stardict-tools-tabfile-fix-issue37.diff StarDictで英字郎をつかう

翻訳作業を多数行う方は、翻訳メモリを使っていることと思います。
商用では、Tradosが有名のようですが、もっぱら私はOmegaTを使っています。

OmegaTでは、辞書引きの機能があり、StarDict形式の辞書をプロジェクトのdistionaryディレクトリに配置することで、自動的に辞書を引いて画面に表示してくれるようになっています。

そこで、これまでEPWING形式の辞書をEBViewで閲覧していたのですが、StarDict形式の辞書を作って、利用することにしました。

既に、StarDict形式への変換について、複数の方がブログに書いています。
sora_hさんは、 http://codnote.blogspot.jp/2010/01/i-installed-stardict-and-eijiro.html PDIC for WinをLinuxでWINEを使って動作させ、変換することで作業していました。

Design Recipe 別館Blog http://blog.designrecipe.jp/2011/01/01/eijiro-stardict-memo/ では、短いRubyプログラムを使って、実現されていました。

TXT形式のオリジナルのデータを持っていますので、後者の方法を試すことにしました。

スクリプトpdic1line2tab.rbは次のとおりです

<pre>
#!/usr/bin/env ruby
# -*- coding: utf-8 -*-
ARGF.each do |line|
line.gsub!("■・", "\\n・")
line.gsub!(/■/, '')
attr = nil
line.sub!(/ \{(.+?)\}/) do |e|
attr = $1
''
end
key, content = line.split(' : ')
next if content == nil
content = "【#{attr}】" << content if attr
puts [key, content].join("\t")
end
</pre>

使い方ですが、辞書ソースをUTF8に変換し,改行コードも整形したうえで、このスクリプトを通します。

$ iconv -f SJIS-WIN -t UTF8 EIJI-136.TXT | sed -e 's/^M//g' | ruby pdic1line2tab.rb > eiji-136.tab

StarDict形式に変換するために、 stardict-toolsパッケージを導入します。
apt-get install stardict-tools

そして
$ /usr/lib/stardict-tools/tabfile eiji-136.tab

実行したeiji-136.tabファイルのあるディレクトリに、stardict形式の辞書ファイルが3つ出来ます。

さて、Ubuntu /Debianに含まれているStarDict-toolsは、3.0.2バージョンです。このバージョンには、レコードの重複を許さないという仕様が有ります。3.0.1までと、3.0.3以降は、重複OKであるため、これは仕様バグです。

https://code.google.com/p/stardict-3/issues/detail?id=37

実際にバグ報告37番として報告され、修正されています。

Ubuntu/Debianのパッケージでは、この修正は含まれていませんので、パッチが必要です。
パッケージをソースからコンパイルすることで対応します。

パッチは、stardict-tools-tabfile-fix-issue37.diffを取得します。

以下は、パッケージの再ビルド例です。

$ apt-get source stardict-tools

$ apt-get build-dep stardict-tools

$ cd stardict-tools-3.0.2

$ quilt import ../stardict-tools-tabfile-duplication-fix-issue37.diff

$ quilt push -a

$ debuild -us -uc -b -i

できあがったパッケージをインストールしましょう。

$ sudo dpkg -i stardict-tools-3.0.2_2build2_amd64.deb