lib/when_exe/locales/akt.rb in when_exe-0.3.6 vs lib/when_exe/locales/akt.rb in when_exe-0.3.7
- old
+ new
@@ -1,176 +1,176 @@
-# -*- coding: utf-8 -*-
-=begin
- Copyright (C) 2014 Takashi SUGA
-
- You may use and/or modify this file according to the license described in the LICENSE.txt file included in this archive.
-=end
-
-require 'when_exe/locales/transliteration_table'
-
-module When
- module Locale
-
- #
- # AKT: Alphabet of Katakana Transliteration
- #
- # see { http://www.asahi-net.or.jp/~dy5h-kdm/end2.htm MadKod}
- #
- AKT = {
- 'ja' => {
- "a" =>"ア", "i" =>"イ", "u" =>"ウ", "e" =>"エ", "o" =>"オ",
- "ka" =>"カ", "ki" =>"キ", "ku" =>"ク", "ke" =>"ケ", "ko" =>"コ", "k" =>"ク",
- "qa" =>"カ", "qi" =>"キ", "qu" =>"ク", "qe" =>"ケ", "qo" =>"コ", "q" =>"ク",
- "ga" =>"ガ", "gi" =>"ギ", "gu" =>"グ", "ge" =>"ゲ", "go" =>"ゴ", "g" =>"グ",
- "sa" =>"サ", "si" =>"シ", "su" =>"ス", "se" =>"セ", "so" =>"ソ", "s" =>"ス",
- "za" =>"ザ", "zi" =>"ヂ", "zu" =>"ズ", "ze" =>"ゼ", "zo" =>"ゾ", "z" =>"ズ",
- "ja" =>"ジャ", "ji" =>"ジ", "ju" =>"ジュ", "je" =>"ジェ", "jo" =>"ジョ", "j" =>"ジュ",
- "ca" =>"カ", "ci" =>"チ", "cu" =>"ク", "ce" =>"セ", "co" =>"コ", "c" =>"ク",
- "ta" =>"タ", "ti" =>"ティ", "tu" =>"トゥ", "te" =>"テ", "to" =>"ト", "t" =>"ト",
- "tsa"=>"ツァ", "tsi"=>"ツィ", "tsu"=>"ツ", "tse"=>"ツェ", "tso"=>"ツォ", "ts"=>"ツ",
- "da" =>"ダ", "di" =>"ディ", "du" =>"ドゥ", "de" =>"デ", "do" =>"ド", "d" =>"ド",
- "na" =>"ナ", "ni" =>"ニ", "nu" =>"ヌ", "ne" =>"ネ", "no" =>"ノ", "n" =>"ン",
- "ha" =>"ハ", "hi" =>"ヒ", "hu" =>"フ", "he" =>"ヘ", "ho" =>"ホ", "h" =>"フ",
- "ba" =>"バ", "bi" =>"ビ", "bu" =>"ブ", "be" =>"ベ", "bo" =>"ボ", "b" =>"ブ",
- "pa" =>"パ", "pi" =>"ピ", "pu" =>"プ", "pe" =>"ペ", "po" =>"ポ", "p" =>"プ",
- "fa" =>"ファ", "fi" =>"フィ", "fu" =>"フ", "fe" =>"フェ", "fo" =>"フォ", "f" =>"フ",
- "va" =>"ヴァ", "vi" =>"ヴィ", "vu" =>"ヴ", "ve" =>"ヴェ", "vo" =>"ヴォ", "v" =>"ヴ",
- "ma" =>"マ", "mi" =>"ミ", "mu" =>"ム", "me" =>"メ", "mo" =>"モ", "m" =>"ム",
- "mma"=>"ンマ", "mmi"=>"ンミ", "mmu"=>"ンム", "mme"=>"ンメ", "mmo"=>"ンモ",
- "ra" =>"ラ", "ri" =>"リ", "ru" =>"ル", "re" =>"レ", "ro" =>"ロ", "r" =>"ル",
- "la" =>"ラ", "li" =>"リ", "lu" =>"ル", "le" =>"レ", "lo" =>"ロ", "l" =>"ル",
- "wa" =>"ワ", "wi" =>"ウィ", "wu" =>"ゥ", "we" =>"ウェ", "wo" =>"ヲ", "w" =>"ゥ",
- "wwa"=>"ウヮ", "wwi"=>"ウィ", "wwu"=>"ウゥ", "wwe"=>"ウェ", "wwo"=>"ウォ",
- "xa" =>"ァ", "xi" =>"ィ", "xu" =>"ゥ", "xe" =>"ェ", "xo" =>"ォ", "x" =>"クス",
- "ya" =>"ヤ", "yu" =>"ユ", "yo" =>"ヨ", "y" =>"イ",
- "kya"=>"キャ", "kyu"=>"キュ", "kyo"=>"キョ",
- "kja"=>"キャ", "kvu"=>"キュ", "kjo"=>"キョ",
- "qja"=>"キャ", "qju"=>"キュ", "qjo"=>"キョ",
- "gya"=>"ギャ", "gyu"=>"ギュ", "gyo"=>"ギョ",
- "gja"=>"ギャ", "gju"=>"ギュ", "gjo"=>"ギョ",
- "sya"=>"シャ", "syu"=>"シュ", "syo"=>"ショ",
- "sja"=>"シャ", "sju"=>"シュ", "sjo"=>"ショ",
- "zya"=>"ジャ", "zyu"=>"ジュ", "zyo"=>"ジョ",
- "zja"=>"ヂャ", "zju"=>"ヂュ", "zjo"=>"ヂョ",
- "jya"=>"ジャ", "jyu"=>"ジュ", "jye"=>"ジェ", "jyo"=>"ジョ",
- "cyi"=>"チィ", "cyu"=>"チュ", "tyi"=>"ティ",
- "tyu"=>"テュ", "tye"=>"テェ", "tja"=>"チャ",
- "tju"=>"チュ", "tjo"=>"チョ", "-" =>"ー", "tsx"=>"ッ",
- "dyi"=>"ディ", "dyu"=>"デュ", "dye"=>"デェ",
- "dja"=>"ヂャ", "dju"=>"ヂュ", "djo"=>"ヂョ",
- "nya"=>"ニャ", "nyu"=>"ニュ", "nyo"=>"ニョ",
- "nva"=>"ニャ", "nvu"=>"ニュ", "nvo"=>"ニョ",
- "hya"=>"ヒャ", "hyu"=>"ヒュ", "hyo"=>"ヒョ",
- "bya"=>"ビャ", "byu"=>"ビュ", "byo"=>"ビョ",
- "pya"=>"ピャ", "pyu"=>"ピュ", "pyo"=>"ピョ",
- "fyu"=>"フュ", "vyu"=>"ヴュ",
- "mya"=>"ミャ", "myu"=>"ミュ", "myo"=>"ミョ",
- "mva"=>"ミャ", "mvu"=>"ミュ", "mvo"=>"ミョ",
- "rya"=>"リャ", "ryu"=>"リュ", "ryo"=>"リョ",
- "lya"=>"リャ", "lyu"=>"リュ", "lyo"=>"リョ",
- "wyi"=>"ウイ", "wyu"=>"ウユ", "wye"=>"ウエ",
- "xya"=>"ャ", "xyu"=>"ュ", "xyo"=>"ョ",
- "yya"=>"イャ", "yyi"=>"イィ", "yyu"=>"イュ", "yye"=>"イェ", "yyo"=>"イョ",
- "kwa"=>"クヮ", "kwi"=>"クィ", "kwu"=>"クゥ", "kwe"=>"クェ", "kwo"=>"クォ",
- "kha"=>"クァ", "khi"=>"クィ", "khu"=>"クゥ", "khe"=>"クェ", "kho"=>"クォ",
- "qha"=>"クァ", "qhi"=>"クィ", "qhu"=>"クゥ", "qhe"=>"クェ", "qho"=>"クォ",
- "gwa"=>"グヮ", "gwi"=>"グィ", "gwu"=>"グゥ", "gwe"=>"グェ", "gwo"=>"グォ",
- "gha"=>"グァ", "ghi"=>"グィ", "ghu"=>"グゥ", "ghe"=>"グェ", "gho"=>"グォ",
- "sha"=>"シャ", "shi"=>"シ", "shu"=>"シュ", "she"=>"シェ", "sho"=>"ショ", "sh"=>"シュ",
- "swa"=>"スワ", "swi"=>"スィ", "swu"=>"スゥ", "swe"=>"スェ", "swo"=>"スヲ",
- "zha"=>"ツァ", "zhi"=>"ツィ", "zhu"=>"ズゥ", "zhe"=>"ツェ", "zho"=>"ツォ",
- "zxa"=>"ツァ", "zxi"=>"ツィ", "zxu"=>"ズゥ", "zxe"=>"ツェ", "zxo"=>"ツォ",
- "jxa"=>"ジァ", "jxi"=>"ジィ", "jxu"=>"ジゥ", "jxe"=>"ジェ", "jxo"=>"ジォ",
- "cha"=>"チャ", "chi"=>"チ", "chu"=>"チュ", "che"=>"チェ", "cho"=>"チョ",
- "twa"=>"トワ", "twi"=>"ツイ", "twu"=>"トゥ", "twe"=>"ツエ", "two"=>"ツー",
- "tha"=>"スァ", "thi"=>"スィ", "thu"=>"スゥ", "the"=>"スェ", "tho"=>"スォ",
- "tza"=>"ツァ", "tzi"=>"ツィ", "tzu"=>"ズー", "tze"=>"ツェ", "tzo"=>"ツォ",
- "dwa"=>"ドワ", "dwi"=>"ドィ", "dwu"=>"ドゥ", "dwe"=>"ドェ", "dwo"=>"ドヲ",
- "dha"=>"ダー", "dhi"=>"ジー", "dhu"=>"ドフ", "dhe"=>"ドヘ", "dho"=>"ドホ",
- "dsa"=>"ドサ", "dsi"=>"ドシ", "dsu"=>"ズ", "dse"=>"ドセ", "dso"=>"ドソ",
- "nxa"=>"ニァ", "nxi"=>"ニィ", "nxu"=>"ニゥ", "nxe"=>"ニェ", "nxo"=>"ニォ",
- "hwa"=>"ホヮ", "hwi"=>"ホィ", "hwu"=>"ホゥ", "hwe"=>"ホェ", "hwo"=>"ホォ",
- "bha"=>"バー", "bhi"=>"ビー", "bhu"=>"ブー", "bhe"=>"ベー", "bho"=>"ボー",
- "pwa"=>"プヮ", "pwi"=>"プィ", "pwu"=>"プゥ", "pwe"=>"プェ", "pwo"=>"プォ",
- "pha"=>"ファ", "phi"=>"フィ", "phu"=>"フュ", "phe"=>"フェ", "pho"=>"フォ",
- "vha"=>"ヒャ", "vhi"=>"ヒィ", "vhu"=>"ヒュ", "vhe"=>"ヒェ", "vho"=>"ヒョ",
- "mha"=>"ムァ", "mhi"=>"ムィ", "mhu"=>"ムゥ", "mhe"=>"ムェ", "mho"=>"ムォ",
- "mwa"=>"ムヮ", "mwi"=>"ムィ", "mwu"=>"ムゥ", "mwe"=>"ムェ", "mwo"=>"ムォ",
- "rja"=>"リャ", "rji"=>"リィ", "rju"=>"リュ", "rje"=>"リェ", "rjo"=>"リョ",
- "lja"=>"リャ", "lji"=>"リィ", "lju"=>"リュ", "lje"=>"リェ", "ljo"=>"リョ",
- "wha"=>"ホワ", "whi"=>"ホイ", "whu"=>"ホウ", "whe"=>"ホエ", "who"=>"ホオ",
- "wxa"=>"ヮ", "wxi"=>"ヰ", "wxu"=>"ゥ", "wxe"=>"ヱ", "wxo"=>"ウォ",
- "xwa"=>"ヮ", "xwi"=>"ヰ", "xwu"=>"ゥ", "xwe"=>"ヱ", "xwo"=>"ウォ"
- }
- }
-
- # @private
- IAST_K = {
- "Ā" => "A-", "ā" => "a-",
- "Ī" => "I-", "ī" => "i-",
- "Ū" => "U-", "ū" => "u-",
- "E" => "e-", "e" => "e-",
- "Ē" => "e-", "ē" => "e-",
- "O" => "O-", "o" => "o-",
- "Ō" => "O-", "ō" => "o-",
- "Ṛ" => "R:", "ṛ" => "r:",
- "Ṝ" => "R:-", "ṝ" => "r:-",
- "R̥" => "R:", "r̥" => "r:",
- "R̥̄" => "R:-", "r̥̄" => "r:-",
- "Ḷ" => "L:", "ḷ" => "l:",
- "Ḹ" => "L:", "ḹ" => "l:",
- "Ṃ" => "M:", "ṃ" => "m:",
- "Ṁ" => "M:", "ṁ" => "m:",
- "Ḥ" => "H:", "ḥ" => "h:",
- "C" => "Ch", "c" => "ch",
- "Ṭ" => "T", "ṭ" => "t",
- "Kh" => "K", "kh" => "k",
- "Ch" => "Ch", "ch" => "ch",
- "Ṭh" => "T", "ṭh" => "t",
- "Th" => "T", "th" => "t",
- "Ph" => "P", "ph" => "p",
- "Ḍ" => "D", "ḍ" => "d",
- "Gh" => "G", "gh" => "g",
- "Jh" => "J", "jh" => "j",
- "Ḍh" => "D", "ḍh" => "d",
- "Dh" => "D", "dh" => "d",
- "Bh" => "B", "bh" => "b",
- "Ṅ" => "N", "ṅ" => "n",
- "Ñ" => "Ny", "ñ" => "ny",
- "Ṇ" => "N", "ṇ" => "n",
- "Ś" => "Sh", "ś" => "sh",
- "Ṣ" => "Sh", "ṣ" => "sh"
- }
-
- # @private
- AKT_keys = transliteration_keys_hash(AKT)
-
- # @private
- IAST_K_keys = transliteration_keys(IAST_K)
-
- #
- # Convert AKT string to katakana scripts
- #
- def self.akt(string, locale='ja')
- string.gsub(/([^aeiou])\1/, 'ッ\1').
- gsub(/m([fpb])/, 'n\1').
- gsub(AKT_keys[locale]) {|code|
- AKT[locale][code] || code
- }
- end
-
- #
- # Convert IAST string to katakana scripts
- #
- def self.iast_akt(string, locale='ja')
- akt(
- string.gsub(IAST_K_keys) {|code| IAST_K[code] || code}.
- downcase.gsub(/(.):-?(.)|(.):-?$/) {|code|
- "aeiou".index($2||':') ? $1 + $2 :
- $1=='m' ? "ン#{$2}" :
- code.sub(':','i')
- }.
- gsub(/([rm])y/, '\1uy'),
- locale)
- end
- end
-end
+# -*- coding: utf-8 -*-
+=begin
+ Copyright (C) 2014 Takashi SUGA
+
+ You may use and/or modify this file according to the license described in the LICENSE.txt file included in this archive.
+=end
+
+require 'when_exe/locales/transliteration_table'
+
+module When
+ module Locale
+
+ #
+ # AKT: Alphabet of Katakana Transliteration
+ #
+ # see { http://www.asahi-net.or.jp/~dy5h-kdm/end2.htm MadKod}
+ #
+ AKT = {
+ 'ja' => {
+ "a" =>"ア", "i" =>"イ", "u" =>"ウ", "e" =>"エ", "o" =>"オ",
+ "ka" =>"カ", "ki" =>"キ", "ku" =>"ク", "ke" =>"ケ", "ko" =>"コ", "k" =>"ク",
+ "qa" =>"カ", "qi" =>"キ", "qu" =>"ク", "qe" =>"ケ", "qo" =>"コ", "q" =>"ク",
+ "ga" =>"ガ", "gi" =>"ギ", "gu" =>"グ", "ge" =>"ゲ", "go" =>"ゴ", "g" =>"グ",
+ "sa" =>"サ", "si" =>"シ", "su" =>"ス", "se" =>"セ", "so" =>"ソ", "s" =>"ス",
+ "za" =>"ザ", "zi" =>"ヂ", "zu" =>"ズ", "ze" =>"ゼ", "zo" =>"ゾ", "z" =>"ズ",
+ "ja" =>"ジャ", "ji" =>"ジ", "ju" =>"ジュ", "je" =>"ジェ", "jo" =>"ジョ", "j" =>"ジュ",
+ "ca" =>"カ", "ci" =>"チ", "cu" =>"ク", "ce" =>"セ", "co" =>"コ", "c" =>"ク",
+ "ta" =>"タ", "ti" =>"ティ", "tu" =>"トゥ", "te" =>"テ", "to" =>"ト", "t" =>"ト",
+ "tsa"=>"ツァ", "tsi"=>"ツィ", "tsu"=>"ツ", "tse"=>"ツェ", "tso"=>"ツォ", "ts"=>"ツ",
+ "da" =>"ダ", "di" =>"ディ", "du" =>"ドゥ", "de" =>"デ", "do" =>"ド", "d" =>"ド",
+ "na" =>"ナ", "ni" =>"ニ", "nu" =>"ヌ", "ne" =>"ネ", "no" =>"ノ", "n" =>"ン",
+ "ha" =>"ハ", "hi" =>"ヒ", "hu" =>"フ", "he" =>"ヘ", "ho" =>"ホ", "h" =>"フ",
+ "ba" =>"バ", "bi" =>"ビ", "bu" =>"ブ", "be" =>"ベ", "bo" =>"ボ", "b" =>"ブ",
+ "pa" =>"パ", "pi" =>"ピ", "pu" =>"プ", "pe" =>"ペ", "po" =>"ポ", "p" =>"プ",
+ "fa" =>"ファ", "fi" =>"フィ", "fu" =>"フ", "fe" =>"フェ", "fo" =>"フォ", "f" =>"フ",
+ "va" =>"ヴァ", "vi" =>"ヴィ", "vu" =>"ヴ", "ve" =>"ヴェ", "vo" =>"ヴォ", "v" =>"ヴ",
+ "ma" =>"マ", "mi" =>"ミ", "mu" =>"ム", "me" =>"メ", "mo" =>"モ", "m" =>"ム",
+ "mma"=>"ンマ", "mmi"=>"ンミ", "mmu"=>"ンム", "mme"=>"ンメ", "mmo"=>"ンモ",
+ "ra" =>"ラ", "ri" =>"リ", "ru" =>"ル", "re" =>"レ", "ro" =>"ロ", "r" =>"ル",
+ "la" =>"ラ", "li" =>"リ", "lu" =>"ル", "le" =>"レ", "lo" =>"ロ", "l" =>"ル",
+ "wa" =>"ワ", "wi" =>"ウィ", "wu" =>"ゥ", "we" =>"ウェ", "wo" =>"ヲ", "w" =>"ゥ",
+ "wwa"=>"ウヮ", "wwi"=>"ウィ", "wwu"=>"ウゥ", "wwe"=>"ウェ", "wwo"=>"ウォ",
+ "xa" =>"ァ", "xi" =>"ィ", "xu" =>"ゥ", "xe" =>"ェ", "xo" =>"ォ", "x" =>"クス",
+ "ya" =>"ヤ", "yu" =>"ユ", "yo" =>"ヨ", "y" =>"イ",
+ "kya"=>"キャ", "kyu"=>"キュ", "kyo"=>"キョ",
+ "kja"=>"キャ", "kvu"=>"キュ", "kjo"=>"キョ",
+ "qja"=>"キャ", "qju"=>"キュ", "qjo"=>"キョ",
+ "gya"=>"ギャ", "gyu"=>"ギュ", "gyo"=>"ギョ",
+ "gja"=>"ギャ", "gju"=>"ギュ", "gjo"=>"ギョ",
+ "sya"=>"シャ", "syu"=>"シュ", "syo"=>"ショ",
+ "sja"=>"シャ", "sju"=>"シュ", "sjo"=>"ショ",
+ "zya"=>"ジャ", "zyu"=>"ジュ", "zyo"=>"ジョ",
+ "zja"=>"ヂャ", "zju"=>"ヂュ", "zjo"=>"ヂョ",
+ "jya"=>"ジャ", "jyu"=>"ジュ", "jye"=>"ジェ", "jyo"=>"ジョ",
+ "cyi"=>"チィ", "cyu"=>"チュ", "tyi"=>"ティ",
+ "tyu"=>"テュ", "tye"=>"テェ", "tja"=>"チャ",
+ "tju"=>"チュ", "tjo"=>"チョ", "-" =>"ー", "tsx"=>"ッ",
+ "dyi"=>"ディ", "dyu"=>"デュ", "dye"=>"デェ",
+ "dja"=>"ヂャ", "dju"=>"ヂュ", "djo"=>"ヂョ",
+ "nya"=>"ニャ", "nyu"=>"ニュ", "nyo"=>"ニョ",
+ "nva"=>"ニャ", "nvu"=>"ニュ", "nvo"=>"ニョ",
+ "hya"=>"ヒャ", "hyu"=>"ヒュ", "hyo"=>"ヒョ",
+ "bya"=>"ビャ", "byu"=>"ビュ", "byo"=>"ビョ",
+ "pya"=>"ピャ", "pyu"=>"ピュ", "pyo"=>"ピョ",
+ "fyu"=>"フュ", "vyu"=>"ヴュ",
+ "mya"=>"ミャ", "myu"=>"ミュ", "myo"=>"ミョ",
+ "mva"=>"ミャ", "mvu"=>"ミュ", "mvo"=>"ミョ",
+ "rya"=>"リャ", "ryu"=>"リュ", "ryo"=>"リョ",
+ "lya"=>"リャ", "lyu"=>"リュ", "lyo"=>"リョ",
+ "wyi"=>"ウイ", "wyu"=>"ウユ", "wye"=>"ウエ",
+ "xya"=>"ャ", "xyu"=>"ュ", "xyo"=>"ョ",
+ "yya"=>"イャ", "yyi"=>"イィ", "yyu"=>"イュ", "yye"=>"イェ", "yyo"=>"イョ",
+ "kwa"=>"クヮ", "kwi"=>"クィ", "kwu"=>"クゥ", "kwe"=>"クェ", "kwo"=>"クォ",
+ "kha"=>"クァ", "khi"=>"クィ", "khu"=>"クゥ", "khe"=>"クェ", "kho"=>"クォ",
+ "qha"=>"クァ", "qhi"=>"クィ", "qhu"=>"クゥ", "qhe"=>"クェ", "qho"=>"クォ",
+ "gwa"=>"グヮ", "gwi"=>"グィ", "gwu"=>"グゥ", "gwe"=>"グェ", "gwo"=>"グォ",
+ "gha"=>"グァ", "ghi"=>"グィ", "ghu"=>"グゥ", "ghe"=>"グェ", "gho"=>"グォ",
+ "sha"=>"シャ", "shi"=>"シ", "shu"=>"シュ", "she"=>"シェ", "sho"=>"ショ", "sh"=>"シュ",
+ "swa"=>"スワ", "swi"=>"スィ", "swu"=>"スゥ", "swe"=>"スェ", "swo"=>"スヲ",
+ "zha"=>"ツァ", "zhi"=>"ツィ", "zhu"=>"ズゥ", "zhe"=>"ツェ", "zho"=>"ツォ",
+ "zxa"=>"ツァ", "zxi"=>"ツィ", "zxu"=>"ズゥ", "zxe"=>"ツェ", "zxo"=>"ツォ",
+ "jxa"=>"ジァ", "jxi"=>"ジィ", "jxu"=>"ジゥ", "jxe"=>"ジェ", "jxo"=>"ジォ",
+ "cha"=>"チャ", "chi"=>"チ", "chu"=>"チュ", "che"=>"チェ", "cho"=>"チョ",
+ "twa"=>"トワ", "twi"=>"ツイ", "twu"=>"トゥ", "twe"=>"ツエ", "two"=>"ツー",
+ "tha"=>"スァ", "thi"=>"スィ", "thu"=>"スゥ", "the"=>"スェ", "tho"=>"スォ",
+ "tza"=>"ツァ", "tzi"=>"ツィ", "tzu"=>"ズー", "tze"=>"ツェ", "tzo"=>"ツォ",
+ "dwa"=>"ドワ", "dwi"=>"ドィ", "dwu"=>"ドゥ", "dwe"=>"ドェ", "dwo"=>"ドヲ",
+ "dha"=>"ダー", "dhi"=>"ジー", "dhu"=>"ドフ", "dhe"=>"ドヘ", "dho"=>"ドホ",
+ "dsa"=>"ドサ", "dsi"=>"ドシ", "dsu"=>"ズ", "dse"=>"ドセ", "dso"=>"ドソ",
+ "nxa"=>"ニァ", "nxi"=>"ニィ", "nxu"=>"ニゥ", "nxe"=>"ニェ", "nxo"=>"ニォ",
+ "hwa"=>"ホヮ", "hwi"=>"ホィ", "hwu"=>"ホゥ", "hwe"=>"ホェ", "hwo"=>"ホォ",
+ "bha"=>"バー", "bhi"=>"ビー", "bhu"=>"ブー", "bhe"=>"ベー", "bho"=>"ボー",
+ "pwa"=>"プヮ", "pwi"=>"プィ", "pwu"=>"プゥ", "pwe"=>"プェ", "pwo"=>"プォ",
+ "pha"=>"ファ", "phi"=>"フィ", "phu"=>"フュ", "phe"=>"フェ", "pho"=>"フォ",
+ "vha"=>"ヒャ", "vhi"=>"ヒィ", "vhu"=>"ヒュ", "vhe"=>"ヒェ", "vho"=>"ヒョ",
+ "mha"=>"ムァ", "mhi"=>"ムィ", "mhu"=>"ムゥ", "mhe"=>"ムェ", "mho"=>"ムォ",
+ "mwa"=>"ムヮ", "mwi"=>"ムィ", "mwu"=>"ムゥ", "mwe"=>"ムェ", "mwo"=>"ムォ",
+ "rja"=>"リャ", "rji"=>"リィ", "rju"=>"リュ", "rje"=>"リェ", "rjo"=>"リョ",
+ "lja"=>"リャ", "lji"=>"リィ", "lju"=>"リュ", "lje"=>"リェ", "ljo"=>"リョ",
+ "wha"=>"ホワ", "whi"=>"ホイ", "whu"=>"ホウ", "whe"=>"ホエ", "who"=>"ホオ",
+ "wxa"=>"ヮ", "wxi"=>"ヰ", "wxu"=>"ゥ", "wxe"=>"ヱ", "wxo"=>"ウォ",
+ "xwa"=>"ヮ", "xwi"=>"ヰ", "xwu"=>"ゥ", "xwe"=>"ヱ", "xwo"=>"ウォ"
+ }
+ }
+
+ # @private
+ IAST_K = {
+ "Ā" => "A-", "ā" => "a-",
+ "Ī" => "I-", "ī" => "i-",
+ "Ū" => "U-", "ū" => "u-",
+ "E" => "e-", "e" => "e-",
+ "Ē" => "e-", "ē" => "e-",
+ "O" => "O-", "o" => "o-",
+ "Ō" => "O-", "ō" => "o-",
+ "Ṛ" => "R:", "ṛ" => "r:",
+ "Ṝ" => "R:-", "ṝ" => "r:-",
+ "R̥" => "R:", "r̥" => "r:",
+ "R̥̄" => "R:-", "r̥̄" => "r:-",
+ "Ḷ" => "L:", "ḷ" => "l:",
+ "Ḹ" => "L:", "ḹ" => "l:",
+ "Ṃ" => "M:", "ṃ" => "m:",
+ "Ṁ" => "M:", "ṁ" => "m:",
+ "Ḥ" => "H:", "ḥ" => "h:",
+ "C" => "Ch", "c" => "ch",
+ "Ṭ" => "T", "ṭ" => "t",
+ "Kh" => "K", "kh" => "k",
+ "Ch" => "Ch", "ch" => "ch",
+ "Ṭh" => "T", "ṭh" => "t",
+ "Th" => "T", "th" => "t",
+ "Ph" => "P", "ph" => "p",
+ "Ḍ" => "D", "ḍ" => "d",
+ "Gh" => "G", "gh" => "g",
+ "Jh" => "J", "jh" => "j",
+ "Ḍh" => "D", "ḍh" => "d",
+ "Dh" => "D", "dh" => "d",
+ "Bh" => "B", "bh" => "b",
+ "Ṅ" => "N", "ṅ" => "n",
+ "Ñ" => "Ny", "ñ" => "ny",
+ "Ṇ" => "N", "ṇ" => "n",
+ "Ś" => "Sh", "ś" => "sh",
+ "Ṣ" => "Sh", "ṣ" => "sh"
+ }
+
+ # @private
+ AKT_keys = transliteration_keys_hash(AKT)
+
+ # @private
+ IAST_K_keys = transliteration_keys(IAST_K)
+
+ #
+ # Convert AKT string to katakana scripts
+ #
+ def self.akt(string, locale='ja')
+ string.gsub(/([^aeiou])\1/, 'ッ\1').
+ gsub(/m([fpb])/, 'n\1').
+ gsub(AKT_keys[locale]) {|code|
+ AKT[locale][code] || code
+ }
+ end
+
+ #
+ # Convert IAST string to katakana scripts
+ #
+ def self.iast_akt(string, locale='ja')
+ akt(
+ string.gsub(IAST_K_keys) {|code| IAST_K[code] || code}.
+ downcase.gsub(/(.):-?(.)|(.):-?\z/) {|code|
+ "aeiou".index($2||':') ? $1 + $2 :
+ $1=='m' ? "ン#{$2}" :
+ code.sub(':','i')
+ }.
+ gsub(/([rm])y/, '\1uy'),
+ locale)
+ end
+ end
+end