Skip to content

ユーザー辞書のインポート/エクスポートを追加#319

Draft
artin-kagun wants to merge 1 commit intoazooKey:mainfrom
artin-kagun:codex/user-dictionary-import-export-only
Draft

ユーザー辞書のインポート/エクスポートを追加#319
artin-kagun wants to merge 1 commit intoazooKey:mainfrom
artin-kagun:codex/user-dictionary-import-export-only

Conversation

@artin-kagun
Copy link
Copy Markdown

目的

ユーザー辞書設定に、既存の単一ユーザー辞書へファイルから読み込む / ファイルへ書き出すための導線を追加します。

#318 で一度まとめて提案していた変更のうち、このPRでは「ユーザー辞書のインポート / エクスポート」に範囲を絞っています。複数辞書管理、大規模辞書キャッシュ、候補欄へのコメント表示は含めていません。

変更内容

  • ユーザー辞書テキストを読み書きする UserDictionaryTextCodec を追加しました。
  • 設定画面のユーザー辞書に、読み込み形式の選択、読み込み、書き出しボタンを追加しました。
  • Google日本語入力形式のタブ区切り辞書を読み込み / 書き出しできるようにしました。
  • MS-IME / ATOK / ことえり形式も扱えるよう、形式ごとの分岐を UserDictionaryTextFormat として分けています。
  • UTF-8、UTF-8 BOM、UTF-16 BOM、Shift_JIS fallback のデコードを行います。
  • サンドボックス環境でもユーザーが選択した保存先へ書き出せるよう、com.apple.security.files.user-selected.read-write を追加しました。
  • Google日本語入力形式の読み込み、コメント付き行、UTF-16、書き出しについてテストを追加しました。

意図

まずは既存のユーザー辞書モデルを広げず、現在の Config.UserDictionary.Value.items に対して入出力だけを足す構成にしています。形式サポートの細部はこのPR内でレビューしやすいよう、変換ロジックをUIから分離しました。

検証

  • swift test --disable-sandbox --package-path Core --build-path /private/tmp/azookey-pr-import-export-build
    • 30 tests passed
  • git diff --check upstream/main
  • plutil -lint azooKeyMac/azooKeyMac.entitlements
  • xcrun swiftc -parse azooKeyMac/Windows/UserDictionaryEditorWindow.swift

@ensan-hcl
Copy link
Copy Markdown
Member

@artin-kagun 実装について確認させてください。各種IMEでユーザ辞書形式や品詞体系が違うと思いますが、そのあたりってどう吸収する設計になっていますか?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants