]> git.phdru.name Git - m_lib.git/blob - m_lib/rus/lat2rus.py
Fix encodings in m_lib/rus
[m_lib.git] / m_lib / rus / lat2rus.py
1 #! /usr/bin/env python
2 # -*- coding: koi8-r -*-
3
4 from __future__ import print_function
5 from ..lazy.dict import LazyDictInitFunc
6
7 #
8 # Lat -> Rus translation
9 #
10
11 lat2koi_d = {
12    "q": "й",
13    "w": "ц",
14    "e": "у",
15    "r": "к",
16    "t": "е",
17    "y": "н",
18    "u": "г",
19    "i": "ш",
20    "o": "щ",
21    "p": "з",
22    "[": "х",
23    "]": "ъ",
24    "a": "ф",
25    "s": "ы",
26    "d": "в",
27    "f": "а",
28    "g": "п",
29    "h": "р",
30    "j": "о",
31    "k": "л",
32    "l": "д",
33    ";": "ж",
34    "'": "э",
35    "z": "я",
36    "x": "ч",
37    "c": "с",
38    "v": "м",
39    "b": "и",
40    "n": "т",
41    "m": "ь",
42    ",": "б",
43    ".": "ю",
44    "Q": "Й",
45    "W": "Ц",
46    "E": "У",
47    "R": "К",
48    "T": "Е",
49    "Y": "Н",
50    "U": "Г",
51    "I": "Ш",
52    "O": "Щ",
53    "P": "З",
54    "{": "Х",
55    "}": "Ъ",
56    "A": "Ф",
57    "S": "Ы",
58    "D": "В",
59    "F": "А",
60    "G": "П",
61    "H": "Р",
62    "J": "О",
63    "K": "Л",
64    "L": "Д",
65    ":": "Ж",
66    "\"": "Э",
67    "Z": "Я",
68    "X": "Ч",
69    "C": "С",
70    "V": "М",
71    "B": "И",
72    "N": "Т",
73    "M": "Ь",
74    "<": "Б",
75    ">": "Ю",
76    "`": "ё",
77    "~": "Ё",
78    "!": "!",
79    "@": "\"",
80    "#": "#",
81    "$": "*",
82    "%": ":",
83    "^": ",",
84    "&": ".",
85    "*": ";",
86 }
87
88
89 def make_lat2xxx(encoding="cp1251"):
90    d = {}
91    for k, v in lat2koi_d.items():
92       d[k] = v
93    return d
94
95
96 lat2win_d = LazyDictInitFunc(make_lat2xxx, encoding="cp1251")
97
98
99 def lat2rus(instr, lat2rus_d = lat2koi_d):
100    out = []
101    for c in instr:
102       c = lat2rus_d.get(c, c)
103       out.append(c)
104    return ''.join(out)
105
106
107 lat2koi = lat2rus
108
109 def lat2win(instr):
110    return lat2rus(instr, lat2win_d)
111
112
113 if __name__ == "__main__":
114    Test = "Ghbdtn nt,t^ ghtrhfcysq vbh!"
115    print("Test:", Test)
116    print("Тест:", lat2koi(Test))
117    test = lat2win(Test)
118    print("Тест:", test)