Fixes for use gettext in paramecio, deprecating old language system

This commit is contained in:
absurdo 2023-12-17 22:16:09 +01:00
parent fc15bd74bb
commit 2ba2ac6d37
11 changed files with 66 additions and 34 deletions

View file

@ -18,9 +18,11 @@ from paramecio2.libraries.i18n import I18n
from paramecio2.libraries.urls import make_url, make_media_url, add_get_parameters
from paramecio2.libraries.formsutils import csrf_token
"""
def _(text):
return gettext.gettext(text)
"""
def env_theme(module, cache_enabled=True, cache_impl='', cache_args={}, module_directory="./tmp/modules"):
"""Function for create an environment for mako templates
@ -46,6 +48,8 @@ def env_theme(module, cache_enabled=True, cache_impl='', cache_args={}, module_d
module=path.dirname(module)
standard_templates=path.dirname(__file__)+'/templates'
standard_languages=path.dirname(__file__)+'/languages'
module_directory+='/'+module
@ -94,8 +98,6 @@ class PTemplate:
self.add_filter(I18n.lang)
self.add_filter(_)
#self.add_filter(make_url)
self.add_filter(make_media_url)
@ -109,6 +111,22 @@ class PTemplate:
self.add_filter(self.add_js)
self.add_filter(self.load_js)
# Loading language domain for gettext in templates
base_name=path.dirname(path.realpath(__file__))
module_env=self.env.directories[1].replace('/templates', '')
#print(path.basename(module_env)+' '+base_name+'/languages/')
self.l=gettext.translation(path.basename(module_env), base_name+'/languages/', languages=I18n.dict_i18n, fallback=True)
self.add_filter(self._)
def _(self, text):
return self.l.gettext(text)
def add_js(self, js, module=''):
"""Function for add js to self.js attribute