もび汁 †702NKは電気辞書の夢をみるか? ……Mobipocket(.com)で「モビ辞る」ならば! /出典不明 裏技ではなく意外と表技? 不具合あれば誰か修正をよろしくです。 もび汁初版->もび汁2変更点(060302) 他修正途中(060401) ・中/小辞郎対応(英辞郎II(v81)->中辞郎) ・レイアウト、および機能のシンプル化(レベル機能の廃止・ファイルサイズ縮小) ・Mobipocket Reader における全プラットホーム対応? 必要なもの †csv2html4mbp2.pl (perlスクリプト もび汁2) Mobipocket Reader (Series60版->702NK) ActivePerl (もしくはその他の Perl for PC をインストール) Mobipocket Reader (PC版! 変換・確認用) 辞書データ(.csv) Macな人ごめんなさい…… 辞書データ(.csv) †PDICからの「辞書の変換(CSV形式)」に対応。 "見出語","訳語","用例",n,0,0,"(発音記号は無視)" *nレベル機能はもび汁2にて排除 あれば便利なもの †Personal Dictionary (PDIC for PC) Mobipocket Creater (Publisher バージョン 14days FREE!) PDIC用辞書データ(PDEJ2005などから.csvを作成) PDICによる辞書データ.csvの作り方例 †元データがPDEJ2005の場合 (PDEJ2005.EXE->PDEJ2005.DIC) 1. PDICで[Tools]->[辞書の変換]->~ 転送元[PDIC形式] "PDEJ2005.DIC" を選択 転送先[CSV形式] "pdic_out.csv" を指定 ->OKで"pdic_out.csv" が作成されます。 動作確認辞書データ(PDICにより.csvに変換) PDEJ2005(英和) PDEDICT(和英) PDWD1913(英英) GENE95(英和) 学辞郎(英和・アルク絶版) (英辞郎は[中辞郎][小辞郎]化 -> [もび汁2]で動作確認) csv2html4mbp2.plの使い方 †on PC 1.スクリプト内の設定部分を書き換え、 辞書名(任意名)、辞書データ.csv 中間ファイル.html を指定。 2.csv2html4mbp2.pl と辞書データ.csvが 同じフォルダに有ることを前提にスクリプトを実行。 3.生成された、中間ファイル.htmlを Mobipocket Reader で変換(.prc)。 (【高】圧縮、*【辞書】モードは、Mobipocket Creater Publisher を使用) (*【辞書】モード = Reader上で読んでいる他のブックから単語クリックで検索可) 参考ファイルサイズ(もび汁2で中間ファイル.htmlを作成) (PDEJ2005 = 50,249 語の場合) PDEJ2005.DIC (約 2MB) *PDIC辞書データ pdic_out.csv (約 3MB) *辞書データ.csv pdic_out.html(約 10MB) *中間ファイル.html pdic_out.prc (約 5MB) *Mobipocket 辞書ファイル (Reader 圧縮) (英辞郎v81->中辞郎 = 533.468 語の場合) CHUJIRO.DIC (約 25MB) *PDIC辞書データ chujiro.csv (約 36MB) *辞書データ.csv chujiro.html(約114MB) *中間ファイル.html chujiro.prc (約 51MB) *Mobipocket 辞書ファイル (Reader 圧縮) on 702NK 4.変換が成功すれば 辞書.prc が作成されるので Mobipocket Reader (PC版, Series60版その他) で閲覧検索可能。 (*うまく表示されない場合フォント/サイズ等を調整) (英英・英和可。和英の場合、見出語は「かな」が吉。国語も同様) "*" もしくは "?" を使ったワイルドカード検索対応。 *702NKで使用する場合、日本語スモールフォント導入済の事!? *T9入力可能ですが、必ず確定させないと様子がへん? csv2html4mbp2.pl (perlスクリプト [もび汁2]) †#!/usr/bin/perl〜 #EndOfScript までをCopy & Paste してテキストファイルを作成。 (但し、拡張子は.pl) *中身を全部読む必要はありません。 新規検索=[3]->[Look Up] 継続検索=[↓]->[クリック] 英辞郎v81->中辞郎がおそらくギリの対応サイズです。 英辞郎最新版等では語彙数の増加により変換ができないかも…… その場合は単機能版の[たん汁]でお試しあれ。 csv2html4mbp2.pl #!/usr/bin/perl
# csv2html4mbp2.pl (perlスクリプト) 060401
# 設定 (行頭の # はコメントアウト= 無効)
####ここから設定部分################################################
# ↓ $dic_name = "辞書表示名" ;
$dic_name = "My Dictionary" ;
# ↓ open ( READFILE , " <辞書データ.csv" ) ;
open ( READFILE , " <pdic_out.csv" ) ;
# ↓ open ( WRITFILE , " >中間ファイル.html" ) ;
open ( WRITFILE , " >pdic_out.html" ) ;
####設定ここまで。以下、好みで修正。幸あれ!##########################
# 進行表示用
$countup = 1 ;
print "processing now\n" ;
# HTML_SRC
print WRITFILE <<"HTML_SRC";
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<?xml version="1.0"?><HTML xmlns:idx = "s" xmlns:mbp = "s" xmlns:xlink =
"http://www.w3.org/1999/xlink">
HTML_SRC
$dic_name =~ s/\[<>]//g ;
print WRITFILE "<HEAD><TITLE>" ;
print WRITFILE $dic_name ;
print WRITFILE "</TITLE>" ;
print WRITFILE <<"HTML_SRC";
<META http-equiv=Content-Type content="text/html; charset=shift_jis">
<body topmargin="0" bottommargin="0" rightmargin="2" leftmargin="2"></HEAD>
<div bgcolor="#0835C4" border="1"><h2 align="center"><span color="white">
HTML_SRC
print WRITFILE $dic_name ;
print WRITFILE <<"HTML_SRC";
</span></h2>
</div>
<div bgcolor="#FA8072" border="1" align="center">
<b>.. TOP PAGE ..</b></div>
<p align="center"><FONT color="blue"><br>
<a onclick="index_search('', 'Look Up', '', '', '', 8 +16 )"><b>Look Up</b></a> |
<a onclick="index_search('', 'Look Up', '**', '', '', 8 +16 )"> with */?</b></a><br><br>
</font></p>
<mbp:pagebreak />
HTML_SRC
# while ( $line = <READFILE> and !eof(READFILE)){
while ( $line = <READFILE> ){
print "\b\b\b\b\b\b\b" ;
print $countup ;
$countup = $countup + 1 ;
$line .= <READFILE> while ($line =~ tr/"// % 2 and !eof(READFILE));
$line =~ s/\</</g;
$line =~ s/\>/>/g;
$line =~ s/<br>/\<br\>/g;
$line =~ s/(?:\x0D\x0A|[\x0D\x0A])?$/,/;
$line =~ s/\n\n/<br>/g;
$line =~ s/\n/<br>/g;
$line =~ s/\r//g;
$line =~ s/"/""/g;
$line =~ s/<IDX:ORTH>/<idx\:orth>/g;
$line =~ s/<\/IDX:ORTH>/<\/idx\:orth>/g;
$line =~ s/<IMG(.+?)>/<img$1>/g;
@csv = map {/^"(.*)"$/s ? scalar($_ = $1, s/""/"/g, $_) : $_}
($line =~ /("[^"]*(?:""[^"]*)*"|[^,]*),/g);
$csv[0] =~ s/\"/"/g ;
$title = $csv[0] ;
$title =~ s/\\/\\\\/g ;
$title =~ s/'/\\'/g ;
print WRITFILE "<idx:entry><div border=\"1\" >" ;
print WRITFILE "<a onclick=\"index_search('','Look Up','" ;
print WRITFILE $title ;
print WRITFILE "','','',24)\"><b><idx:orth style=\"bold\">" ;
print WRITFILE $csv[0] ;
print WRITFILE "</idx:orth></a></b></div>" ;
print WRITFILE $csv[1] ;
if ($csv[2] ne "") {
print WRITFILE "<hr>" ;
print WRITFILE $csv[2] ;
}
print WRITFILE "<hr></idx:entry><mbp:pagebreak>\n" ;
}
print WRITFILE "</BODY>\n" ;
print WRITFILE "</HTML>\n" ;
close ( READFILE ) ;
close ( WRITFILE ) ;
# EndOfScript
csv2html4mbp0.pl (perlスクリプト [たん汁]) †#!/usr/bin/perl〜 #EndOfScript までをCopy & Paste してテキストファイルを作成。 (但し、拡張子は.pl) *中身を全部読む必要はありません。 もび汁の[単]機能版です。 新規検索=[3]->[Look Up] (継続検索機能はありません) csv2html4mbp0.pl #!/usr/bin/perl
# csv2html4mbp0.pl (perlスクリプト)
# 設定 (行頭の # はコメントアウト= 無効)
####ここから設定部分################################################
# ↓ $dic_name = "辞書表示名" ;
$dic_name = "My Dictionary" ;
# ↓ open ( READFILE , " <辞書データ.csv" ) ;
open ( READFILE , " <pdic_out.csv" ) ;
# ↓ open ( WRITFILE , " >中間ファイル.html" ) ;
open ( WRITFILE , " >pdic_out.html" ) ;
####設定ここまで。以下、好みで修正。幸あれ!##########################
# 進行表示用
$countup = 1 ;
print "processing now\n" ;
# HTML_SRC
print WRITFILE <<"HTML_SRC";
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<?xml version="1.0"?><HTML xmlns:idx = "s" xmlns:mbp = "s" xmlns:xlink =
"http://www.w3.org/1999/xlink">
HTML_SRC
$dic_name =~ s/\[<>]//g ;
print WRITFILE "<HEAD><TITLE>" ;
print WRITFILE $dic_name ;
print WRITFILE "</TITLE>" ;
print WRITFILE <<"HTML_SRC";
<META http-equiv=Content-Type content="text/html; charset=shift_jis">
<body topmargin="0" bottommargin="0" rightmargin="2" leftmargin="2"></HEAD>
<div bgcolor="#0835C4" border="1"><h2 align="center"><span color="white">
HTML_SRC
print WRITFILE $dic_name ;
print WRITFILE <<"HTML_SRC";
</span></h2>
</div>
<div bgcolor="#FA8072" border="1" align="center">
<b>.. TOP PAGE ..</b></div>
<p align="center"><FONT color="blue"><br>
<a onclick="index_search('', 'Look Up', '', '', '', 8 +16 )"><b>Look Up</b></a> |
<a onclick="index_search('', 'Look Up', '**', '', '', 8 +16 )"> with */?</b></a><br><br>
</font></p>
<mbp:pagebreak />
HTML_SRC
# while ( $line = <READFILE> and !eof(READFILE)){
while ( $line = <READFILE> ){
print "\b\b\b\b\b\b\b" ;
print $countup ;
$countup = $countup + 1 ;
$line .= <READFILE> while ($line =~ tr/"// % 2 and !eof(READFILE));
$line =~ s/\</</g;
$line =~ s/\>/>/g;
$line =~ s/<br>/\<br\>/g;
$line =~ s/(?:\x0D\x0A|[\x0D\x0A])?$/,/;
$line =~ s/\n\n/<br>/g;
$line =~ s/\n/<br>/g;
$line =~ s/\r//g;
@csv = map {/^"(.*)"$/s ? scalar($_ = $1, s/""/"/g, $_) : $_}
($line =~ /("[^"]*(?:""[^"]*)*"|[^,]*),/g);
$csv[0] =~ s/\"/"/g ;
$title = $csv[0] ;
$title =~ s/\\/\\\\/g ;
$title =~ s/'/\\'/g ;
print WRITFILE "<idx:entry><div border=\"1\" >" ;
print WRITFILE "<b><idx:orth style=\"bold\">" ;
print WRITFILE $csv[0] ;
print WRITFILE "</idx:orth></b></div>" ;
print WRITFILE $csv[1] ;
if ($csv[2] ne "") {
print WRITFILE "<hr>" ;
print WRITFILE $csv[2] ;
}
print WRITFILE "<hr></idx:entry><mbp:pagebreak>\n" ;
}
print WRITFILE "</BODY>\n" ;
print WRITFILE "</HTML>\n" ;
close ( READFILE ) ;
close ( WRITFILE ) ;
# EndOfScript
もび汁U(テスト版 UTF-8試験対応) †開発途中のもび汁です。 新オプション、使用言語選択 $lang $lang = "shift_jis" ; (shift_jis の場合はこれまでと同じ使い方です。辞書名日本語対応) もしくは $lang = "utf-8" ; (多言語辞書用) $lang = "utf-8" ;の場合、 このスクリプト自体も utf-8 で保存の事。 具体的には、WIN(2000 / XP ?)のメモ帳で [utf-8]で保存等。 (utf-8 で使う場合、辞書名等に日本語を使わないで下さい) 辞書データ.csvも utf-8 を前提にしています。 しかし? PDIC(Unicode)版の出力CSVは[Unicode-BOM]?のようです?? ファイルサイズの小さなものなら上記のようにメモ帳で開き[utf-8]で保存。 データの大きなものなら、"ucs2utf8" 等のテキストコンバータアプリを利用。 また、702NK で中国語、タイ語、韓国語、(その他)などを表示するには、 [多言語]/[Multilingual]のフォントを入れる必要あり。 自分で作るかWEBで検索してみてください。(Japan.gdr にリネームでテスト) csv2html4mbp2U.pl #!/usr/bin/perl
# csv2html4mbp2U.pl (perl script)
# 設定 (行頭の # はコメントアウト= 無効)
####ここから設定部分################################################
$lang = "shift_jis" ;
$dic_name = "My DIC" ;
open ( READFILE , "<mydic.csv" ) ;
open ( WRITEFILE , ">mydic.html" ) ;
####################################################################
$dic_name =~ s/[<>]//g ;
print WRITEFILE "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">" ;
print WRITEFILE "<HTML xmlns:idx = \"s\" xmlns:mbp = \"s\" xmlns:xlink = \"http://www.w3.org/1999/xlink\">" ;
print WRITEFILE "<?xml version=\"1.0\"?><HEAD><TITLE>$dic_name</TITLE>" ;
print WRITEFILE "<META http-equiv=Content-Type content=\"text/html; charset=$lang\"></HEAD>" ;
print WRITEFILE "<body topmargin=\"0\" bottommargin=\"0\" rightmargin=\"2\" leftmargin=\"2\">" ;
print WRITEFILE "<idx:entry>" ;
print WRITEFILE "<div bgcolor=\"#0835C4\" border=\"1\" align=\"center\">" ;
print WRITEFILE "<span color=\"white\">$dic_name</span></div>" ;
print WRITEFILE "<div bgcolor=\"#FA8072\" border=\"1\" align=\"center\"><b>" ;
print WRITEFILE " <idx:orth><idx:key>" ;
print WRITEFILE " .. TOP PAGE .." ;
print WRITEFILE "</idx:orth></idx:key><FONT color=\"blue\">[3]" ;
print WRITEFILE "</b></div><p align=\"center\">" ;
print WRITEFILE "<br><a onclick=\"index_search('','WORD','','','',24)\"><b>WORD</a> | " ;
print WRITEFILE "<a onclick=\"index_search('','WORD with */?','**','','',24)\"> */?</b></a>" ;
print WRITEFILE "</font></p>" ;
print WRITEFILE "</idx:entry>" ;
print WRITEFILE "<mbp:pagebreak/>" ;
while ( $line = <READFILE> ) {
$line .= <READFILE> while ($line =~ tr/"// % 2 and !eof(READFILE));
$line =~ s/(?:\x0D\x0A|[\x0D\x0A])?$/,/;
$line =~ s/\<→(.*?)>/\[→$1\]/g;
$line =~ s/\</</g;
$line =~ s/\>/>/g;
$line =~ s/\n\n/<br>/g;
$line =~ s/\n/<br>/g;
$line =~ s/\r//g;
$line =~ s/"/""/g;
@csv = map {/^"(.*)"$/s ? scalar($_ = $1, s/""/"/g, $_) : $_}
($line =~ /("[^"]*(?:""[^"]*)*"|[^,]*),/g);
$title = $csv[0] ;
$title =~ s/\\/\\\\/g ;
$title =~ s/'/\\'/g ;
$title =~ s/"/"/g ;
print WRITEFILE "<idx:entry><div border=\"1\">" ;
print WRITEFILE "<a onclick=\"index_search('','WORD')\">·</a><b>" ;
print WRITEFILE "<a onclick=\"index_search('','=','$title')\"><idx:orth style=\"bold\">" ;
print WRITEFILE "$csv[0]</idx:orth></a></b></div>$csv[1]" ;
if ($csv[2] ne "") {
print WRITEFILE "<hr>$csv[2]" ;
}
print WRITEFILE "<hr></idx:entry><mbp:pagebreak>" ;
}
print WRITEFILE "</BODY></HTML>\n" ;
close ( READFILE ) ;
close ( WRITEFILE ) ;
おまけスクリプト(CSV用・不具合に責任は持ちません) †f322csv.pl (.csvデータの用例を訳語に連結 field 3 to 2) †ファイル定義部分を自分で書き換えて使用 #!/usr/bin/perl
# f322csv.pl (用例を訳語に連結 field 3 to 2)
# ファイル定義
open ( READFILE , " <original.csv" ) ;
open ( WRITFILE , " >modified.csv" ) ;
# 進行表示用
$countup = 1 ;
print "processing now\n" ;
while ( $line = <READFILE> ){
print "\b\b\b\b\b\b\b" ;
print $countup ;
$countup = $countup + 1 ;
$line .= <READFILE> while ($line =~ tr/"// % 2 and !eof(READFILE));
$line =~ s/(?:\x0D\x0A|[\x0D\x0A])?$/,/;
@csv = map {/^"(.*)"$/s ? scalar($_ = $1, s/""/"/g, $_) : $_}
($line =~ /("[^"]*(?:""[^"]*)*"|[^,]*),/g);
$csv[0] =~ s/"/"/g ;
$csv[1] =~ s/"/"/g ;
$csv[2] =~ s/"/"/g ;
$csv[6] =~ s/"/"/g ;
print WRITFILE "\"" ;
print WRITFILE $csv[0] ;
print WRITFILE "\",\"" ;
print WRITFILE $csv[1] ;
if ( $csv[2] ne "") {
print WRITFILE "\n" ;
print WRITFILE $csv[2] ;
}
print WRITFILE "\",\"\"," ;
print WRITFILE $csv[3] ;
print WRITFILE "," ;
print WRITFILE $csv[4] ;
print WRITFILE "," ;
print WRITFILE $csv[5] ;
print WRITFILE ",\"" ;
print WRITFILE $csv[6] ;
print WRITFILE "\"\n" ;
}
# print WRITFILE "\n" ;
close ( READFILE ) ;
close ( WRITFILE ) ;
f223csv.pl (.csvデータの訳語を用例に連結 field 2 to 3) †ファイル定義部分を自分で書き換えて使用 #!/usr/bin/perl
# f223csv.pl (訳語を用例に連結 field 2 to 3)
# ファイル定義
open ( READFILE , " <original.csv" ) ;
open ( WRITFILE , " >modified.csv" ) ;
# 進行表示用
$countup = 1 ;
print "processing now\n" ;
while ( $line = <READFILE> ){
print "\b\b\b\b\b\b\b" ;
print $countup ;
$countup = $countup + 1 ;
$line .= <READFILE> while ($line =~ tr/"// % 2 and !eof(READFILE));
$line =~ s/(?:\x0D\x0A|[\x0D\x0A])?$/,/;
@csv = map {/^"(.*)"$/s ? scalar($_ = $1, s/""/"/g, $_) : $_}
($line =~ /("[^"]*(?:""[^"]*)*"|[^,]*),/g);
$csv[0] =~ s/"/"/g ;
$csv[1] =~ s/"/"/g ;
$csv[2] =~ s/"/"/g ;
$csv[6] =~ s/"/"/g ;
print WRITFILE "\"" ;
print WRITFILE $csv[0] ;
print WRITFILE "\",\"\",\"" ;
print WRITFILE $csv[1] ;
if ( $csv[2] ne "") {
print WRITFILE "\n" ;
print WRITFILE $csv[2] ;
}
print WRITFILE "\"," ;
print WRITFILE $csv[3] ;
print WRITFILE "," ;
print WRITFILE $csv[4] ;
print WRITFILE "," ;
print WRITFILE $csv[5] ;
print WRITFILE ",\"" ;
print WRITFILE $csv[6] ;
print WRITFILE "\"\n" ;
}
# print WRITFILE "\n" ;
close ( READFILE ) ;
close ( WRITFILE ) ;
yomikae.pl (PDEDICT用 和英.csvの[よみ]を行頭に修正) †ファイル定義部分を自分で書き換えて使用 #!/usr/bin/perl
# yomikae.pl (単語[よみ] -> よみ [単語])
# ファイル定義
open ( READFILE , " <original.csv" ) ;
open ( WRITFILE , " >modified.csv" ) ;
$line = <READFILE> ;
$line = <READFILE> ;
# 進行表示用
$countup = 1 ;
print "processing now\n" ;
while ( $line = <READFILE> ){
print "\b\b\b\b\b\b\b" ;
print $countup ;
$countup = $countup + 1 ;
$line .= <READFILE> while ($line =~ tr/"// % 2 and !eof(READFILE));
$line =~ s/(?:\x0D\x0A|[\x0D\x0A])?$/,/;
@csv = map {/^"(.*)"$/s ? scalar($_ = $1, s/""/"/g, $_) : $_}
($line =~ /("[^"]*(?:""[^"]*)*"|[^,]*),/g);
$csv[0] =~ s/"/"/g ;
$csv[1] =~ s/"/"/g ;
$csv[2] =~ s/"/"/g ;
$csv[6] =~ s/"/"/g ;
if ($csv[0] =~ /(.+)\s\[(.+)\]/ ) {
$csv[0] = "$2 \[$1\]" ;
}
print WRITFILE "\"" ;
print WRITFILE $csv[0] ;
print WRITFILE "\",\"" ;
print WRITFILE $csv[1] ;
print WRITFILE "\",\"" ;
print WRITFILE $csv[2] ;
print WRITFILE "\"" ;
print WRITFILE "\n" ;
}
close ( READFILE ) ;
close ( WRITFILE ) ;
英語発音記号辞書・試作 †多謝!http://www.kt.rim.or.jp/~s_aoki/english/ 「英語を学ぼう」->「テキスト/発音記号変換フォーム」 より 1. 発音記号画像アーカイブをDL 2. リンクよりThe CMU Pronouncing Dictionary をDL 3. 上記辞書データをを発音記号用.CSVデータに変換(下のスクリプト) 4. もび汁2(要・最新版)でHTMLを作る。 5. 発音記号画像(.gif)と「同じ」フォルダにHTMLを置き、PRC変換。 発音記号辞書変換スクリプト †cmu2csv.pl #!/usr/bin/perl
# cmu2csv.pl (perl script) 060401
# 設定 (# 以降はコメント= 無効)
####ここから設定部分################################################
# The CMU Pronouncing Dictionary
open ( READFILE , "<c06d" ) ;
open ( WRITEFILE , ">c06d.csv" ) ;
####################################################################
$countup = 1 ;
print "processing now\n" ;
while ( $line = <READFILE> ) {
print "\b\b\b\b\b\b\b" ;
print $countup ;
$countup = $countup + 1 ;
if (($line !~ /^##/) && ($line =~ /.+ .+/)){
$line =~ s/"/""/g ;
$line =~ s/^/"/ ;
$line =~ s/$/"/ ;
$line =~ s/ /"," / ;
$line =~ s/ / /g ;
$line =~ s/" /" /g ;
$line =~ s/"$/ "/g ;
$line =~ s/ EH0/ E0/g ;
$line =~ s/ EH1/ E1/g ;
$line =~ s/ EH2/ E2/g ;
$line =~ s/ IH0/ I0/g ;
$line =~ s/ IH1/ I1/g ;
$line =~ s/ IH2/ I2/g ;
$line =~ s/ HH/ H/g ;
$line =~ s/ Y/ J/g ;
$line =~ s/ (.+?) /<IMG SRC=""$1.GIF"">/g ;
print WRITEFILE $line ;
}
}
close ( READFILE ) ;
close ( WRITEFILE ) ;
もび汁郎 †都合により、その他のリンクを削除しました。by もび汁 † |