123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162 |
- CUSTOM_CHARS = {
- '\x06': '⏬',
- '\x04': '🔃',
- '\xdf': '°',
- '\xe1': 'ä',
- '\xe4': 'µ',
- '\xef': 'ö',
- '\xf5': 'ü',
- }
- TRANS_CHARS = {
- 'á': 'a',
- 'Á': 'A',
- 'à': 'a',
- 'À': 'A',
- 'â': 'a',
- 'Â': 'A',
- 'Ä': 'ä',
- 'å': 'a',
- 'Å': 'A',
- 'æ': 'ä',
- 'ą': 'a',
- 'Ą': 'A',
- 'ă': 'a',
- 'Ă': 'A',
- 'ć': 'c',
- 'Ć': 'C',
- 'ç': 'c',
- 'č': 'c',
- 'Č': 'C',
- 'ď': 'd',
- 'Ď': 'D',
- 'đ': 'd',
- 'Đ': 'D',
- 'é': 'e',
- 'É': 'E',
- 'è': 'e',
- 'È': 'E',
- 'ê': 'e',
- 'ě': 'e',
- 'ë': 'e',
- 'Ě': 'E',
- 'ę': 'e',
- 'Ę': 'E',
- 'í': 'i',
- 'Í': 'I',
- 'î': 'i',
- 'Î': 'I',
- 'ĺ': 'l',
- 'Ĺ': 'L',
- 'ł': 'l',
- 'Ł': 'L',
- 'ľ': 'l',
- 'Ľ': 'L',
- 'ń': 'n',
- 'Ń': 'N',
- 'ň': 'n',
- 'Ň': 'N',
- 'ñ': 'n',
- 'ó': 'o',
- 'Ó': 'O',
- 'ò': 'o',
- 'Ò': 'O',
- 'ô': 'o',
- 'Ô': 'O',
- 'œ': 'o',
- 'ø': 'ö',
- 'Ø': 'ö',
- 'Ö': 'ö',
- 'ő': 'o',
- 'Ő': 'O',
- 'ŕ': 'r',
- 'Ŕ': 'R',
- 'ř': 'r',
- 'Ř': 'R',
- 'ś': 's',
- 'Ś': 's',
- 'š': 's',
- 'Š': 'S',
- 'ș': 's',
- 'Ș': 'S',
- 'ß': 'ss',
- 'ť': 't',
- 'Ť': 'T',
- 'ț': 't',
- 'Ț': 'T',
- 'ú': 'u',
- 'Ú': 'U',
- 'ù': 'u',
- 'Ù': 'U',
- 'û': 'u',
- 'Ü': 'ü',
- 'ů': 'u',
- 'Ů': 'U',
- 'ű': 'u',
- 'Ű': 'U',
- 'ý': 'y',
- 'Ý': 'Y',
- 'ÿ': 'y',
- 'ź': 'z',
- 'Ź': 'Z',
- 'ž': 'z',
- 'Ž': 'z',
- 'ż': 'z',
- 'Ż': 'Z',
- '¿': '',
- '¡': '',
- }
- def _character_check(buf, valid_chars):
- for c in buf:
- if (not c.isascii() or not c.isprintable()) and c not in valid_chars:
- return c
- return None
- def source_check(buf):
- valid_chars = set(CUSTOM_CHARS.values())
- valid_chars.add('\n')
- return _character_check(buf, valid_chars)
- def translation_check(buf):
- valid_chars = set(CUSTOM_CHARS.keys())
- valid_chars.add('\n')
- return _character_check(buf, valid_chars)
- def source_to_unicode(buf):
- for src, dst in CUSTOM_CHARS.items():
- buf = buf.replace(src, dst)
- return buf
- def trans_replace(buf):
- for src, dst in TRANS_CHARS.items():
- buf = buf.replace(src, dst)
- return buf
- def unicode_to_source(buf):
- buf = trans_replace(buf)
- for dst, src in CUSTOM_CHARS.items():
- buf = buf.replace(src, dst)
- return buf
|