The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

名前

Lingua::JA::Moji - 総合日本文字変換

概要

日本の文字の総合変換

    use Lingua::JA::Moji qw/kana2romaji romaji2kana/;
    use utf8;
    my $romaji = kana2romaji ('あいうえお');
    # $romaji is now 'aiueo'.
    my $kana = romaji2kana ($romaji);
    # $kana is now 'アイウエオ'.

関数

ROMANIZATION

kana2romaji -- 仮名をローマ字に

    use Lingua::JA::Moji 'kana2romaji';
    $romaji = kana2romaji ("うれしいこども");
    # Now $romaji = 'uresîkodomo'

仮名をローマ字に変換。

オプションは関数の2番目のハシュリファレンスで入ります。

    use utf8;
    $romaji = kana2romaji ("しんぶん", {style => "hepburn"});
    # $romaji = "shimbun"

可能なオプションは

style

ローマ字の種類。

undef

ディフォルトは日本式(「つづり」が「tuduri」, 「少女」が「syôzyo」)。

passport

パスポート式(「伊藤」が「itoh」)

kunrei

訓令式(少学校4年で習うローマ字)

hepburn

ヘボン式(「つづり」が「tsuzuri」, 「少女」が「shōjo」)。

use_m

真なら「しんぶん」が「shimbun」

ve_type

長い母音はどの様に表現する。

undef

曲折アクセントを使う。

macro

マクロンを使う。

passport

「アー」、「イー」、「ウー」、「エー」が「a」, 「i」, 「u」, 「e」になり、「オー」が「oh」になる。

none

「アー」、「イー」、「ウー」、「エー」ガ「a」, 「i」, 「u」, 「e」, 「o」になる。

wapuro

「アー」、「イー」、「ウー」、「エー」ガ「a-」, 「i-」, 「u-」, 「e-」, 「o-」になる。「おう」が「ou」など、仮名の長音を仮名で代表するよう、ロー マ字入力のようなことです。

wapuro

ワープロローマ字。長音符は使わない。「少女」が「shoujo」など。

romaji2hiragana -- ローマ字をひらがなに

    use Lingua::JA::Moji 'romaji2hiragana';
    $hiragana = romaji2hiragana ('babubo');
    # Now $hiragana = 'ばぶぼ'

romaji_styles

    use Lingua::JA::Moji 'romaji_styles';
    my @styles = romaji_styles ();
    # Returns a true value
    romaji_styles ("hepburn");
    # Returns the undefined value
    romaji_styles ("frogs");

romaji2kana -- ローマ字を仮名に

    use Lingua::JA::Moji 'romaji2kana';
    $kana = romaji2kana ('yamaguti');
    # Now $kana = 'ヤマグチ'

is_voiced

    use Lingua::JA::Moji 'is_voiced';
    if (is_voiced ('が')) {
         print "が is voiced.\n";
    }

仮名かローマ字は濁音、半濁音がついていれば、真、ついていなければ偽です。

is_romaji

    use Lingua::JA::Moji 'is_romaji';
    # The following line returns "undef"
    is_romaji ("abcdefg");
    # The following line returns a defined value
    is_romaji ("atarimae");

アルファベットの列はローマ字に見えるなら真、見えないなら偽。

normalize_romaji

    use Lingua::JA::Moji 'normalize_romaji';
    $normalized = normalize_romaji ('tsumuji');

KANA

hira2kata -- ひらがなをカタカナに

    use Lingua::JA::Moji 'hira2kata';
    $katakana = hira2kata ($hiragana);

平仮名をかたかなに変換します。

kata2hira -- カタカナをひらがなに

    use Lingua::JA::Moji 'kata2hira';
    $hiragana = kata2hira ('カキクケコ');
    # Now $hiragana = 'かきくけこ'

InHankakuKatakana

    use Lingua::JA::Moji 'InHankakuKatakana';
    use utf8;
    if ('ア' =~ /\p{InHankakuKatakana}/) {
        print "ア is half-width katakana\n";
    }

kana2hw -- 仮名を半角カタカナに

    use Lingua::JA::Moji 'kana2hw';
    $half_width = kana2hw ('あいウカキぎょう。');
    # Now $half_width = 'アイウカキギョウ。'

