diff --git a/access.lua b/access.lua index 4636017..68895bf 100644 --- a/access.lua +++ b/access.lua @@ -204,14 +204,14 @@ function is_protected() end for _, url in ipairs(conf["protected_urls"]) do - if hlp.string.starts(ngx.var.host..ngx.var.uri, url) - or hlp.string.starts(ngx.var.uri, url) then + if hlp.string.starts(ngx.var.host..ngx.var.uri..hlp.uri_args_string(), url) + or hlp.string.starts(ngx.var.uri..hlp.uri_args_string(), url) then return true end end for _, regex in ipairs(conf["protected_regex"]) do - if string.match(ngx.var.host..ngx.var.uri, regex) - or string.match(ngx.var.uri, regex) then + if string.match(ngx.var.host..ngx.var.uri..hlp.uri_args_string(), regex) + or string.match(ngx.var.uri..hlp.uri_args_string(), regex) then return true end end diff --git a/conf.json b/conf.json index f1caac3..84e5118 100644 --- a/conf.json +++ b/conf.json @@ -1,16 +1,16 @@ { "portal_scheme": "https", - "portal_domain": "mydomain.com", + "portal_domain": "example.com", "portal_path": "/ssowat/", "domains": [ - "mydomain.com", - "myotherdomain.com" + "example.com", + "example.org" ], "skipped_urls": [ - "mydomain.com/megusta", - "myotherdomain.com/somuchwin" + "example.com/megusta", + "example.org/somuchwin" ], - "unprotected_urls": ["mydomain.com/yunoprotect"], + "unprotected_urls": ["example.com/yunoprotect"], "additional_headers": { "Auth-User": "uid", "Remote-User": "uid", @@ -19,12 +19,12 @@ }, "users": { "myuser": { - "mydomain.com/myapp": "My App", - "mydomain.com/myapp2": "My second App" + "example.com/myapp": "My App", + "example.com/myapp2": "My second App" }, "myuser2": { - "myotherdomain.com/myapp": "My other domain App", - "mydomain.com/myapp2": "My second App" + "example.org/myapp": "My other domain App", + "example.com/myapp2": "My second App" } } } diff --git a/config.lua b/config.lua index 4bfded9..ab31ebd 100644 --- a/config.lua +++ b/config.lua @@ -6,7 +6,7 @@ module('config', package.seeall) -function get_config () +function get_config() -- Load the configuration file local conf_file = assert(io.open(conf_path, "r"), "Configuration file is missing") diff --git a/helpers.lua b/helpers.lua index 9142628..1f23411 100644 --- a/helpers.lua +++ b/helpers.lua @@ -21,7 +21,7 @@ end -- Lua has no sugar :D -function is_in_table (t, v) +function is_in_table(t, v) for key, value in ipairs(t) do if value == v then return key end end @@ -37,19 +37,19 @@ end -- Test whether a string starts with another -function string.starts (String, Start) +function string.starts(String, Start) return string.sub(String, 1, string.len(Start)) == Start end -- Test whether a string ends with another -function string.ends (String, End) +function string.ends(String, End) return End=='' or string.sub(String, -string.len(End)) == End end -- Find a string by its translate key in the right language -function t (key) +function t(key) if conf.lang and i18n[conf.lang] then return i18n[conf.lang][key] or "" else @@ -60,7 +60,7 @@ end -- Store a message in the flash shared table in order to display it at the -- next response -function flash (wat, message) +function flash(wat, message) if wat == "fail" or wat == "win" or wat == "info" @@ -71,7 +71,7 @@ end -- Convert a table of arguments to an URI string -function uri_args_string (args) +function uri_args_string(args) if not args then args = ngx.req.get_uri_args() end @@ -84,7 +84,7 @@ end -- Set the Cross-Domain-Authentication key for a specific user -function set_cda_key () +function set_cda_key() local cda_key = random_string() cache:set(cda_key, authUser, 10) return cda_key @@ -102,7 +102,7 @@ end -- It enables the SSO to quickly retrieve the username and the session -- expiration time, and to prove their authenticity to avoid session hijacking. -- -function set_auth_cookie (user, domain) +function set_auth_cookie(user, domain) local maxAge = conf["session_max_timeout"] local expire = ngx.req.start_time() + maxAge local session_key = cache:get("session_"..user) @@ -128,7 +128,7 @@ end -- Expires the 3 session cookies -function delete_cookie () +function delete_cookie() conf = config.get_config() expired_time = "Thu, Jan 01 1970 00:00:00 UTC;" @@ -146,7 +146,7 @@ end -- Expires the redirection cookie -function delete_redirect_cookie () +function delete_redirect_cookie() expired_time = "Thu, Jan 01 1970 00:00:00 UTC;" local cookie_str = "; Path="..conf["portal_path"].. "; Max-Age="..expired_time @@ -159,7 +159,7 @@ end -- Check if the session cookies are set, and rehash server + client information -- to match the session hash. -- -function is_logged_in () +function is_logged_in() local expireTime = ngx.var.cookie_SSOwAuthExpire local user = ngx.var.cookie_SSOwAuthUser local authHash = ngx.var.cookie_SSOwAuthHash @@ -193,7 +193,7 @@ end -- Check whether a user is allowed to access a URL using the `users` directive -- of the configuration file -function has_access (user, url) +function has_access(user, url) user = user or authUser url = url or ngx.var.host..ngx.var.uri @@ -225,7 +225,7 @@ end -- Authenticate a user against the LDAP database using a username or an email -- address. -- Reminder: conf["ldap_identifier"] is "uid" by default -function authenticate (user, password) +function authenticate(user, password) conf = config.get_config() -- Try to find the username from an email address by openning an anonymous @@ -277,7 +277,7 @@ end -- Set the authentication headers in order to pass credentials to the -- application underneath. -function set_headers (user) +function set_headers(user) -- We definetly don't want to pass credential on a non-encrypted -- connection. @@ -298,7 +298,11 @@ function set_headers (user) -- If the user information is not in cache, open an LDAP connection and -- fetch it. if not cache:get(user.."-"..conf["ldap_identifier"]) then - ldap = lualdap.open_simple(conf["ldap_host"]) + ldap = lualdap.open_simple( + conf["ldap_host"], + conf["ldap_identifier"].."=".. user ..","..conf["ldap_group"], + cache:get(user.."-password") + ) ngx.log(ngx.NOTICE, "Reloading LDAP values for: "..user) for dn, attribs in ldap:search { base = conf["ldap_identifier"].."=".. user ..","..conf["ldap_group"], @@ -520,7 +524,7 @@ end -- Compute the user modification POST request -- It has to update cached information and edit the LDAP user entry -- according to the changes detected. -function edit_user () +function edit_user() conf = config.get_config() -- We need these calls since we are in a POST request @@ -768,7 +772,7 @@ end -- Compute the user login POST request -- It authenticates the user against the LDAP base then redirects to the portal -function login () +function login() -- We need these calls since we are in a POST request ngx.req.read_body() @@ -814,14 +818,14 @@ end -- Set cookie and redirect (needed to properly set cookie) -function redirect (url) +function redirect(url) ngx.log(ngx.NOTICE, "Redirect to: "..url) return ngx.redirect(url) end -- Set cookie and go on with the response (needed to properly set cookie) -function pass () +function pass() delete_redirect_cookie() -- When we are in the SSOwat portal, we need a default `content-type` diff --git a/init.lua b/init.lua index 24d0f9b..1794649 100644 --- a/init.lua +++ b/init.lua @@ -28,7 +28,7 @@ flashs = {} i18n = {} -- Efficient function to get a random string -function random_string () +function random_string() math.randomseed( tonumber(tostring(socket.gettime()*10000):reverse()) ) str = tostring(math.random()):sub(3) socket.sleep(1e-400) diff --git a/portal/locales/de.json b/portal/locales/de.json index 0e32b76..67b2d56 100644 --- a/portal/locales/de.json +++ b/portal/locales/de.json @@ -1,41 +1,41 @@ { - "portal": "YunoHost Portal", - "information": "Deine Informationen", - "username": "Benutzername", - "password": "Passwort", - "fullname": "Vollständiger Name", - "mail_addresses": "E-Mail Adressen", - "mail_forward": "E-Mail Weiterleitung", - "new_mail": "neuemail@meinedomain.org", - "new_forward": "neueweiterleitung@anderedomain.org", - "add_mail": "E-Mail alias hinzufügen", - "add_forward": "E-Mail Weiterleitung hinzufügen", - "ok": "OK", - "cancel": "Abbrechen", - "change_password": "Passwort ändern", - "edit": "Bearbeiten", - "current_password": "Derzeitiges Passwort", - "new_password": "Neues Passwort", - "confirm": "Bestätigen", - "login": "Anmelden", - "logout": "Abmelden", - "password_changed": "Passwort erfolgreich geändert", - "password_changed_error": "Beim ändern des Passworts ist ein Fehler aufgetreten", - "password_not_match": "Die neuen Passwörter stimmen nicht überein", - "wrong_current_password": "Derzeitiges Passwort ist falsch", - "invalid_mail": "Ungültige E-Mail Adresse", - "invalid_domain": "Ungültige Domain in", - "invalid_mailforward": "Ungültige E-Mail Weiterleitungsadresse", - "mail_already_used": "E-Mail Adresse wird bereits verwendet:", - "information_updated": "Informationen wurden aktualisiert", - "user_saving_fail": "Beim ändern der Benutzerinformationen ist ein Fehler aufgetreten", - "missing_required_fields": "Benötigte Felder fehlen", - "wrong_username_password": "Falscher Benutzername oder Passwort", - "logged_out": "Abgemeldet", - "please_login": "Bitte logge dich ein, um auf diesen Inhalt zu zugreifen", - "please_login_from_portal": "Bitte logge dich im Portal ein", - "footerlink_edit": "Mein Profil editieren", - "footerlink_documentation": "Dokumentation", - "footerlink_support": "Support", - "footerlink_administration": "Administration" -} + "add_forward": "E-Mail Weiterleitung hinzufügen", + "add_mail": "E-Mail Alias hinzufügen", + "cancel": "Abbrechen", + "change_password": "Passwort ändern", + "confirm": "Bestätigen", + "current_password": "Aktuelles Passwort", + "edit": "Bearbeiten", + "footerlink_administration": "Verwaltung", + "footerlink_documentation": "Dokumentation", + "footerlink_edit": "Mein Profil bearbeiten", + "footerlink_support": "Support", + "fullname": "Vollständiger Name", + "information": "Deine Informationen", + "information_updated": "Informationen wurden aktualisiert", + "invalid_domain": "Ungültige Domain angegeben", + "invalid_mail": "Ungültige E-Mail Adresse", + "invalid_mailforward": "Ungültige E-Mail Weiterleitung", + "logged_out": "Ausgeloggt", + "login": "Anmelden", + "logout": "Abmelden", + "mail_addresses": "E-Mail Adressen", + "mail_already_used": "Diese E-Mail Adresse wird bereits verwendet:", + "mail_forward": "E-Mail Weiterleitung", + "missing_required_fields": "Benötigte Felder fehlen", + "new_forward": "neueweiterleitung@anderedomain.org", + "new_mail": "neuemail@meinedomain.org", + "new_password": "Neues Passwort", + "ok": "OK", + "password": "Passwort", + "password_changed": "Passwort erfolgreich geändert", + "password_changed_error": "Beim Ändern des Passworts ist ein Fehler aufgetreten", + "password_not_match": "Die neuen Passwörter stimmen nicht überein", + "please_login": "Bitte logge dich ein, um auf diesen Inhalt zu zugreifen", + "please_login_from_portal": "Bitte logge dich am Portal ein", + "portal": "YunoHost Portal", + "user_saving_fail": "Ein Fehler trat beim Speichern der Änderungen auf", + "username": "Benutzername", + "wrong_current_password": "Aktuelles Passwort ist falsch", + "wrong_username_password": "Falscher Benutzername oder Passwort" +} \ No newline at end of file diff --git a/portal/locales/es.json b/portal/locales/es.json index b1c10a1..8ff7dd7 100644 --- a/portal/locales/es.json +++ b/portal/locales/es.json @@ -1,41 +1,41 @@ { - "portal": "Portal YunoHost", - "information": "Su información ", - "username": "Nombre de usuario", - "password": "Contraseña", - "fullname": "Nombre completo", - "mail_addresses": "Direcciones de correo electrónico", - "mail_forward": "Adelante correo electrónico", - "new_mail": "nuevomail@midominio.org", - "new_forward": "nuevoadelante@miextranjerodominio.org", - "add_mail": "Añadir un alias de correo electrónico ", "add_forward": "Añadir un adelante de correo electrónico ", - "ok": "OK", + "add_mail": "Añadir un alias de correo electrónico ", "cancel": "Cancelar", "change_password": "Cambiar la contraseña", - "edit": "Editar", - "current_password": "Contraseña actual", - "new_password": "Nueva contraseña", "confirm": "Confirmar", + "current_password": "Contraseña actual", + "edit": "Editar", + "footerlink_administration": "Administración", + "footerlink_documentation": "Documentación", + "footerlink_edit": "Cambiar mi perfil", + "footerlink_support": "Apoyo", + "fullname": "Nombre completo", + "information": "Su información ", + "information_updated": "Información actualizada ", + "invalid_domain": "Dominio no válido en la", + "invalid_mail": "Dirección de correo electrónico no es válido", + "invalid_mailforward": "Adelante dirección de correo electrónico no es válido", + "logged_out": "Sesión cerrada", "login": "Login", "logout": "Logout", + "mail_addresses": "Direcciones de correo electrónico", + "mail_already_used": "Mail ya utilizado:", + "mail_forward": "Adelante correo electrónico", + "missing_required_fields": "Los campos necesarios están desaparecidos", + "new_forward": "nuevoadelante@miextranjerodominio.org", + "new_mail": "nuevomail@midominio.org", + "new_password": "Nueva contraseña", + "ok": "OK", + "password": "Contraseña", "password_changed": "Contraseña se ha cambiado satisfactoriamente", "password_changed_error": "Se produjo un error en el cambio de contraseña ", "password_not_match": "Las nuevas contraseñas no coinciden", - "wrong_current_password": "La contraseña actual es incorrecto", - "invalid_mail": "Dirección de correo electrónico no es válido", - "invalid_domain": "Dominio no válido en la", - "invalid_mailforward": "Adelante dirección de correo electrónico no es válido", - "mail_already_used": "Mail ya utilizado:", - "information_updated": "Información actualizada ", - "user_saving_fail": "Se produjo un error en el ahorro de la modificación del usuario ", - "missing_required_fields": "Los campos necesarios están desaparecidos", - "wrong_username_password": "Nombre de usuario o contraseña incorrectos", - "logged_out": "Sesión cerrada", "please_login": "Por favor, inicie sesión para acceder a este contenido", "please_login_from_portal": "Por favor, iniciar sesión desde el portal", - "footerlink_edit": "Cambiar mi perfil", - "footerlink_documentation": "Documentación", - "footerlink_support": "Apoyo", - "footerlink_administration": "Administración" -} \ No newline at end of file + "portal": "Portal YunoHost", + "user_saving_fail": "Se produjo un error en el ahorro de la modificación del usuario ", + "username": "Nombre de usuario", + "wrong_current_password": "La contraseña actual es incorrecto", + "wrong_username_password": "Nombre de usuario o contraseña incorrectos" +} diff --git a/portal/locales/fr.json b/portal/locales/fr.json index 948961f..595008b 100644 --- a/portal/locales/fr.json +++ b/portal/locales/fr.json @@ -1,41 +1,41 @@ { - "portal": "Portail YunoHost", - "information": "Vos informations", - "username": "Nom d'utilisateur", - "password": "Mot de passe", - "fullname": "Nom complet", - "mail_addresses": "Adresses email", - "mail_forward": "Adresses de transfert", - "new_mail": "nouvelle_adresse@domaine.org", - "new_forward": "nouveau_transfert@domainedistant.org", - "add_mail": "Ajouter une adresse email", "add_forward": "Ajouter une adresse de transfert", - "ok": "Valider", + "add_mail": "Ajouter une adresse email", "cancel": "Annuler", "change_password": "Changer de mot de passe", - "edit": "Éditer", - "current_password": "Mot de passe actuel", - "new_password": "Nouveau mot de passe", "confirm": "Confirmation", + "current_password": "Mot de passe actuel", + "edit": "Éditer", + "footerlink_administration": "Administration", + "footerlink_documentation": "Documentation", + "footerlink_edit": "Éditer mon profil", + "footerlink_support": "Support", + "fullname": "Nom complet", + "information": "Vos informations", + "information_updated": "Informations mises à jour", + "invalid_domain": "Nom de domaine invalide dans", + "invalid_mail": "Adresse email invalide", + "invalid_mailforward": "Adresse email de transfert invalide", + "logged_out": "Déconnecté", "login": "Connexion", "logout": "Déconnexion", + "mail_addresses": "Adresses email", + "mail_already_used": "Adresse déjà utilisée :", + "mail_forward": "Adresses de transfert", + "missing_required_fields": "Champs requis manquants", + "new_forward": "nouveau_transfert@domainedistant.org", + "new_mail": "nouvelle_adresse@domaine.org", + "new_password": "Nouveau mot de passe", + "ok": "Valider", + "password": "Mot de passe", "password_changed": "Mot de passe modifié", "password_changed_error": "Une erreur s'est produite lors du changement de mot de passe", "password_not_match": "Les nouveaux mots de passe ne correspondent pas", - "wrong_current_password": "Le mot de passe actuel est incorrect", - "invalid_mail": "Adresse email invalide", - "invalid_domain": "Nom de domaine invalide dans", - "invalid_mailforward": "Adresse email de transfert invalide", - "mail_already_used": "Adresse déjà utilisée :", - "information_updated": "Informations mises à jour", - "user_saving_fail": "Une erreur s'est produite lors de la modification des informations", - "missing_required_fields": "Champs requis manquants", - "wrong_username_password": "Nom d'utilisateur ou mot de passe incorrect", - "logged_out": "Déconnecté", "please_login": "Veuillez vous identifier pour accéder à cette page", "please_login_from_portal": "Veuillez vous identifiez depuis le portail", - "footerlink_edit": "Éditer mon profil", - "footerlink_documentation": "Documentation", - "footerlink_support": "Support", - "footerlink_administration": "Administration" + "portal": "Portail YunoHost", + "user_saving_fail": "Une erreur s'est produite lors de la modification des informations", + "username": "Nom d'utilisateur", + "wrong_current_password": "Le mot de passe actuel est incorrect", + "wrong_username_password": "Nom d'utilisateur ou mot de passe incorrect" } diff --git a/portal/locales/it.json b/portal/locales/it.json new file mode 100644 index 0000000..637fd0d --- /dev/null +++ b/portal/locales/it.json @@ -0,0 +1,41 @@ +{ + "add_forward": "Aggiungi un inoltro email", + "add_mail": "Aggiungi un alias email", + "cancel": "Annulla", + "change_password": "Cambia password", + "confirm": "Conferma", + "current_password": "Password attuale", + "edit": "Modifica", + "footerlink_administration": "Amministrazione", + "footerlink_documentation": "Documentazione", + "footerlink_edit": "Modifica il mio profilo", + "footerlink_support": "Supporto", + "fullname": "Nome completo", + "information": "Le tue informazioni", + "information_updated": "Informazioni aggiornate", + "invalid_domain": "Dominio non valido", + "invalid_mail": "Indirizzo email non valido", + "invalid_mailforward": "Indirizzo di inoltro email non valido", + "logged_out": "Uscita effettuata", + "login": "Accedi", + "logout": "Esci", + "mail_addresses": "Indirizzo email", + "mail_already_used": "Indirizzo email già utilizzato:", + "mail_forward": "Email di inoltro", + "missing_required_fields": "Campi obbligatori non compilati", + "new_forward": "nuovoinoltro@miodominiodifferente.org", + "new_mail": "nuovaemail@miodominio.org", + "new_password": "Nuova password", + "ok": "OK", + "password": "Password", + "password_changed": "Password cambiata con successo", + "password_changed_error": "Si è verificato un errore durante il cambio password", + "password_not_match": "Le nuove password non corrispondono", + "please_login": "Per favore, accedi per visualizzare il contenuto", + "please_login_from_portal": "Per favore, accedi dal portale", + "portal": "Portale YunoHost", + "user_saving_fail": "Si è verificato un errore durante il salvataggio delle modifiche dell'utente", + "username": "Nome utente", + "wrong_current_password": "La password attuale è sbagliata", + "wrong_username_password": "Nome utente o password sbagliati" +} diff --git a/portal/locales/nl.json b/portal/locales/nl.json new file mode 100644 index 0000000..91a6712 --- /dev/null +++ b/portal/locales/nl.json @@ -0,0 +1,41 @@ +{ + "add_forward": "Voeg een email forward toe", + "add_mail": "Voeg een emailalias toe", + "cancel": "Annuleren", + "change_password": "Verander wachtwoord", + "confirm": "Bevestigen", + "current_password": "Huidig wachtwoord", + "edit": "Bewerken", + "footerlink_administration": "Administratie", + "footerlink_documentation": "Documentatie", + "footerlink_edit": "Bewerk mijn profiel", + "footerlink_support": "Ondersteuning", + "fullname": "Volledige naam", + "information": "Uw informatie", + "information_updated": "Informatie bijgewerkt", + "invalid_domain": "Ongeldig domein", + "invalid_mail": "Ongeldig emailadres", + "invalid_mailforward": "Ongeldig email-forward adres ", + "logged_out": "Uitgelogd ", + "login": "Inloggen", + "logout": "Uitloggen", + "mail_addresses": "Emailadressen", + "mail_already_used": "Emailadres al gebruikt:", + "mail_forward": "Email forward", + "missing_required_fields": "Verplichte velden zijn niet ingevuld", + "new_forward": "nieuwe_forward@mijndomein.org", + "new_mail": "nieuwe_email@mijndomein.org", + "new_password": "Nieuw wachtwoord", + "ok": "Ok", + "password": "Wachtwoord", + "password_changed": "Wachtwoord successvol verandert", + "password_changed_error": "Er is een fout opgetreden bij het veranderen van het wachtwoord", + "password_not_match": "Nieuwe wachtwoorden zijn niet gelijk", + "please_login": "Log in om toegang te krijgen tot deze inhoud", + "please_login_from_portal": "Log in vanaf het portaal", + "portal": "YunoHost Portaal", + "user_saving_fail": "Er is een fout opgetreden bij het opslaan van wijzigingen aan gebruiker", + "username": "Gebruikersnaam", + "wrong_current_password": "Huidig wachtwoord is verkeerd", + "wrong_username_password": "Verkeerde gebruikersnaam of wachtwoord" +} diff --git a/portal/locales/pl.json b/portal/locales/pl.json index 274e4d9..961c06d 100644 --- a/portal/locales/pl.json +++ b/portal/locales/pl.json @@ -1,29 +1,29 @@ { - "portal": "YunoHost Portal", - "information": "Your information", - "username": "Nazwa użytkownika", - "password": "Hasło", - "fullname": "Imię i nazwisko", - "mail_addresses": "Adresy E-mail", - "new_mail": "nowymail@domena.org", - "new_forward": "newforward@myforeigndomain.org", "add_mail": "Dodaj dodatkowy email", - "ok": "Akceptuj", "cancel": "Anuluj", "change_password": "Zmień hasło", - "edit": "Edytuj", - "current_password": "Aktualne hasło", - "new_password": "Nowe hasło", "confirm": "Potwierdź", + "current_password": "Aktualne hasło", + "edit": "Edytuj", + "footerlink_administration": "Panel administracyjny", + "footerlink_documentation": "Dokumentacja", + "footerlink_edit": "Edytuj mój profil", + "footerlink_support": "Pomoc techniczna", + "fullname": "Imię i nazwisko", + "information": "Your information", + "logged_out": "Wylogowany", "login": "Zaloguj", "logout": "Wyloguj", - "password_changed": "Hasło zmienione", + "mail_addresses": "Adresy E-mail", "mail_already_used": "Ten adres e-mail aktualnie w użyciu:", - "wrong_username_password": "Zła nazwa użytkownika lub hasło", - "logged_out": "Wylogowany", + "new_forward": "newforward@myforeigndomain.org", + "new_mail": "nowymail@domena.org", + "new_password": "Nowe hasło", + "ok": "Akceptuj", + "password": "Hasło", + "password_changed": "Hasło zmienione", "please_login": "Proszę się zalogować by uzyskać dostęp do tej strony", - "footerlink_edit": "Edytuj mój profil", - "footerlink_documentation": "Dokumentacja", - "footerlink_support": "Pomoc techniczna", - "footerlink_administration": "Panel administracyjny" + "portal": "YunoHost Portal", + "username": "Nazwa użytkownika", + "wrong_username_password": "Zła nazwa użytkownika lub hasło" } diff --git a/portal/locales/pt.json b/portal/locales/pt.json index a076a4a..60174e7 100644 --- a/portal/locales/pt.json +++ b/portal/locales/pt.json @@ -1,41 +1,41 @@ { - "portal": "Portal YunoHost", - "information": "Informação pessoal", - "username": "Nome de utilizador", - "password": "Senha", - "fullname": "Nome completo", - "mail_addresses": "Correio eletrónico", - "mail_forward": "Reencaminhar mensagem", - "new_mail": "novomail@meudominio.org", - "new_forward": "novoreenvio@dominioexterno.org", - "add_mail": "Adicionar nova etiqueta a mensagens", - "add_forward": "Adicionar reencaminhamento de mensagem", - "ok": "Confirmar", - "cancel": "Cancelar", - "change_password": "Alterar senha", - "edit": "Editar", - "current_password": "Senha atual", - "new_password": "Nova senha", - "confirm": "Confirmar", - "login": "Iniciar sessão", - "logout": "Terminar sessão", - "password_changed": "Senha alterada com êxito", - "password_changed_error": "Ocorreu um erro durante a alteração da senha", - "password_not_match": "As senhas novas não coincidem", - "wrong_current_password": "Senha atual está errada", - "invalid_mail": "Endereço de correio inválido", - "invalid_domain": "Domínio inválido em", - "invalid_mailforward": "Endereço de correio para reencaminhamento inválido", - "mail_already_used": "O endereço de correio já está utilizado.", - "information_updated": "Informação atualizada", - "user_saving_fail": "Ocorreu um erro ao guardar as modificações do utilizador.", - "missing_required_fields": "Campos obrigatórios em falta", - "wrong_username_password": "Nome de utilizador e senha errados", - "logged_out": "Ligação terminada", - "please_login": "Por favor inicie sessão para aceder a este conteúdo", - "please_login_from_portal": "Por favor inicie sessão no portal", - "footerlink_edit": "Editar o meu perfil", - "footerlink_documentation": "Documentação", - "footerlink_support": "Suporte", - "footerlink_administration": "Administração" + "add_forward": "Adicionar reencaminhamento de mensagem", + "add_mail": "Adicionar nova etiqueta a mensagens", + "cancel": "Cancelar", + "change_password": "Alterar senha", + "confirm": "Confirmar", + "current_password": "Senha atual", + "edit": "Editar", + "footerlink_administration": "Administração", + "footerlink_documentation": "Documentação", + "footerlink_edit": "Editar o meu perfil", + "footerlink_support": "Suporte", + "fullname": "Nome completo", + "information": "Informação pessoal", + "information_updated": "Informação atualizada", + "invalid_domain": "Domínio inválido em", + "invalid_mail": "Endereço de correio inválido", + "invalid_mailforward": "Endereço de correio para reencaminhamento inválido", + "logged_out": "Sessão terminada", + "login": "Iniciar sessão", + "logout": "Terminar sessão", + "mail_addresses": "Correio eletrónico", + "mail_already_used": "O endereço de correio já está utilizado.", + "mail_forward": "Reencaminhar mensagem", + "missing_required_fields": "Campos obrigatórios em falta", + "new_forward": "novoreenvio@dominioexterno.org", + "new_mail": "novomail@meudominio.org", + "new_password": "Nova senha", + "ok": "Confirmar", + "password": "Senha", + "password_changed": "Senha alterada com êxito", + "password_changed_error": "Ocorreu um erro durante a alteração da senha", + "password_not_match": "As senhas novas não coincidem", + "please_login": "Por favor inicie sessão para aceder a este conteúdo", + "please_login_from_portal": "Por favor inicie sessão no portal", + "portal": "Portal YunoHost", + "user_saving_fail": "Ocorreu um erro ao guardar as modificações do utilizador.", + "username": "Nome de utilizador", + "wrong_current_password": "Senha atual está errada", + "wrong_username_password": "Nome de utilizador e senha errados" } \ No newline at end of file diff --git a/portal/locales/tr.json b/portal/locales/tr.json index 00e551c..e46043d 100644 --- a/portal/locales/tr.json +++ b/portal/locales/tr.json @@ -1,41 +1,41 @@ { - "portal": "YunoHost Portalı", - "information": "Bilgileriniz", - "username": "Kullanıcı adı", - "password": "Parola", - "fullname": "İsim", - "mail_addresses": "E-posta adresleri", - "mail_forward": "E-posta yönlendirme", - "new_mail": "newmail@mydomain.org", - "new_forward": "newforward@myforeigndomain.org", - "add_mail": "E-posta alias'ı ekle", "add_forward": "E-posta yönlendirmesi ekle", - "ok": "Tamam", + "add_mail": "E-posta alias'ı ekle", "cancel": "İptal", "change_password": "Parolayı değiştir", - "edit": "Düzenle", - "current_password": "Mevcut parola", - "new_password": "Yeni parola", "confirm": "Onayla", + "current_password": "Mevcut parola", + "edit": "Düzenle", + "footerlink_administration": "Yönetim", + "footerlink_documentation": "Belgelendirme", + "footerlink_edit": "Profilimi düzenle", + "footerlink_support": "Destek", + "fullname": "İsim", + "information": "Bilgileriniz", + "information_updated": "Bilgileriniz güncellendi", + "invalid_domain": "Geçersiz domain", + "invalid_mail": "Geçersiz e-posta adresi", + "invalid_mailforward": "Geçersiz e-posta yönlendirme adresi", + "logged_out": "Çıkış yapıldı", "login": "Giriş yap", "logout": "Çıkış yap", + "mail_addresses": "E-posta adresleri", + "mail_already_used": "Mail adresi zaten kullanılıyor", + "mail_forward": "E-posta yönlendirme", + "missing_required_fields": "Gerekli alanlar eksik", + "new_forward": "newforward@myforeigndomain.org", + "new_mail": "newmail@mydomain.org", + "new_password": "Yeni parola", + "ok": "Tamam", + "password": "Parola", "password_changed": "Parola başarıyla değiştirildi", "password_changed_error": "Parola değiştirirken hata oluştu", "password_not_match": "Parolalar uyuşmuyor", - "wrong_current_password": "Mevcut parola yanlış", - "invalid_mail": "Geçersiz e-posta adresi", - "invalid_domain": "Geçersiz domain", - "invalid_mailforward": "Geçersiz e-posta yönlendirme adresi", - "mail_already_used": "Mail adresi zaten kullanılıyor", - "information_updated": "Bilgileriniz güncellendi", - "user_saving_fail": "Değişiklikler kaydedilirken hata oluştu", - "missing_required_fields": "Gerekli alanlar eksik", - "wrong_username_password": "Yanlış kullanıcı adı veya parola", - "logged_out": "Çıkış yapıldı", "please_login": "Bu içeriğe erişmek için lütfen giriş yapınız", "please_login_from_portal": "Lütfen portaldan giriş yapınız", - "footerlink_edit": "Profilimi düzenle", - "footerlink_documentation": "Belgelendirme", - "footerlink_support": "Destek", - "footerlink_administration": "Yönetim" -} \ No newline at end of file + "portal": "YunoHost Portalı", + "user_saving_fail": "Değişiklikler kaydedilirken hata oluştu", + "username": "Kullanıcı adı", + "wrong_current_password": "Mevcut parola yanlış", + "wrong_username_password": "Yanlış kullanıcı adı veya parola" +}