Merge branch 'unstable' into testing

This commit is contained in:
opi 2016-04-30 13:58:19 +02:00
commit b9c6fb976a
13 changed files with 305 additions and 219 deletions

View file

@ -204,14 +204,14 @@ function is_protected()
end end
for _, url in ipairs(conf["protected_urls"]) do for _, url in ipairs(conf["protected_urls"]) do
if hlp.string.starts(ngx.var.host..ngx.var.uri, url) if hlp.string.starts(ngx.var.host..ngx.var.uri..hlp.uri_args_string(), url)
or hlp.string.starts(ngx.var.uri, url) then or hlp.string.starts(ngx.var.uri..hlp.uri_args_string(), url) then
return true return true
end end
end end
for _, regex in ipairs(conf["protected_regex"]) do for _, regex in ipairs(conf["protected_regex"]) do
if string.match(ngx.var.host..ngx.var.uri, regex) if string.match(ngx.var.host..ngx.var.uri..hlp.uri_args_string(), regex)
or string.match(ngx.var.uri, regex) then or string.match(ngx.var.uri..hlp.uri_args_string(), regex) then
return true return true
end end
end end

View file

@ -1,16 +1,16 @@
{ {
"portal_scheme": "https", "portal_scheme": "https",
"portal_domain": "mydomain.com", "portal_domain": "example.com",
"portal_path": "/ssowat/", "portal_path": "/ssowat/",
"domains": [ "domains": [
"mydomain.com", "example.com",
"myotherdomain.com" "example.org"
], ],
"skipped_urls": [ "skipped_urls": [
"mydomain.com/megusta", "example.com/megusta",
"myotherdomain.com/somuchwin" "example.org/somuchwin"
], ],
"unprotected_urls": ["mydomain.com/yunoprotect"], "unprotected_urls": ["example.com/yunoprotect"],
"additional_headers": { "additional_headers": {
"Auth-User": "uid", "Auth-User": "uid",
"Remote-User": "uid", "Remote-User": "uid",
@ -19,12 +19,12 @@
}, },
"users": { "users": {
"myuser": { "myuser": {
"mydomain.com/myapp": "My App", "example.com/myapp": "My App",
"mydomain.com/myapp2": "My second App" "example.com/myapp2": "My second App"
}, },
"myuser2": { "myuser2": {
"myotherdomain.com/myapp": "My other domain App", "example.org/myapp": "My other domain App",
"mydomain.com/myapp2": "My second App" "example.com/myapp2": "My second App"
} }
} }
} }

View file

@ -6,7 +6,7 @@
module('config', package.seeall) module('config', package.seeall)
function get_config () function get_config()
-- Load the configuration file -- Load the configuration file
local conf_file = assert(io.open(conf_path, "r"), "Configuration file is missing") local conf_file = assert(io.open(conf_path, "r"), "Configuration file is missing")

View file

