Changeset View
Changeset View
Standalone View
Standalone View
pykolab/translit.py
Show First 20 Lines • Show All 92 Lines • ▼ Show 20 Lines | translit_map = { | ||||
u'Ю': 'Yu', | u'Ю': 'Yu', | ||||
u'ю': 'yu', | u'ю': 'yu', | ||||
u'Я': 'Ya', | u'Я': 'Ya', | ||||
u'я': 'ya', | u'я': 'ya', | ||||
} | } | ||||
} | } | ||||
def transliterate(_input, lang, _output_expected=None): | def transliterate(_input, lang, _output_expected=None): | ||||
if locale_translit_map.has_key(lang): | if lang in locale_translit_map: | ||||
_translit_name = locale_translit_map[lang] | _translit_name = locale_translit_map[lang] | ||||
else: | else: | ||||
_translit_name = lang | _translit_name = lang | ||||
_output = '' | _output = '' | ||||
if not isinstance(_input, unicode): | if not isinstance(_input, unicode): | ||||
for char in _input.decode('utf-8'): | for char in _input.decode('utf-8'): | ||||
if translit_map.has_key(_translit_name): | if _translit_name in translit_map: | ||||
if translit_map[_translit_name].has_key(char): | if char in translit_map[_translit_name]: | ||||
_output += translit_map[_translit_name][char] | _output += translit_map[_translit_name][char] | ||||
elif char in [repr(x) for x in translit_map[_translit_name].keys()]: | elif char in [repr(x) for x in translit_map[_translit_name]]: | ||||
_output += translit_map[_translit_name][[char in [raw(x) for x in translit_map[_translit_name].keys()]][0]] | _output += translit_map[_translit_name][[char in [raw(x) for x in translit_map[_translit_name]]][0]] | ||||
else: | else: | ||||
_output += char | _output += char | ||||
else: | else: | ||||
_output += char | _output += char | ||||
else: | else: | ||||
for char in _input: | for char in _input: | ||||
if translit_map.has_key(_translit_name): | if _translit_name in translit_map: | ||||
if translit_map[_translit_name].has_key(char): | if char in translit_map[_translit_name]: | ||||
_output += translit_map[_translit_name][char] | _output += translit_map[_translit_name][char] | ||||
elif char in [repr(x) for x in translit_map[_translit_name].keys()]: | elif char in [repr(x) for x in translit_map[_translit_name]]: | ||||
_output += translit_map[_translit_name][[char in [raw(x) for x in translit_map[_translit_name].keys()]][0]] | _output += translit_map[_translit_name][[char in [raw(x) for x in translit_map[_translit_name]]][0]] | ||||
else: | else: | ||||
_output += char | _output += char | ||||
else: | else: | ||||
_output += char | _output += char | ||||
return _output | return _output | ||||