diff --git a/ext/3rd-party-addons/auth_admin_passkey/README.rst b/ext/3rd-party-addons/auth_admin_passkey/README.rst new file mode 100644 index 00000000..00b5f1d2 --- /dev/null +++ b/ext/3rd-party-addons/auth_admin_passkey/README.rst @@ -0,0 +1,80 @@ +.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 + +==================== +Auth Admin - Passkey +==================== + +This module extends the functionality of users module to support loging in with the administrator password +in other user accounts. + +* Administrator has now the possibility to login in with any login; +* By default, Odoo will send a mail to user and admin to indicate them; +* If a user and the admin have the same password, admin will be informed; + + +Configuration +============= + +To enable notifications for login attempts, you need to: + +Go to Settings > General Settings. + +Enable the "Send email to admin user" and / or "Send email to user" checkbox + + +Usage +===== + +To login into a different user account type in the user name of the account and the password of the administrator at the login screen + + +.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas + :alt: Try me on Runbot + :target: https://runbot.odoo-community.org/runbot/149/10.0 + + +Known issues / Roadmap +====================== + +None + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues +`_. In case of trouble, please +check there if your issue has already been reported. If you spotted it first, +help us smash it by providing detailed and welcomed feedback. + +Credits +======= + +Images +------ + +* Odoo Community Association: `Icon `_. + +Contributors +------------ + +* Eugen Don +* Alexandre Papin (https://twitter.com/Fenkiou) +* Sylvain LE GAL (https://twitter.com/legalsylvain) + + +Maintainer +---------- + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +This module is maintained by the OCA. + +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. + +To contribute to this module, please visit https://odoo-community.org. diff --git a/ext/3rd-party-addons/auth_admin_passkey/__init__.py b/ext/3rd-party-addons/auth_admin_passkey/__init__.py new file mode 100644 index 00000000..6751b2be --- /dev/null +++ b/ext/3rd-party-addons/auth_admin_passkey/__init__.py @@ -0,0 +1,6 @@ +# -*- coding: utf-8 -*- +# Copyright (C) 2013-2014 GRAP (http://www.grap.coop) +# @author Sylvain LE GAL (https://twitter.com/legalsylvain) +# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html + +from . import models diff --git a/ext/3rd-party-addons/auth_admin_passkey/__manifest__.py b/ext/3rd-party-addons/auth_admin_passkey/__manifest__.py new file mode 100644 index 00000000..d42e5171 --- /dev/null +++ b/ext/3rd-party-addons/auth_admin_passkey/__manifest__.py @@ -0,0 +1,29 @@ +# -*- coding: utf-8 -*- +# Copyright (C) 2013-2014 GRAP (http://www.grap.coop) +# @author Sylvain LE GAL (https://twitter.com/legalsylvain) +# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html + +{ + 'name': 'Authentification - Admin Passkey', + 'version': '10.0.1.0.0', + 'category': 'base', + 'author': "GRAP,Odoo Community Association (OCA)", + 'website': 'http://www.grap.coop', + 'license': 'AGPL-3', + 'depends': [ + 'mail', + ], + 'data': [ + 'data/ir_config_parameter.xml', + 'views/res_config_view.xml', + ], + 'demo': [], + 'js': [], + 'css': [], + 'qweb': [], + 'images': [], + 'post_load': '', + 'application': False, + 'installable': True, + 'auto_install': False, +} diff --git a/ext/3rd-party-addons/auth_admin_passkey/data/ir_config_parameter.xml b/ext/3rd-party-addons/auth_admin_passkey/data/ir_config_parameter.xml new file mode 100644 index 00000000..c5b16ff7 --- /dev/null +++ b/ext/3rd-party-addons/auth_admin_passkey/data/ir_config_parameter.xml @@ -0,0 +1,16 @@ + + + + + + auth_admin_passkey.send_to_admin + True + + + + auth_admin_passkey.send_to_user + True + + + + diff --git a/ext/3rd-party-addons/auth_admin_passkey/i18n/ar.po b/ext/3rd-party-addons/auth_admin_passkey/i18n/ar.po new file mode 100644 index 00000000..1cc1d0fd --- /dev/null +++ b/ext/3rd-party-addons/auth_admin_passkey/i18n/ar.po @@ -0,0 +1,84 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_admin_passkey +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: server-tools (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-01-12 03:50+0000\n" +"PO-Revision-Date: 2017-01-11 15:36+0000\n" +"Last-Translator: OCA Transbot \n" +"Language-Team: Arabic (http://www.transifex.com/oca/OCA-server-tools-8-0/language/ar/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: ar\n" +"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:69 +#, python-format +msgid "
User with login '%s' has the same password as you.
" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:44 +#, python-format +msgid "" +"Admin user used his passkey to login with '%s'.\n" +"\n" +"\n" +"\n" +"Technicals informations belows : \n" +"\n" +"- Login date : %s\n" +"\n" +msgstr "" + +#. module: auth_admin_passkey +#: view:base.config.settings:auth_admin_passkey.view_res_config_settings +msgid "Passkey" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:41 +#, python-format +msgid "Passkey used" +msgstr "" + +#. module: auth_admin_passkey +#: field:base.config.settings,auth_admin_passkey_send_to_admin:0 +msgid "Send email to admin user." +msgstr "" + +#. module: auth_admin_passkey +#: field:base.config.settings,auth_admin_passkey_send_to_user:0 +msgid "Send email to user." +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_res_users +msgid "Users" +msgstr "المستخدمون" + +#. module: auth_admin_passkey +#: help:base.config.settings,auth_admin_passkey_send_to_user:0 +msgid "" +"When the administrator use his password to login in with a different " +"account, Odoo will send an email to the account user." +msgstr "" + +#. module: auth_admin_passkey +#: help:base.config.settings,auth_admin_passkey_send_to_admin:0 +msgid "" +"When the administrator use his password to login in with a different " +"account, Odoo will send an email to the admin user." +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:67 +#, python-format +msgid "[WARNING] Odoo Security Risk" +msgstr "" diff --git a/ext/3rd-party-addons/auth_admin_passkey/i18n/auth_admin_passkey.pot b/ext/3rd-party-addons/auth_admin_passkey/i18n/auth_admin_passkey.pot new file mode 100644 index 00000000..82290c95 --- /dev/null +++ b/ext/3rd-party-addons/auth_admin_passkey/i18n/auth_admin_passkey.pot @@ -0,0 +1,79 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_admin_passkey +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-03-15 19:43+0000\n" +"PO-Revision-Date: 2017-03-15 19:43+0000\n" +"Last-Translator: <>\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:64 +#, python-format +msgid "
User with login '%s' has the same password as you.
" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:39 +#, python-format +msgid "Admin user used his passkey to login with '%s'.\n" +"\n" +"\n" +"\n" +"Technicals informations belows : \n" +"\n" +"- Login date : %s\n" +"\n" +"" +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.ui.view,arch_db:auth_admin_passkey.view_res_config_settings +msgid "Passkey" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:38 +#, python-format +msgid "Passkey used" +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_admin +msgid "Send email to admin user." +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_user +msgid "Send email to user." +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_res_users +msgid "Users" +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model.fields,help:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_user +msgid "When the administrator use his password to login in with a different account, Odoo will send an email to the account user." +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model.fields,help:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_admin +msgid "When the administrator use his password to login in with a different account, Odoo will send an email to the admin user." +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:62 +#, python-format +msgid "[WARNING] Odoo Security Risk" +msgstr "" + diff --git a/ext/3rd-party-addons/auth_admin_passkey/i18n/ca.po b/ext/3rd-party-addons/auth_admin_passkey/i18n/ca.po new file mode 100644 index 00000000..ed06ecf5 --- /dev/null +++ b/ext/3rd-party-addons/auth_admin_passkey/i18n/ca.po @@ -0,0 +1,84 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_admin_passkey +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: server-tools (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-01-17 07:51+0000\n" +"PO-Revision-Date: 2015-09-18 13:53+0000\n" +"Last-Translator: <>\n" +"Language-Team: Catalan (http://www.transifex.com/oca/OCA-server-tools-8-0/language/ca/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: ca\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:69 +#, python-format +msgid "
User with login '%s' has the same password as you.
" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:44 +#, python-format +msgid "" +"Admin user used his passkey to login with '%s'.\n" +"\n" +"\n" +"\n" +"Technicals informations belows : \n" +"\n" +"- Login date : %s\n" +"\n" +msgstr "" + +#. module: auth_admin_passkey +#: view:base.config.settings:auth_admin_passkey.view_res_config_settings +msgid "Passkey" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:41 +#, python-format +msgid "Passkey used" +msgstr "" + +#. module: auth_admin_passkey +#: field:base.config.settings,auth_admin_passkey_send_to_admin:0 +msgid "Send email to admin user." +msgstr "" + +#. module: auth_admin_passkey +#: field:base.config.settings,auth_admin_passkey_send_to_user:0 +msgid "Send email to user." +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_res_users +msgid "Users" +msgstr "Usuaris" + +#. module: auth_admin_passkey +#: help:base.config.settings,auth_admin_passkey_send_to_user:0 +msgid "" +"When the administrator use his password to login in with a different " +"account, Odoo will send an email to the account user." +msgstr "" + +#. module: auth_admin_passkey +#: help:base.config.settings,auth_admin_passkey_send_to_admin:0 +msgid "" +"When the administrator use his password to login in with a different " +"account, Odoo will send an email to the admin user." +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:67 +#, python-format +msgid "[WARNING] Odoo Security Risk" +msgstr "" diff --git a/ext/3rd-party-addons/auth_admin_passkey/i18n/da.po b/ext/3rd-party-addons/auth_admin_passkey/i18n/da.po new file mode 100644 index 00000000..61748c6e --- /dev/null +++ b/ext/3rd-party-addons/auth_admin_passkey/i18n/da.po @@ -0,0 +1,84 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_admin_passkey +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: server-tools (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-03-18 02:08+0000\n" +"PO-Revision-Date: 2015-09-18 13:53+0000\n" +"Last-Translator: <>\n" +"Language-Team: Danish (http://www.transifex.com/oca/OCA-server-tools-8-0/language/da/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: da\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:66 +#, python-format +msgid "
User with login '%s' has the same password as you.
" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:41 +#, python-format +msgid "" +"Admin user used his passkey to login with '%s'.\n" +"\n" +"\n" +"\n" +"Technicals informations belows : \n" +"\n" +"- Login date : %s\n" +"\n" +msgstr "" + +#. module: auth_admin_passkey +#: view:base.config.settings:auth_admin_passkey.view_res_config_settings +msgid "Passkey" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:38 +#, python-format +msgid "Passkey used" +msgstr "" + +#. module: auth_admin_passkey +#: field:base.config.settings,auth_admin_passkey_send_to_admin:0 +msgid "Send email to admin user." +msgstr "" + +#. module: auth_admin_passkey +#: field:base.config.settings,auth_admin_passkey_send_to_user:0 +msgid "Send email to user." +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_res_users +msgid "Users" +msgstr "Brugere" + +#. module: auth_admin_passkey +#: help:base.config.settings,auth_admin_passkey_send_to_user:0 +msgid "" +"When the administrator use his password to login in with a different " +"account, Odoo will send an email to the account user." +msgstr "" + +#. module: auth_admin_passkey +#: help:base.config.settings,auth_admin_passkey_send_to_admin:0 +msgid "" +"When the administrator use his password to login in with a different " +"account, Odoo will send an email to the admin user." +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:64 +#, python-format +msgid "[WARNING] Odoo Security Risk" +msgstr "" diff --git a/ext/3rd-party-addons/auth_admin_passkey/i18n/de.po b/ext/3rd-party-addons/auth_admin_passkey/i18n/de.po new file mode 100644 index 00000000..07acead3 --- /dev/null +++ b/ext/3rd-party-addons/auth_admin_passkey/i18n/de.po @@ -0,0 +1,103 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_admin_passkey +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: German (https://www.transifex.com/oca/teams/23907/de/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: de\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:64 +#, python-format +msgid "
User with login '%s' has the same password as you.
" +msgstr "" +"
Benutzer mit Anmeldename '%s' hat das gleiche Passwort wie Sie.
" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:39 +#, python-format +msgid "" +"Admin user used his passkey to login with '%s'.\n" +"\n" +"\n" +"\n" +"Technicals informations belows : \n" +"\n" +"- Login date : %s\n" +"\n" +msgstr "" +"Admin-Benutzer hat seinen PassKey verwendet, um sich als '%s' anzumelden.\n" +"\n" +"\n" +"\n" +"Technische Information folgt : \n" +"\n" +"- Login-Datum: %s\n" +"\n" + +#. module: auth_admin_passkey +#: model:ir.ui.view,arch_db:auth_admin_passkey.view_res_config_settings +msgid "Passkey" +msgstr "PassKey" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:38 +#, python-format +msgid "Passkey used" +msgstr "Verwendeter PassKey" + +#. module: auth_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_admin +msgid "Send email to admin user." +msgstr "Sende Email an Admin-Benutzer." + +#. module: auth_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_user +msgid "Send email to user." +msgstr "Sende Email an Benutzer" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_res_users +msgid "Users" +msgstr "Benutzer" + +#. module: auth_admin_passkey +#: model:ir.model.fields,help:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_user +msgid "" +"When the administrator use his password to login in with a different " +"account, Odoo will send an email to the account user." +msgstr "" +"Wenn der Administrator sein Passwort verwendet, um sich mit anderem Konto " +"anzumelden, sendet das System dem Kontoinhaber eine Email." + +#. module: auth_admin_passkey +#: model:ir.model.fields,help:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_admin +msgid "" +"When the administrator use his password to login in with a different " +"account, Odoo will send an email to the admin user." +msgstr "" +"Wenn der Administrator sein Passwort verwendet, um sich als anderer Benutzer" +" anzumelden, wird Oddoeine entsprechende Email an den Admin-Nutzer senden." + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:62 +#, python-format +msgid "[WARNING] Odoo Security Risk" +msgstr "[Warnung] Odoo Sicherheitsrisiko" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_base_config_settings +msgid "base.config.settings" +msgstr "" diff --git a/ext/3rd-party-addons/auth_admin_passkey/i18n/el_GR.po b/ext/3rd-party-addons/auth_admin_passkey/i18n/el_GR.po new file mode 100644 index 00000000..24cec400 --- /dev/null +++ b/ext/3rd-party-addons/auth_admin_passkey/i18n/el_GR.po @@ -0,0 +1,84 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_admin_passkey +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: server-tools (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-01-12 03:50+0000\n" +"PO-Revision-Date: 2015-09-18 13:53+0000\n" +"Last-Translator: <>\n" +"Language-Team: Greek (Greece) (http://www.transifex.com/oca/OCA-server-tools-8-0/language/el_GR/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: el_GR\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:69 +#, python-format +msgid "
User with login '%s' has the same password as you.
" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:44 +#, python-format +msgid "" +"Admin user used his passkey to login with '%s'.\n" +"\n" +"\n" +"\n" +"Technicals informations belows : \n" +"\n" +"- Login date : %s\n" +"\n" +msgstr "" + +#. module: auth_admin_passkey +#: view:base.config.settings:auth_admin_passkey.view_res_config_settings +msgid "Passkey" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:41 +#, python-format +msgid "Passkey used" +msgstr "" + +#. module: auth_admin_passkey +#: field:base.config.settings,auth_admin_passkey_send_to_admin:0 +msgid "Send email to admin user." +msgstr "" + +#. module: auth_admin_passkey +#: field:base.config.settings,auth_admin_passkey_send_to_user:0 +msgid "Send email to user." +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_res_users +msgid "Users" +msgstr "Χρήστες" + +#. module: auth_admin_passkey +#: help:base.config.settings,auth_admin_passkey_send_to_user:0 +msgid "" +"When the administrator use his password to login in with a different " +"account, Odoo will send an email to the account user." +msgstr "" + +#. module: auth_admin_passkey +#: help:base.config.settings,auth_admin_passkey_send_to_admin:0 +msgid "" +"When the administrator use his password to login in with a different " +"account, Odoo will send an email to the admin user." +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:67 +#, python-format +msgid "[WARNING] Odoo Security Risk" +msgstr "" diff --git a/ext/3rd-party-addons/auth_admin_passkey/i18n/es.po b/ext/3rd-party-addons/auth_admin_passkey/i18n/es.po new file mode 100644 index 00000000..57c09fe0 --- /dev/null +++ b/ext/3rd-party-addons/auth_admin_passkey/i18n/es.po @@ -0,0 +1,100 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_admin_passkey +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Spanish (https://www.transifex.com/oca/teams/23907/es/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: es\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:64 +#, python-format +msgid "
User with login '%s' has the same password as you.
" +msgstr "" +"
El usuario con identificador '%s' tiene la misma contraseña que "
+"usted.
" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:39 +#, python-format +msgid "" +"Admin user used his passkey to login with '%s'.\n" +"\n" +"\n" +"\n" +"Technicals informations belows : \n" +"\n" +"- Login date : %s\n" +"\n" +msgstr "" +"El usuario administrador ha usado su contraseña para acceder a '%s'.\n" +"\n" +"\n" +"\n" +"Datos técnicos a continuación : \n" +"\n" +"- Fecha de acceso : %s\n" +"\n" + +#. module: auth_admin_passkey +#: model:ir.ui.view,arch_db:auth_admin_passkey.view_res_config_settings +msgid "Passkey" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:38 +#, python-format +msgid "Passkey used" +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_admin +msgid "Send email to admin user." +msgstr "Enviar email al usuario administrador." + +#. module: auth_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_user +msgid "Send email to user." +msgstr "Enviar email al usuario." + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_res_users +msgid "Users" +msgstr "Usuarios" + +#. module: auth_admin_passkey +#: model:ir.model.fields,help:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_user +msgid "" +"When the administrator use his password to login in with a different " +"account, Odoo will send an email to the account user." +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model.fields,help:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_admin +msgid "" +"When the administrator use his password to login in with a different " +"account, Odoo will send an email to the admin user." +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:62 +#, python-format +msgid "[WARNING] Odoo Security Risk" +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_base_config_settings +msgid "base.config.settings" +msgstr "" diff --git a/ext/3rd-party-addons/auth_admin_passkey/i18n/es_ES.po b/ext/3rd-party-addons/auth_admin_passkey/i18n/es_ES.po new file mode 100644 index 00000000..46ac03ba --- /dev/null +++ b/ext/3rd-party-addons/auth_admin_passkey/i18n/es_ES.po @@ -0,0 +1,84 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_admin_passkey +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: server-tools (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-01-12 03:50+0000\n" +"PO-Revision-Date: 2015-09-18 13:53+0000\n" +"Last-Translator: <>\n" +"Language-Team: Spanish (Spain) (http://www.transifex.com/oca/OCA-server-tools-8-0/language/es_ES/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: es_ES\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:69 +#, python-format +msgid "
User with login '%s' has the same password as you.
" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:44 +#, python-format +msgid "" +"Admin user used his passkey to login with '%s'.\n" +"\n" +"\n" +"\n" +"Technicals informations belows : \n" +"\n" +"- Login date : %s\n" +"\n" +msgstr "" + +#. module: auth_admin_passkey +#: view:base.config.settings:auth_admin_passkey.view_res_config_settings +msgid "Passkey" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:41 +#, python-format +msgid "Passkey used" +msgstr "" + +#. module: auth_admin_passkey +#: field:base.config.settings,auth_admin_passkey_send_to_admin:0 +msgid "Send email to admin user." +msgstr "" + +#. module: auth_admin_passkey +#: field:base.config.settings,auth_admin_passkey_send_to_user:0 +msgid "Send email to user." +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_res_users +msgid "Users" +msgstr "Usuarios" + +#. module: auth_admin_passkey +#: help:base.config.settings,auth_admin_passkey_send_to_user:0 +msgid "" +"When the administrator use his password to login in with a different " +"account, Odoo will send an email to the account user." +msgstr "" + +#. module: auth_admin_passkey +#: help:base.config.settings,auth_admin_passkey_send_to_admin:0 +msgid "" +"When the administrator use his password to login in with a different " +"account, Odoo will send an email to the admin user." +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:67 +#, python-format +msgid "[WARNING] Odoo Security Risk" +msgstr "" diff --git a/ext/3rd-party-addons/auth_admin_passkey/i18n/fi.po b/ext/3rd-party-addons/auth_admin_passkey/i18n/fi.po new file mode 100644 index 00000000..3d8d95a0 --- /dev/null +++ b/ext/3rd-party-addons/auth_admin_passkey/i18n/fi.po @@ -0,0 +1,84 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_admin_passkey +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: server-tools (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-04-14 07:01+0000\n" +"PO-Revision-Date: 2016-04-04 11:03+0000\n" +"Last-Translator: Jarmo Kortetjärvi \n" +"Language-Team: Finnish (http://www.transifex.com/oca/OCA-server-tools-8-0/language/fi/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: fi\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/model/res_users.py:88 +#, python-format +msgid "
User with login '%s' has the same password as you.
" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/model/res_users.py:64 +#, python-format +msgid "" +"Admin user used his passkey to login with '%s'.\n" +"\n" +"\n" +"\n" +"Technicals informations belows : \n" +"\n" +"- Login date : %s\n" +"\n" +msgstr "" + +#. module: auth_admin_passkey +#: view:base.config.settings:auth_admin_passkey.view_res_config_settings +msgid "Passkey" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/model/res_users.py:61 +#, python-format +msgid "Passkey used" +msgstr "" + +#. module: auth_admin_passkey +#: field:base.config.settings,auth_admin_passkey_send_to_admin:0 +msgid "Send email to admin user." +msgstr "" + +#. module: auth_admin_passkey +#: field:base.config.settings,auth_admin_passkey_send_to_user:0 +msgid "Send email to user." +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_res_users +msgid "Users" +msgstr "Käyttäjät" + +#. module: auth_admin_passkey +#: help:base.config.settings,auth_admin_passkey_send_to_user:0 +msgid "" +"When the administrator use his password to login in with a different " +"account, Odoo will send an email to the account user." +msgstr "" + +#. module: auth_admin_passkey +#: help:base.config.settings,auth_admin_passkey_send_to_admin:0 +msgid "" +"When the administrator use his password to login in with a different " +"account, Odoo will send an email to the admin user." +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/model/res_users.py:86 +#, python-format +msgid "[WARNING] Odoo Security Risk" +msgstr "" diff --git a/ext/3rd-party-addons/auth_admin_passkey/i18n/fr.po b/ext/3rd-party-addons/auth_admin_passkey/i18n/fr.po new file mode 100644 index 00000000..d17ee7d2 --- /dev/null +++ b/ext/3rd-party-addons/auth_admin_passkey/i18n/fr.po @@ -0,0 +1,104 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_admin_passkey +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: French (https://www.transifex.com/oca/teams/23907/fr/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: fr\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:64 +#, python-format +msgid "
User with login '%s' has the same password as you.
" +msgstr "" +"
L'utilisateur dont l'identifiant est '%s' a le même mot de passe que "
+"vous.
" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:39 +#, python-format +msgid "" +"Admin user used his passkey to login with '%s'.\n" +"\n" +"\n" +"\n" +"Technicals informations belows : \n" +"\n" +"- Login date : %s\n" +"\n" +msgstr "" +"L'administrateur a utilisé son mot de passe \"bris de glace\" pour s'identifier avec l'identifiant '%s'.\n" +"\n" +"\n" +"\n" +"Informations techniques ci-dessous : \n" +"\n" +"- Date d'authentification : %s\n" +"\n" + +#. module: auth_admin_passkey +#: model:ir.ui.view,arch_db:auth_admin_passkey.view_res_config_settings +msgid "Passkey" +msgstr "Mot de passe \"bris de glace\"" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:38 +#, python-format +msgid "Passkey used" +msgstr "Mot de passe \"bris de glace\" utilisé" + +#. module: auth_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_admin +msgid "Send email to admin user." +msgstr "Envoyer un email à l'administrateur." + +#. module: auth_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_user +msgid "Send email to user." +msgstr "Envoyer un email à l'utilisateur." + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_res_users +msgid "Users" +msgstr "Utilisateurs" + +#. module: auth_admin_passkey +#: model:ir.model.fields,help:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_user +msgid "" +"When the administrator use his password to login in with a different " +"account, Odoo will send an email to the account user." +msgstr "" +"Quand l'administrateur utilise son mot de passe pour s'authentifier avec un " +"compte différent, Odoo lui enverra un mail." + +#. module: auth_admin_passkey +#: model:ir.model.fields,help:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_admin +msgid "" +"When the administrator use his password to login in with a different " +"account, Odoo will send an email to the admin user." +msgstr "" +"Quand l'administrateur utilise son mot de passe pour s'authentifier avec un " +"compte différent, Odoo enverra un mail à l'utilisateur." + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:62 +#, python-format +msgid "[WARNING] Odoo Security Risk" +msgstr "[WARNING] Faille de sécurité sur Odoo" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_base_config_settings +msgid "base.config.settings" +msgstr "" diff --git a/ext/3rd-party-addons/auth_admin_passkey/i18n/fr_CH.po b/ext/3rd-party-addons/auth_admin_passkey/i18n/fr_CH.po new file mode 100644 index 00000000..57e68351 --- /dev/null +++ b/ext/3rd-party-addons/auth_admin_passkey/i18n/fr_CH.po @@ -0,0 +1,84 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_admin_passkey +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: server-tools (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-11-30 14:52+0000\n" +"PO-Revision-Date: 2015-09-18 13:53+0000\n" +"Last-Translator: <>\n" +"Language-Team: French (Switzerland) (http://www.transifex.com/oca/OCA-server-tools-8-0/language/fr_CH/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: fr_CH\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:69 +#, python-format +msgid "
User with login '%s' has the same password as you.
" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:44 +#, python-format +msgid "" +"Admin user used his passkey to login with '%s'.\n" +"\n" +"\n" +"\n" +"Technicals informations belows : \n" +"\n" +"- Login date : %s\n" +"\n" +msgstr "" + +#. module: auth_admin_passkey +#: view:base.config.settings:auth_admin_passkey.view_res_config_settings +msgid "Passkey" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:41 +#, python-format +msgid "Passkey used" +msgstr "" + +#. module: auth_admin_passkey +#: field:base.config.settings,auth_admin_passkey_send_to_admin:0 +msgid "Send email to admin user." +msgstr "" + +#. module: auth_admin_passkey +#: field:base.config.settings,auth_admin_passkey_send_to_user:0 +msgid "Send email to user." +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_res_users +msgid "Users" +msgstr "Utilisateurs" + +#. module: auth_admin_passkey +#: help:base.config.settings,auth_admin_passkey_send_to_user:0 +msgid "" +"When the administrator use his password to login in with a different " +"account, Odoo will send an email to the account user." +msgstr "" + +#. module: auth_admin_passkey +#: help:base.config.settings,auth_admin_passkey_send_to_admin:0 +msgid "" +"When the administrator use his password to login in with a different " +"account, Odoo will send an email to the admin user." +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:67 +#, python-format +msgid "[WARNING] Odoo Security Risk" +msgstr "" diff --git a/ext/3rd-party-addons/auth_admin_passkey/i18n/fr_FR.po b/ext/3rd-party-addons/auth_admin_passkey/i18n/fr_FR.po new file mode 100644 index 00000000..bec3f637 --- /dev/null +++ b/ext/3rd-party-addons/auth_admin_passkey/i18n/fr_FR.po @@ -0,0 +1,90 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_admin_passkey +# +# Translators: +# Aurel , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: Aurel , 2017\n" +"Language-Team: French (France) (https://www.transifex.com/oca/teams/23907/fr_FR/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: fr_FR\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:64 +#, python-format +msgid "
User with login '%s' has the same password as you.
" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:39 +#, python-format +msgid "" +"Admin user used his passkey to login with '%s'.\n" +"\n" +"\n" +"\n" +"Technicals informations belows : \n" +"\n" +"- Login date : %s\n" +"\n" +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.ui.view,arch_db:auth_admin_passkey.view_res_config_settings +msgid "Passkey" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:38 +#, python-format +msgid "Passkey used" +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_admin +msgid "Send email to admin user." +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_user +msgid "Send email to user." +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_res_users +msgid "Users" +msgstr "Utilsateurs" + +#. module: auth_admin_passkey +#: model:ir.model.fields,help:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_user +msgid "" +"When the administrator use his password to login in with a different " +"account, Odoo will send an email to the account user." +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model.fields,help:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_admin +msgid "" +"When the administrator use his password to login in with a different " +"account, Odoo will send an email to the admin user." +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:62 +#, python-format +msgid "[WARNING] Odoo Security Risk" +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_base_config_settings +msgid "base.config.settings" +msgstr "" diff --git a/ext/3rd-party-addons/auth_admin_passkey/i18n/hr.po b/ext/3rd-party-addons/auth_admin_passkey/i18n/hr.po new file mode 100644 index 00000000..f17e5892 --- /dev/null +++ b/ext/3rd-party-addons/auth_admin_passkey/i18n/hr.po @@ -0,0 +1,84 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_admin_passkey +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: server-tools (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-01-12 03:50+0000\n" +"PO-Revision-Date: 2015-09-18 13:53+0000\n" +"Last-Translator: <>\n" +"Language-Team: Croatian (http://www.transifex.com/oca/OCA-server-tools-8-0/language/hr/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: hr\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:69 +#, python-format +msgid "
User with login '%s' has the same password as you.
" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:44 +#, python-format +msgid "" +"Admin user used his passkey to login with '%s'.\n" +"\n" +"\n" +"\n" +"Technicals informations belows : \n" +"\n" +"- Login date : %s\n" +"\n" +msgstr "" + +#. module: auth_admin_passkey +#: view:base.config.settings:auth_admin_passkey.view_res_config_settings +msgid "Passkey" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:41 +#, python-format +msgid "Passkey used" +msgstr "" + +#. module: auth_admin_passkey +#: field:base.config.settings,auth_admin_passkey_send_to_admin:0 +msgid "Send email to admin user." +msgstr "" + +#. module: auth_admin_passkey +#: field:base.config.settings,auth_admin_passkey_send_to_user:0 +msgid "Send email to user." +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_res_users +msgid "Users" +msgstr "Korisnici" + +#. module: auth_admin_passkey +#: help:base.config.settings,auth_admin_passkey_send_to_user:0 +msgid "" +"When the administrator use his password to login in with a different " +"account, Odoo will send an email to the account user." +msgstr "" + +#. module: auth_admin_passkey +#: help:base.config.settings,auth_admin_passkey_send_to_admin:0 +msgid "" +"When the administrator use his password to login in with a different " +"account, Odoo will send an email to the admin user." +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:67 +#, python-format +msgid "[WARNING] Odoo Security Risk" +msgstr "" diff --git a/ext/3rd-party-addons/auth_admin_passkey/i18n/hr_HR.po b/ext/3rd-party-addons/auth_admin_passkey/i18n/hr_HR.po new file mode 100644 index 00000000..310b083c --- /dev/null +++ b/ext/3rd-party-addons/auth_admin_passkey/i18n/hr_HR.po @@ -0,0 +1,84 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_admin_passkey +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: server-tools (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-01-12 03:50+0000\n" +"PO-Revision-Date: 2017-01-11 15:38+0000\n" +"Last-Translator: OCA Transbot \n" +"Language-Team: Croatian (Croatia) (http://www.transifex.com/oca/OCA-server-tools-8-0/language/hr_HR/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: hr_HR\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:69 +#, python-format +msgid "
User with login '%s' has the same password as you.
" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:44 +#, python-format +msgid "" +"Admin user used his passkey to login with '%s'.\n" +"\n" +"\n" +"\n" +"Technicals informations belows : \n" +"\n" +"- Login date : %s\n" +"\n" +msgstr "" + +#. module: auth_admin_passkey +#: view:base.config.settings:auth_admin_passkey.view_res_config_settings +msgid "Passkey" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:41 +#, python-format +msgid "Passkey used" +msgstr "" + +#. module: auth_admin_passkey +#: field:base.config.settings,auth_admin_passkey_send_to_admin:0 +msgid "Send email to admin user." +msgstr "" + +#. module: auth_admin_passkey +#: field:base.config.settings,auth_admin_passkey_send_to_user:0 +msgid "Send email to user." +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_res_users +msgid "Users" +msgstr "Korisnici" + +#. module: auth_admin_passkey +#: help:base.config.settings,auth_admin_passkey_send_to_user:0 +msgid "" +"When the administrator use his password to login in with a different " +"account, Odoo will send an email to the account user." +msgstr "" + +#. module: auth_admin_passkey +#: help:base.config.settings,auth_admin_passkey_send_to_admin:0 +msgid "" +"When the administrator use his password to login in with a different " +"account, Odoo will send an email to the admin user." +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:67 +#, python-format +msgid "[WARNING] Odoo Security Risk" +msgstr "" diff --git a/ext/3rd-party-addons/auth_admin_passkey/i18n/it.po b/ext/3rd-party-addons/auth_admin_passkey/i18n/it.po new file mode 100644 index 00000000..3772167c --- /dev/null +++ b/ext/3rd-party-addons/auth_admin_passkey/i18n/it.po @@ -0,0 +1,90 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_admin_passkey +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Italian (https://www.transifex.com/oca/teams/23907/it/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: it\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:64 +#, python-format +msgid "
User with login '%s' has the same password as you.
" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:39 +#, python-format +msgid "" +"Admin user used his passkey to login with '%s'.\n" +"\n" +"\n" +"\n" +"Technicals informations belows : \n" +"\n" +"- Login date : %s\n" +"\n" +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.ui.view,arch_db:auth_admin_passkey.view_res_config_settings +msgid "Passkey" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:38 +#, python-format +msgid "Passkey used" +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_admin +msgid "Send email to admin user." +msgstr "Invia email all'utente amministratore." + +#. module: auth_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_user +msgid "Send email to user." +msgstr "Invia email all'utente." + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_res_users +msgid "Users" +msgstr "Utenti" + +#. module: auth_admin_passkey +#: model:ir.model.fields,help:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_user +msgid "" +"When the administrator use his password to login in with a different " +"account, Odoo will send an email to the account user." +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model.fields,help:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_admin +msgid "" +"When the administrator use his password to login in with a different " +"account, Odoo will send an email to the admin user." +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:62 +#, python-format +msgid "[WARNING] Odoo Security Risk" +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_base_config_settings +msgid "base.config.settings" +msgstr "" diff --git a/ext/3rd-party-addons/auth_admin_passkey/i18n/nl.po b/ext/3rd-party-addons/auth_admin_passkey/i18n/nl.po new file mode 100644 index 00000000..bda1f748 --- /dev/null +++ b/ext/3rd-party-addons/auth_admin_passkey/i18n/nl.po @@ -0,0 +1,84 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_admin_passkey +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: server-tools (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-01-12 03:50+0000\n" +"PO-Revision-Date: 2015-09-18 13:53+0000\n" +"Last-Translator: <>\n" +"Language-Team: Dutch (http://www.transifex.com/oca/OCA-server-tools-8-0/language/nl/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: nl\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:69 +#, python-format +msgid "
User with login '%s' has the same password as you.
" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:44 +#, python-format +msgid "" +"Admin user used his passkey to login with '%s'.\n" +"\n" +"\n" +"\n" +"Technicals informations belows : \n" +"\n" +"- Login date : %s\n" +"\n" +msgstr "" + +#. module: auth_admin_passkey +#: view:base.config.settings:auth_admin_passkey.view_res_config_settings +msgid "Passkey" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:41 +#, python-format +msgid "Passkey used" +msgstr "" + +#. module: auth_admin_passkey +#: field:base.config.settings,auth_admin_passkey_send_to_admin:0 +msgid "Send email to admin user." +msgstr "" + +#. module: auth_admin_passkey +#: field:base.config.settings,auth_admin_passkey_send_to_user:0 +msgid "Send email to user." +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_res_users +msgid "Users" +msgstr "Gebruikers" + +#. module: auth_admin_passkey +#: help:base.config.settings,auth_admin_passkey_send_to_user:0 +msgid "" +"When the administrator use his password to login in with a different " +"account, Odoo will send an email to the account user." +msgstr "" + +#. module: auth_admin_passkey +#: help:base.config.settings,auth_admin_passkey_send_to_admin:0 +msgid "" +"When the administrator use his password to login in with a different " +"account, Odoo will send an email to the admin user." +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:67 +#, python-format +msgid "[WARNING] Odoo Security Risk" +msgstr "" diff --git a/ext/3rd-party-addons/auth_admin_passkey/i18n/nl_NL.po b/ext/3rd-party-addons/auth_admin_passkey/i18n/nl_NL.po new file mode 100644 index 00000000..be00c02c --- /dev/null +++ b/ext/3rd-party-addons/auth_admin_passkey/i18n/nl_NL.po @@ -0,0 +1,90 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_admin_passkey +# +# Translators: +# Peter Hageman , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: Peter Hageman , 2017\n" +"Language-Team: Dutch (Netherlands) (https://www.transifex.com/oca/teams/23907/nl_NL/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: nl_NL\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:64 +#, python-format +msgid "
User with login '%s' has the same password as you.
" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:39 +#, python-format +msgid "" +"Admin user used his passkey to login with '%s'.\n" +"\n" +"\n" +"\n" +"Technicals informations belows : \n" +"\n" +"- Login date : %s\n" +"\n" +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.ui.view,arch_db:auth_admin_passkey.view_res_config_settings +msgid "Passkey" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:38 +#, python-format +msgid "Passkey used" +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_admin +msgid "Send email to admin user." +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_user +msgid "Send email to user." +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_res_users +msgid "Users" +msgstr "Gebruikers" + +#. module: auth_admin_passkey +#: model:ir.model.fields,help:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_user +msgid "" +"When the administrator use his password to login in with a different " +"account, Odoo will send an email to the account user." +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model.fields,help:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_admin +msgid "" +"When the administrator use his password to login in with a different " +"account, Odoo will send an email to the admin user." +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:62 +#, python-format +msgid "[WARNING] Odoo Security Risk" +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_base_config_settings +msgid "base.config.settings" +msgstr "" diff --git a/ext/3rd-party-addons/auth_admin_passkey/i18n/pt.po b/ext/3rd-party-addons/auth_admin_passkey/i18n/pt.po new file mode 100644 index 00000000..e6c3c45a --- /dev/null +++ b/ext/3rd-party-addons/auth_admin_passkey/i18n/pt.po @@ -0,0 +1,90 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_admin_passkey +# +# Translators: +# Pedro Castro Silva , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: Pedro Castro Silva , 2017\n" +"Language-Team: Portuguese (https://www.transifex.com/oca/teams/23907/pt/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: pt\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:64 +#, python-format +msgid "
User with login '%s' has the same password as you.
" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:39 +#, python-format +msgid "" +"Admin user used his passkey to login with '%s'.\n" +"\n" +"\n" +"\n" +"Technicals informations belows : \n" +"\n" +"- Login date : %s\n" +"\n" +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.ui.view,arch_db:auth_admin_passkey.view_res_config_settings +msgid "Passkey" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:38 +#, python-format +msgid "Passkey used" +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_admin +msgid "Send email to admin user." +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_user +msgid "Send email to user." +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_res_users +msgid "Users" +msgstr "Utilizadores" + +#. module: auth_admin_passkey +#: model:ir.model.fields,help:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_user +msgid "" +"When the administrator use his password to login in with a different " +"account, Odoo will send an email to the account user." +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model.fields,help:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_admin +msgid "" +"When the administrator use his password to login in with a different " +"account, Odoo will send an email to the admin user." +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:62 +#, python-format +msgid "[WARNING] Odoo Security Risk" +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_base_config_settings +msgid "base.config.settings" +msgstr "" diff --git a/ext/3rd-party-addons/auth_admin_passkey/i18n/pt_BR.po b/ext/3rd-party-addons/auth_admin_passkey/i18n/pt_BR.po new file mode 100644 index 00000000..4d6b09c8 --- /dev/null +++ b/ext/3rd-party-addons/auth_admin_passkey/i18n/pt_BR.po @@ -0,0 +1,94 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_admin_passkey +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Portuguese (Brazil) (https://www.transifex.com/oca/teams/23907/pt_BR/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: pt_BR\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:64 +#, python-format +msgid "
User with login '%s' has the same password as you.
" +msgstr "
Usuário com login '%s' tem a mesma senha que você.
" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:39 +#, python-format +msgid "" +"Admin user used his passkey to login with '%s'.\n" +"\n" +"\n" +"\n" +"Technicals informations belows : \n" +"\n" +"- Login date : %s\n" +"\n" +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.ui.view,arch_db:auth_admin_passkey.view_res_config_settings +msgid "Passkey" +msgstr "Passkey" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:38 +#, python-format +msgid "Passkey used" +msgstr "Passkey usada" + +#. module: auth_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_admin +msgid "Send email to admin user." +msgstr "Enviar email para usuário administrador" + +#. module: auth_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_user +msgid "Send email to user." +msgstr "Enviar email para usuário." + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_res_users +msgid "Users" +msgstr "Usuários" + +#. module: auth_admin_passkey +#: model:ir.model.fields,help:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_user +msgid "" +"When the administrator use his password to login in with a different " +"account, Odoo will send an email to the account user." +msgstr "" +"Quando o administrador usa sua senha para dar login com uma conta diferente," +" OPENERP irá enviar um email para a conta do usuário." + +#. module: auth_admin_passkey +#: model:ir.model.fields,help:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_admin +msgid "" +"When the administrator use his password to login in with a different " +"account, Odoo will send an email to the admin user." +msgstr "" +"Quando o administrador usa sua senha para dar login com uma conta diferente," +" OPENERP irá enviar um email para a conta do administrador." + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:62 +#, python-format +msgid "[WARNING] Odoo Security Risk" +msgstr "[AVISO] Odoo Risco de Segurança" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_base_config_settings +msgid "base.config.settings" +msgstr "" diff --git a/ext/3rd-party-addons/auth_admin_passkey/i18n/ro.po b/ext/3rd-party-addons/auth_admin_passkey/i18n/ro.po new file mode 100644 index 00000000..d1d6a651 --- /dev/null +++ b/ext/3rd-party-addons/auth_admin_passkey/i18n/ro.po @@ -0,0 +1,90 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_admin_passkey +# +# Translators: +# Daniel Schweiger , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: Daniel Schweiger , 2017\n" +"Language-Team: Romanian (https://www.transifex.com/oca/teams/23907/ro/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: ro\n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:64 +#, python-format +msgid "
User with login '%s' has the same password as you.
" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:39 +#, python-format +msgid "" +"Admin user used his passkey to login with '%s'.\n" +"\n" +"\n" +"\n" +"Technicals informations belows : \n" +"\n" +"- Login date : %s\n" +"\n" +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.ui.view,arch_db:auth_admin_passkey.view_res_config_settings +msgid "Passkey" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:38 +#, python-format +msgid "Passkey used" +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_admin +msgid "Send email to admin user." +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_user +msgid "Send email to user." +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_res_users +msgid "Users" +msgstr "Utilizatori" + +#. module: auth_admin_passkey +#: model:ir.model.fields,help:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_user +msgid "" +"When the administrator use his password to login in with a different " +"account, Odoo will send an email to the account user." +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model.fields,help:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_admin +msgid "" +"When the administrator use his password to login in with a different " +"account, Odoo will send an email to the admin user." +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:62 +#, python-format +msgid "[WARNING] Odoo Security Risk" +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_base_config_settings +msgid "base.config.settings" +msgstr "" diff --git a/ext/3rd-party-addons/auth_admin_passkey/i18n/sl.po b/ext/3rd-party-addons/auth_admin_passkey/i18n/sl.po new file mode 100644 index 00000000..5e064b1e --- /dev/null +++ b/ext/3rd-party-addons/auth_admin_passkey/i18n/sl.po @@ -0,0 +1,102 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_admin_passkey +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Slovenian (https://www.transifex.com/oca/teams/23907/sl/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: sl\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:64 +#, python-format +msgid "
User with login '%s' has the same password as you.
" +msgstr "
Uporabnik '%s' ima enako geslo kot vi.
" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:39 +#, python-format +msgid "" +"Admin user used his passkey to login with '%s'.\n" +"\n" +"\n" +"\n" +"Technicals informations belows : \n" +"\n" +"- Login date : %s\n" +"\n" +msgstr "" +"Administrator je uporabil svoj prijavni ključ za prijavo z '%s'.\n" +"\n" +"\n" +"\n" +"Tehnični podatki : \n" +"\n" +"- Datum prijave : %s\n" +"\n" + +#. module: auth_admin_passkey +#: model:ir.ui.view,arch_db:auth_admin_passkey.view_res_config_settings +msgid "Passkey" +msgstr "Prijavni ključ" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:38 +#, python-format +msgid "Passkey used" +msgstr "Uporabljen prijavni ključ" + +#. module: auth_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_admin +msgid "Send email to admin user." +msgstr "Pošlji e-pošto administratorju." + +#. module: auth_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_user +msgid "Send email to user." +msgstr "Pošlji e-pošto uporabniku." + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_res_users +msgid "Users" +msgstr "Uporabniki" + +#. module: auth_admin_passkey +#: model:ir.model.fields,help:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_user +msgid "" +"When the administrator use his password to login in with a different " +"account, Odoo will send an email to the account user." +msgstr "" +"Ko administrator uporabi svoje geslo za prijavo v drug račun, bo Odoo poslal" +" e-pošto uporabniku računa." + +#. module: auth_admin_passkey +#: model:ir.model.fields,help:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_admin +msgid "" +"When the administrator use his password to login in with a different " +"account, Odoo will send an email to the admin user." +msgstr "" +"Ko administrator uporabi svoje geslo za prijavo v drug račun, bo Odoo poslal" +" e-pošto administratorju." + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:62 +#, python-format +msgid "[WARNING] Odoo Security Risk" +msgstr "[OPOZORILO] Odoo varnostno tveganje" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_base_config_settings +msgid "base.config.settings" +msgstr "" diff --git a/ext/3rd-party-addons/auth_admin_passkey/i18n/tr.po b/ext/3rd-party-addons/auth_admin_passkey/i18n/tr.po new file mode 100644 index 00000000..ebdaef65 --- /dev/null +++ b/ext/3rd-party-addons/auth_admin_passkey/i18n/tr.po @@ -0,0 +1,102 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_admin_passkey +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Turkish (https://www.transifex.com/oca/teams/23907/tr/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: tr\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:64 +#, python-format +msgid "
User with login '%s' has the same password as you.
" +msgstr "
 '%s' kullanıcısının şifresi sizinkiyle aynı.
" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:39 +#, python-format +msgid "" +"Admin user used his passkey to login with '%s'.\n" +"\n" +"\n" +"\n" +"Technicals informations belows : \n" +"\n" +"- Login date : %s\n" +"\n" +msgstr "" +"Yönetici şifresini kullanarak '%s'. kullanıcısıyla giriş yaptı.\n" +"\n" +"\n" +"\n" +"Teknik detaylar aşağıda : \n" +"\n" +"- Giriş zamanı : %s\n" +"\n" + +#. module: auth_admin_passkey +#: model:ir.ui.view,arch_db:auth_admin_passkey.view_res_config_settings +msgid "Passkey" +msgstr "Parola" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:38 +#, python-format +msgid "Passkey used" +msgstr "Kullanılan parola" + +#. module: auth_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_admin +msgid "Send email to admin user." +msgstr "Yöneticiye e-posta gönder." + +#. module: auth_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_user +msgid "Send email to user." +msgstr "Kullanıcıya e-posta gönder." + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_res_users +msgid "Users" +msgstr "Kullanıcılar" + +#. module: auth_admin_passkey +#: model:ir.model.fields,help:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_user +msgid "" +"When the administrator use his password to login in with a different " +"account, Odoo will send an email to the account user." +msgstr "" +"Yönetici farklı bir hesaba şifresiyle giriş yaparsa. Odoo hesap sahibine " +"e-posta gönderecek." + +#. module: auth_admin_passkey +#: model:ir.model.fields,help:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_admin +msgid "" +"When the administrator use his password to login in with a different " +"account, Odoo will send an email to the admin user." +msgstr "" +"Yönetici şifresiyle farklı bir kullanıcının hesabına giriş yaparsa, Odoo " +"yöneticiye e-posta gönderir." + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:62 +#, python-format +msgid "[WARNING] Odoo Security Risk" +msgstr "[UYARI] Odoo Güvenlik Riski" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_base_config_settings +msgid "base.config.settings" +msgstr "" diff --git a/ext/3rd-party-addons/auth_admin_passkey/i18n/tr_TR.po b/ext/3rd-party-addons/auth_admin_passkey/i18n/tr_TR.po new file mode 100644 index 00000000..0b2214a0 --- /dev/null +++ b/ext/3rd-party-addons/auth_admin_passkey/i18n/tr_TR.po @@ -0,0 +1,84 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_admin_passkey +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: server-tools (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-12-31 08:34+0000\n" +"PO-Revision-Date: 2015-09-18 13:53+0000\n" +"Last-Translator: <>\n" +"Language-Team: Turkish (Turkey) (http://www.transifex.com/oca/OCA-server-tools-8-0/language/tr_TR/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: tr_TR\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:69 +#, python-format +msgid "
User with login '%s' has the same password as you.
" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:44 +#, python-format +msgid "" +"Admin user used his passkey to login with '%s'.\n" +"\n" +"\n" +"\n" +"Technicals informations belows : \n" +"\n" +"- Login date : %s\n" +"\n" +msgstr "" + +#. module: auth_admin_passkey +#: view:base.config.settings:auth_admin_passkey.view_res_config_settings +msgid "Passkey" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:41 +#, python-format +msgid "Passkey used" +msgstr "" + +#. module: auth_admin_passkey +#: field:base.config.settings,auth_admin_passkey_send_to_admin:0 +msgid "Send email to admin user." +msgstr "" + +#. module: auth_admin_passkey +#: field:base.config.settings,auth_admin_passkey_send_to_user:0 +msgid "Send email to user." +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_res_users +msgid "Users" +msgstr "Kullanıcılar" + +#. module: auth_admin_passkey +#: help:base.config.settings,auth_admin_passkey_send_to_user:0 +msgid "" +"When the administrator use his password to login in with a different " +"account, Odoo will send an email to the account user." +msgstr "" + +#. module: auth_admin_passkey +#: help:base.config.settings,auth_admin_passkey_send_to_admin:0 +msgid "" +"When the administrator use his password to login in with a different " +"account, Odoo will send an email to the admin user." +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:67 +#, python-format +msgid "[WARNING] Odoo Security Risk" +msgstr "" diff --git a/ext/3rd-party-addons/auth_admin_passkey/i18n/zh_CN.po b/ext/3rd-party-addons/auth_admin_passkey/i18n/zh_CN.po new file mode 100644 index 00000000..e4ab7735 --- /dev/null +++ b/ext/3rd-party-addons/auth_admin_passkey/i18n/zh_CN.po @@ -0,0 +1,84 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_admin_passkey +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: server-tools (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-01-12 03:50+0000\n" +"PO-Revision-Date: 2015-09-18 13:53+0000\n" +"Last-Translator: <>\n" +"Language-Team: Chinese (China) (http://www.transifex.com/oca/OCA-server-tools-8-0/language/zh_CN/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: zh_CN\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:69 +#, python-format +msgid "
User with login '%s' has the same password as you.
" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:44 +#, python-format +msgid "" +"Admin user used his passkey to login with '%s'.\n" +"\n" +"\n" +"\n" +"Technicals informations belows : \n" +"\n" +"- Login date : %s\n" +"\n" +msgstr "" + +#. module: auth_admin_passkey +#: view:base.config.settings:auth_admin_passkey.view_res_config_settings +msgid "Passkey" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:41 +#, python-format +msgid "Passkey used" +msgstr "" + +#. module: auth_admin_passkey +#: field:base.config.settings,auth_admin_passkey_send_to_admin:0 +msgid "Send email to admin user." +msgstr "" + +#. module: auth_admin_passkey +#: field:base.config.settings,auth_admin_passkey_send_to_user:0 +msgid "Send email to user." +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_res_users +msgid "Users" +msgstr "用户" + +#. module: auth_admin_passkey +#: help:base.config.settings,auth_admin_passkey_send_to_user:0 +msgid "" +"When the administrator use his password to login in with a different " +"account, Odoo will send an email to the account user." +msgstr "" + +#. module: auth_admin_passkey +#: help:base.config.settings,auth_admin_passkey_send_to_admin:0 +msgid "" +"When the administrator use his password to login in with a different " +"account, Odoo will send an email to the admin user." +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:67 +#, python-format +msgid "[WARNING] Odoo Security Risk" +msgstr "" diff --git a/ext/3rd-party-addons/auth_admin_passkey/models/__init__.py b/ext/3rd-party-addons/auth_admin_passkey/models/__init__.py new file mode 100644 index 00000000..272a6e85 --- /dev/null +++ b/ext/3rd-party-addons/auth_admin_passkey/models/__init__.py @@ -0,0 +1,9 @@ +# -*- coding: utf-8 -*- +# Copyright (C) 2013-2014 GRAP (http://www.grap.coop) +# @author Sylvain LE GAL (https://twitter.com/legalsylvain) +# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html + +from . import ( + res_config, + res_users, + ) diff --git a/ext/3rd-party-addons/auth_admin_passkey/models/res_config.py b/ext/3rd-party-addons/auth_admin_passkey/models/res_config.py new file mode 100644 index 00000000..06aed172 --- /dev/null +++ b/ext/3rd-party-addons/auth_admin_passkey/models/res_config.py @@ -0,0 +1,58 @@ +# -*- coding: utf-8 -*- +# Copyright (C) 2013-2014 GRAP (http://www.grap.coop) +# @author Sylvain LE GAL (https://twitter.com/legalsylvain) +# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html + +from odoo import api, fields, models +from odoo.tools import safe_eval + + +class BaseConfigSettings(models.TransientModel): + _inherit = 'base.config.settings' + + @api.model + def get_default_auth_admin_passkey_send_to_admin(self, fields): + icp = self.env['ir.config_parameter'] + return { + 'auth_admin_passkey_send_to_admin': safe_eval(icp.get_param( + 'auth_admin_passkey.send_to_admin', 'True')), + } + + @api.model + def get_default_auth_admin_passkey_send_to_user(self, fields): + icp = self.env['ir.config_parameter'] + return { + 'auth_admin_passkey_send_to_user': safe_eval(icp.get_param( + 'auth_admin_passkey.send_to_user', 'True')), + } + + auth_admin_passkey_send_to_admin = fields.Boolean( + 'Send email to admin user.', + help=('When the administrator use his password to login in ' + 'with a different account, Odoo will send an email ' + 'to the admin user.'), + ) + auth_admin_passkey_send_to_user = fields.Boolean( + string='Send email to user.', + help=('When the administrator use his password to login in ' + 'with a different account, Odoo will send an email ' + 'to the account user.'), + ) + + @api.multi + def set_auth_admin_passkey_send_to_admin(self): + self.ensure_one() + + icp = self.env['ir.config_parameter'] + icp.set_param( + 'auth_admin_passkey.send_to_admin', + repr(self.auth_admin_passkey_send_to_admin)) + + @api.multi + def set_auth_admin_passkey_send_to_user(self): + self.ensure_one() + + icp = self.env['ir.config_parameter'] + icp.set_param( + 'auth_admin_passkey.send_to_user', + repr(self.auth_admin_passkey_send_to_user)) diff --git a/ext/3rd-party-addons/auth_admin_passkey/models/res_users.py b/ext/3rd-party-addons/auth_admin_passkey/models/res_users.py new file mode 100644 index 00000000..5b981557 --- /dev/null +++ b/ext/3rd-party-addons/auth_admin_passkey/models/res_users.py @@ -0,0 +1,98 @@ +# -*- coding: utf-8 -*- +# Copyright (C) 2013-2014 GRAP (http://www.grap.coop) +# @author Sylvain LE GAL (https://twitter.com/legalsylvain) +# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html + +import datetime + +from odoo import SUPERUSER_ID, _, api, exceptions, models +from odoo.tools.safe_eval import safe_eval + + +class ResUsers(models.Model): + _inherit = "res.users" + + @api.model + def _send_email_passkey(self, user_id): + """ Send a email to the admin of the system and / or the user + to inform passkey use.""" + mail_obj = self.env['mail.mail'].sudo() + icp_obj = self.env['ir.config_parameter'] + + admin_user = self.browse(SUPERUSER_ID) + login_user = self.browse(user_id) + + send_to_admin = safe_eval( + icp_obj.get_param('auth_admin_passkey.send_to_admin') + ) + send_to_user = safe_eval( + icp_obj.get_param('auth_admin_passkey.send_to_user') + ) + + mails = [] + if send_to_admin and admin_user.email: + mails.append({'email': admin_user.email, 'lang': admin_user.lang}) + if send_to_user and login_user.email: + mails.append({'email': login_user.email, 'lang': login_user.lang}) + for mail in mails: + subject = _('Passkey used') + body = _( + "Admin user used his passkey to login with '%s'.\n\n" + "\n\nTechnicals informations belows : \n\n" + "- Login date : %s\n\n" + ) % (login_user.login, + datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")) + + mail_obj.create({ + 'email_to': mail['email'], + 'subject': subject, + 'body_html': '
%s
' % body + }) + + @api.model + def _send_email_same_password(self, login): + """ Send an email to the admin user to inform that + another user has the same password as him.""" + mail_obj = self.env['mail.mail'].sudo() + admin_user = self.sudo().browse(SUPERUSER_ID) + + if admin_user.email: + mail_obj.create({ + 'email_to': admin_user.email, + 'subject': _('[WARNING] Odoo Security Risk'), + 'body_html': + _("
User with login '%s' has the same "
+                      "password as you.
") % (login), + }) + + @api.model + def check_credentials(self, password): + """ Despite using @api.model decorator, this method + is always called by a res.users record""" + try: + super(ResUsers, self).check_credentials(password) + + # If credentials are ok, try to log with user password as admin + # user and send email if they are equal + if self._uid != SUPERUSER_ID: + try: + super(ResUsers, self).sudo().check_credentials(password) + self._send_email_same_password(self.login) + except exceptions.AccessDenied: + pass + + except exceptions.AccessDenied: + if self._uid == SUPERUSER_ID: + raise + + # Just be sure that parent methods aren't wrong + user = self.sudo().search([('id', '=', self._uid)]) + if not user: + raise + + # Our user isn't using its own password, check if its admin one + try: + super(ResUsers, self).sudo().check_credentials(password) + self._send_email_passkey(self._uid) + except exceptions.AccessDenied: + raise diff --git a/ext/3rd-party-addons/auth_admin_passkey/static/description/icon.png b/ext/3rd-party-addons/auth_admin_passkey/static/description/icon.png new file mode 100644 index 00000000..490879d9 Binary files /dev/null and b/ext/3rd-party-addons/auth_admin_passkey/static/description/icon.png differ diff --git a/ext/3rd-party-addons/auth_admin_passkey/tests/__init__.py b/ext/3rd-party-addons/auth_admin_passkey/tests/__init__.py new file mode 100644 index 00000000..7f702bd2 --- /dev/null +++ b/ext/3rd-party-addons/auth_admin_passkey/tests/__init__.py @@ -0,0 +1,7 @@ +# -*- coding: utf-8 -*- +# Copyright (C) 2013-2014 GRAP (http://www.grap.coop) +# @author Sylvain LE GAL (https://twitter.com/legalsylvain) +# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html + +from . import test_auth_admin_passkey +from . import test_ui diff --git a/ext/3rd-party-addons/auth_admin_passkey/tests/test_auth_admin_passkey.py b/ext/3rd-party-addons/auth_admin_passkey/tests/test_auth_admin_passkey.py new file mode 100644 index 00000000..4bc6ef84 --- /dev/null +++ b/ext/3rd-party-addons/auth_admin_passkey/tests/test_auth_admin_passkey.py @@ -0,0 +1,61 @@ +# -*- coding: utf-8 -*- +# Copyright (C) 2013-2014 GRAP (http://www.grap.coop) +# @author Sylvain LE GAL (https://twitter.com/legalsylvain) +# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html + +from odoo import SUPERUSER_ID, exceptions +from odoo.tests import common + + +@common.post_install(True) +class TestAuthAdminPasskey(common.TransactionCase): + """Tests for 'Auth Admin Passkey' Module""" + + def setUp(self): + super(TestAuthAdminPasskey, self).setUp() + + self.ru_obj = self.env['res.users'] + + self.db = self.env.cr.dbname + + self.admin_user = self.ru_obj.search([('id', '=', SUPERUSER_ID)]) + self.passkey_user = self.ru_obj.create({ + 'login': 'passkey', + 'password': 'PasskeyPa$$w0rd', + 'name': 'passkey' + }) + + def test_01_normal_login_admin_succeed(self): + # NOTE: Can fail if admin password changed + self.admin_user.check_credentials('admin') + + def test_02_normal_login_admin_fail(self): + with self.assertRaises(exceptions.AccessDenied): + self.admin_user.check_credentials('bad_password') + + def test_03_normal_login_passkey_succeed(self): + """ This test cannot pass because in some way the the _uid of + passkey_user is equal to admin one so when entering the + original check_credentials() method, it raises an exception + """ + try: + self.passkey_user.check_credentials('passkey') + except exceptions.AccessDenied: + # This exception is raised from the origin check_credentials() + # method and its an expected behaviour as we catch this in our + # check_credentials() + pass + + def test_04_normal_login_passkey_fail(self): + with self.assertRaises(exceptions.AccessDenied): + self.passkey_user.check_credentials('bad_password') + + def test_05_passkey_login_passkey_with_admin_password_succeed(self): + # NOTE: Can fail if admin password changed + self.passkey_user.check_credentials('admin') + + def test_06_passkey_login_passkey_succeed(self): + """[Bug #1319391] + Test the correct behaviour of login with 'bad_login' / 'admin'""" + res = self.ru_obj.authenticate(self.db, 'bad_login', 'admin', {}) + self.assertFalse(res) diff --git a/ext/3rd-party-addons/auth_admin_passkey/tests/test_ui.py b/ext/3rd-party-addons/auth_admin_passkey/tests/test_ui.py new file mode 100644 index 00000000..80f98d4d --- /dev/null +++ b/ext/3rd-party-addons/auth_admin_passkey/tests/test_ui.py @@ -0,0 +1,171 @@ +# -*- coding: utf-8 -*- +# Copyright (C) 2013-2014 GRAP (http://www.grap.coop) +# @author Sylvain LE GAL (https://twitter.com/legalsylvain) +# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html + +from lxml import html + +from werkzeug.test import Client +from werkzeug.wrappers import BaseResponse + +from odoo.tests import common +from odoo.service import wsgi_server + + +@common.post_install(True) +class TestUI(common.HttpCase): + + def setUp(self): + super(TestUI, self).setUp() + + with self.registry.cursor() as test_cursor: + env = self.env(test_cursor) + + self.admin_password = 'AdminPa$$w0rd' + env.ref('base.user_root').password = self.admin_password + self.passkey_password = 'PasskeyPa$$w0rd' + self.passkey_user = env['res.users'].create({ + 'name': 'passkey', + 'login': 'passkey', + 'email': 'passkey', + 'password': self.passkey_password + }) + self.dbname = env.cr.dbname + + self.werkzeug_environ = {'REMOTE_ADDR': '127.0.0.1'} + self.test_client = Client(wsgi_server.application, BaseResponse) + self.test_client.get('/web/session/logout') + + def html_doc(self, response): + """Get an HTML LXML document.""" + return html.fromstring(response.data) + + def csrf_token(self, response): + """Get a valid CSRF token.""" + doc = self.html_doc(response) + return doc.xpath("//input[@name='csrf_token']")[0].get('value') + + def get_request(self, url, data=None): + return self.test_client.get( + url, query_string=data, follow_redirects=True) + + def post_request(self, url, data=None): + return self.test_client.post( + url, data=data, follow_redirects=True, + environ_base=self.werkzeug_environ) + + def test_01_normal_login_admin_succeed(self): + # Our admin user wants to go to backoffice part of Odoo + response = self.get_request('/web/', data={'db': self.dbname}) + + # He notices that his redirected to login page as not authenticated + self.assertIn('oe_login_form', response.data) + + # He needs to enters his credentials and submit the form + data = { + 'login': 'admin', + 'password': self.admin_password, + 'csrf_token': self.csrf_token(response), + 'db': self.dbname + } + response = self.post_request('/web/login/', data=data) + + # He notices that his redirected to backoffice + self.assertNotIn('oe_login_form', response.data) + + def test_02_normal_login_admin_fail(self): + # Our admin user wants to go to backoffice part of Odoo + response = self.get_request('/web/', data={'db': self.dbname}) + + # He notices that he's redirected to login page as not authenticated + self.assertIn('oe_login_form', response.data) + + # He needs to enter his credentials and submit the form + data = { + 'login': 'admin', + 'password': 'password', + 'csrf_token': self.csrf_token(response), + 'db': self.dbname + } + response = self.post_request('/web/login/', data=data) + + # He mistyped his password so he's redirected to login page again + self.assertIn('Wrong login/password', response.data) + + def test_03_normal_login_passkey_succeed(self): + # Our passkey user wants to go to backoffice part of Odoo + response = self.get_request('/web/', data={'db': self.dbname}) + + # He notices that he's redirected to login page as not authenticated + self.assertIn('oe_login_form', response.data) + + # He needs to enter his credentials and submit the form + data = { + 'login': self.passkey_user.login, + 'password': self.passkey_password, + 'csrf_token': self.csrf_token(response), + 'db': self.dbname + } + response = self.post_request('/web/login/', data=data) + + # He notices that his redirected to backoffice + self.assertNotIn('oe_login_form', response.data) + + def test_04_normal_login_passkey_fail(self): + # Our passkey user wants to go to backoffice part of Odoo + response = self.get_request('/web/', data={'db': self.dbname}) + + # He notices that he's redirected to login page as not authenticated + self.assertIn('oe_login_form', response.data) + + # He needs to enter his credentials and submit the form + data = { + 'login': self.passkey_user.login, + 'password': 'password', + 'csrf_token': self.csrf_token(response), + 'db': self.dbname + } + response = self.post_request('/web/login/', data=data) + + # He mistyped his password so he's redirected to login page again + self.assertIn('Wrong login/password', response.data) + + def test_05_passkey_login_with_admin_password_succeed(self): + # Our admin user wants to login as passkey user + response = self.get_request('/web/', data={'db': self.dbname}) + + # He notices that his redirected to login page as not authenticated + self.assertIn('oe_login_form', response.data) + + # He needs to enters its password with passkey user's login + data = { + 'login': self.passkey_user.login, + 'password': self.admin_password, + 'csrf_token': self.csrf_token(response), + 'db': self.dbname + } + response = self.post_request('/web/login/', data=data) + + # He notices that his redirected to backoffice + self.assertNotIn('oe_login_form', response.data) + + def test_06_passkey_login_with_same_password_as_admin(self): + self.passkey_user.password = self.admin_password + + # Our passkey user wants to go to backoffice part of Odoo + response = self.get_request('/web/', data={'db': self.dbname}) + + # He notices that his redirected to login page as not authenticated + self.assertIn('oe_login_form', response.data) + + # He needs to enters his credentials and submit the form + data = { + 'login': self.passkey_user.login, + 'password': self.admin_password, + 'csrf_token': self.csrf_token(response), + 'db': self.dbname + } + response = self.post_request('/web/login/', data=data) + + # He notices that his redirected to backoffice + self.assertNotIn('oe_login_form', response.data) diff --git a/ext/3rd-party-addons/auth_admin_passkey/views/res_config_view.xml b/ext/3rd-party-addons/auth_admin_passkey/views/res_config_view.xml new file mode 100644 index 00000000..be6cc35c --- /dev/null +++ b/ext/3rd-party-addons/auth_admin_passkey/views/res_config_view.xml @@ -0,0 +1,27 @@ + + + + + base.config.settings.view + base.config.settings + + + + + + + + + + diff --git a/ext/3rd-party-addons/auth_brute_force/README.rst b/ext/3rd-party-addons/auth_brute_force/README.rst new file mode 100644 index 00000000..2ad67486 --- /dev/null +++ b/ext/3rd-party-addons/auth_brute_force/README.rst @@ -0,0 +1,111 @@ +.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 + +=============================================================== +Tracks Authentication Attempts and Prevents Brute-force Attacks +=============================================================== + +This module registers each request done by users trying to authenticate into +Odoo. If the authentication fails, a counter is increased for the given remote +IP. After a defined number of attempts, Odoo will ban the remote IP and +ignore new requests. +This module applies security through obscurity +(https://en.wikipedia.org/wiki/Security_through_obscurity), +When a user is banned, the request is now considered as an attack. So, the UI +will **not** indicate to the user that his IP is banned and the regular message +'Wrong login/password' is displayed. + +This module realizes a call to a web API (http://ip-api.com) to try to have +extra information about remote IP. + +Configuration +============= + +Once installed, you can change the ir.config_parameter value for the key +'auth_brute_force.max_attempt_qty' (10 by default) that define the max number +of attempts allowed before the user was banned. + +Usage +===== + +Admin user have the possibility to unblock a banned IP. + +Logging +------- + +This module generates some WARNING logs, in the three following cases: + +* Authentication failed from remote '127.0.0.1'. Login tried : 'admin'. + Attempt 1 / 10. + +* Authentication failed from remote '127.0.0.1'. The remote has been banned. + Login tried : 'admin'. + +* Authentication tried from remote '127.0.0.1'. The request has been ignored + because the remote has been banned after 10 attempts without success. Login + tried : 'admin'. + +Screenshot +---------- + +**List of Attempts** + +.. image:: /auth_brute_force/static/description/screenshot_attempts_list.png + +**Detail of a banned IP** + +.. image:: /auth_brute_force/static/description/screenshot_custom_ban.png + + +.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas +:alt: Try me on Runbot + :target: https://runbot.odoo-community.org/runbot/149/10.0 + +For further information, please visit: + +* https://www.odoo.com/forum/help-1 + +Known issues / Roadmap +====================== + +* The ID used to identify a remote request is the IP provided in the request + (key 'REMOTE_ADDR'). +* Depending of server and / or user network configuration, the idenfication + of the user can be wrong, and mainly in the following cases: +* If the Odoo server is behind an Apache / NGinx proxy without redirection, + all the request will be have the value '127.0.0.1' for the REMOTE_ADDR key; +* If some users are behind the same Internet Service Provider, if a user is + banned, all the other users will be banned too; + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues +`_. In case of trouble, please +check there if your issue has already been reported. If you spotted it first, +help us smash it by providing detailed and welcomed feedback. + +Credits +======= + +Contributors +------------ + +* Sylvain LE GAL (https://twitter.com/legalsylvain) +* David Vidal + +Maintainer +---------- + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +This module is maintained by the OCA. + +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. + +To contribute to this module, please visit https://odoo-community.org. diff --git a/ext/3rd-party-addons/auth_brute_force/__init__.py b/ext/3rd-party-addons/auth_brute_force/__init__.py new file mode 100644 index 00000000..1f988014 --- /dev/null +++ b/ext/3rd-party-addons/auth_brute_force/__init__.py @@ -0,0 +1,4 @@ +# -*- encoding: utf-8 -*- + +from . import models +from . import controllers diff --git a/ext/3rd-party-addons/auth_brute_force/__manifest__.py b/ext/3rd-party-addons/auth_brute_force/__manifest__.py new file mode 100644 index 00000000..1af88fae --- /dev/null +++ b/ext/3rd-party-addons/auth_brute_force/__manifest__.py @@ -0,0 +1,27 @@ +# -*- coding: utf-8 -*- +# Copyright 2015 GRAP - Sylvain LE GAL +# Copyright 2017 Tecnativa - David Vidal +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). +{ + 'name': 'Authentification - Brute-force Attack', + 'version': '10.0.1.0.0', + 'category': 'Tools', + 'summary': "Tracks Authentication Attempts and Prevents Brute-force" + " Attacks module", + 'author': "GRAP, " + "Tecnativa, " + "Odoo Community Association (OCA)", + 'website': 'http://www.grap.coop', + 'license': 'AGPL-3', + 'depends': [ + 'web', + ], + 'data': [ + 'security/ir_model_access.yml', + 'data/ir_config_parameter.xml', + 'views/view.xml', + 'views/action.xml', + 'views/menu.xml', + ], + 'installable': True, +} diff --git a/ext/3rd-party-addons/auth_brute_force/controllers/__init__.py b/ext/3rd-party-addons/auth_brute_force/controllers/__init__.py new file mode 100644 index 00000000..65a8c120 --- /dev/null +++ b/ext/3rd-party-addons/auth_brute_force/controllers/__init__.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- + +from . import main diff --git a/ext/3rd-party-addons/auth_brute_force/controllers/main.py b/ext/3rd-party-addons/auth_brute_force/controllers/main.py new file mode 100644 index 00000000..222a62bd --- /dev/null +++ b/ext/3rd-party-addons/auth_brute_force/controllers/main.py @@ -0,0 +1,76 @@ +# -*- coding: utf-8 -*- +# Copyright 2015 GRAP - Sylvain LE GAL +# Copyright 2017 Tecnativa - David Vidal +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +import logging + +from odoo import fields, http, registry, SUPERUSER_ID +from odoo.api import Environment +from odoo.http import request +from odoo.addons.web.controllers.main import Home, ensure_db + +_logger = logging.getLogger(__name__) + + +class LoginController(Home): + + @http.route() + def web_login(self, redirect=None, **kw): + if request.httprequest.method == 'POST': + ensure_db() + remote = request.httprequest.remote_addr + # Get registry and cursor + with registry(request.session.db).cursor() as cursor: + env = Environment(cursor, SUPERUSER_ID, {}) + config_obj = env['ir.config_parameter'] + attempt_obj = env['res.authentication.attempt'] + banned_remote_obj = env['res.banned.remote'] + # Get Settings + max_attempts_qty = int(config_obj.get_param( + 'auth_brute_force.max_attempt_qty')) + # Test if remote user is banned + banned = banned_remote_obj.search([('remote', '=', remote)]) + if banned: + request.params['password'] = '' + _logger.warning( + "Authentication tried from remote '%s'. The request " + "has been ignored because the remote has been banned " + "after %d attempts without success. Login tried : '%s'" + "." % (remote, max_attempts_qty, + request.params['login'])) + else: + # Try to authenticate + result = request.session.authenticate( + request.session.db, request.params['login'], + request.params['password']) + # Log attempt + attempt_obj.create({ + 'attempt_date': fields.Datetime.now(), + 'login': request.params['login'], + 'remote': remote, + 'result': banned and 'banned' or ( + result and 'successfull' or 'failed'), + }) + cursor.commit() + if not banned and not result: + # Get last bad attempts quantity + attempts_qty = len(attempt_obj.search_last_failed(remote)) + if max_attempts_qty <= attempts_qty: + # We ban the remote + _logger.warning( + "Authentication failed from remote '%s'. " + "The remote has been banned. Login tried : '%s'" + "." % (remote, request.params['login'])) + banned_remote_obj.sudo().create({ + 'remote': remote, + 'ban_date': fields.Datetime.now(), + }) + cursor.commit() + else: + _logger.warning( + "Authentication failed from remote '%s'." + " Login tried : '%s'. Attempt %d / %d." % ( + remote, request.params['login'], attempts_qty, + max_attempts_qty)) + return super(LoginController, self).web_login(redirect=redirect, **kw) diff --git a/ext/3rd-party-addons/auth_brute_force/data/ir_config_parameter.xml b/ext/3rd-party-addons/auth_brute_force/data/ir_config_parameter.xml new file mode 100644 index 00000000..4fe744f3 --- /dev/null +++ b/ext/3rd-party-addons/auth_brute_force/data/ir_config_parameter.xml @@ -0,0 +1,15 @@ + + + + + + + + auth_brute_force.max_attempt_qty + 10 + + + + + diff --git a/ext/3rd-party-addons/auth_brute_force/i18n/am.po b/ext/3rd-party-addons/auth_brute_force/i18n/am.po new file mode 100644 index 00000000..a7e120ef --- /dev/null +++ b/ext/3rd-party-addons/auth_brute_force/i18n/am.po @@ -0,0 +1,162 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_brute_force +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Amharic (https://www.transifex.com/oca/teams/23907/am/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: am\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_active +msgid "Active" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_attempt_date +msgid "Attempt Date" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_attempt_ids +msgid "Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_authentication_attempt +#: model:ir.ui.menu,name:auth_brute_force.menu_res_authentication_attempt +msgid "Authentication Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_result +msgid "Authentication Result" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_ban_date +msgid "Ban Date" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:15 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Banned" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_banned_remote +#: model:ir.ui.menu,name:auth_brute_force.menu_res_banned_remote +msgid "Banned Remotes" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_uid +msgid "Created by" +msgstr "Creado por" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_date +msgid "Created on" +msgstr "Creado en" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_description +msgid "Description" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_display_name +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_display_name +msgid "Display Name" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:14 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Failed" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_id +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_id +msgid "ID" +msgstr "ID" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt___last_update +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote___last_update +msgid "Last Modified on" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_uid +msgid "Last Updated by" +msgstr "Última actualización por" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_date +msgid "Last Updated on" +msgstr "Última actualización en" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_remote +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_remote +msgid "Remote ID" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Successful" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:13 +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Successfull" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_login +msgid "Tried Login" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,help:auth_brute_force.field_res_banned_remote_active +msgid "Uncheck this box to unban the remote" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Without Success" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_authentication_attempt +msgid "res.authentication.attempt" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_banned_remote +msgid "res.banned.remote" +msgstr "" diff --git a/ext/3rd-party-addons/auth_brute_force/i18n/ar.po b/ext/3rd-party-addons/auth_brute_force/i18n/ar.po new file mode 100644 index 00000000..039a6194 --- /dev/null +++ b/ext/3rd-party-addons/auth_brute_force/i18n/ar.po @@ -0,0 +1,162 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_brute_force +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Arabic (https://www.transifex.com/oca/teams/23907/ar/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: ar\n" +"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_active +msgid "Active" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_attempt_date +msgid "Attempt Date" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_attempt_ids +msgid "Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_authentication_attempt +#: model:ir.ui.menu,name:auth_brute_force.menu_res_authentication_attempt +msgid "Authentication Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_result +msgid "Authentication Result" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_ban_date +msgid "Ban Date" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:15 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Banned" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_banned_remote +#: model:ir.ui.menu,name:auth_brute_force.menu_res_banned_remote +msgid "Banned Remotes" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_uid +msgid "Created by" +msgstr "أنشئ بواسطة" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_date +msgid "Created on" +msgstr "أنشئ في" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_description +msgid "Description" +msgstr "الوصف" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_display_name +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_display_name +msgid "Display Name" +msgstr "اسم العرض" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:14 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Failed" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_id +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_id +msgid "ID" +msgstr "المعرف" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt___last_update +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote___last_update +msgid "Last Modified on" +msgstr "آخر تعديل في" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_uid +msgid "Last Updated by" +msgstr "آخر تحديث بواسطة" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_date +msgid "Last Updated on" +msgstr "آخر تحديث في" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_remote +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_remote +msgid "Remote ID" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Successful" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:13 +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Successfull" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_login +msgid "Tried Login" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,help:auth_brute_force.field_res_banned_remote_active +msgid "Uncheck this box to unban the remote" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Without Success" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_authentication_attempt +msgid "res.authentication.attempt" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_banned_remote +msgid "res.banned.remote" +msgstr "" diff --git a/ext/3rd-party-addons/auth_brute_force/i18n/bg.po b/ext/3rd-party-addons/auth_brute_force/i18n/bg.po new file mode 100644 index 00000000..c0268e16 --- /dev/null +++ b/ext/3rd-party-addons/auth_brute_force/i18n/bg.po @@ -0,0 +1,162 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_brute_force +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Bulgarian (https://www.transifex.com/oca/teams/23907/bg/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: bg\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_active +msgid "Active" +msgstr "Активен" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_attempt_date +msgid "Attempt Date" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_attempt_ids +msgid "Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_authentication_attempt +#: model:ir.ui.menu,name:auth_brute_force.menu_res_authentication_attempt +msgid "Authentication Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_result +msgid "Authentication Result" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_ban_date +msgid "Ban Date" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:15 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Banned" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_banned_remote +#: model:ir.ui.menu,name:auth_brute_force.menu_res_banned_remote +msgid "Banned Remotes" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_uid +msgid "Created by" +msgstr "Създадено от" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_date +msgid "Created on" +msgstr "Създадено на" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_description +msgid "Description" +msgstr "Описание" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_display_name +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_display_name +msgid "Display Name" +msgstr "Име за Показване" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:14 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Failed" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_id +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_id +msgid "ID" +msgstr "ID" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt___last_update +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote___last_update +msgid "Last Modified on" +msgstr "Последно обновено на" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_uid +msgid "Last Updated by" +msgstr "Последно обновено от" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_date +msgid "Last Updated on" +msgstr "Последно обновено на" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_remote +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_remote +msgid "Remote ID" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Successful" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:13 +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Successfull" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_login +msgid "Tried Login" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,help:auth_brute_force.field_res_banned_remote_active +msgid "Uncheck this box to unban the remote" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Without Success" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_authentication_attempt +msgid "res.authentication.attempt" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_banned_remote +msgid "res.banned.remote" +msgstr "" diff --git a/ext/3rd-party-addons/auth_brute_force/i18n/bs.po b/ext/3rd-party-addons/auth_brute_force/i18n/bs.po new file mode 100644 index 00000000..fb29cb4c --- /dev/null +++ b/ext/3rd-party-addons/auth_brute_force/i18n/bs.po @@ -0,0 +1,162 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_brute_force +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Bosnian (https://www.transifex.com/oca/teams/23907/bs/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: bs\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_active +msgid "Active" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_attempt_date +msgid "Attempt Date" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_attempt_ids +msgid "Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_authentication_attempt +#: model:ir.ui.menu,name:auth_brute_force.menu_res_authentication_attempt +msgid "Authentication Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_result +msgid "Authentication Result" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_ban_date +msgid "Ban Date" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:15 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Banned" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_banned_remote +#: model:ir.ui.menu,name:auth_brute_force.menu_res_banned_remote +msgid "Banned Remotes" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_uid +msgid "Created by" +msgstr "Kreirao" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_date +msgid "Created on" +msgstr "Kreirano" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_description +msgid "Description" +msgstr "Opis" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_display_name +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_display_name +msgid "Display Name" +msgstr "Prikaži naziv" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:14 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Failed" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_id +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_id +msgid "ID" +msgstr "ID" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt___last_update +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote___last_update +msgid "Last Modified on" +msgstr "Zadnje mijenjano" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_uid +msgid "Last Updated by" +msgstr "Zadnji ažurirao" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_date +msgid "Last Updated on" +msgstr "Zadnje ažurirano" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_remote +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_remote +msgid "Remote ID" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Successful" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:13 +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Successfull" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_login +msgid "Tried Login" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,help:auth_brute_force.field_res_banned_remote_active +msgid "Uncheck this box to unban the remote" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Without Success" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_authentication_attempt +msgid "res.authentication.attempt" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_banned_remote +msgid "res.banned.remote" +msgstr "" diff --git a/ext/3rd-party-addons/auth_brute_force/i18n/ca.po b/ext/3rd-party-addons/auth_brute_force/i18n/ca.po new file mode 100644 index 00000000..6568211a --- /dev/null +++ b/ext/3rd-party-addons/auth_brute_force/i18n/ca.po @@ -0,0 +1,162 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_brute_force +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Catalan (https://www.transifex.com/oca/teams/23907/ca/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: ca\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_active +msgid "Active" +msgstr "Actiu" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_attempt_date +msgid "Attempt Date" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_attempt_ids +msgid "Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_authentication_attempt +#: model:ir.ui.menu,name:auth_brute_force.menu_res_authentication_attempt +msgid "Authentication Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_result +msgid "Authentication Result" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_ban_date +msgid "Ban Date" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:15 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Banned" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_banned_remote +#: model:ir.ui.menu,name:auth_brute_force.menu_res_banned_remote +msgid "Banned Remotes" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_uid +msgid "Created by" +msgstr "Creat per" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_date +msgid "Created on" +msgstr "Creat el" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_description +msgid "Description" +msgstr "Descripció" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_display_name +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_display_name +msgid "Display Name" +msgstr "Veure el nom" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:14 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Failed" +msgstr "Fracassat" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_id +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_id +msgid "ID" +msgstr "ID" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt___last_update +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote___last_update +msgid "Last Modified on" +msgstr "Darrera modificació el" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_uid +msgid "Last Updated by" +msgstr "Darrera Actualització per" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_date +msgid "Last Updated on" +msgstr "Darrera Actualització el" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_remote +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_remote +msgid "Remote ID" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Successful" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:13 +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Successfull" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_login +msgid "Tried Login" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,help:auth_brute_force.field_res_banned_remote_active +msgid "Uncheck this box to unban the remote" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Without Success" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_authentication_attempt +msgid "res.authentication.attempt" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_banned_remote +msgid "res.banned.remote" +msgstr "" diff --git a/ext/3rd-party-addons/auth_brute_force/i18n/cs.po b/ext/3rd-party-addons/auth_brute_force/i18n/cs.po new file mode 100644 index 00000000..ff836e2d --- /dev/null +++ b/ext/3rd-party-addons/auth_brute_force/i18n/cs.po @@ -0,0 +1,162 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_brute_force +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Czech (https://www.transifex.com/oca/teams/23907/cs/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: cs\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_active +msgid "Active" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_attempt_date +msgid "Attempt Date" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_attempt_ids +msgid "Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_authentication_attempt +#: model:ir.ui.menu,name:auth_brute_force.menu_res_authentication_attempt +msgid "Authentication Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_result +msgid "Authentication Result" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_ban_date +msgid "Ban Date" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:15 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Banned" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_banned_remote +#: model:ir.ui.menu,name:auth_brute_force.menu_res_banned_remote +msgid "Banned Remotes" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_uid +msgid "Created by" +msgstr "Vytvořil(a)" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_date +msgid "Created on" +msgstr "Vytvořeno" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_description +msgid "Description" +msgstr "Popis" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_display_name +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_display_name +msgid "Display Name" +msgstr "Zobrazovaný název" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:14 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Failed" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_id +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_id +msgid "ID" +msgstr "ID" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt___last_update +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote___last_update +msgid "Last Modified on" +msgstr "Naposled upraveno" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_uid +msgid "Last Updated by" +msgstr "Naposled upraveno" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_date +msgid "Last Updated on" +msgstr "Naposled upraveno" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_remote +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_remote +msgid "Remote ID" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Successful" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:13 +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Successfull" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_login +msgid "Tried Login" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,help:auth_brute_force.field_res_banned_remote_active +msgid "Uncheck this box to unban the remote" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Without Success" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_authentication_attempt +msgid "res.authentication.attempt" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_banned_remote +msgid "res.banned.remote" +msgstr "" diff --git a/ext/3rd-party-addons/auth_brute_force/i18n/da.po b/ext/3rd-party-addons/auth_brute_force/i18n/da.po new file mode 100644 index 00000000..22318891 --- /dev/null +++ b/ext/3rd-party-addons/auth_brute_force/i18n/da.po @@ -0,0 +1,162 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_brute_force +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Danish (https://www.transifex.com/oca/teams/23907/da/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: da\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_active +msgid "Active" +msgstr "Aktiv" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_attempt_date +msgid "Attempt Date" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_attempt_ids +msgid "Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_authentication_attempt +#: model:ir.ui.menu,name:auth_brute_force.menu_res_authentication_attempt +msgid "Authentication Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_result +msgid "Authentication Result" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_ban_date +msgid "Ban Date" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:15 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Banned" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_banned_remote +#: model:ir.ui.menu,name:auth_brute_force.menu_res_banned_remote +msgid "Banned Remotes" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_uid +msgid "Created by" +msgstr "Oprettet af" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_date +msgid "Created on" +msgstr "Oprettet den" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_description +msgid "Description" +msgstr "Beskrivelse" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_display_name +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_display_name +msgid "Display Name" +msgstr "Vist navn" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:14 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Failed" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_id +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_id +msgid "ID" +msgstr "Id" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt___last_update +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote___last_update +msgid "Last Modified on" +msgstr "Sidst ændret den" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_uid +msgid "Last Updated by" +msgstr "Sidst opdateret af" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_date +msgid "Last Updated on" +msgstr "Sidst opdateret den" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_remote +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_remote +msgid "Remote ID" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Successful" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:13 +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Successfull" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_login +msgid "Tried Login" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,help:auth_brute_force.field_res_banned_remote_active +msgid "Uncheck this box to unban the remote" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Without Success" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_authentication_attempt +msgid "res.authentication.attempt" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_banned_remote +msgid "res.banned.remote" +msgstr "" diff --git a/ext/3rd-party-addons/auth_brute_force/i18n/de.po b/ext/3rd-party-addons/auth_brute_force/i18n/de.po new file mode 100644 index 00000000..922f5843 --- /dev/null +++ b/ext/3rd-party-addons/auth_brute_force/i18n/de.po @@ -0,0 +1,162 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_brute_force +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: German (https://www.transifex.com/oca/teams/23907/de/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: de\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_active +msgid "Active" +msgstr "Aktiv" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_attempt_date +msgid "Attempt Date" +msgstr "Versuchsdatum" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_attempt_ids +msgid "Attempts" +msgstr "Anläufe" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_authentication_attempt +#: model:ir.ui.menu,name:auth_brute_force.menu_res_authentication_attempt +msgid "Authentication Attempts" +msgstr "Authentifizierungsversuche" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_result +msgid "Authentication Result" +msgstr "Ergebnis der Authentifizierung" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_ban_date +msgid "Ban Date" +msgstr "Sperrdatum" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:15 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Banned" +msgstr "Gesperrt" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_banned_remote +#: model:ir.ui.menu,name:auth_brute_force.menu_res_banned_remote +msgid "Banned Remotes" +msgstr "Gesperrte Remotes" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_uid +msgid "Created by" +msgstr "Erstellt von" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_date +msgid "Created on" +msgstr "Erstellt am:" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_description +msgid "Description" +msgstr "Beschreibung" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_display_name +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_display_name +msgid "Display Name" +msgstr "Anzeigename" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:14 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Failed" +msgstr "Gescheitert" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_id +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_id +msgid "ID" +msgstr "ID" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt___last_update +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote___last_update +msgid "Last Modified on" +msgstr "Zuletzt geändert am" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_uid +msgid "Last Updated by" +msgstr "Zuletzt aktualisiert von" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_date +msgid "Last Updated on" +msgstr "Zuletzt aktualisiert am" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_remote +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_remote +msgid "Remote ID" +msgstr "Ferne ID" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Successful" +msgstr "Erfolgreich" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:13 +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Successfull" +msgstr "Erfolgreich" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_login +msgid "Tried Login" +msgstr "Versuchte Anmeldung" + +#. module: auth_brute_force +#: model:ir.model.fields,help:auth_brute_force.field_res_banned_remote_active +msgid "Uncheck this box to unban the remote" +msgstr "Diese Box abwählen, um Fernnutzer zu entsperren" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Without Success" +msgstr "Erfolglos" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_authentication_attempt +msgid "res.authentication.attempt" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_banned_remote +msgid "res.banned.remote" +msgstr "" diff --git a/ext/3rd-party-addons/auth_brute_force/i18n/el_GR.po b/ext/3rd-party-addons/auth_brute_force/i18n/el_GR.po new file mode 100644 index 00000000..37dba0ae --- /dev/null +++ b/ext/3rd-party-addons/auth_brute_force/i18n/el_GR.po @@ -0,0 +1,162 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_brute_force +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Greek (Greece) (https://www.transifex.com/oca/teams/23907/el_GR/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: el_GR\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_active +msgid "Active" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_attempt_date +msgid "Attempt Date" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_attempt_ids +msgid "Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_authentication_attempt +#: model:ir.ui.menu,name:auth_brute_force.menu_res_authentication_attempt +msgid "Authentication Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_result +msgid "Authentication Result" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_ban_date +msgid "Ban Date" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:15 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Banned" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_banned_remote +#: model:ir.ui.menu,name:auth_brute_force.menu_res_banned_remote +msgid "Banned Remotes" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_uid +msgid "Created by" +msgstr "Δημιουργήθηκε από " + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_date +msgid "Created on" +msgstr "Δημιουργήθηκε στις" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_description +msgid "Description" +msgstr "Περιγραφή" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_display_name +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_display_name +msgid "Display Name" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:14 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Failed" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_id +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_id +msgid "ID" +msgstr "Κωδικός" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt___last_update +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote___last_update +msgid "Last Modified on" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_uid +msgid "Last Updated by" +msgstr "Τελευταία ενημέρωση από" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_date +msgid "Last Updated on" +msgstr "Τελευταία ενημέρωση στις" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_remote +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_remote +msgid "Remote ID" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Successful" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:13 +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Successfull" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_login +msgid "Tried Login" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,help:auth_brute_force.field_res_banned_remote_active +msgid "Uncheck this box to unban the remote" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Without Success" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_authentication_attempt +msgid "res.authentication.attempt" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_banned_remote +msgid "res.banned.remote" +msgstr "" diff --git a/ext/3rd-party-addons/auth_brute_force/i18n/en_GB.po b/ext/3rd-party-addons/auth_brute_force/i18n/en_GB.po new file mode 100644 index 00000000..63a0898d --- /dev/null +++ b/ext/3rd-party-addons/auth_brute_force/i18n/en_GB.po @@ -0,0 +1,162 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_brute_force +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: English (United Kingdom) (https://www.transifex.com/oca/teams/23907/en_GB/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: en_GB\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_active +msgid "Active" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_attempt_date +msgid "Attempt Date" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_attempt_ids +msgid "Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_authentication_attempt +#: model:ir.ui.menu,name:auth_brute_force.menu_res_authentication_attempt +msgid "Authentication Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_result +msgid "Authentication Result" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_ban_date +msgid "Ban Date" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:15 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Banned" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_banned_remote +#: model:ir.ui.menu,name:auth_brute_force.menu_res_banned_remote +msgid "Banned Remotes" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_uid +msgid "Created by" +msgstr "Created by" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_date +msgid "Created on" +msgstr "Created on" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_description +msgid "Description" +msgstr "Description" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_display_name +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_display_name +msgid "Display Name" +msgstr "Display Name" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:14 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Failed" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_id +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_id +msgid "ID" +msgstr "ID" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt___last_update +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote___last_update +msgid "Last Modified on" +msgstr "Last Modified on" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_uid +msgid "Last Updated by" +msgstr "Last Updated by" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_date +msgid "Last Updated on" +msgstr "Last Updated on" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_remote +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_remote +msgid "Remote ID" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Successful" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:13 +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Successfull" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_login +msgid "Tried Login" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,help:auth_brute_force.field_res_banned_remote_active +msgid "Uncheck this box to unban the remote" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Without Success" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_authentication_attempt +msgid "res.authentication.attempt" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_banned_remote +msgid "res.banned.remote" +msgstr "" diff --git a/ext/3rd-party-addons/auth_brute_force/i18n/es.po b/ext/3rd-party-addons/auth_brute_force/i18n/es.po new file mode 100644 index 00000000..433c1232 --- /dev/null +++ b/ext/3rd-party-addons/auth_brute_force/i18n/es.po @@ -0,0 +1,162 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_brute_force +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Spanish (https://www.transifex.com/oca/teams/23907/es/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: es\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_active +msgid "Active" +msgstr "Activo" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_attempt_date +msgid "Attempt Date" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_attempt_ids +msgid "Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_authentication_attempt +#: model:ir.ui.menu,name:auth_brute_force.menu_res_authentication_attempt +msgid "Authentication Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_result +msgid "Authentication Result" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_ban_date +msgid "Ban Date" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:15 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Banned" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_banned_remote +#: model:ir.ui.menu,name:auth_brute_force.menu_res_banned_remote +msgid "Banned Remotes" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_uid +msgid "Created by" +msgstr "Creado por" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_date +msgid "Created on" +msgstr "Creado en" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_description +msgid "Description" +msgstr "Descripción" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_display_name +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_display_name +msgid "Display Name" +msgstr "Nombre a mostrar" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:14 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Failed" +msgstr "Fallido" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_id +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_id +msgid "ID" +msgstr "ID" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt___last_update +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote___last_update +msgid "Last Modified on" +msgstr "Última actualización por" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_uid +msgid "Last Updated by" +msgstr "Última actualización de" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_date +msgid "Last Updated on" +msgstr "Última actualización en" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_remote +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_remote +msgid "Remote ID" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Successful" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:13 +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Successfull" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_login +msgid "Tried Login" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,help:auth_brute_force.field_res_banned_remote_active +msgid "Uncheck this box to unban the remote" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Without Success" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_authentication_attempt +msgid "res.authentication.attempt" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_banned_remote +msgid "res.banned.remote" +msgstr "" diff --git a/ext/3rd-party-addons/auth_brute_force/i18n/es_AR.po b/ext/3rd-party-addons/auth_brute_force/i18n/es_AR.po new file mode 100644 index 00000000..5a043c25 --- /dev/null +++ b/ext/3rd-party-addons/auth_brute_force/i18n/es_AR.po @@ -0,0 +1,162 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_brute_force +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Spanish (Argentina) (https://www.transifex.com/oca/teams/23907/es_AR/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: es_AR\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_active +msgid "Active" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_attempt_date +msgid "Attempt Date" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_attempt_ids +msgid "Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_authentication_attempt +#: model:ir.ui.menu,name:auth_brute_force.menu_res_authentication_attempt +msgid "Authentication Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_result +msgid "Authentication Result" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_ban_date +msgid "Ban Date" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:15 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Banned" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_banned_remote +#: model:ir.ui.menu,name:auth_brute_force.menu_res_banned_remote +msgid "Banned Remotes" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_uid +msgid "Created by" +msgstr "Creado por" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_date +msgid "Created on" +msgstr "Creado en" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_description +msgid "Description" +msgstr "Descripción" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_display_name +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_display_name +msgid "Display Name" +msgstr "Mostrar Nombre" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:14 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Failed" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_id +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_id +msgid "ID" +msgstr "ID" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt___last_update +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote___last_update +msgid "Last Modified on" +msgstr "Última modificación en" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_uid +msgid "Last Updated by" +msgstr "Última actualización realizada por" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_date +msgid "Last Updated on" +msgstr "Última actualización el" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_remote +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_remote +msgid "Remote ID" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Successful" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:13 +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Successfull" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_login +msgid "Tried Login" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,help:auth_brute_force.field_res_banned_remote_active +msgid "Uncheck this box to unban the remote" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Without Success" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_authentication_attempt +msgid "res.authentication.attempt" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_banned_remote +msgid "res.banned.remote" +msgstr "" diff --git a/ext/3rd-party-addons/auth_brute_force/i18n/es_CL.po b/ext/3rd-party-addons/auth_brute_force/i18n/es_CL.po new file mode 100644 index 00000000..c79a0732 --- /dev/null +++ b/ext/3rd-party-addons/auth_brute_force/i18n/es_CL.po @@ -0,0 +1,162 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_brute_force +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Spanish (Chile) (https://www.transifex.com/oca/teams/23907/es_CL/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: es_CL\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_active +msgid "Active" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_attempt_date +msgid "Attempt Date" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_attempt_ids +msgid "Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_authentication_attempt +#: model:ir.ui.menu,name:auth_brute_force.menu_res_authentication_attempt +msgid "Authentication Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_result +msgid "Authentication Result" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_ban_date +msgid "Ban Date" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:15 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Banned" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_banned_remote +#: model:ir.ui.menu,name:auth_brute_force.menu_res_banned_remote +msgid "Banned Remotes" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_uid +msgid "Created by" +msgstr "Creado por" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_date +msgid "Created on" +msgstr "Creado en" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_description +msgid "Description" +msgstr "Descripción" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_display_name +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_display_name +msgid "Display Name" +msgstr "Nombre mostrado" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:14 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Failed" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_id +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_id +msgid "ID" +msgstr "ID (identificación)" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt___last_update +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote___last_update +msgid "Last Modified on" +msgstr "Última modificación en" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_uid +msgid "Last Updated by" +msgstr "Última actualización de" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_date +msgid "Last Updated on" +msgstr "Última actualización en" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_remote +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_remote +msgid "Remote ID" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Successful" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:13 +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Successfull" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_login +msgid "Tried Login" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,help:auth_brute_force.field_res_banned_remote_active +msgid "Uncheck this box to unban the remote" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Without Success" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_authentication_attempt +msgid "res.authentication.attempt" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_banned_remote +msgid "res.banned.remote" +msgstr "" diff --git a/ext/3rd-party-addons/auth_brute_force/i18n/es_CO.po b/ext/3rd-party-addons/auth_brute_force/i18n/es_CO.po new file mode 100644 index 00000000..3b3601eb --- /dev/null +++ b/ext/3rd-party-addons/auth_brute_force/i18n/es_CO.po @@ -0,0 +1,162 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_brute_force +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Spanish (Colombia) (https://www.transifex.com/oca/teams/23907/es_CO/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: es_CO\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_active +msgid "Active" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_attempt_date +msgid "Attempt Date" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_attempt_ids +msgid "Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_authentication_attempt +#: model:ir.ui.menu,name:auth_brute_force.menu_res_authentication_attempt +msgid "Authentication Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_result +msgid "Authentication Result" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_ban_date +msgid "Ban Date" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:15 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Banned" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_banned_remote +#: model:ir.ui.menu,name:auth_brute_force.menu_res_banned_remote +msgid "Banned Remotes" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_uid +msgid "Created by" +msgstr "Creado por" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_date +msgid "Created on" +msgstr "Creado" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_description +msgid "Description" +msgstr "Descripción" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_display_name +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_display_name +msgid "Display Name" +msgstr "Nombre Público" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:14 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Failed" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_id +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_id +msgid "ID" +msgstr "ID" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt___last_update +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote___last_update +msgid "Last Modified on" +msgstr "Última Modificación el" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_uid +msgid "Last Updated by" +msgstr "Actualizado por" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_date +msgid "Last Updated on" +msgstr "Actualizado" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_remote +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_remote +msgid "Remote ID" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Successful" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:13 +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Successfull" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_login +msgid "Tried Login" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,help:auth_brute_force.field_res_banned_remote_active +msgid "Uncheck this box to unban the remote" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Without Success" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_authentication_attempt +msgid "res.authentication.attempt" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_banned_remote +msgid "res.banned.remote" +msgstr "" diff --git a/ext/3rd-party-addons/auth_brute_force/i18n/es_CR.po b/ext/3rd-party-addons/auth_brute_force/i18n/es_CR.po new file mode 100644 index 00000000..53dc51e4 --- /dev/null +++ b/ext/3rd-party-addons/auth_brute_force/i18n/es_CR.po @@ -0,0 +1,162 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_brute_force +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Spanish (Costa Rica) (https://www.transifex.com/oca/teams/23907/es_CR/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: es_CR\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_active +msgid "Active" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_attempt_date +msgid "Attempt Date" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_attempt_ids +msgid "Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_authentication_attempt +#: model:ir.ui.menu,name:auth_brute_force.menu_res_authentication_attempt +msgid "Authentication Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_result +msgid "Authentication Result" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_ban_date +msgid "Ban Date" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:15 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Banned" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_banned_remote +#: model:ir.ui.menu,name:auth_brute_force.menu_res_banned_remote +msgid "Banned Remotes" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_uid +msgid "Created by" +msgstr "Creado por" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_date +msgid "Created on" +msgstr "Creado en" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_description +msgid "Description" +msgstr "Descripción" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_display_name +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_display_name +msgid "Display Name" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:14 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Failed" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_id +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_id +msgid "ID" +msgstr "ID" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt___last_update +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote___last_update +msgid "Last Modified on" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_uid +msgid "Last Updated by" +msgstr "Ultima actualización por" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_date +msgid "Last Updated on" +msgstr "Ultima actualización en" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_remote +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_remote +msgid "Remote ID" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Successful" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:13 +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Successfull" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_login +msgid "Tried Login" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,help:auth_brute_force.field_res_banned_remote_active +msgid "Uncheck this box to unban the remote" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Without Success" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_authentication_attempt +msgid "res.authentication.attempt" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_banned_remote +msgid "res.banned.remote" +msgstr "" diff --git a/ext/3rd-party-addons/auth_brute_force/i18n/es_DO.po b/ext/3rd-party-addons/auth_brute_force/i18n/es_DO.po new file mode 100644 index 00000000..f7b7dca6 --- /dev/null +++ b/ext/3rd-party-addons/auth_brute_force/i18n/es_DO.po @@ -0,0 +1,162 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_brute_force +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Spanish (Dominican Republic) (https://www.transifex.com/oca/teams/23907/es_DO/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: es_DO\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_active +msgid "Active" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_attempt_date +msgid "Attempt Date" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_attempt_ids +msgid "Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_authentication_attempt +#: model:ir.ui.menu,name:auth_brute_force.menu_res_authentication_attempt +msgid "Authentication Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_result +msgid "Authentication Result" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_ban_date +msgid "Ban Date" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:15 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Banned" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_banned_remote +#: model:ir.ui.menu,name:auth_brute_force.menu_res_banned_remote +msgid "Banned Remotes" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_uid +msgid "Created by" +msgstr "Creado por" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_date +msgid "Created on" +msgstr "Creado en" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_description +msgid "Description" +msgstr "Descripción" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_display_name +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_display_name +msgid "Display Name" +msgstr "Nombre mostrado" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:14 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Failed" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_id +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_id +msgid "ID" +msgstr "ID" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt___last_update +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote___last_update +msgid "Last Modified on" +msgstr "Última modificación en" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_uid +msgid "Last Updated by" +msgstr "Última actualización de" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_date +msgid "Last Updated on" +msgstr "Última actualización en" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_remote +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_remote +msgid "Remote ID" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Successful" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:13 +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Successfull" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_login +msgid "Tried Login" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,help:auth_brute_force.field_res_banned_remote_active +msgid "Uncheck this box to unban the remote" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Without Success" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_authentication_attempt +msgid "res.authentication.attempt" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_banned_remote +msgid "res.banned.remote" +msgstr "" diff --git a/ext/3rd-party-addons/auth_brute_force/i18n/es_EC.po b/ext/3rd-party-addons/auth_brute_force/i18n/es_EC.po new file mode 100644 index 00000000..322d7c59 --- /dev/null +++ b/ext/3rd-party-addons/auth_brute_force/i18n/es_EC.po @@ -0,0 +1,162 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_brute_force +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Spanish (Ecuador) (https://www.transifex.com/oca/teams/23907/es_EC/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: es_EC\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_active +msgid "Active" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_attempt_date +msgid "Attempt Date" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_attempt_ids +msgid "Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_authentication_attempt +#: model:ir.ui.menu,name:auth_brute_force.menu_res_authentication_attempt +msgid "Authentication Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_result +msgid "Authentication Result" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_ban_date +msgid "Ban Date" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:15 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Banned" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_banned_remote +#: model:ir.ui.menu,name:auth_brute_force.menu_res_banned_remote +msgid "Banned Remotes" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_uid +msgid "Created by" +msgstr "Creado por" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_date +msgid "Created on" +msgstr "Creado en" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_description +msgid "Description" +msgstr "Descripción" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_display_name +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_display_name +msgid "Display Name" +msgstr "Nombre mostrado" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:14 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Failed" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_id +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_id +msgid "ID" +msgstr "ID (identificación)" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt___last_update +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote___last_update +msgid "Last Modified on" +msgstr "Última modificación en" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_uid +msgid "Last Updated by" +msgstr "Última actualización de" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_date +msgid "Last Updated on" +msgstr "Última actualización en" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_remote +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_remote +msgid "Remote ID" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Successful" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:13 +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Successfull" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_login +msgid "Tried Login" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,help:auth_brute_force.field_res_banned_remote_active +msgid "Uncheck this box to unban the remote" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Without Success" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_authentication_attempt +msgid "res.authentication.attempt" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_banned_remote +msgid "res.banned.remote" +msgstr "" diff --git a/ext/3rd-party-addons/auth_brute_force/i18n/es_ES.po b/ext/3rd-party-addons/auth_brute_force/i18n/es_ES.po new file mode 100644 index 00000000..8e96c13f --- /dev/null +++ b/ext/3rd-party-addons/auth_brute_force/i18n/es_ES.po @@ -0,0 +1,162 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_brute_force +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Spanish (Spain) (https://www.transifex.com/oca/teams/23907/es_ES/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: es_ES\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_active +msgid "Active" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_attempt_date +msgid "Attempt Date" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_attempt_ids +msgid "Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_authentication_attempt +#: model:ir.ui.menu,name:auth_brute_force.menu_res_authentication_attempt +msgid "Authentication Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_result +msgid "Authentication Result" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_ban_date +msgid "Ban Date" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:15 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Banned" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_banned_remote +#: model:ir.ui.menu,name:auth_brute_force.menu_res_banned_remote +msgid "Banned Remotes" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_uid +msgid "Created by" +msgstr "Creado por" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_date +msgid "Created on" +msgstr "Creado en" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_description +msgid "Description" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_display_name +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_display_name +msgid "Display Name" +msgstr "Nombre para mostrar" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:14 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Failed" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_id +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_id +msgid "ID" +msgstr "ID" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt___last_update +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote___last_update +msgid "Last Modified on" +msgstr "Última modificación en" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_uid +msgid "Last Updated by" +msgstr "Última actualización por" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_date +msgid "Last Updated on" +msgstr "Última actualización en" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_remote +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_remote +msgid "Remote ID" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Successful" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:13 +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Successfull" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_login +msgid "Tried Login" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,help:auth_brute_force.field_res_banned_remote_active +msgid "Uncheck this box to unban the remote" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Without Success" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_authentication_attempt +msgid "res.authentication.attempt" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_banned_remote +msgid "res.banned.remote" +msgstr "" diff --git a/ext/3rd-party-addons/auth_brute_force/i18n/es_MX.po b/ext/3rd-party-addons/auth_brute_force/i18n/es_MX.po new file mode 100644 index 00000000..be5210c5 --- /dev/null +++ b/ext/3rd-party-addons/auth_brute_force/i18n/es_MX.po @@ -0,0 +1,162 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_brute_force +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Spanish (Mexico) (https://www.transifex.com/oca/teams/23907/es_MX/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: es_MX\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_active +msgid "Active" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_attempt_date +msgid "Attempt Date" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_attempt_ids +msgid "Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_authentication_attempt +#: model:ir.ui.menu,name:auth_brute_force.menu_res_authentication_attempt +msgid "Authentication Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_result +msgid "Authentication Result" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_ban_date +msgid "Ban Date" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:15 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Banned" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_banned_remote +#: model:ir.ui.menu,name:auth_brute_force.menu_res_banned_remote +msgid "Banned Remotes" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_uid +msgid "Created by" +msgstr "Creado por" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_date +msgid "Created on" +msgstr "Creado en" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_description +msgid "Description" +msgstr "Descripción" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_display_name +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_display_name +msgid "Display Name" +msgstr "Nombre desplegado" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:14 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Failed" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_id +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_id +msgid "ID" +msgstr "ID" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt___last_update +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote___last_update +msgid "Last Modified on" +msgstr "Ultima modificacion realizada" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_uid +msgid "Last Updated by" +msgstr "Ultima actualizacion por" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_date +msgid "Last Updated on" +msgstr "Ultima actualización realizada" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_remote +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_remote +msgid "Remote ID" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Successful" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:13 +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Successfull" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_login +msgid "Tried Login" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,help:auth_brute_force.field_res_banned_remote_active +msgid "Uncheck this box to unban the remote" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Without Success" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_authentication_attempt +msgid "res.authentication.attempt" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_banned_remote +msgid "res.banned.remote" +msgstr "" diff --git a/ext/3rd-party-addons/auth_brute_force/i18n/es_PE.po b/ext/3rd-party-addons/auth_brute_force/i18n/es_PE.po new file mode 100644 index 00000000..ccc84dee --- /dev/null +++ b/ext/3rd-party-addons/auth_brute_force/i18n/es_PE.po @@ -0,0 +1,162 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_brute_force +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Spanish (Peru) (https://www.transifex.com/oca/teams/23907/es_PE/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: es_PE\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_active +msgid "Active" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_attempt_date +msgid "Attempt Date" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_attempt_ids +msgid "Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_authentication_attempt +#: model:ir.ui.menu,name:auth_brute_force.menu_res_authentication_attempt +msgid "Authentication Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_result +msgid "Authentication Result" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_ban_date +msgid "Ban Date" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:15 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Banned" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_banned_remote +#: model:ir.ui.menu,name:auth_brute_force.menu_res_banned_remote +msgid "Banned Remotes" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_uid +msgid "Created by" +msgstr "Creado por" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_date +msgid "Created on" +msgstr "Creado en" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_description +msgid "Description" +msgstr "Descripción" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_display_name +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_display_name +msgid "Display Name" +msgstr "Nombre a Mostrar" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:14 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Failed" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_id +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_id +msgid "ID" +msgstr "ID" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt___last_update +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote___last_update +msgid "Last Modified on" +msgstr "Ultima Modificación en" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_uid +msgid "Last Updated by" +msgstr "Actualizado última vez por" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_date +msgid "Last Updated on" +msgstr "Ultima Actualización" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_remote +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_remote +msgid "Remote ID" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Successful" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:13 +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Successfull" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_login +msgid "Tried Login" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,help:auth_brute_force.field_res_banned_remote_active +msgid "Uncheck this box to unban the remote" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Without Success" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_authentication_attempt +msgid "res.authentication.attempt" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_banned_remote +msgid "res.banned.remote" +msgstr "" diff --git a/ext/3rd-party-addons/auth_brute_force/i18n/es_PY.po b/ext/3rd-party-addons/auth_brute_force/i18n/es_PY.po new file mode 100644 index 00000000..5f2f2919 --- /dev/null +++ b/ext/3rd-party-addons/auth_brute_force/i18n/es_PY.po @@ -0,0 +1,162 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_brute_force +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Spanish (Paraguay) (https://www.transifex.com/oca/teams/23907/es_PY/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: es_PY\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_active +msgid "Active" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_attempt_date +msgid "Attempt Date" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_attempt_ids +msgid "Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_authentication_attempt +#: model:ir.ui.menu,name:auth_brute_force.menu_res_authentication_attempt +msgid "Authentication Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_result +msgid "Authentication Result" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_ban_date +msgid "Ban Date" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:15 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Banned" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_banned_remote +#: model:ir.ui.menu,name:auth_brute_force.menu_res_banned_remote +msgid "Banned Remotes" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_uid +msgid "Created by" +msgstr "Creado por" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_date +msgid "Created on" +msgstr "Creado en" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_description +msgid "Description" +msgstr "Descripción" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_display_name +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_display_name +msgid "Display Name" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:14 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Failed" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_id +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_id +msgid "ID" +msgstr "ID" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt___last_update +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote___last_update +msgid "Last Modified on" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_uid +msgid "Last Updated by" +msgstr "Ultima actualización por" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_date +msgid "Last Updated on" +msgstr "Ultima actualización en" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_remote +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_remote +msgid "Remote ID" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Successful" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:13 +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Successfull" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_login +msgid "Tried Login" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,help:auth_brute_force.field_res_banned_remote_active +msgid "Uncheck this box to unban the remote" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Without Success" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_authentication_attempt +msgid "res.authentication.attempt" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_banned_remote +msgid "res.banned.remote" +msgstr "" diff --git a/ext/3rd-party-addons/auth_brute_force/i18n/es_VE.po b/ext/3rd-party-addons/auth_brute_force/i18n/es_VE.po new file mode 100644 index 00000000..563535ea --- /dev/null +++ b/ext/3rd-party-addons/auth_brute_force/i18n/es_VE.po @@ -0,0 +1,162 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_brute_force +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Spanish (Venezuela) (https://www.transifex.com/oca/teams/23907/es_VE/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: es_VE\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_active +msgid "Active" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_attempt_date +msgid "Attempt Date" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_attempt_ids +msgid "Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_authentication_attempt +#: model:ir.ui.menu,name:auth_brute_force.menu_res_authentication_attempt +msgid "Authentication Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_result +msgid "Authentication Result" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_ban_date +msgid "Ban Date" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:15 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Banned" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_banned_remote +#: model:ir.ui.menu,name:auth_brute_force.menu_res_banned_remote +msgid "Banned Remotes" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_uid +msgid "Created by" +msgstr "Creado por" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_date +msgid "Created on" +msgstr "Creado en" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_description +msgid "Description" +msgstr "Descripción" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_display_name +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_display_name +msgid "Display Name" +msgstr "Mostrar nombre" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:14 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Failed" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_id +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_id +msgid "ID" +msgstr "ID" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt___last_update +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote___last_update +msgid "Last Modified on" +msgstr "Modificada por última vez" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_uid +msgid "Last Updated by" +msgstr "Última actualización realizada por" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_date +msgid "Last Updated on" +msgstr "Ultima actualizacion en" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_remote +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_remote +msgid "Remote ID" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Successful" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:13 +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Successfull" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_login +msgid "Tried Login" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,help:auth_brute_force.field_res_banned_remote_active +msgid "Uncheck this box to unban the remote" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Without Success" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_authentication_attempt +msgid "res.authentication.attempt" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_banned_remote +msgid "res.banned.remote" +msgstr "" diff --git a/ext/3rd-party-addons/auth_brute_force/i18n/et.po b/ext/3rd-party-addons/auth_brute_force/i18n/et.po new file mode 100644 index 00000000..40c5ebd8 --- /dev/null +++ b/ext/3rd-party-addons/auth_brute_force/i18n/et.po @@ -0,0 +1,162 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_brute_force +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Estonian (https://www.transifex.com/oca/teams/23907/et/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: et\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_active +msgid "Active" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_attempt_date +msgid "Attempt Date" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_attempt_ids +msgid "Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_authentication_attempt +#: model:ir.ui.menu,name:auth_brute_force.menu_res_authentication_attempt +msgid "Authentication Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_result +msgid "Authentication Result" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_ban_date +msgid "Ban Date" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:15 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Banned" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_banned_remote +#: model:ir.ui.menu,name:auth_brute_force.menu_res_banned_remote +msgid "Banned Remotes" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_uid +msgid "Created by" +msgstr "Loonud" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_date +msgid "Created on" +msgstr "Loodud" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_description +msgid "Description" +msgstr "Kirjeldus" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_display_name +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_display_name +msgid "Display Name" +msgstr "Näidatav nimi" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:14 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Failed" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_id +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_id +msgid "ID" +msgstr "ID" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt___last_update +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote___last_update +msgid "Last Modified on" +msgstr "Viimati muudetud" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_uid +msgid "Last Updated by" +msgstr "Viimati uuendatud" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_date +msgid "Last Updated on" +msgstr "Viimati uuendatud" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_remote +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_remote +msgid "Remote ID" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Successful" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:13 +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Successfull" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_login +msgid "Tried Login" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,help:auth_brute_force.field_res_banned_remote_active +msgid "Uncheck this box to unban the remote" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Without Success" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_authentication_attempt +msgid "res.authentication.attempt" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_banned_remote +msgid "res.banned.remote" +msgstr "" diff --git a/ext/3rd-party-addons/auth_brute_force/i18n/eu.po b/ext/3rd-party-addons/auth_brute_force/i18n/eu.po new file mode 100644 index 00000000..10aa5533 --- /dev/null +++ b/ext/3rd-party-addons/auth_brute_force/i18n/eu.po @@ -0,0 +1,162 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_brute_force +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Basque (https://www.transifex.com/oca/teams/23907/eu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: eu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_active +msgid "Active" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_attempt_date +msgid "Attempt Date" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_attempt_ids +msgid "Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_authentication_attempt +#: model:ir.ui.menu,name:auth_brute_force.menu_res_authentication_attempt +msgid "Authentication Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_result +msgid "Authentication Result" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_ban_date +msgid "Ban Date" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:15 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Banned" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_banned_remote +#: model:ir.ui.menu,name:auth_brute_force.menu_res_banned_remote +msgid "Banned Remotes" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_uid +msgid "Created by" +msgstr "Nork sortua" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_date +msgid "Created on" +msgstr "Created on" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_description +msgid "Description" +msgstr "Deskribapena" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_display_name +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_display_name +msgid "Display Name" +msgstr "Izena erakutsi" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:14 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Failed" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_id +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_id +msgid "ID" +msgstr "ID" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt___last_update +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote___last_update +msgid "Last Modified on" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_uid +msgid "Last Updated by" +msgstr "Last Updated by" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_date +msgid "Last Updated on" +msgstr "Last Updated on" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_remote +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_remote +msgid "Remote ID" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Successful" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:13 +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Successfull" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_login +msgid "Tried Login" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,help:auth_brute_force.field_res_banned_remote_active +msgid "Uncheck this box to unban the remote" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Without Success" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_authentication_attempt +msgid "res.authentication.attempt" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_banned_remote +msgid "res.banned.remote" +msgstr "" diff --git a/ext/3rd-party-addons/auth_brute_force/i18n/fa.po b/ext/3rd-party-addons/auth_brute_force/i18n/fa.po new file mode 100644 index 00000000..b5d4e8f3 --- /dev/null +++ b/ext/3rd-party-addons/auth_brute_force/i18n/fa.po @@ -0,0 +1,162 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_brute_force +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Persian (https://www.transifex.com/oca/teams/23907/fa/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: fa\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_active +msgid "Active" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_attempt_date +msgid "Attempt Date" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_attempt_ids +msgid "Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_authentication_attempt +#: model:ir.ui.menu,name:auth_brute_force.menu_res_authentication_attempt +msgid "Authentication Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_result +msgid "Authentication Result" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_ban_date +msgid "Ban Date" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:15 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Banned" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_banned_remote +#: model:ir.ui.menu,name:auth_brute_force.menu_res_banned_remote +msgid "Banned Remotes" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_uid +msgid "Created by" +msgstr "ایجاد شده توسط" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_date +msgid "Created on" +msgstr "ایجاد شده در" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_description +msgid "Description" +msgstr "توصیف" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_display_name +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_display_name +msgid "Display Name" +msgstr "نام نمایشی" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:14 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Failed" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_id +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_id +msgid "ID" +msgstr "شناسه" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt___last_update +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote___last_update +msgid "Last Modified on" +msgstr "تاریخ آخرین به‌روزرسانی" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_uid +msgid "Last Updated by" +msgstr "آخرین به روز رسانی توسط" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_date +msgid "Last Updated on" +msgstr "آخرین به روز رسانی در" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_remote +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_remote +msgid "Remote ID" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Successful" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:13 +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Successfull" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_login +msgid "Tried Login" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,help:auth_brute_force.field_res_banned_remote_active +msgid "Uncheck this box to unban the remote" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Without Success" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_authentication_attempt +msgid "res.authentication.attempt" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_banned_remote +msgid "res.banned.remote" +msgstr "" diff --git a/ext/3rd-party-addons/auth_brute_force/i18n/fi.po b/ext/3rd-party-addons/auth_brute_force/i18n/fi.po new file mode 100644 index 00000000..4c22a5b9 --- /dev/null +++ b/ext/3rd-party-addons/auth_brute_force/i18n/fi.po @@ -0,0 +1,162 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_brute_force +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Finnish (https://www.transifex.com/oca/teams/23907/fi/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: fi\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_active +msgid "Active" +msgstr "Aktiivinen" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_attempt_date +msgid "Attempt Date" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_attempt_ids +msgid "Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_authentication_attempt +#: model:ir.ui.menu,name:auth_brute_force.menu_res_authentication_attempt +msgid "Authentication Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_result +msgid "Authentication Result" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_ban_date +msgid "Ban Date" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:15 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Banned" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_banned_remote +#: model:ir.ui.menu,name:auth_brute_force.menu_res_banned_remote +msgid "Banned Remotes" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_uid +msgid "Created by" +msgstr "Luonut" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_date +msgid "Created on" +msgstr "Luotu" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_description +msgid "Description" +msgstr "Kuvaus" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_display_name +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_display_name +msgid "Display Name" +msgstr "Nimi" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:14 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Failed" +msgstr "Epäonnistunut" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_id +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_id +msgid "ID" +msgstr "ID" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt___last_update +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote___last_update +msgid "Last Modified on" +msgstr "Viimeksi muokattu" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_uid +msgid "Last Updated by" +msgstr "Viimeksi päivittänyt" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_date +msgid "Last Updated on" +msgstr "Viimeksi päivitetty" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_remote +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_remote +msgid "Remote ID" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Successful" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:13 +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Successfull" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_login +msgid "Tried Login" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,help:auth_brute_force.field_res_banned_remote_active +msgid "Uncheck this box to unban the remote" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Without Success" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_authentication_attempt +msgid "res.authentication.attempt" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_banned_remote +msgid "res.banned.remote" +msgstr "" diff --git a/ext/3rd-party-addons/auth_brute_force/i18n/fr.po b/ext/3rd-party-addons/auth_brute_force/i18n/fr.po new file mode 100644 index 00000000..cbb6851d --- /dev/null +++ b/ext/3rd-party-addons/auth_brute_force/i18n/fr.po @@ -0,0 +1,162 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_brute_force +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: French (https://www.transifex.com/oca/teams/23907/fr/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: fr\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_active +msgid "Active" +msgstr "Active" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_attempt_date +msgid "Attempt Date" +msgstr "Date de la tentative" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_attempt_ids +msgid "Attempts" +msgstr "Tentatives" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_authentication_attempt +#: model:ir.ui.menu,name:auth_brute_force.menu_res_authentication_attempt +msgid "Authentication Attempts" +msgstr "Tentative d'authentification" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_result +msgid "Authentication Result" +msgstr "Résultat de l'authentification" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_ban_date +msgid "Ban Date" +msgstr "Ban Date" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:15 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Banned" +msgstr "Banni" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_banned_remote +#: model:ir.ui.menu,name:auth_brute_force.menu_res_banned_remote +msgid "Banned Remotes" +msgstr "Clients distants bannis" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_uid +msgid "Created by" +msgstr "Créé par" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_date +msgid "Created on" +msgstr "Créé le" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_description +msgid "Description" +msgstr "Description" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_display_name +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_display_name +msgid "Display Name" +msgstr "Nom affiché" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:14 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Failed" +msgstr "Echoué" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_id +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_id +msgid "ID" +msgstr "ID" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt___last_update +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote___last_update +msgid "Last Modified on" +msgstr "Dernière modification le" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_uid +msgid "Last Updated by" +msgstr "Mis à jour par" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_date +msgid "Last Updated on" +msgstr "Mis à jour le" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_remote +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_remote +msgid "Remote ID" +msgstr "ID du client Distant" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Successful" +msgstr "Réussie" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:13 +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Successfull" +msgstr "Réussie" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_login +msgid "Tried Login" +msgstr "Idenfiant essayé" + +#. module: auth_brute_force +#: model:ir.model.fields,help:auth_brute_force.field_res_banned_remote_active +msgid "Uncheck this box to unban the remote" +msgstr "Décochez cette case afin d'annuler l'exclusion du client distant" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Without Success" +msgstr "Sans succès" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_authentication_attempt +msgid "res.authentication.attempt" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_banned_remote +msgid "res.banned.remote" +msgstr "" diff --git a/ext/3rd-party-addons/auth_brute_force/i18n/fr_CA.po b/ext/3rd-party-addons/auth_brute_force/i18n/fr_CA.po new file mode 100644 index 00000000..11cd0959 --- /dev/null +++ b/ext/3rd-party-addons/auth_brute_force/i18n/fr_CA.po @@ -0,0 +1,162 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_brute_force +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: French (Canada) (https://www.transifex.com/oca/teams/23907/fr_CA/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: fr_CA\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_active +msgid "Active" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_attempt_date +msgid "Attempt Date" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_attempt_ids +msgid "Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_authentication_attempt +#: model:ir.ui.menu,name:auth_brute_force.menu_res_authentication_attempt +msgid "Authentication Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_result +msgid "Authentication Result" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_ban_date +msgid "Ban Date" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:15 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Banned" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_banned_remote +#: model:ir.ui.menu,name:auth_brute_force.menu_res_banned_remote +msgid "Banned Remotes" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_uid +msgid "Created by" +msgstr "Créé par" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_date +msgid "Created on" +msgstr "Créé le" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_description +msgid "Description" +msgstr "Description" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_display_name +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_display_name +msgid "Display Name" +msgstr "Afficher le nom" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:14 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Failed" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_id +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_id +msgid "ID" +msgstr "Identifiant" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt___last_update +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote___last_update +msgid "Last Modified on" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_uid +msgid "Last Updated by" +msgstr "Dernière mise à jour par" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_date +msgid "Last Updated on" +msgstr "Dernière mise à jour le" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_remote +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_remote +msgid "Remote ID" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Successful" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:13 +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Successfull" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_login +msgid "Tried Login" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,help:auth_brute_force.field_res_banned_remote_active +msgid "Uncheck this box to unban the remote" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Without Success" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_authentication_attempt +msgid "res.authentication.attempt" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_banned_remote +msgid "res.banned.remote" +msgstr "" diff --git a/ext/3rd-party-addons/auth_brute_force/i18n/fr_CH.po b/ext/3rd-party-addons/auth_brute_force/i18n/fr_CH.po new file mode 100644 index 00000000..d0487e9b --- /dev/null +++ b/ext/3rd-party-addons/auth_brute_force/i18n/fr_CH.po @@ -0,0 +1,162 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_brute_force +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: French (Switzerland) (https://www.transifex.com/oca/teams/23907/fr_CH/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: fr_CH\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_active +msgid "Active" +msgstr "Actif" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_attempt_date +msgid "Attempt Date" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_attempt_ids +msgid "Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_authentication_attempt +#: model:ir.ui.menu,name:auth_brute_force.menu_res_authentication_attempt +msgid "Authentication Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_result +msgid "Authentication Result" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_ban_date +msgid "Ban Date" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:15 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Banned" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_banned_remote +#: model:ir.ui.menu,name:auth_brute_force.menu_res_banned_remote +msgid "Banned Remotes" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_uid +msgid "Created by" +msgstr "Créé par" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_date +msgid "Created on" +msgstr "Créé le" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_description +msgid "Description" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_display_name +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_display_name +msgid "Display Name" +msgstr "Nom affiché" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:14 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Failed" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_id +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_id +msgid "ID" +msgstr "ID" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt___last_update +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote___last_update +msgid "Last Modified on" +msgstr "Dernière modification le" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_uid +msgid "Last Updated by" +msgstr "Modifié par" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_date +msgid "Last Updated on" +msgstr "Modifié le" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_remote +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_remote +msgid "Remote ID" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Successful" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:13 +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Successfull" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_login +msgid "Tried Login" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,help:auth_brute_force.field_res_banned_remote_active +msgid "Uncheck this box to unban the remote" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Without Success" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_authentication_attempt +msgid "res.authentication.attempt" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_banned_remote +msgid "res.banned.remote" +msgstr "" diff --git a/ext/3rd-party-addons/auth_brute_force/i18n/gl.po b/ext/3rd-party-addons/auth_brute_force/i18n/gl.po new file mode 100644 index 00000000..eb998fac --- /dev/null +++ b/ext/3rd-party-addons/auth_brute_force/i18n/gl.po @@ -0,0 +1,162 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_brute_force +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Galician (https://www.transifex.com/oca/teams/23907/gl/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: gl\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_active +msgid "Active" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_attempt_date +msgid "Attempt Date" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_attempt_ids +msgid "Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_authentication_attempt +#: model:ir.ui.menu,name:auth_brute_force.menu_res_authentication_attempt +msgid "Authentication Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_result +msgid "Authentication Result" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_ban_date +msgid "Ban Date" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:15 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Banned" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_banned_remote +#: model:ir.ui.menu,name:auth_brute_force.menu_res_banned_remote +msgid "Banned Remotes" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_uid +msgid "Created by" +msgstr "Creado por" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_date +msgid "Created on" +msgstr "Creado en" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_description +msgid "Description" +msgstr "Descrición" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_display_name +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_display_name +msgid "Display Name" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:14 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Failed" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_id +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_id +msgid "ID" +msgstr "ID" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt___last_update +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote___last_update +msgid "Last Modified on" +msgstr "Última modificación" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_uid +msgid "Last Updated by" +msgstr "ültima actualización por" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_date +msgid "Last Updated on" +msgstr "Última actualización en" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_remote +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_remote +msgid "Remote ID" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Successful" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:13 +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Successfull" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_login +msgid "Tried Login" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,help:auth_brute_force.field_res_banned_remote_active +msgid "Uncheck this box to unban the remote" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Without Success" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_authentication_attempt +msgid "res.authentication.attempt" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_banned_remote +msgid "res.banned.remote" +msgstr "" diff --git a/ext/3rd-party-addons/auth_brute_force/i18n/gl_ES.po b/ext/3rd-party-addons/auth_brute_force/i18n/gl_ES.po new file mode 100644 index 00000000..8080c44e --- /dev/null +++ b/ext/3rd-party-addons/auth_brute_force/i18n/gl_ES.po @@ -0,0 +1,162 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_brute_force +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Galician (Spain) (https://www.transifex.com/oca/teams/23907/gl_ES/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: gl_ES\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_active +msgid "Active" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_attempt_date +msgid "Attempt Date" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_attempt_ids +msgid "Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_authentication_attempt +#: model:ir.ui.menu,name:auth_brute_force.menu_res_authentication_attempt +msgid "Authentication Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_result +msgid "Authentication Result" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_ban_date +msgid "Ban Date" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:15 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Banned" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_banned_remote +#: model:ir.ui.menu,name:auth_brute_force.menu_res_banned_remote +msgid "Banned Remotes" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_uid +msgid "Created by" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_date +msgid "Created on" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_description +msgid "Description" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_display_name +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_display_name +msgid "Display Name" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:14 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Failed" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_id +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_id +msgid "ID" +msgstr "ID" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt___last_update +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote___last_update +msgid "Last Modified on" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_uid +msgid "Last Updated by" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_date +msgid "Last Updated on" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_remote +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_remote +msgid "Remote ID" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Successful" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:13 +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Successfull" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_login +msgid "Tried Login" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,help:auth_brute_force.field_res_banned_remote_active +msgid "Uncheck this box to unban the remote" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Without Success" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_authentication_attempt +msgid "res.authentication.attempt" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_banned_remote +msgid "res.banned.remote" +msgstr "" diff --git a/ext/3rd-party-addons/auth_brute_force/i18n/he.po b/ext/3rd-party-addons/auth_brute_force/i18n/he.po new file mode 100644 index 00000000..b748172e --- /dev/null +++ b/ext/3rd-party-addons/auth_brute_force/i18n/he.po @@ -0,0 +1,162 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_brute_force +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Hebrew (https://www.transifex.com/oca/teams/23907/he/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: he\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_active +msgid "Active" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_attempt_date +msgid "Attempt Date" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_attempt_ids +msgid "Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_authentication_attempt +#: model:ir.ui.menu,name:auth_brute_force.menu_res_authentication_attempt +msgid "Authentication Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_result +msgid "Authentication Result" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_ban_date +msgid "Ban Date" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:15 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Banned" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_banned_remote +#: model:ir.ui.menu,name:auth_brute_force.menu_res_banned_remote +msgid "Banned Remotes" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_uid +msgid "Created by" +msgstr "נוצר על ידי" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_date +msgid "Created on" +msgstr "נוצר ב-" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_description +msgid "Description" +msgstr "תיאור" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_display_name +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_display_name +msgid "Display Name" +msgstr "השם המוצג" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:14 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Failed" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_id +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_id +msgid "ID" +msgstr "מזהה" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt___last_update +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote___last_update +msgid "Last Modified on" +msgstr "תאריך שינוי אחרון" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_uid +msgid "Last Updated by" +msgstr "עודכן לאחרונה על ידי" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_date +msgid "Last Updated on" +msgstr "עודכן לאחרונה על" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_remote +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_remote +msgid "Remote ID" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Successful" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:13 +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Successfull" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_login +msgid "Tried Login" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,help:auth_brute_force.field_res_banned_remote_active +msgid "Uncheck this box to unban the remote" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Without Success" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_authentication_attempt +msgid "res.authentication.attempt" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_banned_remote +msgid "res.banned.remote" +msgstr "" diff --git a/ext/3rd-party-addons/auth_brute_force/i18n/hr.po b/ext/3rd-party-addons/auth_brute_force/i18n/hr.po new file mode 100644 index 00000000..361f67bb --- /dev/null +++ b/ext/3rd-party-addons/auth_brute_force/i18n/hr.po @@ -0,0 +1,163 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_brute_force +# +# Translators: +# OCA Transbot , 2017 +# Bole , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: Bole , 2017\n" +"Language-Team: Croatian (https://www.transifex.com/oca/teams/23907/hr/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: hr\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_active +msgid "Active" +msgstr "Aktivno" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_attempt_date +msgid "Attempt Date" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_attempt_ids +msgid "Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_authentication_attempt +#: model:ir.ui.menu,name:auth_brute_force.menu_res_authentication_attempt +msgid "Authentication Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_result +msgid "Authentication Result" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_ban_date +msgid "Ban Date" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:15 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Banned" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_banned_remote +#: model:ir.ui.menu,name:auth_brute_force.menu_res_banned_remote +msgid "Banned Remotes" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_uid +msgid "Created by" +msgstr "Kreirao" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_date +msgid "Created on" +msgstr "Kreirano" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_description +msgid "Description" +msgstr "Opis" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_display_name +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_display_name +msgid "Display Name" +msgstr "Naziv " + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:14 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Failed" +msgstr "Neuspjelo" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_id +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_id +msgid "ID" +msgstr "ID" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt___last_update +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote___last_update +msgid "Last Modified on" +msgstr "Zadnje modificirano" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_uid +msgid "Last Updated by" +msgstr "Zadnji ažurirao" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_date +msgid "Last Updated on" +msgstr "Zadnje ažuriranje" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_remote +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_remote +msgid "Remote ID" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Successful" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:13 +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Successfull" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_login +msgid "Tried Login" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,help:auth_brute_force.field_res_banned_remote_active +msgid "Uncheck this box to unban the remote" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Without Success" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_authentication_attempt +msgid "res.authentication.attempt" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_banned_remote +msgid "res.banned.remote" +msgstr "" diff --git a/ext/3rd-party-addons/auth_brute_force/i18n/hr_HR.po b/ext/3rd-party-addons/auth_brute_force/i18n/hr_HR.po new file mode 100644 index 00000000..60841ce2 --- /dev/null +++ b/ext/3rd-party-addons/auth_brute_force/i18n/hr_HR.po @@ -0,0 +1,162 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_brute_force +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Croatian (Croatia) (https://www.transifex.com/oca/teams/23907/hr_HR/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: hr_HR\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_active +msgid "Active" +msgstr "Aktivan" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_attempt_date +msgid "Attempt Date" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_attempt_ids +msgid "Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_authentication_attempt +#: model:ir.ui.menu,name:auth_brute_force.menu_res_authentication_attempt +msgid "Authentication Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_result +msgid "Authentication Result" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_ban_date +msgid "Ban Date" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:15 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Banned" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_banned_remote +#: model:ir.ui.menu,name:auth_brute_force.menu_res_banned_remote +msgid "Banned Remotes" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_uid +msgid "Created by" +msgstr "Kreirao" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_date +msgid "Created on" +msgstr "Kreirano" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_description +msgid "Description" +msgstr "Opis" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_display_name +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_display_name +msgid "Display Name" +msgstr "Naziv" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:14 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Failed" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_id +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_id +msgid "ID" +msgstr "ID" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt___last_update +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote___last_update +msgid "Last Modified on" +msgstr "Zadnje modificirano" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_uid +msgid "Last Updated by" +msgstr "Zadnji ažurirao" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_date +msgid "Last Updated on" +msgstr "Zadnje ažurirano" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_remote +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_remote +msgid "Remote ID" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Successful" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:13 +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Successfull" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_login +msgid "Tried Login" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,help:auth_brute_force.field_res_banned_remote_active +msgid "Uncheck this box to unban the remote" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Without Success" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_authentication_attempt +msgid "res.authentication.attempt" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_banned_remote +msgid "res.banned.remote" +msgstr "" diff --git a/ext/3rd-party-addons/auth_brute_force/i18n/hu.po b/ext/3rd-party-addons/auth_brute_force/i18n/hu.po new file mode 100644 index 00000000..43996043 --- /dev/null +++ b/ext/3rd-party-addons/auth_brute_force/i18n/hu.po @@ -0,0 +1,162 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_brute_force +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Hungarian (https://www.transifex.com/oca/teams/23907/hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_active +msgid "Active" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_attempt_date +msgid "Attempt Date" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_attempt_ids +msgid "Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_authentication_attempt +#: model:ir.ui.menu,name:auth_brute_force.menu_res_authentication_attempt +msgid "Authentication Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_result +msgid "Authentication Result" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_ban_date +msgid "Ban Date" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:15 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Banned" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_banned_remote +#: model:ir.ui.menu,name:auth_brute_force.menu_res_banned_remote +msgid "Banned Remotes" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_uid +msgid "Created by" +msgstr "Készítette" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_date +msgid "Created on" +msgstr "Létrehozás dátuma" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_description +msgid "Description" +msgstr "Leírás" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_display_name +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_display_name +msgid "Display Name" +msgstr "Név megjelenítése" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:14 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Failed" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_id +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_id +msgid "ID" +msgstr "ID" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt___last_update +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote___last_update +msgid "Last Modified on" +msgstr "Utolsó frissítés dátuma" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_uid +msgid "Last Updated by" +msgstr "Utoljára frissítve, által" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_date +msgid "Last Updated on" +msgstr "Utoljára frissítve " + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_remote +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_remote +msgid "Remote ID" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Successful" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:13 +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Successfull" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_login +msgid "Tried Login" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,help:auth_brute_force.field_res_banned_remote_active +msgid "Uncheck this box to unban the remote" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Without Success" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_authentication_attempt +msgid "res.authentication.attempt" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_banned_remote +msgid "res.banned.remote" +msgstr "" diff --git a/ext/3rd-party-addons/auth_brute_force/i18n/id.po b/ext/3rd-party-addons/auth_brute_force/i18n/id.po new file mode 100644 index 00000000..f79b531d --- /dev/null +++ b/ext/3rd-party-addons/auth_brute_force/i18n/id.po @@ -0,0 +1,162 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_brute_force +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Indonesian (https://www.transifex.com/oca/teams/23907/id/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: id\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_active +msgid "Active" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_attempt_date +msgid "Attempt Date" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_attempt_ids +msgid "Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_authentication_attempt +#: model:ir.ui.menu,name:auth_brute_force.menu_res_authentication_attempt +msgid "Authentication Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_result +msgid "Authentication Result" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_ban_date +msgid "Ban Date" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:15 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Banned" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_banned_remote +#: model:ir.ui.menu,name:auth_brute_force.menu_res_banned_remote +msgid "Banned Remotes" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_uid +msgid "Created by" +msgstr "Dibuat oleh" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_date +msgid "Created on" +msgstr "Dibuat pada" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_description +msgid "Description" +msgstr "Keterangan" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_display_name +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_display_name +msgid "Display Name" +msgstr "Nama Tampilan" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:14 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Failed" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_id +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_id +msgid "ID" +msgstr "ID" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt___last_update +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote___last_update +msgid "Last Modified on" +msgstr "Terakhir Dimodifikasi pada" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_uid +msgid "Last Updated by" +msgstr "Diperbaharui oleh" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_date +msgid "Last Updated on" +msgstr "Diperbaharui pada" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_remote +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_remote +msgid "Remote ID" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Successful" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:13 +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Successfull" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_login +msgid "Tried Login" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,help:auth_brute_force.field_res_banned_remote_active +msgid "Uncheck this box to unban the remote" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Without Success" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_authentication_attempt +msgid "res.authentication.attempt" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_banned_remote +msgid "res.banned.remote" +msgstr "" diff --git a/ext/3rd-party-addons/auth_brute_force/i18n/it.po b/ext/3rd-party-addons/auth_brute_force/i18n/it.po new file mode 100644 index 00000000..6449b686 --- /dev/null +++ b/ext/3rd-party-addons/auth_brute_force/i18n/it.po @@ -0,0 +1,162 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_brute_force +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Italian (https://www.transifex.com/oca/teams/23907/it/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: it\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_active +msgid "Active" +msgstr "Attivo" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_attempt_date +msgid "Attempt Date" +msgstr "Data Tentativo" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_attempt_ids +msgid "Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_authentication_attempt +#: model:ir.ui.menu,name:auth_brute_force.menu_res_authentication_attempt +msgid "Authentication Attempts" +msgstr "Tentativi di Autenticazione" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_result +msgid "Authentication Result" +msgstr "Risultato dell'Autenticazione" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_ban_date +msgid "Ban Date" +msgstr "Data dell'Interdizione" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:15 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Banned" +msgstr "Interdetto" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_banned_remote +#: model:ir.ui.menu,name:auth_brute_force.menu_res_banned_remote +msgid "Banned Remotes" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_uid +msgid "Created by" +msgstr "Creato da" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_date +msgid "Created on" +msgstr "Creato il" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_description +msgid "Description" +msgstr "Descrizione" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_display_name +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_display_name +msgid "Display Name" +msgstr "Nome da visualizzare" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:14 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Failed" +msgstr "Fallita" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_id +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_id +msgid "ID" +msgstr "ID" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt___last_update +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote___last_update +msgid "Last Modified on" +msgstr "Ultima modifica il" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_uid +msgid "Last Updated by" +msgstr "Ultimo aggiornamento da" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_date +msgid "Last Updated on" +msgstr "Ultimo aggiornamento il" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_remote +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_remote +msgid "Remote ID" +msgstr "ID Remoto" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Successful" +msgstr "Ruiscito" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:13 +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Successfull" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_login +msgid "Tried Login" +msgstr "Tentata Autenticazione" + +#. module: auth_brute_force +#: model:ir.model.fields,help:auth_brute_force.field_res_banned_remote_active +msgid "Uncheck this box to unban the remote" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Without Success" +msgstr "Senza successo" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_authentication_attempt +msgid "res.authentication.attempt" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_banned_remote +msgid "res.banned.remote" +msgstr "" diff --git a/ext/3rd-party-addons/auth_brute_force/i18n/ja.po b/ext/3rd-party-addons/auth_brute_force/i18n/ja.po new file mode 100644 index 00000000..0e55ae58 --- /dev/null +++ b/ext/3rd-party-addons/auth_brute_force/i18n/ja.po @@ -0,0 +1,162 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_brute_force +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Japanese (https://www.transifex.com/oca/teams/23907/ja/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: ja\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_active +msgid "Active" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_attempt_date +msgid "Attempt Date" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_attempt_ids +msgid "Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_authentication_attempt +#: model:ir.ui.menu,name:auth_brute_force.menu_res_authentication_attempt +msgid "Authentication Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_result +msgid "Authentication Result" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_ban_date +msgid "Ban Date" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:15 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Banned" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_banned_remote +#: model:ir.ui.menu,name:auth_brute_force.menu_res_banned_remote +msgid "Banned Remotes" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_uid +msgid "Created by" +msgstr "作成者" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_date +msgid "Created on" +msgstr "作成日" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_description +msgid "Description" +msgstr "説明" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_display_name +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_display_name +msgid "Display Name" +msgstr "表示名" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:14 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Failed" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_id +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_id +msgid "ID" +msgstr "ID" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt___last_update +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote___last_update +msgid "Last Modified on" +msgstr "最終更新日" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_uid +msgid "Last Updated by" +msgstr "最終更新者" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_date +msgid "Last Updated on" +msgstr "最終更新日" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_remote +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_remote +msgid "Remote ID" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Successful" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:13 +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Successfull" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_login +msgid "Tried Login" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,help:auth_brute_force.field_res_banned_remote_active +msgid "Uncheck this box to unban the remote" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Without Success" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_authentication_attempt +msgid "res.authentication.attempt" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_banned_remote +msgid "res.banned.remote" +msgstr "" diff --git a/ext/3rd-party-addons/auth_brute_force/i18n/ko.po b/ext/3rd-party-addons/auth_brute_force/i18n/ko.po new file mode 100644 index 00000000..5c9ea8ce --- /dev/null +++ b/ext/3rd-party-addons/auth_brute_force/i18n/ko.po @@ -0,0 +1,162 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_brute_force +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Korean (https://www.transifex.com/oca/teams/23907/ko/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: ko\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_active +msgid "Active" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_attempt_date +msgid "Attempt Date" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_attempt_ids +msgid "Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_authentication_attempt +#: model:ir.ui.menu,name:auth_brute_force.menu_res_authentication_attempt +msgid "Authentication Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_result +msgid "Authentication Result" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_ban_date +msgid "Ban Date" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:15 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Banned" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_banned_remote +#: model:ir.ui.menu,name:auth_brute_force.menu_res_banned_remote +msgid "Banned Remotes" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_uid +msgid "Created by" +msgstr "작성자" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_date +msgid "Created on" +msgstr "작성일" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_description +msgid "Description" +msgstr "설명" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_display_name +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_display_name +msgid "Display Name" +msgstr "표시 이름" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:14 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Failed" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_id +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_id +msgid "ID" +msgstr "ID" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt___last_update +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote___last_update +msgid "Last Modified on" +msgstr "최근 수정" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_uid +msgid "Last Updated by" +msgstr "최근 갱신한 사람" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_date +msgid "Last Updated on" +msgstr "최근 갱신 날짜" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_remote +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_remote +msgid "Remote ID" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Successful" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:13 +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Successfull" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_login +msgid "Tried Login" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,help:auth_brute_force.field_res_banned_remote_active +msgid "Uncheck this box to unban the remote" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Without Success" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_authentication_attempt +msgid "res.authentication.attempt" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_banned_remote +msgid "res.banned.remote" +msgstr "" diff --git a/ext/3rd-party-addons/auth_brute_force/i18n/lt.po b/ext/3rd-party-addons/auth_brute_force/i18n/lt.po new file mode 100644 index 00000000..2f725fb8 --- /dev/null +++ b/ext/3rd-party-addons/auth_brute_force/i18n/lt.po @@ -0,0 +1,162 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_brute_force +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Lithuanian (https://www.transifex.com/oca/teams/23907/lt/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: lt\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_active +msgid "Active" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_attempt_date +msgid "Attempt Date" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_attempt_ids +msgid "Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_authentication_attempt +#: model:ir.ui.menu,name:auth_brute_force.menu_res_authentication_attempt +msgid "Authentication Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_result +msgid "Authentication Result" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_ban_date +msgid "Ban Date" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:15 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Banned" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_banned_remote +#: model:ir.ui.menu,name:auth_brute_force.menu_res_banned_remote +msgid "Banned Remotes" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_uid +msgid "Created by" +msgstr "Sukūrė" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_date +msgid "Created on" +msgstr "Sukurta" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_description +msgid "Description" +msgstr "Aprašymas" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_display_name +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_display_name +msgid "Display Name" +msgstr "Vaizduojamas pavadinimas" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:14 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Failed" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_id +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_id +msgid "ID" +msgstr "ID" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt___last_update +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote___last_update +msgid "Last Modified on" +msgstr "Paskutinį kartą keista" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_uid +msgid "Last Updated by" +msgstr "Paskutinį kartą atnaujino" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_date +msgid "Last Updated on" +msgstr "Paskutinį kartą atnaujinta" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_remote +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_remote +msgid "Remote ID" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Successful" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:13 +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Successfull" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_login +msgid "Tried Login" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,help:auth_brute_force.field_res_banned_remote_active +msgid "Uncheck this box to unban the remote" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Without Success" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_authentication_attempt +msgid "res.authentication.attempt" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_banned_remote +msgid "res.banned.remote" +msgstr "" diff --git a/ext/3rd-party-addons/auth_brute_force/i18n/lt_LT.po b/ext/3rd-party-addons/auth_brute_force/i18n/lt_LT.po new file mode 100644 index 00000000..7aca15b0 --- /dev/null +++ b/ext/3rd-party-addons/auth_brute_force/i18n/lt_LT.po @@ -0,0 +1,162 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_brute_force +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Lithuanian (Lithuania) (https://www.transifex.com/oca/teams/23907/lt_LT/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: lt_LT\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_active +msgid "Active" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_attempt_date +msgid "Attempt Date" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_attempt_ids +msgid "Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_authentication_attempt +#: model:ir.ui.menu,name:auth_brute_force.menu_res_authentication_attempt +msgid "Authentication Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_result +msgid "Authentication Result" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_ban_date +msgid "Ban Date" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:15 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Banned" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_banned_remote +#: model:ir.ui.menu,name:auth_brute_force.menu_res_banned_remote +msgid "Banned Remotes" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_uid +msgid "Created by" +msgstr "Sukūrė" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_date +msgid "Created on" +msgstr "Sukurta" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_description +msgid "Description" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_display_name +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_display_name +msgid "Display Name" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:14 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Failed" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_id +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_id +msgid "ID" +msgstr "ID" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt___last_update +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote___last_update +msgid "Last Modified on" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_uid +msgid "Last Updated by" +msgstr "Paskutinį kartą atnaujino" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_date +msgid "Last Updated on" +msgstr "Paskutinį kartą atnaujinta" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_remote +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_remote +msgid "Remote ID" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Successful" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:13 +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Successfull" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_login +msgid "Tried Login" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,help:auth_brute_force.field_res_banned_remote_active +msgid "Uncheck this box to unban the remote" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Without Success" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_authentication_attempt +msgid "res.authentication.attempt" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_banned_remote +msgid "res.banned.remote" +msgstr "" diff --git a/ext/3rd-party-addons/auth_brute_force/i18n/lv.po b/ext/3rd-party-addons/auth_brute_force/i18n/lv.po new file mode 100644 index 00000000..4bb0e03a --- /dev/null +++ b/ext/3rd-party-addons/auth_brute_force/i18n/lv.po @@ -0,0 +1,162 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_brute_force +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Latvian (https://www.transifex.com/oca/teams/23907/lv/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: lv\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\n" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_active +msgid "Active" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_attempt_date +msgid "Attempt Date" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_attempt_ids +msgid "Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_authentication_attempt +#: model:ir.ui.menu,name:auth_brute_force.menu_res_authentication_attempt +msgid "Authentication Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_result +msgid "Authentication Result" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_ban_date +msgid "Ban Date" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:15 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Banned" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_banned_remote +#: model:ir.ui.menu,name:auth_brute_force.menu_res_banned_remote +msgid "Banned Remotes" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_uid +msgid "Created by" +msgstr "Izveidoja" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_date +msgid "Created on" +msgstr "Izveidots" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_description +msgid "Description" +msgstr "Apraksts" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_display_name +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_display_name +msgid "Display Name" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:14 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Failed" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_id +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_id +msgid "ID" +msgstr "ID" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt___last_update +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote___last_update +msgid "Last Modified on" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_uid +msgid "Last Updated by" +msgstr "Pēdējo reizi atjaunoja" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_date +msgid "Last Updated on" +msgstr "Pēdējās izmaiņas" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_remote +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_remote +msgid "Remote ID" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Successful" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:13 +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Successfull" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_login +msgid "Tried Login" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,help:auth_brute_force.field_res_banned_remote_active +msgid "Uncheck this box to unban the remote" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Without Success" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_authentication_attempt +msgid "res.authentication.attempt" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_banned_remote +msgid "res.banned.remote" +msgstr "" diff --git a/ext/3rd-party-addons/auth_brute_force/i18n/mk.po b/ext/3rd-party-addons/auth_brute_force/i18n/mk.po new file mode 100644 index 00000000..f6588cc4 --- /dev/null +++ b/ext/3rd-party-addons/auth_brute_force/i18n/mk.po @@ -0,0 +1,162 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_brute_force +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Macedonian (https://www.transifex.com/oca/teams/23907/mk/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: mk\n" +"Plural-Forms: nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;\n" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_active +msgid "Active" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_attempt_date +msgid "Attempt Date" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_attempt_ids +msgid "Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_authentication_attempt +#: model:ir.ui.menu,name:auth_brute_force.menu_res_authentication_attempt +msgid "Authentication Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_result +msgid "Authentication Result" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_ban_date +msgid "Ban Date" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:15 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Banned" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_banned_remote +#: model:ir.ui.menu,name:auth_brute_force.menu_res_banned_remote +msgid "Banned Remotes" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_uid +msgid "Created by" +msgstr "Креирано од" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_date +msgid "Created on" +msgstr "Креирано на" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_description +msgid "Description" +msgstr "Опис" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_display_name +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_display_name +msgid "Display Name" +msgstr "Прикажи име" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:14 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Failed" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_id +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_id +msgid "ID" +msgstr "ID" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt___last_update +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote___last_update +msgid "Last Modified on" +msgstr "Последна промена на" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_uid +msgid "Last Updated by" +msgstr "Последно ажурирање од" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_date +msgid "Last Updated on" +msgstr "Последно ажурирање на" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_remote +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_remote +msgid "Remote ID" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Successful" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:13 +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Successfull" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_login +msgid "Tried Login" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,help:auth_brute_force.field_res_banned_remote_active +msgid "Uncheck this box to unban the remote" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Without Success" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_authentication_attempt +msgid "res.authentication.attempt" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_banned_remote +msgid "res.banned.remote" +msgstr "" diff --git a/ext/3rd-party-addons/auth_brute_force/i18n/mn.po b/ext/3rd-party-addons/auth_brute_force/i18n/mn.po new file mode 100644 index 00000000..94199113 --- /dev/null +++ b/ext/3rd-party-addons/auth_brute_force/i18n/mn.po @@ -0,0 +1,162 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_brute_force +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Mongolian (https://www.transifex.com/oca/teams/23907/mn/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: mn\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_active +msgid "Active" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_attempt_date +msgid "Attempt Date" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_attempt_ids +msgid "Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_authentication_attempt +#: model:ir.ui.menu,name:auth_brute_force.menu_res_authentication_attempt +msgid "Authentication Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_result +msgid "Authentication Result" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_ban_date +msgid "Ban Date" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:15 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Banned" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_banned_remote +#: model:ir.ui.menu,name:auth_brute_force.menu_res_banned_remote +msgid "Banned Remotes" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_uid +msgid "Created by" +msgstr "Үүсгэгч" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_date +msgid "Created on" +msgstr "Үүсгэсэн" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_description +msgid "Description" +msgstr "Тодорхойлолт" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_display_name +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_display_name +msgid "Display Name" +msgstr "Дэлгэцийн Нэр" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:14 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Failed" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_id +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_id +msgid "ID" +msgstr "ID" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt___last_update +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote___last_update +msgid "Last Modified on" +msgstr "Сүүлийн засвар хийсэн огноо" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_uid +msgid "Last Updated by" +msgstr "Сүүлийн засвар хийсэн" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_date +msgid "Last Updated on" +msgstr "Сүүлийн засвар хийсэн огноо" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_remote +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_remote +msgid "Remote ID" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Successful" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:13 +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Successfull" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_login +msgid "Tried Login" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,help:auth_brute_force.field_res_banned_remote_active +msgid "Uncheck this box to unban the remote" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Without Success" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_authentication_attempt +msgid "res.authentication.attempt" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_banned_remote +msgid "res.banned.remote" +msgstr "" diff --git a/ext/3rd-party-addons/auth_brute_force/i18n/nb.po b/ext/3rd-party-addons/auth_brute_force/i18n/nb.po new file mode 100644 index 00000000..f8173fec --- /dev/null +++ b/ext/3rd-party-addons/auth_brute_force/i18n/nb.po @@ -0,0 +1,162 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_brute_force +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Norwegian Bokmål (https://www.transifex.com/oca/teams/23907/nb/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: nb\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_active +msgid "Active" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_attempt_date +msgid "Attempt Date" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_attempt_ids +msgid "Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_authentication_attempt +#: model:ir.ui.menu,name:auth_brute_force.menu_res_authentication_attempt +msgid "Authentication Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_result +msgid "Authentication Result" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_ban_date +msgid "Ban Date" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:15 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Banned" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_banned_remote +#: model:ir.ui.menu,name:auth_brute_force.menu_res_banned_remote +msgid "Banned Remotes" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_uid +msgid "Created by" +msgstr "Opprettet av" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_date +msgid "Created on" +msgstr "Opprettet den" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_description +msgid "Description" +msgstr "Beskrivelse" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_display_name +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_display_name +msgid "Display Name" +msgstr "Visnings navn" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:14 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Failed" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_id +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_id +msgid "ID" +msgstr "ID" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt___last_update +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote___last_update +msgid "Last Modified on" +msgstr "Sist oppdatert " + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_uid +msgid "Last Updated by" +msgstr "Sist oppdatert av" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_date +msgid "Last Updated on" +msgstr "Sist oppdatert" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_remote +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_remote +msgid "Remote ID" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Successful" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:13 +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Successfull" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_login +msgid "Tried Login" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,help:auth_brute_force.field_res_banned_remote_active +msgid "Uncheck this box to unban the remote" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Without Success" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_authentication_attempt +msgid "res.authentication.attempt" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_banned_remote +msgid "res.banned.remote" +msgstr "" diff --git a/ext/3rd-party-addons/auth_brute_force/i18n/nb_NO.po b/ext/3rd-party-addons/auth_brute_force/i18n/nb_NO.po new file mode 100644 index 00000000..b290dfd2 --- /dev/null +++ b/ext/3rd-party-addons/auth_brute_force/i18n/nb_NO.po @@ -0,0 +1,162 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_brute_force +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Norwegian Bokmål (Norway) (https://www.transifex.com/oca/teams/23907/nb_NO/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: nb_NO\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_active +msgid "Active" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_attempt_date +msgid "Attempt Date" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_attempt_ids +msgid "Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_authentication_attempt +#: model:ir.ui.menu,name:auth_brute_force.menu_res_authentication_attempt +msgid "Authentication Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_result +msgid "Authentication Result" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_ban_date +msgid "Ban Date" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:15 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Banned" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_banned_remote +#: model:ir.ui.menu,name:auth_brute_force.menu_res_banned_remote +msgid "Banned Remotes" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_uid +msgid "Created by" +msgstr "Laget av" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_date +msgid "Created on" +msgstr "Laget den" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_description +msgid "Description" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_display_name +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_display_name +msgid "Display Name" +msgstr "Vis navn" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:14 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Failed" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_id +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_id +msgid "ID" +msgstr "ID" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt___last_update +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote___last_update +msgid "Last Modified on" +msgstr "Sist endret den" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_uid +msgid "Last Updated by" +msgstr "Sist oppdatert av" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_date +msgid "Last Updated on" +msgstr "Sist oppdatert den" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_remote +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_remote +msgid "Remote ID" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Successful" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:13 +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Successfull" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_login +msgid "Tried Login" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,help:auth_brute_force.field_res_banned_remote_active +msgid "Uncheck this box to unban the remote" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Without Success" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_authentication_attempt +msgid "res.authentication.attempt" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_banned_remote +msgid "res.banned.remote" +msgstr "" diff --git a/ext/3rd-party-addons/auth_brute_force/i18n/nl.po b/ext/3rd-party-addons/auth_brute_force/i18n/nl.po new file mode 100644 index 00000000..bdc486c5 --- /dev/null +++ b/ext/3rd-party-addons/auth_brute_force/i18n/nl.po @@ -0,0 +1,162 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_brute_force +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Dutch (https://www.transifex.com/oca/teams/23907/nl/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: nl\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_active +msgid "Active" +msgstr "Actief" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_attempt_date +msgid "Attempt Date" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_attempt_ids +msgid "Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_authentication_attempt +#: model:ir.ui.menu,name:auth_brute_force.menu_res_authentication_attempt +msgid "Authentication Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_result +msgid "Authentication Result" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_ban_date +msgid "Ban Date" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:15 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Banned" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_banned_remote +#: model:ir.ui.menu,name:auth_brute_force.menu_res_banned_remote +msgid "Banned Remotes" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_uid +msgid "Created by" +msgstr "Aangemaakt door" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_date +msgid "Created on" +msgstr "Aangemaakt op" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_description +msgid "Description" +msgstr "Omschrijving" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_display_name +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_display_name +msgid "Display Name" +msgstr "Te tonen naam" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:14 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Failed" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_id +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_id +msgid "ID" +msgstr "ID" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt___last_update +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote___last_update +msgid "Last Modified on" +msgstr "Laatst bijgewerkt op" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_uid +msgid "Last Updated by" +msgstr "Laatst bijgewerkt door" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_date +msgid "Last Updated on" +msgstr "Laatst bijgewerkt op" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_remote +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_remote +msgid "Remote ID" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Successful" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:13 +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Successfull" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_login +msgid "Tried Login" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,help:auth_brute_force.field_res_banned_remote_active +msgid "Uncheck this box to unban the remote" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Without Success" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_authentication_attempt +msgid "res.authentication.attempt" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_banned_remote +msgid "res.banned.remote" +msgstr "" diff --git a/ext/3rd-party-addons/auth_brute_force/i18n/nl_BE.po b/ext/3rd-party-addons/auth_brute_force/i18n/nl_BE.po new file mode 100644 index 00000000..2ac85c40 --- /dev/null +++ b/ext/3rd-party-addons/auth_brute_force/i18n/nl_BE.po @@ -0,0 +1,162 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_brute_force +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Dutch (Belgium) (https://www.transifex.com/oca/teams/23907/nl_BE/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: nl_BE\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_active +msgid "Active" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_attempt_date +msgid "Attempt Date" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_attempt_ids +msgid "Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_authentication_attempt +#: model:ir.ui.menu,name:auth_brute_force.menu_res_authentication_attempt +msgid "Authentication Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_result +msgid "Authentication Result" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_ban_date +msgid "Ban Date" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:15 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Banned" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_banned_remote +#: model:ir.ui.menu,name:auth_brute_force.menu_res_banned_remote +msgid "Banned Remotes" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_uid +msgid "Created by" +msgstr "Gemaakt door" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_date +msgid "Created on" +msgstr "Gemaakt op" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_description +msgid "Description" +msgstr "Omschrijving" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_display_name +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_display_name +msgid "Display Name" +msgstr "Schermnaam" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:14 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Failed" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_id +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_id +msgid "ID" +msgstr "ID" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt___last_update +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote___last_update +msgid "Last Modified on" +msgstr "Laatst Aangepast op" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_uid +msgid "Last Updated by" +msgstr "Laatst bijgewerkt door" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_date +msgid "Last Updated on" +msgstr "Laatst bijgewerkt op" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_remote +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_remote +msgid "Remote ID" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Successful" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:13 +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Successfull" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_login +msgid "Tried Login" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,help:auth_brute_force.field_res_banned_remote_active +msgid "Uncheck this box to unban the remote" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Without Success" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_authentication_attempt +msgid "res.authentication.attempt" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_banned_remote +msgid "res.banned.remote" +msgstr "" diff --git a/ext/3rd-party-addons/auth_brute_force/i18n/nl_NL.po b/ext/3rd-party-addons/auth_brute_force/i18n/nl_NL.po new file mode 100644 index 00000000..9ca78bce --- /dev/null +++ b/ext/3rd-party-addons/auth_brute_force/i18n/nl_NL.po @@ -0,0 +1,162 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_brute_force +# +# Translators: +# Peter Hageman , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: Peter Hageman , 2017\n" +"Language-Team: Dutch (Netherlands) (https://www.transifex.com/oca/teams/23907/nl_NL/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: nl_NL\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_active +msgid "Active" +msgstr "Actief" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_attempt_date +msgid "Attempt Date" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_attempt_ids +msgid "Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_authentication_attempt +#: model:ir.ui.menu,name:auth_brute_force.menu_res_authentication_attempt +msgid "Authentication Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_result +msgid "Authentication Result" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_ban_date +msgid "Ban Date" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:15 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Banned" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_banned_remote +#: model:ir.ui.menu,name:auth_brute_force.menu_res_banned_remote +msgid "Banned Remotes" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_uid +msgid "Created by" +msgstr "Aangemaakt door" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_date +msgid "Created on" +msgstr "Aangemaakt op" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_description +msgid "Description" +msgstr "Omschrijving" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_display_name +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_display_name +msgid "Display Name" +msgstr "weergavenaam" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:14 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Failed" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_id +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_id +msgid "ID" +msgstr "ID" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt___last_update +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote___last_update +msgid "Last Modified on" +msgstr "Laatst gewijzigd op" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_uid +msgid "Last Updated by" +msgstr "Laatst bijgewerkt door" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_date +msgid "Last Updated on" +msgstr "Laatst bijgewerkt op" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_remote +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_remote +msgid "Remote ID" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Successful" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:13 +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Successfull" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_login +msgid "Tried Login" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,help:auth_brute_force.field_res_banned_remote_active +msgid "Uncheck this box to unban the remote" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Without Success" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_authentication_attempt +msgid "res.authentication.attempt" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_banned_remote +msgid "res.banned.remote" +msgstr "" diff --git a/ext/3rd-party-addons/auth_brute_force/i18n/pl.po b/ext/3rd-party-addons/auth_brute_force/i18n/pl.po new file mode 100644 index 00000000..a390c4f4 --- /dev/null +++ b/ext/3rd-party-addons/auth_brute_force/i18n/pl.po @@ -0,0 +1,162 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_brute_force +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Polish (https://www.transifex.com/oca/teams/23907/pl/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: pl\n" +"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_active +msgid "Active" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_attempt_date +msgid "Attempt Date" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_attempt_ids +msgid "Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_authentication_attempt +#: model:ir.ui.menu,name:auth_brute_force.menu_res_authentication_attempt +msgid "Authentication Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_result +msgid "Authentication Result" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_ban_date +msgid "Ban Date" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:15 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Banned" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_banned_remote +#: model:ir.ui.menu,name:auth_brute_force.menu_res_banned_remote +msgid "Banned Remotes" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_uid +msgid "Created by" +msgstr "Utworzone przez" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_date +msgid "Created on" +msgstr "Utworzono" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_description +msgid "Description" +msgstr "Opis" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_display_name +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_display_name +msgid "Display Name" +msgstr "Wyświetlana nazwa " + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:14 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Failed" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_id +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_id +msgid "ID" +msgstr "ID" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt___last_update +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote___last_update +msgid "Last Modified on" +msgstr "Ostatnio modyfikowano" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_uid +msgid "Last Updated by" +msgstr "Ostatnio modyfikowane przez" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_date +msgid "Last Updated on" +msgstr "Ostatnia zmiana" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_remote +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_remote +msgid "Remote ID" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Successful" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:13 +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Successfull" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_login +msgid "Tried Login" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,help:auth_brute_force.field_res_banned_remote_active +msgid "Uncheck this box to unban the remote" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Without Success" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_authentication_attempt +msgid "res.authentication.attempt" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_banned_remote +msgid "res.banned.remote" +msgstr "" diff --git a/ext/3rd-party-addons/auth_brute_force/i18n/pt.po b/ext/3rd-party-addons/auth_brute_force/i18n/pt.po new file mode 100644 index 00000000..4f794a0f --- /dev/null +++ b/ext/3rd-party-addons/auth_brute_force/i18n/pt.po @@ -0,0 +1,162 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_brute_force +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Portuguese (https://www.transifex.com/oca/teams/23907/pt/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: pt\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_active +msgid "Active" +msgstr "Ativo" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_attempt_date +msgid "Attempt Date" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_attempt_ids +msgid "Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_authentication_attempt +#: model:ir.ui.menu,name:auth_brute_force.menu_res_authentication_attempt +msgid "Authentication Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_result +msgid "Authentication Result" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_ban_date +msgid "Ban Date" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:15 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Banned" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_banned_remote +#: model:ir.ui.menu,name:auth_brute_force.menu_res_banned_remote +msgid "Banned Remotes" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_uid +msgid "Created by" +msgstr "Criado por" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_date +msgid "Created on" +msgstr "Criado em" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_description +msgid "Description" +msgstr "Descrição" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_display_name +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_display_name +msgid "Display Name" +msgstr "Nome" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:14 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Failed" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_id +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_id +msgid "ID" +msgstr "ID" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt___last_update +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote___last_update +msgid "Last Modified on" +msgstr "Última Modificação Em" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_uid +msgid "Last Updated by" +msgstr "Última Modificação Por" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_date +msgid "Last Updated on" +msgstr "Última Atualização Em" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_remote +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_remote +msgid "Remote ID" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Successful" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:13 +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Successfull" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_login +msgid "Tried Login" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,help:auth_brute_force.field_res_banned_remote_active +msgid "Uncheck this box to unban the remote" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Without Success" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_authentication_attempt +msgid "res.authentication.attempt" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_banned_remote +msgid "res.banned.remote" +msgstr "" diff --git a/ext/3rd-party-addons/auth_brute_force/i18n/pt_BR.po b/ext/3rd-party-addons/auth_brute_force/i18n/pt_BR.po new file mode 100644 index 00000000..47566993 --- /dev/null +++ b/ext/3rd-party-addons/auth_brute_force/i18n/pt_BR.po @@ -0,0 +1,162 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_brute_force +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Portuguese (Brazil) (https://www.transifex.com/oca/teams/23907/pt_BR/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: pt_BR\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_active +msgid "Active" +msgstr "Ativo" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_attempt_date +msgid "Attempt Date" +msgstr "Data da tentativa" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_attempt_ids +msgid "Attempts" +msgstr "Tentativas" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_authentication_attempt +#: model:ir.ui.menu,name:auth_brute_force.menu_res_authentication_attempt +msgid "Authentication Attempts" +msgstr "Tentativas de autenticação" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_result +msgid "Authentication Result" +msgstr "Resultado da autenticação" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_ban_date +msgid "Ban Date" +msgstr "Proibido Data" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:15 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Banned" +msgstr "Proibido" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_banned_remote +#: model:ir.ui.menu,name:auth_brute_force.menu_res_banned_remote +msgid "Banned Remotes" +msgstr "Remotos proibidos" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_uid +msgid "Created by" +msgstr "Criado por" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_date +msgid "Created on" +msgstr "Criado em" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_description +msgid "Description" +msgstr "Descrição" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_display_name +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_display_name +msgid "Display Name" +msgstr "Nome para Mostrar" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:14 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Failed" +msgstr "Falhou" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_id +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_id +msgid "ID" +msgstr "Identificação" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt___last_update +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote___last_update +msgid "Last Modified on" +msgstr "Última atualização em" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_uid +msgid "Last Updated by" +msgstr "Última atualização por" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_date +msgid "Last Updated on" +msgstr "Última atualização em" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_remote +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_remote +msgid "Remote ID" +msgstr "Identificação Remota" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Successful" +msgstr "Sucesso" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:13 +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Successfull" +msgstr "Sucesso" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_login +msgid "Tried Login" +msgstr "Tentativa de Login" + +#. module: auth_brute_force +#: model:ir.model.fields,help:auth_brute_force.field_res_banned_remote_active +msgid "Uncheck this box to unban the remote" +msgstr "Desmarque esta caixa para desbloquear o remoto" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Without Success" +msgstr "Sem Sucesso" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_authentication_attempt +msgid "res.authentication.attempt" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_banned_remote +msgid "res.banned.remote" +msgstr "" diff --git a/ext/3rd-party-addons/auth_brute_force/i18n/pt_PT.po b/ext/3rd-party-addons/auth_brute_force/i18n/pt_PT.po new file mode 100644 index 00000000..b69b3ea5 --- /dev/null +++ b/ext/3rd-party-addons/auth_brute_force/i18n/pt_PT.po @@ -0,0 +1,162 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_brute_force +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Portuguese (Portugal) (https://www.transifex.com/oca/teams/23907/pt_PT/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: pt_PT\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_active +msgid "Active" +msgstr "Ativo" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_attempt_date +msgid "Attempt Date" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_attempt_ids +msgid "Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_authentication_attempt +#: model:ir.ui.menu,name:auth_brute_force.menu_res_authentication_attempt +msgid "Authentication Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_result +msgid "Authentication Result" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_ban_date +msgid "Ban Date" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:15 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Banned" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_banned_remote +#: model:ir.ui.menu,name:auth_brute_force.menu_res_banned_remote +msgid "Banned Remotes" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_uid +msgid "Created by" +msgstr "Criado por" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_date +msgid "Created on" +msgstr "Criado em" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_description +msgid "Description" +msgstr "Descrição" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_display_name +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_display_name +msgid "Display Name" +msgstr "Nome a Apresentar" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:14 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Failed" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_id +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_id +msgid "ID" +msgstr "ID" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt___last_update +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote___last_update +msgid "Last Modified on" +msgstr "Última Modificação Em" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_uid +msgid "Last Updated by" +msgstr "Última Atualização Por" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_date +msgid "Last Updated on" +msgstr "Última Atualização Em" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_remote +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_remote +msgid "Remote ID" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Successful" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:13 +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Successfull" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_login +msgid "Tried Login" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,help:auth_brute_force.field_res_banned_remote_active +msgid "Uncheck this box to unban the remote" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Without Success" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_authentication_attempt +msgid "res.authentication.attempt" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_banned_remote +msgid "res.banned.remote" +msgstr "" diff --git a/ext/3rd-party-addons/auth_brute_force/i18n/ro.po b/ext/3rd-party-addons/auth_brute_force/i18n/ro.po new file mode 100644 index 00000000..613ad942 --- /dev/null +++ b/ext/3rd-party-addons/auth_brute_force/i18n/ro.po @@ -0,0 +1,163 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_brute_force +# +# Translators: +# OCA Transbot , 2017 +# Daniel Schweiger , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: Daniel Schweiger , 2017\n" +"Language-Team: Romanian (https://www.transifex.com/oca/teams/23907/ro/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: ro\n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_active +msgid "Active" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_attempt_date +msgid "Attempt Date" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_attempt_ids +msgid "Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_authentication_attempt +#: model:ir.ui.menu,name:auth_brute_force.menu_res_authentication_attempt +msgid "Authentication Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_result +msgid "Authentication Result" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_ban_date +msgid "Ban Date" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:15 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Banned" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_banned_remote +#: model:ir.ui.menu,name:auth_brute_force.menu_res_banned_remote +msgid "Banned Remotes" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_uid +msgid "Created by" +msgstr "Creat de" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_date +msgid "Created on" +msgstr "Creat la" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_description +msgid "Description" +msgstr "Descriere" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_display_name +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_display_name +msgid "Display Name" +msgstr "Nume Afişat" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:14 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Failed" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_id +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_id +msgid "ID" +msgstr "ID" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt___last_update +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote___last_update +msgid "Last Modified on" +msgstr "Ultima actualizare în" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_uid +msgid "Last Updated by" +msgstr "Ultima actualizare făcută de" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_date +msgid "Last Updated on" +msgstr "Ultima actualizare la" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_remote +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_remote +msgid "Remote ID" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Successful" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:13 +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Successfull" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_login +msgid "Tried Login" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,help:auth_brute_force.field_res_banned_remote_active +msgid "Uncheck this box to unban the remote" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Without Success" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_authentication_attempt +msgid "res.authentication.attempt" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_banned_remote +msgid "res.banned.remote" +msgstr "" diff --git a/ext/3rd-party-addons/auth_brute_force/i18n/ru.po b/ext/3rd-party-addons/auth_brute_force/i18n/ru.po new file mode 100644 index 00000000..41675327 --- /dev/null +++ b/ext/3rd-party-addons/auth_brute_force/i18n/ru.po @@ -0,0 +1,162 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_brute_force +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Russian (https://www.transifex.com/oca/teams/23907/ru/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: ru\n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_active +msgid "Active" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_attempt_date +msgid "Attempt Date" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_attempt_ids +msgid "Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_authentication_attempt +#: model:ir.ui.menu,name:auth_brute_force.menu_res_authentication_attempt +msgid "Authentication Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_result +msgid "Authentication Result" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_ban_date +msgid "Ban Date" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:15 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Banned" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_banned_remote +#: model:ir.ui.menu,name:auth_brute_force.menu_res_banned_remote +msgid "Banned Remotes" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_uid +msgid "Created by" +msgstr "Создано" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_date +msgid "Created on" +msgstr "Создан" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_description +msgid "Description" +msgstr "Описание" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_display_name +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_display_name +msgid "Display Name" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:14 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Failed" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_id +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_id +msgid "ID" +msgstr "ID" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt___last_update +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote___last_update +msgid "Last Modified on" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_uid +msgid "Last Updated by" +msgstr "Последний раз обновлено" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_date +msgid "Last Updated on" +msgstr "Последний раз обновлено" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_remote +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_remote +msgid "Remote ID" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Successful" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:13 +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Successfull" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_login +msgid "Tried Login" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,help:auth_brute_force.field_res_banned_remote_active +msgid "Uncheck this box to unban the remote" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Without Success" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_authentication_attempt +msgid "res.authentication.attempt" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_banned_remote +msgid "res.banned.remote" +msgstr "" diff --git a/ext/3rd-party-addons/auth_brute_force/i18n/sk.po b/ext/3rd-party-addons/auth_brute_force/i18n/sk.po new file mode 100644 index 00000000..5509ced6 --- /dev/null +++ b/ext/3rd-party-addons/auth_brute_force/i18n/sk.po @@ -0,0 +1,162 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_brute_force +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Slovak (https://www.transifex.com/oca/teams/23907/sk/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: sk\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_active +msgid "Active" +msgstr "Aktívne" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_attempt_date +msgid "Attempt Date" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_attempt_ids +msgid "Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_authentication_attempt +#: model:ir.ui.menu,name:auth_brute_force.menu_res_authentication_attempt +msgid "Authentication Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_result +msgid "Authentication Result" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_ban_date +msgid "Ban Date" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:15 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Banned" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_banned_remote +#: model:ir.ui.menu,name:auth_brute_force.menu_res_banned_remote +msgid "Banned Remotes" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_uid +msgid "Created by" +msgstr "Vytvoril" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_date +msgid "Created on" +msgstr "Vytvorené" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_description +msgid "Description" +msgstr "Popis" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_display_name +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_display_name +msgid "Display Name" +msgstr "Zobraziť meno" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:14 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Failed" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_id +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_id +msgid "ID" +msgstr "ID" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt___last_update +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote___last_update +msgid "Last Modified on" +msgstr "Posledná modifikácia" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_uid +msgid "Last Updated by" +msgstr "Naposledy upravoval" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_date +msgid "Last Updated on" +msgstr "Naposledy upravované" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_remote +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_remote +msgid "Remote ID" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Successful" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:13 +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Successfull" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_login +msgid "Tried Login" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,help:auth_brute_force.field_res_banned_remote_active +msgid "Uncheck this box to unban the remote" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Without Success" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_authentication_attempt +msgid "res.authentication.attempt" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_banned_remote +msgid "res.banned.remote" +msgstr "" diff --git a/ext/3rd-party-addons/auth_brute_force/i18n/sl.po b/ext/3rd-party-addons/auth_brute_force/i18n/sl.po new file mode 100644 index 00000000..2482c11b --- /dev/null +++ b/ext/3rd-party-addons/auth_brute_force/i18n/sl.po @@ -0,0 +1,162 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_brute_force +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Slovenian (https://www.transifex.com/oca/teams/23907/sl/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: sl\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_active +msgid "Active" +msgstr "Aktivno" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_attempt_date +msgid "Attempt Date" +msgstr "Datum poskusa" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_attempt_ids +msgid "Attempts" +msgstr "Poskusi" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_authentication_attempt +#: model:ir.ui.menu,name:auth_brute_force.menu_res_authentication_attempt +msgid "Authentication Attempts" +msgstr "Poskusov overjanja" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_result +msgid "Authentication Result" +msgstr "Rezultati overjanja" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_ban_date +msgid "Ban Date" +msgstr "Datum prepovedi" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:15 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Banned" +msgstr "Prepovedan" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_banned_remote +#: model:ir.ui.menu,name:auth_brute_force.menu_res_banned_remote +msgid "Banned Remotes" +msgstr "Prepovedani oddaljeni" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_uid +msgid "Created by" +msgstr "Ustvaril" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_date +msgid "Created on" +msgstr "Ustvarjeno" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_description +msgid "Description" +msgstr "Opis" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_display_name +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_display_name +msgid "Display Name" +msgstr "Prikazni naziv" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:14 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Failed" +msgstr "Neuspešno" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_id +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_id +msgid "ID" +msgstr "ID" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt___last_update +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote___last_update +msgid "Last Modified on" +msgstr "Zadnjič spremenjeno" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_uid +msgid "Last Updated by" +msgstr "Zadnji posodobil" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_date +msgid "Last Updated on" +msgstr "Zadnjič posodobljeno" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_remote +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_remote +msgid "Remote ID" +msgstr "Oddaljeni ID" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Successful" +msgstr "Uspešno" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:13 +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Successfull" +msgstr "Uspešno" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_login +msgid "Tried Login" +msgstr "Poskusov prijave" + +#. module: auth_brute_force +#: model:ir.model.fields,help:auth_brute_force.field_res_banned_remote_active +msgid "Uncheck this box to unban the remote" +msgstr "Odstrani označbo za odstranitev prepovedi oddaljenih" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Without Success" +msgstr "Brez uspeha" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_authentication_attempt +msgid "res.authentication.attempt" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_banned_remote +msgid "res.banned.remote" +msgstr "" diff --git a/ext/3rd-party-addons/auth_brute_force/i18n/sr.po b/ext/3rd-party-addons/auth_brute_force/i18n/sr.po new file mode 100644 index 00000000..212b0dfd --- /dev/null +++ b/ext/3rd-party-addons/auth_brute_force/i18n/sr.po @@ -0,0 +1,162 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_brute_force +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Serbian (https://www.transifex.com/oca/teams/23907/sr/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: sr\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_active +msgid "Active" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_attempt_date +msgid "Attempt Date" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_attempt_ids +msgid "Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_authentication_attempt +#: model:ir.ui.menu,name:auth_brute_force.menu_res_authentication_attempt +msgid "Authentication Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_result +msgid "Authentication Result" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_ban_date +msgid "Ban Date" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:15 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Banned" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_banned_remote +#: model:ir.ui.menu,name:auth_brute_force.menu_res_banned_remote +msgid "Banned Remotes" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_uid +msgid "Created by" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_date +msgid "Created on" +msgstr "Kreiran" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_description +msgid "Description" +msgstr "Opis" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_display_name +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_display_name +msgid "Display Name" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:14 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Failed" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_id +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_id +msgid "ID" +msgstr "ID" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt___last_update +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote___last_update +msgid "Last Modified on" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_uid +msgid "Last Updated by" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_date +msgid "Last Updated on" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_remote +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_remote +msgid "Remote ID" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Successful" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:13 +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Successfull" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_login +msgid "Tried Login" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,help:auth_brute_force.field_res_banned_remote_active +msgid "Uncheck this box to unban the remote" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Without Success" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_authentication_attempt +msgid "res.authentication.attempt" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_banned_remote +msgid "res.banned.remote" +msgstr "" diff --git a/ext/3rd-party-addons/auth_brute_force/i18n/sr@latin.po b/ext/3rd-party-addons/auth_brute_force/i18n/sr@latin.po new file mode 100644 index 00000000..9a61e101 --- /dev/null +++ b/ext/3rd-party-addons/auth_brute_force/i18n/sr@latin.po @@ -0,0 +1,162 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_brute_force +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Serbian (Latin) (https://www.transifex.com/oca/teams/23907/sr@latin/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: sr@latin\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_active +msgid "Active" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_attempt_date +msgid "Attempt Date" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_attempt_ids +msgid "Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_authentication_attempt +#: model:ir.ui.menu,name:auth_brute_force.menu_res_authentication_attempt +msgid "Authentication Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_result +msgid "Authentication Result" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_ban_date +msgid "Ban Date" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:15 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Banned" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_banned_remote +#: model:ir.ui.menu,name:auth_brute_force.menu_res_banned_remote +msgid "Banned Remotes" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_uid +msgid "Created by" +msgstr "Kreirao" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_date +msgid "Created on" +msgstr "Kreiran" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_description +msgid "Description" +msgstr "Opis" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_display_name +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_display_name +msgid "Display Name" +msgstr "Ime za prikaz" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:14 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Failed" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_id +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_id +msgid "ID" +msgstr "ID" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt___last_update +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote___last_update +msgid "Last Modified on" +msgstr "Zadnja izmjena" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_uid +msgid "Last Updated by" +msgstr "Zadnja izmjena" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_date +msgid "Last Updated on" +msgstr "Zadnja izmjena" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_remote +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_remote +msgid "Remote ID" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Successful" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:13 +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Successfull" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_login +msgid "Tried Login" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,help:auth_brute_force.field_res_banned_remote_active +msgid "Uncheck this box to unban the remote" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Without Success" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_authentication_attempt +msgid "res.authentication.attempt" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_banned_remote +msgid "res.banned.remote" +msgstr "" diff --git a/ext/3rd-party-addons/auth_brute_force/i18n/sv.po b/ext/3rd-party-addons/auth_brute_force/i18n/sv.po new file mode 100644 index 00000000..397e5250 --- /dev/null +++ b/ext/3rd-party-addons/auth_brute_force/i18n/sv.po @@ -0,0 +1,162 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_brute_force +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Swedish (https://www.transifex.com/oca/teams/23907/sv/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: sv\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_active +msgid "Active" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_attempt_date +msgid "Attempt Date" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_attempt_ids +msgid "Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_authentication_attempt +#: model:ir.ui.menu,name:auth_brute_force.menu_res_authentication_attempt +msgid "Authentication Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_result +msgid "Authentication Result" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_ban_date +msgid "Ban Date" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:15 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Banned" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_banned_remote +#: model:ir.ui.menu,name:auth_brute_force.menu_res_banned_remote +msgid "Banned Remotes" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_uid +msgid "Created by" +msgstr "Skapad av" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_date +msgid "Created on" +msgstr "Skapad den" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_description +msgid "Description" +msgstr "Beskrivning" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_display_name +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_display_name +msgid "Display Name" +msgstr "Visa namn" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:14 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Failed" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_id +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_id +msgid "ID" +msgstr "ID" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt___last_update +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote___last_update +msgid "Last Modified on" +msgstr "Senast redigerad" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_uid +msgid "Last Updated by" +msgstr "Senast uppdaterad av" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_date +msgid "Last Updated on" +msgstr "Senast uppdaterad" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_remote +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_remote +msgid "Remote ID" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Successful" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:13 +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Successfull" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_login +msgid "Tried Login" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,help:auth_brute_force.field_res_banned_remote_active +msgid "Uncheck this box to unban the remote" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Without Success" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_authentication_attempt +msgid "res.authentication.attempt" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_banned_remote +msgid "res.banned.remote" +msgstr "" diff --git a/ext/3rd-party-addons/auth_brute_force/i18n/th.po b/ext/3rd-party-addons/auth_brute_force/i18n/th.po new file mode 100644 index 00000000..7cdca0b6 --- /dev/null +++ b/ext/3rd-party-addons/auth_brute_force/i18n/th.po @@ -0,0 +1,162 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_brute_force +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Thai (https://www.transifex.com/oca/teams/23907/th/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: th\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_active +msgid "Active" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_attempt_date +msgid "Attempt Date" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_attempt_ids +msgid "Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_authentication_attempt +#: model:ir.ui.menu,name:auth_brute_force.menu_res_authentication_attempt +msgid "Authentication Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_result +msgid "Authentication Result" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_ban_date +msgid "Ban Date" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:15 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Banned" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_banned_remote +#: model:ir.ui.menu,name:auth_brute_force.menu_res_banned_remote +msgid "Banned Remotes" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_uid +msgid "Created by" +msgstr "สร้างโดย" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_date +msgid "Created on" +msgstr "สร้างเมื่อ" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_description +msgid "Description" +msgstr "รายละเอียด" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_display_name +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_display_name +msgid "Display Name" +msgstr "ชื่อที่ใช้แสดง" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:14 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Failed" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_id +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_id +msgid "ID" +msgstr "รหัส" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt___last_update +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote___last_update +msgid "Last Modified on" +msgstr "แก้ไขครั้งสุดท้ายเมื่อ" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_uid +msgid "Last Updated by" +msgstr "อัพเดทครั้งสุดท้ายโดย" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_date +msgid "Last Updated on" +msgstr "อัพเดทครั้งสุดท้ายเมื่อ" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_remote +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_remote +msgid "Remote ID" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Successful" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:13 +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Successfull" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_login +msgid "Tried Login" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,help:auth_brute_force.field_res_banned_remote_active +msgid "Uncheck this box to unban the remote" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Without Success" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_authentication_attempt +msgid "res.authentication.attempt" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_banned_remote +msgid "res.banned.remote" +msgstr "" diff --git a/ext/3rd-party-addons/auth_brute_force/i18n/tr.po b/ext/3rd-party-addons/auth_brute_force/i18n/tr.po new file mode 100644 index 00000000..472e2fc4 --- /dev/null +++ b/ext/3rd-party-addons/auth_brute_force/i18n/tr.po @@ -0,0 +1,162 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_brute_force +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Turkish (https://www.transifex.com/oca/teams/23907/tr/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: tr\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_active +msgid "Active" +msgstr "Aktif" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_attempt_date +msgid "Attempt Date" +msgstr "Deneme Zamanı" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_attempt_ids +msgid "Attempts" +msgstr "Denemeler" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_authentication_attempt +#: model:ir.ui.menu,name:auth_brute_force.menu_res_authentication_attempt +msgid "Authentication Attempts" +msgstr "Kimlik doğrulaması girişimleri" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_result +msgid "Authentication Result" +msgstr "Doğrulama sonuçları" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_ban_date +msgid "Ban Date" +msgstr "Kara Liste Zamanı" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:15 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Banned" +msgstr "Kara Listede" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_banned_remote +#: model:ir.ui.menu,name:auth_brute_force.menu_res_banned_remote +msgid "Banned Remotes" +msgstr "Kara Listedeki Bilgisayarlar" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_uid +msgid "Created by" +msgstr "Oluşturan" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_date +msgid "Created on" +msgstr "Oluşturuldu" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_description +msgid "Description" +msgstr "Açıklama" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_display_name +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_display_name +msgid "Display Name" +msgstr "Görünen İsim" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:14 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Failed" +msgstr "Başarısız" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_id +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_id +msgid "ID" +msgstr "ID" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt___last_update +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote___last_update +msgid "Last Modified on" +msgstr "Son değişiklik" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_uid +msgid "Last Updated by" +msgstr "Son güncelleyen" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_date +msgid "Last Updated on" +msgstr "Son güncellenme" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_remote +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_remote +msgid "Remote ID" +msgstr "Uzak ID" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Successful" +msgstr "Başarılı" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:13 +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Successfull" +msgstr "Başarılı" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_login +msgid "Tried Login" +msgstr "Denenen Kullanıcı" + +#. module: auth_brute_force +#: model:ir.model.fields,help:auth_brute_force.field_res_banned_remote_active +msgid "Uncheck this box to unban the remote" +msgstr "Bu uzak bilgisayar kara listeden kaldırmak için seçimi kaldır" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Without Success" +msgstr "Başarısız" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_authentication_attempt +msgid "res.authentication.attempt" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_banned_remote +msgid "res.banned.remote" +msgstr "" diff --git a/ext/3rd-party-addons/auth_brute_force/i18n/tr_TR.po b/ext/3rd-party-addons/auth_brute_force/i18n/tr_TR.po new file mode 100644 index 00000000..11f22d4a --- /dev/null +++ b/ext/3rd-party-addons/auth_brute_force/i18n/tr_TR.po @@ -0,0 +1,162 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_brute_force +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Turkish (Turkey) (https://www.transifex.com/oca/teams/23907/tr_TR/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: tr_TR\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_active +msgid "Active" +msgstr "Etkin" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_attempt_date +msgid "Attempt Date" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_attempt_ids +msgid "Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_authentication_attempt +#: model:ir.ui.menu,name:auth_brute_force.menu_res_authentication_attempt +msgid "Authentication Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_result +msgid "Authentication Result" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_ban_date +msgid "Ban Date" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:15 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Banned" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_banned_remote +#: model:ir.ui.menu,name:auth_brute_force.menu_res_banned_remote +msgid "Banned Remotes" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_uid +msgid "Created by" +msgstr "Oluşturan" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_date +msgid "Created on" +msgstr "Oluşturulma tarihi" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_description +msgid "Description" +msgstr "Açıklama" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_display_name +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_display_name +msgid "Display Name" +msgstr "Görünen ad" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:14 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Failed" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_id +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_id +msgid "ID" +msgstr "Kimlik" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt___last_update +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote___last_update +msgid "Last Modified on" +msgstr "En son güncelleme tarihi" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_uid +msgid "Last Updated by" +msgstr "En son güncelleyen " + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_date +msgid "Last Updated on" +msgstr "En son güncelleme tarihi" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_remote +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_remote +msgid "Remote ID" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Successful" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:13 +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Successfull" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_login +msgid "Tried Login" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,help:auth_brute_force.field_res_banned_remote_active +msgid "Uncheck this box to unban the remote" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Without Success" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_authentication_attempt +msgid "res.authentication.attempt" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_banned_remote +msgid "res.banned.remote" +msgstr "" diff --git a/ext/3rd-party-addons/auth_brute_force/i18n/uk.po b/ext/3rd-party-addons/auth_brute_force/i18n/uk.po new file mode 100644 index 00000000..d5402214 --- /dev/null +++ b/ext/3rd-party-addons/auth_brute_force/i18n/uk.po @@ -0,0 +1,162 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_brute_force +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Ukrainian (https://www.transifex.com/oca/teams/23907/uk/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: uk\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_active +msgid "Active" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_attempt_date +msgid "Attempt Date" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_attempt_ids +msgid "Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_authentication_attempt +#: model:ir.ui.menu,name:auth_brute_force.menu_res_authentication_attempt +msgid "Authentication Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_result +msgid "Authentication Result" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_ban_date +msgid "Ban Date" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:15 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Banned" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_banned_remote +#: model:ir.ui.menu,name:auth_brute_force.menu_res_banned_remote +msgid "Banned Remotes" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_uid +msgid "Created by" +msgstr "Створив" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_date +msgid "Created on" +msgstr "Дата створення" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_description +msgid "Description" +msgstr "Опис" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_display_name +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_display_name +msgid "Display Name" +msgstr "Назва для відображення" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:14 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Failed" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_id +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_id +msgid "ID" +msgstr "ID" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt___last_update +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote___last_update +msgid "Last Modified on" +msgstr "Остання модифікація" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_uid +msgid "Last Updated by" +msgstr "Востаннє оновив" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_date +msgid "Last Updated on" +msgstr "Останнє оновлення" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_remote +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_remote +msgid "Remote ID" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Successful" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:13 +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Successfull" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_login +msgid "Tried Login" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,help:auth_brute_force.field_res_banned_remote_active +msgid "Uncheck this box to unban the remote" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Without Success" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_authentication_attempt +msgid "res.authentication.attempt" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_banned_remote +msgid "res.banned.remote" +msgstr "" diff --git a/ext/3rd-party-addons/auth_brute_force/i18n/vi.po b/ext/3rd-party-addons/auth_brute_force/i18n/vi.po new file mode 100644 index 00000000..aa1936fc --- /dev/null +++ b/ext/3rd-party-addons/auth_brute_force/i18n/vi.po @@ -0,0 +1,162 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_brute_force +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Vietnamese (https://www.transifex.com/oca/teams/23907/vi/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: vi\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_active +msgid "Active" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_attempt_date +msgid "Attempt Date" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_attempt_ids +msgid "Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_authentication_attempt +#: model:ir.ui.menu,name:auth_brute_force.menu_res_authentication_attempt +msgid "Authentication Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_result +msgid "Authentication Result" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_ban_date +msgid "Ban Date" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:15 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Banned" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_banned_remote +#: model:ir.ui.menu,name:auth_brute_force.menu_res_banned_remote +msgid "Banned Remotes" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_uid +msgid "Created by" +msgstr "Được tạo bởi" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_date +msgid "Created on" +msgstr "Được tạo vào" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_description +msgid "Description" +msgstr "Miêu tả" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_display_name +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_display_name +msgid "Display Name" +msgstr "Tên hiển thị" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:14 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Failed" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_id +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_id +msgid "ID" +msgstr "ID" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt___last_update +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote___last_update +msgid "Last Modified on" +msgstr "Sửa lần cuối vào" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_uid +msgid "Last Updated by" +msgstr "Last Updated by" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_date +msgid "Last Updated on" +msgstr "Cập nhật lần cuối vào" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_remote +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_remote +msgid "Remote ID" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Successful" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:13 +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Successfull" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_login +msgid "Tried Login" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,help:auth_brute_force.field_res_banned_remote_active +msgid "Uncheck this box to unban the remote" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Without Success" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_authentication_attempt +msgid "res.authentication.attempt" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_banned_remote +msgid "res.banned.remote" +msgstr "" diff --git a/ext/3rd-party-addons/auth_brute_force/i18n/vi_VN.po b/ext/3rd-party-addons/auth_brute_force/i18n/vi_VN.po new file mode 100644 index 00000000..e8e68e4b --- /dev/null +++ b/ext/3rd-party-addons/auth_brute_force/i18n/vi_VN.po @@ -0,0 +1,162 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_brute_force +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Vietnamese (Viet Nam) (https://www.transifex.com/oca/teams/23907/vi_VN/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: vi_VN\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_active +msgid "Active" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_attempt_date +msgid "Attempt Date" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_attempt_ids +msgid "Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_authentication_attempt +#: model:ir.ui.menu,name:auth_brute_force.menu_res_authentication_attempt +msgid "Authentication Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_result +msgid "Authentication Result" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_ban_date +msgid "Ban Date" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:15 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Banned" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_banned_remote +#: model:ir.ui.menu,name:auth_brute_force.menu_res_banned_remote +msgid "Banned Remotes" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_uid +msgid "Created by" +msgstr "Tạo bởi" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_date +msgid "Created on" +msgstr "Tạo vào" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_description +msgid "Description" +msgstr "Mô tả" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_display_name +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_display_name +msgid "Display Name" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:14 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Failed" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_id +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_id +msgid "ID" +msgstr "ID" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt___last_update +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote___last_update +msgid "Last Modified on" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_uid +msgid "Last Updated by" +msgstr "Cập nhật lần cuối bởi" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_date +msgid "Last Updated on" +msgstr "Cập nhật lần cuối vào" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_remote +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_remote +msgid "Remote ID" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Successful" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:13 +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Successfull" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_login +msgid "Tried Login" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,help:auth_brute_force.field_res_banned_remote_active +msgid "Uncheck this box to unban the remote" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Without Success" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_authentication_attempt +msgid "res.authentication.attempt" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_banned_remote +msgid "res.banned.remote" +msgstr "" diff --git a/ext/3rd-party-addons/auth_brute_force/i18n/zh_CN.po b/ext/3rd-party-addons/auth_brute_force/i18n/zh_CN.po new file mode 100644 index 00000000..d6517fc1 --- /dev/null +++ b/ext/3rd-party-addons/auth_brute_force/i18n/zh_CN.po @@ -0,0 +1,162 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_brute_force +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Chinese (China) (https://www.transifex.com/oca/teams/23907/zh_CN/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: zh_CN\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_active +msgid "Active" +msgstr "有效" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_attempt_date +msgid "Attempt Date" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_attempt_ids +msgid "Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_authentication_attempt +#: model:ir.ui.menu,name:auth_brute_force.menu_res_authentication_attempt +msgid "Authentication Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_result +msgid "Authentication Result" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_ban_date +msgid "Ban Date" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:15 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Banned" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_banned_remote +#: model:ir.ui.menu,name:auth_brute_force.menu_res_banned_remote +msgid "Banned Remotes" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_uid +msgid "Created by" +msgstr "创建者" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_date +msgid "Created on" +msgstr "创建时间" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_description +msgid "Description" +msgstr "说明" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_display_name +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_display_name +msgid "Display Name" +msgstr "显示名称" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:14 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Failed" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_id +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_id +msgid "ID" +msgstr "ID" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt___last_update +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote___last_update +msgid "Last Modified on" +msgstr "最后修改时间" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_uid +msgid "Last Updated by" +msgstr "最后更新者" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_date +msgid "Last Updated on" +msgstr "上次更新日期" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_remote +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_remote +msgid "Remote ID" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Successful" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:13 +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Successfull" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_login +msgid "Tried Login" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,help:auth_brute_force.field_res_banned_remote_active +msgid "Uncheck this box to unban the remote" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Without Success" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_authentication_attempt +msgid "res.authentication.attempt" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_banned_remote +msgid "res.banned.remote" +msgstr "" diff --git a/ext/3rd-party-addons/auth_brute_force/i18n/zh_TW.po b/ext/3rd-party-addons/auth_brute_force/i18n/zh_TW.po new file mode 100644 index 00000000..a031de41 --- /dev/null +++ b/ext/3rd-party-addons/auth_brute_force/i18n/zh_TW.po @@ -0,0 +1,162 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_brute_force +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Chinese (Taiwan) (https://www.transifex.com/oca/teams/23907/zh_TW/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: zh_TW\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_active +msgid "Active" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_attempt_date +msgid "Attempt Date" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_attempt_ids +msgid "Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_authentication_attempt +#: model:ir.ui.menu,name:auth_brute_force.menu_res_authentication_attempt +msgid "Authentication Attempts" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_result +msgid "Authentication Result" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_ban_date +msgid "Ban Date" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:15 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Banned" +msgstr "" + +#. module: auth_brute_force +#: model:ir.actions.act_window,name:auth_brute_force.action_res_banned_remote +#: model:ir.ui.menu,name:auth_brute_force.menu_res_banned_remote +msgid "Banned Remotes" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_uid +msgid "Created by" +msgstr "建立者" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_create_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_create_date +msgid "Created on" +msgstr "建立於" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_description +msgid "Description" +msgstr "說明" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_display_name +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_display_name +msgid "Display Name" +msgstr "顯示名稱" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:14 +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Failed" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_id +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_id +msgid "ID" +msgstr "編號" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt___last_update +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote___last_update +msgid "Last Modified on" +msgstr "最後修改:" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_uid +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_uid +msgid "Last Updated by" +msgstr "最後更新:" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_write_date +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_write_date +msgid "Last Updated on" +msgstr "最後更新於" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_remote +#: model:ir.model.fields,field_description:auth_brute_force.field_res_banned_remote_remote +msgid "Remote ID" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Successful" +msgstr "" + +#. module: auth_brute_force +#: code:addons/auth_brute_force/models/res_authentication_attempt.py:13 +#: selection:res.authentication.attempt,result:0 +#, python-format +msgid "Successfull" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,field_description:auth_brute_force.field_res_authentication_attempt_login +msgid "Tried Login" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model.fields,help:auth_brute_force.field_res_banned_remote_active +msgid "Uncheck this box to unban the remote" +msgstr "" + +#. module: auth_brute_force +#: model:ir.ui.view,arch_db:auth_brute_force.view_res_authentication_attempt_search +msgid "Without Success" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_authentication_attempt +msgid "res.authentication.attempt" +msgstr "" + +#. module: auth_brute_force +#: model:ir.model,name:auth_brute_force.model_res_banned_remote +msgid "res.banned.remote" +msgstr "" diff --git a/ext/3rd-party-addons/auth_brute_force/models/__init__.py b/ext/3rd-party-addons/auth_brute_force/models/__init__.py new file mode 100644 index 00000000..f5bb7766 --- /dev/null +++ b/ext/3rd-party-addons/auth_brute_force/models/__init__.py @@ -0,0 +1,4 @@ +# -*- encoding: utf-8 -*- + +from . import res_banned_remote +from . import res_authentication_attempt diff --git a/ext/3rd-party-addons/auth_brute_force/models/res_authentication_attempt.py b/ext/3rd-party-addons/auth_brute_force/models/res_authentication_attempt.py new file mode 100644 index 00000000..a7554281 --- /dev/null +++ b/ext/3rd-party-addons/auth_brute_force/models/res_authentication_attempt.py @@ -0,0 +1,36 @@ +# -*- coding: utf-8 -*- +# Copyright 2015 GRAP - Sylvain LE GAL +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from odoo import _, api, fields, models + + +class ResAuthenticationAttempt(models.Model): + _name = 'res.authentication.attempt' + _order = 'attempt_date desc' + + _ATTEMPT_RESULT = [ + ('successfull', _('Successfull')), + ('failed', _('Failed')), + ('banned', _('Banned')), + ] + + # Column Section + attempt_date = fields.Datetime(string='Attempt Date') + login = fields.Char(string='Tried Login') + remote = fields.Char(string='Remote ID') + result = fields.Selection( + selection=_ATTEMPT_RESULT, string='Authentication Result') + + # Custom Section + @api.model + def search_last_failed(self, remote): + last_ok = self.search( + [('result', '=', 'successfull'), ('remote', '=', remote)], + order='attempt_date desc', limit=1) + if last_ok: + return self.search([ + ('remote', '=', remote), + ('attempt_date', '>', last_ok.attempt_date)]) + else: + return self.search([('remote', '=', remote)]) diff --git a/ext/3rd-party-addons/auth_brute_force/models/res_banned_remote.py b/ext/3rd-party-addons/auth_brute_force/models/res_banned_remote.py new file mode 100644 index 00000000..a10caad4 --- /dev/null +++ b/ext/3rd-party-addons/auth_brute_force/models/res_banned_remote.py @@ -0,0 +1,45 @@ +# -*- coding: utf-8 -*- +# Copyright 2015 GRAP - Sylvain LE GAL +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +import urllib +import json + +from odoo import api, fields, models + + +class ResBannedRemote(models.Model): + _name = 'res.banned.remote' + _rec_name = 'remote' + + _GEOLOCALISATION_URL = "http://ip-api.com/json/{}" + + # Column Section + description = fields.Text( + string='Description', compute='_compute_description', store=True) + ban_date = fields.Datetime( + string='Ban Date', required=True, default=fields.Datetime.now) + remote = fields.Char(string='Remote ID', required=True) + active = fields.Boolean( + string='Active', help="Uncheck this box to unban the remote", + default=True) + attempt_ids = fields.Many2many( + comodel_name='res.authentication.attempt', string='Attempts', + compute='_compute_attempt_ids') + + # Compute Section + @api.multi + @api.depends('remote') + def _compute_description(self): + for item in self: + url = self._GEOLOCALISATION_URL.format(item.remote) + res = json.loads(urllib.urlopen(url).read()) + item.description = '' + for k, v in res.iteritems(): + item.description += '%s : %s\n' % (k, v) + + @api.multi + def _compute_attempt_ids(self): + for item in self: + attempt_obj = self.env['res.authentication.attempt'] + item.attempt_ids = attempt_obj.search_last_failed(item.remote) diff --git a/ext/3rd-party-addons/auth_brute_force/security/ir_model_access.yml b/ext/3rd-party-addons/auth_brute_force/security/ir_model_access.yml new file mode 100644 index 00000000..57919b77 --- /dev/null +++ b/ext/3rd-party-addons/auth_brute_force/security/ir_model_access.yml @@ -0,0 +1,28 @@ +# -*- encoding: utf-8 -*- +- !record {model: ir.model.access, id: access_res_authentication_attempt_all}: + model_id: model_res_authentication_attempt + name: Authentication Attempt All Users + perm_read: true + +- !record {model: ir.model.access, id: access_res_banned_remote_all}: + model_id: model_res_banned_remote + name: Banned Remote All Users + perm_read: true + +- !record {model: ir.model.access, id: access_res_authentication_attempt_manager}: + group_id: base.group_system + model_id: model_res_authentication_attempt + name: Authentication Attempt Manager + perm_create: true + perm_read: true + perm_write: true + perm_unlink: true + +- !record {model: ir.model.access, id: access_res_banned_remote_manager}: + group_id: base.group_system + model_id: model_res_banned_remote + name: Banned Remote Manager + perm_create: true + perm_read: true + perm_write: true + perm_unlink: true diff --git a/ext/3rd-party-addons/auth_brute_force/static/description/icon.png b/ext/3rd-party-addons/auth_brute_force/static/description/icon.png new file mode 100644 index 00000000..3a0328b5 Binary files /dev/null and b/ext/3rd-party-addons/auth_brute_force/static/description/icon.png differ diff --git a/ext/3rd-party-addons/auth_brute_force/static/description/screenshot_attempts_list.png b/ext/3rd-party-addons/auth_brute_force/static/description/screenshot_attempts_list.png new file mode 100644 index 00000000..7ee6f940 Binary files /dev/null and b/ext/3rd-party-addons/auth_brute_force/static/description/screenshot_attempts_list.png differ diff --git a/ext/3rd-party-addons/auth_brute_force/static/description/screenshot_custom_ban.png b/ext/3rd-party-addons/auth_brute_force/static/description/screenshot_custom_ban.png new file mode 100644 index 00000000..8607f640 Binary files /dev/null and b/ext/3rd-party-addons/auth_brute_force/static/description/screenshot_custom_ban.png differ diff --git a/ext/3rd-party-addons/auth_brute_force/views/action.xml b/ext/3rd-party-addons/auth_brute_force/views/action.xml new file mode 100644 index 00000000..ea7ac486 --- /dev/null +++ b/ext/3rd-party-addons/auth_brute_force/views/action.xml @@ -0,0 +1,21 @@ + + + + + + Authentication Attempts + res.authentication.attempt + form + tree,graph + {"search_default_filter_no_success":1} + + + + Banned Remotes + res.banned.remote + form + tree,form + + + diff --git a/ext/3rd-party-addons/auth_brute_force/views/menu.xml b/ext/3rd-party-addons/auth_brute_force/views/menu.xml new file mode 100644 index 00000000..cd246ae3 --- /dev/null +++ b/ext/3rd-party-addons/auth_brute_force/views/menu.xml @@ -0,0 +1,14 @@ + + + + + + + + + diff --git a/ext/3rd-party-addons/auth_brute_force/views/view.xml b/ext/3rd-party-addons/auth_brute_force/views/view.xml new file mode 100644 index 00000000..4865978d --- /dev/null +++ b/ext/3rd-party-addons/auth_brute_force/views/view.xml @@ -0,0 +1,80 @@ + + + + + + + res.authentication.attempt + + + + + + + + + + + + res.authentication.attempt + + + + + + + + + + res.authentication.attempt + + + + + + + + + + + + + + res.banned.remote + + + + + + + + + + + res.banned.remote + +
+ + + + + + + + + +
+
+
+ + + res.banned.remote + + + + + + + +
diff --git a/ext/3rd-party-addons/auth_session_timeout/README.rst b/ext/3rd-party-addons/auth_session_timeout/README.rst new file mode 100644 index 00000000..63325502 --- /dev/null +++ b/ext/3rd-party-addons/auth_session_timeout/README.rst @@ -0,0 +1,47 @@ +.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg + :alt: License: AGPL-3 + +Inactive Sessions Timeout +========================= + +This module was written to be able to kill(logout) all inactive sessions since +a given delay. On each request the server checks if the session is yet valid +regarding the expiration delay. If not a clean logout is operated. + +Configuration +============= + +Two system parameters are available: + +* inactive_session_time_out_delay: validity of a session in seconds (default = 2 Hours) +* inactive_session_time_out_ignored_url: technical urls where the check does not occur + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues `_. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us smashing it by providing a detailed and welcomed feedback +`here `_. + +Credits +======= + +Contributors +------------ + +* Cédric Pigeon +* Dhinesh D + +Maintainer +---------- + +.. image:: http://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: http://odoo-community.org + +This module is maintained by the OCA. + +OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use. + +To contribute to this module, please visit http://odoo-community.org. diff --git a/ext/3rd-party-addons/auth_session_timeout/__init__.py b/ext/3rd-party-addons/auth_session_timeout/__init__.py new file mode 100644 index 00000000..9b1fb35b --- /dev/null +++ b/ext/3rd-party-addons/auth_session_timeout/__init__.py @@ -0,0 +1,6 @@ +# -*- coding: utf-8 -*- +# (c) 2015 ACSONE SA/NV, Dhinesh D + +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from . import models diff --git a/ext/3rd-party-addons/auth_session_timeout/__manifest__.py b/ext/3rd-party-addons/auth_session_timeout/__manifest__.py new file mode 100644 index 00000000..5b145240 --- /dev/null +++ b/ext/3rd-party-addons/auth_session_timeout/__manifest__.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +# (c) 2015 ACSONE SA/NV, Dhinesh D + +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +{ + 'name': "Inactive Sessions Timeout", + + 'summary': """ + This module disable all inactive sessions since a given delay""", + + 'author': "ACSONE SA/NV, Dhinesh D, Odoo Community Association (OCA)", + 'maintainer': 'Odoo Community Association (OCA)', + 'website': "http://acsone.eu", + + 'category': 'Tools', + 'version': '9.0.1.0.0', + 'license': 'AGPL-3', + + 'depends': [ + 'base', + ], + + 'data': [ + 'data/ir_config_parameter_data.xml' + ], + 'installable': False, +} diff --git a/ext/3rd-party-addons/auth_session_timeout/data/ir_config_parameter_data.xml b/ext/3rd-party-addons/auth_session_timeout/data/ir_config_parameter_data.xml new file mode 100644 index 00000000..96b0194b --- /dev/null +++ b/ext/3rd-party-addons/auth_session_timeout/data/ir_config_parameter_data.xml @@ -0,0 +1,21 @@ + + + + + + + inactive_session_time_out_delay + 7200 + + + + + + inactive_session_time_out_ignored_url + /calendar/notify,/longpolling/poll + + + diff --git a/ext/3rd-party-addons/auth_session_timeout/i18n/de.po b/ext/3rd-party-addons/auth_session_timeout/i18n/de.po new file mode 100644 index 00000000..e5e60a5e --- /dev/null +++ b/ext/3rd-party-addons/auth_session_timeout/i18n/de.po @@ -0,0 +1,23 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_session_timeout +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: server-tools (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-09-29 11:14+0000\n" +"PO-Revision-Date: 2015-09-18 13:55+0000\n" +"Last-Translator: <>\n" +"Language-Team: German (http://www.transifex.com/oca/OCA-server-tools-8-0/language/de/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: de\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: auth_session_timeout +#: model:ir.model,name:auth_session_timeout.model_res_users +msgid "Users" +msgstr "Benutzer" diff --git a/ext/3rd-party-addons/auth_session_timeout/i18n/es.po b/ext/3rd-party-addons/auth_session_timeout/i18n/es.po new file mode 100644 index 00000000..07281735 --- /dev/null +++ b/ext/3rd-party-addons/auth_session_timeout/i18n/es.po @@ -0,0 +1,23 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_session_timeout +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: server-tools (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-09-29 11:14+0000\n" +"PO-Revision-Date: 2015-09-18 13:55+0000\n" +"Last-Translator: <>\n" +"Language-Team: Spanish (http://www.transifex.com/oca/OCA-server-tools-8-0/language/es/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: es\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: auth_session_timeout +#: model:ir.model,name:auth_session_timeout.model_res_users +msgid "Users" +msgstr "Usuarios" diff --git a/ext/3rd-party-addons/auth_session_timeout/i18n/fr.po b/ext/3rd-party-addons/auth_session_timeout/i18n/fr.po new file mode 100644 index 00000000..2f129e4e --- /dev/null +++ b/ext/3rd-party-addons/auth_session_timeout/i18n/fr.po @@ -0,0 +1,23 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_session_timeout +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: server-tools (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-09-29 11:14+0000\n" +"PO-Revision-Date: 2015-09-18 13:55+0000\n" +"Last-Translator: <>\n" +"Language-Team: French (http://www.transifex.com/oca/OCA-server-tools-8-0/language/fr/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: fr\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. module: auth_session_timeout +#: model:ir.model,name:auth_session_timeout.model_res_users +msgid "Users" +msgstr "Utilisateurs" diff --git a/ext/3rd-party-addons/auth_session_timeout/i18n/hr.po b/ext/3rd-party-addons/auth_session_timeout/i18n/hr.po new file mode 100644 index 00000000..e3013693 --- /dev/null +++ b/ext/3rd-party-addons/auth_session_timeout/i18n/hr.po @@ -0,0 +1,29 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_session_timeout +# +# Translators: +# Bole , 2016 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 9.0c\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-08-31 11:58+0000\n" +"PO-Revision-Date: 2016-08-31 11:58+0000\n" +"Last-Translator: Bole , 2016\n" +"Language-Team: Croatian (https://www.transifex.com/oca/teams/23907/hr/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: hr\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" + +#. module: auth_session_timeout +#: model:ir.model,name:auth_session_timeout.model_res_users +msgid "Users" +msgstr "Korisnici" + +#. module: auth_session_timeout +#: model:ir.model,name:auth_session_timeout.model_ir_config_parameter +msgid "ir.config_parameter" +msgstr "" diff --git a/ext/3rd-party-addons/auth_session_timeout/i18n/hr_HR.po b/ext/3rd-party-addons/auth_session_timeout/i18n/hr_HR.po new file mode 100644 index 00000000..0889b668 --- /dev/null +++ b/ext/3rd-party-addons/auth_session_timeout/i18n/hr_HR.po @@ -0,0 +1,29 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_session_timeout +# +# Translators: +# Bole , 2016 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 9.0c\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-08-31 11:58+0000\n" +"PO-Revision-Date: 2016-08-31 11:58+0000\n" +"Last-Translator: Bole , 2016\n" +"Language-Team: Croatian (Croatia) (https://www.transifex.com/oca/teams/23907/hr_HR/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: hr_HR\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" + +#. module: auth_session_timeout +#: model:ir.model,name:auth_session_timeout.model_res_users +msgid "Users" +msgstr "Korisnici" + +#. module: auth_session_timeout +#: model:ir.model,name:auth_session_timeout.model_ir_config_parameter +msgid "ir.config_parameter" +msgstr "" diff --git a/ext/3rd-party-addons/auth_session_timeout/i18n/it.po b/ext/3rd-party-addons/auth_session_timeout/i18n/it.po new file mode 100644 index 00000000..e4c6a51d --- /dev/null +++ b/ext/3rd-party-addons/auth_session_timeout/i18n/it.po @@ -0,0 +1,29 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_session_timeout +# +# Translators: +# OCA Transbot , 2016 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 9.0c\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-08-31 11:58+0000\n" +"PO-Revision-Date: 2016-08-31 11:58+0000\n" +"Last-Translator: OCA Transbot , 2016\n" +"Language-Team: Italian (https://www.transifex.com/oca/teams/23907/it/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: it\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: auth_session_timeout +#: model:ir.model,name:auth_session_timeout.model_res_users +msgid "Users" +msgstr "Utenti" + +#. module: auth_session_timeout +#: model:ir.model,name:auth_session_timeout.model_ir_config_parameter +msgid "ir.config_parameter" +msgstr "" diff --git a/ext/3rd-party-addons/auth_session_timeout/i18n/pt_BR.po b/ext/3rd-party-addons/auth_session_timeout/i18n/pt_BR.po new file mode 100644 index 00000000..14d4f29b --- /dev/null +++ b/ext/3rd-party-addons/auth_session_timeout/i18n/pt_BR.po @@ -0,0 +1,23 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_session_timeout +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: server-tools (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-09-29 11:14+0000\n" +"PO-Revision-Date: 2015-09-18 13:55+0000\n" +"Last-Translator: <>\n" +"Language-Team: Portuguese (Brazil) (http://www.transifex.com/oca/OCA-server-tools-8-0/language/pt_BR/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: pt_BR\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. module: auth_session_timeout +#: model:ir.model,name:auth_session_timeout.model_res_users +msgid "Users" +msgstr "Usuários" diff --git a/ext/3rd-party-addons/auth_session_timeout/i18n/sl.po b/ext/3rd-party-addons/auth_session_timeout/i18n/sl.po new file mode 100644 index 00000000..84ff30b4 --- /dev/null +++ b/ext/3rd-party-addons/auth_session_timeout/i18n/sl.po @@ -0,0 +1,23 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_session_timeout +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: server-tools (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-09-29 11:14+0000\n" +"PO-Revision-Date: 2015-09-24 11:47+0000\n" +"Last-Translator: Matjaž Mozetič \n" +"Language-Team: Slovenian (http://www.transifex.com/oca/OCA-server-tools-8-0/language/sl/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: sl\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n" + +#. module: auth_session_timeout +#: model:ir.model,name:auth_session_timeout.model_res_users +msgid "Users" +msgstr "Uporabniki" diff --git a/ext/3rd-party-addons/auth_session_timeout/i18n/tr.po b/ext/3rd-party-addons/auth_session_timeout/i18n/tr.po new file mode 100644 index 00000000..d07eda6b --- /dev/null +++ b/ext/3rd-party-addons/auth_session_timeout/i18n/tr.po @@ -0,0 +1,29 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_session_timeout +# +# Translators: +# OCA Transbot , 2016 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 9.0c\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-08-31 11:58+0000\n" +"PO-Revision-Date: 2016-08-31 11:58+0000\n" +"Last-Translator: OCA Transbot , 2016\n" +"Language-Team: Turkish (https://www.transifex.com/oca/teams/23907/tr/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: tr\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. module: auth_session_timeout +#: model:ir.model,name:auth_session_timeout.model_res_users +msgid "Users" +msgstr "Kullanıcılar" + +#. module: auth_session_timeout +#: model:ir.model,name:auth_session_timeout.model_ir_config_parameter +msgid "ir.config_parameter" +msgstr "" diff --git a/ext/3rd-party-addons/auth_session_timeout/i18n/zh_CN.po b/ext/3rd-party-addons/auth_session_timeout/i18n/zh_CN.po new file mode 100644 index 00000000..ee2b44cd --- /dev/null +++ b/ext/3rd-party-addons/auth_session_timeout/i18n/zh_CN.po @@ -0,0 +1,29 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_session_timeout +# +# Translators: +# Jeffery Chenn , 2016 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 9.0c\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-08-31 11:58+0000\n" +"PO-Revision-Date: 2016-08-31 11:58+0000\n" +"Last-Translator: Jeffery Chenn , 2016\n" +"Language-Team: Chinese (China) (https://www.transifex.com/oca/teams/23907/zh_CN/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: zh_CN\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. module: auth_session_timeout +#: model:ir.model,name:auth_session_timeout.model_res_users +msgid "Users" +msgstr "用户" + +#. module: auth_session_timeout +#: model:ir.model,name:auth_session_timeout.model_ir_config_parameter +msgid "ir.config_parameter" +msgstr "" diff --git a/ext/3rd-party-addons/auth_session_timeout/models/__init__.py b/ext/3rd-party-addons/auth_session_timeout/models/__init__.py new file mode 100644 index 00000000..0c606303 --- /dev/null +++ b/ext/3rd-party-addons/auth_session_timeout/models/__init__.py @@ -0,0 +1,7 @@ +# -*- coding: utf-8 -*- +# (c) 2015 ACSONE SA/NV, Dhinesh D + +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from . import res_users +from . import ir_config_parameter diff --git a/ext/3rd-party-addons/auth_session_timeout/models/ir_config_parameter.py b/ext/3rd-party-addons/auth_session_timeout/models/ir_config_parameter.py new file mode 100644 index 00000000..69a7003f --- /dev/null +++ b/ext/3rd-party-addons/auth_session_timeout/models/ir_config_parameter.py @@ -0,0 +1,36 @@ +# -*- coding: utf-8 -*- +# (c) 2015 ACSONE SA/NV, Dhinesh D + +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from openerp import models, api, tools, SUPERUSER_ID + + +DELAY_KEY = 'inactive_session_time_out_delay' +IGNORED_PATH_KEY = 'inactive_session_time_out_ignored_url' + + +class IrConfigParameter(models.Model): + _inherit = 'ir.config_parameter' + + @tools.ormcache(skiparg=0) + def get_session_parameters(self, db): + param_model = self.pool['ir.config_parameter'] + cr = self.pool.cursor() + delay = False + urls = [] + try: + delay = int(param_model.get_param( + cr, SUPERUSER_ID, DELAY_KEY, 7200)) + urls = param_model.get_param( + cr, SUPERUSER_ID, IGNORED_PATH_KEY, '').split(',') + finally: + cr.close() + return delay, urls + + @api.multi + def write(self, vals, context=None): + res = super(IrConfigParameter, self).write(vals) + if self.key in [DELAY_KEY, IGNORED_PATH_KEY]: + self.get_session_parameters.clear_cache(self) + return res diff --git a/ext/3rd-party-addons/auth_session_timeout/models/res_users.py b/ext/3rd-party-addons/auth_session_timeout/models/res_users.py new file mode 100644 index 00000000..95a137df --- /dev/null +++ b/ext/3rd-party-addons/auth_session_timeout/models/res_users.py @@ -0,0 +1,44 @@ +# -*- coding: utf-8 -*- +# (c) 2015 ACSONE SA/NV, Dhinesh D + +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from openerp import models +from openerp import http + +from openerp.http import root +from openerp.http import request + +from os import utime +from os.path import getmtime +from time import time + + +class ResUsers(models.Model): + _inherit = 'res.users' + + def _check_session_validity(self, db, uid, passwd): + if not request: + return + session = request.session + session_store = root.session_store + param_obj = self.pool['ir.config_parameter'] + delay, urls = param_obj.get_session_parameters(db) + deadline = time() - delay + path = session_store.get_session_filename(session.sid) + try: + if getmtime(path) < deadline: + if session.db and session.uid: + session.logout(keep_db=True) + elif http.request.httprequest.path not in urls: + # the session is not expired, update the last modification + # and access time. + utime(path, None) + except OSError: + pass + return + + def check(self, db, uid, passwd): + res = super(ResUsers, self).check(db, uid, passwd) + self._check_session_validity(db, uid, passwd) + return res diff --git a/ext/3rd-party-addons/auth_session_timeout/static/description/icon.png b/ext/3rd-party-addons/auth_session_timeout/static/description/icon.png new file mode 100644 index 00000000..3a0328b5 Binary files /dev/null and b/ext/3rd-party-addons/auth_session_timeout/static/description/icon.png differ diff --git a/ext/3rd-party-addons/auth_session_timeout/tests/__init__.py b/ext/3rd-party-addons/auth_session_timeout/tests/__init__.py new file mode 100644 index 00000000..7ae3d069 --- /dev/null +++ b/ext/3rd-party-addons/auth_session_timeout/tests/__init__.py @@ -0,0 +1,6 @@ +# -*- coding: utf-8 -*- +# (c) 2015 ACSONE SA/NV, Dhinesh D + +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from . import test_ir_config_parameter diff --git a/ext/3rd-party-addons/auth_session_timeout/tests/test_ir_config_parameter.py b/ext/3rd-party-addons/auth_session_timeout/tests/test_ir_config_parameter.py new file mode 100644 index 00000000..6a7249f8 --- /dev/null +++ b/ext/3rd-party-addons/auth_session_timeout/tests/test_ir_config_parameter.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +# (c) 2015 ACSONE SA/NV, Dhinesh D + +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +import threading + +from openerp.tests import common +import openerp + + +class TestIrConfigParameter(common.TransactionCase): + + def setUp(self): + super(TestIrConfigParameter, self).setUp() + self.db = openerp.tools.config['db_name'] + if not self.db and hasattr(threading.current_thread(), 'dbname'): + self.db = threading.current_thread().dbname + self.param_obj = self.env['ir.config_parameter'] + self.data_obj = self.env['ir.model.data'] + self.delay = self.env.ref( + 'auth_session_timeout.inactive_session_time_out_delay') + + def test_check_delay(self): + delay, urls = self.param_obj.get_session_parameters(self.db) + self.assertEqual(delay, int(self.delay.value)) + self.assertIsInstance(delay, int) + self.assertIsInstance(urls, list) diff --git a/ext/3rd-party-addons/backend_theme_v10/__init__.py b/ext/3rd-party-addons/backend_theme_v10/__init__.py new file mode 100644 index 00000000..40a96afc --- /dev/null +++ b/ext/3rd-party-addons/backend_theme_v10/__init__.py @@ -0,0 +1 @@ +# -*- coding: utf-8 -*- diff --git a/ext/3rd-party-addons/backend_theme_v10/__openerp__.py b/ext/3rd-party-addons/backend_theme_v10/__openerp__.py new file mode 100644 index 00000000..a93dece9 --- /dev/null +++ b/ext/3rd-party-addons/backend_theme_v10/__openerp__.py @@ -0,0 +1,29 @@ +# -*- coding: utf-8 -*- +# Copyright 2016 Openworx, LasLabs Inc. +# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html). + +{ + "name": "Material/United Backend Theme", + "summary": "Odoo 10.0 community backend theme", + "version": "10.0.1.0.18", + "category": "Themes/Backend", + "website": "http://www.openworx.nl", + "description": """ + Backend theme for Odoo 10.0 community edition. + The app dashboard is based on the module web_responsive from LasLabs Inc and the theme on Bootstrap United. + """, + 'images':[ + 'images/screen.png' + ], + "author": "Openworx", + "license": "LGPL-3", + "installable": True, + "depends": [ + 'web', + ], + "data": [ + 'views/assets.xml', + 'views/web.xml', + ], +} + diff --git a/ext/3rd-party-addons/backend_theme_v10/images/screen.png b/ext/3rd-party-addons/backend_theme_v10/images/screen.png new file mode 100644 index 00000000..4ffb2979 Binary files /dev/null and b/ext/3rd-party-addons/backend_theme_v10/images/screen.png differ diff --git a/ext/3rd-party-addons/backend_theme_v10/static/description/contact.png b/ext/3rd-party-addons/backend_theme_v10/static/description/contact.png new file mode 100644 index 00000000..eda9613f Binary files /dev/null and b/ext/3rd-party-addons/backend_theme_v10/static/description/contact.png differ diff --git a/ext/3rd-party-addons/backend_theme_v10/static/description/icon.png b/ext/3rd-party-addons/backend_theme_v10/static/description/icon.png new file mode 100644 index 00000000..4218e4e6 Binary files /dev/null and b/ext/3rd-party-addons/backend_theme_v10/static/description/icon.png differ diff --git a/ext/3rd-party-addons/backend_theme_v10/static/description/index.html b/ext/3rd-party-addons/backend_theme_v10/static/description/index.html new file mode 100644 index 00000000..f0d7deb3 --- /dev/null +++ b/ext/3rd-party-addons/backend_theme_v10/static/description/index.html @@ -0,0 +1,47 @@ +
+
+

Material/United Backend Theme

+

The first Odoo 10.0 community backend theme

+
+ +
+
+
+ +
+
+
+ +
+
+
+ +
+
+ +
+
+
+
+ User/pass: demo/demo + Demo Here +
+
+
+
+ +
+
+ +
+
+
+
+

Help & Support

+
+ Website: Openworx
+ Contact: Email Support
+
+
+
+
diff --git a/ext/3rd-party-addons/backend_theme_v10/static/description/project.png b/ext/3rd-party-addons/backend_theme_v10/static/description/project.png new file mode 100644 index 00000000..923ec0d7 Binary files /dev/null and b/ext/3rd-party-addons/backend_theme_v10/static/description/project.png differ diff --git a/ext/3rd-party-addons/backend_theme_v10/static/description/screen.png b/ext/3rd-party-addons/backend_theme_v10/static/description/screen.png new file mode 100644 index 00000000..4ffb2979 Binary files /dev/null and b/ext/3rd-party-addons/backend_theme_v10/static/description/screen.png differ diff --git a/ext/3rd-party-addons/backend_theme_v10/static/lib/css/drawer.3.2.0.css b/ext/3rd-party-addons/backend_theme_v10/static/lib/css/drawer.3.2.0.css new file mode 100644 index 00000000..31e84f17 --- /dev/null +++ b/ext/3rd-party-addons/backend_theme_v10/static/lib/css/drawer.3.2.0.css @@ -0,0 +1,502 @@ +/*! + * jquery-drawer v3.2.0 + * Flexible drawer menu using jQuery, iScroll and CSS. + * http://git.blivesta.com/drawer + * License : MIT + * Author : blivesta (http://blivesta.com/) + */ + +/*!------------------------------------*\ + Base +\*!------------------------------------*/ +.drawer-nav { + position: fixed; + z-index: 101; + top: 0; + overflow: hidden; + width: 16.25rem; + height: 100%; + color: #222; + background-color: #fff; +} + +.drawer-brand { + font-size: 1.5rem; + font-weight: bold; + line-height: 3.75rem; + display: block; + padding-right: .75rem; + padding-left: .75rem; + text-decoration: none; + color: #222; +} + +.drawer-menu { + margin: 0; + padding: 0; + list-style: none; +} + +.drawer-menu-item { + font-size: 1rem; + display: block; + padding: .75rem; + text-decoration: none; + color: #222; +} + +.drawer-menu-item:hover { + text-decoration: underline; + color: #555; + background-color: transparent; +} + +/*! overlay */ +.drawer-overlay { + position: fixed; + z-index: 100; + top: 0; + left: 0; + display: none; + width: 100%; + height: 100%; + background-color: rgba(0, 0, 0, .2); +} + +.drawer-open .drawer-overlay { + display: block; +} +/*!------------------------------------*\ + Top +\*!------------------------------------*/ +.drawer--top .drawer-nav { + top: -100%; + left: 0; + width: 100%; + height: auto; + max-height: 100%; + -webkit-transition: top .6s cubic-bezier(0.190, 1.000, 0.220, 1.000); + transition: top .6s cubic-bezier(0.190, 1.000, 0.220, 1.000); +} + +.drawer--top.drawer-open .drawer-nav { + top: 0; +} + +.drawer--top .drawer-hamburger, +.drawer--top.drawer-open .drawer-hamburger { + right: 0; +} +/*!------------------------------------*\ + Left +\*!------------------------------------*/ +.drawer--left .drawer-nav { + left: -16.25rem; + -webkit-transition: left .1ms cubic-bezier(0.190, 1.000, 0.220, 1.000); + transition: left .1ms cubic-bezier(0.190, 1.000, 0.220, 1.000); + +} + +.drawer--left.drawer-open .drawer-nav, +.drawer--left .drawer-hamburger, +.drawer--left.drawer-open .drawer-navbar .drawer-hamburger { + left: 0; +} + +.drawer--left.drawer-open .drawer-hamburger { + left: 16.25rem; +} +/*!------------------------------------*\ + Right +\*!------------------------------------*/ +.drawer--right .drawer-nav { + right: -16.25rem; + -webkit-transition: right .6s cubic-bezier(0.190, 1.000, 0.220, 1.000); + transition: right .6s cubic-bezier(0.190, 1.000, 0.220, 1.000); +} + +.drawer--right.drawer-open .drawer-nav, +.drawer--right .drawer-hamburger, +.drawer--right.drawer-open .drawer-navbar .drawer-hamburger { + right: 0; +} + +.drawer--right.drawer-open .drawer-hamburger { + right: 16.25rem; +} +/*!------------------------------------*\ + Hamburger +\*!------------------------------------*/ +.drawer-hamburger { + position: fixed; + z-index: 104; + top: 0; + display: block; + box-sizing: content-box; + width: 2rem; + padding: 0; + padding-top: 18px; + padding-right: .75rem; + padding-bottom: 30px; + padding-left: .75rem; + -webkit-transition: all .6s cubic-bezier(0.190, 1.000, 0.220, 1.000); + transition: all .6s cubic-bezier(0.190, 1.000, 0.220, 1.000); + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + border: 0; + outline: 0; + background-color: transparent; +} + +.drawer-hamburger:hover { + cursor: pointer; + background-color: transparent; +} + +.drawer-hamburger-icon { + position: relative; + display: block; + margin-top: 10px; +} + +.drawer-hamburger-icon, +.drawer-hamburger-icon:before, +.drawer-hamburger-icon:after { + width: 100%; + height: 2px; + -webkit-transition: all .6s cubic-bezier(0.190, 1.000, 0.220, 1.000); + transition: all .6s cubic-bezier(0.190, 1.000, 0.220, 1.000); + background-color: #222; +} + +.drawer-hamburger-icon:before, +.drawer-hamburger-icon:after { + position: absolute; + top: -10px; + left: 0; + content: ' '; +} + +.drawer-hamburger-icon:after { + top: 10px; +} + +.drawer-open .drawer-hamburger-icon { + background-color: transparent; +} + +.drawer-open .drawer-hamburger-icon:before, +.drawer-open .drawer-hamburger-icon:after { + top: 0; +} + +.drawer-open .drawer-hamburger-icon:before { + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); +} + +.drawer-open .drawer-hamburger-icon:after { + -webkit-transform: rotate(-45deg); + -ms-transform: rotate(-45deg); + transform: rotate(-45deg); +} +/*!------------------------------------*\ + accessibility +\*!------------------------------------*/ + +/*! + * Only display content to screen readers + * See: http://a11yproject.com/posts/how-to-hide-content + */ +.sr-only { + position: absolute; + overflow: hidden; + clip: rect(0, 0, 0, 0); + width: 1px; + height: 1px; + margin: -1px; + padding: 0; + border: 0; +} + +/*! + * Use in conjunction with .sr-only to only display content when it's focused. + * Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1 + * Credit: HTML5 Boilerplate + */ +.sr-only-focusable:active, +.sr-only-focusable:focus { + position: static; + overflow: visible; + clip: auto; + width: auto; + height: auto; + margin: 0; +} +/*!------------------------------------*\ + Sidebar +\*!------------------------------------*/ +.drawer--sidebar { + background-color: #fff; +} + +.drawer--sidebar .drawer-contents { + background-color: #fff; +} + +@media (min-width: 64em) { + .drawer--sidebar .drawer-hamburger { + display: none; + visibility: hidden; + } + + .drawer--sidebar .drawer-nav { + display: block; + -webkit-transform: none; + -ms-transform: none; + transform: none; + position: fixed; + width: 12.5rem; + height: 100%; + } + + /*! Left */ + .drawer--sidebar.drawer--left .drawer-nav { + left: 0; + border-right: 1px solid #ddd; + } + + .drawer--sidebar.drawer--left .drawer-contents { + margin-left: 12.5rem; + } + + /*! Right */ + .drawer--sidebar.drawer--right .drawer-nav { + right: 0; + border-left: 1px solid #ddd; + } + + .drawer--sidebar.drawer--right .drawer-contents { + margin-right: 12.5rem; + } + + /*! container */ + .drawer--sidebar .drawer-container { + max-width: 48rem; + } +} + +@media (min-width: 75em) { + .drawer--sidebar .drawer-nav { + width: 16.25rem; + } + + .drawer--sidebar.drawer--left .drawer-contents { + margin-left: 16.25rem; + } + + .drawer--sidebar.drawer--right .drawer-contents { + margin-right: 16.25rem; + } + + /*! container */ + .drawer--sidebar .drawer-container { + max-width: 60rem; + } +} +/*!------------------------------------*\ + Navbar +\*!------------------------------------*/ +.drawer--navbarTopGutter { + padding-top: 3.75rem; +} + +.drawer-navbar .drawer-navbar-header { + border-bottom: 1px solid #ddd; + background-color: #fff; +} + +.drawer-navbar { + z-index: 102; + top: 0; + width: 100%; +} + +/*! .drawer-navbar modifier */ +.drawer-navbar--fixed { + position: fixed; +} + +.drawer-navbar-header { + position: relative; + z-index: 102; + box-sizing: border-box; + width: 100%; + height: 3.75rem; + padding: 0 .75rem; + text-align: center; +} + +.drawer-navbar .drawer-brand { + line-height: 3.75rem; + display: inline-block; + padding-top: 0; + padding-bottom: 0; + text-decoration: none; +} + +.drawer-navbar .drawer-brand:hover { + background-color: transparent; +} + +.drawer-navbar .drawer-nav { + padding-top: 3.75rem; +} + +.drawer-navbar .drawer-menu { + padding-bottom: 7.5rem; +} + +@media (min-width: 64em) { + .drawer-navbar { + height: 3.75rem; + border-bottom: 1px solid #ddd; + background-color: #fff; + } + + .drawer-navbar .drawer-navbar-header { + position: relative; + display: block; + float: left; + width: auto; + padding: 0; + border: 0; + } + + .drawer-navbar .drawer-menu--right { + float: right; + } + + .drawer-navbar .drawer-menu li { + float: left; + } + + .drawer-navbar .drawer-menu-item { + line-height: 3.75rem; + padding-top: 0; + padding-bottom: 0; + } + + .drawer-navbar .drawer-hamburger { + display: none; + } + + .drawer-navbar .drawer-nav { + position: relative; + left: 0; + overflow: visible; + width: auto; + height: 3.75rem; + padding-top: 0; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + .drawer-navbar .drawer-menu { + padding: 0; + } + + /*! dropdown */ + .drawer-navbar .drawer-dropdown-menu { + position: absolute; + width: 16.25rem; + border: 1px solid #ddd; + } + + .drawer-navbar .drawer-dropdown-menu-item { + padding-left: .75rem; + } +} +/*!------------------------------------*\ + Dropdown +\*!------------------------------------*/ +.drawer-dropdown-menu { + display: none; + box-sizing: border-box; + width: 100%; + margin: 0; + padding: 0; + background-color: #fff; +} + +.drawer-dropdown-menu > li { + width: 100%; + list-style: none; +} + +.drawer-dropdown-menu-item { + line-height: 3.75rem; + display: block; + padding: 0; + padding-right: .75rem; + padding-left: 1.5rem; + text-decoration: none; + color: #222; +} + +.drawer-dropdown-menu-item:hover { + text-decoration: underline; + color: #555; + background-color: transparent; +} + +/*! open */ +.drawer-dropdown.open > .drawer-dropdown-menu { + display: block; +} + +/*! drawer-caret */ +.drawer-dropdown .drawer-caret { + display: inline-block; + width: 0; + height: 0; + margin-left: 4px; + -webkit-transition: opacity .2s ease, -webkit-transform .2s ease; + transition: opacity .2s ease, -webkit-transform .2s ease; + transition: transform .2s ease, opacity .2s ease; + transition: transform .2s ease, opacity .2s ease, -webkit-transform .2s ease; + -webkit-transform: rotate(0deg); + -ms-transform: rotate(0deg); + transform: rotate(0deg); + vertical-align: middle; + border-top: 4px solid; + border-right: 4px solid transparent; + border-left: 4px solid transparent; +} + +/*! open */ +.drawer-dropdown.open .drawer-caret { + -webkit-transform: rotate(180deg); + -ms-transform: rotate(180deg); + transform: rotate(180deg); +} +/*!------------------------------------*\ + Container +\*!------------------------------------*/ +.drawer-container { + margin-right: auto; + margin-left: auto; +} + +@media (min-width: 64em) { + .drawer-container { + max-width: 60rem; + } +} + +@media (min-width: 75em) { + .drawer-container { + max-width: 70rem; + } +} diff --git a/ext/3rd-party-addons/backend_theme_v10/static/lib/js/drawer.3.2.0.js b/ext/3rd-party-addons/backend_theme_v10/static/lib/js/drawer.3.2.0.js new file mode 100644 index 00000000..d879a519 --- /dev/null +++ b/ext/3rd-party-addons/backend_theme_v10/static/lib/js/drawer.3.2.0.js @@ -0,0 +1,177 @@ +/*! + * jquery-drawer v3.2.0 + * Flexible drawer menu using jQuery, iScroll and CSS. + * http://git.blivesta.com/drawer + * License : MIT + * Author : blivesta (http://blivesta.com/) + */ + +;(function umd(factory) { + 'use strict'; + if (typeof define === 'function' && define.amd) { + define(['jquery'], factory); + } else if (typeof exports === 'object') { + module.exports = factory(require('jquery')); + } else { + factory(jQuery); + } +}(function Drawer($) { + 'use strict'; + var namespace = 'drawer'; + var touches = typeof document.ontouchstart != 'undefined'; + var __ = { + init: function init(options) { + options = $.extend({ + iscroll: { + mouseWheel: true, + preventDefault: false + }, + showOverlay: true + }, options); + + __.settings = { + state: false, + events: { + opened: 'drawer.opened', + closed: 'drawer.closed' + }, + dropdownEvents: { + opened: 'shown.bs.dropdown', + closed: 'hidden.bs.dropdown' + } + }; + + __.settings.class = $.extend({ + nav: 'drawer-nav', + toggle: 'drawer-toggle', + overlay: 'drawer-overlay', + open: 'drawer-open', + close: 'drawer-close', + dropdown: 'drawer-dropdown' + }, options.class); + + return this.each(function instantiateDrawer() { + var _this = this; + var $this = $(this); + var data = $this.data(namespace); + + if (!data) { + options = $.extend({}, options); + $this.data(namespace, { options: options }); + + __.refresh.call(_this); + + if (options.showOverlay) { + __.addOverlay.call(_this); + } + + $('.' + __.settings.class.toggle).on('click.' + namespace, function toggle() { + __.toggle.call(_this); + return _this.iScroll.refresh(); + }); + + $(window).resize(function close() { + __.close.call(_this); + return _this.iScroll.refresh(); + }); + + $('.' + __.settings.class.dropdown) + .on(__.settings.dropdownEvents.opened + ' ' + __.settings.dropdownEvents.closed, function onOpenedOrClosed() { + return _this.iScroll.refresh(); + }); + } + + }); // end each + }, + + refresh: function refresh() { + this.iScroll = new IScroll( + '.' + __.settings.class.nav, + $(this).data(namespace).options.iscroll + ); + }, + + addOverlay: function addOverlay() { + var _this = this; + var $this = $(this); + var $overlay = $('
').addClass(__.settings.class.overlay + ' ' + __.settings.class.toggle); + + return $this.append($overlay); + }, + + toggle: function toggle() { + var _this = this; + + if (__.settings.state) { + return __.close.call(_this); + } else { + return __.open.call(_this); + } + }, + + open: function open() { + var $this = $(this); + + if (touches) { + $this.on('touchmove.' + namespace, function disableTouch(event) { + event.preventDefault(); + }); + } + + return $this + .removeClass(__.settings.class.close) + .addClass(__.settings.class.open) + .css({ 'overflow': 'hidden' }) + .drawerCallback(function triggerOpenedListeners() { + __.settings.state = true; + $this.trigger(__.settings.events.opened); + }); + }, + + close: function close() { + var $this = $(this); + + if (touches) $this.off('touchmove.' + namespace); + + return $this + .removeClass(__.settings.class.open) + .addClass(__.settings.class.close) + .css({ 'overflow': 'auto' }) + .drawerCallback(function triggerClosedListeners() { + __.settings.state = false; + $this.trigger(__.settings.events.closed); + }); + }, + + destroy: function destroy() { + return this.each(function destroyEach() { + var $this = $(this); + $(window).off('.' + namespace); + $this.removeData(namespace); + }); + } + + }; + + $.fn.drawerCallback = function drawerCallback(callback) { + var end = 'transitionend webkitTransitionEnd'; + return this.each(function setAnimationEndHandler() { + var $this = $(this); + $this.on(end, function invokeCallbackOnAnimationEnd() { + $this.off(end); + return callback.call(this); + }); + }); + }; + + $.fn.drawer = function drawer(method) { + if (__[method]) { + return __[method].apply(this, Array.prototype.slice.call(arguments, 1)); + } else if (typeof method === 'object' || !method) { + return __.init.apply(this, arguments); + } else { + $.error('Method ' + method + ' does not exist on jQuery.' + namespace); + } + }; + +})); diff --git a/ext/3rd-party-addons/backend_theme_v10/static/lib/js/iscroll-probe.5.2.0.js b/ext/3rd-party-addons/backend_theme_v10/static/lib/js/iscroll-probe.5.2.0.js new file mode 100644 index 00000000..0a81f8de --- /dev/null +++ b/ext/3rd-party-addons/backend_theme_v10/static/lib/js/iscroll-probe.5.2.0.js @@ -0,0 +1,2148 @@ +/*! iScroll v5.2.0 ~ (c) 2008-2016 Matteo Spinelli ~ http://cubiq.org/license */ +(function (window, document, Math) { +var rAF = window.requestAnimationFrame || + window.webkitRequestAnimationFrame || + window.mozRequestAnimationFrame || + window.oRequestAnimationFrame || + window.msRequestAnimationFrame || + function (callback) { window.setTimeout(callback, 1000 / 60); }; + +var utils = (function () { + var me = {}; + + var _elementStyle = document.createElement('div').style; + var _vendor = (function () { + var vendors = ['t', 'webkitT', 'MozT', 'msT', 'OT'], + transform, + i = 0, + l = vendors.length; + + for ( ; i < l; i++ ) { + transform = vendors[i] + 'ransform'; + if ( transform in _elementStyle ) return vendors[i].substr(0, vendors[i].length-1); + } + + return false; + })(); + + function _prefixStyle (style) { + if ( _vendor === false ) return false; + if ( _vendor === '' ) return style; + return _vendor + style.charAt(0).toUpperCase() + style.substr(1); + } + + me.getTime = Date.now || function getTime () { return new Date().getTime(); }; + + me.extend = function (target, obj) { + for ( var i in obj ) { + target[i] = obj[i]; + } + }; + + me.addEvent = function (el, type, fn, capture) { + el.addEventListener(type, fn, !!capture); + }; + + me.removeEvent = function (el, type, fn, capture) { + el.removeEventListener(type, fn, !!capture); + }; + + me.prefixPointerEvent = function (pointerEvent) { + return window.MSPointerEvent ? + 'MSPointer' + pointerEvent.charAt(7).toUpperCase() + pointerEvent.substr(8): + pointerEvent; + }; + + me.momentum = function (current, start, time, lowerMargin, wrapperSize, deceleration) { + var distance = current - start, + speed = Math.abs(distance) / time, + destination, + duration; + + deceleration = deceleration === undefined ? 0.0006 : deceleration; + + destination = current + ( speed * speed ) / ( 2 * deceleration ) * ( distance < 0 ? -1 : 1 ); + duration = speed / deceleration; + + if ( destination < lowerMargin ) { + destination = wrapperSize ? lowerMargin - ( wrapperSize / 2.5 * ( speed / 8 ) ) : lowerMargin; + distance = Math.abs(destination - current); + duration = distance / speed; + } else if ( destination > 0 ) { + destination = wrapperSize ? wrapperSize / 2.5 * ( speed / 8 ) : 0; + distance = Math.abs(current) + destination; + duration = distance / speed; + } + + return { + destination: Math.round(destination), + duration: duration + }; + }; + + var _transform = _prefixStyle('transform'); + + me.extend(me, { + hasTransform: _transform !== false, + hasPerspective: _prefixStyle('perspective') in _elementStyle, + hasTouch: 'ontouchstart' in window, + hasPointer: !!(window.PointerEvent || window.MSPointerEvent), // IE10 is prefixed + hasTransition: _prefixStyle('transition') in _elementStyle + }); + + /* + This should find all Android browsers lower than build 535.19 (both stock browser and webview) + - galaxy S2 is ok + - 2.3.6 : `AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1` + - 4.0.4 : `AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30` + - galaxy S3 is badAndroid (stock brower, webview) + `AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30` + - galaxy S4 is badAndroid (stock brower, webview) + `AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30` + - galaxy S5 is OK + `AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Mobile Safari/537.36 (Chrome/)` + - galaxy S6 is OK + `AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Mobile Safari/537.36 (Chrome/)` + */ + me.isBadAndroid = (function() { + var appVersion = window.navigator.appVersion; + // Android browser is not a chrome browser. + if (/Android/.test(appVersion) && !(/Chrome\/\d/.test(appVersion))) { + var safariVersion = appVersion.match(/Safari\/(\d+.\d)/); + if(safariVersion && typeof safariVersion === "object" && safariVersion.length >= 2) { + return parseFloat(safariVersion[1]) < 535.19; + } else { + return true; + } + } else { + return false; + } + })(); + + me.extend(me.style = {}, { + transform: _transform, + transitionTimingFunction: _prefixStyle('transitionTimingFunction'), + transitionDuration: _prefixStyle('transitionDuration'), + transitionDelay: _prefixStyle('transitionDelay'), + transformOrigin: _prefixStyle('transformOrigin') + }); + + me.hasClass = function (e, c) { + var re = new RegExp("(^|\\s)" + c + "(\\s|$)"); + return re.test(e.className); + }; + + me.addClass = function (e, c) { + if ( me.hasClass(e, c) ) { + return; + } + + var newclass = e.className.split(' '); + newclass.push(c); + e.className = newclass.join(' '); + }; + + me.removeClass = function (e, c) { + if ( !me.hasClass(e, c) ) { + return; + } + + var re = new RegExp("(^|\\s)" + c + "(\\s|$)", 'g'); + e.className = e.className.replace(re, ' '); + }; + + me.offset = function (el) { + var left = -el.offsetLeft, + top = -el.offsetTop; + + // jshint -W084 + while (el = el.offsetParent) { + left -= el.offsetLeft; + top -= el.offsetTop; + } + // jshint +W084 + + return { + left: left, + top: top + }; + }; + + me.preventDefaultException = function (el, exceptions) { + for ( var i in exceptions ) { + if ( exceptions[i].test(el[i]) ) { + return true; + } + } + + return false; + }; + + me.extend(me.eventType = {}, { + touchstart: 1, + touchmove: 1, + touchend: 1, + + mousedown: 2, + mousemove: 2, + mouseup: 2, + + pointerdown: 3, + pointermove: 3, + pointerup: 3, + + MSPointerDown: 3, + MSPointerMove: 3, + MSPointerUp: 3 + }); + + me.extend(me.ease = {}, { + quadratic: { + style: 'cubic-bezier(0.25, 0.46, 0.45, 0.94)', + fn: function (k) { + return k * ( 2 - k ); + } + }, + circular: { + style: 'cubic-bezier(0.1, 0.57, 0.1, 1)', // Not properly "circular" but this looks better, it should be (0.075, 0.82, 0.165, 1) + fn: function (k) { + return Math.sqrt( 1 - ( --k * k ) ); + } + }, + back: { + style: 'cubic-bezier(0.175, 0.885, 0.32, 1.275)', + fn: function (k) { + var b = 4; + return ( k = k - 1 ) * k * ( ( b + 1 ) * k + b ) + 1; + } + }, + bounce: { + style: '', + fn: function (k) { + if ( ( k /= 1 ) < ( 1 / 2.75 ) ) { + return 7.5625 * k * k; + } else if ( k < ( 2 / 2.75 ) ) { + return 7.5625 * ( k -= ( 1.5 / 2.75 ) ) * k + 0.75; + } else if ( k < ( 2.5 / 2.75 ) ) { + return 7.5625 * ( k -= ( 2.25 / 2.75 ) ) * k + 0.9375; + } else { + return 7.5625 * ( k -= ( 2.625 / 2.75 ) ) * k + 0.984375; + } + } + }, + elastic: { + style: '', + fn: function (k) { + var f = 0.22, + e = 0.4; + + if ( k === 0 ) { return 0; } + if ( k == 1 ) { return 1; } + + return ( e * Math.pow( 2, - 10 * k ) * Math.sin( ( k - f / 4 ) * ( 2 * Math.PI ) / f ) + 1 ); + } + } + }); + + me.tap = function (e, eventName) { + var ev = document.createEvent('Event'); + ev.initEvent(eventName, true, true); + ev.pageX = e.pageX; + ev.pageY = e.pageY; + e.target.dispatchEvent(ev); + }; + + me.click = function (e) { + var target = e.target, + ev; + + if ( !(/(SELECT|INPUT|TEXTAREA)/i).test(target.tagName) ) { + // https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/initMouseEvent + // initMouseEvent is deprecated. + ev = document.createEvent(window.MouseEvent ? 'MouseEvents' : 'Event'); + ev.initEvent('click', true, true); + ev.view = e.view || window; + ev.detail = 1; + ev.screenX = target.screenX || 0; + ev.screenY = target.screenY || 0; + ev.clientX = target.clientX || 0; + ev.clientY = target.clientY || 0; + ev.ctrlKey = !!e.ctrlKey; + ev.altKey = !!e.altKey; + ev.shiftKey = !!e.shiftKey; + ev.metaKey = !!e.metaKey; + ev.button = 0; + ev.relatedTarget = null; + ev._constructed = true; + target.dispatchEvent(ev); + } + }; + + return me; +})(); +function IScroll (el, options) { + this.wrapper = typeof el == 'string' ? document.querySelector(el) : el; + this.scroller = this.wrapper.children[0]; + this.scrollerStyle = this.scroller.style; // cache style for better performance + + this.options = { + + resizeScrollbars: true, + + mouseWheelSpeed: 20, + + snapThreshold: 0.334, + +// INSERT POINT: OPTIONS + disablePointer : !utils.hasPointer, + disableTouch : utils.hasPointer || !utils.hasTouch, + disableMouse : utils.hasPointer || utils.hasTouch, + startX: 0, + startY: 0, + scrollY: true, + directionLockThreshold: 5, + momentum: true, + + bounce: true, + bounceTime: 600, + bounceEasing: '', + + preventDefault: true, + preventDefaultException: { tagName: /^(INPUT|TEXTAREA|BUTTON|SELECT)$/ }, + + HWCompositing: true, + useTransition: true, + useTransform: true, + bindToWrapper: typeof window.onmousedown === "undefined" + }; + + for ( var i in options ) { + this.options[i] = options[i]; + } + + // Normalize options + this.translateZ = this.options.HWCompositing && utils.hasPerspective ? ' translateZ(0)' : ''; + + this.options.useTransition = utils.hasTransition && this.options.useTransition; + this.options.useTransform = utils.hasTransform && this.options.useTransform; + + this.options.eventPassthrough = this.options.eventPassthrough === true ? 'vertical' : this.options.eventPassthrough; + this.options.preventDefault = !this.options.eventPassthrough && this.options.preventDefault; + + // If you want eventPassthrough I have to lock one of the axes + this.options.scrollY = this.options.eventPassthrough == 'vertical' ? false : this.options.scrollY; + this.options.scrollX = this.options.eventPassthrough == 'horizontal' ? false : this.options.scrollX; + + // With eventPassthrough we also need lockDirection mechanism + this.options.freeScroll = this.options.freeScroll && !this.options.eventPassthrough; + this.options.directionLockThreshold = this.options.eventPassthrough ? 0 : this.options.directionLockThreshold; + + this.options.bounceEasing = typeof this.options.bounceEasing == 'string' ? utils.ease[this.options.bounceEasing] || utils.ease.circular : this.options.bounceEasing; + + this.options.resizePolling = this.options.resizePolling === undefined ? 60 : this.options.resizePolling; + + if ( this.options.tap === true ) { + this.options.tap = 'tap'; + } + + // https://github.com/cubiq/iscroll/issues/1029 + if (!this.options.useTransition && !this.options.useTransform) { + if(!(/relative|absolute/i).test(this.scrollerStyle.position)) { + this.scrollerStyle.position = "relative"; + } + } + + if ( this.options.shrinkScrollbars == 'scale' ) { + this.options.useTransition = false; + } + + this.options.invertWheelDirection = this.options.invertWheelDirection ? -1 : 1; + + if ( this.options.probeType == 3 ) { + this.options.useTransition = false; } + +// INSERT POINT: NORMALIZATION + + // Some defaults + this.x = 0; + this.y = 0; + this.directionX = 0; + this.directionY = 0; + this._events = {}; + +// INSERT POINT: DEFAULTS + + this._init(); + this.refresh(); + + this.scrollTo(this.options.startX, this.options.startY); + this.enable(); +} + +IScroll.prototype = { + version: '5.2.0', + + _init: function () { + this._initEvents(); + + if ( this.options.scrollbars || this.options.indicators ) { + this._initIndicators(); + } + + if ( this.options.mouseWheel ) { + this._initWheel(); + } + + if ( this.options.snap ) { + this._initSnap(); + } + + if ( this.options.keyBindings ) { + this._initKeys(); + } + +// INSERT POINT: _init + + }, + + destroy: function () { + this._initEvents(true); + clearTimeout(this.resizeTimeout); + this.resizeTimeout = null; + this._execEvent('destroy'); + }, + + _transitionEnd: function (e) { + if ( e.target != this.scroller || !this.isInTransition ) { + return; + } + + this._transitionTime(); + if ( !this.resetPosition(this.options.bounceTime) ) { + this.isInTransition = false; + this._execEvent('scrollEnd'); + } + }, + + _start: function (e) { + // React to left mouse button only + if ( utils.eventType[e.type] != 1 ) { + // for button property + // http://unixpapa.com/js/mouse.html + var button; + if (!e.which) { + /* IE case */ + button = (e.button < 2) ? 0 : + ((e.button == 4) ? 1 : 2); + } else { + /* All others */ + button = e.button; + } + if ( button !== 0 ) { + return; + } + } + + if ( !this.enabled || (this.initiated && utils.eventType[e.type] !== this.initiated) ) { + return; + } + + if ( this.options.preventDefault && !utils.isBadAndroid && !utils.preventDefaultException(e.target, this.options.preventDefaultException) ) { + e.preventDefault(); + } + + var point = e.touches ? e.touches[0] : e, + pos; + + this.initiated = utils.eventType[e.type]; + this.moved = false; + this.distX = 0; + this.distY = 0; + this.directionX = 0; + this.directionY = 0; + this.directionLocked = 0; + + this.startTime = utils.getTime(); + + if ( this.options.useTransition && this.isInTransition ) { + this._transitionTime(); + this.isInTransition = false; + pos = this.getComputedPosition(); + this._translate(Math.round(pos.x), Math.round(pos.y)); + this._execEvent('scrollEnd'); + } else if ( !this.options.useTransition && this.isAnimating ) { + this.isAnimating = false; + this._execEvent('scrollEnd'); + } + + this.startX = this.x; + this.startY = this.y; + this.absStartX = this.x; + this.absStartY = this.y; + this.pointX = point.pageX; + this.pointY = point.pageY; + + this._execEvent('beforeScrollStart'); + }, + + _move: function (e) { + if ( !this.enabled || utils.eventType[e.type] !== this.initiated ) { + return; + } + + if ( this.options.preventDefault ) { // increases performance on Android? TODO: check! + e.preventDefault(); + } + + var point = e.touches ? e.touches[0] : e, + deltaX = point.pageX - this.pointX, + deltaY = point.pageY - this.pointY, + timestamp = utils.getTime(), + newX, newY, + absDistX, absDistY; + + this.pointX = point.pageX; + this.pointY = point.pageY; + + this.distX += deltaX; + this.distY += deltaY; + absDistX = Math.abs(this.distX); + absDistY = Math.abs(this.distY); + + // We need to move at least 10 pixels for the scrolling to initiate + if ( timestamp - this.endTime > 300 && (absDistX < 10 && absDistY < 10) ) { + return; + } + + // If you are scrolling in one direction lock the other + if ( !this.directionLocked && !this.options.freeScroll ) { + if ( absDistX > absDistY + this.options.directionLockThreshold ) { + this.directionLocked = 'h'; // lock horizontally + } else if ( absDistY >= absDistX + this.options.directionLockThreshold ) { + this.directionLocked = 'v'; // lock vertically + } else { + this.directionLocked = 'n'; // no lock + } + } + + if ( this.directionLocked == 'h' ) { + if ( this.options.eventPassthrough == 'vertical' ) { + e.preventDefault(); + } else if ( this.options.eventPassthrough == 'horizontal' ) { + this.initiated = false; + return; + } + + deltaY = 0; + } else if ( this.directionLocked == 'v' ) { + if ( this.options.eventPassthrough == 'horizontal' ) { + e.preventDefault(); + } else if ( this.options.eventPassthrough == 'vertical' ) { + this.initiated = false; + return; + } + + deltaX = 0; + } + + deltaX = this.hasHorizontalScroll ? deltaX : 0; + deltaY = this.hasVerticalScroll ? deltaY : 0; + + newX = this.x + deltaX; + newY = this.y + deltaY; + + // Slow down if outside of the boundaries + if ( newX > 0 || newX < this.maxScrollX ) { + newX = this.options.bounce ? this.x + deltaX / 3 : newX > 0 ? 0 : this.maxScrollX; + } + if ( newY > 0 || newY < this.maxScrollY ) { + newY = this.options.bounce ? this.y + deltaY / 3 : newY > 0 ? 0 : this.maxScrollY; + } + + this.directionX = deltaX > 0 ? -1 : deltaX < 0 ? 1 : 0; + this.directionY = deltaY > 0 ? -1 : deltaY < 0 ? 1 : 0; + + if ( !this.moved ) { + this._execEvent('scrollStart'); + } + + this.moved = true; + + this._translate(newX, newY); + +/* REPLACE START: _move */ + if ( timestamp - this.startTime > 300 ) { + this.startTime = timestamp; + this.startX = this.x; + this.startY = this.y; + + if ( this.options.probeType == 1 ) { + this._execEvent('scroll'); + } + } + + if ( this.options.probeType > 1 ) { + this._execEvent('scroll'); + } +/* REPLACE END: _move */ + + }, + + _end: function (e) { + if ( !this.enabled || utils.eventType[e.type] !== this.initiated ) { + return; + } + + if ( this.options.preventDefault && !utils.preventDefaultException(e.target, this.options.preventDefaultException) ) { + e.preventDefault(); + } + + var point = e.changedTouches ? e.changedTouches[0] : e, + momentumX, + momentumY, + duration = utils.getTime() - this.startTime, + newX = Math.round(this.x), + newY = Math.round(this.y), + distanceX = Math.abs(newX - this.startX), + distanceY = Math.abs(newY - this.startY), + time = 0, + easing = ''; + + this.isInTransition = 0; + this.initiated = 0; + this.endTime = utils.getTime(); + + // reset if we are outside of the boundaries + if ( this.resetPosition(this.options.bounceTime) ) { + return; + } + + this.scrollTo(newX, newY); // ensures that the last position is rounded + + // we scrolled less than 10 pixels + if ( !this.moved ) { + if ( this.options.tap ) { + utils.tap(e, this.options.tap); + } + + if ( this.options.click ) { + utils.click(e); + } + + this._execEvent('scrollCancel'); + return; + } + + if ( this._events.flick && duration < 200 && distanceX < 100 && distanceY < 100 ) { + this._execEvent('flick'); + return; + } + + // start momentum animation if needed + if ( this.options.momentum && duration < 300 ) { + momentumX = this.hasHorizontalScroll ? utils.momentum(this.x, this.startX, duration, this.maxScrollX, this.options.bounce ? this.wrapperWidth : 0, this.options.deceleration) : { destination: newX, duration: 0 }; + momentumY = this.hasVerticalScroll ? utils.momentum(this.y, this.startY, duration, this.maxScrollY, this.options.bounce ? this.wrapperHeight : 0, this.options.deceleration) : { destination: newY, duration: 0 }; + newX = momentumX.destination; + newY = momentumY.destination; + time = Math.max(momentumX.duration, momentumY.duration); + this.isInTransition = 1; + } + + + if ( this.options.snap ) { + var snap = this._nearestSnap(newX, newY); + this.currentPage = snap; + time = this.options.snapSpeed || Math.max( + Math.max( + Math.min(Math.abs(newX - snap.x), 1000), + Math.min(Math.abs(newY - snap.y), 1000) + ), 300); + newX = snap.x; + newY = snap.y; + + this.directionX = 0; + this.directionY = 0; + easing = this.options.bounceEasing; + } + +// INSERT POINT: _end + + if ( newX != this.x || newY != this.y ) { + // change easing function when scroller goes out of the boundaries + if ( newX > 0 || newX < this.maxScrollX || newY > 0 || newY < this.maxScrollY ) { + easing = utils.ease.quadratic; + } + + this.scrollTo(newX, newY, time, easing); + return; + } + + this._execEvent('scrollEnd'); + }, + + _resize: function () { + var that = this; + + clearTimeout(this.resizeTimeout); + + this.resizeTimeout = setTimeout(function () { + that.refresh(); + }, this.options.resizePolling); + }, + + resetPosition: function (time) { + var x = this.x, + y = this.y; + + time = time || 0; + + if ( !this.hasHorizontalScroll || this.x > 0 ) { + x = 0; + } else if ( this.x < this.maxScrollX ) { + x = this.maxScrollX; + } + + if ( !this.hasVerticalScroll || this.y > 0 ) { + y = 0; + } else if ( this.y < this.maxScrollY ) { + y = this.maxScrollY; + } + + if ( x == this.x && y == this.y ) { + return false; + } + + this.scrollTo(x, y, time, this.options.bounceEasing); + + return true; + }, + + disable: function () { + this.enabled = false; + }, + + enable: function () { + this.enabled = true; + }, + + refresh: function () { + var rf = this.wrapper.offsetHeight; // Force reflow + + this.wrapperWidth = this.wrapper.clientWidth; + this.wrapperHeight = this.wrapper.clientHeight; + +/* REPLACE START: refresh */ + + this.scrollerWidth = this.scroller.offsetWidth; + this.scrollerHeight = this.scroller.offsetHeight; + + this.maxScrollX = this.wrapperWidth - this.scrollerWidth; + this.maxScrollY = this.wrapperHeight - this.scrollerHeight; + +/* REPLACE END: refresh */ + + this.hasHorizontalScroll = this.options.scrollX && this.maxScrollX < 0; + this.hasVerticalScroll = this.options.scrollY && this.maxScrollY < 0; + + if ( !this.hasHorizontalScroll ) { + this.maxScrollX = 0; + this.scrollerWidth = this.wrapperWidth; + } + + if ( !this.hasVerticalScroll ) { + this.maxScrollY = 0; + this.scrollerHeight = this.wrapperHeight; + } + + this.endTime = 0; + this.directionX = 0; + this.directionY = 0; + + this.wrapperOffset = utils.offset(this.wrapper); + + this._execEvent('refresh'); + + this.resetPosition(); + +// INSERT POINT: _refresh + + }, + + on: function (type, fn) { + if ( !this._events[type] ) { + this._events[type] = []; + } + + this._events[type].push(fn); + }, + + off: function (type, fn) { + if ( !this._events[type] ) { + return; + } + + var index = this._events[type].indexOf(fn); + + if ( index > -1 ) { + this._events[type].splice(index, 1); + } + }, + + _execEvent: function (type) { + if ( !this._events[type] ) { + return; + } + + var i = 0, + l = this._events[type].length; + + if ( !l ) { + return; + } + + for ( ; i < l; i++ ) { + this._events[type][i].apply(this, [].slice.call(arguments, 1)); + } + }, + + scrollBy: function (x, y, time, easing) { + x = this.x + x; + y = this.y + y; + time = time || 0; + + this.scrollTo(x, y, time, easing); + }, + + scrollTo: function (x, y, time, easing) { + easing = easing || utils.ease.circular; + + this.isInTransition = this.options.useTransition && time > 0; + var transitionType = this.options.useTransition && easing.style; + if ( !time || transitionType ) { + if(transitionType) { + this._transitionTimingFunction(easing.style); + this._transitionTime(time); + } + this._translate(x, y); + } else { + this._animate(x, y, time, easing.fn); + } + }, + + scrollToElement: function (el, time, offsetX, offsetY, easing) { + el = el.nodeType ? el : this.scroller.querySelector(el); + + if ( !el ) { + return; + } + + var pos = utils.offset(el); + + pos.left -= this.wrapperOffset.left; + pos.top -= this.wrapperOffset.top; + + // if offsetX/Y are true we center the element to the screen + if ( offsetX === true ) { + offsetX = Math.round(el.offsetWidth / 2 - this.wrapper.offsetWidth / 2); + } + if ( offsetY === true ) { + offsetY = Math.round(el.offsetHeight / 2 - this.wrapper.offsetHeight / 2); + } + + pos.left -= offsetX || 0; + pos.top -= offsetY || 0; + + pos.left = pos.left > 0 ? 0 : pos.left < this.maxScrollX ? this.maxScrollX : pos.left; + pos.top = pos.top > 0 ? 0 : pos.top < this.maxScrollY ? this.maxScrollY : pos.top; + + time = time === undefined || time === null || time === 'auto' ? Math.max(Math.abs(this.x-pos.left), Math.abs(this.y-pos.top)) : time; + + this.scrollTo(pos.left, pos.top, time, easing); + }, + + _transitionTime: function (time) { + if (!this.options.useTransition) { + return; + } + time = time || 0; + var durationProp = utils.style.transitionDuration; + if(!durationProp) { + return; + } + + this.scrollerStyle[durationProp] = time + 'ms'; + + if ( !time && utils.isBadAndroid ) { + this.scrollerStyle[durationProp] = '0.0001ms'; + // remove 0.0001ms + var self = this; + rAF(function() { + if(self.scrollerStyle[durationProp] === '0.0001ms') { + self.scrollerStyle[durationProp] = '0s'; + } + }); + } + + + if ( this.indicators ) { + for ( var i = this.indicators.length; i--; ) { + this.indicators[i].transitionTime(time); + } + } + + +// INSERT POINT: _transitionTime + + }, + + _transitionTimingFunction: function (easing) { + this.scrollerStyle[utils.style.transitionTimingFunction] = easing; + + + if ( this.indicators ) { + for ( var i = this.indicators.length; i--; ) { + this.indicators[i].transitionTimingFunction(easing); + } + } + + +// INSERT POINT: _transitionTimingFunction + + }, + + _translate: function (x, y) { + if ( this.options.useTransform ) { + +/* REPLACE START: _translate */ + + this.scrollerStyle[utils.style.transform] = 'translate(' + x + 'px,' + y + 'px)' + this.translateZ; + +/* REPLACE END: _translate */ + + } else { + x = Math.round(x); + y = Math.round(y); + this.scrollerStyle.left = x + 'px'; + this.scrollerStyle.top = y + 'px'; + } + + this.x = x; + this.y = y; + + + if ( this.indicators ) { + for ( var i = this.indicators.length; i--; ) { + this.indicators[i].updatePosition(); + } + } + + +// INSERT POINT: _translate + + }, + + _initEvents: function (remove) { + var eventType = remove ? utils.removeEvent : utils.addEvent, + target = this.options.bindToWrapper ? this.wrapper : window; + + eventType(window, 'orientationchange', this); + eventType(window, 'resize', this); + + if ( this.options.click ) { + eventType(this.wrapper, 'click', this, true); + } + + if ( !this.options.disableMouse ) { + eventType(this.wrapper, 'mousedown', this); + eventType(target, 'mousemove', this); + eventType(target, 'mousecancel', this); + eventType(target, 'mouseup', this); + } + + if ( utils.hasPointer && !this.options.disablePointer ) { + eventType(this.wrapper, utils.prefixPointerEvent('pointerdown'), this); + eventType(target, utils.prefixPointerEvent('pointermove'), this); + eventType(target, utils.prefixPointerEvent('pointercancel'), this); + eventType(target, utils.prefixPointerEvent('pointerup'), this); + } + + if ( utils.hasTouch && !this.options.disableTouch ) { + eventType(this.wrapper, 'touchstart', this); + eventType(target, 'touchmove', this); + eventType(target, 'touchcancel', this); + eventType(target, 'touchend', this); + } + + eventType(this.scroller, 'transitionend', this); + eventType(this.scroller, 'webkitTransitionEnd', this); + eventType(this.scroller, 'oTransitionEnd', this); + eventType(this.scroller, 'MSTransitionEnd', this); + }, + + getComputedPosition: function () { + var matrix = window.getComputedStyle(this.scroller, null), + x, y; + + if ( this.options.useTransform ) { + matrix = matrix[utils.style.transform].split(')')[0].split(', '); + x = +(matrix[12] || matrix[4]); + y = +(matrix[13] || matrix[5]); + } else { + x = +matrix.left.replace(/[^-\d.]/g, ''); + y = +matrix.top.replace(/[^-\d.]/g, ''); + } + + return { x: x, y: y }; + }, + _initIndicators: function () { + var interactive = this.options.interactiveScrollbars, + customStyle = typeof this.options.scrollbars != 'string', + indicators = [], + indicator; + + var that = this; + + this.indicators = []; + + if ( this.options.scrollbars ) { + // Vertical scrollbar + if ( this.options.scrollY ) { + indicator = { + el: createDefaultScrollbar('v', interactive, this.options.scrollbars), + interactive: interactive, + defaultScrollbars: true, + customStyle: customStyle, + resize: this.options.resizeScrollbars, + shrink: this.options.shrinkScrollbars, + fade: this.options.fadeScrollbars, + listenX: false + }; + + this.wrapper.appendChild(indicator.el); + indicators.push(indicator); + } + + // Horizontal scrollbar + if ( this.options.scrollX ) { + indicator = { + el: createDefaultScrollbar('h', interactive, this.options.scrollbars), + interactive: interactive, + defaultScrollbars: true, + customStyle: customStyle, + resize: this.options.resizeScrollbars, + shrink: this.options.shrinkScrollbars, + fade: this.options.fadeScrollbars, + listenY: false + }; + + this.wrapper.appendChild(indicator.el); + indicators.push(indicator); + } + } + + if ( this.options.indicators ) { + // TODO: check concat compatibility + indicators = indicators.concat(this.options.indicators); + } + + for ( var i = indicators.length; i--; ) { + this.indicators.push( new Indicator(this, indicators[i]) ); + } + + // TODO: check if we can use array.map (wide compatibility and performance issues) + function _indicatorsMap (fn) { + if (that.indicators) { + for ( var i = that.indicators.length; i--; ) { + fn.call(that.indicators[i]); + } + } + } + + if ( this.options.fadeScrollbars ) { + this.on('scrollEnd', function () { + _indicatorsMap(function () { + this.fade(); + }); + }); + + this.on('scrollCancel', function () { + _indicatorsMap(function () { + this.fade(); + }); + }); + + this.on('scrollStart', function () { + _indicatorsMap(function () { + this.fade(1); + }); + }); + + this.on('beforeScrollStart', function () { + _indicatorsMap(function () { + this.fade(1, true); + }); + }); + } + + + this.on('refresh', function () { + _indicatorsMap(function () { + this.refresh(); + }); + }); + + this.on('destroy', function () { + _indicatorsMap(function () { + this.destroy(); + }); + + delete this.indicators; + }); + }, + + _initWheel: function () { + utils.addEvent(this.wrapper, 'wheel', this); + utils.addEvent(this.wrapper, 'mousewheel', this); + utils.addEvent(this.wrapper, 'DOMMouseScroll', this); + + this.on('destroy', function () { + clearTimeout(this.wheelTimeout); + this.wheelTimeout = null; + utils.removeEvent(this.wrapper, 'wheel', this); + utils.removeEvent(this.wrapper, 'mousewheel', this); + utils.removeEvent(this.wrapper, 'DOMMouseScroll', this); + }); + }, + + _wheel: function (e) { + if ( !this.enabled ) { + return; + } + + e.preventDefault(); + + var wheelDeltaX, wheelDeltaY, + newX, newY, + that = this; + + if ( this.wheelTimeout === undefined ) { + that._execEvent('scrollStart'); + } + + // Execute the scrollEnd event after 400ms the wheel stopped scrolling + clearTimeout(this.wheelTimeout); + this.wheelTimeout = setTimeout(function () { + if(!that.options.snap) { + that._execEvent('scrollEnd'); + } + that.wheelTimeout = undefined; + }, 400); + + if ( 'deltaX' in e ) { + if (e.deltaMode === 1) { + wheelDeltaX = -e.deltaX * this.options.mouseWheelSpeed; + wheelDeltaY = -e.deltaY * this.options.mouseWheelSpeed; + } else { + wheelDeltaX = -e.deltaX; + wheelDeltaY = -e.deltaY; + } + } else if ( 'wheelDeltaX' in e ) { + wheelDeltaX = e.wheelDeltaX / 120 * this.options.mouseWheelSpeed; + wheelDeltaY = e.wheelDeltaY / 120 * this.options.mouseWheelSpeed; + } else if ( 'wheelDelta' in e ) { + wheelDeltaX = wheelDeltaY = e.wheelDelta / 120 * this.options.mouseWheelSpeed; + } else if ( 'detail' in e ) { + wheelDeltaX = wheelDeltaY = -e.detail / 3 * this.options.mouseWheelSpeed; + } else { + return; + } + + wheelDeltaX *= this.options.invertWheelDirection; + wheelDeltaY *= this.options.invertWheelDirection; + + if ( !this.hasVerticalScroll ) { + wheelDeltaX = wheelDeltaY; + wheelDeltaY = 0; + } + + if ( this.options.snap ) { + newX = this.currentPage.pageX; + newY = this.currentPage.pageY; + + if ( wheelDeltaX > 0 ) { + newX--; + } else if ( wheelDeltaX < 0 ) { + newX++; + } + + if ( wheelDeltaY > 0 ) { + newY--; + } else if ( wheelDeltaY < 0 ) { + newY++; + } + + this.goToPage(newX, newY); + + return; + } + + newX = this.x + Math.round(this.hasHorizontalScroll ? wheelDeltaX : 0); + newY = this.y + Math.round(this.hasVerticalScroll ? wheelDeltaY : 0); + + this.directionX = wheelDeltaX > 0 ? -1 : wheelDeltaX < 0 ? 1 : 0; + this.directionY = wheelDeltaY > 0 ? -1 : wheelDeltaY < 0 ? 1 : 0; + + if ( newX > 0 ) { + newX = 0; + } else if ( newX < this.maxScrollX ) { + newX = this.maxScrollX; + } + + if ( newY > 0 ) { + newY = 0; + } else if ( newY < this.maxScrollY ) { + newY = this.maxScrollY; + } + + this.scrollTo(newX, newY, 0); + + if ( this.options.probeType > 1 ) { + this._execEvent('scroll'); + } + +// INSERT POINT: _wheel + }, + + _initSnap: function () { + this.currentPage = {}; + + if ( typeof this.options.snap == 'string' ) { + this.options.snap = this.scroller.querySelectorAll(this.options.snap); + } + + this.on('refresh', function () { + var i = 0, l, + m = 0, n, + cx, cy, + x = 0, y, + stepX = this.options.snapStepX || this.wrapperWidth, + stepY = this.options.snapStepY || this.wrapperHeight, + el; + + this.pages = []; + + if ( !this.wrapperWidth || !this.wrapperHeight || !this.scrollerWidth || !this.scrollerHeight ) { + return; + } + + if ( this.options.snap === true ) { + cx = Math.round( stepX / 2 ); + cy = Math.round( stepY / 2 ); + + while ( x > -this.scrollerWidth ) { + this.pages[i] = []; + l = 0; + y = 0; + + while ( y > -this.scrollerHeight ) { + this.pages[i][l] = { + x: Math.max(x, this.maxScrollX), + y: Math.max(y, this.maxScrollY), + width: stepX, + height: stepY, + cx: x - cx, + cy: y - cy + }; + + y -= stepY; + l++; + } + + x -= stepX; + i++; + } + } else { + el = this.options.snap; + l = el.length; + n = -1; + + for ( ; i < l; i++ ) { + if ( i === 0 || el[i].offsetLeft <= el[i-1].offsetLeft ) { + m = 0; + n++; + } + + if ( !this.pages[m] ) { + this.pages[m] = []; + } + + x = Math.max(-el[i].offsetLeft, this.maxScrollX); + y = Math.max(-el[i].offsetTop, this.maxScrollY); + cx = x - Math.round(el[i].offsetWidth / 2); + cy = y - Math.round(el[i].offsetHeight / 2); + + this.pages[m][n] = { + x: x, + y: y, + width: el[i].offsetWidth, + height: el[i].offsetHeight, + cx: cx, + cy: cy + }; + + if ( x > this.maxScrollX ) { + m++; + } + } + } + + this.goToPage(this.currentPage.pageX || 0, this.currentPage.pageY || 0, 0); + + // Update snap threshold if needed + if ( this.options.snapThreshold % 1 === 0 ) { + this.snapThresholdX = this.options.snapThreshold; + this.snapThresholdY = this.options.snapThreshold; + } else { + this.snapThresholdX = Math.round(this.pages[this.currentPage.pageX][this.currentPage.pageY].width * this.options.snapThreshold); + this.snapThresholdY = Math.round(this.pages[this.currentPage.pageX][this.currentPage.pageY].height * this.options.snapThreshold); + } + }); + + this.on('flick', function () { + var time = this.options.snapSpeed || Math.max( + Math.max( + Math.min(Math.abs(this.x - this.startX), 1000), + Math.min(Math.abs(this.y - this.startY), 1000) + ), 300); + + this.goToPage( + this.currentPage.pageX + this.directionX, + this.currentPage.pageY + this.directionY, + time + ); + }); + }, + + _nearestSnap: function (x, y) { + if ( !this.pages.length ) { + return { x: 0, y: 0, pageX: 0, pageY: 0 }; + } + + var i = 0, + l = this.pages.length, + m = 0; + + // Check if we exceeded the snap threshold + if ( Math.abs(x - this.absStartX) < this.snapThresholdX && + Math.abs(y - this.absStartY) < this.snapThresholdY ) { + return this.currentPage; + } + + if ( x > 0 ) { + x = 0; + } else if ( x < this.maxScrollX ) { + x = this.maxScrollX; + } + + if ( y > 0 ) { + y = 0; + } else if ( y < this.maxScrollY ) { + y = this.maxScrollY; + } + + for ( ; i < l; i++ ) { + if ( x >= this.pages[i][0].cx ) { + x = this.pages[i][0].x; + break; + } + } + + l = this.pages[i].length; + + for ( ; m < l; m++ ) { + if ( y >= this.pages[0][m].cy ) { + y = this.pages[0][m].y; + break; + } + } + + if ( i == this.currentPage.pageX ) { + i += this.directionX; + + if ( i < 0 ) { + i = 0; + } else if ( i >= this.pages.length ) { + i = this.pages.length - 1; + } + + x = this.pages[i][0].x; + } + + if ( m == this.currentPage.pageY ) { + m += this.directionY; + + if ( m < 0 ) { + m = 0; + } else if ( m >= this.pages[0].length ) { + m = this.pages[0].length - 1; + } + + y = this.pages[0][m].y; + } + + return { + x: x, + y: y, + pageX: i, + pageY: m + }; + }, + + goToPage: function (x, y, time, easing) { + easing = easing || this.options.bounceEasing; + + if ( x >= this.pages.length ) { + x = this.pages.length - 1; + } else if ( x < 0 ) { + x = 0; + } + + if ( y >= this.pages[x].length ) { + y = this.pages[x].length - 1; + } else if ( y < 0 ) { + y = 0; + } + + var posX = this.pages[x][y].x, + posY = this.pages[x][y].y; + + time = time === undefined ? this.options.snapSpeed || Math.max( + Math.max( + Math.min(Math.abs(posX - this.x), 1000), + Math.min(Math.abs(posY - this.y), 1000) + ), 300) : time; + + this.currentPage = { + x: posX, + y: posY, + pageX: x, + pageY: y + }; + + this.scrollTo(posX, posY, time, easing); + }, + + next: function (time, easing) { + var x = this.currentPage.pageX, + y = this.currentPage.pageY; + + x++; + + if ( x >= this.pages.length && this.hasVerticalScroll ) { + x = 0; + y++; + } + + this.goToPage(x, y, time, easing); + }, + + prev: function (time, easing) { + var x = this.currentPage.pageX, + y = this.currentPage.pageY; + + x--; + + if ( x < 0 && this.hasVerticalScroll ) { + x = 0; + y--; + } + + this.goToPage(x, y, time, easing); + }, + + _initKeys: function (e) { + // default key bindings + var keys = { + pageUp: 33, + pageDown: 34, + end: 35, + home: 36, + left: 37, + up: 38, + right: 39, + down: 40 + }; + var i; + + // if you give me characters I give you keycode + if ( typeof this.options.keyBindings == 'object' ) { + for ( i in this.options.keyBindings ) { + if ( typeof this.options.keyBindings[i] == 'string' ) { + this.options.keyBindings[i] = this.options.keyBindings[i].toUpperCase().charCodeAt(0); + } + } + } else { + this.options.keyBindings = {}; + } + + for ( i in keys ) { + this.options.keyBindings[i] = this.options.keyBindings[i] || keys[i]; + } + + utils.addEvent(window, 'keydown', this); + + this.on('destroy', function () { + utils.removeEvent(window, 'keydown', this); + }); + }, + + _key: function (e) { + if ( !this.enabled ) { + return; + } + + var snap = this.options.snap, // we are using this alot, better to cache it + newX = snap ? this.currentPage.pageX : this.x, + newY = snap ? this.currentPage.pageY : this.y, + now = utils.getTime(), + prevTime = this.keyTime || 0, + acceleration = 0.250, + pos; + + if ( this.options.useTransition && this.isInTransition ) { + pos = this.getComputedPosition(); + + this._translate(Math.round(pos.x), Math.round(pos.y)); + this.isInTransition = false; + } + + this.keyAcceleration = now - prevTime < 200 ? Math.min(this.keyAcceleration + acceleration, 50) : 0; + + switch ( e.keyCode ) { + case this.options.keyBindings.pageUp: + if ( this.hasHorizontalScroll && !this.hasVerticalScroll ) { + newX += snap ? 1 : this.wrapperWidth; + } else { + newY += snap ? 1 : this.wrapperHeight; + } + break; + case this.options.keyBindings.pageDown: + if ( this.hasHorizontalScroll && !this.hasVerticalScroll ) { + newX -= snap ? 1 : this.wrapperWidth; + } else { + newY -= snap ? 1 : this.wrapperHeight; + } + break; + case this.options.keyBindings.end: + newX = snap ? this.pages.length-1 : this.maxScrollX; + newY = snap ? this.pages[0].length-1 : this.maxScrollY; + break; + case this.options.keyBindings.home: + newX = 0; + newY = 0; + break; + case this.options.keyBindings.left: + newX += snap ? -1 : 5 + this.keyAcceleration>>0; + break; + case this.options.keyBindings.up: + newY += snap ? 1 : 5 + this.keyAcceleration>>0; + break; + case this.options.keyBindings.right: + newX -= snap ? -1 : 5 + this.keyAcceleration>>0; + break; + case this.options.keyBindings.down: + newY -= snap ? 1 : 5 + this.keyAcceleration>>0; + break; + default: + return; + } + + if ( snap ) { + this.goToPage(newX, newY); + return; + } + + if ( newX > 0 ) { + newX = 0; + this.keyAcceleration = 0; + } else if ( newX < this.maxScrollX ) { + newX = this.maxScrollX; + this.keyAcceleration = 0; + } + + if ( newY > 0 ) { + newY = 0; + this.keyAcceleration = 0; + } else if ( newY < this.maxScrollY ) { + newY = this.maxScrollY; + this.keyAcceleration = 0; + } + + this.scrollTo(newX, newY, 0); + + this.keyTime = now; + }, + + _animate: function (destX, destY, duration, easingFn) { + var that = this, + startX = this.x, + startY = this.y, + startTime = utils.getTime(), + destTime = startTime + duration; + + function step () { + var now = utils.getTime(), + newX, newY, + easing; + + if ( now >= destTime ) { + that.isAnimating = false; + that._translate(destX, destY); + + if ( !that.resetPosition(that.options.bounceTime) ) { + that._execEvent('scrollEnd'); + } + + return; + } + + now = ( now - startTime ) / duration; + easing = easingFn(now); + newX = ( destX - startX ) * easing + startX; + newY = ( destY - startY ) * easing + startY; + that._translate(newX, newY); + + if ( that.isAnimating ) { + rAF(step); + } + + if ( that.options.probeType == 3 ) { + that._execEvent('scroll'); + } + } + + this.isAnimating = true; + step(); + }, + + handleEvent: function (e) { + switch ( e.type ) { + case 'touchstart': + case 'pointerdown': + case 'MSPointerDown': + case 'mousedown': + this._start(e); + break; + case 'touchmove': + case 'pointermove': + case 'MSPointerMove': + case 'mousemove': + this._move(e); + break; + case 'touchend': + case 'pointerup': + case 'MSPointerUp': + case 'mouseup': + case 'touchcancel': + case 'pointercancel': + case 'MSPointerCancel': + case 'mousecancel': + this._end(e); + break; + case 'orientationchange': + case 'resize': + this._resize(); + break; + case 'transitionend': + case 'webkitTransitionEnd': + case 'oTransitionEnd': + case 'MSTransitionEnd': + this._transitionEnd(e); + break; + case 'wheel': + case 'DOMMouseScroll': + case 'mousewheel': + this._wheel(e); + break; + case 'keydown': + this._key(e); + break; + case 'click': + if ( this.enabled && !e._constructed ) { + e.preventDefault(); + e.stopPropagation(); + } + break; + } + } +}; +function createDefaultScrollbar (direction, interactive, type) { + var scrollbar = document.createElement('div'), + indicator = document.createElement('div'); + + if ( type === true ) { + scrollbar.style.cssText = 'position:absolute;z-index:9999'; + indicator.style.cssText = '-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;position:absolute;background:rgba(0,0,0,0.5);border:1px solid rgba(255,255,255,0.9);border-radius:3px'; + } + + indicator.className = 'iScrollIndicator'; + + if ( direction == 'h' ) { + if ( type === true ) { + scrollbar.style.cssText += ';height:7px;left:2px;right:2px;bottom:0'; + indicator.style.height = '100%'; + } + scrollbar.className = 'iScrollHorizontalScrollbar'; + } else { + if ( type === true ) { + scrollbar.style.cssText += ';width:7px;bottom:2px;top:2px;right:1px'; + indicator.style.width = '100%'; + } + scrollbar.className = 'iScrollVerticalScrollbar'; + } + + scrollbar.style.cssText += ';overflow:hidden'; + + if ( !interactive ) { + scrollbar.style.pointerEvents = 'none'; + } + + scrollbar.appendChild(indicator); + + return scrollbar; +} + +function Indicator (scroller, options) { + this.wrapper = typeof options.el == 'string' ? document.querySelector(options.el) : options.el; + this.wrapperStyle = this.wrapper.style; + this.indicator = this.wrapper.children[0]; + this.indicatorStyle = this.indicator.style; + this.scroller = scroller; + + this.options = { + listenX: true, + listenY: true, + interactive: false, + resize: true, + defaultScrollbars: false, + shrink: false, + fade: false, + speedRatioX: 0, + speedRatioY: 0 + }; + + for ( var i in options ) { + this.options[i] = options[i]; + } + + this.sizeRatioX = 1; + this.sizeRatioY = 1; + this.maxPosX = 0; + this.maxPosY = 0; + + if ( this.options.interactive ) { + if ( !this.options.disableTouch ) { + utils.addEvent(this.indicator, 'touchstart', this); + utils.addEvent(window, 'touchend', this); + } + if ( !this.options.disablePointer ) { + utils.addEvent(this.indicator, utils.prefixPointerEvent('pointerdown'), this); + utils.addEvent(window, utils.prefixPointerEvent('pointerup'), this); + } + if ( !this.options.disableMouse ) { + utils.addEvent(this.indicator, 'mousedown', this); + utils.addEvent(window, 'mouseup', this); + } + } + + if ( this.options.fade ) { + this.wrapperStyle[utils.style.transform] = this.scroller.translateZ; + var durationProp = utils.style.transitionDuration; + if(!durationProp) { + return; + } + this.wrapperStyle[durationProp] = utils.isBadAndroid ? '0.0001ms' : '0ms'; + // remove 0.0001ms + var self = this; + if(utils.isBadAndroid) { + rAF(function() { + if(self.wrapperStyle[durationProp] === '0.0001ms') { + self.wrapperStyle[durationProp] = '0s'; + } + }); + } + this.wrapperStyle.opacity = '0'; + } +} + +Indicator.prototype = { + handleEvent: function (e) { + switch ( e.type ) { + case 'touchstart': + case 'pointerdown': + case 'MSPointerDown': + case 'mousedown': + this._start(e); + break; + case 'touchmove': + case 'pointermove': + case 'MSPointerMove': + case 'mousemove': + this._move(e); + break; + case 'touchend': + case 'pointerup': + case 'MSPointerUp': + case 'mouseup': + case 'touchcancel': + case 'pointercancel': + case 'MSPointerCancel': + case 'mousecancel': + this._end(e); + break; + } + }, + + destroy: function () { + if ( this.options.fadeScrollbars ) { + clearTimeout(this.fadeTimeout); + this.fadeTimeout = null; + } + if ( this.options.interactive ) { + utils.removeEvent(this.indicator, 'touchstart', this); + utils.removeEvent(this.indicator, utils.prefixPointerEvent('pointerdown'), this); + utils.removeEvent(this.indicator, 'mousedown', this); + + utils.removeEvent(window, 'touchmove', this); + utils.removeEvent(window, utils.prefixPointerEvent('pointermove'), this); + utils.removeEvent(window, 'mousemove', this); + + utils.removeEvent(window, 'touchend', this); + utils.removeEvent(window, utils.prefixPointerEvent('pointerup'), this); + utils.removeEvent(window, 'mouseup', this); + } + + if ( this.options.defaultScrollbars ) { + this.wrapper.parentNode.removeChild(this.wrapper); + } + }, + + _start: function (e) { + var point = e.touches ? e.touches[0] : e; + + e.preventDefault(); + e.stopPropagation(); + + this.transitionTime(); + + this.initiated = true; + this.moved = false; + this.lastPointX = point.pageX; + this.lastPointY = point.pageY; + + this.startTime = utils.getTime(); + + if ( !this.options.disableTouch ) { + utils.addEvent(window, 'touchmove', this); + } + if ( !this.options.disablePointer ) { + utils.addEvent(window, utils.prefixPointerEvent('pointermove'), this); + } + if ( !this.options.disableMouse ) { + utils.addEvent(window, 'mousemove', this); + } + + this.scroller._execEvent('beforeScrollStart'); + }, + + _move: function (e) { + var point = e.touches ? e.touches[0] : e, + deltaX, deltaY, + newX, newY, + timestamp = utils.getTime(); + + if ( !this.moved ) { + this.scroller._execEvent('scrollStart'); + } + + this.moved = true; + + deltaX = point.pageX - this.lastPointX; + this.lastPointX = point.pageX; + + deltaY = point.pageY - this.lastPointY; + this.lastPointY = point.pageY; + + newX = this.x + deltaX; + newY = this.y + deltaY; + + this._pos(newX, newY); + + + if ( this.scroller.options.probeType == 1 && timestamp - this.startTime > 300 ) { + this.startTime = timestamp; + this.scroller._execEvent('scroll'); + } else if ( this.scroller.options.probeType > 1 ) { + this.scroller._execEvent('scroll'); + } + + +// INSERT POINT: indicator._move + + e.preventDefault(); + e.stopPropagation(); + }, + + _end: function (e) { + if ( !this.initiated ) { + return; + } + + this.initiated = false; + + e.preventDefault(); + e.stopPropagation(); + + utils.removeEvent(window, 'touchmove', this); + utils.removeEvent(window, utils.prefixPointerEvent('pointermove'), this); + utils.removeEvent(window, 'mousemove', this); + + if ( this.scroller.options.snap ) { + var snap = this.scroller._nearestSnap(this.scroller.x, this.scroller.y); + + var time = this.options.snapSpeed || Math.max( + Math.max( + Math.min(Math.abs(this.scroller.x - snap.x), 1000), + Math.min(Math.abs(this.scroller.y - snap.y), 1000) + ), 300); + + if ( this.scroller.x != snap.x || this.scroller.y != snap.y ) { + this.scroller.directionX = 0; + this.scroller.directionY = 0; + this.scroller.currentPage = snap; + this.scroller.scrollTo(snap.x, snap.y, time, this.scroller.options.bounceEasing); + } + } + + if ( this.moved ) { + this.scroller._execEvent('scrollEnd'); + } + }, + + transitionTime: function (time) { + time = time || 0; + var durationProp = utils.style.transitionDuration; + if(!durationProp) { + return; + } + + this.indicatorStyle[durationProp] = time + 'ms'; + + if ( !time && utils.isBadAndroid ) { + this.indicatorStyle[durationProp] = '0.0001ms'; + // remove 0.0001ms + var self = this; + rAF(function() { + if(self.indicatorStyle[durationProp] === '0.0001ms') { + self.indicatorStyle[durationProp] = '0s'; + } + }); + } + }, + + transitionTimingFunction: function (easing) { + this.indicatorStyle[utils.style.transitionTimingFunction] = easing; + }, + + refresh: function () { + this.transitionTime(); + + if ( this.options.listenX && !this.options.listenY ) { + this.indicatorStyle.display = this.scroller.hasHorizontalScroll ? 'block' : 'none'; + } else if ( this.options.listenY && !this.options.listenX ) { + this.indicatorStyle.display = this.scroller.hasVerticalScroll ? 'block' : 'none'; + } else { + this.indicatorStyle.display = this.scroller.hasHorizontalScroll || this.scroller.hasVerticalScroll ? 'block' : 'none'; + } + + if ( this.scroller.hasHorizontalScroll && this.scroller.hasVerticalScroll ) { + utils.addClass(this.wrapper, 'iScrollBothScrollbars'); + utils.removeClass(this.wrapper, 'iScrollLoneScrollbar'); + + if ( this.options.defaultScrollbars && this.options.customStyle ) { + if ( this.options.listenX ) { + this.wrapper.style.right = '8px'; + } else { + this.wrapper.style.bottom = '8px'; + } + } + } else { + utils.removeClass(this.wrapper, 'iScrollBothScrollbars'); + utils.addClass(this.wrapper, 'iScrollLoneScrollbar'); + + if ( this.options.defaultScrollbars && this.options.customStyle ) { + if ( this.options.listenX ) { + this.wrapper.style.right = '2px'; + } else { + this.wrapper.style.bottom = '2px'; + } + } + } + + var r = this.wrapper.offsetHeight; // force refresh + + if ( this.options.listenX ) { + this.wrapperWidth = this.wrapper.clientWidth; + if ( this.options.resize ) { + this.indicatorWidth = Math.max(Math.round(this.wrapperWidth * this.wrapperWidth / (this.scroller.scrollerWidth || this.wrapperWidth || 1)), 8); + this.indicatorStyle.width = this.indicatorWidth + 'px'; + } else { + this.indicatorWidth = this.indicator.clientWidth; + } + + this.maxPosX = this.wrapperWidth - this.indicatorWidth; + + if ( this.options.shrink == 'clip' ) { + this.minBoundaryX = -this.indicatorWidth + 8; + this.maxBoundaryX = this.wrapperWidth - 8; + } else { + this.minBoundaryX = 0; + this.maxBoundaryX = this.maxPosX; + } + + this.sizeRatioX = this.options.speedRatioX || (this.scroller.maxScrollX && (this.maxPosX / this.scroller.maxScrollX)); + } + + if ( this.options.listenY ) { + this.wrapperHeight = this.wrapper.clientHeight; + if ( this.options.resize ) { + this.indicatorHeight = Math.max(Math.round(this.wrapperHeight * this.wrapperHeight / (this.scroller.scrollerHeight || this.wrapperHeight || 1)), 8); + this.indicatorStyle.height = this.indicatorHeight + 'px'; + } else { + this.indicatorHeight = this.indicator.clientHeight; + } + + this.maxPosY = this.wrapperHeight - this.indicatorHeight; + + if ( this.options.shrink == 'clip' ) { + this.minBoundaryY = -this.indicatorHeight + 8; + this.maxBoundaryY = this.wrapperHeight - 8; + } else { + this.minBoundaryY = 0; + this.maxBoundaryY = this.maxPosY; + } + + this.maxPosY = this.wrapperHeight - this.indicatorHeight; + this.sizeRatioY = this.options.speedRatioY || (this.scroller.maxScrollY && (this.maxPosY / this.scroller.maxScrollY)); + } + + this.updatePosition(); + }, + + updatePosition: function () { + var x = this.options.listenX && Math.round(this.sizeRatioX * this.scroller.x) || 0, + y = this.options.listenY && Math.round(this.sizeRatioY * this.scroller.y) || 0; + + if ( !this.options.ignoreBoundaries ) { + if ( x < this.minBoundaryX ) { + if ( this.options.shrink == 'scale' ) { + this.width = Math.max(this.indicatorWidth + x, 8); + this.indicatorStyle.width = this.width + 'px'; + } + x = this.minBoundaryX; + } else if ( x > this.maxBoundaryX ) { + if ( this.options.shrink == 'scale' ) { + this.width = Math.max(this.indicatorWidth - (x - this.maxPosX), 8); + this.indicatorStyle.width = this.width + 'px'; + x = this.maxPosX + this.indicatorWidth - this.width; + } else { + x = this.maxBoundaryX; + } + } else if ( this.options.shrink == 'scale' && this.width != this.indicatorWidth ) { + this.width = this.indicatorWidth; + this.indicatorStyle.width = this.width + 'px'; + } + + if ( y < this.minBoundaryY ) { + if ( this.options.shrink == 'scale' ) { + this.height = Math.max(this.indicatorHeight + y * 3, 8); + this.indicatorStyle.height = this.height + 'px'; + } + y = this.minBoundaryY; + } else if ( y > this.maxBoundaryY ) { + if ( this.options.shrink == 'scale' ) { + this.height = Math.max(this.indicatorHeight - (y - this.maxPosY) * 3, 8); + this.indicatorStyle.height = this.height + 'px'; + y = this.maxPosY + this.indicatorHeight - this.height; + } else { + y = this.maxBoundaryY; + } + } else if ( this.options.shrink == 'scale' && this.height != this.indicatorHeight ) { + this.height = this.indicatorHeight; + this.indicatorStyle.height = this.height + 'px'; + } + } + + this.x = x; + this.y = y; + + if ( this.scroller.options.useTransform ) { + this.indicatorStyle[utils.style.transform] = 'translate(' + x + 'px,' + y + 'px)' + this.scroller.translateZ; + } else { + this.indicatorStyle.left = x + 'px'; + this.indicatorStyle.top = y + 'px'; + } + }, + + _pos: function (x, y) { + if ( x < 0 ) { + x = 0; + } else if ( x > this.maxPosX ) { + x = this.maxPosX; + } + + if ( y < 0 ) { + y = 0; + } else if ( y > this.maxPosY ) { + y = this.maxPosY; + } + + x = this.options.listenX ? Math.round(x / this.sizeRatioX) : this.scroller.x; + y = this.options.listenY ? Math.round(y / this.sizeRatioY) : this.scroller.y; + + this.scroller.scrollTo(x, y); + }, + + fade: function (val, hold) { + if ( hold && !this.visible ) { + return; + } + + clearTimeout(this.fadeTimeout); + this.fadeTimeout = null; + + var time = val ? 250 : 500, + delay = val ? 0 : 300; + + val = val ? '1' : '0'; + + this.wrapperStyle[utils.style.transitionDuration] = time + 'ms'; + + this.fadeTimeout = setTimeout((function (val) { + this.wrapperStyle.opacity = val; + this.visible = +val; + }).bind(this, val), delay); + } +}; + +IScroll.utils = utils; + +if ( typeof module != 'undefined' && module.exports ) { + module.exports = IScroll; +} else if ( typeof define == 'function' && define.amd ) { + define( function () { return IScroll; } ); +} else { + window.IScroll = IScroll; +} + +})(window, document, Math); diff --git a/ext/3rd-party-addons/backend_theme_v10/static/src/font/Roboto-Regular.ttf b/ext/3rd-party-addons/backend_theme_v10/static/src/font/Roboto-Regular.ttf new file mode 100644 index 00000000..8c082c8d Binary files /dev/null and b/ext/3rd-party-addons/backend_theme_v10/static/src/font/Roboto-Regular.ttf differ diff --git a/ext/3rd-party-addons/backend_theme_v10/static/src/img/checked.svg b/ext/3rd-party-addons/backend_theme_v10/static/src/img/checked.svg new file mode 100644 index 00000000..5125976f --- /dev/null +++ b/ext/3rd-party-addons/backend_theme_v10/static/src/img/checked.svg @@ -0,0 +1,14 @@ + + + + + + + + + diff --git a/ext/3rd-party-addons/backend_theme_v10/static/src/img/material-background.jpg b/ext/3rd-party-addons/backend_theme_v10/static/src/img/material-background.jpg new file mode 100644 index 00000000..d38241ad Binary files /dev/null and b/ext/3rd-party-addons/backend_theme_v10/static/src/img/material-background.jpg differ diff --git a/ext/3rd-party-addons/backend_theme_v10/static/src/js/web_responsive.js b/ext/3rd-party-addons/backend_theme_v10/static/src/js/web_responsive.js new file mode 100644 index 00000000..8d4f6a57 --- /dev/null +++ b/ext/3rd-party-addons/backend_theme_v10/static/src/js/web_responsive.js @@ -0,0 +1,294 @@ +/* Copyright 2016 LasLabs Inc. + * License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). */ + +odoo.define('web_responsive', function(require) { + 'use strict'; + +/* var $ = require('$'); */ + var Menu = require('web.Menu'); + var Class = require('web.Class'); + var SearchView = require('web.SearchView'); + var core = require('web.core'); + + Menu.include({ + + // Force all_outside to prevent app icons from going into more menu + reflow: function() { + this._super('all_outside'); + }, + + /* Overload to collapse unwanted visible submenus + * @param allow_open bool Switch to allow submenus to be opened + */ + open_menu: function(id, allowOpen) { + this._super(id); + if (allowOpen) return; + var $clicked_menu = this.$secondary_menus.find('a[data-menu=' + id + ']'); + $clicked_menu.parents('.oe_secondary_submenu').css('display', ''); + }, + + }); + + SearchView.include({ + + // Prevent focus of search field on mobile devices + toggle_visibility: function (is_visible) { + $('div.o_searchview_input').last() + .one('focus', $.proxy(this.preventMobileFocus, this)); + return this._super(is_visible); + }, + + // It prevents focusing of search el on mobile + preventMobileFocus: function(event) { + if (this.isMobile()) { + event.preventDefault(); + } + }, + + // For lack of Modernizr, TouchEvent will do + isMobile: function () { + try{ + document.createEvent('TouchEvent'); + return true; + } catch (ex) { + return false; + } + }, + + }); + + var AppDrawer = Class.extend({ + + LEFT: 'left', + RIGHT: 'right', + UP: 'up', + DOWN: 'down', + + isOpen: false, + keyBuffer: '', + keyBufferTime: 500, + keyBufferTimeoutEvent: false, + dropdownHeightFactor: 0.90, + initialized: false, + + init: function() { + this.directionCodes = { + 'left': this.LEFT, + 'right': this.RIGHT, + 'up': this.UP, + 'pageup': this.UP, + 'down': this.DOWN, + 'pagedown': this.DOWN, + '+': this.RIGHT, + '-': this.LEFT, + }; + this.initDrawer(); + var $clickZones = $('.o_main, ' + + 'a.oe_menu_leaf, ' + + 'a.oe_menu_toggler' + ); + $clickZones.click($.proxy(this.handleClickZones, this)); + core.bus.on('resize', this, this.handleWindowResize); + core.bus.on('keydown', this, this.handleNavKeys); + }, + + // It provides initialization handlers for Drawer + initDrawer: function() { + this.$el = $('.drawer'); + this.$el.drawer(); + this.$el.one('drawer.opened', $.proxy(this.onDrawerOpen, this)); + this.$el.on('drawer.opened', function setIScrollProbes(){ + var onIScroll = function() { + var transform = (this.iScroll.y) ? this.iScroll.y * -1 : 0; + $(this).find('#appDrawerAppPanelHead').css( + 'transform', 'matrix(1, 0, 0, 1, 0, ' + transform + ')' + ); + }; + this.iScroll.options.probeType = 2; + this.iScroll.on('scroll', $.proxy(onIScroll, this)); + }); + this.initialized = true; + }, + + // It provides handlers to hide drawer when "unfocused" + handleClickZones: function() { + this.$el.drawer('close'); + $('.o_sub_menu_content') + .parent() + .collapse('hide'); + }, + + // It resizes bootstrap dropdowns for screen + handleWindowResize: function() { + $('.dropdown-scrollable').css( + 'max-height', $(window).height() * this.dropdownHeightFactor + ); + }, + + // It provides keyboard shortcuts for app drawer nav + handleNavKeys: function(e) { + if (!this.isOpen){ + return; + } + var directionCode = $.hotkeys.specialKeys[e.keyCode.toString()]; + if (Object.keys(this.directionCodes).indexOf(directionCode) !== -1) { + var $link = this.findAdjacentAppLink( + this.$el.find('a:first, a:focus').last(), + this.directionCodes[directionCode] + ); + this.selectAppLink($link); + } else if ($.hotkeys.specialKeys[e.keyCode.toString()] == 'esc') { + this.handleClickZones(); + } else { + var buffer = this.handleKeyBuffer(e.keyCode); + this.selectAppLink(this.searchAppLinks(buffer)); + } + }, + + /* It adds to keybuffer, sets expire timer, and returns buffer + * @returns str of current buffer + */ + handleKeyBuffer: function(keyCode) { + this.keyBuffer += String.fromCharCode(keyCode); + if (this.keyBufferTimeoutEvent) { + clearTimeout(this.keyBufferTimeoutEvent); + } + this.keyBufferTimeoutEvent = setTimeout( + $.proxy(this.clearKeyBuffer, this), + this.keyBufferTime + ); + return this.keyBuffer; + }, + + clearKeyBuffer: function() { + this.keyBuffer = ''; + }, + + /* It performs close actions + * @fires ``drawer.closed`` to the ``core.bus`` + * @listens ``drawer.opened`` and sends to onDrawerOpen + */ + onDrawerClose: function() { + core.bus.trigger('drawer.closed'); + this.$el.one('drawer.opened', $.proxy(this.onDrawerOpen, this)); + this.isOpen = false; + // Remove inline style inserted by drawer.js + this.$el.css("overflow", ""); + }, + + /* It finds app links and register event handlers + * @fires ``drawer.opened`` to the ``core.bus`` + * @listens ``drawer.closed`` and sends to :meth:``onDrawerClose`` + */ + onDrawerOpen: function() { + this.$appLinks = $('.app-drawer-icon-app').parent(); + this.selectAppLink($(this.$appLinks[0])); + this.$el.one('drawer.closed', $.proxy(this.onDrawerClose, this)); + core.bus.trigger('drawer.opened'); + this.isOpen = true; + }, + + // It selects an app link visibly + selectAppLink: function($appLink) { + if ($appLink) { + $appLink.focus(); + } + }, + + /* It returns first App Link by its name according to query + * @param query str to search + * @return jQuery obj + */ + searchAppLinks: function(query) { + return this.$appLinks.filter(function() { + return $(this).data('menuName').toUpperCase().startsWith(query); + }).first(); + }, + + /* It returns the link adjacent to $appLink in provided direction. + * It also handles edge cases in the following ways: + * * Moves to last link if LEFT on first + * * Moves to first link if PREV on last + * * Moves to first link of following row if RIGHT on last in row + * * Moves to last link of previous row if LEFT on first in row + * * Moves to top link in same column if DOWN on bottom row + * * Moves to bottom link in same column if UP on top row + * @param $appLink jQuery obj of App icon link + * @param direction str of direction to go (constants LEFT, UP, etc.) + * @return jQuery obj for adjacent applink + */ + findAdjacentAppLink: function($appLink, direction) { + + var obj = [], + $objs = this.$appLinks; + + switch(direction){ + case this.LEFT: + obj = $objs[$objs.index($appLink) - 1]; + if (!obj) { + obj = $objs[$objs.length - 1]; + } + break; + case this.RIGHT: + obj = $objs[$objs.index($appLink) + 1]; + if (!obj) { + obj = $objs[0]; + } + break; + case this.UP: + $objs = this.getRowObjs($appLink, this.$appLinks); + obj = $objs[$objs.index($appLink) - 1]; + if (!obj) { + obj = $objs[$objs.length - 1]; + } + break; + case this.DOWN: + $objs = this.getRowObjs($appLink, this.$appLinks); + obj = $objs[$objs.index($appLink) + 1]; + if (!obj) { + obj = $objs[0]; + } + break; + } + + if (obj.length) { + event.preventDefault(); + } + + return $(obj); + + }, + + /* It returns els in the same row + * @param @obj jQuery object to get row for + * @param $grid jQuery objects representing grid + * @return $objs jQuery objects of row + */ + getRowObjs: function($obj, $grid) { + // Filter by object which middle lies within left/right bounds + function filterWithin(left, right) { + return function() { + var $this = $(this), + thisMiddle = $this.offset().left + ($this.width() / 2); + return thisMiddle >= left && thisMiddle <= right; + }; + } + var left = $obj.offset().left, + right = left + $obj.outerWidth(); + return $grid.filter(filterWithin(left, right)); + }, + + }); + + // It inits a new AppDrawer when the web client is ready + core.bus.on('web_client_ready', null, function () { + new AppDrawer(); + }); + + return { + 'AppDrawer': AppDrawer, + 'SearchView': SearchView, + 'Menu': Menu, + }; + +}); diff --git a/ext/3rd-party-addons/backend_theme_v10/static/src/less/app_drawer.less b/ext/3rd-party-addons/backend_theme_v10/static/src/less/app_drawer.less new file mode 100644 index 00000000..0629aa95 --- /dev/null +++ b/ext/3rd-party-addons/backend_theme_v10/static/src/less/app_drawer.less @@ -0,0 +1,112 @@ +/* Copyright 2016 LasLabs Inc. + * License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). */ + +.app-drawer-nav { + border-color: @dropdown-border; + background-color: @dropdown-bg; + border: 0px solid @dropdown-fallback-border; // IE8 fallback + border: 0px solid @dropdown-border; + border-radius: 0px !important; +// -webkit-border-radius: @border-radius-base; +// -moz-border-radius: @border-radius-base; + border-radius: @border-radius-base; +// .box-shadow(0 6px 12px rgba(0, 0, 0, .175)); + background-clip: padding-box; + + .navbar-left { + width: 100%; + + li { + padding: 0; + } + } + + .app-drawer-title { + float: none; + } + + .app-drawer-panel-title { + margin-top: 4px; + } + + .app-drawer-icon-app { + height: 100%; + width: 100%; + max-width: @app-drawer-icon-size; + max-height: @app-drawer-icon-size; + object-fit: contain; + object-position: center; + } + + .panel-body { + padding-top: @app-drawer-title-height; + } + + #appDrawerAppPanelHead { + position: absolute; + height: @app-drawer-title-height; + width: 100%; + z-index: 9999; + } + +} + +.drawer-nav { + width: @app-drawer-width; + z-index: 9999; +} + +.drawer--left .drawer-nav { + left: -@app-drawer-width; +} + +.drawer--left.drawer-open .drawer-hamburger { + left: @app-drawer-width; +} + +.drawer--right .drawer-nav { + right: -@app-drawer-width; +} + +.drawer-open .oe-right-toolbar { + display: none; +} + +.drawer-closed .oe-right-toolbar { + display: block; +} + +/* App Drawer Toggle */ + +.app-drawer-toggle { + background-color: transparent; + border: none; +} + +.app-drawer-toggle.navbar-toggle { + background-color: #ee3366; + margin-left: 1em; +} + +// Add background image +.drawer-nav{ + background: transparent url('/backend_theme_v10/static/src/img/material-background.jpg') no-repeat scroll center center / cover; +} + +.app-drawer-nav .app-drawer-title { + color: #fff; + font-size: 14px; + font-weight: 600; + margin-top: 8px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +// Center app icons +.app-drawer-nav .panel-body { + margin: auto; + max-width: 768px; + padding-top: 80px; + width: 90%; +} diff --git a/ext/3rd-party-addons/backend_theme_v10/static/src/less/bootswatch/bootswatch.less b/ext/3rd-party-addons/backend_theme_v10/static/src/less/bootswatch/bootswatch.less new file mode 100644 index 00000000..d2783485 --- /dev/null +++ b/ext/3rd-party-addons/backend_theme_v10/static/src/less/bootswatch/bootswatch.less @@ -0,0 +1,60 @@ +// United 3.3.5 +// Bootswatch +// ----------------------------------------------------- + +// @import url("https://fonts.googleapis.com/css?family=Roboto:300,400,500,700"); + +@font-face { + font-family: Roboto; + src: url(/backend_theme_v10/static/src/font/Roboto-Regular.ttf) +} + +// Navbar ===================================================================== + +.navbar { + + &-default { + + .badge { + background-color: #fff; + color: @navbar-default-bg; + } + } + + &-inverse { + + .badge { + background-color: #fff; + color: @navbar-inverse-bg; + } + } +} + +@media (max-width: @grid-float-breakpoint-max) { + + .navbar { + + .dropdown-menu { + a { + color: #fff; + } + } + } +} + + +// Buttons ==================================================================== + +// Typography ================================================================= + +// Tables ===================================================================== + +// Forms ====================================================================== + +// Navs ======================================================================= + +// Indicators ================================================================= + +// Progress bars ============================================================== + +// Containers ================================================================= \ No newline at end of file diff --git a/ext/3rd-party-addons/backend_theme_v10/static/src/less/bootswatch/style.less b/ext/3rd-party-addons/backend_theme_v10/static/src/less/bootswatch/style.less new file mode 100644 index 00000000..bf8b90b4 --- /dev/null +++ b/ext/3rd-party-addons/backend_theme_v10/static/src/less/bootswatch/style.less @@ -0,0 +1,399 @@ +// Put Loading indicator in the right bottom of the screen +.o_loading { + background-color: darken(@brand-primary, 13.5%) !important; + top: inherit; + bottom: 0; + right: 0; + padding: 5px 50px; + border-radius: 0 !important; + opacity: 0.8; +} + +// Font + +.ui-autocomplete +{ + font-family: @font-family-sans-serif; +} + +a:hover { + text-decoration: none; +} + +// Adjust menu counter position + +//@-moz-document url-prefix() { +// .badge { +// margin-top: -20px; +// } +//} + +// Get rid of purple fontcolor + +body a { + color: @brand-primary; + + &:active, &:focus, &:hover { + outline: none; + } +} + +.ui-autocomplete .ui-menu-item.ui-state-focus { + background-color: @brand-primary; +} + +.o_control_panel .breadcrumb > li > a { + color: @brand-primary; +} + +.o_form_view .o_horizontal_separator { + color: @brand-primary; +} + +.o_stat_value { + color: @brand-primary !important; +} + +.o_form_view .oe_button_box .oe_stat_button .o_button_icon { + color: @brand-primary; +} + +.nav-tabs > li > a { + color: @brand-primary; +} + +.o_web_settings_dashboard .o_web_settings_dashboard_col .o_web_settings_dashboard_planner .o_web_settings_dashboard_progress_title { + color: @brand-primary !important +} + +.o_calendar_container .o_calendar_sidebar_container .ui-datepicker table .ui-state-active { + background: @brand-primary none repeat scroll 0 0 !important; + color: #ffffff !important; +} + +.o_calendar_container .o_calendar_sidebar_container .ui-datepicker table.ui-datepicker-calendar tbody td a { + color: @brand-primary; +} + +.o_progressbar { + color: @brand-primary; +} + +.o_progressbar .o_progress .o_progressbar_complete { + background-color: @brand-primary; +} + +.o_web_client .o_kanban_view.o_kanban_dashboard.o_kanban_ungrouped a, .o_web_client .o_kanban_view.o_kanban_dashboard.o_kanban_grouped a { + color: @brand-primary; +} + + +// Navbar ========================================= +#oe_main_menu_navbar { + .box-shadow(0px 0px 8px #666666); + border: none; + .navbar-collapse { + padding-right: 16px; + padding-left: 16px; + } +} + +#oe_main_menu_navbar, +.navbar-nav { + li { + a, button { + font-size: 13px !important; + // padding: 14px 10px !important; + margin-top: 0 !important; + line-height: 21px !important; + } + } + .dropdown-menu { + li { + a, button { + padding: 4px 10px !important; + font-size: 13px !important; + } + } + } +} + +// Fix color Add file button +.o_control_panel .o_cp_sidebar .o_hidden_input_file .o_form_binary_form span { + color: #333; +} + +// Align green progress indicator +#oe_main_menu_navbar .o_planner_systray > .progress { + margin-top: 18px !important; +} + +// Add some space in button groups +//.btn-group > .btn, .btn-group-vertical > .btn { +// float: left; +// margin: 3px; +// position: relative; +//} + +// Bigger font in buttons + +.btn-sm, .btn-group-sm > .btn { + font-size: 13px; +} + +// ========================================= +// Make formwidth wider to screen + +.o_form_view .o_form_sheet_bg .o_form_sheet { + max-width: 1200px; +} + +// Darker background +.o_form_view .o_form_sheet_bg { + background-color: #8f8f8f; + background-image: none; + border: 0 none; +} + + +.o_web_client > .o_main .o_main_content { + background-color: #8f8f8f; +} + +.o_kanban_view { + background-color: #8f8f8f; +} + +.o_event_left { + background-color: @brand-primary !important; +} + + +// Fix background project gantt +.oe_gantt { + background-color: #fff; +} + +// Listview ======================================= + +.o_list_view.table { + border: none; +} +.o_list_view.table thead, .o_list_view.table tfoot, .o_list_view.table td,.o_list_view.table th { + border: none; +} + +.o_list_view.table thead { + background-color: #e2e2e0; +} + +.o_list_view.table thead > tr > th.o_column_sortable:hover { + background-color: #D6D6D3; +} + +.o_list_view.table tbody tr.o_group_header { + background-color: #dfdfdf; + background-image: none; + border-top: 1px solid #e2e2e0; +} + +.table-striped > tbody > tr:nth-of-type(2n+1) { + background-color: #eef0f0; +} + +.o_list_view tfoot { + background-color: @brand-primary; + color: #ffffff; + cursor: default; + font-weight: normal; +} + +// Checkbox ========================================== +div.o_checkbox { + display: inline-block; + position: relative; + vertical-align: sub; +} + +div.o_checkbox > input { + width: 15px; + height: 15px; + margin: 0; + opacity: 0; + position: absolute; + top: auto; + left: auto; + bottom: auto; + right: auto; + cursor: pointer; +} + +div.o_checkbox > input + span { + display: block; + width: 15px; + height: 15px; + border: 1px solid #8f8f8f; + background-color: white; +} + +div.o_checkbox > input:checked + span { + background-repeat: no-repeat; + background-image: url(/backend_theme_v10/static/src/img/checked.svg); + background-position: center center; +} + +div.o_checkbox > input:disabled + span { + opacity: 0.7; + border: 1px solid #e2e2e0; +} + + div.o_checkbox > input:focus + span { + outline: 1px solid @brand-primary; +} + +// Kanban =========================================== + +//Project +.o_kanban_view.o_kanban_dashboard.o_project_kanban .o_project_kanban_boxes .o_project_kanban_box:nth-child(2n+1) { + background-color: @brand-primary !important; + } + +// Search filter + +.o_searchview .o_searchview_facet .o_searchview_facet_label { + background-color: @brand-primary; + } + + +.o_primary { + color: @brand-primary !important; + } + +.o_kanban_view.o_kanban_dashboard.o_salesteam_kanban .o_sales_dashboard > div > table > tbody > tr > td.o_main { + background-color: @brand-primary !important; + } + +// Input field + +input[type="text"], input[type="password"], input[type="number"], +textarea, select, .o_form_view.o_form_editable .o_form_field_many2manytags, +.o_searchview +{ + border: 0; + border-radius: 0; + border-bottom: 1px solid #ccc; +} + +.o_web_client input:focus, .o_web_client textarea:focus, .o_web_client select:focus { + outline: none; + border-bottom: 2px solid @brand-info; +} + +// Control panel + +.breadcrumb { + background-color: transparent; + padding: 0; +} + +// Make lookup button background transparent +.o_form_view .o_form_field.o_form_field_many2one .o_external_button { + color: @brand-primary; + background-color: transparent; +} + +// Button header +.o_form_view > header { + background-color: #ededed; + background-image: none; + border-bottom: 1px solid #cacaca; +} + +.o_form_view > header { + padding-left: 14px; + padding-top: 2px; + padding-bottom: 2px; +} + +// Status bar + +.o_form_view ul.oe_form_status li, .o_form_view ul.oe_form_status_clickable li { + background-image: linear-gradient(to bottom, #ededed, #ededed) !important; +} + +.o_form_view ul.oe_form_status li > .arrow, .o_form_view ul.oe_form_status_clickable li > .arrow { + margin-left: 5px !important; +} + +.o_form_view ul.oe_form_status li > .arrow span, .o_form_view ul.oe_form_status_clickable li > .arrow span { + margin-left: -20px !important; + box-shadow: 2px 0px 1px rgba(255, 255, 255, 0.2), inset -3px 3px 0px rgba(0, 0, 0, 0.2) !important; + background-color: #ededed !important; + background: -moz-linear-gradient(135deg, #ededed, #ededed) !important; + background: -o-linear-gradient(135deg, #ededed, #ededed) !important; + background: -webkit-gradient(linear, left top, right bottom, from(#ededed), to(#ededed)) !important; + background: -ms-linear-gradient(top, #ededed, #ededed) !important; + -moz-border-radius: 0px !important; + -webkit-border-radius: 0px !important; + border-radius: 0px !important; + +} + +.o_form_view ul.oe_form_status li.oe_active > .arrow span, .o_form_view ul.oe_form_status_clickable li.oe_active > .arrow span { + box-shadow: 2px 0px 1px rgba(255, 255, 255, 0.2), inset -3px 3px 0px @brand-info !important; + background-color: #ededed !important; + background: -moz-linear-gradient(135deg, #ededed, #ededed) !important; + background: -o-linear-gradient(135deg, #ededed, #ededed) !important; + background: -webkit-gradient(linear, left top, right bottom, from(#ededed), to(#ededed)) !important; + background: -ms-linear-gradient(top, #ededed, #ededed) !important; +} + + +.o_form_view ul.oe_form_status li.oe_active > .label, .o_form_view ul.oe_form_status_clickable li.oe_active > .label { + color: @brand-info !important; + font-weight: bold; + text-shadow: 0 1px 1px #ededed !important; +} + +.o_form_view ul.oe_form_status li:first-child > .label, .o_form_view ul.oe_form_status_clickable li:first-child > .label { + border-left: 0px solid #cacaca !important; +} + +// Chat window + +.o_chat_window .o_chat_header { + background-color: @brand-primary !important; +} + +// Explorer 11 fix to use fullscreen + +@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) { + + .oe-view-manager-view-kanban, .oe-view-manager-view-form, .oe-view-manager-view-list, .oe-view-manager-view-calendar, .oe-view-manager-view-pivot, .oe-view-manager-view-graph { + width: 100% !important; + } + + // Fix user preference height + .modal .modal-content .modal-body .oe-view-manager-content { + position: static; + height: 400px; + } + + // Fix salesboard width + .oe-view-manager-view-sales_team_dashboard { + width: 100%; + } + +} + +// Better contrast navnar sub-menu + +.dropdown-header { + font-weight: bolder; + background-color: @dropdown-border; +} + +// Better contrast no-content +.oe_view_nocontent { +color: #333; +} \ No newline at end of file diff --git a/ext/3rd-party-addons/backend_theme_v10/static/src/less/bootswatch/variables.less b/ext/3rd-party-addons/backend_theme_v10/static/src/less/bootswatch/variables.less new file mode 100644 index 00000000..f36fd162 --- /dev/null +++ b/ext/3rd-party-addons/backend_theme_v10/static/src/less/bootswatch/variables.less @@ -0,0 +1,849 @@ +// United 3.3.5 +// Variables +// -------------------------------------------------- + + +//== Colors +// +//## Gray and brand colors for use across Bootstrap. + +@gray-base: #000; +@gray-darker: lighten(@gray-base, 13.5%); // #222 +@gray-dark: #333; // #333 +@gray: #777; // #555 +@gray-light: #AEA79F; // #999 +@gray-lighter: lighten(@gray-base, 93.5%); // #eee + +@brand-primary: #337AB7; +@brand-success: #38B44A; +@brand-info: #337AB7; // same color als primary +@brand-warning: #EFB73E; +@brand-danger: #DF382C; + +@odoo-brand-primary: @brand-primary; +@odoo-brand-optional: @brand-primary; +@odoo-brand-secondary: #f0eeee; +@odoo-brand-lightsecondary: #e2e2e0; + +@odoo-color-pink: @brand-primary; +@odoo-main-color-muted: #a8a8a8; +@odoo-main-text-color: #4c4c4c; + +@odoo-view-background-color: white; +@odoo-shadow-color: #303030; + +//== Scaffolding +// +//## Settings for some of the most global styles. + +//** Background color for ``. +@body-bg: #fff; +//** Global text color on ``. +@text-color: @gray-dark; + +//** Global textual link color. +@link-color: @brand-primary; +//** Link hover color set via `darken()` function. +@link-hover-color: darken(@link-color, 15%); +//** Link hover decoration. +@link-hover-decoration: underline; + + +//== Typography +// +//## Font, line-height, and color for body text, headings, and more. + +@font-family-sans-serif: "Roboto", "Helvetica Neue", Helvetica, Arial, sans-serif; +@font-family-serif: Georgia, "Times New Roman", Times, serif; +//** Default monospace fonts for ``, ``, and `
`.
+@font-family-monospace:   Menlo, Monaco, Consolas, "Courier New", monospace;
+@font-family-base:        @font-family-sans-serif;
+
+@font-size-base:          13px;
+@font-size-large:         ceil((@font-size-base * 1.25)); // ~18px
+@font-size-small:         ceil((@font-size-base * 0.85)); // ~12px
+
+@font-size-h1:            floor((@font-size-base * 2.6)); // ~36px
+@font-size-h2:            floor((@font-size-base * 2.15)); // ~30px
+@font-size-h3:            ceil((@font-size-base * 1.7)); // ~24px
+@font-size-h4:            ceil((@font-size-base * 1.25)); // ~18px
+@font-size-h5:            @font-size-base;
+@font-size-h6:            ceil((@font-size-base * 0.85)); // ~12px
+
+//** Unit-less `line-height` for use in components like buttons.
+@line-height-base:        1.428571429; // 20/14
+//** Computed "line-height" (`font-size` * `line-height`) for use with `margin`, `padding`, etc.
+@line-height-computed:    floor((@font-size-base * @line-height-base)); // ~20px
+
+//** By default, this inherits from the ``.
+@headings-font-family:    @font-family-base;
+@headings-font-weight:    500;
+@headings-line-height:    1.1;
+@headings-color:          inherit;
+
+
+//== Iconography
+//
+//## Specify custom location and filename of the included Glyphicons icon font. Useful for those including Bootstrap via Bower.
+
+//** Load fonts from this directory.
+@icon-font-path:          "../fonts/";
+//** File name for all font files.
+@icon-font-name:          "glyphicons-halflings-regular";
+//** Element ID within SVG icon file.
+@icon-font-svg-id:        "glyphicons_halflingsregular";
+
+
+//== Components
+//
+//## Define common padding and border radius sizes and more. Values based on 14px text and 1.428 line-height (~20px to start).
+
+@padding-base-vertical:     8px;
+@padding-base-horizontal:   12px;
+
+@padding-large-vertical:    14px;
+@padding-large-horizontal:  16px;
+
+@padding-small-vertical:    5px;
+@padding-small-horizontal:  10px;
+
+@padding-xs-vertical:       1px;
+@padding-xs-horizontal:     5px;
+
+@line-height-large:         1.3333333; // extra decimals for Win 8.1 Chrome
+@line-height-small:         1.5;
+
+@border-radius-base:        4px;
+@border-radius-large:       6px;
+@border-radius-small:       3px;
+
+//** Global color for active items (e.g., navs or dropdowns).
+@component-active-color:    #fff;
+//** Global background color for active items (e.g., navs or dropdowns).
+@component-active-bg:       @brand-primary;
+
+//** Width of the `border` for generating carets that indicator dropdowns.
+@caret-width-base:          4px;
+//** Carets increase slightly in size for larger components.
+@caret-width-large:         5px;
+
+
+//== Tables
+//
+//## Customizes the `.table` component with basic values, each used across all table variations.
+
+//** Padding for ``s and ``s.
+@table-cell-padding:            8px;
+//** Padding for cells in `.table-condensed`.
+@table-condensed-cell-padding:  5px;
+
+//** Default background color used for all tables.
+@table-bg:                      transparent;
+//** Background color used for `.table-striped`.
+@table-bg-accent:               #f9f9f9;
+//** Background color used for `.table-hover`.
+@table-bg-hover:                #f5f5f5;
+@table-bg-active:               @table-bg-hover;
+
+//** Border color for table and cell borders.
+@table-border-color:            #ddd;
+
+
+//== Buttons
+//
+//## For each of Bootstrap's buttons, define text, background and border color.
+
+@btn-font-weight:                normal;
+
+@btn-default-color:              #fff;
+@btn-default-bg:                 @gray-light;
+@btn-default-border:             @btn-default-bg;
+
+@btn-primary-color:              @btn-default-color;
+@btn-primary-bg:                 @brand-primary;
+@btn-primary-border:             @btn-primary-bg;
+
+@btn-success-color:              @btn-default-color;
+@btn-success-bg:                 @brand-success;
+@btn-success-border:             @btn-success-bg;
+
+@btn-info-color:                 @btn-default-color;
+@btn-info-bg:                    @brand-info;
+@btn-info-border:                @btn-info-bg;
+
+@btn-warning-color:              @btn-default-color;
+@btn-warning-bg:                 @brand-warning;
+@btn-warning-border:             @btn-warning-bg;
+
+@btn-danger-color:               @btn-default-color;
+@btn-danger-bg:                  @brand-danger;
+@btn-danger-border:              @btn-danger-bg;
+
+@btn-link-disabled-color:        @gray-light;
+
+// Allows for customizing button radius independently from global border radius
+@btn-border-radius-base:         @border-radius-base;
+@btn-border-radius-large:        @border-radius-large;
+@btn-border-radius-small:        @border-radius-small;
+
+
+//== Forms
+//
+//##
+
+//** `` background color
+@input-bg:                       #fff;
+//** `` background color
+@input-bg-disabled:              @gray-lighter;
+
+//** Text color for ``s
+@input-color:                    @text-color;
+//** `` border color
+@input-border:                   #ccc;
+
+// TODO: Rename `@input-border-radius` to `@input-border-radius-base` in v4
+//** Default `.form-control` border radius
+// This has no effect on ``s in CSS.
+@input-border-radius:            @border-radius-base;
+//** Large `.form-control` border radius
+@input-border-radius-large:      @border-radius-large;
+//** Small `.form-control` border radius
+@input-border-radius-small:      @border-radius-small;
+
+//** Border color for inputs on focus
+@input-border-focus:             #66afe9;
+
+//** Placeholder text color
+@input-color-placeholder:        @gray-light;
+
+//** Default `.form-control` height
+@input-height-base:              (@line-height-computed + (@padding-base-vertical * 2) + 2);
+//** Large `.form-control` height
+@input-height-large:             (ceil(@font-size-large * @line-height-large) + (@padding-large-vertical * 2) + 2);
+//** Small `.form-control` height
+@input-height-small:             (floor(@font-size-small * @line-height-small) + (@padding-small-vertical * 2) + 2);
+
+//** `.form-group` margin
+@form-group-margin-bottom:       15px;
+
+@legend-color:                   @text-color;
+@legend-border-color:            #e5e5e5;
+
+//** Background color for textual input addons
+@input-group-addon-bg:           @gray-lighter;
+//** Border color for textual input addons
+@input-group-addon-border-color: @input-border;
+
+//** Disabled cursor for form controls and buttons.
+@cursor-disabled:                not-allowed;
+
+
+//== Dropdowns
+//
+//## Dropdown menu container and contents.
+
+//** Background for the dropdown menu.
+@dropdown-bg:                    #fff;
+//** Dropdown menu `border-color`.
+@dropdown-border:                rgba(0,0,0,.15);
+//** Dropdown menu `border-color` **for IE8**.
+@dropdown-fallback-border:       #ccc;
+//** Divider color for between dropdown items.
+@dropdown-divider-bg:            #e5e5e5;
+
+//** Dropdown link text color.
+@dropdown-link-color:            @gray-dark;
+//** Hover color for dropdown links.
+@dropdown-link-hover-color:      #fff;
+//** Hover background for dropdown links.
+@dropdown-link-hover-bg:         @component-active-bg;
+
+//** Active dropdown menu item text color.
+@dropdown-link-active-color:     #fff;
+//** Active dropdown menu item background color.
+@dropdown-link-active-bg:        @component-active-bg;
+
+//** Disabled dropdown menu item background color.
+@dropdown-link-disabled-color:   @gray-light;
+
+//** Text color for headers within dropdown menus.
+@dropdown-header-color:          @gray-light;
+
+//** Deprecated `@dropdown-caret-color` as of v3.1.0
+@dropdown-caret-color:           #000;
+
+
+//-- Z-index master list
+//
+// Warning: Avoid customizing these values. They're used for a bird's eye view
+// of components dependent on the z-axis and are designed to all work together.
+//
+// Note: These variables are not generated into the Customizer.
+
+@zindex-navbar:            1000;
+@zindex-dropdown:          1000;
+@zindex-popover:           1060;
+@zindex-tooltip:           1070;
+@zindex-navbar-fixed:      1030;
+@zindex-modal-background:  1040;
+@zindex-modal:             1050;
+
+
+//== Media queries breakpoints
+//
+//## Define the breakpoints at which your layout will change, adapting to different screen sizes.
+
+// Extra small screen / phone
+//** Deprecated `@screen-xs` as of v3.0.1
+@screen-xs:                  480px;
+//** Deprecated `@screen-xs-min` as of v3.2.0
+@screen-xs-min:              @screen-xs;
+//** Deprecated `@screen-phone` as of v3.0.1
+@screen-phone:               @screen-xs-min;
+
+// Small screen / tablet
+//** Deprecated `@screen-sm` as of v3.0.1
+@screen-sm:                  768px;
+@screen-sm-min:              @screen-sm;
+//** Deprecated `@screen-tablet` as of v3.0.1
+@screen-tablet:              @screen-sm-min;
+
+// Medium screen / desktop
+//** Deprecated `@screen-md` as of v3.0.1
+@screen-md:                  992px;
+@screen-md-min:              @screen-md;
+//** Deprecated `@screen-desktop` as of v3.0.1
+@screen-desktop:             @screen-md-min;
+
+// Large screen / wide desktop
+//** Deprecated `@screen-lg` as of v3.0.1
+@screen-lg:                  1200px;
+@screen-lg-min:              @screen-lg;
+//** Deprecated `@screen-lg-desktop` as of v3.0.1
+@screen-lg-desktop:          @screen-lg-min;
+
+// So media queries don't overlap when required, provide a maximum
+@screen-xs-max:              (@screen-sm-min - 1);
+@screen-sm-max:              (@screen-md-min - 1);
+@screen-md-max:              (@screen-lg-min - 1);
+
+
+//== Grid system
+//
+//## Define your custom responsive grid.
+
+//** Number of columns in the grid.
+@grid-columns:              12;
+//** Padding between columns. Gets divided in half for the left and right.
+@grid-gutter-width:         30px;
+// Navbar collapse
+//** Point at which the navbar becomes uncollapsed.
+@grid-float-breakpoint:     @screen-sm-min;
+//** Point at which the navbar begins collapsing.
+@grid-float-breakpoint-max: (@grid-float-breakpoint - 1);
+
+
+//== Container sizes
+//
+//## Define the maximum width of `.container` for different screen sizes.
+
+// Small screen / tablet
+@container-tablet:             (720px + @grid-gutter-width);
+//** For `@screen-sm-min` and up.
+@container-sm:                 @container-tablet;
+
+// Medium screen / desktop
+@container-desktop:            (940px + @grid-gutter-width);
+//** For `@screen-md-min` and up.
+@container-md:                 @container-desktop;
+
+// Large screen / wide desktop
+@container-large-desktop:      (1140px + @grid-gutter-width);
+//** For `@screen-lg-min` and up.
+@container-lg:                 @container-large-desktop;
+
+
+//== Navbar
+//
+//##
+
+// Basics of a navbar
+@navbar-height:                    50px;
+@navbar-margin-bottom:             @line-height-computed;
+@navbar-border-radius:             @border-radius-base;
+@navbar-padding-horizontal:        floor((@grid-gutter-width / 2));
+@navbar-padding-vertical:          ((@navbar-height - @line-height-computed) / 2);
+@navbar-collapse-max-height:       340px;
+
+@navbar-default-color:             #fff;
+@navbar-default-bg:                @brand-primary;
+@navbar-default-border:            darken(@navbar-default-bg, 6.5%);
+
+// Navbar links
+@navbar-default-link-color:                #fff;
+@navbar-default-link-hover-color:          #fff;
+@navbar-default-link-hover-bg:             darken(@navbar-default-bg, 15%);
+@navbar-default-link-active-color:         #fff;
+@navbar-default-link-active-bg:            darken(@navbar-default-bg, 10%);
+@navbar-default-link-disabled-color:       #ccc;
+@navbar-default-link-disabled-bg:          transparent;
+
+// Navbar brand label
+@navbar-default-brand-color:               @navbar-default-link-color;
+@navbar-default-brand-hover-color:         #fff;
+@navbar-default-brand-hover-bg:            none;
+
+// Navbar toggle
+@navbar-default-toggle-hover-bg:           darken(@navbar-default-bg, 15%);
+@navbar-default-toggle-icon-bar-bg:        #fff;
+@navbar-default-toggle-border-color:       darken(@navbar-default-bg, 15%);
+
+
+//=== Inverted navbar
+// Reset inverted navbar basics
+@navbar-inverse-color:                      #fff;
+@navbar-inverse-bg:                         @brand-info;
+@navbar-inverse-border:                     darken(@navbar-inverse-bg, 10%);
+
+// Inverted navbar links
+@navbar-inverse-link-color:                 #fff;
+@navbar-inverse-link-hover-color:           #fff;
+@navbar-inverse-link-hover-bg:              darken(@navbar-inverse-bg, 15%);
+@navbar-inverse-link-active-color:          @navbar-inverse-link-hover-color;
+@navbar-inverse-link-active-bg:             darken(@navbar-inverse-bg, 10%);
+@navbar-inverse-link-disabled-color:        #ccc;
+@navbar-inverse-link-disabled-bg:           transparent;
+
+// Inverted navbar brand label
+@navbar-inverse-brand-color:                @navbar-inverse-link-color;
+@navbar-inverse-brand-hover-color:          #fff;
+@navbar-inverse-brand-hover-bg:             none;
+
+// Inverted navbar toggle
+@navbar-inverse-toggle-hover-bg:            darken(@navbar-inverse-bg, 15%);
+@navbar-inverse-toggle-icon-bar-bg:         #fff;
+@navbar-inverse-toggle-border-color:        darken(@navbar-inverse-bg, 15%);
+
+
+//== Navs
+//
+//##
+
+//=== Shared nav styles
+@nav-link-padding:                          10px 15px;
+@nav-link-hover-bg:                         @gray-lighter;
+
+@nav-disabled-link-color:                   @gray-light;
+@nav-disabled-link-hover-color:             @gray-light;
+
+//== Tabs
+@nav-tabs-border-color:                     #ddd;
+
+@nav-tabs-link-hover-border-color:          @gray-lighter;
+
+@nav-tabs-active-link-hover-bg:             @body-bg;
+@nav-tabs-active-link-hover-color:          @gray;
+@nav-tabs-active-link-hover-border-color:   #ddd;
+
+@nav-tabs-justified-link-border-color:            #ddd;
+@nav-tabs-justified-active-link-border-color:     @body-bg;
+
+//== Pills
+@nav-pills-border-radius:                   @border-radius-base;
+@nav-pills-active-link-hover-bg:            @component-active-bg;
+@nav-pills-active-link-hover-color:         @component-active-color;
+
+
+//== Pagination
+//
+//##
+
+@pagination-color:                     @link-color;
+@pagination-bg:                        #fff;
+@pagination-border:                    #ddd;
+
+@pagination-hover-color:               @link-hover-color;
+@pagination-hover-bg:                  @gray-lighter;
+@pagination-hover-border:              #ddd;
+
+@pagination-active-color:              @gray-light;
+@pagination-active-bg:                 #f5f5f5;
+@pagination-active-border:             #ddd;
+
+@pagination-disabled-color:            @gray-light;
+@pagination-disabled-bg:               #fff;
+@pagination-disabled-border:           #ddd;
+
+
+//== Pager
+//
+//##
+
+@pager-bg:                             @pagination-bg;
+@pager-border:                         @pagination-border;
+@pager-border-radius:                  15px;
+
+@pager-hover-bg:                       @pagination-hover-bg;
+
+@pager-active-bg:                      @pagination-active-bg;
+@pager-active-color:                   @pagination-active-color;
+
+@pager-disabled-color:                 @gray-light;
+
+
+//== Jumbotron
+//
+//##
+
+@jumbotron-padding:              30px;
+@jumbotron-color:                inherit;
+@jumbotron-bg:                   @gray-lighter;
+@jumbotron-heading-color:        inherit;
+@jumbotron-font-size:            ceil((@font-size-base * 1.5));
+@jumbotron-heading-font-size:    ceil((@font-size-base * 4.5));
+
+
+//== Form states and alerts
+//
+//## Define colors for form feedback states and, by default, alerts.
+
+@state-success-text:             #468847;
+@state-success-bg:               #dff0d8;
+@state-success-border:           darken(spin(@state-success-bg, -10), 5%);
+
+@state-info-text:                #3a87ad;
+@state-info-bg:                  #d9edf7;
+@state-info-border:              darken(spin(@state-info-bg, -10), 7%);
+
+@state-warning-text:             #c09853;
+@state-warning-bg:               #fcf8e3;
+@state-warning-border:           darken(spin(@state-warning-bg, -10), 3%);
+
+@state-danger-text:              #b94a48;
+@state-danger-bg:                #f2dede;
+@state-danger-border:            darken(spin(@state-danger-bg, -10), 3%);
+
+
+//== Tooltips
+//
+//##
+
+//** Tooltip max width
+@tooltip-max-width:           200px;
+//** Tooltip text color
+@tooltip-color:               #fff;
+//** Tooltip background color
+@tooltip-bg:                  #000;
+@tooltip-opacity:             .9;
+
+//** Tooltip arrow width
+@tooltip-arrow-width:         5px;
+//** Tooltip arrow color
+@tooltip-arrow-color:         @tooltip-bg;
+
+
+//== Labels
+//
+//##
+
+//** Default label background color
+@label-default-bg:            @btn-default-bg;
+//** Primary label background color
+@label-primary-bg:            @brand-primary;
+//** Success label background color
+@label-success-bg:            @brand-success;
+//** Info label background color
+@label-info-bg:               @brand-info;
+//** Warning label background color
+@label-warning-bg:            @brand-warning;
+//** Danger label background color
+@label-danger-bg:             @brand-danger;
+
+//** Default label text color
+@label-color:                 #fff;
+//** Default text color of a linked label
+@label-link-hover-color:      #fff;
+
+
+//== Modals
+//
+//##
+
+//** Padding applied to the modal body
+@modal-inner-padding:         20px;
+
+//** Padding applied to the modal title
+@modal-title-padding:         15px;
+//** Modal title line-height
+@modal-title-line-height:     @line-height-base;
+
+//** Background color of modal content area
+@modal-content-bg:                             #fff;
+//** Modal content border color
+@modal-content-border-color:                   rgba(0,0,0,.2);
+//** Modal content border color **for IE8**
+@modal-content-fallback-border-color:          #999;
+
+//** Modal backdrop background color
+@modal-backdrop-bg:           #000;
+//** Modal backdrop opacity
+@modal-backdrop-opacity:      .5;
+//** Modal header border color
+@modal-header-border-color:   #e5e5e5;
+//** Modal footer border color
+@modal-footer-border-color:   @modal-header-border-color;
+
+@modal-lg:                    900px;
+@modal-md:                    600px;
+@modal-sm:                    300px;
+
+
+//== Alerts
+//
+//## Define alert colors, border radius, and padding.
+
+@alert-padding:               15px;
+@alert-border-radius:         @border-radius-base;
+@alert-link-font-weight:      bold;
+
+@alert-success-bg:            @state-success-bg;
+@alert-success-text:          @state-success-text;
+@alert-success-border:        @state-success-border;
+
+@alert-info-bg:               @state-info-bg;
+@alert-info-text:             @state-info-text;
+@alert-info-border:           @state-info-border;
+
+@alert-warning-bg:            @state-warning-bg;
+@alert-warning-text:          @state-warning-text;
+@alert-warning-border:        @state-warning-border;
+
+@alert-danger-bg:             @state-danger-bg;
+@alert-danger-text:           @state-danger-text;
+@alert-danger-border:         @state-danger-border;
+
+
+//== Progress bars
+//
+//##
+
+//** Background color of the whole progress component
+@progress-bg:                 #f5f5f5;
+//** Progress bar text color
+@progress-bar-color:          #fff;
+//** Variable for setting rounded corners on progress bar.
+@progress-border-radius:      @border-radius-base;
+
+//** Default progress bar color
+@progress-bar-bg:             @brand-primary;
+//** Success progress bar color
+@progress-bar-success-bg:     @brand-success;
+//** Warning progress bar color
+@progress-bar-warning-bg:     @brand-warning;
+//** Danger progress bar color
+@progress-bar-danger-bg:      @brand-danger;
+//** Info progress bar color
+@progress-bar-info-bg:        @brand-info;
+
+
+//== List group
+//
+//##
+
+//** Background color on `.list-group-item`
+@list-group-bg:                 #fff;
+//** `.list-group-item` border color
+@list-group-border:             #ddd;
+//** List group border radius
+@list-group-border-radius:      @border-radius-base;
+
+//** Background color of single list items on hover
+@list-group-hover-bg:           #f5f5f5;
+//** Text color of active list items
+@list-group-active-color:       @component-active-color;
+//** Background color of active list items
+@list-group-active-bg:          @component-active-bg;
+//** Border color of active list elements
+@list-group-active-border:      @list-group-active-bg;
+//** Text color for content within active list items
+@list-group-active-text-color:  lighten(@list-group-active-bg, 40%);
+
+//** Text color of disabled list items
+@list-group-disabled-color:      @gray-light;
+//** Background color of disabled list items
+@list-group-disabled-bg:         @gray-lighter;
+//** Text color for content within disabled list items
+@list-group-disabled-text-color: @list-group-disabled-color;
+
+@list-group-link-color:         #555;
+@list-group-link-hover-color:   @list-group-link-color;
+@list-group-link-heading-color: #333;
+
+
+//== Panels
+//
+//##
+
+@panel-bg:                    #fff;
+@panel-body-padding:          15px;
+@panel-heading-padding:       10px 15px;
+@panel-footer-padding:        @panel-heading-padding;
+@panel-border-radius:         @border-radius-base;
+
+//** Border color for elements within panels
+@panel-inner-border:          #ddd;
+@panel-footer-bg:             #f5f5f5;
+
+@panel-default-text:          @gray-dark;
+@panel-default-border:        #ddd;
+@panel-default-heading-bg:    #f5f5f5;
+
+@panel-primary-text:          #fff;
+@panel-primary-border:        @brand-primary;
+@panel-primary-heading-bg:    @brand-primary;
+
+@panel-success-text:          @state-success-text;
+@panel-success-border:        @state-success-border;
+@panel-success-heading-bg:    @state-success-bg;
+
+@panel-info-text:             @state-info-text;
+@panel-info-border:           @state-info-border;
+@panel-info-heading-bg:       @state-info-bg;
+
+@panel-warning-text:          @state-warning-text;
+@panel-warning-border:        @state-warning-border;
+@panel-warning-heading-bg:    @state-warning-bg;
+
+@panel-danger-text:           @state-danger-text;
+@panel-danger-border:         @state-danger-border;
+@panel-danger-heading-bg:     @state-danger-bg;
+
+
+//== Thumbnails
+//
+//##
+
+//** Padding around the thumbnail image
+@thumbnail-padding:           4px;
+//** Thumbnail background color
+@thumbnail-bg:                @body-bg;
+//** Thumbnail border color
+@thumbnail-border:            #ddd;
+//** Thumbnail border radius
+@thumbnail-border-radius:     @border-radius-base;
+
+//** Custom text color for thumbnail captions
+@thumbnail-caption-color:     @text-color;
+//** Padding around the thumbnail caption
+@thumbnail-caption-padding:   9px;
+
+
+//== Wells
+//
+//##
+
+@well-bg:                     #f5f5f5;
+@well-border:                 darken(@well-bg, 7%);
+
+
+//== Badges
+//
+//##
+
+@badge-color:                 #fff;
+//** Linked badge text color on hover
+@badge-link-hover-color:      #fff;
+@badge-bg:                    @gray-light;
+
+//** Badge text color in active nav link
+@badge-active-color:          @link-color;
+//** Badge background color in active nav link
+@badge-active-bg:             #fff;
+
+@badge-font-weight:           bold;
+@badge-line-height:           1;
+@badge-border-radius:         10px;
+
+
+//== Breadcrumbs
+//
+//##
+
+@breadcrumb-padding-vertical:   8px;
+@breadcrumb-padding-horizontal: 15px;
+//** Breadcrumb background color
+@breadcrumb-bg:                 #f5f5f5;
+//** Breadcrumb text color
+@breadcrumb-color:              #ccc;
+//** Text color of current page in the breadcrumb
+@breadcrumb-active-color:       @gray-light;
+//** Textual separator for between breadcrumb elements
+@breadcrumb-separator:          "/";
+
+
+//== Carousel
+//
+//##
+
+@carousel-text-shadow:                        0 1px 2px rgba(0,0,0,.6);
+
+@carousel-control-color:                      #fff;
+@carousel-control-width:                      15%;
+@carousel-control-opacity:                    .5;
+@carousel-control-font-size:                  20px;
+
+@carousel-indicator-active-bg:                #fff;
+@carousel-indicator-border-color:             #fff;
+
+@carousel-caption-color:                      #fff;
+
+
+//== Close
+//
+//##
+
+@close-font-weight:           bold;
+@close-color:                 #000;
+@close-text-shadow:           0 1px 0 #fff;
+
+
+//== Code
+//
+//##
+
+@code-color:                  #c7254e;
+@code-bg:                     #f9f2f4;
+
+@kbd-color:                   #fff;
+@kbd-bg:                      #333;
+
+@pre-bg:                      #f5f5f5;
+@pre-color:                   @gray-dark;
+@pre-border-color:            #ccc;
+@pre-scrollable-max-height:   340px;
+
+
+//== Type
+//
+//##
+
+//** Horizontal offset for forms and lists.
+@component-offset-horizontal: 180px;
+//** Text muted color
+@text-muted:                  @gray-light;
+//** Abbreviations and acronyms border color
+@abbr-border-color:           @gray-light;
+//** Headings small color
+@headings-small-color:        @gray-light;
+//** Blockquote small color
+@blockquote-small-color:      @gray-light;
+//** Blockquote font size
+@blockquote-font-size:        (@font-size-base * 1.25);
+//** Blockquote border color
+@blockquote-border-color:     @gray-lighter;
+//** Page header border color
+@page-header-border-color:    @gray-lighter;
+//** Width of horizontal description list titles
+@dl-horizontal-offset:        @component-offset-horizontal;
+//** Horizontal line color.
+@hr-border:                   @gray-lighter;
diff --git a/ext/3rd-party-addons/backend_theme_v10/static/src/less/main.less b/ext/3rd-party-addons/backend_theme_v10/static/src/less/main.less
new file mode 100644
index 00000000..ed02cfba
--- /dev/null
+++ b/ext/3rd-party-addons/backend_theme_v10/static/src/less/main.less
@@ -0,0 +1,24 @@
+/* Copyright 2016 LasLabs Inc.
+ * License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). */
+
+body {
+    width: 100%;
+    height: 100%;
+
+    // Do not fix the search part, it's too big for small screens
+    @media (max-width: @screen-sm-max) {
+        overflow: inherit;
+        .o_main {
+            .oe-view-manager {
+                overflow: inherit;
+            }
+        }
+    }
+}
+
+main {
+    width: 100%;
+    height: 100%;
+    overflow: hidden;
+}
+
diff --git a/ext/3rd-party-addons/backend_theme_v10/static/src/less/navbar.less b/ext/3rd-party-addons/backend_theme_v10/static/src/less/navbar.less
new file mode 100644
index 00000000..798ae085
--- /dev/null
+++ b/ext/3rd-party-addons/backend_theme_v10/static/src/less/navbar.less
@@ -0,0 +1,58 @@
+/* Copyright 2016 LasLabs Inc.
+ * License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). */
+
+.main-nav {
+    margin-bottom: 0;
+    min-height: @app-drawer-navbar-height;
+}
+
+.main-nav ul.nav > li > a {
+    padding: @app-drawer-navbar-padding-vertical @app-drawer-padding-horizontal;
+}
+
+.oe_topbar_avatar {
+    margin-top: -@app-drawer-padding-horizontal;
+    height: @app-drawer-navbar-height;
+    border-radius: 50%;
+}
+
+a.navbar-collapse.collapse {
+    @media (min-width: @screen-sm) {
+        padding-bottom: @app-drawer-navbar-padding-vertical;
+        padding-top: @app-drawer-navbar-padding-vertical;
+    }
+}
+
+.dropdown-scrollable {
+    overflow-x: hidden;
+}
+
+@media (max-width: @screen-xs-max) {
+    #odooMenuBarNav[aria-expanded="false"] {
+        /* Hack to hide the visibly expanded mobile menu on load. */
+        position: absolute;
+        z-index: -9999;
+    }
+}
+
+
+.navbar {
+    border-radius: 0px;
+}
+
+.panel-heading {
+   border-top-left-radius: 0px;
+    border-top-right-radius: 0px;
+}
+
+.container > .navbar-header, .container-fluid > .navbar-header, .container > .navbar-collapse, .container-fluid > .navbar-collapse {
+    margin-left: -15px;
+    margin-right: 0;
+}
+
+.app-name {
+	color: white;
+    font-size: 22px;
+    font-weight: 500;
+    margin-right: 25px;
+}
diff --git a/ext/3rd-party-addons/backend_theme_v10/static/src/less/variables.less b/ext/3rd-party-addons/backend_theme_v10/static/src/less/variables.less
new file mode 100644
index 00000000..555e12c5
--- /dev/null
+++ b/ext/3rd-party-addons/backend_theme_v10/static/src/less/variables.less
@@ -0,0 +1,13 @@
+/* Copyright 2016 LasLabs Inc.
+ * License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). */
+
+// App Drawer / Icons
+@app-drawer-icon-size:      6em;
+@app-drawer-icon-margin:    1em;
+@app-drawer-width:          100%;
+@app-drawer-title-height:   @navbar-height;
+
+// Navbar
+@app-drawer-navbar-height:  @navbar-height / 2;
+@app-drawer-navbar-padding-vertical: @navbar-padding-vertical / 2;
+@app-drawer-padding-horizontal: @navbar-padding-horizontal / 2;
diff --git a/ext/3rd-party-addons/backend_theme_v10/views/assets.xml b/ext/3rd-party-addons/backend_theme_v10/views/assets.xml
new file mode 100644
index 00000000..49d32f5b
--- /dev/null
+++ b/ext/3rd-party-addons/backend_theme_v10/views/assets.xml
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+	
+    
+
diff --git a/ext/3rd-party-addons/web_environment_ribbon/README.rst b/ext/3rd-party-addons/web_environment_ribbon/README.rst
new file mode 100644
index 00000000..f4f1edcc
--- /dev/null
+++ b/ext/3rd-party-addons/web_environment_ribbon/README.rst
@@ -0,0 +1,73 @@
+.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg
+   :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
+   :alt: License: AGPL-3
+
+======================
+Web Environment Ribbon
+======================
+
+Mark a Test Environment with a red ribbon on the top left corner in every page
+
+.. image:: /web_environment_ribbon/static/description/screenshot.png
+    :alt: Screenshot
+
+Installation
+============
+
+No special setup
+
+Configuration
+=============
+
+* You can change the ribbon's name ("TEST") by editing the default system
+  parameter "ribbon.name" (in the menu Settings > Parameters > System
+  Parameters) To hide the ribbon, set this parameter to "False" or delete it.
+* You can customize the ribbon color and background color through system
+  parameters: "ribbon.color", "ribbon.background.color". Fill with valid CSS
+  colors or just set to "False" to use default values.
+* You can add the database name in the ribbon by adding "{db_name}" in the
+  system parameter "ribbon.name".
+
+Usage
+=====
+
+To use this module, you need only to install it. After installation, a red
+ribbon will be visible on top left corner of every Odoo backend page
+
+.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas
+   :alt: Try me on Runbot
+   :target: https://runbot.odoo-community.org/runbot/162/10.0
+
+Bug Tracker
+===========
+
+Bugs are tracked on `GitHub Issues
+`_. In case of trouble, please
+check there if your issue has already been reported. If you spotted it first,
+help us smashing it by providing a detailed and welcomed feedback.
+
+Credits
+=======
+
+Contributors
+------------
+
+* Francesco Apruzzese 
+* Javi Melendez 
+* Antonio Espinosa 
+* Thomas Binsfeld 
+
+Maintainer
+----------
+
+.. image:: https://odoo-community.org/logo.png
+   :alt: Odoo Community Association
+   :target: https://odoo-community.org
+
+This module is maintained by the OCA.
+
+OCA, or the Odoo Community Association, is a nonprofit organization whose
+mission is to support the collaborative development of Odoo features and
+promote its widespread use.
+
+To contribute to this module, please visit https://odoo-community.org.
diff --git a/ext/3rd-party-addons/web_environment_ribbon/__init__.py b/ext/3rd-party-addons/web_environment_ribbon/__init__.py
new file mode 100644
index 00000000..548366e6
--- /dev/null
+++ b/ext/3rd-party-addons/web_environment_ribbon/__init__.py
@@ -0,0 +1,6 @@
+# -*- coding: utf-8 -*-
+# Copyright 2015 Francesco OpenCode Apruzzese 
+# Copyright 2016 Antonio Espinosa 
+# Copyright 2017 Thomas Binsfeld 
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
+from . import models
diff --git a/ext/3rd-party-addons/web_environment_ribbon/__manifest__.py b/ext/3rd-party-addons/web_environment_ribbon/__manifest__.py
new file mode 100644
index 00000000..f54195c8
--- /dev/null
+++ b/ext/3rd-party-addons/web_environment_ribbon/__manifest__.py
@@ -0,0 +1,27 @@
+# -*- coding: utf-8 -*-
+# Copyright 2015 Francesco OpenCode Apruzzese 
+# Copyright 2016 Antonio Espinosa 
+# Copyright 2017 Thomas Binsfeld 
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
+
+{
+    'name': "Web Environment Ribbon",
+    'version': '10.0.1.0.0',
+    'category': 'Web',
+    'author': 'Francesco OpenCode Apruzzese, '
+              'Tecnativa, '
+              'Odoo Community Association (OCA)',
+    'website': 'https://it.linkedin.com/in/francescoapruzzese',
+    'license': 'AGPL-3',
+    "depends": [
+        'web',
+        ],
+    "data": [
+        'view/base_view.xml',
+        'data/ribbon_data.xml',
+        ],
+    "update_xml": [],
+    "demo_xml": [],
+    "auto_install": False,
+    'installable': True
+}
diff --git a/ext/3rd-party-addons/web_environment_ribbon/data/ribbon_data.xml b/ext/3rd-party-addons/web_environment_ribbon/data/ribbon_data.xml
new file mode 100644
index 00000000..0ba37985
--- /dev/null
+++ b/ext/3rd-party-addons/web_environment_ribbon/data/ribbon_data.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+    ribbon.name
+    ({db_name})]]>
+
+
+
+
+    ribbon.color
+    #f0f0f0
+
+
+
+
+    ribbon.background.color
+    rgba(255,0,0,.6)
+
+
+
diff --git a/ext/3rd-party-addons/web_environment_ribbon/i18n/de.po b/ext/3rd-party-addons/web_environment_ribbon/i18n/de.po
new file mode 100644
index 00000000..63ae96fb
--- /dev/null
+++ b/ext/3rd-party-addons/web_environment_ribbon/i18n/de.po
@@ -0,0 +1,39 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * web_environment_ribbon
+# 
+# Translators:
+# Niki Waibel , 2017
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 10.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-07-13 16:06+0000\n"
+"PO-Revision-Date: 2017-07-13 16:06+0000\n"
+"Last-Translator: Niki Waibel , 2017\n"
+"Language-Team: German (https://www.transifex.com/oca/teams/23907/de/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: de\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: web_environment_ribbon
+#: model:ir.model.fields,field_description:web_environment_ribbon.field_web_environment_ribbon_backend_display_name
+msgid "Display Name"
+msgstr "Anzeigename"
+
+#. module: web_environment_ribbon
+#: model:ir.model.fields,field_description:web_environment_ribbon.field_web_environment_ribbon_backend_id
+msgid "ID"
+msgstr "ID"
+
+#. module: web_environment_ribbon
+#: model:ir.model.fields,field_description:web_environment_ribbon.field_web_environment_ribbon_backend___last_update
+msgid "Last Modified on"
+msgstr ""
+
+#. module: web_environment_ribbon
+#: model:ir.model,name:web_environment_ribbon.model_web_environment_ribbon_backend
+msgid "Web Environment Ribbon Backend"
+msgstr ""
diff --git a/ext/3rd-party-addons/web_environment_ribbon/i18n/fr.po b/ext/3rd-party-addons/web_environment_ribbon/i18n/fr.po
new file mode 100644
index 00000000..9353a08c
--- /dev/null
+++ b/ext/3rd-party-addons/web_environment_ribbon/i18n/fr.po
@@ -0,0 +1,40 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * web_environment_ribbon
+# 
+# Translators:
+# OCA Transbot , 2017
+# Quentin THEURET , 2017
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 10.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-07-26 02:44+0000\n"
+"PO-Revision-Date: 2017-07-26 02:44+0000\n"
+"Last-Translator: Quentin THEURET , 2017\n"
+"Language-Team: French (https://www.transifex.com/oca/teams/23907/fr/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: fr\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#. module: web_environment_ribbon
+#: model:ir.model.fields,field_description:web_environment_ribbon.field_web_environment_ribbon_backend_display_name
+msgid "Display Name"
+msgstr "Nom affiché"
+
+#. module: web_environment_ribbon
+#: model:ir.model.fields,field_description:web_environment_ribbon.field_web_environment_ribbon_backend_id
+msgid "ID"
+msgstr "ID"
+
+#. module: web_environment_ribbon
+#: model:ir.model.fields,field_description:web_environment_ribbon.field_web_environment_ribbon_backend___last_update
+msgid "Last Modified on"
+msgstr "Dernière modification le"
+
+#. module: web_environment_ribbon
+#: model:ir.model,name:web_environment_ribbon.model_web_environment_ribbon_backend
+msgid "Web Environment Ribbon Backend"
+msgstr "Backend du bandeau de l'environnement Web"
diff --git a/ext/3rd-party-addons/web_environment_ribbon/i18n/hr.po b/ext/3rd-party-addons/web_environment_ribbon/i18n/hr.po
new file mode 100644
index 00000000..0a98d335
--- /dev/null
+++ b/ext/3rd-party-addons/web_environment_ribbon/i18n/hr.po
@@ -0,0 +1,39 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * web_environment_ribbon
+# 
+# Translators:
+# Bole , 2017
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 10.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-07-13 16:06+0000\n"
+"PO-Revision-Date: 2017-07-13 16:06+0000\n"
+"Last-Translator: Bole , 2017\n"
+"Language-Team: Croatian (https://www.transifex.com/oca/teams/23907/hr/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: hr\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+
+#. module: web_environment_ribbon
+#: model:ir.model.fields,field_description:web_environment_ribbon.field_web_environment_ribbon_backend_display_name
+msgid "Display Name"
+msgstr "Naziv za prikaz"
+
+#. module: web_environment_ribbon
+#: model:ir.model.fields,field_description:web_environment_ribbon.field_web_environment_ribbon_backend_id
+msgid "ID"
+msgstr "ID"
+
+#. module: web_environment_ribbon
+#: model:ir.model.fields,field_description:web_environment_ribbon.field_web_environment_ribbon_backend___last_update
+msgid "Last Modified on"
+msgstr "Zadnje modificirano"
+
+#. module: web_environment_ribbon
+#: model:ir.model,name:web_environment_ribbon.model_web_environment_ribbon_backend
+msgid "Web Environment Ribbon Backend"
+msgstr ""
diff --git a/ext/3rd-party-addons/web_environment_ribbon/i18n/nl_NL.po b/ext/3rd-party-addons/web_environment_ribbon/i18n/nl_NL.po
new file mode 100644
index 00000000..bf79a0ea
--- /dev/null
+++ b/ext/3rd-party-addons/web_environment_ribbon/i18n/nl_NL.po
@@ -0,0 +1,39 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * web_environment_ribbon
+# 
+# Translators:
+# Peter Hageman , 2017
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 10.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-07-13 16:06+0000\n"
+"PO-Revision-Date: 2017-07-13 16:06+0000\n"
+"Last-Translator: Peter Hageman , 2017\n"
+"Language-Team: Dutch (Netherlands) (https://www.transifex.com/oca/teams/23907/nl_NL/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: nl_NL\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: web_environment_ribbon
+#: model:ir.model.fields,field_description:web_environment_ribbon.field_web_environment_ribbon_backend_display_name
+msgid "Display Name"
+msgstr "Weergavenaam"
+
+#. module: web_environment_ribbon
+#: model:ir.model.fields,field_description:web_environment_ribbon.field_web_environment_ribbon_backend_id
+msgid "ID"
+msgstr "ID"
+
+#. module: web_environment_ribbon
+#: model:ir.model.fields,field_description:web_environment_ribbon.field_web_environment_ribbon_backend___last_update
+msgid "Last Modified on"
+msgstr ""
+
+#. module: web_environment_ribbon
+#: model:ir.model,name:web_environment_ribbon.model_web_environment_ribbon_backend
+msgid "Web Environment Ribbon Backend"
+msgstr ""
diff --git a/ext/3rd-party-addons/web_environment_ribbon/i18n/pt_BR.po b/ext/3rd-party-addons/web_environment_ribbon/i18n/pt_BR.po
new file mode 100644
index 00000000..46eb9d7e
--- /dev/null
+++ b/ext/3rd-party-addons/web_environment_ribbon/i18n/pt_BR.po
@@ -0,0 +1,39 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * web_environment_ribbon
+# 
+# Translators:
+# Rodrigo de Almeida Sottomaior Macedo , 2017
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 10.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-07-13 16:06+0000\n"
+"PO-Revision-Date: 2017-07-13 16:06+0000\n"
+"Last-Translator: Rodrigo de Almeida Sottomaior Macedo , 2017\n"
+"Language-Team: Portuguese (Brazil) (https://www.transifex.com/oca/teams/23907/pt_BR/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: pt_BR\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#. module: web_environment_ribbon
+#: model:ir.model.fields,field_description:web_environment_ribbon.field_web_environment_ribbon_backend_display_name
+msgid "Display Name"
+msgstr "Exibir Nome"
+
+#. module: web_environment_ribbon
+#: model:ir.model.fields,field_description:web_environment_ribbon.field_web_environment_ribbon_backend_id
+msgid "ID"
+msgstr "Identificação"
+
+#. module: web_environment_ribbon
+#: model:ir.model.fields,field_description:web_environment_ribbon.field_web_environment_ribbon_backend___last_update
+msgid "Last Modified on"
+msgstr "Última Modificação em"
+
+#. module: web_environment_ribbon
+#: model:ir.model,name:web_environment_ribbon.model_web_environment_ribbon_backend
+msgid "Web Environment Ribbon Backend"
+msgstr ""
diff --git a/ext/3rd-party-addons/web_environment_ribbon/i18n/sl.po b/ext/3rd-party-addons/web_environment_ribbon/i18n/sl.po
new file mode 100644
index 00000000..d07c1c5f
--- /dev/null
+++ b/ext/3rd-party-addons/web_environment_ribbon/i18n/sl.po
@@ -0,0 +1,39 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * web_environment_ribbon
+# 
+# Translators:
+# OCA Transbot , 2017
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 10.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-07-13 16:06+0000\n"
+"PO-Revision-Date: 2017-07-13 16:06+0000\n"
+"Last-Translator: OCA Transbot , 2017\n"
+"Language-Team: Slovenian (https://www.transifex.com/oca/teams/23907/sl/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: sl\n"
+"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n"
+
+#. module: web_environment_ribbon
+#: model:ir.model.fields,field_description:web_environment_ribbon.field_web_environment_ribbon_backend_display_name
+msgid "Display Name"
+msgstr ""
+
+#. module: web_environment_ribbon
+#: model:ir.model.fields,field_description:web_environment_ribbon.field_web_environment_ribbon_backend_id
+msgid "ID"
+msgstr "ID"
+
+#. module: web_environment_ribbon
+#: model:ir.model.fields,field_description:web_environment_ribbon.field_web_environment_ribbon_backend___last_update
+msgid "Last Modified on"
+msgstr ""
+
+#. module: web_environment_ribbon
+#: model:ir.model,name:web_environment_ribbon.model_web_environment_ribbon_backend
+msgid "Web Environment Ribbon Backend"
+msgstr ""
diff --git a/ext/3rd-party-addons/web_environment_ribbon/models/__init__.py b/ext/3rd-party-addons/web_environment_ribbon/models/__init__.py
new file mode 100644
index 00000000..18368b47
--- /dev/null
+++ b/ext/3rd-party-addons/web_environment_ribbon/models/__init__.py
@@ -0,0 +1 @@
+from . import web_environment_ribbon_backend
diff --git a/ext/3rd-party-addons/web_environment_ribbon/models/web_environment_ribbon_backend.py b/ext/3rd-party-addons/web_environment_ribbon/models/web_environment_ribbon_backend.py
new file mode 100644
index 00000000..b6ba8c16
--- /dev/null
+++ b/ext/3rd-party-addons/web_environment_ribbon/models/web_environment_ribbon_backend.py
@@ -0,0 +1,38 @@
+# -*- coding: utf-8 -*-
+# Copyright 2017 ACSONE SA/NV
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
+
+from openerp import api, models
+
+
+class WebEnvironmentRibbonBackend(models.AbstractModel):
+
+    _name = 'web.environment.ribbon.backend'
+    _description = 'Web Environment Ribbon Backend'
+
+    @api.model
+    def _prepare_ribbon_format_vals(self):
+        return {
+            'db_name': self.env.cr.dbname,
+        }
+
+    @api.model
+    def _prepare_ribbon_name(self):
+        name_tmpl = self.env['ir.config_parameter'].get_param('ribbon.name')
+        vals = self._prepare_ribbon_format_vals()
+        return name_tmpl.format(**vals)
+
+    @api.model
+    def get_environment_ribbon(self):
+        """
+        This method returns the ribbon data from ir config parameters
+        :return: dictionary
+        """
+        ir_config_model = self.env['ir.config_parameter']
+        name = self._prepare_ribbon_name()
+        return {
+            'name': name,
+            'color': ir_config_model.get_param('ribbon.color'),
+            'background_color': ir_config_model.get_param(
+                'ribbon.background.color'),
+        }
diff --git a/ext/3rd-party-addons/web_environment_ribbon/static/description/icon.png b/ext/3rd-party-addons/web_environment_ribbon/static/description/icon.png
new file mode 100644
index 00000000..78b52ae9
Binary files /dev/null and b/ext/3rd-party-addons/web_environment_ribbon/static/description/icon.png differ
diff --git a/ext/3rd-party-addons/web_environment_ribbon/static/description/screenshot.png b/ext/3rd-party-addons/web_environment_ribbon/static/description/screenshot.png
new file mode 100644
index 00000000..30245656
Binary files /dev/null and b/ext/3rd-party-addons/web_environment_ribbon/static/description/screenshot.png differ
diff --git a/ext/3rd-party-addons/web_environment_ribbon/static/src/css/ribbon.css b/ext/3rd-party-addons/web_environment_ribbon/static/src/css/ribbon.css
new file mode 100644
index 00000000..462cd2ff
--- /dev/null
+++ b/ext/3rd-party-addons/web_environment_ribbon/static/src/css/ribbon.css
@@ -0,0 +1,28 @@
+/* Copyright 2015 Francesco OpenCode Apruzzese 
+   Copyright 2017 Thomas Binsfeld 
+ * License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). */
+
+.test-ribbon{
+    width: 300px;
+    top: 25px;
+    left: -100px;
+    text-align: center;
+    padding: 10px;
+    line-height: 20px;
+    letter-spacing: 1px;
+    color: #f0f0f0;
+    -webkit-transform: rotate(-45deg);
+    -ms-transform: rotate(-45deg);
+    -moz-transform: rotate(-45deg);
+    -o-transform: rotate(-45deg);
+    transform: rotate(-45deg);
+    z-index: 9999;
+    position: fixed;
+    box-shadow: 0 0 3px rgba(0,0,0,.3);
+    background: rgba(255,0,0,.6);
+    pointer-events: none;
+}
+
+.test-ribbon b {
+    font-size: 20px;
+}
diff --git a/ext/3rd-party-addons/web_environment_ribbon/static/src/js/ribbon.js b/ext/3rd-party-addons/web_environment_ribbon/static/src/js/ribbon.js
new file mode 100644
index 00000000..2fe154a1
--- /dev/null
+++ b/ext/3rd-party-addons/web_environment_ribbon/static/src/js/ribbon.js
@@ -0,0 +1,54 @@
+/* Copyright 2015 Sylvain Calador 
+   Copyright 2015 Javi Melendez 
+   Copyright 2016 Antonio Espinosa 
+   Copyright 2017 Thomas Binsfeld 
+ * License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). */
+
+odoo.define('web_environment_ribbon.ribbon', function(require) {
+"use strict";
+
+var $ = require('jquery');
+var Model = require('web.Model');
+var core = require('web.core');
+
+var backend_model = new Model('web.environment.ribbon.backend');
+
+// Code from: http://jsfiddle.net/WK_of_Angmar/xgA5C/
+function validStrColour(strToTest) {
+    if (strToTest === "") { return false; }
+    if (strToTest === "inherit") { return true; }
+    if (strToTest === "transparent") { return true; }
+    var image = document.createElement("img");
+    image.style.color = "rgb(0, 0, 0)";
+    image.style.color = strToTest;
+    if (image.style.color !== "rgb(0, 0, 0)") { return true; }
+    image.style.color = "rgb(255, 255, 255)";
+    image.style.color = strToTest;
+    return image.style.color !== "rgb(255, 255, 255)";
+}
+
+core.bus.on('web_client_ready', null, function () {
+    var ribbon = $('
'); + $('body').append(ribbon); + ribbon.hide(); + // Get ribbon data from backend + backend_model.call('get_environment_ribbon').then( + function (ribbon_data) { + // Ribbon name + if (ribbon_data.name && ribbon_data.name != 'False') { + ribbon.html(ribbon_data.name); + ribbon.show(); + } + // Ribbon color + if (ribbon_data.color && validStrColour(ribbon_data.color)) { + ribbon.css('color', ribbon_data.color); + } + // Ribbon background color + if (ribbon_data.background_color && validStrColour(ribbon_data.background_color)) { + ribbon.css('background-color', ribbon_data.background_color); + } + } + ); +}); + +}); // odoo.define diff --git a/ext/3rd-party-addons/web_environment_ribbon/view/base_view.xml b/ext/3rd-party-addons/web_environment_ribbon/view/base_view.xml new file mode 100644 index 00000000..f2a8d790 --- /dev/null +++ b/ext/3rd-party-addons/web_environment_ribbon/view/base_view.xml @@ -0,0 +1,18 @@ + + + + + + + + diff --git a/ext/3rd-party-addons/web_shortcut/tests/__init__.py b/ext/3rd-party-addons/web_shortcut/tests/__init__.py new file mode 100644 index 00000000..cdafbd7b --- /dev/null +++ b/ext/3rd-party-addons/web_shortcut/tests/__init__.py @@ -0,0 +1,5 @@ +# -*- coding: utf-8 -*- +# Copyright 2017-today Onestein () +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from . import test_web_shortcut diff --git a/ext/3rd-party-addons/web_shortcut/tests/test_web_shortcut.py b/ext/3rd-party-addons/web_shortcut/tests/test_web_shortcut.py new file mode 100644 index 00000000..feb3fea0 --- /dev/null +++ b/ext/3rd-party-addons/web_shortcut/tests/test_web_shortcut.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +# Copyright 2017-today Onestein () +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from odoo.tests.common import TransactionCase + + +class TestWebShortcut(TransactionCase): + def setUp(self, *args, **kwargs): + super(TestWebShortcut, self).setUp(*args, **kwargs) + self.shortcut_obj = self.env['web.shortcut'] + self.menu_obj = self.env['ir.ui.menu'] + + self.menu = self.env.ref('base.menu_ir_property') + self.user = self.env.ref('base.user_root') + + self.shortcut_obj.search([('user_id', '=', self.user.id)]).unlink() + + def test_web_shortcut(self): + res = self.shortcut_obj.get_user_shortcuts() + self.assertEqual(len(res), 0) + self.shortcut_obj.create({ + 'name': 'Test', + 'menu_id': self.menu.id, + 'user_id': self.env.user.id + }) + res = self.shortcut_obj.get_user_shortcuts() + self.assertEqual(len(res), 1) + self.menu.unlink() + res = self.shortcut_obj.get_user_shortcuts() + self.assertEqual(len(res), 0) diff --git a/ext/3rd-party-addons/web_translate_dialog/README.rst b/ext/3rd-party-addons/web_translate_dialog/README.rst new file mode 100644 index 00000000..82080f27 --- /dev/null +++ b/ext/3rd-party-addons/web_translate_dialog/README.rst @@ -0,0 +1,73 @@ +.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 + +==================== +Web Translate Dialog +==================== + +This module replaces the standard translation view by an easy-to-use pop-up +view where you can translate all the fields of the object in all the installed +languages (for long-time users, it may remind them the translation pop-up of +OpenERP 6.1). + +This module also features: + +* A *Translate* button item in the *More* menu +* Support for HTML fields +* Autosize the textareas to the size of the content + +Usage +===== + +Go to an object that has translatable fields (*Products* for example) and +select *More > Translate* (or click on *Edit* and then click on the flag at +the top-right of one of the translatable fields): the translation view will +pop-up on your screen. This translation view contains all the translatable +fields of the object. + +If you click in the standard translate icon then the translation view will +pop-up with this field only. + +.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas + :alt: Try me on Runbot + :target: https://runbot.odoo-community.org/runbot/162/10.0 + + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues +`_. In case of trouble, please +check there if your issue has already been reported. If you spotted it first, +help us smashing it by providing a detailed and welcomed feedback. + +Credits +======= + +Images +------ + +* Odoo Community Association: `Icon `_. + +Contributors +------------ + +* Guewen Baconnier (Camptocamp) +* Antonio Espinosa +* Serpent Consulting Services Pvt. Ltd. + +Maintainer +---------- + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +This module is maintained by the OCA. + +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. + +To contribute to this module, please visit https://odoo-community.org. diff --git a/ext/3rd-party-addons/web_translate_dialog/__init__.py b/ext/3rd-party-addons/web_translate_dialog/__init__.py new file mode 100644 index 00000000..f7b72023 --- /dev/null +++ b/ext/3rd-party-addons/web_translate_dialog/__init__.py @@ -0,0 +1,4 @@ +# -*- coding: utf-8 -*- +# Copyright 2012 Guewen Baconnier (Camptocamp SA) +# Copyright 2016 Antonio Espinosa +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). diff --git a/ext/3rd-party-addons/web_translate_dialog/__manifest__.py b/ext/3rd-party-addons/web_translate_dialog/__manifest__.py new file mode 100644 index 00000000..c3caa46e --- /dev/null +++ b/ext/3rd-party-addons/web_translate_dialog/__manifest__.py @@ -0,0 +1,27 @@ +# -*- coding: utf-8 -*- +# Copyright 2012 Guewen Baconnier (Camptocamp SA) +# Copyright 2016 Antonio Espinosa +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +{ + "name": "Web Translate Dialog", + "summary": "Easy-to-use pop-up to translate fields in several languages", + "version": "10.0.1.0.0", + "category": "Web", + "website": "https://odoo-community.org/", + "author": "Camptocamp, " + "Tecnativa, " + "Odoo Community Association (OCA)", + "license": "AGPL-3", + "application": False, + 'installable': True, + "depends": [ + "web", + ], + "data": [ + "view/web_translate.xml", + ], + "qweb": [ + "static/src/xml/base.xml", + ] +} diff --git a/ext/3rd-party-addons/web_translate_dialog/i18n/ar.po b/ext/3rd-party-addons/web_translate_dialog/i18n/ar.po new file mode 100644 index 00000000..08768576 --- /dev/null +++ b/ext/3rd-party-addons/web_translate_dialog/i18n/ar.po @@ -0,0 +1,54 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * web_translate_dialog +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-28 18:03+0000\n" +"PO-Revision-Date: 2017-04-28 18:03+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Arabic (https://www.transifex.com/oca/teams/23907/ar/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: ar\n" +"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" + +#. module: web_translate_dialog +#. openerp-web +#: code:addons/web_translate_dialog/static/src/xml/base.xml:47 +#, python-format +msgid "Cancel" +msgstr "إلغاء" + +#. module: web_translate_dialog +#. openerp-web +#: code:addons/web_translate_dialog/static/src/xml/base.xml:14 +#, python-format +msgid "Field" +msgstr "الحقل" + +#. module: web_translate_dialog +#. openerp-web +#: code:addons/web_translate_dialog/static/src/xml/base.xml:44 +#, python-format +msgid "Save" +msgstr "حفظ" + +#. module: web_translate_dialog +#. openerp-web +#: code:addons/web_translate_dialog/static/src/js/web_translate_dialog.js:192 +#, python-format +msgid "Translate" +msgstr "ترجم" + +#. module: web_translate_dialog +#. openerp-web +#: code:addons/web_translate_dialog/static/src/js/web_translate_dialog.js:23 +#, python-format +msgid "Translations" +msgstr "الترجمات" diff --git a/ext/3rd-party-addons/web_translate_dialog/i18n/de.po b/ext/3rd-party-addons/web_translate_dialog/i18n/de.po new file mode 100644 index 00000000..6582f786 --- /dev/null +++ b/ext/3rd-party-addons/web_translate_dialog/i18n/de.po @@ -0,0 +1,54 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * web_translate_dialog +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-28 18:03+0000\n" +"PO-Revision-Date: 2017-04-28 18:03+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: German (https://www.transifex.com/oca/teams/23907/de/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: de\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: web_translate_dialog +#. openerp-web +#: code:addons/web_translate_dialog/static/src/xml/base.xml:47 +#, python-format +msgid "Cancel" +msgstr "Abbrechen" + +#. module: web_translate_dialog +#. openerp-web +#: code:addons/web_translate_dialog/static/src/xml/base.xml:14 +#, python-format +msgid "Field" +msgstr "Feld" + +#. module: web_translate_dialog +#. openerp-web +#: code:addons/web_translate_dialog/static/src/xml/base.xml:44 +#, python-format +msgid "Save" +msgstr "Speichern" + +#. module: web_translate_dialog +#. openerp-web +#: code:addons/web_translate_dialog/static/src/js/web_translate_dialog.js:192 +#, python-format +msgid "Translate" +msgstr "Übersetze" + +#. module: web_translate_dialog +#. openerp-web +#: code:addons/web_translate_dialog/static/src/js/web_translate_dialog.js:23 +#, python-format +msgid "Translations" +msgstr "Übersetzungen" diff --git a/ext/3rd-party-addons/web_translate_dialog/i18n/es.po b/ext/3rd-party-addons/web_translate_dialog/i18n/es.po new file mode 100644 index 00000000..06943a8f --- /dev/null +++ b/ext/3rd-party-addons/web_translate_dialog/i18n/es.po @@ -0,0 +1,54 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * web_translate_dialog +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-28 18:03+0000\n" +"PO-Revision-Date: 2017-04-28 18:03+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Spanish (https://www.transifex.com/oca/teams/23907/es/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: es\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: web_translate_dialog +#. openerp-web +#: code:addons/web_translate_dialog/static/src/xml/base.xml:47 +#, python-format +msgid "Cancel" +msgstr "Cancelar" + +#. module: web_translate_dialog +#. openerp-web +#: code:addons/web_translate_dialog/static/src/xml/base.xml:14 +#, python-format +msgid "Field" +msgstr "Campo" + +#. module: web_translate_dialog +#. openerp-web +#: code:addons/web_translate_dialog/static/src/xml/base.xml:44 +#, python-format +msgid "Save" +msgstr "Guardar" + +#. module: web_translate_dialog +#. openerp-web +#: code:addons/web_translate_dialog/static/src/js/web_translate_dialog.js:192 +#, python-format +msgid "Translate" +msgstr "Traducir" + +#. module: web_translate_dialog +#. openerp-web +#: code:addons/web_translate_dialog/static/src/js/web_translate_dialog.js:23 +#, python-format +msgid "Translations" +msgstr "Traducciones" diff --git a/ext/3rd-party-addons/web_translate_dialog/i18n/fi.po b/ext/3rd-party-addons/web_translate_dialog/i18n/fi.po new file mode 100644 index 00000000..2e48e96c --- /dev/null +++ b/ext/3rd-party-addons/web_translate_dialog/i18n/fi.po @@ -0,0 +1,54 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * web_translate_dialog +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-28 18:03+0000\n" +"PO-Revision-Date: 2017-04-28 18:03+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Finnish (https://www.transifex.com/oca/teams/23907/fi/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: fi\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: web_translate_dialog +#. openerp-web +#: code:addons/web_translate_dialog/static/src/xml/base.xml:47 +#, python-format +msgid "Cancel" +msgstr "Peru" + +#. module: web_translate_dialog +#. openerp-web +#: code:addons/web_translate_dialog/static/src/xml/base.xml:14 +#, python-format +msgid "Field" +msgstr "Kenttä" + +#. module: web_translate_dialog +#. openerp-web +#: code:addons/web_translate_dialog/static/src/xml/base.xml:44 +#, python-format +msgid "Save" +msgstr "Tallenna" + +#. module: web_translate_dialog +#. openerp-web +#: code:addons/web_translate_dialog/static/src/js/web_translate_dialog.js:192 +#, python-format +msgid "Translate" +msgstr "Käännä" + +#. module: web_translate_dialog +#. openerp-web +#: code:addons/web_translate_dialog/static/src/js/web_translate_dialog.js:23 +#, python-format +msgid "Translations" +msgstr "Käännökset" diff --git a/ext/3rd-party-addons/web_translate_dialog/i18n/fr.po b/ext/3rd-party-addons/web_translate_dialog/i18n/fr.po new file mode 100644 index 00000000..909e93fc --- /dev/null +++ b/ext/3rd-party-addons/web_translate_dialog/i18n/fr.po @@ -0,0 +1,54 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * web_translate_dialog +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-28 18:03+0000\n" +"PO-Revision-Date: 2017-04-28 18:03+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: French (https://www.transifex.com/oca/teams/23907/fr/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: fr\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. module: web_translate_dialog +#. openerp-web +#: code:addons/web_translate_dialog/static/src/xml/base.xml:47 +#, python-format +msgid "Cancel" +msgstr "Annuler" + +#. module: web_translate_dialog +#. openerp-web +#: code:addons/web_translate_dialog/static/src/xml/base.xml:14 +#, python-format +msgid "Field" +msgstr "Champ" + +#. module: web_translate_dialog +#. openerp-web +#: code:addons/web_translate_dialog/static/src/xml/base.xml:44 +#, python-format +msgid "Save" +msgstr "Enregistrer" + +#. module: web_translate_dialog +#. openerp-web +#: code:addons/web_translate_dialog/static/src/js/web_translate_dialog.js:192 +#, python-format +msgid "Translate" +msgstr "Traduire" + +#. module: web_translate_dialog +#. openerp-web +#: code:addons/web_translate_dialog/static/src/js/web_translate_dialog.js:23 +#, python-format +msgid "Translations" +msgstr "Traductions" diff --git a/ext/3rd-party-addons/web_translate_dialog/i18n/hr.po b/ext/3rd-party-addons/web_translate_dialog/i18n/hr.po new file mode 100644 index 00000000..03be32db --- /dev/null +++ b/ext/3rd-party-addons/web_translate_dialog/i18n/hr.po @@ -0,0 +1,55 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * web_translate_dialog +# +# Translators: +# OCA Transbot , 2017 +# Bole , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-28 18:03+0000\n" +"PO-Revision-Date: 2017-04-28 18:03+0000\n" +"Last-Translator: Bole , 2017\n" +"Language-Team: Croatian (https://www.transifex.com/oca/teams/23907/hr/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: hr\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" + +#. module: web_translate_dialog +#. openerp-web +#: code:addons/web_translate_dialog/static/src/xml/base.xml:47 +#, python-format +msgid "Cancel" +msgstr "Otkaži" + +#. module: web_translate_dialog +#. openerp-web +#: code:addons/web_translate_dialog/static/src/xml/base.xml:14 +#, python-format +msgid "Field" +msgstr "Polje" + +#. module: web_translate_dialog +#. openerp-web +#: code:addons/web_translate_dialog/static/src/xml/base.xml:44 +#, python-format +msgid "Save" +msgstr "Snimi" + +#. module: web_translate_dialog +#. openerp-web +#: code:addons/web_translate_dialog/static/src/js/web_translate_dialog.js:192 +#, python-format +msgid "Translate" +msgstr "Prevedi" + +#. module: web_translate_dialog +#. openerp-web +#: code:addons/web_translate_dialog/static/src/js/web_translate_dialog.js:23 +#, python-format +msgid "Translations" +msgstr "Prevodi" diff --git a/ext/3rd-party-addons/web_translate_dialog/i18n/it.po b/ext/3rd-party-addons/web_translate_dialog/i18n/it.po new file mode 100644 index 00000000..d927d7b9 --- /dev/null +++ b/ext/3rd-party-addons/web_translate_dialog/i18n/it.po @@ -0,0 +1,54 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * web_translate_dialog +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-28 18:03+0000\n" +"PO-Revision-Date: 2017-04-28 18:03+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Italian (https://www.transifex.com/oca/teams/23907/it/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: it\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: web_translate_dialog +#. openerp-web +#: code:addons/web_translate_dialog/static/src/xml/base.xml:47 +#, python-format +msgid "Cancel" +msgstr "Annulla" + +#. module: web_translate_dialog +#. openerp-web +#: code:addons/web_translate_dialog/static/src/xml/base.xml:14 +#, python-format +msgid "Field" +msgstr "Campo" + +#. module: web_translate_dialog +#. openerp-web +#: code:addons/web_translate_dialog/static/src/xml/base.xml:44 +#, python-format +msgid "Save" +msgstr "Salva" + +#. module: web_translate_dialog +#. openerp-web +#: code:addons/web_translate_dialog/static/src/js/web_translate_dialog.js:192 +#, python-format +msgid "Translate" +msgstr "Traduci" + +#. module: web_translate_dialog +#. openerp-web +#: code:addons/web_translate_dialog/static/src/js/web_translate_dialog.js:23 +#, python-format +msgid "Translations" +msgstr "Traduzioni" diff --git a/ext/3rd-party-addons/web_translate_dialog/i18n/nl.po b/ext/3rd-party-addons/web_translate_dialog/i18n/nl.po new file mode 100644 index 00000000..393d6af7 --- /dev/null +++ b/ext/3rd-party-addons/web_translate_dialog/i18n/nl.po @@ -0,0 +1,54 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * web_translate_dialog +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-28 18:03+0000\n" +"PO-Revision-Date: 2017-04-28 18:03+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Dutch (https://www.transifex.com/oca/teams/23907/nl/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: nl\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: web_translate_dialog +#. openerp-web +#: code:addons/web_translate_dialog/static/src/xml/base.xml:47 +#, python-format +msgid "Cancel" +msgstr "" + +#. module: web_translate_dialog +#. openerp-web +#: code:addons/web_translate_dialog/static/src/xml/base.xml:14 +#, python-format +msgid "Field" +msgstr "Veld" + +#. module: web_translate_dialog +#. openerp-web +#: code:addons/web_translate_dialog/static/src/xml/base.xml:44 +#, python-format +msgid "Save" +msgstr "" + +#. module: web_translate_dialog +#. openerp-web +#: code:addons/web_translate_dialog/static/src/js/web_translate_dialog.js:192 +#, python-format +msgid "Translate" +msgstr "Vertalen" + +#. module: web_translate_dialog +#. openerp-web +#: code:addons/web_translate_dialog/static/src/js/web_translate_dialog.js:23 +#, python-format +msgid "Translations" +msgstr "Vertalingen" diff --git a/ext/3rd-party-addons/web_translate_dialog/i18n/nl_NL.po b/ext/3rd-party-addons/web_translate_dialog/i18n/nl_NL.po new file mode 100644 index 00000000..36c38b18 --- /dev/null +++ b/ext/3rd-party-addons/web_translate_dialog/i18n/nl_NL.po @@ -0,0 +1,54 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * web_translate_dialog +# +# Translators: +# Peter Hageman , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-07-01 03:35+0000\n" +"PO-Revision-Date: 2017-07-01 03:35+0000\n" +"Last-Translator: Peter Hageman , 2017\n" +"Language-Team: Dutch (Netherlands) (https://www.transifex.com/oca/teams/23907/nl_NL/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: nl_NL\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: web_translate_dialog +#. openerp-web +#: code:addons/web_translate_dialog/static/src/xml/base.xml:47 +#, python-format +msgid "Cancel" +msgstr "Annuleer" + +#. module: web_translate_dialog +#. openerp-web +#: code:addons/web_translate_dialog/static/src/xml/base.xml:14 +#, python-format +msgid "Field" +msgstr "" + +#. module: web_translate_dialog +#. openerp-web +#: code:addons/web_translate_dialog/static/src/xml/base.xml:44 +#, python-format +msgid "Save" +msgstr "" + +#. module: web_translate_dialog +#. openerp-web +#: code:addons/web_translate_dialog/static/src/js/web_translate_dialog.js:192 +#, python-format +msgid "Translate" +msgstr "" + +#. module: web_translate_dialog +#. openerp-web +#: code:addons/web_translate_dialog/static/src/js/web_translate_dialog.js:23 +#, python-format +msgid "Translations" +msgstr "" diff --git a/ext/3rd-party-addons/web_translate_dialog/i18n/pt_BR.po b/ext/3rd-party-addons/web_translate_dialog/i18n/pt_BR.po new file mode 100644 index 00000000..035a21fe --- /dev/null +++ b/ext/3rd-party-addons/web_translate_dialog/i18n/pt_BR.po @@ -0,0 +1,54 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * web_translate_dialog +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-28 18:03+0000\n" +"PO-Revision-Date: 2017-04-28 18:03+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Portuguese (Brazil) (https://www.transifex.com/oca/teams/23907/pt_BR/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: pt_BR\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. module: web_translate_dialog +#. openerp-web +#: code:addons/web_translate_dialog/static/src/xml/base.xml:47 +#, python-format +msgid "Cancel" +msgstr "Cancelar" + +#. module: web_translate_dialog +#. openerp-web +#: code:addons/web_translate_dialog/static/src/xml/base.xml:14 +#, python-format +msgid "Field" +msgstr "Campo" + +#. module: web_translate_dialog +#. openerp-web +#: code:addons/web_translate_dialog/static/src/xml/base.xml:44 +#, python-format +msgid "Save" +msgstr "Salvar" + +#. module: web_translate_dialog +#. openerp-web +#: code:addons/web_translate_dialog/static/src/js/web_translate_dialog.js:192 +#, python-format +msgid "Translate" +msgstr "Traduzir" + +#. module: web_translate_dialog +#. openerp-web +#: code:addons/web_translate_dialog/static/src/js/web_translate_dialog.js:23 +#, python-format +msgid "Translations" +msgstr "Traduções" diff --git a/ext/3rd-party-addons/web_translate_dialog/i18n/sl.po b/ext/3rd-party-addons/web_translate_dialog/i18n/sl.po new file mode 100644 index 00000000..04a99f1e --- /dev/null +++ b/ext/3rd-party-addons/web_translate_dialog/i18n/sl.po @@ -0,0 +1,54 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * web_translate_dialog +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-28 18:03+0000\n" +"PO-Revision-Date: 2017-04-28 18:03+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Slovenian (https://www.transifex.com/oca/teams/23907/sl/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: sl\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n" + +#. module: web_translate_dialog +#. openerp-web +#: code:addons/web_translate_dialog/static/src/xml/base.xml:47 +#, python-format +msgid "Cancel" +msgstr "Preklic" + +#. module: web_translate_dialog +#. openerp-web +#: code:addons/web_translate_dialog/static/src/xml/base.xml:14 +#, python-format +msgid "Field" +msgstr "Polje" + +#. module: web_translate_dialog +#. openerp-web +#: code:addons/web_translate_dialog/static/src/xml/base.xml:44 +#, python-format +msgid "Save" +msgstr "Shrani" + +#. module: web_translate_dialog +#. openerp-web +#: code:addons/web_translate_dialog/static/src/js/web_translate_dialog.js:192 +#, python-format +msgid "Translate" +msgstr "Prevod" + +#. module: web_translate_dialog +#. openerp-web +#: code:addons/web_translate_dialog/static/src/js/web_translate_dialog.js:23 +#, python-format +msgid "Translations" +msgstr "Prevodi" diff --git a/ext/3rd-party-addons/web_translate_dialog/i18n/tr.po b/ext/3rd-party-addons/web_translate_dialog/i18n/tr.po new file mode 100644 index 00000000..8db93c3a --- /dev/null +++ b/ext/3rd-party-addons/web_translate_dialog/i18n/tr.po @@ -0,0 +1,54 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * web_translate_dialog +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-04-28 18:03+0000\n" +"PO-Revision-Date: 2017-04-28 18:03+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Turkish (https://www.transifex.com/oca/teams/23907/tr/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: tr\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. module: web_translate_dialog +#. openerp-web +#: code:addons/web_translate_dialog/static/src/xml/base.xml:47 +#, python-format +msgid "Cancel" +msgstr "İptal" + +#. module: web_translate_dialog +#. openerp-web +#: code:addons/web_translate_dialog/static/src/xml/base.xml:14 +#, python-format +msgid "Field" +msgstr "Alan" + +#. module: web_translate_dialog +#. openerp-web +#: code:addons/web_translate_dialog/static/src/xml/base.xml:44 +#, python-format +msgid "Save" +msgstr "Kaydet" + +#. module: web_translate_dialog +#. openerp-web +#: code:addons/web_translate_dialog/static/src/js/web_translate_dialog.js:192 +#, python-format +msgid "Translate" +msgstr "Çeviri" + +#. module: web_translate_dialog +#. openerp-web +#: code:addons/web_translate_dialog/static/src/js/web_translate_dialog.js:23 +#, python-format +msgid "Translations" +msgstr "daha çevrilmedi" diff --git a/ext/3rd-party-addons/web_translate_dialog/i18n/web_translate_dialog.pot b/ext/3rd-party-addons/web_translate_dialog/i18n/web_translate_dialog.pot new file mode 100644 index 00000000..0a0e3d03 --- /dev/null +++ b/ext/3rd-party-addons/web_translate_dialog/i18n/web_translate_dialog.pot @@ -0,0 +1,36 @@ +# Translation of OpenERP Server. +# This file contains the translation of the following modules: +# +msgid "" +msgstr "" +"Project-Id-Version: OpenERP Server 7.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-12-09 07:15+0000\n" +"PO-Revision-Date: 2013-12-09 07:15+0000\n" +"Last-Translator: <>\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: web_translate_dialog +#. openerp-web +#: code:addons/web_translate_dialog/static/src/js/web_translate_dialog.js:15 +#, python-format +msgid "Translate" +msgstr "" + +#. module: web_translate_dialog +#. openerp-web +#: code:addons/web_translate_dialog/static/src/js/web_translate_dialog.js:37 +#, python-format +msgid "Translations" +msgstr "" + +#. module: web_translate_dialog +#. openerp-web +#: code:addons/web_translate_dialog/static/src/xml/base.xml:7 +#, python-format +msgid "Field" +msgstr "" diff --git a/ext/3rd-party-addons/web_translate_dialog/static/description/icon.png b/ext/3rd-party-addons/web_translate_dialog/static/description/icon.png new file mode 100644 index 00000000..3a0328b5 Binary files /dev/null and b/ext/3rd-party-addons/web_translate_dialog/static/description/icon.png differ diff --git a/ext/3rd-party-addons/web_translate_dialog/static/src/css/base.css b/ext/3rd-party-addons/web_translate_dialog/static/src/css/base.css new file mode 100644 index 00000000..aec33758 --- /dev/null +++ b/ext/3rd-party-addons/web_translate_dialog/static/src/css/base.css @@ -0,0 +1,9 @@ +/* Copyright 2012 Guewen Baconnier (Camptocamp SA) + * License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). */ + +.openerp .oe_translation_field { + width: 95%; +} +.openerp .oe_translation_field.touched { + border: 1px solid green !important; +} diff --git a/ext/3rd-party-addons/web_translate_dialog/static/src/js/web_translate_dialog.js b/ext/3rd-party-addons/web_translate_dialog/static/src/js/web_translate_dialog.js new file mode 100644 index 00000000..1514c8c6 --- /dev/null +++ b/ext/3rd-party-addons/web_translate_dialog/static/src/js/web_translate_dialog.js @@ -0,0 +1,224 @@ +/* Copyright 2012 Guewen Baconnier (Camptocamp SA) + Copyright 2016 Antonio Espinosa + * License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). */ + +odoo.define('web_translate_dialog.translate_dialog', function(require){ +"use strict"; + +var core = require('web.core'); +var common = require('web.form_common'); +var data = require('web.data'); + +var Dialog = require('web.Dialog'); +var FormView = require('web.FormView'); +var View = require('web.View'); + +var _t = core._t; +var QWeb = core.qweb; + +var translateDialog = Dialog.extend({ + template: "TranslateDialog", + init: function(parent, field, content) { + this._super(parent, + {title: _t("Translations"), + width: '90%', + height: '80%'}, + content); + this.view_language = this.session.user_context.lang; + this.view = parent; + this.view_type = parent.fields_view.type || ''; + this.$view_form = null; + this.$sidebar_form = null; + if (field) { + this.translatable_fields_keys = [field]; + this.translatable_fields = _.filter( + this.view.translatable_fields || [], + function(i) { + return i.name === field; + } + ); + } else { + this.translatable_fields_keys = _.map( + this.view.translatable_fields || [], + function(i) { + return i.name; + } + ); + this.translatable_fields = this.view.translatable_fields.slice(0); + } + this.languages = null; + this.languages_loaded = $.Deferred(); + (new data.DataSetSearch(this, 'res.lang', this.view.dataset.get_context(), + [['translatable', '=', '1']])).read_slice(['code', 'name'], + { sort: 'id' }).then(this.on_languages_loaded); + }, + on_languages_loaded: function(langs) { + this.languages = langs; + this.languages_loaded.resolve(); + }, + open: function() { + // the template needs the languages + return $.when(this.languages_loaded).then($.proxy(this._super, this)); + }, + start: function() { + var self = this; + this.$el.find('.oe_translation_field').change(function() { + $(this).toggleClass('touched', $(this).val() !== $(this).attr('data-value')); + }); + this.$footer.html(QWeb.render("TranslateDialog.buttons")); + this.$footer.find(".oe_form_translate_dialog_save_button").click(function(){ + self.on_button_save(); + self.on_button_close(); + }); + this.$footer.find(".oe_form_translate_dialog_cancel_button").click(function(){ + self.on_button_close(); + }); + + this.do_load_fields_values(); + }, + initialize_html_fields: function(lang) { + var self = this; + _.each(this.translatable_fields_keys, function(f) { + // Initialize summernote if HTML field + self.$el.find('.oe_form_field_html .oe_translation_field[name="' + lang.code + '-' + f + '"]').each(function() { + var $parent = $(this).summernote({ + 'focus': false, + 'toolbar': [ + ['style', ['style']], + ['font', ['bold', 'italic', 'underline', 'clear']], + ['fontsize', ['fontsize']], + ['color', ['color']], + ['para', ['ul', 'ol', 'paragraph']], + ['table', ['table']], + ['insert', ['link', 'picture']], + ['misc', ['codeview']], + ['history', ['undo', 'redo']] + ], + 'prettifyHtml': false, + 'styleWithSpan': false, + 'inlinemedia': ['p'], + 'lang': "odoo", + 'onChange': function (value) { + $(this).toggleClass('touched', value !== $(this).attr('data-value')); + } + }).parent(); + // Triggers a mouseup to refresh the editor toolbar + $parent.find('.note-editable').trigger('mouseup'); + $parent.find('.note-editing-area').css({ + minHeight:'100px', + minWidth:'260px', + }); + }); + }); + }, + set_fields_values: function(lang, values) { + var self = this; + _.each(this.translatable_fields_keys, function(f) { + self.$el.find('.oe_translation_field[name="' + lang.code + + '-' + f + '"]').val(values[f] || '').attr( + 'data-value', values[f] || ''); + }); + this.$el.find('textarea.oe_translation_field').css({ + minHeight:'100px', + }); + $(window).resize(); + this.initialize_html_fields(lang); + }, + do_load_fields_values: function() { + var self = this, + deferred = []; + + this.$el.find('.oe_translation_field').val('').removeClass('touched'); + _.each(self.languages, function(lg) { + var deff = $.Deferred(); + deferred.push(deff); + if (lg.code === self.view_language) { + var values = {}; + _.each(self.translatable_fields_keys, function(field) { + values[field] = self.view.fields[field].get_value(); + }); + self.set_fields_values(lg, values); + deff.resolve(); + } else { + self.view.dataset.call('read',[[self.view.datarecord.id], + self.translatable_fields_keys, + self.view.dataset.get_context({ + 'lang': lg.code })]).done( + function (rows) { + self.set_fields_values(lg, rows[0]); + deff.resolve(); + }); + } + }); + return deferred; + }, + on_button_save: function() { + var translations = {}, + self = this, + translation_mutex = new $.Mutex(); + self.$el.find('.oe_translation_field.touched').each(function() { + var field = $(this).attr('name').split('-'); + if (!translations[field[0]]) { + translations[field[0]] = {}; + } + translations[field[0]][field[1]] = $(this).val(); + }); + _.each(translations, function(text, code) { + if (code === self.view_language) { + self.view.set_values(text); + } + translation_mutex.exec(function() { + return new data.DataSet(self, self.view.dataset.model, + self.view.dataset.get_context()).write( + self.view.datarecord.id, text, + { context : { 'lang': code }}); + }); + }); + this.close(); + }, + on_button_close: function() { + this.close(); + }, + +}); + +FormView.include({ + render_sidebar: function($node) { + this._super($node); + if (this.sidebar) { + this.sidebar.add_items('other', _.compact([ + this.is_action_enabled('edit') && + this.translatable_fields.length > 0 && { + label: _t('Translate'), + callback: this.on_button_translate + }, + ])); + } + }, + on_button_translate: function() { + var self = this; + $.when(this.has_been_loaded).then(function() { + self.open_translate_dialog(); + }); + }, +}); + +View.include({ + open_translate_dialog: function(field) { + new translateDialog(this, field).open(); + } +}); + +common.AbstractField.include({ + on_translate: function() { + // the image next to the fields opens the translate dialog + this.view.open_translate_dialog(this.name); + }, +}); + +return { + translateDialog: translateDialog, +}; + +}); + diff --git a/ext/3rd-party-addons/web_translate_dialog/static/src/xml/base.xml b/ext/3rd-party-addons/web_translate_dialog/static/src/xml/base.xml new file mode 100644 index 00000000..ae3ee5e2 --- /dev/null +++ b/ext/3rd-party-addons/web_translate_dialog/static/src/xml/base.xml @@ -0,0 +1,51 @@ + + +