@ -21,7 +21,7 @@ end
-- Lua has no sugar :D -- Lua has no sugar :D
function is_in_table (t, v) function is_in_table(t, v)
for key, value in ipairs(t) do for key, value in ipairs(t) do
if value == v then return key end if value == v then return key end
end end
@ -37,19 +37,19 @@ end
-- Test whether a string starts with another -- 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 return string.sub(String, 1, string.len(Start)) == Start
end end
-- Test whether a string ends with another -- 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 return End=='' or string.sub(String, -string.len(End)) == End
end end
-- Find a string by its translate key in the right language -- 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 if conf.lang and i18n[conf.lang] then
return i18n[conf.lang][key] or "" return i18n[conf.lang][key] or ""
else else
@ -60,7 +60,7 @@ end
-- Store a message in the flash shared table in order to display it at the -- Store a message in the flash shared table in order to display it at the
-- next response -- next response
function flash (wat, message) function flash(wat, message)
if wat == "fail" if wat == "fail"
or wat == "win" or wat == "win"
or wat == "info" or wat == "info"
@ -71,7 +71,7 @@ end
-- Convert a table of arguments to an URI string -- Convert a table of arguments to an URI string
function uri_args_string (args) function uri_args_string(args)
if not args then if not args then
args = ngx.req.get_uri_args() args = ngx.req.get_uri_args()
end end
@ -84,7 +84,7 @@ end
-- Set the Cross-Domain-Authentication key for a specific user -- Set the Cross-Domain-Authentication key for a specific user
function set_cda_key () function set_cda_key()
local cda_key = random_string() local cda_key = random_string()
cache:set(cda_key, authUser, 10) cache:set(cda_key, authUser, 10)
return cda_key return cda_key
@ -102,7 +102,7 @@ end
-- It enables the SSO to quickly retrieve the username and the session -- It enables the SSO to quickly retrieve the username and the session
-- expiration time, and to prove their authenticity to avoid session hijacking. -- 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 maxAge = conf["session_max_timeout"]
local expire = ngx.req.start_time() + maxAge local expire = ngx.req.start_time() + maxAge
local session_key = cache:get("session_"..user) local session_key = cache:get("session_"..user)
@ -128,7 +128,7 @@ end
-- Expires the 3 session cookies -- Expires the 3 session cookies
function delete_cookie () function delete_cookie()
conf = config.get_config() conf = config.get_config()
expired_time = "Thu, Jan 01 1970 00:00:00 UTC;" expired_time = "Thu, Jan 01 1970 00:00:00 UTC;"
@ -146,7 +146,7 @@ end
-- Expires the redirection cookie -- Expires the redirection cookie
function delete_redirect_cookie () function delete_redirect_cookie()
expired_time = "Thu, Jan 01 1970 00:00:00 UTC;" expired_time = "Thu, Jan 01 1970 00:00:00 UTC;"
local cookie_str = "; Path="..conf["portal_path"].. local cookie_str = "; Path="..conf["portal_path"]..
"; Max-Age="..expired_time "; Max-Age="..expired_time
@ -159,7 +159,7 @@ end
-- Check if the session cookies are set, and rehash server + client information -- Check if the session cookies are set, and rehash server + client information
-- to match the session hash. -- to match the session hash.
-- --
function is_logged_in () function is_logged_in()
local expireTime = ngx.var.cookie_SSOwAuthExpire local expireTime = ngx.var.cookie_SSOwAuthExpire
local user = ngx.var.cookie_SSOwAuthUser local user = ngx.var.cookie_SSOwAuthUser
local authHash = ngx.var.cookie_SSOwAuthHash 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 -- Check whether a user is allowed to access a URL using the `users` directive
-- of the configuration file -- of the configuration file
function has_access (user, url) function has_access(user, url)
user = user or authUser user = user or authUser
url = url or ngx.var.host..ngx.var.uri 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 -- Authenticate a user against the LDAP database using a username or an email
-- address. -- address.
-- Reminder: conf["ldap_identifier"] is "uid" by default -- Reminder: conf["ldap_identifier"] is "uid" by default
function authenticate (user, password) function authenticate(user, password)
conf = config.get_config() conf = config.get_config()
-- Try to find the username from an email address by openning an anonymous -- 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 -- Set the authentication headers in order to pass credentials to the
-- application underneath. -- application underneath.
function set_headers (user) function set_headers(user)
-- We definetly don't want to pass credential on a non-encrypted -- We definetly don't want to pass credential on a non-encrypted
-- connection. -- connection.
@ -298,7 +298,11 @@ function set_headers (user)
-- If the user information is not in cache, open an LDAP connection and -- If the user information is not in cache, open an LDAP connection and
-- fetch it. -- fetch it.
if not cache:get(user.."-"..conf["ldap_identifier"]) then 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) ngx.log(ngx.NOTICE, "Reloading LDAP values for: "..user)
for dn, attribs in ldap:search { for dn, attribs in ldap:search {
base = conf["ldap_identifier"].."=".. user ..","..conf["ldap_group"], base = conf["ldap_identifier"].."=".. user ..","..conf["ldap_group"],
@ -520,7 +524,7 @@ end
-- Compute the user modification POST request -- Compute the user modification POST request
-- It has to update cached information and edit the LDAP user entry -- It has to update cached information and edit the LDAP user entry
-- according to the changes detected. -- according to the changes detected.
function edit_user () function edit_user()
conf = config.get_config() conf = config.get_config()
-- We need these calls since we are in a POST request -- We need these calls since we are in a POST request
@ -768,7 +772,7 @@ end
-- Compute the user login POST request -- Compute the user login POST request
-- It authenticates the user against the LDAP base then redirects to the portal -- 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 -- We need these calls since we are in a POST request
ngx.req.read_body() ngx.req.read_body()
@ -814,14 +818,14 @@ end
-- Set cookie and redirect (needed to properly set cookie) -- Set cookie and redirect (needed to properly set cookie)
function redirect (url) function redirect(url)
ngx.log(ngx.NOTICE, "Redirect to: "..url) ngx.log(ngx.NOTICE, "Redirect to: "..url)
return ngx.redirect(url) return ngx.redirect(url)
end end
-- Set cookie and go on with the response (needed to properly set cookie) -- Set cookie and go on with the response (needed to properly set cookie)
function pass () function pass()
delete_redirect_cookie() delete_redirect_cookie()
-- When we are in the SSOwat portal, we need a default `content-type` -- When we are in the SSOwat portal, we need a default `content-type`

View file

@ -28,7 +28,7 @@ flashs = {}
i18n = {} i18n = {}
-- Efficient function to get a random string -- Efficient function to get a random string
function random_string () function random_string()
math.randomseed( tonumber(tostring(socket.gettime()*10000):reverse()) ) math.randomseed( tonumber(tostring(socket.gettime()*10000):reverse()) )
str = tostring(math.random()):sub(3) str = tostring(math.random()):sub(3)
socket.sleep(1e-400) socket.sleep(1e-400)

View file

@ -1,41 +1,41 @@
{ {
"portal": "YunoHost Portal", "add_forward": "E-Mail Weiterleitung hinzufügen",
"information": "Deine Informationen", "add_mail": "E-Mail Alias hinzufügen",
"username": "Benutzername", "cancel": "Abbrechen",
"password": "Passwort", "change_password": "Passwort ändern",
"fullname": "Vollständiger Name", "confirm": "Bestätigen",
"mail_addresses": "E-Mail Adressen", "current_password": "Aktuelles Passwort",
"mail_forward": "E-Mail Weiterleitung", "edit": "Bearbeiten",
"new_mail": "neuemail@meinedomain.org", "footerlink_administration": "Verwaltung",
"new_forward": "neueweiterleitung@anderedomain.org", "footerlink_documentation": "Dokumentation",
"add_mail": "E-Mail alias hinzufügen", "footerlink_edit": "Mein Profil bearbeiten",
"add_forward": "E-Mail Weiterleitung hinzufügen", "footerlink_support": "Support",
"ok": "OK", "fullname": "Vollständiger Name",
"cancel": "Abbrechen", "information": "Deine Informationen",
"change_password": "Passwort ändern", "information_updated": "Informationen wurden aktualisiert",
"edit": "Bearbeiten", "invalid_domain": "Ungültige Domain angegeben",
"current_password": "Derzeitiges Passwort", "invalid_mail": "Ungültige E-Mail Adresse",
"new_password": "Neues Passwort", "invalid_mailforward": "Ungültige E-Mail Weiterleitung",
"confirm": "Bestätigen", "logged_out": "Ausgeloggt",
"login": "Anmelden", "login": "Anmelden",
"logout": "Abmelden", "logout": "Abmelden",
"password_changed": "Passwort erfolgreich geändert", "mail_addresses": "E-Mail Adressen",
"password_changed_error": "Beim ändern des Passworts ist ein Fehler aufgetreten", "mail_already_used": "Diese E-Mail Adresse wird bereits verwendet:",
"password_not_match": "Die neuen Passwörter stimmen nicht überein", "mail_forward": "E-Mail Weiterleitung",
"wrong_current_password": "Derzeitiges Passwort ist falsch", "missing_required_fields": "Benötigte Felder fehlen",
"invalid_mail": "Ungültige E-Mail Adresse", "new_forward": "neueweiterleitung@anderedomain.org",
"invalid_domain": "Ungültige Domain in", "new_mail": "neuemail@meinedomain.org",
"invalid_mailforward": "Ungültige E-Mail Weiterleitungsadresse", "new_password": "Neues Passwort",
"mail_already_used": "E-Mail Adresse wird bereits verwendet:", "ok": "OK",
"information_updated": "Informationen wurden aktualisiert", "password": "Passwort",
"user_saving_fail": "Beim ändern der Benutzerinformationen ist ein Fehler aufgetreten", "password_changed": "Passwort erfolgreich geändert",
"missing_required_fields": "Benötigte Felder fehlen", "password_changed_error": "Beim Ändern des Passworts ist ein Fehler aufgetreten",
"wrong_username_password": "Falscher Benutzername oder Passwort", "password_not_match": "Die neuen Passwörter stimmen nicht überein",
"logged_out": "Abgemeldet", "please_login": "Bitte logge dich ein, um auf diesen Inhalt zu zugreifen",
"please_login": "Bitte logge dich ein, um auf diesen Inhalt zu zugreifen", "please_login_from_portal": "Bitte logge dich am Portal ein",
"please_login_from_portal": "Bitte logge dich im Portal ein", "portal": "YunoHost Portal",
"footerlink_edit": "Mein Profil editieren", "user_saving_fail": "Ein Fehler trat beim Speichern der Änderungen auf",
"footerlink_documentation": "Dokumentation", "username": "Benutzername",
"footerlink_support": "Support", "wrong_current_password": "Aktuelles Passwort ist falsch",
"footerlink_administration": "Administration" "wrong_username_password": "Falscher Benutzername oder Passwort"
} }

View file

@ -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 ", "add_forward": "Añadir un adelante de correo electrónico ",
"ok": "OK", "add_mail": "Añadir un alias de correo electrónico ",
"cancel": "Cancelar", "cancel": "Cancelar",
"change_password": "Cambiar la contraseña", "change_password": "Cambiar la contraseña",
"edit": "Editar",
"current_password": "Contraseña actual",
"new_password": "Nueva contraseña",
"confirm": "Confirmar", "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", "login": "Login",
"logout": "Logout", "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": "Contraseña se ha cambiado satisfactoriamente",
"password_changed_error": "Se produjo un error en el cambio de contraseña ", "password_changed_error": "Se produjo un error en el cambio de contraseña ",
"password_not_match": "Las nuevas contraseñas no coinciden", "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": "Por favor, inicie sesión para acceder a este contenido",
"please_login_from_portal": "Por favor, iniciar sesión desde el portal", "please_login_from_portal": "Por favor, iniciar sesión desde el portal",
"footerlink_edit": "Cambiar mi perfil", "portal": "Portal YunoHost",
"footerlink_documentation": "Documentación", "user_saving_fail": "Se produjo un error en el ahorro de la modificación del usuario ",
"footerlink_support": "Apoyo", "username": "Nombre de usuario",
"footerlink_administration": "Administración" "wrong_current_password": "La contraseña actual es incorrecto",
} "wrong_username_password": "Nombre de usuario o contraseña incorrectos"
}

