first commit
This commit is contained in:
2
modules/web_user/__init__.py
Normal file
2
modules/web_user/__init__.py
Normal file
@@ -0,0 +1,2 @@
|
||||
# This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
# this repository contains the full copyright notices and license terms.
|
||||
BIN
modules/web_user/__pycache__/__init__.cpython-311.pyc
Normal file
BIN
modules/web_user/__pycache__/__init__.cpython-311.pyc
Normal file
Binary file not shown.
BIN
modules/web_user/__pycache__/exceptions.cpython-311.pyc
Normal file
BIN
modules/web_user/__pycache__/exceptions.cpython-311.pyc
Normal file
Binary file not shown.
BIN
modules/web_user/__pycache__/ir.cpython-311.pyc
Normal file
BIN
modules/web_user/__pycache__/ir.cpython-311.pyc
Normal file
Binary file not shown.
BIN
modules/web_user/__pycache__/party.cpython-311.pyc
Normal file
BIN
modules/web_user/__pycache__/party.cpython-311.pyc
Normal file
Binary file not shown.
BIN
modules/web_user/__pycache__/user.cpython-311.pyc
Normal file
BIN
modules/web_user/__pycache__/user.cpython-311.pyc
Normal file
Binary file not shown.
32
modules/web_user/email_reset_password.html
Normal file
32
modules/web_user/email_reset_password.html
Normal file
@@ -0,0 +1,32 @@
|
||||
<!DOCTYPE html>
|
||||
<html xmlns:py="http://genshi.edgewall.org/" xmlns:i18n="http://genshi.edgewall.org/i18n">
|
||||
<head>
|
||||
<title>Reset Password</title>
|
||||
</head>
|
||||
<body>
|
||||
<py:for each="user in records">
|
||||
<div style="display: block; text-align: center">
|
||||
<div>
|
||||
<h1>Reset Password</h1>
|
||||
<p i18n:msg="email,url">
|
||||
Hello, we received a request to reset the password for the account associated with <strong>${user.email}</strong>. No changes have been made to your account yet.<br/>
|
||||
You can reset your password by clicking the link below:<br/>
|
||||
<a href="${user.get_email_reset_password_url()}"
|
||||
style="display: block; text-decoration: none; width: max-content; margin: 0.5em auto; padding: 0.5em 1em; font-size:1em; border: 1px solid #2E6DA4; border-radius: 4px; color: #FFF; background-color: #337AB7;">
|
||||
Reset Password
|
||||
</a>
|
||||
</p>
|
||||
</div>
|
||||
<hr style="margin-top: 20px; border-style: solid none none; border-color: #EEE"></hr>
|
||||
<div style="font-size: 80%; color: #777">
|
||||
<p i18n:msg="datetime,expire_delay">
|
||||
The link will expire in <time datetime="${record.reset_password_token_expire.isoformat()}">${format_timedelta(expire_delay)}</time>.
|
||||
</p>
|
||||
<p>Button not working? Paste this into your browser:</p>
|
||||
<p>${user.get_email_reset_password_url()}</p>
|
||||
<p>If you didn't make this request, you can ignore this email.</p>
|
||||
</div>
|
||||
</div>
|
||||
</py:for>
|
||||
</body>
|
||||
</html>
|
||||
26
modules/web_user/email_validation.html
Normal file
26
modules/web_user/email_validation.html
Normal file
@@ -0,0 +1,26 @@
|
||||
<!DOCTYPE html>
|
||||
<html xmlns:py="http://genshi.edgewall.org/" xmlns:i18n="http://genshi.edgewall.org/i18n">
|
||||
<head>
|
||||
<title>Email Validation</title>
|
||||
</head>
|
||||
<body>
|
||||
<py:for each="user in records">
|
||||
<div style="display: block; text-align: center">
|
||||
<div>
|
||||
<h1>Just one more step..</h1>
|
||||
<p i18n:msg="email">${user.email}</p>
|
||||
<a href="${user.get_email_validation_url()}"
|
||||
style="display: block; text-decoration: none; width: max-content; margin: 0 auto; padding: 0.5em 1em; font-size:2em; border: 1px solid #2E6DA4; border-radius: 4px; color: #FFF; background-color: #337AB7;">
|
||||
Validate
|
||||
</a>
|
||||
</div>
|
||||
<hr style="margin-top: 20px; border-style: solid none none; border-color: #EEE"></hr>
|
||||
<div style="font-size: 80%; color: #777">
|
||||
<p>Button is not working? Paste this into your browser:</p>
|
||||
<p>${user.get_email_validation_url()}</p>
|
||||
<p>If you received this email by mistake, just ignore it.</p>
|
||||
</div>
|
||||
</div>
|
||||
</py:for>
|
||||
</body>
|
||||
</html>
|
||||
8
modules/web_user/exceptions.py
Normal file
8
modules/web_user/exceptions.py
Normal file
@@ -0,0 +1,8 @@
|
||||
# This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
# this repository contains the full copyright notices and license terms.
|
||||
|
||||
from trytond.model.exceptions import ValidationError
|
||||
|
||||
|
||||
class UserValidationError(ValidationError):
|
||||
pass
|
||||
55
modules/web_user/ir.py
Normal file
55
modules/web_user/ir.py
Normal file
@@ -0,0 +1,55 @@
|
||||
# This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
# this repository contains the full copyright notices and license terms.
|
||||
from trytond.pool import Pool, PoolMeta
|
||||
from trytond.tools import escape_wildcard
|
||||
|
||||
|
||||
class Email(metaclass=PoolMeta):
|
||||
__name__ = 'ir.email'
|
||||
|
||||
@classmethod
|
||||
def _match(cls, name, email):
|
||||
pool = Pool()
|
||||
User = pool.get('web.user')
|
||||
yield from super()._match(name, email)
|
||||
domain = ['OR']
|
||||
for field in ['party.name', 'email']:
|
||||
for value in [name, email]:
|
||||
if value and len(value) >= 3:
|
||||
domain.append(
|
||||
(field, 'ilike', '%' + escape_wildcard(value) + '%'))
|
||||
for user in User.search([
|
||||
('email', '!=', ''),
|
||||
domain,
|
||||
], order=[]):
|
||||
yield user.party.name if user.party else '', user.email
|
||||
|
||||
|
||||
class EmailTemplate(metaclass=PoolMeta):
|
||||
__name__ = 'ir.email.template'
|
||||
|
||||
@classmethod
|
||||
def email_models(cls):
|
||||
return super().email_models() + ['web.user']
|
||||
|
||||
@classmethod
|
||||
def _get_address(cls, record):
|
||||
pool = Pool()
|
||||
User = pool.get('web.user')
|
||||
address = super()._get_address(record)
|
||||
if isinstance(record, User):
|
||||
name = None
|
||||
if record.party:
|
||||
name = record.party.name
|
||||
address = (name, record.email)
|
||||
return address
|
||||
|
||||
@classmethod
|
||||
def _get_language(cls, record):
|
||||
pool = Pool()
|
||||
User = pool.get('web.user')
|
||||
language = super()._get_language(record)
|
||||
if isinstance(record, User):
|
||||
if record.party:
|
||||
language = cls._get_language(record.party)
|
||||
return language
|
||||
195
modules/web_user/locale/bg.po
Normal file
195
modules/web_user/locale/bg.po
Normal file
@@ -0,0 +1,195 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:web.user,email:"
|
||||
msgid "Email"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user,email_token:"
|
||||
msgid "Email Token"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:web.user,email_valid:"
|
||||
msgid "Email Valid"
|
||||
msgstr "Email Validation"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:web.user,party:"
|
||||
msgid "Party"
|
||||
msgstr "Управление на партньор"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:web.user,password:"
|
||||
msgid "Password"
|
||||
msgstr "Парола"
|
||||
|
||||
msgctxt "field:web.user,password_hash:"
|
||||
msgid "Password Hash"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user,reset_password_token:"
|
||||
msgid "Reset Password Token"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user,reset_password_token_expire:"
|
||||
msgid "Reset Password Token Expire"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user,secondary_parties:"
|
||||
msgid "Secondary Parties"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:web.user-party.party.secondary,party:"
|
||||
msgid "Party"
|
||||
msgstr "Управление на партньор"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:web.user-party.party.secondary,user:"
|
||||
msgid "User"
|
||||
msgstr "Потребител"
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,device_cookie:"
|
||||
msgid "Device Cookie"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,ip_address:"
|
||||
msgid "IP Address"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,ip_network:"
|
||||
msgid "IP Network"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:web.user.authenticate.attempt,login:"
|
||||
msgid "Login"
|
||||
msgstr "Потребителско име"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:web.user.session,key:"
|
||||
msgid "Key"
|
||||
msgstr "Ключ"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:web.user.session,user:"
|
||||
msgid "User"
|
||||
msgstr "Потребител"
|
||||
|
||||
msgctxt "model:ir.action,name:act_user_form"
|
||||
msgid "Web Users"
|
||||
msgstr "Web Users"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.action,name:act_user_form_party"
|
||||
msgid "Web Users"
|
||||
msgstr "Web Users"
|
||||
|
||||
msgctxt "model:ir.action,name:report_email_reset_password"
|
||||
msgid "Reset Password"
|
||||
msgstr "Reset Password"
|
||||
|
||||
msgctxt "model:ir.action,name:report_email_validation"
|
||||
msgid "Email Validation"
|
||||
msgstr "Email Validation"
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_user_email_invalid"
|
||||
msgid "The email address \"%(email)s\" for \"%(user)s\" is not valid."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_user_email_unique"
|
||||
msgid "Email of active web user must be unique."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_user_session_key_unique"
|
||||
msgid "Web user session key must be unique."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.model.button,string:user_reset_password_button"
|
||||
msgid "Reset Password"
|
||||
msgstr "Reset Password"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.model.button,string:user_validate_email_button"
|
||||
msgid "Validate Email"
|
||||
msgstr "Validate E-mail"
|
||||
|
||||
msgctxt "model:ir.ui.menu,name:menu_user_form"
|
||||
msgid "Web Users"
|
||||
msgstr "Web Users"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:web.user,string:"
|
||||
msgid "Web User"
|
||||
msgstr "Web Users"
|
||||
|
||||
msgctxt "model:web.user-party.party.secondary,string:"
|
||||
msgid "Web User - Party Secondary"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:web.user.authenticate.attempt,string:"
|
||||
msgid "User Login Attempt"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:web.user.session,string:"
|
||||
msgid "Web User Session"
|
||||
msgstr "Web Users"
|
||||
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "Button not working? Paste this into your browser:"
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid ""
|
||||
"Hello, we received a request to reset the password for the account associated with [1:%(email)s]. No changes have been made to your account yet.[2:]\n"
|
||||
" You can reset your password by clicking the link below:[3:]\n"
|
||||
" [4:\n"
|
||||
" Reset Password\n"
|
||||
" ]"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "If you didn't make this request, you can ignore this email."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "Reset Password"
|
||||
msgstr "Reset Password"
|
||||
|
||||
#, python-format
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "The link will expire in [1:%(datetime)s]."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "%(email)s"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Button is not working? Paste this into your browser:"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Email Validation"
|
||||
msgstr "Email Validation"
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "If you received this email by mistake, just ignore it."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Just one more step.."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Validate"
|
||||
msgstr "Проверка"
|
||||
185
modules/web_user/locale/ca.po
Normal file
185
modules/web_user/locale/ca.po
Normal file
@@ -0,0 +1,185 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:web.user,email:"
|
||||
msgid "Email"
|
||||
msgstr "Correu electrònic"
|
||||
|
||||
msgctxt "field:web.user,email_token:"
|
||||
msgid "Email Token"
|
||||
msgstr "Token del correu electrònic"
|
||||
|
||||
msgctxt "field:web.user,email_valid:"
|
||||
msgid "Email Valid"
|
||||
msgstr "Correu electrònic vàlid"
|
||||
|
||||
msgctxt "field:web.user,party:"
|
||||
msgid "Party"
|
||||
msgstr "Tercer"
|
||||
|
||||
msgctxt "field:web.user,password:"
|
||||
msgid "Password"
|
||||
msgstr "Contrasenya"
|
||||
|
||||
msgctxt "field:web.user,password_hash:"
|
||||
msgid "Password Hash"
|
||||
msgstr "Hash de la contrasenya"
|
||||
|
||||
msgctxt "field:web.user,reset_password_token:"
|
||||
msgid "Reset Password Token"
|
||||
msgstr "Token restableix la contrasenya"
|
||||
|
||||
msgctxt "field:web.user,reset_password_token_expire:"
|
||||
msgid "Reset Password Token Expire"
|
||||
msgstr "Expiració token restableix contrasenya"
|
||||
|
||||
msgctxt "field:web.user,secondary_parties:"
|
||||
msgid "Secondary Parties"
|
||||
msgstr "Tercers secundaris"
|
||||
|
||||
msgctxt "field:web.user-party.party.secondary,party:"
|
||||
msgid "Party"
|
||||
msgstr "Tercer"
|
||||
|
||||
msgctxt "field:web.user-party.party.secondary,user:"
|
||||
msgid "User"
|
||||
msgstr "Usuari"
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,device_cookie:"
|
||||
msgid "Device Cookie"
|
||||
msgstr "Galeta de dispositiu"
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,ip_address:"
|
||||
msgid "IP Address"
|
||||
msgstr "Adreça IP"
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,ip_network:"
|
||||
msgid "IP Network"
|
||||
msgstr "Xarxa IP"
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,login:"
|
||||
msgid "Login"
|
||||
msgstr "Nom usuari"
|
||||
|
||||
msgctxt "field:web.user.session,key:"
|
||||
msgid "Key"
|
||||
msgstr "Clau"
|
||||
|
||||
msgctxt "field:web.user.session,user:"
|
||||
msgid "User"
|
||||
msgstr "Usuari"
|
||||
|
||||
msgctxt "model:ir.action,name:act_user_form"
|
||||
msgid "Web Users"
|
||||
msgstr "Usuaris web"
|
||||
|
||||
msgctxt "model:ir.action,name:act_user_form_party"
|
||||
msgid "Web Users"
|
||||
msgstr "Usuaris web"
|
||||
|
||||
msgctxt "model:ir.action,name:report_email_reset_password"
|
||||
msgid "Reset Password"
|
||||
msgstr "Restableix la contrasenya"
|
||||
|
||||
msgctxt "model:ir.action,name:report_email_validation"
|
||||
msgid "Email Validation"
|
||||
msgstr "Validació correu electrònic"
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_user_email_invalid"
|
||||
msgid "The email address \"%(email)s\" for \"%(user)s\" is not valid."
|
||||
msgstr "El correu electrònic \"%(email)s\" de l'usuari \"%(user)s\" no es vàlid."
|
||||
|
||||
msgctxt "model:ir.message,text:msg_user_email_unique"
|
||||
msgid "Email of active web user must be unique."
|
||||
msgstr "El correu electrònic de l'usuari web actiu ha de ser únic."
|
||||
|
||||
msgctxt "model:ir.message,text:msg_user_session_key_unique"
|
||||
msgid "Web user session key must be unique."
|
||||
msgstr "La clau de sessió de l'usuari web ha de ser única."
|
||||
|
||||
msgctxt "model:ir.model.button,string:user_reset_password_button"
|
||||
msgid "Reset Password"
|
||||
msgstr "Restableix la contrasenya"
|
||||
|
||||
msgctxt "model:ir.model.button,string:user_validate_email_button"
|
||||
msgid "Validate Email"
|
||||
msgstr "Valida el correu electrònic"
|
||||
|
||||
msgctxt "model:ir.ui.menu,name:menu_user_form"
|
||||
msgid "Web Users"
|
||||
msgstr "Usuaris web"
|
||||
|
||||
msgctxt "model:web.user,string:"
|
||||
msgid "Web User"
|
||||
msgstr "Usuari web"
|
||||
|
||||
msgctxt "model:web.user-party.party.secondary,string:"
|
||||
msgid "Web User - Party Secondary"
|
||||
msgstr "Usuari Web - Tercers Secundaris"
|
||||
|
||||
msgctxt "model:web.user.authenticate.attempt,string:"
|
||||
msgid "User Login Attempt"
|
||||
msgstr "Intent d'inici de sessió de l'usuari"
|
||||
|
||||
msgctxt "model:web.user.session,string:"
|
||||
msgid "Web User Session"
|
||||
msgstr "Sessió usuari web"
|
||||
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "Button not working? Paste this into your browser:"
|
||||
msgstr "El botó no funciona? Empega això al teu navegador:"
|
||||
|
||||
#, python-format
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid ""
|
||||
"Hello, we received a request to reset the password for the account associated with [1:%(email)s]. No changes have been made to your account yet.[2:]\n"
|
||||
" You can reset your password by clicking the link below:[3:]\n"
|
||||
" [4:\n"
|
||||
" Reset Password\n"
|
||||
" ]"
|
||||
msgstr ""
|
||||
"Hola, hem rebut una sol·licitud per restablir la contrasenya del compte associat a [1:%(email)s]. Encara no s'ha fet cap canvi al vostre compte.[2:]\n"
|
||||
" Podeu restablir la vostra contrasenya fent clic a l'enllaç següent:[3:]\n"
|
||||
" [4:\n"
|
||||
" Restablir la contrasenya\n"
|
||||
" ]"
|
||||
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "If you didn't make this request, you can ignore this email."
|
||||
msgstr "Si no heu fet aquesta petició, podeu ignorar aquest correu."
|
||||
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "Reset Password"
|
||||
msgstr "Restableix la contrasenya"
|
||||
|
||||
#, python-format
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "The link will expire in [1:%(datetime)s]."
|
||||
msgstr "L'enllaç caducarà en [1:%(datetime)s]."
|
||||
|
||||
#, python-format
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "%(email)s"
|
||||
msgstr "%(email)s"
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Button is not working? Paste this into your browser:"
|
||||
msgstr "El botó no funciona? Empega això al teu navegador:"
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Email Validation"
|
||||
msgstr "Validació correu electrònic"
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "If you received this email by mistake, just ignore it."
|
||||
msgstr "Si heu rebut aquest correu per error, ignoreu-lo."
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Just one more step.."
|
||||
msgstr "Només un pas més..."
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Validate"
|
||||
msgstr "Valida"
|
||||
188
modules/web_user/locale/cs.po
Normal file
188
modules/web_user/locale/cs.po
Normal file
@@ -0,0 +1,188 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:web.user,email:"
|
||||
msgid "Email"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user,email_token:"
|
||||
msgid "Email Token"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:web.user,email_valid:"
|
||||
msgid "Email Valid"
|
||||
msgstr "Email Validation"
|
||||
|
||||
msgctxt "field:web.user,party:"
|
||||
msgid "Party"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user,password:"
|
||||
msgid "Password"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user,password_hash:"
|
||||
msgid "Password Hash"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user,reset_password_token:"
|
||||
msgid "Reset Password Token"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user,reset_password_token_expire:"
|
||||
msgid "Reset Password Token Expire"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user,secondary_parties:"
|
||||
msgid "Secondary Parties"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user-party.party.secondary,party:"
|
||||
msgid "Party"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:web.user-party.party.secondary,user:"
|
||||
msgid "User"
|
||||
msgstr "Web Users"
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,device_cookie:"
|
||||
msgid "Device Cookie"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,ip_address:"
|
||||
msgid "IP Address"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,ip_network:"
|
||||
msgid "IP Network"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,login:"
|
||||
msgid "Login"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user.session,key:"
|
||||
msgid "Key"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user.session,user:"
|
||||
msgid "User"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.action,name:act_user_form"
|
||||
msgid "Web Users"
|
||||
msgstr "Web Users"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.action,name:act_user_form_party"
|
||||
msgid "Web Users"
|
||||
msgstr "Web Users"
|
||||
|
||||
msgctxt "model:ir.action,name:report_email_reset_password"
|
||||
msgid "Reset Password"
|
||||
msgstr "Reset Password"
|
||||
|
||||
msgctxt "model:ir.action,name:report_email_validation"
|
||||
msgid "Email Validation"
|
||||
msgstr "Email Validation"
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_user_email_invalid"
|
||||
msgid "The email address \"%(email)s\" for \"%(user)s\" is not valid."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_user_email_unique"
|
||||
msgid "Email of active web user must be unique."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_user_session_key_unique"
|
||||
msgid "Web user session key must be unique."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.model.button,string:user_reset_password_button"
|
||||
msgid "Reset Password"
|
||||
msgstr "Reset Password"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.model.button,string:user_validate_email_button"
|
||||
msgid "Validate Email"
|
||||
msgstr "Validate E-mail"
|
||||
|
||||
msgctxt "model:ir.ui.menu,name:menu_user_form"
|
||||
msgid "Web Users"
|
||||
msgstr "Web Users"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:web.user,string:"
|
||||
msgid "Web User"
|
||||
msgstr "Web Users"
|
||||
|
||||
msgctxt "model:web.user-party.party.secondary,string:"
|
||||
msgid "Web User - Party Secondary"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:web.user.authenticate.attempt,string:"
|
||||
msgid "User Login Attempt"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:web.user.session,string:"
|
||||
msgid "Web User Session"
|
||||
msgstr "Web Users"
|
||||
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "Button not working? Paste this into your browser:"
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid ""
|
||||
"Hello, we received a request to reset the password for the account associated with [1:%(email)s]. No changes have been made to your account yet.[2:]\n"
|
||||
" You can reset your password by clicking the link below:[3:]\n"
|
||||
" [4:\n"
|
||||
" Reset Password\n"
|
||||
" ]"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "If you didn't make this request, you can ignore this email."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "Reset Password"
|
||||
msgstr "Reset Password"
|
||||
|
||||
#, python-format
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "The link will expire in [1:%(datetime)s]."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "%(email)s"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Button is not working? Paste this into your browser:"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Email Validation"
|
||||
msgstr "Email Validation"
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "If you received this email by mistake, just ignore it."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Just one more step.."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Validate"
|
||||
msgstr ""
|
||||
193
modules/web_user/locale/de.po
Normal file
193
modules/web_user/locale/de.po
Normal file
@@ -0,0 +1,193 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:web.user,email:"
|
||||
msgid "Email"
|
||||
msgstr "E-Mail"
|
||||
|
||||
msgctxt "field:web.user,email_token:"
|
||||
msgid "Email Token"
|
||||
msgstr "E-Mail Token"
|
||||
|
||||
msgctxt "field:web.user,email_valid:"
|
||||
msgid "Email Valid"
|
||||
msgstr "E-Mail gültig"
|
||||
|
||||
msgctxt "field:web.user,party:"
|
||||
msgid "Party"
|
||||
msgstr "Partei"
|
||||
|
||||
msgctxt "field:web.user,password:"
|
||||
msgid "Password"
|
||||
msgstr "Passwort"
|
||||
|
||||
msgctxt "field:web.user,password_hash:"
|
||||
msgid "Password Hash"
|
||||
msgstr "Passwort Hash"
|
||||
|
||||
msgctxt "field:web.user,reset_password_token:"
|
||||
msgid "Reset Password Token"
|
||||
msgstr "Passwortrücksetzungstoken"
|
||||
|
||||
msgctxt "field:web.user,reset_password_token_expire:"
|
||||
msgid "Reset Password Token Expire"
|
||||
msgstr "Passwortrücksetzungstoken Verfall"
|
||||
|
||||
msgctxt "field:web.user,secondary_parties:"
|
||||
msgid "Secondary Parties"
|
||||
msgstr "Sekundäre Parteien"
|
||||
|
||||
msgctxt "field:web.user-party.party.secondary,party:"
|
||||
msgid "Party"
|
||||
msgstr "Partei"
|
||||
|
||||
msgctxt "field:web.user-party.party.secondary,user:"
|
||||
msgid "User"
|
||||
msgstr "Benutzer"
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,device_cookie:"
|
||||
msgid "Device Cookie"
|
||||
msgstr "Geräte Cookie"
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,ip_address:"
|
||||
msgid "IP Address"
|
||||
msgstr "IP-Adresse"
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,ip_network:"
|
||||
msgid "IP Network"
|
||||
msgstr "IP-Netz"
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,login:"
|
||||
msgid "Login"
|
||||
msgstr "Benutzername"
|
||||
|
||||
msgctxt "field:web.user.session,key:"
|
||||
msgid "Key"
|
||||
msgstr "Schlüssel"
|
||||
|
||||
msgctxt "field:web.user.session,user:"
|
||||
msgid "User"
|
||||
msgstr "Benutzer"
|
||||
|
||||
msgctxt "model:ir.action,name:act_user_form"
|
||||
msgid "Web Users"
|
||||
msgstr "Webbenutzer"
|
||||
|
||||
msgctxt "model:ir.action,name:act_user_form_party"
|
||||
msgid "Web Users"
|
||||
msgstr "Webbenutzer"
|
||||
|
||||
msgctxt "model:ir.action,name:report_email_reset_password"
|
||||
msgid "Reset Password"
|
||||
msgstr "Passwort zurücksetzen"
|
||||
|
||||
msgctxt "model:ir.action,name:report_email_validation"
|
||||
msgid "Email Validation"
|
||||
msgstr "E-Mail-Validierung"
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_user_email_invalid"
|
||||
msgid "The email address \"%(email)s\" for \"%(user)s\" is not valid."
|
||||
msgstr "Die E-Mail-Adresse \"%(email)s\" für \"%(user)s\" ist ungültig."
|
||||
|
||||
msgctxt "model:ir.message,text:msg_user_email_unique"
|
||||
msgid "Email of active web user must be unique."
|
||||
msgstr "Die E-Mail eines aktiven Webbenutzers muss eindeutig sein."
|
||||
|
||||
msgctxt "model:ir.message,text:msg_user_session_key_unique"
|
||||
msgid "Web user session key must be unique."
|
||||
msgstr ""
|
||||
"Der Sitzungsschlüssel eines Webbenutzers kann nur einmal vergeben werden."
|
||||
|
||||
msgctxt "model:ir.model.button,string:user_reset_password_button"
|
||||
msgid "Reset Password"
|
||||
msgstr "Passwort zurücksetzen"
|
||||
|
||||
msgctxt "model:ir.model.button,string:user_validate_email_button"
|
||||
msgid "Validate Email"
|
||||
msgstr "E-Mail validieren"
|
||||
|
||||
msgctxt "model:ir.ui.menu,name:menu_user_form"
|
||||
msgid "Web Users"
|
||||
msgstr "Webbenutzer"
|
||||
|
||||
msgctxt "model:web.user,string:"
|
||||
msgid "Web User"
|
||||
msgstr "Webbenutzer"
|
||||
|
||||
msgctxt "model:web.user-party.party.secondary,string:"
|
||||
msgid "Web User - Party Secondary"
|
||||
msgstr "Webbenutzer - Sekundäre Partei"
|
||||
|
||||
msgctxt "model:web.user.authenticate.attempt,string:"
|
||||
msgid "User Login Attempt"
|
||||
msgstr "Benutzeranmeldeversuch"
|
||||
|
||||
msgctxt "model:web.user.session,string:"
|
||||
msgid "Web User Session"
|
||||
msgstr "Webbenutzer Sitzung"
|
||||
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "Button not working? Paste this into your browser:"
|
||||
msgstr ""
|
||||
"Sollte der Button nicht funktionieren, kopieren Sie bitte den folgenden Text"
|
||||
" in die Adresszeile Ihres Browsers:"
|
||||
|
||||
#, python-format
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid ""
|
||||
"Hello, we received a request to reset the password for the account associated with [1:%(email)s]. No changes have been made to your account yet.[2:]\n"
|
||||
" You can reset your password by clicking the link below:[3:]\n"
|
||||
" [4:\n"
|
||||
" Reset Password\n"
|
||||
" ]"
|
||||
msgstr ""
|
||||
"Hallo, wir haben eine Anfrage zum Zurücksetzen des Passworts für das mit [1:%(email)s) verknüpfte Konto erhalten. An Ihrem Konto wurden noch keine Änderungen vorgenommen.[2:]\n"
|
||||
" Sie können Ihr Passwort zurücksetzen, indem Sie auf den folgenden Link klicken:[3:]\n"
|
||||
" [4:\n"
|
||||
" Passwort zurücksetzen\n"
|
||||
" ]"
|
||||
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "If you didn't make this request, you can ignore this email."
|
||||
msgstr ""
|
||||
"Ignorieren Sie bitte diese E-Mail, wenn Sie nicht der Urheber dieser Anfrage"
|
||||
" sind."
|
||||
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "Reset Password"
|
||||
msgstr "Passwort zurücksetzen"
|
||||
|
||||
#, python-format
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "The link will expire in [1:%(datetime)s]."
|
||||
msgstr "Der Hyperlink wird in [1:%(datetime)s] ablaufen."
|
||||
|
||||
#, python-format
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "%(email)s"
|
||||
msgstr "%(email)s"
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Button is not working? Paste this into your browser:"
|
||||
msgstr ""
|
||||
"Wenn der Button nicht funktioniert, kopieren Sie bitte die folgende Zeile in"
|
||||
" die Adresszeile Ihres Browsers:"
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Email Validation"
|
||||
msgstr "E-Mail-Validierung"
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "If you received this email by mistake, just ignore it."
|
||||
msgstr ""
|
||||
"Ignorieren Sie bitte diese E-Mail, wenn Sie sie irrtümlich erhalten haben."
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Just one more step.."
|
||||
msgstr "Nur noch ein Schritt..."
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Validate"
|
||||
msgstr "Prüfen"
|
||||
187
modules/web_user/locale/es.po
Normal file
187
modules/web_user/locale/es.po
Normal file
@@ -0,0 +1,187 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:web.user,email:"
|
||||
msgid "Email"
|
||||
msgstr "Correo electrónico"
|
||||
|
||||
msgctxt "field:web.user,email_token:"
|
||||
msgid "Email Token"
|
||||
msgstr "Token de correo electrónico"
|
||||
|
||||
msgctxt "field:web.user,email_valid:"
|
||||
msgid "Email Valid"
|
||||
msgstr "Correo electrónico válido"
|
||||
|
||||
msgctxt "field:web.user,party:"
|
||||
msgid "Party"
|
||||
msgstr "Tercero"
|
||||
|
||||
msgctxt "field:web.user,password:"
|
||||
msgid "Password"
|
||||
msgstr "Contraseña"
|
||||
|
||||
msgctxt "field:web.user,password_hash:"
|
||||
msgid "Password Hash"
|
||||
msgstr "Hash de la contraseña"
|
||||
|
||||
msgctxt "field:web.user,reset_password_token:"
|
||||
msgid "Reset Password Token"
|
||||
msgstr "Restablecer el token de la contraseña"
|
||||
|
||||
msgctxt "field:web.user,reset_password_token_expire:"
|
||||
msgid "Reset Password Token Expire"
|
||||
msgstr "Restablecer el token de expiración de la contraseña"
|
||||
|
||||
msgctxt "field:web.user,secondary_parties:"
|
||||
msgid "Secondary Parties"
|
||||
msgstr "Terceros secundarios"
|
||||
|
||||
msgctxt "field:web.user-party.party.secondary,party:"
|
||||
msgid "Party"
|
||||
msgstr "Tercero"
|
||||
|
||||
msgctxt "field:web.user-party.party.secondary,user:"
|
||||
msgid "User"
|
||||
msgstr "Usuario"
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,device_cookie:"
|
||||
msgid "Device Cookie"
|
||||
msgstr "Cookie del dispositivo"
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,ip_address:"
|
||||
msgid "IP Address"
|
||||
msgstr "Dirección IP"
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,ip_network:"
|
||||
msgid "IP Network"
|
||||
msgstr "Red IP"
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,login:"
|
||||
msgid "Login"
|
||||
msgstr "Nombre usuario"
|
||||
|
||||
msgctxt "field:web.user.session,key:"
|
||||
msgid "Key"
|
||||
msgstr "Clave"
|
||||
|
||||
msgctxt "field:web.user.session,user:"
|
||||
msgid "User"
|
||||
msgstr "Usuario"
|
||||
|
||||
msgctxt "model:ir.action,name:act_user_form"
|
||||
msgid "Web Users"
|
||||
msgstr "Usuarios web"
|
||||
|
||||
msgctxt "model:ir.action,name:act_user_form_party"
|
||||
msgid "Web Users"
|
||||
msgstr "Usuarios web"
|
||||
|
||||
msgctxt "model:ir.action,name:report_email_reset_password"
|
||||
msgid "Reset Password"
|
||||
msgstr "Restablecer contraseña"
|
||||
|
||||
msgctxt "model:ir.action,name:report_email_validation"
|
||||
msgid "Email Validation"
|
||||
msgstr "Validación correo electrónico"
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_user_email_invalid"
|
||||
msgid "The email address \"%(email)s\" for \"%(user)s\" is not valid."
|
||||
msgstr "El correo electrónico \"%(email)s\" del usuario \"%(user)s\" no es valido."
|
||||
|
||||
msgctxt "model:ir.message,text:msg_user_email_unique"
|
||||
msgid "Email of active web user must be unique."
|
||||
msgstr "El correo electrónico del usuario web activo debe ser único."
|
||||
|
||||
msgctxt "model:ir.message,text:msg_user_session_key_unique"
|
||||
msgid "Web user session key must be unique."
|
||||
msgstr "La clave de sesión del usuario web debe ser única."
|
||||
|
||||
msgctxt "model:ir.model.button,string:user_reset_password_button"
|
||||
msgid "Reset Password"
|
||||
msgstr "Restablecer contraseña"
|
||||
|
||||
msgctxt "model:ir.model.button,string:user_validate_email_button"
|
||||
msgid "Validate Email"
|
||||
msgstr "Validar correo electrónico"
|
||||
|
||||
msgctxt "model:ir.ui.menu,name:menu_user_form"
|
||||
msgid "Web Users"
|
||||
msgstr "Usuarios web"
|
||||
|
||||
msgctxt "model:web.user,string:"
|
||||
msgid "Web User"
|
||||
msgstr "Usuario web"
|
||||
|
||||
msgctxt "model:web.user-party.party.secondary,string:"
|
||||
msgid "Web User - Party Secondary"
|
||||
msgstr "Usuario web - Tercero secundario"
|
||||
|
||||
msgctxt "model:web.user.authenticate.attempt,string:"
|
||||
msgid "User Login Attempt"
|
||||
msgstr "Intento de inicio de sesión del usuario"
|
||||
|
||||
msgctxt "model:web.user.session,string:"
|
||||
msgid "Web User Session"
|
||||
msgstr "Sesión usuario web"
|
||||
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "Button not working? Paste this into your browser:"
|
||||
msgstr "¿El botón no funciona? Pega esto en tu navegador:"
|
||||
|
||||
#, python-format
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid ""
|
||||
"Hello, we received a request to reset the password for the account associated with [1:%(email)s]. No changes have been made to your account yet.[2:]\n"
|
||||
" You can reset your password by clicking the link below:[3:]\n"
|
||||
" [4:\n"
|
||||
" Reset Password\n"
|
||||
" ]"
|
||||
msgstr ""
|
||||
"Hola, recibimos una solicitud para restablecer la contraseña de la cuenta asociada con [1:%(email)s]. Aún no se han realizado cambios en su cuenta.[2:]\n"
|
||||
" Puede restablecer su contraseña haciendo clic en el siguiente enlace:[3:]\n"
|
||||
" [4:\n"
|
||||
" Restablecer la contraseña\n"
|
||||
" ]"
|
||||
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "If you didn't make this request, you can ignore this email."
|
||||
msgstr ""
|
||||
"Si no habéis realizado esta petición, podéis ignorar este correo "
|
||||
"electrónico."
|
||||
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "Reset Password"
|
||||
msgstr "Restablecer contraseña"
|
||||
|
||||
#, python-format
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "The link will expire in [1:%(datetime)s]."
|
||||
msgstr "El enlace caducará en [1:%(datetime)s]."
|
||||
|
||||
#, python-format
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "%(email)s"
|
||||
msgstr "%(email)s"
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Button is not working? Paste this into your browser:"
|
||||
msgstr "¿El botón no funciona? Pega esto en tu navegador:"
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Email Validation"
|
||||
msgstr "Validación correo electrónico"
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "If you received this email by mistake, just ignore it."
|
||||
msgstr "Si ha recibido este correo electrónico por error, por favor ignórelo."
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Just one more step.."
|
||||
msgstr "Solo un paso mas..."
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Validate"
|
||||
msgstr "Validar"
|
||||
180
modules/web_user/locale/es_419.po
Normal file
180
modules/web_user/locale/es_419.po
Normal file
@@ -0,0 +1,180 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:web.user,email:"
|
||||
msgid "Email"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user,email_token:"
|
||||
msgid "Email Token"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user,email_valid:"
|
||||
msgid "Email Valid"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user,party:"
|
||||
msgid "Party"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user,password:"
|
||||
msgid "Password"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user,password_hash:"
|
||||
msgid "Password Hash"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user,reset_password_token:"
|
||||
msgid "Reset Password Token"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user,reset_password_token_expire:"
|
||||
msgid "Reset Password Token Expire"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user,secondary_parties:"
|
||||
msgid "Secondary Parties"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user-party.party.secondary,party:"
|
||||
msgid "Party"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user-party.party.secondary,user:"
|
||||
msgid "User"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,device_cookie:"
|
||||
msgid "Device Cookie"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,ip_address:"
|
||||
msgid "IP Address"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,ip_network:"
|
||||
msgid "IP Network"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,login:"
|
||||
msgid "Login"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user.session,key:"
|
||||
msgid "Key"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user.session,user:"
|
||||
msgid "User"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.action,name:act_user_form"
|
||||
msgid "Web Users"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.action,name:act_user_form_party"
|
||||
msgid "Web Users"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.action,name:report_email_reset_password"
|
||||
msgid "Reset Password"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.action,name:report_email_validation"
|
||||
msgid "Email Validation"
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_user_email_invalid"
|
||||
msgid "The email address \"%(email)s\" for \"%(user)s\" is not valid."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_user_email_unique"
|
||||
msgid "Email of active web user must be unique."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_user_session_key_unique"
|
||||
msgid "Web user session key must be unique."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.model.button,string:user_reset_password_button"
|
||||
msgid "Reset Password"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.model.button,string:user_validate_email_button"
|
||||
msgid "Validate Email"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.ui.menu,name:menu_user_form"
|
||||
msgid "Web Users"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:web.user,string:"
|
||||
msgid "Web User"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:web.user-party.party.secondary,string:"
|
||||
msgid "Web User - Party Secondary"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:web.user.authenticate.attempt,string:"
|
||||
msgid "User Login Attempt"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:web.user.session,string:"
|
||||
msgid "Web User Session"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "Button not working? Paste this into your browser:"
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid ""
|
||||
"Hello, we received a request to reset the password for the account associated with [1:%(email)s]. No changes have been made to your account yet.[2:]\n"
|
||||
" You can reset your password by clicking the link below:[3:]\n"
|
||||
" [4:\n"
|
||||
" Reset Password\n"
|
||||
" ]"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "If you didn't make this request, you can ignore this email."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "Reset Password"
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "The link will expire in [1:%(datetime)s]."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "%(email)s"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Button is not working? Paste this into your browser:"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Email Validation"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "If you received this email by mistake, just ignore it."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Just one more step.."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Validate"
|
||||
msgstr ""
|
||||
187
modules/web_user/locale/et.po
Normal file
187
modules/web_user/locale/et.po
Normal file
@@ -0,0 +1,187 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:web.user,email:"
|
||||
msgid "Email"
|
||||
msgstr "E-kiri"
|
||||
|
||||
msgctxt "field:web.user,email_token:"
|
||||
msgid "Email Token"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user,email_valid:"
|
||||
msgid "Email Valid"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user,party:"
|
||||
msgid "Party"
|
||||
msgstr "Osapool"
|
||||
|
||||
msgctxt "field:web.user,password:"
|
||||
msgid "Password"
|
||||
msgstr "Salasõna"
|
||||
|
||||
msgctxt "field:web.user,password_hash:"
|
||||
msgid "Password Hash"
|
||||
msgstr "Salasõna räsi"
|
||||
|
||||
msgctxt "field:web.user,reset_password_token:"
|
||||
msgid "Reset Password Token"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user,reset_password_token_expire:"
|
||||
msgid "Reset Password Token Expire"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user,secondary_parties:"
|
||||
msgid "Secondary Parties"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:web.user-party.party.secondary,party:"
|
||||
msgid "Party"
|
||||
msgstr "Osapool"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:web.user-party.party.secondary,user:"
|
||||
msgid "User"
|
||||
msgstr "Kasutaja"
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,device_cookie:"
|
||||
msgid "Device Cookie"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,ip_address:"
|
||||
msgid "IP Address"
|
||||
msgstr "IP-aadress"
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,ip_network:"
|
||||
msgid "IP Network"
|
||||
msgstr "IP-võrk"
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,login:"
|
||||
msgid "Login"
|
||||
msgstr "Logi sisse"
|
||||
|
||||
msgctxt "field:web.user.session,key:"
|
||||
msgid "Key"
|
||||
msgstr "Võti"
|
||||
|
||||
msgctxt "field:web.user.session,user:"
|
||||
msgid "User"
|
||||
msgstr "Kasutaja"
|
||||
|
||||
msgctxt "model:ir.action,name:act_user_form"
|
||||
msgid "Web Users"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.action,name:act_user_form_party"
|
||||
msgid "Web Users"
|
||||
msgstr "Muutja"
|
||||
|
||||
msgctxt "model:ir.action,name:report_email_reset_password"
|
||||
msgid "Reset Password"
|
||||
msgstr "Lähtesta salasõna"
|
||||
|
||||
msgctxt "model:ir.action,name:report_email_validation"
|
||||
msgid "Email Validation"
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_user_email_invalid"
|
||||
msgid "The email address \"%(email)s\" for \"%(user)s\" is not valid."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_user_email_unique"
|
||||
msgid "Email of active web user must be unique."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_user_session_key_unique"
|
||||
msgid "Web user session key must be unique."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.model.button,string:user_reset_password_button"
|
||||
msgid "Reset Password"
|
||||
msgstr "Lähtesta salasõna"
|
||||
|
||||
msgctxt "model:ir.model.button,string:user_validate_email_button"
|
||||
msgid "Validate Email"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.ui.menu,name:menu_user_form"
|
||||
msgid "Web Users"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:web.user,string:"
|
||||
msgid "Web User"
|
||||
msgstr "Muutja"
|
||||
|
||||
msgctxt "model:web.user-party.party.secondary,string:"
|
||||
msgid "Web User - Party Secondary"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:web.user.authenticate.attempt,string:"
|
||||
msgid "User Login Attempt"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:web.user.session,string:"
|
||||
msgid "Web User Session"
|
||||
msgstr "Muutja"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "Button not working? Paste this into your browser:"
|
||||
msgstr "Nupp ei tööta? Aseta see link brauseri aadressreale:"
|
||||
|
||||
#, python-format
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid ""
|
||||
"Hello, we received a request to reset the password for the account associated with [1:%(email)s]. No changes have been made to your account yet.[2:]\n"
|
||||
" You can reset your password by clicking the link below:[3:]\n"
|
||||
" [4:\n"
|
||||
" Reset Password\n"
|
||||
" ]"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "If you didn't make this request, you can ignore this email."
|
||||
msgstr "Kui sa ei teinud seda päringut, siis ignoreeri seda e-kirja."
|
||||
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "Reset Password"
|
||||
msgstr "Lähtesta salasõna"
|
||||
|
||||
#, python-format
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "The link will expire in [1:%(datetime)s]."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "%(email)s"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Button is not working? Paste this into your browser:"
|
||||
msgstr "Nupp ei tööta? Aseta see link brauseri aadressreale:"
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Email Validation"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "If you received this email by mistake, just ignore it."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Just one more step.."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Validate"
|
||||
msgstr ""
|
||||
192
modules/web_user/locale/fa.po
Normal file
192
modules/web_user/locale/fa.po
Normal file
@@ -0,0 +1,192 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:web.user,email:"
|
||||
msgid "Email"
|
||||
msgstr "ایمیل"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:web.user,email_token:"
|
||||
msgid "Email Token"
|
||||
msgstr "نشانه(Token) ایمیل"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:web.user,email_valid:"
|
||||
msgid "Email Valid"
|
||||
msgstr "ایمیل معتبر است"
|
||||
|
||||
msgctxt "field:web.user,party:"
|
||||
msgid "Party"
|
||||
msgstr "نهاد/سازمان"
|
||||
|
||||
msgctxt "field:web.user,password:"
|
||||
msgid "Password"
|
||||
msgstr "کلمه عبور"
|
||||
|
||||
msgctxt "field:web.user,password_hash:"
|
||||
msgid "Password Hash"
|
||||
msgstr "کلمه عبور درهم"
|
||||
|
||||
msgctxt "field:web.user,reset_password_token:"
|
||||
msgid "Reset Password Token"
|
||||
msgstr "بازنشانی نشانه(Token) کلمه عبور"
|
||||
|
||||
msgctxt "field:web.user,reset_password_token_expire:"
|
||||
msgid "Reset Password Token Expire"
|
||||
msgstr "بازنشانی انقضای نشانه(Token) کلمه عبور"
|
||||
|
||||
msgctxt "field:web.user,secondary_parties:"
|
||||
msgid "Secondary Parties"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:web.user-party.party.secondary,party:"
|
||||
msgid "Party"
|
||||
msgstr "نهاد/سازمان"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:web.user-party.party.secondary,user:"
|
||||
msgid "User"
|
||||
msgstr "کاربر"
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,device_cookie:"
|
||||
msgid "Device Cookie"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,ip_address:"
|
||||
msgid "IP Address"
|
||||
msgstr "آدرس آی پی"
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,ip_network:"
|
||||
msgid "IP Network"
|
||||
msgstr "آی پی شبکه"
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,login:"
|
||||
msgid "Login"
|
||||
msgstr "ورود به سیستم"
|
||||
|
||||
msgctxt "field:web.user.session,key:"
|
||||
msgid "Key"
|
||||
msgstr "کلید"
|
||||
|
||||
msgctxt "field:web.user.session,user:"
|
||||
msgid "User"
|
||||
msgstr "کاربر"
|
||||
|
||||
msgctxt "model:ir.action,name:act_user_form"
|
||||
msgid "Web Users"
|
||||
msgstr "کاربران وب"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.action,name:act_user_form_party"
|
||||
msgid "Web Users"
|
||||
msgstr "کاربران وب"
|
||||
|
||||
msgctxt "model:ir.action,name:report_email_reset_password"
|
||||
msgid "Reset Password"
|
||||
msgstr "بازنشانی رمز عبور"
|
||||
|
||||
msgctxt "model:ir.action,name:report_email_validation"
|
||||
msgid "Email Validation"
|
||||
msgstr "اعتبار سنجی ایمیل"
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_user_email_invalid"
|
||||
msgid "The email address \"%(email)s\" for \"%(user)s\" is not valid."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.message,text:msg_user_email_unique"
|
||||
msgid "Email of active web user must be unique."
|
||||
msgstr "پست الکترونیکی کاربر فعال وب سایت باید منحصر به فرد باشد."
|
||||
|
||||
msgctxt "model:ir.message,text:msg_user_session_key_unique"
|
||||
msgid "Web user session key must be unique."
|
||||
msgstr "کلید جلسه کاربر وب باید منحصر به فرد باشد."
|
||||
|
||||
msgctxt "model:ir.model.button,string:user_reset_password_button"
|
||||
msgid "Reset Password"
|
||||
msgstr "Reset Password"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.model.button,string:user_validate_email_button"
|
||||
msgid "Validate Email"
|
||||
msgstr "Validate E-mail"
|
||||
|
||||
msgctxt "model:ir.ui.menu,name:menu_user_form"
|
||||
msgid "Web Users"
|
||||
msgstr "کاربران وب"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:web.user,string:"
|
||||
msgid "Web User"
|
||||
msgstr "کاربر وب"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:web.user-party.party.secondary,string:"
|
||||
msgid "Web User - Party Secondary"
|
||||
msgstr "جلسه کاری کاربر وب"
|
||||
|
||||
msgctxt "model:web.user.authenticate.attempt,string:"
|
||||
msgid "User Login Attempt"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:web.user.session,string:"
|
||||
msgid "Web User Session"
|
||||
msgstr "جلسه کاری کاربر وب"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "Button not working? Paste this into your browser:"
|
||||
msgstr "دکمه کار نمی کند؟ این آدرس را در مرورگر خود مرور کنید:"
|
||||
|
||||
#, python-format
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid ""
|
||||
"Hello, we received a request to reset the password for the account associated with [1:%(email)s]. No changes have been made to your account yet.[2:]\n"
|
||||
" You can reset your password by clicking the link below:[3:]\n"
|
||||
" [4:\n"
|
||||
" Reset Password\n"
|
||||
" ]"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "If you didn't make this request, you can ignore this email."
|
||||
msgstr "اگراین درخواست را نکرده باشید، می توانید این ایمیل را نادیده بگیرید."
|
||||
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "Reset Password"
|
||||
msgstr "بازنشانی کلمه عبور"
|
||||
|
||||
#, python-format
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "The link will expire in [1:%(datetime)s]."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "%(email)s"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Button is not working? Paste this into your browser:"
|
||||
msgstr "دکمه کار نمی کند؟ این آدرس را در مرورگر خود مرور کنید:"
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Email Validation"
|
||||
msgstr "اعتبار سنجی ایمیل"
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "If you received this email by mistake, just ignore it."
|
||||
msgstr "اگر این ایمیل را به اشتباه دریافت کردید، فقط آن را نادیده بگیرید."
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Just one more step.."
|
||||
msgstr "فقط یک گام دیگه.."
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Validate"
|
||||
msgstr "تایید اعتبار"
|
||||
188
modules/web_user/locale/fi.po
Normal file
188
modules/web_user/locale/fi.po
Normal file
@@ -0,0 +1,188 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:web.user,email:"
|
||||
msgid "Email"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user,email_token:"
|
||||
msgid "Email Token"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:web.user,email_valid:"
|
||||
msgid "Email Valid"
|
||||
msgstr "Email Validation"
|
||||
|
||||
msgctxt "field:web.user,party:"
|
||||
msgid "Party"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user,password:"
|
||||
msgid "Password"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user,password_hash:"
|
||||
msgid "Password Hash"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user,reset_password_token:"
|
||||
msgid "Reset Password Token"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user,reset_password_token_expire:"
|
||||
msgid "Reset Password Token Expire"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user,secondary_parties:"
|
||||
msgid "Secondary Parties"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user-party.party.secondary,party:"
|
||||
msgid "Party"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:web.user-party.party.secondary,user:"
|
||||
msgid "User"
|
||||
msgstr "Web Users"
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,device_cookie:"
|
||||
msgid "Device Cookie"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,ip_address:"
|
||||
msgid "IP Address"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,ip_network:"
|
||||
msgid "IP Network"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,login:"
|
||||
msgid "Login"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user.session,key:"
|
||||
msgid "Key"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user.session,user:"
|
||||
msgid "User"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.action,name:act_user_form"
|
||||
msgid "Web Users"
|
||||
msgstr "Web Users"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.action,name:act_user_form_party"
|
||||
msgid "Web Users"
|
||||
msgstr "Web Users"
|
||||
|
||||
msgctxt "model:ir.action,name:report_email_reset_password"
|
||||
msgid "Reset Password"
|
||||
msgstr "Reset Password"
|
||||
|
||||
msgctxt "model:ir.action,name:report_email_validation"
|
||||
msgid "Email Validation"
|
||||
msgstr "Email Validation"
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_user_email_invalid"
|
||||
msgid "The email address \"%(email)s\" for \"%(user)s\" is not valid."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_user_email_unique"
|
||||
msgid "Email of active web user must be unique."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_user_session_key_unique"
|
||||
msgid "Web user session key must be unique."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.model.button,string:user_reset_password_button"
|
||||
msgid "Reset Password"
|
||||
msgstr "Reset Password"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.model.button,string:user_validate_email_button"
|
||||
msgid "Validate Email"
|
||||
msgstr "Validate E-mail"
|
||||
|
||||
msgctxt "model:ir.ui.menu,name:menu_user_form"
|
||||
msgid "Web Users"
|
||||
msgstr "Web Users"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:web.user,string:"
|
||||
msgid "Web User"
|
||||
msgstr "Web Users"
|
||||
|
||||
msgctxt "model:web.user-party.party.secondary,string:"
|
||||
msgid "Web User - Party Secondary"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:web.user.authenticate.attempt,string:"
|
||||
msgid "User Login Attempt"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:web.user.session,string:"
|
||||
msgid "Web User Session"
|
||||
msgstr "Web Users"
|
||||
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "Button not working? Paste this into your browser:"
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid ""
|
||||
"Hello, we received a request to reset the password for the account associated with [1:%(email)s]. No changes have been made to your account yet.[2:]\n"
|
||||
" You can reset your password by clicking the link below:[3:]\n"
|
||||
" [4:\n"
|
||||
" Reset Password\n"
|
||||
" ]"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "If you didn't make this request, you can ignore this email."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "Reset Password"
|
||||
msgstr "Reset Password"
|
||||
|
||||
#, python-format
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "The link will expire in [1:%(datetime)s]."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "%(email)s"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Button is not working? Paste this into your browser:"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Email Validation"
|
||||
msgstr "Email Validation"
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "If you received this email by mistake, just ignore it."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Just one more step.."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Validate"
|
||||
msgstr ""
|
||||
187
modules/web_user/locale/fr.po
Normal file
187
modules/web_user/locale/fr.po
Normal file
@@ -0,0 +1,187 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:web.user,email:"
|
||||
msgid "Email"
|
||||
msgstr "Adresse électronique"
|
||||
|
||||
msgctxt "field:web.user,email_token:"
|
||||
msgid "Email Token"
|
||||
msgstr "Jeton de courriel"
|
||||
|
||||
msgctxt "field:web.user,email_valid:"
|
||||
msgid "Email Valid"
|
||||
msgstr "Adresse électronique valide"
|
||||
|
||||
msgctxt "field:web.user,party:"
|
||||
msgid "Party"
|
||||
msgstr "Tiers"
|
||||
|
||||
msgctxt "field:web.user,password:"
|
||||
msgid "Password"
|
||||
msgstr "Mot de passe"
|
||||
|
||||
msgctxt "field:web.user,password_hash:"
|
||||
msgid "Password Hash"
|
||||
msgstr "Hachage de mot de passe"
|
||||
|
||||
msgctxt "field:web.user,reset_password_token:"
|
||||
msgid "Reset Password Token"
|
||||
msgstr "Jeton de réinitialisation du mot de passe"
|
||||
|
||||
msgctxt "field:web.user,reset_password_token_expire:"
|
||||
msgid "Reset Password Token Expire"
|
||||
msgstr "Expiration du jeton de réinitialisation du mot de passe"
|
||||
|
||||
msgctxt "field:web.user,secondary_parties:"
|
||||
msgid "Secondary Parties"
|
||||
msgstr "Tiers secondaires"
|
||||
|
||||
msgctxt "field:web.user-party.party.secondary,party:"
|
||||
msgid "Party"
|
||||
msgstr "Tiers"
|
||||
|
||||
msgctxt "field:web.user-party.party.secondary,user:"
|
||||
msgid "User"
|
||||
msgstr "Utilisateur"
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,device_cookie:"
|
||||
msgid "Device Cookie"
|
||||
msgstr "Cookie de l'appareil"
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,ip_address:"
|
||||
msgid "IP Address"
|
||||
msgstr "Adresse IP"
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,ip_network:"
|
||||
msgid "IP Network"
|
||||
msgstr "Réseau IP"
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,login:"
|
||||
msgid "Login"
|
||||
msgstr "Identifiant"
|
||||
|
||||
msgctxt "field:web.user.session,key:"
|
||||
msgid "Key"
|
||||
msgstr "Clé"
|
||||
|
||||
msgctxt "field:web.user.session,user:"
|
||||
msgid "User"
|
||||
msgstr "Utilisateur"
|
||||
|
||||
msgctxt "model:ir.action,name:act_user_form"
|
||||
msgid "Web Users"
|
||||
msgstr "Utilisateurs web"
|
||||
|
||||
msgctxt "model:ir.action,name:act_user_form_party"
|
||||
msgid "Web Users"
|
||||
msgstr "Utilisateurs web"
|
||||
|
||||
msgctxt "model:ir.action,name:report_email_reset_password"
|
||||
msgid "Reset Password"
|
||||
msgstr "Réinitialiser le mot de passe"
|
||||
|
||||
msgctxt "model:ir.action,name:report_email_validation"
|
||||
msgid "Email Validation"
|
||||
msgstr "Courriel de validation"
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_user_email_invalid"
|
||||
msgid "The email address \"%(email)s\" for \"%(user)s\" is not valid."
|
||||
msgstr ""
|
||||
"L'adresse de courriel « %(email)s » pour « %(user)s » n'est pas valide."
|
||||
|
||||
msgctxt "model:ir.message,text:msg_user_email_unique"
|
||||
msgid "Email of active web user must be unique."
|
||||
msgstr "L'adresse électronique d'un utilisateur web actif doit être unique."
|
||||
|
||||
msgctxt "model:ir.message,text:msg_user_session_key_unique"
|
||||
msgid "Web user session key must be unique."
|
||||
msgstr "La session d'un utilisateur web doit être unique."
|
||||
|
||||
msgctxt "model:ir.model.button,string:user_reset_password_button"
|
||||
msgid "Reset Password"
|
||||
msgstr "Réinitialiser le mot de passe"
|
||||
|
||||
msgctxt "model:ir.model.button,string:user_validate_email_button"
|
||||
msgid "Validate Email"
|
||||
msgstr "Valider l'adresse électronique"
|
||||
|
||||
msgctxt "model:ir.ui.menu,name:menu_user_form"
|
||||
msgid "Web Users"
|
||||
msgstr "Utilisateurs web"
|
||||
|
||||
msgctxt "model:web.user,string:"
|
||||
msgid "Web User"
|
||||
msgstr "Utilisateur web"
|
||||
|
||||
msgctxt "model:web.user-party.party.secondary,string:"
|
||||
msgid "Web User - Party Secondary"
|
||||
msgstr "Utilisateur web - Tiers secondaire"
|
||||
|
||||
msgctxt "model:web.user.authenticate.attempt,string:"
|
||||
msgid "User Login Attempt"
|
||||
msgstr "Tentative de connexion de l'utilisateur"
|
||||
|
||||
msgctxt "model:web.user.session,string:"
|
||||
msgid "Web User Session"
|
||||
msgstr "Session d'utilisateur web"
|
||||
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "Button not working? Paste this into your browser:"
|
||||
msgstr "Le bouton ne fonctionne pas ? Copier ceci dans votre navigateur :"
|
||||
|
||||
#, python-format
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid ""
|
||||
"Hello, we received a request to reset the password for the account associated with [1:%(email)s]. No changes have been made to your account yet.[2:]\n"
|
||||
" You can reset your password by clicking the link below:[3:]\n"
|
||||
" [4:\n"
|
||||
" Reset Password\n"
|
||||
" ]"
|
||||
msgstr ""
|
||||
"Bonjour, nous avons reçu une demande de réinitialisation du mot de passe du compte associé à [1:%(email)s]. Aucune modification n'a encore été apportée à votre compte.[2:]\n"
|
||||
" Vous pouvez réinitialiser votre mot de passe en cliquant sur le lien ci-dessous :[3:]\n"
|
||||
" [4:\n"
|
||||
" Réinitialiser le mot de passe\n"
|
||||
" ]"
|
||||
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "If you didn't make this request, you can ignore this email."
|
||||
msgstr ""
|
||||
"Si vous n'avez pas fait cette demande, vous pouvez ignorer ce courriel."
|
||||
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "Reset Password"
|
||||
msgstr "Réinitialiser le mot de passe"
|
||||
|
||||
#, python-format
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "The link will expire in [1:%(datetime)s]."
|
||||
msgstr "Le lien expirera dans [1:%(datetime)s]."
|
||||
|
||||
#, python-format
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "%(email)s"
|
||||
msgstr "%(email)s"
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Button is not working? Paste this into your browser:"
|
||||
msgstr "Le bouton ne fonctionne pas ? Copier ceci dans votre navigateur :"
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Email Validation"
|
||||
msgstr "Validation de courriel"
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "If you received this email by mistake, just ignore it."
|
||||
msgstr "Si vous avez reçu ce courriel par erreur, ignorez le."
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Just one more step.."
|
||||
msgstr "Encore une étape.."
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Validate"
|
||||
msgstr "Valider"
|
||||
190
modules/web_user/locale/hu.po
Normal file
190
modules/web_user/locale/hu.po
Normal file
@@ -0,0 +1,190 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:web.user,email:"
|
||||
msgid "Email"
|
||||
msgstr "E-mail"
|
||||
|
||||
msgctxt "field:web.user,email_token:"
|
||||
msgid "Email Token"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:web.user,email_valid:"
|
||||
msgid "Email Valid"
|
||||
msgstr "E-mail cím leellenőrizve"
|
||||
|
||||
msgctxt "field:web.user,party:"
|
||||
msgid "Party"
|
||||
msgstr "Ügyfél"
|
||||
|
||||
msgctxt "field:web.user,password:"
|
||||
msgid "Password"
|
||||
msgstr "Jelszó"
|
||||
|
||||
msgctxt "field:web.user,password_hash:"
|
||||
msgid "Password Hash"
|
||||
msgstr "Jelszó hash"
|
||||
|
||||
msgctxt "field:web.user,reset_password_token:"
|
||||
msgid "Reset Password Token"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user,reset_password_token_expire:"
|
||||
msgid "Reset Password Token Expire"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user,secondary_parties:"
|
||||
msgid "Secondary Parties"
|
||||
msgstr "Másodlagos ügyfelek"
|
||||
|
||||
msgctxt "field:web.user-party.party.secondary,party:"
|
||||
msgid "Party"
|
||||
msgstr "Ügyfél"
|
||||
|
||||
msgctxt "field:web.user-party.party.secondary,user:"
|
||||
msgid "User"
|
||||
msgstr "Felhasználó"
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,device_cookie:"
|
||||
msgid "Device Cookie"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,ip_address:"
|
||||
msgid "IP Address"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,ip_network:"
|
||||
msgid "IP Network"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,login:"
|
||||
msgid "Login"
|
||||
msgstr "Bejelentkezés"
|
||||
|
||||
msgctxt "field:web.user.session,key:"
|
||||
msgid "Key"
|
||||
msgstr "Kulcs"
|
||||
|
||||
msgctxt "field:web.user.session,user:"
|
||||
msgid "User"
|
||||
msgstr "Felhasználó"
|
||||
|
||||
msgctxt "model:ir.action,name:act_user_form"
|
||||
msgid "Web Users"
|
||||
msgstr "Webáruház felhasználók"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.action,name:act_user_form_party"
|
||||
msgid "Web Users"
|
||||
msgstr "Webáruház felhasználók"
|
||||
|
||||
msgctxt "model:ir.action,name:report_email_reset_password"
|
||||
msgid "Reset Password"
|
||||
msgstr "Jelszó visszaállítása"
|
||||
|
||||
msgctxt "model:ir.action,name:report_email_validation"
|
||||
msgid "Email Validation"
|
||||
msgstr "E-mail cím ellenőrzés"
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_user_email_invalid"
|
||||
msgid "The email address \"%(email)s\" for \"%(user)s\" is not valid."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.message,text:msg_user_email_unique"
|
||||
msgid "Email of active web user must be unique."
|
||||
msgstr "Nem lehet több aktív webes felhasználónak ugyanaz az e-mail címe."
|
||||
|
||||
msgctxt "model:ir.message,text:msg_user_session_key_unique"
|
||||
msgid "Web user session key must be unique."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.model.button,string:user_reset_password_button"
|
||||
msgid "Reset Password"
|
||||
msgstr "Jelszó visszaállítása"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.model.button,string:user_validate_email_button"
|
||||
msgid "Validate Email"
|
||||
msgstr "E-mail cím leellenőrzése"
|
||||
|
||||
msgctxt "model:ir.ui.menu,name:menu_user_form"
|
||||
msgid "Web Users"
|
||||
msgstr "Webáruház felhasználók"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:web.user,string:"
|
||||
msgid "Web User"
|
||||
msgstr "Webáruház felhasználó"
|
||||
|
||||
msgctxt "model:web.user-party.party.secondary,string:"
|
||||
msgid "Web User - Party Secondary"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:web.user.authenticate.attempt,string:"
|
||||
msgid "User Login Attempt"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:web.user.session,string:"
|
||||
msgid "Web User Session"
|
||||
msgstr "Webáruház felhasználók"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "Button not working? Paste this into your browser:"
|
||||
msgstr "A gomb nem működik? Másolja be ezt a böngészőjébe:"
|
||||
|
||||
#, python-format
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid ""
|
||||
"Hello, we received a request to reset the password for the account associated with [1:%(email)s]. No changes have been made to your account yet.[2:]\n"
|
||||
" You can reset your password by clicking the link below:[3:]\n"
|
||||
" [4:\n"
|
||||
" Reset Password\n"
|
||||
" ]"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "If you didn't make this request, you can ignore this email."
|
||||
msgstr ""
|
||||
"Ha nem Ön küldte ezt a kérés, akkor nyugodtan hagyja figyelmen kívül ezt az "
|
||||
"e-mailt."
|
||||
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "Reset Password"
|
||||
msgstr "Jelszó visszaállítása"
|
||||
|
||||
#, python-format
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "The link will expire in [1:%(datetime)s]."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "%(email)s"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Button is not working? Paste this into your browser:"
|
||||
msgstr "A gomb nem működik? Másolja be ezt a böngészőjébe:"
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Email Validation"
|
||||
msgstr "E-mail cím ellenőrzés"
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "If you received this email by mistake, just ignore it."
|
||||
msgstr "Ha tévedésből kapta ezt az e-mailt, hagyja nyugodtan figyelmen kívül."
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Just one more step.."
|
||||
msgstr "Csak még egy lépés.."
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Validate"
|
||||
msgstr "Ellenőrzés"
|
||||
188
modules/web_user/locale/id.po
Normal file
188
modules/web_user/locale/id.po
Normal file
@@ -0,0 +1,188 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:web.user,email:"
|
||||
msgid "Email"
|
||||
msgstr "E-mail"
|
||||
|
||||
msgctxt "field:web.user,email_token:"
|
||||
msgid "Email Token"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:web.user,email_valid:"
|
||||
msgid "Email Valid"
|
||||
msgstr "Validasi Email"
|
||||
|
||||
msgctxt "field:web.user,party:"
|
||||
msgid "Party"
|
||||
msgstr "Pihak"
|
||||
|
||||
msgctxt "field:web.user,password:"
|
||||
msgid "Password"
|
||||
msgstr "Kata sandi"
|
||||
|
||||
msgctxt "field:web.user,password_hash:"
|
||||
msgid "Password Hash"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user,reset_password_token:"
|
||||
msgid "Reset Password Token"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user,reset_password_token_expire:"
|
||||
msgid "Reset Password Token Expire"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user,secondary_parties:"
|
||||
msgid "Secondary Parties"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:web.user-party.party.secondary,party:"
|
||||
msgid "Party"
|
||||
msgstr "Pihak"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:web.user-party.party.secondary,user:"
|
||||
msgid "User"
|
||||
msgstr "Pengguna"
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,device_cookie:"
|
||||
msgid "Device Cookie"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,ip_address:"
|
||||
msgid "IP Address"
|
||||
msgstr "Alamat IP"
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,ip_network:"
|
||||
msgid "IP Network"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,login:"
|
||||
msgid "Login"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user.session,key:"
|
||||
msgid "Key"
|
||||
msgstr "Kunci"
|
||||
|
||||
msgctxt "field:web.user.session,user:"
|
||||
msgid "User"
|
||||
msgstr "Pengguna"
|
||||
|
||||
msgctxt "model:ir.action,name:act_user_form"
|
||||
msgid "Web Users"
|
||||
msgstr "Pengguna Web"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.action,name:act_user_form_party"
|
||||
msgid "Web Users"
|
||||
msgstr "Pengguna Web"
|
||||
|
||||
msgctxt "model:ir.action,name:report_email_reset_password"
|
||||
msgid "Reset Password"
|
||||
msgstr "Atur Ulang Kata Sandi"
|
||||
|
||||
msgctxt "model:ir.action,name:report_email_validation"
|
||||
msgid "Email Validation"
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_user_email_invalid"
|
||||
msgid "The email address \"%(email)s\" for \"%(user)s\" is not valid."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_user_email_unique"
|
||||
msgid "Email of active web user must be unique."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_user_session_key_unique"
|
||||
msgid "Web user session key must be unique."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.model.button,string:user_reset_password_button"
|
||||
msgid "Reset Password"
|
||||
msgstr "Atur Ulang Kata Sandi"
|
||||
|
||||
msgctxt "model:ir.model.button,string:user_validate_email_button"
|
||||
msgid "Validate Email"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.ui.menu,name:menu_user_form"
|
||||
msgid "Web Users"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:web.user,string:"
|
||||
msgid "Web User"
|
||||
msgstr "Pengguna Web"
|
||||
|
||||
msgctxt "model:web.user-party.party.secondary,string:"
|
||||
msgid "Web User - Party Secondary"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:web.user.authenticate.attempt,string:"
|
||||
msgid "User Login Attempt"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:web.user.session,string:"
|
||||
msgid "Web User Session"
|
||||
msgstr "Pengguna Web"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "Button not working? Paste this into your browser:"
|
||||
msgstr "Tombol tidak berfungsi? Lekatkan ini pada browser Anda:"
|
||||
|
||||
#, python-format
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid ""
|
||||
"Hello, we received a request to reset the password for the account associated with [1:%(email)s]. No changes have been made to your account yet.[2:]\n"
|
||||
" You can reset your password by clicking the link below:[3:]\n"
|
||||
" [4:\n"
|
||||
" Reset Password\n"
|
||||
" ]"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "If you didn't make this request, you can ignore this email."
|
||||
msgstr "Jika bukan Anda yang membuat permintaan ini, abaikan email ini."
|
||||
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "Reset Password"
|
||||
msgstr "Atur Ulang Kata Sandi"
|
||||
|
||||
#, python-format
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "The link will expire in [1:%(datetime)s]."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "%(email)s"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Button is not working? Paste this into your browser:"
|
||||
msgstr "Tombol tidak berfungsi? Lekatkan ini pada browser Anda:"
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Email Validation"
|
||||
msgstr "Validasi Email"
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "If you received this email by mistake, just ignore it."
|
||||
msgstr "Jika Anda menerima email ini karena kesalahan, abaikan saja."
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Just one more step.."
|
||||
msgstr "Tinggal satu langkah lagi..."
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Validate"
|
||||
msgstr ""
|
||||
199
modules/web_user/locale/it.po
Normal file
199
modules/web_user/locale/it.po
Normal file
@@ -0,0 +1,199 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:web.user,email:"
|
||||
msgid "Email"
|
||||
msgstr "E-mail"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:web.user,email_token:"
|
||||
msgid "Email Token"
|
||||
msgstr "_E-Mail..."
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:web.user,email_valid:"
|
||||
msgid "Email Valid"
|
||||
msgstr "_E-Mail..."
|
||||
|
||||
msgctxt "field:web.user,party:"
|
||||
msgid "Party"
|
||||
msgstr "Controparte"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:web.user,password:"
|
||||
msgid "Password"
|
||||
msgstr "Password"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:web.user,password_hash:"
|
||||
msgid "Password Hash"
|
||||
msgstr "Hash della Password"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:web.user,reset_password_token:"
|
||||
msgid "Reset Password Token"
|
||||
msgstr "Reset Password"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:web.user,reset_password_token_expire:"
|
||||
msgid "Reset Password Token Expire"
|
||||
msgstr "Reset Password"
|
||||
|
||||
msgctxt "field:web.user,secondary_parties:"
|
||||
msgid "Secondary Parties"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:web.user-party.party.secondary,party:"
|
||||
msgid "Party"
|
||||
msgstr "Controparte"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:web.user-party.party.secondary,user:"
|
||||
msgid "User"
|
||||
msgstr "Utente"
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,device_cookie:"
|
||||
msgid "Device Cookie"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,ip_address:"
|
||||
msgid "IP Address"
|
||||
msgstr "Indirizzo IP"
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,ip_network:"
|
||||
msgid "IP Network"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:web.user.authenticate.attempt,login:"
|
||||
msgid "Login"
|
||||
msgstr "Login"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:web.user.session,key:"
|
||||
msgid "Key"
|
||||
msgstr "Chiave"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:web.user.session,user:"
|
||||
msgid "User"
|
||||
msgstr "Utente"
|
||||
|
||||
msgctxt "model:ir.action,name:act_user_form"
|
||||
msgid "Web Users"
|
||||
msgstr "Web Users"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.action,name:act_user_form_party"
|
||||
msgid "Web Users"
|
||||
msgstr "Web Users"
|
||||
|
||||
msgctxt "model:ir.action,name:report_email_reset_password"
|
||||
msgid "Reset Password"
|
||||
msgstr "Reset Password"
|
||||
|
||||
msgctxt "model:ir.action,name:report_email_validation"
|
||||
msgid "Email Validation"
|
||||
msgstr "Email Validation"
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_user_email_invalid"
|
||||
msgid "The email address \"%(email)s\" for \"%(user)s\" is not valid."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_user_email_unique"
|
||||
msgid "Email of active web user must be unique."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_user_session_key_unique"
|
||||
msgid "Web user session key must be unique."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.model.button,string:user_reset_password_button"
|
||||
msgid "Reset Password"
|
||||
msgstr "Reset Password"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.model.button,string:user_validate_email_button"
|
||||
msgid "Validate Email"
|
||||
msgstr "Validate E-mail"
|
||||
|
||||
msgctxt "model:ir.ui.menu,name:menu_user_form"
|
||||
msgid "Web Users"
|
||||
msgstr "Web Users"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:web.user,string:"
|
||||
msgid "Web User"
|
||||
msgstr "Web Users"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:web.user-party.party.secondary,string:"
|
||||
msgid "Web User - Party Secondary"
|
||||
msgstr "Sessione"
|
||||
|
||||
msgctxt "model:web.user.authenticate.attempt,string:"
|
||||
msgid "User Login Attempt"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:web.user.session,string:"
|
||||
msgid "Web User Session"
|
||||
msgstr "Sessione"
|
||||
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "Button not working? Paste this into your browser:"
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid ""
|
||||
"Hello, we received a request to reset the password for the account associated with [1:%(email)s]. No changes have been made to your account yet.[2:]\n"
|
||||
" You can reset your password by clicking the link below:[3:]\n"
|
||||
" [4:\n"
|
||||
" Reset Password\n"
|
||||
" ]"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "If you didn't make this request, you can ignore this email."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "Reset Password"
|
||||
msgstr "Reset Password"
|
||||
|
||||
#, python-format
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "The link will expire in [1:%(datetime)s]."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "%(email)s"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Button is not working? Paste this into your browser:"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Email Validation"
|
||||
msgstr "Email Validation"
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "If you received this email by mistake, just ignore it."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Just one more step.."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Validate"
|
||||
msgstr "Verifica"
|
||||
198
modules/web_user/locale/lo.po
Normal file
198
modules/web_user/locale/lo.po
Normal file
@@ -0,0 +1,198 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:web.user,email:"
|
||||
msgid "Email"
|
||||
msgstr "ອີ-ເມວລ໌"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:web.user,email_token:"
|
||||
msgid "Email Token"
|
||||
msgstr "ອີ-ເມວລ໌ ຢັງຢືນຕົວຕົນ"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:web.user,email_valid:"
|
||||
msgid "Email Valid"
|
||||
msgstr "ອີ-ເມວລ໌ ຖືກຕ້ອງ"
|
||||
|
||||
msgctxt "field:web.user,party:"
|
||||
msgid "Party"
|
||||
msgstr "ພາກສ່ວນ"
|
||||
|
||||
msgctxt "field:web.user,password:"
|
||||
msgid "Password"
|
||||
msgstr "ລະຫັດຜ່ານ"
|
||||
|
||||
msgctxt "field:web.user,password_hash:"
|
||||
msgid "Password Hash"
|
||||
msgstr "ລະຫັດຜ່ານປະສົມ"
|
||||
|
||||
msgctxt "field:web.user,reset_password_token:"
|
||||
msgid "Reset Password Token"
|
||||
msgstr "ຕັ້ງລະຫັດຢັ້ງຢືນຜ່ານຄືນໃໝ່"
|
||||
|
||||
msgctxt "field:web.user,reset_password_token_expire:"
|
||||
msgid "Reset Password Token Expire"
|
||||
msgstr "ການຕັ້ງລະຫັດຢັ້ງຢືນຜ່ານຄືນໃໝ່ໝົດເວລາແລ້ວ"
|
||||
|
||||
msgctxt "field:web.user,secondary_parties:"
|
||||
msgid "Secondary Parties"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:web.user-party.party.secondary,party:"
|
||||
msgid "Party"
|
||||
msgstr "ພາກສ່ວນ"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:web.user-party.party.secondary,user:"
|
||||
msgid "User"
|
||||
msgstr "ຜູ້ໃຊ້"
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,device_cookie:"
|
||||
msgid "Device Cookie"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,ip_address:"
|
||||
msgid "IP Address"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,ip_network:"
|
||||
msgid "IP Network"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,login:"
|
||||
msgid "Login"
|
||||
msgstr "ເຊື່ອມຕໍ່ເຂົ້າລະບົບ"
|
||||
|
||||
msgctxt "field:web.user.session,key:"
|
||||
msgid "Key"
|
||||
msgstr "ຄຳສຳຄັນ"
|
||||
|
||||
msgctxt "field:web.user.session,user:"
|
||||
msgid "User"
|
||||
msgstr "ຜູ້ໃຊ້"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.action,name:act_user_form"
|
||||
msgid "Web Users"
|
||||
msgstr "Web Users"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.action,name:act_user_form_party"
|
||||
msgid "Web Users"
|
||||
msgstr "Web Users"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.action,name:report_email_reset_password"
|
||||
msgid "Reset Password"
|
||||
msgstr "Reset Password"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.action,name:report_email_validation"
|
||||
msgid "Email Validation"
|
||||
msgstr "Email Validation"
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_user_email_invalid"
|
||||
msgid "The email address \"%(email)s\" for \"%(user)s\" is not valid."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_user_email_unique"
|
||||
msgid "Email of active web user must be unique."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_user_session_key_unique"
|
||||
msgid "Web user session key must be unique."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.model.button,string:user_reset_password_button"
|
||||
msgid "Reset Password"
|
||||
msgstr "Reset Password"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.model.button,string:user_validate_email_button"
|
||||
msgid "Validate Email"
|
||||
msgstr "Validate E-mail"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.ui.menu,name:menu_user_form"
|
||||
msgid "Web Users"
|
||||
msgstr "Web Users"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:web.user,string:"
|
||||
msgid "Web User"
|
||||
msgstr "ຜູ້ໃຊ້ງານເວັບ"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:web.user-party.party.secondary,string:"
|
||||
msgid "Web User - Party Secondary"
|
||||
msgstr "ເທື່ອເຂົ້າໃຊ້ຂອງຜູ້ໃຊ້ງານເວັບ"
|
||||
|
||||
msgctxt "model:web.user.authenticate.attempt,string:"
|
||||
msgid "User Login Attempt"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:web.user.session,string:"
|
||||
msgid "Web User Session"
|
||||
msgstr "ເທື່ອເຂົ້າໃຊ້ຂອງຜູ້ໃຊ້ງານເວັບ"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "Button not working? Paste this into your browser:"
|
||||
msgstr "ປຸ່ມບໍ່ເຮັດວຽກບໍ? ໃຫ້ ວາງ ອັນນີ້ລົງໃສ່ ໂຕທ່ອງເວັບຂອງທ່ານ:"
|
||||
|
||||
#, python-format
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid ""
|
||||
"Hello, we received a request to reset the password for the account associated with [1:%(email)s]. No changes have been made to your account yet.[2:]\n"
|
||||
" You can reset your password by clicking the link below:[3:]\n"
|
||||
" [4:\n"
|
||||
" Reset Password\n"
|
||||
" ]"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "If you didn't make this request, you can ignore this email."
|
||||
msgstr "ຖ້າຫາກທ່ານບໍ່ໄດ້ຮ້ອງຂໍ ອ-ເມວລ໌ ນີ້, ທ່ານບໍ່ຕ້ອງຮັບຮູ້ ອີ-ເມວລ໌ ນີ້."
|
||||
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "Reset Password"
|
||||
msgstr "ຕັ້ງຄ່າລະຫັດຜ່ານຄືນໃໝ່"
|
||||
|
||||
#, python-format
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "The link will expire in [1:%(datetime)s]."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "%(email)s"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Button is not working? Paste this into your browser:"
|
||||
msgstr "ປຸ່ມບໍ່ເຮັດວຽກບໍ? ໃຫ້ ວາງ ອັນນີ້ລົງໃສ່ ໂຕທ່ອງເວັບຂອງທ່ານ:"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Email Validation"
|
||||
msgstr "ການຢືນຢັນຄວາມຖືກຕ້ອງ ອີ-ເມວລ໌"
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "If you received this email by mistake, just ignore it."
|
||||
msgstr ""
|
||||
"ຖ້າຫາກທ່ານໄດ້ຮັບ ອີ-ເມວລ໌ ນີ້ ໂດຍຄວາມຜິດພາດໃດໜຶ່ງ, ພຽງແຕ່ໃຫ້ທ່ານ ບໍ່ຮັບຮູ້ "
|
||||
"ອີ-ເມວລ໌ ນີ້ກໍພໍ."
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Just one more step.."
|
||||
msgstr "ພຽງແຕ່ອີກບາດກ້າວໜຶ່ງທໍ່ນັ້ນ.."
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Validate"
|
||||
msgstr "ກວດສອບຄວາມຖືກຕ້ອງ"
|
||||
189
modules/web_user/locale/lt.po
Normal file
189
modules/web_user/locale/lt.po
Normal file
@@ -0,0 +1,189 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:web.user,email:"
|
||||
msgid "Email"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user,email_token:"
|
||||
msgid "Email Token"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:web.user,email_valid:"
|
||||
msgid "Email Valid"
|
||||
msgstr "Email Validation"
|
||||
|
||||
msgctxt "field:web.user,party:"
|
||||
msgid "Party"
|
||||
msgstr "Kontrahentas"
|
||||
|
||||
msgctxt "field:web.user,password:"
|
||||
msgid "Password"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user,password_hash:"
|
||||
msgid "Password Hash"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user,reset_password_token:"
|
||||
msgid "Reset Password Token"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user,reset_password_token_expire:"
|
||||
msgid "Reset Password Token Expire"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user,secondary_parties:"
|
||||
msgid "Secondary Parties"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:web.user-party.party.secondary,party:"
|
||||
msgid "Party"
|
||||
msgstr "Kontrahentas"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:web.user-party.party.secondary,user:"
|
||||
msgid "User"
|
||||
msgstr "Naudotojas"
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,device_cookie:"
|
||||
msgid "Device Cookie"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,ip_address:"
|
||||
msgid "IP Address"
|
||||
msgstr "IP adresas"
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,ip_network:"
|
||||
msgid "IP Network"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,login:"
|
||||
msgid "Login"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user.session,key:"
|
||||
msgid "Key"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user.session,user:"
|
||||
msgid "User"
|
||||
msgstr "Naudotojas"
|
||||
|
||||
msgctxt "model:ir.action,name:act_user_form"
|
||||
msgid "Web Users"
|
||||
msgstr "Web Users"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.action,name:act_user_form_party"
|
||||
msgid "Web Users"
|
||||
msgstr "Web Users"
|
||||
|
||||
msgctxt "model:ir.action,name:report_email_reset_password"
|
||||
msgid "Reset Password"
|
||||
msgstr "Atstatyti slaptažodį"
|
||||
|
||||
msgctxt "model:ir.action,name:report_email_validation"
|
||||
msgid "Email Validation"
|
||||
msgstr "Email Validation"
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_user_email_invalid"
|
||||
msgid "The email address \"%(email)s\" for \"%(user)s\" is not valid."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_user_email_unique"
|
||||
msgid "Email of active web user must be unique."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_user_session_key_unique"
|
||||
msgid "Web user session key must be unique."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.model.button,string:user_reset_password_button"
|
||||
msgid "Reset Password"
|
||||
msgstr "Atstatyti slaptažodį"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.model.button,string:user_validate_email_button"
|
||||
msgid "Validate Email"
|
||||
msgstr "Validate E-mail"
|
||||
|
||||
msgctxt "model:ir.ui.menu,name:menu_user_form"
|
||||
msgid "Web Users"
|
||||
msgstr "Web Users"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:web.user,string:"
|
||||
msgid "Web User"
|
||||
msgstr "Web Users"
|
||||
|
||||
msgctxt "model:web.user-party.party.secondary,string:"
|
||||
msgid "Web User - Party Secondary"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:web.user.authenticate.attempt,string:"
|
||||
msgid "User Login Attempt"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:web.user.session,string:"
|
||||
msgid "Web User Session"
|
||||
msgstr "Web Users"
|
||||
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "Button not working? Paste this into your browser:"
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid ""
|
||||
"Hello, we received a request to reset the password for the account associated with [1:%(email)s]. No changes have been made to your account yet.[2:]\n"
|
||||
" You can reset your password by clicking the link below:[3:]\n"
|
||||
" [4:\n"
|
||||
" Reset Password\n"
|
||||
" ]"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "If you didn't make this request, you can ignore this email."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "Reset Password"
|
||||
msgstr "Reset Password"
|
||||
|
||||
#, python-format
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "The link will expire in [1:%(datetime)s]."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "%(email)s"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Button is not working? Paste this into your browser:"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Email Validation"
|
||||
msgstr "Email Validation"
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "If you received this email by mistake, just ignore it."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Just one more step.."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Validate"
|
||||
msgstr ""
|
||||
185
modules/web_user/locale/nl.po
Normal file
185
modules/web_user/locale/nl.po
Normal file
@@ -0,0 +1,185 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:web.user,email:"
|
||||
msgid "Email"
|
||||
msgstr "Email"
|
||||
|
||||
msgctxt "field:web.user,email_token:"
|
||||
msgid "Email Token"
|
||||
msgstr "Email token"
|
||||
|
||||
msgctxt "field:web.user,email_valid:"
|
||||
msgid "Email Valid"
|
||||
msgstr "Email geldig"
|
||||
|
||||
msgctxt "field:web.user,party:"
|
||||
msgid "Party"
|
||||
msgstr "Relatie"
|
||||
|
||||
msgctxt "field:web.user,password:"
|
||||
msgid "Password"
|
||||
msgstr "Wachtwoord"
|
||||
|
||||
msgctxt "field:web.user,password_hash:"
|
||||
msgid "Password Hash"
|
||||
msgstr "Wachtwoord Hash"
|
||||
|
||||
msgctxt "field:web.user,reset_password_token:"
|
||||
msgid "Reset Password Token"
|
||||
msgstr "Reset wachtwoord token"
|
||||
|
||||
msgctxt "field:web.user,reset_password_token_expire:"
|
||||
msgid "Reset Password Token Expire"
|
||||
msgstr "Reset wachtwoord token verlopen"
|
||||
|
||||
msgctxt "field:web.user,secondary_parties:"
|
||||
msgid "Secondary Parties"
|
||||
msgstr "Secundaire Relaties"
|
||||
|
||||
msgctxt "field:web.user-party.party.secondary,party:"
|
||||
msgid "Party"
|
||||
msgstr "Relatie"
|
||||
|
||||
msgctxt "field:web.user-party.party.secondary,user:"
|
||||
msgid "User"
|
||||
msgstr "Gebruiker"
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,device_cookie:"
|
||||
msgid "Device Cookie"
|
||||
msgstr "Apparaatcookie"
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,ip_address:"
|
||||
msgid "IP Address"
|
||||
msgstr "IP Adres"
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,ip_network:"
|
||||
msgid "IP Network"
|
||||
msgstr "IP-netwerk"
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,login:"
|
||||
msgid "Login"
|
||||
msgstr "Loginnaam"
|
||||
|
||||
msgctxt "field:web.user.session,key:"
|
||||
msgid "Key"
|
||||
msgstr "Sleutel"
|
||||
|
||||
msgctxt "field:web.user.session,user:"
|
||||
msgid "User"
|
||||
msgstr "Gebruiker"
|
||||
|
||||
msgctxt "model:ir.action,name:act_user_form"
|
||||
msgid "Web Users"
|
||||
msgstr "Webgebruikers"
|
||||
|
||||
msgctxt "model:ir.action,name:act_user_form_party"
|
||||
msgid "Web Users"
|
||||
msgstr "Webgebruikers"
|
||||
|
||||
msgctxt "model:ir.action,name:report_email_reset_password"
|
||||
msgid "Reset Password"
|
||||
msgstr "Reset wachtwoord"
|
||||
|
||||
msgctxt "model:ir.action,name:report_email_validation"
|
||||
msgid "Email Validation"
|
||||
msgstr "E-mailvalidatie"
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_user_email_invalid"
|
||||
msgid "The email address \"%(email)s\" for \"%(user)s\" is not valid."
|
||||
msgstr "Het email adres \"%(email)s\" voor \"%(user)s\" is niet geldig."
|
||||
|
||||
msgctxt "model:ir.message,text:msg_user_email_unique"
|
||||
msgid "Email of active web user must be unique."
|
||||
msgstr "Email van actieve webgebruiker moet uniek zijn."
|
||||
|
||||
msgctxt "model:ir.message,text:msg_user_session_key_unique"
|
||||
msgid "Web user session key must be unique."
|
||||
msgstr "Webgebruikerssessiesleutel moet uniek zijn."
|
||||
|
||||
msgctxt "model:ir.model.button,string:user_reset_password_button"
|
||||
msgid "Reset Password"
|
||||
msgstr "Reset wachtwoord"
|
||||
|
||||
msgctxt "model:ir.model.button,string:user_validate_email_button"
|
||||
msgid "Validate Email"
|
||||
msgstr "Email valideren"
|
||||
|
||||
msgctxt "model:ir.ui.menu,name:menu_user_form"
|
||||
msgid "Web Users"
|
||||
msgstr "Webgebruikers"
|
||||
|
||||
msgctxt "model:web.user,string:"
|
||||
msgid "Web User"
|
||||
msgstr "Web gebruiker"
|
||||
|
||||
msgctxt "model:web.user-party.party.secondary,string:"
|
||||
msgid "Web User - Party Secondary"
|
||||
msgstr "Web gebruiker - Secundaire relatie"
|
||||
|
||||
msgctxt "model:web.user.authenticate.attempt,string:"
|
||||
msgid "User Login Attempt"
|
||||
msgstr "Login poging"
|
||||
|
||||
msgctxt "model:web.user.session,string:"
|
||||
msgid "Web User Session"
|
||||
msgstr "Web gebruikerssessie"
|
||||
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "Button not working? Paste this into your browser:"
|
||||
msgstr "Werkt de knop niet? Plak dit in uw browser:"
|
||||
|
||||
#, python-format
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid ""
|
||||
"Hello, we received a request to reset the password for the account associated with [1:%(email)s]. No changes have been made to your account yet.[2:]\n"
|
||||
" You can reset your password by clicking the link below:[3:]\n"
|
||||
" [4:\n"
|
||||
" Reset Password\n"
|
||||
" ]"
|
||||
msgstr ""
|
||||
"Hallo, we hebben een aanvraag ontvangen om het wachtwoord voor gebruiker [1:%(email)s] te resetten. Op dit moment zijn er nog geen wijzigingen gedaan aan de gebruiker.[2:]\n"
|
||||
" U kunt het wachtwoord resetten door op de onderstaande link te klikken:[3:]\n"
|
||||
" [4:\n"
|
||||
" Reset wachtwoord\n"
|
||||
" ]"
|
||||
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "If you didn't make this request, you can ignore this email."
|
||||
msgstr "Indien u dit verzoek niet hebt gedaan, kunt u deze e-mail negeren."
|
||||
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "Reset Password"
|
||||
msgstr "Reset wachtwoord"
|
||||
|
||||
#, python-format
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "The link will expire in [1:%(datetime)s]."
|
||||
msgstr "De link vervalt in [1:%(datetime)s]."
|
||||
|
||||
#, python-format
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "%(email)s"
|
||||
msgstr "%(email)s"
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Button is not working? Paste this into your browser:"
|
||||
msgstr "Knop werkt niet? Plak dit in uw browser:"
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Email Validation"
|
||||
msgstr "E-mailvalidatie"
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "If you received this email by mistake, just ignore it."
|
||||
msgstr "Negeer deze email, als u deze per ongeluk hebt ontvangen."
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Just one more step.."
|
||||
msgstr "Nog maar één stap.."
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Validate"
|
||||
msgstr "Goedkeuren"
|
||||
189
modules/web_user/locale/pl.po
Normal file
189
modules/web_user/locale/pl.po
Normal file
@@ -0,0 +1,189 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:web.user,email:"
|
||||
msgid "Email"
|
||||
msgstr "E-mail"
|
||||
|
||||
msgctxt "field:web.user,email_token:"
|
||||
msgid "Email Token"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:web.user,email_valid:"
|
||||
msgid "Email Valid"
|
||||
msgstr "Email Validation"
|
||||
|
||||
msgctxt "field:web.user,party:"
|
||||
msgid "Party"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user,password:"
|
||||
msgid "Password"
|
||||
msgstr "Hasło"
|
||||
|
||||
msgctxt "field:web.user,password_hash:"
|
||||
msgid "Password Hash"
|
||||
msgstr "Hash hasła"
|
||||
|
||||
msgctxt "field:web.user,reset_password_token:"
|
||||
msgid "Reset Password Token"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user,reset_password_token_expire:"
|
||||
msgid "Reset Password Token Expire"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user,secondary_parties:"
|
||||
msgid "Secondary Parties"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user-party.party.secondary,party:"
|
||||
msgid "Party"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:web.user-party.party.secondary,user:"
|
||||
msgid "User"
|
||||
msgstr "Web Users"
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,device_cookie:"
|
||||
msgid "Device Cookie"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,ip_address:"
|
||||
msgid "IP Address"
|
||||
msgstr "Adres IP"
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,ip_network:"
|
||||
msgid "IP Network"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,login:"
|
||||
msgid "Login"
|
||||
msgstr "Login"
|
||||
|
||||
msgctxt "field:web.user.session,key:"
|
||||
msgid "Key"
|
||||
msgstr "Klucz"
|
||||
|
||||
msgctxt "field:web.user.session,user:"
|
||||
msgid "User"
|
||||
msgstr "Użytkownik"
|
||||
|
||||
msgctxt "model:ir.action,name:act_user_form"
|
||||
msgid "Web Users"
|
||||
msgstr "Web Users"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.action,name:act_user_form_party"
|
||||
msgid "Web Users"
|
||||
msgstr "Web Users"
|
||||
|
||||
msgctxt "model:ir.action,name:report_email_reset_password"
|
||||
msgid "Reset Password"
|
||||
msgstr "Zresetuj hasło"
|
||||
|
||||
msgctxt "model:ir.action,name:report_email_validation"
|
||||
msgid "Email Validation"
|
||||
msgstr "Email Validation"
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_user_email_invalid"
|
||||
msgid "The email address \"%(email)s\" for \"%(user)s\" is not valid."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_user_email_unique"
|
||||
msgid "Email of active web user must be unique."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_user_session_key_unique"
|
||||
msgid "Web user session key must be unique."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.model.button,string:user_reset_password_button"
|
||||
msgid "Reset Password"
|
||||
msgstr "Reset hasła"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.model.button,string:user_validate_email_button"
|
||||
msgid "Validate Email"
|
||||
msgstr "Validate E-mail"
|
||||
|
||||
msgctxt "model:ir.ui.menu,name:menu_user_form"
|
||||
msgid "Web Users"
|
||||
msgstr "Web Users"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:web.user,string:"
|
||||
msgid "Web User"
|
||||
msgstr "Web Users"
|
||||
|
||||
msgctxt "model:web.user-party.party.secondary,string:"
|
||||
msgid "Web User - Party Secondary"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:web.user.authenticate.attempt,string:"
|
||||
msgid "User Login Attempt"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:web.user.session,string:"
|
||||
msgid "Web User Session"
|
||||
msgstr "Web Users"
|
||||
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "Button not working? Paste this into your browser:"
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid ""
|
||||
"Hello, we received a request to reset the password for the account associated with [1:%(email)s]. No changes have been made to your account yet.[2:]\n"
|
||||
" You can reset your password by clicking the link below:[3:]\n"
|
||||
" [4:\n"
|
||||
" Reset Password\n"
|
||||
" ]"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "If you didn't make this request, you can ignore this email."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "Reset Password"
|
||||
msgstr "Reset Password"
|
||||
|
||||
#, python-format
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "The link will expire in [1:%(datetime)s]."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "%(email)s"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Button is not working? Paste this into your browser:"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Email Validation"
|
||||
msgstr "Email Validation"
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "If you received this email by mistake, just ignore it."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Just one more step.."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Validate"
|
||||
msgstr ""
|
||||
185
modules/web_user/locale/pt.po
Normal file
185
modules/web_user/locale/pt.po
Normal file
@@ -0,0 +1,185 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:web.user,email:"
|
||||
msgid "Email"
|
||||
msgstr "E-mail"
|
||||
|
||||
msgctxt "field:web.user,email_token:"
|
||||
msgid "Email Token"
|
||||
msgstr "Token do E-mail"
|
||||
|
||||
msgctxt "field:web.user,email_valid:"
|
||||
msgid "Email Valid"
|
||||
msgstr "E-mail Válido"
|
||||
|
||||
msgctxt "field:web.user,party:"
|
||||
msgid "Party"
|
||||
msgstr "Pessoa"
|
||||
|
||||
msgctxt "field:web.user,password:"
|
||||
msgid "Password"
|
||||
msgstr "Senha"
|
||||
|
||||
msgctxt "field:web.user,password_hash:"
|
||||
msgid "Password Hash"
|
||||
msgstr "Hash da Senha"
|
||||
|
||||
msgctxt "field:web.user,reset_password_token:"
|
||||
msgid "Reset Password Token"
|
||||
msgstr "Redefinir Token da Senha"
|
||||
|
||||
msgctxt "field:web.user,reset_password_token_expire:"
|
||||
msgid "Reset Password Token Expire"
|
||||
msgstr "Redefinir Validade do Token da Senha"
|
||||
|
||||
msgctxt "field:web.user,secondary_parties:"
|
||||
msgid "Secondary Parties"
|
||||
msgstr "Pessoas Adicionais"
|
||||
|
||||
msgctxt "field:web.user-party.party.secondary,party:"
|
||||
msgid "Party"
|
||||
msgstr "Pessoa"
|
||||
|
||||
msgctxt "field:web.user-party.party.secondary,user:"
|
||||
msgid "User"
|
||||
msgstr "Usuário"
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,device_cookie:"
|
||||
msgid "Device Cookie"
|
||||
msgstr "Cookie do Dispositivo"
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,ip_address:"
|
||||
msgid "IP Address"
|
||||
msgstr "Endereço IP"
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,ip_network:"
|
||||
msgid "IP Network"
|
||||
msgstr "Rede IP"
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,login:"
|
||||
msgid "Login"
|
||||
msgstr "Entrar"
|
||||
|
||||
msgctxt "field:web.user.session,key:"
|
||||
msgid "Key"
|
||||
msgstr "Chave"
|
||||
|
||||
msgctxt "field:web.user.session,user:"
|
||||
msgid "User"
|
||||
msgstr "Usuário"
|
||||
|
||||
msgctxt "model:ir.action,name:act_user_form"
|
||||
msgid "Web Users"
|
||||
msgstr "Usuários Web"
|
||||
|
||||
msgctxt "model:ir.action,name:act_user_form_party"
|
||||
msgid "Web Users"
|
||||
msgstr "Usuários Web"
|
||||
|
||||
msgctxt "model:ir.action,name:report_email_reset_password"
|
||||
msgid "Reset Password"
|
||||
msgstr "Restaurar Senha"
|
||||
|
||||
msgctxt "model:ir.action,name:report_email_validation"
|
||||
msgid "Email Validation"
|
||||
msgstr "Validação do Email"
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_user_email_invalid"
|
||||
msgid "The email address \"%(email)s\" for \"%(user)s\" is not valid."
|
||||
msgstr "O endereço de email \"%(email)s\" do usuário \"%(user)s\" não é válido."
|
||||
|
||||
msgctxt "model:ir.message,text:msg_user_email_unique"
|
||||
msgid "Email of active web user must be unique."
|
||||
msgstr "O email de usuário web ativo deve ser único."
|
||||
|
||||
msgctxt "model:ir.message,text:msg_user_session_key_unique"
|
||||
msgid "Web user session key must be unique."
|
||||
msgstr "A sessão de um usuário web deve ser única."
|
||||
|
||||
msgctxt "model:ir.model.button,string:user_reset_password_button"
|
||||
msgid "Reset Password"
|
||||
msgstr "Resetar Senha"
|
||||
|
||||
msgctxt "model:ir.model.button,string:user_validate_email_button"
|
||||
msgid "Validate Email"
|
||||
msgstr "Validar e-mail"
|
||||
|
||||
msgctxt "model:ir.ui.menu,name:menu_user_form"
|
||||
msgid "Web Users"
|
||||
msgstr "Usuários Web"
|
||||
|
||||
msgctxt "model:web.user,string:"
|
||||
msgid "Web User"
|
||||
msgstr "Usuário Web"
|
||||
|
||||
msgctxt "model:web.user-party.party.secondary,string:"
|
||||
msgid "Web User - Party Secondary"
|
||||
msgstr "Usuário da Web - Pessoa Secundária"
|
||||
|
||||
msgctxt "model:web.user.authenticate.attempt,string:"
|
||||
msgid "User Login Attempt"
|
||||
msgstr "Tentativa de Login do Usuário"
|
||||
|
||||
msgctxt "model:web.user.session,string:"
|
||||
msgid "Web User Session"
|
||||
msgstr "Sessão de Usuário Web"
|
||||
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "Button not working? Paste this into your browser:"
|
||||
msgstr "O botão não está funcionando? Cole isso no seu navegador:"
|
||||
|
||||
#, python-format
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid ""
|
||||
"Hello, we received a request to reset the password for the account associated with [1:%(email)s]. No changes have been made to your account yet.[2:]\n"
|
||||
" You can reset your password by clicking the link below:[3:]\n"
|
||||
" [4:\n"
|
||||
" Reset Password\n"
|
||||
" ]"
|
||||
msgstr ""
|
||||
"Olá, Nós recebemos uma solicitação para restaurar a senha da conta associada ao email [1:%(email)s]. Ainda não foram aplicadas alterações a essa conta.[2:]\n"
|
||||
" É possível restaurar a senha clicando no link abaixo:[3:]\n"
|
||||
" [4:\n"
|
||||
" Restaurar Senha\n"
|
||||
" ]"
|
||||
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "If you didn't make this request, you can ignore this email."
|
||||
msgstr "Se você não fez esta solicitação, você pode ignorar esse email."
|
||||
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "Reset Password"
|
||||
msgstr "Redefinir senha"
|
||||
|
||||
#, python-format
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "The link will expire in [1:%(datetime)s]."
|
||||
msgstr "O link irá expirar em [1:%(datetime)s]."
|
||||
|
||||
#, python-format
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "%(email)s"
|
||||
msgstr "%(email)s"
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Button is not working? Paste this into your browser:"
|
||||
msgstr "Botão não está funcionando? Cole isso no seu navegador:"
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Email Validation"
|
||||
msgstr "Email de Validação"
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "If you received this email by mistake, just ignore it."
|
||||
msgstr "Se você recebeu esse email por engano, apenas ignore-o."
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Just one more step.."
|
||||
msgstr "Apenas mais um passo..."
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Validate"
|
||||
msgstr "Validar"
|
||||
192
modules/web_user/locale/ro.po
Normal file
192
modules/web_user/locale/ro.po
Normal file
@@ -0,0 +1,192 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:web.user,email:"
|
||||
msgid "Email"
|
||||
msgstr "E-mail"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:web.user,email_token:"
|
||||
msgid "Email Token"
|
||||
msgstr "Token de e-mail"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:web.user,email_valid:"
|
||||
msgid "Email Valid"
|
||||
msgstr "E-mail Valabil"
|
||||
|
||||
msgctxt "field:web.user,party:"
|
||||
msgid "Party"
|
||||
msgstr "Parte"
|
||||
|
||||
msgctxt "field:web.user,password:"
|
||||
msgid "Password"
|
||||
msgstr "Parola"
|
||||
|
||||
msgctxt "field:web.user,password_hash:"
|
||||
msgid "Password Hash"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:web.user,reset_password_token:"
|
||||
msgid "Reset Password Token"
|
||||
msgstr "Resetare Token Parolă"
|
||||
|
||||
msgctxt "field:web.user,reset_password_token_expire:"
|
||||
msgid "Reset Password Token Expire"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:web.user,secondary_parties:"
|
||||
msgid "Secondary Parties"
|
||||
msgstr "Părți Secundare"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:web.user-party.party.secondary,party:"
|
||||
msgid "Party"
|
||||
msgstr "Parte"
|
||||
|
||||
msgctxt "field:web.user-party.party.secondary,user:"
|
||||
msgid "User"
|
||||
msgstr "Utilizator"
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,device_cookie:"
|
||||
msgid "Device Cookie"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,ip_address:"
|
||||
msgid "IP Address"
|
||||
msgstr "Adresă IP"
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,ip_network:"
|
||||
msgid "IP Network"
|
||||
msgstr "Rețea IP"
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,login:"
|
||||
msgid "Login"
|
||||
msgstr "Autentificare"
|
||||
|
||||
msgctxt "field:web.user.session,key:"
|
||||
msgid "Key"
|
||||
msgstr "Cheie"
|
||||
|
||||
msgctxt "field:web.user.session,user:"
|
||||
msgid "User"
|
||||
msgstr "Utilizator"
|
||||
|
||||
msgctxt "model:ir.action,name:act_user_form"
|
||||
msgid "Web Users"
|
||||
msgstr "Utilizatori Web"
|
||||
|
||||
msgctxt "model:ir.action,name:act_user_form_party"
|
||||
msgid "Web Users"
|
||||
msgstr "Utilizatori Web"
|
||||
|
||||
msgctxt "model:ir.action,name:report_email_reset_password"
|
||||
msgid "Reset Password"
|
||||
msgstr "Resetare parola"
|
||||
|
||||
msgctxt "model:ir.action,name:report_email_validation"
|
||||
msgid "Email Validation"
|
||||
msgstr "Validarea e-mailului"
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_user_email_invalid"
|
||||
msgid "The email address \"%(email)s\" for \"%(user)s\" is not valid."
|
||||
msgstr "Adresa de email \"%(email)s\" pentru \"%(user)s\" nu este valid."
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.message,text:msg_user_email_unique"
|
||||
msgid "Email of active web user must be unique."
|
||||
msgstr "E-mailul utilizatorului web activ trebuie să fie unic."
|
||||
|
||||
msgctxt "model:ir.message,text:msg_user_session_key_unique"
|
||||
msgid "Web user session key must be unique."
|
||||
msgstr "Cheia de sesiune a utilizatorului web trebuie să fie unică."
|
||||
|
||||
msgctxt "model:ir.model.button,string:user_reset_password_button"
|
||||
msgid "Reset Password"
|
||||
msgstr "Resetare Parola"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.model.button,string:user_validate_email_button"
|
||||
msgid "Validate Email"
|
||||
msgstr "Validare e-mail"
|
||||
|
||||
msgctxt "model:ir.ui.menu,name:menu_user_form"
|
||||
msgid "Web Users"
|
||||
msgstr "Utilizatori Web"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:web.user,string:"
|
||||
msgid "Web User"
|
||||
msgstr "Utilizator Web"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:web.user-party.party.secondary,string:"
|
||||
msgid "Web User - Party Secondary"
|
||||
msgstr "Utilizator Web - Parte secundară"
|
||||
|
||||
msgctxt "model:web.user.authenticate.attempt,string:"
|
||||
msgid "User Login Attempt"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:web.user.session,string:"
|
||||
msgid "Web User Session"
|
||||
msgstr "Sesiune a Utilizatorului Web"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "Button not working? Paste this into your browser:"
|
||||
msgstr "Butonul nu funcționează? Copiați asta în browser:"
|
||||
|
||||
#, python-format
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid ""
|
||||
"Hello, we received a request to reset the password for the account associated with [1:%(email)s]. No changes have been made to your account yet.[2:]\n"
|
||||
" You can reset your password by clicking the link below:[3:]\n"
|
||||
" [4:\n"
|
||||
" Reset Password\n"
|
||||
" ]"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "If you didn't make this request, you can ignore this email."
|
||||
msgstr "Dacă nu ați făcut această solicitare, puteți ignora acest e-mail."
|
||||
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "Reset Password"
|
||||
msgstr "Resetare Parolă"
|
||||
|
||||
#, python-format
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "The link will expire in [1:%(datetime)s]."
|
||||
msgstr "Linkul va expira în [1:%(datetime)s]."
|
||||
|
||||
#, python-format
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "%(email)s"
|
||||
msgstr "%(email)s"
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Button is not working? Paste this into your browser:"
|
||||
msgstr "Butonul nu funcționează? Copiați asta în browser:"
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Email Validation"
|
||||
msgstr "Validarea e-mailului"
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "If you received this email by mistake, just ignore it."
|
||||
msgstr "Dacă ați primit acest e-mail din greșeală, ignorați-l."
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Just one more step.."
|
||||
msgstr "Încă un pas."
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Validate"
|
||||
msgstr "Validare"
|
||||
195
modules/web_user/locale/ru.po
Normal file
195
modules/web_user/locale/ru.po
Normal file
@@ -0,0 +1,195 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:web.user,email:"
|
||||
msgid "Email"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user,email_token:"
|
||||
msgid "Email Token"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:web.user,email_valid:"
|
||||
msgid "Email Valid"
|
||||
msgstr "Email Validation"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:web.user,party:"
|
||||
msgid "Party"
|
||||
msgstr "Организации"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:web.user,password:"
|
||||
msgid "Password"
|
||||
msgstr "Пароль"
|
||||
|
||||
msgctxt "field:web.user,password_hash:"
|
||||
msgid "Password Hash"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user,reset_password_token:"
|
||||
msgid "Reset Password Token"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user,reset_password_token_expire:"
|
||||
msgid "Reset Password Token Expire"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user,secondary_parties:"
|
||||
msgid "Secondary Parties"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:web.user-party.party.secondary,party:"
|
||||
msgid "Party"
|
||||
msgstr "Организации"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:web.user-party.party.secondary,user:"
|
||||
msgid "User"
|
||||
msgstr "Пользователь"
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,device_cookie:"
|
||||
msgid "Device Cookie"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,ip_address:"
|
||||
msgid "IP Address"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,ip_network:"
|
||||
msgid "IP Network"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:web.user.authenticate.attempt,login:"
|
||||
msgid "Login"
|
||||
msgstr "Логин"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:web.user.session,key:"
|
||||
msgid "Key"
|
||||
msgstr "Ключ"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:web.user.session,user:"
|
||||
msgid "User"
|
||||
msgstr "Пользователь"
|
||||
|
||||
msgctxt "model:ir.action,name:act_user_form"
|
||||
msgid "Web Users"
|
||||
msgstr "Web Users"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.action,name:act_user_form_party"
|
||||
msgid "Web Users"
|
||||
msgstr "Web Users"
|
||||
|
||||
msgctxt "model:ir.action,name:report_email_reset_password"
|
||||
msgid "Reset Password"
|
||||
msgstr "Reset Password"
|
||||
|
||||
msgctxt "model:ir.action,name:report_email_validation"
|
||||
msgid "Email Validation"
|
||||
msgstr "Email Validation"
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_user_email_invalid"
|
||||
msgid "The email address \"%(email)s\" for \"%(user)s\" is not valid."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_user_email_unique"
|
||||
msgid "Email of active web user must be unique."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_user_session_key_unique"
|
||||
msgid "Web user session key must be unique."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.model.button,string:user_reset_password_button"
|
||||
msgid "Reset Password"
|
||||
msgstr "Reset Password"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.model.button,string:user_validate_email_button"
|
||||
msgid "Validate Email"
|
||||
msgstr "Validate E-mail"
|
||||
|
||||
msgctxt "model:ir.ui.menu,name:menu_user_form"
|
||||
msgid "Web Users"
|
||||
msgstr "Web Users"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:web.user,string:"
|
||||
msgid "Web User"
|
||||
msgstr "Web Users"
|
||||
|
||||
msgctxt "model:web.user-party.party.secondary,string:"
|
||||
msgid "Web User - Party Secondary"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:web.user.authenticate.attempt,string:"
|
||||
msgid "User Login Attempt"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:web.user.session,string:"
|
||||
msgid "Web User Session"
|
||||
msgstr "Web Users"
|
||||
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "Button not working? Paste this into your browser:"
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid ""
|
||||
"Hello, we received a request to reset the password for the account associated with [1:%(email)s]. No changes have been made to your account yet.[2:]\n"
|
||||
" You can reset your password by clicking the link below:[3:]\n"
|
||||
" [4:\n"
|
||||
" Reset Password\n"
|
||||
" ]"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "If you didn't make this request, you can ignore this email."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "Reset Password"
|
||||
msgstr "Reset Password"
|
||||
|
||||
#, python-format
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "The link will expire in [1:%(datetime)s]."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "%(email)s"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Button is not working? Paste this into your browser:"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Email Validation"
|
||||
msgstr "Email Validation"
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "If you received this email by mistake, just ignore it."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Just one more step.."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Validate"
|
||||
msgstr "Утвержденный"
|
||||
189
modules/web_user/locale/sl.po
Normal file
189
modules/web_user/locale/sl.po
Normal file
@@ -0,0 +1,189 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:web.user,email:"
|
||||
msgid "Email"
|
||||
msgstr "E-pošta"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:web.user,email_token:"
|
||||
msgid "Email Token"
|
||||
msgstr "Žeton e-pošte"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:web.user,email_valid:"
|
||||
msgid "Email Valid"
|
||||
msgstr "E-pošta veljavna"
|
||||
|
||||
msgctxt "field:web.user,party:"
|
||||
msgid "Party"
|
||||
msgstr "Partner"
|
||||
|
||||
msgctxt "field:web.user,password:"
|
||||
msgid "Password"
|
||||
msgstr "Geslo"
|
||||
|
||||
msgctxt "field:web.user,password_hash:"
|
||||
msgid "Password Hash"
|
||||
msgstr "Zgoščena vrednost gesla"
|
||||
|
||||
msgctxt "field:web.user,reset_password_token:"
|
||||
msgid "Reset Password Token"
|
||||
msgstr "Žeton za ponastavitev gesla"
|
||||
|
||||
msgctxt "field:web.user,reset_password_token_expire:"
|
||||
msgid "Reset Password Token Expire"
|
||||
msgstr "Zapadlost ponastavitvenga žetona"
|
||||
|
||||
msgctxt "field:web.user,secondary_parties:"
|
||||
msgid "Secondary Parties"
|
||||
msgstr "Sekundarni partnerji"
|
||||
|
||||
msgctxt "field:web.user-party.party.secondary,party:"
|
||||
msgid "Party"
|
||||
msgstr "Partner"
|
||||
|
||||
msgctxt "field:web.user-party.party.secondary,user:"
|
||||
msgid "User"
|
||||
msgstr "Uporabnik"
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,device_cookie:"
|
||||
msgid "Device Cookie"
|
||||
msgstr "Piškotek naprave"
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,ip_address:"
|
||||
msgid "IP Address"
|
||||
msgstr "IP naslov"
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,ip_network:"
|
||||
msgid "IP Network"
|
||||
msgstr "IP omrežje"
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,login:"
|
||||
msgid "Login"
|
||||
msgstr "Prijava"
|
||||
|
||||
msgctxt "field:web.user.session,key:"
|
||||
msgid "Key"
|
||||
msgstr "Ključ"
|
||||
|
||||
msgctxt "field:web.user.session,user:"
|
||||
msgid "User"
|
||||
msgstr "Uporabnik"
|
||||
|
||||
msgctxt "model:ir.action,name:act_user_form"
|
||||
msgid "Web Users"
|
||||
msgstr "Spletni uporabniki"
|
||||
|
||||
msgctxt "model:ir.action,name:act_user_form_party"
|
||||
msgid "Web Users"
|
||||
msgstr "Spletni uporabniki"
|
||||
|
||||
msgctxt "model:ir.action,name:report_email_reset_password"
|
||||
msgid "Reset Password"
|
||||
msgstr "Ponastavi gesla"
|
||||
|
||||
msgctxt "model:ir.action,name:report_email_validation"
|
||||
msgid "Email Validation"
|
||||
msgstr "Preverjanje e-poštnega naslova"
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_user_email_invalid"
|
||||
msgid "The email address \"%(email)s\" for \"%(user)s\" is not valid."
|
||||
msgstr "E-poštni naslov \"%(email)s\" uporabnika \"%(user)s\" ni veljaven."
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.message,text:msg_user_email_unique"
|
||||
msgid "Email of active web user must be unique."
|
||||
msgstr "E-poštni naslov aktivnega spletnega uporabnika mora biti edinstven."
|
||||
|
||||
msgctxt "model:ir.message,text:msg_user_session_key_unique"
|
||||
msgid "Web user session key must be unique."
|
||||
msgstr "Ključ seje spletnega uporabnika mora biti edinstven."
|
||||
|
||||
msgctxt "model:ir.model.button,string:user_reset_password_button"
|
||||
msgid "Reset Password"
|
||||
msgstr "Reset Password"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.model.button,string:user_validate_email_button"
|
||||
msgid "Validate Email"
|
||||
msgstr "Potrdi e-pošto"
|
||||
|
||||
msgctxt "model:ir.ui.menu,name:menu_user_form"
|
||||
msgid "Web Users"
|
||||
msgstr "Spletni uporabniki"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:web.user,string:"
|
||||
msgid "Web User"
|
||||
msgstr "Spletni uporabnik"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:web.user-party.party.secondary,string:"
|
||||
msgid "Web User - Party Secondary"
|
||||
msgstr "Spletni uporabnik - sekundarni partner"
|
||||
|
||||
msgctxt "model:web.user.authenticate.attempt,string:"
|
||||
msgid "User Login Attempt"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:web.user.session,string:"
|
||||
msgid "Web User Session"
|
||||
msgstr "Seja spletnega uporabnika"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "Button not working? Paste this into your browser:"
|
||||
msgstr "Gumb ne deluje? Prilepite sledeče v vaš brskalnik:"
|
||||
|
||||
#, python-format
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid ""
|
||||
"Hello, we received a request to reset the password for the account associated with [1:%(email)s]. No changes have been made to your account yet.[2:]\n"
|
||||
" You can reset your password by clicking the link below:[3:]\n"
|
||||
" [4:\n"
|
||||
" Reset Password\n"
|
||||
" ]"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "If you didn't make this request, you can ignore this email."
|
||||
msgstr "Če niste zahtevali tega sporočila, ga preprosto prezrite."
|
||||
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "Reset Password"
|
||||
msgstr "Ponastavitev gesla"
|
||||
|
||||
#, python-format
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "The link will expire in [1:%(datetime)s]."
|
||||
msgstr "Povezava bo potekla čez [1:%(datetime)s]."
|
||||
|
||||
#, python-format
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "%(email)s"
|
||||
msgstr "%(email)s"
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Button is not working? Paste this into your browser:"
|
||||
msgstr "Gumb ne deluje? Prilepite to povezavo v vaš brskalnik:"
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Email Validation"
|
||||
msgstr "Preverjanje elektronskega naslova"
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "If you received this email by mistake, just ignore it."
|
||||
msgstr "Če ste po pomoti prejeli to sporočilo, ga preprosto prezrite."
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Just one more step.."
|
||||
msgstr "Samo še en korak ..."
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Validate"
|
||||
msgstr "Preveri veljavnost"
|
||||
188
modules/web_user/locale/tr.po
Normal file
188
modules/web_user/locale/tr.po
Normal file
@@ -0,0 +1,188 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:web.user,email:"
|
||||
msgid "Email"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user,email_token:"
|
||||
msgid "Email Token"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:web.user,email_valid:"
|
||||
msgid "Email Valid"
|
||||
msgstr "Email Validation"
|
||||
|
||||
msgctxt "field:web.user,party:"
|
||||
msgid "Party"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user,password:"
|
||||
msgid "Password"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user,password_hash:"
|
||||
msgid "Password Hash"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user,reset_password_token:"
|
||||
msgid "Reset Password Token"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user,reset_password_token_expire:"
|
||||
msgid "Reset Password Token Expire"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user,secondary_parties:"
|
||||
msgid "Secondary Parties"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user-party.party.secondary,party:"
|
||||
msgid "Party"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:web.user-party.party.secondary,user:"
|
||||
msgid "User"
|
||||
msgstr "Web Users"
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,device_cookie:"
|
||||
msgid "Device Cookie"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,ip_address:"
|
||||
msgid "IP Address"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,ip_network:"
|
||||
msgid "IP Network"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,login:"
|
||||
msgid "Login"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user.session,key:"
|
||||
msgid "Key"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:web.user.session,user:"
|
||||
msgid "User"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.action,name:act_user_form"
|
||||
msgid "Web Users"
|
||||
msgstr "Web Users"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.action,name:act_user_form_party"
|
||||
msgid "Web Users"
|
||||
msgstr "Web Users"
|
||||
|
||||
msgctxt "model:ir.action,name:report_email_reset_password"
|
||||
msgid "Reset Password"
|
||||
msgstr "Reset Password"
|
||||
|
||||
msgctxt "model:ir.action,name:report_email_validation"
|
||||
msgid "Email Validation"
|
||||
msgstr "Email Validation"
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_user_email_invalid"
|
||||
msgid "The email address \"%(email)s\" for \"%(user)s\" is not valid."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_user_email_unique"
|
||||
msgid "Email of active web user must be unique."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_user_session_key_unique"
|
||||
msgid "Web user session key must be unique."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.model.button,string:user_reset_password_button"
|
||||
msgid "Reset Password"
|
||||
msgstr "Reset Password"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.model.button,string:user_validate_email_button"
|
||||
msgid "Validate Email"
|
||||
msgstr "Validate E-mail"
|
||||
|
||||
msgctxt "model:ir.ui.menu,name:menu_user_form"
|
||||
msgid "Web Users"
|
||||
msgstr "Web Users"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:web.user,string:"
|
||||
msgid "Web User"
|
||||
msgstr "Web Users"
|
||||
|
||||
msgctxt "model:web.user-party.party.secondary,string:"
|
||||
msgid "Web User - Party Secondary"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:web.user.authenticate.attempt,string:"
|
||||
msgid "User Login Attempt"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:web.user.session,string:"
|
||||
msgid "Web User Session"
|
||||
msgstr "Web Users"
|
||||
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "Button not working? Paste this into your browser:"
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid ""
|
||||
"Hello, we received a request to reset the password for the account associated with [1:%(email)s]. No changes have been made to your account yet.[2:]\n"
|
||||
" You can reset your password by clicking the link below:[3:]\n"
|
||||
" [4:\n"
|
||||
" Reset Password\n"
|
||||
" ]"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "If you didn't make this request, you can ignore this email."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "Reset Password"
|
||||
msgstr "Reset Password"
|
||||
|
||||
#, python-format
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "The link will expire in [1:%(datetime)s]."
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "%(email)s"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Button is not working? Paste this into your browser:"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Email Validation"
|
||||
msgstr "Email Validation"
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "If you received this email by mistake, just ignore it."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Just one more step.."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Validate"
|
||||
msgstr ""
|
||||
189
modules/web_user/locale/uk.po
Normal file
189
modules/web_user/locale/uk.po
Normal file
@@ -0,0 +1,189 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:web.user,email:"
|
||||
msgid "Email"
|
||||
msgstr "Ел.пошта"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:web.user,email_token:"
|
||||
msgid "Email Token"
|
||||
msgstr "Токен ел.пошти"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:web.user,email_valid:"
|
||||
msgid "Email Valid"
|
||||
msgstr "Ел.пошта дійсна"
|
||||
|
||||
msgctxt "field:web.user,party:"
|
||||
msgid "Party"
|
||||
msgstr "Особа"
|
||||
|
||||
msgctxt "field:web.user,password:"
|
||||
msgid "Password"
|
||||
msgstr "Пароль"
|
||||
|
||||
msgctxt "field:web.user,password_hash:"
|
||||
msgid "Password Hash"
|
||||
msgstr "Хеш пароля"
|
||||
|
||||
msgctxt "field:web.user,reset_password_token:"
|
||||
msgid "Reset Password Token"
|
||||
msgstr "Скинути токен пароля"
|
||||
|
||||
msgctxt "field:web.user,reset_password_token_expire:"
|
||||
msgid "Reset Password Token Expire"
|
||||
msgstr "Термін скидання токена пароля закінчується"
|
||||
|
||||
msgctxt "field:web.user,secondary_parties:"
|
||||
msgid "Secondary Parties"
|
||||
msgstr "Вторинні особи"
|
||||
|
||||
msgctxt "field:web.user-party.party.secondary,party:"
|
||||
msgid "Party"
|
||||
msgstr "Особа"
|
||||
|
||||
msgctxt "field:web.user-party.party.secondary,user:"
|
||||
msgid "User"
|
||||
msgstr "Користувач"
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,device_cookie:"
|
||||
msgid "Device Cookie"
|
||||
msgstr "Куки пристрою"
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,ip_address:"
|
||||
msgid "IP Address"
|
||||
msgstr "IP-адреса"
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,ip_network:"
|
||||
msgid "IP Network"
|
||||
msgstr "IP-мережа"
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,login:"
|
||||
msgid "Login"
|
||||
msgstr "Логін"
|
||||
|
||||
msgctxt "field:web.user.session,key:"
|
||||
msgid "Key"
|
||||
msgstr "Ключ"
|
||||
|
||||
msgctxt "field:web.user.session,user:"
|
||||
msgid "User"
|
||||
msgstr "Користувач"
|
||||
|
||||
msgctxt "model:ir.action,name:act_user_form"
|
||||
msgid "Web Users"
|
||||
msgstr "Веб-користувачі"
|
||||
|
||||
msgctxt "model:ir.action,name:act_user_form_party"
|
||||
msgid "Web Users"
|
||||
msgstr "Веб-користувачі"
|
||||
|
||||
msgctxt "model:ir.action,name:report_email_reset_password"
|
||||
msgid "Reset Password"
|
||||
msgstr "Скинути пароль"
|
||||
|
||||
msgctxt "model:ir.action,name:report_email_validation"
|
||||
msgid "Email Validation"
|
||||
msgstr "Перевірка ел.пошти"
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_user_email_invalid"
|
||||
msgid "The email address \"%(email)s\" for \"%(user)s\" is not valid."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.message,text:msg_user_email_unique"
|
||||
msgid "Email of active web user must be unique."
|
||||
msgstr "Ел.пошта активного веб-користувача має бути унікальною."
|
||||
|
||||
msgctxt "model:ir.message,text:msg_user_session_key_unique"
|
||||
msgid "Web user session key must be unique."
|
||||
msgstr "Ключ сеансу веб-користувача має бути унікальним."
|
||||
|
||||
msgctxt "model:ir.model.button,string:user_reset_password_button"
|
||||
msgid "Reset Password"
|
||||
msgstr "Скинути пароль"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.model.button,string:user_validate_email_button"
|
||||
msgid "Validate Email"
|
||||
msgstr "Перевірити ел.пошту"
|
||||
|
||||
msgctxt "model:ir.ui.menu,name:menu_user_form"
|
||||
msgid "Web Users"
|
||||
msgstr "Веб-користувачі"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:web.user,string:"
|
||||
msgid "Web User"
|
||||
msgstr "Веб-користувач"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:web.user-party.party.secondary,string:"
|
||||
msgid "Web User - Party Secondary"
|
||||
msgstr "Веб-користувач - Вторинна особа"
|
||||
|
||||
msgctxt "model:web.user.authenticate.attempt,string:"
|
||||
msgid "User Login Attempt"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:web.user.session,string:"
|
||||
msgid "Web User Session"
|
||||
msgstr "Сеанс веб-користувача"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "Button not working? Paste this into your browser:"
|
||||
msgstr "Кнопка не працює? Вставте це у свій браузер:"
|
||||
|
||||
#, python-format
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid ""
|
||||
"Hello, we received a request to reset the password for the account associated with [1:%(email)s]. No changes have been made to your account yet.[2:]\n"
|
||||
" You can reset your password by clicking the link below:[3:]\n"
|
||||
" [4:\n"
|
||||
" Reset Password\n"
|
||||
" ]"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "If you didn't make this request, you can ignore this email."
|
||||
msgstr "Якщо ви не робили цей запит, можете проігнорувати цей ел.лист."
|
||||
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "Reset Password"
|
||||
msgstr "Скинути пароль"
|
||||
|
||||
#, python-format
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "The link will expire in [1:%(datetime)s]."
|
||||
msgstr "Термін посилання завершиться через [1:%(datetime)s]."
|
||||
|
||||
#, python-format
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "%(email)s"
|
||||
msgstr "%(email)s"
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Button is not working? Paste this into your browser:"
|
||||
msgstr "Кнопка не працює? Вставте це у свій браузер:"
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Email Validation"
|
||||
msgstr "Перевірка ел.пошти"
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "If you received this email by mistake, just ignore it."
|
||||
msgstr "Якщо ви отримали цей ел.лист помилково, просто проігноруйте його."
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Just one more step.."
|
||||
msgstr "Ще один крок.."
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Validate"
|
||||
msgstr "Перевірити"
|
||||
189
modules/web_user/locale/zh_CN.po
Normal file
189
modules/web_user/locale/zh_CN.po
Normal file
@@ -0,0 +1,189 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:web.user,email:"
|
||||
msgid "Email"
|
||||
msgstr "电子邮件"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:web.user,email_token:"
|
||||
msgid "Email Token"
|
||||
msgstr "电子邮件令牌"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:web.user,email_valid:"
|
||||
msgid "Email Valid"
|
||||
msgstr "电子邮件有效"
|
||||
|
||||
msgctxt "field:web.user,party:"
|
||||
msgid "Party"
|
||||
msgstr "参与者"
|
||||
|
||||
msgctxt "field:web.user,password:"
|
||||
msgid "Password"
|
||||
msgstr "密码"
|
||||
|
||||
msgctxt "field:web.user,password_hash:"
|
||||
msgid "Password Hash"
|
||||
msgstr "密码HASH"
|
||||
|
||||
msgctxt "field:web.user,reset_password_token:"
|
||||
msgid "Reset Password Token"
|
||||
msgstr "重置密码令牌"
|
||||
|
||||
msgctxt "field:web.user,reset_password_token_expire:"
|
||||
msgid "Reset Password Token Expire"
|
||||
msgstr "重置密码令牌过期"
|
||||
|
||||
msgctxt "field:web.user,secondary_parties:"
|
||||
msgid "Secondary Parties"
|
||||
msgstr "第二参与者"
|
||||
|
||||
msgctxt "field:web.user-party.party.secondary,party:"
|
||||
msgid "Party"
|
||||
msgstr "参与者"
|
||||
|
||||
msgctxt "field:web.user-party.party.secondary,user:"
|
||||
msgid "User"
|
||||
msgstr "用户"
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,device_cookie:"
|
||||
msgid "Device Cookie"
|
||||
msgstr "设备 Cookie"
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,ip_address:"
|
||||
msgid "IP Address"
|
||||
msgstr "IP地址"
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,ip_network:"
|
||||
msgid "IP Network"
|
||||
msgstr "IP网络"
|
||||
|
||||
msgctxt "field:web.user.authenticate.attempt,login:"
|
||||
msgid "Login"
|
||||
msgstr "登录"
|
||||
|
||||
msgctxt "field:web.user.session,key:"
|
||||
msgid "Key"
|
||||
msgstr "密匙"
|
||||
|
||||
msgctxt "field:web.user.session,user:"
|
||||
msgid "User"
|
||||
msgstr "用户"
|
||||
|
||||
msgctxt "model:ir.action,name:act_user_form"
|
||||
msgid "Web Users"
|
||||
msgstr "Web 用户"
|
||||
|
||||
msgctxt "model:ir.action,name:act_user_form_party"
|
||||
msgid "Web Users"
|
||||
msgstr "Web 用户"
|
||||
|
||||
msgctxt "model:ir.action,name:report_email_reset_password"
|
||||
msgid "Reset Password"
|
||||
msgstr "重置密码"
|
||||
|
||||
msgctxt "model:ir.action,name:report_email_validation"
|
||||
msgid "Email Validation"
|
||||
msgstr "电子邮件验证"
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_user_email_invalid"
|
||||
msgid "The email address \"%(email)s\" for \"%(user)s\" is not valid."
|
||||
msgstr "用户 \"%(user)s\" 的电子邮件地址 \"%(email)s\" 无效。"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.message,text:msg_user_email_unique"
|
||||
msgid "Email of active web user must be unique."
|
||||
msgstr "已经激活的Web用户,电子邮件不能重复."
|
||||
|
||||
msgctxt "model:ir.message,text:msg_user_session_key_unique"
|
||||
msgid "Web user session key must be unique."
|
||||
msgstr "Web用户会话密钥必须唯一."
|
||||
|
||||
msgctxt "model:ir.model.button,string:user_reset_password_button"
|
||||
msgid "Reset Password"
|
||||
msgstr "重置密码"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.model.button,string:user_validate_email_button"
|
||||
msgid "Validate Email"
|
||||
msgstr "验证电子邮件"
|
||||
|
||||
msgctxt "model:ir.ui.menu,name:menu_user_form"
|
||||
msgid "Web Users"
|
||||
msgstr "Web 用户"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:web.user,string:"
|
||||
msgid "Web User"
|
||||
msgstr "Web 用户"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:web.user-party.party.secondary,string:"
|
||||
msgid "Web User - Party Secondary"
|
||||
msgstr "web 用户 - 第二参与者"
|
||||
|
||||
msgctxt "model:web.user.authenticate.attempt,string:"
|
||||
msgid "User Login Attempt"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:web.user.session,string:"
|
||||
msgid "Web User Session"
|
||||
msgstr "web 用户会话"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "Button not working? Paste this into your browser:"
|
||||
msgstr "按钮不起作用? 将此粘贴到浏览器的地址栏中:"
|
||||
|
||||
#, python-format
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid ""
|
||||
"Hello, we received a request to reset the password for the account associated with [1:%(email)s]. No changes have been made to your account yet.[2:]\n"
|
||||
" You can reset your password by clicking the link below:[3:]\n"
|
||||
" [4:\n"
|
||||
" Reset Password\n"
|
||||
" ]"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "If you didn't make this request, you can ignore this email."
|
||||
msgstr "如果你没有发出过此请求,就忽略此电子邮件."
|
||||
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "Reset Password"
|
||||
msgstr "重置密码"
|
||||
|
||||
#, python-format
|
||||
msgctxt "report:web.user.email_reset_password:"
|
||||
msgid "The link will expire in [1:%(datetime)s]."
|
||||
msgstr "链接过期时间: [1:%(datetime)s]。"
|
||||
|
||||
#, python-format
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "%(email)s"
|
||||
msgstr "%(email)s"
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Button is not working? Paste this into your browser:"
|
||||
msgstr "按钮不起作用? 将此粘贴到浏览器的地址栏中:"
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Email Validation"
|
||||
msgstr "电子邮件验证"
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "If you received this email by mistake, just ignore it."
|
||||
msgstr "如果误收到此电子邮件,请忽略它。"
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Just one more step.."
|
||||
msgstr "仅一步之遥.."
|
||||
|
||||
msgctxt "report:web.user.email_validation:"
|
||||
msgid "Validate"
|
||||
msgstr "验证"
|
||||
16
modules/web_user/message.xml
Normal file
16
modules/web_user/message.xml
Normal file
@@ -0,0 +1,16 @@
|
||||
<?xml version="1.0"?>
|
||||
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
this repository contains the full copyright notices and license terms. -->
|
||||
<tryton>
|
||||
<data grouped="1">
|
||||
<record model="ir.message" id="msg_user_email_unique">
|
||||
<field name="text">Email of active web user must be unique.</field>
|
||||
</record>
|
||||
<record model="ir.message" id="msg_user_session_key_unique">
|
||||
<field name="text">Web user session key must be unique.</field>
|
||||
</record>
|
||||
<record model="ir.message" id="msg_user_email_invalid">
|
||||
<field name="text">The email address "%(email)s" for "%(user)s" is not valid.</field>
|
||||
</record>
|
||||
</data>
|
||||
</tryton>
|
||||
28
modules/web_user/party.py
Normal file
28
modules/web_user/party.py
Normal file
@@ -0,0 +1,28 @@
|
||||
# This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
# this repository contains the full copyright notices and license terms.
|
||||
from trytond.pool import Pool, PoolMeta
|
||||
|
||||
|
||||
class Replace(metaclass=PoolMeta):
|
||||
__name__ = 'party.replace'
|
||||
|
||||
@classmethod
|
||||
def fields_to_replace(cls):
|
||||
return super().fields_to_replace() + [
|
||||
('web.user', 'party'),
|
||||
('web.user-party.party.secondary', 'party'),
|
||||
]
|
||||
|
||||
|
||||
class Erase(metaclass=PoolMeta):
|
||||
__name__ = 'party.erase'
|
||||
|
||||
def to_erase(self, party_id):
|
||||
pool = Pool()
|
||||
User = pool.get('web.user')
|
||||
to_erase = super().to_erase(party_id)
|
||||
to_erase.append(
|
||||
(User, [('party', '=', party_id)], True,
|
||||
['email'],
|
||||
[None]))
|
||||
return to_erase
|
||||
2
modules/web_user/tests/__init__.py
Normal file
2
modules/web_user/tests/__init__.py
Normal file
@@ -0,0 +1,2 @@
|
||||
# This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
# this repository contains the full copyright notices and license terms.
|
||||
BIN
modules/web_user/tests/__pycache__/__init__.cpython-311.pyc
Normal file
BIN
modules/web_user/tests/__pycache__/__init__.cpython-311.pyc
Normal file
Binary file not shown.
BIN
modules/web_user/tests/__pycache__/test_module.cpython-311.pyc
Normal file
BIN
modules/web_user/tests/__pycache__/test_module.cpython-311.pyc
Normal file
Binary file not shown.
204
modules/web_user/tests/test_module.py
Normal file
204
modules/web_user/tests/test_module.py
Normal file
@@ -0,0 +1,204 @@
|
||||
# This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
# this repository contains the full copyright notices and license terms.
|
||||
|
||||
from unittest.mock import patch
|
||||
|
||||
import trytond.config as config
|
||||
from trytond.modules.party.tests import (
|
||||
PartyCheckEraseMixin, PartyCheckReplaceMixin)
|
||||
from trytond.modules.web_user import user as user_module
|
||||
from trytond.pool import Pool
|
||||
from trytond.tests.test_tryton import ModuleTestCase, with_transaction
|
||||
|
||||
VALIDATION_URL = 'http://www.example.com/validation'
|
||||
RESET_PASSWORD_URL = 'http://www.example.com/reset_password'
|
||||
FROM = 'tryton@example.com'
|
||||
|
||||
|
||||
class WebUserTestCase(
|
||||
PartyCheckEraseMixin, PartyCheckReplaceMixin, ModuleTestCase):
|
||||
'Test Web User module'
|
||||
module = 'web_user'
|
||||
|
||||
def setUp(self):
|
||||
super().setUp()
|
||||
validation_url = config.get('web', 'email_validation_url', default='')
|
||||
config.set('web', 'email_validation_url', VALIDATION_URL)
|
||||
self.addCleanup(
|
||||
lambda: config.set('web', 'email_validation_url', validation_url))
|
||||
reset_password_url = config.get(
|
||||
'web', 'reset_password_url', default='')
|
||||
config.set('web', 'reset_password_url', RESET_PASSWORD_URL)
|
||||
self.addCleanup(lambda: config.set(
|
||||
'web', 'reset_password_url', reset_password_url))
|
||||
reset_from = config.get('email', 'from', default='')
|
||||
config.set('email', 'from', FROM)
|
||||
self.addCleanup(lambda: config.set('email', 'from', reset_from))
|
||||
|
||||
length = config.get('password', 'length', default='')
|
||||
config.set('password', 'length', '4')
|
||||
self.addCleanup(config.set, 'password', 'length', length)
|
||||
|
||||
entropy = config.get('password', 'entropy', default='')
|
||||
config.set('password', 'entropy', '0.8')
|
||||
self.addCleanup(config.set, 'password', 'entropy', entropy)
|
||||
|
||||
def create_user(self, email, password):
|
||||
pool = Pool()
|
||||
User = pool.get('web.user')
|
||||
|
||||
user = User(email=email)
|
||||
user.password = password
|
||||
user.save()
|
||||
|
||||
self.assertEqual(user.password, 'x' * 10)
|
||||
self.assertNotEqual(user.password_hash, password)
|
||||
|
||||
def check_user(self, email, password):
|
||||
pool = Pool()
|
||||
User = pool.get('web.user')
|
||||
|
||||
user, = User.search([('email', '=', email)])
|
||||
auth_user = User.authenticate(email, password)
|
||||
self.assertEqual(auth_user, user)
|
||||
|
||||
bad_user = User.authenticate(email, password + 'wrong')
|
||||
self.assertEqual(bad_user, None)
|
||||
|
||||
bad_user = User.authenticate(email + 'wrong', password)
|
||||
self.assertEqual(bad_user, None)
|
||||
|
||||
@with_transaction()
|
||||
def test_default_hash(self):
|
||||
'Test default hash'
|
||||
self.create_user('user@example.com', 'secret')
|
||||
self.check_user('user@example.com', 'secret')
|
||||
|
||||
@with_transaction()
|
||||
def test_session(self):
|
||||
'Test session'
|
||||
pool = Pool()
|
||||
User = pool.get('web.user')
|
||||
|
||||
user = User(email='user@example.com')
|
||||
user.save()
|
||||
|
||||
key = user.new_session()
|
||||
self.assertTrue(key)
|
||||
|
||||
session_user = User.get_user(key)
|
||||
self.assertEqual(session_user, user)
|
||||
|
||||
wrong_session_user = User.get_user('foo')
|
||||
self.assertEqual(wrong_session_user, None)
|
||||
|
||||
@with_transaction()
|
||||
def test_validate_email(self):
|
||||
'Test email validation'
|
||||
pool = Pool()
|
||||
User = pool.get('web.user')
|
||||
|
||||
user = User(email='user@example.com')
|
||||
user.save()
|
||||
self.assertFalse(user.email_valid)
|
||||
self.assertFalse(user.email_token)
|
||||
|
||||
with patch.object(
|
||||
user_module, 'send_message_transactional') as send_message:
|
||||
User.validate_email([user])
|
||||
send_message.assert_called_once()
|
||||
|
||||
token = user.email_token
|
||||
self.assertTrue(token)
|
||||
|
||||
self.assertEqual(
|
||||
user.get_email_validation_url(),
|
||||
'%s?token=%s' % (VALIDATION_URL, token))
|
||||
|
||||
self.assertFalse(
|
||||
User.validate_email_url(VALIDATION_URL))
|
||||
self.assertFalse(
|
||||
User.validate_email_url('%s?token=12345' % VALIDATION_URL))
|
||||
|
||||
self.assertTrue(
|
||||
User.validate_email_url(user.get_email_validation_url()))
|
||||
|
||||
self.assertTrue(user.email_valid)
|
||||
self.assertFalse(user.email_token)
|
||||
|
||||
@with_transaction()
|
||||
def test_reset_password(self):
|
||||
'Test reset password'
|
||||
pool = Pool()
|
||||
User = pool.get('web.user')
|
||||
|
||||
user = User(email='user@example.com', email_valid=True)
|
||||
user.save()
|
||||
self.assertFalse(user.password_hash)
|
||||
|
||||
with patch.object(
|
||||
user_module, 'send_message_transactional') as send_message:
|
||||
User.reset_password([user])
|
||||
send_message.assert_called_once()
|
||||
|
||||
token = user.reset_password_token
|
||||
self.assertTrue(token)
|
||||
self.assertTrue(user.reset_password_token_expire)
|
||||
|
||||
self.assertEqual(
|
||||
user.get_email_reset_password_url(),
|
||||
'%s?email=user%%40example.com&token=%s'
|
||||
% (RESET_PASSWORD_URL, token))
|
||||
|
||||
self.assertFalse(
|
||||
User.set_password_token('foo@example.com', '12345', 'secret'))
|
||||
self.assertFalse(
|
||||
User.set_password_token('user@example.com', '12345', 'secret'))
|
||||
self.assertFalse(
|
||||
User.set_password_token('foo@example.com', token, 'secret'))
|
||||
self.assertFalse(user.password_hash)
|
||||
|
||||
self.assertTrue(User.set_password_url(
|
||||
user.get_email_reset_password_url(), 'secret'))
|
||||
|
||||
self.assertTrue(user.password_hash)
|
||||
self.assertFalse(user.reset_password_token)
|
||||
self.assertFalse(user.reset_password_token_expire)
|
||||
|
||||
@with_transaction()
|
||||
def test_create_format_email(self):
|
||||
"Test create format email"
|
||||
pool = Pool()
|
||||
User = pool.get('web.user')
|
||||
|
||||
user = User(email='FOO@Example.com')
|
||||
user.save()
|
||||
|
||||
self.assertEqual(user.email, 'foo@example.com')
|
||||
|
||||
@with_transaction()
|
||||
def test_write_format_email(self):
|
||||
"Test write format email"
|
||||
pool = Pool()
|
||||
User = pool.get('web.user')
|
||||
|
||||
user = User(email='foo@example.com')
|
||||
user.save()
|
||||
User.write([user], {'email': 'BAR@Example.com'})
|
||||
|
||||
self.assertEqual(user.email, 'bar@example.com')
|
||||
|
||||
@with_transaction()
|
||||
def test_authenticate_case_insensitive(self):
|
||||
"Test authenticate case insensitive"
|
||||
pool = Pool()
|
||||
User = pool.get('web.user')
|
||||
|
||||
user = User(email='foo@example.com', password='secret')
|
||||
user.save()
|
||||
auth_user = User.authenticate('FOO@Example.com', 'secret')
|
||||
|
||||
self.assertEqual(auth_user, user)
|
||||
|
||||
|
||||
del ModuleTestCase
|
||||
23
modules/web_user/tryton.cfg
Normal file
23
modules/web_user/tryton.cfg
Normal file
@@ -0,0 +1,23 @@
|
||||
[tryton]
|
||||
version=7.8.1
|
||||
depends:
|
||||
ir
|
||||
party
|
||||
xml:
|
||||
user.xml
|
||||
message.xml
|
||||
|
||||
[register]
|
||||
model:
|
||||
ir.Email
|
||||
ir.EmailTemplate
|
||||
user.User
|
||||
user.User_PartySecondary
|
||||
user.UserAuthenticateAttempt
|
||||
user.UserSession
|
||||
wizard:
|
||||
party.Replace
|
||||
party.Erase
|
||||
report:
|
||||
user.EmailValidation
|
||||
user.EmailResetPassword
|
||||
489
modules/web_user/user.py
Normal file
489
modules/web_user/user.py
Normal file
@@ -0,0 +1,489 @@
|
||||
# This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
# this repository contains the full copyright notices and license terms.
|
||||
import datetime
|
||||
import logging
|
||||
import random
|
||||
import time
|
||||
import urllib.parse
|
||||
from secrets import token_hex
|
||||
|
||||
from sql import Literal, Null
|
||||
from sql.conditionals import Coalesce
|
||||
from sql.functions import CurrentTimestamp
|
||||
from sql.operators import Equal
|
||||
|
||||
import trytond.config as config
|
||||
from trytond.exceptions import RateLimitException
|
||||
from trytond.i18n import gettext
|
||||
from trytond.model import (
|
||||
DeactivableMixin, Exclude, Index, ModelSQL, ModelView, Unique,
|
||||
avatar_mixin, fields)
|
||||
from trytond.pool import Pool
|
||||
from trytond.pyson import Eval
|
||||
from trytond.report import Report, get_email
|
||||
from trytond.res.user import PASSWORD_HASH, LoginAttempt
|
||||
from trytond.sendmail import send_message_transactional
|
||||
from trytond.tools.email_ import (
|
||||
EmailNotValidError, normalize_email, set_from_header, validate_email)
|
||||
from trytond.transaction import Transaction, without_check_access
|
||||
|
||||
from .exceptions import UserValidationError
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
def _send_email(from_, users, email_func):
|
||||
from_cfg = config.get('email', 'from')
|
||||
for user in users:
|
||||
msg, title = email_func(user)
|
||||
set_from_header(msg, from_cfg, from_ or from_cfg)
|
||||
msg['To'] = user.email
|
||||
msg['Subject'] = title
|
||||
send_message_transactional(msg)
|
||||
|
||||
|
||||
def _add_params(url, **params):
|
||||
parts = urllib.parse.urlsplit(url)
|
||||
query = urllib.parse.parse_qsl(parts.query)
|
||||
for key, value in sorted(params.items()):
|
||||
query.append((key, value))
|
||||
parts = list(parts)
|
||||
parts[3] = urllib.parse.urlencode(query)
|
||||
return urllib.parse.urlunsplit(parts)
|
||||
|
||||
|
||||
def _extract_params(url):
|
||||
return urllib.parse.parse_qsl(urllib.parse.urlsplit(url).query)
|
||||
|
||||
|
||||
class User(avatar_mixin(100), DeactivableMixin, ModelSQL, ModelView):
|
||||
__name__ = 'web.user'
|
||||
_rec_name = 'email'
|
||||
|
||||
email = fields.Char(
|
||||
"Email",
|
||||
states={
|
||||
'required': Eval('active', True),
|
||||
})
|
||||
email_valid = fields.Boolean('Email Valid')
|
||||
email_token = fields.Char("Email Token", strip=False)
|
||||
password_hash = fields.Char('Password Hash')
|
||||
password = fields.Function(
|
||||
fields.Char('Password'), 'get_password', setter='set_password')
|
||||
reset_password_token = fields.Char("Reset Password Token", strip=False)
|
||||
reset_password_token_expire = fields.Timestamp(
|
||||
'Reset Password Token Expire')
|
||||
party = fields.Many2One('party.party', 'Party', ondelete='RESTRICT')
|
||||
secondary_parties = fields.Many2Many(
|
||||
'web.user-party.party.secondary', 'user', 'party', "Secondary Parties")
|
||||
|
||||
@classmethod
|
||||
def __setup__(cls):
|
||||
super().__setup__()
|
||||
table = cls.__table__()
|
||||
cls._sql_constraints += [
|
||||
('email_exclude',
|
||||
Exclude(table, (table.email, Equal),
|
||||
where=table.active == Literal(True)),
|
||||
'web_user.msg_user_email_unique'),
|
||||
]
|
||||
cls._sql_indexes.update({
|
||||
Index(
|
||||
table, (table.email, Index.Equality(cardinality='high'))),
|
||||
Index(
|
||||
table,
|
||||
(table.email_token, Index.Equality(cardinality='high')),
|
||||
where=table.email_token != Null),
|
||||
})
|
||||
cls._buttons.update({
|
||||
'validate_email': {
|
||||
'readonly': Eval('email_valid', False),
|
||||
'depends': ['email_valid'],
|
||||
},
|
||||
'reset_password': {
|
||||
'readonly': ~Eval('email_valid', False),
|
||||
'depends': ['email_valid'],
|
||||
},
|
||||
})
|
||||
|
||||
@classmethod
|
||||
def default_email_valid(cls):
|
||||
return False
|
||||
|
||||
def get_password(self, name):
|
||||
return 'x' * 10
|
||||
|
||||
@classmethod
|
||||
def set_password(cls, users, name, value):
|
||||
pool = Pool()
|
||||
User = pool.get('res.user')
|
||||
|
||||
if value == 'x' * 10:
|
||||
return
|
||||
|
||||
if Transaction().user and value:
|
||||
User.validate_password(value, users)
|
||||
|
||||
to_write = []
|
||||
for user in users:
|
||||
to_write.extend([[user], {
|
||||
'password_hash': cls.hash_password(value),
|
||||
}])
|
||||
cls.write(*to_write)
|
||||
|
||||
@fields.depends('party', 'email')
|
||||
def on_change_party(self):
|
||||
if not self.email and self.party:
|
||||
self.email = self.party.email
|
||||
|
||||
@classmethod
|
||||
def copy(cls, users, default=None):
|
||||
default = default.copy() if default is not None else {}
|
||||
default['password_hash'] = None
|
||||
default['reset_password_token'] = None
|
||||
return super().copy(users, default=default)
|
||||
|
||||
@classmethod
|
||||
def preprocess_values(cls, mode, values):
|
||||
values = super().preprocess_values(mode, values)
|
||||
if values.get('email'):
|
||||
values['email'] = normalize_email(values['email']).lower()
|
||||
return values
|
||||
|
||||
@classmethod
|
||||
def validate_fields(cls, users, fields_names):
|
||||
super().validate_fields(users, fields_names)
|
||||
cls.check_valid_email(users, fields_names)
|
||||
|
||||
@classmethod
|
||||
def check_valid_email(cls, users, fields_names=None):
|
||||
if fields_names and 'email' not in fields_names:
|
||||
return
|
||||
for user in users:
|
||||
if user.email:
|
||||
try:
|
||||
validate_email(user.email)
|
||||
except EmailNotValidError as e:
|
||||
raise UserValidationError(gettext(
|
||||
'web_user.msg_user_email_invalid',
|
||||
user=user.rec_name,
|
||||
email=user.email),
|
||||
str(e)) from e
|
||||
|
||||
@classmethod
|
||||
def authenticate(cls, email, password):
|
||||
pool = Pool()
|
||||
Attempt = pool.get('web.user.authenticate.attempt')
|
||||
email = email.lower()
|
||||
|
||||
count_ip = Attempt.count_ip()
|
||||
if count_ip > config.getint(
|
||||
'session', 'max_attempt_ip_network', default=300):
|
||||
# Do not add attempt as the goal is to prevent flooding
|
||||
raise RateLimitException()
|
||||
count = Attempt.count(email)
|
||||
if count > config.getint('session', 'max_attempt', default=5):
|
||||
Attempt.add(email)
|
||||
raise RateLimitException()
|
||||
# Prevent brute force attack
|
||||
Transaction().atexit(time.sleep, 2 ** count - 1)
|
||||
|
||||
users = cls.search([('email', '=', email)])
|
||||
if users:
|
||||
user, = users
|
||||
valid, new_hash = cls.check_password(password, user.password_hash)
|
||||
if valid:
|
||||
if new_hash:
|
||||
logger.info("Update password hash for %s", user.id)
|
||||
with Transaction().new_transaction():
|
||||
with without_check_access():
|
||||
cls.write([cls(user.id)], {
|
||||
'password_hash': new_hash,
|
||||
})
|
||||
Attempt.remove(email)
|
||||
return user
|
||||
Attempt.add(email)
|
||||
|
||||
@classmethod
|
||||
def hash_password(cls, password):
|
||||
'''Hash given password in the form
|
||||
<hash_method>$<password>$<salt>...'''
|
||||
if not password:
|
||||
return None
|
||||
return PASSWORD_HASH.hash(password)
|
||||
|
||||
@classmethod
|
||||
def check_password(cls, password, hash_):
|
||||
return PASSWORD_HASH.verify_and_update(password, hash_)
|
||||
|
||||
def new_session(self):
|
||||
pool = Pool()
|
||||
Session = pool.get('web.user.session')
|
||||
return Session.add(self)
|
||||
|
||||
@classmethod
|
||||
def get_user(cls, session):
|
||||
pool = Pool()
|
||||
Session = pool.get('web.user.session')
|
||||
return Session.get_user(session)
|
||||
|
||||
@classmethod
|
||||
@ModelView.button
|
||||
def validate_email(cls, users, from_=None):
|
||||
for user in users:
|
||||
user.set_email_token()
|
||||
cls.save(users)
|
||||
_send_email(from_, users, cls.get_email_validation)
|
||||
|
||||
def set_email_token(self, nbytes=None):
|
||||
self.email_token = token_hex(nbytes)
|
||||
|
||||
def get_email_validation(self):
|
||||
return get_email(
|
||||
'web.user.email_validation', self, self.languages)
|
||||
|
||||
def get_email_validation_url(self, url=None):
|
||||
if url is None:
|
||||
url = config.get('web', 'email_validation_url')
|
||||
if url is not None:
|
||||
return _add_params(url, token=self.email_token)
|
||||
else:
|
||||
return ''
|
||||
|
||||
@classmethod
|
||||
def validate_email_url(cls, url):
|
||||
parts = urllib.parse.urlsplit(url)
|
||||
tokens = filter(
|
||||
None, urllib.parse.parse_qs(parts.query).get('token', [None]))
|
||||
return cls.validate_email_token(list(tokens))
|
||||
|
||||
@classmethod
|
||||
def validate_email_token(cls, tokens):
|
||||
users = cls.search([
|
||||
('email_token', 'in', tokens),
|
||||
])
|
||||
cls.write(users, {
|
||||
'email_valid': True,
|
||||
'email_token': None,
|
||||
})
|
||||
return users
|
||||
|
||||
@classmethod
|
||||
@ModelView.button
|
||||
def reset_password(cls, users, from_=None):
|
||||
now = datetime.datetime.now()
|
||||
|
||||
# Prevent abusive reset
|
||||
def reset(user):
|
||||
return not (user.reset_password_token_expire
|
||||
and user.reset_password_token_expire > now)
|
||||
users = list(filter(reset, users))
|
||||
|
||||
for user in users:
|
||||
user.set_reset_password_token()
|
||||
cls.save(users)
|
||||
_send_email(from_, users, cls.get_email_reset_password)
|
||||
|
||||
def set_reset_password_token(self, nbytes=None):
|
||||
self.reset_password_token = token_hex(nbytes)
|
||||
self.reset_password_token_expire = (
|
||||
datetime.datetime.now() + datetime.timedelta(
|
||||
seconds=config.getint(
|
||||
'session', 'web_timeout_reset', default=24 * 60 * 60)))
|
||||
|
||||
def clear_reset_password_token(self):
|
||||
self.reset_password_token = None
|
||||
self.reset_password_token_expire = None
|
||||
|
||||
def get_email_reset_password(self):
|
||||
return get_email(
|
||||
'web.user.email_reset_password', self, self.languages)
|
||||
|
||||
def get_email_reset_password_url(self, url=None):
|
||||
if url is None:
|
||||
url = config.get('web', 'reset_password_url')
|
||||
if url is not None:
|
||||
return _add_params(
|
||||
url, token=self.reset_password_token, email=self.email)
|
||||
else:
|
||||
return ''
|
||||
|
||||
@classmethod
|
||||
def set_password_url(cls, url, password):
|
||||
parts = urllib.parse.urlsplit(url)
|
||||
query = urllib.parse.parse_qs(parts.query)
|
||||
email = query.get('email', [None])[0]
|
||||
token = query.get('token', [None])[0]
|
||||
return cls.set_password_token(email, token, password)
|
||||
|
||||
@classmethod
|
||||
def set_password_token(cls, email, token, password):
|
||||
pool = Pool()
|
||||
Attempt = pool.get('web.user.authenticate.attempt')
|
||||
email = email.lower()
|
||||
|
||||
# Prevent brute force attack
|
||||
Transaction().atexit(
|
||||
time.sleep, random.randint(0, 2 ** Attempt.count(email) - 1))
|
||||
|
||||
users = cls.search([
|
||||
('email', '=', email),
|
||||
])
|
||||
if users:
|
||||
user, = users
|
||||
if user.reset_password_token == token:
|
||||
now = datetime.datetime.now()
|
||||
expire = user.reset_password_token_expire
|
||||
user.clear_reset_password_token()
|
||||
if expire > now:
|
||||
user.password = password
|
||||
user.save()
|
||||
Attempt.remove(email)
|
||||
return True
|
||||
Attempt.add(email)
|
||||
return False
|
||||
|
||||
@property
|
||||
def languages(self):
|
||||
pool = Pool()
|
||||
Language = pool.get('ir.lang')
|
||||
if self.party and self.party.lang:
|
||||
languages = [self.party.lang]
|
||||
else:
|
||||
languages = Language.search([
|
||||
('code', '=', Transaction().language),
|
||||
])
|
||||
return languages
|
||||
|
||||
|
||||
class User_PartySecondary(ModelSQL):
|
||||
__name__ = 'web.user-party.party.secondary'
|
||||
|
||||
user = fields.Many2One(
|
||||
'web.user', "User", required=True, ondelete='CASCADE')
|
||||
party = fields.Many2One(
|
||||
'party.party', "Party", required=True, ondelete='CASCADE')
|
||||
|
||||
|
||||
class UserAuthenticateAttempt(LoginAttempt):
|
||||
__name__ = 'web.user.authenticate.attempt'
|
||||
_table = None # Needed to reset LoginAttempt._table
|
||||
|
||||
|
||||
class UserSession(ModelSQL):
|
||||
__name__ = 'web.user.session'
|
||||
_rec_name = 'key'
|
||||
|
||||
key = fields.Char("Key", required=True, strip=False)
|
||||
user = fields.Many2One(
|
||||
'web.user', "User", required=True, ondelete='CASCADE')
|
||||
|
||||
@classmethod
|
||||
def __setup__(cls):
|
||||
super().__setup__()
|
||||
table = cls.__table__()
|
||||
cls.__rpc__ = {}
|
||||
cls._sql_constraints += [
|
||||
('key_unique', Unique(table, table.key),
|
||||
'web_user.msg_user_session_key_unique'),
|
||||
]
|
||||
cls._sql_indexes.update({
|
||||
Index(
|
||||
table,
|
||||
(Coalesce(table.write_date, table.create_date),
|
||||
Index.Range())),
|
||||
Index(table, (table.key, Index.Equality(cardinality='high'))),
|
||||
})
|
||||
|
||||
@classmethod
|
||||
def default_key(cls, nbytes=None):
|
||||
return token_hex(nbytes)
|
||||
|
||||
@classmethod
|
||||
def add(cls, user):
|
||||
cursor = Transaction().connection.cursor()
|
||||
table = cls.__table__()
|
||||
|
||||
cursor.execute(*table.delete(
|
||||
where=(
|
||||
Coalesce(table.write_date, table.create_date)
|
||||
< CurrentTimestamp() - cls.timeout())))
|
||||
|
||||
session = cls(user=user)
|
||||
session.save()
|
||||
return session.key
|
||||
|
||||
@classmethod
|
||||
def remove(cls, key):
|
||||
sessions = cls.search([
|
||||
('key', '=', key),
|
||||
])
|
||||
cls.delete(sessions)
|
||||
|
||||
@classmethod
|
||||
def get_user(cls, session):
|
||||
transaction = Transaction()
|
||||
sessions = cls.search([
|
||||
('key', '=', session),
|
||||
])
|
||||
if not sessions:
|
||||
return
|
||||
session, = sessions
|
||||
if not session.expired:
|
||||
return session.user
|
||||
elif not transaction.readonly:
|
||||
cls.delete([session])
|
||||
|
||||
@classmethod
|
||||
def timeout(cls):
|
||||
return datetime.timedelta(seconds=config.getint(
|
||||
'session', 'web_timeout', default=30 * 24 * 60 * 60))
|
||||
|
||||
@property
|
||||
def expired(self):
|
||||
now = datetime.datetime.now()
|
||||
timestamp = self.write_date or self.create_date
|
||||
return abs(timestamp - now) > self.timeout()
|
||||
|
||||
@classmethod
|
||||
def reset(cls, session):
|
||||
sessions = cls.search([
|
||||
('key', '=', session),
|
||||
])
|
||||
cls.write(sessions, {})
|
||||
|
||||
@classmethod
|
||||
def preprocess_values(cls, mode, values):
|
||||
values = super().preprocess_values(mode, values)
|
||||
if mode == 'create':
|
||||
# Ensure to get a different key for each record
|
||||
# default methods are called only once
|
||||
values.setdefault('key', cls.default_key())
|
||||
return values
|
||||
|
||||
|
||||
class EmailValidation(Report):
|
||||
__name__ = 'web.user.email_validation'
|
||||
|
||||
@classmethod
|
||||
def get_context(cls, records, header, data):
|
||||
context = super().get_context(records, header, data)
|
||||
context['extract_params'] = _extract_params
|
||||
return context
|
||||
|
||||
|
||||
class EmailResetPassword(Report):
|
||||
__name__ = 'web.user.email_reset_password'
|
||||
|
||||
@classmethod
|
||||
def get_context(cls, records, header, data):
|
||||
context = super().get_context(records, header, data)
|
||||
context['extract_params'] = _extract_params
|
||||
expire_delay = (
|
||||
records[0].reset_password_token_expire - datetime.datetime.now())
|
||||
# Use a precision of minutes
|
||||
expire_delay = datetime.timedelta(
|
||||
days=expire_delay.days,
|
||||
minutes=round(expire_delay.seconds / 60))
|
||||
context['expire_delay'] = expire_delay
|
||||
return context
|
||||
115
modules/web_user/user.xml
Normal file
115
modules/web_user/user.xml
Normal file
@@ -0,0 +1,115 @@
|
||||
<?xml version="1.0"?>
|
||||
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
this repository contains the full copyright notices and license terms. -->
|
||||
<tryton>
|
||||
<data>
|
||||
<record model="ir.ui.view" id="user_view_form">
|
||||
<field name="model">web.user</field>
|
||||
<field name="type">form</field>
|
||||
<field name="name">user_form</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="user_view_list">
|
||||
<field name="model">web.user</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="name">user_list</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.action.act_window" id="act_user_form">
|
||||
<field name="name">Web Users</field>
|
||||
<field name="res_model">web.user</field>
|
||||
</record>
|
||||
<record model="ir.action.act_window.view" id="act_user_form_view1">
|
||||
<field name="sequence" eval="10"/>
|
||||
<field name="view" ref="user_view_list"/>
|
||||
<field name="act_window" ref="act_user_form"/>
|
||||
</record>
|
||||
<record model="ir.action.act_window.view" id="act_user_form_view2">
|
||||
<field name="sequence" eval="20"/>
|
||||
<field name="view" ref="user_view_form"/>
|
||||
<field name="act_window" ref="act_user_form"/>
|
||||
</record>
|
||||
|
||||
<menuitem
|
||||
parent="res.menu_res"
|
||||
action="act_user_form"
|
||||
sequence="50"
|
||||
id="menu_user_form"/>
|
||||
|
||||
<record model="ir.action.act_window" id="act_user_form_party">
|
||||
<field name="name">Web Users</field>
|
||||
<field name="res_model">web.user</field>
|
||||
<field
|
||||
name="domain"
|
||||
eval="['OR', ('party', 'in', Eval('active_ids', [])), ('secondary_parties', 'in', Eval('active_ids', []))]"
|
||||
pyson="1"/>
|
||||
</record>
|
||||
<record model="ir.action.act_window.view" id="act_user_form_party_view1">
|
||||
<field name="sequence" eval="10"/>
|
||||
<field name="view" ref="user_view_list"/>
|
||||
<field name="act_window" ref="act_user_form_party"/>
|
||||
</record>
|
||||
<record model="ir.action.act_window.view" id="act_user_form_party_view2">
|
||||
<field name="sequence" eval="20"/>
|
||||
<field name="view" ref="user_view_form"/>
|
||||
<field name="act_window" ref="act_user_form_party"/>
|
||||
</record>
|
||||
<record model="ir.action.keyword" id="act_user_form_party_keyword1">
|
||||
<field name="keyword">form_relate</field>
|
||||
<field name="model">party.party,-1</field>
|
||||
<field name="action" ref="act_user_form_party"/>
|
||||
</record>
|
||||
|
||||
<record model="ir.model.access" id="access_user">
|
||||
<field name="model">web.user</field>
|
||||
<field name="perm_read" eval="True"/>
|
||||
<field name="perm_write" eval="False"/>
|
||||
<field name="perm_create" eval="False"/>
|
||||
<field name="perm_delete" eval="False"/>
|
||||
</record>
|
||||
<record model="ir.model.access" id="access_user_admin">
|
||||
<field name="model">web.user</field>
|
||||
<field name="group" ref="res.group_admin"/>
|
||||
<field name="perm_read" eval="True"/>
|
||||
<field name="perm_write" eval="True"/>
|
||||
<field name="perm_create" eval="True"/>
|
||||
<field name="perm_delete" eval="True"/>
|
||||
</record>
|
||||
|
||||
<record model="ir.model.access" id="access_user_party_admin">
|
||||
<field name="model">web.user</field>
|
||||
<field name="group" ref="party.group_party_admin"/>
|
||||
<field name="perm_read" eval="True"/>
|
||||
<field name="perm_write" eval="True"/>
|
||||
<field name="perm_create" eval="True"/>
|
||||
<field name="perm_delete" eval="True"/>
|
||||
</record>
|
||||
|
||||
<record model="ir.model.button" id="user_validate_email_button">
|
||||
<field name="model">web.user</field>
|
||||
<field name="name">validate_email</field>
|
||||
<field name="string">Validate Email</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.model.button" id="user_reset_password_button">
|
||||
<field name="model">web.user</field>
|
||||
<field name="name">reset_password</field>
|
||||
<field name="string">Reset Password</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.action.report" id="report_email_validation">
|
||||
<field name="name">Email Validation</field>
|
||||
<field name="model">web.user</field>
|
||||
<field name="report_name">web.user.email_validation</field>
|
||||
<field name="report">web_user/email_validation.html</field>
|
||||
<field name="template_extension">html</field>
|
||||
</record>
|
||||
<record model="ir.action.report" id="report_email_reset_password">
|
||||
<field name="name">Reset Password</field>
|
||||
<field name="model">web.user</field>
|
||||
<field name="report_name">web.user.email_reset_password</field>
|
||||
<field name="report">web_user/email_reset_password.html</field>
|
||||
<field name="template_extension">html</field>
|
||||
</record>
|
||||
</data>
|
||||
</tryton>
|
||||
25
modules/web_user/view/user_form.xml
Normal file
25
modules/web_user/view/user_form.xml
Normal file
@@ -0,0 +1,25 @@
|
||||
<?xml version="1.0"?>
|
||||
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
this repository contains the full copyright notices and license terms. -->
|
||||
<form>
|
||||
<group col="4" colspan="3" yalign="0" id="header">
|
||||
<label name="party"/>
|
||||
<field name="party"/>
|
||||
<label name="active"/>
|
||||
<field name="active"/>
|
||||
|
||||
<label name="email"/>
|
||||
<field name="email" widget="email"/>
|
||||
<newline/>
|
||||
|
||||
<label name="password"/>
|
||||
<field name="password" widget="password"/>
|
||||
<button name="reset_password" colspan="2"/>
|
||||
|
||||
<label name="email_valid"/>
|
||||
<field name="email_valid"/>
|
||||
<button name="validate_email" colspan="2"/>
|
||||
</group>
|
||||
<field name="avatar" widget="image" height="100" width="100" xexpand="0" border="circle"/>
|
||||
<field name="secondary_parties" colspan="4"/>
|
||||
</form>
|
||||
12
modules/web_user/view/user_list.xml
Normal file
12
modules/web_user/view/user_list.xml
Normal file
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0"?>
|
||||
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
this repository contains the full copyright notices and license terms. -->
|
||||
<tree>
|
||||
<field name="email" expand="1">
|
||||
<prefix id="avatar" icon="avatar_url" icon_type="url" url_size="s" border="circle"/>
|
||||
</field>
|
||||
<field name="email_valid"/>
|
||||
<field name="party" expand="2"/>
|
||||
<button name="validate_email" multiple="1"/>
|
||||
<button name="reset_password" multiple="1"/>
|
||||
</tree>
|
||||
Reference in New Issue
Block a user