PDIC/Unicode 開発メモ
英辞郎第11版発売中!
■Download
PDIC/Unicode Ver.5.14.18 試作版 2023/9/18
正式版はこちら
[PR] 全文インクリメンタルサーチソフト - PDICとは関係ありませんが、公開中。ソースコードの検索などに便利。英辞郎のような巨大テキストファイルをサクサク検索
■PDIC/Unicode 5.14予定
エラー時のレポート機能
これまではエラー発生時簡単なメッセージが出るだけでしたが、詳細なレポートを作成・送信する機能を追加してあります。(開発版のみ)
簡易HTMLの強化
- imgタグの対応 - ファイルリンク上の画像を表示可能に
対応形式は、png, jpg, gif, dib, bmp?
対応attribute: width/height
流し込み、表示位置などは対応しない?
- コピー時のtag削除
- マウスオーバー時のURL表示
- &#xに対応(©, ©) の完全対応
ポップアップ検索ウィンドウの強化 【一部を除き済】 バグがとれない限り正式版では対応しない予定
- Bookmark機能
Bookmarkした単語のハイライト表示
Bookmarkした単語の一覧表示、編集、ジャンプ、コメント編集、コピー【コピーのみ未】
Bookmarkした単語が辞書に登録されている場合:【未】
ポップアップ検索
暗記マーク(暗記必須モードの場合は使用不可)
登録語編集、辞書選択+編集、
Alt+↑↓キーで、前の/次のブックマークへ移動
- RTFファイルのbold/italic/underline/strikeout編集機能
- 前回開いたファイルのカーソル位置の保存・復元
- Viewer Modeによる閲覧・検索操作時の改善
- PSBookmark.txtをAndroid版PDICと共有できます
チェコ語の変化形への対応 【済】
こちらに試用版の辞書が公開されています。活用形の多いチェコ語ですが、ポップアップ検索などで多くの単語がヒットするようになっています。
Ver.5.12.x, 5.10.x: 正式版のチェコ語辞書のみ対応
Ver.5.14.x: 正式版および試作版のチェコ語辞書に対応
ロシア語の変化形への対応 【済】
ドイツ語の変化形への対応 【対応中】
- 【済】gelacht→lachenなどの変化形対応
- 【暫定】分離動詞の対応
- 【暫定】特殊文字入力の対応 - Ctrl+Spaceによる変換
ae<->a umlaut
oe<->o umlaut
ue<->u umlaut
ss<->eszett
ファイルリンク
- 【済】クリップボード上の画像を容易に登録
WORD欄に登録語を入力した状態でCtrl+Vをすると、クリップボードにある画像データを貼り付け
- テキスト形式のファイルリンク、file:xxxをポップアップ中、「このファイルを開く」メニューを追加
- 一覧表示中にfile:xxxを右クリックで「ファイルを開く」メニューを追加
- ファイルリンクしたファイルのthumbnail表示
ポップアップ検索の強化・改善
- 【済】make ~ a breeze など~を含んだ見出し語のヒット率を改善
- 【済】ハイフン結合単語でクリック位置による最適化
- 【済】Ctrl+Fに加えてAlt+→によるハイパーリンクのポップアップ表示
- 【暫定】ポップアップ画面を無変換キーで閉じる
検索機能の強化
- 蜜柑、ミカン、みかんがヒットするような全文検索機能
- インクリメンタルサーチの絞込検索オプションの追加
- Google検索でのヒット件数の表示
内蔵ブラウザによるHTMLインライン表示
- 完全サポートされたHTMLによる豊富な表現 if requested
辞書設定ファイル(PDI)の機能強化
辞書ファイルにURL、著作権情報などの埋め込み
辞書ファイルには拡張ヘッダー部があり、ここに任意の様々なデータを埋め込むことができるようになって
います。
ネット共有辞書の強化
- HTTP Client Libraryの変更、HTTP/2への対応(現在は最大4つのsessionしか作れないなどの制約がある)
- 【検討中】即時更新に対応 (現在は何も操作をしないときは3分に一度)
- 【検討中】マルチスレッド化
- 操作手順の簡略化 - 容易に利用できるものに
- 共有辞書参加時にPDIC登録方法をメール内容に記載
- ?単語が更新されたら通知する機能(本体、メール通知など)
- オブジェクトデータ対応
- ネット共有辞書をWeb上で公開、検索、編集(ネット共有辞書のWeb版)
単語テストの強化
- 検索履歴、単語帳のクラウド共有
- Webアプリや、Androidアプリで単語暗記テスト
- AIを活用した単語暗記テストの出題
その他
- 【済】辞書チェック後に引き続き最適化するオプション
- 【済】辞書変換後に引き続き辞書チェック・最適化を行うオプション
- 【済】辞書変換、辞書チェック、最適化を行うコマンドラインツールの提供 - 付属のpdtool.txtをご覧ください
- 【済】メイン画面におけるタブ履歴によるタブ切り替え Ctrl+Tab, Ctrl+Shift+Tab
- 【済】登録語編集の辞書選択時、Ctrl+↑↓による登録済み辞書への移動
- 【済】テキスト形式辞書を直接利用時:PDIC1行テキスト形式のファイルからの読み出し時、訳語と用例を区別して取り込むように仕様変更(訳語と用例は
/ による区切り)
- 【済】登録語編集、ポップアップ検索ウインドウの編集でテキストを非選択時、Ctrl+Bなどの文字装飾はカーソルのある単語を対象にする
- 【済】登録語編集で、Ctrl+Shift+Bによるbxタグの追加・削除
- 【済】登録語編集で、Ctrl+Shift+Xによるexタグの追加・削除
- 【済】辞書全体の圧縮形式の対応。編集しないReadOnlyの辞書の圧縮形式への対応。辞書のファイルサイズが半分程度になります。Android版でも対応済み。辞書を圧縮するには専用のツールが必要です。パスワード設定による保護も可能。下記メールまでお問い合わせください。
- ポップアップ検索ウインドウでGoogle翻訳
- 辞書をネットワーク上で共有したとき、同一見出し語を同時に登録したときの競合検出(従来は最後に登録したほうを優先)
- テキスト形式の辞書からインデックスだけを作成する機能 - テキスト形式の辞書を変換するまでの時間が短縮
- 設定の共有機能
- Visual Source Code(VSCode)からPDICで検索するための拡張機能
- 画像ファイルの簡易HTML表示
- ファイルリンクのthumbnail表示
- どこでも検索は押したキーではなく入力した文字で検索を行う
- 人工音声再生をMicrosoft Onlineで再生、言語選択できるように - 可能かどうか調査から
- 人工音声再生で言語を自動判定して発音する言語を自動選択できるように→難易度高そうなので実現しない?
- HTMLのinline表示
辞書配布形式(pdiファイル)作成のコマンドラインツールの提供→コマンドラインのオプションを覚えるだけで大変そうなので却下。とりあえず付属の pdtool.html に手動で作成する方法を記載しておきます。(ヘルプにも記載)
- 指定した辞書ごとに指定した強調表示を訳語にする
例:<b>...</b>や<font bgcolor="#FF0000">...</font>で囲む
基本はプリセットから、詳細なカスタマイズ可能
強調表示は作業フォルダにある辞書ファイル名に拡張子".hl"をつけたファイルに保存
- abc#001形式に対応したword linkへの対応
- メインウインドウ上で、Ctrl+ホイールスクロールでフォントサイズ変更
- 合字のポップアップ検索対応 - 対応したいけど、そのケースが非常に希なので仕様を決められず
- 辞書オープンのマルチスレッドによる高速化 - ディスクアクセスが支配的だと思うのでどれだけ高速になるのか。。(今後SSDが増えるからあまり意味はないかな。ただ、辞書が100個あると遅いのでそこに可能性はあるのか?)
- EPWINGを先頭に表示[仮対応] レジストリでCommonにEPWINGFirstを1に設定【一部済】
EPWINGの内容が訳語・用例のあとに表示されると不便な場合
- 不規則変化の原形単語の複数語対応(goodとwellなど) (IrregDic.txtにbetter -> good,well のような記述)
- バックグラウンドアップグレード機能
以下の理由から対応しないことにしました
- 悪意のある者によるターゲットになることはないため、緊急のアップデートが必要ない
- アップデートなどの判断は一旦HPに来てからのほうが様々な情報を得られるため、適切な判断をしやすい
- アップデート先のURLが変更になると案内が出ない・出せないため対応が難しくなる
バグの修正した最新のものを使用したい、というのはあると思いますが、正式版については十分テストされているものなので、小さな問題の修正がほとんどなので
重要な問題のときだけバージョンアップの通知をして欲しい、というのはあると思うので、そのためのオプションを考える必要があるかもしれません。
- ブラウザへの出力でOLEの画像を出力(ファイルリンクの画像も?) - 複数あった場合の対応を考えないといけないのでやや面倒
- ポップアップ検索結果をリスト形式で表示?
- migemoによる関連語検索→ローマ字を入力するだけでそれに関連した日本語の見出しが検索できる
- migemoによるローマ字インクリメンタルサーチ→関連語検索のインクリメンタルサーチみたいな感じ(インクリメンタルサーチの関連語検索モード)
- タブ区切り形式(TSV)の追加
- 簡易HTML編集を登録語編集画面ではなく、メイン画面の一覧表示で範囲選択→マウス右クリック→Bold/Italic/...で変更できるようにする
- テキストファイルの文字コード自動判別の強化
- サーバーからの辞書のダウンロード - インストール済みの日本語化
- ユーザーが登録しなくても、登録しようとした場合にユーザー辞書に勝手に登録するようにした方が良いのでは?
- 修正マークを自動的に設定する・しない(=修正マークはデフォルトでは機能しない、にしようか?)
- File - 辞書設定 - 3.ユーザー辞書の追加 を追加→単語登録時に登録可能辞書がないときに作成・追加する?
- 検索対象の単語のハイライト、履歴だけではなく、その単語の最も近い訳語を辞書の中の訳語をマーク、さらには検索語とマークされた訳語との一覧表を作れば単語帳が作れる
FAQ
- Web検索ウィンドウで「このページのスクリプトでエラーが発生しました」と出る場合がある
→ブラウザのエンジンがとても古いためそのようなメッセージが出る場合があります。そのようなHPの利用を避けていただくしか対処する方法は今のところありません。
■PDIC for Android
Android版情報はこちらへ
以下、検討課題
英語版のリリース
英語版はこちら
アラビア語など、右→左言語対応(自動ON/OFF)
Unicode
アラビア語フォント
Windows
でアラビア語
ポップアップ検索の改善
- ポップアップと同時に関連語検索オプション
- Popup&Link改善 (・.など)
- ポップアップ検索対象文字列処理のカスタマイズ - 実験的に導入してみる
- 日本語の混じった文章でのヒット率を向上 - さらに改善必要
- ヒット率の改善 - ハイパーリンク<→>への対応、省略文字の対応などなど
RichHistory
表示改善
- <→xxx>のインライン展開
- EPWINGは辞書の登録順で表示できるように(テキストに変換)
履歴情報の共有
→単純にファイルで共有する程度にとどめる
- 履歴情報をwebにアップしてランキング表示[optional]
- それにユーザー情報(TOEICレベル、専門分野など)を付加すれば、レベル別、分野別ランキングが出来て良い
が・・[optional]
その他
- テキストファイルと辞書の自動同期 - テキストファイルを編集すると自動的にその内容を辞書へ反映、その逆もあり
- 「辞書の初期化」で「辞書の新規作成」問題
- 自動検索・ポップアップ設定を整理・統合 - popupとmain
window選択式ではなく両方使用可能に
- WORD部の選択
- WORD部貼り付けで先頭スペース、2重スペースの削除
※Unicode
の正規化
- 現状、正規化を必要とするケースは非常に少ない
- 正規化を伴う検索は遅くなる
-
多くの場合無駄な処理となるためオプション扱いにする必要がある。ユーザーにはわかりにくいオプションであり、必要なオプションであるかどうかほとんどの人は判断できな
い。
- 検索時に正規化するのではなく辞書作成時に正規化すれば、検索も早くなる
ということで検索時にはUnicodeの正規化は不要、という結論です。
ただし、ポップアップ検索では対象となるテキストが必ずしも正規化されていないため、正規化したテキストでの検索などの工夫が必要ではないかと考えていま
す。
■技術情報
[TechInfo] 辞書の仕様書
むか〜しの辞書形式も一緒に記述していたため混沌としてきました。→Unicode専用に書き直してい
たのですが・・・誰か書き直してください。(笑)
→辞書の仕様ページ
[TechInfo] ファイル経由によるDDEコマンド
FirePop!とのプロセス間通信として使用されています。
詳細はこちらへ
.ndファイルの仕様 - ネット共有辞書用の作業ファイル
見出語部 - LastWordId (10桁の整数)
訳語部 - 登録用見出語
用例部 - status \t
新しい見出語
発音記号部 - LastId
単語レベル - コマンド番号
拡張ヘッダーに記録される内容
.tsファイルの仕様 (Web辞書検索機能用のタイムスタンプ辞書)
見出し語 - そのまま見出し語
訳語 - time()関数と同じ時刻系(GMT)の数値(文字列) - 2038年問題有り。その頃はPDICなんて無くなっているでしょう。。
nkf
文字コード判別&文字コード変換。
NKFをDLLで使用するつもりですが、本家(?)に
あるDLL wrapperは、かなり酷い作りになっているので作り直しました。
download nkfu-2.0.9.zip -
仮リリース・作成途中
C++Builder5がある場合は、nkfudll.bprを開いてbuild。
無ければ、nkfudll.cをメインファイルにして、必要なファイルをリンクしてできあがり。(要UNICODE define)
DLL consumerは、nkfu.h をincludeして利用してください。(nkf.hやnkf32.hではありません)
注意事項としては、APIが返してきたポインターを後生大事に保存してはいけません。
(今時そんなコード書く人はいないと思いますが)
DLLテストプログラム nkf-dlltest.zip
- これもまだ作成中
Web辞書検索
Web辞書検索・ダウンロード
Web辞書検索モジュールの開発方法
WinInetの制約
・同時に複数のスレッドからHTTP
requestを発行する場合はINTERNET_FLAG_RELOAD | INTERNET_FLAG_NO_CACHE_WRITE
が必要かもしれない。
・同時に同じサーバーへは2つの接続まで。INTERNET_OPTION_MAX_CONNS_PER_SERVER |
_MAX_CONNS_PER_1_0_SERVER
を使用する。
それよりもWinHTTPを使った方が良いだろう。→WinInet
to WInHttp porting
出
典 出典
WInInetとWinHttpは似ているが、ProxyはInternet
Explorerの設定を引き継がない、などの問題があり、簡単にはportingできなさそう。
RTL - アラビア語などの右→左言語
HTML
に関して
フリー素材
http://sozai.7gates.net/
■実現予定の機能概要
RichHistory
rich history+bookmark+word test+highlight
marking+browser
検索結果表示のブラウザーによる表示の可能性について
利点:
・ブラウザの持つ表現力を利用でき、それを生かした見やすい検索結果の表示ができる
・ブラウザが対応しているデータならどんなものでも表示可能
欠点:
・従来の単語単位の無限スクロールができなくなる(ページ単位のスクロール)
・基本的にマウス操作(キーボード処理を補完する仕組みが別途必要)
履歴情報の機能性向上 - rich history
ポップアップ検索した単語は忘れやすい。検索した単語を含む文の意味が理解できると、検索した単語はそ
の時点で忘れている。
そのために考えられる対策:履歴閲覧機能の拡充
- 履歴情報にdate,action情報を追加(タブ区切り形式)
- 辞書にない単語はgray表示
- 辞書にない単語のみを選択
履歴情報の共有機能
普段は自分のPCでPDICを使ってwebサイトやWordドキュメントや色んな文書を検索して読む。
PDICでマークした暗記必須単語や、検索履歴を学習サイトに情報をアップ。
それを元にした単語テストや、関連するテストをwebサイトで実施。PDICでやるよりずっとユーザーフレンドリーで学習が出来る。
webサイト側では学習に使っている単語をキーワードにして広告を出すなり、何か面白い情報を出せば楽しく学習が出来る。
要件
・辞書情報の共有はグループ単位で設定。グループには自由参加、承認必要など設定が可能
・登録された情報は登録ユーザーであれば自由にweb上で閲覧可能
・その人専用の辞書共有アカウントも可能
・1つの共有辞書ファイルで複数のサーバーと共有
利点:
・リアルタイムで他人と履歴を共有できる(何のため?)
・・・あまり利点が無さそうなので却下
現在のステータス:
散在している自分の検索履歴を一つにまとめられるのはいいと思う。が、必ずしもそれが必要だとは思わない。
他人と履歴を共有、というのもある程度条件がないとあまり意味がないだろう。(昔のブックマーク公開が流行ったのと同じで最初だけ)
ということで、保留気味。
「検索ランキングに参加しますか?」でOKした人は履歴内容をサーバーにアップ。ランキング見たって何も面白くな
い。。
それより、それぞれの検索語に対してどういうWebサイトで検索したとか、検索に付随する情報のほうが面白いけど、それは難しいな。。
検索履歴はとても有益な情報なのに、有効に利用する方法が見つからない。。(現状単語テストだけ)
辞書設定ファイルの仕様改善
同一辞書グループにインストールできるように
・UpgradeKeyはカンマ区切りで複数保存可能
・インストール先を各辞書設定ファイルごとに選べる(そうしないと危険)
・万が一pdsetup.iniがすでにあった場合→UpgradeKeyをみて確認→異なる場合変更せよmsg
次の理由から却下
・辞書グループ共通の設定で不一致が発生し、混乱を与えやすい。(フォント設定、言語プロセッサID不一致などなど)
・現状のレジストリ構成では対応でき無さそう。
・PDIが普及して使われ方によって対応を考えることにする
言語プロセッサ
現状のPDICでは英語に特化した作りになっていますが、この仕組みにより様々な言語の検索が適切に、
便利に行えるようになります。
→言語プロセッサ(別ページを用意)
辞書編集Undo機能
辞書ファイル名+.undo というファイルを作成。
PDIC上で行った一連の編集作業(ネット共有辞書からの更新も含む)を保存し、過去へ戻れる。
万が一辞書破壊が発生しても、履歴に残っている情報なら戻せる。
履歴を閲覧し、特定の単語だけ過去に戻せる。
連絡先: