Commit | Line | Data |
---|---|---|
8ee66edd | 1 | from logging import info |
2aaa10d3 | 2 | from os.path import join, exists, dirname |
8ee66edd | 3 | from gettext import translation |
2aaa10d3 | 4 | from pathlib import Path |
2aaa10d3 FC |
5 | import sys |
6 | ||
7 | ||
8 | def is_runtime(): return not exists('main.py') | |
9 | ||
10 | ||
11 | def is_appimage(): | |
12 | par_path = str(Path(__file__).parent.absolute()) | |
13 | is_appimage = par_path.startswith('/tmp/.mount_Pmachines') | |
14 | return is_appimage and par_path.endswith('/usr/bin') | |
15 | ||
16 | ||
17 | def curr_path(): | |
e65a09cf FC |
18 | if not is_runtime(): |
19 | return '' | |
2aaa10d3 FC |
20 | if sys.platform == 'darwin': |
21 | return dirname(__file__) + '/../Resources/' | |
22 | # return dirname(__file__) | |
23 | par_path = str(Path(__file__).parent.absolute()) | |
24 | if is_appimage(): | |
25 | return str(Path(par_path).absolute()) | |
26 | is_snap = par_path.startswith('/snap/') | |
27 | is_snap = is_snap and par_path.endswith('/x1') | |
28 | if is_snap: | |
29 | return str(Path(par_path).absolute()) | |
e65a09cf | 30 | # return getcwd() |
2aaa10d3 FC |
31 | curr_path = dirname(__file__) |
32 | info('current path: %s' % curr_path) | |
33 | return curr_path + '/' | |
8ee66edd FC |
34 | |
35 | ||
aed9737a | 36 | class LangMgr: |
8ee66edd FC |
37 | |
38 | def __init__(self, lang, domain, dpath): | |
8ee66edd FC |
39 | self.lang = lang |
40 | self.domain = domain | |
2aaa10d3 | 41 | self.dpath = join(curr_path(), dpath) |
8ee66edd FC |
42 | info('language: %s, %s' % (self.domain, self.dpath)) |
43 | self.set_lang(lang) | |
44 | ||
45 | @property | |
46 | def lang_codes(self): | |
47 | return [lang[1] for lang in self.eng.cfg.lang_cfg.languages] | |
48 | ||
49 | def set_lang(self, lang): | |
50 | self.lang = lang | |
51 | args = lang, self.domain, self.dpath | |
52 | info('setting language %s, %s, %s' % args) | |
53 | tra = translation(self.domain, self.dpath, [lang], fallback=True) | |
54 | tra.install() |