View file

@ -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", "add_forward": "Ajouter une adresse de transfert",
"ok": "Valider", "add_mail": "Ajouter une adresse email",
"cancel": "Annuler", "cancel": "Annuler",
"change_password": "Changer de mot de passe", "change_password": "Changer de mot de passe",
"edit": "Éditer",
"current_password": "Mot de passe actuel",
"new_password": "Nouveau mot de passe",
"confirm": "Confirmation", "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", "login": "Connexion",
"logout": "Dé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": "Mot de passe modifié",
"password_changed_error": "Une erreur s'est produite lors du changement de mot de passe", "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", "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": "Veuillez vous identifier pour accéder à cette page",
"please_login_from_portal": "Veuillez vous identifiez depuis le portail", "please_login_from_portal": "Veuillez vous identifiez depuis le portail",
"footerlink_edit": "Éditer mon profil", "portal": "Portail YunoHost",
"footerlink_documentation": "Documentation", "user_saving_fail": "Une erreur s'est produite lors de la modification des informations",
"footerlink_support": "Support", "username": "Nom d'utilisateur",
"footerlink_administration": "Administration" "wrong_current_password": "Le mot de passe actuel est incorrect",
"wrong_username_password": "Nom d'utilisateur ou mot de passe incorrect"
} }

41
portal/locales/it.json Normal file
View file

