[aquaskk-dev 35] dictionary-renovation 2.0 リリース

Zurück zum Archiv-Index

Tomotaka SUWA t-suw****@users*****
2006年 2月 25日 (土) 17:56:30 JST


諏訪です。

AquaSKK BETA dictionary-renovation 2.0 をリリースしました。

▽追加・改善された機能
・複数辞書をサポート

▽不具合修正
・Panther の言語環境でアイコンが正しく表示されない不具合を修正

■ ファイル名の変更について

直感的にわかりやすくなるように、以下のファイル名を変更しました。

BS.mm                                   → main.m
DMDictionary.*                          → KotoeriDictionary.*
Foundation.*                            → AquaSKKServer.*
SKKServer.*                             → DictionarySet.*
Skkserv.*                               → skkserv.*

■ 複数辞書の対応について

~/Library/AquaSKK/DictionarySet.plist に複数辞書の設定を保存します。

当初はユーザーデフォルトに保存するつもりだったのですが、Panther でテス
トしてみたところ問題がありました。

モデルオブジェクトの追加や削除を行なうと、NSArrayController の content
が Immutable になってしまう、というものです。

そもそも NSUserDefaults は Immutable なオジェクトしか返さないので、
NSArrayController 側で Mutable なオジェクトに変換してあげる必要があっ
たようです。

そこで素直に、NSArrayController の content を plist で保存するようにし
ました。

■ ユーザーデフォルトについて

全面的に Cocoa Bindings を使うようにしました。また、出荷時デフォルトを
UserDefaults.plist から読み込むようにしました。

Cocoa Bindings ではキー名に '.' や '-' を使うことができないため、以下の
ようにキーを変更しています。

dic.FontName.Window                     → candidates_font_name
dic.FontSize.Window                     → candidates_font_size
dic.WindowAlpha.kotoeri                 → candidates_window_alpha
dic.WindowColor.kotoeri                 → candidates_window_color
dic.skk-egg-like-newline.kotoeri        → egg_like_newline
ForceASCIImodeStartup                   → force_ascii_mode_startup
KeyboardLayoutIdentifier                → keyboard_layout_id
dic.NumericKeypad_HalfWidth.kotoeri     → numkeypad_use_halfwidth
pref.skkserv.enabled                    → skkserv_enabled
pref.skkserv.local-only                 → skkserv_localonly
pref.skkserv.port                       → skkserv_port

また、辞書関連の以下のキーを廃止しました。

dic.path.sub
dic.path.main
dic.path.kotoeri

CFBundleIdentifier は jp.sourceforge.AquaSKKServer に変更しました。

■ インストーラについて

今回から、ユーザーデフォルトと複数辞書の移行をサポートしています。主な
挙動は以下の通りです。

1. jp.sourceforge.AquaSKKServer.plist が存在しない場合

   1) org.ccm-software.AquaSKKServer.plist をコピーする
   2) キー名を変更する

2. DictionarySet.plist が存在しない場合

   1) org.ccm-software.AquaSKKServer から以下の値を取得する

      dic.path.sub(デフォルト:~/.skk-jisyo)
      dic.path.main(デフォルト:~/Library/AquaSKK/SKK-JISYO.L)
      dic.path.kotoeri

   2) DictionarySet.plist に 1) で取得した値を埋め込む

詳しくは、AquaSKK/Package/scripts/postflight をご覧下さい。

なお、辞書のパスに ASCII 以外の文字が含まれている場合、文字化けが発生し
ます。移行のショックを和らげようとしたのですが、ここだけはどうにもなり
ませんでした。

                                - * -

以上です。よろしくお願いします。

-- Tomotaka SUWA



aquaskk-dev メーリングリストの案内
Zurück zum Archiv-Index