[サンスクリットページ雑感集・技術情報]

ローマ字→タイ文字変換(パーリ語)

Since 2005/12/4 Last Updated 2007/4/14


注意:このページはWindows XP/2000で、OSをアジア系結合文字に対応させていないと、タイ文字部分を正常に見ることができません。以下に述べる方法で環境を整えてください。
このページで紹介するユーティリティは、このページを正常に見ることのできる環境でなければ使用することができません(動作はするかもしれませんが結果を見ることができません)。

以下ご紹介するのは、ご自分のパソコンにインストールして使うユーティリティ・プログラムです。インストールは面倒くさいという人のために、CGI版も用意しました。CGI版ではプログラムをインストールせずにすぐにこのページ上でローマ字→タイ文字変換を行います。
CGI版へGO!

  1. 概要
    1. ローマ字で書かれたパーリ語文を、タイ文字に変換します(あくまでパーリ語です。タイ語独自の音には対応していません)。
    2. プログラムはPerlで書かれており、処理が高速です。一応Windowsでしか動作確認をしていないのでWindows用ということにしておきますが、特殊なことはやっていないので、Perlさえ動作するならばOSに依存しないはずです(もっとも、使用するフォントがWindows専用ではありますが)。
    3. 入力は通常のテキストファイルです。{と}で囲まれた部分をパーリ語文とみなして対文字に変換します。それ以外の部分はそのまま出力しますが、日本語コードはシフトJISコードで書かれていることを前提にしています。
    4. 出力はHTMLファイルです。MS-IEなどのブラウザで閲覧し、そこから必要に応じて他のアプリケーション(Wordなど)にコピー&ペーストしてください。
    5. プログラムをインストールするのは面倒という人のためにCGI版も用意しました(このページの一番下)。



  2. 環境設定
    1. まず、あなたのWindows XP/2000を、アジア系結合文字に対応させる必要があります。
      ここでは、Windows XPの例で説明します。2000の場合はメニュー項目の読み替えが必要になるかもしれません。
      コントロールパネルの「地域と言語のオプション」で、「言語」タブをクリックしてください。そして「補足言語のサポート」のところ、「複合文字や右から左方向に書く言語(タイ語を含む)のファイルをインストールする」のところを見てください。印がついていますか? もし印がついていなければ、忘れずに印をつけてください。



  3. インストールと実行
    1. 以下の「インストールと実行」は、ご自分のパソコンにプログラムをインストールして使うためのものです。面倒くさそうだと思ったら、CGI版を使ってください(このページの一番下)。
    2. まず、Perlを持っていない人は、どこからか入手してインストールしておいてください。とりあえずはvector (Windows版)が手ごろでしょうか。Perl自体は日本語対応していなくてもかまいません。
    3. プログラムは本体とデータ定義ファイルに分かれています。 このうち上の2つを同じフォルダ(ディレクトリ)にダウンロード(リンクを右クリック→「対象をファイルに保存」)してください。なお、最後のサンプルファイルをダウンロードする場合は inp.txt という名に変更してください。
    4. 入力ファイルはinp.txt、出力ファイルはout.htmです。変更することもできますが、できる限りこのままの設定でお使いください。変更する場合は後述の起動オプションで変更します。
    5. 入力ファイルができあがったら、tpl2uni.pl をダブルクリックします。一瞬黒いDOS窓の画面が出てすぐ消えます。そしたらもうout.htmができあがっています。



  4. 入力ファイルの書式
    1. 入力ファイルの{と}で囲まれた部分をパーリ語文とみなしてタイ文字に変換します。それ以外の部分はそのまま出力します。シフトJISコードで書かれていることを前提にしているので、2バイト目が{ないし}である漢字コードを用いても正常に動作します。他の漢字コード(EUC-JPなど)を用いてもそのまま出力されるので大丈夫のはずです。
    2. 処理は行ごとにおこなっているので、{と}の間に改行を入れてはいけません。{があるのに}がない行は、行末に}があるものとして処理します。
    3. {と}で囲まれた部分以外はそのまま出力しているので、書式の制御などをする場合はHTMLのタグを用いてください。たとえば改行をさせたいなら、<br>と書きます。
    4. {そのもの、}そのものを出力したい場合はそれぞれ{{、}}のように書きます。
    5. HTMLの最初(<html>から<body>まで)と最後のタグ(</body>から</html>まで)はプログラムが出力するので書かないでください。要するに文書の内容だけを書いてください。ただし、後述の -r スイッチを指定して起動した場合は、最初と最後のタグを出力しません。
    6. ローマ字はKH法に基づいています。以下のものを用いてください。
      タイ文字 อา อิ อี อุ อู เอ โอ
      当サイトローマ字
      入力ローマ字 a A i I u U e o
      タイ文字  
      当サイトローマ字  
      入力ローマ字 k kh g gh G  
      タイ文字  
      当サイトローマ字  
      入力ローマ字 c ch j jh J  
      タイ文字  
      当サイトローマ字  
      入力ローマ字 T Th D D3h N  
      タイ文字  
      当サイトローマ字  
      入力ローマ字 t th d dh n  
      タイ文字  
      当サイトローマ字  
      入力ローマ字 p ph b bh m  
      タイ文字  
      当サイトローマ字  
      入力ローマ字 y r l v s  
      タイ文字 อํ      
      当サイトローマ字      
      入力ローマ字 h L M , .  
      タイ文字  
      当サイトローマ字  
      入力ローマ字 0 1 2 3 4  
      タイ文字  
      当サイトローマ字  
      入力ローマ字 5 6 7 8 9  
    7. ヴィラーマは自動出力します。
    8. その他
      • 上記の表は本来のKH法のみですが、まんどぅーかネット独自のローマ字転写法にも対応させるため、次のような拡張をしています。これらの拡張が気に入らない場合は、データ定義ファイルtp_mu.txtの該当箇所(68行目のaaで始まる行以後)を削除してください。
        • aa、ii、uu……A、I、Uと同様にを表す。
        • n1、n2、n3……G、J、Nと同様にを表す。
        • t3、t3h、d3、d3h……T、Th、D、Dhと同様にを表す。
        • _(下線)……スペースを出力。なお、単にスペースを書いてもスペースを出力することは可能です。
        { }内に上記に定義されていない文字や記号類を書いた場合は、そのまま出力します。



  5. 起動オプション
    起動時にオプションを指定することができます。その際の起動法は次のとおりです。
    perl tpl2uni.pl 入力ファイル 出力ファイル データ定義ファイル スイッチ
    オプションを省略した場合は以下に説明する規定値が用いられます。途中のオプションを省略することはできません。たとえば、3番目のオプションを指定する場合は、1番目と2番目のオプションも必ず指定しなければなりません。
    また、ファイル名に関するオプションについて、たとえファイル名が同じでフォルダ(ディレクトリ)名だけを変更したい場合も、必ずファイル名まで指定しなければなりません。
    1. 入力ファイル……規定値 inp.txt
    2. 出力ファイル……規定値 out.htm
    3. データ定義ファイル……規定値 tp_mu.txt
    4. スイッチ……規定値なし。ここに -r を指定すると、HTMLの最初(<html>から<body>まで)と最後のタグ(</body>から</html>まで)を出力しません。



  6. データ定義ファイルの書式
    データ定義ファイル tp_mu.txt の各行は、カンマ区切りで4つのデータが書かれています。必要に応じて変更してください。
    token,code1,code2,flag
    tokenとは、入力ファイルのコードで、最大4文字です。
    code1は、直前が子音のときの出力文字です。
    code2は、直前が母音のときの出力文字です。
    flagは、この文字が子音かどうかです。子音のときは1、母音のときは0です。また-1のときはノー・オペレーション(この前が子音かどうかの状態をそのまま引き継ぐ)です。



  7. うまく動かないときは
    「プログラムを実行したのに変換が行われていないぞ」というときのほとんどは、定義ファイルや入力ファイルがうまく読み込まれていない、もしくは出力ファイルが思いがけないところにできているというものです。ファイルが読めない場合、実際にはエラーメッセージが出ているのですが、実行が一瞬で終了してしまうためにそのエラーメッセージを読むことができません。
    プログラムのアイコンを右クリックして「プロパティ」で、「作業フォルダ」を確認してください。これが何らかの理由でプログラムのあるフォルダ(正確にはデータ定義ファイルのあるフォルダ)になっていないと、データ定義ファイルは読み込まれなかったり、入力ファイルが読み込まれなかったり、出力ファイルが思いがけないところにできたりします。
    何らかの理由で入出力ファイルやデータ定義ファイルを、作業フォルダと異なる場所にしたいときは、起動オプションをしっかり指定してください(アイコンを右クリック→「プロパティ」で「リンク先」のところに指定する)。



  8. プログラムの著作権について
     このプログラムはcopyleftです。転載、改変は自由におこなってください。



  9. CGI版
     プログラムやPerlをダウンロードしてインストールしたりするのは面倒という人のために、このページ上ですぐに変換をするCGI版を用意しました。
     以下の窓にテキストを入力して、変換ボタンをクリックしてください。サンプルデータを2行ほどプリセットしておきましたが、当然消していただいて結構です。
     入力の書式は上記の「入力ファイルの書式」と同様です。ただし、いちいち改行のために<br>タグを書くのはわずらわしいので、こちらはふつうに改行すればそのまま結果も改行するようになっています。また、{ }は行を越えて有効です。ですから全体がパーリ語文であるならば、最初の行に{、最後の行に}を書くだけでOKです。

    Text :
    フォントの大きさ


※ご意見、ご教示などは、に戻り、掲示板あるいはメールで賜るとありがたく思います。