Added support for gettext #2

Merged
absurdo merged 7 commits from gettext into master 2023-12-19 22:27:44 +00:00
4 changed files with 35 additions and 11 deletions
Showing only changes of commit 7584afe361 - Show all commits

View file

@ -3,7 +3,7 @@
from paramecio2.libraries.db.webmodel import WebModel from paramecio2.libraries.db.webmodel import WebModel
from paramecio2.libraries.db.coreforms import PasswordForm from paramecio2.libraries.db.coreforms import PasswordForm
from paramecio2.libraries.i18n import I18n from paramecio2.libraries.i18n import I18n
from flask import request from flask import request, session
class UserModel(WebModel): class UserModel(WebModel):
"""Model used with basic things for users login and signup """Model used with basic things for users login and signup
@ -46,7 +46,7 @@ class UserModel(WebModel):
repeat_password.required=1 repeat_password.required=1
repeat_password.label=I18n.lang('common', 'repeat_password', 'Repeat Password') repeat_password.label=_('Repeat Password')
repeat_password.field=self.fields[self.password_field] repeat_password.field=self.fields[self.password_field]
@ -99,7 +99,7 @@ class UserModel(WebModel):
if dict_values['repeat_password']!=dict_values[self.password_field]: if dict_values['repeat_password']!=dict_values[self.password_field]:
self.fields[self.password_field].error=True self.fields[self.password_field].error=True
self.fields[self.password_field].txt_error=I18n.lang('common', 'error_passwords_no_match', 'Error: passwords doesn\'t match') self.fields[self.password_field].txt_error=_('Error: passwords doesn\'t match')
error+=1 error+=1

View file

@ -1,5 +1,5 @@
from settings import config from settings import config
from flask import g, url_for from flask import g, url_for, session
from paramecio2.modules.admin.models.admin import UserAdmin from paramecio2.modules.admin.models.admin import UserAdmin
from paramecio2.libraries.generate_admin_class import GenerateAdminClass from paramecio2.libraries.generate_admin_class import GenerateAdminClass
from paramecio2.libraries.i18n import I18n, PGetText from paramecio2.libraries.i18n import I18n, PGetText
@ -56,6 +56,8 @@ def ausers():
admin.arr_fields_edit=['username', 'password', 'repeat_password', 'email', 'lang', 'dark_theme', 'double_auth', 'disabled', 'last_login'] admin.arr_fields_edit=['username', 'password', 'repeat_password', 'email', 'lang', 'dark_theme', 'double_auth', 'disabled', 'last_login']
admin.post_update=update_lang
form_admin=admin.show() form_admin=admin.show()
if type(form_admin).__name__=='str': if type(form_admin).__name__=='str':
@ -65,3 +67,11 @@ def ausers():
return form_admin return form_admin
def update_lang(admin, item_id):
arr_row=admin.model.select_a_row(item_id)
session['lang']=arr_row.get('lang', I18n.get_default_lang())
return True

View file

@ -1,14 +1,22 @@
from paramecio2.libraries.config_admin import config_admin from paramecio2.libraries.config_admin import config_admin
#from paramecio2.libraries.i18n import I18n, PGetText from paramecio2.libraries.i18n import I18n, PGetText
#modules_admin=[[I18n.lang('admin', 'users_admin', 'User\'s Admin'), 'paramecio.modules.admin.admin.ausers', 'ausers']] #modules_admin=[[I18n.lang('admin', 'users_admin', 'User\'s Admin'), 'paramecio.modules.admin.admin.ausers', 'ausers']]
#pgettext=PGetText(__file__+'/../') pgettext=PGetText(__file__+'/../')
#_=pgettext.gettext _=pgettext.gettext
config_admin.append([_('Users')]) def users_text():
return _('Users')
config_admin.append([_('Users edit'), 'paramecio2.modules.admin.admin.ausers', 'admin_app.ausers', 'fa-user']) def users_edit():
return _('Users edit')
config_admin.append([users_text])
config_admin.append([users_edit, 'paramecio2.modules.admin.admin.ausers', 'admin_app.ausers', 'fa-user'])
#config_admin.append([I18n.lang('admin', 'modules', 'Modules')]) #config_admin.append([I18n.lang('admin', 'modules', 'Modules')])

View file

@ -75,6 +75,7 @@ ${load_js()|n}
<% <%
class_selected='' class_selected=''
link_text=''
%> %>
@ -89,13 +90,18 @@ ${load_js()|n}
if len(admin)>3: if len(admin)>3:
icon_module=admin[3] icon_module=admin[3]
if type(admin[0]).__name__=='function':
link_text=admin[0]()
else:
link_text=admin[0]
%> %>
<li><a href="${url_for(admin[2])}" class="${class_selected}">&nbsp;<i class="fa ${icon_module}" aria-hidden="true"></i>${admin[0]}</a></li> <li><a href="${url_for(admin[2])}" class="${class_selected}">&nbsp;<i class="fa ${icon_module}" aria-hidden="true"></i>${link_text}</a></li>
% elif len(admin)==1: % elif len(admin)==1:
<li><div class="father_admin">${admin[0]}</div></li> <li><div class="father_admin">${link_text}</div></li>
% endif % endif