mirror of
https://github.com/markqvist/Sideband.git
synced 2025-07-28 01:05:32 -04:00
Restructured repository
This commit is contained in:
parent
46269dd82b
commit
0de4c12c17
274 changed files with 51617 additions and 45 deletions
49
sbapp/kivymd/tools/patterns/MVC/libs/translation.py
Normal file
49
sbapp/kivymd/tools/patterns/MVC/libs/translation.py
Normal file
|
@ -0,0 +1,49 @@
|
|||
import gettext
|
||||
|
||||
from kivy.lang import Observable
|
||||
|
||||
|
||||
class Translation(Observable):
|
||||
"""Original source - https://github.com/tito/kivy-gettext-example."""
|
||||
|
||||
observers = []
|
||||
|
||||
def __init__(self, defaultlang, domian, resource_dir):
|
||||
super().__init__()
|
||||
self.ugettext = None
|
||||
self.lang = defaultlang
|
||||
self.domian = domian
|
||||
self.resource_dir = resource_dir
|
||||
self.switch_lang(self.lang)
|
||||
|
||||
def _(self, text):
|
||||
return self.ugettext(text)
|
||||
|
||||
def fbind(self, name, func, args, **kwargs):
|
||||
if name == "_":
|
||||
self.observers.append((func, args, kwargs))
|
||||
else:
|
||||
return super().fbind(name, func, *args, **kwargs)
|
||||
|
||||
def funbind(self, name, func, args, **kwargs):
|
||||
if name == "_":
|
||||
key = (func, args, kwargs)
|
||||
if key in self.observers:
|
||||
self.observers.remove(key)
|
||||
else:
|
||||
return super().funbind(name, func, *args, **kwargs)
|
||||
|
||||
def switch_lang(self, lang):
|
||||
locales = gettext.translation(
|
||||
self.domian, self.resource_dir, languages=[lang]
|
||||
)
|
||||
try:
|
||||
self.ugettext = locales.ugettext
|
||||
except AttributeError:
|
||||
self.ugettext = locales.gettext
|
||||
|
||||
for func, largs, kwargs in self.observers:
|
||||
try:
|
||||
func(largs, None, None)
|
||||
except ReferenceError:
|
||||
pass
|
Loading…
Add table
Add a link
Reference in a new issue