from transliterate.discover import autodiscover
autodiscover()
from transliterate.base import TranslitLanguagePack, registry

class P37Translit(TranslitLanguagePack):
    language_code = "p37"
    language_name = "P37"
    mapping = (
        u"abvgdeziyklmnoprstufhcC''ABVGDEZIYKLMNOPRSTUFH''",
        u"абвгдезийклмнопрстуфхцЦъьАБВГДЕЗИЙКЛМНОПРСТУФХЪЬ",
    )

    reversed_specific_mapping = (
        u"эЭъьЪЬ",
        u"eE''''"
    )

    pre_processor_mapping = {
        u"zh": u"ж",
        u"ts": u"ц",
        u"ch": u"ч",
        u"sh": u"ш",
        u"sch": u"щ",
        u"ju": u"ю",
        u"ja": u"я",
        u"yo": u"ё",
        u"y'": u"ы",
        u"Zh": u"Ж",
        u"Ts": u"Ц",
        u"Ch": u"Ч",
        u"Sh": u"Ш",
        u"Sch": u"Щ",
        u"Ju": u"Ю",
        u"Ja": u"Я",
        u"Yo": u"Ё",
        u"Y'": u"Ы"
    }

class B20Translit(TranslitLanguagePack):
    language_code = "b20"
    language_name = "b20"
    mapping = (
        u"abvgdeziyklmnoprstuf'ABVGDEZIYKLMNOPRSTUF'",
        u"абвгдезийклмнопрстуфьАБВГДЕЗИЙКЛМНОПРСТУФЬ",
    )

    reversed_specific_mapping = (
        u"ьЬ",
        u"''"
    )

    pre_processor_mapping = {
        u"zh": u"ж",
        u"ts": u"ц",
        u"ch": u"ч",
        u"sh": u"ш",
        u"sch": u"щ",
        u"yu": u"ю",
        u"ya": u"я",
        u"yo": u"ё",
        u"yi": u"ы",
        u"Zh": u"Ж",
        u"Ts": u"Ц",
        u"Ch": u"Ч",
        u"Sh": u"Ш",
        u"Sch": u"Щ",
        u"Yu": u"Ю",
        u"Ya": u"Я",
        u"Yo": u"Ё",
        u"Yi": u"Ы",
        u"kh": u'х',
        u"Kh": u'Х',
        u"tz": u'ц',
        u"Tz": u'Ц',
        u"\"": u'ъ',
        u"''": u'Ъ',
        u"eh": u'э',
        u"Eh": u'Э'
    }

registry.register(P37Translit)
registry.register(B20Translit)