@ -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"
}

41
portal/locales/nl.json Normal file
View file

@ -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"
}

View file

@ -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", "add_mail": "Dodaj dodatkowy email",
"ok": "Akceptuj",
"cancel": "Anuluj", "cancel": "Anuluj",
"change_password": "Zmień hasło", "change_password": "Zmień hasło",
"edit": "Edytuj",
"current_password": "Aktualne hasło",
"new_password": "Nowe hasło",
"confirm": "Potwierdź", "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", "login": "Zaloguj",
"logout": "Wyloguj", "logout": "Wyloguj",
"password_changed": "Hasło zmienione", "mail_addresses": "Adresy E-mail",
"mail_already_used": "Ten adres e-mail aktualnie w użyciu:", "mail_already_used": "Ten adres e-mail aktualnie w użyciu:",
"wrong_username_password": "Zła nazwa użytkownika lub hasło", "new_forward": "newforward@myforeigndomain.org",
"logged_out": "Wylogowany", "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", "please_login": "Proszę się zalogować by uzyskać dostęp do tej strony",
"footerlink_edit": "Edytuj mój profil", "portal": "YunoHost Portal",
"footerlink_documentation": "Dokumentacja", "username": "Nazwa użytkownika",
"footerlink_support": "Pomoc techniczna", "wrong_username_password": "Zła nazwa użytkownika lub hasło"
"footerlink_administration": "Panel administracyjny"
} }

View file