hw2katakana -- 半角カタカナをカタカナに

    use Lingua::JA::Moji 'hw2katakana';
    $full_width = hw2katakana ('アイウカキギョウ。');
    # Now $full_width = 'アイウカキギョウ。'

WIDE

InWideAscii

    use Lingua::JA::Moji 'InWideAscii';
    use utf8;
    if ('A' =~ /\p{InWideAscii}/) {
        print "A is wide ascii\n";
    }

wide2ascii -- 全角英数字を半角英数字に

    use Lingua::JA::Moji 'wide2ascii';
    $ascii = wide2ascii ('abCE019');
    # Now $ascii = 'abCE019'

ascii2wide -- 半角英数字を全角英数字に

    use Lingua::JA::Moji 'ascii2wide';
    $wide = ascii2wide ('abCE019');
    # Now $wide = 'abCE019'

KANA

is_kana

    use Lingua::JA::Moji 'is_kana';
    

is_hiragana

    use Lingua::JA::Moji 'is_hiragana';
    

kana2katakana -- 仮名をカタカナに

    use Lingua::JA::Moji 'kana2katakana';
    

OTHER

kana2morse -- 仮名を和文モールス符号に

    use Lingua::JA::Moji 'kana2morse';
    

kana2braille -- 仮名を点字に

    use Lingua::JA::Moji 'kana2braille';
    

braille2kana -- 点字を仮名に

    use Lingua::JA::Moji 'braille2kana';
    

kana2circled -- 仮名を丸付けカタカナに

    use Lingua::JA::Moji 'kana2circled';
    $circled = kana2circled ('あいうえお');
    # $circled = '㋐㋑㋒㋓㋔';
    # Now $circled = '㋐㋑㋒㋓㋔'

circled2kana -- 丸付けカタカナを仮名に

    use Lingua::JA::Moji 'circled2kana';
    $kana = circled2kana ('㋐㋑㋒㋓㋔');
    # Now $kana = 'アイウエオ'

KANJI

new2old_kanji -- 親字体を旧字体に

    use Lingua::JA::Moji 'new2old_kanji';
    $old = new2old_kanji ('三国 連太郎');
    # Now $old = '三國 連太郎'

親字体を旧字体に変換する

old2new_kanji -- 旧字体を親字体に

    use Lingua::JA::Moji 'old2new_kanji';
    $new = old2new_kanji ('櫻井');
    # Now $new = '桜井'

旧字体を親字体に変換する

SUPPORT

Mailing list

There is a mailing list for this module and Convert::Moji at http://groups.google.com/group/perl-moji.

Examples

For examples of this module in use, see http://www.lemoda.net/lingua-ja-moji/index.html.

DIAGNOSTICS

BUGS

romaji to/from kana conversion

There are some bugs with romaji to kana conversion and vice-versa.

SEE ALSO

Other Perl modules on CPAN include

Japanese kana/romanization

Data::Validate::Japanese

This is where I got several of the ideas for this module from. It contains validators for kanji and kana.

Lingua::JA::Kana

This is where several of the ideas for this module came from. It contains convertors for hiragana, katakana (fullwidth only), and romaji. The romaji conversion is less complete than this module but more compact and probably much faster.

Lingua::JA::Romanize::Japanese

Romanization of Japanese. The module also includes romanization of kanji via the kakasi kanji to romaji convertor, and other functions.

Lingua::JA::Romaji::Valid

Validate romanized Japanese.

Lingua::JA::Hepburn::Passport

EXPORT

This module exports its functions only on request. To export all the functions in the module,

    use Lingua::JA::Moji ':all';

ENCODING

All the functions in this module assume the use of Unicode encoding. All input and output strings must be encoded using UTF-8.

ACKNOWLEDGEMENTS

Thanks to Naoki Tomita for various assitances (see http://groups.google.com/group/perl-moji/browse_thread/thread/10a42c35f7c22ebc).

AUTHOR

Ben Bullock, <bkb@cpan.org>

COPYRIGHT & LICENSE

Copyright 2008-2011 Ben Bullock, all rights reserved.

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