Q
CDロム版のクラウン仏和辞典をHDに収納して、DDwinでクリップボード検索をしています。ところが、firefoxでフランス語のサイトを見ていて、アクサンのついた単語をコピーし、DDwinに貼り付けると、たとえばe^treという具合に、アクサンが^や'`などに変換されてしまい、困ります。これは日本語のテクストにフランス語を貼り付ける場合などそれなりに便利とも言えますが、検索するときは困ります。ところがこれがIEだと、コピーして貼り付けるとアクサンが消えるので、問題は起きません。というわけで、日本語のサイトはfirefoxで、フランス語のサイトはIEで見るようにしているのですが、めんどうです。しかたないので全部IEにしようか、とも思うのですが、いまさらしゃくだということもあり、悩ましいです。firefoxの設定とか、プラグインで何かないのかと思ってちょっとさがしたのですがよくわかりませんでした......。というわけで、もしうまい方法をご存知だったら教えていただきたいな、と思って質問しました。(猿虎さんの質問)
A
こちらでもまったく同じ環境で利用してますが、確かにその通りですね。初めて気がつきました。
firefoxもIEも複数の形式で文字列をクリップボードにコピーしています。Unicodeテキスト形式のデータは両者とも元のラテン文字がそのまま格納されていて、OEMテキスト形式のデータは両者ともアクサンは無視して 'e' などのascii文字になります。通常のテキスト形式のデータのみ、両者で異なります。IEではOEMテキストと同様アクサンは無視されますが、firefoxは親切(お節介)にもアクサンを別文字として付加してしまうんですね。
DDWinがUnicode対応のアプリケーションだったら、IE、firefoxいずれの場合もUnicodeテキストが優先されて元のラテン文字がそのまま渡せるんですが、DDWinの扱うEPWING規約や電子ブックのデータはUnicode普及以前の規格で、実際クラウン仏和辞典でもラテン文字は外字として表現されているわけで、Unicode非対応なのも仕方がないところです。
どちらのせいでもないのにうまくいかないという、まるで(ちょっと歳の離れた)カップル間の相性問題のようです。
さて、余計な前置きはいい加減にして、回答に入ります。firefoxのエクステションを作るというのが正攻法ですが、今回は問題を解決するだけでなく、firefoxとDDWinのより便利な連携方法を提案したいと思います。つまり、firefoxでテキストを選択してbookmarkletをクリックすると、DDWinの検索エリアに選んだテキストが自動で入力されて検索も行なわれる、という操作を実現します。
まずbookmarkletを作成します。以下のリンクを右クリックしてブックマーク(はてなブックマークでなくブラウザのブックマークです)に登録してください。このbookmarkletをクリックすることにより "ddwin:選択されたテキスト" というURLを呼び出します。
次にDDWin起動用のスクリプトを作成します。たとえばファイル名を ddwin.jsなどとして、DDWinをインストールしたフォルダ等(どこでもかまいません)におけばいいでしょう。
var ddwin = 'c:/Program Files/DDWin/ddwin.exe';
var args = WScript.Arguments.Unnamed;
var word = unescape(args(0).split(':')[1]);
var shell = WScript.createObject('WScript.Shell');
shell.run('"' + ddwin + '" ,2,,,' + word);
先頭のddwinという変数には ddwin.exeのパスをフルパスで指定します。一番下は DDWin の起動引数の指定です。指定した辞書で検索されるようにDDWinのヘルプを参照して必要に応じて変更してください。
最後に ddwin というURLスキームを登録します。この登録を行なうことにより "ddwin:ほにゃらら" というURLが指定されたときにddwin.jsが起動されるようになります。
REGEDIT4
[HKEY_CLASSES_ROOT\ddwin]
@="URL:DDWin Evocation Protocol"
"URL Protocol"=""
[HKEY_CLASSES_ROOT\ddwin\shell]
[HKEY_CLASSES_ROOT\ddwin\shell\open]
[HKEY_CLASSES_ROOT\ddwin\shell\open\command]
@="wscript \"C:\\Program Files\\DDWin\\ddwin.js\" %1"
一番下には ddwin.jsをフルパスで指定します。このファイルを ".reg"という拡張子をつけて保存し、ダブルクリックします。「~内の情報をレジストリに追加しますか?」というダイアログが表示されるので「はい」を選んでください。登録が成功したらこのファイルを削除してかまいません。
以上で準備完了。firefoxでテキストを選択してさきほど作成した"ddwin"というbookmarkletをクリックしてみてください。
なお、この方法はfirefoxだけでなくIEでもそのまま使えます。
以下に参考にしたサイトを示します。

コメントする