@ -1,41 +1,41 @@
{ {
"portal": "Portal YunoHost", "add_forward": "Adicionar reencaminhamento de mensagem",
"information": "Informação pessoal", "add_mail": "Adicionar nova etiqueta a mensagens",
"username": "Nome de utilizador", "cancel": "Cancelar",
"password": "Senha", "change_password": "Alterar senha",
"fullname": "Nome completo", "confirm": "Confirmar",
"mail_addresses": "Correio eletrónico", "current_password": "Senha atual",
"mail_forward": "Reencaminhar mensagem", "edit": "Editar",
"new_mail": "novomail@meudominio.org", "footerlink_administration": "Administração",
"new_forward": "novoreenvio@dominioexterno.org", "footerlink_documentation": "Documentação",
"add_mail": "Adicionar nova etiqueta a mensagens", "footerlink_edit": "Editar o meu perfil",
"add_forward": "Adicionar reencaminhamento de mensagem", "footerlink_support": "Suporte",
"ok": "Confirmar", "fullname": "Nome completo",
"cancel": "Cancelar", "information": "Informação pessoal",
"change_password": "Alterar senha", "information_updated": "Informação atualizada",
"edit": "Editar", "invalid_domain": "Domínio inválido em",
"current_password": "Senha atual", "invalid_mail": "Endereço de correio inválido",
"new_password": "Nova senha", "invalid_mailforward": "Endereço de correio para reencaminhamento inválido",
"confirm": "Confirmar", "logged_out": "Sessão terminada",
"login": "Iniciar sessão", "login": "Iniciar sessão",
"logout": "Terminar sessão", "logout": "Terminar sessão",
"password_changed": "Senha alterada com êxito", "mail_addresses": "Correio eletrónico",
"password_changed_error": "Ocorreu um erro durante a alteração da senha", "mail_already_used": "O endereço de correio já está utilizado.",
"password_not_match": "As senhas novas não coincidem", "mail_forward": "Reencaminhar mensagem",
"wrong_current_password": "Senha atual está errada", "missing_required_fields": "Campos obrigatórios em falta",
"invalid_mail": "Endereço de correio inválido", "new_forward": "novoreenvio@dominioexterno.org",
"invalid_domain": "Domínio inválido em", "new_mail": "novomail@meudominio.org",
"invalid_mailforward": "Endereço de correio para reencaminhamento inválido", "new_password": "Nova senha",
"mail_already_used": "O endereço de correio já está utilizado.", "ok": "Confirmar",
"information_updated": "Informação atualizada", "password": "Senha",
"user_saving_fail": "Ocorreu um erro ao guardar as modificações do utilizador.", "password_changed": "Senha alterada com êxito",
"missing_required_fields": "Campos obrigatórios em falta", "password_changed_error": "Ocorreu um erro durante a alteração da senha",
"wrong_username_password": "Nome de utilizador e senha errados", "password_not_match": "As senhas novas não coincidem",
"logged_out": "Ligação terminada", "please_login": "Por favor inicie sessão para aceder a este conteúdo",
"please_login": "Por favor inicie sessão para aceder a este conteúdo", "please_login_from_portal": "Por favor inicie sessão no portal",
"please_login_from_portal": "Por favor inicie sessão no portal", "portal": "Portal YunoHost",
"footerlink_edit": "Editar o meu perfil", "user_saving_fail": "Ocorreu um erro ao guardar as modificações do utilizador.",
"footerlink_documentation": "Documentação", "username": "Nome de utilizador",
"footerlink_support": "Suporte", "wrong_current_password": "Senha atual está errada",
"footerlink_administration": "Administração" "wrong_username_password": "Nome de utilizador e senha errados"
} }

View file

@ -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", "add_forward": "E-posta yönlendirmesi ekle",
"ok": "Tamam", "add_mail": "E-posta alias'ı ekle",
"cancel": "İptal", "cancel": "İptal",
"change_password": "Parolayı değiştir", "change_password": "Parolayı değiştir",
"edit": "Düzenle",
"current_password": "Mevcut parola",
"new_password": "Yeni parola",
"confirm": "Onayla", "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", "login": "Giriş yap",
"logout": ıkış 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": "Parola başarıyla değiştirildi",
"password_changed_error": "Parola değiştirirken hata oluştu", "password_changed_error": "Parola değiştirirken hata oluştu",
"password_not_match": "Parolalar uyuşmuyor", "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": "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", "please_login_from_portal": "Lütfen portaldan giriş yapınız",
"footerlink_edit": "Profilimi düzenle", "portal": "YunoHost Portalı",
"footerlink_documentation": "Belgelendirme", "user_saving_fail": "Değişiklikler kaydedilirken hata oluştu",
"footerlink_support": "Destek", "username": "Kullanıcı adı",
"footerlink_administration": "Yönetim" "wrong_current_password": "Mevcut parola yanlış",
} "wrong_username_password": "Yanlış kullanıcı adı veya parola"
}