]> git.phdru.name Git - m_lib.git/blob - m_lib/rus/lat2rus.py
Version 2.0.1: add installation instruction in INSTALL.txt
[m_lib.git] / m_lib / rus / lat2rus.py
1 #! /usr/bin/env python
2 # -*- coding: koi8-r -*-
3
4 #
5 # Lat -> Rus translation
6 # Written by Broytman. Copyright (C) 2002 PhiloSoft Design
7 #
8
9 lat2koi_d = {
10    "q": "�",
11    "w": "�",
12    "e": "�",
13    "r": "�",
14    "t": "�",
15    "y": "�",
16    "u": "�",
17    "i": "�",
18    "o": "�",
19    "p": "�",
20    "[": "�",
21    "]": "�",
22    "a": "�",
23    "s": "�",
24    "d": "�",
25    "f": "�",
26    "g": "�",
27    "h": "�",
28    "j": "�",
29    "k": "�",
30    "l": "�",
31    ";": "�",
32    "'": "�",
33    "z": "�",
34    "x": "�",
35    "c": "�",
36    "v": "�",
37    "b": "�",
38    "n": "�",
39    "m": "�",
40    ",": "�",
41    ".": "�",
42    "Q": "�",
43    "W": "�",
44    "E": "�",
45    "R": "�",
46    "T": "�",
47    "Y": "�",
48    "U": "�",
49    "I": "�",
50    "O": "�",
51    "P": "�",
52    "{": "�",
53    "}": "�",
54    "A": "�",
55    "S": "�",
56    "D": "�",
57    "F": "�",
58    "G": "�",
59    "H": "�",
60    "J": "�",
61    "K": "�",
62    "L": "�",
63    ":": "�",
64    "\"": "�",
65    "Z": "�",
66    "X": "�",
67    "C": "�",
68    "V": "�",
69    "B": "�",
70    "N": "�",
71    "M": "�",
72    "<": "�",
73    ">": "�",
74    "`": "�",
75    "~": "�",
76    "!": "!",
77    "@": "\"",
78    "#": "#",
79    "$": "*",
80    "%": ":",
81    "^": ",",
82    "&": ".",
83    "*": ";"
84 }
85
86
87 def make_lat2xxx(encoding="cp1251"):
88    d = {}
89    for k, v in lat2koi_d.items():
90       v = unicode(v, "koi8-r").encode(encoding)
91       d[k] = v
92    return d
93
94
95 from m_lib.lazy.dict import LazyDictInitFunc
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       out.append(lat2rus_d.get(c, c))
103    return ''.join(out)
104
105
106 lat2koi = lat2rus
107
108 def lat2win(instr):
109    return lat2rus(instr, lat2win_d)
110
111
112 if __name__ == "__main__":
113    Test = "Ghbdtn nt,t^ ghtrhfcysq vbh!"
114    print "Test:", Test
115    print "����:", lat2koi(Test)
116    print "����:", unicode(lat2win(Test), "cp1251").encode("koi8-r")