三途の川おさかなのブログ

だらだらしている

iTunesふりかけの読みがなを振る機能のしくみ

掲示板でタレコミのあったiTunesふりかけの不具合を修正した。
「~」に対して「から」という読みが振られてしまうというもの。
最初、自分の環境では再現できなくて困惑した。
iTunesふりかけの読みを振る機能はMicrosoft IMEに丸投げしている。

他所様から拝借したMicrosoft IMEから読みを取得するクラス(C#):
github.com

読みの振り方は、Microsoft IMEの学習内容によって変わってくる。
文字入力の際にMicrosoft IMEを使って「から」を使って「~」を入力するという手順を踏んでから、iTunesふりかけで読みを振ると問題の再現ができた。

https://user-images.githubusercontent.com/3584939/161358129-7dd158d6-372e-47a8-9dfc-3e7f2ac9952f.png

再現が出来ればこちらのものだ。
文字列のうち、読みを振りたいのは漢字だけ。でも読みを判別するにはそれにくっついてるひらがな、カタカナも必要そうだ。そこで「漢字、ひらがな、カタカナ」と「それ以外」に分けて読みを振ることにした。
曲名が「分かったぞ~これが答えだ!」だとすると

  1. 分かったぞ
  2. これが答えだ

の4つに分解し、1と3は読みに変換。2と4はいじらない。最後に4つを結合する。
でも、漢字、ひらがな、カタカナの判別が意外とややこしい。漢字にはサロゲートペアというchar型2文字で表現するやつもいたりする。
下記のページが参考になった。参考になったというかほぼそのまま拝借させていただいた。

文字がひらがなか、カタカナか、漢字か、英数字か調べる - .NET Tips (VB.NET,C#...)

とても助かった。

修正コミット:
github.com

朝: オートミールがゆ
昼: ひよこ豆のカレー
晩: ローストビーフ、フライドポテト
体重: 58.6kg