背景
iOSのCustom Keyboard Extensionでカスタムキーボードを作っている際に日本語入力を行いたくなりました。
しかし、なぜか日本語だけはぶられておりAPIがまともに整っていない状況であることに気づき、絶望しました。
そこで、自然言語処理の単位がCだった残念な自分が、漢字混じり文への変換はできなくてもせめてひらがな・カタカナへの変換くらいはしたいと奮起し、 今回紹介するクラスを作成するに至りました。
ソースコード
JapaneseというクラスファイルをGithubに載せてあります。
参照・利用ご自由にどうぞ。ただし、商用利用の際はREADME
を一読してほしいです。
用例
let jp = Japanese()
// ローマ字 -> ひらがな の時は getHiragana()
print(jp.getHiragana(roman: "axa^~kokorogapyonpyonsurunjaxa^~"))
// ローマ字 -> カタカナ の時は getKatakana()
print(jp.getKatakana(roman: "axa^~kokorogapyonpyonsurunjaxa^~"))
// ローマ字 -> 半角カタカナ の時は getHalfKatakana()
print(jp.getHalfKatakana(roman: "axa^~kokorogapyonpyonsurunjaxa^~"))
// 出力結果
// >> あぁ^~こころがぴょんぴょんするんじゃぁ^~
// >> アァ^~ココロガピョンピョンスルンジャァ^~
// >> アァ^~ココロガピョンピョンスルンジャァ^~
余談
ローマ字を日本語に変換する方法にCFStringTransform
とkCFStringTransformLatinHiragana
を用いる方法がありますが、これは完璧ではなかったです。"wye"で「ゑ」と変換できないし、子音続きの場合:例えば"wktksuru"のときは「うくてくする」になってしまいます。(ほんらいなら「wktkする」になってほしい。)