\n"
-"Language-Team: Czech (Czech Republic) (http://www.transifex.com/tonio/modoboa/language/cs_CZ/)\n"
+"Language-Team: Czech (Czech Republic) (http://www.transifex.com/tonio/"
+"modoboa/language/cs_CZ/)\n"
+"Language: cs_CZ\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Language: cs_CZ\n"
-"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n"
+"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n "
+"<= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n"
-#: core/app_settings.py:26
+#: core/app_settings.py:22
msgid "User profile"
msgstr "Uživatelský profil"
-#: core/app_settings.py:39
+#: core/app_settings.py:35
msgid "Authentication"
msgstr "Ověření"
-#: core/app_settings.py:42
+#: core/app_settings.py:38
msgid "Authentication type"
msgstr "Typ ověření"
-#: core/app_settings.py:43
+#: core/app_settings.py:39
msgid "Local"
msgstr "Lokální"
-#: core/app_settings.py:46
+#: core/app_settings.py:42
msgid "The backend used for authentication"
msgstr "Rozhraní pro ověřování přístupu"
-#: core/app_settings.py:51
+#: core/app_settings.py:47
msgid "Default password scheme"
msgstr "Výchozí schéma hesel"
-#: core/app_settings.py:55
+#: core/app_settings.py:51
msgid "md5crypt (weak)"
msgstr "md5crypt (slabé)"
-#: core/app_settings.py:56
+#: core/app_settings.py:52
msgid "sha256 (weak)"
msgstr "sha256 (slabé)"
-#: core/app_settings.py:57
+#: core/app_settings.py:53
msgid "md5 (weak)"
msgstr "md5 (slabé)"
-#: core/app_settings.py:58
+#: core/app_settings.py:54
msgid "crypt (weak)"
msgstr "crypt (slabé)"
-#: core/app_settings.py:59
+#: core/app_settings.py:55
msgid "plain (weak)"
msgstr "žádné (slabé)"
-#: core/app_settings.py:61
+#: core/app_settings.py:57
msgid "Scheme used to crypt mailbox passwords"
msgstr "Použité schéma pro šifrování hesel schránek"
-#: core/app_settings.py:66
+#: core/app_settings.py:62
msgid "Rounds"
msgstr "Počet cyklů"
-#: core/app_settings.py:69
+#: core/app_settings.py:65
msgid ""
"Number of rounds to use (only used by sha256crypt and sha512crypt). Must be "
"between 1000 and 999999999, inclusive."
-msgstr "Počet cyklů (použije se pouze u sha256crypt a sha512crypt). Hodnota musí být mezi 1000 a 999999999 včetně."
+msgstr ""
+"Počet cyklů (použije se pouze u sha256crypt a sha512crypt). Hodnota musí být "
+"mezi 1000 a 999999999 včetně."
-#: core/app_settings.py:76
-msgid "Secret key"
-msgstr "Tajný klíč"
+#: core/app_settings.py:72
+#, fuzzy
+#| msgid "Default password scheme"
+msgid "Update password scheme"
+msgstr "Výchozí schéma hesel"
-#: core/app_settings.py:78
-msgid "Key used to encrypt/decrypt passwords"
-msgstr "Klíč používaný k šifrování/dešifrování hesel"
+#: core/app_settings.py:75
+msgid "Update user password at login to use the default password scheme"
+msgstr ""
-#: core/app_settings.py:83
+#: core/app_settings.py:80
msgid "Default password"
msgstr "Výchozí heslo"
-#: core/app_settings.py:86
+#: core/app_settings.py:83
msgid "Default password for automatically created accounts."
msgstr "Výchozí heslo pro automaticky vytvořené účty."
-#: core/app_settings.py:90
+#: core/app_settings.py:87
msgid "Random password length"
msgstr "Délka náhodného hesla"
-#: core/app_settings.py:94
+#: core/app_settings.py:91
msgid "Length of randomly generated passwords."
msgstr "Počet znaků náhodně vygenerovaných hesel."
-#: core/app_settings.py:98
+#: core/app_settings.py:95
msgid "LDAP settings"
msgstr "Nastavení LDAP"
-#: core/app_settings.py:101
+#: core/app_settings.py:98
msgid "Server address"
msgstr "Adresa serveru"
-#: core/app_settings.py:104
+#: core/app_settings.py:101
msgid "The IP address or the DNS name of the LDAP server"
msgstr "IP adresa DNS jména LDAP serveru"
-#: core/app_settings.py:109
+#: core/app_settings.py:106
msgid "Server port"
msgstr "Port serveru"
-#: core/app_settings.py:111
+#: core/app_settings.py:108
msgid "The TCP port number used by the LDAP server"
msgstr "Port TCP, který používá LDAP server"
-#: core/app_settings.py:116
+#: core/app_settings.py:113
msgid "Use a secured connection"
msgstr "Použít zabezpečené připojení"
-#: core/app_settings.py:120
+#: core/app_settings.py:117
msgid "Use an SSL/STARTTLS connection to access the LDAP server"
msgstr "Použít SSL/STARTTLS připojení pro přístup k LDAP serveru"
-#: core/app_settings.py:124
+#: core/app_settings.py:121
msgid "Authentication method"
msgstr "Metoda ověření"
-#: core/app_settings.py:125
+#: core/app_settings.py:122
msgid "Search and bind"
msgstr "Vyhledat a spojit"
-#: core/app_settings.py:126
+#: core/app_settings.py:123
msgid "Direct bind"
msgstr "Přímé spojení"
-#: core/app_settings.py:128
+#: core/app_settings.py:125
msgid "Choose the authentication method to use"
msgstr "Zvolte si metodu ověření, která se použije"
-#: core/app_settings.py:133
+#: core/app_settings.py:130
msgid "Bind DN"
msgstr "Spojení pomocí DN"
-#: core/app_settings.py:136
+#: core/app_settings.py:133
msgid ""
"The distinguished name to use when binding to the LDAP server. Leave empty "
"for an anonymous bind"
-msgstr "Rozlišovací jméno, které se použije při spojování s LDAP serverem. Ponechejte prázdné pro anonymní spojení."
+msgstr ""
+"Rozlišovací jméno, které se použije při spojování s LDAP serverem. "
+"Ponechejte prázdné pro anonymní spojení."
-#: core/app_settings.py:144
+#: core/app_settings.py:141
msgid "Bind password"
msgstr "Heslo spojení"
-#: core/app_settings.py:147
+#: core/app_settings.py:144
msgid "The password to use when binding to the LDAP server (with 'Bind DN')"
-msgstr "Heslo, které se použije při spojování s LDAP serverem (při výběru DN spojení)."
+msgstr ""
+"Heslo, které se použije při spojování s LDAP serverem (při výběru DN "
+"spojení)."
-#: core/app_settings.py:156
+#: core/app_settings.py:153
msgid "Users search base"
msgstr "Základna struktury uživatelů"
-#: core/app_settings.py:159
+#: core/app_settings.py:156
msgid "The distinguished name of the search base used to find users"
msgstr "Rozlišovací jméno základny struktury používané pro hledání uživatelů"
-#: core/app_settings.py:166
+#: core/app_settings.py:163
msgid "Search filter"
msgstr "Vyhledávací filtr"
-#: core/app_settings.py:169
+#: core/app_settings.py:166
msgid ""
"An optional filter string (e.g. '(objectClass=person)'). In order to be "
"valid, it must be enclosed in parentheses."
-msgstr "Volitelný filtr (např. '(objectClass=osoba)'). Aby byl filtr platný, je nezbytné jen uzavřít do závorek."
+msgstr ""
+"Volitelný filtr (např. '(objectClass=osoba)'). Aby byl filtr platný, je "
+"nezbytné jen uzavřít do závorek."
-#: core/app_settings.py:177
+#: core/app_settings.py:174
msgid "User DN template"
msgstr "Šablona uživatelského DN"
-#: core/app_settings.py:180
+#: core/app_settings.py:177
#, python-format
msgid ""
"The template used to construct a user's DN. It should contain one "
"placeholder (ie. %(user)s)"
-msgstr "Šablona použitá pro tvorbu uživatelského rozlišovacího jména (DN). Měla by obsahovat jeden zástupný řetězec (tj. %(user)s)."
+msgstr ""
+"Šablona použitá pro tvorbu uživatelského rozlišovacího jména (DN). Měla by "
+"obsahovat jeden zástupný řetězec (tj. %(user)s)."
-#: core/app_settings.py:188
+#: core/app_settings.py:185
msgid "Password attribute"
msgstr "Atribut hesla"
-#: core/app_settings.py:190
+#: core/app_settings.py:187
msgid "The attribute used to store user passwords"
msgstr "Atribut používaný pro ukládání hesel uživatelů"
-#: core/app_settings.py:195
+#: core/app_settings.py:192
msgid "Active Directory"
msgstr "Active Directory"
-#: core/app_settings.py:198
+#: core/app_settings.py:195
msgid "Tell if the LDAP server is an Active Directory one"
-msgstr "Volba určující, jestli je nebo není LDAP server serverem Active Directory"
+msgstr ""
+"Volba určující, jestli je nebo není LDAP server serverem Active Directory"
-#: core/app_settings.py:202
+#: core/app_settings.py:199
msgid "Administrator groups"
msgstr "Správcovské skupiny"
-#: core/app_settings.py:205
+#: core/app_settings.py:202
msgid ""
-"Members of those LDAP Posix groups will be created as domain administrators."
-" Use ';' characters to separate groups."
-msgstr "Členové těchto LDAP Posix skupin budou automaticky vytvořeni jako správci domény. Pro oddělení skupin použijte ';'."
+"Members of those LDAP Posix groups will be created as domain administrators. "
+"Use ';' characters to separate groups."
+msgstr ""
+"Členové těchto LDAP Posix skupin budou automaticky vytvořeni jako správci "
+"domény. Pro oddělení skupin použijte ';'."
-#: core/app_settings.py:212
+#: core/app_settings.py:209
msgid "Group type"
msgstr "Typ skupiny"
-#: core/app_settings.py:216
+#: core/app_settings.py:213
msgid "The LDAP group type to use with your directory."
msgstr "Typ LDAP skupiny "
-#: core/app_settings.py:221
+#: core/app_settings.py:218
msgid "Groups search base"
msgstr "Základna struktury skupin"
-#: core/app_settings.py:224
+#: core/app_settings.py:221
msgid "The distinguished name of the search base used to find groups"
msgstr "Rozlišovací jméno základny struktury používané pro hledání skupin"
-#: core/app_settings.py:229 core/templates/core/dashboard.html:5
+#: core/app_settings.py:226 core/templates/core/dashboard.html:5
msgid "Dashboard"
msgstr "Plocha"
-#: core/app_settings.py:232
+#: core/app_settings.py:229
msgid "Custom RSS feed"
msgstr "Vlastní RSS zdroj"
-#: core/app_settings.py:235
+#: core/app_settings.py:232
msgid "Display custom RSS feed to resellers and domain administrators"
msgstr "Zobrazit vlastní RSS zdroj distributorům a správcům domény"
-#: core/app_settings.py:240
+#: core/app_settings.py:237
msgid "Hide features widget"
msgstr "Skrýt widget funkcí"
-#: core/app_settings.py:243
+#: core/app_settings.py:240
msgid "Hide features widget for resellers and domain administrators"
msgstr "Skrýt widget funkcí pro distributory a správce domény"
-#: core/app_settings.py:247
+#: core/app_settings.py:244
msgid "Notifications"
msgstr "Oznámení"
-#: core/app_settings.py:250
+#: core/app_settings.py:247
msgid "Sender address"
msgstr "Adresy odesílatele"
-#: core/app_settings.py:253
+#: core/app_settings.py:250
msgid "Email address used to send notifications."
msgstr "Emailová adresa používaná k zasílání upozornění"
-#: core/app_settings.py:257
+#: core/app_settings.py:254
msgid "Public API"
msgstr "Veřejné API"
-#: core/app_settings.py:260
+#: core/app_settings.py:257
msgid "Enable communication"
msgstr "Povolit komunikaci"
-#: core/app_settings.py:263
+#: core/app_settings.py:260
msgid "Enable communication with Modoboa public API"
msgstr "Povolit komunikaci s veřejným Modoboa API rozhraním"
-#: core/app_settings.py:267
+#: core/app_settings.py:264
msgid "Check new versions"
msgstr "Zkontrolovat verzi"
-#: core/app_settings.py:270
+#: core/app_settings.py:267
msgid "Automatically checks if a newer version is available"
msgstr "Automaticky kontrolovat dostupnost nové verze"
-#: core/app_settings.py:274
+#: core/app_settings.py:271
msgid "Send statistics"
msgstr "Odoslat statistiky"
-#: core/app_settings.py:277
+#: core/app_settings.py:274
msgid "Send statistics to Modoboa public API (counters and used extensions)"
-msgstr "Zasílat statistické údaje na veřejné Modoboa API rozhraní (počítadla a použité rozšíření)"
+msgstr ""
+"Zasílat statistické údaje na veřejné Modoboa API rozhraní (počítadla a "
+"použité rozšíření)"
-#: core/app_settings.py:281
+#: core/app_settings.py:278
msgid "Miscellaneous"
msgstr "Různé"
-#: core/app_settings.py:284
+#: core/app_settings.py:281
msgid "Inactive account threshold"
msgstr "Počet dnů pro neaktivní účet"
-#: core/app_settings.py:287
+#: core/app_settings.py:284
msgid ""
-"An account with a last login date greater than this threshold (in days) will"
-" be considered as inactive"
-msgstr "Účet s datem posledního přihlášení starším než práh (ve dnech) bude považován za neaktivní"
+"An account with a last login date greater than this threshold (in days) will "
+"be considered as inactive"
+msgstr ""
+"Účet s datem posledního přihlášení starším než práh (ve dnech) bude "
+"považován za neaktivní"
-#: core/app_settings.py:294
+#: core/app_settings.py:291
msgid "Top notifications check interval"
msgstr "Interval aktualizací upozornění"
-#: core/app_settings.py:297
+#: core/app_settings.py:294
msgid "Interval between two top notification checks (in seconds)"
msgstr "Interval mezi aktualizacemi upozornění na stránce (v sekundách)"
-#: core/app_settings.py:303
+#: core/app_settings.py:300
msgid "Maximum log record age"
msgstr "Maximální stáří záznamu"
-#: core/app_settings.py:305
+#: core/app_settings.py:302
msgid "The maximum age in days of a log record"
msgstr "Maximální stáří záznamu ve dnech"
-#: core/app_settings.py:310
+#: core/app_settings.py:307
msgid "Items per page"
msgstr "Položek na stránce"
-#: core/app_settings.py:312
+#: core/app_settings.py:309
msgid "Number of displayed items per page"
msgstr "Počet zobrazených položek na stránce"
-#: core/app_settings.py:317
+#: core/app_settings.py:314
msgid "Default top redirection"
msgstr "Výchozí přesměrování aplikace"
-#: core/app_settings.py:321
+#: core/app_settings.py:318
msgid "The default redirection used when no application is specified"
-msgstr "Výchozí přesměrování, které se použije, pokud není žádná aplikace specifikována"
+msgstr ""
+"Výchozí přesměrování, které se použije, pokud není žádná aplikace "
+"specifikována"
-#: core/app_settings.py:354
-msgid "Key must be either 16, 24, or 32 bytes long"
-msgstr "Klíč musí mít délku 16, 24 nebo 32 znaků"
-
-#: core/app_settings.py:363
+#: core/app_settings.py:353
msgid "Invalid syntax"
msgstr "Neplatná syntaxe"
-#: core/app_settings.py:369
+#: core/app_settings.py:359
msgid "Invalid rounds number"
msgstr "Neplatný počet cyklů"
-#: core/app_settings.py:396
+#: core/app_settings.py:386
msgid "This field is required"
msgstr "Toto pole je vyžadováno"
-#: core/apps.py:20
+#: core/apps.py:22
msgid "General"
msgstr "Obecné"
-#: core/checks/settings_checks.py:11
+#: core/checks/settings_checks.py:10
msgid ""
"You have USE_TZ set to False, this may result in issues during transitions "
"between summer/winter time (ie the same local time occuring twice due to "
"clock change)."
-msgstr "Hodnota USE_TZ je Vypnutá, toto může způsobit problémy při přechodu mezi letním a zimním časem (např. stejný čas dvakrát během změny času)."
+msgstr ""
+"Hodnota USE_TZ je Vypnutá, toto může způsobit problémy při přechodu mezi "
+"letním a zimním časem (např. stejný čas dvakrát během změny času)."
-#: core/checks/settings_checks.py:14
+#: core/checks/settings_checks.py:13
msgid "Set `USE_TZ = True` in settings.py"
msgstr "Nastavte `USE_TZ = True` v settings.py"
@@ -388,143 +409,143 @@ msgstr "Distributor"
msgid "Super administrator"
msgstr "Super správce"
-#: core/constants.py:51 lib/form_utils.py:394
+#: core/constants.py:53 lib/form_utils.py:393
msgid "No"
msgstr "Ne"
-#: core/forms.py:24
+#: core/forms.py:22
msgid "Username"
msgstr "Uživatelské jméno"
-#: core/forms.py:28
+#: core/forms.py:26
msgid "Password"
msgstr "Heslo"
-#: core/forms.py:41
+#: core/forms.py:39
msgid "Old password"
msgstr "Původní heslo"
-#: core/forms.py:45
+#: core/forms.py:43
msgid "New password"
msgstr "Nové heslo"
-#: core/forms.py:49
+#: core/forms.py:47
msgid "Confirmation"
msgstr "Potvrzení"
-#: core/forms.py:77
+#: core/forms.py:75
msgid "Old password mismatchs"
msgstr "Původní heslo se neshoduje"
-#: core/forms.py:86
+#: core/forms.py:84
msgid "Passwords mismatch"
msgstr "Hesla se neshodují"
-#: core/forms.py:106
+#: core/forms.py:104
msgid "Enable API access"
msgstr "Povolit API přístup"
-#: core/handlers.py:43
+#: core/handlers.py:40
msgid "added"
msgstr "přidáno"
-#: core/handlers.py:46
+#: core/handlers.py:43
msgid "modified"
msgstr "upraveno"
-#: core/handlers.py:48
+#: core/handlers.py:45
#, python-format
msgid "%(object)s '%(name)s' %(action)s by user %(user)s"
msgstr "%(object)s '%(name)s' %(action)s uživatelem %(user)s"
-#: core/handlers.py:70
+#: core/handlers.py:67
#, python-format
msgid "%(object)s '%(name)s' %(action)s by "
msgstr ""
-#: core/handlers.py:72
+#: core/handlers.py:69
msgid "deleted"
msgstr "smazáno"
-#: core/handlers.py:76
+#: core/handlers.py:73
msgid "user {}"
msgstr "uživatel {}"
-#: core/handlers.py:78
+#: core/handlers.py:75
msgid "management command"
msgstr "příkaz managementu"
-#: core/handlers.py:102
+#: core/handlers.py:99
msgid "You can't delete your own account"
msgstr "Nemůžete smazat vlastní účet"
-#: core/handlers.py:138
+#: core/handlers.py:135
msgid "One or more updates are available"
msgstr "K dispozici je jedna, nebo více, aktualizací"
-#: core/models.py:58
+#: core/models.py:57
msgid "Allow mailboxes access"
msgstr "Povolit přístup do poštovních schránek"
-#: core/models.py:60
+#: core/models.py:59
msgid "Allow this administrator to access user mailboxes"
msgstr "Povolit správci přístup do uživatelských poštovních schránek"
-#: core/models.py:63
+#: core/models.py:62
msgid "password"
msgstr "heslo"
-#: core/models.py:66
+#: core/models.py:65
msgid "language"
msgstr "jazyk"
-#: core/models.py:69
+#: core/models.py:68
msgid "Prefered language to display pages."
msgstr "Preferovaný jazyk pro zobrazení stránek"
-#: core/models.py:73
+#: core/models.py:72
msgid "Phone number"
msgstr "Telefonní číslo"
-#: core/models.py:75
+#: core/models.py:74
msgid "Secondary email"
msgstr "Sekundární email"
-#: core/models.py:78
+#: core/models.py:77
msgid "An alternative e-mail address, can be used for recovery needs."
msgstr "Alternativní e-mailová adresa, může být použita pro účely obnovy."
-#: core/models.py:128
+#: core/models.py:127
msgid "Failed to update password: LDAP module not installed"
msgstr "Nebylo možné změnit heslo: LDAP modul není instalován"
-#: core/models.py:157
+#: core/models.py:156
msgid "account"
msgstr "účet"
-#: core/models.py:279
+#: core/models.py:278
msgid "Unknown"
msgstr "Neznámý"
-#: core/models.py:313
+#: core/models.py:312
msgid "Invalid line"
msgstr "Neplatný řádek"
-#: core/models.py:321
+#: core/models.py:320
msgid "You can't import an account with a role greater than yours"
msgstr "Nemůžete importvat účet s vyšším oprávněním, než máte vy sám"
-#: core/models.py:336
+#: core/models.py:335
#, python-format
msgid "The simple user '%s' must have a valid email address"
msgstr "Běžný uživatel '%s' musí mít nastavenou platnou emailovou adresu"
-#: core/models.py:341
+#: core/models.py:340
#, python-format
msgid "username and email fields must not differ for '%s'"
msgstr "pole uživatelského jména a emailu se nesmí pro '%s' lišit"
-#: core/password_validation.py:26
+#: core/password_validation.py:28
msgid "Password must contain at least {} digit."
msgid_plural "Password must contain at least {} digits."
msgstr[0] "Heslo musí obsahovat alespoň {} číslo."
@@ -532,7 +553,7 @@ msgstr[1] "Heslo musí obsahovat alespoň {} číslice."
msgstr[2] "Heslo musí obsahovat alespoň {} číslic."
msgstr[3] "Heslo musí obsahovat alespoň {} číslic."
-#: core/password_validation.py:36
+#: core/password_validation.py:38
msgid "Password must contain at least {} lowercase letter."
msgid_plural "Password must contain at least {} lowercase letters."
msgstr[0] "Heslo musí obsahovat alespoň {} malé písmeno."
@@ -540,7 +561,7 @@ msgstr[1] "Heslo musí obsahovat alespoň {} malé písmena."
msgstr[2] "Heslo musí obsahovat alespoň {} malých písmen."
msgstr[3] "Heslo musí obsahovat alespoň {} malých písmen."
-#: core/password_validation.py:47
+#: core/password_validation.py:49
msgid "Password must contain at least {} uppercase letter."
msgid_plural "Password must contain at least {} uppercase letters."
msgstr[0] "Heslo musí obsahovat alespoň {} velké písmeno."
@@ -548,7 +569,7 @@ msgstr[1] "Heslo musí obsahovat alespoň {} velká písmena."
msgstr[2] "Heslo musí obsahovat alespoň {} velkých písmen."
msgstr[3] "Heslo musí obsahovat alespoň {} velkých písmen."
-#: core/password_validation.py:59
+#: core/password_validation.py:61
msgid "Password must contain at least {} special character."
msgid_plural "Password must contain at least {} special characters."
msgstr[0] "Heslo musí obsahovat alespoň {} speciální znak."
@@ -556,9 +577,11 @@ msgstr[1] "Heslo musí obsahovat alespoň {} speciální znaky."
msgstr[2] "Heslo musí obsahovat alespoň {} speciálních znaků."
msgstr[3] "Heslo musí obsahovat alespoň {} speciálních znaků."
-#: core/password_validation.py:67
+#: core/password_validation.py:69
msgid "Your password must contain a combination of different character types."
-msgstr "Vaše heslo musí obsahovat kombinaci malých a velkých písmen, číslic a speciálních znaků."
+msgstr ""
+"Vaše heslo musí obsahovat kombinaci malých a velkých písmen, číslic a "
+"speciálních znaků."
#: core/templates/core/_current_features.html:6
msgid "Features looking for sponsoring"
@@ -584,7 +607,9 @@ msgstr "Poslední zprávy"
msgid ""
"Visit the official "
"weblog for more information."
-msgstr "Pro více informací navštivte oficiální blog ."
+msgstr ""
+"Pro více informací navštivte oficiální blog ."
#: core/templates/core/api_access.html:3
msgid "API access"
@@ -597,16 +622,18 @@ msgstr "Ovládat svůj přístup k Modoboa API rozhraní"
#: core/templates/core/api_access.html:7
#, python-format
msgid ""
-"A documentation of the API is available here."
-msgstr "Dokumentace k API je dostupná zde."
+"A documentation of the API is available here."
+msgstr ""
+"Dokumentace k API je dostupná zde."
#: core/templates/core/api_access.html:14
msgid "API access token"
msgstr "API přístupový token"
#: core/templates/core/api_access.html:35
-#: core/templates/core/user_profile.html:10 lib/form_utils.py:359
+#: core/templates/core/user_profile.html:10 lib/form_utils.py:358
msgid "Update"
msgstr "Aktualizovat"
@@ -615,7 +642,7 @@ msgstr "Aktualizovat"
msgid "Hello %(user)s."
msgstr "Ahoj %(user)s."
-#: core/templates/core/information.html:2 core/templatetags/core_tags.py:64
+#: core/templates/core/information.html:2 core/templatetags/core_tags.py:66
msgid "Information"
msgstr "Informace"
@@ -629,7 +656,9 @@ msgstr "K dispozici je jedna, nebo více, aktualizací!"
#: core/templates/core/information.html:6
msgid "Check the following list to find the component(s) that can be updated."
-msgstr "Zkontrolujte následující seznam pro nalezení komponentu(ů), které mohou být aktualizovány."
+msgstr ""
+"Zkontrolujte následující seznam pro nalezení komponentu(ů), které mohou být "
+"aktualizovány."
#: core/templates/core/information.html:10
msgid "Applications"
@@ -664,7 +693,7 @@ msgstr "Role"
msgid "Last login"
msgstr "Poslední přihlášení"
-#: core/templates/core/logs.html:2 core/templatetags/core_tags.py:68
+#: core/templates/core/logs.html:2 core/templatetags/core_tags.py:70
msgid "Logs"
msgstr "Záznamy"
@@ -672,7 +701,7 @@ msgstr "Záznamy"
msgid "Previously on Modoboa..."
msgstr "Dříve v Modoboa..."
-#: core/templates/core/logs.html:6 lib/templatetags/lib_tags.py:109
+#: core/templates/core/logs.html:6 lib/templatetags/lib_tags.py:110
msgid "Date"
msgstr "Datum"
@@ -688,7 +717,7 @@ msgstr "Zaznamenal"
msgid "Message"
msgstr "Zpráva"
-#: core/templates/core/parameters.html:2 core/templatetags/core_tags.py:73
+#: core/templates/core/parameters.html:2 core/templatetags/core_tags.py:75
msgid "Parameters"
msgstr "Parametry"
@@ -705,12 +734,12 @@ msgstr "Uložit"
msgid "Modoboa settings"
msgstr "Nastavení Modoboa"
-#: core/templates/core/user_index.html:4 core/templatetags/core_tags.py:92
+#: core/templates/core/user_index.html:4 core/templatetags/core_tags.py:94
msgid "Settings"
msgstr "Nastavení"
#: core/templates/core/user_preferences.html:2
-#: core/templatetags/core_tags.py:122
+#: core/templatetags/core_tags.py:124
msgid "Preferences"
msgstr "Možnosti"
@@ -722,7 +751,7 @@ msgstr "Nastavit Modoboa"
msgid "No preferences available."
msgstr "Žádné možnosti nejsou k dispozici."
-#: core/templates/core/user_profile.html:3 core/templatetags/core_tags.py:118
+#: core/templates/core/user_profile.html:3 core/templatetags/core_tags.py:120
msgid "Profile"
msgstr "Profil"
@@ -730,36 +759,42 @@ msgstr "Profil"
msgid "Update your personal information"
msgstr "Aktualizovat osobní informace"
-#: core/templatetags/core_tags.py:36
+#: core/templatetags/core_tags.py:38
msgid "Modoboa"
msgstr "Modoboa"
-#: core/templatetags/core_tags.py:104
+#: core/templatetags/core_tags.py:106
msgid "Logout"
msgstr "Odhlásit se"
-#: core/templatetags/core_tags.py:129
+#: core/templatetags/core_tags.py:131
msgid "API"
msgstr "API"
-#: core/utils.py:35
+#: core/utils.py:36
msgid "The core part of Modoboa"
msgstr "Hlavní část Modoboa"
-#: core/views/admin.py:48
+#: core/views/admin.py:47
msgid "Parameters saved"
msgstr "Parametry uloženy"
-#: core/views/auth.py:45
+#: core/views/auth.py:50
+#, python-format
+msgid "Password scheme mismatch. Updating %s password"
+msgstr ""
+
+#: core/views/auth.py:64
#, python-format
msgid "User '%s' successfully logged in"
msgstr "Uživatel '%s' se úspěšně přihlásil"
-#: core/views/auth.py:53
+#: core/views/auth.py:72
msgid "Your username and password didn't match. Please try again."
-msgstr "Vaše uživatelské jméno nebo heslo se neshodují. Zkuste to prosím znovu."
+msgstr ""
+"Vaše uživatelské jméno nebo heslo se neshodují. Zkuste to prosím znovu."
-#: core/views/auth.py:88
+#: core/views/auth.py:107
msgid "User '{}' successfully logged out"
msgstr "Uživatel '{}' byl úspěšně odhlášen"
@@ -780,49 +815,53 @@ msgstr "Přístup aktualizován"
msgid "Connection to database %s not configured"
msgstr "Připojení k databázi %s není nastaveno"
-#: lib/exceptions.py:70
+#: lib/email_utils.py:350
+msgid "unable to determine encoding of string"
+msgstr ""
+
+#: lib/exceptions.py:71
#, python-format
msgid "Permission denied: %s"
msgstr "Přístup zamítnut: %s"
-#: lib/exceptions.py:71
+#: lib/exceptions.py:72
msgid "Permission denied"
msgstr "Přístup zamítnut"
-#: lib/fields.py:17 lib/validators.py:16
+#: lib/fields.py:19 lib/validators.py:18
msgid "Enter a valid domain name"
msgstr "Vložte platné doménové jméno"
-#: lib/fields.py:46 lib/fields.py:60
+#: lib/fields.py:48 lib/fields.py:62
msgid "Enter a valid email address."
msgstr "Vložte platnou emailovou adresu."
-#: lib/form_utils.py:82 templates/registration/password_reset_confirm.html:12
+#: lib/form_utils.py:81 templates/registration/password_reset_confirm.html:12
#: templates/registration/password_reset_form.html:11
msgid "Submit"
msgstr "Uložit"
-#: lib/form_utils.py:115 lib/form_utils.py:118
+#: lib/form_utils.py:114 lib/form_utils.py:117
msgid "Invalid request"
msgstr "Neplatný požadavek"
-#: lib/form_utils.py:393
+#: lib/form_utils.py:392
msgid "Yes"
msgstr "Ano"
-#: lib/ldap_utils.py:133
+#: lib/ldap_utils.py:134
msgid "Failed to update password: {}"
msgstr "Nebylo možné změnit heslo: {}"
-#: lib/templatetags/lib_tags.py:107
+#: lib/templatetags/lib_tags.py:108
msgid "From"
msgstr "Od"
-#: lib/templatetags/lib_tags.py:108
+#: lib/templatetags/lib_tags.py:109
msgid "To"
msgstr "Komu"
-#: lib/templatetags/lib_tags.py:110 templates/common/email_searchbar.html:17
+#: lib/templatetags/lib_tags.py:111 templates/common/email_searchbar.html:17
msgid "Subject"
msgstr "Předmět"
@@ -859,9 +898,8 @@ msgstr "Chyba:"
msgid "Help:"
msgstr "Nápověda:"
-#: templates/common/generic_modal.html:6
-#: templates/common/generic_modal.html:13 templates/common/wizard_forms.html:6
-#: templates/common/wizard_forms.html:27
+#: templates/common/generic_modal.html:6 templates/common/generic_modal.html:13
+#: templates/common/wizard_forms.html:6 templates/common/wizard_forms.html:27
msgid "Close"
msgstr "Zavřít"
@@ -895,7 +933,8 @@ msgstr "Zapomenuté heslo?"
msgid ""
"Your password has been set. You may go ahead and sign "
"in now."
-msgstr "Vaše heslo bylo nastaveno. Nyní se můžete přihlásit."
+msgstr ""
+"Vaše heslo bylo nastaveno. Nyní se můžete přihlásit."
#: templates/registration/password_reset_confirm.html:7
msgid "Change password"
@@ -905,7 +944,9 @@ msgstr "Změnit heslo"
msgid ""
"The password reset link was invalid, possibly because it has already been "
"used. Please request a new password reset."
-msgstr "Odkaz pro resetování hesla je neplatný, nejspíše proto, že byl již použit. Prosím, vyžádejte si nový odkaz."
+msgstr ""
+"Odkaz pro resetování hesla je neplatný, nejspíše proto, že byl již použit. "
+"Prosím, vyžádejte si nový odkaz."
#: templates/registration/password_reset_done.html:7
msgid ""
@@ -913,20 +954,27 @@ msgid ""
"exists with the email you entered. You should receive them shortly. "
"If you don't receive an email, please make sure you've entered your "
"primary address, and check your spam folder.
"
-msgstr "Zaslali jsme vám instrukce pro nastavení Vašeho hesla, pokud účet se zadaným emailem existuje. Měl by brzy dorazit.
Pokud žádný email nedorazil, zkontrolujte prosím, že jste správně zadali Vaši primární emailovou adresu a zkontrolujte složku Spam."
+msgstr ""
+"
Zaslali jsme vám instrukce pro nastavení Vašeho hesla, pokud účet se "
+"zadaným emailem existuje. Měl by brzy dorazit.
Pokud žádný email "
+"nedorazil, zkontrolujte prosím, že jste správně zadali Vaši primární "
+"emailovou adresu a zkontrolujte složku Spam."
#: templates/registration/password_reset_email.html:4
#, python-format
msgid ""
"To initiate the password reset process for your %(username)s Modoboa "
"account, click the link below:"
-msgstr "Klikněte na odkaz níže pro resetování hesla vašeho Modoboa účtu %(username)s:"
+msgstr ""
+"Klikněte na odkaz níže pro resetování hesla vašeho Modoboa účtu %(username)s:"
#: templates/registration/password_reset_email.html:10
msgid ""
"If clicking the link above doesn't work, please copy and paste the URL in a "
"new browser window instead."
-msgstr "Pokud odkaz výše nefunguje, prosím zkopírujte URL a vložte do nového okna prohlížeče."
+msgstr ""
+"Pokud odkaz výše nefunguje, prosím zkopírujte URL a vložte do nového okna "
+"prohlížeče."
#: templates/registration/password_reset_email.html:14
msgid "Sincerely, The Modoboa Team."
@@ -935,3 +983,12 @@ msgstr "S pozdravem, Tým Modoboa."
#: templates/registration/password_reset_subject.txt:3
msgid "Modoboa password reset"
msgstr "Reset Modoboa hesla"
+
+#~ msgid "Secret key"
+#~ msgstr "Tajný klíč"
+
+#~ msgid "Key used to encrypt/decrypt passwords"
+#~ msgstr "Klíč používaný k šifrování/dešifrování hesel"
+
+#~ msgid "Key must be either 16, 24, or 32 bytes long"
+#~ msgstr "Klíč musí mít délku 16, 24 nebo 32 znaků"
diff --git a/modoboa/locale/de/LC_MESSAGES/django.po b/modoboa/locale/de/LC_MESSAGES/django.po
index 0d7577e13..1191dc107 100644
--- a/modoboa/locale/de/LC_MESSAGES/django.po
+++ b/modoboa/locale/de/LC_MESSAGES/django.po
@@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-01-25 09:09+0100\n"
+"POT-Creation-Date: 2018-10-05 16:08+0200\n"
"PO-Revision-Date: 2015-07-09 14:03+0000\n"
"Last-Translator: controlc.de\n"
"Language-Team: German (http://www.transifex.com/tonio/modoboa/language/de/)\n"
@@ -21,61 +21,61 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: core/app_settings.py:26
+#: core/app_settings.py:22
#, fuzzy
#| msgid "Profile"
msgid "User profile"
msgstr "Profil"
-#: core/app_settings.py:39
+#: core/app_settings.py:35
msgid "Authentication"
msgstr "Authentifizierung"
-#: core/app_settings.py:42
+#: core/app_settings.py:38
msgid "Authentication type"
msgstr "Authentifizierungstyp"
-#: core/app_settings.py:43
+#: core/app_settings.py:39
msgid "Local"
msgstr "Lokal"
-#: core/app_settings.py:46
+#: core/app_settings.py:42
msgid "The backend used for authentication"
msgstr "Backend für die Authentifizierung"
-#: core/app_settings.py:51
+#: core/app_settings.py:47
msgid "Default password scheme"
msgstr "Standard-Passwortschema"
-#: core/app_settings.py:55
+#: core/app_settings.py:51
msgid "md5crypt (weak)"
msgstr "md5crypt (schwach)"
-#: core/app_settings.py:56
+#: core/app_settings.py:52
msgid "sha256 (weak)"
msgstr "sha256 (schwach)"
-#: core/app_settings.py:57
+#: core/app_settings.py:53
msgid "md5 (weak)"
msgstr "md5 (schwach)"
-#: core/app_settings.py:58
+#: core/app_settings.py:54
msgid "crypt (weak)"
msgstr "crypt (schwach)"
-#: core/app_settings.py:59
+#: core/app_settings.py:55
msgid "plain (weak)"
msgstr "plain (schwach)"
-#: core/app_settings.py:61
+#: core/app_settings.py:57
msgid "Scheme used to crypt mailbox passwords"
msgstr "Verschlüsselungsschema der Postfach-Passwörter"
-#: core/app_settings.py:66
+#: core/app_settings.py:62
msgid "Rounds"
msgstr "Runden"
-#: core/app_settings.py:69
+#: core/app_settings.py:65
msgid ""
"Number of rounds to use (only used by sha256crypt and sha512crypt). Must be "
"between 1000 and 999999999, inclusive."
@@ -83,112 +83,114 @@ msgstr ""
"Anzahl zu verwendender Runden (nur für sha256crypt und sha512crypt). Zahl "
"muss zwischen 1000 und 999999999 liegen."
-#: core/app_settings.py:76
-msgid "Secret key"
-msgstr "Geheimer Schlüssel"
+#: core/app_settings.py:72
+#, fuzzy
+#| msgid "Default password scheme"
+msgid "Update password scheme"
+msgstr "Standard-Passwortschema"
-#: core/app_settings.py:78
-msgid "Key used to encrypt/decrypt passwords"
-msgstr "Verwendeter Schlüssel, um Passwörter zu ver-/entschlüsseln"
+#: core/app_settings.py:75
+msgid "Update user password at login to use the default password scheme"
+msgstr ""
-#: core/app_settings.py:83
+#: core/app_settings.py:80
#, fuzzy
#| msgid "Default password scheme"
msgid "Default password"
msgstr "Standard-Passwortschema"
-#: core/app_settings.py:86
+#: core/app_settings.py:83
msgid "Default password for automatically created accounts."
msgstr ""
-#: core/app_settings.py:90
+#: core/app_settings.py:87
#, fuzzy
#| msgid "Bind password"
msgid "Random password length"
msgstr "Bind Passwort"
-#: core/app_settings.py:94
+#: core/app_settings.py:91
msgid "Length of randomly generated passwords."
msgstr ""
-#: core/app_settings.py:98
+#: core/app_settings.py:95
msgid "LDAP settings"
msgstr "LDAP-Einstellungen"
-#: core/app_settings.py:101
+#: core/app_settings.py:98
msgid "Server address"
msgstr "Server-Adresse"
-#: core/app_settings.py:104
+#: core/app_settings.py:101
msgid "The IP address or the DNS name of the LDAP server"
msgstr "IP-Adresse oder Hostname des LDAP-Servers"
-#: core/app_settings.py:109
+#: core/app_settings.py:106
msgid "Server port"
msgstr "Server-Port"
-#: core/app_settings.py:111
+#: core/app_settings.py:108
msgid "The TCP port number used by the LDAP server"
msgstr "Der TCP Port des LDAP-Servers"
-#: core/app_settings.py:116
+#: core/app_settings.py:113
msgid "Use a secured connection"
msgstr "Gesicherte Verbindung verwenden"
-#: core/app_settings.py:120
+#: core/app_settings.py:117
#, fuzzy
#| msgid "Use an SSL/TLS connection to access the LDAP server"
msgid "Use an SSL/STARTTLS connection to access the LDAP server"
msgstr "SSL/TLS-Verbindung für Zugriff auf LDAP-Server verwenden"
-#: core/app_settings.py:124
+#: core/app_settings.py:121
msgid "Authentication method"
msgstr "Authentifizierungsmethode"
-#: core/app_settings.py:125
+#: core/app_settings.py:122
msgid "Search and bind"
msgstr "Suchen und Bind anwenden"
-#: core/app_settings.py:126
+#: core/app_settings.py:123
msgid "Direct bind"
msgstr "Direkter Bind"
-#: core/app_settings.py:128
+#: core/app_settings.py:125
msgid "Choose the authentication method to use"
msgstr "Wählen Sie die Authentifizierungsmethode"
-#: core/app_settings.py:133
+#: core/app_settings.py:130
msgid "Bind DN"
msgstr "Bind DN"
-#: core/app_settings.py:136
+#: core/app_settings.py:133
msgid ""
"The distinguished name to use when binding to the LDAP server. Leave empty "
"for an anonymous bind"
msgstr ""
"Der DN für einen Bind an den LDAP-Server. Nichts eingeben für anonymen Bind."
-#: core/app_settings.py:144
+#: core/app_settings.py:141
msgid "Bind password"
msgstr "Bind Passwort"
-#: core/app_settings.py:147
+#: core/app_settings.py:144
msgid "The password to use when binding to the LDAP server (with 'Bind DN')"
msgstr "Das Passwort wenn mit dem Bind DN angemeldet wird."
-#: core/app_settings.py:156
+#: core/app_settings.py:153
msgid "Users search base"
msgstr "Benutzer Search Base"
-#: core/app_settings.py:159
+#: core/app_settings.py:156
msgid "The distinguished name of the search base used to find users"
msgstr "Der DN der Search Base mit der Benutzerkonten gefunden werden"
-#: core/app_settings.py:166
+#: core/app_settings.py:163
msgid "Search filter"
msgstr "Suchfilter"
-#: core/app_settings.py:169
+#: core/app_settings.py:166
msgid ""
"An optional filter string (e.g. '(objectClass=person)'). In order to be "
"valid, it must be enclosed in parentheses."
@@ -196,11 +198,11 @@ msgstr ""
"Ein optionaler Filter, z.B. '(objectClass=person)'. Der Filter muss "
"entsprechend der LDAP-Konvention in Klammern gesetzt werden."
-#: core/app_settings.py:177
+#: core/app_settings.py:174
msgid "User DN template"
msgstr "Vorlage für User DN"
-#: core/app_settings.py:180
+#: core/app_settings.py:177
#, python-format
msgid ""
"The template used to construct a user's DN. It should contain one "
@@ -209,27 +211,27 @@ msgstr ""
"Die Vorlage für einen User DN. Sie sollte einen Platzhalter, z.B. %(user)s "
"enthalten."
-#: core/app_settings.py:188
+#: core/app_settings.py:185
msgid "Password attribute"
msgstr "Passwort-Attribut"
-#: core/app_settings.py:190
+#: core/app_settings.py:187
msgid "The attribute used to store user passwords"
msgstr "Das Attribut für Benutzerpasswörter"
-#: core/app_settings.py:195
+#: core/app_settings.py:192
msgid "Active Directory"
msgstr "Active Directory"
-#: core/app_settings.py:198
+#: core/app_settings.py:195
msgid "Tell if the LDAP server is an Active Directory one"
msgstr "Auswählen wenn der LDAP-Server ein Active Directory ist."
-#: core/app_settings.py:202
+#: core/app_settings.py:199
msgid "Administrator groups"
msgstr "Administrator-Gruppen"
-#: core/app_settings.py:205
+#: core/app_settings.py:202
msgid ""
"Members of those LDAP Posix groups will be created as domain administrators. "
"Use ';' characters to separate groups."
@@ -237,160 +239,156 @@ msgstr ""
"Mitglieder dieser LDAP Posix-Gruppe werden als Domain-Administratoren "
"angelegt werden. Nutzen Sie ';', um Gruppen zu separieren."
-#: core/app_settings.py:212
+#: core/app_settings.py:209
msgid "Group type"
msgstr "Gruppentyp"
-#: core/app_settings.py:216
+#: core/app_settings.py:213
msgid "The LDAP group type to use with your directory."
msgstr ""
-#: core/app_settings.py:221
+#: core/app_settings.py:218
msgid "Groups search base"
msgstr "Gruppen Search Base"
-#: core/app_settings.py:224
+#: core/app_settings.py:221
msgid "The distinguished name of the search base used to find groups"
msgstr "Der DN der Search Base mit Gruppen gefunden werden"
-#: core/app_settings.py:229 core/templates/core/dashboard.html:5
+#: core/app_settings.py:226 core/templates/core/dashboard.html:5
msgid "Dashboard"
msgstr ""
-#: core/app_settings.py:232
+#: core/app_settings.py:229
msgid "Custom RSS feed"
msgstr ""
-#: core/app_settings.py:235
+#: core/app_settings.py:232
msgid "Display custom RSS feed to resellers and domain administrators"
msgstr ""
-#: core/app_settings.py:240
+#: core/app_settings.py:237
msgid "Hide features widget"
msgstr ""
-#: core/app_settings.py:243
+#: core/app_settings.py:240
msgid "Hide features widget for resellers and domain administrators"
msgstr ""
-#: core/app_settings.py:247
+#: core/app_settings.py:244
#, fuzzy
#| msgid "Applications"
msgid "Notifications"
msgstr "Applikationen"
-#: core/app_settings.py:250
+#: core/app_settings.py:247
#, fuzzy
#| msgid "Server address"
msgid "Sender address"
msgstr "Server-Adresse"
-#: core/app_settings.py:253
+#: core/app_settings.py:250
msgid "Email address used to send notifications."
msgstr ""
-#: core/app_settings.py:257
+#: core/app_settings.py:254
msgid "Public API"
msgstr ""
-#: core/app_settings.py:260
+#: core/app_settings.py:257
msgid "Enable communication"
msgstr ""
-#: core/app_settings.py:263
+#: core/app_settings.py:260
msgid "Enable communication with Modoboa public API"
msgstr ""
-#: core/app_settings.py:267
+#: core/app_settings.py:264
msgid "Check new versions"
msgstr "Prüfe auf neue Versionen"
-#: core/app_settings.py:270
+#: core/app_settings.py:267
msgid "Automatically checks if a newer version is available"
msgstr "Prüft automatisch ob eine neuere Version verfügbar ist."
-#: core/app_settings.py:274
+#: core/app_settings.py:271
msgid "Send statistics"
msgstr ""
-#: core/app_settings.py:277
+#: core/app_settings.py:274
msgid "Send statistics to Modoboa public API (counters and used extensions)"
msgstr ""
-#: core/app_settings.py:281
+#: core/app_settings.py:278
msgid "Miscellaneous"
msgstr "Verschiedenes"
-#: core/app_settings.py:284
+#: core/app_settings.py:281
msgid "Inactive account threshold"
msgstr ""
-#: core/app_settings.py:287
+#: core/app_settings.py:284
msgid ""
"An account with a last login date greater than this threshold (in days) will "
"be considered as inactive"
msgstr ""
-#: core/app_settings.py:294
+#: core/app_settings.py:291
msgid "Top notifications check interval"
msgstr "Benachrichtigungs-Prüfintervall"
-#: core/app_settings.py:297
+#: core/app_settings.py:294
msgid "Interval between two top notification checks (in seconds)"
msgstr "Intervall zwischen zwei Benachrichtigungsprüfungen (in Sekunden)"
-#: core/app_settings.py:303
+#: core/app_settings.py:300
msgid "Maximum log record age"
msgstr "Maximales Alter für Log-Einträge"
-#: core/app_settings.py:305
+#: core/app_settings.py:302
msgid "The maximum age in days of a log record"
msgstr "Das maximale Alter eines Log-Eintrags (in Tagen)"
-#: core/app_settings.py:310
+#: core/app_settings.py:307
msgid "Items per page"
msgstr "Einträge pro Seite"
-#: core/app_settings.py:312
+#: core/app_settings.py:309
msgid "Number of displayed items per page"
msgstr "Anzahl dargestellter Einträge pro Seite"
-#: core/app_settings.py:317
+#: core/app_settings.py:314
msgid "Default top redirection"
msgstr "Standardumleitung"
-#: core/app_settings.py:321
+#: core/app_settings.py:318
msgid "The default redirection used when no application is specified"
msgstr "Die Standardumleitung wenn kein Programm angegeben wurde"
-#: core/app_settings.py:354
-msgid "Key must be either 16, 24, or 32 bytes long"
-msgstr "Schlüssel muss 16, 24 oder 32 Byte lang sein"
-
-#: core/app_settings.py:363
+#: core/app_settings.py:353
msgid "Invalid syntax"
msgstr "Ungültiger Syntax"
-#: core/app_settings.py:369
+#: core/app_settings.py:359
msgid "Invalid rounds number"
msgstr "Ungültige Zahl für Runden"
-#: core/app_settings.py:396
+#: core/app_settings.py:386
msgid "This field is required"
msgstr "Dieses Feld ist erforderlich"
-#: core/apps.py:20
+#: core/apps.py:22
msgid "General"
msgstr "Allgemein"
-#: core/checks/settings_checks.py:11
+#: core/checks/settings_checks.py:10
msgid ""
"You have USE_TZ set to False, this may result in issues during transitions "
"between summer/winter time (ie the same local time occuring twice due to "
"clock change)."
msgstr ""
-#: core/checks/settings_checks.py:14
+#: core/checks/settings_checks.py:13
msgid "Set `USE_TZ = True` in settings.py"
msgstr ""
@@ -412,169 +410,169 @@ msgstr ""
msgid "Super administrator"
msgstr "Super-Administrator"
-#: core/constants.py:51 lib/form_utils.py:394
+#: core/constants.py:53 lib/form_utils.py:393
msgid "No"
msgstr "Nein"
-#: core/forms.py:24
+#: core/forms.py:22
msgid "Username"
msgstr "Benutzername"
-#: core/forms.py:28
+#: core/forms.py:26
msgid "Password"
msgstr "Passwort"
-#: core/forms.py:41
+#: core/forms.py:39
msgid "Old password"
msgstr "Altes Passwort"
-#: core/forms.py:45
+#: core/forms.py:43
msgid "New password"
msgstr "Neues Passwort"
-#: core/forms.py:49
+#: core/forms.py:47
msgid "Confirmation"
msgstr "Bestätigung"
-#: core/forms.py:77
+#: core/forms.py:75
msgid "Old password mismatchs"
msgstr "Altes Passwort stimmt nicht überein"
-#: core/forms.py:86
+#: core/forms.py:84
msgid "Passwords mismatch"
msgstr "Passwörter stimmen nicht überein"
-#: core/forms.py:106
+#: core/forms.py:104
msgid "Enable API access"
msgstr ""
-#: core/handlers.py:43
+#: core/handlers.py:40
msgid "added"
msgstr "hinzugefügt"
-#: core/handlers.py:46
+#: core/handlers.py:43
msgid "modified"
msgstr "verändert"
-#: core/handlers.py:48
+#: core/handlers.py:45
#, python-format
msgid "%(object)s '%(name)s' %(action)s by user %(user)s"
msgstr "%(object)s '%(name)s' %(action)s der Identität %(user)s"
-#: core/handlers.py:70
+#: core/handlers.py:67
#, fuzzy, python-format
#| msgid "%(object)s '%(name)s' %(action)s by user %(user)s"
msgid "%(object)s '%(name)s' %(action)s by "
msgstr "%(object)s '%(name)s' %(action)s der Identität %(user)s"
-#: core/handlers.py:72
+#: core/handlers.py:69
msgid "deleted"
msgstr "entfernt"
-#: core/handlers.py:76
+#: core/handlers.py:73
msgid "user {}"
msgstr ""
-#: core/handlers.py:78
+#: core/handlers.py:75
msgid "management command"
msgstr ""
-#: core/handlers.py:102
+#: core/handlers.py:99
msgid "You can't delete your own account"
msgstr "Sie können Ihr eigenes Konto nicht entfernen"
-#: core/handlers.py:138
+#: core/handlers.py:135
msgid "One or more updates are available"
msgstr "Eine oder mehrere Aktualisierungen sind verfügbar"
-#: core/models.py:58
+#: core/models.py:57
msgid "Allow mailboxes access"
msgstr "Erlaube den Postfach-Zugriff"
-#: core/models.py:60
+#: core/models.py:59
msgid "Allow this administrator to access user mailboxes"
msgstr "Erlaubt dem Administrator auf Benutzer-Postfächer zuzugreifen"
-#: core/models.py:63
+#: core/models.py:62
msgid "password"
msgstr "Passwort"
-#: core/models.py:66
+#: core/models.py:65
msgid "language"
msgstr "Sprache"
-#: core/models.py:69
+#: core/models.py:68
msgid "Prefered language to display pages."
msgstr "Bevorzugte Sprache für Seitendarstellung"
-#: core/models.py:73
+#: core/models.py:72
msgid "Phone number"
msgstr "Telefonnummer"
-#: core/models.py:75
+#: core/models.py:74
msgid "Secondary email"
msgstr "Alternative Email-Adresse"
-#: core/models.py:78
+#: core/models.py:77
msgid "An alternative e-mail address, can be used for recovery needs."
msgstr "Eine alternative e-mail Adresse zur Widerherstellung."
-#: core/models.py:128
+#: core/models.py:127
msgid "Failed to update password: LDAP module not installed"
msgstr "Konnte Passwort nicht aktualisieren: LDAP-Modul nicht installiert"
-#: core/models.py:157
+#: core/models.py:156
msgid "account"
msgstr "Konto"
-#: core/models.py:279
+#: core/models.py:278
msgid "Unknown"
msgstr "Unbekannt"
-#: core/models.py:313
+#: core/models.py:312
msgid "Invalid line"
msgstr "Ungültige Zeile"
-#: core/models.py:321
+#: core/models.py:320
msgid "You can't import an account with a role greater than yours"
msgstr ""
"Sie können kein Konto mit einer höheren Rolle als Ihrer eigenen importieren"
-#: core/models.py:336
+#: core/models.py:335
#, python-format
msgid "The simple user '%s' must have a valid email address"
msgstr "Der normale Benutzer '%s' muss eine gültige E-Mail-Adresse besitzen"
-#: core/models.py:341
+#: core/models.py:340
#, python-format
msgid "username and email fields must not differ for '%s'"
msgstr "Benutzername und E-Mail für '%s' dürfen sich nicht unterscheiden"
-#: core/password_validation.py:26
+#: core/password_validation.py:28
msgid "Password must contain at least {} digit."
msgid_plural "Password must contain at least {} digits."
msgstr[0] ""
msgstr[1] ""
-#: core/password_validation.py:36
+#: core/password_validation.py:38
msgid "Password must contain at least {} lowercase letter."
msgid_plural "Password must contain at least {} lowercase letters."
msgstr[0] ""
msgstr[1] ""
-#: core/password_validation.py:47
+#: core/password_validation.py:49
msgid "Password must contain at least {} uppercase letter."
msgid_plural "Password must contain at least {} uppercase letters."
msgstr[0] ""
msgstr[1] ""
-#: core/password_validation.py:59
+#: core/password_validation.py:61
msgid "Password must contain at least {} special character."
msgid_plural "Password must contain at least {} special characters."
msgstr[0] ""
msgstr[1] ""
-#: core/password_validation.py:67
+#: core/password_validation.py:69
msgid "Your password must contain a combination of different character types."
msgstr ""
@@ -624,7 +622,7 @@ msgid "API access token"
msgstr ""
#: core/templates/core/api_access.html:35
-#: core/templates/core/user_profile.html:10 lib/form_utils.py:359
+#: core/templates/core/user_profile.html:10 lib/form_utils.py:358
msgid "Update"
msgstr "Aktualisieren"
@@ -633,7 +631,7 @@ msgstr "Aktualisieren"
msgid "Hello %(user)s."
msgstr "Hallo %(user)s."
-#: core/templates/core/information.html:2 core/templatetags/core_tags.py:64
+#: core/templates/core/information.html:2 core/templatetags/core_tags.py:66
msgid "Information"
msgstr "Information"
@@ -684,7 +682,7 @@ msgstr "Rolle"
msgid "Last login"
msgstr "Letzte Anmeldung"
-#: core/templates/core/logs.html:2 core/templatetags/core_tags.py:68
+#: core/templates/core/logs.html:2 core/templatetags/core_tags.py:70
msgid "Logs"
msgstr "Logs"
@@ -692,7 +690,7 @@ msgstr "Logs"
msgid "Previously on Modoboa..."
msgstr "Vorher auf Modoboa…"
-#: core/templates/core/logs.html:6 lib/templatetags/lib_tags.py:109
+#: core/templates/core/logs.html:6 lib/templatetags/lib_tags.py:110
msgid "Date"
msgstr "Datum"
@@ -708,7 +706,7 @@ msgstr "Logger"
msgid "Message"
msgstr "Nachricht"
-#: core/templates/core/parameters.html:2 core/templatetags/core_tags.py:73
+#: core/templates/core/parameters.html:2 core/templatetags/core_tags.py:75
msgid "Parameters"
msgstr "Parameter"
@@ -725,12 +723,12 @@ msgstr "Speichern"
msgid "Modoboa settings"
msgstr "Modoboa-Einstellungen"
-#: core/templates/core/user_index.html:4 core/templatetags/core_tags.py:92
+#: core/templates/core/user_index.html:4 core/templatetags/core_tags.py:94
msgid "Settings"
msgstr "Einstellungen"
#: core/templates/core/user_preferences.html:2
-#: core/templatetags/core_tags.py:122
+#: core/templatetags/core_tags.py:124
msgid "Preferences"
msgstr "Einstellungen"
@@ -744,7 +742,7 @@ msgstr "Modoboa anpassen"
msgid "No preferences available."
msgstr "Einstellungen gespeichert"
-#: core/templates/core/user_profile.html:3 core/templatetags/core_tags.py:118
+#: core/templates/core/user_profile.html:3 core/templatetags/core_tags.py:120
msgid "Profile"
msgstr "Profil"
@@ -752,38 +750,43 @@ msgstr "Profil"
msgid "Update your personal information"
msgstr "Aktualisieren Sie Ihre persönlichen Daten"
-#: core/templatetags/core_tags.py:36
+#: core/templatetags/core_tags.py:38
msgid "Modoboa"
msgstr "Modoboa"
-#: core/templatetags/core_tags.py:104
+#: core/templatetags/core_tags.py:106
msgid "Logout"
msgstr "Logout"
-#: core/templatetags/core_tags.py:129
+#: core/templatetags/core_tags.py:131
msgid "API"
msgstr ""
-#: core/utils.py:35
+#: core/utils.py:36
msgid "The core part of Modoboa"
msgstr "Der Kern von Modoboa"
-#: core/views/admin.py:48
+#: core/views/admin.py:47
msgid "Parameters saved"
msgstr "Parameter gespeichert"
-#: core/views/auth.py:45
+#: core/views/auth.py:50
+#, python-format
+msgid "Password scheme mismatch. Updating %s password"
+msgstr ""
+
+#: core/views/auth.py:64
#, python-format
msgid "User '%s' successfully logged in"
msgstr "Benutzer '%s' hat sich erfolgreich angemeldet"
-#: core/views/auth.py:53
+#: core/views/auth.py:72
msgid "Your username and password didn't match. Please try again."
msgstr ""
"Ihr Benutzername und Passwort stimmen nicht überein. Bitte versuchen Sie es "
"noch einmal."
-#: core/views/auth.py:88
+#: core/views/auth.py:107
#, fuzzy
#| msgid "User '%s' successfully logged in"
msgid "User '{}' successfully logged out"
@@ -808,51 +811,55 @@ msgstr "Profil aktualisiert"
msgid "Connection to database %s not configured"
msgstr "Verbindung zu Datenbank %s nicht konfiguriert"
-#: lib/exceptions.py:70
+#: lib/email_utils.py:350
+msgid "unable to determine encoding of string"
+msgstr ""
+
+#: lib/exceptions.py:71
#, python-format
msgid "Permission denied: %s"
msgstr "Zugriff verweigert: %s"
-#: lib/exceptions.py:71
+#: lib/exceptions.py:72
msgid "Permission denied"
msgstr "Zugriff verweigert"
-#: lib/fields.py:17 lib/validators.py:16
+#: lib/fields.py:19 lib/validators.py:18
msgid "Enter a valid domain name"
msgstr "Geben Sie einen gültigen Domain-Namen an"
-#: lib/fields.py:46 lib/fields.py:60
+#: lib/fields.py:48 lib/fields.py:62
#, fuzzy
#| msgid "Enter a valid domain name"
msgid "Enter a valid email address."
msgstr "Geben Sie einen gültigen Domain-Namen an"
-#: lib/form_utils.py:82 templates/registration/password_reset_confirm.html:12
+#: lib/form_utils.py:81 templates/registration/password_reset_confirm.html:12
#: templates/registration/password_reset_form.html:11
msgid "Submit"
msgstr "Abschicken"
-#: lib/form_utils.py:115 lib/form_utils.py:118
+#: lib/form_utils.py:114 lib/form_utils.py:117
msgid "Invalid request"
msgstr "Ungültige Anfrage"
-#: lib/form_utils.py:393
+#: lib/form_utils.py:392
msgid "Yes"
msgstr "Ja"
-#: lib/ldap_utils.py:133
+#: lib/ldap_utils.py:134
msgid "Failed to update password: {}"
msgstr "Konnte Passwort nicht aktualisieren: {}"
-#: lib/templatetags/lib_tags.py:107
+#: lib/templatetags/lib_tags.py:108
msgid "From"
msgstr "Absender"
-#: lib/templatetags/lib_tags.py:108
+#: lib/templatetags/lib_tags.py:109
msgid "To"
msgstr "Empfänger"
-#: lib/templatetags/lib_tags.py:110 templates/common/email_searchbar.html:17
+#: lib/templatetags/lib_tags.py:111 templates/common/email_searchbar.html:17
msgid "Subject"
msgstr "Betreff"
@@ -969,6 +976,15 @@ msgstr ""
msgid "Modoboa password reset"
msgstr ""
+#~ msgid "Secret key"
+#~ msgstr "Geheimer Schlüssel"
+
+#~ msgid "Key used to encrypt/decrypt passwords"
+#~ msgstr "Verwendeter Schlüssel, um Passwörter zu ver-/entschlüsseln"
+
+#~ msgid "Key must be either 16, 24, or 32 bytes long"
+#~ msgstr "Schlüssel muss 16, 24 oder 32 Byte lang sein"
+
#~ msgid "First name"
#~ msgstr "Vorname"
diff --git a/modoboa/locale/el_GR/LC_MESSAGES/django.po b/modoboa/locale/el_GR/LC_MESSAGES/django.po
index 2aaf5ba61..5f5bf86c8 100644
--- a/modoboa/locale/el_GR/LC_MESSAGES/django.po
+++ b/modoboa/locale/el_GR/LC_MESSAGES/django.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-01-25 09:09+0100\n"
+"POT-Creation-Date: 2018-10-05 16:08+0200\n"
"PO-Revision-Date: 2017-10-12 19:37+0000\n"
"Last-Translator: Kostas Moumouris \n"
"Language-Team: Greek (Greece) (http://www.transifex.com/tonio/modoboa/"
@@ -20,61 +20,61 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: core/app_settings.py:26
+#: core/app_settings.py:22
msgid "User profile"
msgstr "Προφίλ Χρήστη"
-#: core/app_settings.py:39
+#: core/app_settings.py:35
msgid "Authentication"
msgstr "Πιστοποίηση"
-#: core/app_settings.py:42
+#: core/app_settings.py:38
msgid "Authentication type"
msgstr "Τύπος Πιστοποίησης"
-#: core/app_settings.py:43
+#: core/app_settings.py:39
msgid "Local"
msgstr "Τοπικός"
-#: core/app_settings.py:46
+#: core/app_settings.py:42
msgid "The backend used for authentication"
msgstr "Το backend που χρησιμοποιείται για πιστοποίηση"
-#: core/app_settings.py:51
+#: core/app_settings.py:47
msgid "Default password scheme"
msgstr "Προεπιλεγμένος αλγόριθμος κωδικοποίησης"
-#: core/app_settings.py:55
+#: core/app_settings.py:51
msgid "md5crypt (weak)"
msgstr "md5crypt (αδύναμο)"
-#: core/app_settings.py:56
+#: core/app_settings.py:52
msgid "sha256 (weak)"
msgstr "sha256 (αδύναμο)"
-#: core/app_settings.py:57
+#: core/app_settings.py:53
msgid "md5 (weak)"
msgstr "md5 (αδύναμο)"
-#: core/app_settings.py:58
+#: core/app_settings.py:54
msgid "crypt (weak)"
msgstr "crypt (αδύναμο)"
-#: core/app_settings.py:59
+#: core/app_settings.py:55
msgid "plain (weak)"
msgstr "plain (αδύναμο)"
-#: core/app_settings.py:61
+#: core/app_settings.py:57
msgid "Scheme used to crypt mailbox passwords"
msgstr ""
"Σχήμα που θα χρησιμοποιηθεί για την κρυπτογράφηση των κωδικών των "
"λογαριασμών αλληλογραφίας"
-#: core/app_settings.py:66
+#: core/app_settings.py:62
msgid "Rounds"
msgstr "Επαναλήψεων"
-#: core/app_settings.py:69
+#: core/app_settings.py:65
msgid ""
"Number of rounds to use (only used by sha256crypt and sha512crypt). Must be "
"between 1000 and 999999999, inclusive."
@@ -82,83 +82,83 @@ msgstr ""
"Αριθμός επαναλήψεων (μόνο για sha256crypt και sha512crypt). Μπορεί να είναι "
"από 1000 έως και 999999999"
-#: core/app_settings.py:76
-msgid "Secret key"
-msgstr "Μυστικό κλειδί"
+#: core/app_settings.py:72
+#, fuzzy
+#| msgid "Default password scheme"
+msgid "Update password scheme"
+msgstr "Προεπιλεγμένος αλγόριθμος κωδικοποίησης"
-#: core/app_settings.py:78
-msgid "Key used to encrypt/decrypt passwords"
+#: core/app_settings.py:75
+msgid "Update user password at login to use the default password scheme"
msgstr ""
-"Το κλειδί που χρησιμοποιείται για την κρυπτογράφηση/αποκρυπτογράφηση των "
-"κωδικών"
-#: core/app_settings.py:83
+#: core/app_settings.py:80
msgid "Default password"
msgstr "Προκαθορισμένος κωδικός"
-#: core/app_settings.py:86
+#: core/app_settings.py:83
msgid "Default password for automatically created accounts."
msgstr "Προκαθορισμένος κωδικός για αυτόματη δημιουργία λογαριασμών"
-#: core/app_settings.py:90
+#: core/app_settings.py:87
msgid "Random password length"
msgstr "Μήκος τυχαίου κωδικού"
-#: core/app_settings.py:94
+#: core/app_settings.py:91
msgid "Length of randomly generated passwords."
msgstr "Μήκος των τυχαίων δημιουργημένων κωδικών"
-#: core/app_settings.py:98
+#: core/app_settings.py:95
msgid "LDAP settings"
msgstr "Ρυθμίσεις LDAP"
-#: core/app_settings.py:101
+#: core/app_settings.py:98
msgid "Server address"
msgstr "Διεύθυνση εξυπηρετητή"
-#: core/app_settings.py:104
+#: core/app_settings.py:101
msgid "The IP address or the DNS name of the LDAP server"
msgstr "Η IP διεύθυνση ή το DNS όνομα του εξυπηρετητή LDAP"
-#: core/app_settings.py:109
+#: core/app_settings.py:106
msgid "Server port"
msgstr "Πόρτα εξυπηρετητή"
-#: core/app_settings.py:111
+#: core/app_settings.py:108
msgid "The TCP port number used by the LDAP server"
msgstr "Η TCP πόρτα λειτουργίας του εξυπηρετητή LDAP"
-#: core/app_settings.py:116
+#: core/app_settings.py:113
msgid "Use a secured connection"
msgstr "Χρήση ασφαλής σύνδεσης"
-#: core/app_settings.py:120
+#: core/app_settings.py:117
msgid "Use an SSL/STARTTLS connection to access the LDAP server"
msgstr ""
"Χρησιμοποιήστε μια σύνδεση SSL / STARTTLS για να συνδεθήκατε στον διακομιστή "
"LDAP"
-#: core/app_settings.py:124
+#: core/app_settings.py:121
msgid "Authentication method"
msgstr "Μέθοδος Πιστοποίησης"
-#: core/app_settings.py:125
+#: core/app_settings.py:122
msgid "Search and bind"
msgstr "Αναζήτηση χρήστη και bind"
-#: core/app_settings.py:126
+#: core/app_settings.py:123
msgid "Direct bind"
msgstr "Χρήση Bind DN"
-#: core/app_settings.py:128
+#: core/app_settings.py:125
msgid "Choose the authentication method to use"
msgstr "Επιλογή μεθόδου πιστοποίησης"
-#: core/app_settings.py:133
+#: core/app_settings.py:130
msgid "Bind DN"
msgstr "Bind DN"
-#: core/app_settings.py:136
+#: core/app_settings.py:133
msgid ""
"The distinguished name to use when binding to the LDAP server. Leave empty "
"for an anonymous bind"
@@ -166,28 +166,28 @@ msgstr ""
"To distinguished name για το bind στον εξυπηρετητή LDAP. Αφήστε το κενό για "
"anonymous"
-#: core/app_settings.py:144
+#: core/app_settings.py:141
msgid "Bind password"
msgstr "Bind κωδικός "
-#: core/app_settings.py:147
+#: core/app_settings.py:144
msgid "The password to use when binding to the LDAP server (with 'Bind DN')"
msgstr ""
"Ο κωδικός για το bind στον εξυπηρετητή LDAP (αντιστοιχεί στο 'Bind DN')"
-#: core/app_settings.py:156
+#: core/app_settings.py:153
msgid "Users search base"
msgstr "Base αναζήτησης χρηστών"
-#: core/app_settings.py:159
+#: core/app_settings.py:156
msgid "The distinguished name of the search base used to find users"
msgstr "Το Base DN αναζήτησης χρηστών"
-#: core/app_settings.py:166
+#: core/app_settings.py:163
msgid "Search filter"
msgstr "Φίλτρο αναζήτησης"
-#: core/app_settings.py:169
+#: core/app_settings.py:166
msgid ""
"An optional filter string (e.g. '(objectClass=person)'). In order to be "
"valid, it must be enclosed in parentheses."
@@ -195,11 +195,11 @@ msgstr ""
"Προαιρετικό φίλτρο (π.χ. '(objectClass=person)'). Για να είναι έγκυρο πρέπει "
"να περικλείεται σε παρενθέσεις."
-#: core/app_settings.py:177
+#: core/app_settings.py:174
msgid "User DN template"
msgstr "Πρότυπο για DN χρηστών"
-#: core/app_settings.py:180
+#: core/app_settings.py:177
#, python-format
msgid ""
"The template used to construct a user's DN. It should contain one "
@@ -208,27 +208,27 @@ msgstr ""
"Το πρότυπο δημιουργίας DN χρηστών. Θα πρέπει να περιλαμβάνει έναν "
"placeholder (π.χ. %(user)s)"
-#: core/app_settings.py:188
+#: core/app_settings.py:185
msgid "Password attribute"
msgstr "Το πεδίο του κωδικού"
-#: core/app_settings.py:190
+#: core/app_settings.py:187
msgid "The attribute used to store user passwords"
msgstr "Το πεδίο αποθήκευσης των κωδικών χρηστών"
-#: core/app_settings.py:195
+#: core/app_settings.py:192
msgid "Active Directory"
msgstr "Active Directory"
-#: core/app_settings.py:198
+#: core/app_settings.py:195
msgid "Tell if the LDAP server is an Active Directory one"
msgstr "Ο εξυπηρετητής LDAP είναι Active Directory"
-#: core/app_settings.py:202
+#: core/app_settings.py:199
msgid "Administrator groups"
msgstr "Groups Διαχειριστών"
-#: core/app_settings.py:205
+#: core/app_settings.py:202
msgid ""
"Members of those LDAP Posix groups will be created as domain administrators. "
"Use ';' characters to separate groups."
@@ -236,163 +236,159 @@ msgstr ""
"Τα μέλη αυτών των LDAP Posix ομάδων χρηστών θα δημιουργηθούν ως διαχειριστές "
"domain. Χρησιμοποιείστε τον χαραχτήρα ';' για να ξεχωρίσετε τις ομάδες."
-#: core/app_settings.py:212
+#: core/app_settings.py:209
msgid "Group type"
msgstr "Τύπος ομάδας"
-#: core/app_settings.py:216
+#: core/app_settings.py:213
msgid "The LDAP group type to use with your directory."
msgstr "Τύπος ομάδας LDAP που χρησιμοποιείται με τον κατάλογο σας."
-#: core/app_settings.py:221
+#: core/app_settings.py:218
msgid "Groups search base"
msgstr "Base αναζήτησης ομάδων χρηστών"
-#: core/app_settings.py:224
+#: core/app_settings.py:221
msgid "The distinguished name of the search base used to find groups"
msgstr "Το Base DN αναζήτησης ομάδων χρηστών"
-#: core/app_settings.py:229 core/templates/core/dashboard.html:5
+#: core/app_settings.py:226 core/templates/core/dashboard.html:5
msgid "Dashboard"
msgstr "Ταμπλό Συντομεύσεων"
-#: core/app_settings.py:232
+#: core/app_settings.py:229
msgid "Custom RSS feed"
msgstr "Κατά παραγγελία RSS feed"
-#: core/app_settings.py:235
+#: core/app_settings.py:232
msgid "Display custom RSS feed to resellers and domain administrators"
msgstr ""
"Προβολή κατά παραγγελία RSS feed για μεταπωλητές και διαχειριστές τομέα"
-#: core/app_settings.py:240
+#: core/app_settings.py:237
msgid "Hide features widget"
msgstr "Κρύβω τις λειτουργίες από τα widget"
-#: core/app_settings.py:243
+#: core/app_settings.py:240
msgid "Hide features widget for resellers and domain administrators"
msgstr ""
"Κρύβω τις λειτουργίες από τα widget για τους μεταπωλητές και τους "
"διαχειριστές του τομέα"
-#: core/app_settings.py:247
+#: core/app_settings.py:244
msgid "Notifications"
msgstr "Υπενθύμιση "
-#: core/app_settings.py:250
+#: core/app_settings.py:247
msgid "Sender address"
msgstr "Διεύθυνση αποστολέα"
-#: core/app_settings.py:253
+#: core/app_settings.py:250
msgid "Email address used to send notifications."
msgstr "Email διεύθυνση που χρησιμοποιείται για την αποστολή υπενθυμίσεων "
-#: core/app_settings.py:257
+#: core/app_settings.py:254
msgid "Public API"
msgstr "Δημόσιο API"
-#: core/app_settings.py:260
+#: core/app_settings.py:257
msgid "Enable communication"
msgstr "Ενεργοποίηση επικοινωνίας"
-#: core/app_settings.py:263
+#: core/app_settings.py:260
msgid "Enable communication with Modoboa public API"
msgstr "Ενεργοποίηση επικοινωνίας με δημόσιο API του Modaboa"
-#: core/app_settings.py:267
+#: core/app_settings.py:264
msgid "Check new versions"
msgstr "Έλεγχος ενημερώσεων"
-#: core/app_settings.py:270
+#: core/app_settings.py:267
msgid "Automatically checks if a newer version is available"
msgstr "Αυτόματος έλεγχος διαθέσιμων ενημερώσεων"
-#: core/app_settings.py:274
+#: core/app_settings.py:271
msgid "Send statistics"
msgstr "Αποστολή στατιστικών"
-#: core/app_settings.py:277
+#: core/app_settings.py:274
msgid "Send statistics to Modoboa public API (counters and used extensions)"
msgstr ""
"Αποστολή στατιστικών στο public API του Motaboa (counters και used "
"extensions)"
-#: core/app_settings.py:281
+#: core/app_settings.py:278
msgid "Miscellaneous"
msgstr "Διάφορα"
-#: core/app_settings.py:284
+#: core/app_settings.py:281
msgid "Inactive account threshold"
msgstr "Όριο απενεργοποιημένων λογαριασμών "
-#: core/app_settings.py:287
+#: core/app_settings.py:284
msgid ""
"An account with a last login date greater than this threshold (in days) will "
"be considered as inactive"
msgstr "Όριο (σε ημέρες) για να απενεργοποιηθεί ένας Λογαριασμός."
-#: core/app_settings.py:294
+#: core/app_settings.py:291
msgid "Top notifications check interval"
msgstr "Μέγιστο διάστημα ελέγχου ειδοποιήσεων"
-#: core/app_settings.py:297
+#: core/app_settings.py:294
msgid "Interval between two top notification checks (in seconds)"
msgstr "Διάστημα μεταξύ των δύο πρώτων ελέγχων ειδοποιήσεων (σε δευτερόλεπτα)"
-#: core/app_settings.py:303
+#: core/app_settings.py:300
msgid "Maximum log record age"
msgstr "Μέγιστος χρόνος καταγραφής των log"
-#: core/app_settings.py:305
+#: core/app_settings.py:302
msgid "The maximum age in days of a log record"
msgstr "Μέγιστη διάρκεια σε ημέρες καταγραφής των log"
-#: core/app_settings.py:310
+#: core/app_settings.py:307
msgid "Items per page"
msgstr "Εμφανίσεις ανά σελίδα"
-#: core/app_settings.py:312
+#: core/app_settings.py:309
msgid "Number of displayed items per page"
msgstr "Αριθμός εμφανίσεων ανά σελίδα"
-#: core/app_settings.py:317
+#: core/app_settings.py:314
msgid "Default top redirection"
msgstr "Κύριες προκαθορισμένες αναδρομολογήσεις"
-#: core/app_settings.py:321
+#: core/app_settings.py:318
msgid "The default redirection used when no application is specified"
msgstr ""
"Προκαθορισμένες αναδρομολογήσεις που χρησιμοποιούνται όταν δεν υπάρχουν "
"προκαθορισμένες εφαρμογές"
-#: core/app_settings.py:354
-msgid "Key must be either 16, 24, or 32 bytes long"
-msgstr "Το κλειδί πρέπει να είναι μεγέθους 16, 24 ή 32 bytes"
-
-#: core/app_settings.py:363
+#: core/app_settings.py:353
msgid "Invalid syntax"
msgstr "Μη έγκυρη σύνταξη"
-#: core/app_settings.py:369
+#: core/app_settings.py:359
msgid "Invalid rounds number"
msgstr "Λάθος αριθμός επαναλήψεων "
-#: core/app_settings.py:396
+#: core/app_settings.py:386
msgid "This field is required"
msgstr "Αυτό το πεδίο είναι υποχρεωτικό"
-#: core/apps.py:20
+#: core/apps.py:22
msgid "General"
msgstr "Γενικά"
-#: core/checks/settings_checks.py:11
+#: core/checks/settings_checks.py:10
msgid ""
"You have USE_TZ set to False, this may result in issues during transitions "
"between summer/winter time (ie the same local time occuring twice due to "
"clock change)."
msgstr ""
-#: core/checks/settings_checks.py:14
+#: core/checks/settings_checks.py:13
msgid "Set `USE_TZ = True` in settings.py"
msgstr ""
@@ -412,174 +408,174 @@ msgstr "Μεταπωλητής "
msgid "Super administrator"
msgstr "Super διαχειριστής"
-#: core/constants.py:51 lib/form_utils.py:394
+#: core/constants.py:53 lib/form_utils.py:393
msgid "No"
msgstr "Όχι"
-#: core/forms.py:24
+#: core/forms.py:22
msgid "Username"
msgstr "Όνομα Χρήστη"
-#: core/forms.py:28
+#: core/forms.py:26
msgid "Password"
msgstr "Κωδικός"
-#: core/forms.py:41
+#: core/forms.py:39
msgid "Old password"
msgstr "Παλιός κωδικός"
-#: core/forms.py:45
+#: core/forms.py:43
msgid "New password"
msgstr "Νέος κωδικός"
-#: core/forms.py:49
+#: core/forms.py:47
msgid "Confirmation"
msgstr "Επιβεβαίωση"
-#: core/forms.py:77
+#: core/forms.py:75
msgid "Old password mismatchs"
msgstr "Αναντιστοιχία παλιού κωδικού"
-#: core/forms.py:86
+#: core/forms.py:84
msgid "Passwords mismatch"
msgstr "Αναντιστοιχία κωδικών"
-#: core/forms.py:106
+#: core/forms.py:104
msgid "Enable API access"
msgstr "Ενεργοποίηση πρόσβασης API"
-#: core/handlers.py:43
+#: core/handlers.py:40
msgid "added"
msgstr "πρόσθεσε"
-#: core/handlers.py:46
+#: core/handlers.py:43
msgid "modified"
msgstr "άλλαξε"
-#: core/handlers.py:48
+#: core/handlers.py:45
#, python-format
msgid "%(object)s '%(name)s' %(action)s by user %(user)s"
msgstr "%(object)s '%(name)s' %(action)s του χρήστη %(user)s"
-#: core/handlers.py:70
+#: core/handlers.py:67
#, python-format
msgid "%(object)s '%(name)s' %(action)s by "
msgstr "%(object)s'%(name)s'%(action)s από"
-#: core/handlers.py:72
+#: core/handlers.py:69
msgid "deleted"
msgstr "Διαγράφηκε"
-#: core/handlers.py:76
+#: core/handlers.py:73
msgid "user {}"
msgstr "Χρήστης {}"
-#: core/handlers.py:78
+#: core/handlers.py:75
msgid "management command"
msgstr "Εντολή διαχείρισης"
-#: core/handlers.py:102
+#: core/handlers.py:99
msgid "You can't delete your own account"
msgstr "Δεν μπορείτε να διαγράψετε τον δικό σας λογαριασμό"
-#: core/handlers.py:138
+#: core/handlers.py:135
msgid "One or more updates are available"
msgstr "Υπάρχουν διαθέσιμες ενημερώσεις"
-#: core/models.py:58
+#: core/models.py:57
msgid "Allow mailboxes access"
msgstr "Να επιτρέπεται η πρόσβαση σε γραμματοκιβώτια"
-#: core/models.py:60
+#: core/models.py:59
msgid "Allow this administrator to access user mailboxes"
msgstr ""
"Να επιτρέπεται σε αυτόν τον διαχειριστή η πρόσβαση στα γραμματοκιβώτια "
"χρηστών"
-#: core/models.py:63
+#: core/models.py:62
msgid "password"
msgstr "κωδικός"
-#: core/models.py:66
+#: core/models.py:65
msgid "language"
msgstr "Γλώσσα "
-#: core/models.py:69
+#: core/models.py:68
msgid "Prefered language to display pages."
msgstr "Επιλογή γλώσσας για την εμφάνιση σελίδων."
-#: core/models.py:73
+#: core/models.py:72
msgid "Phone number"
msgstr "Τηλέφωνο"
-#: core/models.py:75
+#: core/models.py:74
msgid "Secondary email"
msgstr "Δευτερεύον email"
-#: core/models.py:78
+#: core/models.py:77
msgid "An alternative e-mail address, can be used for recovery needs."
msgstr ""
"Μια εναλλακτική e-mail διεύθυνση, μπορεί να χρησιμοποιηθεί για λόγους "
"ανάκτησης."
-#: core/models.py:128
+#: core/models.py:127
msgid "Failed to update password: LDAP module not installed"
msgstr ""
"Σφάλμα κατά την ενημέρωση του κωδικού: το LDAP module δεν είναι εγκατεστημένο"
-#: core/models.py:157
+#: core/models.py:156
msgid "account"
msgstr "λογαριασμός"
-#: core/models.py:279
+#: core/models.py:278
msgid "Unknown"
msgstr "Άγνωστη"
-#: core/models.py:313
+#: core/models.py:312
msgid "Invalid line"
msgstr "Λάθος γραμμή"
-#: core/models.py:321
+#: core/models.py:320
msgid "You can't import an account with a role greater than yours"
msgstr ""
"Δεν μπορείτε να εισάγετε έναν λογαριασμό με ρόλο μεγαλύτερο από τον δικό σας"
-#: core/models.py:336
+#: core/models.py:335
#, python-format
msgid "The simple user '%s' must have a valid email address"
msgstr "Ο απλός χρήστης '%s' πρέπει να έχει μια έγκυρη email διεύθυνση"
-#: core/models.py:341
+#: core/models.py:340
#, python-format
msgid "username and email fields must not differ for '%s'"
msgstr ""
"Το όνομα χρήστη και το email δεν μπορεί να είναι διαφορετικά για τον '%s'"
-#: core/password_validation.py:26
+#: core/password_validation.py:28
msgid "Password must contain at least {} digit."
msgid_plural "Password must contain at least {} digits."
msgstr[0] "Ο κωδικός πρέπει να περιέχει τουλάχιστον {} ένα ψηφίο"
msgstr[1] "Ο κωδικός πρέπει να περιέχει τουλάχιστον {} ένα ψηφίο"
-#: core/password_validation.py:36
+#: core/password_validation.py:38
msgid "Password must contain at least {} lowercase letter."
msgid_plural "Password must contain at least {} lowercase letters."
msgstr[0] "Ο κωδικός πρέπει να περιέχει τουλάχιστον {} μικρά γράμματα."
msgstr[1] "Ο κωδικός πρέπει να περιέχει τουλάχιστον {} μικρά γράμματα."
-#: core/password_validation.py:47
+#: core/password_validation.py:49
msgid "Password must contain at least {} uppercase letter."
msgid_plural "Password must contain at least {} uppercase letters."
msgstr[0] "Ο κωδικός πρέπει να περιέχει τουλάχιστον {} κεφαλαία γράμματα."
msgstr[1] "Ο κωδικός πρέπει να περιέχει τουλάχιστον {} κεφαλαία γράμματα."
-#: core/password_validation.py:59
+#: core/password_validation.py:61
msgid "Password must contain at least {} special character."
msgid_plural "Password must contain at least {} special characters."
msgstr[0] "Ο κωδικός πρέπει να περιέχει τουλάχιστον {} ένα σπέσιαλ χαρακτήρα."
msgstr[1] "Ο κωδικός πρέπει να περιέχει τουλάχιστον {} ένα σπέσιαλ χαρακτήρα."
-#: core/password_validation.py:67
+#: core/password_validation.py:69
msgid "Your password must contain a combination of different character types."
msgstr ""
"Ο κωδικός πρέπει να περιέχει ένα συνδυασμό από διαφορετικούς τύπους "
@@ -635,7 +631,7 @@ msgid "API access token"
msgstr "Κωδικός πρόσβασης στο API"
#: core/templates/core/api_access.html:35
-#: core/templates/core/user_profile.html:10 lib/form_utils.py:359
+#: core/templates/core/user_profile.html:10 lib/form_utils.py:358
msgid "Update"
msgstr "Ενημέρωση"
@@ -644,7 +640,7 @@ msgstr "Ενημέρωση"
msgid "Hello %(user)s."
msgstr "Για σου %(user)s."
-#: core/templates/core/information.html:2 core/templatetags/core_tags.py:64
+#: core/templates/core/information.html:2 core/templatetags/core_tags.py:66
msgid "Information"
msgstr "Πληροφορίες"
@@ -695,7 +691,7 @@ msgstr "Ρόλος"
msgid "Last login"
msgstr "Τελευταία είσοδος χρήστη"
-#: core/templates/core/logs.html:2 core/templatetags/core_tags.py:68
+#: core/templates/core/logs.html:2 core/templatetags/core_tags.py:70
msgid "Logs"
msgstr "Καταγραφές"
@@ -703,7 +699,7 @@ msgstr "Καταγραφές"
msgid "Previously on Modoboa..."
msgstr "Πρώην στο Modaboa... "
-#: core/templates/core/logs.html:6 lib/templatetags/lib_tags.py:109
+#: core/templates/core/logs.html:6 lib/templatetags/lib_tags.py:110
msgid "Date"
msgstr "Ημερομηνία"
@@ -719,7 +715,7 @@ msgstr "Καταχωρητής"
msgid "Message"
msgstr "Μήνυμα"
-#: core/templates/core/parameters.html:2 core/templatetags/core_tags.py:73
+#: core/templates/core/parameters.html:2 core/templatetags/core_tags.py:75
msgid "Parameters"
msgstr "Παράμετροι"
@@ -736,12 +732,12 @@ msgstr "Αποθήκευση"
msgid "Modoboa settings"
msgstr "Ρυθμίσεις Modoboa"
-#: core/templates/core/user_index.html:4 core/templatetags/core_tags.py:92
+#: core/templates/core/user_index.html:4 core/templatetags/core_tags.py:94
msgid "Settings"
msgstr "Ρυθμίσεις"
#: core/templates/core/user_preferences.html:2
-#: core/templatetags/core_tags.py:122
+#: core/templatetags/core_tags.py:124
msgid "Preferences"
msgstr "Προτιμήσεις"
@@ -753,7 +749,7 @@ msgstr "Προσαρμογή του Modoboa"
msgid "No preferences available."
msgstr "Δεν υπάρχουν διαθέσιμες προτιμήσεις."
-#: core/templates/core/user_profile.html:3 core/templatetags/core_tags.py:118
+#: core/templates/core/user_profile.html:3 core/templatetags/core_tags.py:120
msgid "Profile"
msgstr "Προφίλ"
@@ -761,36 +757,41 @@ msgstr "Προφίλ"
msgid "Update your personal information"
msgstr "Ενημέρωση προσωπικών πληροφοριών"
-#: core/templatetags/core_tags.py:36
+#: core/templatetags/core_tags.py:38
msgid "Modoboa"
msgstr "Modoboa"
-#: core/templatetags/core_tags.py:104
+#: core/templatetags/core_tags.py:106
msgid "Logout"
msgstr "Έξοδος"
-#: core/templatetags/core_tags.py:129
+#: core/templatetags/core_tags.py:131
msgid "API"
msgstr "API"
-#: core/utils.py:35
+#: core/utils.py:36
msgid "The core part of Modoboa"
msgstr "Το βασικό μέρος του Modoboa"
-#: core/views/admin.py:48
+#: core/views/admin.py:47
msgid "Parameters saved"
msgstr "Οι παράμετροι αποθηκεύτηκαν"
-#: core/views/auth.py:45
+#: core/views/auth.py:50
+#, python-format
+msgid "Password scheme mismatch. Updating %s password"
+msgstr ""
+
+#: core/views/auth.py:64
#, python-format
msgid "User '%s' successfully logged in"
msgstr "Επιτυχής είσοδος του χρήστη '%s'"
-#: core/views/auth.py:53
+#: core/views/auth.py:72
msgid "Your username and password didn't match. Please try again."
msgstr "Λάθος όνομα χρήστη ή κωδικός. Παρακαλώ δοκιμάστε ξανά."
-#: core/views/auth.py:88
+#: core/views/auth.py:107
msgid "User '{}' successfully logged out"
msgstr "Ο χρήστης '{}' αποσυνδέθηκε επιτυχώς"
@@ -811,49 +812,53 @@ msgstr "Το πρόσβαση ενημερώθηκε"
msgid "Connection to database %s not configured"
msgstr "Δεν έχει ρυθμιστεί η σύνδεση με την βάση δεδομένων %s"
-#: lib/exceptions.py:70
+#: lib/email_utils.py:350
+msgid "unable to determine encoding of string"
+msgstr ""
+
+#: lib/exceptions.py:71
#, python-format
msgid "Permission denied: %s"
msgstr "Δεν επιτρέπεται η πρόσβαση: %s"
-#: lib/exceptions.py:71
+#: lib/exceptions.py:72
msgid "Permission denied"
msgstr "Δεν επιτρέπεται η πρόσβαση"
-#: lib/fields.py:17 lib/validators.py:16
+#: lib/fields.py:19 lib/validators.py:18
msgid "Enter a valid domain name"
msgstr "Εισάγετε ένα έγκυρο όνομα domain"
-#: lib/fields.py:46 lib/fields.py:60
+#: lib/fields.py:48 lib/fields.py:62
msgid "Enter a valid email address."
msgstr "Εισαγωγή μιας πραγματικής διεύθυνσης email."
-#: lib/form_utils.py:82 templates/registration/password_reset_confirm.html:12
+#: lib/form_utils.py:81 templates/registration/password_reset_confirm.html:12
#: templates/registration/password_reset_form.html:11
msgid "Submit"
msgstr "Αποστολή"
-#: lib/form_utils.py:115 lib/form_utils.py:118
+#: lib/form_utils.py:114 lib/form_utils.py:117
msgid "Invalid request"
msgstr "Λάθος αίτημα"
-#: lib/form_utils.py:393
+#: lib/form_utils.py:392
msgid "Yes"
msgstr "Ναι"
-#: lib/ldap_utils.py:133
+#: lib/ldap_utils.py:134
msgid "Failed to update password: {}"
msgstr "Αποτυχία ενημέρωσης κωδικού: {}"
-#: lib/templatetags/lib_tags.py:107
+#: lib/templatetags/lib_tags.py:108
msgid "From"
msgstr "Από"
-#: lib/templatetags/lib_tags.py:108
+#: lib/templatetags/lib_tags.py:109
msgid "To"
msgstr "Προς"
-#: lib/templatetags/lib_tags.py:110 templates/common/email_searchbar.html:17
+#: lib/templatetags/lib_tags.py:111 templates/common/email_searchbar.html:17
msgid "Subject"
msgstr "Τίτλος"
@@ -978,3 +983,14 @@ msgstr "Με εκτίμηση, Η ομάδα του Modaboa."
#: templates/registration/password_reset_subject.txt:3
msgid "Modoboa password reset"
msgstr "Ο κωδικός του Μοdaboa επαναφέρθηκε"
+
+#~ msgid "Secret key"
+#~ msgstr "Μυστικό κλειδί"
+
+#~ msgid "Key used to encrypt/decrypt passwords"
+#~ msgstr ""
+#~ "Το κλειδί που χρησιμοποιείται για την κρυπτογράφηση/αποκρυπτογράφηση των "
+#~ "κωδικών"
+
+#~ msgid "Key must be either 16, 24, or 32 bytes long"
+#~ msgstr "Το κλειδί πρέπει να είναι μεγέθους 16, 24 ή 32 bytes"
diff --git a/modoboa/locale/en/LC_MESSAGES/django.po b/modoboa/locale/en/LC_MESSAGES/django.po
index 3ff8520f2..bb3de5b56 100644
--- a/modoboa/locale/en/LC_MESSAGES/django.po
+++ b/modoboa/locale/en/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-01-25 09:09+0100\n"
+"POT-Creation-Date: 2018-10-05 16:08+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -17,355 +17,351 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: core/app_settings.py:26
+#: core/app_settings.py:22
msgid "User profile"
msgstr ""
-#: core/app_settings.py:39
+#: core/app_settings.py:35
msgid "Authentication"
msgstr ""
-#: core/app_settings.py:42
+#: core/app_settings.py:38
msgid "Authentication type"
msgstr ""
-#: core/app_settings.py:43
+#: core/app_settings.py:39
msgid "Local"
msgstr ""
-#: core/app_settings.py:46
+#: core/app_settings.py:42
msgid "The backend used for authentication"
msgstr ""
-#: core/app_settings.py:51
+#: core/app_settings.py:47
msgid "Default password scheme"
msgstr ""
-#: core/app_settings.py:55
+#: core/app_settings.py:51
msgid "md5crypt (weak)"
msgstr ""
-#: core/app_settings.py:56
+#: core/app_settings.py:52
msgid "sha256 (weak)"
msgstr ""
-#: core/app_settings.py:57
+#: core/app_settings.py:53
msgid "md5 (weak)"
msgstr ""
-#: core/app_settings.py:58
+#: core/app_settings.py:54
msgid "crypt (weak)"
msgstr ""
-#: core/app_settings.py:59
+#: core/app_settings.py:55
msgid "plain (weak)"
msgstr ""
-#: core/app_settings.py:61
+#: core/app_settings.py:57
msgid "Scheme used to crypt mailbox passwords"
msgstr ""
-#: core/app_settings.py:66
+#: core/app_settings.py:62
msgid "Rounds"
msgstr ""
-#: core/app_settings.py:69
+#: core/app_settings.py:65
msgid ""
"Number of rounds to use (only used by sha256crypt and sha512crypt). Must be "
"between 1000 and 999999999, inclusive."
msgstr ""
-#: core/app_settings.py:76
-msgid "Secret key"
+#: core/app_settings.py:72
+msgid "Update password scheme"
msgstr ""
-#: core/app_settings.py:78
-msgid "Key used to encrypt/decrypt passwords"
+#: core/app_settings.py:75
+msgid "Update user password at login to use the default password scheme"
msgstr ""
-#: core/app_settings.py:83
+#: core/app_settings.py:80
msgid "Default password"
msgstr ""
-#: core/app_settings.py:86
+#: core/app_settings.py:83
msgid "Default password for automatically created accounts."
msgstr ""
-#: core/app_settings.py:90
+#: core/app_settings.py:87
msgid "Random password length"
msgstr ""
-#: core/app_settings.py:94
+#: core/app_settings.py:91
msgid "Length of randomly generated passwords."
msgstr ""
-#: core/app_settings.py:98
+#: core/app_settings.py:95
msgid "LDAP settings"
msgstr ""
-#: core/app_settings.py:101
+#: core/app_settings.py:98
msgid "Server address"
msgstr ""
-#: core/app_settings.py:104
+#: core/app_settings.py:101
msgid "The IP address or the DNS name of the LDAP server"
msgstr ""
-#: core/app_settings.py:109
+#: core/app_settings.py:106
msgid "Server port"
msgstr ""
-#: core/app_settings.py:111
+#: core/app_settings.py:108
msgid "The TCP port number used by the LDAP server"
msgstr ""
-#: core/app_settings.py:116
+#: core/app_settings.py:113
msgid "Use a secured connection"
msgstr ""
-#: core/app_settings.py:120
+#: core/app_settings.py:117
msgid "Use an SSL/STARTTLS connection to access the LDAP server"
msgstr ""
-#: core/app_settings.py:124
+#: core/app_settings.py:121
msgid "Authentication method"
msgstr ""
-#: core/app_settings.py:125
+#: core/app_settings.py:122
msgid "Search and bind"
msgstr ""
-#: core/app_settings.py:126
+#: core/app_settings.py:123
msgid "Direct bind"
msgstr ""
-#: core/app_settings.py:128
+#: core/app_settings.py:125
msgid "Choose the authentication method to use"
msgstr ""
-#: core/app_settings.py:133
+#: core/app_settings.py:130
msgid "Bind DN"
msgstr ""
-#: core/app_settings.py:136
+#: core/app_settings.py:133
msgid ""
"The distinguished name to use when binding to the LDAP server. Leave empty "
"for an anonymous bind"
msgstr ""
-#: core/app_settings.py:144
+#: core/app_settings.py:141
msgid "Bind password"
msgstr ""
-#: core/app_settings.py:147
+#: core/app_settings.py:144
msgid "The password to use when binding to the LDAP server (with 'Bind DN')"
msgstr ""
-#: core/app_settings.py:156
+#: core/app_settings.py:153
msgid "Users search base"
msgstr ""
-#: core/app_settings.py:159
+#: core/app_settings.py:156
msgid "The distinguished name of the search base used to find users"
msgstr ""
-#: core/app_settings.py:166
+#: core/app_settings.py:163
msgid "Search filter"
msgstr ""
-#: core/app_settings.py:169
+#: core/app_settings.py:166
msgid ""
"An optional filter string (e.g. '(objectClass=person)'). In order to be "
"valid, it must be enclosed in parentheses."
msgstr ""
-#: core/app_settings.py:177
+#: core/app_settings.py:174
msgid "User DN template"
msgstr ""
-#: core/app_settings.py:180
+#: core/app_settings.py:177
#, python-format
msgid ""
"The template used to construct a user's DN. It should contain one "
"placeholder (ie. %(user)s)"
msgstr ""
-#: core/app_settings.py:188
+#: core/app_settings.py:185
msgid "Password attribute"
msgstr ""
-#: core/app_settings.py:190
+#: core/app_settings.py:187
msgid "The attribute used to store user passwords"
msgstr ""
-#: core/app_settings.py:195
+#: core/app_settings.py:192
msgid "Active Directory"
msgstr ""
-#: core/app_settings.py:198
+#: core/app_settings.py:195
msgid "Tell if the LDAP server is an Active Directory one"
msgstr ""
-#: core/app_settings.py:202
+#: core/app_settings.py:199
msgid "Administrator groups"
msgstr ""
-#: core/app_settings.py:205
+#: core/app_settings.py:202
msgid ""
"Members of those LDAP Posix groups will be created as domain administrators. "
"Use ';' characters to separate groups."
msgstr ""
-#: core/app_settings.py:212
+#: core/app_settings.py:209
msgid "Group type"
msgstr ""
-#: core/app_settings.py:216
+#: core/app_settings.py:213
msgid "The LDAP group type to use with your directory."
msgstr ""
-#: core/app_settings.py:221
+#: core/app_settings.py:218
msgid "Groups search base"
msgstr ""
-#: core/app_settings.py:224
+#: core/app_settings.py:221
msgid "The distinguished name of the search base used to find groups"
msgstr ""
-#: core/app_settings.py:229 core/templates/core/dashboard.html:5
+#: core/app_settings.py:226 core/templates/core/dashboard.html:5
msgid "Dashboard"
msgstr ""
-#: core/app_settings.py:232
+#: core/app_settings.py:229
msgid "Custom RSS feed"
msgstr ""
-#: core/app_settings.py:235
+#: core/app_settings.py:232
msgid "Display custom RSS feed to resellers and domain administrators"
msgstr ""
-#: core/app_settings.py:240
+#: core/app_settings.py:237
msgid "Hide features widget"
msgstr ""
-#: core/app_settings.py:243
+#: core/app_settings.py:240
msgid "Hide features widget for resellers and domain administrators"
msgstr ""
-#: core/app_settings.py:247
+#: core/app_settings.py:244
msgid "Notifications"
msgstr ""
-#: core/app_settings.py:250
+#: core/app_settings.py:247
msgid "Sender address"
msgstr ""
-#: core/app_settings.py:253
+#: core/app_settings.py:250
msgid "Email address used to send notifications."
msgstr ""
-#: core/app_settings.py:257
+#: core/app_settings.py:254
msgid "Public API"
msgstr ""
-#: core/app_settings.py:260
+#: core/app_settings.py:257
msgid "Enable communication"
msgstr ""
-#: core/app_settings.py:263
+#: core/app_settings.py:260
msgid "Enable communication with Modoboa public API"
msgstr ""
-#: core/app_settings.py:267
+#: core/app_settings.py:264
msgid "Check new versions"
msgstr ""
-#: core/app_settings.py:270
+#: core/app_settings.py:267
msgid "Automatically checks if a newer version is available"
msgstr ""
-#: core/app_settings.py:274
+#: core/app_settings.py:271
msgid "Send statistics"
msgstr ""
-#: core/app_settings.py:277
+#: core/app_settings.py:274
msgid "Send statistics to Modoboa public API (counters and used extensions)"
msgstr ""
-#: core/app_settings.py:281
+#: core/app_settings.py:278
msgid "Miscellaneous"
msgstr ""
-#: core/app_settings.py:284
+#: core/app_settings.py:281
msgid "Inactive account threshold"
msgstr ""
-#: core/app_settings.py:287
+#: core/app_settings.py:284
msgid ""
"An account with a last login date greater than this threshold (in days) will "
"be considered as inactive"
msgstr ""
-#: core/app_settings.py:294
+#: core/app_settings.py:291
msgid "Top notifications check interval"
msgstr ""
-#: core/app_settings.py:297
+#: core/app_settings.py:294
msgid "Interval between two top notification checks (in seconds)"
msgstr ""
-#: core/app_settings.py:303
+#: core/app_settings.py:300
msgid "Maximum log record age"
msgstr ""
-#: core/app_settings.py:305
+#: core/app_settings.py:302
msgid "The maximum age in days of a log record"
msgstr ""
-#: core/app_settings.py:310
+#: core/app_settings.py:307
msgid "Items per page"
msgstr ""
-#: core/app_settings.py:312
+#: core/app_settings.py:309
msgid "Number of displayed items per page"
msgstr ""
-#: core/app_settings.py:317
+#: core/app_settings.py:314
msgid "Default top redirection"
msgstr ""
-#: core/app_settings.py:321
+#: core/app_settings.py:318
msgid "The default redirection used when no application is specified"
msgstr ""
-#: core/app_settings.py:354
-msgid "Key must be either 16, 24, or 32 bytes long"
-msgstr ""
-
-#: core/app_settings.py:363
+#: core/app_settings.py:353
msgid "Invalid syntax"
msgstr ""
-#: core/app_settings.py:369
+#: core/app_settings.py:359
msgid "Invalid rounds number"
msgstr ""
-#: core/app_settings.py:396
+#: core/app_settings.py:386
msgid "This field is required"
msgstr ""
-#: core/apps.py:20
+#: core/apps.py:22
msgid "General"
msgstr ""
-#: core/checks/settings_checks.py:11
+#: core/checks/settings_checks.py:10
msgid ""
"You have USE_TZ set to False, this may result in issues during transitions "
"between summer/winter time (ie the same local time occuring twice due to "
"clock change)."
msgstr ""
-#: core/checks/settings_checks.py:14
+#: core/checks/settings_checks.py:13
msgid "Set `USE_TZ = True` in settings.py"
msgstr ""
@@ -385,167 +381,167 @@ msgstr ""
msgid "Super administrator"
msgstr ""
-#: core/constants.py:51 lib/form_utils.py:394
+#: core/constants.py:53 lib/form_utils.py:393
msgid "No"
msgstr ""
-#: core/forms.py:24
+#: core/forms.py:22
msgid "Username"
msgstr ""
-#: core/forms.py:28
+#: core/forms.py:26
msgid "Password"
msgstr ""
-#: core/forms.py:41
+#: core/forms.py:39
msgid "Old password"
msgstr ""
-#: core/forms.py:45
+#: core/forms.py:43
msgid "New password"
msgstr ""
-#: core/forms.py:49
+#: core/forms.py:47
msgid "Confirmation"
msgstr ""
-#: core/forms.py:77
+#: core/forms.py:75
msgid "Old password mismatchs"
msgstr ""
-#: core/forms.py:86
+#: core/forms.py:84
msgid "Passwords mismatch"
msgstr ""
-#: core/forms.py:106
+#: core/forms.py:104
msgid "Enable API access"
msgstr ""
-#: core/handlers.py:43
+#: core/handlers.py:40
msgid "added"
msgstr ""
-#: core/handlers.py:46
+#: core/handlers.py:43
msgid "modified"
msgstr ""
-#: core/handlers.py:48
+#: core/handlers.py:45
#, python-format
msgid "%(object)s '%(name)s' %(action)s by user %(user)s"
msgstr ""
-#: core/handlers.py:70
+#: core/handlers.py:67
#, python-format
msgid "%(object)s '%(name)s' %(action)s by "
msgstr ""
-#: core/handlers.py:72
+#: core/handlers.py:69
msgid "deleted"
msgstr ""
-#: core/handlers.py:76
+#: core/handlers.py:73
msgid "user {}"
msgstr ""
-#: core/handlers.py:78
+#: core/handlers.py:75
msgid "management command"
msgstr ""
-#: core/handlers.py:102
+#: core/handlers.py:99
msgid "You can't delete your own account"
msgstr ""
-#: core/handlers.py:138
+#: core/handlers.py:135
msgid "One or more updates are available"
msgstr ""
-#: core/models.py:58
+#: core/models.py:57
msgid "Allow mailboxes access"
msgstr ""
-#: core/models.py:60
+#: core/models.py:59
msgid "Allow this administrator to access user mailboxes"
msgstr ""
-#: core/models.py:63
+#: core/models.py:62
msgid "password"
msgstr ""
-#: core/models.py:66
+#: core/models.py:65
msgid "language"
msgstr ""
-#: core/models.py:69
+#: core/models.py:68
msgid "Prefered language to display pages."
msgstr ""
-#: core/models.py:73
+#: core/models.py:72
msgid "Phone number"
msgstr ""
-#: core/models.py:75
+#: core/models.py:74
msgid "Secondary email"
msgstr ""
-#: core/models.py:78
+#: core/models.py:77
msgid "An alternative e-mail address, can be used for recovery needs."
msgstr ""
-#: core/models.py:128
+#: core/models.py:127
msgid "Failed to update password: LDAP module not installed"
msgstr ""
-#: core/models.py:157
+#: core/models.py:156
msgid "account"
msgstr ""
-#: core/models.py:279
+#: core/models.py:278
msgid "Unknown"
msgstr ""
-#: core/models.py:313
+#: core/models.py:312
msgid "Invalid line"
msgstr ""
-#: core/models.py:321
+#: core/models.py:320
msgid "You can't import an account with a role greater than yours"
msgstr ""
-#: core/models.py:336
+#: core/models.py:335
#, python-format
msgid "The simple user '%s' must have a valid email address"
msgstr ""
-#: core/models.py:341
+#: core/models.py:340
#, python-format
msgid "username and email fields must not differ for '%s'"
msgstr ""
-#: core/password_validation.py:26
+#: core/password_validation.py:28
msgid "Password must contain at least {} digit."
msgid_plural "Password must contain at least {} digits."
msgstr[0] ""
msgstr[1] ""
-#: core/password_validation.py:36
+#: core/password_validation.py:38
msgid "Password must contain at least {} lowercase letter."
msgid_plural "Password must contain at least {} lowercase letters."
msgstr[0] ""
msgstr[1] ""
-#: core/password_validation.py:47
+#: core/password_validation.py:49
msgid "Password must contain at least {} uppercase letter."
msgid_plural "Password must contain at least {} uppercase letters."
msgstr[0] ""
msgstr[1] ""
-#: core/password_validation.py:59
+#: core/password_validation.py:61
msgid "Password must contain at least {} special character."
msgid_plural "Password must contain at least {} special characters."
msgstr[0] ""
msgstr[1] ""
-#: core/password_validation.py:67
+#: core/password_validation.py:69
msgid "Your password must contain a combination of different character types."
msgstr ""
@@ -595,7 +591,7 @@ msgid "API access token"
msgstr ""
#: core/templates/core/api_access.html:35
-#: core/templates/core/user_profile.html:10 lib/form_utils.py:359
+#: core/templates/core/user_profile.html:10 lib/form_utils.py:358
msgid "Update"
msgstr ""
@@ -604,7 +600,7 @@ msgstr ""
msgid "Hello %(user)s."
msgstr ""
-#: core/templates/core/information.html:2 core/templatetags/core_tags.py:64
+#: core/templates/core/information.html:2 core/templatetags/core_tags.py:66
msgid "Information"
msgstr ""
@@ -653,7 +649,7 @@ msgstr ""
msgid "Last login"
msgstr ""
-#: core/templates/core/logs.html:2 core/templatetags/core_tags.py:68
+#: core/templates/core/logs.html:2 core/templatetags/core_tags.py:70
msgid "Logs"
msgstr ""
@@ -661,7 +657,7 @@ msgstr ""
msgid "Previously on Modoboa..."
msgstr ""
-#: core/templates/core/logs.html:6 lib/templatetags/lib_tags.py:109
+#: core/templates/core/logs.html:6 lib/templatetags/lib_tags.py:110
msgid "Date"
msgstr ""
@@ -677,7 +673,7 @@ msgstr ""
msgid "Message"
msgstr ""
-#: core/templates/core/parameters.html:2 core/templatetags/core_tags.py:73
+#: core/templates/core/parameters.html:2 core/templatetags/core_tags.py:75
msgid "Parameters"
msgstr ""
@@ -694,12 +690,12 @@ msgstr ""
msgid "Modoboa settings"
msgstr ""
-#: core/templates/core/user_index.html:4 core/templatetags/core_tags.py:92
+#: core/templates/core/user_index.html:4 core/templatetags/core_tags.py:94
msgid "Settings"
msgstr ""
#: core/templates/core/user_preferences.html:2
-#: core/templatetags/core_tags.py:122
+#: core/templatetags/core_tags.py:124
msgid "Preferences"
msgstr ""
@@ -711,7 +707,7 @@ msgstr ""
msgid "No preferences available."
msgstr ""
-#: core/templates/core/user_profile.html:3 core/templatetags/core_tags.py:118
+#: core/templates/core/user_profile.html:3 core/templatetags/core_tags.py:120
msgid "Profile"
msgstr ""
@@ -719,36 +715,41 @@ msgstr ""
msgid "Update your personal information"
msgstr ""
-#: core/templatetags/core_tags.py:36
+#: core/templatetags/core_tags.py:38
msgid "Modoboa"
msgstr ""
-#: core/templatetags/core_tags.py:104
+#: core/templatetags/core_tags.py:106
msgid "Logout"
msgstr ""
-#: core/templatetags/core_tags.py:129
+#: core/templatetags/core_tags.py:131
msgid "API"
msgstr ""
-#: core/utils.py:35
+#: core/utils.py:36
msgid "The core part of Modoboa"
msgstr ""
-#: core/views/admin.py:48
+#: core/views/admin.py:47
msgid "Parameters saved"
msgstr ""
-#: core/views/auth.py:45
+#: core/views/auth.py:50
+#, python-format
+msgid "Password scheme mismatch. Updating %s password"
+msgstr ""
+
+#: core/views/auth.py:64
#, python-format
msgid "User '%s' successfully logged in"
msgstr ""
-#: core/views/auth.py:53
+#: core/views/auth.py:72
msgid "Your username and password didn't match. Please try again."
msgstr ""
-#: core/views/auth.py:88
+#: core/views/auth.py:107
msgid "User '{}' successfully logged out"
msgstr ""
@@ -769,49 +770,53 @@ msgstr ""
msgid "Connection to database %s not configured"
msgstr ""
-#: lib/exceptions.py:70
+#: lib/email_utils.py:350
+msgid "unable to determine encoding of string"
+msgstr ""
+
+#: lib/exceptions.py:71
#, python-format
msgid "Permission denied: %s"
msgstr ""
-#: lib/exceptions.py:71
+#: lib/exceptions.py:72
msgid "Permission denied"
msgstr ""
-#: lib/fields.py:17 lib/validators.py:16
+#: lib/fields.py:19 lib/validators.py:18
msgid "Enter a valid domain name"
msgstr ""
-#: lib/fields.py:46 lib/fields.py:60
+#: lib/fields.py:48 lib/fields.py:62
msgid "Enter a valid email address."
msgstr ""
-#: lib/form_utils.py:82 templates/registration/password_reset_confirm.html:12
+#: lib/form_utils.py:81 templates/registration/password_reset_confirm.html:12
#: templates/registration/password_reset_form.html:11
msgid "Submit"
msgstr ""
-#: lib/form_utils.py:115 lib/form_utils.py:118
+#: lib/form_utils.py:114 lib/form_utils.py:117
msgid "Invalid request"
msgstr ""
-#: lib/form_utils.py:393
+#: lib/form_utils.py:392
msgid "Yes"
msgstr ""
-#: lib/ldap_utils.py:133
+#: lib/ldap_utils.py:134
msgid "Failed to update password: {}"
msgstr ""
-#: lib/templatetags/lib_tags.py:107
+#: lib/templatetags/lib_tags.py:108
msgid "From"
msgstr ""
-#: lib/templatetags/lib_tags.py:108
+#: lib/templatetags/lib_tags.py:109
msgid "To"
msgstr ""
-#: lib/templatetags/lib_tags.py:110 templates/common/email_searchbar.html:17
+#: lib/templatetags/lib_tags.py:111 templates/common/email_searchbar.html:17
msgid "Subject"
msgstr ""
diff --git a/modoboa/locale/es/LC_MESSAGES/django.po b/modoboa/locale/es/LC_MESSAGES/django.po
index 370800aed..e6e36c1a2 100644
--- a/modoboa/locale/es/LC_MESSAGES/django.po
+++ b/modoboa/locale/es/LC_MESSAGES/django.po
@@ -15,7 +15,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-01-25 09:09+0100\n"
+"POT-Creation-Date: 2018-10-05 16:08+0200\n"
"PO-Revision-Date: 2017-06-28 00:40+0000\n"
"Last-Translator: Evilham \n"
"Language-Team: Spanish (http://www.transifex.com/tonio/modoboa/language/"
@@ -26,59 +26,59 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: core/app_settings.py:26
+#: core/app_settings.py:22
msgid "User profile"
msgstr "Perfil de usuario"
-#: core/app_settings.py:39
+#: core/app_settings.py:35
msgid "Authentication"
msgstr "Autenticación"
-#: core/app_settings.py:42
+#: core/app_settings.py:38
msgid "Authentication type"
msgstr "Tipo de autenticación"
-#: core/app_settings.py:43
+#: core/app_settings.py:39
msgid "Local"
msgstr "Local"
-#: core/app_settings.py:46
+#: core/app_settings.py:42
msgid "The backend used for authentication"
msgstr "El sistema usado para autenticación"
-#: core/app_settings.py:51
+#: core/app_settings.py:47
msgid "Default password scheme"
msgstr "Esquema de contraseña por defecto"
-#: core/app_settings.py:55
+#: core/app_settings.py:51
msgid "md5crypt (weak)"
msgstr "md5crypt (débil)"
-#: core/app_settings.py:56
+#: core/app_settings.py:52
msgid "sha256 (weak)"
msgstr "sha256 (débil)"
-#: core/app_settings.py:57
+#: core/app_settings.py:53
msgid "md5 (weak)"
msgstr "md5 (débil)"
-#: core/app_settings.py:58
+#: core/app_settings.py:54
msgid "crypt (weak)"
msgstr "crypt (débil)"
-#: core/app_settings.py:59
+#: core/app_settings.py:55
msgid "plain (weak)"
msgstr "plano (débil)"
-#: core/app_settings.py:61
+#: core/app_settings.py:57
msgid "Scheme used to crypt mailbox passwords"
msgstr "Esquema usado para cifrar las contraseñas del mailbox"
-#: core/app_settings.py:66
+#: core/app_settings.py:62
msgid "Rounds"
msgstr "Rondas"
-#: core/app_settings.py:69
+#: core/app_settings.py:65
msgid ""
"Number of rounds to use (only used by sha256crypt and sha512crypt). Must be "
"between 1000 and 999999999, inclusive."
@@ -86,83 +86,85 @@ msgstr ""
"Número de rondas a usar (sólo utilizado por sha256crypr y sha512crypt). Debe "
"estar entre 1000 y 999999999, incluído."
-#: core/app_settings.py:76
-msgid "Secret key"
-msgstr "Clave secreta"
+#: core/app_settings.py:72
+#, fuzzy
+#| msgid "Default password scheme"
+msgid "Update password scheme"
+msgstr "Esquema de contraseña por defecto"
-#: core/app_settings.py:78
-msgid "Key used to encrypt/decrypt passwords"
-msgstr "Clave usada para cifrar/descifrar contraseñas"
+#: core/app_settings.py:75
+msgid "Update user password at login to use the default password scheme"
+msgstr ""
-#: core/app_settings.py:83
+#: core/app_settings.py:80
msgid "Default password"
msgstr "Contraseña por defecto"
-#: core/app_settings.py:86
+#: core/app_settings.py:83
msgid "Default password for automatically created accounts."
msgstr "Contraseña por defecto para cuentas creadas automáticamente."
-#: core/app_settings.py:90
+#: core/app_settings.py:87
#, fuzzy
#| msgid "Modoboa password reset"
msgid "Random password length"
msgstr "Restauración de contraseña de Modoboa"
-#: core/app_settings.py:94
+#: core/app_settings.py:91
msgid "Length of randomly generated passwords."
msgstr ""
-#: core/app_settings.py:98
+#: core/app_settings.py:95
msgid "LDAP settings"
msgstr "Configuración de LDAP"
-#: core/app_settings.py:101
+#: core/app_settings.py:98
msgid "Server address"
msgstr "Dirección del servidor"
-#: core/app_settings.py:104
+#: core/app_settings.py:101
msgid "The IP address or the DNS name of the LDAP server"
msgstr "La dirección IP del servidor de nombres (DNS) del servidor LDAP"
-#: core/app_settings.py:109
+#: core/app_settings.py:106
msgid "Server port"
msgstr "Puerto del servidor"
-#: core/app_settings.py:111
+#: core/app_settings.py:108
msgid "The TCP port number used by the LDAP server"
msgstr "Número de puerto TCP usado por el servidor LDAP"
-#: core/app_settings.py:116
+#: core/app_settings.py:113
msgid "Use a secured connection"
msgstr "Usa una conexión segura"
-#: core/app_settings.py:120
+#: core/app_settings.py:117
#, fuzzy
#| msgid "Use an SSL/TLS connection to access the LDAP server"
msgid "Use an SSL/STARTTLS connection to access the LDAP server"
msgstr "Usa una conexión SSL/TLS para acceder al servidor LDAP"
-#: core/app_settings.py:124
+#: core/app_settings.py:121
msgid "Authentication method"
msgstr "Método de autenticación"
-#: core/app_settings.py:125
+#: core/app_settings.py:122
msgid "Search and bind"
msgstr "Buscar y unir"
-#: core/app_settings.py:126
+#: core/app_settings.py:123
msgid "Direct bind"
msgstr "Unión directa"
-#: core/app_settings.py:128
+#: core/app_settings.py:125
msgid "Choose the authentication method to use"
msgstr "Elegir el método de autenticación a usar"
-#: core/app_settings.py:133
+#: core/app_settings.py:130
msgid "Bind DN"
msgstr "Unir a DN"
-#: core/app_settings.py:136
+#: core/app_settings.py:133
msgid ""
"The distinguished name to use when binding to the LDAP server. Leave empty "
"for an anonymous bind"
@@ -170,29 +172,29 @@ msgstr ""
"El nombre distinguido a usar cuando nos unimos al servidor LDAP. Dejar vació "
"para una unión anónima"
-#: core/app_settings.py:144
+#: core/app_settings.py:141
msgid "Bind password"
msgstr "Unir contraseña"
-#: core/app_settings.py:147
+#: core/app_settings.py:144
msgid "The password to use when binding to the LDAP server (with 'Bind DN')"
msgstr ""
"La contraseña a usar cuando nos unimos al servidor LDAP (con 'Unir a DN')"
-#: core/app_settings.py:156
+#: core/app_settings.py:153
msgid "Users search base"
msgstr "Base para la búsqueda de usuarios"
-#: core/app_settings.py:159
+#: core/app_settings.py:156
msgid "The distinguished name of the search base used to find users"
msgstr ""
"El distinguido nombre de la búsqueda base usada para encontrar usuarios"
-#: core/app_settings.py:166
+#: core/app_settings.py:163
msgid "Search filter"
msgstr "Filtro de búsqueda"
-#: core/app_settings.py:169
+#: core/app_settings.py:166
msgid ""
"An optional filter string (e.g. '(objectClass=person)'). In order to be "
"valid, it must be enclosed in parentheses."
@@ -200,11 +202,11 @@ msgstr ""
"Una cadena de filtro opcional (p.e. '(objectClass=person)'). Para que sea "
"válido tiene que ser encerrado entre paréntesis."
-#: core/app_settings.py:177
+#: core/app_settings.py:174
msgid "User DN template"
msgstr "Plantilla DN del usuario"
-#: core/app_settings.py:180
+#: core/app_settings.py:177
#, python-format
msgid ""
"The template used to construct a user's DN. It should contain one "
@@ -213,27 +215,27 @@ msgstr ""
"La plantilla usada para contriunr un DN de usuario. Debería contener una "
"cadena reemplazables (p.e. %(user)s)"
-#: core/app_settings.py:188
+#: core/app_settings.py:185
msgid "Password attribute"
msgstr "Atributo de la contraseña"
-#: core/app_settings.py:190
+#: core/app_settings.py:187
msgid "The attribute used to store user passwords"
msgstr "El atributo usado para guardar las contraseñas del usuario"
-#: core/app_settings.py:195
+#: core/app_settings.py:192
msgid "Active Directory"
msgstr "Directorio Activo"
-#: core/app_settings.py:198
+#: core/app_settings.py:195
msgid "Tell if the LDAP server is an Active Directory one"
msgstr "Decir si el servidor de LDAP es uno del tipo Directorio Activo"
-#: core/app_settings.py:202
+#: core/app_settings.py:199
msgid "Administrator groups"
msgstr "Administrador de grupos"
-#: core/app_settings.py:205
+#: core/app_settings.py:202
msgid ""
"Members of those LDAP Posix groups will be created as domain administrators. "
"Use ';' characters to separate groups."
@@ -241,163 +243,159 @@ msgstr ""
"Los miembros de esos grupos Posix LDAP serán creados como administradores de "
"dominio. Use caracteres \";\" para separar los grupos."
-#: core/app_settings.py:212
+#: core/app_settings.py:209
msgid "Group type"
msgstr "Tipo de grupo"
-#: core/app_settings.py:216
+#: core/app_settings.py:213
msgid "The LDAP group type to use with your directory."
msgstr "El tipo de LDAP para usar en el directorio"
-#: core/app_settings.py:221
+#: core/app_settings.py:218
msgid "Groups search base"
msgstr "Base para la búsqueda de grupos"
-#: core/app_settings.py:224
+#: core/app_settings.py:221
msgid "The distinguished name of the search base used to find groups"
msgstr "El distinguido nombre de la búsqueda base usada para encontrar grupos"
-#: core/app_settings.py:229 core/templates/core/dashboard.html:5
+#: core/app_settings.py:226 core/templates/core/dashboard.html:5
msgid "Dashboard"
msgstr "Panel de Control"
-#: core/app_settings.py:232
+#: core/app_settings.py:229
msgid "Custom RSS feed"
msgstr "Agregación RSS personalizada"
-#: core/app_settings.py:235
+#: core/app_settings.py:232
msgid "Display custom RSS feed to resellers and domain administrators"
msgstr ""
"Mostrar una fuente de agregación RSS personalizada a revendedores y "
"administradores de dominio"
-#: core/app_settings.py:240
+#: core/app_settings.py:237
msgid "Hide features widget"
msgstr "Ocultar widget de características"
-#: core/app_settings.py:243
+#: core/app_settings.py:240
msgid "Hide features widget for resellers and domain administrators"
msgstr ""
"Ocultar el widget de características a revendedores y administradores de "
"dominio"
-#: core/app_settings.py:247
+#: core/app_settings.py:244
msgid "Notifications"
msgstr "Notificaciones"
-#: core/app_settings.py:250
+#: core/app_settings.py:247
msgid "Sender address"
msgstr "Dirección del remitente"
-#: core/app_settings.py:253
+#: core/app_settings.py:250
msgid "Email address used to send notifications."
msgstr "Dirección de email usada para mandar notificaciones"
-#: core/app_settings.py:257
+#: core/app_settings.py:254
msgid "Public API"
msgstr "API pública"
-#: core/app_settings.py:260
+#: core/app_settings.py:257
msgid "Enable communication"
msgstr "Establecer comunicación"
-#: core/app_settings.py:263
+#: core/app_settings.py:260
msgid "Enable communication with Modoboa public API"
msgstr "Establecer comunicación con la API publica de Modoboa"
-#: core/app_settings.py:267
+#: core/app_settings.py:264
msgid "Check new versions"
msgstr "Comprobar nuevas versiones"
-#: core/app_settings.py:270
+#: core/app_settings.py:267
msgid "Automatically checks if a newer version is available"
msgstr "Verificar automáticamente si hay una nueva versión disponible"
-#: core/app_settings.py:274
+#: core/app_settings.py:271
msgid "Send statistics"
msgstr "Enviar estadísticas"
-#: core/app_settings.py:277
+#: core/app_settings.py:274
msgid "Send statistics to Modoboa public API (counters and used extensions)"
msgstr ""
"Enviar estadísticas a la API pública de Modoboa (contadores y extensiones "
"usadas)"
-#: core/app_settings.py:281
+#: core/app_settings.py:278
msgid "Miscellaneous"
msgstr "Otros"
-#: core/app_settings.py:284
+#: core/app_settings.py:281
msgid "Inactive account threshold"
msgstr ""
-#: core/app_settings.py:287
+#: core/app_settings.py:284
msgid ""
"An account with a last login date greater than this threshold (in days) will "
"be considered as inactive"
msgstr ""
-#: core/app_settings.py:294
+#: core/app_settings.py:291
msgid "Top notifications check interval"
msgstr "Intervalo de tiempo para notificaciones superiores"
-#: core/app_settings.py:297
+#: core/app_settings.py:294
msgid "Interval between two top notification checks (in seconds)"
msgstr "Intervalo entre dos notificaciones superiores (en segundos)"
-#: core/app_settings.py:303
+#: core/app_settings.py:300
msgid "Maximum log record age"
msgstr "Máximo tiempo de almacenamiento del log"
-#: core/app_settings.py:305
+#: core/app_settings.py:302
msgid "The maximum age in days of a log record"
msgstr "El tiempo máximo de almacenamiento del log en días"
-#: core/app_settings.py:310
+#: core/app_settings.py:307
msgid "Items per page"
msgstr "Items por página"
-#: core/app_settings.py:312
+#: core/app_settings.py:309
msgid "Number of displayed items per page"
msgstr "Número de elementos mostrado por página"
-#: core/app_settings.py:317
+#: core/app_settings.py:314
msgid "Default top redirection"
msgstr "Redirección principal por defecto"
-#: core/app_settings.py:321
+#: core/app_settings.py:318
msgid "The default redirection used when no application is specified"
msgstr ""
"La redirección que será usada cuando ninguna aplicación sea especificada."
-#: core/app_settings.py:354
-msgid "Key must be either 16, 24, or 32 bytes long"
-msgstr "La clave debe tener 16, 24 o 32 bytes de longitud"
-
-#: core/app_settings.py:363
+#: core/app_settings.py:353
msgid "Invalid syntax"
msgstr "Sintaxis inválida"
-#: core/app_settings.py:369
+#: core/app_settings.py:359
msgid "Invalid rounds number"
msgstr "Número de rondas inváldo"
-#: core/app_settings.py:396
+#: core/app_settings.py:386
msgid "This field is required"
msgstr "Este campo es obligatorio"
-#: core/apps.py:20
+#: core/apps.py:22
msgid "General"
msgstr "General"
-#: core/checks/settings_checks.py:11
+#: core/checks/settings_checks.py:10
msgid ""
"You have USE_TZ set to False, this may result in issues during transitions "
"between summer/winter time (ie the same local time occuring twice due to "
"clock change)."
msgstr ""
-#: core/checks/settings_checks.py:14
+#: core/checks/settings_checks.py:13
msgid "Set `USE_TZ = True` in settings.py"
msgstr ""
@@ -417,169 +415,169 @@ msgstr "Revendedor"
msgid "Super administrator"
msgstr "Super administrador"
-#: core/constants.py:51 lib/form_utils.py:394
+#: core/constants.py:53 lib/form_utils.py:393
msgid "No"
msgstr "No "
-#: core/forms.py:24
+#: core/forms.py:22
msgid "Username"
msgstr "Nombre de usuario"
-#: core/forms.py:28
+#: core/forms.py:26
msgid "Password"
msgstr "Contraseña"
-#: core/forms.py:41
+#: core/forms.py:39
msgid "Old password"
msgstr "Contraseña anterior"
-#: core/forms.py:45
+#: core/forms.py:43
msgid "New password"
msgstr "Nueva contraseña"
-#: core/forms.py:49
+#: core/forms.py:47
msgid "Confirmation"
msgstr "Confirmación"
-#: core/forms.py:77
+#: core/forms.py:75
msgid "Old password mismatchs"
msgstr "La contraseña no concuerda con la anterior"
-#: core/forms.py:86
+#: core/forms.py:84
msgid "Passwords mismatch"
msgstr "Las contraseñas no coinciden"
-#: core/forms.py:106
+#: core/forms.py:104
msgid "Enable API access"
msgstr "Habilitar acceso al API"
-#: core/handlers.py:43
+#: core/handlers.py:40
msgid "added"
msgstr "añadido"
-#: core/handlers.py:46
+#: core/handlers.py:43
msgid "modified"
msgstr "modificado"
-#: core/handlers.py:48
+#: core/handlers.py:45
#, python-format
msgid "%(object)s '%(name)s' %(action)s by user %(user)s"
msgstr "%(object)s '%(name)s' %(action)s por el usuario %(user)s"
-#: core/handlers.py:70
+#: core/handlers.py:67
#, fuzzy, python-format
#| msgid "%(object)s '%(name)s' %(action)s by user %(user)s"
msgid "%(object)s '%(name)s' %(action)s by "
msgstr "%(object)s '%(name)s' %(action)s por el usuario %(user)s"
-#: core/handlers.py:72
+#: core/handlers.py:69
msgid "deleted"
msgstr "eliminado"
-#: core/handlers.py:76
+#: core/handlers.py:73
msgid "user {}"
msgstr ""
-#: core/handlers.py:78
+#: core/handlers.py:75
msgid "management command"
msgstr ""
-#: core/handlers.py:102
+#: core/handlers.py:99
msgid "You can't delete your own account"
msgstr "No puede eliminar su propia cuenta"
-#: core/handlers.py:138
+#: core/handlers.py:135
msgid "One or more updates are available"
msgstr "Una o más actualizaciones están disponibles"
-#: core/models.py:58
+#: core/models.py:57
msgid "Allow mailboxes access"
msgstr "Permitir acceso al buzón"
-#: core/models.py:60
+#: core/models.py:59
msgid "Allow this administrator to access user mailboxes"
msgstr "Permitir a este administrador acceso al buzon de los usuarios"
-#: core/models.py:63
+#: core/models.py:62
msgid "password"
msgstr "contraseña"
-#: core/models.py:66
+#: core/models.py:65
msgid "language"
msgstr "idioma"
-#: core/models.py:69
+#: core/models.py:68
msgid "Prefered language to display pages."
msgstr "Idioma preferido para mostrar las páginas"
-#: core/models.py:73
+#: core/models.py:72
msgid "Phone number"
msgstr "Numero de telefono "
-#: core/models.py:75
+#: core/models.py:74
msgid "Secondary email"
msgstr "Email secundario"
-#: core/models.py:78
+#: core/models.py:77
msgid "An alternative e-mail address, can be used for recovery needs."
msgstr "Email alternativo, puede ser usado para recuperación."
-#: core/models.py:128
+#: core/models.py:127
msgid "Failed to update password: LDAP module not installed"
msgstr "Falló al actualizar la contraseña: módulo LDAP no instalado"
-#: core/models.py:157
+#: core/models.py:156
msgid "account"
msgstr "cuenta"
-#: core/models.py:279
+#: core/models.py:278
msgid "Unknown"
msgstr "Desconocido"
-#: core/models.py:313
+#: core/models.py:312
msgid "Invalid line"
msgstr "Línea inválida"
-#: core/models.py:321
+#: core/models.py:320
msgid "You can't import an account with a role greater than yours"
msgstr "No puede importar una cuenta con un rol mayor que el suyo"
-#: core/models.py:336
+#: core/models.py:335
#, python-format
msgid "The simple user '%s' must have a valid email address"
msgstr "El usuario normal '%s' debe tener una dirección de email válida"
-#: core/models.py:341
+#: core/models.py:340
#, python-format
msgid "username and email fields must not differ for '%s'"
msgstr ""
"Los campos de nombre de usuario y de email no deben ser diferentes para '%s'"
-#: core/password_validation.py:26
+#: core/password_validation.py:28
msgid "Password must contain at least {} digit."
msgid_plural "Password must contain at least {} digits."
msgstr[0] "La contraseña debe contener al menos {} dígito."
msgstr[1] "La contraseña debe contener al menos {} dígitos."
-#: core/password_validation.py:36
+#: core/password_validation.py:38
msgid "Password must contain at least {} lowercase letter."
msgid_plural "Password must contain at least {} lowercase letters."
msgstr[0] "La contraseña debe tener al menos {} minúscula."
msgstr[1] "La contraseña debe tener al menos {} minúsculas."
-#: core/password_validation.py:47
+#: core/password_validation.py:49
msgid "Password must contain at least {} uppercase letter."
msgid_plural "Password must contain at least {} uppercase letters."
msgstr[0] "La contraseña debe tener al menos {} mayúscula."
msgstr[1] "La contraseña debe tener al menos {} mayúsculas."
-#: core/password_validation.py:59
+#: core/password_validation.py:61
msgid "Password must contain at least {} special character."
msgid_plural "Password must contain at least {} special characters."
msgstr[0] "La contraseña debe tener al menos {} carácter especial."
msgstr[1] "La contraseña debe tener al menos {} caracteres especiales."
-#: core/password_validation.py:67
+#: core/password_validation.py:69
msgid "Your password must contain a combination of different character types."
msgstr ""
"Su contraseña debe contener una combinación de diferentes tipos de carácter."
@@ -634,7 +632,7 @@ msgid "API access token"
msgstr "Token de acceso a la API"
#: core/templates/core/api_access.html:35
-#: core/templates/core/user_profile.html:10 lib/form_utils.py:359
+#: core/templates/core/user_profile.html:10 lib/form_utils.py:358
msgid "Update"
msgstr "Actualizar"
@@ -643,7 +641,7 @@ msgstr "Actualizar"
msgid "Hello %(user)s."
msgstr "Hola %(user)s."
-#: core/templates/core/information.html:2 core/templatetags/core_tags.py:64
+#: core/templates/core/information.html:2 core/templatetags/core_tags.py:66
msgid "Information"
msgstr "Información"
@@ -694,7 +692,7 @@ msgstr "Función"
msgid "Last login"
msgstr "Último acceso"
-#: core/templates/core/logs.html:2 core/templatetags/core_tags.py:68
+#: core/templates/core/logs.html:2 core/templatetags/core_tags.py:70
msgid "Logs"
msgstr "Logs"
@@ -702,7 +700,7 @@ msgstr "Logs"
msgid "Previously on Modoboa..."
msgstr "Anteriormente en Modoboa..."
-#: core/templates/core/logs.html:6 lib/templatetags/lib_tags.py:109
+#: core/templates/core/logs.html:6 lib/templatetags/lib_tags.py:110
msgid "Date"
msgstr "Fecha"
@@ -718,7 +716,7 @@ msgstr "Logger"
msgid "Message"
msgstr "Mensaje"
-#: core/templates/core/parameters.html:2 core/templatetags/core_tags.py:73
+#: core/templates/core/parameters.html:2 core/templatetags/core_tags.py:75
msgid "Parameters"
msgstr "Parámetros"
@@ -735,12 +733,12 @@ msgstr "Guardar"
msgid "Modoboa settings"
msgstr "Configuración de Modoboa"
-#: core/templates/core/user_index.html:4 core/templatetags/core_tags.py:92
+#: core/templates/core/user_index.html:4 core/templatetags/core_tags.py:94
msgid "Settings"
msgstr "Configuración"
#: core/templates/core/user_preferences.html:2
-#: core/templatetags/core_tags.py:122
+#: core/templatetags/core_tags.py:124
msgid "Preferences"
msgstr "Preferencias"
@@ -752,7 +750,7 @@ msgstr "Personalizar Modoboa"
msgid "No preferences available."
msgstr "No hay preferencias disponibles."
-#: core/templates/core/user_profile.html:3 core/templatetags/core_tags.py:118
+#: core/templates/core/user_profile.html:3 core/templatetags/core_tags.py:120
msgid "Profile"
msgstr "Perfil"
@@ -760,38 +758,43 @@ msgstr "Perfil"
msgid "Update your personal information"
msgstr "Actualizar su información personal"
-#: core/templatetags/core_tags.py:36
+#: core/templatetags/core_tags.py:38
msgid "Modoboa"
msgstr "Modoboa"
-#: core/templatetags/core_tags.py:104
+#: core/templatetags/core_tags.py:106
msgid "Logout"
msgstr "Salir"
-#: core/templatetags/core_tags.py:129
+#: core/templatetags/core_tags.py:131
msgid "API"
msgstr "API"
-#: core/utils.py:35
+#: core/utils.py:36
msgid "The core part of Modoboa"
msgstr "El núcleo de Modoboa"
-#: core/views/admin.py:48
+#: core/views/admin.py:47
msgid "Parameters saved"
msgstr "Parámetros guardados"
-#: core/views/auth.py:45
+#: core/views/auth.py:50
+#, python-format
+msgid "Password scheme mismatch. Updating %s password"
+msgstr ""
+
+#: core/views/auth.py:64
#, python-format
msgid "User '%s' successfully logged in"
msgstr "Usuario '%s' ha entrado con éxito"
-#: core/views/auth.py:53
+#: core/views/auth.py:72
msgid "Your username and password didn't match. Please try again."
msgstr ""
"Su nombre de usuario y contraseña no concuerdan. Por favor, inténtelo de "
"nuevo."
-#: core/views/auth.py:88
+#: core/views/auth.py:107
msgid "User '{}' successfully logged out"
msgstr "Usuario '{}' ha salido con éxito"
@@ -812,49 +815,53 @@ msgstr "Acceso actualizado"
msgid "Connection to database %s not configured"
msgstr "Conexión a la base de datos %s no configurada"
-#: lib/exceptions.py:70
+#: lib/email_utils.py:350
+msgid "unable to determine encoding of string"
+msgstr ""
+
+#: lib/exceptions.py:71
#, python-format
msgid "Permission denied: %s"
msgstr "Permiso denegado: %s"
-#: lib/exceptions.py:71
+#: lib/exceptions.py:72
msgid "Permission denied"
msgstr "Permiso denegado"
-#: lib/fields.py:17 lib/validators.py:16
+#: lib/fields.py:19 lib/validators.py:18
msgid "Enter a valid domain name"
msgstr "Introduzca un nombre dominio válido"
-#: lib/fields.py:46 lib/fields.py:60
+#: lib/fields.py:48 lib/fields.py:62
msgid "Enter a valid email address."
msgstr "Intriduzca un email válido"
-#: lib/form_utils.py:82 templates/registration/password_reset_confirm.html:12
+#: lib/form_utils.py:81 templates/registration/password_reset_confirm.html:12
#: templates/registration/password_reset_form.html:11
msgid "Submit"
msgstr "Enviar"
-#: lib/form_utils.py:115 lib/form_utils.py:118
+#: lib/form_utils.py:114 lib/form_utils.py:117
msgid "Invalid request"
msgstr "Petición inválida"
-#: lib/form_utils.py:393
+#: lib/form_utils.py:392
msgid "Yes"
msgstr "Sí"
-#: lib/ldap_utils.py:133
+#: lib/ldap_utils.py:134
msgid "Failed to update password: {}"
msgstr "No se ha podido actualizar la contraseña: {}"
-#: lib/templatetags/lib_tags.py:107
+#: lib/templatetags/lib_tags.py:108
msgid "From"
msgstr "Desde"
-#: lib/templatetags/lib_tags.py:108
+#: lib/templatetags/lib_tags.py:109
msgid "To"
msgstr "Hasta"
-#: lib/templatetags/lib_tags.py:110 templates/common/email_searchbar.html:17
+#: lib/templatetags/lib_tags.py:111 templates/common/email_searchbar.html:17
msgid "Subject"
msgstr "Tema"
@@ -980,6 +987,15 @@ msgstr "Saludos cordiales, el equipo de Modoboa."
msgid "Modoboa password reset"
msgstr "Restauración de contraseña de Modoboa"
+#~ msgid "Secret key"
+#~ msgstr "Clave secreta"
+
+#~ msgid "Key used to encrypt/decrypt passwords"
+#~ msgstr "Clave usada para cifrar/descifrar contraseñas"
+
+#~ msgid "Key must be either 16, 24, or 32 bytes long"
+#~ msgstr "La clave debe tener 16, 24 o 32 bytes de longitud"
+
#~ msgid "First name"
#~ msgstr "Nombre"
diff --git a/modoboa/locale/fr/LC_MESSAGES/django.po b/modoboa/locale/fr/LC_MESSAGES/django.po
index eaa268007..50edaa30b 100644
--- a/modoboa/locale/fr/LC_MESSAGES/django.po
+++ b/modoboa/locale/fr/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-01-25 09:09+0100\n"
+"POT-Creation-Date: 2018-10-05 16:08+0200\n"
"PO-Revision-Date: 2018-01-25 09:30+0100\n"
"Last-Translator: Antoine Nguyen \n"
"Language-Team: French (http://www.transifex.com/tonio/modoboa/language/fr/)\n"
@@ -18,60 +18,60 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-#: core/app_settings.py:26
+#: core/app_settings.py:22
msgid "User profile"
msgstr "Profil utilisateur"
-#: core/app_settings.py:39
+#: core/app_settings.py:35
msgid "Authentication"
msgstr "Authentification"
-#: core/app_settings.py:42
+#: core/app_settings.py:38
msgid "Authentication type"
msgstr "Type d'authentification"
-#: core/app_settings.py:43
+#: core/app_settings.py:39
msgid "Local"
msgstr "Locale"
-#: core/app_settings.py:46
+#: core/app_settings.py:42
msgid "The backend used for authentication"
msgstr "Le backend utilisé pour l'authentification"
-#: core/app_settings.py:51
+#: core/app_settings.py:47
msgid "Default password scheme"
msgstr "Méthode de chiffrement par défaut"
-#: core/app_settings.py:55
+#: core/app_settings.py:51
msgid "md5crypt (weak)"
msgstr "md5crypt (faible)"
-#: core/app_settings.py:56
+#: core/app_settings.py:52
msgid "sha256 (weak)"
msgstr "sha256 (faible)"
-#: core/app_settings.py:57
+#: core/app_settings.py:53
msgid "md5 (weak)"
msgstr "md5 (faible)"
-#: core/app_settings.py:58
+#: core/app_settings.py:54
msgid "crypt (weak)"
msgstr "crypt (faible)"
-#: core/app_settings.py:59
+#: core/app_settings.py:55
msgid "plain (weak)"
msgstr "plain (faible)"
-#: core/app_settings.py:61
+#: core/app_settings.py:57
msgid "Scheme used to crypt mailbox passwords"
msgstr ""
"Méthode utilisée pour chiffrer les mots de passe des boites aux lettres"
-#: core/app_settings.py:66
+#: core/app_settings.py:62
msgid "Rounds"
msgstr "Tours"
-#: core/app_settings.py:69
+#: core/app_settings.py:65
msgid ""
"Number of rounds to use (only used by sha256crypt and sha512crypt). Must be "
"between 1000 and 999999999, inclusive."
@@ -79,79 +79,79 @@ msgstr ""
"Nombre de tours à utiliser (sha256crypt et sha512crypt uniquement). Doit "
"être compris entre 1000 et 999999999 inclue."
-#: core/app_settings.py:76
-msgid "Secret key"
-msgstr "Clé secrète"
+#: core/app_settings.py:72
+msgid "Update password scheme"
+msgstr "Mettre à jour le chiffrement des mots de passe"
-#: core/app_settings.py:78
-msgid "Key used to encrypt/decrypt passwords"
-msgstr "Clé utilisée pour chiffrer/déchiffre les mots de passe"
+#: core/app_settings.py:75
+msgid "Update user password at login to use the default password scheme"
+msgstr "Mettre à jour le mot de passe au login pour utiliser le chiffrement par défaut"
-#: core/app_settings.py:83
+#: core/app_settings.py:80
msgid "Default password"
msgstr "Mot de passe par défaut"
-#: core/app_settings.py:86
+#: core/app_settings.py:83
msgid "Default password for automatically created accounts."
msgstr "Mot de passe par défaut pour les comptes créés automatiquement."
-#: core/app_settings.py:90
+#: core/app_settings.py:87
msgid "Random password length"
msgstr "Taille d'un mot de passe aléatoire"
-#: core/app_settings.py:94
+#: core/app_settings.py:91
msgid "Length of randomly generated passwords."
msgstr "Taille des mots de passe générés aléatoirement."
-#: core/app_settings.py:98
+#: core/app_settings.py:95
msgid "LDAP settings"
msgstr "Paramètres LDAP"
-#: core/app_settings.py:101
+#: core/app_settings.py:98
msgid "Server address"
msgstr "Adresse du serveur"
-#: core/app_settings.py:104
+#: core/app_settings.py:101
msgid "The IP address or the DNS name of the LDAP server"
msgstr "L'adresse IP ou le nom DNS du serveur LDAP"
-#: core/app_settings.py:109
+#: core/app_settings.py:106
msgid "Server port"
msgstr "Port utilisé par le serveur"
-#: core/app_settings.py:111
+#: core/app_settings.py:108
msgid "The TCP port number used by the LDAP server"
msgstr "Le port TCP utilisé par le serveur LDAP"
-#: core/app_settings.py:116
+#: core/app_settings.py:113
msgid "Use a secured connection"
msgstr "Utiliser une connexion sécurisée"
-#: core/app_settings.py:120
+#: core/app_settings.py:117
msgid "Use an SSL/STARTTLS connection to access the LDAP server"
msgstr "Utiliser une connexion SSL/STARTTLS pour accéder au serveur LDAP"
-#: core/app_settings.py:124
+#: core/app_settings.py:121
msgid "Authentication method"
msgstr "Méthode d'authentification"
-#: core/app_settings.py:125
+#: core/app_settings.py:122
msgid "Search and bind"
msgstr "Recherche et connexion"
-#: core/app_settings.py:126
+#: core/app_settings.py:123
msgid "Direct bind"
msgstr "Connexion directe"
-#: core/app_settings.py:128
+#: core/app_settings.py:125
msgid "Choose the authentication method to use"
msgstr "Choisir la méthode d'authentification à utiliser"
-#: core/app_settings.py:133
+#: core/app_settings.py:130
msgid "Bind DN"
msgstr "ND de connexion"
-#: core/app_settings.py:136
+#: core/app_settings.py:133
msgid ""
"The distinguished name to use when binding to the LDAP server. Leave empty "
"for an anonymous bind"
@@ -159,31 +159,31 @@ msgstr ""
"Le nom distinctif à utiliser pour les connections au serveur LDAP. Laisser "
"vide pour une connexion anonyme"
-#: core/app_settings.py:144
+#: core/app_settings.py:141
msgid "Bind password"
msgstr "Mot de passe de connexion"
-#: core/app_settings.py:147
+#: core/app_settings.py:144
msgid "The password to use when binding to the LDAP server (with 'Bind DN')"
msgstr ""
"Le mot de passe à utiliser pour les connections au serveur LDAP (avec 'ND de "
"connexion')"
-#: core/app_settings.py:156
+#: core/app_settings.py:153
msgid "Users search base"
msgstr "Base de recherche des utilisateurs"
-#: core/app_settings.py:159
+#: core/app_settings.py:156
msgid "The distinguished name of the search base used to find users"
msgstr ""
"Le nom distinctif de la base de recherche utilisée pour rechercher les "
"utilisateurs"
-#: core/app_settings.py:166
+#: core/app_settings.py:163
msgid "Search filter"
msgstr "Filtre de recherche"
-#: core/app_settings.py:169
+#: core/app_settings.py:166
msgid ""
"An optional filter string (e.g. '(objectClass=person)'). In order to be "
"valid, it must be enclosed in parentheses."
@@ -191,11 +191,11 @@ msgstr ""
"Un filtre de recherche optionel (ex. '(objectClass=person)'). Pour être "
"valide, il doit être entouré de parenthèses."
-#: core/app_settings.py:177
+#: core/app_settings.py:174
msgid "User DN template"
msgstr "Modèle de nom distinctif utilisateur"
-#: core/app_settings.py:180
+#: core/app_settings.py:177
#, python-format
msgid ""
"The template used to construct a user's DN. It should contain one "
@@ -204,27 +204,27 @@ msgstr ""
"Le modèle utilisé pour construire le nom distinctif d'un utilisateur. Il "
"doit contenir un espace réservé (ex. %(user)s)"
-#: core/app_settings.py:188
+#: core/app_settings.py:185
msgid "Password attribute"
msgstr "Attribut 'mot de passe'"
-#: core/app_settings.py:190
+#: core/app_settings.py:187
msgid "The attribute used to store user passwords"
msgstr "L'attribut utilisé pour stocker les mots de passe"
-#: core/app_settings.py:195
+#: core/app_settings.py:192
msgid "Active Directory"
msgstr "Active Directory"
-#: core/app_settings.py:198
+#: core/app_settings.py:195
msgid "Tell if the LDAP server is an Active Directory one"
msgstr "Indiquer si le serveur LDAP est un Active Directory ou pas"
-#: core/app_settings.py:202
+#: core/app_settings.py:199
msgid "Administrator groups"
msgstr "Groupes administrateurs"
-#: core/app_settings.py:205
+#: core/app_settings.py:202
msgid ""
"Members of those LDAP Posix groups will be created as domain administrators. "
"Use ';' characters to separate groups."
@@ -233,99 +233,99 @@ msgstr ""
"qu'administrateurs de domaine. Utiliser des caractères ';' pour séparer les "
"groupes."
-#: core/app_settings.py:212
+#: core/app_settings.py:209
msgid "Group type"
msgstr "Type de groupe"
-#: core/app_settings.py:216
+#: core/app_settings.py:213
msgid "The LDAP group type to use with your directory."
msgstr "Le type de groupe LDAP à utiliser avec votre annuaire."
-#: core/app_settings.py:221
+#: core/app_settings.py:218
msgid "Groups search base"
msgstr "Base de recherche des groupes"
-#: core/app_settings.py:224
+#: core/app_settings.py:221
msgid "The distinguished name of the search base used to find groups"
msgstr ""
"Le nom distinctif de la base de recherche utilisée pour rechercher les "
"groupes"
-#: core/app_settings.py:229 core/templates/core/dashboard.html:5
+#: core/app_settings.py:226 core/templates/core/dashboard.html:5
msgid "Dashboard"
msgstr "Tableau de bord"
-#: core/app_settings.py:232
+#: core/app_settings.py:229
msgid "Custom RSS feed"
msgstr "Flux RSS personnalisé"
-#: core/app_settings.py:235
+#: core/app_settings.py:232
msgid "Display custom RSS feed to resellers and domain administrators"
msgstr ""
"Afficher un flux RSS personnalisé aux revendeurs et administrateurs de "
"domaine"
-#: core/app_settings.py:240
+#: core/app_settings.py:237
msgid "Hide features widget"
msgstr "Masquer le widget des fonctionnalités"
-#: core/app_settings.py:243
+#: core/app_settings.py:240
msgid "Hide features widget for resellers and domain administrators"
msgstr ""
"Masquer le widget des fonctionnalités pour les revendeurs et les "
"administrateurs de domaine"
-#: core/app_settings.py:247
+#: core/app_settings.py:244
msgid "Notifications"
msgstr "Notifications"
-#: core/app_settings.py:250
+#: core/app_settings.py:247
msgid "Sender address"
msgstr "Adresse d'envoi"
-#: core/app_settings.py:253
+#: core/app_settings.py:250
msgid "Email address used to send notifications."
msgstr "Adresse utilisée pour envoyer les notifications."
-#: core/app_settings.py:257
+#: core/app_settings.py:254
msgid "Public API"
msgstr "API publique"
-#: core/app_settings.py:260
+#: core/app_settings.py:257
msgid "Enable communication"
msgstr "Activer la communication"
-#: core/app_settings.py:263
+#: core/app_settings.py:260
msgid "Enable communication with Modoboa public API"
msgstr "Activer la communication avec l'API publique de Modoboa"
-#: core/app_settings.py:267
+#: core/app_settings.py:264
msgid "Check new versions"
msgstr "Vérifier les nouvelles versions"
-#: core/app_settings.py:270
+#: core/app_settings.py:267
msgid "Automatically checks if a newer version is available"
msgstr "Vérifie automatiquement si une nouvelle version est disponible"
-#: core/app_settings.py:274
+#: core/app_settings.py:271
msgid "Send statistics"
msgstr "Envoyer des statistiques"
-#: core/app_settings.py:277
+#: core/app_settings.py:274
msgid "Send statistics to Modoboa public API (counters and used extensions)"
msgstr ""
"Envoyer des statistiques à l'API publique de Modoboa (compteurs et "
"extensions utilisées)"
-#: core/app_settings.py:281
+#: core/app_settings.py:278
msgid "Miscellaneous"
msgstr "Divers"
-#: core/app_settings.py:284
+#: core/app_settings.py:281
msgid "Inactive account threshold"
msgstr "Seuil des comptes inactifs"
-#: core/app_settings.py:287
+#: core/app_settings.py:284
msgid ""
"An account with a last login date greater than this threshold (in days) will "
"be considered as inactive"
@@ -333,67 +333,66 @@ msgstr ""
"Un compte avec une date de dernière connexion antérieure à ce seuil sera "
"considéré comme inactif"
-#: core/app_settings.py:294
+#: core/app_settings.py:291
msgid "Top notifications check interval"
msgstr "Intervalle de vérification des notifications"
-#: core/app_settings.py:297
+#: core/app_settings.py:294
msgid "Interval between two top notification checks (in seconds)"
msgstr "Intervalle entre deux vérifications de notification (en secondes)"
-#: core/app_settings.py:303
+#: core/app_settings.py:300
msgid "Maximum log record age"
msgstr "Age maximal d'un enregistrement du journal"
-#: core/app_settings.py:305
+#: core/app_settings.py:302
msgid "The maximum age in days of a log record"
msgstr "L'age maximal en jours d'un enregistrement du journal"
-#: core/app_settings.py:310
+#: core/app_settings.py:307
msgid "Items per page"
msgstr "Eléments par page"
-#: core/app_settings.py:312
+#: core/app_settings.py:309
msgid "Number of displayed items per page"
msgstr "Nombre d'éléments affichés par page"
-#: core/app_settings.py:317
+#: core/app_settings.py:314
msgid "Default top redirection"
msgstr "Redirection par défaut"
-#: core/app_settings.py:321
+#: core/app_settings.py:318
msgid "The default redirection used when no application is specified"
msgstr ""
"La redirection appliquée par défaut quand aucune application n'est spécifiée"
-#: core/app_settings.py:354
-msgid "Key must be either 16, 24, or 32 bytes long"
-msgstr "La longueur d'une clé doit être de 16, 24 ou 32 octets"
-
-#: core/app_settings.py:363
+#: core/app_settings.py:353
msgid "Invalid syntax"
msgstr "Syntaxe invalide"
-#: core/app_settings.py:369
+#: core/app_settings.py:359
msgid "Invalid rounds number"
msgstr "Nombre invalide de tours"
-#: core/app_settings.py:396
+#: core/app_settings.py:386
msgid "This field is required"
msgstr "Ce champ est requis"
-#: core/apps.py:20
+#: core/apps.py:22
msgid "General"
msgstr "Général"
-#: core/checks/settings_checks.py:11
+#: core/checks/settings_checks.py:10
msgid ""
"You have USE_TZ set to False, this may result in issues during transitions "
"between summer/winter time (ie the same local time occuring twice due to "
"clock change)."
-msgstr "Vous avez paramétré USE_TZ à False, ce qui peut occasionner des problèmes pendant les transitions heure d'hiver / heure d'été (c'est à dire que la même heure locale arrivera deux fois à cause du changement d'heure)."
+msgstr ""
+"Vous avez paramétré USE_TZ à False, ce qui peut occasionner des problèmes "
+"pendant les transitions heure d'hiver / heure d'été (c'est à dire que la "
+"même heure locale arrivera deux fois à cause du changement d'heure)."
-#: core/checks/settings_checks.py:14
+#: core/checks/settings_checks.py:13
msgid "Set `USE_TZ = True` in settings.py"
msgstr "Mettre `USE_TZ = True` dans settings.py"
@@ -413,168 +412,168 @@ msgstr "Revendeur"
msgid "Super administrator"
msgstr "Super administrateur"
-#: core/constants.py:51 lib/form_utils.py:394
+#: core/constants.py:53 lib/form_utils.py:393
msgid "No"
msgstr "Non"
-#: core/forms.py:24
+#: core/forms.py:22
msgid "Username"
msgstr "Nom d'utilisateur"
-#: core/forms.py:28
+#: core/forms.py:26
msgid "Password"
msgstr "Mot de passe"
-#: core/forms.py:41
+#: core/forms.py:39
msgid "Old password"
msgstr "Ancien mot de passe"
-#: core/forms.py:45
+#: core/forms.py:43
msgid "New password"
msgstr "Nouveau mot de passe"
-#: core/forms.py:49
+#: core/forms.py:47
msgid "Confirmation"
msgstr "Confirmation"
-#: core/forms.py:77
+#: core/forms.py:75
msgid "Old password mismatchs"
msgstr "L'ancien mot de passe est incorrect"
-#: core/forms.py:86
+#: core/forms.py:84
msgid "Passwords mismatch"
msgstr "Les mots de passe diffèrent"
-#: core/forms.py:106
+#: core/forms.py:104
msgid "Enable API access"
msgstr "Activer l'accès API"
-#: core/handlers.py:43
+#: core/handlers.py:40
msgid "added"
msgstr "ajouté"
-#: core/handlers.py:46
+#: core/handlers.py:43
msgid "modified"
msgstr "modifié"
-#: core/handlers.py:48
+#: core/handlers.py:45
#, python-format
msgid "%(object)s '%(name)s' %(action)s by user %(user)s"
msgstr "%(object)s '%(name)s' %(action)s par l'utilisateur %(user)s"
-#: core/handlers.py:70
+#: core/handlers.py:67
#, python-format
msgid "%(object)s '%(name)s' %(action)s by "
msgstr "%(object)s '%(name)s' %(action)s par"
-#: core/handlers.py:72
+#: core/handlers.py:69
msgid "deleted"
msgstr "Supprimé"
-#: core/handlers.py:76
+#: core/handlers.py:73
msgid "user {}"
msgstr "l'utilisateur {}"
-#: core/handlers.py:78
+#: core/handlers.py:75
msgid "management command"
msgstr "commande de gestion"
-#: core/handlers.py:102
+#: core/handlers.py:99
msgid "You can't delete your own account"
msgstr "Vous ne pouvez pas supprimer votre propre compte"
-#: core/handlers.py:138
+#: core/handlers.py:135
msgid "One or more updates are available"
msgstr "Une ou plusieurs mises à jour sont disponibles!"
-#: core/models.py:58
+#: core/models.py:57
msgid "Allow mailboxes access"
msgstr "Autoriser l'accès aux boites"
-#: core/models.py:60
+#: core/models.py:59
msgid "Allow this administrator to access user mailboxes"
msgstr "Autoriser cet administrateur à accéder aux boites des utilisateurs"
-#: core/models.py:63
+#: core/models.py:62
msgid "password"
msgstr "mot de passe"
-#: core/models.py:66
+#: core/models.py:65
msgid "language"
msgstr "langue"
-#: core/models.py:69
+#: core/models.py:68
msgid "Prefered language to display pages."
msgstr "Langage préféré pour afficher les pages"
-#: core/models.py:73
+#: core/models.py:72
msgid "Phone number"
msgstr "Numéro de téléphone"
-#: core/models.py:75
+#: core/models.py:74
msgid "Secondary email"
msgstr "Email secondaire"
-#: core/models.py:78
+#: core/models.py:77
msgid "An alternative e-mail address, can be used for recovery needs."
msgstr "Une adresse e-mail alternative ou de secours."
-#: core/models.py:128
+#: core/models.py:127
msgid "Failed to update password: LDAP module not installed"
msgstr ""
"Echec de la mise à jour du mot de passe : le module LDAP n'est pas installé"
-#: core/models.py:157
+#: core/models.py:156
msgid "account"
msgstr "compte"
-#: core/models.py:279
+#: core/models.py:278
msgid "Unknown"
msgstr "Inconnu"
-#: core/models.py:313
+#: core/models.py:312
msgid "Invalid line"
msgstr "Ligne invalide"
-#: core/models.py:321
+#: core/models.py:320
msgid "You can't import an account with a role greater than yours"
msgstr "Vous ne pouvez pas importer un compte avec un rôle supérieur au votre"
-#: core/models.py:336
+#: core/models.py:335
#, python-format
msgid "The simple user '%s' must have a valid email address"
msgstr "L'utilisateur simple '%s' doit avoir une adresse email valide"
-#: core/models.py:341
+#: core/models.py:340
#, python-format
msgid "username and email fields must not differ for '%s'"
msgstr "Les champs username et email de '%s' ne doivent pas différer"
-#: core/password_validation.py:26
+#: core/password_validation.py:28
msgid "Password must contain at least {} digit."
msgid_plural "Password must contain at least {} digits."
msgstr[0] "Le mot de passe doit contenir au moins {} chiffre."
msgstr[1] "Le mot de passe doit contenir au moins {} chiffres."
-#: core/password_validation.py:36
+#: core/password_validation.py:38
msgid "Password must contain at least {} lowercase letter."
msgid_plural "Password must contain at least {} lowercase letters."
msgstr[0] "Le mot de passe doit contenir au moins {} minuscule."
msgstr[1] "Le mot de passe doit contenir au moins {} minuscules."
-#: core/password_validation.py:47
+#: core/password_validation.py:49
msgid "Password must contain at least {} uppercase letter."
msgid_plural "Password must contain at least {} uppercase letters."
msgstr[0] "Le mot de passe doit contenir au moins {} majuscule."
msgstr[1] "Le mot de passe doit contenir au moins {} majuscules."
-#: core/password_validation.py:59
+#: core/password_validation.py:61
msgid "Password must contain at least {} special character."
msgid_plural "Password must contain at least {} special characters."
msgstr[0] "Le mot de passe doit contenir au moins {} caractère spécial."
msgstr[1] "Le mot de passe doit contenir au moins {} caractères spéciaux."
-#: core/password_validation.py:67
+#: core/password_validation.py:69
msgid "Your password must contain a combination of different character types."
msgstr ""
"Votre mot de passe doit contenir une combinaison de différents types de "
@@ -630,7 +629,7 @@ msgid "API access token"
msgstr "Jeton d'accès à l'API"
#: core/templates/core/api_access.html:35
-#: core/templates/core/user_profile.html:10 lib/form_utils.py:359
+#: core/templates/core/user_profile.html:10 lib/form_utils.py:358
msgid "Update"
msgstr "Mettre à jour"
@@ -639,7 +638,7 @@ msgstr "Mettre à jour"
msgid "Hello %(user)s."
msgstr "Bonjour %(user)s."
-#: core/templates/core/information.html:2 core/templatetags/core_tags.py:64
+#: core/templates/core/information.html:2 core/templatetags/core_tags.py:66
msgid "Information"
msgstr "Information"
@@ -689,7 +688,7 @@ msgstr "Rôle"
msgid "Last login"
msgstr "Dernière connexion"
-#: core/templates/core/logs.html:2 core/templatetags/core_tags.py:68
+#: core/templates/core/logs.html:2 core/templatetags/core_tags.py:70
msgid "Logs"
msgstr "Journaux"
@@ -697,7 +696,7 @@ msgstr "Journaux"
msgid "Previously on Modoboa..."
msgstr "Précédemment dans Modoboa..."
-#: core/templates/core/logs.html:6 lib/templatetags/lib_tags.py:109
+#: core/templates/core/logs.html:6 lib/templatetags/lib_tags.py:110
msgid "Date"
msgstr "Date"
@@ -713,7 +712,7 @@ msgstr "Logger"
msgid "Message"
msgstr "Message"
-#: core/templates/core/parameters.html:2 core/templatetags/core_tags.py:73
+#: core/templates/core/parameters.html:2 core/templatetags/core_tags.py:75
msgid "Parameters"
msgstr "Paramètres"
@@ -730,12 +729,12 @@ msgstr "Enregistrer"
msgid "Modoboa settings"
msgstr "Paramètres de Modoboa"
-#: core/templates/core/user_index.html:4 core/templatetags/core_tags.py:92
+#: core/templates/core/user_index.html:4 core/templatetags/core_tags.py:94
msgid "Settings"
msgstr "Configuration"
#: core/templates/core/user_preferences.html:2
-#: core/templatetags/core_tags.py:122
+#: core/templatetags/core_tags.py:124
msgid "Preferences"
msgstr "Préférences"
@@ -747,7 +746,7 @@ msgstr "Personnalisez Modoboa"
msgid "No preferences available."
msgstr "Aucune préférence disponible."
-#: core/templates/core/user_profile.html:3 core/templatetags/core_tags.py:118
+#: core/templates/core/user_profile.html:3 core/templatetags/core_tags.py:120
msgid "Profile"
msgstr "Profil"
@@ -755,38 +754,43 @@ msgstr "Profil"
msgid "Update your personal information"
msgstr "Mettez à jour vos informations personnelles"
-#: core/templatetags/core_tags.py:36
+#: core/templatetags/core_tags.py:38
msgid "Modoboa"
msgstr "Modoboa"
-#: core/templatetags/core_tags.py:104
+#: core/templatetags/core_tags.py:106
msgid "Logout"
msgstr "Déconnexion"
-#: core/templatetags/core_tags.py:129
+#: core/templatetags/core_tags.py:131
msgid "API"
msgstr "API"
-#: core/utils.py:35
+#: core/utils.py:36
msgid "The core part of Modoboa"
msgstr "Le coeur de Modoboa"
-#: core/views/admin.py:48
+#: core/views/admin.py:47
msgid "Parameters saved"
msgstr "Paramètres enregistrés"
-#: core/views/auth.py:45
+#: core/views/auth.py:50
+#, python-format
+msgid "Password scheme mismatch. Updating %s password"
+msgstr "Chiffrement non concordant. Mise à jour du mot de passe de %s"
+
+#: core/views/auth.py:64
#, python-format
msgid "User '%s' successfully logged in"
msgstr "Utiliseur '%s' connecté avec succès"
-#: core/views/auth.py:53
+#: core/views/auth.py:72
msgid "Your username and password didn't match. Please try again."
msgstr ""
"Votre nom d'utilisateur et mot de passe ne correspondent pas. Veuillez "
"réessayer."
-#: core/views/auth.py:88
+#: core/views/auth.py:107
msgid "User '{}' successfully logged out"
msgstr "Utilisateur '{}' déconnecté avec succès"
@@ -807,49 +811,53 @@ msgstr "Accès mis à jour"
msgid "Connection to database %s not configured"
msgstr "Connexion à la base de données %s non configurée"
-#: lib/exceptions.py:70
+#: lib/email_utils.py:350
+msgid "unable to determine encoding of string"
+msgstr "impossible de trouver l'encodage de la chaîne de caractère"
+
+#: lib/exceptions.py:71
#, python-format
msgid "Permission denied: %s"
msgstr "Permission refusée : %s"
-#: lib/exceptions.py:71
+#: lib/exceptions.py:72
msgid "Permission denied"
msgstr "Permission refusée"
-#: lib/fields.py:17 lib/validators.py:16
+#: lib/fields.py:19 lib/validators.py:18
msgid "Enter a valid domain name"
msgstr "Entrer un nom de domaine valide"
-#: lib/fields.py:46 lib/fields.py:60
+#: lib/fields.py:48 lib/fields.py:62
msgid "Enter a valid email address."
msgstr "Entrez une adresse email valide."
-#: lib/form_utils.py:82 templates/registration/password_reset_confirm.html:12
+#: lib/form_utils.py:81 templates/registration/password_reset_confirm.html:12
#: templates/registration/password_reset_form.html:11
msgid "Submit"
msgstr "Soumettre"
-#: lib/form_utils.py:115 lib/form_utils.py:118
+#: lib/form_utils.py:114 lib/form_utils.py:117
msgid "Invalid request"
msgstr "Requête invalide"
-#: lib/form_utils.py:393
+#: lib/form_utils.py:392
msgid "Yes"
msgstr "Oui"
-#: lib/ldap_utils.py:133
+#: lib/ldap_utils.py:134
msgid "Failed to update password: {}"
msgstr "Impossible de mettre à jour le mot de passe : {}"
-#: lib/templatetags/lib_tags.py:107
+#: lib/templatetags/lib_tags.py:108
msgid "From"
msgstr "De"
-#: lib/templatetags/lib_tags.py:108
+#: lib/templatetags/lib_tags.py:109
msgid "To"
msgstr "À"
-#: lib/templatetags/lib_tags.py:110 templates/common/email_searchbar.html:17
+#: lib/templatetags/lib_tags.py:111 templates/common/email_searchbar.html:17
msgid "Subject"
msgstr "Sujet"
@@ -975,3 +983,12 @@ msgstr "Cordialement, l'équipe Modoboa."
#: templates/registration/password_reset_subject.txt:3
msgid "Modoboa password reset"
msgstr "Réinitialisation du mot de passe Modoboa"
+
+#~ msgid "Secret key"
+#~ msgstr "Clé secrète"
+
+#~ msgid "Key used to encrypt/decrypt passwords"
+#~ msgstr "Clé utilisée pour chiffrer/déchiffre les mots de passe"
+
+#~ msgid "Key must be either 16, 24, or 32 bytes long"
+#~ msgstr "La longueur d'une clé doit être de 16, 24 ou 32 octets"
diff --git a/modoboa/locale/it/LC_MESSAGES/django.po b/modoboa/locale/it/LC_MESSAGES/django.po
index 1bc39faa8..b97dcb570 100644
--- a/modoboa/locale/it/LC_MESSAGES/django.po
+++ b/modoboa/locale/it/LC_MESSAGES/django.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-01-25 09:09+0100\n"
+"POT-Creation-Date: 2018-10-05 16:08+0200\n"
"PO-Revision-Date: 2015-10-11 11:47+0000\n"
"Last-Translator: Rocco \n"
"Language-Team: Italian (http://www.transifex.com/tonio/modoboa/language/"
@@ -20,62 +20,62 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: core/app_settings.py:26
+#: core/app_settings.py:22
#, fuzzy
#| msgid "Profile"
msgid "User profile"
msgstr "Profilo"
-#: core/app_settings.py:39
+#: core/app_settings.py:35
msgid "Authentication"
msgstr "Autenticazione"
-#: core/app_settings.py:42
+#: core/app_settings.py:38
msgid "Authentication type"
msgstr "Tipo di autenticazione"
-#: core/app_settings.py:43
+#: core/app_settings.py:39
msgid "Local"
msgstr "Locale"
-#: core/app_settings.py:46
+#: core/app_settings.py:42
msgid "The backend used for authentication"
msgstr "Il backend utilizzato per l'autenticazione"
-#: core/app_settings.py:51
+#: core/app_settings.py:47
msgid "Default password scheme"
msgstr "Schema password predefinito"
-#: core/app_settings.py:55
+#: core/app_settings.py:51
msgid "md5crypt (weak)"
msgstr "md5crypt (debole)"
-#: core/app_settings.py:56
+#: core/app_settings.py:52
msgid "sha256 (weak)"
msgstr "sha256 (debole)"
-#: core/app_settings.py:57
+#: core/app_settings.py:53
msgid "md5 (weak)"
msgstr "md5 (debole)"
-#: core/app_settings.py:58
+#: core/app_settings.py:54
msgid "crypt (weak)"
msgstr "crypt (debole)"
-#: core/app_settings.py:59
+#: core/app_settings.py:55
msgid "plain (weak)"
msgstr "plain (debole)"
-#: core/app_settings.py:61
+#: core/app_settings.py:57
msgid "Scheme used to crypt mailbox passwords"
msgstr ""
"Schema utilizzato per la criptazione delle password delle caselle di posta"
-#: core/app_settings.py:66
+#: core/app_settings.py:62
msgid "Rounds"
msgstr "Cicli"
-#: core/app_settings.py:69
+#: core/app_settings.py:65
msgid ""
"Number of rounds to use (only used by sha256crypt and sha512crypt). Must be "
"between 1000 and 999999999, inclusive."
@@ -83,85 +83,87 @@ msgstr ""
"Numero di cicli da utilizzare (valido per sha256crypt e sha512crypt). "
"Dev'essere tra 1000 e 999999999, inclusivo."
-#: core/app_settings.py:76
-msgid "Secret key"
-msgstr "Chiave segreta"
+#: core/app_settings.py:72
+#, fuzzy
+#| msgid "Default password scheme"
+msgid "Update password scheme"
+msgstr "Schema password predefinito"
-#: core/app_settings.py:78
-msgid "Key used to encrypt/decrypt passwords"
-msgstr "Chiave utilizzata per criptare/decriptare le password"
+#: core/app_settings.py:75
+msgid "Update user password at login to use the default password scheme"
+msgstr ""
-#: core/app_settings.py:83
+#: core/app_settings.py:80
#, fuzzy
#| msgid "Default password scheme"
msgid "Default password"
msgstr "Schema password predefinito"
-#: core/app_settings.py:86
+#: core/app_settings.py:83
msgid "Default password for automatically created accounts."
msgstr ""
-#: core/app_settings.py:90
+#: core/app_settings.py:87
#, fuzzy
#| msgid "Bind password"
msgid "Random password length"
msgstr "Password del collegamento"
-#: core/app_settings.py:94
+#: core/app_settings.py:91
msgid "Length of randomly generated passwords."
msgstr ""
-#: core/app_settings.py:98
+#: core/app_settings.py:95
msgid "LDAP settings"
msgstr "Impostazioni LDAP"
-#: core/app_settings.py:101
+#: core/app_settings.py:98
msgid "Server address"
msgstr "Indirizzo del server"
-#: core/app_settings.py:104
+#: core/app_settings.py:101
msgid "The IP address or the DNS name of the LDAP server"
msgstr "L'indirizzo IP associato al DNS name del server LDAP"
-#: core/app_settings.py:109
+#: core/app_settings.py:106
msgid "Server port"
msgstr "Porta del server"
-#: core/app_settings.py:111
+#: core/app_settings.py:108
msgid "The TCP port number used by the LDAP server"
msgstr "Il numero della porta TCP utilizzata dal server LDAP"
-#: core/app_settings.py:116
+#: core/app_settings.py:113
msgid "Use a secured connection"
msgstr "Usa una connessione sicura"
-#: core/app_settings.py:120
+#: core/app_settings.py:117
#, fuzzy
#| msgid "Use an SSL/TLS connection to access the LDAP server"
msgid "Use an SSL/STARTTLS connection to access the LDAP server"
msgstr "Utilizza una connessione SSL/TLS per accedere al server LDAP"
-#: core/app_settings.py:124
+#: core/app_settings.py:121
msgid "Authentication method"
msgstr "Metodo di autenticazione"
-#: core/app_settings.py:125
+#: core/app_settings.py:122
msgid "Search and bind"
msgstr "Cerca e collega"
-#: core/app_settings.py:126
+#: core/app_settings.py:123
msgid "Direct bind"
msgstr "Collegamento diretto"
-#: core/app_settings.py:128
+#: core/app_settings.py:125
msgid "Choose the authentication method to use"
msgstr "Scegli il metodo di autenticazione da usare"
-#: core/app_settings.py:133
+#: core/app_settings.py:130
msgid "Bind DN"
msgstr "collega DN"
-#: core/app_settings.py:136
+#: core/app_settings.py:133
msgid ""
"The distinguished name to use when binding to the LDAP server. Leave empty "
"for an anonymous bind"
@@ -169,31 +171,31 @@ msgstr ""
"Nome particolare da usare quando ci si collega al server LDAP. Lasciare "
"vuoto per un collegamento anonimo"
-#: core/app_settings.py:144
+#: core/app_settings.py:141
msgid "Bind password"
msgstr "Password del collegamento"
-#: core/app_settings.py:147
+#: core/app_settings.py:144
msgid "The password to use when binding to the LDAP server (with 'Bind DN')"
msgstr ""
"La password da utilizzare quando ci si collega al server LDAP (con 'Collega "
"DN')"
-#: core/app_settings.py:156
+#: core/app_settings.py:153
msgid "Users search base"
msgstr "Base ricerca per gli utenti"
-#: core/app_settings.py:159
+#: core/app_settings.py:156
msgid "The distinguished name of the search base used to find users"
msgstr ""
"L'identificativo (dn:) della base di ricerca utilizzata per cercare gli "
"utenti"
-#: core/app_settings.py:166
+#: core/app_settings.py:163
msgid "Search filter"
msgstr "Filtro ricerca"
-#: core/app_settings.py:169
+#: core/app_settings.py:166
msgid ""
"An optional filter string (e.g. '(objectClass=person)'). In order to be "
"valid, it must be enclosed in parentheses."
@@ -201,11 +203,11 @@ msgstr ""
"Stringa di filtraggio opzionale (p.es '(objectClass=person)'). Per essere "
"valida deve essere racchiusa tra parentesi."
-#: core/app_settings.py:177
+#: core/app_settings.py:174
msgid "User DN template"
msgstr "Modello DN dell'utente"
-#: core/app_settings.py:180
+#: core/app_settings.py:177
#, python-format
msgid ""
"The template used to construct a user's DN. It should contain one "
@@ -214,27 +216,27 @@ msgstr ""
"Il modello utilizzato per comporre un DN dell'utente. Deve contenere un "
"segnaposto (p.es. %(user)s)"
-#: core/app_settings.py:188
+#: core/app_settings.py:185
msgid "Password attribute"
msgstr "Attributo della password"
-#: core/app_settings.py:190
+#: core/app_settings.py:187
msgid "The attribute used to store user passwords"
msgstr "L'attributo utilizzato per memorizzare le password dell'utente"
-#: core/app_settings.py:195
+#: core/app_settings.py:192
msgid "Active Directory"
msgstr "Active Directory"
-#: core/app_settings.py:198
+#: core/app_settings.py:195
msgid "Tell if the LDAP server is an Active Directory one"
msgstr "Segnala se il server LDAP è una Active Directory"
-#: core/app_settings.py:202
+#: core/app_settings.py:199
msgid "Administrator groups"
msgstr "Gruppi degli amministratori"
-#: core/app_settings.py:205
+#: core/app_settings.py:202
msgid ""
"Members of those LDAP Posix groups will be created as domain administrators. "
"Use ';' characters to separate groups."
@@ -243,165 +245,161 @@ msgstr ""
"amministratori di dominio. Utilizza il carattere ';' per separare valori "
"multipli."
-#: core/app_settings.py:212
+#: core/app_settings.py:209
#, fuzzy
#| msgid "Group name"
msgid "Group type"
msgstr "Nome gruppo"
-#: core/app_settings.py:216
+#: core/app_settings.py:213
msgid "The LDAP group type to use with your directory."
msgstr ""
-#: core/app_settings.py:221
+#: core/app_settings.py:218
msgid "Groups search base"
msgstr "Base ricerca per i gruppi"
-#: core/app_settings.py:224
+#: core/app_settings.py:221
msgid "The distinguished name of the search base used to find groups"
msgstr ""
"L'identificatore (dn:) della base di ricerca utilizzato per trovare i gruppi"
-#: core/app_settings.py:229 core/templates/core/dashboard.html:5
+#: core/app_settings.py:226 core/templates/core/dashboard.html:5
msgid "Dashboard"
msgstr ""
-#: core/app_settings.py:232
+#: core/app_settings.py:229
msgid "Custom RSS feed"
msgstr ""
-#: core/app_settings.py:235
+#: core/app_settings.py:232
msgid "Display custom RSS feed to resellers and domain administrators"
msgstr ""
-#: core/app_settings.py:240
+#: core/app_settings.py:237
msgid "Hide features widget"
msgstr ""
-#: core/app_settings.py:243
+#: core/app_settings.py:240
msgid "Hide features widget for resellers and domain administrators"
msgstr ""
-#: core/app_settings.py:247
+#: core/app_settings.py:244
#, fuzzy
#| msgid "Applications"
msgid "Notifications"
msgstr "Applicazioni"
-#: core/app_settings.py:250
+#: core/app_settings.py:247
#, fuzzy
#| msgid "Server address"
msgid "Sender address"
msgstr "Indirizzo del server"
-#: core/app_settings.py:253
+#: core/app_settings.py:250
msgid "Email address used to send notifications."
msgstr ""
-#: core/app_settings.py:257
+#: core/app_settings.py:254
msgid "Public API"
msgstr ""
-#: core/app_settings.py:260
+#: core/app_settings.py:257
msgid "Enable communication"
msgstr ""
-#: core/app_settings.py:263
+#: core/app_settings.py:260
msgid "Enable communication with Modoboa public API"
msgstr ""
-#: core/app_settings.py:267
+#: core/app_settings.py:264
msgid "Check new versions"
msgstr "Controlla nuove versioni"
-#: core/app_settings.py:270
+#: core/app_settings.py:267
msgid "Automatically checks if a newer version is available"
msgstr "Controlla automaticamente se è disponibile una nuova versione"
-#: core/app_settings.py:274
+#: core/app_settings.py:271
msgid "Send statistics"
msgstr ""
-#: core/app_settings.py:277
+#: core/app_settings.py:274
msgid "Send statistics to Modoboa public API (counters and used extensions)"
msgstr ""
-#: core/app_settings.py:281
+#: core/app_settings.py:278
msgid "Miscellaneous"
msgstr "Miscellanea"
-#: core/app_settings.py:284
+#: core/app_settings.py:281
msgid "Inactive account threshold"
msgstr ""
-#: core/app_settings.py:287
+#: core/app_settings.py:284
msgid ""
"An account with a last login date greater than this threshold (in days) will "
"be considered as inactive"
msgstr ""
-#: core/app_settings.py:294
+#: core/app_settings.py:291
msgid "Top notifications check interval"
msgstr "Intervallo per nofifiche importanti"
-#: core/app_settings.py:297
+#: core/app_settings.py:294
msgid "Interval between two top notification checks (in seconds)"
msgstr "Intervallo tra due nuove notifiche importanti (in secondi)"
-#: core/app_settings.py:303
+#: core/app_settings.py:300
msgid "Maximum log record age"
msgstr "Età massima dei log"
-#: core/app_settings.py:305
+#: core/app_settings.py:302
msgid "The maximum age in days of a log record"
msgstr "La persistenza massima in giorni dei log"
-#: core/app_settings.py:310
+#: core/app_settings.py:307
msgid "Items per page"
msgstr "Elementi per pagina"
-#: core/app_settings.py:312
+#: core/app_settings.py:309
msgid "Number of displayed items per page"
msgstr "Numero degli elementi visualizzati in ciascuna pagina"
-#: core/app_settings.py:317
+#: core/app_settings.py:314
msgid "Default top redirection"
msgstr "Reindirizzamento principale predefinito"
-#: core/app_settings.py:321
+#: core/app_settings.py:318
msgid "The default redirection used when no application is specified"
msgstr ""
"Redirezione predefinita utilizzata quando non è specificata alcuna "
"applicazione"
-#: core/app_settings.py:354
-msgid "Key must be either 16, 24, or 32 bytes long"
-msgstr "La chiave può essere lunga solo 16, 24 o 32 bytes"
-
-#: core/app_settings.py:363
+#: core/app_settings.py:353
msgid "Invalid syntax"
msgstr "Sintassi errata"
-#: core/app_settings.py:369
+#: core/app_settings.py:359
msgid "Invalid rounds number"
msgstr "Numero di cicli non valido"
-#: core/app_settings.py:396
+#: core/app_settings.py:386
msgid "This field is required"
msgstr "Questo campo è obbligatorio"
-#: core/apps.py:20
+#: core/apps.py:22
msgid "General"
msgstr "Generale"
-#: core/checks/settings_checks.py:11
+#: core/checks/settings_checks.py:10
msgid ""
"You have USE_TZ set to False, this may result in issues during transitions "
"between summer/winter time (ie the same local time occuring twice due to "
"clock change)."
msgstr ""
-#: core/checks/settings_checks.py:14
+#: core/checks/settings_checks.py:13
msgid "Set `USE_TZ = True` in settings.py"
msgstr ""
@@ -423,173 +421,173 @@ msgstr ""
msgid "Super administrator"
msgstr "Super amministratore"
-#: core/constants.py:51 lib/form_utils.py:394
+#: core/constants.py:53 lib/form_utils.py:393
msgid "No"
msgstr "No"
-#: core/forms.py:24
+#: core/forms.py:22
msgid "Username"
msgstr "Nome utente"
-#: core/forms.py:28
+#: core/forms.py:26
msgid "Password"
msgstr "Password"
-#: core/forms.py:41
+#: core/forms.py:39
msgid "Old password"
msgstr "Vecchia password"
-#: core/forms.py:45
+#: core/forms.py:43
msgid "New password"
msgstr "Nuova password"
-#: core/forms.py:49
+#: core/forms.py:47
msgid "Confirmation"
msgstr "Conferma"
-#: core/forms.py:77
+#: core/forms.py:75
msgid "Old password mismatchs"
msgstr "La vecchia password non corrisponde"
-#: core/forms.py:86
+#: core/forms.py:84
msgid "Passwords mismatch"
msgstr "La password non corrisponde"
-#: core/forms.py:106
+#: core/forms.py:104
msgid "Enable API access"
msgstr ""
-#: core/handlers.py:43
+#: core/handlers.py:40
msgid "added"
msgstr "aggiunto"
-#: core/handlers.py:46
+#: core/handlers.py:43
msgid "modified"
msgstr "modificato"
-#: core/handlers.py:48
+#: core/handlers.py:45
#, python-format
msgid "%(object)s '%(name)s' %(action)s by user %(user)s"
msgstr "%(object)s '%(name)s' %(action)s dell'utente %(user)s"
-#: core/handlers.py:70
+#: core/handlers.py:67
#, fuzzy, python-format
#| msgid "%(object)s '%(name)s' %(action)s by user %(user)s"
msgid "%(object)s '%(name)s' %(action)s by "
msgstr "%(object)s '%(name)s' %(action)s dell'utente %(user)s"
-#: core/handlers.py:72
+#: core/handlers.py:69
msgid "deleted"
msgstr "cancellato"
-#: core/handlers.py:76
+#: core/handlers.py:73
msgid "user {}"
msgstr ""
-#: core/handlers.py:78
+#: core/handlers.py:75
msgid "management command"
msgstr ""
-#: core/handlers.py:102
+#: core/handlers.py:99
msgid "You can't delete your own account"
msgstr "Non puoi cancellare il tuo account"
-#: core/handlers.py:138
+#: core/handlers.py:135
msgid "One or more updates are available"
msgstr "Sono disponibili nuovi aggiornamenti"
-#: core/models.py:58
+#: core/models.py:57
msgid "Allow mailboxes access"
msgstr "Consenti l'accesso alle caselle di posta"
-#: core/models.py:60
+#: core/models.py:59
msgid "Allow this administrator to access user mailboxes"
msgstr ""
"Permetti agli amministratori di accedere alle caselle di posta degli utenti"
-#: core/models.py:63
+#: core/models.py:62
msgid "password"
msgstr "password"
-#: core/models.py:66
+#: core/models.py:65
#, fuzzy
#| msgid "Prefered language"
msgid "language"
msgstr "Lingua preferita"
-#: core/models.py:69
+#: core/models.py:68
#, fuzzy
#| msgid "Prefered language to display pages"
msgid "Prefered language to display pages."
msgstr "Lingua preferita per mostrare le pagine"
-#: core/models.py:73
+#: core/models.py:72
msgid "Phone number"
msgstr ""
-#: core/models.py:75
+#: core/models.py:74
msgid "Secondary email"
msgstr ""
-#: core/models.py:78
+#: core/models.py:77
msgid "An alternative e-mail address, can be used for recovery needs."
msgstr ""
-#: core/models.py:128
+#: core/models.py:127
msgid "Failed to update password: LDAP module not installed"
msgstr "Aggiornamento della password fallito: il modulo LDAP non è installato"
-#: core/models.py:157
+#: core/models.py:156
msgid "account"
msgstr "account"
-#: core/models.py:279
+#: core/models.py:278
msgid "Unknown"
msgstr ""
-#: core/models.py:313
+#: core/models.py:312
msgid "Invalid line"
msgstr "Riga non valida"
-#: core/models.py:321
+#: core/models.py:320
msgid "You can't import an account with a role greater than yours"
msgstr "Non puoi importare un account con un ruolo superiore al tuo"
-#: core/models.py:336
+#: core/models.py:335
#, python-format
msgid "The simple user '%s' must have a valid email address"
msgstr "L'utente '%s' deve avere un indirizzo email valido"
-#: core/models.py:341
+#: core/models.py:340
#, python-format
msgid "username and email fields must not differ for '%s'"
msgstr "I campi nome utente e email di '%s' devono avere lo stesso valore"
-#: core/password_validation.py:26
+#: core/password_validation.py:28
msgid "Password must contain at least {} digit."
msgid_plural "Password must contain at least {} digits."
msgstr[0] ""
msgstr[1] ""
-#: core/password_validation.py:36
+#: core/password_validation.py:38
msgid "Password must contain at least {} lowercase letter."
msgid_plural "Password must contain at least {} lowercase letters."
msgstr[0] ""
msgstr[1] ""
-#: core/password_validation.py:47
+#: core/password_validation.py:49
msgid "Password must contain at least {} uppercase letter."
msgid_plural "Password must contain at least {} uppercase letters."
msgstr[0] ""
msgstr[1] ""
-#: core/password_validation.py:59
+#: core/password_validation.py:61
msgid "Password must contain at least {} special character."
msgid_plural "Password must contain at least {} special characters."
msgstr[0] ""
msgstr[1] ""
-#: core/password_validation.py:67
+#: core/password_validation.py:69
msgid "Your password must contain a combination of different character types."
msgstr ""
@@ -639,7 +637,7 @@ msgid "API access token"
msgstr ""
#: core/templates/core/api_access.html:35
-#: core/templates/core/user_profile.html:10 lib/form_utils.py:359
+#: core/templates/core/user_profile.html:10 lib/form_utils.py:358
msgid "Update"
msgstr "Aggiorna"
@@ -648,7 +646,7 @@ msgstr "Aggiorna"
msgid "Hello %(user)s."
msgstr ""
-#: core/templates/core/information.html:2 core/templatetags/core_tags.py:64
+#: core/templates/core/information.html:2 core/templatetags/core_tags.py:66
msgid "Information"
msgstr "Informazioni"
@@ -699,7 +697,7 @@ msgstr ""
msgid "Last login"
msgstr "Ultimo login"
-#: core/templates/core/logs.html:2 core/templatetags/core_tags.py:68
+#: core/templates/core/logs.html:2 core/templatetags/core_tags.py:70
msgid "Logs"
msgstr "Log"
@@ -707,7 +705,7 @@ msgstr "Log"
msgid "Previously on Modoboa..."
msgstr "Precedentemente su Modoboa ..."
-#: core/templates/core/logs.html:6 lib/templatetags/lib_tags.py:109
+#: core/templates/core/logs.html:6 lib/templatetags/lib_tags.py:110
msgid "Date"
msgstr "Data"
@@ -723,7 +721,7 @@ msgstr "Logger"
msgid "Message"
msgstr "Messaggio"
-#: core/templates/core/parameters.html:2 core/templatetags/core_tags.py:73
+#: core/templates/core/parameters.html:2 core/templatetags/core_tags.py:75
msgid "Parameters"
msgstr "Parametri"
@@ -740,12 +738,12 @@ msgstr "Salva"
msgid "Modoboa settings"
msgstr "Impostazioni Modoboa"
-#: core/templates/core/user_index.html:4 core/templatetags/core_tags.py:92
+#: core/templates/core/user_index.html:4 core/templatetags/core_tags.py:94
msgid "Settings"
msgstr "Impostazioni"
#: core/templates/core/user_preferences.html:2
-#: core/templatetags/core_tags.py:122
+#: core/templatetags/core_tags.py:124
msgid "Preferences"
msgstr "Preferenze"
@@ -759,7 +757,7 @@ msgstr "Personalizza Modoboa"
msgid "No preferences available."
msgstr "Preferenze salvate"
-#: core/templates/core/user_profile.html:3 core/templatetags/core_tags.py:118
+#: core/templates/core/user_profile.html:3 core/templatetags/core_tags.py:120
msgid "Profile"
msgstr "Profilo"
@@ -767,36 +765,41 @@ msgstr "Profilo"
msgid "Update your personal information"
msgstr "Aggiorna le informazioni personali"
-#: core/templatetags/core_tags.py:36
+#: core/templatetags/core_tags.py:38
msgid "Modoboa"
msgstr "Modoboa"
-#: core/templatetags/core_tags.py:104
+#: core/templatetags/core_tags.py:106
msgid "Logout"
msgstr "Esci"
-#: core/templatetags/core_tags.py:129
+#: core/templatetags/core_tags.py:131
msgid "API"
msgstr ""
-#: core/utils.py:35
+#: core/utils.py:36
msgid "The core part of Modoboa"
msgstr "Parte centrale di Modoboa"
-#: core/views/admin.py:48
+#: core/views/admin.py:47
msgid "Parameters saved"
msgstr "Parametri salvati"
-#: core/views/auth.py:45
+#: core/views/auth.py:50
+#, python-format
+msgid "Password scheme mismatch. Updating %s password"
+msgstr ""
+
+#: core/views/auth.py:64
#, python-format
msgid "User '%s' successfully logged in"
msgstr "L'utente '%s? è correttamente registrato"
-#: core/views/auth.py:53
+#: core/views/auth.py:72
msgid "Your username and password didn't match. Please try again."
msgstr "Il tuo username e/o la tua password non corrispondono. Riprova."
-#: core/views/auth.py:88
+#: core/views/auth.py:107
#, fuzzy
#| msgid "User '%s' successfully logged in"
msgid "User '{}' successfully logged out"
@@ -821,53 +824,57 @@ msgstr "Profilo aggiornato"
msgid "Connection to database %s not configured"
msgstr "La connessione con il database %s non è configurata"
-#: lib/exceptions.py:70
+#: lib/email_utils.py:350
+msgid "unable to determine encoding of string"
+msgstr ""
+
+#: lib/exceptions.py:71
#, python-format
msgid "Permission denied: %s"
msgstr "Accesso negato: %s"
-#: lib/exceptions.py:71
+#: lib/exceptions.py:72
msgid "Permission denied"
msgstr "Accesso negato"
-#: lib/fields.py:17 lib/validators.py:16
+#: lib/fields.py:19 lib/validators.py:18
msgid "Enter a valid domain name"
msgstr "Inserisci un nome di dominio valido"
-#: lib/fields.py:46 lib/fields.py:60
+#: lib/fields.py:48 lib/fields.py:62
#, fuzzy
#| msgid "Enter a valid domain name"
msgid "Enter a valid email address."
msgstr "Inserisci un nome di dominio valido"
-#: lib/form_utils.py:82 templates/registration/password_reset_confirm.html:12
+#: lib/form_utils.py:81 templates/registration/password_reset_confirm.html:12
#: templates/registration/password_reset_form.html:11
msgid "Submit"
msgstr "Invia"
-#: lib/form_utils.py:115 lib/form_utils.py:118
+#: lib/form_utils.py:114 lib/form_utils.py:117
msgid "Invalid request"
msgstr "Richiesta non valida"
-#: lib/form_utils.py:393
+#: lib/form_utils.py:392
msgid "Yes"
msgstr "Si"
-#: lib/ldap_utils.py:133
+#: lib/ldap_utils.py:134
#, fuzzy
#| msgid "Failed to update password: %s"
msgid "Failed to update password: {}"
msgstr "Aggiornamento della password fallito: %s"
-#: lib/templatetags/lib_tags.py:107
+#: lib/templatetags/lib_tags.py:108
msgid "From"
msgstr ""
-#: lib/templatetags/lib_tags.py:108
+#: lib/templatetags/lib_tags.py:109
msgid "To"
msgstr ""
-#: lib/templatetags/lib_tags.py:110 templates/common/email_searchbar.html:17
+#: lib/templatetags/lib_tags.py:111 templates/common/email_searchbar.html:17
msgid "Subject"
msgstr "Oggetto"
@@ -984,6 +991,15 @@ msgstr ""
msgid "Modoboa password reset"
msgstr ""
+#~ msgid "Secret key"
+#~ msgstr "Chiave segreta"
+
+#~ msgid "Key used to encrypt/decrypt passwords"
+#~ msgstr "Chiave utilizzata per criptare/decriptare le password"
+
+#~ msgid "Key must be either 16, 24, or 32 bytes long"
+#~ msgstr "La chiave può essere lunga solo 16, 24 o 32 bytes"
+
#, fuzzy
#~| msgid "Group name"
#~ msgid "First name"
diff --git a/modoboa/locale/ja_JP/LC_MESSAGES/django.po b/modoboa/locale/ja_JP/LC_MESSAGES/django.po
index 43dd48b08..f9db1ed23 100644
--- a/modoboa/locale/ja_JP/LC_MESSAGES/django.po
+++ b/modoboa/locale/ja_JP/LC_MESSAGES/django.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-01-25 09:09+0100\n"
+"POT-Creation-Date: 2018-10-05 16:08+0200\n"
"PO-Revision-Date: 2016-09-14 17:06+0000\n"
"Last-Translator: Antoine Nguyen \n"
"Language-Team: Japanese (Japan) (http://www.transifex.com/tonio/modoboa/"
@@ -20,61 +20,61 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-#: core/app_settings.py:26
+#: core/app_settings.py:22
#, fuzzy
#| msgid "Profile"
msgid "User profile"
msgstr "プロフィール"
-#: core/app_settings.py:39
+#: core/app_settings.py:35
msgid "Authentication"
msgstr "認証"
-#: core/app_settings.py:42
+#: core/app_settings.py:38
msgid "Authentication type"
msgstr "認証の種類"
-#: core/app_settings.py:43
+#: core/app_settings.py:39
msgid "Local"
msgstr "ローカル"
-#: core/app_settings.py:46
+#: core/app_settings.py:42
msgid "The backend used for authentication"
msgstr "認証に使用されるバックエンド"
-#: core/app_settings.py:51
+#: core/app_settings.py:47
msgid "Default password scheme"
msgstr "デフォルトのパスワードハッシュ"
-#: core/app_settings.py:55
+#: core/app_settings.py:51
msgid "md5crypt (weak)"
msgstr "md5crypt (弱い)"
-#: core/app_settings.py:56
+#: core/app_settings.py:52
msgid "sha256 (weak)"
msgstr "sha256 (弱い)"
-#: core/app_settings.py:57
+#: core/app_settings.py:53
msgid "md5 (weak)"
msgstr "md5 (弱い)"
-#: core/app_settings.py:58
+#: core/app_settings.py:54
msgid "crypt (weak)"
msgstr "crypt (弱い)"
-#: core/app_settings.py:59
+#: core/app_settings.py:55
msgid "plain (weak)"
msgstr "plain (弱い)"
-#: core/app_settings.py:61
+#: core/app_settings.py:57
msgid "Scheme used to crypt mailbox passwords"
msgstr "ハッシュは、メールボックスパスワードを暗号化するのに使われます"
-#: core/app_settings.py:66
+#: core/app_settings.py:62
msgid "Rounds"
msgstr "ラウンド"
-#: core/app_settings.py:69
+#: core/app_settings.py:65
msgid ""
"Number of rounds to use (only used by sha256crypt and sha512crypt). Must be "
"between 1000 and 999999999, inclusive."
@@ -82,85 +82,87 @@ msgstr ""
"ラウンド数は(sha256crypt と sha512crypt だけで)使用しています。\n"
"1000 から 999999999 の間でなければなりません。"
-#: core/app_settings.py:76
-msgid "Secret key"
-msgstr "シークレットキー"
+#: core/app_settings.py:72
+#, fuzzy
+#| msgid "Default password scheme"
+msgid "Update password scheme"
+msgstr "デフォルトのパスワードハッシュ"
-#: core/app_settings.py:78
-msgid "Key used to encrypt/decrypt passwords"
-msgstr "キーは、パスワードを暗号化/復号化はするために使用されます。"
+#: core/app_settings.py:75
+msgid "Update user password at login to use the default password scheme"
+msgstr ""
-#: core/app_settings.py:83
+#: core/app_settings.py:80
#, fuzzy
#| msgid "Default password scheme"
msgid "Default password"
msgstr "デフォルトのパスワードハッシュ"
-#: core/app_settings.py:86
+#: core/app_settings.py:83
msgid "Default password for automatically created accounts."
msgstr ""
-#: core/app_settings.py:90
+#: core/app_settings.py:87
#, fuzzy
#| msgid "Bind password"
msgid "Random password length"
msgstr "Bind パスワード"
-#: core/app_settings.py:94
+#: core/app_settings.py:91
msgid "Length of randomly generated passwords."
msgstr ""
-#: core/app_settings.py:98
+#: core/app_settings.py:95
msgid "LDAP settings"
msgstr "LDAP 設定"
-#: core/app_settings.py:101
+#: core/app_settings.py:98
msgid "Server address"
msgstr "サーバーアドレス"
-#: core/app_settings.py:104
+#: core/app_settings.py:101
msgid "The IP address or the DNS name of the LDAP server"
msgstr "LDAP サーバーの IP アドレス、または DNS 名"
-#: core/app_settings.py:109
+#: core/app_settings.py:106
msgid "Server port"
msgstr "サーバーポート"
-#: core/app_settings.py:111
+#: core/app_settings.py:108
msgid "The TCP port number used by the LDAP server"
msgstr "LDAP サーバーの TCP ポート番号"
-#: core/app_settings.py:116
+#: core/app_settings.py:113
msgid "Use a secured connection"
msgstr "セキュアな接続を使う"
-#: core/app_settings.py:120
+#: core/app_settings.py:117
#, fuzzy
#| msgid "Use an SSL/TLS connection to access the LDAP server"
msgid "Use an SSL/STARTTLS connection to access the LDAP server"
msgstr "LDAP サーバーへの接続に SSL/TLS 接続を使う"
-#: core/app_settings.py:124
+#: core/app_settings.py:121
msgid "Authentication method"
msgstr "認証方法"
-#: core/app_settings.py:125
+#: core/app_settings.py:122
msgid "Search and bind"
msgstr "検索と Bind"
-#: core/app_settings.py:126
+#: core/app_settings.py:123
msgid "Direct bind"
msgstr "Bind"
-#: core/app_settings.py:128
+#: core/app_settings.py:125
msgid "Choose the authentication method to use"
msgstr "使用する認証方式を選択します"
-#: core/app_settings.py:133
+#: core/app_settings.py:130
msgid "Bind DN"
msgstr "Bind DN"
-#: core/app_settings.py:136
+#: core/app_settings.py:133
msgid ""
"The distinguished name to use when binding to the LDAP server. Leave empty "
"for an anonymous bind"
@@ -168,28 +170,28 @@ msgstr ""
"LDAPサーバにバインドするときの識別名に使用します。\n"
"匿名バインドのときは空のままにします。"
-#: core/app_settings.py:144
+#: core/app_settings.py:141
msgid "Bind password"
msgstr "Bind パスワード"
-#: core/app_settings.py:147
+#: core/app_settings.py:144
msgid "The password to use when binding to the LDAP server (with 'Bind DN')"
msgstr ""
"(\"Bind DN\" を使って) LDAPサーバにバインドするときに使用するパスワード"
-#: core/app_settings.py:156
+#: core/app_settings.py:153
msgid "Users search base"
msgstr "ユーザーの検索ベース"
-#: core/app_settings.py:159
+#: core/app_settings.py:156
msgid "The distinguished name of the search base used to find users"
msgstr "ユーザーを見つけるために使用される検索ベースの識別名(DN)"
-#: core/app_settings.py:166
+#: core/app_settings.py:163
msgid "Search filter"
msgstr "検索フィルター"
-#: core/app_settings.py:169
+#: core/app_settings.py:166
msgid ""
"An optional filter string (e.g. '(objectClass=person)'). In order to be "
"valid, it must be enclosed in parentheses."
@@ -197,11 +199,11 @@ msgstr ""
"オプションのフィルタ文字列 (例えば \"(objectClass=person)\") \n"
"有効であるためには、括弧で囲まなければなりません。"
-#: core/app_settings.py:177
+#: core/app_settings.py:174
msgid "User DN template"
msgstr "ユーザー DN テンプレート"
-#: core/app_settings.py:180
+#: core/app_settings.py:177
#, python-format
msgid ""
"The template used to construct a user's DN. It should contain one "
@@ -210,27 +212,27 @@ msgstr ""
"ユーザーDNを作るために使用されるテンプレート。1つのプレースホルダ (%(user)s)"
"が含まれている必要があります。"
-#: core/app_settings.py:188
+#: core/app_settings.py:185
msgid "Password attribute"
msgstr "パスワード属性"
-#: core/app_settings.py:190
+#: core/app_settings.py:187
msgid "The attribute used to store user passwords"
msgstr "ユーザーパスワードを格納するための属性"
-#: core/app_settings.py:195
+#: core/app_settings.py:192
msgid "Active Directory"
msgstr "Active Directory"
-#: core/app_settings.py:198
+#: core/app_settings.py:195
msgid "Tell if the LDAP server is an Active Directory one"
msgstr "LDAP サーバーが Active Directory かどうか"
-#: core/app_settings.py:202
+#: core/app_settings.py:199
msgid "Administrator groups"
msgstr "管理者グループ"
-#: core/app_settings.py:205
+#: core/app_settings.py:202
msgid ""
"Members of those LDAP Posix groups will be created as domain administrators. "
"Use ';' characters to separate groups."
@@ -239,158 +241,154 @@ msgstr ""
"す。\n"
"\";\" 文字を使って、複数グループを書けます。"
-#: core/app_settings.py:212
+#: core/app_settings.py:209
msgid "Group type"
msgstr "グループ種類"
-#: core/app_settings.py:216
+#: core/app_settings.py:213
msgid "The LDAP group type to use with your directory."
msgstr "ディレクトリで使用されている LDAP グループの種類"
-#: core/app_settings.py:221
+#: core/app_settings.py:218
msgid "Groups search base"
msgstr "グループの検索ベース"
-#: core/app_settings.py:224
+#: core/app_settings.py:221
msgid "The distinguished name of the search base used to find groups"
msgstr "グループを見つけるために使用される検索ベースの識別名(DN)"
-#: core/app_settings.py:229 core/templates/core/dashboard.html:5
+#: core/app_settings.py:226 core/templates/core/dashboard.html:5
msgid "Dashboard"
msgstr ""
-#: core/app_settings.py:232
+#: core/app_settings.py:229
msgid "Custom RSS feed"
msgstr ""
-#: core/app_settings.py:235
+#: core/app_settings.py:232
msgid "Display custom RSS feed to resellers and domain administrators"
msgstr ""
-#: core/app_settings.py:240
+#: core/app_settings.py:237
msgid "Hide features widget"
msgstr ""
-#: core/app_settings.py:243
+#: core/app_settings.py:240
msgid "Hide features widget for resellers and domain administrators"
msgstr ""
-#: core/app_settings.py:247
+#: core/app_settings.py:244
msgid "Notifications"
msgstr "通知"
-#: core/app_settings.py:250
+#: core/app_settings.py:247
msgid "Sender address"
msgstr "送信者アドレス"
-#: core/app_settings.py:253
+#: core/app_settings.py:250
msgid "Email address used to send notifications."
msgstr "通知の送信に使われる電子メールアドレス"
-#: core/app_settings.py:257
+#: core/app_settings.py:254
msgid "Public API"
msgstr ""
-#: core/app_settings.py:260
+#: core/app_settings.py:257
msgid "Enable communication"
msgstr ""
-#: core/app_settings.py:263
+#: core/app_settings.py:260
msgid "Enable communication with Modoboa public API"
msgstr ""
-#: core/app_settings.py:267
+#: core/app_settings.py:264
msgid "Check new versions"
msgstr "新しいバージョンをチェックする"
-#: core/app_settings.py:270
+#: core/app_settings.py:267
msgid "Automatically checks if a newer version is available"
msgstr "新しいバージョンが利用可能かどうか、自動的にチェックする"
-#: core/app_settings.py:274
+#: core/app_settings.py:271
msgid "Send statistics"
msgstr ""
-#: core/app_settings.py:277
+#: core/app_settings.py:274
msgid "Send statistics to Modoboa public API (counters and used extensions)"
msgstr ""
-#: core/app_settings.py:281
+#: core/app_settings.py:278
msgid "Miscellaneous"
msgstr "その他"
-#: core/app_settings.py:284
+#: core/app_settings.py:281
msgid "Inactive account threshold"
msgstr ""
-#: core/app_settings.py:287
+#: core/app_settings.py:284
msgid ""
"An account with a last login date greater than this threshold (in days) will "
"be considered as inactive"
msgstr ""
-#: core/app_settings.py:294
+#: core/app_settings.py:291
msgid "Top notifications check interval"
msgstr "トップの通知をチェックする間隔"
-#: core/app_settings.py:297
+#: core/app_settings.py:294
msgid "Interval between two top notification checks (in seconds)"
msgstr "2つのトップの通知チェックの間隔 (秒)"
-#: core/app_settings.py:303
+#: core/app_settings.py:300
msgid "Maximum log record age"
msgstr "最大ログ記録期間"
-#: core/app_settings.py:305
+#: core/app_settings.py:302
msgid "The maximum age in days of a log record"
msgstr "ログを記録する日数の最大期間"
-#: core/app_settings.py:310
+#: core/app_settings.py:307
msgid "Items per page"
msgstr "ページあたりの件数"
-#: core/app_settings.py:312
+#: core/app_settings.py:309
msgid "Number of displayed items per page"
msgstr "ページあたりに表示される項目の数"
-#: core/app_settings.py:317
+#: core/app_settings.py:314
msgid "Default top redirection"
msgstr "デフォルトのリダイレクト先"
-#: core/app_settings.py:321
+#: core/app_settings.py:318
msgid "The default redirection used when no application is specified"
msgstr ""
"アプリケーションが指定されていないときのデフォルトのリダイレクト先に使用され"
"ます"
-#: core/app_settings.py:354
-msgid "Key must be either 16, 24, or 32 bytes long"
-msgstr "キーは、16, 24, 32 バイトのいずれかの長さでなければいけません"
-
-#: core/app_settings.py:363
+#: core/app_settings.py:353
msgid "Invalid syntax"
msgstr "不正な構文"
-#: core/app_settings.py:369
+#: core/app_settings.py:359
msgid "Invalid rounds number"
msgstr "不正なラウンド数"
-#: core/app_settings.py:396
+#: core/app_settings.py:386
msgid "This field is required"
msgstr "このフィールドは必須です"
-#: core/apps.py:20
+#: core/apps.py:22
msgid "General"
msgstr "全般"
-#: core/checks/settings_checks.py:11
+#: core/checks/settings_checks.py:10
msgid ""
"You have USE_TZ set to False, this may result in issues during transitions "
"between summer/winter time (ie the same local time occuring twice due to "
"clock change)."
msgstr ""
-#: core/checks/settings_checks.py:14
+#: core/checks/settings_checks.py:13
msgid "Set `USE_TZ = True` in settings.py"
msgstr ""
@@ -410,167 +408,167 @@ msgstr "リセーラー"
msgid "Super administrator"
msgstr "全体管理者"
-#: core/constants.py:51 lib/form_utils.py:394
+#: core/constants.py:53 lib/form_utils.py:393
msgid "No"
msgstr "いいえ"
-#: core/forms.py:24
+#: core/forms.py:22
msgid "Username"
msgstr "ユーザ名"
-#: core/forms.py:28
+#: core/forms.py:26
msgid "Password"
msgstr "パスワード"
-#: core/forms.py:41
+#: core/forms.py:39
msgid "Old password"
msgstr "現在のパスワード"
-#: core/forms.py:45
+#: core/forms.py:43
msgid "New password"
msgstr "新しいパスワード"
-#: core/forms.py:49
+#: core/forms.py:47
msgid "Confirmation"
msgstr "確認"
-#: core/forms.py:77
+#: core/forms.py:75
msgid "Old password mismatchs"
msgstr "現在のパスワードが一致しません"
-#: core/forms.py:86
+#: core/forms.py:84
msgid "Passwords mismatch"
msgstr "パスワード不一致"
-#: core/forms.py:106
+#: core/forms.py:104
msgid "Enable API access"
msgstr "API アクセスを有効にします"
-#: core/handlers.py:43
+#: core/handlers.py:40
msgid "added"
msgstr "追加しました"
-#: core/handlers.py:46
+#: core/handlers.py:43
msgid "modified"
msgstr "修正しました"
-#: core/handlers.py:48
+#: core/handlers.py:45
#, python-format
msgid "%(object)s '%(name)s' %(action)s by user %(user)s"
msgstr "%(object)s '%(name)s' %(action)s by ユーザー %(user)s"
-#: core/handlers.py:70
+#: core/handlers.py:67
#, fuzzy, python-format
#| msgid "%(object)s '%(name)s' %(action)s by user %(user)s"
msgid "%(object)s '%(name)s' %(action)s by "
msgstr "%(object)s '%(name)s' %(action)s by ユーザー %(user)s"
-#: core/handlers.py:72
+#: core/handlers.py:69
msgid "deleted"
msgstr "削除しました"
-#: core/handlers.py:76
+#: core/handlers.py:73
msgid "user {}"
msgstr ""
-#: core/handlers.py:78
+#: core/handlers.py:75
msgid "management command"
msgstr ""
-#: core/handlers.py:102
+#: core/handlers.py:99
msgid "You can't delete your own account"
msgstr "あなた自身のアカウントは削除できません"
-#: core/handlers.py:138
+#: core/handlers.py:135
msgid "One or more updates are available"
msgstr "1つ以上のアップデートが利用できます"
-#: core/models.py:58
+#: core/models.py:57
msgid "Allow mailboxes access"
msgstr "メールボックスのアクセスを許可する"
-#: core/models.py:60
+#: core/models.py:59
msgid "Allow this administrator to access user mailboxes"
msgstr "ユーザーのメールボックスアクセスをこの管理者に許可する"
-#: core/models.py:63
+#: core/models.py:62
msgid "password"
msgstr "パスワード"
-#: core/models.py:66
+#: core/models.py:65
msgid "language"
msgstr ""
-#: core/models.py:69
+#: core/models.py:68
msgid "Prefered language to display pages."
msgstr "ページの表示に優先言語を使う"
-#: core/models.py:73
+#: core/models.py:72
msgid "Phone number"
msgstr "電話番号"
-#: core/models.py:75
+#: core/models.py:74
msgid "Secondary email"
msgstr "2つめの電子メール"
-#: core/models.py:78
+#: core/models.py:77
msgid "An alternative e-mail address, can be used for recovery needs."
msgstr "別の電子メールアドレスは、回復の必要のために使用することができます。"
-#: core/models.py:128
+#: core/models.py:127
msgid "Failed to update password: LDAP module not installed"
msgstr ""
"パスワードの更新に失敗しました : LDAP モジュールがインストールされていませ"
"ん。"
-#: core/models.py:157
+#: core/models.py:156
msgid "account"
msgstr "アカウント"
-#: core/models.py:279
+#: core/models.py:278
msgid "Unknown"
msgstr ""
-#: core/models.py:313
+#: core/models.py:312
msgid "Invalid line"
msgstr "不正な行"
-#: core/models.py:321
+#: core/models.py:320
msgid "You can't import an account with a role greater than yours"
msgstr "あなた以上のロールを持ったアカウントはインポートできません"
-#: core/models.py:336
+#: core/models.py:335
#, python-format
msgid "The simple user '%s' must have a valid email address"
msgstr ""
"ユーザー \"%s\" は、正しい電子メールアドレスを持っていなければいけません"
-#: core/models.py:341
+#: core/models.py:340
#, python-format
msgid "username and email fields must not differ for '%s'"
msgstr "\"%s\" のユーザー名と電子メールフィールドが同一である必要があります。"
-#: core/password_validation.py:26
+#: core/password_validation.py:28
msgid "Password must contain at least {} digit."
msgid_plural "Password must contain at least {} digits."
msgstr[0] ""
-#: core/password_validation.py:36
+#: core/password_validation.py:38
msgid "Password must contain at least {} lowercase letter."
msgid_plural "Password must contain at least {} lowercase letters."
msgstr[0] ""
-#: core/password_validation.py:47
+#: core/password_validation.py:49
msgid "Password must contain at least {} uppercase letter."
msgid_plural "Password must contain at least {} uppercase letters."
msgstr[0] ""
-#: core/password_validation.py:59
+#: core/password_validation.py:61
msgid "Password must contain at least {} special character."
msgid_plural "Password must contain at least {} special characters."
msgstr[0] ""
-#: core/password_validation.py:67
+#: core/password_validation.py:69
msgid "Your password must contain a combination of different character types."
msgstr ""
@@ -620,7 +618,7 @@ msgid "API access token"
msgstr "API アクセストークン"
#: core/templates/core/api_access.html:35
-#: core/templates/core/user_profile.html:10 lib/form_utils.py:359
+#: core/templates/core/user_profile.html:10 lib/form_utils.py:358
msgid "Update"
msgstr "更新"
@@ -629,7 +627,7 @@ msgstr "更新"
msgid "Hello %(user)s."
msgstr ""
-#: core/templates/core/information.html:2 core/templatetags/core_tags.py:64
+#: core/templates/core/information.html:2 core/templatetags/core_tags.py:66
msgid "Information"
msgstr "情報"
@@ -680,7 +678,7 @@ msgstr ""
msgid "Last login"
msgstr "最終ログイン"
-#: core/templates/core/logs.html:2 core/templatetags/core_tags.py:68
+#: core/templates/core/logs.html:2 core/templatetags/core_tags.py:70
msgid "Logs"
msgstr "ログ"
@@ -688,7 +686,7 @@ msgstr "ログ"
msgid "Previously on Modoboa..."
msgstr "Modoboa 以前 ..."
-#: core/templates/core/logs.html:6 lib/templatetags/lib_tags.py:109
+#: core/templates/core/logs.html:6 lib/templatetags/lib_tags.py:110
msgid "Date"
msgstr "日付"
@@ -704,7 +702,7 @@ msgstr "ロガー"
msgid "Message"
msgstr "メッセージ"
-#: core/templates/core/parameters.html:2 core/templatetags/core_tags.py:73
+#: core/templates/core/parameters.html:2 core/templatetags/core_tags.py:75
msgid "Parameters"
msgstr "パラメータ"
@@ -721,12 +719,12 @@ msgstr "保存"
msgid "Modoboa settings"
msgstr "Modoboa 設定"
-#: core/templates/core/user_index.html:4 core/templatetags/core_tags.py:92
+#: core/templates/core/user_index.html:4 core/templatetags/core_tags.py:94
msgid "Settings"
msgstr "設定"
#: core/templates/core/user_preferences.html:2
-#: core/templatetags/core_tags.py:122
+#: core/templatetags/core_tags.py:124
msgid "Preferences"
msgstr "プリファレンス"
@@ -738,7 +736,7 @@ msgstr "Modoboa のカスタマイズ"
msgid "No preferences available."
msgstr "プリファレンスがありません"
-#: core/templates/core/user_profile.html:3 core/templatetags/core_tags.py:118
+#: core/templates/core/user_profile.html:3 core/templatetags/core_tags.py:120
msgid "Profile"
msgstr "プロフィール"
@@ -746,36 +744,41 @@ msgstr "プロフィール"
msgid "Update your personal information"
msgstr "個人情報を更新します"
-#: core/templatetags/core_tags.py:36
+#: core/templatetags/core_tags.py:38
msgid "Modoboa"
msgstr "Modoboa"
-#: core/templatetags/core_tags.py:104
+#: core/templatetags/core_tags.py:106
msgid "Logout"
msgstr "ログアウト"
-#: core/templatetags/core_tags.py:129
+#: core/templatetags/core_tags.py:131
msgid "API"
msgstr "API"
-#: core/utils.py:35
+#: core/utils.py:36
msgid "The core part of Modoboa"
msgstr "Modoboaのコア部分"
-#: core/views/admin.py:48
+#: core/views/admin.py:47
msgid "Parameters saved"
msgstr "パラメータが保存されました"
-#: core/views/auth.py:45
+#: core/views/auth.py:50
+#, python-format
+msgid "Password scheme mismatch. Updating %s password"
+msgstr ""
+
+#: core/views/auth.py:64
#, python-format
msgid "User '%s' successfully logged in"
msgstr "ユーザー \"%s\" がログインに成功しました"
-#: core/views/auth.py:53
+#: core/views/auth.py:72
msgid "Your username and password didn't match. Please try again."
msgstr "ユーザー名とパスワードが一致しません。やり直してください。"
-#: core/views/auth.py:88
+#: core/views/auth.py:107
#, fuzzy
#| msgid "User '%s' successfully logged in"
msgid "User '{}' successfully logged out"
@@ -798,49 +801,53 @@ msgstr "アクセスが更新されました"
msgid "Connection to database %s not configured"
msgstr "データベース %s への接続が構成されていません"
-#: lib/exceptions.py:70
+#: lib/email_utils.py:350
+msgid "unable to determine encoding of string"
+msgstr ""
+
+#: lib/exceptions.py:71
#, python-format
msgid "Permission denied: %s"
msgstr "アクセス拒否: %s"
-#: lib/exceptions.py:71
+#: lib/exceptions.py:72
msgid "Permission denied"
msgstr "アクセス拒否"
-#: lib/fields.py:17 lib/validators.py:16
+#: lib/fields.py:19 lib/validators.py:18
msgid "Enter a valid domain name"
msgstr "正しいドメイン名を入力してください"
-#: lib/fields.py:46 lib/fields.py:60
+#: lib/fields.py:48 lib/fields.py:62
msgid "Enter a valid email address."
msgstr "正しいメールアドレスを入力してください"
-#: lib/form_utils.py:82 templates/registration/password_reset_confirm.html:12
+#: lib/form_utils.py:81 templates/registration/password_reset_confirm.html:12
#: templates/registration/password_reset_form.html:11
msgid "Submit"
msgstr "送信"
-#: lib/form_utils.py:115 lib/form_utils.py:118
+#: lib/form_utils.py:114 lib/form_utils.py:117
msgid "Invalid request"
msgstr "不正なリクエスト"
-#: lib/form_utils.py:393
+#: lib/form_utils.py:392
msgid "Yes"
msgstr "はい"
-#: lib/ldap_utils.py:133
+#: lib/ldap_utils.py:134
msgid "Failed to update password: {}"
msgstr "パスワードの更新に失敗しました: {}"
-#: lib/templatetags/lib_tags.py:107
+#: lib/templatetags/lib_tags.py:108
msgid "From"
msgstr ""
-#: lib/templatetags/lib_tags.py:108
+#: lib/templatetags/lib_tags.py:109
msgid "To"
msgstr ""
-#: lib/templatetags/lib_tags.py:110 templates/common/email_searchbar.html:17
+#: lib/templatetags/lib_tags.py:111 templates/common/email_searchbar.html:17
msgid "Subject"
msgstr "件名"
@@ -957,6 +964,15 @@ msgstr ""
msgid "Modoboa password reset"
msgstr ""
+#~ msgid "Secret key"
+#~ msgstr "シークレットキー"
+
+#~ msgid "Key used to encrypt/decrypt passwords"
+#~ msgstr "キーは、パスワードを暗号化/復号化はするために使用されます。"
+
+#~ msgid "Key must be either 16, 24, or 32 bytes long"
+#~ msgstr "キーは、16, 24, 32 バイトのいずれかの長さでなければいけません"
+
#, fuzzy
#~| msgid "Group name"
#~ msgid "First name"
diff --git a/modoboa/locale/nl_NL/LC_MESSAGES/django.po b/modoboa/locale/nl_NL/LC_MESSAGES/django.po
index 6d4337c77..0a563b558 100644
--- a/modoboa/locale/nl_NL/LC_MESSAGES/django.po
+++ b/modoboa/locale/nl_NL/LC_MESSAGES/django.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-01-25 09:09+0100\n"
+"POT-Creation-Date: 2018-10-05 16:08+0200\n"
"PO-Revision-Date: 2014-12-31 11:37+0000\n"
"Last-Translator: TuxBrother \n"
"Language-Team: Dutch (Netherlands) (http://www.transifex.com/projects/p/"
@@ -20,61 +20,61 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: core/app_settings.py:26
+#: core/app_settings.py:22
#, fuzzy
#| msgid "Profile"
msgid "User profile"
msgstr "Profiel"
-#: core/app_settings.py:39
+#: core/app_settings.py:35
msgid "Authentication"
msgstr "Authenticatie"
-#: core/app_settings.py:42
+#: core/app_settings.py:38
msgid "Authentication type"
msgstr "Authenticatie type"
-#: core/app_settings.py:43
+#: core/app_settings.py:39
msgid "Local"
msgstr "Lokaal"
-#: core/app_settings.py:46
+#: core/app_settings.py:42
msgid "The backend used for authentication"
msgstr "De backend gebruikt voor authenticatie"
-#: core/app_settings.py:51
+#: core/app_settings.py:47
msgid "Default password scheme"
msgstr "Standaard wachtwoord encryptiemethode"
-#: core/app_settings.py:55
+#: core/app_settings.py:51
msgid "md5crypt (weak)"
msgstr "md5crypt (zwak)"
-#: core/app_settings.py:56
+#: core/app_settings.py:52
msgid "sha256 (weak)"
msgstr "sha256 (zwak)"
-#: core/app_settings.py:57
+#: core/app_settings.py:53
msgid "md5 (weak)"
msgstr "md5 (zwak)"
-#: core/app_settings.py:58
+#: core/app_settings.py:54
msgid "crypt (weak)"
msgstr "crypt (zwak)"
-#: core/app_settings.py:59
+#: core/app_settings.py:55
msgid "plain (weak)"
msgstr "plain (onversleuteld!)"
-#: core/app_settings.py:61
+#: core/app_settings.py:57
msgid "Scheme used to crypt mailbox passwords"
msgstr "Schema dat gebruikt word om mailbox wachtwoorden te versleutelen"
-#: core/app_settings.py:66
+#: core/app_settings.py:62
msgid "Rounds"
msgstr "Rondes"
-#: core/app_settings.py:69
+#: core/app_settings.py:65
msgid ""
"Number of rounds to use (only used by sha256crypt and sha512crypt). Must be "
"between 1000 and 999999999, inclusive."
@@ -82,85 +82,87 @@ msgstr ""
"Nummer van te gebruiken randomizeringsrondes (alleen bij sha256crypt en "
"sha512crypt). Moet tussen de 1000 en 999999999 liggen."
-#: core/app_settings.py:76
-msgid "Secret key"
-msgstr "Geheime sleutel"
+#: core/app_settings.py:72
+#, fuzzy
+#| msgid "Default password scheme"
+msgid "Update password scheme"
+msgstr "Standaard wachtwoord encryptiemethode"
-#: core/app_settings.py:78
-msgid "Key used to encrypt/decrypt passwords"
-msgstr "Code die gebruikt word om wachtwoorden te versleutelen/ontsleutelen"
+#: core/app_settings.py:75
+msgid "Update user password at login to use the default password scheme"
+msgstr ""
-#: core/app_settings.py:83
+#: core/app_settings.py:80
#, fuzzy
#| msgid "Default password scheme"
msgid "Default password"
msgstr "Standaard wachtwoord encryptiemethode"
-#: core/app_settings.py:86
+#: core/app_settings.py:83
msgid "Default password for automatically created accounts."
msgstr ""
-#: core/app_settings.py:90
+#: core/app_settings.py:87
#, fuzzy
#| msgid "Bind password"
msgid "Random password length"
msgstr "Koppel wachtwoord"
-#: core/app_settings.py:94
+#: core/app_settings.py:91
msgid "Length of randomly generated passwords."
msgstr ""
-#: core/app_settings.py:98
+#: core/app_settings.py:95
msgid "LDAP settings"
msgstr "LDAP instellingen"
-#: core/app_settings.py:101
+#: core/app_settings.py:98
msgid "Server address"
msgstr "Server adres"
-#: core/app_settings.py:104
+#: core/app_settings.py:101
msgid "The IP address or the DNS name of the LDAP server"
msgstr "Het IP adres of de DNS naam van LDAP server"
-#: core/app_settings.py:109
+#: core/app_settings.py:106
msgid "Server port"
msgstr "Server poort"
-#: core/app_settings.py:111
+#: core/app_settings.py:108
msgid "The TCP port number used by the LDAP server"
msgstr "Het TCP poortnummer gebruikt door de LDAP server"
-#: core/app_settings.py:116
+#: core/app_settings.py:113
msgid "Use a secured connection"
msgstr "Gebruik een beveiligde verbinding"
-#: core/app_settings.py:120
+#: core/app_settings.py:117
#, fuzzy
#| msgid "Use an SSL/TLS connection to access the LDAP server"
msgid "Use an SSL/STARTTLS connection to access the LDAP server"
msgstr "Gebruik een SSL/TLS verbinding met de LDAP server"
-#: core/app_settings.py:124
+#: core/app_settings.py:121
msgid "Authentication method"
msgstr "Authenticatie methode"
-#: core/app_settings.py:125
+#: core/app_settings.py:122
msgid "Search and bind"
msgstr "Zoeken en koppelen"
-#: core/app_settings.py:126
+#: core/app_settings.py:123
msgid "Direct bind"
msgstr "Directe koppeling"
-#: core/app_settings.py:128
+#: core/app_settings.py:125
msgid "Choose the authentication method to use"
msgstr "Kies een authenticatie methode om te gebruiken"
-#: core/app_settings.py:133
+#: core/app_settings.py:130
msgid "Bind DN"
msgstr "Koppeling DN"
-#: core/app_settings.py:136
+#: core/app_settings.py:133
msgid ""
"The distinguished name to use when binding to the LDAP server. Leave empty "
"for an anonymous bind"
@@ -168,29 +170,29 @@ msgstr ""
"De gedistingeerde naam om te gebruiken bij het koppeling met de LDAP server. "
"Laat leeg voor een anonieme koppeling."
-#: core/app_settings.py:144
+#: core/app_settings.py:141
msgid "Bind password"
msgstr "Koppel wachtwoord"
-#: core/app_settings.py:147
+#: core/app_settings.py:144
msgid "The password to use when binding to the LDAP server (with 'Bind DN')"
msgstr ""
"Het wachtwoord om te gebruiken tijdens het koppelen met de LDAP server (met "
"'koppel DN')"
-#: core/app_settings.py:156
+#: core/app_settings.py:153
msgid "Users search base"
msgstr "Gebruikers zoekbasis"
-#: core/app_settings.py:159
+#: core/app_settings.py:156
msgid "The distinguished name of the search base used to find users"
msgstr "De gedistingeerde naam van de zoekbasis om gebruikers te vinden"
-#: core/app_settings.py:166
+#: core/app_settings.py:163
msgid "Search filter"
msgstr "Zoek filter"
-#: core/app_settings.py:169
+#: core/app_settings.py:166
msgid ""
"An optional filter string (e.g. '(objectClass=person)'). In order to be "
"valid, it must be enclosed in parentheses."
@@ -198,11 +200,11 @@ msgstr ""
"Een optionele filter string (zoals '(objectClass=person)'). Om geldig te "
"kunnen zijn, moet het ingesloten zijn tussen haakjes."
-#: core/app_settings.py:177
+#: core/app_settings.py:174
msgid "User DN template"
msgstr "Gebruiker DN template"
-#: core/app_settings.py:180
+#: core/app_settings.py:177
#, python-format
msgid ""
"The template used to construct a user's DN. It should contain one "
@@ -211,27 +213,27 @@ msgstr ""
"Het template dat gebruikt word om een gebruiker zijn/haar DN op te bouwen. "
"Het moet een placeholder bevatten (bijvoorbeeld. %(user)s)"
-#: core/app_settings.py:188
+#: core/app_settings.py:185
msgid "Password attribute"
msgstr "Wachtwoord attribuut"
-#: core/app_settings.py:190
+#: core/app_settings.py:187
msgid "The attribute used to store user passwords"
msgstr "Dit attribuut word gebruikt om wachtwoorden op te slaan"
-#: core/app_settings.py:195
+#: core/app_settings.py:192
msgid "Active Directory"
msgstr "Active Directory"
-#: core/app_settings.py:198
+#: core/app_settings.py:195
msgid "Tell if the LDAP server is an Active Directory one"
msgstr "De LDAP server is een Active Directory"
-#: core/app_settings.py:202
+#: core/app_settings.py:199
msgid "Administrator groups"
msgstr "Administrator groepen"
-#: core/app_settings.py:205
+#: core/app_settings.py:202
msgid ""
"Members of those LDAP Posix groups will be created as domain administrators. "
"Use ';' characters to separate groups."
@@ -239,166 +241,162 @@ msgstr ""
"Leden van deze LDAP POSIX groepen zullen aangemaakt worden als domein "
"administrators. Gebruik ';' karakters om groepen te scheiden."
-#: core/app_settings.py:212
+#: core/app_settings.py:209
#, fuzzy
#| msgid "Group name"
msgid "Group type"
msgstr "Groep naam"
-#: core/app_settings.py:216
+#: core/app_settings.py:213
msgid "The LDAP group type to use with your directory."
msgstr ""
-#: core/app_settings.py:221
+#: core/app_settings.py:218
msgid "Groups search base"
msgstr "Groepen zoek basis"
-#: core/app_settings.py:224
+#: core/app_settings.py:221
msgid "The distinguished name of the search base used to find groups"
msgstr "De gedistingeerde naam van de zoekbasis om groepen te vinden"
-#: core/app_settings.py:229 core/templates/core/dashboard.html:5
+#: core/app_settings.py:226 core/templates/core/dashboard.html:5
msgid "Dashboard"
msgstr ""
-#: core/app_settings.py:232
+#: core/app_settings.py:229
msgid "Custom RSS feed"
msgstr ""
-#: core/app_settings.py:235
+#: core/app_settings.py:232
msgid "Display custom RSS feed to resellers and domain administrators"
msgstr ""
-#: core/app_settings.py:240
+#: core/app_settings.py:237
msgid "Hide features widget"
msgstr ""
-#: core/app_settings.py:243
+#: core/app_settings.py:240
msgid "Hide features widget for resellers and domain administrators"
msgstr ""
-#: core/app_settings.py:247
+#: core/app_settings.py:244
#, fuzzy
#| msgid "Authentication"
msgid "Notifications"
msgstr "Authenticatie"
-#: core/app_settings.py:250
+#: core/app_settings.py:247
#, fuzzy
#| msgid "Server address"
msgid "Sender address"
msgstr "Server adres"
-#: core/app_settings.py:253
+#: core/app_settings.py:250
msgid "Email address used to send notifications."
msgstr ""
-#: core/app_settings.py:257
+#: core/app_settings.py:254
msgid "Public API"
msgstr ""
-#: core/app_settings.py:260
+#: core/app_settings.py:257
msgid "Enable communication"
msgstr ""
-#: core/app_settings.py:263
+#: core/app_settings.py:260
msgid "Enable communication with Modoboa public API"
msgstr ""
-#: core/app_settings.py:267
+#: core/app_settings.py:264
msgid "Check new versions"
msgstr "Controleer of er een nieuwe versie beschikbaar is"
-#: core/app_settings.py:270
+#: core/app_settings.py:267
msgid "Automatically checks if a newer version is available"
msgstr "Automatische controle voor nieuwe versies"
-#: core/app_settings.py:274
+#: core/app_settings.py:271
msgid "Send statistics"
msgstr ""
-#: core/app_settings.py:277
+#: core/app_settings.py:274
msgid "Send statistics to Modoboa public API (counters and used extensions)"
msgstr ""
-#: core/app_settings.py:281
+#: core/app_settings.py:278
msgid "Miscellaneous"
msgstr "Diversen"
-#: core/app_settings.py:284
+#: core/app_settings.py:281
msgid "Inactive account threshold"
msgstr ""
-#: core/app_settings.py:287
+#: core/app_settings.py:284
msgid ""
"An account with a last login date greater than this threshold (in days) will "
"be considered as inactive"
msgstr ""
-#: core/app_settings.py:294
+#: core/app_settings.py:291
msgid "Top notifications check interval"
msgstr "Top notificaties controle interval"
-#: core/app_settings.py:297
+#: core/app_settings.py:294
#, fuzzy
#| msgid "Interval between two top notification checks"
msgid "Interval between two top notification checks (in seconds)"
msgstr "Interval tussen twee top notificatie checks"
-#: core/app_settings.py:303
+#: core/app_settings.py:300
msgid "Maximum log record age"
msgstr "Maximum bewaartijd van logs"
-#: core/app_settings.py:305
+#: core/app_settings.py:302
msgid "The maximum age in days of a log record"
msgstr "De maximum bewaartijd in dagen van een log record"
-#: core/app_settings.py:310
+#: core/app_settings.py:307
msgid "Items per page"
msgstr "Items per pagina"
-#: core/app_settings.py:312
+#: core/app_settings.py:309
msgid "Number of displayed items per page"
msgstr "Hoeveelheid items per pagina"
-#: core/app_settings.py:317
+#: core/app_settings.py:314
msgid "Default top redirection"
msgstr "Standaard top omleiding"
-#: core/app_settings.py:321
+#: core/app_settings.py:318
msgid "The default redirection used when no application is specified"
msgstr ""
"De standaard omleiding die gebruikt word als er geen andere applicatie is "
"opgegeven"
-#: core/app_settings.py:354
-msgid "Key must be either 16, 24, or 32 bytes long"
-msgstr "Sleutelwaarde moet 16, 24 of 32 bytes lang zijn"
-
-#: core/app_settings.py:363
+#: core/app_settings.py:353
msgid "Invalid syntax"
msgstr "Ongeldige zinsbouw"
-#: core/app_settings.py:369
+#: core/app_settings.py:359
msgid "Invalid rounds number"
msgstr "Ongeldig nummer van rondes"
-#: core/app_settings.py:396
+#: core/app_settings.py:386
msgid "This field is required"
msgstr "Dit veld is benodigd"
-#: core/apps.py:20
+#: core/apps.py:22
msgid "General"
msgstr "Algemeen"
-#: core/checks/settings_checks.py:11
+#: core/checks/settings_checks.py:10
msgid ""
"You have USE_TZ set to False, this may result in issues during transitions "
"between summer/winter time (ie the same local time occuring twice due to "
"clock change)."
msgstr ""
-#: core/checks/settings_checks.py:14
+#: core/checks/settings_checks.py:13
msgid "Set `USE_TZ = True` in settings.py"
msgstr ""
@@ -420,174 +418,174 @@ msgstr ""
msgid "Super administrator"
msgstr "Hoofdbeheerder"
-#: core/constants.py:51 lib/form_utils.py:394
+#: core/constants.py:53 lib/form_utils.py:393
msgid "No"
msgstr "Nee"
-#: core/forms.py:24
+#: core/forms.py:22
msgid "Username"
msgstr "Gebruikersnaam"
-#: core/forms.py:28
+#: core/forms.py:26
msgid "Password"
msgstr "Wachtwoord"
-#: core/forms.py:41
+#: core/forms.py:39
msgid "Old password"
msgstr "Oud wachtwoord"
-#: core/forms.py:45
+#: core/forms.py:43
msgid "New password"
msgstr "Nieuw wachtwoord"
-#: core/forms.py:49
+#: core/forms.py:47
msgid "Confirmation"
msgstr "Bevestiging"
-#: core/forms.py:77
+#: core/forms.py:75
msgid "Old password mismatchs"
msgstr "Oud wachtwoord komt niet overeen"
-#: core/forms.py:86
+#: core/forms.py:84
msgid "Passwords mismatch"
msgstr "Wachtwoorden komt niet overeen"
-#: core/forms.py:106
+#: core/forms.py:104
msgid "Enable API access"
msgstr ""
-#: core/handlers.py:43
+#: core/handlers.py:40
msgid "added"
msgstr "toegevoegd"
-#: core/handlers.py:46
+#: core/handlers.py:43
msgid "modified"
msgstr "veranderd"
-#: core/handlers.py:48
+#: core/handlers.py:45
#, python-format
msgid "%(object)s '%(name)s' %(action)s by user %(user)s"
msgstr "%(object)s '%(name)s' %(action)s door gebruiker %(user)s"
-#: core/handlers.py:70
+#: core/handlers.py:67
#, fuzzy, python-format
#| msgid "%(object)s '%(name)s' %(action)s by user %(user)s"
msgid "%(object)s '%(name)s' %(action)s by "
msgstr "%(object)s '%(name)s' %(action)s door gebruiker %(user)s"
-#: core/handlers.py:72
+#: core/handlers.py:69
msgid "deleted"
msgstr "verwijderd"
-#: core/handlers.py:76
+#: core/handlers.py:73
msgid "user {}"
msgstr ""
-#: core/handlers.py:78
+#: core/handlers.py:75
msgid "management command"
msgstr ""
-#: core/handlers.py:102
+#: core/handlers.py:99
msgid "You can't delete your own account"
msgstr "U kunt uw eigen account niet verwijderen"
-#: core/handlers.py:138
+#: core/handlers.py:135
#, fuzzy
#| msgid "An update is available!"
msgid "One or more updates are available"
msgstr "Er is een update beschikbaar!"
-#: core/models.py:58
+#: core/models.py:57
msgid "Allow mailboxes access"
msgstr ""
-#: core/models.py:60
+#: core/models.py:59
msgid "Allow this administrator to access user mailboxes"
msgstr ""
-#: core/models.py:63
+#: core/models.py:62
msgid "password"
msgstr "wachtwoord"
-#: core/models.py:66
+#: core/models.py:65
#, fuzzy
#| msgid "Prefered language"
msgid "language"
msgstr "Voorkeurs taal"
-#: core/models.py:69
+#: core/models.py:68
#, fuzzy
#| msgid "Prefered language to display pages"
msgid "Prefered language to display pages."
msgstr "Voorkeurstaal om pagina's weer te geven"
-#: core/models.py:73
+#: core/models.py:72
msgid "Phone number"
msgstr ""
-#: core/models.py:75
+#: core/models.py:74
msgid "Secondary email"
msgstr ""
-#: core/models.py:78
+#: core/models.py:77
msgid "An alternative e-mail address, can be used for recovery needs."
msgstr ""
-#: core/models.py:128
+#: core/models.py:127
msgid "Failed to update password: LDAP module not installed"
msgstr "Mislukt om wachtwoord aan te passen: LDAP module niet geinstalleerd"
-#: core/models.py:157
+#: core/models.py:156
msgid "account"
msgstr "account"
-#: core/models.py:279
+#: core/models.py:278
msgid "Unknown"
msgstr ""
-#: core/models.py:313
+#: core/models.py:312
msgid "Invalid line"
msgstr "Verkeerde regel"
-#: core/models.py:321
+#: core/models.py:320
msgid "You can't import an account with a role greater than yours"
msgstr "U kunt geen accounts importeren met hogere rechten dan die van uzelf."
-#: core/models.py:336
+#: core/models.py:335
#, python-format
msgid "The simple user '%s' must have a valid email address"
msgstr "De gebruiker '%s' moet een geldig email adres hebben"
-#: core/models.py:341
+#: core/models.py:340
#, python-format
msgid "username and email fields must not differ for '%s'"
msgstr "gebruikersnaam en email velden moeten niet verschillen van '%s'"
-#: core/password_validation.py:26
+#: core/password_validation.py:28
msgid "Password must contain at least {} digit."
msgid_plural "Password must contain at least {} digits."
msgstr[0] ""
msgstr[1] ""
-#: core/password_validation.py:36
+#: core/password_validation.py:38
msgid "Password must contain at least {} lowercase letter."
msgid_plural "Password must contain at least {} lowercase letters."
msgstr[0] ""
msgstr[1] ""
-#: core/password_validation.py:47
+#: core/password_validation.py:49
msgid "Password must contain at least {} uppercase letter."
msgid_plural "Password must contain at least {} uppercase letters."
msgstr[0] ""
msgstr[1] ""
-#: core/password_validation.py:59
+#: core/password_validation.py:61
msgid "Password must contain at least {} special character."
msgid_plural "Password must contain at least {} special characters."
msgstr[0] ""
msgstr[1] ""
-#: core/password_validation.py:67
+#: core/password_validation.py:69
msgid "Your password must contain a combination of different character types."
msgstr ""
@@ -637,7 +635,7 @@ msgid "API access token"
msgstr ""
#: core/templates/core/api_access.html:35
-#: core/templates/core/user_profile.html:10 lib/form_utils.py:359
+#: core/templates/core/user_profile.html:10 lib/form_utils.py:358
msgid "Update"
msgstr "Toepassen"
@@ -646,7 +644,7 @@ msgstr "Toepassen"
msgid "Hello %(user)s."
msgstr ""
-#: core/templates/core/information.html:2 core/templatetags/core_tags.py:64
+#: core/templates/core/information.html:2 core/templatetags/core_tags.py:66
msgid "Information"
msgstr "Informatie"
@@ -701,7 +699,7 @@ msgstr ""
msgid "Last login"
msgstr "Laatste login"
-#: core/templates/core/logs.html:2 core/templatetags/core_tags.py:68
+#: core/templates/core/logs.html:2 core/templatetags/core_tags.py:70
msgid "Logs"
msgstr "Logs"
@@ -709,7 +707,7 @@ msgstr "Logs"
msgid "Previously on Modoboa..."
msgstr "Vorige gebeurtenissen op Modoboa..."
-#: core/templates/core/logs.html:6 lib/templatetags/lib_tags.py:109
+#: core/templates/core/logs.html:6 lib/templatetags/lib_tags.py:110
msgid "Date"
msgstr "Datum"
@@ -725,7 +723,7 @@ msgstr "Logger"
msgid "Message"
msgstr "Bericht"
-#: core/templates/core/parameters.html:2 core/templatetags/core_tags.py:73
+#: core/templates/core/parameters.html:2 core/templatetags/core_tags.py:75
msgid "Parameters"
msgstr "Parameters"
@@ -742,12 +740,12 @@ msgstr "Opslaan"
msgid "Modoboa settings"
msgstr "Instellingen van Modoboa"
-#: core/templates/core/user_index.html:4 core/templatetags/core_tags.py:92
+#: core/templates/core/user_index.html:4 core/templatetags/core_tags.py:94
msgid "Settings"
msgstr "Instellingen"
#: core/templates/core/user_preferences.html:2
-#: core/templatetags/core_tags.py:122
+#: core/templatetags/core_tags.py:124
msgid "Preferences"
msgstr "Voorkeuren"
@@ -761,7 +759,7 @@ msgstr "Modoboa aanpassen"
msgid "No preferences available."
msgstr "Voorkeuren opgeslagen"
-#: core/templates/core/user_profile.html:3 core/templatetags/core_tags.py:118
+#: core/templates/core/user_profile.html:3 core/templatetags/core_tags.py:120
msgid "Profile"
msgstr "Profiel"
@@ -769,40 +767,45 @@ msgstr "Profiel"
msgid "Update your personal information"
msgstr "Persoonlijke informatie aanpassen"
-#: core/templatetags/core_tags.py:36
+#: core/templatetags/core_tags.py:38
msgid "Modoboa"
msgstr "Modoboa"
-#: core/templatetags/core_tags.py:104
+#: core/templatetags/core_tags.py:106
msgid "Logout"
msgstr "Uitloggen"
-#: core/templatetags/core_tags.py:129
+#: core/templatetags/core_tags.py:131
msgid "API"
msgstr ""
-#: core/utils.py:35
+#: core/utils.py:36
#, fuzzy
#| msgid "Welcome to Modoboa"
msgid "The core part of Modoboa"
msgstr "Welkom bij Modoboa"
-#: core/views/admin.py:48
+#: core/views/admin.py:47
msgid "Parameters saved"
msgstr "Parameters opgeslagen"
-#: core/views/auth.py:45
+#: core/views/auth.py:50
+#, python-format
+msgid "Password scheme mismatch. Updating %s password"
+msgstr ""
+
+#: core/views/auth.py:64
#, python-format
msgid "User '%s' successfully logged in"
msgstr "Gebruiker '%s' successvol aangemeld"
-#: core/views/auth.py:53
+#: core/views/auth.py:72
msgid "Your username and password didn't match. Please try again."
msgstr ""
"Uw gebruikersnaam en wachtwoord komen niet overeen. Probeer het "
"alstublieftopnieuw."
-#: core/views/auth.py:88
+#: core/views/auth.py:107
#, fuzzy
#| msgid "User '%s' successfully logged in"
msgid "User '{}' successfully logged out"
@@ -827,53 +830,57 @@ msgstr "Profiel aangepast"
msgid "Connection to database %s not configured"
msgstr "Verbinding naar database %s niet ingesteld"
-#: lib/exceptions.py:70
+#: lib/email_utils.py:350
+msgid "unable to determine encoding of string"
+msgstr ""
+
+#: lib/exceptions.py:71
#, python-format
msgid "Permission denied: %s"
msgstr "Toegang geweigerd: %s"
-#: lib/exceptions.py:71
+#: lib/exceptions.py:72
msgid "Permission denied"
msgstr "Toegang geweigerd"
-#: lib/fields.py:17 lib/validators.py:16
+#: lib/fields.py:19 lib/validators.py:18
msgid "Enter a valid domain name"
msgstr "Vul een geldige domeinnaam in"
-#: lib/fields.py:46 lib/fields.py:60
+#: lib/fields.py:48 lib/fields.py:62
#, fuzzy
#| msgid "Enter a valid domain name"
msgid "Enter a valid email address."
msgstr "Vul een geldig email adres in"
-#: lib/form_utils.py:82 templates/registration/password_reset_confirm.html:12
+#: lib/form_utils.py:81 templates/registration/password_reset_confirm.html:12
#: templates/registration/password_reset_form.html:11
msgid "Submit"
msgstr "Versturen"
-#: lib/form_utils.py:115 lib/form_utils.py:118
+#: lib/form_utils.py:114 lib/form_utils.py:117
msgid "Invalid request"
msgstr "Ongeldig verzoek"
-#: lib/form_utils.py:393
+#: lib/form_utils.py:392
msgid "Yes"
msgstr "Ja"
-#: lib/ldap_utils.py:133
+#: lib/ldap_utils.py:134
#, fuzzy
#| msgid "Failed to update password: %s"
msgid "Failed to update password: {}"
msgstr "Mislukt om wachtwoord aan te passen: %s"
-#: lib/templatetags/lib_tags.py:107
+#: lib/templatetags/lib_tags.py:108
msgid "From"
msgstr "Van"
-#: lib/templatetags/lib_tags.py:108
+#: lib/templatetags/lib_tags.py:109
msgid "To"
msgstr "aan"
-#: lib/templatetags/lib_tags.py:110 templates/common/email_searchbar.html:17
+#: lib/templatetags/lib_tags.py:111 templates/common/email_searchbar.html:17
msgid "Subject"
msgstr "Onderwerp"
@@ -990,6 +997,15 @@ msgstr "Met vriendelijke groet, het Modoboa Team"
msgid "Modoboa password reset"
msgstr "Modoboa wachtwoord reset"
+#~ msgid "Secret key"
+#~ msgstr "Geheime sleutel"
+
+#~ msgid "Key used to encrypt/decrypt passwords"
+#~ msgstr "Code die gebruikt word om wachtwoorden te versleutelen/ontsleutelen"
+
+#~ msgid "Key must be either 16, 24, or 32 bytes long"
+#~ msgstr "Sleutelwaarde moet 16, 24 of 32 bytes lang zijn"
+
#, fuzzy
#~| msgid "Group name"
#~ msgid "First name"
diff --git a/modoboa/locale/pl_PL/LC_MESSAGES/django.po b/modoboa/locale/pl_PL/LC_MESSAGES/django.po
index 6f7e3e5a0..bb4969809 100644
--- a/modoboa/locale/pl_PL/LC_MESSAGES/django.po
+++ b/modoboa/locale/pl_PL/LC_MESSAGES/django.po
@@ -12,7 +12,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-01-25 09:09+0100\n"
+"POT-Creation-Date: 2018-10-05 16:08+0200\n"
"PO-Revision-Date: 2017-12-02 18:56+0000\n"
"Last-Translator: Tomasz Proć \n"
"Language-Team: Polish (Poland) (http://www.transifex.com/tonio/modoboa/"
@@ -25,59 +25,59 @@ msgstr ""
"%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"
-#: core/app_settings.py:26
+#: core/app_settings.py:22
msgid "User profile"
msgstr "Profil użytkownika"
-#: core/app_settings.py:39
+#: core/app_settings.py:35
msgid "Authentication"
msgstr "Autentykacja"
-#: core/app_settings.py:42
+#: core/app_settings.py:38
msgid "Authentication type"
msgstr "Typ autentykacji"
-#: core/app_settings.py:43
+#: core/app_settings.py:39
msgid "Local"
msgstr "Wewnętrzne"
-#: core/app_settings.py:46
+#: core/app_settings.py:42
msgid "The backend used for authentication"
msgstr "Backend używany do autentykacji"
-#: core/app_settings.py:51
+#: core/app_settings.py:47
msgid "Default password scheme"
msgstr "Domyślny schemat hasła"
-#: core/app_settings.py:55
+#: core/app_settings.py:51
msgid "md5crypt (weak)"
msgstr "md5crypt (weak)"
-#: core/app_settings.py:56
+#: core/app_settings.py:52
msgid "sha256 (weak)"
msgstr "sha256 (słabe)"
-#: core/app_settings.py:57
+#: core/app_settings.py:53
msgid "md5 (weak)"
msgstr "md5 (słabe)"
-#: core/app_settings.py:58
+#: core/app_settings.py:54
msgid "crypt (weak)"
msgstr "crypt (słabe)"
-#: core/app_settings.py:59
+#: core/app_settings.py:55
msgid "plain (weak)"
msgstr "plain (słabe)"
-#: core/app_settings.py:61
+#: core/app_settings.py:57
msgid "Scheme used to crypt mailbox passwords"
msgstr "Schemat używany do szyfrowania haseł do skrzynek"
-#: core/app_settings.py:66
+#: core/app_settings.py:62
msgid "Rounds"
msgstr "Rund"
-#: core/app_settings.py:69
+#: core/app_settings.py:65
msgid ""
"Number of rounds to use (only used by sha256crypt and sha512crypt). Must be "
"between 1000 and 999999999, inclusive."
@@ -85,79 +85,81 @@ msgstr ""
"Liczba rund (tylko dla sha256crypt i sha512crypt). Musi się zawierać "
"pomiędzy 1000 a 999999999 włącznie."
-#: core/app_settings.py:76
-msgid "Secret key"
-msgstr "Secret key"
+#: core/app_settings.py:72
+#, fuzzy
+#| msgid "Default password scheme"
+msgid "Update password scheme"
+msgstr "Domyślny schemat hasła"
-#: core/app_settings.py:78
-msgid "Key used to encrypt/decrypt passwords"
-msgstr "Klucz do szyfrowania/deszyfrowania haseł"
+#: core/app_settings.py:75
+msgid "Update user password at login to use the default password scheme"
+msgstr ""
-#: core/app_settings.py:83
+#: core/app_settings.py:80
msgid "Default password"
msgstr "Domyślne hasło"
-#: core/app_settings.py:86
+#: core/app_settings.py:83
msgid "Default password for automatically created accounts."
msgstr "Domyślne hasło dla automatycznie dodawanych kont."
-#: core/app_settings.py:90
+#: core/app_settings.py:87
msgid "Random password length"
msgstr "Długość losowego hasła"
-#: core/app_settings.py:94
+#: core/app_settings.py:91
msgid "Length of randomly generated passwords."
msgstr "Długość losowo wygenerowanego hasła"
-#: core/app_settings.py:98
+#: core/app_settings.py:95
msgid "LDAP settings"
msgstr "Ustawienia LDAP"
-#: core/app_settings.py:101
+#: core/app_settings.py:98
msgid "Server address"
msgstr "Adres serwera"
-#: core/app_settings.py:104
+#: core/app_settings.py:101
msgid "The IP address or the DNS name of the LDAP server"
msgstr "IP lub nazwa DNS serwera LDAP"
-#: core/app_settings.py:109
+#: core/app_settings.py:106
msgid "Server port"
msgstr "Port"
-#: core/app_settings.py:111
+#: core/app_settings.py:108
msgid "The TCP port number used by the LDAP server"
msgstr "Port TCP używany przez LDAP"
-#: core/app_settings.py:116
+#: core/app_settings.py:113
msgid "Use a secured connection"
msgstr "Użyj połączenia bezpiecznego"
-#: core/app_settings.py:120
+#: core/app_settings.py:117
msgid "Use an SSL/STARTTLS connection to access the LDAP server"
msgstr "Użyj SSL/STARTTLS dla połączenia z serwerem LDAP"
-#: core/app_settings.py:124
+#: core/app_settings.py:121
msgid "Authentication method"
msgstr "Metoda autentykacji"
-#: core/app_settings.py:125
+#: core/app_settings.py:122
msgid "Search and bind"
msgstr "Wyszukaj i powiąż"
-#: core/app_settings.py:126
+#: core/app_settings.py:123
msgid "Direct bind"
msgstr "Bezpośrednie powiązanie"
-#: core/app_settings.py:128
+#: core/app_settings.py:125
msgid "Choose the authentication method to use"
msgstr "Wybierz metode autentykacji"
-#: core/app_settings.py:133
+#: core/app_settings.py:130
msgid "Bind DN"
msgstr "Przypnij do DN"
-#: core/app_settings.py:136
+#: core/app_settings.py:133
msgid ""
"The distinguished name to use when binding to the LDAP server. Leave empty "
"for an anonymous bind"
@@ -165,37 +167,37 @@ msgstr ""
"DN do użycia przy połączeniu do LDAP'a. Zostaw puste dla anonimowego "
"podłączenia"
-#: core/app_settings.py:144
+#: core/app_settings.py:141
msgid "Bind password"
msgstr "Hasło"
-#: core/app_settings.py:147
+#: core/app_settings.py:144
msgid "The password to use when binding to the LDAP server (with 'Bind DN')"
msgstr "Hasło używane do połdłączenia do LDAP'a (z wskazanym DN)"
-#: core/app_settings.py:156
+#: core/app_settings.py:153
msgid "Users search base"
msgstr "Wyszukiwania użytkowników"
-#: core/app_settings.py:159
+#: core/app_settings.py:156
msgid "The distinguished name of the search base used to find users"
msgstr "Nazwa wyróżniająca bazy wyszukiwania użyte do znalezienia grupy"
-#: core/app_settings.py:166
+#: core/app_settings.py:163
msgid "Search filter"
msgstr "Filtr wyszukiwania"
-#: core/app_settings.py:169
+#: core/app_settings.py:166
msgid ""
"An optional filter string (e.g. '(objectClass=person)'). In order to be "
"valid, it must be enclosed in parentheses."
msgstr "Użyj szablonu DN"
-#: core/app_settings.py:177
+#: core/app_settings.py:174
msgid "User DN template"
msgstr "Użyj szablonu DN"
-#: core/app_settings.py:180
+#: core/app_settings.py:177
#, python-format
msgid ""
"The template used to construct a user's DN. It should contain one "
@@ -204,27 +206,27 @@ msgstr ""
"Szablon użyty do skonstruowania DN użytkownika. Powinna ona zawierać jeden "
"symbol zastępczy (np. %(user)s)"
-#: core/app_settings.py:188
+#: core/app_settings.py:185
msgid "Password attribute"
msgstr "Atrybut hasła"
-#: core/app_settings.py:190
+#: core/app_settings.py:187
msgid "The attribute used to store user passwords"
msgstr "Atrybut używany do przechowywania haseł użytkowników"
-#: core/app_settings.py:195
+#: core/app_settings.py:192
msgid "Active Directory"
msgstr "Active Directory"
-#: core/app_settings.py:198
+#: core/app_settings.py:195
msgid "Tell if the LDAP server is an Active Directory one"
msgstr "Czy LDAP jest Active Directory "
-#: core/app_settings.py:202
+#: core/app_settings.py:199
msgid "Administrator groups"
msgstr "Administrator grup"
-#: core/app_settings.py:205
+#: core/app_settings.py:202
msgid ""
"Members of those LDAP Posix groups will be created as domain administrators. "
"Use ';' characters to separate groups."
@@ -232,93 +234,93 @@ msgstr ""
"Członkowie tych grup LDAP Posix będą utworzeni jako administratorzy domeny. "
"Użyj znaku ';' jako separatora grup."
-#: core/app_settings.py:212
+#: core/app_settings.py:209
msgid "Group type"
msgstr "Typ grupy"
-#: core/app_settings.py:216
+#: core/app_settings.py:213
msgid "The LDAP group type to use with your directory."
msgstr "Typ grupy LDAP do wykorzystania z Twoim katalogiem."
-#: core/app_settings.py:221
+#: core/app_settings.py:218
msgid "Groups search base"
msgstr "Wyszukiwarka grup"
-#: core/app_settings.py:224
+#: core/app_settings.py:221
msgid "The distinguished name of the search base used to find groups"
msgstr "Nazwa wyróżniająca bazy wyszukiwania użyte do znalezienia grupy"
-#: core/app_settings.py:229 core/templates/core/dashboard.html:5
+#: core/app_settings.py:226 core/templates/core/dashboard.html:5
msgid "Dashboard"
msgstr "Panel główny"
-#: core/app_settings.py:232
+#: core/app_settings.py:229
msgid "Custom RSS feed"
msgstr "Spersonalizowany kanał RSS"
-#: core/app_settings.py:235
+#: core/app_settings.py:232
msgid "Display custom RSS feed to resellers and domain administrators"
msgstr ""
"Wyświetl spersonalizowany kanał RSS odsprzedawcy i administratorom domen"
-#: core/app_settings.py:240
+#: core/app_settings.py:237
msgid "Hide features widget"
msgstr "Ukryj kontrolki opcji"
-#: core/app_settings.py:243
+#: core/app_settings.py:240
msgid "Hide features widget for resellers and domain administrators"
msgstr "Ukryj kontrolki opcji dla administratorów domeny i resellerów"
-#: core/app_settings.py:247
+#: core/app_settings.py:244
msgid "Notifications"
msgstr "Powiadomienia"
-#: core/app_settings.py:250
+#: core/app_settings.py:247
msgid "Sender address"
msgstr "Adres nadawcy"
-#: core/app_settings.py:253
+#: core/app_settings.py:250
msgid "Email address used to send notifications."
msgstr "Adres e-mail używany do wysyłania powiadomień"
-#: core/app_settings.py:257
+#: core/app_settings.py:254
msgid "Public API"
msgstr "Publiczne API"
-#: core/app_settings.py:260
+#: core/app_settings.py:257
msgid "Enable communication"
msgstr "Włącz komunikację"
-#: core/app_settings.py:263
+#: core/app_settings.py:260
msgid "Enable communication with Modoboa public API"
msgstr "Włącz komunikację z publicznym API Modoboa"
-#: core/app_settings.py:267
+#: core/app_settings.py:264
msgid "Check new versions"
msgstr "Sprawdź nowe wersje"
-#: core/app_settings.py:270
+#: core/app_settings.py:267
msgid "Automatically checks if a newer version is available"
msgstr "Automatycznie sprawdzaj czy nowa wersja jest dostępna"
-#: core/app_settings.py:274
+#: core/app_settings.py:271
msgid "Send statistics"
msgstr "Wyślij statystyki"
-#: core/app_settings.py:277
+#: core/app_settings.py:274
msgid "Send statistics to Modoboa public API (counters and used extensions)"
msgstr ""
"Prześlij statystyki do publicznego API Modoboa (licznik i użyte rozszerzenia)"
-#: core/app_settings.py:281
+#: core/app_settings.py:278
msgid "Miscellaneous"
msgstr "Różne"
-#: core/app_settings.py:284
+#: core/app_settings.py:281
msgid "Inactive account threshold"
msgstr "Próg nieaktywności konta"
-#: core/app_settings.py:287
+#: core/app_settings.py:284
msgid ""
"An account with a last login date greater than this threshold (in days) will "
"be considered as inactive"
@@ -326,66 +328,62 @@ msgstr ""
"Konto z datą ostatniego logowania większą niż podany próg (w dniach) "
"zostanie uznane za nieaktywne. "
-#: core/app_settings.py:294
+#: core/app_settings.py:291
msgid "Top notifications check interval"
msgstr "Odstęp pomiędzy powiadomieniami "
-#: core/app_settings.py:297
+#: core/app_settings.py:294
msgid "Interval between two top notification checks (in seconds)"
msgstr "Odstęp pomiędzy dwoma powiadomieniami (w sek.)"
-#: core/app_settings.py:303
+#: core/app_settings.py:300
msgid "Maximum log record age"
msgstr "Max wiek wpisu w logu"
-#: core/app_settings.py:305
+#: core/app_settings.py:302
msgid "The maximum age in days of a log record"
msgstr "Max wiek w dniach dla wpisu w logu"
-#: core/app_settings.py:310
+#: core/app_settings.py:307
msgid "Items per page"
msgstr "Elementów na stronie"
-#: core/app_settings.py:312
+#: core/app_settings.py:309
msgid "Number of displayed items per page"
msgstr "Liczba wyświetlanych elementów na stronie"
-#: core/app_settings.py:317
+#: core/app_settings.py:314
msgid "Default top redirection"
msgstr "Domyślne górne przekierowanie"
-#: core/app_settings.py:321
+#: core/app_settings.py:318
msgid "The default redirection used when no application is specified"
msgstr "Domyślne górne przekierowanie kiedy nie wskazano aplikacji"
-#: core/app_settings.py:354
-msgid "Key must be either 16, 24, or 32 bytes long"
-msgstr "Długość klucza musi wynosić 16, 24 lub 32 bajtów"
-
-#: core/app_settings.py:363
+#: core/app_settings.py:353
msgid "Invalid syntax"
msgstr "Nieprawidłowa składnia"
-#: core/app_settings.py:369
+#: core/app_settings.py:359
msgid "Invalid rounds number"
msgstr "Nieprawidłowa liczba rund"
-#: core/app_settings.py:396
+#: core/app_settings.py:386
msgid "This field is required"
msgstr "To pole jest obowiązkowe"
-#: core/apps.py:20
+#: core/apps.py:22
msgid "General"
msgstr "Ogólne"
-#: core/checks/settings_checks.py:11
+#: core/checks/settings_checks.py:10
msgid ""
"You have USE_TZ set to False, this may result in issues during transitions "
"between summer/winter time (ie the same local time occuring twice due to "
"clock change)."
msgstr ""
-#: core/checks/settings_checks.py:14
+#: core/checks/settings_checks.py:13
msgid "Set `USE_TZ = True` in settings.py"
msgstr ""
@@ -405,143 +403,143 @@ msgstr "Reseller"
msgid "Super administrator"
msgstr "Super administrator"
-#: core/constants.py:51 lib/form_utils.py:394
+#: core/constants.py:53 lib/form_utils.py:393
msgid "No"
msgstr "Nie"
-#: core/forms.py:24
+#: core/forms.py:22
msgid "Username"
msgstr "Nazwa użytkownika"
-#: core/forms.py:28
+#: core/forms.py:26
msgid "Password"
msgstr "Hasło"
-#: core/forms.py:41
+#: core/forms.py:39
msgid "Old password"
msgstr "Stare hasło"
-#: core/forms.py:45
+#: core/forms.py:43
msgid "New password"
msgstr "Nowe hasło"
-#: core/forms.py:49
+#: core/forms.py:47
msgid "Confirmation"
msgstr "Potwierdzenie"
-#: core/forms.py:77
+#: core/forms.py:75
msgid "Old password mismatchs"
msgstr "Niezgodność ze starym gasłem"
-#: core/forms.py:86
+#: core/forms.py:84
msgid "Passwords mismatch"
msgstr "Niezgodność haseł"
-#: core/forms.py:106
+#: core/forms.py:104
msgid "Enable API access"
msgstr "Włądze dostęp API"
-#: core/handlers.py:43
+#: core/handlers.py:40
msgid "added"
msgstr "dodano"
-#: core/handlers.py:46
+#: core/handlers.py:43
msgid "modified"
msgstr "zmodyfikowano"
-#: core/handlers.py:48
+#: core/handlers.py:45
#, python-format
msgid "%(object)s '%(name)s' %(action)s by user %(user)s"
msgstr "%(object)s '%(name)s' %(action)s przez użytkownika %(user)s"
-#: core/handlers.py:70
+#: core/handlers.py:67
#, python-format
msgid "%(object)s '%(name)s' %(action)s by "
msgstr "%(object)s '%(name)s' %(action)s przez"
-#: core/handlers.py:72
+#: core/handlers.py:69
msgid "deleted"
msgstr "usunięto"
-#: core/handlers.py:76
+#: core/handlers.py:73
msgid "user {}"
msgstr "użytkownik {}"
-#: core/handlers.py:78
+#: core/handlers.py:75
msgid "management command"
msgstr "polecenie zarządzania"
-#: core/handlers.py:102
+#: core/handlers.py:99
msgid "You can't delete your own account"
msgstr "Nie możesz usunąć własnego konta"
-#: core/handlers.py:138
+#: core/handlers.py:135
msgid "One or more updates are available"
msgstr "Jedna lub więcej aktualizacji jest dostępnych"
-#: core/models.py:58
+#: core/models.py:57
msgid "Allow mailboxes access"
msgstr "Zezwól na dostęp do skrzynek"
-#: core/models.py:60
+#: core/models.py:59
msgid "Allow this administrator to access user mailboxes"
msgstr "Zezwól temu administratorowi na dostęp do skrzynek użytkowników"
-#: core/models.py:63
+#: core/models.py:62
msgid "password"
msgstr "hasło"
-#: core/models.py:66
+#: core/models.py:65
msgid "language"
msgstr "Język"
-#: core/models.py:69
+#: core/models.py:68
msgid "Prefered language to display pages."
msgstr "Preferowany język"
-#: core/models.py:73
+#: core/models.py:72
msgid "Phone number"
msgstr "Numer telefonu"
-#: core/models.py:75
+#: core/models.py:74
msgid "Secondary email"
msgstr "Zapasowy email"
-#: core/models.py:78
+#: core/models.py:77
msgid "An alternative e-mail address, can be used for recovery needs."
msgstr "Alternatywny email, może zostać użyty do odzyskania hasła"
-#: core/models.py:128
+#: core/models.py:127
msgid "Failed to update password: LDAP module not installed"
msgstr "Nieudana zmiana hasła: moduł LDAP nie został zainstalowany"
-#: core/models.py:157
+#: core/models.py:156
msgid "account"
msgstr "konto"
-#: core/models.py:279
+#: core/models.py:278
msgid "Unknown"
msgstr "Nieznany"
-#: core/models.py:313
+#: core/models.py:312
msgid "Invalid line"
msgstr "Niepoprawna linia"
-#: core/models.py:321
+#: core/models.py:320
msgid "You can't import an account with a role greater than yours"
msgstr "Nie możesz zaimportować konta z rolą wyższą od własnej"
-#: core/models.py:336
+#: core/models.py:335
#, python-format
msgid "The simple user '%s' must have a valid email address"
msgstr "Prosty uzytkownik '%s' musi posiadać prawidłowy adres email"
-#: core/models.py:341
+#: core/models.py:340
#, python-format
msgid "username and email fields must not differ for '%s'"
msgstr "pola nazwa użytkownika i email nie mogą się różnić dla '%s'"
-#: core/password_validation.py:26
+#: core/password_validation.py:28
msgid "Password must contain at least {} digit."
msgid_plural "Password must contain at least {} digits."
msgstr[0] "Hasło musi zawierać przynajmniej {} cyfrę."
@@ -549,7 +547,7 @@ msgstr[1] "Hasło musi zawierać przynajmniej {} cyfry."
msgstr[2] "Hasło musi zawierać przynajmniej {} cyfr."
msgstr[3] "Hasło musi zawierać przynajmniej {} cyfr."
-#: core/password_validation.py:36
+#: core/password_validation.py:38
msgid "Password must contain at least {} lowercase letter."
msgid_plural "Password must contain at least {} lowercase letters."
msgstr[0] "Hasło musi zawierać przynajmniej {} małą literę."
@@ -557,7 +555,7 @@ msgstr[1] "Hasło musi zawierać przynajmniej {} małe litery."
msgstr[2] "Hasło musi zawierać przynajmniej {} małych liter."
msgstr[3] "Hasło musi zawierać przynajmniej {} małych liter."
-#: core/password_validation.py:47
+#: core/password_validation.py:49
msgid "Password must contain at least {} uppercase letter."
msgid_plural "Password must contain at least {} uppercase letters."
msgstr[0] "Hasło musi zawierać przynajmniej {} duża literę."
@@ -565,7 +563,7 @@ msgstr[1] "Hasło musi zawierać przynajmniej {} duże litery."
msgstr[2] "Hasło musi zawierać przynajmniej {} dużych liter."
msgstr[3] "Hasło musi zawierać przynajmniej {} dużych liter."
-#: core/password_validation.py:59
+#: core/password_validation.py:61
msgid "Password must contain at least {} special character."
msgid_plural "Password must contain at least {} special characters."
msgstr[0] "Hasło musi zawierać przynajmniej {} znak specjalny."
@@ -573,7 +571,7 @@ msgstr[1] "Hasło musi zawierać przynajmniej {} znaki specjalne."
msgstr[2] "Hasło musi zawierać przynajmniej {} znaków specjalnych."
msgstr[3] "Hasło musi zawierać przynajmniej {} znaków specjalnych."
-#: core/password_validation.py:67
+#: core/password_validation.py:69
msgid "Your password must contain a combination of different character types."
msgstr "Hasło musi zawierać kombinację różnych typów znaków."
@@ -627,7 +625,7 @@ msgid "API access token"
msgstr "Token dostępowy do API"
#: core/templates/core/api_access.html:35
-#: core/templates/core/user_profile.html:10 lib/form_utils.py:359
+#: core/templates/core/user_profile.html:10 lib/form_utils.py:358
msgid "Update"
msgstr "Aktualizuj"
@@ -636,7 +634,7 @@ msgstr "Aktualizuj"
msgid "Hello %(user)s."
msgstr "Cześć %(user)s"
-#: core/templates/core/information.html:2 core/templatetags/core_tags.py:64
+#: core/templates/core/information.html:2 core/templatetags/core_tags.py:66
msgid "Information"
msgstr "Informacja"
@@ -686,7 +684,7 @@ msgstr "Rola"
msgid "Last login"
msgstr "Ostatnio zalogowany"
-#: core/templates/core/logs.html:2 core/templatetags/core_tags.py:68
+#: core/templates/core/logs.html:2 core/templatetags/core_tags.py:70
msgid "Logs"
msgstr "Logi"
@@ -694,7 +692,7 @@ msgstr "Logi"
msgid "Previously on Modoboa..."
msgstr "Poprzednio w Modoboa ..."
-#: core/templates/core/logs.html:6 lib/templatetags/lib_tags.py:109
+#: core/templates/core/logs.html:6 lib/templatetags/lib_tags.py:110
msgid "Date"
msgstr "Data"
@@ -710,7 +708,7 @@ msgstr "Logger"
msgid "Message"
msgstr "Wiadomość"
-#: core/templates/core/parameters.html:2 core/templatetags/core_tags.py:73
+#: core/templates/core/parameters.html:2 core/templatetags/core_tags.py:75
msgid "Parameters"
msgstr "Parametry"
@@ -727,12 +725,12 @@ msgstr "Zapisz"
msgid "Modoboa settings"
msgstr "Ustawienia Modoboa"
-#: core/templates/core/user_index.html:4 core/templatetags/core_tags.py:92
+#: core/templates/core/user_index.html:4 core/templatetags/core_tags.py:94
msgid "Settings"
msgstr "Ustawienia"
#: core/templates/core/user_preferences.html:2
-#: core/templatetags/core_tags.py:122
+#: core/templatetags/core_tags.py:124
msgid "Preferences"
msgstr "Preferencja"
@@ -744,7 +742,7 @@ msgstr "Dostosuj Modoboa"
msgid "No preferences available."
msgstr "Brak dostępnych preferencji."
-#: core/templates/core/user_profile.html:3 core/templatetags/core_tags.py:118
+#: core/templates/core/user_profile.html:3 core/templatetags/core_tags.py:120
msgid "Profile"
msgstr "Profil"
@@ -752,36 +750,41 @@ msgstr "Profil"
msgid "Update your personal information"
msgstr "Aktualizuj swoje dane osobowe"
-#: core/templatetags/core_tags.py:36
+#: core/templatetags/core_tags.py:38
msgid "Modoboa"
msgstr "Modoboa"
-#: core/templatetags/core_tags.py:104
+#: core/templatetags/core_tags.py:106
msgid "Logout"
msgstr "Wyloguj"
-#: core/templatetags/core_tags.py:129
+#: core/templatetags/core_tags.py:131
msgid "API"
msgstr "API"
-#: core/utils.py:35
+#: core/utils.py:36
msgid "The core part of Modoboa"
msgstr "Zasadnicza część Modoboa"
-#: core/views/admin.py:48
+#: core/views/admin.py:47
msgid "Parameters saved"
msgstr "Parametry zapisano"
-#: core/views/auth.py:45
+#: core/views/auth.py:50
+#, python-format
+msgid "Password scheme mismatch. Updating %s password"
+msgstr ""
+
+#: core/views/auth.py:64
#, python-format
msgid "User '%s' successfully logged in"
msgstr "Użytkownik '%s' pomyślnie zalogowany"
-#: core/views/auth.py:53
+#: core/views/auth.py:72
msgid "Your username and password didn't match. Please try again."
msgstr "Twoja nazwa użytkownika i hasło są niepoprawne. Spróbuj ponownie"
-#: core/views/auth.py:88
+#: core/views/auth.py:107
msgid "User '{}' successfully logged out"
msgstr "Użytkownik '{}' wylogowany pomyślnie"
@@ -802,49 +805,53 @@ msgstr "Dostęp zaktualizowany"
msgid "Connection to database %s not configured"
msgstr "Połączenie do bazy danych %s nie zostało skonfigurowane"
-#: lib/exceptions.py:70
+#: lib/email_utils.py:350
+msgid "unable to determine encoding of string"
+msgstr ""
+
+#: lib/exceptions.py:71
#, python-format
msgid "Permission denied: %s"
msgstr "Odmowa dostepu: %s"
-#: lib/exceptions.py:71
+#: lib/exceptions.py:72
msgid "Permission denied"
msgstr "Dostęp zabroniony"
-#: lib/fields.py:17 lib/validators.py:16
+#: lib/fields.py:19 lib/validators.py:18
msgid "Enter a valid domain name"
msgstr "Wprowadź prawidłową nazwę domeny"
-#: lib/fields.py:46 lib/fields.py:60
+#: lib/fields.py:48 lib/fields.py:62
msgid "Enter a valid email address."
msgstr "Wprowadź prawidłowy adres email"
-#: lib/form_utils.py:82 templates/registration/password_reset_confirm.html:12
+#: lib/form_utils.py:81 templates/registration/password_reset_confirm.html:12
#: templates/registration/password_reset_form.html:11
msgid "Submit"
msgstr "Temat"
-#: lib/form_utils.py:115 lib/form_utils.py:118
+#: lib/form_utils.py:114 lib/form_utils.py:117
msgid "Invalid request"
msgstr "Nieprawidłowe żądanie"
-#: lib/form_utils.py:393
+#: lib/form_utils.py:392
msgid "Yes"
msgstr "tak"
-#: lib/ldap_utils.py:133
+#: lib/ldap_utils.py:134
msgid "Failed to update password: {}"
msgstr "Nieudana zmiana hasła: {}"
-#: lib/templatetags/lib_tags.py:107
+#: lib/templatetags/lib_tags.py:108
msgid "From"
msgstr "Od"
-#: lib/templatetags/lib_tags.py:108
+#: lib/templatetags/lib_tags.py:109
msgid "To"
msgstr "Do"
-#: lib/templatetags/lib_tags.py:110 templates/common/email_searchbar.html:17
+#: lib/templatetags/lib_tags.py:111 templates/common/email_searchbar.html:17
msgid "Subject"
msgstr "Temat"
@@ -968,3 +975,12 @@ msgstr "Z poważaniem, Zespół Modoboa."
#: templates/registration/password_reset_subject.txt:3
msgid "Modoboa password reset"
msgstr "Resetowanie hasła Modoboa"
+
+#~ msgid "Secret key"
+#~ msgstr "Secret key"
+
+#~ msgid "Key used to encrypt/decrypt passwords"
+#~ msgstr "Klucz do szyfrowania/deszyfrowania haseł"
+
+#~ msgid "Key must be either 16, 24, or 32 bytes long"
+#~ msgstr "Długość klucza musi wynosić 16, 24 lub 32 bajtów"
diff --git a/modoboa/locale/pt_BR/LC_MESSAGES/django.po b/modoboa/locale/pt_BR/LC_MESSAGES/django.po
index 3d1abf1c1..f96097926 100644
--- a/modoboa/locale/pt_BR/LC_MESSAGES/django.po
+++ b/modoboa/locale/pt_BR/LC_MESSAGES/django.po
@@ -1,7 +1,7 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
-#
+#
# Translators:
# csmk, 2014
# Ian Moone, 2016
@@ -19,365 +19,379 @@ msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-01-25 09:09+0100\n"
+"POT-Creation-Date: 2018-10-05 16:08+0200\n"
"PO-Revision-Date: 2018-09-25 03:25+0000\n"
"Last-Translator: Rafael Barretto \n"
-"Language-Team: Portuguese (Brazil) (http://www.transifex.com/tonio/modoboa/language/pt_BR/)\n"
+"Language-Team: Portuguese (Brazil) (http://www.transifex.com/tonio/modoboa/"
+"language/pt_BR/)\n"
+"Language: pt_BR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Language: pt_BR\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-#: core/app_settings.py:26
+#: core/app_settings.py:22
msgid "User profile"
msgstr "Perfil do usuário"
-#: core/app_settings.py:39
+#: core/app_settings.py:35
msgid "Authentication"
msgstr "Autenticação"
-#: core/app_settings.py:42
+#: core/app_settings.py:38
msgid "Authentication type"
msgstr "Tipo de autenticação"
-#: core/app_settings.py:43
+#: core/app_settings.py:39
msgid "Local"
msgstr "Local"
-#: core/app_settings.py:46
+#: core/app_settings.py:42
msgid "The backend used for authentication"
msgstr "O backend usado para autenticação"
-#: core/app_settings.py:51
+#: core/app_settings.py:47
msgid "Default password scheme"
msgstr "Esquema padrão de senha"
-#: core/app_settings.py:55
+#: core/app_settings.py:51
msgid "md5crypt (weak)"
msgstr "md5crypt (fraca)"
-#: core/app_settings.py:56
+#: core/app_settings.py:52
msgid "sha256 (weak)"
msgstr "sha256 (fraca)"
-#: core/app_settings.py:57
+#: core/app_settings.py:53
msgid "md5 (weak)"
msgstr "md5 (fraca)"
-#: core/app_settings.py:58
+#: core/app_settings.py:54
msgid "crypt (weak)"
msgstr "crypt (fraca)"
-#: core/app_settings.py:59
+#: core/app_settings.py:55
msgid "plain (weak)"
msgstr "plain (fraca)"
-#: core/app_settings.py:61
+#: core/app_settings.py:57
msgid "Scheme used to crypt mailbox passwords"
msgstr "Esquema usado para criptografar as senhas das caixas de correio"
-#: core/app_settings.py:66
+#: core/app_settings.py:62
msgid "Rounds"
msgstr "Ciclos"
-#: core/app_settings.py:69
+#: core/app_settings.py:65
msgid ""
"Number of rounds to use (only used by sha256crypt and sha512crypt). Must be "
"between 1000 and 999999999, inclusive."
-msgstr "Número de ciclos a ser usado (utilizado apenas por sha256crypt e sha512crypt). Deve estar entre 1000 e 999999999, inclusive."
+msgstr ""
+"Número de ciclos a ser usado (utilizado apenas por sha256crypt e "
+"sha512crypt). Deve estar entre 1000 e 999999999, inclusive."
-#: core/app_settings.py:76
-msgid "Secret key"
-msgstr "Chave secreta"
+#: core/app_settings.py:72
+#, fuzzy
+#| msgid "Default password scheme"
+msgid "Update password scheme"
+msgstr "Esquema padrão de senha"
-#: core/app_settings.py:78
-msgid "Key used to encrypt/decrypt passwords"
-msgstr "Chave utilizada para encriptar/desencriptar senhas"
+#: core/app_settings.py:75
+msgid "Update user password at login to use the default password scheme"
+msgstr ""
-#: core/app_settings.py:83
+#: core/app_settings.py:80
msgid "Default password"
msgstr "Senha padrão"
-#: core/app_settings.py:86
+#: core/app_settings.py:83
msgid "Default password for automatically created accounts."
msgstr "Senha padrão para contas criadas automaticamente."
-#: core/app_settings.py:90
+#: core/app_settings.py:87
msgid "Random password length"
msgstr "Tamanho de senha aleatório"
-#: core/app_settings.py:94
+#: core/app_settings.py:91
msgid "Length of randomly generated passwords."
msgstr ""
-#: core/app_settings.py:98
+#: core/app_settings.py:95
msgid "LDAP settings"
msgstr "Configurações do LDAP"
-#: core/app_settings.py:101
+#: core/app_settings.py:98
msgid "Server address"
msgstr "Endereço do servidor"
-#: core/app_settings.py:104
+#: core/app_settings.py:101
msgid "The IP address or the DNS name of the LDAP server"
msgstr "O endereço IP do nome DNS do servidor LDAP"
-#: core/app_settings.py:109
+#: core/app_settings.py:106
msgid "Server port"
msgstr "Porta do servidor"
-#: core/app_settings.py:111
+#: core/app_settings.py:108
msgid "The TCP port number used by the LDAP server"
msgstr "O número da porta TCP usada pelo servidor LDAP"
-#: core/app_settings.py:116
+#: core/app_settings.py:113
msgid "Use a secured connection"
msgstr "Usar conexão segura"
-#: core/app_settings.py:120
+#: core/app_settings.py:117
msgid "Use an SSL/STARTTLS connection to access the LDAP server"
msgstr "Usar uma conexão SSL/STARTTLS para acessar o servidor LDAP"
-#: core/app_settings.py:124
+#: core/app_settings.py:121
msgid "Authentication method"
msgstr "Método de autenticação"
-#: core/app_settings.py:125
+#: core/app_settings.py:122
msgid "Search and bind"
msgstr "Pesquisar e vincular"
-#: core/app_settings.py:126
+#: core/app_settings.py:123
msgid "Direct bind"
msgstr "Vinculação direta"
-#: core/app_settings.py:128
+#: core/app_settings.py:125
msgid "Choose the authentication method to use"
msgstr "Escolha o método de autenticação para usar"
-#: core/app_settings.py:133
+#: core/app_settings.py:130
msgid "Bind DN"
msgstr "Vincular DN"
-#: core/app_settings.py:136
+#: core/app_settings.py:133
msgid ""
"The distinguished name to use when binding to the LDAP server. Leave empty "
"for an anonymous bind"
-msgstr "O nome distinto para usar quando vincular ao servidor LDAP. Deixe vazio para vincular anonimamente"
+msgstr ""
+"O nome distinto para usar quando vincular ao servidor LDAP. Deixe vazio para "
+"vincular anonimamente"
-#: core/app_settings.py:144
+#: core/app_settings.py:141
msgid "Bind password"
msgstr "Vincular senha"
-#: core/app_settings.py:147
+#: core/app_settings.py:144
msgid "The password to use when binding to the LDAP server (with 'Bind DN')"
msgstr "A senha usada quando vincular ao servidor LDAP (com 'Vincular DN')"
-#: core/app_settings.py:156
+#: core/app_settings.py:153
msgid "Users search base"
msgstr "Base de pesquisa de usuários"
-#: core/app_settings.py:159
+#: core/app_settings.py:156
msgid "The distinguished name of the search base used to find users"
msgstr "O nome distinto da base de pesquisa usada para encontrar usuários"
-#: core/app_settings.py:166
+#: core/app_settings.py:163
msgid "Search filter"
msgstr "Filtro de pesquisa"
-#: core/app_settings.py:169
+#: core/app_settings.py:166
msgid ""
"An optional filter string (e.g. '(objectClass=person)'). In order to be "
"valid, it must be enclosed in parentheses."
-msgstr "Uma string opcional de filtro (por ex: '(objectClass=person)'). Para ser válida, deve estar entre parênteses."
+msgstr ""
+"Uma string opcional de filtro (por ex: '(objectClass=person)'). Para ser "
+"válida, deve estar entre parênteses."
-#: core/app_settings.py:177
+#: core/app_settings.py:174
msgid "User DN template"
msgstr "Usar template DN"
-#: core/app_settings.py:180
+#: core/app_settings.py:177
#, python-format
msgid ""
"The template used to construct a user's DN. It should contain one "
"placeholder (ie. %(user)s)"
-msgstr "A template usada para construir um DN de usuário. Deve conter um placeholder (por ex: %(user)s)"
+msgstr ""
+"A template usada para construir um DN de usuário. Deve conter um placeholder "
+"(por ex: %(user)s)"
-#: core/app_settings.py:188
+#: core/app_settings.py:185
msgid "Password attribute"
msgstr "Atributo de senha"
-#: core/app_settings.py:190
+#: core/app_settings.py:187
msgid "The attribute used to store user passwords"
msgstr "O atributo usado para armazenar senhas de usuários"
-#: core/app_settings.py:195
+#: core/app_settings.py:192
msgid "Active Directory"
msgstr "Active Directory"
-#: core/app_settings.py:198
+#: core/app_settings.py:195
msgid "Tell if the LDAP server is an Active Directory one"
msgstr "Informe se o servidor LDAP é um Active Directory"
-#: core/app_settings.py:202
+#: core/app_settings.py:199
msgid "Administrator groups"
msgstr "Grupos de administradores"
-#: core/app_settings.py:205
+#: core/app_settings.py:202
msgid ""
-"Members of those LDAP Posix groups will be created as domain administrators."
-" Use ';' characters to separate groups."
-msgstr "Membros dos grupos do LDAP Posix serão criados como administradores de domínio. Use o caractere ';' para separar grupos."
+"Members of those LDAP Posix groups will be created as domain administrators. "
+"Use ';' characters to separate groups."
+msgstr ""
+"Membros dos grupos do LDAP Posix serão criados como administradores de "
+"domínio. Use o caractere ';' para separar grupos."
-#: core/app_settings.py:212
+#: core/app_settings.py:209
msgid "Group type"
msgstr "Tipo de grupo"
-#: core/app_settings.py:216
+#: core/app_settings.py:213
msgid "The LDAP group type to use with your directory."
msgstr "O tipo de grupo LDAP para ser usado em seu diretório."
-#: core/app_settings.py:221
+#: core/app_settings.py:218
msgid "Groups search base"
msgstr "Base de pesquisa de grupos"
-#: core/app_settings.py:224
+#: core/app_settings.py:221
msgid "The distinguished name of the search base used to find groups"
msgstr "O nome distinto da base de pesquisa usada para encontrar grupos"
-#: core/app_settings.py:229 core/templates/core/dashboard.html:5
+#: core/app_settings.py:226 core/templates/core/dashboard.html:5
msgid "Dashboard"
msgstr "Painel"
-#: core/app_settings.py:232
+#: core/app_settings.py:229
msgid "Custom RSS feed"
msgstr "Feed RSS personalizado"
-#: core/app_settings.py:235
+#: core/app_settings.py:232
msgid "Display custom RSS feed to resellers and domain administrators"
-msgstr "Mostrar um feed RSS personalizado para revendedores e administradores de domínio"
+msgstr ""
+"Mostrar um feed RSS personalizado para revendedores e administradores de "
+"domínio"
-#: core/app_settings.py:240
+#: core/app_settings.py:237
msgid "Hide features widget"
msgstr ""
-#: core/app_settings.py:243
+#: core/app_settings.py:240
msgid "Hide features widget for resellers and domain administrators"
msgstr ""
-#: core/app_settings.py:247
+#: core/app_settings.py:244
msgid "Notifications"
msgstr "Notificações"
-#: core/app_settings.py:250
+#: core/app_settings.py:247
msgid "Sender address"
msgstr "Endereço do remente"
-#: core/app_settings.py:253
+#: core/app_settings.py:250
msgid "Email address used to send notifications."
msgstr "Endereço de e-mail usado para enviar notificações."
-#: core/app_settings.py:257
+#: core/app_settings.py:254
msgid "Public API"
msgstr "API Pública"
-#: core/app_settings.py:260
+#: core/app_settings.py:257
msgid "Enable communication"
msgstr "Habilitar comunicação"
-#: core/app_settings.py:263
+#: core/app_settings.py:260
msgid "Enable communication with Modoboa public API"
msgstr "Habilitar comunicação com API pública do Modoboa"
-#: core/app_settings.py:267
+#: core/app_settings.py:264
msgid "Check new versions"
msgstr "Verificar novas versões"
-#: core/app_settings.py:270
+#: core/app_settings.py:267
msgid "Automatically checks if a newer version is available"
msgstr "Verificar automaticamente se uma nova versão está disponível"
-#: core/app_settings.py:274
+#: core/app_settings.py:271
msgid "Send statistics"
msgstr "Enviar estatísticas"
-#: core/app_settings.py:277
+#: core/app_settings.py:274
msgid "Send statistics to Modoboa public API (counters and used extensions)"
-msgstr "Enviar estatísticas à API pública do Modoboa (contadores e extensões utilizadas)"
+msgstr ""
+"Enviar estatísticas à API pública do Modoboa (contadores e extensões "
+"utilizadas)"
-#: core/app_settings.py:281
+#: core/app_settings.py:278
msgid "Miscellaneous"
msgstr "Diversos"
-#: core/app_settings.py:284
+#: core/app_settings.py:281
msgid "Inactive account threshold"
msgstr ""
-#: core/app_settings.py:287
+#: core/app_settings.py:284
msgid ""
-"An account with a last login date greater than this threshold (in days) will"
-" be considered as inactive"
+"An account with a last login date greater than this threshold (in days) will "
+"be considered as inactive"
msgstr ""
-#: core/app_settings.py:294
+#: core/app_settings.py:291
msgid "Top notifications check interval"
msgstr "Intervalo de verificação de verificações de topo"
-#: core/app_settings.py:297
+#: core/app_settings.py:294
msgid "Interval between two top notification checks (in seconds)"
msgstr "Intervalo entre checagem de notificações (em segundos)"
-#: core/app_settings.py:303
+#: core/app_settings.py:300
msgid "Maximum log record age"
msgstr "Idade máxima do registro de log"
-#: core/app_settings.py:305
+#: core/app_settings.py:302
msgid "The maximum age in days of a log record"
msgstr "A idade máxima em dias de um registro de log"
-#: core/app_settings.py:310
+#: core/app_settings.py:307
msgid "Items per page"
msgstr "Itens por página"
-#: core/app_settings.py:312
+#: core/app_settings.py:309
msgid "Number of displayed items per page"
msgstr "Número de itens exibidos por página"
-#: core/app_settings.py:317
+#: core/app_settings.py:314
msgid "Default top redirection"
msgstr "Redirecionamento de topo padrão"
-#: core/app_settings.py:321
+#: core/app_settings.py:318
msgid "The default redirection used when no application is specified"
-msgstr "O redirecionamento padrão usado quando nenhuma aplicação é especificada"
+msgstr ""
+"O redirecionamento padrão usado quando nenhuma aplicação é especificada"
-#: core/app_settings.py:354
-msgid "Key must be either 16, 24, or 32 bytes long"
-msgstr "A chave deve ter 16, 24 ou 32 bytes de tamanho"
-
-#: core/app_settings.py:363
+#: core/app_settings.py:353
msgid "Invalid syntax"
msgstr "Sintaxe inválida"
-#: core/app_settings.py:369
+#: core/app_settings.py:359
msgid "Invalid rounds number"
msgstr "Número de ciclos inválido"
-#: core/app_settings.py:396
+#: core/app_settings.py:386
msgid "This field is required"
msgstr "Este campo é obrigatório"
-#: core/apps.py:20
+#: core/apps.py:22
msgid "General"
msgstr "Geral"
-#: core/checks/settings_checks.py:11
+#: core/checks/settings_checks.py:10
msgid ""
"You have USE_TZ set to False, this may result in issues during transitions "
"between summer/winter time (ie the same local time occuring twice due to "
"clock change)."
msgstr ""
-#: core/checks/settings_checks.py:14
+#: core/checks/settings_checks.py:13
msgid "Set `USE_TZ = True` in settings.py"
msgstr ""
@@ -397,167 +411,169 @@ msgstr "Revendedor"
msgid "Super administrator"
msgstr "Super administrador"
-#: core/constants.py:51 lib/form_utils.py:394
+#: core/constants.py:53 lib/form_utils.py:393
msgid "No"
msgstr "Não"
-#: core/forms.py:24
+#: core/forms.py:22
msgid "Username"
msgstr "Nome de usuário"
-#: core/forms.py:28
+#: core/forms.py:26
msgid "Password"
msgstr "Senha"
-#: core/forms.py:41
+#: core/forms.py:39
msgid "Old password"
msgstr "Senha antiga"
-#: core/forms.py:45
+#: core/forms.py:43
msgid "New password"
msgstr "Nova senha"
-#: core/forms.py:49
+#: core/forms.py:47
msgid "Confirmation"
msgstr "Confirmação"
-#: core/forms.py:77
+#: core/forms.py:75
msgid "Old password mismatchs"
msgstr "Senha antiga não confere"
-#: core/forms.py:86
+#: core/forms.py:84
msgid "Passwords mismatch"
msgstr "Senhas não conferem"
-#: core/forms.py:106
+#: core/forms.py:104
msgid "Enable API access"
msgstr "Ativar acesso à API"
-#: core/handlers.py:43
+#: core/handlers.py:40
msgid "added"
msgstr "adicionado"
-#: core/handlers.py:46
+#: core/handlers.py:43
msgid "modified"
msgstr "modificado"
-#: core/handlers.py:48
+#: core/handlers.py:45
#, python-format
msgid "%(object)s '%(name)s' %(action)s by user %(user)s"
msgstr "%(object)s '%(name)s' %(action)s pelo(s) usuário(s) %(user)s"
-#: core/handlers.py:70
+#: core/handlers.py:67
#, python-format
msgid "%(object)s '%(name)s' %(action)s by "
msgstr ""
-#: core/handlers.py:72
+#: core/handlers.py:69
msgid "deleted"
msgstr "removido"
-#: core/handlers.py:76
+#: core/handlers.py:73
msgid "user {}"
msgstr "usuário {}"
-#: core/handlers.py:78
+#: core/handlers.py:75
msgid "management command"
msgstr "comando de gerenciamento"
-#: core/handlers.py:102
+#: core/handlers.py:99
msgid "You can't delete your own account"
msgstr "Você não pode remover sua própria conta"
-#: core/handlers.py:138
+#: core/handlers.py:135
msgid "One or more updates are available"
msgstr "Uma ou mais atualizações disponíveis"
-#: core/models.py:58
+#: core/models.py:57
msgid "Allow mailboxes access"
msgstr "Permitir acesso a caixa de correio"
-#: core/models.py:60
+#: core/models.py:59
msgid "Allow this administrator to access user mailboxes"
-msgstr "Permitir que este administrador acesse as caixas de correio de usuários"
+msgstr ""
+"Permitir que este administrador acesse as caixas de correio de usuários"
-#: core/models.py:63
+#: core/models.py:62
msgid "password"
msgstr "senha"
-#: core/models.py:66
+#: core/models.py:65
msgid "language"
msgstr "idioma"
-#: core/models.py:69
+#: core/models.py:68
msgid "Prefered language to display pages."
msgstr "Linguagem padrão para visualizar mensagens"
-#: core/models.py:73
+#: core/models.py:72
msgid "Phone number"
msgstr "Número de telefone"
-#: core/models.py:75
+#: core/models.py:74
msgid "Secondary email"
msgstr "E-mail secundário"
-#: core/models.py:78
+#: core/models.py:77
msgid "An alternative e-mail address, can be used for recovery needs."
-msgstr "Endereço de e-mail alternativo, use-o para recuperar a conta caso precise"
+msgstr ""
+"Endereço de e-mail alternativo, use-o para recuperar a conta caso precise"
-#: core/models.py:128
+#: core/models.py:127
msgid "Failed to update password: LDAP module not installed"
msgstr "Falha ao atualizar senha: módulo LDAP não instalado"
-#: core/models.py:157
+#: core/models.py:156
msgid "account"
msgstr "conta"
-#: core/models.py:279
+#: core/models.py:278
msgid "Unknown"
msgstr "Desconhecido"
-#: core/models.py:313
+#: core/models.py:312
msgid "Invalid line"
msgstr "Linha inválida"
-#: core/models.py:321
+#: core/models.py:320
msgid "You can't import an account with a role greater than yours"
msgstr "Você não pode importar uma conta com um papel maior que o seu"
-#: core/models.py:336
+#: core/models.py:335
#, python-format
msgid "The simple user '%s' must have a valid email address"
msgstr "O usuário simples '%s' deve ter um endereço de e-mail válido"
-#: core/models.py:341
+#: core/models.py:340
#, python-format
msgid "username and email fields must not differ for '%s'"
msgstr "os campos nome de usuário e e-mail não diferem de '%s'"
-#: core/password_validation.py:26
+#: core/password_validation.py:28
msgid "Password must contain at least {} digit."
msgid_plural "Password must contain at least {} digits."
msgstr[0] ""
msgstr[1] ""
-#: core/password_validation.py:36
+#: core/password_validation.py:38
msgid "Password must contain at least {} lowercase letter."
msgid_plural "Password must contain at least {} lowercase letters."
msgstr[0] ""
msgstr[1] ""
-#: core/password_validation.py:47
+#: core/password_validation.py:49
msgid "Password must contain at least {} uppercase letter."
msgid_plural "Password must contain at least {} uppercase letters."
msgstr[0] ""
msgstr[1] ""
-#: core/password_validation.py:59
+#: core/password_validation.py:61
msgid "Password must contain at least {} special character."
msgid_plural "Password must contain at least {} special characters."
msgstr[0] ""
msgstr[1] ""
-#: core/password_validation.py:67
+#: core/password_validation.py:69
msgid "Your password must contain a combination of different character types."
msgstr ""
@@ -585,7 +601,9 @@ msgstr "Últimas notícias"
msgid ""
"Visit the official "
"weblog for more information."
-msgstr "Visite o weblog oficial para mais informação."
+msgstr ""
+"Visite o weblog "
+"oficial para mais informação."
#: core/templates/core/api_access.html:3
msgid "API access"
@@ -598,16 +616,18 @@ msgstr "Controle seu acesso a API Modoboa"
#: core/templates/core/api_access.html:7
#, python-format
msgid ""
-"A documentation of the API is available here."
-msgstr "Uma documentação da API está disponível aqui."
+"A documentation of the API is available here."
+msgstr ""
+"Uma documentação da API está disponível aqui."
#: core/templates/core/api_access.html:14
msgid "API access token"
msgstr "Token de acesso a API"
#: core/templates/core/api_access.html:35
-#: core/templates/core/user_profile.html:10 lib/form_utils.py:359
+#: core/templates/core/user_profile.html:10 lib/form_utils.py:358
msgid "Update"
msgstr "Atualizar"
@@ -616,7 +636,7 @@ msgstr "Atualizar"
msgid "Hello %(user)s."
msgstr "Olá %(user)s."
-#: core/templates/core/information.html:2 core/templatetags/core_tags.py:64
+#: core/templates/core/information.html:2 core/templatetags/core_tags.py:66
msgid "Information"
msgstr "Informação"
@@ -630,7 +650,8 @@ msgstr "Uma ou mais atualizações disponíveis"
#: core/templates/core/information.html:6
msgid "Check the following list to find the component(s) that can be updated."
-msgstr "Checar a seguinte lista a procura de componente(s) que pode ser atualizado"
+msgstr ""
+"Checar a seguinte lista a procura de componente(s) que pode ser atualizado"
#: core/templates/core/information.html:10
msgid "Applications"
@@ -665,7 +686,7 @@ msgstr "Função"
msgid "Last login"
msgstr "Último login"
-#: core/templates/core/logs.html:2 core/templatetags/core_tags.py:68
+#: core/templates/core/logs.html:2 core/templatetags/core_tags.py:70
msgid "Logs"
msgstr "Logs"
@@ -673,7 +694,7 @@ msgstr "Logs"
msgid "Previously on Modoboa..."
msgstr "Previamente no Modoboa..."
-#: core/templates/core/logs.html:6 lib/templatetags/lib_tags.py:109
+#: core/templates/core/logs.html:6 lib/templatetags/lib_tags.py:110
msgid "Date"
msgstr "Data"
@@ -689,7 +710,7 @@ msgstr "Logger"
msgid "Message"
msgstr "Mensagem"
-#: core/templates/core/parameters.html:2 core/templatetags/core_tags.py:73
+#: core/templates/core/parameters.html:2 core/templatetags/core_tags.py:75
msgid "Parameters"
msgstr "Parâmetros"
@@ -706,12 +727,12 @@ msgstr "Salvar"
msgid "Modoboa settings"
msgstr "Configurações do Modoboa"
-#: core/templates/core/user_index.html:4 core/templatetags/core_tags.py:92
+#: core/templates/core/user_index.html:4 core/templatetags/core_tags.py:94
msgid "Settings"
msgstr "Configurações"
#: core/templates/core/user_preferences.html:2
-#: core/templatetags/core_tags.py:122
+#: core/templatetags/core_tags.py:124
msgid "Preferences"
msgstr "Preferências"
@@ -723,7 +744,7 @@ msgstr "Customizar Modoboa"
msgid "No preferences available."
msgstr "Não há preferências disponíveis."
-#: core/templates/core/user_profile.html:3 core/templatetags/core_tags.py:118
+#: core/templates/core/user_profile.html:3 core/templatetags/core_tags.py:120
msgid "Profile"
msgstr "Perfil"
@@ -731,36 +752,41 @@ msgstr "Perfil"
msgid "Update your personal information"
msgstr "Atualizar sua informação pessoal"
-#: core/templatetags/core_tags.py:36
+#: core/templatetags/core_tags.py:38
msgid "Modoboa"
msgstr "Modoboa"
-#: core/templatetags/core_tags.py:104
+#: core/templatetags/core_tags.py:106
msgid "Logout"
msgstr "Sair"
-#: core/templatetags/core_tags.py:129
+#: core/templatetags/core_tags.py:131
msgid "API"
msgstr "API"
-#: core/utils.py:35
+#: core/utils.py:36
msgid "The core part of Modoboa"
msgstr "Core do Modoboa"
-#: core/views/admin.py:48
+#: core/views/admin.py:47
msgid "Parameters saved"
msgstr "Parêmetros salvos"
-#: core/views/auth.py:45
+#: core/views/auth.py:50
+#, python-format
+msgid "Password scheme mismatch. Updating %s password"
+msgstr ""
+
+#: core/views/auth.py:64
#, python-format
msgid "User '%s' successfully logged in"
msgstr "Usuário '%s' autenticado com sucesso"
-#: core/views/auth.py:53
+#: core/views/auth.py:72
msgid "Your username and password didn't match. Please try again."
msgstr "Seu usuário e senha não conferem. Por favor tente novamente."
-#: core/views/auth.py:88
+#: core/views/auth.py:107
msgid "User '{}' successfully logged out"
msgstr "Usuário '{}' saiu com sucesso"
@@ -781,49 +807,53 @@ msgstr "Acesso atualizado"
msgid "Connection to database %s not configured"
msgstr "A conexão com o banco de dados %s não está configurada"
-#: lib/exceptions.py:70
+#: lib/email_utils.py:350
+msgid "unable to determine encoding of string"
+msgstr ""
+
+#: lib/exceptions.py:71
#, python-format
msgid "Permission denied: %s"
msgstr "Permissão negada: %s"
-#: lib/exceptions.py:71
+#: lib/exceptions.py:72
msgid "Permission denied"
msgstr "Permissão negada"
-#: lib/fields.py:17 lib/validators.py:16
+#: lib/fields.py:19 lib/validators.py:18
msgid "Enter a valid domain name"
msgstr "Digite um nome de domínio válido"
-#: lib/fields.py:46 lib/fields.py:60
+#: lib/fields.py:48 lib/fields.py:62
msgid "Enter a valid email address."
msgstr "Digite um endereço de e-mail válido"
-#: lib/form_utils.py:82 templates/registration/password_reset_confirm.html:12
+#: lib/form_utils.py:81 templates/registration/password_reset_confirm.html:12
#: templates/registration/password_reset_form.html:11
msgid "Submit"
msgstr "Enviar"
-#: lib/form_utils.py:115 lib/form_utils.py:118
+#: lib/form_utils.py:114 lib/form_utils.py:117
msgid "Invalid request"
msgstr "Solicitação inválida"
-#: lib/form_utils.py:393
+#: lib/form_utils.py:392
msgid "Yes"
msgstr "Sim"
-#: lib/ldap_utils.py:133
+#: lib/ldap_utils.py:134
msgid "Failed to update password: {}"
msgstr "Falha ao atualizar a senha: {}"
-#: lib/templatetags/lib_tags.py:107
+#: lib/templatetags/lib_tags.py:108
msgid "From"
msgstr "De"
-#: lib/templatetags/lib_tags.py:108
+#: lib/templatetags/lib_tags.py:109
msgid "To"
msgstr "Para"
-#: lib/templatetags/lib_tags.py:110 templates/common/email_searchbar.html:17
+#: lib/templatetags/lib_tags.py:111 templates/common/email_searchbar.html:17
msgid "Subject"
msgstr "Assunto"
@@ -860,9 +890,8 @@ msgstr "Erro:"
msgid "Help:"
msgstr "Ajuda:"
-#: templates/common/generic_modal.html:6
-#: templates/common/generic_modal.html:13 templates/common/wizard_forms.html:6
-#: templates/common/wizard_forms.html:27
+#: templates/common/generic_modal.html:6 templates/common/generic_modal.html:13
+#: templates/common/wizard_forms.html:6 templates/common/wizard_forms.html:27
msgid "Close"
msgstr "Fechar"
@@ -936,3 +965,12 @@ msgstr "Atenciosamente, A Equipe Modoboa."
#: templates/registration/password_reset_subject.txt:3
msgid "Modoboa password reset"
msgstr "Redefinição de senha do Modoboa"
+
+#~ msgid "Secret key"
+#~ msgstr "Chave secreta"
+
+#~ msgid "Key used to encrypt/decrypt passwords"
+#~ msgstr "Chave utilizada para encriptar/desencriptar senhas"
+
+#~ msgid "Key must be either 16, 24, or 32 bytes long"
+#~ msgstr "A chave deve ter 16, 24 ou 32 bytes de tamanho"
diff --git a/modoboa/locale/pt_PT/LC_MESSAGES/django.po b/modoboa/locale/pt_PT/LC_MESSAGES/django.po
index 30d534982..6a059429d 100644
--- a/modoboa/locale/pt_PT/LC_MESSAGES/django.po
+++ b/modoboa/locale/pt_PT/LC_MESSAGES/django.po
@@ -13,7 +13,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-01-25 09:09+0100\n"
+"POT-Creation-Date: 2018-10-05 16:08+0200\n"
"PO-Revision-Date: 2014-12-29 12:51+0000\n"
"Last-Translator: Mike C. \n"
"Language-Team: Portuguese (Portugal) (http://www.transifex.com/projects/p/"
@@ -24,145 +24,147 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: core/app_settings.py:26
+#: core/app_settings.py:22
#, fuzzy
#| msgid "Profile"
msgid "User profile"
msgstr "Perfil"
-#: core/app_settings.py:39
+#: core/app_settings.py:35
msgid "Authentication"
msgstr "Autenticação"
-#: core/app_settings.py:42
+#: core/app_settings.py:38
msgid "Authentication type"
msgstr "Tipo de autenticação"
-#: core/app_settings.py:43
+#: core/app_settings.py:39
msgid "Local"
msgstr "Local"
-#: core/app_settings.py:46
+#: core/app_settings.py:42
msgid "The backend used for authentication"
msgstr "Backend usado para autenticação"
-#: core/app_settings.py:51
+#: core/app_settings.py:47
msgid "Default password scheme"
msgstr "Esquema pré-definido para passwords"
-#: core/app_settings.py:55
+#: core/app_settings.py:51
msgid "md5crypt (weak)"
msgstr "md5crypt (fraco)"
-#: core/app_settings.py:56
+#: core/app_settings.py:52
msgid "sha256 (weak)"
msgstr "sha256 (fraco)"
-#: core/app_settings.py:57
+#: core/app_settings.py:53
msgid "md5 (weak)"
msgstr "md5 (fraco)"
-#: core/app_settings.py:58
+#: core/app_settings.py:54
msgid "crypt (weak)"
msgstr "crypt (fraco)"
-#: core/app_settings.py:59
+#: core/app_settings.py:55
msgid "plain (weak)"
msgstr "plain (fraco)"
-#: core/app_settings.py:61
+#: core/app_settings.py:57
msgid "Scheme used to crypt mailbox passwords"
msgstr "Esquema usado para encriptar as passwords das caixas de correio"
-#: core/app_settings.py:66
+#: core/app_settings.py:62
msgid "Rounds"
msgstr ""
-#: core/app_settings.py:69
+#: core/app_settings.py:65
msgid ""
"Number of rounds to use (only used by sha256crypt and sha512crypt). Must be "
"between 1000 and 999999999, inclusive."
msgstr ""
-#: core/app_settings.py:76
-msgid "Secret key"
-msgstr "Chave secreta"
+#: core/app_settings.py:72
+#, fuzzy
+#| msgid "Default password scheme"
+msgid "Update password scheme"
+msgstr "Esquema pré-definido para passwords"
-#: core/app_settings.py:78
-msgid "Key used to encrypt/decrypt passwords"
-msgstr "Chave usada para encriptar/desencriptar passwords"
+#: core/app_settings.py:75
+msgid "Update user password at login to use the default password scheme"
+msgstr ""
-#: core/app_settings.py:83
+#: core/app_settings.py:80
#, fuzzy
#| msgid "Default password scheme"
msgid "Default password"
msgstr "Esquema pré-definido para passwords"
-#: core/app_settings.py:86
+#: core/app_settings.py:83
msgid "Default password for automatically created accounts."
msgstr ""
-#: core/app_settings.py:90
+#: core/app_settings.py:87
#, fuzzy
#| msgid "Bind password"
msgid "Random password length"
msgstr "Password para bind"
-#: core/app_settings.py:94
+#: core/app_settings.py:91
msgid "Length of randomly generated passwords."
msgstr ""
-#: core/app_settings.py:98
+#: core/app_settings.py:95
msgid "LDAP settings"
msgstr "Definições do serviço de directório"
-#: core/app_settings.py:101
+#: core/app_settings.py:98
msgid "Server address"
msgstr "Endereço do Servidor"
-#: core/app_settings.py:104
+#: core/app_settings.py:101
msgid "The IP address or the DNS name of the LDAP server"
msgstr "O endereço IP do servidor de DNS do servidor LDAP"
-#: core/app_settings.py:109
+#: core/app_settings.py:106
msgid "Server port"
msgstr "Porta do Servidor"
-#: core/app_settings.py:111
+#: core/app_settings.py:108
msgid "The TCP port number used by the LDAP server"
msgstr " A porta TCP usada pelo servidor LDAP"
-#: core/app_settings.py:116
+#: core/app_settings.py:113
msgid "Use a secured connection"
msgstr "Utilizar uma ligação segura"
-#: core/app_settings.py:120
+#: core/app_settings.py:117
#, fuzzy
#| msgid "Use an SSL/TLS connection to access the LDAP server"
msgid "Use an SSL/STARTTLS connection to access the LDAP server"
msgstr "Usar SSL/TLS na ligaçao de acesso ao servidor LDAP"
-#: core/app_settings.py:124
+#: core/app_settings.py:121
msgid "Authentication method"
msgstr "Método de autenticação"
-#: core/app_settings.py:125
+#: core/app_settings.py:122
msgid "Search and bind"
msgstr "Procurar e vincular (bind)"
-#: core/app_settings.py:126
+#: core/app_settings.py:123
msgid "Direct bind"
msgstr "\"Direct bind\""
-#: core/app_settings.py:128
+#: core/app_settings.py:125
msgid "Choose the authentication method to use"
msgstr "Escolher o método de autenticação"
-#: core/app_settings.py:133
+#: core/app_settings.py:130
msgid "Bind DN"
msgstr "\"Bind DN\""
-#: core/app_settings.py:136
+#: core/app_settings.py:133
msgid ""
"The distinguished name to use when binding to the LDAP server. Leave empty "
"for an anonymous bind"
@@ -170,28 +172,28 @@ msgstr ""
"O nome único usado para fazer o \"bind\" ao servidor LDAP. Deixar vario "
"para \"bind\" anónimo"
-#: core/app_settings.py:144
+#: core/app_settings.py:141
msgid "Bind password"
msgstr "Password para bind"
-#: core/app_settings.py:147
+#: core/app_settings.py:144
msgid "The password to use when binding to the LDAP server (with 'Bind DN')"
msgstr ""
"A password usada para fazer o \"bind\" ao servidor LDAP (com 'Bind DN')"
-#: core/app_settings.py:156
+#: core/app_settings.py:153
msgid "Users search base"
msgstr "Base para pesquisa de utilizadores"
-#: core/app_settings.py:159
+#: core/app_settings.py:156
msgid "The distinguished name of the search base used to find users"
msgstr "O nome único a usar para pesquisa de utilizadores"
-#: core/app_settings.py:166
+#: core/app_settings.py:163
msgid "Search filter"
msgstr "Filtro de pesquisa"
-#: core/app_settings.py:169
+#: core/app_settings.py:166
msgid ""
"An optional filter string (e.g. '(objectClass=person)'). In order to be "
"valid, it must be enclosed in parentheses."
@@ -199,11 +201,11 @@ msgstr ""
"Um filtro opcional (ex: '(objetClass=person)'). Tem de estar entre "
"parênteses para ser válido"
-#: core/app_settings.py:177
+#: core/app_settings.py:174
msgid "User DN template"
msgstr "Template DN de utilizador"
-#: core/app_settings.py:180
+#: core/app_settings.py:177
#, python-format
msgid ""
"The template used to construct a user's DN. It should contain one "
@@ -212,27 +214,27 @@ msgstr ""
"O template usado para construir o DN (nome único). Deve apenas conter um "
"'placeholder' (ex: %(user)s) "
-#: core/app_settings.py:188
+#: core/app_settings.py:185
msgid "Password attribute"
msgstr "Atributo de palavra-passe"
-#: core/app_settings.py:190
+#: core/app_settings.py:187
msgid "The attribute used to store user passwords"
msgstr "O atributo utilizado para armazenar palavras-passe"
-#: core/app_settings.py:195
+#: core/app_settings.py:192
msgid "Active Directory"
msgstr "Active Directory"
-#: core/app_settings.py:198
+#: core/app_settings.py:195
msgid "Tell if the LDAP server is an Active Directory one"
msgstr "Especificar se o servidor LDAP e um Active Directory"
-#: core/app_settings.py:202
+#: core/app_settings.py:199
msgid "Administrator groups"
msgstr "Grupos de Administrador"
-#: core/app_settings.py:205
+#: core/app_settings.py:202
msgid ""
"Members of those LDAP Posix groups will be created as domain administrators. "
"Use ';' characters to separate groups."
@@ -240,166 +242,162 @@ msgstr ""
"Os membros destes grupos \"LDAP Posix\" serão criados como administradores "
"de domínio. Use ';' para separar os grupos."
-#: core/app_settings.py:212
+#: core/app_settings.py:209
#, fuzzy
#| msgid "Group name"
msgid "Group type"
msgstr "Nome do grupo"
-#: core/app_settings.py:216
+#: core/app_settings.py:213
msgid "The LDAP group type to use with your directory."
msgstr ""
-#: core/app_settings.py:221
+#: core/app_settings.py:218
msgid "Groups search base"
msgstr "Base para pesquisa de Grupos"
-#: core/app_settings.py:224
+#: core/app_settings.py:221
msgid "The distinguished name of the search base used to find groups"
msgstr "O nome único para a base de pesquisa, usado para encontrar grupos"
-#: core/app_settings.py:229 core/templates/core/dashboard.html:5
+#: core/app_settings.py:226 core/templates/core/dashboard.html:5
msgid "Dashboard"
msgstr ""
-#: core/app_settings.py:232
+#: core/app_settings.py:229
msgid "Custom RSS feed"
msgstr ""
-#: core/app_settings.py:235
+#: core/app_settings.py:232
msgid "Display custom RSS feed to resellers and domain administrators"
msgstr ""
-#: core/app_settings.py:240
+#: core/app_settings.py:237
msgid "Hide features widget"
msgstr ""
-#: core/app_settings.py:243
+#: core/app_settings.py:240
msgid "Hide features widget for resellers and domain administrators"
msgstr ""
-#: core/app_settings.py:247
+#: core/app_settings.py:244
#, fuzzy
#| msgid "Authentication"
msgid "Notifications"
msgstr "Autenticação"
-#: core/app_settings.py:250
+#: core/app_settings.py:247
#, fuzzy
#| msgid "Server address"
msgid "Sender address"
msgstr "Endereço do Servidor"
-#: core/app_settings.py:253
+#: core/app_settings.py:250
msgid "Email address used to send notifications."
msgstr ""
-#: core/app_settings.py:257
+#: core/app_settings.py:254
msgid "Public API"
msgstr ""
-#: core/app_settings.py:260
+#: core/app_settings.py:257
msgid "Enable communication"
msgstr ""
-#: core/app_settings.py:263
+#: core/app_settings.py:260
msgid "Enable communication with Modoboa public API"
msgstr ""
-#: core/app_settings.py:267
+#: core/app_settings.py:264
msgid "Check new versions"
msgstr "Procurar novas versões"
-#: core/app_settings.py:270
+#: core/app_settings.py:267
msgid "Automatically checks if a newer version is available"
msgstr "Verifica automaticamente se existem novas versões"
-#: core/app_settings.py:274
+#: core/app_settings.py:271
msgid "Send statistics"
msgstr ""
-#: core/app_settings.py:277
+#: core/app_settings.py:274
msgid "Send statistics to Modoboa public API (counters and used extensions)"
msgstr ""
-#: core/app_settings.py:281
+#: core/app_settings.py:278
msgid "Miscellaneous"
msgstr "Vários"
-#: core/app_settings.py:284
+#: core/app_settings.py:281
msgid "Inactive account threshold"
msgstr ""
-#: core/app_settings.py:287
+#: core/app_settings.py:284
msgid ""
"An account with a last login date greater than this threshold (in days) will "
"be considered as inactive"
msgstr ""
-#: core/app_settings.py:294
+#: core/app_settings.py:291
msgid "Top notifications check interval"
msgstr "Intervalo de tempo para verificar notificações (no topo)"
-#: core/app_settings.py:297
+#: core/app_settings.py:294
#, fuzzy
#| msgid "Interval between two top notification checks"
msgid "Interval between two top notification checks (in seconds)"
msgstr "Intervalo de tempo de verificação entre duas notificações (no topo)"
-#: core/app_settings.py:303
+#: core/app_settings.py:300
msgid "Maximum log record age"
msgstr "Idade máxima do registo no log"
-#: core/app_settings.py:305
+#: core/app_settings.py:302
msgid "The maximum age in days of a log record"
msgstr "A idade maxima do registo de um log, em dias, e de"
-#: core/app_settings.py:310
+#: core/app_settings.py:307
msgid "Items per page"
msgstr "Itens por página"
-#: core/app_settings.py:312
+#: core/app_settings.py:309
msgid "Number of displayed items per page"
msgstr "Número de itens apresentados por página"
-#: core/app_settings.py:317
+#: core/app_settings.py:314
msgid "Default top redirection"
msgstr "Redirecionamento pré-definido"
-#: core/app_settings.py:321
+#: core/app_settings.py:318
msgid "The default redirection used when no application is specified"
msgstr ""
"O redirecionamento padrão usado quando nenhuma aplicação se encontra "
"especificada"
-#: core/app_settings.py:354
-msgid "Key must be either 16, 24, or 32 bytes long"
-msgstr "A chave deve ter tamanho de 16, 24, ou 32 bytes"
-
-#: core/app_settings.py:363
+#: core/app_settings.py:353
msgid "Invalid syntax"
msgstr "Sintax inválida"
-#: core/app_settings.py:369
+#: core/app_settings.py:359
msgid "Invalid rounds number"
msgstr "Número de linhas inválido"
-#: core/app_settings.py:396
+#: core/app_settings.py:386
msgid "This field is required"
msgstr "Este campo é obrigatório"
-#: core/apps.py:20
+#: core/apps.py:22
msgid "General"
msgstr "Geral"
-#: core/checks/settings_checks.py:11
+#: core/checks/settings_checks.py:10
msgid ""
"You have USE_TZ set to False, this may result in issues during transitions "
"between summer/winter time (ie the same local time occuring twice due to "
"clock change)."
msgstr ""
-#: core/checks/settings_checks.py:14
+#: core/checks/settings_checks.py:13
msgid "Set `USE_TZ = True` in settings.py"
msgstr ""
@@ -421,176 +419,176 @@ msgstr ""
msgid "Super administrator"
msgstr "Super Administrador"
-#: core/constants.py:51 lib/form_utils.py:394
+#: core/constants.py:53 lib/form_utils.py:393
msgid "No"
msgstr "Não"
-#: core/forms.py:24
+#: core/forms.py:22
msgid "Username"
msgstr "Nome de Utilizador"
-#: core/forms.py:28
+#: core/forms.py:26
msgid "Password"
msgstr "Password"
-#: core/forms.py:41
+#: core/forms.py:39
msgid "Old password"
msgstr "Password antiga"
-#: core/forms.py:45
+#: core/forms.py:43
msgid "New password"
msgstr "Nova password"
-#: core/forms.py:49
+#: core/forms.py:47
msgid "Confirmation"
msgstr "Confirmação"
-#: core/forms.py:77
+#: core/forms.py:75
msgid "Old password mismatchs"
msgstr "Incompatibilidade da password antiga"
-#: core/forms.py:86
+#: core/forms.py:84
msgid "Passwords mismatch"
msgstr "Passwords não coincidem"
-#: core/forms.py:106
+#: core/forms.py:104
msgid "Enable API access"
msgstr ""
-#: core/handlers.py:43
+#: core/handlers.py:40
msgid "added"
msgstr "acrescentado"
-#: core/handlers.py:46
+#: core/handlers.py:43
msgid "modified"
msgstr "modificado"
-#: core/handlers.py:48
+#: core/handlers.py:45
#, python-format
msgid "%(object)s '%(name)s' %(action)s by user %(user)s"
msgstr "%(object)s '%(name)s' %(action)s pelo utilizador %(user)s"
-#: core/handlers.py:70
+#: core/handlers.py:67
#, fuzzy, python-format
#| msgid "%(object)s '%(name)s' %(action)s by user %(user)s"
msgid "%(object)s '%(name)s' %(action)s by "
msgstr "%(object)s '%(name)s' %(action)s pelo utilizador %(user)s"
-#: core/handlers.py:72
+#: core/handlers.py:69
msgid "deleted"
msgstr "apagado"
-#: core/handlers.py:76
+#: core/handlers.py:73
msgid "user {}"
msgstr ""
-#: core/handlers.py:78
+#: core/handlers.py:75
msgid "management command"
msgstr ""
-#: core/handlers.py:102
+#: core/handlers.py:99
msgid "You can't delete your own account"
msgstr "Não pode apagar a sua própria conta"
-#: core/handlers.py:138
+#: core/handlers.py:135
#, fuzzy
#| msgid "An update is available!"
msgid "One or more updates are available"
msgstr "Uma nova versão está disponível!"
-#: core/models.py:58
+#: core/models.py:57
msgid "Allow mailboxes access"
msgstr ""
-#: core/models.py:60
+#: core/models.py:59
msgid "Allow this administrator to access user mailboxes"
msgstr ""
-#: core/models.py:63
+#: core/models.py:62
msgid "password"
msgstr "password"
-#: core/models.py:66
+#: core/models.py:65
#, fuzzy
#| msgid "Prefered language"
msgid "language"
msgstr "Idioma preferido"
-#: core/models.py:69
+#: core/models.py:68
#, fuzzy
#| msgid "Prefered language to display pages"
msgid "Prefered language to display pages."
msgstr "Idioma preferido para exibir páginas"
-#: core/models.py:73
+#: core/models.py:72
msgid "Phone number"
msgstr ""
-#: core/models.py:75
+#: core/models.py:74
msgid "Secondary email"
msgstr ""
-#: core/models.py:78
+#: core/models.py:77
msgid "An alternative e-mail address, can be used for recovery needs."
msgstr ""
-#: core/models.py:128
+#: core/models.py:127
msgid "Failed to update password: LDAP module not installed"
msgstr "Falha ao actualizar password: Modulo LDAP não instalado"
-#: core/models.py:157
+#: core/models.py:156
msgid "account"
msgstr "conta"
-#: core/models.py:279
+#: core/models.py:278
msgid "Unknown"
msgstr ""
-#: core/models.py:313
+#: core/models.py:312
msgid "Invalid line"
msgstr "Linha inválida"
-#: core/models.py:321
+#: core/models.py:320
msgid "You can't import an account with a role greater than yours"
msgstr "Não é possível importa uma conta com permissões superiores"
-#: core/models.py:336
+#: core/models.py:335
#, python-format
msgid "The simple user '%s' must have a valid email address"
msgstr "O simple utilizador '%s' deve ter endereço de e-mail válido"
-#: core/models.py:341
+#: core/models.py:340
#, python-format
msgid "username and email fields must not differ for '%s'"
msgstr ""
"Os campos nome de utilizador e endereço de email não deve ser diferente para "
"'%s'"
-#: core/password_validation.py:26
+#: core/password_validation.py:28
msgid "Password must contain at least {} digit."
msgid_plural "Password must contain at least {} digits."
msgstr[0] ""
msgstr[1] ""
-#: core/password_validation.py:36
+#: core/password_validation.py:38
msgid "Password must contain at least {} lowercase letter."
msgid_plural "Password must contain at least {} lowercase letters."
msgstr[0] ""
msgstr[1] ""
-#: core/password_validation.py:47
+#: core/password_validation.py:49
msgid "Password must contain at least {} uppercase letter."
msgid_plural "Password must contain at least {} uppercase letters."
msgstr[0] ""
msgstr[1] ""
-#: core/password_validation.py:59
+#: core/password_validation.py:61
msgid "Password must contain at least {} special character."
msgid_plural "Password must contain at least {} special characters."
msgstr[0] ""
msgstr[1] ""
-#: core/password_validation.py:67
+#: core/password_validation.py:69
msgid "Your password must contain a combination of different character types."
msgstr ""
@@ -640,7 +638,7 @@ msgid "API access token"
msgstr ""
#: core/templates/core/api_access.html:35
-#: core/templates/core/user_profile.html:10 lib/form_utils.py:359
+#: core/templates/core/user_profile.html:10 lib/form_utils.py:358
msgid "Update"
msgstr "Actualizar"
@@ -649,7 +647,7 @@ msgstr "Actualizar"
msgid "Hello %(user)s."
msgstr ""
-#: core/templates/core/information.html:2 core/templatetags/core_tags.py:64
+#: core/templates/core/information.html:2 core/templatetags/core_tags.py:66
msgid "Information"
msgstr "Informação"
@@ -704,7 +702,7 @@ msgstr ""
msgid "Last login"
msgstr "Último login"
-#: core/templates/core/logs.html:2 core/templatetags/core_tags.py:68
+#: core/templates/core/logs.html:2 core/templatetags/core_tags.py:70
msgid "Logs"
msgstr "Logs"
@@ -712,7 +710,7 @@ msgstr "Logs"
msgid "Previously on Modoboa..."
msgstr "Anteriormente no Modoboa..."
-#: core/templates/core/logs.html:6 lib/templatetags/lib_tags.py:109
+#: core/templates/core/logs.html:6 lib/templatetags/lib_tags.py:110
msgid "Date"
msgstr "Data"
@@ -728,7 +726,7 @@ msgstr "Logger"
msgid "Message"
msgstr "Mensagem"
-#: core/templates/core/parameters.html:2 core/templatetags/core_tags.py:73
+#: core/templates/core/parameters.html:2 core/templatetags/core_tags.py:75
msgid "Parameters"
msgstr "Parâmetros"
@@ -745,12 +743,12 @@ msgstr "Guardar"
msgid "Modoboa settings"
msgstr "Definições do Modoboa"
-#: core/templates/core/user_index.html:4 core/templatetags/core_tags.py:92
+#: core/templates/core/user_index.html:4 core/templatetags/core_tags.py:94
msgid "Settings"
msgstr "Definições"
#: core/templates/core/user_preferences.html:2
-#: core/templatetags/core_tags.py:122
+#: core/templatetags/core_tags.py:124
msgid "Preferences"
msgstr "Preferências"
@@ -764,7 +762,7 @@ msgstr "Personalizar Modoboa"
msgid "No preferences available."
msgstr "Preferências salvas"
-#: core/templates/core/user_profile.html:3 core/templatetags/core_tags.py:118
+#: core/templates/core/user_profile.html:3 core/templatetags/core_tags.py:120
msgid "Profile"
msgstr "Perfil"
@@ -772,38 +770,43 @@ msgstr "Perfil"
msgid "Update your personal information"
msgstr "Atualizar o sua informação pessoal"
-#: core/templatetags/core_tags.py:36
+#: core/templatetags/core_tags.py:38
msgid "Modoboa"
msgstr "Modoboa"
-#: core/templatetags/core_tags.py:104
+#: core/templatetags/core_tags.py:106
msgid "Logout"
msgstr "Sair"
-#: core/templatetags/core_tags.py:129
+#: core/templatetags/core_tags.py:131
msgid "API"
msgstr ""
-#: core/utils.py:35
+#: core/utils.py:36
#, fuzzy
#| msgid "Welcome to Modoboa"
msgid "The core part of Modoboa"
msgstr "Benvindo ao Modoboa"
-#: core/views/admin.py:48
+#: core/views/admin.py:47
msgid "Parameters saved"
msgstr "Parâmetros salvos"
-#: core/views/auth.py:45
+#: core/views/auth.py:50
+#, python-format
+msgid "Password scheme mismatch. Updating %s password"
+msgstr ""
+
+#: core/views/auth.py:64
#, python-format
msgid "User '%s' successfully logged in"
msgstr "O utilizador '%s' fez login com sucesso"
-#: core/views/auth.py:53
+#: core/views/auth.py:72
msgid "Your username and password didn't match. Please try again."
msgstr "O seu nome de utilizador"
-#: core/views/auth.py:88
+#: core/views/auth.py:107
#, fuzzy
#| msgid "User '%s' successfully logged in"
msgid "User '{}' successfully logged out"
@@ -828,53 +831,57 @@ msgstr "Perfil atualizado"
msgid "Connection to database %s not configured"
msgstr "A ligação à base de dados %s não está devidamente configurada"
-#: lib/exceptions.py:70
+#: lib/email_utils.py:350
+msgid "unable to determine encoding of string"
+msgstr ""
+
+#: lib/exceptions.py:71
#, python-format
msgid "Permission denied: %s"
msgstr "Acesso negado: %s"
-#: lib/exceptions.py:71
+#: lib/exceptions.py:72
msgid "Permission denied"
msgstr "Acesso negado"
-#: lib/fields.py:17 lib/validators.py:16
+#: lib/fields.py:19 lib/validators.py:18
msgid "Enter a valid domain name"
msgstr "Introduzir um nome de domínio válido "
-#: lib/fields.py:46 lib/fields.py:60
+#: lib/fields.py:48 lib/fields.py:62
#, fuzzy
#| msgid "Enter a valid domain name"
msgid "Enter a valid email address."
msgstr "Introduzir um nome de domínio válido "
-#: lib/form_utils.py:82 templates/registration/password_reset_confirm.html:12
+#: lib/form_utils.py:81 templates/registration/password_reset_confirm.html:12
#: templates/registration/password_reset_form.html:11
msgid "Submit"
msgstr "Enviar"
-#: lib/form_utils.py:115 lib/form_utils.py:118
+#: lib/form_utils.py:114 lib/form_utils.py:117
msgid "Invalid request"
msgstr "Pedido inválido"
-#: lib/form_utils.py:393
+#: lib/form_utils.py:392
msgid "Yes"
msgstr "Sim"
-#: lib/ldap_utils.py:133
+#: lib/ldap_utils.py:134
#, fuzzy
#| msgid "Failed to update password: %s"
msgid "Failed to update password: {}"
msgstr "Falha ao actualizar a password: %s"
-#: lib/templatetags/lib_tags.py:107
+#: lib/templatetags/lib_tags.py:108
msgid "From"
msgstr ""
-#: lib/templatetags/lib_tags.py:108
+#: lib/templatetags/lib_tags.py:109
msgid "To"
msgstr ""
-#: lib/templatetags/lib_tags.py:110 templates/common/email_searchbar.html:17
+#: lib/templatetags/lib_tags.py:111 templates/common/email_searchbar.html:17
msgid "Subject"
msgstr "Assunto"
@@ -991,6 +998,15 @@ msgstr ""
msgid "Modoboa password reset"
msgstr ""
+#~ msgid "Secret key"
+#~ msgstr "Chave secreta"
+
+#~ msgid "Key used to encrypt/decrypt passwords"
+#~ msgstr "Chave usada para encriptar/desencriptar passwords"
+
+#~ msgid "Key must be either 16, 24, or 32 bytes long"
+#~ msgstr "A chave deve ter tamanho de 16, 24, ou 32 bytes"
+
#, fuzzy
#~| msgid "Group name"
#~ msgid "First name"
diff --git a/modoboa/locale/ro_RO/LC_MESSAGES/django.po b/modoboa/locale/ro_RO/LC_MESSAGES/django.po
index f6f6fec16..4bb0537d6 100644
--- a/modoboa/locale/ro_RO/LC_MESSAGES/django.po
+++ b/modoboa/locale/ro_RO/LC_MESSAGES/django.po
@@ -1,372 +1,398 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
-#
+#
# Translators:
# Andrei-Ilie Olteanu , 2018
msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-01-25 09:09+0100\n"
+"POT-Creation-Date: 2018-10-05 16:08+0200\n"
"PO-Revision-Date: 2018-06-21 09:10+0000\n"
"Last-Translator: Andrei-Ilie Olteanu \n"
-"Language-Team: Romanian (Romania) (http://www.transifex.com/tonio/modoboa/language/ro_RO/)\n"
+"Language-Team: Romanian (Romania) (http://www.transifex.com/tonio/modoboa/"
+"language/ro_RO/)\n"
+"Language: ro_RO\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Language: ro_RO\n"
-"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n"
+"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?"
+"2:1));\n"
-#: core/app_settings.py:26
+#: core/app_settings.py:22
msgid "User profile"
msgstr "Profil utilizator"
-#: core/app_settings.py:39
+#: core/app_settings.py:35
msgid "Authentication"
msgstr "Autentificare"
-#: core/app_settings.py:42
+#: core/app_settings.py:38
msgid "Authentication type"
msgstr "Tip autentificare"
-#: core/app_settings.py:43
+#: core/app_settings.py:39
msgid "Local"
msgstr "Local"
-#: core/app_settings.py:46
+#: core/app_settings.py:42
msgid "The backend used for authentication"
msgstr "Tehnologia backend folosită pentru autentificare "
-#: core/app_settings.py:51
+#: core/app_settings.py:47
msgid "Default password scheme"
msgstr "Schema pentru parola implicită"
-#: core/app_settings.py:55
+#: core/app_settings.py:51
msgid "md5crypt (weak)"
msgstr "md5crypt (protecție slabă)"
-#: core/app_settings.py:56
+#: core/app_settings.py:52
msgid "sha256 (weak)"
msgstr "sha256 (protecție slabă)"
-#: core/app_settings.py:57
+#: core/app_settings.py:53
msgid "md5 (weak)"
msgstr "md5 (protecție slabă)"
-#: core/app_settings.py:58
+#: core/app_settings.py:54
msgid "crypt (weak)"
msgstr "crypt (protecție slabă)"
-#: core/app_settings.py:59
+#: core/app_settings.py:55
msgid "plain (weak)"
msgstr "în clar (protecție slabă)"
-#: core/app_settings.py:61
+#: core/app_settings.py:57
msgid "Scheme used to crypt mailbox passwords"
msgstr "Schema de criptare pentru parole"
-#: core/app_settings.py:66
+#: core/app_settings.py:62
msgid "Rounds"
msgstr "Iterații"
-#: core/app_settings.py:69
+#: core/app_settings.py:65
msgid ""
"Number of rounds to use (only used by sha256crypt and sha512crypt). Must be "
"between 1000 and 999999999, inclusive."
-msgstr "Număr de iterații folosite (setare folosită doar de sha256crypt și sha512crypt) Trebuie să fie un număr cuprins între 1000 și 999999999 inclusiv."
+msgstr ""
+"Număr de iterații folosite (setare folosită doar de sha256crypt și "
+"sha512crypt) Trebuie să fie un număr cuprins între 1000 și 999999999 "
+"inclusiv."
-#: core/app_settings.py:76
-msgid "Secret key"
-msgstr "Cheie secretă"
+#: core/app_settings.py:72
+#, fuzzy
+#| msgid "Default password scheme"
+msgid "Update password scheme"
+msgstr "Schema pentru parola implicită"
-#: core/app_settings.py:78
-msgid "Key used to encrypt/decrypt passwords"
-msgstr "Cheia folosită pentru criptarea/decriptarea parolelor"
+#: core/app_settings.py:75
+msgid "Update user password at login to use the default password scheme"
+msgstr ""
-#: core/app_settings.py:83
+#: core/app_settings.py:80
msgid "Default password"
msgstr "Parola implicită"
-#: core/app_settings.py:86
+#: core/app_settings.py:83
msgid "Default password for automatically created accounts."
msgstr "Parola implicită setată pentru conturile create automat."
-#: core/app_settings.py:90
+#: core/app_settings.py:87
msgid "Random password length"
msgstr "Mărime parolă aleatorie"
-#: core/app_settings.py:94
+#: core/app_settings.py:91
msgid "Length of randomly generated passwords."
msgstr "Mărimea parolelor generate aleator."
-#: core/app_settings.py:98
+#: core/app_settings.py:95
msgid "LDAP settings"
msgstr "Setări LDAP"
-#: core/app_settings.py:101
+#: core/app_settings.py:98
msgid "Server address"
msgstr "Adresă server"
-#: core/app_settings.py:104
+#: core/app_settings.py:101
msgid "The IP address or the DNS name of the LDAP server"
msgstr "Adresa IP sau adresa DNS a serverului LDAP"
-#: core/app_settings.py:109
+#: core/app_settings.py:106
msgid "Server port"
msgstr "Port server"
-#: core/app_settings.py:111
+#: core/app_settings.py:108
msgid "The TCP port number used by the LDAP server"
msgstr "Numărul de port TCP folosit de serverul LDAP"
-#: core/app_settings.py:116
+#: core/app_settings.py:113
msgid "Use a secured connection"
msgstr "Folosește o conexiune securizată"
-#: core/app_settings.py:120
+#: core/app_settings.py:117
msgid "Use an SSL/STARTTLS connection to access the LDAP server"
-msgstr "Folosește o conexiune de tip SSL/STARTTLS pentru a accesa serverul LDAP"
+msgstr ""
+"Folosește o conexiune de tip SSL/STARTTLS pentru a accesa serverul LDAP"
-#: core/app_settings.py:124
+#: core/app_settings.py:121
msgid "Authentication method"
msgstr "Metoda de autentificare"
-#: core/app_settings.py:125
+#: core/app_settings.py:122
msgid "Search and bind"
msgstr "Căutare și atribuire"
-#: core/app_settings.py:126
+#: core/app_settings.py:123
msgid "Direct bind"
msgstr "Atribuire directă"
-#: core/app_settings.py:128
+#: core/app_settings.py:125
msgid "Choose the authentication method to use"
msgstr "Alege metodă folosită pentru autentificare"
-#: core/app_settings.py:133
+#: core/app_settings.py:130
msgid "Bind DN"
msgstr "Atribuie DN"
-#: core/app_settings.py:136
+#: core/app_settings.py:133
msgid ""
"The distinguished name to use when binding to the LDAP server. Leave empty "
"for an anonymous bind"
-msgstr "Numele ales folosit la atribuirea cu servarul LDAP. Câpul necompletat se foloseste în cazul atribuirii anonime"
+msgstr ""
+"Numele ales folosit la atribuirea cu servarul LDAP. Câpul necompletat se "
+"foloseste în cazul atribuirii anonime"
-#: core/app_settings.py:144
+#: core/app_settings.py:141
msgid "Bind password"
msgstr "Parola de atribuire"
-#: core/app_settings.py:147
+#: core/app_settings.py:144
msgid "The password to use when binding to the LDAP server (with 'Bind DN')"
-msgstr "Parola folosită la momentul atribuiri cu servarul LDAP (vezi 'Atribuie DB')"
+msgstr ""
+"Parola folosită la momentul atribuiri cu servarul LDAP (vezi 'Atribuie DB')"
-#: core/app_settings.py:156
+#: core/app_settings.py:153
msgid "Users search base"
msgstr "Căutare bază de utilizatori"
-#: core/app_settings.py:159
+#: core/app_settings.py:156
msgid "The distinguished name of the search base used to find users"
msgstr "Numele ales al bazei de căutare utilizat pentru a găsi utilizatori"
-#: core/app_settings.py:166
+#: core/app_settings.py:163
msgid "Search filter"
msgstr "Filtru de căutare"
-#: core/app_settings.py:169
+#: core/app_settings.py:166
msgid ""
"An optional filter string (e.g. '(objectClass=person)'). In order to be "
"valid, it must be enclosed in parentheses."
-msgstr "Un filtru opțional (de ex. '(ObjectClass = persoană)'). Pentru a fi valid, trebuie să fie închis în paranteze."
+msgstr ""
+"Un filtru opțional (de ex. '(ObjectClass = persoană)'). Pentru a fi valid, "
+"trebuie să fie închis în paranteze."
-#: core/app_settings.py:177
+#: core/app_settings.py:174
msgid "User DN template"
msgstr "Templateul DN pt utilizator"
-#: core/app_settings.py:180
+#: core/app_settings.py:177
#, python-format
msgid ""
"The template used to construct a user's DN. It should contain one "
"placeholder (ie. %(user)s)"
-msgstr "Templateul folosit pentru a construi un utilizator DN. Ar trebui să conțină un substituent (de ex. %(user)s)"
+msgstr ""
+"Templateul folosit pentru a construi un utilizator DN. Ar trebui să conțină "
+"un substituent (de ex. %(user)s)"
-#: core/app_settings.py:188
+#: core/app_settings.py:185
msgid "Password attribute"
msgstr "Atributul parolă"
-#: core/app_settings.py:190
+#: core/app_settings.py:187
msgid "The attribute used to store user passwords"
msgstr "Atributul folosit pentru a stoca parola utilizatorului"
-#: core/app_settings.py:195
+#: core/app_settings.py:192
msgid "Active Directory"
msgstr "Active Directory"
-#: core/app_settings.py:198
+#: core/app_settings.py:195
msgid "Tell if the LDAP server is an Active Directory one"
msgstr "Specifică daca serverul LDAP este unul de tip Active Directory"
-#: core/app_settings.py:202
+#: core/app_settings.py:199
msgid "Administrator groups"
msgstr "Grupuri administrator"
-#: core/app_settings.py:205
+#: core/app_settings.py:202
msgid ""
-"Members of those LDAP Posix groups will be created as domain administrators."
-" Use ';' characters to separate groups."
-msgstr "Membrii acelor grupuri LDAP Posix vor fi create ca administratori de domeniu. Folosește caracterul ';' pentru a separa grupurile."
+"Members of those LDAP Posix groups will be created as domain administrators. "
+"Use ';' characters to separate groups."
+msgstr ""
+"Membrii acelor grupuri LDAP Posix vor fi create ca administratori de "
+"domeniu. Folosește caracterul ';' pentru a separa grupurile."
-#: core/app_settings.py:212
+#: core/app_settings.py:209
msgid "Group type"
msgstr "Tipul de grup"
-#: core/app_settings.py:216
+#: core/app_settings.py:213
msgid "The LDAP group type to use with your directory."
msgstr "Tipul grupului LDAP pe care îl utilizați cu directorul selectat."
-#: core/app_settings.py:221
+#: core/app_settings.py:218
msgid "Groups search base"
msgstr "Baza pentru căutare grupuri"
-#: core/app_settings.py:224
+#: core/app_settings.py:221
msgid "The distinguished name of the search base used to find groups"
msgstr "Numele ales al bazei de căutare utilizat pentru a găsi grupuri"
-#: core/app_settings.py:229 core/templates/core/dashboard.html:5
+#: core/app_settings.py:226 core/templates/core/dashboard.html:5
msgid "Dashboard"
msgstr "Bord"
-#: core/app_settings.py:232
+#: core/app_settings.py:229
msgid "Custom RSS feed"
msgstr "Feedul RSS personalizat"
-#: core/app_settings.py:235
+#: core/app_settings.py:232
msgid "Display custom RSS feed to resellers and domain administrators"
-msgstr "Afișează feedul RSS personalizat la reselleri și administratori de domeniu"
+msgstr ""
+"Afișează feedul RSS personalizat la reselleri și administratori de domeniu"
-#: core/app_settings.py:240
+#: core/app_settings.py:237
msgid "Hide features widget"
msgstr "Ascunde widgetul de caracteristici "
-#: core/app_settings.py:243
+#: core/app_settings.py:240
msgid "Hide features widget for resellers and domain administrators"
-msgstr "Ascunde widgetul de caracteristici pentru reselleri și administratori de domeniu"
+msgstr ""
+"Ascunde widgetul de caracteristici pentru reselleri și administratori de "
+"domeniu"
-#: core/app_settings.py:247
+#: core/app_settings.py:244
msgid "Notifications"
msgstr "Notificări"
-#: core/app_settings.py:250
+#: core/app_settings.py:247
msgid "Sender address"
msgstr "Adresa expeditorului"
-#: core/app_settings.py:253
+#: core/app_settings.py:250
msgid "Email address used to send notifications."
msgstr "Adresa de email folosită pentru trimiterea notificărilor."
-#: core/app_settings.py:257
+#: core/app_settings.py:254
msgid "Public API"
msgstr "API public"
-#: core/app_settings.py:260
+#: core/app_settings.py:257
msgid "Enable communication"
msgstr "Activați comunicarea"
-#: core/app_settings.py:263
+#: core/app_settings.py:260
msgid "Enable communication with Modoboa public API"
msgstr "Activați comunicarea cu API-ul public Modoboa"
-#: core/app_settings.py:267
+#: core/app_settings.py:264
msgid "Check new versions"
msgstr "Verifică dacă există noi versiuni"
-#: core/app_settings.py:270
+#: core/app_settings.py:267
msgid "Automatically checks if a newer version is available"
msgstr "Verifică automat dacă este disponibilă o versiune mai nouă"
-#: core/app_settings.py:274
+#: core/app_settings.py:271
msgid "Send statistics"
msgstr "Trimite statistici"
-#: core/app_settings.py:277
+#: core/app_settings.py:274
msgid "Send statistics to Modoboa public API (counters and used extensions)"
-msgstr "Trimiteți statistici către API-ul public Modoboa (contoare și extensii utilizate)"
+msgstr ""
+"Trimiteți statistici către API-ul public Modoboa (contoare și extensii "
+"utilizate)"
-#: core/app_settings.py:281
+#: core/app_settings.py:278
msgid "Miscellaneous"
msgstr "Diverse"
-#: core/app_settings.py:284
+#: core/app_settings.py:281
msgid "Inactive account threshold"
msgstr "Pragul pentru cont invalid"
-#: core/app_settings.py:287
+#: core/app_settings.py:284
msgid ""
-"An account with a last login date greater than this threshold (in days) will"
-" be considered as inactive"
-msgstr "Un cont cu o ultima data de conectare mai mare decat acest prag (in zile) va fi considerat inactiv"
+"An account with a last login date greater than this threshold (in days) will "
+"be considered as inactive"
+msgstr ""
+"Un cont cu o ultima data de conectare mai mare decat acest prag (in zile) va "
+"fi considerat inactiv"
-#: core/app_settings.py:294
+#: core/app_settings.py:291
msgid "Top notifications check interval"
msgstr "Intervalul de verificare a notificărilor"
-#: core/app_settings.py:297
+#: core/app_settings.py:294
msgid "Interval between two top notification checks (in seconds)"
-msgstr "Intervalul dintre două verificări de notificare principală (în secunde)"
+msgstr ""
+"Intervalul dintre două verificări de notificare principală (în secunde)"
-#: core/app_settings.py:303
+#: core/app_settings.py:300
msgid "Maximum log record age"
msgstr "Vechimea maximă a înregistrărilor log"
-#: core/app_settings.py:305
+#: core/app_settings.py:302
msgid "The maximum age in days of a log record"
msgstr "Vechimea maximă în zilele de înregistrare a intrărilor în jurnal"
-#: core/app_settings.py:310
+#: core/app_settings.py:307
msgid "Items per page"
msgstr "Număr de itemi per pagină"
-#: core/app_settings.py:312
+#: core/app_settings.py:309
msgid "Number of displayed items per page"
msgstr "Numărul de itemi afișați pe o pagină"
-#: core/app_settings.py:317
+#: core/app_settings.py:314
msgid "Default top redirection"
msgstr "Redirecționarea principală implicită"
-#: core/app_settings.py:321
+#: core/app_settings.py:318
msgid "The default redirection used when no application is specified"
-msgstr "Redirecționarea implicită utilizată atunci când nu este specificată nici o aplicație"
+msgstr ""
+"Redirecționarea implicită utilizată atunci când nu este specificată nici o "
+"aplicație"
-#: core/app_settings.py:354
-msgid "Key must be either 16, 24, or 32 bytes long"
-msgstr "Chiea trebuie să aibă o lungime de 16,24 sau 32 de octeți"
-
-#: core/app_settings.py:363
+#: core/app_settings.py:353
msgid "Invalid syntax"
msgstr "Sintaxă invalidă"
-#: core/app_settings.py:369
+#: core/app_settings.py:359
msgid "Invalid rounds number"
msgstr "Număr invalid de iterații"
-#: core/app_settings.py:396
+#: core/app_settings.py:386
msgid "This field is required"
msgstr "Acest câmp este necesar"
-#: core/apps.py:20
+#: core/apps.py:22
msgid "General"
msgstr "General"
-#: core/checks/settings_checks.py:11
+#: core/checks/settings_checks.py:10
msgid ""
"You have USE_TZ set to False, this may result in issues during transitions "
"between summer/winter time (ie the same local time occuring twice due to "
"clock change)."
-msgstr "Aveți USE_TZ setat la False, acest lucru poate duce la probleme în timpul tranzițiilor între timul de vara / iarna (adică același timp local care apare de două ori ca urmare a modificării ceasului)."
+msgstr ""
+"Aveți USE_TZ setat la False, acest lucru poate duce la probleme în timpul "
+"tranzițiilor între timul de vara / iarna (adică același timp local care "
+"apare de două ori ca urmare a modificării ceasului)."
-#: core/checks/settings_checks.py:14
+#: core/checks/settings_checks.py:13
msgid "Set `USE_TZ = True` in settings.py"
msgstr "Setează `USE_TZ = True` în settings.py"
@@ -386,173 +412,176 @@ msgstr "Reseller"
msgid "Super administrator"
msgstr "Super administrator"
-#: core/constants.py:51 lib/form_utils.py:394
+#: core/constants.py:53 lib/form_utils.py:393
msgid "No"
msgstr "Nu"
-#: core/forms.py:24
+#: core/forms.py:22
msgid "Username"
msgstr "Utilizator"
-#: core/forms.py:28
+#: core/forms.py:26
msgid "Password"
msgstr "Parolă"
-#: core/forms.py:41
+#: core/forms.py:39
msgid "Old password"
msgstr "Vechea parolă"
-#: core/forms.py:45
+#: core/forms.py:43
msgid "New password"
msgstr "Noua parolă"
-#: core/forms.py:49
+#: core/forms.py:47
msgid "Confirmation"
msgstr "Confirmare"
-#: core/forms.py:77
+#: core/forms.py:75
msgid "Old password mismatchs"
msgstr "Parola veche nu se potivește"
-#: core/forms.py:86
+#: core/forms.py:84
msgid "Passwords mismatch"
msgstr "Parolele nu se potrivesc"
-#: core/forms.py:106
+#: core/forms.py:104
msgid "Enable API access"
msgstr "Activează accesul API"
-#: core/handlers.py:43
+#: core/handlers.py:40
msgid "added"
msgstr "adăugat"
-#: core/handlers.py:46
+#: core/handlers.py:43
msgid "modified"
msgstr "modificat"
-#: core/handlers.py:48
+#: core/handlers.py:45
#, python-format
msgid "%(object)s '%(name)s' %(action)s by user %(user)s"
msgstr "%(object)s '%(name)s' %(action)s de utilizatorul %(user)s"
-#: core/handlers.py:70
+#: core/handlers.py:67
#, python-format
msgid "%(object)s '%(name)s' %(action)s by "
msgstr "%(object)s '%(name)s' %(action)s de"
-#: core/handlers.py:72
+#: core/handlers.py:69
msgid "deleted"
msgstr "sterș"
-#: core/handlers.py:76
+#: core/handlers.py:73
msgid "user {}"
msgstr "utilizator {}"
-#: core/handlers.py:78
+#: core/handlers.py:75
msgid "management command"
msgstr "comandă de management"
-#: core/handlers.py:102
+#: core/handlers.py:99
msgid "You can't delete your own account"
msgstr "Nu poți să îți ștergi propriul cont"
-#: core/handlers.py:138
+#: core/handlers.py:135
msgid "One or more updates are available"
msgstr "Sunt disponibile una sau mai multe actualizări"
-#: core/models.py:58
+#: core/models.py:57
msgid "Allow mailboxes access"
msgstr "Permiteți accesul la cutiile poștale"
-#: core/models.py:60
+#: core/models.py:59
msgid "Allow this administrator to access user mailboxes"
-msgstr "Permiteți acestui administrator să acceseze cutiile poștale ale utilizatorilor"
+msgstr ""
+"Permiteți acestui administrator să acceseze cutiile poștale ale "
+"utilizatorilor"
-#: core/models.py:63
+#: core/models.py:62
msgid "password"
msgstr "parolă"
-#: core/models.py:66
+#: core/models.py:65
msgid "language"
msgstr "limbă"
-#: core/models.py:69
+#: core/models.py:68
msgid "Prefered language to display pages."
msgstr "Limba preferată pentru afișarea paginilor."
-#: core/models.py:73
+#: core/models.py:72
msgid "Phone number"
msgstr "Numar de telefon"
-#: core/models.py:75
+#: core/models.py:74
msgid "Secondary email"
msgstr "Email secundar"
-#: core/models.py:78
+#: core/models.py:77
msgid "An alternative e-mail address, can be used for recovery needs."
msgstr "O adresă de e-mail alternativă poate fi utilizată pentru recuperare."
-#: core/models.py:128
+#: core/models.py:127
msgid "Failed to update password: LDAP module not installed"
msgstr "Eroare la actualizarea parolei: modulul LDAP nu este instalat"
-#: core/models.py:157
+#: core/models.py:156
msgid "account"
msgstr "cont"
-#: core/models.py:279
+#: core/models.py:278
msgid "Unknown"
msgstr "Necunoscut"
-#: core/models.py:313
+#: core/models.py:312
msgid "Invalid line"
msgstr "Linie invalidă"
-#: core/models.py:321
+#: core/models.py:320
msgid "You can't import an account with a role greater than yours"
msgstr "Nu puteți importa un cont cu un rol mai mare decât al dvs."
-#: core/models.py:336
+#: core/models.py:335
#, python-format
msgid "The simple user '%s' must have a valid email address"
msgstr "Utilizatorul simplu '%s' trebuie să aibă o adresă de e-mail validă"
-#: core/models.py:341
+#: core/models.py:340
#, python-format
msgid "username and email fields must not differ for '%s'"
msgstr "câmpului de utilizator și e-mail nu trebuie să difere pentru '%s'"
-#: core/password_validation.py:26
+#: core/password_validation.py:28
msgid "Password must contain at least {} digit."
msgid_plural "Password must contain at least {} digits."
msgstr[0] "Parola trebuie să conțină cel puțin {} cifră."
msgstr[1] "Parola trebuie să conțină cel puțin {} cifre."
msgstr[2] "Parola trebuie să conțină cel puțin {} cifre."
-#: core/password_validation.py:36
+#: core/password_validation.py:38
msgid "Password must contain at least {} lowercase letter."
msgid_plural "Password must contain at least {} lowercase letters."
msgstr[0] "Parola trebuie să conțină cel puțin {} literă mică."
msgstr[1] "Parola trebuie să conțină cel puțin {} litere mici."
msgstr[2] "Parola trebuie să conțină cel puțin {} litere mici."
-#: core/password_validation.py:47
+#: core/password_validation.py:49
msgid "Password must contain at least {} uppercase letter."
msgid_plural "Password must contain at least {} uppercase letters."
msgstr[0] "Parola trebuie să conțină cel puțin {} majusculă."
msgstr[1] "Parola trebuie să conțină cel puțin {} majuscule."
msgstr[2] "Parola trebuie să conțină cel puțin {} majuscule."
-#: core/password_validation.py:59
+#: core/password_validation.py:61
msgid "Password must contain at least {} special character."
msgid_plural "Password must contain at least {} special characters."
msgstr[0] "Parola trebuie să conțină cel puțin {} caracter special."
msgstr[1] "Parola trebuie să conțină cel puțin {} caractere speciale."
msgstr[2] "Parola trebuie să conțină cel puțin {} caractere speciale."
-#: core/password_validation.py:67
+#: core/password_validation.py:69
msgid "Your password must contain a combination of different character types."
-msgstr "Parola dvs. trebuie să conțină o combinație de tipuri diferite de caractere."
+msgstr ""
+"Parola dvs. trebuie să conțină o combinație de tipuri diferite de caractere."
#: core/templates/core/_current_features.html:6
msgid "Features looking for sponsoring"
@@ -578,7 +607,9 @@ msgstr "Ultimele știri"
msgid ""
"Visit the official "
"weblog for more information."
-msgstr "Vizitează blogul oficial pentru mai multe informații."
+msgstr ""
+"Vizitează blogul "
+"oficial pentru mai multe informații."
#: core/templates/core/api_access.html:3
msgid "API access"
@@ -591,16 +622,18 @@ msgstr "Controlați-vă accesul la API-ul Modoboa"
#: core/templates/core/api_access.html:7
#, python-format
msgid ""
-"A documentation of the API is available here."
-msgstr "Documentația API-ului este disponibilă aici."
+"A documentation of the API is available here."
+msgstr ""
+"Documentația API-ului este disponibilă aici."
#: core/templates/core/api_access.html:14
msgid "API access token"
msgstr "Token de accesare API"
#: core/templates/core/api_access.html:35
-#: core/templates/core/user_profile.html:10 lib/form_utils.py:359
+#: core/templates/core/user_profile.html:10 lib/form_utils.py:358
msgid "Update"
msgstr "Actualizare"
@@ -609,7 +642,7 @@ msgstr "Actualizare"
msgid "Hello %(user)s."
msgstr "Bună ziua %(user)s."
-#: core/templates/core/information.html:2 core/templatetags/core_tags.py:64
+#: core/templates/core/information.html:2 core/templatetags/core_tags.py:66
msgid "Information"
msgstr "Informatie"
@@ -623,7 +656,9 @@ msgstr "Sunt disponibile una sau mai multe actualizări!"
#: core/templates/core/information.html:6
msgid "Check the following list to find the component(s) that can be updated."
-msgstr "Verificați lista următoare pentru a găsi componentele(ul) care pot fi actualizate."
+msgstr ""
+"Verificați lista următoare pentru a găsi componentele(ul) care pot fi "
+"actualizate."
#: core/templates/core/information.html:10
msgid "Applications"
@@ -658,7 +693,7 @@ msgstr "Rol"
msgid "Last login"
msgstr "Ultima autentificare"
-#: core/templates/core/logs.html:2 core/templatetags/core_tags.py:68
+#: core/templates/core/logs.html:2 core/templatetags/core_tags.py:70
msgid "Logs"
msgstr "Loguri"
@@ -666,7 +701,7 @@ msgstr "Loguri"
msgid "Previously on Modoboa..."
msgstr "Anterior pe Modoboa ..."
-#: core/templates/core/logs.html:6 lib/templatetags/lib_tags.py:109
+#: core/templates/core/logs.html:6 lib/templatetags/lib_tags.py:110
msgid "Date"
msgstr "Dată"
@@ -682,7 +717,7 @@ msgstr "Logger"
msgid "Message"
msgstr "Mesaj"
-#: core/templates/core/parameters.html:2 core/templatetags/core_tags.py:73
+#: core/templates/core/parameters.html:2 core/templatetags/core_tags.py:75
msgid "Parameters"
msgstr "Parametrii"
@@ -699,12 +734,12 @@ msgstr "Salvează"
msgid "Modoboa settings"
msgstr "Setări Modoboa "
-#: core/templates/core/user_index.html:4 core/templatetags/core_tags.py:92
+#: core/templates/core/user_index.html:4 core/templatetags/core_tags.py:94
msgid "Settings"
msgstr "Setări"
#: core/templates/core/user_preferences.html:2
-#: core/templatetags/core_tags.py:122
+#: core/templatetags/core_tags.py:124
msgid "Preferences"
msgstr "Preferințe"
@@ -716,7 +751,7 @@ msgstr "Personalizați Modoboa"
msgid "No preferences available."
msgstr "Nu există preferințe disponibile."
-#: core/templates/core/user_profile.html:3 core/templatetags/core_tags.py:118
+#: core/templates/core/user_profile.html:3 core/templatetags/core_tags.py:120
msgid "Profile"
msgstr "Profil"
@@ -724,36 +759,43 @@ msgstr "Profil"
msgid "Update your personal information"
msgstr "Actualizați-vă informațiile personale"
-#: core/templatetags/core_tags.py:36
+#: core/templatetags/core_tags.py:38
msgid "Modoboa"
msgstr "Modoboa"
-#: core/templatetags/core_tags.py:104
+#: core/templatetags/core_tags.py:106
msgid "Logout"
msgstr "Deconectare"
-#: core/templatetags/core_tags.py:129
+#: core/templatetags/core_tags.py:131
msgid "API"
msgstr "API"
-#: core/utils.py:35
+#: core/utils.py:36
msgid "The core part of Modoboa"
msgstr "Partea de nucleu a Modoboa"
-#: core/views/admin.py:48
+#: core/views/admin.py:47
msgid "Parameters saved"
msgstr "Parametrii au fost salvați"
-#: core/views/auth.py:45
+#: core/views/auth.py:50
+#, python-format
+msgid "Password scheme mismatch. Updating %s password"
+msgstr ""
+
+#: core/views/auth.py:64
#, python-format
msgid "User '%s' successfully logged in"
msgstr "Utilizatorul '%s' conectat cu succes"
-#: core/views/auth.py:53
+#: core/views/auth.py:72
msgid "Your username and password didn't match. Please try again."
-msgstr "Numele de utilizator și parola nu s-au potrivit. Vă rugăm să încercați din nou."
+msgstr ""
+"Numele de utilizator și parola nu s-au potrivit. Vă rugăm să încercați din "
+"nou."
-#: core/views/auth.py:88
+#: core/views/auth.py:107
msgid "User '{}' successfully logged out"
msgstr "Utilizatorul '{}' sa deconectat cu succes"
@@ -774,49 +816,53 @@ msgstr "Accesul a fost actualizat"
msgid "Connection to database %s not configured"
msgstr "Conexiunea la baza de date %s nu a fost configurată"
-#: lib/exceptions.py:70
+#: lib/email_utils.py:350
+msgid "unable to determine encoding of string"
+msgstr ""
+
+#: lib/exceptions.py:71
#, python-format
msgid "Permission denied: %s"
msgstr "Permisiune refuzată: %s"
-#: lib/exceptions.py:71
+#: lib/exceptions.py:72
msgid "Permission denied"
msgstr "Permisiune refuzată"
-#: lib/fields.py:17 lib/validators.py:16
+#: lib/fields.py:19 lib/validators.py:18
msgid "Enter a valid domain name"
msgstr "Introduceți un nume de domeniu valid"
-#: lib/fields.py:46 lib/fields.py:60
+#: lib/fields.py:48 lib/fields.py:62
msgid "Enter a valid email address."
msgstr "Introduceți o adresă de email validă."
-#: lib/form_utils.py:82 templates/registration/password_reset_confirm.html:12
+#: lib/form_utils.py:81 templates/registration/password_reset_confirm.html:12
#: templates/registration/password_reset_form.html:11
msgid "Submit"
msgstr "Trimite"
-#: lib/form_utils.py:115 lib/form_utils.py:118
+#: lib/form_utils.py:114 lib/form_utils.py:117
msgid "Invalid request"
msgstr "Cerere invalidă"
-#: lib/form_utils.py:393
+#: lib/form_utils.py:392
msgid "Yes"
msgstr "Da"
-#: lib/ldap_utils.py:133
+#: lib/ldap_utils.py:134
msgid "Failed to update password: {}"
msgstr "Eroare la actualizarea parolei: {}"
-#: lib/templatetags/lib_tags.py:107
+#: lib/templatetags/lib_tags.py:108
msgid "From"
msgstr "De la"
-#: lib/templatetags/lib_tags.py:108
+#: lib/templatetags/lib_tags.py:109
msgid "To"
msgstr "Către"
-#: lib/templatetags/lib_tags.py:110 templates/common/email_searchbar.html:17
+#: lib/templatetags/lib_tags.py:111 templates/common/email_searchbar.html:17
msgid "Subject"
msgstr "Subiect"
@@ -853,9 +899,8 @@ msgstr "Eroare:"
msgid "Help:"
msgstr "Ajutor:"
-#: templates/common/generic_modal.html:6
-#: templates/common/generic_modal.html:13 templates/common/wizard_forms.html:6
-#: templates/common/wizard_forms.html:27
+#: templates/common/generic_modal.html:6 templates/common/generic_modal.html:13
+#: templates/common/wizard_forms.html:6 templates/common/wizard_forms.html:27
msgid "Close"
msgstr "Închide"
@@ -889,7 +934,9 @@ msgstr "Ai uitat parola?"
msgid ""
"Your password has been set. You may go ahead and sign "
"in now."
-msgstr "Parola dvs. a fost setată. Puteți acum să va autentificați din nou."
+msgstr ""
+"Parola dvs. a fost setată. Puteți acum să va autentificați din nou."
#: templates/registration/password_reset_confirm.html:7
msgid "Change password"
@@ -899,7 +946,9 @@ msgstr "Schimbă parola"
msgid ""
"The password reset link was invalid, possibly because it has already been "
"used. Please request a new password reset."
-msgstr "Linkul de resetare a parolei este invalid, posibil din cauza faptului că a fost deja utilizat. Te rugăm solicită o nouă resetare a parolei. "
+msgstr ""
+"Linkul de resetare a parolei este invalid, posibil din cauza faptului că a "
+"fost deja utilizat. Te rugăm solicită o nouă resetare a parolei. "
#: templates/registration/password_reset_done.html:7
msgid ""
@@ -907,20 +956,28 @@ msgid ""
"exists with the email you entered. You should receive them shortly.
"
"If you don't receive an email, please make sure you've entered your "
"primary address, and check your spam folder.
"
-msgstr "V-am trimis prin e-mail instrucțiuni pentru setarea parolei, dacă există un cont cu adresa pe care ați introdus-o. Ar trebui să le primiți în scurt timp.
Dacă nu primiți un e-mail, asigurați-vă că ați introdus adresa dvs. principală și că verificați dosarul dvs. de spam.
"
+msgstr ""
+"V-am trimis prin e-mail instrucțiuni pentru setarea parolei, dacă există "
+"un cont cu adresa pe care ați introdus-o. Ar trebui să le primiți în scurt "
+"timp.
Dacă nu primiți un e-mail, asigurați-vă că ați introdus adresa "
+"dvs. principală și că verificați dosarul dvs. de spam.
"
#: templates/registration/password_reset_email.html:4
#, python-format
msgid ""
"To initiate the password reset process for your %(username)s Modoboa "
"account, click the link below:"
-msgstr "Pentru a iniția procesul de resetare a parolei pentru contul dvs. %(username)s Modoboa, faceți clic pe linkul de mai jos:"
+msgstr ""
+"Pentru a iniția procesul de resetare a parolei pentru contul dvs. "
+"%(username)s Modoboa, faceți clic pe linkul de mai jos:"
#: templates/registration/password_reset_email.html:10
msgid ""
"If clicking the link above doesn't work, please copy and paste the URL in a "
"new browser window instead."
-msgstr "Dacă făcând click pe linkul de mai sus nu funcționează, copiați și lipiți adresa URL într-o fereastră nouă a browserului."
+msgstr ""
+"Dacă făcând click pe linkul de mai sus nu funcționează, copiați și lipiți "
+"adresa URL într-o fereastră nouă a browserului."
#: templates/registration/password_reset_email.html:14
msgid "Sincerely, The Modoboa Team."
@@ -929,3 +986,12 @@ msgstr "Cu sinceritate, Echipa Modoboa."
#: templates/registration/password_reset_subject.txt:3
msgid "Modoboa password reset"
msgstr "Resetare parola Modoboa"
+
+#~ msgid "Secret key"
+#~ msgstr "Cheie secretă"
+
+#~ msgid "Key used to encrypt/decrypt passwords"
+#~ msgstr "Cheia folosită pentru criptarea/decriptarea parolelor"
+
+#~ msgid "Key must be either 16, 24, or 32 bytes long"
+#~ msgstr "Chiea trebuie să aibă o lungime de 16,24 sau 32 de octeți"
diff --git a/modoboa/locale/ru/LC_MESSAGES/django.po b/modoboa/locale/ru/LC_MESSAGES/django.po
index c3f49640f..d3861437f 100644
--- a/modoboa/locale/ru/LC_MESSAGES/django.po
+++ b/modoboa/locale/ru/LC_MESSAGES/django.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-01-25 09:09+0100\n"
+"POT-Creation-Date: 2018-10-05 16:08+0200\n"
"PO-Revision-Date: 2013-12-03 09:35+0000\n"
"Last-Translator: Antoine Nguyen \n"
"Language-Team: Russian (http://www.transifex.com/projects/p/modoboa/language/"
@@ -19,145 +19,147 @@ msgstr ""
"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"
-#: core/app_settings.py:26
+#: core/app_settings.py:22
#, fuzzy
#| msgid "Profile"
msgid "User profile"
msgstr "Профиль"
-#: core/app_settings.py:39
+#: core/app_settings.py:35
msgid "Authentication"
msgstr "Аутентификация"
-#: core/app_settings.py:42
+#: core/app_settings.py:38
msgid "Authentication type"
msgstr "Тип аутентификации"
-#: core/app_settings.py:43
+#: core/app_settings.py:39
msgid "Local"
msgstr "Локальный"
-#: core/app_settings.py:46
+#: core/app_settings.py:42
msgid "The backend used for authentication"
msgstr "Базовая программа для проверки подлинности"
-#: core/app_settings.py:51
+#: core/app_settings.py:47
msgid "Default password scheme"
msgstr "Схема пароля по умолчанию"
-#: core/app_settings.py:55
+#: core/app_settings.py:51
msgid "md5crypt (weak)"
msgstr ""
-#: core/app_settings.py:56
+#: core/app_settings.py:52
msgid "sha256 (weak)"
msgstr ""
-#: core/app_settings.py:57
+#: core/app_settings.py:53
msgid "md5 (weak)"
msgstr ""
-#: core/app_settings.py:58
+#: core/app_settings.py:54
msgid "crypt (weak)"
msgstr ""
-#: core/app_settings.py:59
+#: core/app_settings.py:55
msgid "plain (weak)"
msgstr ""
-#: core/app_settings.py:61
+#: core/app_settings.py:57
msgid "Scheme used to crypt mailbox passwords"
msgstr "Схема используемая для шифровании пароля почтового ящика."
-#: core/app_settings.py:66
+#: core/app_settings.py:62
msgid "Rounds"
msgstr ""
-#: core/app_settings.py:69
+#: core/app_settings.py:65
msgid ""
"Number of rounds to use (only used by sha256crypt and sha512crypt). Must be "
"between 1000 and 999999999, inclusive."
msgstr ""
-#: core/app_settings.py:76
-msgid "Secret key"
-msgstr "Секретный ключ"
+#: core/app_settings.py:72
+#, fuzzy
+#| msgid "Default password scheme"
+msgid "Update password scheme"
+msgstr "Схема пароля по умолчанию"
-#: core/app_settings.py:78
-msgid "Key used to encrypt/decrypt passwords"
-msgstr "Ключ для шифрования паролей"
+#: core/app_settings.py:75
+msgid "Update user password at login to use the default password scheme"
+msgstr ""
-#: core/app_settings.py:83
+#: core/app_settings.py:80
#, fuzzy
#| msgid "Default password scheme"
msgid "Default password"
msgstr "Схема пароля по умолчанию"
-#: core/app_settings.py:86
+#: core/app_settings.py:83
msgid "Default password for automatically created accounts."
msgstr ""
-#: core/app_settings.py:90
+#: core/app_settings.py:87
#, fuzzy
#| msgid "Bind password"
msgid "Random password length"
msgstr "Пароль для соединения"
-#: core/app_settings.py:94
+#: core/app_settings.py:91
msgid "Length of randomly generated passwords."
msgstr ""
-#: core/app_settings.py:98
+#: core/app_settings.py:95
msgid "LDAP settings"
msgstr "Параметры LDAP"
-#: core/app_settings.py:101
+#: core/app_settings.py:98
msgid "Server address"
msgstr "Адрес сервера"
-#: core/app_settings.py:104
+#: core/app_settings.py:101
msgid "The IP address or the DNS name of the LDAP server"
msgstr "IP адрес или DNS имя сервера LDAP"
-#: core/app_settings.py:109
+#: core/app_settings.py:106
msgid "Server port"
msgstr "Порт сервера"
-#: core/app_settings.py:111
+#: core/app_settings.py:108
msgid "The TCP port number used by the LDAP server"
msgstr "Номер TCP порта LDAP сервера"
-#: core/app_settings.py:116
+#: core/app_settings.py:113
msgid "Use a secured connection"
msgstr "Использовать безопасное соединение"
-#: core/app_settings.py:120
+#: core/app_settings.py:117
#, fuzzy
#| msgid "Use an SSL/TLS connection to access the LDAP server"
msgid "Use an SSL/STARTTLS connection to access the LDAP server"
msgstr "Использовать SSL/TLS соединение с LDAP сервером"
-#: core/app_settings.py:124
+#: core/app_settings.py:121
msgid "Authentication method"
msgstr "Метод аутентификации"
-#: core/app_settings.py:125
+#: core/app_settings.py:122
msgid "Search and bind"
msgstr "Найти и соединиться"
-#: core/app_settings.py:126
+#: core/app_settings.py:123
msgid "Direct bind"
msgstr "Прямое соединение"
-#: core/app_settings.py:128
+#: core/app_settings.py:125
msgid "Choose the authentication method to use"
msgstr "Выберите метод аутентификации "
-#: core/app_settings.py:133
+#: core/app_settings.py:130
msgid "Bind DN"
msgstr "Соединится с DN "
-#: core/app_settings.py:136
+#: core/app_settings.py:133
msgid ""
"The distinguished name to use when binding to the LDAP server. Leave empty "
"for an anonymous bind"
@@ -165,27 +167,27 @@ msgstr ""
"Отличительное имя используемое для соединения с LDAP сервером. Оставьте "
"пустым для анонимного соединения"
-#: core/app_settings.py:144
+#: core/app_settings.py:141
msgid "Bind password"
msgstr "Пароль для соединения"
-#: core/app_settings.py:147
+#: core/app_settings.py:144
msgid "The password to use when binding to the LDAP server (with 'Bind DN')"
msgstr "Пароль для соединения с LDAP сервером"
-#: core/app_settings.py:156
+#: core/app_settings.py:153
msgid "Users search base"
msgstr ""
-#: core/app_settings.py:159
+#: core/app_settings.py:156
msgid "The distinguished name of the search base used to find users"
msgstr ""
-#: core/app_settings.py:166
+#: core/app_settings.py:163
msgid "Search filter"
msgstr "Фильтр поиска"
-#: core/app_settings.py:169
+#: core/app_settings.py:166
msgid ""
"An optional filter string (e.g. '(objectClass=person)'). In order to be "
"valid, it must be enclosed in parentheses."
@@ -193,11 +195,11 @@ msgstr ""
"Необязательная срока поиска (например '(objectClass=person)') Значение нужно "
"заключить в скобки"
-#: core/app_settings.py:177
+#: core/app_settings.py:174
msgid "User DN template"
msgstr "Шаблон пользователя DN"
-#: core/app_settings.py:180
+#: core/app_settings.py:177
#, python-format
msgid ""
"The template used to construct a user's DN. It should contain one "
@@ -206,191 +208,187 @@ msgstr ""
"Шаблон используется для построения запросов к DN Он должен содержать атрибут "
"например (%(user)s)"
-#: core/app_settings.py:188
+#: core/app_settings.py:185
msgid "Password attribute"
msgstr "Свойства пароля"
-#: core/app_settings.py:190
+#: core/app_settings.py:187
msgid "The attribute used to store user passwords"
msgstr "Свойства используемые для сохранения пользовательских паролей"
-#: core/app_settings.py:195
+#: core/app_settings.py:192
msgid "Active Directory"
msgstr "Active Directory"
-#: core/app_settings.py:198
+#: core/app_settings.py:195
msgid "Tell if the LDAP server is an Active Directory one"
msgstr "Укажите, если LDAP сервер в Active Directory"
-#: core/app_settings.py:202
+#: core/app_settings.py:199
msgid "Administrator groups"
msgstr ""
-#: core/app_settings.py:205
+#: core/app_settings.py:202
msgid ""
"Members of those LDAP Posix groups will be created as domain administrators. "
"Use ';' characters to separate groups."
msgstr ""
-#: core/app_settings.py:212
+#: core/app_settings.py:209
#, fuzzy
#| msgid "Group name"
msgid "Group type"
msgstr "Название группы"
-#: core/app_settings.py:216
+#: core/app_settings.py:213
msgid "The LDAP group type to use with your directory."
msgstr ""
-#: core/app_settings.py:221
+#: core/app_settings.py:218
msgid "Groups search base"
msgstr ""
-#: core/app_settings.py:224
+#: core/app_settings.py:221
msgid "The distinguished name of the search base used to find groups"
msgstr ""
-#: core/app_settings.py:229 core/templates/core/dashboard.html:5
+#: core/app_settings.py:226 core/templates/core/dashboard.html:5
msgid "Dashboard"
msgstr ""
-#: core/app_settings.py:232
+#: core/app_settings.py:229
msgid "Custom RSS feed"
msgstr ""
-#: core/app_settings.py:235
+#: core/app_settings.py:232
msgid "Display custom RSS feed to resellers and domain administrators"
msgstr ""
-#: core/app_settings.py:240
+#: core/app_settings.py:237
msgid "Hide features widget"
msgstr ""
-#: core/app_settings.py:243
+#: core/app_settings.py:240
msgid "Hide features widget for resellers and domain administrators"
msgstr ""
-#: core/app_settings.py:247
+#: core/app_settings.py:244
#, fuzzy
#| msgid "Authentication"
msgid "Notifications"
msgstr "Аутентификация"
-#: core/app_settings.py:250
+#: core/app_settings.py:247
#, fuzzy
#| msgid "Server address"
msgid "Sender address"
msgstr "Адрес сервера"
-#: core/app_settings.py:253
+#: core/app_settings.py:250
msgid "Email address used to send notifications."
msgstr ""
-#: core/app_settings.py:257
+#: core/app_settings.py:254
msgid "Public API"
msgstr ""
-#: core/app_settings.py:260
+#: core/app_settings.py:257
msgid "Enable communication"
msgstr ""
-#: core/app_settings.py:263
+#: core/app_settings.py:260
msgid "Enable communication with Modoboa public API"
msgstr ""
-#: core/app_settings.py:267
+#: core/app_settings.py:264
#, fuzzy
msgid "Check new versions"
msgstr "Отметить для разрешения этого расширения"
-#: core/app_settings.py:270
+#: core/app_settings.py:267
msgid "Automatically checks if a newer version is available"
msgstr ""
-#: core/app_settings.py:274
+#: core/app_settings.py:271
msgid "Send statistics"
msgstr ""
-#: core/app_settings.py:277
+#: core/app_settings.py:274
msgid "Send statistics to Modoboa public API (counters and used extensions)"
msgstr ""
-#: core/app_settings.py:281
+#: core/app_settings.py:278
msgid "Miscellaneous"
msgstr "Прочее"
-#: core/app_settings.py:284
+#: core/app_settings.py:281
msgid "Inactive account threshold"
msgstr ""
-#: core/app_settings.py:287
+#: core/app_settings.py:284
msgid ""
"An account with a last login date greater than this threshold (in days) will "
"be considered as inactive"
msgstr ""
-#: core/app_settings.py:294
+#: core/app_settings.py:291
#, fuzzy
msgid "Top notifications check interval"
msgstr "Уведомления отправителю"
-#: core/app_settings.py:297
+#: core/app_settings.py:294
#, fuzzy
msgid "Interval between two top notification checks (in seconds)"
msgstr "Интервал между запросами на деблокирование для доставки"
-#: core/app_settings.py:303
+#: core/app_settings.py:300
msgid "Maximum log record age"
msgstr "Максимальный срок хранения лог записей"
-#: core/app_settings.py:305
+#: core/app_settings.py:302
msgid "The maximum age in days of a log record"
msgstr "Срок хранения лог записей в днях "
-#: core/app_settings.py:310
+#: core/app_settings.py:307
msgid "Items per page"
msgstr "Элементов на странице"
-#: core/app_settings.py:312
+#: core/app_settings.py:309
msgid "Number of displayed items per page"
msgstr "Количество элементов на странице"
-#: core/app_settings.py:317
+#: core/app_settings.py:314
msgid "Default top redirection"
msgstr "Порог перенаправления по умолчанию"
-#: core/app_settings.py:321
+#: core/app_settings.py:318
msgid "The default redirection used when no application is specified"
msgstr "Если приложение не указано. Используется перенаправление по умолчанию."
-#: core/app_settings.py:354
-msgid "Key must be either 16, 24, or 32 bytes long"
-msgstr "Ключ должен быть 16, 24 или 32 байта длинной"
-
-#: core/app_settings.py:363
+#: core/app_settings.py:353
msgid "Invalid syntax"
msgstr "Ошибка в написании"
-#: core/app_settings.py:369
+#: core/app_settings.py:359
msgid "Invalid rounds number"
msgstr ""
-#: core/app_settings.py:396
+#: core/app_settings.py:386
msgid "This field is required"
msgstr "Это поле обязательно для заполнеия"
-#: core/apps.py:20
+#: core/apps.py:22
msgid "General"
msgstr "Основные"
-#: core/checks/settings_checks.py:11
+#: core/checks/settings_checks.py:10
msgid ""
"You have USE_TZ set to False, this may result in issues during transitions "
"between summer/winter time (ie the same local time occuring twice due to "
"clock change)."
msgstr ""
-#: core/checks/settings_checks.py:14
+#: core/checks/settings_checks.py:13
msgid "Set `USE_TZ = True` in settings.py"
msgstr ""
@@ -412,177 +410,177 @@ msgstr ""
msgid "Super administrator"
msgstr "Супер администратор"
-#: core/constants.py:51 lib/form_utils.py:394
+#: core/constants.py:53 lib/form_utils.py:393
msgid "No"
msgstr "Нет"
-#: core/forms.py:24
+#: core/forms.py:22
msgid "Username"
msgstr "Логин пользователя"
-#: core/forms.py:28
+#: core/forms.py:26
msgid "Password"
msgstr "Пароль"
-#: core/forms.py:41
+#: core/forms.py:39
msgid "Old password"
msgstr "Старый пароль"
-#: core/forms.py:45
+#: core/forms.py:43
msgid "New password"
msgstr "Новый пароль"
-#: core/forms.py:49
+#: core/forms.py:47
msgid "Confirmation"
msgstr "Подтверждение"
-#: core/forms.py:77
+#: core/forms.py:75
msgid "Old password mismatchs"
msgstr "Старые пароли не совпадают"
-#: core/forms.py:86
+#: core/forms.py:84
msgid "Passwords mismatch"
msgstr "Пароли не совпадают"
-#: core/forms.py:106
+#: core/forms.py:104
msgid "Enable API access"
msgstr ""
-#: core/handlers.py:43
+#: core/handlers.py:40
msgid "added"
msgstr "добавлено"
-#: core/handlers.py:46
+#: core/handlers.py:43
msgid "modified"
msgstr "изменено"
-#: core/handlers.py:48
+#: core/handlers.py:45
#, python-format
msgid "%(object)s '%(name)s' %(action)s by user %(user)s"
msgstr "%(object)s '%(name)s' %(action)s пользователем %(user)s"
-#: core/handlers.py:70
+#: core/handlers.py:67
#, fuzzy, python-format
#| msgid "%(object)s '%(name)s' %(action)s by user %(user)s"
msgid "%(object)s '%(name)s' %(action)s by "
msgstr "%(object)s '%(name)s' %(action)s пользователем %(user)s"
-#: core/handlers.py:72
+#: core/handlers.py:69
msgid "deleted"
msgstr "удалено"
-#: core/handlers.py:76
+#: core/handlers.py:73
msgid "user {}"
msgstr ""
-#: core/handlers.py:78
+#: core/handlers.py:75
msgid "management command"
msgstr ""
-#: core/handlers.py:102
+#: core/handlers.py:99
msgid "You can't delete your own account"
msgstr "Вы не можете удалить собственный аккаунт"
-#: core/handlers.py:138
+#: core/handlers.py:135
#, fuzzy
msgid "One or more updates are available"
msgstr "Статистика не доступна"
-#: core/models.py:58
+#: core/models.py:57
msgid "Allow mailboxes access"
msgstr ""
-#: core/models.py:60
+#: core/models.py:59
msgid "Allow this administrator to access user mailboxes"
msgstr ""
-#: core/models.py:63
+#: core/models.py:62
msgid "password"
msgstr ""
-#: core/models.py:66
+#: core/models.py:65
#, fuzzy
#| msgid "Prefered language"
msgid "language"
msgstr "Предпочитаемый язык"
-#: core/models.py:69
+#: core/models.py:68
#, fuzzy
#| msgid "Prefered language to display pages"
msgid "Prefered language to display pages."
msgstr "Предпочитаемый язык для отображения страниц"
-#: core/models.py:73
+#: core/models.py:72
msgid "Phone number"
msgstr ""
-#: core/models.py:75
+#: core/models.py:74
msgid "Secondary email"
msgstr ""
-#: core/models.py:78
+#: core/models.py:77
msgid "An alternative e-mail address, can be used for recovery needs."
msgstr ""
-#: core/models.py:128
+#: core/models.py:127
msgid "Failed to update password: LDAP module not installed"
msgstr "Ошибка обновления пароля: модуль LDAP не установлен"
-#: core/models.py:157
+#: core/models.py:156
msgid "account"
msgstr "Аккаунт"
-#: core/models.py:279
+#: core/models.py:278
msgid "Unknown"
msgstr ""
-#: core/models.py:313
+#: core/models.py:312
msgid "Invalid line"
msgstr "Ошибочная строка"
-#: core/models.py:321
+#: core/models.py:320
msgid "You can't import an account with a role greater than yours"
msgstr "Вы не можете импортировать аккаунт с ролью старше чем у вас"
-#: core/models.py:336
+#: core/models.py:335
#, python-format
msgid "The simple user '%s' must have a valid email address"
msgstr "Пользователь '%s' должен иметь действительный почтовый адрес"
-#: core/models.py:341
+#: core/models.py:340
#, python-format
msgid "username and email fields must not differ for '%s'"
msgstr "Имя пользователя и адрес не должны отличатся для пользователя '%s'"
-#: core/password_validation.py:26
+#: core/password_validation.py:28
msgid "Password must contain at least {} digit."
msgid_plural "Password must contain at least {} digits."
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
-#: core/password_validation.py:36
+#: core/password_validation.py:38
msgid "Password must contain at least {} lowercase letter."
msgid_plural "Password must contain at least {} lowercase letters."
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
-#: core/password_validation.py:47
+#: core/password_validation.py:49
msgid "Password must contain at least {} uppercase letter."
msgid_plural "Password must contain at least {} uppercase letters."
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
-#: core/password_validation.py:59
+#: core/password_validation.py:61
msgid "Password must contain at least {} special character."
msgid_plural "Password must contain at least {} special characters."
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
-#: core/password_validation.py:67
+#: core/password_validation.py:69
msgid "Your password must contain a combination of different character types."
msgstr ""
@@ -632,7 +630,7 @@ msgid "API access token"
msgstr ""
#: core/templates/core/api_access.html:35
-#: core/templates/core/user_profile.html:10 lib/form_utils.py:359
+#: core/templates/core/user_profile.html:10 lib/form_utils.py:358
msgid "Update"
msgstr "Обновление"
@@ -641,7 +639,7 @@ msgstr "Обновление"
msgid "Hello %(user)s."
msgstr ""
-#: core/templates/core/information.html:2 core/templatetags/core_tags.py:64
+#: core/templates/core/information.html:2 core/templatetags/core_tags.py:66
msgid "Information"
msgstr "Информация"
@@ -695,7 +693,7 @@ msgstr ""
msgid "Last login"
msgstr "Последний вход"
-#: core/templates/core/logs.html:2 core/templatetags/core_tags.py:68
+#: core/templates/core/logs.html:2 core/templatetags/core_tags.py:70
msgid "Logs"
msgstr "Логи"
@@ -703,7 +701,7 @@ msgstr "Логи"
msgid "Previously on Modoboa..."
msgstr "Ранее в Modoboa ..."
-#: core/templates/core/logs.html:6 lib/templatetags/lib_tags.py:109
+#: core/templates/core/logs.html:6 lib/templatetags/lib_tags.py:110
msgid "Date"
msgstr "Дата"
@@ -719,7 +717,7 @@ msgstr "Логгер"
msgid "Message"
msgstr "Сообщение"
-#: core/templates/core/parameters.html:2 core/templatetags/core_tags.py:73
+#: core/templates/core/parameters.html:2 core/templatetags/core_tags.py:75
msgid "Parameters"
msgstr "Параметры"
@@ -736,12 +734,12 @@ msgstr "Сохранить"
msgid "Modoboa settings"
msgstr "Настройки Modoboa"
-#: core/templates/core/user_index.html:4 core/templatetags/core_tags.py:92
+#: core/templates/core/user_index.html:4 core/templatetags/core_tags.py:94
msgid "Settings"
msgstr "Настройки"
#: core/templates/core/user_preferences.html:2
-#: core/templatetags/core_tags.py:122
+#: core/templatetags/core_tags.py:124
msgid "Preferences"
msgstr "Параметры"
@@ -755,7 +753,7 @@ msgstr "Настроить Modoboa"
msgid "No preferences available."
msgstr "Параметры сохранены"
-#: core/templates/core/user_profile.html:3 core/templatetags/core_tags.py:118
+#: core/templates/core/user_profile.html:3 core/templatetags/core_tags.py:120
msgid "Profile"
msgstr "Профиль"
@@ -763,38 +761,43 @@ msgstr "Профиль"
msgid "Update your personal information"
msgstr "Обновить личную информацию"
-#: core/templatetags/core_tags.py:36
+#: core/templatetags/core_tags.py:38
msgid "Modoboa"
msgstr "Modoboa"
-#: core/templatetags/core_tags.py:104
+#: core/templatetags/core_tags.py:106
msgid "Logout"
msgstr "Завершить сеанс"
-#: core/templatetags/core_tags.py:129
+#: core/templatetags/core_tags.py:131
msgid "API"
msgstr ""
-#: core/utils.py:35
+#: core/utils.py:36
#, fuzzy
#| msgid "Welcome to Modoboa"
msgid "The core part of Modoboa"
msgstr "Добро пожаловать в Modoboa!"
-#: core/views/admin.py:48
+#: core/views/admin.py:47
msgid "Parameters saved"
msgstr "Параметры сохранены"
-#: core/views/auth.py:45
+#: core/views/auth.py:50
+#, python-format
+msgid "Password scheme mismatch. Updating %s password"
+msgstr ""
+
+#: core/views/auth.py:64
#, python-format
msgid "User '%s' successfully logged in"
msgstr "Пользователь '%s' успешно вошел в систему"
-#: core/views/auth.py:53
+#: core/views/auth.py:72
msgid "Your username and password didn't match. Please try again."
msgstr "Не правильное имя или пароль. Попробуйте еще раз."
-#: core/views/auth.py:88
+#: core/views/auth.py:107
#, fuzzy
#| msgid "User '%s' successfully logged in"
msgid "User '{}' successfully logged out"
@@ -819,53 +822,57 @@ msgstr "Профиль обновлен"
msgid "Connection to database %s not configured"
msgstr ""
-#: lib/exceptions.py:70
+#: lib/email_utils.py:350
+msgid "unable to determine encoding of string"
+msgstr ""
+
+#: lib/exceptions.py:71
#, python-format
msgid "Permission denied: %s"
msgstr "В разрешении отказано: %s"
-#: lib/exceptions.py:71
+#: lib/exceptions.py:72
msgid "Permission denied"
msgstr "В разрешении отказано"
-#: lib/fields.py:17 lib/validators.py:16
+#: lib/fields.py:19 lib/validators.py:18
msgid "Enter a valid domain name"
msgstr "Введите действительный адрес домена"
-#: lib/fields.py:46 lib/fields.py:60
+#: lib/fields.py:48 lib/fields.py:62
#, fuzzy
#| msgid "Enter a valid domain name"
msgid "Enter a valid email address."
msgstr "Введите действительный адрес домена"
-#: lib/form_utils.py:82 templates/registration/password_reset_confirm.html:12
+#: lib/form_utils.py:81 templates/registration/password_reset_confirm.html:12
#: templates/registration/password_reset_form.html:11
msgid "Submit"
msgstr ""
-#: lib/form_utils.py:115 lib/form_utils.py:118
+#: lib/form_utils.py:114 lib/form_utils.py:117
msgid "Invalid request"
msgstr "Ошибочный запрос"
-#: lib/form_utils.py:393
+#: lib/form_utils.py:392
msgid "Yes"
msgstr "Да"
-#: lib/ldap_utils.py:133
+#: lib/ldap_utils.py:134
#, fuzzy
#| msgid "Failed to update password: %s"
msgid "Failed to update password: {}"
msgstr "Ошибка обновления пароля: %s"
-#: lib/templatetags/lib_tags.py:107
+#: lib/templatetags/lib_tags.py:108
msgid "From"
msgstr ""
-#: lib/templatetags/lib_tags.py:108
+#: lib/templatetags/lib_tags.py:109
msgid "To"
msgstr ""
-#: lib/templatetags/lib_tags.py:110 templates/common/email_searchbar.html:17
+#: lib/templatetags/lib_tags.py:111 templates/common/email_searchbar.html:17
msgid "Subject"
msgstr "Тема"
@@ -982,6 +989,15 @@ msgstr ""
msgid "Modoboa password reset"
msgstr ""
+#~ msgid "Secret key"
+#~ msgstr "Секретный ключ"
+
+#~ msgid "Key used to encrypt/decrypt passwords"
+#~ msgstr "Ключ для шифрования паролей"
+
+#~ msgid "Key must be either 16, 24, or 32 bytes long"
+#~ msgstr "Ключ должен быть 16, 24 или 32 байта длинной"
+
#, fuzzy
#~| msgid "Group name"
#~ msgid "First name"
diff --git a/modoboa/locale/sv/LC_MESSAGES/django.po b/modoboa/locale/sv/LC_MESSAGES/django.po
index 86659cf73..a1d61e085 100644
--- a/modoboa/locale/sv/LC_MESSAGES/django.po
+++ b/modoboa/locale/sv/LC_MESSAGES/django.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-01-25 09:09+0100\n"
+"POT-Creation-Date: 2018-10-05 16:08+0200\n"
"PO-Revision-Date: 2017-07-07 09:30+0000\n"
"Last-Translator: Antoine Nguyen \n"
"Language-Team: Swedish (http://www.transifex.com/tonio/modoboa/language/"
@@ -21,59 +21,59 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: core/app_settings.py:26
+#: core/app_settings.py:22
msgid "User profile"
msgstr "Användarprofil"
-#: core/app_settings.py:39
+#: core/app_settings.py:35
msgid "Authentication"
msgstr "Autentisering"
-#: core/app_settings.py:42
+#: core/app_settings.py:38
msgid "Authentication type"
msgstr "Autentiseringstyp"
-#: core/app_settings.py:43
+#: core/app_settings.py:39
msgid "Local"
msgstr "Lokal"
-#: core/app_settings.py:46
+#: core/app_settings.py:42
msgid "The backend used for authentication"
msgstr "Autentiserings backend"
-#: core/app_settings.py:51
+#: core/app_settings.py:47
msgid "Default password scheme"
msgstr "Standard lösenords schema"
-#: core/app_settings.py:55
+#: core/app_settings.py:51
msgid "md5crypt (weak)"
msgstr "md5crypt (svag)"
-#: core/app_settings.py:56
+#: core/app_settings.py:52
msgid "sha256 (weak)"
msgstr "sha256 (svag)"
-#: core/app_settings.py:57
+#: core/app_settings.py:53
msgid "md5 (weak)"
msgstr "md5 (svag)"
-#: core/app_settings.py:58
+#: core/app_settings.py:54
msgid "crypt (weak)"
msgstr "crypt (svag)"
-#: core/app_settings.py:59
+#: core/app_settings.py:55
msgid "plain (weak)"
msgstr "okrypterad (svag)"
-#: core/app_settings.py:61
+#: core/app_settings.py:57
msgid "Scheme used to crypt mailbox passwords"
msgstr "Krypteringsschema för brevlåde lösenord"
-#: core/app_settings.py:66
+#: core/app_settings.py:62
msgid "Rounds"
msgstr "Antal omgångar"
-#: core/app_settings.py:69
+#: core/app_settings.py:65
msgid ""
"Number of rounds to use (only used by sha256crypt and sha512crypt). Must be "
"between 1000 and 999999999, inclusive."
@@ -81,83 +81,85 @@ msgstr ""
"Antal omgångar att använda (används endast av sha256crypt och sha512crypt). "
"Måste vara mellan 1000 och 999999999."
-#: core/app_settings.py:76
-msgid "Secret key"
-msgstr "Hemlig nyckel"
+#: core/app_settings.py:72
+#, fuzzy
+#| msgid "Default password scheme"
+msgid "Update password scheme"
+msgstr "Standard lösenords schema"
-#: core/app_settings.py:78
-msgid "Key used to encrypt/decrypt passwords"
-msgstr "Nyckel som används för att kryptera / dekryptera lösenord"
+#: core/app_settings.py:75
+msgid "Update user password at login to use the default password scheme"
+msgstr ""
-#: core/app_settings.py:83
+#: core/app_settings.py:80
msgid "Default password"
msgstr "Standardlösenord"
-#: core/app_settings.py:86
+#: core/app_settings.py:83
msgid "Default password for automatically created accounts."
msgstr "Standardlösenord för automatiskt skapade konton."
-#: core/app_settings.py:90
+#: core/app_settings.py:87
#, fuzzy
#| msgid "Modoboa password reset"
msgid "Random password length"
msgstr "Modoboa lösenordsåterställning."
-#: core/app_settings.py:94
+#: core/app_settings.py:91
msgid "Length of randomly generated passwords."
msgstr ""
-#: core/app_settings.py:98
+#: core/app_settings.py:95
msgid "LDAP settings"
msgstr "LDAP inställningar"
-#: core/app_settings.py:101
+#: core/app_settings.py:98
msgid "Server address"
msgstr "Server adress"
-#: core/app_settings.py:104
+#: core/app_settings.py:101
msgid "The IP address or the DNS name of the LDAP server"
msgstr "IP adressen eller DNS namn för LDAP server"
-#: core/app_settings.py:109
+#: core/app_settings.py:106
msgid "Server port"
msgstr "Server port"
-#: core/app_settings.py:111
+#: core/app_settings.py:108
msgid "The TCP port number used by the LDAP server"
msgstr "TCP port som används av LDAP servern"
-#: core/app_settings.py:116
+#: core/app_settings.py:113
msgid "Use a secured connection"
msgstr "Använd en säker anslutning"
-#: core/app_settings.py:120
+#: core/app_settings.py:117
#, fuzzy
#| msgid "Use an SSL/TLS connection to access the LDAP server"
msgid "Use an SSL/STARTTLS connection to access the LDAP server"
msgstr "Använd SSL/TLS anslutning för åtkomst till LDAP servern"
-#: core/app_settings.py:124
+#: core/app_settings.py:121
msgid "Authentication method"
msgstr "Autentiseringsmetod"
-#: core/app_settings.py:125
+#: core/app_settings.py:122
msgid "Search and bind"
msgstr "Sök och bind"
-#: core/app_settings.py:126
+#: core/app_settings.py:123
msgid "Direct bind"
msgstr "Direkt bindning"
-#: core/app_settings.py:128
+#: core/app_settings.py:125
msgid "Choose the authentication method to use"
msgstr "Välj autentiseringsmetod att använda"
-#: core/app_settings.py:133
+#: core/app_settings.py:130
msgid "Bind DN"
msgstr "Bind DN"
-#: core/app_settings.py:136
+#: core/app_settings.py:133
msgid ""
"The distinguished name to use when binding to the LDAP server. Leave empty "
"for an anonymous bind"
@@ -165,28 +167,28 @@ msgstr ""
"Det unika namnet för att använda vid bindningar till LDAP-servern. Lämna "
"tomt för en anonym bindning"
-#: core/app_settings.py:144
+#: core/app_settings.py:141
msgid "Bind password"
msgstr "Bind lösenord"
-#: core/app_settings.py:147
+#: core/app_settings.py:144
msgid "The password to use when binding to the LDAP server (with 'Bind DN')"
msgstr ""
"Lösenordet ska användas vid bindning till LDAP-servern (med \"Bind DN ')"
-#: core/app_settings.py:156
+#: core/app_settings.py:153
msgid "Users search base"
msgstr "Användare sökbas"
-#: core/app_settings.py:159
+#: core/app_settings.py:156
msgid "The distinguished name of the search base used to find users"
msgstr "Det unika namnet för sökbasen som används för att hitta användare"
-#: core/app_settings.py:166
+#: core/app_settings.py:163
msgid "Search filter"
msgstr "Sökfilter"
-#: core/app_settings.py:169
+#: core/app_settings.py:166
msgid ""
"An optional filter string (e.g. '(objectClass=person)'). In order to be "
"valid, it must be enclosed in parentheses."
@@ -194,11 +196,11 @@ msgstr ""
"En valfri filtersträng (t.ex. \"(objectClass = personer) '). För att vara "
"giltigt måste det omges av parenteser."
-#: core/app_settings.py:177
+#: core/app_settings.py:174
msgid "User DN template"
msgstr "Anvädar DN mall"
-#: core/app_settings.py:180
+#: core/app_settings.py:177
#, python-format
msgid ""
"The template used to construct a user's DN. It should contain one "
@@ -207,27 +209,27 @@ msgstr ""
"Mallen som används för att konstruera en användares DN. Den bör innehålla en "
"platshållare (dvs. %(user)s)"
-#: core/app_settings.py:188
+#: core/app_settings.py:185
msgid "Password attribute"
msgstr "Lösenordsattribut"
-#: core/app_settings.py:190
+#: core/app_settings.py:187
msgid "The attribute used to store user passwords"
msgstr "Attribut som används för att lagra användarlösenord"
-#: core/app_settings.py:195
+#: core/app_settings.py:192
msgid "Active Directory"
msgstr "Active Directory"
-#: core/app_settings.py:198
+#: core/app_settings.py:195
msgid "Tell if the LDAP server is an Active Directory one"
msgstr "Berätta om LDAP-servern är en Active Directory"
-#: core/app_settings.py:202
+#: core/app_settings.py:199
msgid "Administrator groups"
msgstr "Administratörsgrupper"
-#: core/app_settings.py:205
+#: core/app_settings.py:202
msgid ""
"Members of those LDAP Posix groups will be created as domain administrators. "
"Use ';' characters to separate groups."
@@ -235,158 +237,154 @@ msgstr ""
"Användare av dessa LDAP Posix grupper kommer skapas som "
"domänadministratörer. Använd ';' för att separera grupper."
-#: core/app_settings.py:212
+#: core/app_settings.py:209
msgid "Group type"
msgstr "Grupptyp"
-#: core/app_settings.py:216
+#: core/app_settings.py:213
msgid "The LDAP group type to use with your directory."
msgstr "Välj LDAP grupptyp att använda med din katalog"
-#: core/app_settings.py:221
+#: core/app_settings.py:218
msgid "Groups search base"
msgstr "Grupper sökbas"
-#: core/app_settings.py:224
+#: core/app_settings.py:221
msgid "The distinguished name of the search base used to find groups"
msgstr "Det unika namnet för sökbasen som används för att hitta grupper"
-#: core/app_settings.py:229 core/templates/core/dashboard.html:5
+#: core/app_settings.py:226 core/templates/core/dashboard.html:5
msgid "Dashboard"
msgstr "Kontrollpanel"
-#: core/app_settings.py:232
+#: core/app_settings.py:229
msgid "Custom RSS feed"
msgstr "Användardefinierat RSS-flöde"
-#: core/app_settings.py:235
+#: core/app_settings.py:232
msgid "Display custom RSS feed to resellers and domain administrators"
msgstr ""
"Visa användardefinierat RSS-flöde för återförsäljare och domänadministratörer"
-#: core/app_settings.py:240
+#: core/app_settings.py:237
msgid "Hide features widget"
msgstr "Dölj egenskaper widget"
-#: core/app_settings.py:243
+#: core/app_settings.py:240
msgid "Hide features widget for resellers and domain administrators"
msgstr "Dölj egenskaper widget för återförsäljare och domänadministratörer"
-#: core/app_settings.py:247
+#: core/app_settings.py:244
msgid "Notifications"
msgstr "Notifikationer"
-#: core/app_settings.py:250
+#: core/app_settings.py:247
msgid "Sender address"
msgstr "Avsändaradress"
-#: core/app_settings.py:253
+#: core/app_settings.py:250
msgid "Email address used to send notifications."
msgstr "E-postadress som används till att skicka notifikationer."
-#: core/app_settings.py:257
+#: core/app_settings.py:254
msgid "Public API"
msgstr "Publikt API"
-#: core/app_settings.py:260
+#: core/app_settings.py:257
msgid "Enable communication"
msgstr "Aktivera kommunikation"
-#: core/app_settings.py:263
+#: core/app_settings.py:260
msgid "Enable communication with Modoboa public API"
msgstr "Aktivera kommunikation med Modoboa publikt API"
-#: core/app_settings.py:267
+#: core/app_settings.py:264
msgid "Check new versions"
msgstr "Kontrollera nya versioner"
-#: core/app_settings.py:270
+#: core/app_settings.py:267
msgid "Automatically checks if a newer version is available"
msgstr "Kontrollera automatiskt om en nyare version finns"
-#: core/app_settings.py:274
+#: core/app_settings.py:271
msgid "Send statistics"
msgstr "Skicka statistik"
-#: core/app_settings.py:277
+#: core/app_settings.py:274
msgid "Send statistics to Modoboa public API (counters and used extensions)"
msgstr ""
"Skicka statistik för Modoboas publika API (räknare och använda tillägg)"
-#: core/app_settings.py:281
+#: core/app_settings.py:278
msgid "Miscellaneous"
msgstr "Övrigt"
-#: core/app_settings.py:284
+#: core/app_settings.py:281
msgid "Inactive account threshold"
msgstr ""
-#: core/app_settings.py:287
+#: core/app_settings.py:284
msgid ""
"An account with a last login date greater than this threshold (in days) will "
"be considered as inactive"
msgstr ""
-#: core/app_settings.py:294
+#: core/app_settings.py:291
msgid "Top notifications check interval"
msgstr "Toppnotifikationer kontrollintervall"
-#: core/app_settings.py:297
+#: core/app_settings.py:294
msgid "Interval between two top notification checks (in seconds)"
msgstr "Intervall mellan två toppnotifikationskontroller (i sekunder)"
-#: core/app_settings.py:303
+#: core/app_settings.py:300
msgid "Maximum log record age"
msgstr "Maximal ålder för loggpost"
-#: core/app_settings.py:305
+#: core/app_settings.py:302
msgid "The maximum age in days of a log record"
msgstr "Maximal ålder i dagar för en logg post"
-#: core/app_settings.py:310
+#: core/app_settings.py:307
msgid "Items per page"
msgstr "Artiklar per sida"
-#: core/app_settings.py:312
+#: core/app_settings.py:309
msgid "Number of displayed items per page"
msgstr "Antal poster som visas per sida"
-#: core/app_settings.py:317
+#: core/app_settings.py:314
msgid "Default top redirection"
msgstr "Standard topp omdirigering"
-#: core/app_settings.py:321
+#: core/app_settings.py:318
msgid "The default redirection used when no application is specified"
msgstr "Standard omdirigering när ingen applikation angetts"
-#: core/app_settings.py:354
-msgid "Key must be either 16, 24, or 32 bytes long"
-msgstr "Nyckel måste vara endera 16, 24 eller 32 bytes lång"
-
-#: core/app_settings.py:363
+#: core/app_settings.py:353
msgid "Invalid syntax"
msgstr "Ogiltig syntax"
-#: core/app_settings.py:369
+#: core/app_settings.py:359
msgid "Invalid rounds number"
msgstr "Ogiltigt antal omgångar"
-#: core/app_settings.py:396
+#: core/app_settings.py:386
msgid "This field is required"
msgstr "Detta fält är obligatoriskt"
-#: core/apps.py:20
+#: core/apps.py:22
msgid "General"
msgstr "Allmänt"
-#: core/checks/settings_checks.py:11
+#: core/checks/settings_checks.py:10
msgid ""
"You have USE_TZ set to False, this may result in issues during transitions "
"between summer/winter time (ie the same local time occuring twice due to "
"clock change)."
msgstr ""
-#: core/checks/settings_checks.py:14
+#: core/checks/settings_checks.py:13
msgid "Set `USE_TZ = True` in settings.py"
msgstr ""
@@ -406,168 +404,168 @@ msgstr "Återförsäljare"
msgid "Super administrator"
msgstr "Super administratör"
-#: core/constants.py:51 lib/form_utils.py:394
+#: core/constants.py:53 lib/form_utils.py:393
msgid "No"
msgstr "Nej"
-#: core/forms.py:24
+#: core/forms.py:22
msgid "Username"
msgstr "Användarnamn"
-#: core/forms.py:28
+#: core/forms.py:26
msgid "Password"
msgstr "Lösenord"
-#: core/forms.py:41
+#: core/forms.py:39
msgid "Old password"
msgstr "Gammalt lösenord"
-#: core/forms.py:45
+#: core/forms.py:43
msgid "New password"
msgstr "Nytt lösenord"
-#: core/forms.py:49
+#: core/forms.py:47
msgid "Confirmation"
msgstr "Bekräftelse"
-#: core/forms.py:77
+#: core/forms.py:75
msgid "Old password mismatchs"
msgstr "Gammalt lösenord matchar inte"
-#: core/forms.py:86
+#: core/forms.py:84
msgid "Passwords mismatch"
msgstr "Lösenord matchar inte"
-#: core/forms.py:106
+#: core/forms.py:104
msgid "Enable API access"
msgstr "Aktivera API access"
-#: core/handlers.py:43
+#: core/handlers.py:40
msgid "added"
msgstr "tillagd"
-#: core/handlers.py:46
+#: core/handlers.py:43
msgid "modified"
msgstr "ändrad"
-#: core/handlers.py:48
+#: core/handlers.py:45
#, python-format
msgid "%(object)s '%(name)s' %(action)s by user %(user)s"
msgstr "%(object)s '%(name)s' %(action)s av användare %(user)s"
-#: core/handlers.py:70
+#: core/handlers.py:67
#, fuzzy, python-format
#| msgid "%(object)s '%(name)s' %(action)s by user %(user)s"
msgid "%(object)s '%(name)s' %(action)s by "
msgstr "%(object)s '%(name)s' %(action)s av användare %(user)s"
-#: core/handlers.py:72
+#: core/handlers.py:69
msgid "deleted"
msgstr "raderad"
-#: core/handlers.py:76
+#: core/handlers.py:73
msgid "user {}"
msgstr ""
-#: core/handlers.py:78
+#: core/handlers.py:75
msgid "management command"
msgstr ""
-#: core/handlers.py:102
+#: core/handlers.py:99
msgid "You can't delete your own account"
msgstr "Du kan inte radera ditt eget konto"
-#: core/handlers.py:138
+#: core/handlers.py:135
msgid "One or more updates are available"
msgstr "En eller fler uppdateringar finns tillgängliga"
-#: core/models.py:58
+#: core/models.py:57
msgid "Allow mailboxes access"
msgstr "Tillåt åtkomst till brevlådor"
-#: core/models.py:60
+#: core/models.py:59
msgid "Allow this administrator to access user mailboxes"
msgstr "Tillåt den här administratören att ändra användares brevlådor"
-#: core/models.py:63
+#: core/models.py:62
msgid "password"
msgstr "lösenord"
-#: core/models.py:66
+#: core/models.py:65
msgid "language"
msgstr "språk"
-#: core/models.py:69
+#: core/models.py:68
msgid "Prefered language to display pages."
msgstr "Önskat språk för att visa sidor."
-#: core/models.py:73
+#: core/models.py:72
msgid "Phone number"
msgstr "Telefonnummer"
-#: core/models.py:75
+#: core/models.py:74
msgid "Secondary email"
msgstr "Sekundär e-post"
-#: core/models.py:78
+#: core/models.py:77
msgid "An alternative e-mail address, can be used for recovery needs."
msgstr "En alternativ e-post adress, kan användas för återställningsbehov."
-#: core/models.py:128
+#: core/models.py:127
msgid "Failed to update password: LDAP module not installed"
msgstr "Misslyckades med att uppdatera lösenord: LDAP modul ej installerad"
-#: core/models.py:157
+#: core/models.py:156
msgid "account"
msgstr "konto"
-#: core/models.py:279
+#: core/models.py:278
msgid "Unknown"
msgstr "Okänt"
-#: core/models.py:313
+#: core/models.py:312
msgid "Invalid line"
msgstr "Ogiltig rad"
-#: core/models.py:321
+#: core/models.py:320
msgid "You can't import an account with a role greater than yours"
msgstr "Du kan inte importera konto med en roll större än din"
-#: core/models.py:336
+#: core/models.py:335
#, python-format
msgid "The simple user '%s' must have a valid email address"
msgstr "Den enkla användaren '%s' måste ha en gällande e-postadress"
-#: core/models.py:341
+#: core/models.py:340
#, python-format
msgid "username and email fields must not differ for '%s'"
msgstr "användarnamn och e-post fält får inte avvika för '%s'"
-#: core/password_validation.py:26
+#: core/password_validation.py:28
msgid "Password must contain at least {} digit."
msgid_plural "Password must contain at least {} digits."
msgstr[0] "Lösenord måste hålla minst {} siffra."
msgstr[1] "Lösenord måste hålla minst {} siffror."
-#: core/password_validation.py:36
+#: core/password_validation.py:38
msgid "Password must contain at least {} lowercase letter."
msgid_plural "Password must contain at least {} lowercase letters."
msgstr[0] "Lösenord måste innehålla minst {} gemen."
msgstr[1] "Lösenord måste innehålla minst {} gemener."
-#: core/password_validation.py:47
+#: core/password_validation.py:49
msgid "Password must contain at least {} uppercase letter."
msgid_plural "Password must contain at least {} uppercase letters."
msgstr[0] "Lösenord måste innhåla minst {} versal."
msgstr[1] "Lösenord måste innhåla minst {} versaler."
-#: core/password_validation.py:59
+#: core/password_validation.py:61
msgid "Password must contain at least {} special character."
msgid_plural "Password must contain at least {} special characters."
msgstr[0] "Lösenord måste innehålla minst {} specialtecken."
msgstr[1] "Lösenord måste innehålla minst {} specialtecken."
-#: core/password_validation.py:67
+#: core/password_validation.py:69
msgid "Your password must contain a combination of different character types."
msgstr "Ditt lösenord måste innehålla en kombination av olika typer av tecken."
@@ -621,7 +619,7 @@ msgid "API access token"
msgstr "API åtkomst token"
#: core/templates/core/api_access.html:35
-#: core/templates/core/user_profile.html:10 lib/form_utils.py:359
+#: core/templates/core/user_profile.html:10 lib/form_utils.py:358
msgid "Update"
msgstr "Uppdatera"
@@ -630,7 +628,7 @@ msgstr "Uppdatera"
msgid "Hello %(user)s."
msgstr "Hej %(user)s."
-#: core/templates/core/information.html:2 core/templatetags/core_tags.py:64
+#: core/templates/core/information.html:2 core/templatetags/core_tags.py:66
msgid "Information"
msgstr "Information"
@@ -680,7 +678,7 @@ msgstr "Roll"
msgid "Last login"
msgstr "Senaste inloggad"
-#: core/templates/core/logs.html:2 core/templatetags/core_tags.py:68
+#: core/templates/core/logs.html:2 core/templatetags/core_tags.py:70
msgid "Logs"
msgstr "Loggar"
@@ -688,7 +686,7 @@ msgstr "Loggar"
msgid "Previously on Modoboa..."
msgstr "Tidigare på Modoboa..."
-#: core/templates/core/logs.html:6 lib/templatetags/lib_tags.py:109
+#: core/templates/core/logs.html:6 lib/templatetags/lib_tags.py:110
msgid "Date"
msgstr "Datum"
@@ -704,7 +702,7 @@ msgstr "Loggare"
msgid "Message"
msgstr "Meddelande"
-#: core/templates/core/parameters.html:2 core/templatetags/core_tags.py:73
+#: core/templates/core/parameters.html:2 core/templatetags/core_tags.py:75
msgid "Parameters"
msgstr "Parametrar"
@@ -721,12 +719,12 @@ msgstr "Spara"
msgid "Modoboa settings"
msgstr "Modoboa inställningar"
-#: core/templates/core/user_index.html:4 core/templatetags/core_tags.py:92
+#: core/templates/core/user_index.html:4 core/templatetags/core_tags.py:94
msgid "Settings"
msgstr "Inställningar"
#: core/templates/core/user_preferences.html:2
-#: core/templatetags/core_tags.py:122
+#: core/templatetags/core_tags.py:124
msgid "Preferences"
msgstr "Inställningar"
@@ -738,7 +736,7 @@ msgstr "Anpassa Modoboa"
msgid "No preferences available."
msgstr "Inga inställningar finns."
-#: core/templates/core/user_profile.html:3 core/templatetags/core_tags.py:118
+#: core/templates/core/user_profile.html:3 core/templatetags/core_tags.py:120
msgid "Profile"
msgstr "Profil"
@@ -746,36 +744,41 @@ msgstr "Profil"
msgid "Update your personal information"
msgstr "Uppdatera personlig information"
-#: core/templatetags/core_tags.py:36
+#: core/templatetags/core_tags.py:38
msgid "Modoboa"
msgstr "Modoboa"
-#: core/templatetags/core_tags.py:104
+#: core/templatetags/core_tags.py:106
msgid "Logout"
msgstr "Logga ut"
-#: core/templatetags/core_tags.py:129
+#: core/templatetags/core_tags.py:131
msgid "API"
msgstr "API"
-#: core/utils.py:35
+#: core/utils.py:36
msgid "The core part of Modoboa"
msgstr "Kärnan av Modoboa"
-#: core/views/admin.py:48
+#: core/views/admin.py:47
msgid "Parameters saved"
msgstr "Parametrar sparade"
-#: core/views/auth.py:45
+#: core/views/auth.py:50
+#, python-format
+msgid "Password scheme mismatch. Updating %s password"
+msgstr ""
+
+#: core/views/auth.py:64
#, python-format
msgid "User '%s' successfully logged in"
msgstr "Användare '%s' har loggat in"
-#: core/views/auth.py:53
+#: core/views/auth.py:72
msgid "Your username and password didn't match. Please try again."
msgstr "Ditt användarnamn och lösenord matchar inte. Var vänlig försök igen."
-#: core/views/auth.py:88
+#: core/views/auth.py:107
msgid "User '{}' successfully logged out"
msgstr "Användare '{}' loggade ut framgångsrikt"
@@ -796,49 +799,53 @@ msgstr "Åtkomst uppdaterad"
msgid "Connection to database %s not configured"
msgstr "Anslutning till databasen %s är inte konfigurerad"
-#: lib/exceptions.py:70
+#: lib/email_utils.py:350
+msgid "unable to determine encoding of string"
+msgstr ""
+
+#: lib/exceptions.py:71
#, python-format
msgid "Permission denied: %s"
msgstr "Tillstånd nekas: %s"
-#: lib/exceptions.py:71
+#: lib/exceptions.py:72
msgid "Permission denied"
msgstr "Tillstånd nekas"
-#: lib/fields.py:17 lib/validators.py:16
+#: lib/fields.py:19 lib/validators.py:18
msgid "Enter a valid domain name"
msgstr "Skriv in ett giltigt domännamn"
-#: lib/fields.py:46 lib/fields.py:60
+#: lib/fields.py:48 lib/fields.py:62
msgid "Enter a valid email address."
msgstr "Ange en giltig e-postadress"
-#: lib/form_utils.py:82 templates/registration/password_reset_confirm.html:12
+#: lib/form_utils.py:81 templates/registration/password_reset_confirm.html:12
#: templates/registration/password_reset_form.html:11
msgid "Submit"
msgstr "Skicka"
-#: lib/form_utils.py:115 lib/form_utils.py:118
+#: lib/form_utils.py:114 lib/form_utils.py:117
msgid "Invalid request"
msgstr "Ogiltig förfrågan"
-#: lib/form_utils.py:393
+#: lib/form_utils.py:392
msgid "Yes"
msgstr "Ja"
-#: lib/ldap_utils.py:133
+#: lib/ldap_utils.py:134
msgid "Failed to update password: {}"
msgstr "Misslyckades med att uppdatera lösenord: {}"
-#: lib/templatetags/lib_tags.py:107
+#: lib/templatetags/lib_tags.py:108
msgid "From"
msgstr "Från"
-#: lib/templatetags/lib_tags.py:108
+#: lib/templatetags/lib_tags.py:109
msgid "To"
msgstr "Till"
-#: lib/templatetags/lib_tags.py:110 templates/common/email_searchbar.html:17
+#: lib/templatetags/lib_tags.py:111 templates/common/email_searchbar.html:17
msgid "Subject"
msgstr "Ämne"
@@ -962,3 +969,12 @@ msgstr "Vänligen, Modoboa teamet."
#: templates/registration/password_reset_subject.txt:3
msgid "Modoboa password reset"
msgstr "Modoboa lösenordsåterställning."
+
+#~ msgid "Secret key"
+#~ msgstr "Hemlig nyckel"
+
+#~ msgid "Key used to encrypt/decrypt passwords"
+#~ msgstr "Nyckel som används för att kryptera / dekryptera lösenord"
+
+#~ msgid "Key must be either 16, 24, or 32 bytes long"
+#~ msgstr "Nyckel måste vara endera 16, 24 eller 32 bytes lång"
diff --git a/modoboa/locale/zh_TW/LC_MESSAGES/django.po b/modoboa/locale/zh_TW/LC_MESSAGES/django.po
index e38e49b30..563469e6b 100644
--- a/modoboa/locale/zh_TW/LC_MESSAGES/django.po
+++ b/modoboa/locale/zh_TW/LC_MESSAGES/django.po
@@ -1,7 +1,7 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
-#
+#
# Translators:
# akong , 2018
# freedom lee , 2018
@@ -10,365 +10,367 @@ msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-01-25 09:09+0100\n"
+"POT-Creation-Date: 2018-10-05 16:08+0200\n"
"PO-Revision-Date: 2018-07-06 08:26+0000\n"
"Last-Translator: akong \n"
-"Language-Team: Chinese (Taiwan) (http://www.transifex.com/tonio/modoboa/language/zh_TW/)\n"
+"Language-Team: Chinese (Taiwan) (http://www.transifex.com/tonio/modoboa/"
+"language/zh_TW/)\n"
+"Language: zh_TW\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Language: zh_TW\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-#: core/app_settings.py:26
+#: core/app_settings.py:22
msgid "User profile"
msgstr "使用者檔案"
-#: core/app_settings.py:39
+#: core/app_settings.py:35
msgid "Authentication"
msgstr "驗證"
-#: core/app_settings.py:42
+#: core/app_settings.py:38
msgid "Authentication type"
msgstr "驗證類型"
-#: core/app_settings.py:43
+#: core/app_settings.py:39
msgid "Local"
msgstr "本機"
-#: core/app_settings.py:46
+#: core/app_settings.py:42
msgid "The backend used for authentication"
msgstr "此背景程式已用於驗證"
-#: core/app_settings.py:51
+#: core/app_settings.py:47
msgid "Default password scheme"
msgstr "預設密碼方案"
-#: core/app_settings.py:55
+#: core/app_settings.py:51
msgid "md5crypt (weak)"
msgstr "md5crypt (弱)"
-#: core/app_settings.py:56
+#: core/app_settings.py:52
msgid "sha256 (weak)"
msgstr "sha256 (弱)"
-#: core/app_settings.py:57
+#: core/app_settings.py:53
msgid "md5 (weak)"
msgstr "md5 (弱)"
-#: core/app_settings.py:58
+#: core/app_settings.py:54
msgid "crypt (weak)"
msgstr "crypt (弱)"
-#: core/app_settings.py:59
+#: core/app_settings.py:55
msgid "plain (weak)"
msgstr "plain (弱)"
-#: core/app_settings.py:61
+#: core/app_settings.py:57
msgid "Scheme used to crypt mailbox passwords"
msgstr "方案已使用於加密信箱密碼"
-#: core/app_settings.py:66
+#: core/app_settings.py:62
msgid "Rounds"
msgstr "輪"
-#: core/app_settings.py:69
+#: core/app_settings.py:65
msgid ""
"Number of rounds to use (only used by sha256crypt and sha512crypt). Must be "
"between 1000 and 999999999, inclusive."
-msgstr "重複幾輪產生 (只能用於 sha256crypt 和 sha512crypt). 必須介於 1000 到 999999999, 包括."
+msgstr ""
+"重複幾輪產生 (只能用於 sha256crypt 和 sha512crypt). 必須介於 1000 到 "
+"999999999, 包括."
-#: core/app_settings.py:76
-msgid "Secret key"
-msgstr "密鑰"
+#: core/app_settings.py:72
+#, fuzzy
+#| msgid "Default password scheme"
+msgid "Update password scheme"
+msgstr "預設密碼方案"
-#: core/app_settings.py:78
-msgid "Key used to encrypt/decrypt passwords"
-msgstr "金鑰用於加密/解密"
+#: core/app_settings.py:75
+msgid "Update user password at login to use the default password scheme"
+msgstr ""
-#: core/app_settings.py:83
+#: core/app_settings.py:80
msgid "Default password"
msgstr "預設密碼"
-#: core/app_settings.py:86
+#: core/app_settings.py:83
msgid "Default password for automatically created accounts."
msgstr "預設密碼是給自動產生帳號用。"
-#: core/app_settings.py:90
+#: core/app_settings.py:87
msgid "Random password length"
msgstr "隨機密碼長度"
-#: core/app_settings.py:94
+#: core/app_settings.py:91
msgid "Length of randomly generated passwords."
msgstr "隨機產生密碼的長度。"
-#: core/app_settings.py:98
+#: core/app_settings.py:95
msgid "LDAP settings"
msgstr "LDAP 設定"
-#: core/app_settings.py:101
+#: core/app_settings.py:98
msgid "Server address"
msgstr "伺服器地址"
-#: core/app_settings.py:104
+#: core/app_settings.py:101
msgid "The IP address or the DNS name of the LDAP server"
msgstr "LDAP 伺服器的 IP 或 DNS 名稱"
-#: core/app_settings.py:109
+#: core/app_settings.py:106
msgid "Server port"
msgstr "伺服器連接埠"
-#: core/app_settings.py:111
+#: core/app_settings.py:108
msgid "The TCP port number used by the LDAP server"
msgstr "LDAP 伺服器所使用的 TCP 連接埠"
-#: core/app_settings.py:116
+#: core/app_settings.py:113
msgid "Use a secured connection"
msgstr "使用安全的連接"
-#: core/app_settings.py:120
+#: core/app_settings.py:117
msgid "Use an SSL/STARTTLS connection to access the LDAP server"
msgstr "使用 SSL/STARTTLS 連線到 LDAP 伺服器"
-#: core/app_settings.py:124
+#: core/app_settings.py:121
msgid "Authentication method"
msgstr "身份驗證方法"
-#: core/app_settings.py:125
+#: core/app_settings.py:122
msgid "Search and bind"
msgstr "搜尋和 bind"
-#: core/app_settings.py:126
+#: core/app_settings.py:123
msgid "Direct bind"
msgstr "直接 bind"
-#: core/app_settings.py:128
+#: core/app_settings.py:125
msgid "Choose the authentication method to use"
msgstr "選擇驗證模組來使用"
-#: core/app_settings.py:133
+#: core/app_settings.py:130
msgid "Bind DN"
msgstr "Bind DN"
-#: core/app_settings.py:136
+#: core/app_settings.py:133
msgid ""
"The distinguished name to use when binding to the LDAP server. Leave empty "
"for an anonymous bind"
msgstr "當對應到 LDAP 伺服器請使用醒目的名稱。保留空白為匿名 bind"
-#: core/app_settings.py:144
+#: core/app_settings.py:141
msgid "Bind password"
msgstr "Bind 密碼"
-#: core/app_settings.py:147
+#: core/app_settings.py:144
msgid "The password to use when binding to the LDAP server (with 'Bind DN')"
msgstr "此密碼使用於當綁定到 LDAP 伺服器 (有 'Bind DN')"
-#: core/app_settings.py:156
+#: core/app_settings.py:153
msgid "Users search base"
msgstr "使用者搜尋基準"
-#: core/app_settings.py:159
+#: core/app_settings.py:156
msgid "The distinguished name of the search base used to find users"
msgstr "搜尋基準使用醒目的名稱來找到使用者"
-#: core/app_settings.py:166
+#: core/app_settings.py:163
msgid "Search filter"
msgstr "搜尋過濾器"
-#: core/app_settings.py:169
+#: core/app_settings.py:166
msgid ""
"An optional filter string (e.g. '(objectClass=person)'). In order to be "
"valid, it must be enclosed in parentheses."
-msgstr "過濾字串的選 (例如 '(objectClass=person)'). 要能正常使用,這必須括在括號內。"
+msgstr ""
+"過濾字串的選 (例如 '(objectClass=person)'). 要能正常使用,這必須括在括號內。"
-#: core/app_settings.py:177
+#: core/app_settings.py:174
msgid "User DN template"
msgstr "使用者 DN 範本"
-#: core/app_settings.py:180
+#: core/app_settings.py:177
#, python-format
msgid ""
"The template used to construct a user's DN. It should contain one "
"placeholder (ie. %(user)s)"
msgstr "此範本已使用結構化使用者的 DN. 他應該包含一個佔位符 (例如 %(user)s)"
-#: core/app_settings.py:188
+#: core/app_settings.py:185
msgid "Password attribute"
msgstr "密碼屬性"
-#: core/app_settings.py:190
+#: core/app_settings.py:187
msgid "The attribute used to store user passwords"
msgstr "此屬性使用在儲存使用者密碼"
-#: core/app_settings.py:195
+#: core/app_settings.py:192
msgid "Active Directory"
msgstr "Active Directory"
-#: core/app_settings.py:198
+#: core/app_settings.py:195
msgid "Tell if the LDAP server is an Active Directory one"
msgstr "判斷 LDAP 伺服器是否是 Active Directory 伺服器"
-#: core/app_settings.py:202
+#: core/app_settings.py:199
msgid "Administrator groups"
msgstr "管理者群組"
-#: core/app_settings.py:205
+#: core/app_settings.py:202
msgid ""
-"Members of those LDAP Posix groups will be created as domain administrators."
-" Use ';' characters to separate groups."
+"Members of those LDAP Posix groups will be created as domain administrators. "
+"Use ';' characters to separate groups."
msgstr "這些 LDAP 群組的成員將會建立為網域管理者。使用 ';' 字元來分開群組"
-#: core/app_settings.py:212
+#: core/app_settings.py:209
msgid "Group type"
msgstr "群組類型"
-#: core/app_settings.py:216
+#: core/app_settings.py:213
msgid "The LDAP group type to use with your directory."
msgstr "此 LDAP 群組類型會使用您的目錄"
-#: core/app_settings.py:221
+#: core/app_settings.py:218
msgid "Groups search base"
msgstr "群組搜尋基準"
-#: core/app_settings.py:224
+#: core/app_settings.py:221
msgid "The distinguished name of the search base used to find groups"
msgstr "搜尋基準使用醒目的名稱來找到群組"
-#: core/app_settings.py:229 core/templates/core/dashboard.html:5
+#: core/app_settings.py:226 core/templates/core/dashboard.html:5
msgid "Dashboard"
msgstr "儀表板"
-#: core/app_settings.py:232
+#: core/app_settings.py:229
msgid "Custom RSS feed"
msgstr "自訂 RSS 來源"
-#: core/app_settings.py:235
+#: core/app_settings.py:232
msgid "Display custom RSS feed to resellers and domain administrators"
msgstr "顯示自訂的 RSS 來源給經銷商和網域管理者"
-#: core/app_settings.py:240
+#: core/app_settings.py:237
msgid "Hide features widget"
msgstr "隱藏功能物件"
-#: core/app_settings.py:243
+#: core/app_settings.py:240
msgid "Hide features widget for resellers and domain administrators"
msgstr "隱藏功能物件給經銷商和網域管理者"
-#: core/app_settings.py:247
+#: core/app_settings.py:244
msgid "Notifications"
msgstr "通知"
-#: core/app_settings.py:250
+#: core/app_settings.py:247
msgid "Sender address"
msgstr "伺服器位址"
-#: core/app_settings.py:253
+#: core/app_settings.py:250
msgid "Email address used to send notifications."
msgstr "郵件地址用於寄送通知。"
-#: core/app_settings.py:257
+#: core/app_settings.py:254
msgid "Public API"
msgstr "公用 API"
-#: core/app_settings.py:260
+#: core/app_settings.py:257
msgid "Enable communication"
msgstr "啟用通訊"
-#: core/app_settings.py:263
+#: core/app_settings.py:260
msgid "Enable communication with Modoboa public API"
msgstr "開啟 Modoboa 公用 API 的通訊"
-#: core/app_settings.py:267
+#: core/app_settings.py:264
msgid "Check new versions"
msgstr "檢查新的版本"
-#: core/app_settings.py:270
+#: core/app_settings.py:267
msgid "Automatically checks if a newer version is available"
msgstr "假如有新的版本就自動檢查"
-#: core/app_settings.py:274
+#: core/app_settings.py:271
msgid "Send statistics"
msgstr "寄送狀態"
-#: core/app_settings.py:277
+#: core/app_settings.py:274
msgid "Send statistics to Modoboa public API (counters and used extensions)"
msgstr "寄送狀態到 Modoboa 公用 API (計數器及已使用的外掛)"
-#: core/app_settings.py:281
+#: core/app_settings.py:278
msgid "Miscellaneous"
msgstr "雜項"
-#: core/app_settings.py:284
+#: core/app_settings.py:281
msgid "Inactive account threshold"
msgstr "未啟用帳號上限"
-#: core/app_settings.py:287
+#: core/app_settings.py:284
msgid ""
-"An account with a last login date greater than this threshold (in days) will"
-" be considered as inactive"
+"An account with a last login date greater than this threshold (in days) will "
+"be considered as inactive"
msgstr "這個帳號最後一次登錄日期超過這個上限 (在幾天) 將考慮停用"
-#: core/app_settings.py:294
+#: core/app_settings.py:291
msgid "Top notifications check interval"
msgstr "檢查提醒間隔"
-#: core/app_settings.py:297
+#: core/app_settings.py:294
msgid "Interval between two top notification checks (in seconds)"
msgstr "兩次檢查提醒間隔 (在幾秒)"
-#: core/app_settings.py:303
+#: core/app_settings.py:300
msgid "Maximum log record age"
msgstr "最大日誌紀錄時間"
-#: core/app_settings.py:305
+#: core/app_settings.py:302
msgid "The maximum age in days of a log record"
msgstr ""
-#: core/app_settings.py:310
+#: core/app_settings.py:307
msgid "Items per page"
msgstr "每頁的條目數量"
-#: core/app_settings.py:312
+#: core/app_settings.py:309
msgid "Number of displayed items per page"
msgstr ""
-#: core/app_settings.py:317
+#: core/app_settings.py:314
msgid "Default top redirection"
msgstr ""
-#: core/app_settings.py:321
+#: core/app_settings.py:318
msgid "The default redirection used when no application is specified"
msgstr ""
-#: core/app_settings.py:354
-msgid "Key must be either 16, 24, or 32 bytes long"
-msgstr ""
-
-#: core/app_settings.py:363
+#: core/app_settings.py:353
msgid "Invalid syntax"
msgstr ""
-#: core/app_settings.py:369
+#: core/app_settings.py:359
msgid "Invalid rounds number"
msgstr ""
-#: core/app_settings.py:396
+#: core/app_settings.py:386
msgid "This field is required"
msgstr ""
-#: core/apps.py:20
+#: core/apps.py:22
msgid "General"
msgstr ""
-#: core/checks/settings_checks.py:11
+#: core/checks/settings_checks.py:10
msgid ""
"You have USE_TZ set to False, this may result in issues during transitions "
"between summer/winter time (ie the same local time occuring twice due to "
"clock change)."
msgstr ""
-#: core/checks/settings_checks.py:14
+#: core/checks/settings_checks.py:13
msgid "Set `USE_TZ = True` in settings.py"
msgstr ""
@@ -388,163 +390,163 @@ msgstr "經銷商"
msgid "Super administrator"
msgstr "超級管理員"
-#: core/constants.py:51 lib/form_utils.py:394
+#: core/constants.py:53 lib/form_utils.py:393
msgid "No"
msgstr "否"
-#: core/forms.py:24
+#: core/forms.py:22
msgid "Username"
msgstr "使用者名稱"
-#: core/forms.py:28
+#: core/forms.py:26
msgid "Password"
msgstr "密碼"
-#: core/forms.py:41
+#: core/forms.py:39
msgid "Old password"
msgstr "舊密碼"
-#: core/forms.py:45
+#: core/forms.py:43
msgid "New password"
msgstr "新密碼"
-#: core/forms.py:49
+#: core/forms.py:47
msgid "Confirmation"
msgstr "確認"
-#: core/forms.py:77
+#: core/forms.py:75
msgid "Old password mismatchs"
msgstr "舊密碼不相符"
-#: core/forms.py:86
+#: core/forms.py:84
msgid "Passwords mismatch"
msgstr "密碼不相符"
-#: core/forms.py:106
+#: core/forms.py:104
msgid "Enable API access"
msgstr "啟用 API 存取"
-#: core/handlers.py:43
+#: core/handlers.py:40
msgid "added"
msgstr "已增加"
-#: core/handlers.py:46
+#: core/handlers.py:43
msgid "modified"
msgstr "已修改"
-#: core/handlers.py:48
+#: core/handlers.py:45
#, python-format
msgid "%(object)s '%(name)s' %(action)s by user %(user)s"
msgstr ""
-#: core/handlers.py:70
+#: core/handlers.py:67
#, python-format
msgid "%(object)s '%(name)s' %(action)s by "
msgstr ""
-#: core/handlers.py:72
+#: core/handlers.py:69
msgid "deleted"
msgstr "已移除"
-#: core/handlers.py:76
+#: core/handlers.py:73
msgid "user {}"
msgstr "使用者 {}"
-#: core/handlers.py:78
+#: core/handlers.py:75
msgid "management command"
msgstr "管理指令"
-#: core/handlers.py:102
+#: core/handlers.py:99
msgid "You can't delete your own account"
msgstr "您不可以刪除您擁有的帳號"
-#: core/handlers.py:138
+#: core/handlers.py:135
msgid "One or more updates are available"
msgstr "一個或多個可用的更新"
-#: core/models.py:58
+#: core/models.py:57
msgid "Allow mailboxes access"
msgstr "允許信箱存取"
-#: core/models.py:60
+#: core/models.py:59
msgid "Allow this administrator to access user mailboxes"
msgstr "允許這個管理者來存取使用者信箱"
-#: core/models.py:63
+#: core/models.py:62
msgid "password"
msgstr "密碼"
-#: core/models.py:66
+#: core/models.py:65
msgid "language"
msgstr "語言"
-#: core/models.py:69
+#: core/models.py:68
msgid "Prefered language to display pages."
msgstr "顯示頁面的預設語言"
-#: core/models.py:73
+#: core/models.py:72
msgid "Phone number"
msgstr "電話號碼"
-#: core/models.py:75
+#: core/models.py:74
msgid "Secondary email"
msgstr "次要電子郵件"
-#: core/models.py:78
+#: core/models.py:77
msgid "An alternative e-mail address, can be used for recovery needs."
msgstr "替代的電子郵件,可以使用在需要回復的時候。"
-#: core/models.py:128
+#: core/models.py:127
msgid "Failed to update password: LDAP module not installed"
msgstr "更新密碼失敗: LDAP 模組未安裝"
-#: core/models.py:157
+#: core/models.py:156
msgid "account"
msgstr "帳號"
-#: core/models.py:279
+#: core/models.py:278
msgid "Unknown"
msgstr "未知"
-#: core/models.py:313
+#: core/models.py:312
msgid "Invalid line"
msgstr "無效的線"
-#: core/models.py:321
+#: core/models.py:320
msgid "You can't import an account with a role greater than yours"
msgstr ""
-#: core/models.py:336
+#: core/models.py:335
#, python-format
msgid "The simple user '%s' must have a valid email address"
msgstr ""
-#: core/models.py:341
+#: core/models.py:340
#, python-format
msgid "username and email fields must not differ for '%s'"
msgstr ""
-#: core/password_validation.py:26
+#: core/password_validation.py:28
msgid "Password must contain at least {} digit."
msgid_plural "Password must contain at least {} digits."
msgstr[0] ""
-#: core/password_validation.py:36
+#: core/password_validation.py:38
msgid "Password must contain at least {} lowercase letter."
msgid_plural "Password must contain at least {} lowercase letters."
msgstr[0] ""
-#: core/password_validation.py:47
+#: core/password_validation.py:49
msgid "Password must contain at least {} uppercase letter."
msgid_plural "Password must contain at least {} uppercase letters."
msgstr[0] ""
-#: core/password_validation.py:59
+#: core/password_validation.py:61
msgid "Password must contain at least {} special character."
msgid_plural "Password must contain at least {} special characters."
msgstr[0] ""
-#: core/password_validation.py:67
+#: core/password_validation.py:69
msgid "Your password must contain a combination of different character types."
msgstr ""
@@ -585,8 +587,8 @@ msgstr ""
#: core/templates/core/api_access.html:7
#, python-format
msgid ""
-"A documentation of the API is available here."
+"A documentation of the API is available here."
msgstr ""
#: core/templates/core/api_access.html:14
@@ -594,7 +596,7 @@ msgid "API access token"
msgstr ""
#: core/templates/core/api_access.html:35
-#: core/templates/core/user_profile.html:10 lib/form_utils.py:359
+#: core/templates/core/user_profile.html:10 lib/form_utils.py:358
msgid "Update"
msgstr ""
@@ -603,7 +605,7 @@ msgstr ""
msgid "Hello %(user)s."
msgstr ""
-#: core/templates/core/information.html:2 core/templatetags/core_tags.py:64
+#: core/templates/core/information.html:2 core/templatetags/core_tags.py:66
msgid "Information"
msgstr ""
@@ -652,7 +654,7 @@ msgstr ""
msgid "Last login"
msgstr ""
-#: core/templates/core/logs.html:2 core/templatetags/core_tags.py:68
+#: core/templates/core/logs.html:2 core/templatetags/core_tags.py:70
msgid "Logs"
msgstr "記錄"
@@ -660,7 +662,7 @@ msgstr "記錄"
msgid "Previously on Modoboa..."
msgstr ""
-#: core/templates/core/logs.html:6 lib/templatetags/lib_tags.py:109
+#: core/templates/core/logs.html:6 lib/templatetags/lib_tags.py:110
msgid "Date"
msgstr "日期"
@@ -676,7 +678,7 @@ msgstr ""
msgid "Message"
msgstr ""
-#: core/templates/core/parameters.html:2 core/templatetags/core_tags.py:73
+#: core/templates/core/parameters.html:2 core/templatetags/core_tags.py:75
msgid "Parameters"
msgstr "參數"
@@ -693,12 +695,12 @@ msgstr "儲存"
msgid "Modoboa settings"
msgstr "Modoboa 設定"
-#: core/templates/core/user_index.html:4 core/templatetags/core_tags.py:92
+#: core/templates/core/user_index.html:4 core/templatetags/core_tags.py:94
msgid "Settings"
msgstr "設定"
#: core/templates/core/user_preferences.html:2
-#: core/templatetags/core_tags.py:122
+#: core/templatetags/core_tags.py:124
msgid "Preferences"
msgstr "偏好選項"
@@ -710,7 +712,7 @@ msgstr ""
msgid "No preferences available."
msgstr "沒有可用的狀態"
-#: core/templates/core/user_profile.html:3 core/templatetags/core_tags.py:118
+#: core/templates/core/user_profile.html:3 core/templatetags/core_tags.py:120
msgid "Profile"
msgstr "檔案"
@@ -718,36 +720,41 @@ msgstr "檔案"
msgid "Update your personal information"
msgstr "更新你的個人信息"
-#: core/templatetags/core_tags.py:36
+#: core/templatetags/core_tags.py:38
msgid "Modoboa"
msgstr "Modoboa"
-#: core/templatetags/core_tags.py:104
+#: core/templatetags/core_tags.py:106
msgid "Logout"
msgstr "登出"
-#: core/templatetags/core_tags.py:129
+#: core/templatetags/core_tags.py:131
msgid "API"
msgstr "API"
-#: core/utils.py:35
+#: core/utils.py:36
msgid "The core part of Modoboa"
msgstr "Modoboa 的核心部分"
-#: core/views/admin.py:48
+#: core/views/admin.py:47
msgid "Parameters saved"
msgstr "參數已儲存"
-#: core/views/auth.py:45
+#: core/views/auth.py:50
+#, python-format
+msgid "Password scheme mismatch. Updating %s password"
+msgstr ""
+
+#: core/views/auth.py:64
#, python-format
msgid "User '%s' successfully logged in"
msgstr ""
-#: core/views/auth.py:53
+#: core/views/auth.py:72
msgid "Your username and password didn't match. Please try again."
msgstr ""
-#: core/views/auth.py:88
+#: core/views/auth.py:107
msgid "User '{}' successfully logged out"
msgstr ""
@@ -768,49 +775,53 @@ msgstr "存取已更新"
msgid "Connection to database %s not configured"
msgstr "連線到資料庫 %s 未設置"
-#: lib/exceptions.py:70
+#: lib/email_utils.py:350
+msgid "unable to determine encoding of string"
+msgstr ""
+
+#: lib/exceptions.py:71
#, python-format
msgid "Permission denied: %s"
msgstr "權限不足: %s"
-#: lib/exceptions.py:71
+#: lib/exceptions.py:72
msgid "Permission denied"
msgstr "權限不足"
-#: lib/fields.py:17 lib/validators.py:16
+#: lib/fields.py:19 lib/validators.py:18
msgid "Enter a valid domain name"
msgstr "輸入有效的網域名稱"
-#: lib/fields.py:46 lib/fields.py:60
+#: lib/fields.py:48 lib/fields.py:62
msgid "Enter a valid email address."
msgstr "輸入有效的電子郵件"
-#: lib/form_utils.py:82 templates/registration/password_reset_confirm.html:12
+#: lib/form_utils.py:81 templates/registration/password_reset_confirm.html:12
#: templates/registration/password_reset_form.html:11
msgid "Submit"
msgstr "執行"
-#: lib/form_utils.py:115 lib/form_utils.py:118
+#: lib/form_utils.py:114 lib/form_utils.py:117
msgid "Invalid request"
msgstr ""
-#: lib/form_utils.py:393
+#: lib/form_utils.py:392
msgid "Yes"
msgstr "是"
-#: lib/ldap_utils.py:133
+#: lib/ldap_utils.py:134
msgid "Failed to update password: {}"
msgstr "更新密碼失敗: {}"
-#: lib/templatetags/lib_tags.py:107
+#: lib/templatetags/lib_tags.py:108
msgid "From"
msgstr "寄件人"
-#: lib/templatetags/lib_tags.py:108
+#: lib/templatetags/lib_tags.py:109
msgid "To"
msgstr "收件人"
-#: lib/templatetags/lib_tags.py:110 templates/common/email_searchbar.html:17
+#: lib/templatetags/lib_tags.py:111 templates/common/email_searchbar.html:17
msgid "Subject"
msgstr "主題"
@@ -847,9 +858,8 @@ msgstr "錯誤:"
msgid "Help:"
msgstr "幫助:"
-#: templates/common/generic_modal.html:6
-#: templates/common/generic_modal.html:13 templates/common/wizard_forms.html:6
-#: templates/common/wizard_forms.html:27
+#: templates/common/generic_modal.html:6 templates/common/generic_modal.html:13
+#: templates/common/wizard_forms.html:6 templates/common/wizard_forms.html:27
msgid "Close"
msgstr "關閉"
@@ -923,3 +933,9 @@ msgstr ""
#: templates/registration/password_reset_subject.txt:3
msgid "Modoboa password reset"
msgstr "Modoboa 密碼重設"
+
+#~ msgid "Secret key"
+#~ msgstr "密鑰"
+
+#~ msgid "Key used to encrypt/decrypt passwords"
+#~ msgstr "金鑰用於加密/解密"
diff --git a/modoboa/relaydomains/locale/cs_CZ/LC_MESSAGES/django.po b/modoboa/relaydomains/locale/cs_CZ/LC_MESSAGES/django.po
index 815f960f5..649ef87dd 100644
--- a/modoboa/relaydomains/locale/cs_CZ/LC_MESSAGES/django.po
+++ b/modoboa/relaydomains/locale/cs_CZ/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-01-25 09:09+0100\n"
+"POT-Creation-Date: 2018-10-05 16:08+0200\n"
"PO-Revision-Date: 2015-01-06 10:05+0000\n"
"Last-Translator: Miroslav Abrahám \n"
"Language-Team: Czech (Czech Republic) (http://www.transifex.com/projects/p/"
@@ -19,37 +19,37 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
-#: relaydomains/handlers.py:68
+#: relaydomains/handlers.py:65
#, fuzzy
#| msgid "Relay domains"
msgid "Transport settings"
msgstr "Relay domény"
-#: relaydomains/handlers.py:92
+#: relaydomains/handlers.py:89
msgid "Transport"
msgstr ""
-#: relaydomains/lib.py:16
+#: relaydomains/lib.py:17
msgid "Invalid line"
msgstr "Neplatný řádek"
-#: relaydomains/serializers.py:26
+#: relaydomains/serializers.py:29
msgid "Unsupported service"
msgstr ""
-#: relaydomains/transport.py:14
+#: relaydomains/transport.py:18
#, fuzzy
#| msgid "target host"
msgid "target host address"
msgstr "cílový server"
-#: relaydomains/transport.py:16
+#: relaydomains/transport.py:20
#, fuzzy
#| msgid "target host"
msgid "target host port"
msgstr "cílový server"
-#: relaydomains/transport.py:18
+#: relaydomains/transport.py:22
msgid "verify recipients"
msgstr "ověřit příjemce"
diff --git a/modoboa/relaydomains/locale/de/LC_MESSAGES/django.po b/modoboa/relaydomains/locale/de/LC_MESSAGES/django.po
index 85e2a5a2d..a90079e76 100644
--- a/modoboa/relaydomains/locale/de/LC_MESSAGES/django.po
+++ b/modoboa/relaydomains/locale/de/LC_MESSAGES/django.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-01-25 09:09+0100\n"
+"POT-Creation-Date: 2018-10-05 16:08+0200\n"
"PO-Revision-Date: 2014-12-03 11:02+0000\n"
"Last-Translator: Arvedui \n"
"Language-Team: German (http://www.transifex.com/projects/p/modoboa/language/"
@@ -20,37 +20,37 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: relaydomains/handlers.py:68
+#: relaydomains/handlers.py:65
#, fuzzy
#| msgid "Relay domains"
msgid "Transport settings"
msgstr "Relaydomain"
-#: relaydomains/handlers.py:92
+#: relaydomains/handlers.py:89
msgid "Transport"
msgstr ""
-#: relaydomains/lib.py:16
+#: relaydomains/lib.py:17
msgid "Invalid line"
msgstr "Ungültige Zeile"
-#: relaydomains/serializers.py:26
+#: relaydomains/serializers.py:29
msgid "Unsupported service"
msgstr ""
-#: relaydomains/transport.py:14
+#: relaydomains/transport.py:18
#, fuzzy
#| msgid "target host"
msgid "target host address"
msgstr "Ziel-Host"
-#: relaydomains/transport.py:16
+#: relaydomains/transport.py:20
#, fuzzy
#| msgid "target host"
msgid "target host port"
msgstr "Ziel-Host"
-#: relaydomains/transport.py:18
+#: relaydomains/transport.py:22
msgid "verify recipients"
msgstr "Empfänger verifizieren"
diff --git a/modoboa/relaydomains/locale/el_GR/LC_MESSAGES/django.po b/modoboa/relaydomains/locale/el_GR/LC_MESSAGES/django.po
index 34e663f69..57030a866 100644
--- a/modoboa/relaydomains/locale/el_GR/LC_MESSAGES/django.po
+++ b/modoboa/relaydomains/locale/el_GR/LC_MESSAGES/django.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-01-25 09:09+0100\n"
+"POT-Creation-Date: 2018-10-05 16:08+0200\n"
"PO-Revision-Date: 2017-10-12 13:34+0000\n"
"Last-Translator: Kostas Moumouris \n"
"Language-Team: Greek (Greece) (http://www.transifex.com/tonio/modoboa/"
@@ -20,33 +20,33 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: relaydomains/handlers.py:68
+#: relaydomains/handlers.py:65
#, fuzzy
#| msgid "Relay settings"
msgid "Transport settings"
msgstr "Ρυθμίσεις Relay"
-#: relaydomains/handlers.py:92
+#: relaydomains/handlers.py:89
msgid "Transport"
msgstr ""
-#: relaydomains/lib.py:16
+#: relaydomains/lib.py:17
msgid "Invalid line"
msgstr "Λάθος γραμμή"
-#: relaydomains/serializers.py:26
+#: relaydomains/serializers.py:29
msgid "Unsupported service"
msgstr ""
-#: relaydomains/transport.py:14
+#: relaydomains/transport.py:18
msgid "target host address"
msgstr "Διεύθυνση κεντρικού host"
-#: relaydomains/transport.py:16
+#: relaydomains/transport.py:20
msgid "target host port"
msgstr "Θύρα κεντρικού host"
-#: relaydomains/transport.py:18
+#: relaydomains/transport.py:22
msgid "verify recipients"
msgstr "επιβεβαίωση παραληπτών"
diff --git a/modoboa/relaydomains/locale/en/LC_MESSAGES/django.po b/modoboa/relaydomains/locale/en/LC_MESSAGES/django.po
index e962c4cea..c7993e54d 100644
--- a/modoboa/relaydomains/locale/en/LC_MESSAGES/django.po
+++ b/modoboa/relaydomains/locale/en/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-01-25 09:09+0100\n"
+"POT-Creation-Date: 2018-10-05 16:08+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -17,30 +17,30 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: relaydomains/handlers.py:68
+#: relaydomains/handlers.py:65
msgid "Transport settings"
msgstr ""
-#: relaydomains/handlers.py:92
+#: relaydomains/handlers.py:89
msgid "Transport"
msgstr ""
-#: relaydomains/lib.py:16
+#: relaydomains/lib.py:17
msgid "Invalid line"
msgstr ""
-#: relaydomains/serializers.py:26
+#: relaydomains/serializers.py:29
msgid "Unsupported service"
msgstr ""
-#: relaydomains/transport.py:14
+#: relaydomains/transport.py:18
msgid "target host address"
msgstr ""
-#: relaydomains/transport.py:16
+#: relaydomains/transport.py:20
msgid "target host port"
msgstr ""
-#: relaydomains/transport.py:18
+#: relaydomains/transport.py:22
msgid "verify recipients"
msgstr ""
diff --git a/modoboa/relaydomains/locale/es/LC_MESSAGES/django.po b/modoboa/relaydomains/locale/es/LC_MESSAGES/django.po
index 10e022139..ebb9f653a 100644
--- a/modoboa/relaydomains/locale/es/LC_MESSAGES/django.po
+++ b/modoboa/relaydomains/locale/es/LC_MESSAGES/django.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-01-25 09:09+0100\n"
+"POT-Creation-Date: 2018-10-05 16:08+0200\n"
"PO-Revision-Date: 2013-10-01 09:56+0000\n"
"Last-Translator: Pedro Gracia \n"
"Language-Team: Spanish (http://www.transifex.com/projects/p/modoboa/language/"
@@ -20,34 +20,34 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: relaydomains/handlers.py:68
+#: relaydomains/handlers.py:65
#, fuzzy
msgid "Transport settings"
msgstr "Nuevo dominio"
-#: relaydomains/handlers.py:92
+#: relaydomains/handlers.py:89
msgid "Transport"
msgstr ""
-#: relaydomains/lib.py:16
+#: relaydomains/lib.py:17
msgid "Invalid line"
msgstr "Línea inválida"
-#: relaydomains/serializers.py:26
+#: relaydomains/serializers.py:29
msgid "Unsupported service"
msgstr ""
-#: relaydomains/transport.py:14
+#: relaydomains/transport.py:18
#, fuzzy
msgid "target host address"
msgstr "objetivo"
-#: relaydomains/transport.py:16
+#: relaydomains/transport.py:20
#, fuzzy
msgid "target host port"
msgstr "objetivo"
-#: relaydomains/transport.py:18
+#: relaydomains/transport.py:22
#, fuzzy
msgid "verify recipients"
msgstr "Destinatarios"
diff --git a/modoboa/relaydomains/locale/fr/LC_MESSAGES/django.po b/modoboa/relaydomains/locale/fr/LC_MESSAGES/django.po
index 57378abe7..dbdc25e44 100644
--- a/modoboa/relaydomains/locale/fr/LC_MESSAGES/django.po
+++ b/modoboa/relaydomains/locale/fr/LC_MESSAGES/django.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-01-25 09:09+0100\n"
+"POT-Creation-Date: 2018-10-05 16:08+0200\n"
"PO-Revision-Date: 2018-01-25 09:19+0100\n"
"Last-Translator: Antoine Nguyen \n"
"Language-Team: French (http://www.transifex.com/tonio/modoboa/language/fr/)\n"
@@ -19,31 +19,31 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-#: relaydomains/handlers.py:68
+#: relaydomains/handlers.py:65
msgid "Transport settings"
msgstr "Paramètres du transport"
-#: relaydomains/handlers.py:92
+#: relaydomains/handlers.py:89
msgid "Transport"
msgstr "Transport"
-#: relaydomains/lib.py:16
+#: relaydomains/lib.py:17
msgid "Invalid line"
msgstr "Ligne invalide"
-#: relaydomains/serializers.py:26
+#: relaydomains/serializers.py:29
msgid "Unsupported service"
msgstr "Service non supporté"
-#: relaydomains/transport.py:14
+#: relaydomains/transport.py:18
msgid "target host address"
msgstr "Adresse de l'hôte cible"
-#: relaydomains/transport.py:16
+#: relaydomains/transport.py:20
msgid "target host port"
msgstr "Port de l'hôte cible"
-#: relaydomains/transport.py:18
+#: relaydomains/transport.py:22
msgid "verify recipients"
msgstr "Vérifier les destinataires"
diff --git a/modoboa/relaydomains/locale/it/LC_MESSAGES/django.po b/modoboa/relaydomains/locale/it/LC_MESSAGES/django.po
index 7e47a6233..5c3dada1a 100644
--- a/modoboa/relaydomains/locale/it/LC_MESSAGES/django.po
+++ b/modoboa/relaydomains/locale/it/LC_MESSAGES/django.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-01-25 09:09+0100\n"
+"POT-Creation-Date: 2018-10-05 16:08+0200\n"
"PO-Revision-Date: 2013-12-23 00:56+0100\n"
"Last-Translator: Alberto Berti \n"
"Language-Team: ITALIANO \n"
@@ -17,37 +17,37 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: relaydomains/handlers.py:68
+#: relaydomains/handlers.py:65
#, fuzzy
#| msgid "Relay domains"
msgid "Transport settings"
msgstr "Domini relè"
-#: relaydomains/handlers.py:92
+#: relaydomains/handlers.py:89
msgid "Transport"
msgstr ""
-#: relaydomains/lib.py:16
+#: relaydomains/lib.py:17
msgid "Invalid line"
msgstr "Riga non valida"
-#: relaydomains/serializers.py:26
+#: relaydomains/serializers.py:29
msgid "Unsupported service"
msgstr ""
-#: relaydomains/transport.py:14
+#: relaydomains/transport.py:18
#, fuzzy
#| msgid "target host"
msgid "target host address"
msgstr "destinazione"
-#: relaydomains/transport.py:16
+#: relaydomains/transport.py:20
#, fuzzy
#| msgid "target host"
msgid "target host port"
msgstr "destinazione"
-#: relaydomains/transport.py:18
+#: relaydomains/transport.py:22
msgid "verify recipients"
msgstr "Verifica destinatari"
diff --git a/modoboa/relaydomains/locale/ja_JP/LC_MESSAGES/django.po b/modoboa/relaydomains/locale/ja_JP/LC_MESSAGES/django.po
index 22a3ab5de..a9a9631a6 100644
--- a/modoboa/relaydomains/locale/ja_JP/LC_MESSAGES/django.po
+++ b/modoboa/relaydomains/locale/ja_JP/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-01-25 09:09+0100\n"
+"POT-Creation-Date: 2018-10-05 16:08+0200\n"
"PO-Revision-Date: 2016-06-07 07:27+0000\n"
"Last-Translator: cwatanab \n"
"Language-Team: Japanese (Japan) (http://www.transifex.com/tonio/modoboa/"
@@ -19,37 +19,37 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-#: relaydomains/handlers.py:68
+#: relaydomains/handlers.py:65
#, fuzzy
#| msgid "Relay settings"
msgid "Transport settings"
msgstr "リレー設定"
-#: relaydomains/handlers.py:92
+#: relaydomains/handlers.py:89
msgid "Transport"
msgstr ""
-#: relaydomains/lib.py:16
+#: relaydomains/lib.py:17
msgid "Invalid line"
msgstr "不正な行"
-#: relaydomains/serializers.py:26
+#: relaydomains/serializers.py:29
msgid "Unsupported service"
msgstr ""
-#: relaydomains/transport.py:14
+#: relaydomains/transport.py:18
#, fuzzy
#| msgid "target host"
msgid "target host address"
msgstr "ターゲットホスト"
-#: relaydomains/transport.py:16
+#: relaydomains/transport.py:20
#, fuzzy
#| msgid "target host"
msgid "target host port"
msgstr "ターゲットホスト"
-#: relaydomains/transport.py:18
+#: relaydomains/transport.py:22
msgid "verify recipients"
msgstr "受信者を確認"
diff --git a/modoboa/relaydomains/locale/nl_NL/LC_MESSAGES/django.po b/modoboa/relaydomains/locale/nl_NL/LC_MESSAGES/django.po
index 241f0e46b..0cd68f458 100644
--- a/modoboa/relaydomains/locale/nl_NL/LC_MESSAGES/django.po
+++ b/modoboa/relaydomains/locale/nl_NL/LC_MESSAGES/django.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-01-25 09:09+0100\n"
+"POT-Creation-Date: 2018-10-05 16:08+0200\n"
"PO-Revision-Date: 2014-12-31 11:37+0000\n"
"Last-Translator: TuxBrother \n"
"Language-Team: Dutch (Netherlands) (http://www.transifex.com/projects/p/"
@@ -20,37 +20,37 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: relaydomains/handlers.py:68
+#: relaydomains/handlers.py:65
#, fuzzy
#| msgid "Relay domains"
msgid "Transport settings"
msgstr "Doorstuur domeinen"
-#: relaydomains/handlers.py:92
+#: relaydomains/handlers.py:89
msgid "Transport"
msgstr ""
-#: relaydomains/lib.py:16
+#: relaydomains/lib.py:17
msgid "Invalid line"
msgstr "Verkeerde regel"
-#: relaydomains/serializers.py:26
+#: relaydomains/serializers.py:29
msgid "Unsupported service"
msgstr ""
-#: relaydomains/transport.py:14
+#: relaydomains/transport.py:18
#, fuzzy
#| msgid "target host"
msgid "target host address"
msgstr "doel host"
-#: relaydomains/transport.py:16
+#: relaydomains/transport.py:20
#, fuzzy
#| msgid "target host"
msgid "target host port"
msgstr "doel host"
-#: relaydomains/transport.py:18
+#: relaydomains/transport.py:22
msgid "verify recipients"
msgstr "controleer ontvangers"
diff --git a/modoboa/relaydomains/locale/pl_PL/LC_MESSAGES/django.po b/modoboa/relaydomains/locale/pl_PL/LC_MESSAGES/django.po
index 0c96e32d4..b124b9ba9 100644
--- a/modoboa/relaydomains/locale/pl_PL/LC_MESSAGES/django.po
+++ b/modoboa/relaydomains/locale/pl_PL/LC_MESSAGES/django.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-01-25 09:09+0100\n"
+"POT-Creation-Date: 2018-10-05 16:08+0200\n"
"PO-Revision-Date: 2017-12-01 16:11+0000\n"
"Last-Translator: Tomasz Proć \n"
"Language-Team: Polish (Poland) (http://www.transifex.com/tonio/modoboa/"
@@ -22,33 +22,33 @@ msgstr ""
"%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"
-#: relaydomains/handlers.py:68
+#: relaydomains/handlers.py:65
#, fuzzy
#| msgid "Relay settings"
msgid "Transport settings"
msgstr "Ustawienia przekazywania"
-#: relaydomains/handlers.py:92
+#: relaydomains/handlers.py:89
msgid "Transport"
msgstr ""
-#: relaydomains/lib.py:16
+#: relaydomains/lib.py:17
msgid "Invalid line"
msgstr "Nieprawidłowa linia"
-#: relaydomains/serializers.py:26
+#: relaydomains/serializers.py:29
msgid "Unsupported service"
msgstr ""
-#: relaydomains/transport.py:14
+#: relaydomains/transport.py:18
msgid "target host address"
msgstr "adres hosta docelowego"
-#: relaydomains/transport.py:16
+#: relaydomains/transport.py:20
msgid "target host port"
msgstr "docelowy port hosta"
-#: relaydomains/transport.py:18
+#: relaydomains/transport.py:22
msgid "verify recipients"
msgstr "sprawdź odbiorców"
diff --git a/modoboa/relaydomains/locale/pt_BR/LC_MESSAGES/django.po b/modoboa/relaydomains/locale/pt_BR/LC_MESSAGES/django.po
index 5116faa0c..8d1a1c3be 100644
--- a/modoboa/relaydomains/locale/pt_BR/LC_MESSAGES/django.po
+++ b/modoboa/relaydomains/locale/pt_BR/LC_MESSAGES/django.po
@@ -1,7 +1,7 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
-#
+#
# Translators:
# csmk, 2014
# Paulino Michelazzo , 2014-2015
@@ -11,40 +11,41 @@ msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-01-25 09:09+0100\n"
+"POT-Creation-Date: 2018-10-05 16:08+0200\n"
"PO-Revision-Date: 2018-09-25 03:25+0000\n"
"Last-Translator: Rafael Barretto \n"
-"Language-Team: Portuguese (Brazil) (http://www.transifex.com/tonio/modoboa/language/pt_BR/)\n"
+"Language-Team: Portuguese (Brazil) (http://www.transifex.com/tonio/modoboa/"
+"language/pt_BR/)\n"
+"Language: pt_BR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Language: pt_BR\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-#: relaydomains/handlers.py:68
+#: relaydomains/handlers.py:65
msgid "Transport settings"
msgstr "Configurações de transporte"
-#: relaydomains/handlers.py:92
+#: relaydomains/handlers.py:89
msgid "Transport"
msgstr "Transporte"
-#: relaydomains/lib.py:16
+#: relaydomains/lib.py:17
msgid "Invalid line"
msgstr "Linha inválida"
-#: relaydomains/serializers.py:26
+#: relaydomains/serializers.py:29
msgid "Unsupported service"
msgstr "Serviço não suportado"
-#: relaydomains/transport.py:14
+#: relaydomains/transport.py:18
msgid "target host address"
msgstr "Endereço do host alvo"
-#: relaydomains/transport.py:16
+#: relaydomains/transport.py:20
msgid "target host port"
msgstr "Porta do host alvo"
-#: relaydomains/transport.py:18
+#: relaydomains/transport.py:22
msgid "verify recipients"
msgstr "verificar destinatários"
diff --git a/modoboa/relaydomains/locale/pt_PT/LC_MESSAGES/django.po b/modoboa/relaydomains/locale/pt_PT/LC_MESSAGES/django.po
index a92266629..04150bfb9 100644
--- a/modoboa/relaydomains/locale/pt_PT/LC_MESSAGES/django.po
+++ b/modoboa/relaydomains/locale/pt_PT/LC_MESSAGES/django.po
@@ -13,7 +13,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-01-25 09:09+0100\n"
+"POT-Creation-Date: 2018-10-05 16:08+0200\n"
"PO-Revision-Date: 2014-12-29 12:51+0000\n"
"Last-Translator: Mike C. \n"
"Language-Team: Portuguese (Portugal) (http://www.transifex.com/projects/p/"
@@ -24,35 +24,35 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: relaydomains/handlers.py:68
+#: relaydomains/handlers.py:65
msgid "Transport settings"
msgstr ""
-#: relaydomains/handlers.py:92
+#: relaydomains/handlers.py:89
msgid "Transport"
msgstr ""
-#: relaydomains/lib.py:16
+#: relaydomains/lib.py:17
msgid "Invalid line"
msgstr "Linha inválida"
-#: relaydomains/serializers.py:26
+#: relaydomains/serializers.py:29
msgid "Unsupported service"
msgstr ""
-#: relaydomains/transport.py:14
+#: relaydomains/transport.py:18
#, fuzzy
#| msgid "target host"
msgid "target host address"
msgstr "endereço de destino"
-#: relaydomains/transport.py:16
+#: relaydomains/transport.py:20
#, fuzzy
#| msgid "target host"
msgid "target host port"
msgstr "endereço de destino"
-#: relaydomains/transport.py:18
+#: relaydomains/transport.py:22
msgid "verify recipients"
msgstr "verificar destinatários"
diff --git a/modoboa/relaydomains/locale/ro_RO/LC_MESSAGES/django.po b/modoboa/relaydomains/locale/ro_RO/LC_MESSAGES/django.po
index 40d2934c6..eed2e2027 100644
--- a/modoboa/relaydomains/locale/ro_RO/LC_MESSAGES/django.po
+++ b/modoboa/relaydomains/locale/ro_RO/LC_MESSAGES/django.po
@@ -1,47 +1,49 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
-#
+#
# Translators:
# Andrei-Ilie Olteanu , 2018
msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-01-25 09:09+0100\n"
+"POT-Creation-Date: 2018-10-05 16:08+0200\n"
"PO-Revision-Date: 2018-06-14 06:46+0000\n"
"Last-Translator: Andrei-Ilie Olteanu \n"
-"Language-Team: Romanian (Romania) (http://www.transifex.com/tonio/modoboa/language/ro_RO/)\n"
+"Language-Team: Romanian (Romania) (http://www.transifex.com/tonio/modoboa/"
+"language/ro_RO/)\n"
+"Language: ro_RO\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Language: ro_RO\n"
-"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n"
+"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?"
+"2:1));\n"
-#: relaydomains/handlers.py:68
+#: relaydomains/handlers.py:65
msgid "Transport settings"
msgstr "Setări de transport"
-#: relaydomains/handlers.py:92
+#: relaydomains/handlers.py:89
msgid "Transport"
msgstr "Transport"
-#: relaydomains/lib.py:16
+#: relaydomains/lib.py:17
msgid "Invalid line"
msgstr "Linie invalidă"
-#: relaydomains/serializers.py:26
+#: relaydomains/serializers.py:29
msgid "Unsupported service"
msgstr "Serviciu neacceptat"
-#: relaydomains/transport.py:14
+#: relaydomains/transport.py:18
msgid "target host address"
msgstr "adresă de host"
-#: relaydomains/transport.py:16
+#: relaydomains/transport.py:20
msgid "target host port"
msgstr "portul de host"
-#: relaydomains/transport.py:18
+#: relaydomains/transport.py:22
msgid "verify recipients"
msgstr "verificați destinatarii"
diff --git a/modoboa/relaydomains/locale/ru/LC_MESSAGES/django.po b/modoboa/relaydomains/locale/ru/LC_MESSAGES/django.po
index 2b440ba0f..6f4531e84 100644
--- a/modoboa/relaydomains/locale/ru/LC_MESSAGES/django.po
+++ b/modoboa/relaydomains/locale/ru/LC_MESSAGES/django.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-01-25 09:09+0100\n"
+"POT-Creation-Date: 2018-10-05 16:08+0200\n"
"PO-Revision-Date: 2013-12-03 09:35+0000\n"
"Last-Translator: Antoine Nguyen \n"
"Language-Team: Russian (http://www.transifex.com/projects/p/modoboa/language/"
@@ -19,31 +19,31 @@ msgstr ""
"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"
-#: relaydomains/handlers.py:68
+#: relaydomains/handlers.py:65
msgid "Transport settings"
msgstr ""
-#: relaydomains/handlers.py:92
+#: relaydomains/handlers.py:89
msgid "Transport"
msgstr ""
-#: relaydomains/lib.py:16
+#: relaydomains/lib.py:17
msgid "Invalid line"
msgstr "Ошибочная строка"
-#: relaydomains/serializers.py:26
+#: relaydomains/serializers.py:29
msgid "Unsupported service"
msgstr ""
-#: relaydomains/transport.py:14
+#: relaydomains/transport.py:18
msgid "target host address"
msgstr ""
-#: relaydomains/transport.py:16
+#: relaydomains/transport.py:20
msgid "target host port"
msgstr ""
-#: relaydomains/transport.py:18
+#: relaydomains/transport.py:22
msgid "verify recipients"
msgstr ""
diff --git a/modoboa/relaydomains/locale/sv/LC_MESSAGES/django.po b/modoboa/relaydomains/locale/sv/LC_MESSAGES/django.po
index 53504905a..5f6ac6dbd 100644
--- a/modoboa/relaydomains/locale/sv/LC_MESSAGES/django.po
+++ b/modoboa/relaydomains/locale/sv/LC_MESSAGES/django.po
@@ -1,7 +1,7 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
-#
+#
# Translators:
# Martin Persson , 2014
# Olle Gustafsson , 2013,2015-2018
@@ -9,40 +9,41 @@ msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-01-25 09:09+0100\n"
+"POT-Creation-Date: 2018-10-05 16:08+0200\n"
"PO-Revision-Date: 2018-08-14 08:23+0000\n"
"Last-Translator: Olle Gustafsson \n"
-"Language-Team: Swedish (http://www.transifex.com/tonio/modoboa/language/sv/)\n"
+"Language-Team: Swedish (http://www.transifex.com/tonio/modoboa/language/"
+"sv/)\n"
+"Language: sv\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Language: sv\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: relaydomains/handlers.py:68
+#: relaydomains/handlers.py:65
msgid "Transport settings"
msgstr "Transport inställningar"
-#: relaydomains/handlers.py:92
+#: relaydomains/handlers.py:89
msgid "Transport"
msgstr "Transport"
-#: relaydomains/lib.py:16
+#: relaydomains/lib.py:17
msgid "Invalid line"
msgstr "Ogiltig rad"
-#: relaydomains/serializers.py:26
+#: relaydomains/serializers.py:29
msgid "Unsupported service"
msgstr "Tjänsten stöds inte"
-#: relaydomains/transport.py:14
+#: relaydomains/transport.py:18
msgid "target host address"
msgstr "mål värdadress"
-#: relaydomains/transport.py:16
+#: relaydomains/transport.py:20
msgid "target host port"
msgstr "mål värd port"
-#: relaydomains/transport.py:18
+#: relaydomains/transport.py:22
msgid "verify recipients"
msgstr "verifiera mottagare"
diff --git a/modoboa/relaydomains/locale/zh_TW/LC_MESSAGES/django.po b/modoboa/relaydomains/locale/zh_TW/LC_MESSAGES/django.po
index 6bccecff2..9a3e8f2e8 100644
--- a/modoboa/relaydomains/locale/zh_TW/LC_MESSAGES/django.po
+++ b/modoboa/relaydomains/locale/zh_TW/LC_MESSAGES/django.po
@@ -1,47 +1,48 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
-#
+#
# Translators:
# akong , 2018
msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-01-25 09:09+0100\n"
+"POT-Creation-Date: 2018-10-05 16:08+0200\n"
"PO-Revision-Date: 2018-06-29 00:13+0000\n"
"Last-Translator: akong \n"
-"Language-Team: Chinese (Taiwan) (http://www.transifex.com/tonio/modoboa/language/zh_TW/)\n"
+"Language-Team: Chinese (Taiwan) (http://www.transifex.com/tonio/modoboa/"
+"language/zh_TW/)\n"
+"Language: zh_TW\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Language: zh_TW\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-#: relaydomains/handlers.py:68
+#: relaydomains/handlers.py:65
msgid "Transport settings"
msgstr "轉送設定"
-#: relaydomains/handlers.py:92
+#: relaydomains/handlers.py:89
msgid "Transport"
msgstr "轉送"
-#: relaydomains/lib.py:16
+#: relaydomains/lib.py:17
msgid "Invalid line"
msgstr "無效的行"
-#: relaydomains/serializers.py:26
+#: relaydomains/serializers.py:29
msgid "Unsupported service"
msgstr "不支援的服務"
-#: relaydomains/transport.py:14
+#: relaydomains/transport.py:18
msgid "target host address"
msgstr "目標主機位址"
-#: relaydomains/transport.py:16
+#: relaydomains/transport.py:20
msgid "target host port"
msgstr "目標主機連接埠"
-#: relaydomains/transport.py:18
+#: relaydomains/transport.py:22
msgid "verify recipients"
msgstr "驗證收件者"
diff --git a/modoboa/transport/locale/cs_CZ/LC_MESSAGES/django.po b/modoboa/transport/locale/cs_CZ/LC_MESSAGES/django.po
index cf6d4a27d..cf186d857 100644
--- a/modoboa/transport/locale/cs_CZ/LC_MESSAGES/django.po
+++ b/modoboa/transport/locale/cs_CZ/LC_MESSAGES/django.po
@@ -2,38 +2,40 @@
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR , YEAR.
-#
+#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-01-25 09:09+0100\n"
+"POT-Creation-Date: 2018-10-05 16:08+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Jarda Tesar , 2018\n"
-"Language-Team: Czech (Czech Republic) (https://www.transifex.com/tonio/teams/13749/cs_CZ/)\n"
+"Language-Team: Czech (Czech Republic) (https://www.transifex.com/tonio/"
+"teams/13749/cs_CZ/)\n"
+"Language: cs_CZ\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Language: cs_CZ\n"
-"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n"
+"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n "
+"<= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n"
-#: transport/backends.py:40
+#: transport/backends.py:44
msgid "This field is required"
msgstr "Toto pole je vyžadováno"
-#: transport/backends.py:55
+#: transport/backends.py:59
msgid "Invalid value"
msgstr "Neplatná hodnota"
-#: transport/models.py:18
+#: transport/models.py:20
msgid "pattern"
msgstr "vzor"
-#: transport/models.py:19
+#: transport/models.py:21
msgid "service"
msgstr "služba"
-#: transport/models.py:20
+#: transport/models.py:22
msgid "next hop"
msgstr "následující skok"
diff --git a/modoboa/transport/locale/de/LC_MESSAGES/django.po b/modoboa/transport/locale/de/LC_MESSAGES/django.po
new file mode 100644
index 000000000..68c1e45d6
--- /dev/null
+++ b/modoboa/transport/locale/de/LC_MESSAGES/django.po
@@ -0,0 +1,38 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR , YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2018-10-05 16:08+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: LANGUAGE \n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+#: transport/backends.py:44
+msgid "This field is required"
+msgstr ""
+
+#: transport/backends.py:59
+msgid "Invalid value"
+msgstr ""
+
+#: transport/models.py:20
+msgid "pattern"
+msgstr ""
+
+#: transport/models.py:21
+msgid "service"
+msgstr ""
+
+#: transport/models.py:22
+msgid "next hop"
+msgstr ""
diff --git a/modoboa/transport/locale/el_GR/LC_MESSAGES/django.po b/modoboa/transport/locale/el_GR/LC_MESSAGES/django.po
new file mode 100644
index 000000000..9e459b19b
--- /dev/null
+++ b/modoboa/transport/locale/el_GR/LC_MESSAGES/django.po
@@ -0,0 +1,38 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR , YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2018-10-05 16:08+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: LANGUAGE \n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: transport/backends.py:44
+msgid "This field is required"
+msgstr ""
+
+#: transport/backends.py:59
+msgid "Invalid value"
+msgstr ""
+
+#: transport/models.py:20
+msgid "pattern"
+msgstr ""
+
+#: transport/models.py:21
+msgid "service"
+msgstr ""
+
+#: transport/models.py:22
+msgid "next hop"
+msgstr ""
diff --git a/modoboa/transport/locale/en/LC_MESSAGES/django.po b/modoboa/transport/locale/en/LC_MESSAGES/django.po
index 43c7bbf3d..9e459b19b 100644
--- a/modoboa/transport/locale/en/LC_MESSAGES/django.po
+++ b/modoboa/transport/locale/en/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-01-25 09:09+0100\n"
+"POT-Creation-Date: 2018-10-05 16:08+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -17,22 +17,22 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: transport/backends.py:40
+#: transport/backends.py:44
msgid "This field is required"
msgstr ""
-#: transport/backends.py:55
+#: transport/backends.py:59
msgid "Invalid value"
msgstr ""
-#: transport/models.py:18
+#: transport/models.py:20
msgid "pattern"
msgstr ""
-#: transport/models.py:19
+#: transport/models.py:21
msgid "service"
msgstr ""
-#: transport/models.py:20
+#: transport/models.py:22
msgid "next hop"
msgstr ""
diff --git a/modoboa/transport/locale/es/LC_MESSAGES/django.po b/modoboa/transport/locale/es/LC_MESSAGES/django.po
new file mode 100644
index 000000000..68c1e45d6
--- /dev/null
+++ b/modoboa/transport/locale/es/LC_MESSAGES/django.po
@@ -0,0 +1,38 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR , YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2018-10-05 16:08+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: LANGUAGE \n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+#: transport/backends.py:44
+msgid "This field is required"
+msgstr ""
+
+#: transport/backends.py:59
+msgid "Invalid value"
+msgstr ""
+
+#: transport/models.py:20
+msgid "pattern"
+msgstr ""
+
+#: transport/models.py:21
+msgid "service"
+msgstr ""
+
+#: transport/models.py:22
+msgid "next hop"
+msgstr ""
diff --git a/modoboa/transport/locale/fr/LC_MESSAGES/django.po b/modoboa/transport/locale/fr/LC_MESSAGES/django.po
index 2e8b25976..61baa5c1a 100644
--- a/modoboa/transport/locale/fr/LC_MESSAGES/django.po
+++ b/modoboa/transport/locale/fr/LC_MESSAGES/django.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-01-25 09:09+0100\n"
+"POT-Creation-Date: 2018-10-05 16:08+0200\n"
"PO-Revision-Date: 2017-11-24 17:22+0100\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -17,23 +17,23 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-#: transport/backends.py:40
+#: transport/backends.py:44
msgid "This field is required"
msgstr "Ce champ est requis"
-#: transport/backends.py:55
+#: transport/backends.py:59
msgid "Invalid value"
msgstr "Valeur incorrecte"
-#: transport/models.py:18
+#: transport/models.py:20
msgid "pattern"
msgstr "patron"
-#: transport/models.py:19
+#: transport/models.py:21
msgid "service"
msgstr "service"
-#: transport/models.py:20
+#: transport/models.py:22
msgid "next hop"
msgstr "saut suivant"
diff --git a/modoboa/transport/locale/it/LC_MESSAGES/django.po b/modoboa/transport/locale/it/LC_MESSAGES/django.po
new file mode 100644
index 000000000..68c1e45d6
--- /dev/null
+++ b/modoboa/transport/locale/it/LC_MESSAGES/django.po
@@ -0,0 +1,38 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR , YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2018-10-05 16:08+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: LANGUAGE \n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+#: transport/backends.py:44
+msgid "This field is required"
+msgstr ""
+
+#: transport/backends.py:59
+msgid "Invalid value"
+msgstr ""
+
+#: transport/models.py:20
+msgid "pattern"
+msgstr ""
+
+#: transport/models.py:21
+msgid "service"
+msgstr ""
+
+#: transport/models.py:22
+msgid "next hop"
+msgstr ""
diff --git a/modoboa/transport/locale/ja_JP/LC_MESSAGES/django.po b/modoboa/transport/locale/ja_JP/LC_MESSAGES/django.po
new file mode 100644
index 000000000..9e459b19b
--- /dev/null
+++ b/modoboa/transport/locale/ja_JP/LC_MESSAGES/django.po
@@ -0,0 +1,38 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR , YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2018-10-05 16:08+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: LANGUAGE \n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: transport/backends.py:44
+msgid "This field is required"
+msgstr ""
+
+#: transport/backends.py:59
+msgid "Invalid value"
+msgstr ""
+
+#: transport/models.py:20
+msgid "pattern"
+msgstr ""
+
+#: transport/models.py:21
+msgid "service"
+msgstr ""
+
+#: transport/models.py:22
+msgid "next hop"
+msgstr ""
diff --git a/modoboa/transport/locale/nl_NL/LC_MESSAGES/django.po b/modoboa/transport/locale/nl_NL/LC_MESSAGES/django.po
new file mode 100644
index 000000000..9e459b19b
--- /dev/null
+++ b/modoboa/transport/locale/nl_NL/LC_MESSAGES/django.po
@@ -0,0 +1,38 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR , YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2018-10-05 16:08+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: LANGUAGE \n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: transport/backends.py:44
+msgid "This field is required"
+msgstr ""
+
+#: transport/backends.py:59
+msgid "Invalid value"
+msgstr ""
+
+#: transport/models.py:20
+msgid "pattern"
+msgstr ""
+
+#: transport/models.py:21
+msgid "service"
+msgstr ""
+
+#: transport/models.py:22
+msgid "next hop"
+msgstr ""
diff --git a/modoboa/transport/locale/pl_PL/LC_MESSAGES/django.po b/modoboa/transport/locale/pl_PL/LC_MESSAGES/django.po
index f3aaf1753..a2ba4c7a9 100644
--- a/modoboa/transport/locale/pl_PL/LC_MESSAGES/django.po
+++ b/modoboa/transport/locale/pl_PL/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-01-25 09:09+0100\n"
+"POT-Creation-Date: 2018-10-05 16:08+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Language-Team: Polish (Poland) (https://www.transifex.com/tonio/teams/13749/"
"pl_PL/)\n"
@@ -20,22 +20,22 @@ msgstr ""
"%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"
-#: transport/backends.py:40
+#: transport/backends.py:44
msgid "This field is required"
msgstr ""
-#: transport/backends.py:55
+#: transport/backends.py:59
msgid "Invalid value"
msgstr ""
-#: transport/models.py:18
+#: transport/models.py:20
msgid "pattern"
msgstr ""
-#: transport/models.py:19
+#: transport/models.py:21
msgid "service"
msgstr ""
-#: transport/models.py:20
+#: transport/models.py:22
msgid "next hop"
msgstr ""
diff --git a/modoboa/transport/locale/pt_BR/LC_MESSAGES/django.po b/modoboa/transport/locale/pt_BR/LC_MESSAGES/django.po
index 7d8a7a444..4b0181025 100644
--- a/modoboa/transport/locale/pt_BR/LC_MESSAGES/django.po
+++ b/modoboa/transport/locale/pt_BR/LC_MESSAGES/django.po
@@ -2,38 +2,39 @@
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR , YEAR.
-#
+#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-01-25 09:09+0100\n"
+"POT-Creation-Date: 2018-10-05 16:08+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Rafael Barretto , 2018\n"
-"Language-Team: Portuguese (Brazil) (https://www.transifex.com/tonio/teams/13749/pt_BR/)\n"
+"Language-Team: Portuguese (Brazil) (https://www.transifex.com/tonio/"
+"teams/13749/pt_BR/)\n"
+"Language: pt_BR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Language: pt_BR\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-#: transport/backends.py:40
+#: transport/backends.py:44
msgid "This field is required"
msgstr "Esse campo é obrigatório"
-#: transport/backends.py:55
+#: transport/backends.py:59
msgid "Invalid value"
msgstr "Valor inválido"
-#: transport/models.py:18
+#: transport/models.py:20
msgid "pattern"
msgstr "modelo"
-#: transport/models.py:19
+#: transport/models.py:21
msgid "service"
msgstr "serviço"
-#: transport/models.py:20
+#: transport/models.py:22
msgid "next hop"
msgstr "próximo salto"
diff --git a/modoboa/transport/locale/pt_PT/LC_MESSAGES/django.po b/modoboa/transport/locale/pt_PT/LC_MESSAGES/django.po
new file mode 100644
index 000000000..9e459b19b
--- /dev/null
+++ b/modoboa/transport/locale/pt_PT/LC_MESSAGES/django.po
@@ -0,0 +1,38 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR , YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2018-10-05 16:08+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: LANGUAGE \n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: transport/backends.py:44
+msgid "This field is required"
+msgstr ""
+
+#: transport/backends.py:59
+msgid "Invalid value"
+msgstr ""
+
+#: transport/models.py:20
+msgid "pattern"
+msgstr ""
+
+#: transport/models.py:21
+msgid "service"
+msgstr ""
+
+#: transport/models.py:22
+msgid "next hop"
+msgstr ""
diff --git a/modoboa/transport/locale/ro_RO/LC_MESSAGES/django.po b/modoboa/transport/locale/ro_RO/LC_MESSAGES/django.po
index 363be7d65..f0ed4aaad 100644
--- a/modoboa/transport/locale/ro_RO/LC_MESSAGES/django.po
+++ b/modoboa/transport/locale/ro_RO/LC_MESSAGES/django.po
@@ -2,38 +2,40 @@
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR , YEAR.
-#
+#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-01-25 09:09+0100\n"
+"POT-Creation-Date: 2018-10-05 16:08+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Andrei-Ilie Olteanu , 2018\n"
-"Language-Team: Romanian (Romania) (https://www.transifex.com/tonio/teams/13749/ro_RO/)\n"
+"Language-Team: Romanian (Romania) (https://www.transifex.com/tonio/"
+"teams/13749/ro_RO/)\n"
+"Language: ro_RO\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Language: ro_RO\n"
-"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n"
+"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?"
+"2:1));\n"
-#: transport/backends.py:40
+#: transport/backends.py:44
msgid "This field is required"
msgstr "Acest câmp este necesar"
-#: transport/backends.py:55
+#: transport/backends.py:59
msgid "Invalid value"
msgstr "Valuare invalidă"
-#: transport/models.py:18
+#: transport/models.py:20
msgid "pattern"
msgstr "tipar"
-#: transport/models.py:19
+#: transport/models.py:21
msgid "service"
msgstr "serviciu"
-#: transport/models.py:20
+#: transport/models.py:22
msgid "next hop"
msgstr "următorul hop"
diff --git a/modoboa/transport/locale/ru/LC_MESSAGES/django.po b/modoboa/transport/locale/ru/LC_MESSAGES/django.po
new file mode 100644
index 000000000..3a7d1f66a
--- /dev/null
+++ b/modoboa/transport/locale/ru/LC_MESSAGES/django.po
@@ -0,0 +1,40 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR , YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2018-10-05 16:08+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: LANGUAGE \n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\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"
+#: transport/backends.py:44
+msgid "This field is required"
+msgstr ""
+
+#: transport/backends.py:59
+msgid "Invalid value"
+msgstr ""
+
+#: transport/models.py:20
+msgid "pattern"
+msgstr ""
+
+#: transport/models.py:21
+msgid "service"
+msgstr ""
+
+#: transport/models.py:22
+msgid "next hop"
+msgstr ""
diff --git a/modoboa/transport/locale/sv/LC_MESSAGES/django.po b/modoboa/transport/locale/sv/LC_MESSAGES/django.po
index 1e6976e20..5bf09f175 100644
--- a/modoboa/transport/locale/sv/LC_MESSAGES/django.po
+++ b/modoboa/transport/locale/sv/LC_MESSAGES/django.po
@@ -2,38 +2,38 @@
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR , YEAR.
-#
+#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-01-25 09:09+0100\n"
+"POT-Creation-Date: 2018-10-05 16:08+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Tomas Olsson , 2018\n"
"Language-Team: Swedish (https://www.transifex.com/tonio/teams/13749/sv/)\n"
+"Language: sv\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Language: sv\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: transport/backends.py:40
+#: transport/backends.py:44
msgid "This field is required"
msgstr "Detta fält är obligatoriskt"
-#: transport/backends.py:55
+#: transport/backends.py:59
msgid "Invalid value"
msgstr "Ogiltigt värde"
-#: transport/models.py:18
+#: transport/models.py:20
msgid "pattern"
msgstr "mönster"
-#: transport/models.py:19
+#: transport/models.py:21
msgid "service"
msgstr "tjänst"
-#: transport/models.py:20
+#: transport/models.py:22
msgid "next hop"
msgstr "nästa hopp"
diff --git a/modoboa/transport/locale/zh_TW/LC_MESSAGES/django.po b/modoboa/transport/locale/zh_TW/LC_MESSAGES/django.po
index 8d36740dd..381586ab4 100644
--- a/modoboa/transport/locale/zh_TW/LC_MESSAGES/django.po
+++ b/modoboa/transport/locale/zh_TW/LC_MESSAGES/django.po
@@ -2,38 +2,39 @@
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR , YEAR.
-#
+#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-01-25 09:09+0100\n"
+"POT-Creation-Date: 2018-10-05 16:08+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: akong , 2018\n"
-"Language-Team: Chinese (Taiwan) (https://www.transifex.com/tonio/teams/13749/zh_TW/)\n"
+"Language-Team: Chinese (Taiwan) (https://www.transifex.com/tonio/teams/13749/"
+"zh_TW/)\n"
+"Language: zh_TW\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Language: zh_TW\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-#: transport/backends.py:40
+#: transport/backends.py:44
msgid "This field is required"
msgstr "這個欄位是必填的"
-#: transport/backends.py:55
+#: transport/backends.py:59
msgid "Invalid value"
msgstr "無效的值"
-#: transport/models.py:18
+#: transport/models.py:20
msgid "pattern"
msgstr "模式"
-#: transport/models.py:19
+#: transport/models.py:21
msgid "service"
msgstr "服務"
-#: transport/models.py:20
+#: transport/models.py:22
msgid "next hop"
msgstr "下一步"