var toRoman = (function( ) {
var roman = {
'1':'1', '2':'2', '3':'3', '4':'4', '5':'5', '6':'6', '7':'7', '8':'8', '9':'9', '0':'0',
'!':'!', '”':'"', '#':'#', '$':'$', '%':'%', '&':'&', '’':"'", '(':'(', ')':')', '=':'=',
'〜':'~', '|':'|', '@':'@', '‘':'`', '+':'+', '*':'*', ';':";", ':':':', '<':'<', '>':'>',
'、':',', '。':'.', '/':'/', '?':'?', '_':'_', '・':'・', '「':'[', '」':']', '{':'{', '}':'}',
'¥':'\\', '^':'^',
'ふぁ':'fa', 'ふぃ':'fi', 'ふぇ':'fe', 'ふぉ':'fo',
'きゃ':'kya', 'きゅ':'kyu', 'きょ':'kyo',
'しゃ':'sha', 'しゅ':'shu', 'しょ':'sho',
'ちゃ':'tya', 'ちゅ':'tyu', 'ちょ':'tyo',
'にゃ':'nya', 'にゅ':'nyu', 'にょ':'nyo',
'ひゃ':'hya', 'ひゅ':'hyu', 'ひょ':'hyo',
'みゃ':'mya', 'みゅ':'myu', 'みょ':'myo',
'りゃ':'rya', 'りゅ':'ryu', 'りょ':'ryo',
'ふゃ':'fya', 'ふゅ':'fyu', 'ふょ':'fyo',
'ぴゃ':'pya', 'ぴゅ':'pyu', 'ぴょ':'pyo',
'びゃ':'bya', 'びゅ':'byu', 'びょ':'byo',
'ぢゃ':'dya', 'ぢゅ':'dyu', 'ぢょ':'dyo',
'じゃ':'ja', 'じゅ':'ju', 'じょ':'jo',
'ぎゃ':'gya', 'ぎゅ':'gyu', 'ぎょ':'gyo',
'ぱ':'pa', 'ぴ':'pi', 'ぷ':'pu', 'ぺ':'pe', 'ぽ':'po',
'ば':'ba', 'び':'bi', 'ぶ':'bu', 'べ':'be', 'ぼ':'bo',
'だ':'da', 'ぢ':'di', 'づ':'du', 'で':'de', 'ど':'do',
'ざ':'za', 'じ':'zi', 'ず':'zu', 'ぜ':'ze', 'ぞ':'zo',
'が':'ga', 'ぎ':'gi', 'ぐ':'gu', 'げ':'ge', 'ご':'go',
'わ':'wa', 'ゐ':'wi', 'う':'wu', 'ゑ':'we', 'を':'wo',
'ら':'ra', 'り':'ri', 'る':'ru', 'れ':'re', 'ろ':'ro',
'や':'ya', 'ゆ':'yu', 'よ':'yo',
'ま':'ma', 'み':'mi', 'む':'mu', 'め':'me', 'も':'mo',
'は':'ha', 'ひ':'hi', 'ふ':'hu', 'へ':'he', 'ほ':'ho',
'な':'na', 'に':'ni', 'ぬ':'nu', 'ね':'ne', 'の':'no',
'た':'ta', 'ち':'ti', 'つ':'tu', 'て':'te', 'と':'to',
'さ':'sa', 'し':'si', 'す':'su', 'せ':'se', 'そ':'so',
'か':'ka', 'き':'ki', 'く':'ku', 'け':'ke', 'こ':'ko',
'あ':'a', 'い':'i', 'う':'u', 'え':'e', 'お':'o',
'ぁ':'la', 'ぃ':'li', 'ぅ':'lu', 'ぇ':'le', 'ぉ':'lo',
'ヶ':'ke', 'ヵ':'ka',
'ん':'n', 'ー':'-', ' ':' '
};
var reg_tu = /っ([bcdfghijklmnopqrstuvwyz])/gm;
var reg_xtu = /っ/gm;
return function ( str ) {
var pnt = 0;
var max = str.length;
var s, r;
var txt = '';
while( pnt <= max ) {
if( r = roman[ str.substring( pnt, pnt + 2 ) ] ) {
txt += r;
pnt += 2;
} else {
txt += ( r = roman[ s = str.substring( pnt, pnt + 1 ) ] ) ? r: s;
pnt += 1;
}
}
txt = txt.replace( reg_tu, '$1$1' );
txt = txt.replace( reg_xtu, 'xtu' );
return txt;
};
})();