NAME

Lingua::AIN::Romanize - アイヌ語のローマ字表記とカタカナ表記を相互変換するモジュール

SYNOPSIS

use Lingua::AIN::Romanize;

my $kana = ain_roman2kana('aynu itak');
# アイヌ イタㇰ

my $kana = ain_roman2kana('aynu itak',{ hankaku => 1 });
# アイヌ イタク

my $roman = ain_kana2roman('アイヌ イタㇰ');
# aynu itak

my $roman = ain_kana2roman('アイヌ イタク');
# aynu itak

DESCRIPTION

Lingua::AIN::Romanizeはアイヌ語のローマ字表記とカタカナ表記を相互変換する モジュールです。

UTF-8での変換を行い、Unicode3.2で定義された小文字カナを利用した変換を行い ますが、ローマ字→カナ変換はオプションで半角カナへの変換を選択することも できます。 ト゚(tu)、セ゚(ce)等の半濁音付表記については、開発者が初学者過ぎ、同じローマ 字表記が割り当てられているトゥ(tu)やチェ(ce)の別表記なのか違うものなのか、 という判断がつかなかったため、対応していません。 が、正確な情報が判れば対応可能ですので、情報をお寄せいただければ幸いです。

ベースとなっている変換ロジックはkumanesirさんの公開されている変換ロジック http://sapporo.cool.ne.jp/kumanesir/kanahenkan.htmをベースに、CDエクス プレス・アイヌ語での事例等も参考に行いました。

できる限り相互変換がラウンドトリップするように心がけましたが、やはりカナ→ ローマ字変換側で、

1.母音+イ、ウがi、uとなるケース(イヤイライケレ → ○iyairaykere ×iyayraykere)  

2.人称接辞の分離(エイワンケ → ○e=iwanke ×eiwanke)

3.撥音がtとなるケース(サッケ → ○satke ×sakke)

のようなものには、基本対応できていません。

このうち、1.については、主要語であるイヤイライケレ(ありがとう)がいきなり変換 できないのではイマイチなので、事例集を内部に持つ形での対応を一応行っています。 ですので、母音+イ、ウがi、uとなるケースをサンプルとして頂戴できれば、対応は可能 です。

また、1.~3.いずれも、ロジック的な変換規則でよい案をお持ちの方がおられましたら、 教えていただければ対応いたします。 100%の対応は、ヤイライケ→yayrayke(自殺する)yairayke(感謝する)のように不可能なのは 判っていますが、少しでもよくしていきたいと考えています。 作者はプログラムはそれなりですがアイヌ語は初学者ですので、ベテランの方の支援をいた だければ幸いです。

Function

ain_roman2kana

ローマ字表記をカナ表記に変換します。 第二引数にハッシュリファレンスでオプションを取りますが、hankakuオプションを1にすると、 Unicode3.2での定義文字の代わりに半角カナを用いて変換します。

ain_kana2roman

カナ表記をローマ字表記に変換します。

ain_setregex

モジュールのロード時に、:setregexタグを指定すると、本関数と%Ain_Roman2Kana、%Ain_Kana2Roman、 @Ain_VplusiuCaseの3変数がエクスポートされます。 これらを使い、独自の変換テーブルを定義できますが、上級利用法なのでソースコードを読んで理解できる 方のみ使っていただければ幸いです。

Internal Function

ain_setregex_vc

AUTHOR

OHTSUKA Ko-hei <nene@kokogiko.net>

SEE ALSO

http://sapporo.cool.ne.jp/kumanesir/kanahenkan.htm
http://ja.wiktionary.org/wiki/Wiktionary:%E3%82%A2%E3%82%A4%E3%83%8C%E8%AA%9E%E3%81%AE%E3%82%AB%E3%83%8A%E8%A1%A8%E8%A8%98
http://www.amazon.co.jp/dp/4560005990
Lingua::JA::Kana
Regexp::Assemble

LICENSE

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.