X-Git-Url: http://git.veekun.com/zzz-pokedex.git/blobdiff_plain/b08b064e9f013e8233b207360d68305a6b9652f2..40bd50ff2d97a30b44260f1a6bfefec1cc70f65f:/pokedex/roomaji.py diff --git a/pokedex/roomaji.py b/pokedex/roomaji.py index 0a6b269..46f39b5 100644 --- a/pokedex/roomaji.py +++ b/pokedex/roomaji.py @@ -22,7 +22,7 @@ _roomaji_kana = { _roomaji_youon = { u'ャ': 'ya', u'ュ': 'yu', u'ョ': 'yo', - u'ゃ': 'ya', u'ゅ': 'yu', u'ょ': 'yo', + #u'ゃ': 'ya', u'ゅ': 'yu', u'ょ': 'yo', } # XXX If romanize() ever handles hiragana, it will need to make sure that the @@ -73,12 +73,12 @@ def romanize(string): # Youon elif char in _roomaji_youon: - if last_kana[-1] != 'i' or last_kana == 'i': + if not last_kana or last_kana[-1] != 'i' or last_kana == 'i': raise ValueError("Youon must follow an -i sound.") # Drop the -i and append the ya/yu/yo sound new_sound = _roomaji_youon[char] - if last_kana in ['shi', 'ji']: + if last_kana in ['chi', 'shi', 'ji']: # Strip the y- new_char = last_kana[:-1] + new_sound[1:] else: @@ -88,7 +88,8 @@ def romanize(string): last_kana = new_char # Sokuon - elif char in (u'っ', u'ッ'): + #elif char in (u'っ', u'ッ'): + elif char in (u'ッ',): # Remember it and double the consonant next time around last_kana = 'sokuon' @@ -131,4 +132,4 @@ def romanize(string): if last_kana == 'sokuon': raise ValueError("Sokuon cannot be the last character.") - return ''.join(characters) + return unicode(''.join(characters))