Skip to content

Commit

Permalink
Merge pull request #40 from ensan-hcl/update/readme
Browse files Browse the repository at this point in the history
[Docs] Update README for Version 0.6
  • Loading branch information
ensan-hcl authored Feb 20, 2024
2 parents 4577791 + 21ee628 commit 52a1715
Showing 1 changed file with 54 additions and 20 deletions.
74 changes: 54 additions & 20 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,41 +1,40 @@
# AzooKeyKanakanjiConverter
# AzooKeyKanaKanjiConverter

AzooKeyKanakanjiConverterは[azooKey](https://github.com/ensan-hcl/azooKey)のために開発したかな漢字変換エンジンです。数行のコードでかな漢字変換をiOS / macOSのアプリケーションに組み込むことができます。
AzooKeyKanaKanjiConverterは[azooKey](https://github.com/ensan-hcl/azooKey)のために開発したかな漢字変換エンジンです。数行のコードでかな漢字変換をiOS / macOS / visionOSのアプリケーションに組み込むことができます。

## 動作環境
iOS 14以降, macOS 11以降, visionOS 1以降, Ubuntu 22.04以降で動作を確認しています

## KanaKanjiConverterModule
かな漢字変換を受け持つモジュールです。

### セットアップ
* Xcodeprojの場合、XcodeでAdd Packageしてください。

* Swift Packageの場合、Package.swiftの`Package`の引数に`dependencies`以下の記述を追加してください。
```swift
dependencies: [
.package(url: "https://github.com/ensan-hcl/AzooKeyKanaKanjiConverter", .upToNextMinor(from: "0.4.0"))
.package(url: "https://github.com/ensan-hcl/AzooKeyKanaKanjiConverter", .upToNextMinor(from: "0.6.0"))
],
```
また、ターゲットの`dependencies`にも同様に追加してください。
```swift
.target(
name: "MyPackage",
dependencies: [
.product(name: "KanaKanjiConverterModule", package: "AzooKeyKanaKanjiConverter")
.product(name: "KanaKanjiConverterModuleWithDefaultDictionary", package: "AzooKeyKanaKanjiConverter")
],
),
```

* [Google DriveからazooKeyの辞書をダウンロード](https://drive.google.com/drive/folders/1Kh7fgMFIzkpg7YwP3GhWTxFkXI-yzT9E?usp=sharing)する必要があります。最新のバージョンのフォルダの中にある「Dictionary」というフォルダを右クリックし、フォルダごとダウンロードします。ついで、本モジュールを利用するアプリケーションのリソースとして配置してください。


> [!IMPORTANT]
> リソースを追加する際、Folder Referenceをコピーしてください。AzooKeyKanaKanjiConverterはフォルダ構造が存在することを前提に動作します。
> [!IMPORTANT]
> AzooKeyKanaKanjiConverterはバージョン1.0のリリースまで開発版として運用するため、マイナーバージョンの変更で破壊的変更を実施する可能性があります。バージョンを指定する際にはマイナーバージョンが上がらないよう、`.upToNextMinor(from: "0.4.0")`のように指定することを推奨します。
> AzooKeyKanaKanjiConverterはバージョン1.0のリリースまで開発版として運用するため、マイナーバージョンの変更で破壊的変更を実施する可能性があります。バージョンを指定する際にはマイナーバージョンが上がらないよう、`.upToNextMinor(from: "0.6.0")`のように指定することを推奨します。

### 使い方
```swift
import KanaKanjiConverterModule
// デフォルト辞書つきの変換モジュールをインポート
import KanaKanjiConverterModuleWithDefaultDictionary

// 変換器を初期化する
let converter = KanaKanjiConverter()
Expand All @@ -44,18 +43,18 @@ var c = ComposingText()
// 変換したい文章を追加する
c.insertAtCursorPosition("あずーきーはしんじだいのきーぼーどあぷりです", inputStyle: .direct)
// 変換のためのオプションを指定して、変換を要求
let results = converter.requestCandidates(c, options: ConvertRequestOptions(...))
let results = converter.requestCandidates(c, options: .withDefaultDictionary(...))
// 結果の一番目を表示
print(results.mainResults.first!.text) // azooKeyは新時代のキーボードアプリです
```
`ConvertRequestOptions`は、変換リクエストに必要な情報を指定します。詳しくはコードに書かれたドキュメントコメントを参照してください
`options: .withDefaultDictionary(...)`は、`ConvertRequestOptions`を生成し、変換リクエストに必要な情報を指定します。詳しくはコード内のドキュメントコメントを参照してください


### `ConvertRequestOptions`
`ConvertRequestOptions`は変換リクエストに必要な設定値です。例えば以下のように設定します。

```swift
let options = ConvertRequestOptions(
let options = ConvertRequestOptions.withDefaultDictionary(
// 日本語予測変換
requireJapanesePrediction: true,
// 英語予測変換
Expand All @@ -64,8 +63,6 @@ let options = ConvertRequestOptions(
keyboardLanguage: .ja_JP,
// 学習タイプ
learningType: .nothing,
// 辞書データのURL(先ほど追加した辞書リソースを指定)
dictionaryResourceURL: Bundle.main.bundleURL.appending(path: "Dictionary", directoryHint: .isDirectory),
// 学習データを保存するディレクトリのURL(書類フォルダを指定)
memoryDirectoryURL: .documentsDirectory,
// ユーザ辞書データのあるディレクトリのURL(書類フォルダを指定)
Expand All @@ -76,11 +73,10 @@ let options = ConvertRequestOptions(
```

### `ComposingText`
`ComposingText`は入力管理を行いつつ変換をリクエストするためのAPIです。詳しくは[ドキュメント](./Docs/composing_text.md)を参照してください。
`ComposingText`は入力管理を行いつつ変換をリクエストするためのAPIです。ローマ字入力などを適切にハンドルするために利用できます。詳しくは[ドキュメント](./Docs/composing_text.md)を参照してください。

### 辞書データ

上記のとおり、利用時は、ConvertRequestOptionsの`dictionaryResourceURL`に辞書データのディレクトリのURLを指定する必要があります。辞書データは[Google Drive](https://drive.google.com/drive/folders/1Kh7fgMFIzkpg7YwP3GhWTxFkXI-yzT9E?usp=sharing)からダウンロードすることができます。
AzooKeyKanaKanjiConverterのデフォルト辞書として[azooKey_dictionary_storage](https://github.com/ensan-hcl/azooKey_dictionary_storage)がサブモジュールとして指定されています。過去のバージョンの辞書データは[Google Drive](https://drive.google.com/drive/folders/1Kh7fgMFIzkpg7YwP3GhWTxFkXI-yzT9E?usp=sharing)からもダウンロードすることができます。

また、以下のフォーマットであれば自前で用意した辞書データを利用することもできます。カスタム辞書データのサポートは限定的なので、ソースコードを確認の上ご利用ください。

Expand All @@ -101,5 +97,43 @@ let options = ConvertRequestOptions(
- mm.binary
```

デフォルト以外の辞書データを利用する場合、ターゲットの`dependencies`に以下を追加してください。
```swift
.target(
name: "MyPackage",
dependencies: [
.product(name: "KanaKanjiConverterModule", package: "AzooKeyKanaKanjiConverter")
],
),
```

利用時に、辞書データのディレクトリを明示的に指定する必要があります。
```swift
// デフォルト辞書を含まない変換モジュールを指定
import KanaKanjiConverterModule

let options = ConvertRequestOptions(
// 日本語予測変換
requireJapanesePrediction: true,
// 英語予測変換
requireEnglishPrediction: false,
// 入力言語
keyboardLanguage: .ja_JP,
// 学習タイプ
learningType: .nothing,
// ここが必要
// 辞書データのURL(先ほど追加した辞書リソースを指定)
dictionaryResourceURL: Bundle.main.bundleURL.appending(path: "Dictionary", directoryHint: .isDirectory),
// 学習データを保存するディレクトリのURL(書類フォルダを指定)
memoryDirectoryURL: .documentsDirectory,
// ユーザ辞書データのあるディレクトリのURL(書類フォルダを指定)
sharedContainerURL: .documentsDirectory,
// メタデータ
metadata: .init(appVersionString: "Version X")
)
```

`dictionaryResourceURL`のオプションは`KanaKanjiConverterModuleWithDefaultDictionary`モジュールでも利用できますが、バンドルに含まれる辞書リソースが利用されないため、アプリケーションサイズが不必要に大きくなります。デフォルトでない辞書データを利用する場合は`KanaKanjiConverterModule`を利用してください。

## SwiftUtils
Swift一般に利用できるユーティリティのモジュールです。

0 comments on commit 52a1715

Please sign in to comment.