ya2 · news · projects · code · about

removed GameObject
[pmachines.git] / ya2 / utils / lang.py
CommitLineData
8ee66edd 1from logging import info
2aaa10d3 2from os.path import join, exists, dirname
8ee66edd 3from gettext import translation
2aaa10d3 4from pathlib import Path
2aaa10d3
FC
5import sys
6
7
8def is_runtime(): return not exists('main.py')
9
10
11def 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
17def 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 36class 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()