iOS
Swift

Swift ローマ字の文字列をひらがな・カタカナに変換するクラス作った

背景

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^~"))

// 出力結果
// >> あぁ^~こころがぴょんぴょんするんじゃぁ^~
// >> アァ^~ココロガピョンピョンスルンジャァ^~
// >> アァ^~ココロガピョンピョンスルンジャァ^~

余談

ローマ字を日本語に変換する方法にCFStringTransformkCFStringTransformLatinHiraganaを用いる方法がありますが、これは完璧ではなかったです。"wye"で「ゑ」と変換できないし、子音続きの場合:例えば"wktksuru"のときは「うくてくする」になってしまいます。(ほんらいなら「wktkする」になってほしい。)