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