AzooKeyKanaKanjiConverter 是为 azooKey 开发的假名汉字转换引擎。 通过几行代码,就可以将假名汉字转换功能嵌入到 iOS / macOS / visionOS 应用程序中。
此外,AzooKeyKanaKanjiConverter 还支持使用神经假名汉字转换系统“Zenzai”进行高精度转换。
已确认在 iOS 14 及更高版本、macOS 11 及更高版本、visionOS 1 及更高版本、Ubuntu 22.04 及更高版本上可以运行。
关于 AzooKeyKanaKanjiConverter 的开发,请参阅开发指南。
负责假名汉字转换的模块。
如果是 Xcodeproj,请在 Xcode 中 Add Package。
如果是 Swift Package,请在 Package.swift 的 Package
参数中添加以下 dependencies
描述。
dependencies: [
.package(url: "https://github.com/ensan-hcl/AzooKeyKanaKanjiConverter", .upToNextMinor(from: "0.8.0"))
],
此外,也要在目标的 dependencies
中同样添加。
.target(
name: "MyPackage",
dependencies: [
.product(name: "KanaKanjiConverterModuleWithDefaultDictionary", package: "AzooKeyKanaKanjiConverter")
],
),
重要提示
AzooKeyKanaKanjiConverter 在 1.0 版本发布前作为开发版运行,因此可能会在次要版本的更改中进行破坏性更改。 建议在指定版本时,为了避免次要版本升级,像 .upToNextMinor(from: "0.8.0")
这样指定。
// デフォルト辞書つきの変換モジュールをインポート
import KanaKanjiConverterModuleWithDefaultDictionary
// 変換器を初期化する
let converter = KanaKanjiConverter()
// 入力を初期化する
var c = ComposingText()
// 変換したい文章を追加する
c.insertAtCursorPosition("あずーきーはしんじだいのきーぼーどあぷりです", inputStyle: .direct)
// 変換のためのオプションを指定して、変換を要求
let results = converter.requestCandidates(c, options: .withDefaultDictionary(...))
// 結果の一番目を表示
print(results.mainResults.first!.text) // azooKeyは新時代のキーボードアプリです
options: .withDefaultDictionary(...)
用于生成 ConvertRequestOptions
,并指定转换请求所需的信息。 详细信息请参阅代码中的文档注释。
ConvertRequestOptions
是转换请求所需的设置值。 例如,可以像下面这样设置。
let options = ConvertRequestOptions.withDefaultDictionary(
// 日本語予測変換
requireJapanesePrediction: true,
// 英語予測変換
requireEnglishPrediction: false,
// 入力言語
keyboardLanguage: .ja_JP,
// 学習タイプ
learningType: .nothing,
// 学習データを保存するディレクトリのURL(書類フォルダを指定)
memoryDirectoryURL: .documentsDirectory,
// ユーザ辞書データのあるディレクトリのURL(書類フォルダを指定)
sharedContainerURL: .documentsDirectory,
// メタデータ
metadata: .init(versionString: "You App Version X")
)
ComposingText
是用于管理输入并请求转换的 API。 可以使用它来适当地处理罗马字输入等。 详细信息请参阅文档。
要使用神经假名汉字转换系统“Zenzai”,请指定 ConvertRequestOptions
的 zenzaiMode
。 详细信息请参阅文档。
let options = ConvertRequestOptions.withDefaultDictionary(
// ...
zenzaiMode: .on(weight: url, inferenceLimit: 10)
// ...
)
AzooKeyKanaKanjiConverter 的默认词典 azooKey_dictionary_storage 以子模块的形式指定。 过去版本的词典数据也可以从Google Drive 下载。
此外,如果格式如下,也可以使用自己准备的词典数据。 由于对自定义词典数据的支持有限,请在确认源代码后使用。
- Dictionary/
- louds/
- charId.chid
- X.louds
- X.loudschars2
- X.loudstxt3
- ...
- p/
- X.csv
- cb/
- 0.binary
- 1.binary
- ...
- mm.binary
如果使用非默认的词典数据,请在目标的 dependencies
中添加以下内容。
.target(
name: "MyPackage",
dependencies: [
.product(name: "KanaKanjiConverterModule", package: "AzooKeyKanaKanjiConverter")
],
),
使用时,需要明确指定词典数据的目录。
// デフォルト辞書を含まない変換モジュールを指定
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(versionString: "You App Version X")
)
dictionaryResourceURL
选项也可以在 KanaKanjiConverterModuleWithDefaultDictionary
模块中使用,但由于不会使用捆绑包中包含的词典资源,因此应用程序大小会不必要地增大。 如果使用非默认的词典数据,请使用 KanaKanjiConverterModule
。
Swift 通常可以使用的实用程序模块。