ペルシア文字の翻字方法の検討
計算機でアラビア文字を扱うのは正直いうとしんどい.文字が全体的に見にくいし,母音記号はハムゼは拡大しまくってやっと存在が見つかる.といったそんな印象.
見にくいと何が困るかって,目には見えてないけど,違う文字コードの系列になっていたら計算機には同じ文字として認識ができない.だから,潜在的なバグに発生させやすい環境だと言っても差し支えはないだろう.
さらにテキストエディタのほとんどはアラビア文字を扱うことができない.(そんな中,標準対応のVimはスゴい.でもVimでも見にくいことに変わりはない)
では,そんなくそ扱いづらいアラビア文字を扱うためには,「翻字」してしまえば良い.翻字とはローマ字なり,ラテン文字なり,つまり置き換えてしまうことだ.謎なことにすでにwikipediaで解説がされている(ペルシア語のラテン文字表記法 - Wikipedia)
いくつか調べてみたが,計算機には不適合な翻字方法が多い.
なぜかというと,例えばشがshと表す,とされていると,سがsで,هがhで翻字されているので,shはアラビア文字に戻す時,どっちに戻せば良いのかわからなくなってしまうからだ.(情報の不可逆)こういうのは音韻にしたがっているなら仕方がないことではある.
でもそんなこと言ってられないので,文字がアラビア文字とラテン文字で一対一対応ものを探すと.Desphilic式,Eronek式,そしてISO 233-3:1999が存在しているようだ.
ただ,Desphilic式,Eronek式はホームページを見ても,「良さそうだけど,なんだかなあ.個人が勝手に主張しているだけじゃないの...」というイメージ.
その点,ISO 233-3:1999は国際標準なので,利用者は多いはずだ.とりあえず,この翻字方法で試してみることにする.ISO 233-3:1999
既存のコードを探してみたが,見つからないので,とりあえず自分で実装かなあ.
ちなみにラテン文字の入力方法についてはMacでラテン文字の入力(キーボードショートカット) - WEB + PC
7/23追記
結局,ISO 233-3:1999も同じローマ字に重複してマップしてるから使えないことがわかった.仕方がないので,アラビア語の翻字してる野良コードを元に,自分でペルシア語の翻字を設計,一応実装まではこぎつけた.
Kensuke-Mitsuzawa/Python_viraster · GitHub
実装にあたってはなるべく発音記号も翻字するようにしたが,正直いうと邪魔(発音記号は書かないユーザーの方が多い.真面目に書くのは新聞とコーランくらい).
なので,この前の文字正規化の段階で発音記号は除去してしまうように検討してみる.
とりあえずローマ字化の一例..なんだかトルコ語みたいになってしまった笑.(でもトルコ語はアラビア文字を最初にローマ字したので,この感想は割と妥当だと言える)
````
استفاده از جنبش عدمتعهد برای جلوگیری از اعمال فشار قدرتهای زورگو
دیدارهای مقام معظم رهبری با سران کشورهای شرکتکننده در اجلاس تهران
دیدار رئیس مجلس الجزایر با رهبر انقلاب
دیدار رئیسجمهور سودان با رهبر معظم انقلاب
دیدار رئیسجمهور بنین و رئیس دورهای اتحادیه آفریقا با رهبر معظم انقلاب
تاکید رهبر معظم انقلاب بر وحدت کشورهای دوست
رهبر انقلاب: از ظرفیت جنبش عدمتعهد برای مقابله با تروریسم استفاده شود
açtfadh az jnbš 'dm_t'hd braÝ jlwgÝrÝ az a'mal fšar ŕdrt_haÝ zwrgw
dÝdarhaÝ mŕam m'ẓm rhbrÝ ba çran KšwrhaÝ šrKt_Knndh dr ajlaç thran
dÝdar r´Ýç mjlç aljzaÝr ba rhbr anŕlab
dÝdar r´Ýç_jmhwr çwdan ba rhbr m'ẓm anŕlab
dÝdar r´Ýç_jmhwr bnÝn w r´Ýç dwrh_aÝ atħadÝh āfrÝŕa ba rhbr m'ẓm anŕlab
taKÝd rhbr m'ẓm anŕlab br wħdt KšwrhaÝ dwçt
rhbr anŕlab: az ẓrfÝt jnbš 'dm_t'hd braÝ mŕablh ba trwrÝçm açtfadh šwd
````