-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathread_aloud_utils.py
More file actions
73 lines (65 loc) · 2.39 KB
/
Copy pathread_aloud_utils.py
File metadata and controls
73 lines (65 loc) · 2.39 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#
import re
import json
import locale
import ctypes
class localized:
# Switch to default UI's language if possible
_json_data = ""
_windll = ctypes.windll.kernel32
current_lang = locale.windows_locale[ _windll.GetUserDefaultUILanguage() ]
def __init__(self, langcode=None):
self.langdic = {\
"en_GB" : "English (Great Britain)",\
"en_US" : "English (United States)",\
"de_DE" : "German"\
}
self.current_language_name = "English (United States)"
try:
self.current_language_name = self.langdic[self.current_lang]
except:
pass
if langcode != None:
self.__prepareJson(langcode)
else:
self.__prepareJson(self.current_lang)
#
def __prepareJson(self, langcode):
try:
with open(f"locales/{langcode}.json") as jsd:
self._json_data = json.load(jsd)
jsd.close()
except:
with open(f"locales/default.json") as jsd:
self._json_data = json.load(jsd)
jsd.close()
finally:
with open(f"locales/default.json") as jsd:
self._default = json.load(jsd)
jsd.close()
def get(self, textkey):
if textkey in self._json_data:
return self._json_data[textkey]
if textkey in self._default:
return _default[textkey]
return textkey + " (no description available)"
class textfilter:
@staticmethod
def make_readable(rawtext):
rawtext = [re.sub(r"\n+", " ", str(x)) for x in rawtext]
rawtext = [re.sub(r"([a-z])([A-Z])", r"\1 \2", str(x)) for x in rawtext]
rawtext = [re.sub(r"([A-Z]{2,})([a-z])", r"\1 \2", str(x)) for x in rawtext]
rawtext = [re.sub(r"([0-9])([A-Z])", r"\1 \2", str(x)) for x in rawtext]
rawtext = [re.sub(r"([A-Z])([0-9])", r"\1 \2", str(x)) for x in rawtext]
rawtext = [re.sub(r"([0-9])([a-z])", r"\1 \2", str(x)) for x in rawtext]
rawtext = [re.sub(r"(\))([A-Z])", r"\1 \2", str(x)) for x in rawtext]
rawtext = [re.sub(r'– +', "–", str(x)) for x in rawtext]
# rawtext = [re.sub(r'\n', " ", str(x)) for x in rawtext]
rawtext = [re.sub(r'\s+', " ", str(x)) for x in rawtext]
####
# remove control bytes except from \0\t\r\n
rawtext = [re.sub(r"[\x01-\x08]", "", str(x)) for x in rawtext]
rawtext = [re.sub(r"[\x0b-\x0c]", "", str(x)) for x in rawtext]
rawtext = [re.sub(r"[\x0e-\x1f]", "", str(x)) for x in rawtext]
rawtext = [re.sub(r"[\x1f]", "", str(x)) for x in rawtext]
return rawtext