KanaConverterとTransliteralConverter

昨年は、International Pack ということで、東アジア圏の地域向けの機能を追加させていだくベータを出すことに成功したのですが、そのなかから「仮名」の変換をする機能のKanaConverterと、その基礎になっている状態機械を使ったTransliteralConverterに関して、この場を借りてご紹介をさせたいただこうと思います。

これらを作成に至った経緯には、私どものblogにも幾度か投稿させていただいた、「仮名文字」という日本語の基礎的な要素の処理を使って、日本語や日本文化に親和性の高い機能ができるのではないだろうかという考えがございました。私どもは国際化の仕事に携わる関係から、英語文化圏との比較をよく行うことがありますが、その中で、英数字表記をコミュニケーションの中心とした文化と、日本語のように多くの文字種の表記を扱う文化の間では、やはり使い勝手や操作性などに差があります。

.NET Framework は、英語文化圏や他のアジア、ヨーロッパ、中東文化圏に対応するシナリオと日本でのソフトウェアの使用シナリオの整合性を取った上で、それぞれの文化圏のシナリオに対応可能なよう設計をさせていただいていますが、その過程で特定の文化圏にのみに依存した機能の追加が困難となる場合もあります。その結果として、日本向けのアプリケーションをお作りいただく過程で作りこみの作業が発生し、追加のご負担をおかけしている点を少しでも改善できれば良いのではと考えておりました。

また、私たちの日常的なシナリオを考えますと、IMEによる仮名漢字変換やUnicodeなどによって多くの種類の文字が入出力可能になっているとともに、読み仮名や索引などで「ひらがな」や「カタカナ」を扱う局面も多くあります。そこで、新規、既存を問わず「仮名」のデータを活用する場面に何かお役にたてていただけるものを作りたいと思い、仮名文字を処理する機能を作成いたしました。

KanaConverter クラスには、既存の関数のような、簡単に文字列を変換する静的メソッドをUnicodeの仮名文字に合わせて集めてみました。また、限定的な用途だけではなく、複雑な要求にもお応えできるように、状態機械と構成ファイルを使ったTransliteralConverterを仕組みとしてご用意させていただいております。こちらは処理の遷移過程でのイベントの発生や、変換の割り当てを構成ファイルによって変更が可能になっています。用途は限定はしていませんが、仮名やローマ字を使った対話型のUI、日本語が表示できても英数字しか入力できないような海外の端末での補助的な入力手段、特殊な仮名文字の正規化などにお使いいただけるのではないかと考えております。

日本語を扱っても生産性が高く、さらに機能的なアプリケーションの作成にお使いいただければ幸いと考えております。また、お使いいただいたご感想やご要望などをMSDN フォーラム、もしくはこちらの投稿へのトラックバックにて、お聞かせいただき、将来に向けての、機能の向上、改善にご協力いただければと存じます。

長くなってしまいましたが、今回は、International Packの中のKanaConvertersとTransliteralConverterを作った経緯を紹介させていただきました。付属のドキュメントには簡単なサンプル コードを掲載させていただきましたが、もし機会がありましたら、近いうちに簡単な使用方法の説明をさせていただければと思います。