diff --git a/app.py b/app.py index 605ea97..b36029a 100644 --- a/app.py +++ b/app.py @@ -31,10 +31,10 @@ from ldap3.core.exceptions import LDAPBindError, LDAPConstraintViolationResult, import logging from os import getenv, environ, path import re -import sqlite3 -from data import flist, slist +from libs import flist, slist +from libs.localization import * +from libs.helper import * import random -import gettext BASE_DIR = path.dirname(__file__) LOG = logging.getLogger(__name__) @@ -134,6 +134,9 @@ def post_signup(): form = request.forms.getunicode isFake = False + manage_codes = Tools() + db = 'data/invite-codes.db' + def username_validation(e): regex = r'^\w+$' return(bool(re.fullmatch(regex, e))) @@ -142,23 +145,6 @@ def post_signup(): regex = r'\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b' return(bool(re.fullmatch(regex, e))) - def code_is_valid(code): - con = sqlite3.connect('data/invite-codes.db') - cur = con.cursor() - - codes=[] - for row in cur.execute('SELECT * FROM codes WHERE valid = 1'): - codes.append(row[0]) - - return(bool(code in codes)) - - def mark_code_as_used(code): - con = sqlite3.connect('data/invite-codes.db') - cur = con.cursor() - - cur.execute('''UPDATE codes SET valid=? WHERE code==?''',(0, code)) - con.commit() - def auto_complete(arg): if arg == 'firstname': result = random.choice(flist.firstname) @@ -169,7 +155,7 @@ def post_signup(): def error(msg): return signup_tpl(alerts=[('error', msg, 'fadeOut')], str=i18n.str) - if not code_is_valid(form('invite_code')): + if not manage_codes.code_is_valid(form('invite_code'), db): return(error(i18n.msg[4])) if len(form('username')) < 3: @@ -206,7 +192,7 @@ def post_signup(): return error(str(e)) try: - mark_code_as_used(form('invite_code')) + manage_codes.mark_code_as_used(form('invite_code'), db) except Error as e: LOG.warning("There was a problem verifying the invitation code, please try again later.", e) return error(str(e)) @@ -230,10 +216,10 @@ def post_edit_fullname(): return edit_fullname_tpl(alerts=[('error', msg, 'fadeOut')], data=newSession().get(), str=i18n.str) if len(form('firstname')) < 3: - return error(i18n.msg[10]) + return error(i18n.msg[11]) if len(form('surname')) < 3: - return error(i18n.msg[11]) + return error(i18n.msg[12]) try: edit_fullname(username, old_firstname, old_surname, form('firstname').lower(), form('surname').lower()) @@ -241,7 +227,7 @@ def post_edit_fullname(): LOG.warning("Unsuccessful attempt to edit fullname for %s: %s" % (username, e)) return error(str(e)) - return user_tpl(alerts=[('success', i18n.msg[12], 'fadeOut' )], data=newSession().get(), str=i18n.str) + return user_tpl(alerts=[('success', i18n.msg[13], 'fadeOut' )], data=newSession().get(), str=i18n.str) @post('/edit_email') def post_edit_email(): @@ -261,7 +247,7 @@ def post_edit_email(): return edit_email_tpl(alerts=[('error', msg, 'fadeOut')], data=newSession().get(), str=i18n.str) if not email_is_valid(form('email')): - return(error(i18n.msg[13])) + return(error(i18n.msg[14])) try: edit_email(username, old_email, form('email').lower()) @@ -269,7 +255,7 @@ def post_edit_email(): LOG.warning("Unsuccessful attempt to change email addres for %s: %s" % (username, e)) return error(str(e)) - return user_tpl(alerts=[('success', i18n.msg[14], 'fadeOut' )], data=newSession().get(), str=i18n.str) + return user_tpl(alerts=[('success', i18n.msg[16], 'fadeOut' )], data=newSession().get(), str=i18n.str) @post('/change_pwd') def post_change_pwd(): @@ -289,7 +275,7 @@ def post_change_pwd(): return error(i18n.msg[8]) if form('old-password') == form('confirm-password'): - return error(i18n.msg[15]) + return error(i18n.msg[17]) try: change_passwords(username, form('old-password'), form('new-password')) @@ -300,7 +286,7 @@ def post_change_pwd(): LOG.info("Password successfully changed for: %s" % username) - return index_tpl(alerts=[('success', i18n.msg[16], 'fadeOut')], username=username, str=i18n.str) + return index_tpl(alerts=[('success', i18n.msg[18], 'fadeOut')], username=username, str=i18n.str) @post('/delete') def post_delete(): @@ -314,14 +300,14 @@ def post_delete(): if(form('username').lower() == username): del_user(username) else: - return(error(i18n.msg[17])) + return(error(i18n.msg[19])) except Error as e: LOG.warning("Unsuccessful attempt to delete the account: %s" % e) return error(str(e)) LOG.info("Account successfully deleted") - return index_tpl(alerts=[('success', i18n.msg[18], 'fadeOut')], str=i18n.str) + return index_tpl(alerts=[('success', i18n.msg[20], 'fadeOut')], str=i18n.str) @route('/static/', name='static') def serve_static(filename): @@ -380,15 +366,15 @@ def login_user(conf, *args): login_user_ldap(conf, *args) except (LDAPBindError, LDAPInvalidCredentialsResult, LDAPUserNameIsMandatoryError): - raise Error(i18n.msg[19]) + raise Error(i18n.msg[21]) except LDAPSocketOpenError as e: LOG.error('{}: {!s}'.format(e.__class__.__name__, e)) - raise Error(i18n.msg[20]) + raise Error(i18n.msg[22]) except LDAPExceptionError as e: LOG.error('{}: {!s}'.format(e.__class__.__name__, e)) - raise Error(i18n.msg[21]) + raise Error(i18n.msg[23]) def login_user_ldap(conf, username, password): #set current LDAP @@ -428,15 +414,15 @@ def logout_user(conf, *args): logout_user_ldap(conf, *args) except (LDAPBindError, LDAPInvalidCredentialsResult, LDAPUserNameIsMandatoryError): - raise Error(i18n.msg[19]) + raise Error(i18n.msg[21]) except LDAPSocketOpenError as e: LOG.error('{}: {!s}'.format(e.__class__.__name__, e)) - raise Error(i18n.msg[20]) + raise Error(i18n.msg[22]) except LDAPExceptionError as e: LOG.error('{}: {!s}'.format(e.__class__.__name__, e)) - raise Error(i18n.msg[21]) + raise Error(i18n.msg[23]) def logout_user_ldap(conf, username): #set current LDAP @@ -475,15 +461,15 @@ def new_user_account(conf, *args): register(conf, *args) except (LDAPBindError, LDAPInvalidCredentialsResult, LDAPUserNameIsMandatoryError): - raise Error(i18n.msg[19]) + raise Error(i18n.msg[21]) except LDAPSocketOpenError as e: LOG.error('{}: {!s}'.format(e.__class__.__name__, e)) - raise Error(i18n.msg[20]) + raise Error(i18n.msg[22]) except LDAPExceptionError as e: LOG.error('{}: {!s}'.format(e.__class__.__name__, e)) - raise Error(i18n.msg[21]) + raise Error(i18n.msg[23]) def register(conf, username, firstname, surname, password, email, isFake): @@ -503,10 +489,10 @@ def register(conf, username, firstname, surname, password, email, isFake): try: if (find_user_dn(conf,c,username) is not None): - raise Error(i18n.msg[22]) + raise Error(i18n.msg[24]) if (find_email(conf,c,email)): - raise Error(i18n.msg[23]) + raise Error(i18n.msg[25]) except Error as e: raise e @@ -549,7 +535,7 @@ def new_fullname(conf, *args): update_fullname(conf, *args) except (LDAPBindError, LDAPInvalidCredentialsResult, LDAPUserNameIsMandatoryError): - raise Error(i18n.msg[24]) + raise Error(i18n.msg[26]) except LDAPConstraintViolationResult as e: # Extract useful part of the error message (for Samba 4 / AD). @@ -558,11 +544,11 @@ def new_fullname(conf, *args): except LDAPSocketOpenError as e: LOG.error('{}: {!s}'.format(e.__class__.__name__, e)) - raise Error(i18n.msg[20]) + raise Error(i18n.msg[22]) except LDAPExceptionError as e: LOG.error('{}: {!s}'.format(e.__class__.__name__, e)) - raise Error(i18n.msg[21]) + raise Error(i18n.msg[23]) def update_fullname(conf, username, firstname, surname): #set current LDAP @@ -581,7 +567,7 @@ def update_fullname(conf, username, firstname, surname): fakeFullName = user_dn[3:-len(base)].split(" ") if(user_dn == new_user_dn): - raise Error('Izen-abizenak ez dira aldatu.') + raise Error(i18n.msg[10]) c.modify(new_user_dn, {'fakeCn': [(MODIFY_REPLACE, 'false' )]}) newSession().set(get_user_data(new_user_dn, c)) @@ -612,7 +598,7 @@ def new_email_address(conf, *args): update_email_address(conf, *args) except (LDAPBindError, LDAPInvalidCredentialsResult, LDAPUserNameIsMandatoryError): - raise Error(i18n.msg[24]) + raise Error(i18n.msg[26]) except LDAPConstraintViolationResult as e: # Extract useful part of the error message (for Samba 4 / AD). @@ -621,16 +607,16 @@ def new_email_address(conf, *args): except LDAPSocketOpenError as e: LOG.error('{}: {!s}'.format(e.__class__.__name__, e)) - raise Error(i18n.msg[20]) + raise Error(i18n.msg[22]) except LDAPExceptionError as e: LOG.error('{}: {!s}'.format(e.__class__.__name__, e)) - raise Error(i18n.msg[21]) + raise Error(i18n.msg[23]) def update_email_address(conf, username, old_email, new_email): if(old_email == new_email): - raise Error('Email helbidea ez da aldatu.') + raise Error(i18n.msg[15]) #set current LDAP superUser = SuperUsers(conf) @@ -670,7 +656,7 @@ def change_password(conf, *args): change_password_ldap(conf, *args) except (LDAPBindError, LDAPInvalidCredentialsResult, LDAPUserNameIsMandatoryError): - raise Error(i18n.msg[24]) + raise Error(i18n.msg[26]) except LDAPConstraintViolationResult as e: # Extract useful part of the error message (for Samba 4 / AD). @@ -679,11 +665,11 @@ def change_password(conf, *args): except LDAPSocketOpenError as e: LOG.error('{}: {!s}'.format(e.__class__.__name__, e)) - raise Error(i18n.msg[20]) + raise Error(i18n.msg[22]) except LDAPExceptionError as e: LOG.error('{}: {!s}'.format(e.__class__.__name__, e)) - raise Error(i18n.msg[21]) + raise Error(i18n.msg[23]) def change_password_ldap(conf, username, old_pass, new_pass): @@ -729,11 +715,11 @@ def del_account(conf, *args): except LDAPSocketOpenError as e: LOG.error('{}: {!s}'.format(e.__class__.__name__, e)) - raise Error(i18n.msg[20]) + raise Error(i18n.msg[22]) except LDAPExceptionError as e: LOG.error('{}: {!s}'.format(e.__class__.__name__, e)) - raise Error(i18n.msg[21]) + raise Error(i18n.msg[23]) def delete(conf, username): #set current LDAP @@ -831,8 +817,9 @@ def newSession(): self.data = bottle.request.environ.get('beaker.session') self.lang = self.get_lang() #localization + self.lang = self.get_lang() global i18n - i18n = LocalizeTo(self.lang) + i18n = LocalizeTo(self.lang, CONF) def get_lang(self): if 'HTTP_ACCEPT_LANGUAGE' in bottle.request.environ: @@ -845,7 +832,7 @@ def newSession(): if 'username' in self.data: return(self.data) else: - raise Error(i18n.msg[25]) + raise Error(i18n.msg[27]) def set(self, data): self.active = data[0] @@ -871,71 +858,6 @@ def newSession(): s=Session() return s -class LocalizeTo(object): - """docstring for Session""" - def __init__(self, lang): - super(LocalizeTo, self).__init__() - translate = gettext.translation('base', localedir=CONF['locale']['dir'], languages=[lang]) - translate.install() - _ = translate.gettext - - #generic strings - str_00 = _("User") - str_01 = _("Username") - str_02 = _("Firstname") - str_03 = _("Surname") - str_04 = _("Password") - str_05 = _("Old password") - str_06 = _("New password") - str_07 = _("Confirm password") - str_08 = _("Email") - str_09 = _("edit") - str_10 = _("Login") - str_11 = _("Logout") - str_12 = _("Delete") - str_13 = _("Sign Up") - str_14 = _("Back") - str_15 = _("Update") - str_16 = _("Or Sign In") - str_17 = _("Or Sign Up") - str_18 = _("Invite code") - str_19 = _("Edit your fullname") - str_20 = _("Edit your email") - str_21 = _("Change your password") - str_22 = _("Delete your account") - str_23 = _("Welcome") - - #messages - msg_00 = _("The session was closed.") - msg_01 = _("Username must be at least 3 characters long!") - msg_02 = _("Please enter your password!") - msg_03 = _("Welcome") - msg_04 = _("The code is invalid or has expired.") - msg_05 = _("A bit short, don't you think?!") - msg_06 = _("Not allowed characters for the username field.") - msg_07 = _("Passwords do not match!") - msg_08 = _("Password must be at least 8 characters long!") - msg_09 = _("Congratulations, your account has been created!") - msg_10 = _("Your firstname is a bit short, don't you think?") - msg_11 = _("Your surname is a bit short, don't you think?") - msg_12 = _("Your first and last name have been successfully updated.") - msg_13 = _("Invalid email address. Please try again.") - msg_14 = _("Your email has been successfully updated.") - msg_15 = _("The password entered is the same as the current password.") - msg_16 = _("Password has been changed!") - msg_17 = _("Please, type your username for account deletion.") - msg_18 = _("Account successfully deleted!") - msg_19 = _("Username or password is incorrect!") - msg_20 = _("Unable to connect to the remote server.") - msg_21 = _("Encountered an unexpected error while communicating with the remote server.") - msg_22 = _("User already exists.") - msg_23 = _("Email already exists.") - msg_24 = _("Forgot your password? Please try again.") - msg_25 = _("The session has expired.") - - self.str = {'usr':str_00, 'usrn':str_01, 'fn':str_02, 'sn':str_03, 'pwd':str_04, 'old-pwd':str_05, 'new-pwd':str_06, 'conf-pwd':str_07, 'email':str_08, 'edit':str_09, 'login':str_10, 'log-out':str_11, 'del':str_12, 'sign-up':str_13, 'back':str_14, 'update':str_15, 'or-sign-in':str_16, 'or-sign-up':str_17, 'inv-code':str_18, 'edit-fn':str_19, 'edit-email':str_20, 'ch-pwd':str_21, 'del-account':str_22, 'welcome':str_23} - self.msg = (msg_00, msg_01, msg_02, msg_03, msg_04, msg_05, msg_06, msg_07, msg_08, msg_09, msg_10, msg_11, msg_12, msg_13, msg_14, msg_15, msg_16, msg_17, msg_18, msg_19, msg_20, msg_21, msg_22, msg_23, msg_24, msg_25) - if environ.get('DEBUG'): bottle.debug(True) diff --git a/data/__pycache__/fnlist.cpython-39.pyc b/data/__pycache__/fnlist.cpython-39.pyc deleted file mode 100644 index d4bb04f..0000000 Binary files a/data/__pycache__/fnlist.cpython-39.pyc and /dev/null differ diff --git a/data/invite-codes.db b/data/invite-codes.db index 80a141b..bb2c159 100644 Binary files a/data/invite-codes.db and b/data/invite-codes.db differ diff --git a/data/__pycache__/flist.cpython-39.pyc b/libs/__pycache__/flist.cpython-39.pyc similarity index 99% rename from data/__pycache__/flist.cpython-39.pyc rename to libs/__pycache__/flist.cpython-39.pyc index 0ff74a1..fd0bc85 100644 Binary files a/data/__pycache__/flist.cpython-39.pyc and b/libs/__pycache__/flist.cpython-39.pyc differ diff --git a/libs/__pycache__/helper.cpython-39.pyc b/libs/__pycache__/helper.cpython-39.pyc new file mode 100644 index 0000000..0a0d14d Binary files /dev/null and b/libs/__pycache__/helper.cpython-39.pyc differ diff --git a/libs/__pycache__/localization.cpython-39.pyc b/libs/__pycache__/localization.cpython-39.pyc new file mode 100644 index 0000000..cd9f3a1 Binary files /dev/null and b/libs/__pycache__/localization.cpython-39.pyc differ diff --git a/data/__pycache__/slist.cpython-39.pyc b/libs/__pycache__/slist.cpython-39.pyc similarity index 98% rename from data/__pycache__/slist.cpython-39.pyc rename to libs/__pycache__/slist.cpython-39.pyc index 28a698f..0b0bb15 100644 Binary files a/data/__pycache__/slist.cpython-39.pyc and b/libs/__pycache__/slist.cpython-39.pyc differ diff --git a/data/flist.py b/libs/flist.py similarity index 100% rename from data/flist.py rename to libs/flist.py diff --git a/libs/helper.py b/libs/helper.py new file mode 100644 index 0000000..f3e8eb9 --- /dev/null +++ b/libs/helper.py @@ -0,0 +1,25 @@ +#!/usr/bin/python3 + +import sqlite3 + +class Tools(): + + def __init__(self): + self.username = '' + + #check code + def code_is_valid(self, code, db): + con = sqlite3.connect(db) + cur = con.cursor() + + codes=[] + for row in cur.execute('SELECT * FROM codes WHERE valid = 1'): + codes.append(row[0]) + return(bool(code in codes)) + + def mark_code_as_used(self, code, db): + con = sqlite3.connect(db) + cur = con.cursor() + + cur.execute('''UPDATE codes SET valid=? WHERE code==?''',(0, code)) + con.commit() \ No newline at end of file diff --git a/libs/localization.py b/libs/localization.py new file mode 100644 index 0000000..8468404 --- /dev/null +++ b/libs/localization.py @@ -0,0 +1,68 @@ +import gettext + +class LocalizeTo(object): + """docstring for Session""" + def __init__(self, lang, conf): + super(LocalizeTo, self).__init__() + translate = gettext.translation('base', localedir=conf['locale']['dir'], languages=[lang]) + translate.install() + _ = translate.gettext + + #generic strings + str_00 = _("User") + str_01 = _("Username") + str_02 = _("Firstname") + str_03 = _("Surname") + str_04 = _("Password") + str_05 = _("Old password") + str_06 = _("New password") + str_07 = _("Confirm password") + str_08 = _("Email") + str_09 = _("edit") + str_10 = _("Login") + str_11 = _("Logout") + str_12 = _("Delete") + str_13 = _("Sign Up") + str_14 = _("Back") + str_15 = _("Update") + str_16 = _("Or Sign In") + str_17 = _("Or Sign Up") + str_18 = _("Invite code") + str_19 = _("Edit your fullname") + str_20 = _("Edit your email") + str_21 = _("Change your password") + str_22 = _("Delete your account") + str_23 = _("Welcome") + + #messages + msg_00 = _("The session was closed.") + msg_01 = _("Username must be at least 3 characters long!") + msg_02 = _("Please enter your password!") + msg_03 = _("Welcome") + msg_04 = _("The code is invalid or has expired.") + msg_05 = _("A bit short, don't you think?!") + msg_06 = _("Not allowed characters for the username field.") + msg_07 = _("Passwords do not match!") + msg_08 = _("Password must be at least 8 characters long!") + msg_09 = _("Congratulations, your account has been created!") + msg_10 = _("Your first and last name have not been changed.") + msg_11 = _("Your firstname is a bit short, don't you think?") + msg_12 = _("Your surname is a bit short, don't you think?") + msg_13 = _("Your first and last name have been successfully updated.") + msg_14 = _("Invalid email address. Please try again.") + msg_15 = _("Email address has not been changed.") + msg_16 = _("Your email has been successfully updated.") + msg_17 = _("The password entered is the same as the current password.") + msg_18 = _("Password has been changed!") + msg_19 = _("Please, type your username for account deletion.") + msg_20 = _("Account successfully deleted!") + msg_21 = _("Username or password is incorrect!") + msg_22 = _("Unable to connect to the remote server.") + msg_23 = _("Encountered an unexpected error while communicating with the remote server.") + msg_24 = _("User already exists.") + msg_25 = _("Email already exists.") + msg_26 = _("Forgot your password? Please try again.") + msg_27 = _("The session has expired.") + + self.str = {'usr':str_00, 'usrn':str_01, 'fn':str_02, 'sn':str_03, 'pwd':str_04, 'old-pwd':str_05, 'new-pwd':str_06, 'conf-pwd':str_07, 'email':str_08, 'edit':str_09, 'login':str_10, 'log-out':str_11, 'del':str_12, 'sign-up':str_13, 'back':str_14, 'update':str_15, 'or-sign-in':str_16, 'or-sign-up':str_17, 'inv-code':str_18, 'edit-fn':str_19, 'edit-email':str_20, 'ch-pwd':str_21, 'del-account':str_22, 'welcome':str_23} + self.msg = (msg_00, msg_01, msg_02, msg_03, msg_04, msg_05, msg_06, msg_07, msg_08, msg_09, msg_10, msg_11, msg_12, msg_13, msg_14, msg_15, msg_16, msg_17, msg_18, msg_19, msg_20, msg_21, msg_22, msg_23, msg_24, msg_25, msg_26, msg_27) diff --git a/data/slist.py b/libs/slist.py similarity index 100% rename from data/slist.py rename to libs/slist.py diff --git a/locales/base.pot b/locales/base.pot index 642cbd6..634d4af 100644 --- a/locales/base.pot +++ b/locales/base.pot @@ -17,199 +17,207 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: app.py:880 +#: libs/localization.py:12 msgid "User" msgstr "" -#: app.py:881 +#: libs/localization.py:13 msgid "Username" msgstr "" -#: app.py:882 +#: libs/localization.py:14 msgid "Firstname" msgstr "" -#: app.py:883 +#: libs/localization.py:15 msgid "Surname" msgstr "" -#: app.py:884 +#: libs/localization.py:16 msgid "Password" msgstr "" -#: app.py:885 +#: libs/localization.py:17 msgid "Old password" msgstr "" -#: app.py:886 +#: libs/localization.py:18 msgid "New password" msgstr "" -#: app.py:887 +#: libs/localization.py:19 msgid "Confirm password" msgstr "" -#: app.py:888 +#: libs/localization.py:20 msgid "Email" msgstr "" -#: app.py:889 +#: libs/localization.py:21 msgid "edit" msgstr "" -#: app.py:890 +#: libs/localization.py:22 msgid "Login" msgstr "" -#: app.py:891 +#: libs/localization.py:23 msgid "Logout" msgstr "" -#: app.py:892 +#: libs/localization.py:24 msgid "Delete" msgstr "" -#: app.py:893 +#: libs/localization.py:25 msgid "Sign Up" msgstr "" -#: app.py:894 +#: libs/localization.py:26 msgid "Back" msgstr "" -#: app.py:895 +#: libs/localization.py:27 msgid "Update" msgstr "" -#: app.py:896 +#: libs/localization.py:28 msgid "Or Sign In" msgstr "" -#: app.py:897 +#: libs/localization.py:29 msgid "Or Sign Up" msgstr "" -#: app.py:898 +#: libs/localization.py:30 msgid "Invite code" msgstr "" -#: app.py:899 +#: libs/localization.py:31 msgid "Edit your fullname" msgstr "" -#: app.py:900 +#: libs/localization.py:32 msgid "Edit your email" msgstr "" -#: app.py:901 +#: libs/localization.py:33 msgid "Change your password" msgstr "" -#: app.py:902 +#: libs/localization.py:34 msgid "Delete your account" msgstr "" -#: app.py:903 app.py:909 +#: libs/localization.py:35 libs/localization.py:41 msgid "Welcome" msgstr "" -#: app.py:906 +#: libs/localization.py:38 msgid "The session was closed." msgstr "" -#: app.py:907 +#: libs/localization.py:39 msgid "Username must be at least 3 characters long!" msgstr "" -#: app.py:908 +#: libs/localization.py:40 msgid "Please enter your password!" msgstr "" -#: app.py:910 +#: libs/localization.py:42 msgid "The code is invalid or has expired." msgstr "" -#: app.py:911 +#: libs/localization.py:43 msgid "A bit short, don't you think?!" msgstr "" -#: app.py:912 +#: libs/localization.py:44 msgid "Not allowed characters for the username field." msgstr "" -#: app.py:913 +#: libs/localization.py:45 msgid "Passwords do not match!" msgstr "" -#: app.py:914 +#: libs/localization.py:46 msgid "Password must be at least 8 characters long!" msgstr "" -#: app.py:915 +#: libs/localization.py:47 msgid "Congratulations, your account has been created!" msgstr "" -#: app.py:916 +#: libs/localization.py:48 +msgid "Your first and last name have not been changed." +msgstr "" + +#: libs/localization.py:49 msgid "Your firstname is a bit short, don't you think?" msgstr "" -#: app.py:917 +#: libs/localization.py:50 msgid "Your surname is a bit short, don't you think?" msgstr "" -#: app.py:918 +#: libs/localization.py:51 msgid "Your first and last name have been successfully updated." msgstr "" -#: app.py:919 +#: libs/localization.py:52 msgid "Invalid email address. Please try again." msgstr "" -#: app.py:920 +#: libs/localization.py:53 +msgid "Email address has not been changed." +msgstr "" + +#: libs/localization.py:54 msgid "Your email has been successfully updated." msgstr "" -#: app.py:921 +#: libs/localization.py:55 msgid "The password entered is the same as the current password." msgstr "" -#: app.py:922 +#: libs/localization.py:56 msgid "Password has been changed!" msgstr "" -#: app.py:923 +#: libs/localization.py:57 msgid "Please, type your username for account deletion." msgstr "" -#: app.py:924 +#: libs/localization.py:58 msgid "Account successfully deleted!" msgstr "" -#: app.py:925 +#: libs/localization.py:59 msgid "Username or password is incorrect!" msgstr "" -#: app.py:926 +#: libs/localization.py:60 msgid "Unable to connect to the remote server." msgstr "" -#: app.py:927 +#: libs/localization.py:61 msgid "" "Encountered an unexpected error while communicating with the remote server." msgstr "" -#: app.py:928 +#: libs/localization.py:62 msgid "User already exists." msgstr "" -#: app.py:929 +#: libs/localization.py:63 msgid "Email already exists." msgstr "" -#: app.py:930 +#: libs/localization.py:64 msgid "Forgot your password? Please try again." msgstr "" -#: app.py:931 +#: libs/localization.py:65 msgid "The session has expired." msgstr "" \ No newline at end of file diff --git a/locales/en/LC_MESSAGES/base.mo b/locales/en/LC_MESSAGES/base.mo index ddd17cc..c6e35c1 100644 Binary files a/locales/en/LC_MESSAGES/base.mo and b/locales/en/LC_MESSAGES/base.mo differ diff --git a/locales/en/LC_MESSAGES/base.po b/locales/en/LC_MESSAGES/base.po index 0dc32d1..a7831ec 100644 --- a/locales/en/LC_MESSAGES/base.po +++ b/locales/en/LC_MESSAGES/base.po @@ -3,213 +3,220 @@ # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , 2022. # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: 0.0.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-04-07 17:23+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"PO-Revision-Date: 2022-04-16 17:11+0200\n" "Last-Translator: Aitzol Berasategi \n" "Language-Team: LANGUAGE \n" -"Language: \n" +"Language: en\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.3\n" -#: app.py:880 +#: libs/localization.py:12 msgid "User" msgstr "User" -#: app.py:881 +#: libs/localization.py:13 msgid "Username" msgstr "Username" -#: app.py:882 +#: libs/localization.py:14 msgid "Firstname" msgstr "Firstname" -#: app.py:883 +#: libs/localization.py:15 msgid "Surname" msgstr "Surname" -#: app.py:884 +#: libs/localization.py:16 msgid "Password" msgstr "Password" -#: app.py:885 +#: libs/localization.py:17 msgid "Old password" msgstr "Old password" -#: app.py:886 +#: libs/localization.py:18 msgid "New password" msgstr "New password" -#: app.py:887 +#: libs/localization.py:19 msgid "Confirm password" msgstr "Confirm password" -#: app.py:888 +#: libs/localization.py:20 msgid "Email" msgstr "Email" -#: app.py:889 +#: libs/localization.py:21 msgid "edit" msgstr "edit" -#: app.py:890 +#: libs/localization.py:22 msgid "Login" msgstr "Login" -#: app.py:891 +#: libs/localization.py:23 msgid "Logout" msgstr "Logout" -#: app.py:892 +#: libs/localization.py:24 msgid "Delete" msgstr "Delete" -#: app.py:893 +#: libs/localization.py:25 msgid "Sign Up" msgstr "Sign Up" -#: app.py:894 +#: libs/localization.py:26 msgid "Back" msgstr "Back" -#: app.py:895 +#: libs/localization.py:27 msgid "Update" msgstr "Update" -#: app.py:896 +#: libs/localization.py:28 msgid "Or Sign In" msgstr "Or Sign In" -#: app.py:897 +#: libs/localization.py:29 msgid "Or Sign Up" msgstr "Or Sign Up" -#: app.py:898 +#: libs/localization.py:30 msgid "Invite code" msgstr "Invite code" -#: app.py:899 +#: libs/localization.py:31 msgid "Edit your fullname" msgstr "Edit your fullname" -#: app.py:900 +#: libs/localization.py:32 msgid "Edit your email" msgstr "Edit your email" -#: app.py:901 +#: libs/localization.py:33 msgid "Change your password" msgstr "Change your password" -#: app.py:902 +#: libs/localization.py:34 msgid "Delete your account" msgstr "Delete your account" -#: app.py:903 app.py:909 +#: libs/localization.py:35 libs/localization.py:41 msgid "Welcome" msgstr "Welcome" -#: app.py:906 +#: libs/localization.py:38 msgid "The session was closed." msgstr "The session was closed." -#: app.py:907 +#: libs/localization.py:39 msgid "Username must be at least 3 characters long!" msgstr "Username must be at least 3 characters long!" -#: app.py:908 +#: libs/localization.py:40 msgid "Please enter your password!" msgstr "Please enter your password!" -#: app.py:910 +#: libs/localization.py:42 msgid "The code is invalid or has expired." msgstr "The code is invalid or has expired." -#: app.py:911 +#: libs/localization.py:43 msgid "A bit short, don't you think?!" msgstr "A bit short, don't you think?!" -#: app.py:912 +#: libs/localization.py:44 msgid "Not allowed characters for the username field." msgstr "Not allowed characters for the username field." -#: app.py:913 +#: libs/localization.py:45 msgid "Passwords do not match!" msgstr "Passwords do not match!" -#: app.py:914 +#: libs/localization.py:46 msgid "Password must be at least 8 characters long!" msgstr "Password must be at least 8 characters long!" -#: app.py:915 +#: libs/localization.py:47 msgid "Congratulations, your account has been created!" msgstr "Congratulations, your account has been created!" -#: app.py:916 +#: libs/localization.py:48 +msgid "Your first and last name have not been changed." +msgstr "Your first and last name have not been changed." + +#: libs/localization.py:49 msgid "Your firstname is a bit short, don't you think?" msgstr "Your firstname is a bit short, don't you think?" -#: app.py:917 +#: libs/localization.py:50 msgid "Your surname is a bit short, don't you think?" msgstr "Your surname is a bit short, don't you think?" -#: app.py:918 +#: libs/localization.py:51 msgid "Your first and last name have been successfully updated." msgstr "Your first and last name have been successfully updated." -#: app.py:919 +#: libs/localization.py:52 msgid "Invalid email address. Please try again." msgstr "Invalid email address. Please try again." -#: app.py:920 +#: libs/localization.py:53 +msgid "Email address has not been changed." +msgstr "Email address has not been changed." + +#: libs/localization.py:54 msgid "Your email has been successfully updated." msgstr "Your email has been successfully updated." -#: app.py:921 +#: libs/localization.py:55 msgid "The password entered is the same as the current password." msgstr "The password entered is the same as the current password." -#: app.py:922 +#: libs/localization.py:56 msgid "Password has been changed!" msgstr "Password has been changed!" -#: app.py:923 +#: libs/localization.py:57 msgid "Please, type your username for account deletion." msgstr "Please, type your username for account deletion." -#: app.py:924 +#: libs/localization.py:58 msgid "Account successfully deleted!" msgstr "Account successfully deleted!" -#: app.py:925 +#: libs/localization.py:59 msgid "Username or password is incorrect!" msgstr "Username or password is incorrect!" -#: app.py:926 +#: libs/localization.py:60 msgid "Unable to connect to the remote server." msgstr "Unable to connect to the remote server." -#: app.py:927 -msgid "" -"Encountered an unexpected error while communicating with the remote server." +#: libs/localization.py:61 +msgid "Encountered an unexpected error while communicating with the remote server." msgstr "Encountered an unexpected error while communicating with the remote server." -#: app.py:928 +#: libs/localization.py:62 msgid "User already exists." msgstr "User already exists." -#: app.py:929 +#: libs/localization.py:63 msgid "Email already exists." msgstr "Email already exists." -#: app.py:930 +#: libs/localization.py:64 msgid "Forgot your password? Please try again." msgstr "Forgot your password? Please try again." -#: app.py:931 +#: libs/localization.py:65 msgid "The session has expired." -msgstr "The session has expired." +msgstr "The session has expired." \ No newline at end of file diff --git a/locales/eu/LC_MESSAGES/base.mo b/locales/eu/LC_MESSAGES/base.mo index 0f92fda..ac5e52f 100644 Binary files a/locales/eu/LC_MESSAGES/base.mo and b/locales/eu/LC_MESSAGES/base.mo differ diff --git a/locales/eu/LC_MESSAGES/base.po b/locales/eu/LC_MESSAGES/base.po index 9ee7630..7087c40 100644 --- a/locales/eu/LC_MESSAGES/base.po +++ b/locales/eu/LC_MESSAGES/base.po @@ -3,213 +3,220 @@ # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , 2022. # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: 0.0.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-04-07 17:23+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"PO-Revision-Date: 2022-04-16 17:13+0200\n" "Last-Translator: Aitzol Berasategi \n" "Language-Team: LANGUAGE \n" -"Language: \n" +"Language: eu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.3\n" -#: app.py:880 +#: libs/localization.py:12 msgid "User" msgstr "Erabiltzailea" -#: app.py:881 +#: libs/localization.py:13 msgid "Username" -msgstr "Erabiltzaile izena" +msgstr "Erabiltzailea" -#: app.py:882 +#: libs/localization.py:14 msgid "Firstname" msgstr "Izena" -#: app.py:883 +#: libs/localization.py:15 msgid "Surname" msgstr "Abizena" -#: app.py:884 +#: libs/localization.py:16 msgid "Password" msgstr "Pasahitza" -#: app.py:885 +#: libs/localization.py:17 msgid "Old password" msgstr "Pasahitz zaharra" -#: app.py:886 +#: libs/localization.py:18 msgid "New password" msgstr "Pasahitz berria" -#: app.py:887 +#: libs/localization.py:19 msgid "Confirm password" msgstr "Pasahitza berretsi" -#: app.py:888 +#: libs/localization.py:20 msgid "Email" msgstr "Emaila" -#: app.py:889 +#: libs/localization.py:21 msgid "edit" msgstr "editatu" -#: app.py:890 +#: libs/localization.py:22 msgid "Login" msgstr "Saioa hasi" -#: app.py:891 +#: libs/localization.py:23 msgid "Logout" msgstr "Saioa itxi" -#: app.py:892 +#: libs/localization.py:24 msgid "Delete" msgstr "Ezabatu" -#: app.py:893 +#: libs/localization.py:25 msgid "Sign Up" msgstr "Kontua sortu" -#: app.py:894 +#: libs/localization.py:26 msgid "Back" msgstr "Itzuli" -#: app.py:895 +#: libs/localization.py:27 msgid "Update" msgstr "Eguneratu" -#: app.py:896 +#: libs/localization.py:28 msgid "Or Sign In" msgstr "Edo Saioa hasi" -#: app.py:897 +#: libs/localization.py:29 msgid "Or Sign Up" msgstr "Edo Kontua sortu" -#: app.py:898 +#: libs/localization.py:30 msgid "Invite code" msgstr "Gonbidapen kodea" -#: app.py:899 +#: libs/localization.py:31 msgid "Edit your fullname" msgstr "Izen-abizenak editatu" -#: app.py:900 +#: libs/localization.py:32 msgid "Edit your email" msgstr "Email helbidea editatu" -#: app.py:901 +#: libs/localization.py:33 msgid "Change your password" msgstr "Pasahitza eguneratu" -#: app.py:902 +#: libs/localization.py:34 msgid "Delete your account" msgstr "Kontua ezabatu" -#: app.py:903 app.py:909 +#: libs/localization.py:35 libs/localization.py:41 msgid "Welcome" msgstr "Ongi etorri" -#: app.py:906 +#: libs/localization.py:38 msgid "The session was closed." msgstr "Saioa itxi da." -#: app.py:907 +#: libs/localization.py:39 msgid "Username must be at least 3 characters long!" msgstr "Erabiltzaile izenak gutxienez 3 karaktere izan behar ditu!" -#: app.py:908 +#: libs/localization.py:40 msgid "Please enter your password!" msgstr "Sartu zure pasahitza, mesedez!" -#: app.py:910 +#: libs/localization.py:42 msgid "The code is invalid or has expired." msgstr "Kodea baliogabea da edo iraungi egin da." -#: app.py:911 +#: libs/localization.py:43 msgid "A bit short, don't you think?!" -msgstr "Labur-xamarra, ez duzu uste?" +msgstr "Labur-xamarra, ez duzu uste?!" -#: app.py:912 +#: libs/localization.py:44 msgid "Not allowed characters for the username field." msgstr "Erabiltzaile izenerako onartzen ez diren karaktereak." -#: app.py:913 +#: libs/localization.py:45 msgid "Passwords do not match!" msgstr "Pasahitzak ez datoz bat!" -#: app.py:914 +#: libs/localization.py:46 msgid "Password must be at least 8 characters long!" msgstr "Pasahitzak gutxienez 8 karaktereko luzera izan behar du!" -#: app.py:915 +#: libs/localization.py:47 msgid "Congratulations, your account has been created!" msgstr "Zorionak, zure kontua sortu da!" -#: app.py:916 +#: libs/localization.py:48 +msgid "Your first and last name have not been changed." +msgstr "Zure izen-abizenak ez dira aldatu." + +#: libs/localization.py:49 msgid "Your firstname is a bit short, don't you think?" msgstr "Zure izena labur-xamarra da, ez duzu uste?" -#: app.py:917 +#: libs/localization.py:50 msgid "Your surname is a bit short, don't you think?" msgstr "Zure abizena labur-xamarra da, ez duzu uste?" -#: app.py:918 +#: libs/localization.py:51 msgid "Your first and last name have been successfully updated." msgstr "Zure izen-abizenak ongi eguneratu dira." -#: app.py:919 +#: libs/localization.py:52 msgid "Invalid email address. Please try again." -msgstr "Baliogabeko email helbidea. Saia zaitez berriz, mesedez. " +msgstr "Baliogabeko email helbidea. Saia zaitez berriz, mesedez." -#: app.py:920 +#: libs/localization.py:53 +msgid "Email address has not been changed." +msgstr "Email helbidea ez da aldatu." + +#: libs/localization.py:54 msgid "Your email has been successfully updated." msgstr "Zure emaila ongi eguneratu da." -#: app.py:921 +#: libs/localization.py:55 msgid "The password entered is the same as the current password." msgstr "Sartutako pasahitza egungo pasahitzaren berdina da." -#: app.py:922 +#: libs/localization.py:56 msgid "Password has been changed!" msgstr "Pasahitza eguneratua izan da!" -#: app.py:923 +#: libs/localization.py:57 msgid "Please, type your username for account deletion." msgstr "Kontua ezabatzeko idatzi zure erabiltzaile izena, mesedez." -#: app.py:924 +#: libs/localization.py:58 msgid "Account successfully deleted!" msgstr "Kontua ongi ezabatu da!" -#: app.py:925 +#: libs/localization.py:59 msgid "Username or password is incorrect!" msgstr "Erabiltzaile izena edo pasahitza okerrak dira!" -#: app.py:926 +#: libs/localization.py:60 msgid "Unable to connect to the remote server." msgstr "Ezinezkoa urruneko zerbitzara konektatzea." -#: app.py:927 -msgid "" -"Encountered an unexpected error while communicating with the remote server." +#: libs/localization.py:61 +msgid "Encountered an unexpected error while communicating with the remote server." msgstr "Ezusteko errore bat gertatu da urruneko zerbitzariarekin komunikatzean." -#: app.py:928 +#: libs/localization.py:62 msgid "User already exists." msgstr "Erabiltzaile hori existitzen da." -#: app.py:929 -msgid "Email already exists" +#: libs/localization.py:63 +msgid "Email already exists." msgstr "Email hori existitzen da." -#: app.py:930 +#: libs/localization.py:64 msgid "Forgot your password? Please try again." msgstr "Zure pasahitza ahaztu duzu? Saia zeitez berriz, mesedez." -#: app.py:931 +#: libs/localization.py:65 msgid "The session has expired." -msgstr "Saioa iraungi egin da." +msgstr "Saioa iraungi egin da." \ No newline at end of file