HRローマ字を古ハングルに変換する(New GulimフォントなどHanYang系PUAコード用)

左のテキストエリアにhr式のローマ字ハングルを記入して、「O.K.」ボタンを押す。




OPTIONS
ローマ字区切り記号
英文の開始
英文の終了
単独字母のprefix

HRとは、ハングルのローマ字表記の一種であり、 パソコン通信のNiftyServe上の プライベート・フォーラム AGORA 内の、会議室「アタゴオルのハングル工房」で開発されたものです。 詳しくは、ホームページ "オルカランドのハングル工房"
http://www.orcaland.gr.jp/han-lab/
を参考にしてください。
または、木村幹さんのホームページ
http://www.geocities.jp/korean_politics/kanhome.htm
の中に「HRのドキュメントファイル」hrman.txtが転載されたページ
http://www.geocities.jp/korean_politics/hrdoc.htm
があります。

HRのデフォルトの約束事は次の通り。

ローマ字の区切り記号は省略できません。

"HTMLのタグを読みとばす。"をチェックすると、 タグは変換せずに、そのまま出力します。

古ハングルについて

Hanyang Pua Table Project
http://faq.ktug.or.kr/faq/HanyangPuaTableProject
というサイト(プロジェクト)で New Gulimフォントなどの古ハングルを 字母(UnicodeのHANGUL JAMOブロック内の文字)に 分解するテーブルが公開されています。
そのサイトでは、New Gulimフォント内の古ハングルを 「한양 PUA 옛한글」 と呼ばれています。 つまり、HanYang社製のフォントで、 PUA(私用領域)に古ハングルを割り振ったもの全体を 指すようです。

そこで、私のJavaScriptでは、 そこで入手できる対応テーブルを利用して、 HR式ローマ字の古ハングルを、New Gulimフォントの古ハングルに 変換する機能を付けました。

古ハングルのHR表現について

HRのマニュアルに出来るだけ従ったつもりです。 ただし、いくつかの例外があります。

1.マニュアル中の
> (1-2) 複合子音の構成要素
> 初声の prefixに使うもの4種 *_p *_s *_ps *_sp
> 終声の suffixに使うもの3種 *k_ *p_ *s_
の部分が、よくわからなかったので、 この部分は考慮していません。

2.いくつかの古ハングルのHR式ローマ字が不明だったので、 勝手に割り振りました。

尚、New Gulimフォントでは、 完成型古ハングルが存在しない場合、 字母を組み合わせて表示できます。
この時、初声が空欄の文字は、 どの文字列に対応していいのか良くわからりませんでした。 そこで、初声として全角空白を対応させています。 これが正しい処理なのかどうか、よくわかりません。 (多分、間違った処理だと思います。)

私がプログラミング上でミスをしているため、 予想どおりの変換結果が得られない可能性は十分にあります。

Unicodeの古ハングルについての注意1
Unicodeでは「HANGUL JAMO」ブロック内に ハングル字母(古ハングル含む)が収録されています。 字母コードを並べて一つのハングル文字を表現する、という方式のため、 フォントに合成(および置換)の情報が定義されていて、 かつアプリケーション(もしくはOS)の側でフォント内の情報を 十分に活用するための技術が導入されている必要があります。 だから、現実問題として、Windowsの世界ではあまり使われていないと思います。
そのかわりに、New Gulimフォントのように 私用領域に完成型の古ハングルを塔載したフォントが 広く使われているようです。 この場合、フォント独自のコードである、という 不安感が残ります。

Unicodeの古ハングルについての注意2
Unicodeには古ハングルの声調記号 (U+302E HANGUL SINGLE DOT TONE MARK と U+302F HANGUL DOUBLE DOT TONE MARK の2つ) があります。 ちなみに、 http://chem.skku.ac.kr/~wkpark/project/font/GSUB/UnbatangOdal/ にあるUnBatangフォントを使うと、「HANGUL JAMO」ブロック内の 初声+中声+終声に続けてこのTONE MARKを書くと、 TONE MARKは文字の左側に合成されるようです。 (UnBatangフォントは、使っているソフトによって、 合成表示(または置換表示)が異なります。)
HRローマ字ではこれらを使っていないようなので、 TONE MARKに対しての変換は何もしません。
例えば、 DOUBLE DOT TONE MARKの方はU+003A の COLON「:」(ASCIIコード内にある)を、 SINGLE DOT TONE MARKの方はU+00B7 の MIDDLE DOT「·」(Latin-1の中にある)を、 使う人もいるようです。(この場合、TONE MARK の後にハングルを書く)

2004年12月作成