ダウンロード: 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