\n"
+"Language-Team: Czech (Czech Republic) (http://www.transifex.com/tonio/modoboa/language/cs_CZ/)\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 == 1 && n % 1 == 0) ? 0 : (n >= 2 && n "
-"<= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\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"
-#: core/app_settings.py:20
+#: core/app_settings.py:26
msgid "User profile"
msgstr "Uživatelský profil"
-#: core/app_settings.py:33
+#: core/app_settings.py:39
msgid "Authentication"
msgstr "Ověření"
-#: core/app_settings.py:36
+#: core/app_settings.py:42
msgid "Authentication type"
msgstr "Typ ověření"
-#: core/app_settings.py:37
+#: core/app_settings.py:43
msgid "Local"
msgstr "Lokální"
-#: core/app_settings.py:40
+#: core/app_settings.py:46
msgid "The backend used for authentication"
msgstr "Rozhraní pro ověřování přístupu"
-#: core/app_settings.py:45
+#: core/app_settings.py:51
msgid "Default password scheme"
msgstr "Výchozí schéma hesel"
-#: core/app_settings.py:50
+#: core/app_settings.py:56
msgid "Scheme used to crypt mailbox passwords"
msgstr "Použité schéma pro šifrování hesel schránek"
-#: core/app_settings.py:54
+#: core/app_settings.py:60
msgid "Rounds"
msgstr "Počet cyklů"
-#: core/app_settings.py:57
+#: core/app_settings.py:63
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:63
-#, fuzzy
-#| msgid "Default password scheme"
+#: core/app_settings.py:69
msgid "Update password scheme at login"
-msgstr "Výchozí schéma hesel"
-
-#: core/app_settings.py:66
-msgid "Update user password at login to use the default password scheme"
msgstr ""
-#: core/app_settings.py:71
+#: core/app_settings.py:72
+msgid "Update user password at login to use the default password scheme"
+msgstr "Zadejte nové heslo pro užití nového typu hesla"
+
+#: core/app_settings.py:77
msgid "Default password"
msgstr "Výchozí heslo"
-#: core/app_settings.py:74
+#: core/app_settings.py:80
msgid "Default password for automatically created accounts."
msgstr "Výchozí heslo pro automaticky vytvořené účty."
-#: core/app_settings.py:78
+#: core/app_settings.py:84
msgid "Random password length"
msgstr "Délka náhodného hesla"
-#: core/app_settings.py:82
+#: core/app_settings.py:88
msgid "Length of randomly generated passwords."
msgstr "Počet znaků náhodně vygenerovaných hesel."
-#: core/app_settings.py:86
-#, fuzzy
-#| msgid "Default password scheme"
+#: core/app_settings.py:92
msgid "Update password service URL"
-msgstr "Výchozí schéma hesel"
+msgstr ""
-#: core/app_settings.py:90
+#: core/app_settings.py:96
msgid ""
"The URL of an external page where users will be able to update their "
"password. It applies only to non local users, ie. those automatically "
"created after a successful external authentication (LDAP, SMTP)."
msgstr ""
-#: core/app_settings.py:98
+#: core/app_settings.py:104
+msgid "Password recovery announcement"
+msgstr ""
+
+#: core/app_settings.py:109
+msgid "A temporary message that will be displayed on the reset password page."
+msgstr ""
+
+#: core/app_settings.py:115
+msgid "Enable password recovery by SMS"
+msgstr ""
+
+#: core/app_settings.py:118
+msgid "Enable password recovery by SMS for users who filled a phone number."
+msgstr ""
+
+#: core/app_settings.py:124
+msgid "SMS provider"
+msgstr ""
+
+#: core/app_settings.py:127
+msgid "Choose a provider to send password recovery SMS"
+msgstr ""
+
+#: core/app_settings.py:133
msgid "LDAP settings"
msgstr "Nastavení LDAP"
-#: core/app_settings.py:101
+#: core/app_settings.py:136
msgid "Server address"
msgstr "Adresa serveru"
-#: core/app_settings.py:104
+#: core/app_settings.py:139
msgid "The IP address or the DNS name of the LDAP server"
msgstr "IP adresa DNS jména LDAP serveru"
-#: core/app_settings.py:108
+#: core/app_settings.py:143
msgid "Server port"
msgstr "Port serveru"
-#: core/app_settings.py:110
+#: core/app_settings.py:145
msgid "The TCP port number used by the LDAP server"
msgstr "Port TCP, který používá LDAP server"
-#: core/app_settings.py:114
+#: core/app_settings.py:149
msgid "Enable secondary server (fallback)"
msgstr ""
-#: core/app_settings.py:117
+#: core/app_settings.py:152
msgid ""
"Enable a secondary LDAP server which will be used if the primary one fails"
msgstr ""
-#: core/app_settings.py:123
-#, fuzzy
-#| msgid "Server address"
+#: core/app_settings.py:158
msgid "Secondary server address"
-msgstr "Adresa serveru"
+msgstr ""
-#: core/app_settings.py:126
-#, fuzzy
-#| msgid "The IP address or the DNS name of the LDAP server"
+#: core/app_settings.py:161
msgid "The IP address or the DNS name of the seondary LDAP server"
-msgstr "IP adresa DNS jména LDAP serveru"
+msgstr ""
-#: core/app_settings.py:130
-#, fuzzy
-#| msgid "Server port"
+#: core/app_settings.py:165
msgid "Secondary server port"
-msgstr "Port serveru"
+msgstr ""
-#: core/app_settings.py:133
-#, fuzzy
-#| msgid "The TCP port number used by the LDAP server"
+#: core/app_settings.py:168
msgid "The TCP port number used by the LDAP secondary server"
-msgstr "Port TCP, který používá LDAP server"
+msgstr ""
-#: core/app_settings.py:137
+#: core/app_settings.py:172
msgid "Use a secured connection"
msgstr "Použít zabezpečené připojení"
-#: core/app_settings.py:141
+#: core/app_settings.py:176
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:145
+#: core/app_settings.py:180
msgid "Active Directory"
msgstr "Active Directory"
-#: core/app_settings.py:148
+#: core/app_settings.py:183
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:152
+#: core/app_settings.py:187
msgid "Administrator groups"
msgstr "Správcovské skupiny"
-#: core/app_settings.py:155
+#: core/app_settings.py:190
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:162
+#: core/app_settings.py:197
msgid "Group type"
msgstr "Typ skupiny"
-#: core/app_settings.py:166
+#: core/app_settings.py:201
msgid "The LDAP group type to use with your directory."
msgstr "Typ LDAP skupiny "
-#: core/app_settings.py:171
+#: core/app_settings.py:206
msgid "Groups search base"
msgstr "Základna struktury skupin"
-#: core/app_settings.py:174
+#: core/app_settings.py:209
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:180
+#: core/app_settings.py:215
msgid "Password attribute"
msgstr "Atribut hesla"
-#: core/app_settings.py:182
+#: core/app_settings.py:217
msgid "The attribute used to store user passwords"
msgstr "Atribut používaný pro ukládání hesel uživatelů"
-#: core/app_settings.py:187
-#, fuzzy
-#| msgid "Authentication method"
+#: core/app_settings.py:222
msgid "LDAP authentication settings"
-msgstr "Metoda ověření"
+msgstr ""
-#: core/app_settings.py:190
+#: core/app_settings.py:225
msgid "Authentication method"
msgstr "Metoda ověření"
-#: core/app_settings.py:191
+#: core/app_settings.py:226
msgid "Search and bind"
msgstr "Vyhledat a spojit"
-#: core/app_settings.py:192
+#: core/app_settings.py:227
msgid "Direct bind"
msgstr "Přímé spojení"
-#: core/app_settings.py:194
+#: core/app_settings.py:229
msgid "Choose the authentication method to use"
msgstr "Zvolte si metodu ověření, která se použije"
-#: core/app_settings.py:198 core/app_settings.py:252
+#: core/app_settings.py:233 core/app_settings.py:287
msgid "Bind DN"
msgstr "Spojení pomocí DN"
-#: core/app_settings.py:201 core/app_settings.py:255
+#: core/app_settings.py:236 core/app_settings.py:290
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:208 core/app_settings.py:262
+#: core/app_settings.py:243 core/app_settings.py:297
msgid "Bind password"
msgstr "Heslo spojení"
-#: core/app_settings.py:211 core/app_settings.py:265
+#: core/app_settings.py:246 core/app_settings.py:300
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:219 core/app_settings.py:311
+#: core/app_settings.py:254 core/app_settings.py:346
msgid "Users search base"
msgstr "Základna struktury uživatelů"
-#: core/app_settings.py:222 core/app_settings.py:314
+#: core/app_settings.py:257 core/app_settings.py:349
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:228 core/app_settings.py:320
+#: core/app_settings.py:263 core/app_settings.py:355
msgid "Search filter"
msgstr "Vyhledávací filtr"
-#: core/app_settings.py:231 core/app_settings.py:323
+#: core/app_settings.py:266 core/app_settings.py:358
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:238
+#: core/app_settings.py:273
msgid "User DN template"
msgstr "Šablona uživatelského DN"
-#: core/app_settings.py:241
+#: core/app_settings.py:276
#, 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:249
-#, fuzzy
-#| msgid "LDAP settings"
+#: core/app_settings.py:284
msgid "LDAP synchronization settings"
-msgstr "Nastavení LDAP"
+msgstr ""
-#: core/app_settings.py:273
+#: core/app_settings.py:308
msgid "Enable export to LDAP"
msgstr ""
-#: core/app_settings.py:276
+#: core/app_settings.py:311
msgid ""
"Enable automatic synchronization between local database and LDAP directory"
msgstr ""
-#: core/app_settings.py:282
+#: core/app_settings.py:317
msgid "Delete remote LDAP account when local account is deleted"
msgstr ""
-#: core/app_settings.py:286
+#: core/app_settings.py:321
msgid ""
"Delete remote LDAP account when local account is deleted, otherwise it will "
"be disabled."
msgstr ""
-#: core/app_settings.py:292
-#, fuzzy
-#| msgid "User DN template"
+#: core/app_settings.py:327
msgid "Account DN template"
-msgstr "Šablona uživatelského DN"
+msgstr ""
-#: core/app_settings.py:295
-#, fuzzy, python-format
-#| msgid ""
-#| "The template used to construct a user's DN. It should contain one "
-#| "placeholder (ie. %(user)s)"
+#: core/app_settings.py:330
+#, python-format
msgid ""
"The template used to construct an account'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)."
-#: core/app_settings.py:302
+#: core/app_settings.py:337
msgid "Enable import from LDAP"
msgstr ""
-#: core/app_settings.py:305
+#: core/app_settings.py:340
msgid "Enable account synchronization from LDAP directory to local database"
msgstr ""
-#: core/app_settings.py:330
-#, fuzzy
-#| msgid "Password attribute"
+#: core/app_settings.py:365
msgid "Username attribute"
-msgstr "Atribut hesla"
+msgstr ""
-#: core/app_settings.py:333
+#: core/app_settings.py:368
msgid "The name of the LDAP attribute where the username can be found."
msgstr ""
-#: core/app_settings.py:337 core/templates/core/dashboard.html:5
+#: core/app_settings.py:373
+msgid "Enable Dovecot LDAP sync"
+msgstr ""
+
+#: core/app_settings.py:376
+msgid "LDAP authentication settings will be applied to Dovecot configuration."
+msgstr ""
+
+#: core/app_settings.py:382
+msgid "Dovecot LDAP config file"
+msgstr ""
+
+#: core/app_settings.py:386
+msgid ""
+"Location of the configuration file which contains Dovecot LDAP settings."
+msgstr ""
+
+#: core/app_settings.py:391 core/templates/core/dashboard.html:5
msgid "Dashboard"
msgstr "Plocha"
-#: core/app_settings.py:340
+#: core/app_settings.py:394
msgid "Custom RSS feed"
msgstr "Vlastní RSS zdroj"
-#: core/app_settings.py:343
+#: core/app_settings.py:397
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:348
+#: core/app_settings.py:402
msgid "Hide features widget"
msgstr "Skrýt widget funkcí"
-#: core/app_settings.py:351
+#: core/app_settings.py:405
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:355
+#: core/app_settings.py:409
msgid "Notifications"
msgstr "Oznámení"
-#: core/app_settings.py:358
+#: core/app_settings.py:412
msgid "Sender address"
msgstr "Adresy odesílatele"
-#: core/app_settings.py:361
+#: core/app_settings.py:415
msgid "Email address used to send notifications."
msgstr "Emailová adresa používaná k zasílání upozornění"
-#: core/app_settings.py:365
+#: core/app_settings.py:419
msgid "Public API"
msgstr "Veřejné API"
-#: core/app_settings.py:368
+#: core/app_settings.py:422
msgid "Enable communication"
msgstr "Povolit komunikaci"
-#: core/app_settings.py:371
+#: core/app_settings.py:425
msgid "Enable communication with Modoboa public API"
msgstr "Povolit komunikaci s veřejným Modoboa API rozhraním"
-#: core/app_settings.py:375
+#: core/app_settings.py:429
msgid "Check new versions"
msgstr "Zkontrolovat verzi"
-#: core/app_settings.py:378
+#: core/app_settings.py:432
msgid "Automatically checks if a newer version is available"
msgstr "Automaticky kontrolovat dostupnost nové verze"
-#: core/app_settings.py:382
+#: core/app_settings.py:436
msgid "Send an email when new versions are found"
msgstr ""
-#: core/app_settings.py:385
+#: core/app_settings.py:439
msgid "Send an email to notify admins about new versions"
msgstr ""
-#: core/app_settings.py:389
+#: core/app_settings.py:443
msgid "Recipient"
msgstr ""
-#: core/app_settings.py:392
+#: core/app_settings.py:446
msgid "Recipient of new versions notification emails."
msgstr ""
-#: core/app_settings.py:397
+#: core/app_settings.py:451
msgid "Send statistics"
msgstr "Odoslat statistiky"
-#: core/app_settings.py:400
+#: core/app_settings.py:454
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:404
+#: core/app_settings.py:458
msgid "Miscellaneous"
msgstr "Různé"
-#: core/app_settings.py:407
+#: core/app_settings.py:461
msgid "Inactive account threshold"
msgstr "Počet dnů pro neaktivní účet"
-#: core/app_settings.py:410
+#: core/app_settings.py:464
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:416
+#: core/app_settings.py:470
msgid "Top notifications check interval"
msgstr "Interval aktualizací upozornění"
-#: core/app_settings.py:419
+#: core/app_settings.py:473
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:424
+#: core/app_settings.py:478
msgid "Maximum log record age"
msgstr "Maximální stáří záznamu"
-#: core/app_settings.py:426
+#: core/app_settings.py:480
msgid "The maximum age in days of a log record"
msgstr "Maximální stáří záznamu ve dnech"
-#: core/app_settings.py:430
+#: core/app_settings.py:484
msgid "Items per page"
msgstr "Položek na stránce"
-#: core/app_settings.py:432
+#: core/app_settings.py:486
msgid "Number of displayed items per page"
msgstr "Počet zobrazených položek na stránce"
-#: core/app_settings.py:436
+#: core/app_settings.py:490
msgid "Default top redirection"
msgstr "Výchozí přesměrování aplikace"
-#: core/app_settings.py:440
+#: core/app_settings.py:494
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:478 core/app_settings.py:486
+#: core/app_settings.py:548 core/app_settings.py:556 core/app_settings.py:564
msgid "Invalid syntax"
msgstr "Neplatná syntaxe"
-#: core/app_settings.py:492
+#: core/app_settings.py:570
msgid "Invalid rounds number"
msgstr "Neplatný počet cyklů"
-#: core/app_settings.py:519
+#: core/app_settings.py:595 core/app_settings.py:597 core/app_settings.py:608
msgid "This field is required"
msgstr "Toto pole je vyžadováno"
@@ -494,66 +490,80 @@ 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:9
msgid "Set `USE_TZ = True` in settings.py"
msgstr "Nastavte `USE_TZ = True` v settings.py"
-#: core/constants.py:5
+#: core/constants.py:6
msgid "Simple user"
msgstr "Bežný uživatel"
-#: core/constants.py:6
+#: core/constants.py:7
msgid "Domain administrator"
msgstr "Správce domény"
-#: core/constants.py:7
+#: core/constants.py:8
msgid "Reseller"
msgstr "Distributor"
-#: core/constants.py:8
+#: core/constants.py:9
msgid "Super administrator"
msgstr "Super správce"
-#: core/constants.py:51 lib/form_utils.py:389
+#: core/constants.py:52 lib/form_utils.py:389
msgid "No"
msgstr "Ne"
-#: core/forms.py:18
+#: core/constants.py:102
+msgid "Choose a provider"
+msgstr ""
+
+#: core/constants.py:107
+msgid "Dummy"
+msgstr ""
+
+#: core/forms.py:21
msgid "Username"
msgstr "Uživatelské jméno"
-#: core/forms.py:22
+#: core/forms.py:25
msgid "Password"
msgstr "Heslo"
-#: core/forms.py:35
+#: core/forms.py:38
msgid "Old password"
msgstr "Původní heslo"
-#: core/forms.py:39
+#: core/forms.py:42
msgid "New password"
msgstr "Nové heslo"
-#: core/forms.py:43
+#: core/forms.py:46
msgid "Confirmation"
msgstr "Potvrzení"
-#: core/forms.py:71
+#: core/forms.py:74
msgid "Old password mismatchs"
msgstr "Původní heslo se neshoduje"
-#: core/forms.py:80
+#: core/forms.py:83
msgid "Passwords mismatch"
msgstr "Hesla se neshodují"
-#: core/forms.py:100
+#: core/forms.py:103
msgid "Enable API access"
msgstr "Povolit API přístup"
+#: core/forms.py:137
+msgid "Verification code"
+msgstr ""
+
+#: core/forms.py:148
+msgid "Invalid code"
+msgstr ""
+
#: core/handlers.py:36
msgid "added"
msgstr "přidáno"
@@ -570,7 +580,7 @@ msgstr "%(object)s '%(name)s' %(action)s uživatelem %(user)s"
#: core/handlers.py:63
#, python-format
msgid "%(object)s '%(name)s' %(action)s by "
-msgstr ""
+msgstr " %(object)s'%(name)s'%(action)s pomocí "
#: core/handlers.py:65
msgid "deleted"
@@ -593,69 +603,67 @@ msgid "One or more updates are available"
msgstr "K dispozici je jedna, nebo více, aktualizací"
#: core/management/commands/communicate_with_public_api.py:44
-#, fuzzy
-#| msgid "One or more updates are available"
msgid "[modoboa] Update(s) available"
-msgstr "K dispozici je jedna, nebo více, aktualizací"
+msgstr ""
-#: core/models.py:53
+#: core/models.py:55
msgid "Allow mailboxes access"
msgstr "Povolit přístup do poštovních schránek"
-#: core/models.py:55
+#: core/models.py:57
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:58
+#: core/models.py:60
msgid "password"
msgstr "heslo"
-#: core/models.py:61
+#: core/models.py:63
msgid "language"
msgstr "jazyk"
-#: core/models.py:64
+#: core/models.py:66
msgid "Prefered language to display pages."
msgstr "Preferovaný jazyk pro zobrazení stránek"
-#: core/models.py:68
+#: core/models.py:70
msgid "Phone number"
msgstr "Telefonní číslo"
-#: core/models.py:70
+#: core/models.py:72
msgid "Secondary email"
msgstr "Sekundární email"
-#: core/models.py:73
+#: core/models.py:75
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:124
+#: core/models.py:126
msgid "Failed to update password: LDAP module not installed"
msgstr "Nebylo možné změnit heslo: LDAP modul není instalován"
-#: core/models.py:153
+#: core/models.py:155
msgid "account"
msgstr "účet"
-#: core/models.py:280
+#: core/models.py:282
msgid "Unknown"
msgstr "Neznámý"
-#: core/models.py:314
+#: core/models.py:316
msgid "Invalid line"
msgstr "Neplatný řádek"
-#: core/models.py:322
+#: core/models.py:324
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:337
+#: core/models.py:339
#, 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:342
+#: core/models.py:344
#, 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"
@@ -694,9 +702,51 @@ msgstr[3] "Heslo musí obsahovat alespoň {} speciálních znaků."
#: core/password_validation.py:65
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ů."
+
+#: core/sms_backends/ovh.py:19
+msgid "API endpoint"
+msgstr ""
+
+#: core/sms_backends/ovh.py:22
+msgid "OVH Europe"
+msgstr ""
+
+#: core/sms_backends/ovh.py:23
+msgid "OVH US"
+msgstr ""
+
+#: core/sms_backends/ovh.py:24
+msgid "OVH North-America"
+msgstr ""
+
+#: core/sms_backends/ovh.py:25
+msgid "So you Start Europe"
+msgstr ""
+
+#: core/sms_backends/ovh.py:26
+msgid "So you Start North America"
+msgstr ""
+
+#: core/sms_backends/ovh.py:27
+msgid "Kimsufi Europe"
+msgstr ""
+
+#: core/sms_backends/ovh.py:28
+msgid "Kimsufi North America"
+msgstr ""
+
+#: core/sms_backends/ovh.py:35
+msgid "Application key"
+msgstr ""
+
+#: core/sms_backends/ovh.py:42
+msgid "Application secret"
+msgstr ""
+
+#: core/sms_backends/ovh.py:50
+msgid "Consumer key"
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"
@@ -722,9 +772,7 @@ 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"
@@ -737,11 +785,9 @@ 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"
@@ -771,9 +817,7 @@ 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"
@@ -833,18 +877,16 @@ msgid "Message"
msgstr "Zpráva"
#: core/templates/core/notifications/update_available.html:3
-#, fuzzy
-#| msgid "One or more updates are available"
msgid ""
"\n"
" The following update is available:\n"
msgid_plural ""
"\n"
" The following updates are available:\n"
-msgstr[0] "K dispozici je jedna, nebo více, aktualizací"
-msgstr[1] "K dispozici je jedna, nebo více, aktualizací"
-msgstr[2] "K dispozici je jedna, nebo více, aktualizací"
-msgstr[3] "K dispozici je jedna, nebo více, aktualizací"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
#: core/templates/core/parameters.html:2 core/templatetags/core_tags.py:71
msgid "Parameters"
@@ -889,10 +931,8 @@ msgid "Update your personal information"
msgstr "Aktualizovat osobní informace"
#: core/templates/core/user_profile.html:13
-#, fuzzy
-#| msgid "Failed to update password: {}"
msgid "Click here to update your password"
-msgstr "Nebylo možné změnit heslo: {}"
+msgstr ""
#: core/templatetags/core_tags.py:34
msgid "Modoboa"
@@ -914,30 +954,33 @@ msgstr "Hlavní část Modoboa"
msgid "Parameters saved"
msgstr "Parametry uloženy"
-#: core/views/auth.py:46
+#: core/views/auth.py:59
#, python-format
msgid "Password scheme mismatch. Updating %s password"
-msgstr ""
+msgstr "Chyba v typu hesla. Aktualizace %s hesla"
-#: core/views/auth.py:53
+#: core/views/auth.py:66
#, python-format
msgid "Password hash parameter missmatch. Updating %s password"
msgstr ""
-#: core/views/auth.py:69
+#: core/views/auth.py:82
#, python-format
msgid "User '%s' successfully logged in"
msgstr "Uživatel '%s' se úspěšně přihlásil"
-#: core/views/auth.py:77
+#: core/views/auth.py:90
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:112
+#: core/views/auth.py:125
msgid "User '{}' successfully logged out"
msgstr "Uživatel '{}' byl úspěšně odhlášen"
+#: core/views/auth.py:170 core/views/auth.py:225
+msgid "Please use the following code to recover your Modoboa password: {}"
+msgstr ""
+
#: core/views/user.py:53
msgid "Profile updated"
msgstr "Profil aktualizován"
@@ -957,7 +1000,7 @@ msgstr "Připojení k databázi %s není nastaveno"
#: lib/email_utils.py:141 lib/email_utils.py:360
msgid "unable to determine encoding of string"
-msgstr ""
+msgstr "Nelze určit kódování textu."
#: lib/exceptions.py:67
#, python-format
@@ -977,7 +1020,8 @@ msgid "Enter a valid email address."
msgstr "Vložte platnou emailovou adresu."
#: lib/form_utils.py:77 templates/registration/password_reset_confirm.html:12
-#: templates/registration/password_reset_form.html:11
+#: templates/registration/password_reset_confirm_code.html:25
+#: templates/registration/password_reset_form.html:29
msgid "Submit"
msgstr "Uložit"
@@ -1038,8 +1082,9 @@ 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"
@@ -1064,7 +1109,7 @@ msgid "Log in"
msgstr "Přihlásit"
#: templates/registration/login.html:24
-#: templates/registration/password_reset_form.html:6
+#: templates/registration/password_reset_form.html:17
msgid "Forgot password?"
msgstr "Zapomenuté heslo?"
@@ -1073,8 +1118,7 @@ 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"
@@ -1084,9 +1128,15 @@ 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."
+
+#: templates/registration/password_reset_confirm_code.html:20
+msgid "Enter the code you've just received by SMS"
+msgstr ""
+
+#: templates/registration/password_reset_confirm_code.html:27
+msgid "Resend code"
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 ""
@@ -1094,61 +1144,29 @@ 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."
msgstr "S pozdravem, Tým Modoboa."
+#: templates/registration/password_reset_form.html:24
+msgid "Please fill-in your primary email address"
+msgstr ""
+
#: templates/registration/password_reset_subject.txt:3
msgid "Modoboa password reset"
msgstr "Reset Modoboa hesla"
-
-#, fuzzy
-#~| msgid "Enable communication"
-#~ msgid "Enable LDAP synchronization"
-#~ msgstr "Povolit komunikaci"
-
-#~ msgid "md5crypt (weak)"
-#~ msgstr "md5crypt (slabé)"
-
-#~ msgid "sha256 (weak)"
-#~ msgstr "sha256 (slabé)"
-
-#~ msgid "md5 (weak)"
-#~ msgstr "md5 (slabé)"
-
-#~ msgid "crypt (weak)"
-#~ msgstr "crypt (slabé)"
-
-#~ msgid "plain (weak)"
-#~ msgstr "žádné (slabé)"
-
-#~ 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/cs_CZ/LC_MESSAGES/djangojs.po b/modoboa/locale/cs_CZ/LC_MESSAGES/djangojs.po
index 6177a13c6..69c921f20 100644
--- a/modoboa/locale/cs_CZ/LC_MESSAGES/djangojs.po
+++ b/modoboa/locale/cs_CZ/LC_MESSAGES/djangojs.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:
# Peter Sveter, 2016
# Miroslav Abrahám , 2013,2015
@@ -10,16 +10,14 @@ msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-03-09 16:48+0100\n"
-"PO-Revision-Date: 2017-09-23 19:07+0000\n"
-"Last-Translator: Peter Sveter\n"
-"Language-Team: Czech (Czech Republic) (http://www.transifex.com/tonio/"
-"modoboa/language/cs_CZ/)\n"
-"Language: cs_CZ\n"
+"PO-Revision-Date: 2020-03-09 15:49+0000\n"
+"Last-Translator: Antoine Nguyen \n"
+"Language-Team: Czech (Czech Republic) (http://www.transifex.com/tonio/modoboa/language/cs_CZ/)\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 == 1 && n % 1 == 0) ? 0 : (n >= 2 && n "
-"<= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\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"
#: bower_components/jquery-ui/jquery-ui.min.js:8
msgid "'"
diff --git a/modoboa/locale/de/LC_MESSAGES/django.po b/modoboa/locale/de/LC_MESSAGES/django.po
index db01b8e04..710f79722 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: 2020-03-09 16:48+0100\n"
+"POT-Creation-Date: 2020-05-06 13:15+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,41 +21,41 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: core/app_settings.py:20
+#: core/app_settings.py:26
#, fuzzy
#| msgid "Profile"
msgid "User profile"
msgstr "Profil"
-#: core/app_settings.py:33
+#: core/app_settings.py:39
msgid "Authentication"
msgstr "Authentifizierung"
-#: core/app_settings.py:36
+#: core/app_settings.py:42
msgid "Authentication type"
msgstr "Authentifizierungstyp"
-#: core/app_settings.py:37
+#: core/app_settings.py:43
msgid "Local"
msgstr "Lokal"
-#: core/app_settings.py:40
+#: core/app_settings.py:46
msgid "The backend used for authentication"
msgstr "Backend für die Authentifizierung"
-#: core/app_settings.py:45
+#: core/app_settings.py:51
msgid "Default password scheme"
msgstr "Standard-Passwortschema"
-#: core/app_settings.py:50
+#: core/app_settings.py:56
msgid "Scheme used to crypt mailbox passwords"
msgstr "Verschlüsselungsschema der Postfach-Passwörter"
-#: core/app_settings.py:54
+#: core/app_settings.py:60
msgid "Rounds"
msgstr "Runden"
-#: core/app_settings.py:57
+#: core/app_settings.py:63
msgid ""
"Number of rounds to use (only used by sha256crypt and sha512crypt). Must be "
"between 1000 and 999999999, inclusive."
@@ -63,125 +63,149 @@ msgstr ""
"Anzahl zu verwendender Runden (nur für sha256crypt und sha512crypt). Zahl "
"muss zwischen 1000 und 999999999 liegen."
-#: core/app_settings.py:63
+#: core/app_settings.py:69
#, fuzzy
#| msgid "Default password scheme"
msgid "Update password scheme at login"
msgstr "Standard-Passwortschema"
-#: core/app_settings.py:66
+#: core/app_settings.py:72
msgid "Update user password at login to use the default password scheme"
msgstr ""
-#: core/app_settings.py:71
+#: core/app_settings.py:77
#, fuzzy
#| msgid "Default password scheme"
msgid "Default password"
msgstr "Standard-Passwortschema"
-#: core/app_settings.py:74
+#: core/app_settings.py:80
msgid "Default password for automatically created accounts."
msgstr ""
-#: core/app_settings.py:78
+#: core/app_settings.py:84
#, fuzzy
#| msgid "Bind password"
msgid "Random password length"
msgstr "Bind Passwort"
-#: core/app_settings.py:82
+#: core/app_settings.py:88
msgid "Length of randomly generated passwords."
msgstr ""
-#: core/app_settings.py:86
+#: core/app_settings.py:92
#, fuzzy
#| msgid "Default password scheme"
msgid "Update password service URL"
msgstr "Standard-Passwortschema"
-#: core/app_settings.py:90
+#: core/app_settings.py:96
msgid ""
"The URL of an external page where users will be able to update their "
"password. It applies only to non local users, ie. those automatically "
"created after a successful external authentication (LDAP, SMTP)."
msgstr ""
-#: core/app_settings.py:98
+#: core/app_settings.py:104
+msgid "Password recovery announcement"
+msgstr ""
+
+#: core/app_settings.py:109
+msgid "A temporary message that will be displayed on the reset password page."
+msgstr ""
+
+#: core/app_settings.py:115
+msgid "Enable password recovery by SMS"
+msgstr ""
+
+#: core/app_settings.py:118
+msgid "Enable password recovery by SMS for users who filled a phone number."
+msgstr ""
+
+#: core/app_settings.py:124
+msgid "SMS provider"
+msgstr ""
+
+#: core/app_settings.py:127
+msgid "Choose a provider to send password recovery SMS"
+msgstr ""
+
+#: core/app_settings.py:133
msgid "LDAP settings"
msgstr "LDAP-Einstellungen"
-#: core/app_settings.py:101
+#: core/app_settings.py:136
msgid "Server address"
msgstr "Server-Adresse"
-#: core/app_settings.py:104
+#: core/app_settings.py:139
msgid "The IP address or the DNS name of the LDAP server"
msgstr "IP-Adresse oder Hostname des LDAP-Servers"
-#: core/app_settings.py:108
+#: core/app_settings.py:143
msgid "Server port"
msgstr "Server-Port"
-#: core/app_settings.py:110
+#: core/app_settings.py:145
msgid "The TCP port number used by the LDAP server"
msgstr "Der TCP Port des LDAP-Servers"
-#: core/app_settings.py:114
+#: core/app_settings.py:149
msgid "Enable secondary server (fallback)"
msgstr ""
-#: core/app_settings.py:117
+#: core/app_settings.py:152
msgid ""
"Enable a secondary LDAP server which will be used if the primary one fails"
msgstr ""
-#: core/app_settings.py:123
+#: core/app_settings.py:158
#, fuzzy
#| msgid "Server address"
msgid "Secondary server address"
msgstr "Server-Adresse"
-#: core/app_settings.py:126
+#: core/app_settings.py:161
#, fuzzy
#| msgid "The IP address or the DNS name of the LDAP server"
msgid "The IP address or the DNS name of the seondary LDAP server"
msgstr "IP-Adresse oder Hostname des LDAP-Servers"
-#: core/app_settings.py:130
+#: core/app_settings.py:165
#, fuzzy
#| msgid "Server port"
msgid "Secondary server port"
msgstr "Server-Port"
-#: core/app_settings.py:133
+#: core/app_settings.py:168
#, fuzzy
#| msgid "The TCP port number used by the LDAP server"
msgid "The TCP port number used by the LDAP secondary server"
msgstr "Der TCP Port des LDAP-Servers"
-#: core/app_settings.py:137
+#: core/app_settings.py:172
msgid "Use a secured connection"
msgstr "Gesicherte Verbindung verwenden"
-#: core/app_settings.py:141
+#: core/app_settings.py:176
#, 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:145
+#: core/app_settings.py:180
msgid "Active Directory"
msgstr "Active Directory"
-#: core/app_settings.py:148
+#: core/app_settings.py:183
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:152
+#: core/app_settings.py:187
msgid "Administrator groups"
msgstr "Administrator-Gruppen"
-#: core/app_settings.py:155
+#: core/app_settings.py:190
msgid ""
"Members of those LDAP Posix groups will be created as domain administrators. "
"Use ';' characters to separate groups."
@@ -189,84 +213,84 @@ msgstr ""
"Mitglieder dieser LDAP Posix-Gruppe werden als Domain-Administratoren "
"angelegt werden. Nutzen Sie ';', um Gruppen zu separieren."
-#: core/app_settings.py:162
+#: core/app_settings.py:197
msgid "Group type"
msgstr "Gruppentyp"
-#: core/app_settings.py:166
+#: core/app_settings.py:201
msgid "The LDAP group type to use with your directory."
msgstr ""
-#: core/app_settings.py:171
+#: core/app_settings.py:206
msgid "Groups search base"
msgstr "Gruppen Search Base"
-#: core/app_settings.py:174
+#: core/app_settings.py:209
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:180
+#: core/app_settings.py:215
msgid "Password attribute"
msgstr "Passwort-Attribut"
-#: core/app_settings.py:182
+#: core/app_settings.py:217
msgid "The attribute used to store user passwords"
msgstr "Das Attribut für Benutzerpasswörter"
-#: core/app_settings.py:187
+#: core/app_settings.py:222
#, fuzzy
#| msgid "Authentication method"
msgid "LDAP authentication settings"
msgstr "Authentifizierungsmethode"
-#: core/app_settings.py:190
+#: core/app_settings.py:225
msgid "Authentication method"
msgstr "Authentifizierungsmethode"
-#: core/app_settings.py:191
+#: core/app_settings.py:226
msgid "Search and bind"
msgstr "Suchen und Bind anwenden"
-#: core/app_settings.py:192
+#: core/app_settings.py:227
msgid "Direct bind"
msgstr "Direkter Bind"
-#: core/app_settings.py:194
+#: core/app_settings.py:229
msgid "Choose the authentication method to use"
msgstr "Wählen Sie die Authentifizierungsmethode"
-#: core/app_settings.py:198 core/app_settings.py:252
+#: core/app_settings.py:233 core/app_settings.py:287
msgid "Bind DN"
msgstr "Bind DN"
-#: core/app_settings.py:201 core/app_settings.py:255
+#: core/app_settings.py:236 core/app_settings.py:290
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:208 core/app_settings.py:262
+#: core/app_settings.py:243 core/app_settings.py:297
msgid "Bind password"
msgstr "Bind Passwort"
-#: core/app_settings.py:211 core/app_settings.py:265
+#: core/app_settings.py:246 core/app_settings.py:300
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:219 core/app_settings.py:311
+#: core/app_settings.py:254 core/app_settings.py:346
msgid "Users search base"
msgstr "Benutzer Search Base"
-#: core/app_settings.py:222 core/app_settings.py:314
+#: core/app_settings.py:257 core/app_settings.py:349
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:228 core/app_settings.py:320
+#: core/app_settings.py:263 core/app_settings.py:355
msgid "Search filter"
msgstr "Suchfilter"
-#: core/app_settings.py:231 core/app_settings.py:323
+#: core/app_settings.py:266 core/app_settings.py:358
msgid ""
"An optional filter string (e.g. '(objectClass=person)'). In order to be "
"valid, it must be enclosed in parentheses."
@@ -274,11 +298,11 @@ msgstr ""
"Ein optionaler Filter, z.B. '(objectClass=person)'. Der Filter muss "
"entsprechend der LDAP-Konvention in Klammern gesetzt werden."
-#: core/app_settings.py:238
+#: core/app_settings.py:273
msgid "User DN template"
msgstr "Vorlage für User DN"
-#: core/app_settings.py:241
+#: core/app_settings.py:276
#, python-format
msgid ""
"The template used to construct a user's DN. It should contain one "
@@ -287,38 +311,38 @@ msgstr ""
"Die Vorlage für einen User DN. Sie sollte einen Platzhalter, z.B. %(user)s "
"enthalten."
-#: core/app_settings.py:249
+#: core/app_settings.py:284
#, fuzzy
#| msgid "LDAP settings"
msgid "LDAP synchronization settings"
msgstr "LDAP-Einstellungen"
-#: core/app_settings.py:273
+#: core/app_settings.py:308
msgid "Enable export to LDAP"
msgstr ""
-#: core/app_settings.py:276
+#: core/app_settings.py:311
msgid ""
"Enable automatic synchronization between local database and LDAP directory"
msgstr ""
-#: core/app_settings.py:282
+#: core/app_settings.py:317
msgid "Delete remote LDAP account when local account is deleted"
msgstr ""
-#: core/app_settings.py:286
+#: core/app_settings.py:321
msgid ""
"Delete remote LDAP account when local account is deleted, otherwise it will "
"be disabled."
msgstr ""
-#: core/app_settings.py:292
+#: core/app_settings.py:327
#, fuzzy
#| msgid "User DN template"
msgid "Account DN template"
msgstr "Vorlage für User DN"
-#: core/app_settings.py:295
+#: core/app_settings.py:330
#, fuzzy, python-format
#| msgid ""
#| "The template used to construct a user's DN. It should contain one "
@@ -330,159 +354,176 @@ msgstr ""
"Die Vorlage für einen User DN. Sie sollte einen Platzhalter, z.B. %(user)s "
"enthalten."
-#: core/app_settings.py:302
+#: core/app_settings.py:337
msgid "Enable import from LDAP"
msgstr ""
-#: core/app_settings.py:305
+#: core/app_settings.py:340
msgid "Enable account synchronization from LDAP directory to local database"
msgstr ""
-#: core/app_settings.py:330
+#: core/app_settings.py:365
#, fuzzy
#| msgid "Password attribute"
msgid "Username attribute"
msgstr "Passwort-Attribut"
-#: core/app_settings.py:333
+#: core/app_settings.py:368
msgid "The name of the LDAP attribute where the username can be found."
msgstr ""
-#: core/app_settings.py:337 core/templates/core/dashboard.html:5
+#: core/app_settings.py:373
+msgid "Enable Dovecot LDAP sync"
+msgstr ""
+
+#: core/app_settings.py:376
+msgid "LDAP authentication settings will be applied to Dovecot configuration."
+msgstr ""
+
+#: core/app_settings.py:382
+msgid "Dovecot LDAP config file"
+msgstr ""
+
+#: core/app_settings.py:386
+msgid ""
+"Location of the configuration file which contains Dovecot LDAP settings."
+msgstr ""
+
+#: core/app_settings.py:391 core/templates/core/dashboard.html:5
msgid "Dashboard"
msgstr ""
-#: core/app_settings.py:340
+#: core/app_settings.py:394
msgid "Custom RSS feed"
msgstr ""
-#: core/app_settings.py:343
+#: core/app_settings.py:397
msgid "Display custom RSS feed to resellers and domain administrators"
msgstr ""
-#: core/app_settings.py:348
+#: core/app_settings.py:402
msgid "Hide features widget"
msgstr ""
-#: core/app_settings.py:351
+#: core/app_settings.py:405
msgid "Hide features widget for resellers and domain administrators"
msgstr ""
-#: core/app_settings.py:355
+#: core/app_settings.py:409
#, fuzzy
#| msgid "Applications"
msgid "Notifications"
msgstr "Applikationen"
-#: core/app_settings.py:358
+#: core/app_settings.py:412
#, fuzzy
#| msgid "Server address"
msgid "Sender address"
msgstr "Server-Adresse"
-#: core/app_settings.py:361
+#: core/app_settings.py:415
msgid "Email address used to send notifications."
msgstr ""
-#: core/app_settings.py:365
+#: core/app_settings.py:419
msgid "Public API"
msgstr ""
-#: core/app_settings.py:368
+#: core/app_settings.py:422
msgid "Enable communication"
msgstr ""
-#: core/app_settings.py:371
+#: core/app_settings.py:425
msgid "Enable communication with Modoboa public API"
msgstr ""
-#: core/app_settings.py:375
+#: core/app_settings.py:429
msgid "Check new versions"
msgstr "Prüfe auf neue Versionen"
-#: core/app_settings.py:378
+#: core/app_settings.py:432
msgid "Automatically checks if a newer version is available"
msgstr "Prüft automatisch ob eine neuere Version verfügbar ist."
-#: core/app_settings.py:382
+#: core/app_settings.py:436
msgid "Send an email when new versions are found"
msgstr ""
-#: core/app_settings.py:385
+#: core/app_settings.py:439
msgid "Send an email to notify admins about new versions"
msgstr ""
-#: core/app_settings.py:389
+#: core/app_settings.py:443
msgid "Recipient"
msgstr ""
-#: core/app_settings.py:392
+#: core/app_settings.py:446
msgid "Recipient of new versions notification emails."
msgstr ""
-#: core/app_settings.py:397
+#: core/app_settings.py:451
msgid "Send statistics"
msgstr ""
-#: core/app_settings.py:400
+#: core/app_settings.py:454
msgid "Send statistics to Modoboa public API (counters and used extensions)"
msgstr ""
-#: core/app_settings.py:404
+#: core/app_settings.py:458
msgid "Miscellaneous"
msgstr "Verschiedenes"
-#: core/app_settings.py:407
+#: core/app_settings.py:461
msgid "Inactive account threshold"
msgstr ""
-#: core/app_settings.py:410
+#: core/app_settings.py:464
msgid ""
"An account with a last login date greater than this threshold (in days) will "
"be considered as inactive"
msgstr ""
-#: core/app_settings.py:416
+#: core/app_settings.py:470
msgid "Top notifications check interval"
msgstr "Benachrichtigungs-Prüfintervall"
-#: core/app_settings.py:419
+#: core/app_settings.py:473
msgid "Interval between two top notification checks (in seconds)"
msgstr "Intervall zwischen zwei Benachrichtigungsprüfungen (in Sekunden)"
-#: core/app_settings.py:424
+#: core/app_settings.py:478
msgid "Maximum log record age"
msgstr "Maximales Alter für Log-Einträge"
-#: core/app_settings.py:426
+#: core/app_settings.py:480
msgid "The maximum age in days of a log record"
msgstr "Das maximale Alter eines Log-Eintrags (in Tagen)"
-#: core/app_settings.py:430
+#: core/app_settings.py:484
msgid "Items per page"
msgstr "Einträge pro Seite"
-#: core/app_settings.py:432
+#: core/app_settings.py:486
msgid "Number of displayed items per page"
msgstr "Anzahl dargestellter Einträge pro Seite"
-#: core/app_settings.py:436
+#: core/app_settings.py:490
msgid "Default top redirection"
msgstr "Standardumleitung"
-#: core/app_settings.py:440
+#: core/app_settings.py:494
msgid "The default redirection used when no application is specified"
msgstr "Die Standardumleitung wenn kein Programm angegeben wurde"
-#: core/app_settings.py:478 core/app_settings.py:486
+#: core/app_settings.py:548 core/app_settings.py:556 core/app_settings.py:564
msgid "Invalid syntax"
msgstr "Ungültiger Syntax"
-#: core/app_settings.py:492
+#: core/app_settings.py:570
msgid "Invalid rounds number"
msgstr "Ungültige Zahl für Runden"
-#: core/app_settings.py:519
+#: core/app_settings.py:595 core/app_settings.py:597 core/app_settings.py:608
msgid "This field is required"
msgstr "Dieses Feld ist erforderlich"
@@ -501,60 +542,80 @@ msgstr ""
msgid "Set `USE_TZ = True` in settings.py"
msgstr ""
-#: core/constants.py:5
+#: core/constants.py:6
msgid "Simple user"
msgstr "Normaler Benutzer"
-#: core/constants.py:6
+#: core/constants.py:7
#, fuzzy
#| msgid "Super administrator"
msgid "Domain administrator"
msgstr "Super-Administrator"
-#: core/constants.py:7
+#: core/constants.py:8
msgid "Reseller"
msgstr ""
-#: core/constants.py:8
+#: core/constants.py:9
msgid "Super administrator"
msgstr "Super-Administrator"
-#: core/constants.py:51 lib/form_utils.py:389
+#: core/constants.py:52 lib/form_utils.py:389
msgid "No"
msgstr "Nein"
-#: core/forms.py:18
+#: core/constants.py:102
+msgid "Choose a provider"
+msgstr ""
+
+#: core/constants.py:107
+msgid "Dummy"
+msgstr ""
+
+#: core/forms.py:21
msgid "Username"
msgstr "Benutzername"
-#: core/forms.py:22
+#: core/forms.py:25
msgid "Password"
msgstr "Passwort"
-#: core/forms.py:35
+#: core/forms.py:38
msgid "Old password"
msgstr "Altes Passwort"
-#: core/forms.py:39
+#: core/forms.py:42
msgid "New password"
msgstr "Neues Passwort"
-#: core/forms.py:43
+#: core/forms.py:46
msgid "Confirmation"
msgstr "Bestätigung"
-#: core/forms.py:71
+#: core/forms.py:74
msgid "Old password mismatchs"
msgstr "Altes Passwort stimmt nicht überein"
-#: core/forms.py:80
+#: core/forms.py:83
msgid "Passwords mismatch"
msgstr "Passwörter stimmen nicht überein"
-#: core/forms.py:100
+#: core/forms.py:103
msgid "Enable API access"
msgstr ""
+#: core/forms.py:137
+#, fuzzy
+#| msgid "Applications"
+msgid "Verification code"
+msgstr "Applikationen"
+
+#: core/forms.py:148
+#, fuzzy
+#| msgid "Invalid line"
+msgid "Invalid code"
+msgstr "Ungültige Zeile"
+
#: core/handlers.py:36
msgid "added"
msgstr "hinzugefügt"
@@ -600,65 +661,65 @@ msgstr "Eine oder mehrere Aktualisierungen sind verfügbar"
msgid "[modoboa] Update(s) available"
msgstr "Eine oder mehrere Aktualisierungen sind verfügbar"
-#: core/models.py:53
+#: core/models.py:55
msgid "Allow mailboxes access"
msgstr "Erlaube den Postfach-Zugriff"
-#: core/models.py:55
+#: core/models.py:57
msgid "Allow this administrator to access user mailboxes"
msgstr "Erlaubt dem Administrator auf Benutzer-Postfächer zuzugreifen"
-#: core/models.py:58
+#: core/models.py:60
msgid "password"
msgstr "Passwort"
-#: core/models.py:61
+#: core/models.py:63
msgid "language"
msgstr "Sprache"
-#: core/models.py:64
+#: core/models.py:66
msgid "Prefered language to display pages."
msgstr "Bevorzugte Sprache für Seitendarstellung"
-#: core/models.py:68
+#: core/models.py:70
msgid "Phone number"
msgstr "Telefonnummer"
-#: core/models.py:70
+#: core/models.py:72
msgid "Secondary email"
msgstr "Alternative Email-Adresse"
-#: core/models.py:73
+#: core/models.py:75
msgid "An alternative e-mail address, can be used for recovery needs."
msgstr "Eine alternative e-mail Adresse zur Widerherstellung."
-#: core/models.py:124
+#: core/models.py:126
msgid "Failed to update password: LDAP module not installed"
msgstr "Konnte Passwort nicht aktualisieren: LDAP-Modul nicht installiert"
-#: core/models.py:153
+#: core/models.py:155
msgid "account"
msgstr "Konto"
-#: core/models.py:280
+#: core/models.py:282
msgid "Unknown"
msgstr "Unbekannt"
-#: core/models.py:314
+#: core/models.py:316
msgid "Invalid line"
msgstr "Ungültige Zeile"
-#: core/models.py:322
+#: core/models.py:324
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:337
+#: core/models.py:339
#, 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:342
+#: core/models.py:344
#, 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"
@@ -691,6 +752,54 @@ msgstr[1] ""
msgid "Your password must contain a combination of different character types."
msgstr ""
+#: core/sms_backends/ovh.py:19
+msgid "API endpoint"
+msgstr ""
+
+#: core/sms_backends/ovh.py:22
+msgid "OVH Europe"
+msgstr ""
+
+#: core/sms_backends/ovh.py:23
+msgid "OVH US"
+msgstr ""
+
+#: core/sms_backends/ovh.py:24
+msgid "OVH North-America"
+msgstr ""
+
+#: core/sms_backends/ovh.py:25
+msgid "So you Start Europe"
+msgstr ""
+
+#: core/sms_backends/ovh.py:26
+msgid "So you Start North America"
+msgstr ""
+
+#: core/sms_backends/ovh.py:27
+msgid "Kimsufi Europe"
+msgstr ""
+
+#: core/sms_backends/ovh.py:28
+msgid "Kimsufi North America"
+msgstr ""
+
+#: core/sms_backends/ovh.py:35
+#, fuzzy
+#| msgid "Applications"
+msgid "Application key"
+msgstr "Applikationen"
+
+#: core/sms_backends/ovh.py:42
+#, fuzzy
+#| msgid "Applications"
+msgid "Application secret"
+msgstr "Applikationen"
+
+#: core/sms_backends/ovh.py:50
+msgid "Consumer key"
+msgstr ""
+
#: core/templates/core/_current_features.html:6
msgid "Features looking for sponsoring"
msgstr ""
@@ -903,33 +1012,37 @@ msgstr "Der Kern von Modoboa"
msgid "Parameters saved"
msgstr "Parameter gespeichert"
-#: core/views/auth.py:46
+#: core/views/auth.py:59
#, python-format
msgid "Password scheme mismatch. Updating %s password"
msgstr ""
-#: core/views/auth.py:53
+#: core/views/auth.py:66
#, python-format
msgid "Password hash parameter missmatch. Updating %s password"
msgstr ""
-#: core/views/auth.py:69
+#: core/views/auth.py:82
#, python-format
msgid "User '%s' successfully logged in"
msgstr "Benutzer '%s' hat sich erfolgreich angemeldet"
-#: core/views/auth.py:77
+#: core/views/auth.py:90
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:112
+#: core/views/auth.py:125
#, fuzzy
#| msgid "User '%s' successfully logged in"
msgid "User '{}' successfully logged out"
msgstr "Benutzer '%s' hat sich erfolgreich angemeldet"
+#: core/views/auth.py:170 core/views/auth.py:225
+msgid "Please use the following code to recover your Modoboa password: {}"
+msgstr ""
+
#: core/views/user.py:53
msgid "Profile updated"
msgstr "Profil aktualisiert"
@@ -973,7 +1086,8 @@ msgid "Enter a valid email address."
msgstr "Geben Sie einen gültigen Domain-Namen an"
#: lib/form_utils.py:77 templates/registration/password_reset_confirm.html:12
-#: templates/registration/password_reset_form.html:11
+#: templates/registration/password_reset_confirm_code.html:25
+#: templates/registration/password_reset_form.html:29
msgid "Submit"
msgstr "Abschicken"
@@ -1060,7 +1174,7 @@ msgid "Log in"
msgstr "Anmelden"
#: templates/registration/login.html:24
-#: templates/registration/password_reset_form.html:6
+#: templates/registration/password_reset_form.html:17
#, fuzzy
#| msgid "password"
msgid "Forgot password?"
@@ -1085,6 +1199,14 @@ msgid ""
"used. Please request a new password reset."
msgstr ""
+#: templates/registration/password_reset_confirm_code.html:20
+msgid "Enter the code you've just received by SMS"
+msgstr ""
+
+#: templates/registration/password_reset_confirm_code.html:27
+msgid "Resend code"
+msgstr ""
+
#: templates/registration/password_reset_done.html:7
msgid ""
"We've emailed you instructions for setting your password, if an account "
@@ -1110,6 +1232,10 @@ msgstr ""
msgid "Sincerely, The Modoboa Team."
msgstr ""
+#: templates/registration/password_reset_form.html:24
+msgid "Please fill-in your primary email address"
+msgstr ""
+
#: templates/registration/password_reset_subject.txt:3
msgid "Modoboa password reset"
msgstr ""
diff --git a/modoboa/locale/de/LC_MESSAGES/djangojs.po b/modoboa/locale/de/LC_MESSAGES/djangojs.po
index 26b4c4c5f..138819571 100644
--- a/modoboa/locale/de/LC_MESSAGES/djangojs.po
+++ b/modoboa/locale/de/LC_MESSAGES/djangojs.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:
# Arvedui , 2014
# controlc.de, 2014
@@ -15,13 +15,13 @@ msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-03-09 16:48+0100\n"
-"PO-Revision-Date: 2017-09-19 10:26+0000\n"
-"Last-Translator: Tobias Strobel\n"
+"PO-Revision-Date: 2020-03-09 15:49+0000\n"
+"Last-Translator: Antoine Nguyen \n"
"Language-Team: German (http://www.transifex.com/tonio/modoboa/language/de/)\n"
-"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Language: de\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: bower_components/jquery-ui/jquery-ui.min.js:8
diff --git a/modoboa/locale/el_GR/LC_MESSAGES/django.po b/modoboa/locale/el_GR/LC_MESSAGES/django.po
index 81d6b2279..2be6168eb 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: 2020-03-09 16:48+0100\n"
+"POT-Creation-Date: 2020-05-06 13:15+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,41 +20,41 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: core/app_settings.py:20
+#: core/app_settings.py:26
msgid "User profile"
msgstr "Προφίλ Χρήστη"
-#: core/app_settings.py:33
+#: core/app_settings.py:39
msgid "Authentication"
msgstr "Πιστοποίηση"
-#: core/app_settings.py:36
+#: core/app_settings.py:42
msgid "Authentication type"
msgstr "Τύπος Πιστοποίησης"
-#: core/app_settings.py:37
+#: core/app_settings.py:43
msgid "Local"
msgstr "Τοπικός"
-#: core/app_settings.py:40
+#: core/app_settings.py:46
msgid "The backend used for authentication"
msgstr "Το backend που χρησιμοποιείται για πιστοποίηση"
-#: core/app_settings.py:45
+#: core/app_settings.py:51
msgid "Default password scheme"
msgstr "Προεπιλεγμένος αλγόριθμος κωδικοποίησης"
-#: core/app_settings.py:50
+#: core/app_settings.py:56
msgid "Scheme used to crypt mailbox passwords"
msgstr ""
"Σχήμα που θα χρησιμοποιηθεί για την κρυπτογράφηση των κωδικών των "
"λογαριασμών αλληλογραφίας"
-#: core/app_settings.py:54
+#: core/app_settings.py:60
msgid "Rounds"
msgstr "Επαναλήψεων"
-#: core/app_settings.py:57
+#: core/app_settings.py:63
msgid ""
"Number of rounds to use (only used by sha256crypt and sha512crypt). Must be "
"between 1000 and 999999999, inclusive."
@@ -62,121 +62,145 @@ msgstr ""
"Αριθμός επαναλήψεων (μόνο για sha256crypt και sha512crypt). Μπορεί να είναι "
"από 1000 έως και 999999999"
-#: core/app_settings.py:63
+#: core/app_settings.py:69
#, fuzzy
#| msgid "Default password scheme"
msgid "Update password scheme at login"
msgstr "Προεπιλεγμένος αλγόριθμος κωδικοποίησης"
-#: core/app_settings.py:66
+#: core/app_settings.py:72
msgid "Update user password at login to use the default password scheme"
msgstr ""
-#: core/app_settings.py:71
+#: core/app_settings.py:77
msgid "Default password"
msgstr "Προκαθορισμένος κωδικός"
-#: core/app_settings.py:74
+#: core/app_settings.py:80
msgid "Default password for automatically created accounts."
msgstr "Προκαθορισμένος κωδικός για αυτόματη δημιουργία λογαριασμών"
-#: core/app_settings.py:78
+#: core/app_settings.py:84
msgid "Random password length"
msgstr "Μήκος τυχαίου κωδικού"
-#: core/app_settings.py:82
+#: core/app_settings.py:88
msgid "Length of randomly generated passwords."
msgstr "Μήκος των τυχαίων δημιουργημένων κωδικών"
-#: core/app_settings.py:86
+#: core/app_settings.py:92
#, fuzzy
#| msgid "Default password scheme"
msgid "Update password service URL"
msgstr "Προεπιλεγμένος αλγόριθμος κωδικοποίησης"
-#: core/app_settings.py:90
+#: core/app_settings.py:96
msgid ""
"The URL of an external page where users will be able to update their "
"password. It applies only to non local users, ie. those automatically "
"created after a successful external authentication (LDAP, SMTP)."
msgstr ""
-#: core/app_settings.py:98
+#: core/app_settings.py:104
+msgid "Password recovery announcement"
+msgstr ""
+
+#: core/app_settings.py:109
+msgid "A temporary message that will be displayed on the reset password page."
+msgstr ""
+
+#: core/app_settings.py:115
+msgid "Enable password recovery by SMS"
+msgstr ""
+
+#: core/app_settings.py:118
+msgid "Enable password recovery by SMS for users who filled a phone number."
+msgstr ""
+
+#: core/app_settings.py:124
+msgid "SMS provider"
+msgstr ""
+
+#: core/app_settings.py:127
+msgid "Choose a provider to send password recovery SMS"
+msgstr ""
+
+#: core/app_settings.py:133
msgid "LDAP settings"
msgstr "Ρυθμίσεις LDAP"
-#: core/app_settings.py:101
+#: core/app_settings.py:136
msgid "Server address"
msgstr "Διεύθυνση εξυπηρετητή"
-#: core/app_settings.py:104
+#: core/app_settings.py:139
msgid "The IP address or the DNS name of the LDAP server"
msgstr "Η IP διεύθυνση ή το DNS όνομα του εξυπηρετητή LDAP"
-#: core/app_settings.py:108
+#: core/app_settings.py:143
msgid "Server port"
msgstr "Πόρτα εξυπηρετητή"
-#: core/app_settings.py:110
+#: core/app_settings.py:145
msgid "The TCP port number used by the LDAP server"
msgstr "Η TCP πόρτα λειτουργίας του εξυπηρετητή LDAP"
-#: core/app_settings.py:114
+#: core/app_settings.py:149
msgid "Enable secondary server (fallback)"
msgstr ""
-#: core/app_settings.py:117
+#: core/app_settings.py:152
msgid ""
"Enable a secondary LDAP server which will be used if the primary one fails"
msgstr ""
-#: core/app_settings.py:123
+#: core/app_settings.py:158
#, fuzzy
#| msgid "Server address"
msgid "Secondary server address"
msgstr "Διεύθυνση εξυπηρετητή"
-#: core/app_settings.py:126
+#: core/app_settings.py:161
#, fuzzy
#| msgid "The IP address or the DNS name of the LDAP server"
msgid "The IP address or the DNS name of the seondary LDAP server"
msgstr "Η IP διεύθυνση ή το DNS όνομα του εξυπηρετητή LDAP"
-#: core/app_settings.py:130
+#: core/app_settings.py:165
#, fuzzy
#| msgid "Server port"
msgid "Secondary server port"
msgstr "Πόρτα εξυπηρετητή"
-#: core/app_settings.py:133
+#: core/app_settings.py:168
#, fuzzy
#| msgid "The TCP port number used by the LDAP server"
msgid "The TCP port number used by the LDAP secondary server"
msgstr "Η TCP πόρτα λειτουργίας του εξυπηρετητή LDAP"
-#: core/app_settings.py:137
+#: core/app_settings.py:172
msgid "Use a secured connection"
msgstr "Χρήση ασφαλής σύνδεσης"
-#: core/app_settings.py:141
+#: core/app_settings.py:176
msgid "Use an SSL/STARTTLS connection to access the LDAP server"
msgstr ""
"Χρησιμοποιήστε μια σύνδεση SSL / STARTTLS για να συνδεθήκατε στον διακομιστή "
"LDAP"
-#: core/app_settings.py:145
+#: core/app_settings.py:180
msgid "Active Directory"
msgstr "Active Directory"
-#: core/app_settings.py:148
+#: core/app_settings.py:183
msgid "Tell if the LDAP server is an Active Directory one"
msgstr "Ο εξυπηρετητής LDAP είναι Active Directory"
-#: core/app_settings.py:152
+#: core/app_settings.py:187
msgid "Administrator groups"
msgstr "Groups Διαχειριστών"
-#: core/app_settings.py:155
+#: core/app_settings.py:190
msgid ""
"Members of those LDAP Posix groups will be created as domain administrators. "
"Use ';' characters to separate groups."
@@ -184,57 +208,57 @@ msgstr ""
"Τα μέλη αυτών των LDAP Posix ομάδων χρηστών θα δημιουργηθούν ως διαχειριστές "
"domain. Χρησιμοποιείστε τον χαραχτήρα ';' για να ξεχωρίσετε τις ομάδες."
-#: core/app_settings.py:162
+#: core/app_settings.py:197
msgid "Group type"
msgstr "Τύπος ομάδας"
-#: core/app_settings.py:166
+#: core/app_settings.py:201
msgid "The LDAP group type to use with your directory."
msgstr "Τύπος ομάδας LDAP που χρησιμοποιείται με τον κατάλογο σας."
-#: core/app_settings.py:171
+#: core/app_settings.py:206
msgid "Groups search base"
msgstr "Base αναζήτησης ομάδων χρηστών"
-#: core/app_settings.py:174
+#: core/app_settings.py:209
msgid "The distinguished name of the search base used to find groups"
msgstr "Το Base DN αναζήτησης ομάδων χρηστών"
-#: core/app_settings.py:180
+#: core/app_settings.py:215
msgid "Password attribute"
msgstr "Το πεδίο του κωδικού"
-#: core/app_settings.py:182
+#: core/app_settings.py:217
msgid "The attribute used to store user passwords"
msgstr "Το πεδίο αποθήκευσης των κωδικών χρηστών"
-#: core/app_settings.py:187
+#: core/app_settings.py:222
#, fuzzy
#| msgid "Authentication method"
msgid "LDAP authentication settings"
msgstr "Μέθοδος Πιστοποίησης"
-#: core/app_settings.py:190
+#: core/app_settings.py:225
msgid "Authentication method"
msgstr "Μέθοδος Πιστοποίησης"
-#: core/app_settings.py:191
+#: core/app_settings.py:226
msgid "Search and bind"
msgstr "Αναζήτηση χρήστη και bind"
-#: core/app_settings.py:192
+#: core/app_settings.py:227
msgid "Direct bind"
msgstr "Χρήση Bind DN"
-#: core/app_settings.py:194
+#: core/app_settings.py:229
msgid "Choose the authentication method to use"
msgstr "Επιλογή μεθόδου πιστοποίησης"
-#: core/app_settings.py:198 core/app_settings.py:252
+#: core/app_settings.py:233 core/app_settings.py:287
msgid "Bind DN"
msgstr "Bind DN"
-#: core/app_settings.py:201 core/app_settings.py:255
+#: core/app_settings.py:236 core/app_settings.py:290
msgid ""
"The distinguished name to use when binding to the LDAP server. Leave empty "
"for an anonymous bind"
@@ -242,28 +266,28 @@ msgstr ""
"To distinguished name για το bind στον εξυπηρετητή LDAP. Αφήστε το κενό για "
"anonymous"
-#: core/app_settings.py:208 core/app_settings.py:262
+#: core/app_settings.py:243 core/app_settings.py:297
msgid "Bind password"
msgstr "Bind κωδικός "
-#: core/app_settings.py:211 core/app_settings.py:265
+#: core/app_settings.py:246 core/app_settings.py:300
msgid "The password to use when binding to the LDAP server (with 'Bind DN')"
msgstr ""
"Ο κωδικός για το bind στον εξυπηρετητή LDAP (αντιστοιχεί στο 'Bind DN')"
-#: core/app_settings.py:219 core/app_settings.py:311
+#: core/app_settings.py:254 core/app_settings.py:346
msgid "Users search base"
msgstr "Base αναζήτησης χρηστών"
-#: core/app_settings.py:222 core/app_settings.py:314
+#: core/app_settings.py:257 core/app_settings.py:349
msgid "The distinguished name of the search base used to find users"
msgstr "Το Base DN αναζήτησης χρηστών"
-#: core/app_settings.py:228 core/app_settings.py:320
+#: core/app_settings.py:263 core/app_settings.py:355
msgid "Search filter"
msgstr "Φίλτρο αναζήτησης"
-#: core/app_settings.py:231 core/app_settings.py:323
+#: core/app_settings.py:266 core/app_settings.py:358
msgid ""
"An optional filter string (e.g. '(objectClass=person)'). In order to be "
"valid, it must be enclosed in parentheses."
@@ -271,11 +295,11 @@ msgstr ""
"Προαιρετικό φίλτρο (π.χ. '(objectClass=person)'). Για να είναι έγκυρο πρέπει "
"να περικλείεται σε παρενθέσεις."
-#: core/app_settings.py:238
+#: core/app_settings.py:273
msgid "User DN template"
msgstr "Πρότυπο για DN χρηστών"
-#: core/app_settings.py:241
+#: core/app_settings.py:276
#, python-format
msgid ""
"The template used to construct a user's DN. It should contain one "
@@ -284,38 +308,38 @@ msgstr ""
"Το πρότυπο δημιουργίας DN χρηστών. Θα πρέπει να περιλαμβάνει έναν "
"placeholder (π.χ. %(user)s)"
-#: core/app_settings.py:249
+#: core/app_settings.py:284
#, fuzzy
#| msgid "LDAP settings"
msgid "LDAP synchronization settings"
msgstr "Ρυθμίσεις LDAP"
-#: core/app_settings.py:273
+#: core/app_settings.py:308
msgid "Enable export to LDAP"
msgstr ""
-#: core/app_settings.py:276
+#: core/app_settings.py:311
msgid ""
"Enable automatic synchronization between local database and LDAP directory"
msgstr ""
-#: core/app_settings.py:282
+#: core/app_settings.py:317
msgid "Delete remote LDAP account when local account is deleted"
msgstr ""
-#: core/app_settings.py:286
+#: core/app_settings.py:321
msgid ""
"Delete remote LDAP account when local account is deleted, otherwise it will "
"be disabled."
msgstr ""
-#: core/app_settings.py:292
+#: core/app_settings.py:327
#, fuzzy
#| msgid "User DN template"
msgid "Account DN template"
msgstr "Πρότυπο για DN χρηστών"
-#: core/app_settings.py:295
+#: core/app_settings.py:330
#, fuzzy, python-format
#| msgid ""
#| "The template used to construct a user's DN. It should contain one "
@@ -327,162 +351,181 @@ msgstr ""
"Το πρότυπο δημιουργίας DN χρηστών. Θα πρέπει να περιλαμβάνει έναν "
"placeholder (π.χ. %(user)s)"
-#: core/app_settings.py:302
+#: core/app_settings.py:337
msgid "Enable import from LDAP"
msgstr ""
-#: core/app_settings.py:305
+#: core/app_settings.py:340
msgid "Enable account synchronization from LDAP directory to local database"
msgstr ""
-#: core/app_settings.py:330
+#: core/app_settings.py:365
#, fuzzy
#| msgid "Password attribute"
msgid "Username attribute"
msgstr "Το πεδίο του κωδικού"
-#: core/app_settings.py:333
+#: core/app_settings.py:368
msgid "The name of the LDAP attribute where the username can be found."
msgstr ""
-#: core/app_settings.py:337 core/templates/core/dashboard.html:5
+#: core/app_settings.py:373
+#, fuzzy
+#| msgid "Enable communication"
+msgid "Enable Dovecot LDAP sync"
+msgstr "Ενεργοποίηση επικοινωνίας"
+
+#: core/app_settings.py:376
+msgid "LDAP authentication settings will be applied to Dovecot configuration."
+msgstr ""
+
+#: core/app_settings.py:382
+msgid "Dovecot LDAP config file"
+msgstr ""
+
+#: core/app_settings.py:386
+msgid ""
+"Location of the configuration file which contains Dovecot LDAP settings."
+msgstr ""
+
+#: core/app_settings.py:391 core/templates/core/dashboard.html:5
msgid "Dashboard"
msgstr "Ταμπλό Συντομεύσεων"
-#: core/app_settings.py:340
+#: core/app_settings.py:394
msgid "Custom RSS feed"
msgstr "Κατά παραγγελία RSS feed"
-#: core/app_settings.py:343
+#: core/app_settings.py:397
msgid "Display custom RSS feed to resellers and domain administrators"
msgstr ""
"Προβολή κατά παραγγελία RSS feed για μεταπωλητές και διαχειριστές τομέα"
-#: core/app_settings.py:348
+#: core/app_settings.py:402
msgid "Hide features widget"
msgstr "Κρύβω τις λειτουργίες από τα widget"
-#: core/app_settings.py:351
+#: core/app_settings.py:405
msgid "Hide features widget for resellers and domain administrators"
msgstr ""
"Κρύβω τις λειτουργίες από τα widget για τους μεταπωλητές και τους "
"διαχειριστές του τομέα"
-#: core/app_settings.py:355
+#: core/app_settings.py:409
msgid "Notifications"
msgstr "Υπενθύμιση "
-#: core/app_settings.py:358
+#: core/app_settings.py:412
msgid "Sender address"
msgstr "Διεύθυνση αποστολέα"
-#: core/app_settings.py:361
+#: core/app_settings.py:415
msgid "Email address used to send notifications."
msgstr "Email διεύθυνση που χρησιμοποιείται για την αποστολή υπενθυμίσεων "
-#: core/app_settings.py:365
+#: core/app_settings.py:419
msgid "Public API"
msgstr "Δημόσιο API"
-#: core/app_settings.py:368
+#: core/app_settings.py:422
msgid "Enable communication"
msgstr "Ενεργοποίηση επικοινωνίας"
-#: core/app_settings.py:371
+#: core/app_settings.py:425
msgid "Enable communication with Modoboa public API"
msgstr "Ενεργοποίηση επικοινωνίας με δημόσιο API του Modaboa"
-#: core/app_settings.py:375
+#: core/app_settings.py:429
msgid "Check new versions"
msgstr "Έλεγχος ενημερώσεων"
-#: core/app_settings.py:378
+#: core/app_settings.py:432
msgid "Automatically checks if a newer version is available"
msgstr "Αυτόματος έλεγχος διαθέσιμων ενημερώσεων"
-#: core/app_settings.py:382
+#: core/app_settings.py:436
msgid "Send an email when new versions are found"
msgstr ""
-#: core/app_settings.py:385
+#: core/app_settings.py:439
msgid "Send an email to notify admins about new versions"
msgstr ""
-#: core/app_settings.py:389
+#: core/app_settings.py:443
msgid "Recipient"
msgstr ""
-#: core/app_settings.py:392
+#: core/app_settings.py:446
msgid "Recipient of new versions notification emails."
msgstr ""
-#: core/app_settings.py:397
+#: core/app_settings.py:451
msgid "Send statistics"
msgstr "Αποστολή στατιστικών"
-#: core/app_settings.py:400
+#: core/app_settings.py:454
msgid "Send statistics to Modoboa public API (counters and used extensions)"
msgstr ""
"Αποστολή στατιστικών στο public API του Motaboa (counters και used "
"extensions)"
-#: core/app_settings.py:404
+#: core/app_settings.py:458
msgid "Miscellaneous"
msgstr "Διάφορα"
-#: core/app_settings.py:407
+#: core/app_settings.py:461
msgid "Inactive account threshold"
msgstr "Όριο απενεργοποιημένων λογαριασμών "
-#: core/app_settings.py:410
+#: core/app_settings.py:464
msgid ""
"An account with a last login date greater than this threshold (in days) will "
"be considered as inactive"
msgstr "Όριο (σε ημέρες) για να απενεργοποιηθεί ένας Λογαριασμός."
-#: core/app_settings.py:416
+#: core/app_settings.py:470
msgid "Top notifications check interval"
msgstr "Μέγιστο διάστημα ελέγχου ειδοποιήσεων"
-#: core/app_settings.py:419
+#: core/app_settings.py:473
msgid "Interval between two top notification checks (in seconds)"
msgstr "Διάστημα μεταξύ των δύο πρώτων ελέγχων ειδοποιήσεων (σε δευτερόλεπτα)"
-#: core/app_settings.py:424
+#: core/app_settings.py:478
msgid "Maximum log record age"
msgstr "Μέγιστος χρόνος καταγραφής των log"
-#: core/app_settings.py:426
+#: core/app_settings.py:480
msgid "The maximum age in days of a log record"
msgstr "Μέγιστη διάρκεια σε ημέρες καταγραφής των log"
-#: core/app_settings.py:430
+#: core/app_settings.py:484
msgid "Items per page"
msgstr "Εμφανίσεις ανά σελίδα"
-#: core/app_settings.py:432
+#: core/app_settings.py:486
msgid "Number of displayed items per page"
msgstr "Αριθμός εμφανίσεων ανά σελίδα"
-#: core/app_settings.py:436
+#: core/app_settings.py:490
msgid "Default top redirection"
msgstr "Κύριες προκαθορισμένες αναδρομολογήσεις"
-#: core/app_settings.py:440
+#: core/app_settings.py:494
msgid "The default redirection used when no application is specified"
msgstr ""
"Προκαθορισμένες αναδρομολογήσεις που χρησιμοποιούνται όταν δεν υπάρχουν "
"προκαθορισμένες εφαρμογές"
-#: core/app_settings.py:478 core/app_settings.py:486
+#: core/app_settings.py:548 core/app_settings.py:556 core/app_settings.py:564
msgid "Invalid syntax"
msgstr "Μη έγκυρη σύνταξη"
-#: core/app_settings.py:492
+#: core/app_settings.py:570
msgid "Invalid rounds number"
msgstr "Λάθος αριθμός επαναλήψεων "
-#: core/app_settings.py:519
+#: core/app_settings.py:595 core/app_settings.py:597 core/app_settings.py:608
msgid "This field is required"
msgstr "Αυτό το πεδίο είναι υποχρεωτικό"
@@ -501,58 +544,78 @@ msgstr ""
msgid "Set `USE_TZ = True` in settings.py"
msgstr ""
-#: core/constants.py:5
+#: core/constants.py:6
msgid "Simple user"
msgstr "Απλός χρήστης"
-#: core/constants.py:6
+#: core/constants.py:7
msgid "Domain administrator"
msgstr "Διαχειριστής Τομέα"
-#: core/constants.py:7
+#: core/constants.py:8
msgid "Reseller"
msgstr "Μεταπωλητής "
-#: core/constants.py:8
+#: core/constants.py:9
msgid "Super administrator"
msgstr "Super διαχειριστής"
-#: core/constants.py:51 lib/form_utils.py:389
+#: core/constants.py:52 lib/form_utils.py:389
msgid "No"
msgstr "Όχι"
-#: core/forms.py:18
+#: core/constants.py:102
+msgid "Choose a provider"
+msgstr ""
+
+#: core/constants.py:107
+msgid "Dummy"
+msgstr ""
+
+#: core/forms.py:21
msgid "Username"
msgstr "Όνομα Χρήστη"
-#: core/forms.py:22
+#: core/forms.py:25
msgid "Password"
msgstr "Κωδικός"
-#: core/forms.py:35
+#: core/forms.py:38
msgid "Old password"
msgstr "Παλιός κωδικός"
-#: core/forms.py:39
+#: core/forms.py:42
msgid "New password"
msgstr "Νέος κωδικός"
-#: core/forms.py:43
+#: core/forms.py:46
msgid "Confirmation"
msgstr "Επιβεβαίωση"
-#: core/forms.py:71
+#: core/forms.py:74
msgid "Old password mismatchs"
msgstr "Αναντιστοιχία παλιού κωδικού"
-#: core/forms.py:80
+#: core/forms.py:83
msgid "Passwords mismatch"
msgstr "Αναντιστοιχία κωδικών"
-#: core/forms.py:100
+#: core/forms.py:103
msgid "Enable API access"
msgstr "Ενεργοποίηση πρόσβασης API"
+#: core/forms.py:137
+#, fuzzy
+#| msgid "Notifications"
+msgid "Verification code"
+msgstr "Υπενθύμιση "
+
+#: core/forms.py:148
+#, fuzzy
+#| msgid "Invalid line"
+msgid "Invalid code"
+msgstr "Λάθος γραμμή"
+
#: core/handlers.py:36
msgid "added"
msgstr "πρόσθεσε"
@@ -597,70 +660,70 @@ msgstr "Υπάρχουν διαθέσιμες ενημερώσεις"
msgid "[modoboa] Update(s) available"
msgstr "Υπάρχουν διαθέσιμες ενημερώσεις"
-#: core/models.py:53
+#: core/models.py:55
msgid "Allow mailboxes access"
msgstr "Να επιτρέπεται η πρόσβαση σε γραμματοκιβώτια"
-#: core/models.py:55
+#: core/models.py:57
msgid "Allow this administrator to access user mailboxes"
msgstr ""
"Να επιτρέπεται σε αυτόν τον διαχειριστή η πρόσβαση στα γραμματοκιβώτια "
"χρηστών"
-#: core/models.py:58
+#: core/models.py:60
msgid "password"
msgstr "κωδικός"
-#: core/models.py:61
+#: core/models.py:63
msgid "language"
msgstr "Γλώσσα "
-#: core/models.py:64
+#: core/models.py:66
msgid "Prefered language to display pages."
msgstr "Επιλογή γλώσσας για την εμφάνιση σελίδων."
-#: core/models.py:68
+#: core/models.py:70
msgid "Phone number"
msgstr "Τηλέφωνο"
-#: core/models.py:70
+#: core/models.py:72
msgid "Secondary email"
msgstr "Δευτερεύον email"
-#: core/models.py:73
+#: core/models.py:75
msgid "An alternative e-mail address, can be used for recovery needs."
msgstr ""
"Μια εναλλακτική e-mail διεύθυνση, μπορεί να χρησιμοποιηθεί για λόγους "
"ανάκτησης."
-#: core/models.py:124
+#: core/models.py:126
msgid "Failed to update password: LDAP module not installed"
msgstr ""
"Σφάλμα κατά την ενημέρωση του κωδικού: το LDAP module δεν είναι εγκατεστημένο"
-#: core/models.py:153
+#: core/models.py:155
msgid "account"
msgstr "λογαριασμός"
-#: core/models.py:280
+#: core/models.py:282
msgid "Unknown"
msgstr "Άγνωστη"
-#: core/models.py:314
+#: core/models.py:316
msgid "Invalid line"
msgstr "Λάθος γραμμή"
-#: core/models.py:322
+#: core/models.py:324
msgid "You can't import an account with a role greater than yours"
msgstr ""
"Δεν μπορείτε να εισάγετε έναν λογαριασμό με ρόλο μεγαλύτερο από τον δικό σας"
-#: core/models.py:337
+#: core/models.py:339
#, python-format
msgid "The simple user '%s' must have a valid email address"
msgstr "Ο απλός χρήστης '%s' πρέπει να έχει μια έγκυρη email διεύθυνση"
-#: core/models.py:342
+#: core/models.py:344
#, python-format
msgid "username and email fields must not differ for '%s'"
msgstr ""
@@ -696,6 +759,54 @@ msgstr ""
"Ο κωδικός πρέπει να περιέχει ένα συνδυασμό από διαφορετικούς τύπους "
"χαρακτήρων."
+#: core/sms_backends/ovh.py:19
+msgid "API endpoint"
+msgstr ""
+
+#: core/sms_backends/ovh.py:22
+msgid "OVH Europe"
+msgstr ""
+
+#: core/sms_backends/ovh.py:23
+msgid "OVH US"
+msgstr ""
+
+#: core/sms_backends/ovh.py:24
+msgid "OVH North-America"
+msgstr ""
+
+#: core/sms_backends/ovh.py:25
+msgid "So you Start Europe"
+msgstr ""
+
+#: core/sms_backends/ovh.py:26
+msgid "So you Start North America"
+msgstr ""
+
+#: core/sms_backends/ovh.py:27
+msgid "Kimsufi Europe"
+msgstr ""
+
+#: core/sms_backends/ovh.py:28
+msgid "Kimsufi North America"
+msgstr ""
+
+#: core/sms_backends/ovh.py:35
+#, fuzzy
+#| msgid "Applications"
+msgid "Application key"
+msgstr "Εφαρμογές"
+
+#: core/sms_backends/ovh.py:42
+#, fuzzy
+#| msgid "Applications"
+msgid "Application secret"
+msgstr "Εφαρμογές"
+
+#: core/sms_backends/ovh.py:50
+msgid "Consumer key"
+msgstr ""
+
#: core/templates/core/_current_features.html:6
msgid "Features looking for sponsoring"
msgstr "Χαρακτηριστικά που αναζητούν χορηγία"
@@ -910,29 +1021,33 @@ msgstr "Το βασικό μέρος του Modoboa"
msgid "Parameters saved"
msgstr "Οι παράμετροι αποθηκεύτηκαν"
-#: core/views/auth.py:46
+#: core/views/auth.py:59
#, python-format
msgid "Password scheme mismatch. Updating %s password"
msgstr ""
-#: core/views/auth.py:53
+#: core/views/auth.py:66
#, python-format
msgid "Password hash parameter missmatch. Updating %s password"
msgstr ""
-#: core/views/auth.py:69
+#: core/views/auth.py:82
#, python-format
msgid "User '%s' successfully logged in"
msgstr "Επιτυχής είσοδος του χρήστη '%s'"
-#: core/views/auth.py:77
+#: core/views/auth.py:90
msgid "Your username and password didn't match. Please try again."
msgstr "Λάθος όνομα χρήστη ή κωδικός. Παρακαλώ δοκιμάστε ξανά."
-#: core/views/auth.py:112
+#: core/views/auth.py:125
msgid "User '{}' successfully logged out"
msgstr "Ο χρήστης '{}' αποσυνδέθηκε επιτυχώς"
+#: core/views/auth.py:170 core/views/auth.py:225
+msgid "Please use the following code to recover your Modoboa password: {}"
+msgstr ""
+
#: core/views/user.py:53
msgid "Profile updated"
msgstr "Το προφίλ ενημερώθηκε"
@@ -972,7 +1087,8 @@ msgid "Enter a valid email address."
msgstr "Εισαγωγή μιας πραγματικής διεύθυνσης email."
#: lib/form_utils.py:77 templates/registration/password_reset_confirm.html:12
-#: templates/registration/password_reset_form.html:11
+#: templates/registration/password_reset_confirm_code.html:25
+#: templates/registration/password_reset_form.html:29
msgid "Submit"
msgstr "Αποστολή"
@@ -1059,7 +1175,7 @@ msgid "Log in"
msgstr "Είσοδος Χρήστη"
#: templates/registration/login.html:24
-#: templates/registration/password_reset_form.html:6
+#: templates/registration/password_reset_form.html:17
msgid "Forgot password?"
msgstr "Ξέχασα των κωδικό;"
@@ -1084,6 +1200,14 @@ msgstr ""
"Ο σύνδεσμος για την επαναφορά του κωδικού ήταν άκυρος, πιθανότατα γιατί είχε "
"είδη χρησιμοποιηθεί. Παρακαλώ ζητήστε μια νέα επαναφορά κωδικού."
+#: templates/registration/password_reset_confirm_code.html:20
+msgid "Enter the code you've just received by SMS"
+msgstr ""
+
+#: templates/registration/password_reset_confirm_code.html:27
+msgid "Resend code"
+msgstr ""
+
#: templates/registration/password_reset_done.html:7
msgid ""
"We've emailed you instructions for setting your password, if an account "
@@ -1118,15 +1242,14 @@ msgstr ""
msgid "Sincerely, The Modoboa Team."
msgstr "Με εκτίμηση, Η ομάδα του Modaboa."
+#: templates/registration/password_reset_form.html:24
+msgid "Please fill-in your primary email address"
+msgstr ""
+
#: templates/registration/password_reset_subject.txt:3
msgid "Modoboa password reset"
msgstr "Ο κωδικός του Μοdaboa επαναφέρθηκε"
-#, fuzzy
-#~| msgid "Enable communication"
-#~ msgid "Enable LDAP synchronization"
-#~ msgstr "Ενεργοποίηση επικοινωνίας"
-
#~ msgid "md5crypt (weak)"
#~ msgstr "md5crypt (αδύναμο)"
diff --git a/modoboa/locale/el_GR/LC_MESSAGES/djangojs.po b/modoboa/locale/el_GR/LC_MESSAGES/djangojs.po
index 69fa971da..bc855f88c 100644
--- a/modoboa/locale/el_GR/LC_MESSAGES/djangojs.po
+++ b/modoboa/locale/el_GR/LC_MESSAGES/djangojs.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:
# Giannis Kapetanakis , 2016
# Kostas Moumouris , 2017
@@ -10,14 +10,13 @@ msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-03-09 16:48+0100\n"
-"PO-Revision-Date: 2017-10-05 17:43+0000\n"
-"Last-Translator: Kostas Moumouris \n"
-"Language-Team: Greek (Greece) (http://www.transifex.com/tonio/modoboa/"
-"language/el_GR/)\n"
-"Language: el_GR\n"
+"PO-Revision-Date: 2020-03-09 15:49+0000\n"
+"Last-Translator: Antoine Nguyen \n"
+"Language-Team: Greek (Greece) (http://www.transifex.com/tonio/modoboa/language/el_GR/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Language: el_GR\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: bower_components/jquery-ui/jquery-ui.min.js:8
diff --git a/modoboa/locale/en/LC_MESSAGES/django.po b/modoboa/locale/en/LC_MESSAGES/django.po
index 0fbe1eda0..6fb2f1d25 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: 2020-03-09 16:48+0100\n"
+"POT-Creation-Date: 2020-05-06 13:15+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -17,422 +17,463 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: core/app_settings.py:20
+#: core/app_settings.py:26
msgid "User profile"
msgstr ""
-#: core/app_settings.py:33
+#: core/app_settings.py:39
msgid "Authentication"
msgstr ""
-#: core/app_settings.py:36
+#: core/app_settings.py:42
msgid "Authentication type"
msgstr ""
-#: core/app_settings.py:37
+#: core/app_settings.py:43
msgid "Local"
msgstr ""
-#: core/app_settings.py:40
+#: core/app_settings.py:46
msgid "The backend used for authentication"
msgstr ""
-#: core/app_settings.py:45
+#: core/app_settings.py:51
msgid "Default password scheme"
msgstr ""
-#: core/app_settings.py:50
+#: core/app_settings.py:56
msgid "Scheme used to crypt mailbox passwords"
msgstr ""
-#: core/app_settings.py:54
+#: core/app_settings.py:60
msgid "Rounds"
msgstr ""
-#: core/app_settings.py:57
+#: core/app_settings.py:63
msgid ""
"Number of rounds to use (only used by sha256crypt and sha512crypt). Must be "
"between 1000 and 999999999, inclusive."
msgstr ""
-#: core/app_settings.py:63
+#: core/app_settings.py:69
msgid "Update password scheme at login"
msgstr ""
-#: core/app_settings.py:66
+#: core/app_settings.py:72
msgid "Update user password at login to use the default password scheme"
msgstr ""
-#: core/app_settings.py:71
+#: core/app_settings.py:77
msgid "Default password"
msgstr ""
-#: core/app_settings.py:74
+#: core/app_settings.py:80
msgid "Default password for automatically created accounts."
msgstr ""
-#: core/app_settings.py:78
+#: core/app_settings.py:84
msgid "Random password length"
msgstr ""
-#: core/app_settings.py:82
+#: core/app_settings.py:88
msgid "Length of randomly generated passwords."
msgstr ""
-#: core/app_settings.py:86
+#: core/app_settings.py:92
msgid "Update password service URL"
msgstr ""
-#: core/app_settings.py:90
+#: core/app_settings.py:96
msgid ""
"The URL of an external page where users will be able to update their "
"password. It applies only to non local users, ie. those automatically "
"created after a successful external authentication (LDAP, SMTP)."
msgstr ""
-#: core/app_settings.py:98
+#: core/app_settings.py:104
+msgid "Password recovery announcement"
+msgstr ""
+
+#: core/app_settings.py:109
+msgid "A temporary message that will be displayed on the reset password page."
+msgstr ""
+
+#: core/app_settings.py:115
+msgid "Enable password recovery by SMS"
+msgstr ""
+
+#: core/app_settings.py:118
+msgid "Enable password recovery by SMS for users who filled a phone number."
+msgstr ""
+
+#: core/app_settings.py:124
+msgid "SMS provider"
+msgstr ""
+
+#: core/app_settings.py:127
+msgid "Choose a provider to send password recovery SMS"
+msgstr ""
+
+#: core/app_settings.py:133
msgid "LDAP settings"
msgstr ""
-#: core/app_settings.py:101
+#: core/app_settings.py:136
msgid "Server address"
msgstr ""
-#: core/app_settings.py:104
+#: core/app_settings.py:139
msgid "The IP address or the DNS name of the LDAP server"
msgstr ""
-#: core/app_settings.py:108
+#: core/app_settings.py:143
msgid "Server port"
msgstr ""
-#: core/app_settings.py:110
+#: core/app_settings.py:145
msgid "The TCP port number used by the LDAP server"
msgstr ""
-#: core/app_settings.py:114
+#: core/app_settings.py:149
msgid "Enable secondary server (fallback)"
msgstr ""
-#: core/app_settings.py:117
+#: core/app_settings.py:152
msgid ""
"Enable a secondary LDAP server which will be used if the primary one fails"
msgstr ""
-#: core/app_settings.py:123
+#: core/app_settings.py:158
msgid "Secondary server address"
msgstr ""
-#: core/app_settings.py:126
+#: core/app_settings.py:161
msgid "The IP address or the DNS name of the seondary LDAP server"
msgstr ""
-#: core/app_settings.py:130
+#: core/app_settings.py:165
msgid "Secondary server port"
msgstr ""
-#: core/app_settings.py:133
+#: core/app_settings.py:168
msgid "The TCP port number used by the LDAP secondary server"
msgstr ""
-#: core/app_settings.py:137
+#: core/app_settings.py:172
msgid "Use a secured connection"
msgstr ""
-#: core/app_settings.py:141
+#: core/app_settings.py:176
msgid "Use an SSL/STARTTLS connection to access the LDAP server"
msgstr ""
-#: core/app_settings.py:145
+#: core/app_settings.py:180
msgid "Active Directory"
msgstr ""
-#: core/app_settings.py:148
+#: core/app_settings.py:183
msgid "Tell if the LDAP server is an Active Directory one"
msgstr ""
-#: core/app_settings.py:152
+#: core/app_settings.py:187
msgid "Administrator groups"
msgstr ""
-#: core/app_settings.py:155
+#: core/app_settings.py:190
msgid ""
"Members of those LDAP Posix groups will be created as domain administrators. "
"Use ';' characters to separate groups."
msgstr ""
-#: core/app_settings.py:162
+#: core/app_settings.py:197
msgid "Group type"
msgstr ""
-#: core/app_settings.py:166
+#: core/app_settings.py:201
msgid "The LDAP group type to use with your directory."
msgstr ""
-#: core/app_settings.py:171
+#: core/app_settings.py:206
msgid "Groups search base"
msgstr ""
-#: core/app_settings.py:174
+#: core/app_settings.py:209
msgid "The distinguished name of the search base used to find groups"
msgstr ""
-#: core/app_settings.py:180
+#: core/app_settings.py:215
msgid "Password attribute"
msgstr ""
-#: core/app_settings.py:182
+#: core/app_settings.py:217
msgid "The attribute used to store user passwords"
msgstr ""
-#: core/app_settings.py:187
+#: core/app_settings.py:222
msgid "LDAP authentication settings"
msgstr ""
-#: core/app_settings.py:190
+#: core/app_settings.py:225
msgid "Authentication method"
msgstr ""
-#: core/app_settings.py:191
+#: core/app_settings.py:226
msgid "Search and bind"
msgstr ""
-#: core/app_settings.py:192
+#: core/app_settings.py:227
msgid "Direct bind"
msgstr ""
-#: core/app_settings.py:194
+#: core/app_settings.py:229
msgid "Choose the authentication method to use"
msgstr ""
-#: core/app_settings.py:198 core/app_settings.py:252
+#: core/app_settings.py:233 core/app_settings.py:287
msgid "Bind DN"
msgstr ""
-#: core/app_settings.py:201 core/app_settings.py:255
+#: core/app_settings.py:236 core/app_settings.py:290
msgid ""
"The distinguished name to use when binding to the LDAP server. Leave empty "
"for an anonymous bind"
msgstr ""
-#: core/app_settings.py:208 core/app_settings.py:262
+#: core/app_settings.py:243 core/app_settings.py:297
msgid "Bind password"
msgstr ""
-#: core/app_settings.py:211 core/app_settings.py:265
+#: core/app_settings.py:246 core/app_settings.py:300
msgid "The password to use when binding to the LDAP server (with 'Bind DN')"
msgstr ""
-#: core/app_settings.py:219 core/app_settings.py:311
+#: core/app_settings.py:254 core/app_settings.py:346
msgid "Users search base"
msgstr ""
-#: core/app_settings.py:222 core/app_settings.py:314
+#: core/app_settings.py:257 core/app_settings.py:349
msgid "The distinguished name of the search base used to find users"
msgstr ""
-#: core/app_settings.py:228 core/app_settings.py:320
+#: core/app_settings.py:263 core/app_settings.py:355
msgid "Search filter"
msgstr ""
-#: core/app_settings.py:231 core/app_settings.py:323
+#: core/app_settings.py:266 core/app_settings.py:358
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:238
+#: core/app_settings.py:273
msgid "User DN template"
msgstr ""
-#: core/app_settings.py:241
+#: core/app_settings.py:276
#, 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:249
+#: core/app_settings.py:284
msgid "LDAP synchronization settings"
msgstr ""
-#: core/app_settings.py:273
+#: core/app_settings.py:308
msgid "Enable export to LDAP"
msgstr ""
-#: core/app_settings.py:276
+#: core/app_settings.py:311
msgid ""
"Enable automatic synchronization between local database and LDAP directory"
msgstr ""
-#: core/app_settings.py:282
+#: core/app_settings.py:317
msgid "Delete remote LDAP account when local account is deleted"
msgstr ""
-#: core/app_settings.py:286
+#: core/app_settings.py:321
msgid ""
"Delete remote LDAP account when local account is deleted, otherwise it will "
"be disabled."
msgstr ""
-#: core/app_settings.py:292
+#: core/app_settings.py:327
msgid "Account DN template"
msgstr ""
-#: core/app_settings.py:295
+#: core/app_settings.py:330
#, python-format
msgid ""
"The template used to construct an account's DN. It should contain one "
"placeholder (ie. %(user)s)"
msgstr ""
-#: core/app_settings.py:302
+#: core/app_settings.py:337
msgid "Enable import from LDAP"
msgstr ""
-#: core/app_settings.py:305
+#: core/app_settings.py:340
msgid "Enable account synchronization from LDAP directory to local database"
msgstr ""
-#: core/app_settings.py:330
+#: core/app_settings.py:365
msgid "Username attribute"
msgstr ""
-#: core/app_settings.py:333
+#: core/app_settings.py:368
msgid "The name of the LDAP attribute where the username can be found."
msgstr ""
-#: core/app_settings.py:337 core/templates/core/dashboard.html:5
-msgid "Dashboard"
+#: core/app_settings.py:373
+msgid "Enable Dovecot LDAP sync"
msgstr ""
-#: core/app_settings.py:340
-msgid "Custom RSS feed"
-msgstr ""
-
-#: core/app_settings.py:343
-msgid "Display custom RSS feed to resellers and domain administrators"
-msgstr ""
-
-#: core/app_settings.py:348
-msgid "Hide features widget"
-msgstr ""
-
-#: core/app_settings.py:351
-msgid "Hide features widget for resellers and domain administrators"
-msgstr ""
-
-#: core/app_settings.py:355
-msgid "Notifications"
-msgstr ""
-
-#: core/app_settings.py:358
-msgid "Sender address"
-msgstr ""
-
-#: core/app_settings.py:361
-msgid "Email address used to send notifications."
-msgstr ""
-
-#: core/app_settings.py:365
-msgid "Public API"
-msgstr ""
-
-#: core/app_settings.py:368
-msgid "Enable communication"
-msgstr ""
-
-#: core/app_settings.py:371
-msgid "Enable communication with Modoboa public API"
-msgstr ""
-
-#: core/app_settings.py:375
-msgid "Check new versions"
-msgstr ""
-
-#: core/app_settings.py:378
-msgid "Automatically checks if a newer version is available"
+#: core/app_settings.py:376
+msgid "LDAP authentication settings will be applied to Dovecot configuration."
msgstr ""
#: core/app_settings.py:382
-msgid "Send an email when new versions are found"
+msgid "Dovecot LDAP config file"
msgstr ""
-#: core/app_settings.py:385
-msgid "Send an email to notify admins about new versions"
+#: core/app_settings.py:386
+msgid ""
+"Location of the configuration file which contains Dovecot LDAP settings."
msgstr ""
-#: core/app_settings.py:389
-msgid "Recipient"
+#: core/app_settings.py:391 core/templates/core/dashboard.html:5
+msgid "Dashboard"
msgstr ""
-#: core/app_settings.py:392
-msgid "Recipient of new versions notification emails."
+#: core/app_settings.py:394
+msgid "Custom RSS feed"
msgstr ""
#: core/app_settings.py:397
+msgid "Display custom RSS feed to resellers and domain administrators"
+msgstr ""
+
+#: core/app_settings.py:402
+msgid "Hide features widget"
+msgstr ""
+
+#: core/app_settings.py:405
+msgid "Hide features widget for resellers and domain administrators"
+msgstr ""
+
+#: core/app_settings.py:409
+msgid "Notifications"
+msgstr ""
+
+#: core/app_settings.py:412
+msgid "Sender address"
+msgstr ""
+
+#: core/app_settings.py:415
+msgid "Email address used to send notifications."
+msgstr ""
+
+#: core/app_settings.py:419
+msgid "Public API"
+msgstr ""
+
+#: core/app_settings.py:422
+msgid "Enable communication"
+msgstr ""
+
+#: core/app_settings.py:425
+msgid "Enable communication with Modoboa public API"
+msgstr ""
+
+#: core/app_settings.py:429
+msgid "Check new versions"
+msgstr ""
+
+#: core/app_settings.py:432
+msgid "Automatically checks if a newer version is available"
+msgstr ""
+
+#: core/app_settings.py:436
+msgid "Send an email when new versions are found"
+msgstr ""
+
+#: core/app_settings.py:439
+msgid "Send an email to notify admins about new versions"
+msgstr ""
+
+#: core/app_settings.py:443
+msgid "Recipient"
+msgstr ""
+
+#: core/app_settings.py:446
+msgid "Recipient of new versions notification emails."
+msgstr ""
+
+#: core/app_settings.py:451
msgid "Send statistics"
msgstr ""
-#: core/app_settings.py:400
+#: core/app_settings.py:454
msgid "Send statistics to Modoboa public API (counters and used extensions)"
msgstr ""
-#: core/app_settings.py:404
+#: core/app_settings.py:458
msgid "Miscellaneous"
msgstr ""
-#: core/app_settings.py:407
+#: core/app_settings.py:461
msgid "Inactive account threshold"
msgstr ""
-#: core/app_settings.py:410
+#: core/app_settings.py:464
msgid ""
"An account with a last login date greater than this threshold (in days) will "
"be considered as inactive"
msgstr ""
-#: core/app_settings.py:416
+#: core/app_settings.py:470
msgid "Top notifications check interval"
msgstr ""
-#: core/app_settings.py:419
+#: core/app_settings.py:473
msgid "Interval between two top notification checks (in seconds)"
msgstr ""
-#: core/app_settings.py:424
+#: core/app_settings.py:478
msgid "Maximum log record age"
msgstr ""
-#: core/app_settings.py:426
+#: core/app_settings.py:480
msgid "The maximum age in days of a log record"
msgstr ""
-#: core/app_settings.py:430
+#: core/app_settings.py:484
msgid "Items per page"
msgstr ""
-#: core/app_settings.py:432
+#: core/app_settings.py:486
msgid "Number of displayed items per page"
msgstr ""
-#: core/app_settings.py:436
+#: core/app_settings.py:490
msgid "Default top redirection"
msgstr ""
-#: core/app_settings.py:440
+#: core/app_settings.py:494
msgid "The default redirection used when no application is specified"
msgstr ""
-#: core/app_settings.py:478 core/app_settings.py:486
+#: core/app_settings.py:548 core/app_settings.py:556 core/app_settings.py:564
msgid "Invalid syntax"
msgstr ""
-#: core/app_settings.py:492
+#: core/app_settings.py:570
msgid "Invalid rounds number"
msgstr ""
-#: core/app_settings.py:519
+#: core/app_settings.py:595 core/app_settings.py:597 core/app_settings.py:608
msgid "This field is required"
msgstr ""
@@ -451,58 +492,74 @@ msgstr ""
msgid "Set `USE_TZ = True` in settings.py"
msgstr ""
-#: core/constants.py:5
+#: core/constants.py:6
msgid "Simple user"
msgstr ""
-#: core/constants.py:6
+#: core/constants.py:7
msgid "Domain administrator"
msgstr ""
-#: core/constants.py:7
+#: core/constants.py:8
msgid "Reseller"
msgstr ""
-#: core/constants.py:8
+#: core/constants.py:9
msgid "Super administrator"
msgstr ""
-#: core/constants.py:51 lib/form_utils.py:389
+#: core/constants.py:52 lib/form_utils.py:389
msgid "No"
msgstr ""
-#: core/forms.py:18
+#: core/constants.py:102
+msgid "Choose a provider"
+msgstr ""
+
+#: core/constants.py:107
+msgid "Dummy"
+msgstr ""
+
+#: core/forms.py:21
msgid "Username"
msgstr ""
-#: core/forms.py:22
+#: core/forms.py:25
msgid "Password"
msgstr ""
-#: core/forms.py:35
+#: core/forms.py:38
msgid "Old password"
msgstr ""
-#: core/forms.py:39
+#: core/forms.py:42
msgid "New password"
msgstr ""
-#: core/forms.py:43
+#: core/forms.py:46
msgid "Confirmation"
msgstr ""
-#: core/forms.py:71
+#: core/forms.py:74
msgid "Old password mismatchs"
msgstr ""
-#: core/forms.py:80
+#: core/forms.py:83
msgid "Passwords mismatch"
msgstr ""
-#: core/forms.py:100
+#: core/forms.py:103
msgid "Enable API access"
msgstr ""
+#: core/forms.py:137
+msgid "Verification code"
+msgstr ""
+
+#: core/forms.py:148
+msgid "Invalid code"
+msgstr ""
+
#: core/handlers.py:36
msgid "added"
msgstr ""
@@ -545,64 +602,64 @@ msgstr ""
msgid "[modoboa] Update(s) available"
msgstr ""
-#: core/models.py:53
+#: core/models.py:55
msgid "Allow mailboxes access"
msgstr ""
-#: core/models.py:55
+#: core/models.py:57
msgid "Allow this administrator to access user mailboxes"
msgstr ""
-#: core/models.py:58
+#: core/models.py:60
msgid "password"
msgstr ""
-#: core/models.py:61
+#: core/models.py:63
msgid "language"
msgstr ""
-#: core/models.py:64
+#: core/models.py:66
msgid "Prefered language to display pages."
msgstr ""
-#: core/models.py:68
+#: core/models.py:70
msgid "Phone number"
msgstr ""
-#: core/models.py:70
+#: core/models.py:72
msgid "Secondary email"
msgstr ""
-#: core/models.py:73
+#: core/models.py:75
msgid "An alternative e-mail address, can be used for recovery needs."
msgstr ""
-#: core/models.py:124
+#: core/models.py:126
msgid "Failed to update password: LDAP module not installed"
msgstr ""
-#: core/models.py:153
+#: core/models.py:155
msgid "account"
msgstr ""
-#: core/models.py:280
+#: core/models.py:282
msgid "Unknown"
msgstr ""
-#: core/models.py:314
+#: core/models.py:316
msgid "Invalid line"
msgstr ""
-#: core/models.py:322
+#: core/models.py:324
msgid "You can't import an account with a role greater than yours"
msgstr ""
-#: core/models.py:337
+#: core/models.py:339
#, python-format
msgid "The simple user '%s' must have a valid email address"
msgstr ""
-#: core/models.py:342
+#: core/models.py:344
#, python-format
msgid "username and email fields must not differ for '%s'"
msgstr ""
@@ -635,6 +692,50 @@ msgstr[1] ""
msgid "Your password must contain a combination of different character types."
msgstr ""
+#: core/sms_backends/ovh.py:19
+msgid "API endpoint"
+msgstr ""
+
+#: core/sms_backends/ovh.py:22
+msgid "OVH Europe"
+msgstr ""
+
+#: core/sms_backends/ovh.py:23
+msgid "OVH US"
+msgstr ""
+
+#: core/sms_backends/ovh.py:24
+msgid "OVH North-America"
+msgstr ""
+
+#: core/sms_backends/ovh.py:25
+msgid "So you Start Europe"
+msgstr ""
+
+#: core/sms_backends/ovh.py:26
+msgid "So you Start North America"
+msgstr ""
+
+#: core/sms_backends/ovh.py:27
+msgid "Kimsufi Europe"
+msgstr ""
+
+#: core/sms_backends/ovh.py:28
+msgid "Kimsufi North America"
+msgstr ""
+
+#: core/sms_backends/ovh.py:35
+msgid "Application key"
+msgstr ""
+
+#: core/sms_backends/ovh.py:42
+msgid "Application secret"
+msgstr ""
+
+#: core/sms_backends/ovh.py:50
+msgid "Consumer key"
+msgstr ""
+
#: core/templates/core/_current_features.html:6
msgid "Features looking for sponsoring"
msgstr ""
@@ -839,29 +940,33 @@ msgstr ""
msgid "Parameters saved"
msgstr ""
-#: core/views/auth.py:46
+#: core/views/auth.py:59
#, python-format
msgid "Password scheme mismatch. Updating %s password"
msgstr ""
-#: core/views/auth.py:53
+#: core/views/auth.py:66
#, python-format
msgid "Password hash parameter missmatch. Updating %s password"
msgstr ""
-#: core/views/auth.py:69
+#: core/views/auth.py:82
#, python-format
msgid "User '%s' successfully logged in"
msgstr ""
-#: core/views/auth.py:77
+#: core/views/auth.py:90
msgid "Your username and password didn't match. Please try again."
msgstr ""
-#: core/views/auth.py:112
+#: core/views/auth.py:125
msgid "User '{}' successfully logged out"
msgstr ""
+#: core/views/auth.py:170 core/views/auth.py:225
+msgid "Please use the following code to recover your Modoboa password: {}"
+msgstr ""
+
#: core/views/user.py:53
msgid "Profile updated"
msgstr ""
@@ -901,7 +1006,8 @@ msgid "Enter a valid email address."
msgstr ""
#: lib/form_utils.py:77 templates/registration/password_reset_confirm.html:12
-#: templates/registration/password_reset_form.html:11
+#: templates/registration/password_reset_confirm_code.html:25
+#: templates/registration/password_reset_form.html:29
msgid "Submit"
msgstr ""
@@ -988,7 +1094,7 @@ msgid "Log in"
msgstr ""
#: templates/registration/login.html:24
-#: templates/registration/password_reset_form.html:6
+#: templates/registration/password_reset_form.html:17
msgid "Forgot password?"
msgstr ""
@@ -1009,6 +1115,14 @@ msgid ""
"used. Please request a new password reset."
msgstr ""
+#: templates/registration/password_reset_confirm_code.html:20
+msgid "Enter the code you've just received by SMS"
+msgstr ""
+
+#: templates/registration/password_reset_confirm_code.html:27
+msgid "Resend code"
+msgstr ""
+
#: templates/registration/password_reset_done.html:7
msgid ""
"We've emailed you instructions for setting your password, if an account "
@@ -1034,6 +1148,10 @@ msgstr ""
msgid "Sincerely, The Modoboa Team."
msgstr ""
+#: templates/registration/password_reset_form.html:24
+msgid "Please fill-in your primary email address"
+msgstr ""
+
#: templates/registration/password_reset_subject.txt:3
msgid "Modoboa password reset"
msgstr ""
diff --git a/modoboa/locale/es/LC_MESSAGES/django.po b/modoboa/locale/es/LC_MESSAGES/django.po
index 9088f370c..06da261d6 100644
--- a/modoboa/locale/es/LC_MESSAGES/django.po
+++ b/modoboa/locale/es/LC_MESSAGES/django.po
@@ -1,12 +1,13 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
-#
+#
# Translators:
# Adrian Araujo , 2016
-# carlos araya , 2017
+# Carlos Araya , 2017
# Enrique Garcia , 2016
# Evilham , 2017
+# Luis Fajardo López , 2018
# Martí Cardús , 2017
# Martin Acosta , 2017
# Pedro Gracia , 2011-2013
@@ -15,481 +16,473 @@ msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-03-09 16:48+0100\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/"
-"es/)\n"
-"Language: es\n"
+"POT-Creation-Date: 2020-05-06 13:15+0200\n"
+"PO-Revision-Date: 2020-05-06 11:16+0000\n"
+"Last-Translator: Antoine Nguyen \n"
+"Language-Team: Spanish (http://www.transifex.com/tonio/modoboa/language/es/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Language: es\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: core/app_settings.py:20
+#: core/app_settings.py:26
msgid "User profile"
msgstr "Perfil de usuario"
-#: core/app_settings.py:33
+#: core/app_settings.py:39
msgid "Authentication"
msgstr "Autenticación"
-#: core/app_settings.py:36
+#: core/app_settings.py:42
msgid "Authentication type"
msgstr "Tipo de autenticación"
-#: core/app_settings.py:37
+#: core/app_settings.py:43
msgid "Local"
msgstr "Local"
-#: core/app_settings.py:40
+#: core/app_settings.py:46
msgid "The backend used for authentication"
msgstr "El sistema usado para autenticación"
-#: core/app_settings.py:45
+#: core/app_settings.py:51
msgid "Default password scheme"
msgstr "Esquema de contraseña por defecto"
-#: core/app_settings.py:50
+#: core/app_settings.py:56
msgid "Scheme used to crypt mailbox passwords"
msgstr "Esquema usado para cifrar las contraseñas del mailbox"
-#: core/app_settings.py:54
+#: core/app_settings.py:60
msgid "Rounds"
msgstr "Rondas"
-#: core/app_settings.py:57
+#: core/app_settings.py:63
msgid ""
"Number of rounds to use (only used by sha256crypt and sha512crypt). Must be "
"between 1000 and 999999999, inclusive."
-msgstr ""
-"Número de rondas a usar (sólo utilizado por sha256crypr y sha512crypt). Debe "
-"estar entre 1000 y 999999999, incluído."
+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:63
-#, fuzzy
-#| msgid "Default password scheme"
+#: core/app_settings.py:69
msgid "Update password scheme at login"
-msgstr "Esquema de contraseña por defecto"
-
-#: core/app_settings.py:66
-msgid "Update user password at login to use the default password scheme"
msgstr ""
-#: core/app_settings.py:71
+#: core/app_settings.py:72
+msgid "Update user password at login to use the default password scheme"
+msgstr "Forzar actualización de contraseña al acceder para usar el esquema de contraseñas"
+
+#: core/app_settings.py:77
msgid "Default password"
msgstr "Contraseña por defecto"
-#: core/app_settings.py:74
+#: core/app_settings.py:80
msgid "Default password for automatically created accounts."
msgstr "Contraseña por defecto para cuentas creadas automáticamente."
-#: core/app_settings.py:78
-#, fuzzy
-#| msgid "Modoboa password reset"
+#: core/app_settings.py:84
msgid "Random password length"
-msgstr "Restauración de contraseña de Modoboa"
+msgstr "Longitud de contraseña aleatoria"
-#: core/app_settings.py:82
+#: core/app_settings.py:88
msgid "Length of randomly generated passwords."
+msgstr "Longitud de las contraseñas generadas aleatoriamente."
+
+#: core/app_settings.py:92
+msgid "Update password service URL"
msgstr ""
-#: core/app_settings.py:86
-#, fuzzy
-#| msgid "Default password scheme"
-msgid "Update password service URL"
-msgstr "Esquema de contraseña por defecto"
-
-#: core/app_settings.py:90
+#: core/app_settings.py:96
msgid ""
"The URL of an external page where users will be able to update their "
"password. It applies only to non local users, ie. those automatically "
"created after a successful external authentication (LDAP, SMTP)."
msgstr ""
-#: core/app_settings.py:98
+#: core/app_settings.py:104
+msgid "Password recovery announcement"
+msgstr ""
+
+#: core/app_settings.py:109
+msgid "A temporary message that will be displayed on the reset password page."
+msgstr ""
+
+#: core/app_settings.py:115
+msgid "Enable password recovery by SMS"
+msgstr ""
+
+#: core/app_settings.py:118
+msgid "Enable password recovery by SMS for users who filled a phone number."
+msgstr ""
+
+#: core/app_settings.py:124
+msgid "SMS provider"
+msgstr ""
+
+#: core/app_settings.py:127
+msgid "Choose a provider to send password recovery SMS"
+msgstr ""
+
+#: core/app_settings.py:133
msgid "LDAP settings"
msgstr "Configuración de LDAP"
-#: core/app_settings.py:101
+#: core/app_settings.py:136
msgid "Server address"
msgstr "Dirección del servidor"
-#: core/app_settings.py:104
+#: core/app_settings.py:139
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:108
+#: core/app_settings.py:143
msgid "Server port"
msgstr "Puerto del servidor"
-#: core/app_settings.py:110
+#: core/app_settings.py:145
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:114
+#: core/app_settings.py:149
msgid "Enable secondary server (fallback)"
msgstr ""
-#: core/app_settings.py:117
+#: core/app_settings.py:152
msgid ""
"Enable a secondary LDAP server which will be used if the primary one fails"
msgstr ""
-#: core/app_settings.py:123
-#, fuzzy
-#| msgid "Server address"
+#: core/app_settings.py:158
msgid "Secondary server address"
-msgstr "Dirección del servidor"
+msgstr ""
-#: core/app_settings.py:126
-#, fuzzy
-#| msgid "The IP address or the DNS name of the LDAP server"
+#: core/app_settings.py:161
msgid "The IP address or the DNS name of the seondary LDAP server"
-msgstr "La dirección IP del servidor de nombres (DNS) del servidor LDAP"
+msgstr ""
-#: core/app_settings.py:130
-#, fuzzy
-#| msgid "Server port"
+#: core/app_settings.py:165
msgid "Secondary server port"
-msgstr "Puerto del servidor"
+msgstr ""
-#: core/app_settings.py:133
-#, fuzzy
-#| msgid "The TCP port number used by the LDAP server"
+#: core/app_settings.py:168
msgid "The TCP port number used by the LDAP secondary server"
-msgstr "Número de puerto TCP usado por el servidor LDAP"
+msgstr ""
-#: core/app_settings.py:137
+#: core/app_settings.py:172
msgid "Use a secured connection"
msgstr "Usa una conexión segura"
-#: core/app_settings.py:141
-#, fuzzy
-#| msgid "Use an SSL/TLS connection to access the LDAP server"
+#: core/app_settings.py:176
msgid "Use an SSL/STARTTLS connection to access the LDAP server"
-msgstr "Usa una conexión SSL/TLS para acceder al servidor LDAP"
+msgstr "Usa una conexión SSL/STARTTLS para acceder al servidor LDAP"
-#: core/app_settings.py:145
+#: core/app_settings.py:180
msgid "Active Directory"
msgstr "Directorio Activo"
-#: core/app_settings.py:148
+#: core/app_settings.py:183
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:152
+#: core/app_settings.py:187
msgid "Administrator groups"
msgstr "Administrador de grupos"
-#: core/app_settings.py:155
+#: core/app_settings.py:190
msgid ""
-"Members of those LDAP Posix groups will be created as domain administrators. "
-"Use ';' characters to separate groups."
-msgstr ""
-"Los miembros de esos grupos Posix LDAP serán creados como administradores de "
-"dominio. Use caracteres \";\" para separar los grupos."
+"Members of those LDAP Posix groups will be created as domain administrators."
+" Use ';' characters to separate groups."
+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:162
+#: core/app_settings.py:197
msgid "Group type"
msgstr "Tipo de grupo"
-#: core/app_settings.py:166
+#: core/app_settings.py:201
msgid "The LDAP group type to use with your directory."
msgstr "El tipo de LDAP para usar en el directorio"
-#: core/app_settings.py:171
+#: core/app_settings.py:206
msgid "Groups search base"
msgstr "Base para la búsqueda de grupos"
-#: core/app_settings.py:174
+#: core/app_settings.py:209
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:180
+#: core/app_settings.py:215
msgid "Password attribute"
msgstr "Atributo de la contraseña"
-#: core/app_settings.py:182
+#: core/app_settings.py:217
msgid "The attribute used to store user passwords"
msgstr "El atributo usado para guardar las contraseñas del usuario"
-#: core/app_settings.py:187
-#, fuzzy
-#| msgid "Authentication method"
+#: core/app_settings.py:222
msgid "LDAP authentication settings"
-msgstr "Método de autenticación"
+msgstr ""
-#: core/app_settings.py:190
+#: core/app_settings.py:225
msgid "Authentication method"
msgstr "Método de autenticación"
-#: core/app_settings.py:191
+#: core/app_settings.py:226
msgid "Search and bind"
msgstr "Buscar y unir"
-#: core/app_settings.py:192
+#: core/app_settings.py:227
msgid "Direct bind"
msgstr "Unión directa"
-#: core/app_settings.py:194
+#: core/app_settings.py:229
msgid "Choose the authentication method to use"
msgstr "Elegir el método de autenticación a usar"
-#: core/app_settings.py:198 core/app_settings.py:252
+#: core/app_settings.py:233 core/app_settings.py:287
msgid "Bind DN"
msgstr "Unir a DN"
-#: core/app_settings.py:201 core/app_settings.py:255
+#: core/app_settings.py:236 core/app_settings.py:290
msgid ""
"The distinguished name to use when binding to the LDAP server. Leave empty "
"for an anonymous bind"
-msgstr ""
-"El nombre distinguido a usar cuando nos unimos al servidor LDAP. Dejar vació "
-"para una unión anónima"
+msgstr "El nombre distinguido a usar cuando nos unimos al servidor LDAP. Dejar vació para una unión anónima"
-#: core/app_settings.py:208 core/app_settings.py:262
+#: core/app_settings.py:243 core/app_settings.py:297
msgid "Bind password"
msgstr "Unir contraseña"
-#: core/app_settings.py:211 core/app_settings.py:265
+#: core/app_settings.py:246 core/app_settings.py:300
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')"
+msgstr "La contraseña a usar cuando nos unimos al servidor LDAP (con 'Unir a DN')"
-#: core/app_settings.py:219 core/app_settings.py:311
+#: core/app_settings.py:254 core/app_settings.py:346
msgid "Users search base"
msgstr "Base para la búsqueda de usuarios"
-#: core/app_settings.py:222 core/app_settings.py:314
+#: core/app_settings.py:257 core/app_settings.py:349
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"
+msgstr "El distinguido nombre de la búsqueda base usada para encontrar usuarios"
-#: core/app_settings.py:228 core/app_settings.py:320
+#: core/app_settings.py:263 core/app_settings.py:355
msgid "Search filter"
msgstr "Filtro de búsqueda"
-#: core/app_settings.py:231 core/app_settings.py:323
+#: core/app_settings.py:266 core/app_settings.py:358
msgid ""
"An optional filter string (e.g. '(objectClass=person)'). In order to be "
"valid, it must be enclosed in parentheses."
-msgstr ""
-"Una cadena de filtro opcional (p.e. '(objectClass=person)'). Para que sea "
-"válido tiene que ser encerrado entre paréntesis."
+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:238
+#: core/app_settings.py:273
msgid "User DN template"
msgstr "Plantilla DN del usuario"
-#: core/app_settings.py:241
+#: core/app_settings.py:276
#, python-format
msgid ""
"The template used to construct a user's DN. It should contain one "
"placeholder (ie. %(user)s)"
-msgstr ""
-"La plantilla usada para contriunr un DN de usuario. Debería contener una "
-"cadena reemplazables (p.e. %(user)s)"
+msgstr "La plantilla usada para contriunr un DN de usuario. Debería contener una cadena reemplazables (p.e. %(user)s)"
-#: core/app_settings.py:249
-#, fuzzy
-#| msgid "LDAP settings"
+#: core/app_settings.py:284
msgid "LDAP synchronization settings"
-msgstr "Configuración de LDAP"
+msgstr ""
-#: core/app_settings.py:273
+#: core/app_settings.py:308
msgid "Enable export to LDAP"
msgstr ""
-#: core/app_settings.py:276
+#: core/app_settings.py:311
msgid ""
"Enable automatic synchronization between local database and LDAP directory"
msgstr ""
-#: core/app_settings.py:282
+#: core/app_settings.py:317
msgid "Delete remote LDAP account when local account is deleted"
msgstr ""
-#: core/app_settings.py:286
+#: core/app_settings.py:321
msgid ""
"Delete remote LDAP account when local account is deleted, otherwise it will "
"be disabled."
msgstr ""
-#: core/app_settings.py:292
-#, fuzzy
-#| msgid "User DN template"
+#: core/app_settings.py:327
msgid "Account DN template"
-msgstr "Plantilla DN del usuario"
+msgstr ""
-#: core/app_settings.py:295
-#, fuzzy, python-format
-#| msgid ""
-#| "The template used to construct a user's DN. It should contain one "
-#| "placeholder (ie. %(user)s)"
+#: core/app_settings.py:330
+#, python-format
msgid ""
"The template used to construct an account's DN. It should contain one "
"placeholder (ie. %(user)s)"
msgstr ""
-"La plantilla usada para contriunr un DN de usuario. Debería contener una "
-"cadena reemplazables (p.e. %(user)s)"
-#: core/app_settings.py:302
+#: core/app_settings.py:337
msgid "Enable import from LDAP"
msgstr ""
-#: core/app_settings.py:305
+#: core/app_settings.py:340
msgid "Enable account synchronization from LDAP directory to local database"
msgstr ""
-#: core/app_settings.py:330
-#, fuzzy
-#| msgid "Password attribute"
+#: core/app_settings.py:365
msgid "Username attribute"
-msgstr "Atributo de la contraseña"
+msgstr ""
-#: core/app_settings.py:333
+#: core/app_settings.py:368
msgid "The name of the LDAP attribute where the username can be found."
msgstr ""
-#: core/app_settings.py:337 core/templates/core/dashboard.html:5
+#: core/app_settings.py:373
+msgid "Enable Dovecot LDAP sync"
+msgstr ""
+
+#: core/app_settings.py:376
+msgid "LDAP authentication settings will be applied to Dovecot configuration."
+msgstr ""
+
+#: core/app_settings.py:382
+msgid "Dovecot LDAP config file"
+msgstr ""
+
+#: core/app_settings.py:386
+msgid ""
+"Location of the configuration file which contains Dovecot LDAP settings."
+msgstr ""
+
+#: core/app_settings.py:391 core/templates/core/dashboard.html:5
msgid "Dashboard"
msgstr "Panel de Control"
-#: core/app_settings.py:340
+#: core/app_settings.py:394
msgid "Custom RSS feed"
msgstr "Agregación RSS personalizada"
-#: core/app_settings.py:343
+#: core/app_settings.py:397
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"
+msgstr "Mostrar una fuente de agregación RSS personalizada a revendedores y administradores de dominio"
-#: core/app_settings.py:348
+#: core/app_settings.py:402
msgid "Hide features widget"
msgstr "Ocultar widget de características"
-#: core/app_settings.py:351
+#: core/app_settings.py:405
msgid "Hide features widget for resellers and domain administrators"
-msgstr ""
-"Ocultar el widget de características a revendedores y administradores de "
-"dominio"
+msgstr "Ocultar el widget de características a revendedores y administradores de dominio"
-#: core/app_settings.py:355
+#: core/app_settings.py:409
msgid "Notifications"
msgstr "Notificaciones"
-#: core/app_settings.py:358
+#: core/app_settings.py:412
msgid "Sender address"
msgstr "Dirección del remitente"
-#: core/app_settings.py:361
+#: core/app_settings.py:415
msgid "Email address used to send notifications."
msgstr "Dirección de email usada para mandar notificaciones"
-#: core/app_settings.py:365
+#: core/app_settings.py:419
msgid "Public API"
msgstr "API pública"
-#: core/app_settings.py:368
+#: core/app_settings.py:422
msgid "Enable communication"
msgstr "Establecer comunicación"
-#: core/app_settings.py:371
+#: core/app_settings.py:425
msgid "Enable communication with Modoboa public API"
msgstr "Establecer comunicación con la API publica de Modoboa"
-#: core/app_settings.py:375
+#: core/app_settings.py:429
msgid "Check new versions"
msgstr "Comprobar nuevas versiones"
-#: core/app_settings.py:378
+#: core/app_settings.py:432
msgid "Automatically checks if a newer version is available"
msgstr "Verificar automáticamente si hay una nueva versión disponible"
-#: core/app_settings.py:382
+#: core/app_settings.py:436
msgid "Send an email when new versions are found"
msgstr ""
-#: core/app_settings.py:385
+#: core/app_settings.py:439
msgid "Send an email to notify admins about new versions"
msgstr ""
-#: core/app_settings.py:389
+#: core/app_settings.py:443
msgid "Recipient"
msgstr ""
-#: core/app_settings.py:392
+#: core/app_settings.py:446
msgid "Recipient of new versions notification emails."
msgstr ""
-#: core/app_settings.py:397
+#: core/app_settings.py:451
msgid "Send statistics"
msgstr "Enviar estadísticas"
-#: core/app_settings.py:400
+#: core/app_settings.py:454
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)"
+msgstr "Enviar estadísticas a la API pública de Modoboa (contadores y extensiones usadas)"
-#: core/app_settings.py:404
+#: core/app_settings.py:458
msgid "Miscellaneous"
msgstr "Otros"
-#: core/app_settings.py:407
+#: core/app_settings.py:461
msgid "Inactive account threshold"
-msgstr ""
+msgstr "Límite para cuentas inactivas"
-#: core/app_settings.py:410
+#: core/app_settings.py:464
msgid ""
-"An account with a last login date greater than this threshold (in days) will "
-"be considered as inactive"
-msgstr ""
+"An account with a last login date greater than this threshold (in days) will"
+" be considered as inactive"
+msgstr "Una cuenta inactiva con una fecha de inicio de sesión previa a este límite (en días) se considerará como cuenta inactiva"
-#: core/app_settings.py:416
+#: core/app_settings.py:470
msgid "Top notifications check interval"
msgstr "Intervalo de tiempo para notificaciones superiores"
-#: core/app_settings.py:419
+#: core/app_settings.py:473
msgid "Interval between two top notification checks (in seconds)"
msgstr "Intervalo entre dos notificaciones superiores (en segundos)"
-#: core/app_settings.py:424
+#: core/app_settings.py:478
msgid "Maximum log record age"
msgstr "Máximo tiempo de almacenamiento del log"
-#: core/app_settings.py:426
+#: core/app_settings.py:480
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:430
+#: core/app_settings.py:484
msgid "Items per page"
msgstr "Items por página"
-#: core/app_settings.py:432
+#: core/app_settings.py:486
msgid "Number of displayed items per page"
msgstr "Número de elementos mostrado por página"
-#: core/app_settings.py:436
+#: core/app_settings.py:490
msgid "Default top redirection"
msgstr "Redirección principal por defecto"
-#: core/app_settings.py:440
+#: core/app_settings.py:494
msgid "The default redirection used when no application is specified"
-msgstr ""
-"La redirección que será usada cuando ninguna aplicación sea especificada."
+msgstr "La redirección que será usada cuando ninguna aplicación sea especificada."
-#: core/app_settings.py:478 core/app_settings.py:486
+#: core/app_settings.py:548 core/app_settings.py:556 core/app_settings.py:564
msgid "Invalid syntax"
msgstr "Sintaxis inválida"
-#: core/app_settings.py:492
+#: core/app_settings.py:570
msgid "Invalid rounds number"
msgstr "Número de rondas inváldo"
-#: core/app_settings.py:519
+#: core/app_settings.py:595 core/app_settings.py:597 core/app_settings.py:608
msgid "This field is required"
msgstr "Este campo es obligatorio"
@@ -502,64 +495,80 @@ 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 ""
+msgstr "A fijado USE_TZ como falso, lo que puede llevar a problemas en la transición entre los horarios de verano e invierno (p.ej., que la misma hora exista dos veces debido a cambios del reloj)."
#: core/checks/settings_checks.py:9
msgid "Set `USE_TZ = True` in settings.py"
-msgstr ""
+msgstr "Ajuste `USE_TZ = True` en settings.py"
-#: core/constants.py:5
+#: core/constants.py:6
msgid "Simple user"
msgstr "Usuario normal"
-#: core/constants.py:6
+#: core/constants.py:7
msgid "Domain administrator"
msgstr "Administrador del dominio"
-#: core/constants.py:7
+#: core/constants.py:8
msgid "Reseller"
msgstr "Revendedor"
-#: core/constants.py:8
+#: core/constants.py:9
msgid "Super administrator"
msgstr "Super administrador"
-#: core/constants.py:51 lib/form_utils.py:389
+#: core/constants.py:52 lib/form_utils.py:389
msgid "No"
msgstr "No "
-#: core/forms.py:18
+#: core/constants.py:102
+msgid "Choose a provider"
+msgstr ""
+
+#: core/constants.py:107
+msgid "Dummy"
+msgstr ""
+
+#: core/forms.py:21
msgid "Username"
msgstr "Nombre de usuario"
-#: core/forms.py:22
+#: core/forms.py:25
msgid "Password"
msgstr "Contraseña"
-#: core/forms.py:35
+#: core/forms.py:38
msgid "Old password"
msgstr "Contraseña anterior"
-#: core/forms.py:39
+#: core/forms.py:42
msgid "New password"
msgstr "Nueva contraseña"
-#: core/forms.py:43
+#: core/forms.py:46
msgid "Confirmation"
msgstr "Confirmación"
-#: core/forms.py:71
+#: core/forms.py:74
msgid "Old password mismatchs"
msgstr "La contraseña no concuerda con la anterior"
-#: core/forms.py:80
+#: core/forms.py:83
msgid "Passwords mismatch"
msgstr "Las contraseñas no coinciden"
-#: core/forms.py:100
+#: core/forms.py:103
msgid "Enable API access"
msgstr "Habilitar acceso al API"
+#: core/forms.py:137
+msgid "Verification code"
+msgstr ""
+
+#: core/forms.py:148
+msgid "Invalid code"
+msgstr ""
+
#: core/handlers.py:36
msgid "added"
msgstr "añadido"
@@ -574,10 +583,9 @@ 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:63
-#, fuzzy, python-format
-#| msgid "%(object)s '%(name)s' %(action)s by user %(user)s"
+#, python-format
msgid "%(object)s '%(name)s' %(action)s by "
-msgstr "%(object)s '%(name)s' %(action)s por el usuario %(user)s"
+msgstr "%(object)s '%(name)s' %(action)s por "
#: core/handlers.py:65
msgid "deleted"
@@ -585,11 +593,11 @@ msgstr "eliminado"
#: core/handlers.py:69
msgid "user {}"
-msgstr ""
+msgstr "usuario {}"
#: core/handlers.py:71
msgid "management command"
-msgstr ""
+msgstr "comando de administración"
#: core/handlers.py:95
msgid "You can't delete your own account"
@@ -600,73 +608,70 @@ msgid "One or more updates are available"
msgstr "Una o más actualizaciones están disponibles"
#: core/management/commands/communicate_with_public_api.py:44
-#, fuzzy
-#| msgid "One or more updates are available"
msgid "[modoboa] Update(s) available"
-msgstr "Una o más actualizaciones están disponibles"
+msgstr ""
-#: core/models.py:53
+#: core/models.py:55
msgid "Allow mailboxes access"
msgstr "Permitir acceso al buzón"
-#: core/models.py:55
+#: core/models.py:57
msgid "Allow this administrator to access user mailboxes"
msgstr "Permitir a este administrador acceso al buzon de los usuarios"
-#: core/models.py:58
+#: core/models.py:60
msgid "password"
msgstr "contraseña"
-#: core/models.py:61
+#: core/models.py:63
msgid "language"
msgstr "idioma"
-#: core/models.py:64
+#: core/models.py:66
msgid "Prefered language to display pages."
msgstr "Idioma preferido para mostrar las páginas"
-#: core/models.py:68
+#: core/models.py:70
msgid "Phone number"
msgstr "Numero de telefono "
-#: core/models.py:70
+#: core/models.py:72
msgid "Secondary email"
msgstr "Email secundario"
-#: core/models.py:73
+#: core/models.py:75
msgid "An alternative e-mail address, can be used for recovery needs."
msgstr "Email alternativo, puede ser usado para recuperación."
-#: core/models.py:124
+#: core/models.py:126
msgid "Failed to update password: LDAP module not installed"
msgstr "Falló al actualizar la contraseña: módulo LDAP no instalado"
-#: core/models.py:153
+#: core/models.py:155
msgid "account"
msgstr "cuenta"
-#: core/models.py:280
+#: core/models.py:282
msgid "Unknown"
msgstr "Desconocido"
-#: core/models.py:314
+#: core/models.py:316
msgid "Invalid line"
msgstr "Línea inválida"
-#: core/models.py:322
+#: core/models.py:324
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:337
+#: core/models.py:339
#, 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:342
+#: core/models.py:344
#, 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'"
+msgstr "Los campos de nombre de usuario y de email no deben ser diferentes para '%s'"
#: core/password_validation.py:24
msgid "Password must contain at least {} digit."
@@ -694,8 +699,51 @@ msgstr[1] "La contraseña debe tener al menos {} caracteres especiales."
#: core/password_validation.py:65
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."
+
+#: core/sms_backends/ovh.py:19
+msgid "API endpoint"
+msgstr ""
+
+#: core/sms_backends/ovh.py:22
+msgid "OVH Europe"
+msgstr ""
+
+#: core/sms_backends/ovh.py:23
+msgid "OVH US"
+msgstr ""
+
+#: core/sms_backends/ovh.py:24
+msgid "OVH North-America"
+msgstr ""
+
+#: core/sms_backends/ovh.py:25
+msgid "So you Start Europe"
+msgstr ""
+
+#: core/sms_backends/ovh.py:26
+msgid "So you Start North America"
+msgstr ""
+
+#: core/sms_backends/ovh.py:27
+msgid "Kimsufi Europe"
+msgstr ""
+
+#: core/sms_backends/ovh.py:28
+msgid "Kimsufi North America"
+msgstr ""
+
+#: core/sms_backends/ovh.py:35
+msgid "Application key"
+msgstr ""
+
+#: core/sms_backends/ovh.py:42
+msgid "Application secret"
+msgstr ""
+
+#: core/sms_backends/ovh.py:50
+msgid "Consumer key"
msgstr ""
-"Su contraseña debe contener una combinación de diferentes tipos de carácter."
#: core/templates/core/_current_features.html:6
msgid "Features looking for sponsoring"
@@ -721,9 +769,7 @@ msgstr "Lo más receinte"
msgid ""
"Visit the official "
"weblog for more information."
-msgstr ""
-"Visite el weblog "
-"oficial para más información."
+msgstr "Visite el weblog oficial para más información."
#: core/templates/core/api_access.html:3
msgid "API access"
@@ -736,11 +782,9 @@ msgstr "Controla tu acceso al API de Modoboa"
#: core/templates/core/api_access.html:7
#, python-format
msgid ""
-"A documentation of the API is available here."
-msgstr ""
-"La documentación de la API está disponible aquí."
+"A documentation of the API is available here."
+msgstr "La documentación de la API está disponible aquí."
#: core/templates/core/api_access.html:14
msgid "API access token"
@@ -770,9 +814,7 @@ msgstr "Hay una o más actualizaciones disponibles"
#: core/templates/core/information.html:6
msgid "Check the following list to find the component(s) that can be updated."
-msgstr ""
-"Comprueba la siguiente lista para encontrar los componentes que pueden ser "
-"actualizados."
+msgstr "Comprueba la siguiente lista para encontrar los componentes que pueden ser actualizados."
#: core/templates/core/information.html:10
msgid "Applications"
@@ -832,16 +874,14 @@ msgid "Message"
msgstr "Mensaje"
#: core/templates/core/notifications/update_available.html:3
-#, fuzzy
-#| msgid "One or more updates are available"
msgid ""
"\n"
" The following update is available:\n"
msgid_plural ""
"\n"
" The following updates are available:\n"
-msgstr[0] "Una o más actualizaciones están disponibles"
-msgstr[1] "Una o más actualizaciones están disponibles"
+msgstr[0] ""
+msgstr[1] ""
#: core/templates/core/parameters.html:2 core/templatetags/core_tags.py:71
msgid "Parameters"
@@ -886,10 +926,8 @@ msgid "Update your personal information"
msgstr "Actualizar su información personal"
#: core/templates/core/user_profile.html:13
-#, fuzzy
-#| msgid "Failed to update password: {}"
msgid "Click here to update your password"
-msgstr "No se ha podido actualizar la contraseña: {}"
+msgstr ""
#: core/templatetags/core_tags.py:34
msgid "Modoboa"
@@ -911,31 +949,33 @@ msgstr "El núcleo de Modoboa"
msgid "Parameters saved"
msgstr "Parámetros guardados"
-#: core/views/auth.py:46
+#: core/views/auth.py:59
#, python-format
msgid "Password scheme mismatch. Updating %s password"
-msgstr ""
+msgstr "No se ajusta al esquema de contraseña. Actualizando la contraseña de %s "
-#: core/views/auth.py:53
+#: core/views/auth.py:66
#, python-format
msgid "Password hash parameter missmatch. Updating %s password"
msgstr ""
-#: core/views/auth.py:69
+#: core/views/auth.py:82
#, python-format
msgid "User '%s' successfully logged in"
msgstr "Usuario '%s' ha entrado con éxito"
-#: core/views/auth.py:77
+#: core/views/auth.py:90
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."
+msgstr "Su nombre de usuario y contraseña no concuerdan. Por favor, inténtelo de nuevo."
-#: core/views/auth.py:112
+#: core/views/auth.py:125
msgid "User '{}' successfully logged out"
msgstr "Usuario '{}' ha salido con éxito"
+#: core/views/auth.py:170 core/views/auth.py:225
+msgid "Please use the following code to recover your Modoboa password: {}"
+msgstr ""
+
#: core/views/user.py:53
msgid "Profile updated"
msgstr "Perfil actualizado"
@@ -955,7 +995,7 @@ msgstr "Conexión a la base de datos %s no configurada"
#: lib/email_utils.py:141 lib/email_utils.py:360
msgid "unable to determine encoding of string"
-msgstr ""
+msgstr "No es posible determinar la codificación de la cadena"
#: lib/exceptions.py:67
#, python-format
@@ -975,7 +1015,8 @@ msgid "Enter a valid email address."
msgstr "Intriduzca un email válido"
#: lib/form_utils.py:77 templates/registration/password_reset_confirm.html:12
-#: templates/registration/password_reset_form.html:11
+#: templates/registration/password_reset_confirm_code.html:25
+#: templates/registration/password_reset_form.html:29
msgid "Submit"
msgstr "Enviar"
@@ -1036,8 +1077,9 @@ msgstr "Error:"
msgid "Help:"
msgstr "Ayuda:"
-#: 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 "Cerrar"
@@ -1062,7 +1104,7 @@ msgid "Log in"
msgstr "Entrar"
#: templates/registration/login.html:24
-#: templates/registration/password_reset_form.html:6
+#: templates/registration/password_reset_form.html:17
msgid "Forgot password?"
msgstr "¿Ha olvidado su contraseña?"
@@ -1071,9 +1113,7 @@ msgstr "¿Ha olvidado su contraseña?"
msgid ""
"Your password has been set. You may go ahead and sign "
"in now."
-msgstr ""
-"Ha cambiado su contraseña. Proceda e inicie sesión "
-"ahora."
+msgstr "Ha cambiado su contraseña. Proceda e inicie sesión ahora."
#: templates/registration/password_reset_confirm.html:7
msgid "Change password"
@@ -1083,9 +1123,15 @@ msgstr "Cambiar contraseña"
msgid ""
"The password reset link was invalid, possibly because it has already been "
"used. Please request a new password reset."
+msgstr "El enlace de restauración de contraseña es inválido, tal vez ya fue utilizado. Por favor solicite la restauración de contraseña de nuevo."
+
+#: templates/registration/password_reset_confirm_code.html:20
+msgid "Enter the code you've just received by SMS"
+msgstr ""
+
+#: templates/registration/password_reset_confirm_code.html:27
+msgid "Resend code"
msgstr ""
-"El enlace de restauración de contraseña es inválido, tal vez ya fue "
-"utilizado. Por favor solicite la restauración de contraseña de nuevo."
#: templates/registration/password_reset_done.html:7
msgid ""
@@ -1093,72 +1139,29 @@ 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 ""
-"Si existe una cuenta con el correo electrónico introducido, recibirá en "
-"breves instantes instrucciones via email para cambiar su contraseña."
-"p>
Si no recibe el correo, por favor compruebe que la dirección de correo "
-"electrónico introducida es su dirección principal y revise su directorio de "
-"correo basura.
"
+msgstr "Si existe una cuenta con el correo electrónico introducido, recibirá en breves instantes instrucciones via email para cambiar su contraseña.
Si no recibe el correo, por favor compruebe que la dirección de correo electrónico introducida es su dirección principal y revise su directorio de correo basura.
"
#: 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 ""
-"Para empezar el proceso de restauración de contraseña para su %(username)s "
-"cuenta de Modoboa, haga click en el enlace siguiente:"
+msgstr "Para empezar el proceso de restauración de contraseña para su %(username)s cuenta de Modoboa, haga click en el enlace siguiente:"
#: 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 ""
-"Si no puede hacer click en el enlace anterior, por favor copie y pegue la "
-"URL en una ventana nueva del navegador."
+msgstr "Si no puede hacer click en el enlace anterior, por favor copie y pegue la URL en una ventana nueva del navegador."
#: templates/registration/password_reset_email.html:14
msgid "Sincerely, The Modoboa Team."
msgstr "Saludos cordiales, el equipo de Modoboa."
+#: templates/registration/password_reset_form.html:24
+msgid "Please fill-in your primary email address"
+msgstr ""
+
#: templates/registration/password_reset_subject.txt:3
msgid "Modoboa password reset"
msgstr "Restauración de contraseña de Modoboa"
-
-#, fuzzy
-#~| msgid "Enable communication"
-#~ msgid "Enable LDAP synchronization"
-#~ msgstr "Establecer comunicación"
-
-#~ msgid "md5crypt (weak)"
-#~ msgstr "md5crypt (débil)"
-
-#~ msgid "sha256 (weak)"
-#~ msgstr "sha256 (débil)"
-
-#~ msgid "md5 (weak)"
-#~ msgstr "md5 (débil)"
-
-#~ msgid "crypt (weak)"
-#~ msgstr "crypt (débil)"
-
-#~ msgid "plain (weak)"
-#~ msgstr "plano (débil)"
-
-#~ 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"
-
-#~ msgid "Last name"
-#~ msgstr "Apellido"
-
-#~ msgid "last login"
-#~ msgstr "última entrada"
diff --git a/modoboa/locale/es/LC_MESSAGES/djangojs.po b/modoboa/locale/es/LC_MESSAGES/djangojs.po
index 89b886f18..8745d6e1c 100644
--- a/modoboa/locale/es/LC_MESSAGES/djangojs.po
+++ b/modoboa/locale/es/LC_MESSAGES/djangojs.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:
# Adrian Araujo , 2016
# Pedro Gracia , 2011,2013
@@ -11,14 +11,13 @@ msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-03-09 16:48+0100\n"
-"PO-Revision-Date: 2017-02-20 22:58+0000\n"
-"Last-Translator: samuel santos \n"
-"Language-Team: Spanish (http://www.transifex.com/tonio/modoboa/language/"
-"es/)\n"
-"Language: es\n"
+"PO-Revision-Date: 2020-03-09 15:49+0000\n"
+"Last-Translator: Antoine Nguyen \n"
+"Language-Team: Spanish (http://www.transifex.com/tonio/modoboa/language/es/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Language: es\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: bower_components/jquery-ui/jquery-ui.min.js:8
diff --git a/modoboa/locale/fr/LC_MESSAGES/django.po b/modoboa/locale/fr/LC_MESSAGES/django.po
index 1aa0e8661..b361b4306 100644
--- a/modoboa/locale/fr/LC_MESSAGES/django.po
+++ b/modoboa/locale/fr/LC_MESSAGES/django.po
@@ -1,491 +1,482 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
-#
+#
# Translators:
-# Antoine Nguyen , 2016-2017
+# Antoine Nguyen , 2016-2017,2020
+# Christophe CHAUVET , 2018
+# Jorg722, 2019
msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-03-09 16:48+0100\n"
-"PO-Revision-Date: 2019-05-07 10:54+0200\n"
+"POT-Creation-Date: 2020-05-06 13:15+0200\n"
+"PO-Revision-Date: 2020-05-06 11:19+0000\n"
"Last-Translator: Antoine Nguyen \n"
"Language-Team: French (http://www.transifex.com/tonio/modoboa/language/fr/)\n"
-"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Language: fr\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-#: core/app_settings.py:20
+#: core/app_settings.py:26
msgid "User profile"
msgstr "Profil utilisateur"
-#: core/app_settings.py:33
+#: core/app_settings.py:39
msgid "Authentication"
msgstr "Authentification"
-#: core/app_settings.py:36
+#: core/app_settings.py:42
msgid "Authentication type"
msgstr "Type d'authentification"
-#: core/app_settings.py:37
+#: core/app_settings.py:43
msgid "Local"
msgstr "Locale"
-#: core/app_settings.py:40
+#: core/app_settings.py:46
msgid "The backend used for authentication"
msgstr "Le backend utilisé pour l'authentification"
-#: core/app_settings.py:45
+#: core/app_settings.py:51
msgid "Default password scheme"
msgstr "Méthode de chiffrement par défaut"
-#: core/app_settings.py:50
+#: core/app_settings.py:56
msgid "Scheme used to crypt mailbox passwords"
-msgstr ""
-"Méthode utilisée pour chiffrer les mots de passe des boites aux lettres"
+msgstr "Méthode utilisée pour chiffrer les mots de passe des boites aux lettres"
-#: core/app_settings.py:54
+#: core/app_settings.py:60
msgid "Rounds"
msgstr "Tours"
-#: core/app_settings.py:57
+#: core/app_settings.py:63
msgid ""
"Number of rounds to use (only used by sha256crypt and sha512crypt). Must be "
"between 1000 and 999999999, inclusive."
-msgstr ""
-"Nombre de tours à utiliser (sha256crypt et sha512crypt uniquement). Doit "
-"être compris entre 1000 et 999999999 inclue."
+msgstr "Nombre de tours à utiliser (sha256crypt et sha512crypt uniquement). Doit être compris entre 1000 et 999999999 inclue."
-#: core/app_settings.py:63
+#: core/app_settings.py:69
msgid "Update password scheme at login"
-msgstr "Mettre à jour le chiffrement des mots de passe à la connexion"
+msgstr "Mettre à jour la méthode de chiffrement du mot de passe à la connexion"
-#: core/app_settings.py:66
+#: core/app_settings.py:72
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"
+msgstr "Mise à jour du mot de passe utilisateur lors d'une connexion pour utiliser la méthode de chiffrement par défaut"
-#: core/app_settings.py:71
+#: core/app_settings.py:77
msgid "Default password"
msgstr "Mot de passe par défaut"
-#: core/app_settings.py:74
+#: core/app_settings.py:80
msgid "Default password for automatically created accounts."
msgstr "Mot de passe par défaut pour les comptes créés automatiquement."
-#: core/app_settings.py:78
+#: core/app_settings.py:84
msgid "Random password length"
msgstr "Taille d'un mot de passe aléatoire"
-#: core/app_settings.py:82
+#: core/app_settings.py:88
msgid "Length of randomly generated passwords."
msgstr "Taille des mots de passe générés aléatoirement."
-#: core/app_settings.py:86
-#, fuzzy
-#| msgid "Update password scheme at login"
+#: core/app_settings.py:92
msgid "Update password service URL"
-msgstr "Mettre à jour le chiffrement des mots de passe à la connexion"
+msgstr "URL de service de mise à jour du mot de passe"
-#: core/app_settings.py:90
+#: core/app_settings.py:96
msgid ""
"The URL of an external page where users will be able to update their "
"password. It applies only to non local users, ie. those automatically "
"created after a successful external authentication (LDAP, SMTP)."
-msgstr ""
+msgstr "L'URL d'une page externe où les utilisateurs pourront mettre à jour leur mot de passe. Elle s'applique uniquement aux utilisateurs non locaux, c'est à dire ceux créés après une authentification externe réussie (LDAP, SMTP)."
-#: core/app_settings.py:98
+#: core/app_settings.py:104
+msgid "Password recovery announcement"
+msgstr "Annonce pour la récupération de mot de passe"
+
+#: core/app_settings.py:109
+msgid "A temporary message that will be displayed on the reset password page."
+msgstr "Un message temporaire qui sera affiché sur la page de récupération de mot de passe"
+
+#: core/app_settings.py:115
+msgid "Enable password recovery by SMS"
+msgstr "Activer la récupération de mot de passe par SMS"
+
+#: core/app_settings.py:118
+msgid "Enable password recovery by SMS for users who filled a phone number."
+msgstr "Activer la récupération de mot de passe par SMS pour les utilisateurs ayant renseigné un numéro de téléphone"
+
+#: core/app_settings.py:124
+msgid "SMS provider"
+msgstr "Fournisseur SMS"
+
+#: core/app_settings.py:127
+msgid "Choose a provider to send password recovery SMS"
+msgstr "Choisir un fournisseur pour envoyer les SMS de récupération de mot de passe"
+
+#: core/app_settings.py:133
msgid "LDAP settings"
msgstr "Paramètres LDAP"
-#: core/app_settings.py:101
+#: core/app_settings.py:136
msgid "Server address"
msgstr "Adresse du serveur"
-#: core/app_settings.py:104
+#: core/app_settings.py:139
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:108
+#: core/app_settings.py:143
msgid "Server port"
msgstr "Port utilisé par le serveur"
-#: core/app_settings.py:110
+#: core/app_settings.py:145
msgid "The TCP port number used by the LDAP server"
msgstr "Le port TCP utilisé par le serveur LDAP"
-#: core/app_settings.py:114
+#: core/app_settings.py:149
msgid "Enable secondary server (fallback)"
-msgstr ""
+msgstr "Activer le serveur secondaire (secours)"
-#: core/app_settings.py:117
+#: core/app_settings.py:152
msgid ""
"Enable a secondary LDAP server which will be used if the primary one fails"
-msgstr ""
+msgstr "Activer un serveur LDAP secondaire qui sera utilisé si le principal est en échec"
-#: core/app_settings.py:123
-#, fuzzy
-#| msgid "Server address"
+#: core/app_settings.py:158
msgid "Secondary server address"
-msgstr "Adresse du serveur"
+msgstr "Adresse du serveur secondaire"
-#: core/app_settings.py:126
-#, fuzzy
-#| msgid "The IP address or the DNS name of the LDAP server"
+#: core/app_settings.py:161
msgid "The IP address or the DNS name of the seondary LDAP server"
-msgstr "L'adresse IP ou le nom DNS du serveur LDAP"
+msgstr "L'adresse IP ou le nom DNS du serveur LDAP secondaire"
-#: core/app_settings.py:130
-#, fuzzy
-#| msgid "Server port"
+#: core/app_settings.py:165
msgid "Secondary server port"
-msgstr "Port utilisé par le serveur"
+msgstr "Port du serveur secondaire"
-#: core/app_settings.py:133
-#, fuzzy
-#| msgid "The TCP port number used by the LDAP server"
+#: core/app_settings.py:168
msgid "The TCP port number used by the LDAP secondary server"
-msgstr "Le port TCP utilisé par le serveur LDAP"
+msgstr "Le numéro du port TCP utilisé par le serveur LDAP secondaire"
-#: core/app_settings.py:137
+#: core/app_settings.py:172
msgid "Use a secured connection"
msgstr "Utiliser une connexion sécurisée"
-#: core/app_settings.py:141
+#: core/app_settings.py:176
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:145
+#: core/app_settings.py:180
msgid "Active Directory"
msgstr "Active Directory"
-#: core/app_settings.py:148
+#: core/app_settings.py:183
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:152
+#: core/app_settings.py:187
msgid "Administrator groups"
msgstr "Groupes administrateurs"
-#: core/app_settings.py:155
+#: core/app_settings.py:190
msgid ""
-"Members of those LDAP Posix groups will be created as domain administrators. "
-"Use ';' characters to separate groups."
-msgstr ""
-"Les membres de ces groupes LDAP (Posix) seront créés en tant "
-"qu'administrateurs de domaine. Utiliser des caractères ';' pour séparer les "
-"groupes."
+"Members of those LDAP Posix groups will be created as domain administrators."
+" Use ';' characters to separate groups."
+msgstr "Les membres de ces groupes LDAP (Posix) seront créés en tant qu'administrateurs de domaine. Utiliser des caractères ';' pour séparer les groupes."
-#: core/app_settings.py:162
+#: core/app_settings.py:197
msgid "Group type"
msgstr "Type de groupe"
-#: core/app_settings.py:166
+#: core/app_settings.py:201
msgid "The LDAP group type to use with your directory."
msgstr "Le type de groupe LDAP à utiliser avec votre annuaire."
-#: core/app_settings.py:171
+#: core/app_settings.py:206
msgid "Groups search base"
msgstr "Base de recherche des groupes"
-#: core/app_settings.py:174
+#: core/app_settings.py:209
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"
+msgstr "Le nom distinctif de la base de recherche utilisée pour rechercher les groupes"
-#: core/app_settings.py:180
+#: core/app_settings.py:215
msgid "Password attribute"
msgstr "Attribut 'mot de passe'"
-#: core/app_settings.py:182
+#: core/app_settings.py:217
msgid "The attribute used to store user passwords"
msgstr "L'attribut utilisé pour stocker les mots de passe"
-#: core/app_settings.py:187
+#: core/app_settings.py:222
msgid "LDAP authentication settings"
msgstr "Paramètres d'authentification LDAP"
-#: core/app_settings.py:190
+#: core/app_settings.py:225
msgid "Authentication method"
msgstr "Méthode d'authentification"
-#: core/app_settings.py:191
+#: core/app_settings.py:226
msgid "Search and bind"
msgstr "Recherche et connexion"
-#: core/app_settings.py:192
+#: core/app_settings.py:227
msgid "Direct bind"
msgstr "Connexion directe"
-#: core/app_settings.py:194
+#: core/app_settings.py:229
msgid "Choose the authentication method to use"
msgstr "Choisir la méthode d'authentification à utiliser"
-#: core/app_settings.py:198 core/app_settings.py:252
+#: core/app_settings.py:233 core/app_settings.py:287
msgid "Bind DN"
msgstr "ND de connexion"
-#: core/app_settings.py:201 core/app_settings.py:255
+#: core/app_settings.py:236 core/app_settings.py:290
msgid ""
"The distinguished name to use when binding to the LDAP server. Leave empty "
"for an anonymous bind"
-msgstr ""
-"Le nom distinctif à utiliser pour les connections au serveur LDAP. Laisser "
-"vide pour une connexion anonyme"
+msgstr "Le nom distinctif à utiliser pour les connections au serveur LDAP. Laisser vide pour une connexion anonyme"
-#: core/app_settings.py:208 core/app_settings.py:262
+#: core/app_settings.py:243 core/app_settings.py:297
msgid "Bind password"
msgstr "Mot de passe de connexion"
-#: core/app_settings.py:211 core/app_settings.py:265
+#: core/app_settings.py:246 core/app_settings.py:300
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')"
+msgstr "Le mot de passe à utiliser pour les connections au serveur LDAP (avec 'ND de connexion')"
-#: core/app_settings.py:219 core/app_settings.py:311
+#: core/app_settings.py:254 core/app_settings.py:346
msgid "Users search base"
msgstr "Base de recherche des utilisateurs"
-#: core/app_settings.py:222 core/app_settings.py:314
+#: core/app_settings.py:257 core/app_settings.py:349
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"
+msgstr "Le nom distinctif de la base de recherche utilisée pour rechercher les utilisateurs"
-#: core/app_settings.py:228 core/app_settings.py:320
+#: core/app_settings.py:263 core/app_settings.py:355
msgid "Search filter"
msgstr "Filtre de recherche"
-#: core/app_settings.py:231 core/app_settings.py:323
+#: core/app_settings.py:266 core/app_settings.py:358
msgid ""
"An optional filter string (e.g. '(objectClass=person)'). In order to be "
"valid, it must be enclosed in parentheses."
-msgstr ""
-"Un filtre de recherche optionel (ex. '(objectClass=person)'). Pour être "
-"valide, il doit être entouré de parenthèses."
+msgstr "Un filtre de recherche optionel (ex. '(objectClass=person)'). Pour être valide, il doit être entouré de parenthèses."
-#: core/app_settings.py:238
+#: core/app_settings.py:273
msgid "User DN template"
msgstr "Modèle de nom distinctif utilisateur"
-#: core/app_settings.py:241
+#: core/app_settings.py:276
#, python-format
msgid ""
"The template used to construct a user's DN. It should contain one "
"placeholder (ie. %(user)s)"
-msgstr ""
-"Le modèle utilisé pour construire le nom distinctif d'un utilisateur. Il "
-"doit contenir un espace réservé (ex. %(user)s)"
+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:249
+#: core/app_settings.py:284
msgid "LDAP synchronization settings"
msgstr "Paramètres de synchronisation LDAP"
-#: core/app_settings.py:273
+#: core/app_settings.py:308
msgid "Enable export to LDAP"
-msgstr ""
+msgstr "Activer l'export LDAP"
-#: core/app_settings.py:276
+#: core/app_settings.py:311
msgid ""
"Enable automatic synchronization between local database and LDAP directory"
-msgstr ""
-"Activer la synchronisation automatique entre la base locale et un annuaire "
-"LDAP"
+msgstr "Activer la synchronisation automatique entre la base de données locale et l'annuaire LDAP"
-#: core/app_settings.py:282
+#: core/app_settings.py:317
msgid "Delete remote LDAP account when local account is deleted"
-msgstr "Supprimer le compte LDAP distant lorsqu'un compte local est supprimé"
+msgstr "Supprimer un compte LDAP distant lorsqu'un compte local est supprimé"
-#: core/app_settings.py:286
+#: core/app_settings.py:321
msgid ""
"Delete remote LDAP account when local account is deleted, otherwise it will "
"be disabled."
-msgstr ""
-"Supprimer un compte LDAP distant lorsqu'un compte local est supprimé, "
-"autrement il sera désactivé."
+msgstr "Supprimer un compte LDAP distant lorsqu'un compte local supprimé, autrement il sera désactivé."
-#: core/app_settings.py:292
+#: core/app_settings.py:327
msgid "Account DN template"
-msgstr "Modèle de nom distinctif de compte"
+msgstr "Modèle des DN de compte"
-#: core/app_settings.py:295
+#: core/app_settings.py:330
#, python-format
msgid ""
"The template used to construct an account's DN. It should contain one "
"placeholder (ie. %(user)s)"
-msgstr ""
-"Le modèle utilisé pour construire le nom distinctif d'un compte. Il doit "
-"contenir un espace réservé (ex. %(user)s)"
+msgstr "Le modèle utilisé pour construite un DN de compte (nom unique). Il doit contenir un emplacement (c'est à dire 1%(user)s)"
-#: core/app_settings.py:302
+#: core/app_settings.py:337
msgid "Enable import from LDAP"
-msgstr ""
+msgstr "Activer l'import LDAP"
-#: core/app_settings.py:305
-#, fuzzy
-#| msgid ""
-#| "Enable automatic synchronization between local database and LDAP directory"
+#: core/app_settings.py:340
msgid "Enable account synchronization from LDAP directory to local database"
-msgstr ""
-"Activer la synchronisation automatique entre la base locale et un annuaire "
-"LDAP"
+msgstr "Activer la synchronisation des comptes entre un annuaire LDAP et la base de données locale"
-#: core/app_settings.py:330
-#, fuzzy
-#| msgid "Password attribute"
+#: core/app_settings.py:365
msgid "Username attribute"
-msgstr "Attribut 'mot de passe'"
+msgstr "Attribut nom d'utilisateur"
-#: core/app_settings.py:333
+#: core/app_settings.py:368
msgid "The name of the LDAP attribute where the username can be found."
-msgstr ""
+msgstr "Le nom de l'attribut LDAP dans lequel le nom d'utilisateur peut être trouvé."
-#: core/app_settings.py:337 core/templates/core/dashboard.html:5
+#: core/app_settings.py:373
+msgid "Enable Dovecot LDAP sync"
+msgstr "Activer la synchronisation LDAP pour Dovecot"
+
+#: core/app_settings.py:376
+msgid "LDAP authentication settings will be applied to Dovecot configuration."
+msgstr "Les paramètres d'authentification LDAP seront appliqués à la configuration de Dovecot."
+
+#: core/app_settings.py:382
+msgid "Dovecot LDAP config file"
+msgstr "Fichier de configuration Dovecot pour LDAP"
+
+#: core/app_settings.py:386
+msgid ""
+"Location of the configuration file which contains Dovecot LDAP settings."
+msgstr "Emplacement du fichier de configuration qui contient les paramètres LDAP de Dovecot"
+
+#: core/app_settings.py:391 core/templates/core/dashboard.html:5
msgid "Dashboard"
msgstr "Tableau de bord"
-#: core/app_settings.py:340
+#: core/app_settings.py:394
msgid "Custom RSS feed"
msgstr "Flux RSS personnalisé"
-#: core/app_settings.py:343
+#: core/app_settings.py:397
msgid "Display custom RSS feed to resellers and domain administrators"
-msgstr ""
-"Afficher un flux RSS personnalisé aux revendeurs et administrateurs de "
-"domaine"
+msgstr "Afficher un flux RSS personnalisé aux revendeurs et administrateurs de domaine"
-#: core/app_settings.py:348
+#: core/app_settings.py:402
msgid "Hide features widget"
msgstr "Masquer le widget des fonctionnalités"
-#: core/app_settings.py:351
+#: core/app_settings.py:405
msgid "Hide features widget for resellers and domain administrators"
-msgstr ""
-"Masquer le widget des fonctionnalités pour les revendeurs et les "
-"administrateurs de domaine"
+msgstr "Masquer le widget des fonctionnalités pour les revendeurs et les administrateurs de domaine"
-#: core/app_settings.py:355
+#: core/app_settings.py:409
msgid "Notifications"
msgstr "Notifications"
-#: core/app_settings.py:358
+#: core/app_settings.py:412
msgid "Sender address"
msgstr "Adresse d'envoi"
-#: core/app_settings.py:361
+#: core/app_settings.py:415
msgid "Email address used to send notifications."
msgstr "Adresse utilisée pour envoyer les notifications."
-#: core/app_settings.py:365
+#: core/app_settings.py:419
msgid "Public API"
msgstr "API publique"
-#: core/app_settings.py:368
+#: core/app_settings.py:422
msgid "Enable communication"
msgstr "Activer la communication"
-#: core/app_settings.py:371
+#: core/app_settings.py:425
msgid "Enable communication with Modoboa public API"
msgstr "Activer la communication avec l'API publique de Modoboa"
-#: core/app_settings.py:375
+#: core/app_settings.py:429
msgid "Check new versions"
msgstr "Vérifier les nouvelles versions"
-#: core/app_settings.py:378
+#: core/app_settings.py:432
msgid "Automatically checks if a newer version is available"
msgstr "Vérifie automatiquement si une nouvelle version est disponible"
-#: core/app_settings.py:382
+#: core/app_settings.py:436
msgid "Send an email when new versions are found"
-msgstr ""
+msgstr "Envoyer un email quand de nouvelles versions sont trouvées"
-#: core/app_settings.py:385
+#: core/app_settings.py:439
msgid "Send an email to notify admins about new versions"
-msgstr ""
+msgstr "Envoyer un email pour notifier les administrateurs à propos des nouvelles versions"
-#: core/app_settings.py:389
+#: core/app_settings.py:443
msgid "Recipient"
-msgstr ""
+msgstr "Destinataire"
-#: core/app_settings.py:392
+#: core/app_settings.py:446
msgid "Recipient of new versions notification emails."
-msgstr ""
+msgstr "Destinataire des emails de notification pour les nouvelles versions"
-#: core/app_settings.py:397
+#: core/app_settings.py:451
msgid "Send statistics"
msgstr "Envoyer des statistiques"
-#: core/app_settings.py:400
+#: core/app_settings.py:454
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)"
+msgstr "Envoyer des statistiques à l'API publique de Modoboa (compteurs et extensions utilisées)"
-#: core/app_settings.py:404
+#: core/app_settings.py:458
msgid "Miscellaneous"
msgstr "Divers"
-#: core/app_settings.py:407
+#: core/app_settings.py:461
msgid "Inactive account threshold"
msgstr "Seuil des comptes inactifs"
-#: core/app_settings.py:410
+#: core/app_settings.py:464
msgid ""
-"An account with a last login date greater than this threshold (in days) will "
-"be considered as inactive"
-msgstr ""
-"Un compte avec une date de dernière connexion antérieure à ce seuil sera "
-"considéré comme inactif"
+"An account with a last login date greater than this threshold (in days) will"
+" be considered as inactive"
+msgstr "Un compte avec une date de dernière connexion antérieure à ce seuil sera considéré comme inactif"
-#: core/app_settings.py:416
+#: core/app_settings.py:470
msgid "Top notifications check interval"
msgstr "Intervalle de vérification des notifications"
-#: core/app_settings.py:419
+#: core/app_settings.py:473
msgid "Interval between two top notification checks (in seconds)"
msgstr "Intervalle entre deux vérifications de notification (en secondes)"
-#: core/app_settings.py:424
+#: core/app_settings.py:478
msgid "Maximum log record age"
msgstr "Age maximal d'un enregistrement du journal"
-#: core/app_settings.py:426
+#: core/app_settings.py:480
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:430
+#: core/app_settings.py:484
msgid "Items per page"
msgstr "Eléments par page"
-#: core/app_settings.py:432
+#: core/app_settings.py:486
msgid "Number of displayed items per page"
msgstr "Nombre d'éléments affichés par page"
-#: core/app_settings.py:436
+#: core/app_settings.py:490
msgid "Default top redirection"
msgstr "Redirection par défaut"
-#: core/app_settings.py:440
+#: core/app_settings.py:494
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"
+msgstr "La redirection appliquée par défaut quand aucune application n'est spécifiée"
-#: core/app_settings.py:478 core/app_settings.py:486
+#: core/app_settings.py:548 core/app_settings.py:556 core/app_settings.py:564
msgid "Invalid syntax"
msgstr "Syntaxe invalide"
-#: core/app_settings.py:492
+#: core/app_settings.py:570
msgid "Invalid rounds number"
msgstr "Nombre invalide de tours"
-#: core/app_settings.py:519
+#: core/app_settings.py:595 core/app_settings.py:597 core/app_settings.py:608
msgid "This field is required"
msgstr "Ce champ est requis"
@@ -498,67 +489,80 @@ 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 défini USE_TZ à False, ce qui peut entraîner des problèmes lors des transitions entre l'heure d'été et l'heure d'hiver (c.-à-d. La même heure locale se produisant deux fois en raison d'un changement d'horloge)."
#: core/checks/settings_checks.py:9
msgid "Set `USE_TZ = True` in settings.py"
msgstr "Mettre `USE_TZ = True` dans settings.py"
-#: core/constants.py:5
+#: core/constants.py:6
msgid "Simple user"
msgstr "Utilisateur simple"
-#: core/constants.py:6
+#: core/constants.py:7
msgid "Domain administrator"
msgstr "Administrateur de domaine"
-#: core/constants.py:7
+#: core/constants.py:8
msgid "Reseller"
msgstr "Revendeur"
-#: core/constants.py:8
+#: core/constants.py:9
msgid "Super administrator"
msgstr "Super administrateur"
-#: core/constants.py:51 lib/form_utils.py:389
+#: core/constants.py:52 lib/form_utils.py:389
msgid "No"
msgstr "Non"
-#: core/forms.py:18
+#: core/constants.py:102
+msgid "Choose a provider"
+msgstr "Choisir un fournisseur"
+
+#: core/constants.py:107
+msgid "Dummy"
+msgstr "Test"
+
+#: core/forms.py:21
msgid "Username"
msgstr "Nom d'utilisateur"
-#: core/forms.py:22
+#: core/forms.py:25
msgid "Password"
msgstr "Mot de passe"
-#: core/forms.py:35
+#: core/forms.py:38
msgid "Old password"
msgstr "Ancien mot de passe"
-#: core/forms.py:39
+#: core/forms.py:42
msgid "New password"
msgstr "Nouveau mot de passe"
-#: core/forms.py:43
+#: core/forms.py:46
msgid "Confirmation"
msgstr "Confirmation"
-#: core/forms.py:71
+#: core/forms.py:74
msgid "Old password mismatchs"
msgstr "L'ancien mot de passe est incorrect"
-#: core/forms.py:80
+#: core/forms.py:83
msgid "Passwords mismatch"
msgstr "Les mots de passe diffèrent"
-#: core/forms.py:100
+#: core/forms.py:103
msgid "Enable API access"
msgstr "Activer l'accès API"
+#: core/forms.py:137
+msgid "Verification code"
+msgstr "Code de vérification"
+
+#: core/forms.py:148
+msgid "Invalid code"
+msgstr "Code incorrect"
+
#: core/handlers.py:36
msgid "added"
msgstr "ajouté"
@@ -598,70 +602,67 @@ msgid "One or more updates are available"
msgstr "Une ou plusieurs mises à jour sont disponibles!"
#: core/management/commands/communicate_with_public_api.py:44
-#, fuzzy
-#| msgid "One or more updates are available"
msgid "[modoboa] Update(s) available"
-msgstr "Une ou plusieurs mises à jour sont disponibles!"
+msgstr "[modoboa] Mise(s) à jour disponible(s)"
-#: core/models.py:53
+#: core/models.py:55
msgid "Allow mailboxes access"
msgstr "Autoriser l'accès aux boites"
-#: core/models.py:55
+#: core/models.py:57
msgid "Allow this administrator to access user mailboxes"
msgstr "Autoriser cet administrateur à accéder aux boites des utilisateurs"
-#: core/models.py:58
+#: core/models.py:60
msgid "password"
msgstr "mot de passe"
-#: core/models.py:61
+#: core/models.py:63
msgid "language"
msgstr "langue"
-#: core/models.py:64
+#: core/models.py:66
msgid "Prefered language to display pages."
msgstr "Langage préféré pour afficher les pages"
-#: core/models.py:68
+#: core/models.py:70
msgid "Phone number"
msgstr "Numéro de téléphone"
-#: core/models.py:70
+#: core/models.py:72
msgid "Secondary email"
msgstr "Email secondaire"
-#: core/models.py:73
+#: core/models.py:75
msgid "An alternative e-mail address, can be used for recovery needs."
msgstr "Une adresse e-mail alternative ou de secours."
-#: core/models.py:124
+#: core/models.py:126
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é"
+msgstr "Echec de la mise à jour du mot de passe : le module LDAP n'est pas installé"
-#: core/models.py:153
+#: core/models.py:155
msgid "account"
msgstr "compte"
-#: core/models.py:280
+#: core/models.py:282
msgid "Unknown"
msgstr "Inconnu"
-#: core/models.py:314
+#: core/models.py:316
msgid "Invalid line"
msgstr "Ligne invalide"
-#: core/models.py:322
+#: core/models.py:324
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:337
+#: core/models.py:339
#, 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:342
+#: core/models.py:344
#, 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"
@@ -692,9 +693,51 @@ msgstr[1] "Le mot de passe doit contenir au moins {} caractères spéciaux."
#: core/password_validation.py:65
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 "
-"caractère."
+msgstr "Votre mot de passe doit contenir une combinaison de différents types de caractère."
+
+#: core/sms_backends/ovh.py:19
+msgid "API endpoint"
+msgstr "Point de terminaison API"
+
+#: core/sms_backends/ovh.py:22
+msgid "OVH Europe"
+msgstr "OVH Europe"
+
+#: core/sms_backends/ovh.py:23
+msgid "OVH US"
+msgstr "OVH États Unis"
+
+#: core/sms_backends/ovh.py:24
+msgid "OVH North-America"
+msgstr "OVH Amérique du Nord"
+
+#: core/sms_backends/ovh.py:25
+msgid "So you Start Europe"
+msgstr "So you Start Europe"
+
+#: core/sms_backends/ovh.py:26
+msgid "So you Start North America"
+msgstr "So you Start Amérique du Nord"
+
+#: core/sms_backends/ovh.py:27
+msgid "Kimsufi Europe"
+msgstr "Kimsufi Europe"
+
+#: core/sms_backends/ovh.py:28
+msgid "Kimsufi North America"
+msgstr "Kimsufi Amérique du Nord"
+
+#: core/sms_backends/ovh.py:35
+msgid "Application key"
+msgstr "Clé d'application"
+
+#: core/sms_backends/ovh.py:42
+msgid "Application secret"
+msgstr "Secret d'application"
+
+#: core/sms_backends/ovh.py:50
+msgid "Consumer key"
+msgstr "Clé du consommateur"
#: core/templates/core/_current_features.html:6
msgid "Features looking for sponsoring"
@@ -720,9 +763,7 @@ msgstr "Dernières nouvelles"
msgid ""
"Visit the official "
"weblog for more information."
-msgstr ""
-"Visitez le blog "
-"officiel pour plus d'information."
+msgstr "Visitez le blog officiel pour plus d'information."
#: core/templates/core/api_access.html:3
msgid "API access"
@@ -735,11 +776,9 @@ msgstr "Contrôlez votre accès à l'API de Modoboa"
#: core/templates/core/api_access.html:7
#, python-format
msgid ""
-"A documentation of the API is available here."
-msgstr ""
-"Une documentation de l'API est disponible ici."
+"A documentation of the API is available here."
+msgstr "Une documentation de l'API est disponible ici."
#: core/templates/core/api_access.html:14
msgid "API access token"
@@ -769,8 +808,7 @@ msgstr "Une ou plusieurs mises à jour sont disponibles!"
#: core/templates/core/information.html:6
msgid "Check the following list to find the component(s) that can be updated."
-msgstr ""
-"Consulter la liste suivante pour trouver le(s) composant(s) concerné(s)."
+msgstr "Consulter la liste suivante pour trouver le(s) composant(s) concerné(s)."
#: core/templates/core/information.html:10
msgid "Applications"
@@ -830,16 +868,14 @@ msgid "Message"
msgstr "Message"
#: core/templates/core/notifications/update_available.html:3
-#, fuzzy
-#| msgid "One or more updates are available"
msgid ""
"\n"
" The following update is available:\n"
msgid_plural ""
"\n"
" The following updates are available:\n"
-msgstr[0] "Une ou plusieurs mises à jour sont disponibles!"
-msgstr[1] "Une ou plusieurs mises à jour sont disponibles!"
+msgstr[0] "\nLa mise à jour suivante est disponible :\n"
+msgstr[1] "\nLes mises à jour suivantes sont disponibles :\n"
#: core/templates/core/parameters.html:2 core/templatetags/core_tags.py:71
msgid "Parameters"
@@ -884,10 +920,8 @@ msgid "Update your personal information"
msgstr "Mettez à jour vos informations personnelles"
#: core/templates/core/user_profile.html:13
-#, fuzzy
-#| msgid "Failed to update password: {}"
msgid "Click here to update your password"
-msgstr "Impossible de mettre à jour le mot de passe : {}"
+msgstr "Cliquez ici pour mettre à jour votre mot de passe"
#: core/templatetags/core_tags.py:34
msgid "Modoboa"
@@ -909,31 +943,33 @@ msgstr "Le coeur de Modoboa"
msgid "Parameters saved"
msgstr "Paramètres enregistrés"
-#: core/views/auth.py:46
+#: core/views/auth.py:59
#, python-format
msgid "Password scheme mismatch. Updating %s password"
-msgstr "Chiffrement non concordant. Mise à jour du mot de passe de %s"
+msgstr "La méthode de chiffrement du mot de passe diffère. Mise à jour du mot de passe de %s"
-#: core/views/auth.py:53
+#: core/views/auth.py:66
#, python-format
msgid "Password hash parameter missmatch. Updating %s password"
-msgstr "Chiffrement non concordant. Mise à jour du mot de passe de %s"
+msgstr ""
-#: core/views/auth.py:69
+#: core/views/auth.py:82
#, python-format
msgid "User '%s' successfully logged in"
msgstr "Utiliseur '%s' connecté avec succès"
-#: core/views/auth.py:77
+#: core/views/auth.py:90
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."
+msgstr "Votre nom d'utilisateur et mot de passe ne correspondent pas. Veuillez réessayer."
-#: core/views/auth.py:112
+#: core/views/auth.py:125
msgid "User '{}' successfully logged out"
msgstr "Utilisateur '{}' déconnecté avec succès"
+#: core/views/auth.py:170 core/views/auth.py:225
+msgid "Please use the following code to recover your Modoboa password: {}"
+msgstr "Veuillez utiliser le code suivant pour récupérer votre mot de passe Modoboa : {}"
+
#: core/views/user.py:53
msgid "Profile updated"
msgstr "Profil mis à jour"
@@ -953,7 +989,7 @@ msgstr "Connexion à la base de données %s non configurée"
#: lib/email_utils.py:141 lib/email_utils.py:360
msgid "unable to determine encoding of string"
-msgstr "impossible de trouver l'encodage de la chaîne de caractère"
+msgstr "Impossible de déterminer l'encodage de la chaîne de caractères"
#: lib/exceptions.py:67
#, python-format
@@ -973,7 +1009,8 @@ msgid "Enter a valid email address."
msgstr "Entrez une adresse email valide."
#: lib/form_utils.py:77 templates/registration/password_reset_confirm.html:12
-#: templates/registration/password_reset_form.html:11
+#: templates/registration/password_reset_confirm_code.html:25
+#: templates/registration/password_reset_form.html:29
msgid "Submit"
msgstr "Soumettre"
@@ -1034,8 +1071,9 @@ msgstr "Erreur :"
msgid "Help:"
msgstr "Aide :"
-#: 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 "Fermer"
@@ -1060,7 +1098,7 @@ msgid "Log in"
msgstr "Se connecter"
#: templates/registration/login.html:24
-#: templates/registration/password_reset_form.html:6
+#: templates/registration/password_reset_form.html:17
msgid "Forgot password?"
msgstr "Mot de passe oublié ?"
@@ -1069,9 +1107,7 @@ msgstr "Mot de passe oublié ?"
msgid ""
"Your password has been set. You may go ahead and sign "
"in now."
-msgstr ""
-"Votre mot de passe a été défini. Vous pouvez continuer et vous connecter dès maintenant."
+msgstr "Votre mot de passe a été défini. Vous pouvez continuer et vous connecter dès maintenant."
#: templates/registration/password_reset_confirm.html:7
msgid "Change password"
@@ -1081,10 +1117,15 @@ msgstr "Changer le mot de passe"
msgid ""
"The password reset link was invalid, possibly because it has already been "
"used. Please request a new password reset."
-msgstr ""
-"Le lien de réinitialisation du mot de passe était invalide, probablement "
-"parce qu'il a déjà été utilisé. Merci de demander une nouvelle "
-"réinitialisation de mot de passe."
+msgstr "Le lien de réinitialisation du mot de passe était invalide, probablement parce qu'il a déjà été utilisé. Merci de demander une nouvelle réinitialisation de mot de passe."
+
+#: templates/registration/password_reset_confirm_code.html:20
+msgid "Enter the code you've just received by SMS"
+msgstr "Entrez le code que vous venez de recevoir par SMS"
+
+#: templates/registration/password_reset_confirm_code.html:27
+msgid "Resend code"
+msgstr "Envoyer de nouveau le code"
#: templates/registration/password_reset_done.html:7
msgid ""
@@ -1092,37 +1133,29 @@ 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 ""
-"Nous vous avons envoyé par email les instructions pour définir votre mot "
-"de passe, pour peu qu'un compte avec l'email que vous avez renseigné existe. "
-"Vous devriez les recevoir rapidement.
Si vous ne recevez pas d'email, "
-"merci de vérifier que vous avez renseigné votre adresse principale et de "
-"vérifier votre dossier spam.
"
+msgstr "Nous vous avons envoyé par email les instructions pour définir votre mot de passe, pour peu qu'un compte avec l'email que vous avez renseigné existe. Vous devriez les recevoir rapidement.
Si vous ne recevez pas d'email, merci de vérifier que vous avez renseigné votre adresse principale et de vérifier votre dossier 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 ""
-"Pour initier la procédure de réinitialisation du mot de passe de votre "
-"compte Modoboa %(username)s, cliquez sur le lien ci-dessous :"
+msgstr "Pour initier la procédure de réinitialisation du mot de passe de votre compte Modoboa %(username)s, cliquez sur le lien ci-dessous :"
#: 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 ""
-"Si cliquer sur lien ci-dessous ne fonctionne pas, merci de copier / coller "
-"cette URL dans une nouvelle fenêtre navigateur à la place."
+msgstr "Si cliquer sur lien ci-dessous ne fonctionne pas, merci de copier / coller cette URL dans une nouvelle fenêtre navigateur à la place."
#: templates/registration/password_reset_email.html:14
msgid "Sincerely, The Modoboa Team."
msgstr "Cordialement, l'équipe Modoboa."
+#: templates/registration/password_reset_form.html:24
+msgid "Please fill-in your primary email address"
+msgstr "Veuillez remplir votre adresse de courriel principale"
+
#: templates/registration/password_reset_subject.txt:3
msgid "Modoboa password reset"
msgstr "Réinitialisation du mot de passe Modoboa"
-
-#~ msgid "Enable LDAP synchronization"
-#~ msgstr "Activer la synchronisation LDAP"
diff --git a/modoboa/locale/fr/LC_MESSAGES/djangojs.po b/modoboa/locale/fr/LC_MESSAGES/djangojs.po
index 8c4dd3d1b..3c2e2d24b 100644
--- a/modoboa/locale/fr/LC_MESSAGES/djangojs.po
+++ b/modoboa/locale/fr/LC_MESSAGES/djangojs.po
@@ -1,22 +1,23 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
-#
+#
# Translators:
-# Antoine Nguyen , 2016
+# Antoine Nguyen , 2016,2020
+# Christophe CHAUVET , 2018
# Landry MINOZA , 2014
msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-03-09 16:48+0100\n"
-"PO-Revision-Date: 2017-09-23 18:04+0000\n"
+"PO-Revision-Date: 2020-03-09 15:51+0000\n"
"Last-Translator: Antoine Nguyen \n"
"Language-Team: French (http://www.transifex.com/tonio/modoboa/language/fr/)\n"
-"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Language: fr\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: bower_components/jquery-ui/jquery-ui.min.js:8
@@ -25,7 +26,7 @@ msgstr "'"
#: bower_components/swagger-ui/dist/swagger-ui-bundle.js:133
msgid "operation"
-msgstr ""
+msgstr "opération"
#: core/static/core/js/settings.js:16
msgid "No more log entry to show"
diff --git a/modoboa/locale/it/LC_MESSAGES/django.po b/modoboa/locale/it/LC_MESSAGES/django.po
index 96e486bfa..52f6504d5 100644
--- a/modoboa/locale/it/LC_MESSAGES/django.po
+++ b/modoboa/locale/it/LC_MESSAGES/django.po
@@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-03-09 16:48+0100\n"
+"POT-Creation-Date: 2020-05-06 13:15+0200\n"
"PO-Revision-Date: 2018-11-01 16:31+0000\n"
"Last-Translator: marcotrevisan \n"
"Language-Team: Italian (http://www.transifex.com/tonio/modoboa/language/"
@@ -22,40 +22,40 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: core/app_settings.py:20
+#: core/app_settings.py:26
msgid "User profile"
msgstr "Profilo utente"
-#: core/app_settings.py:33
+#: core/app_settings.py:39
msgid "Authentication"
msgstr "Autenticazione"
-#: core/app_settings.py:36
+#: core/app_settings.py:42
msgid "Authentication type"
msgstr "Tipo di autenticazione"
-#: core/app_settings.py:37
+#: core/app_settings.py:43
msgid "Local"
msgstr "Locale"
-#: core/app_settings.py:40
+#: core/app_settings.py:46
msgid "The backend used for authentication"
msgstr "Il backend utilizzato per l'autenticazione"
-#: core/app_settings.py:45
+#: core/app_settings.py:51
msgid "Default password scheme"
msgstr "Schema password predefinito"
-#: core/app_settings.py:50
+#: core/app_settings.py:56
msgid "Scheme used to crypt mailbox passwords"
msgstr ""
"Schema utilizzato per la criptazione delle password delle caselle di posta"
-#: core/app_settings.py:54
+#: core/app_settings.py:60
msgid "Rounds"
msgstr "Cicli"
-#: core/app_settings.py:57
+#: core/app_settings.py:63
msgid ""
"Number of rounds to use (only used by sha256crypt and sha512crypt). Must be "
"between 1000 and 999999999, inclusive."
@@ -63,121 +63,145 @@ msgstr ""
"Numero di cicli da utilizzare (valido per sha256crypt e sha512crypt). Deve "
"essere compreso tra 1000 e 999999999."
-#: core/app_settings.py:63
+#: core/app_settings.py:69
#, fuzzy
#| msgid "Update password scheme"
msgid "Update password scheme at login"
msgstr "Aggiorna lo schema di password"
-#: core/app_settings.py:66
+#: core/app_settings.py:72
msgid "Update user password at login to use the default password scheme"
msgstr ""
"Aggiorna la password utente al login per usare lo schema di password "
"predefinito"
-#: core/app_settings.py:71
+#: core/app_settings.py:77
msgid "Default password"
msgstr "Password predefinita"
-#: core/app_settings.py:74
+#: core/app_settings.py:80
msgid "Default password for automatically created accounts."
msgstr "Password predefinita per gli account creati automaticamente."
-#: core/app_settings.py:78
+#: core/app_settings.py:84
msgid "Random password length"
msgstr "Lunghezza della password casuale"
-#: core/app_settings.py:82
+#: core/app_settings.py:88
msgid "Length of randomly generated passwords."
msgstr "Lunghezza delle password generate casualmente"
-#: core/app_settings.py:86
+#: core/app_settings.py:92
#, fuzzy
#| msgid "Update password scheme"
msgid "Update password service URL"
msgstr "Aggiorna lo schema di password"
-#: core/app_settings.py:90
+#: core/app_settings.py:96
msgid ""
"The URL of an external page where users will be able to update their "
"password. It applies only to non local users, ie. those automatically "
"created after a successful external authentication (LDAP, SMTP)."
msgstr ""
-#: core/app_settings.py:98
+#: core/app_settings.py:104
+msgid "Password recovery announcement"
+msgstr ""
+
+#: core/app_settings.py:109
+msgid "A temporary message that will be displayed on the reset password page."
+msgstr ""
+
+#: core/app_settings.py:115
+msgid "Enable password recovery by SMS"
+msgstr ""
+
+#: core/app_settings.py:118
+msgid "Enable password recovery by SMS for users who filled a phone number."
+msgstr ""
+
+#: core/app_settings.py:124
+msgid "SMS provider"
+msgstr ""
+
+#: core/app_settings.py:127
+msgid "Choose a provider to send password recovery SMS"
+msgstr ""
+
+#: core/app_settings.py:133
msgid "LDAP settings"
msgstr "Impostazioni LDAP"
-#: core/app_settings.py:101
+#: core/app_settings.py:136
msgid "Server address"
msgstr "Indirizzo del server"
-#: core/app_settings.py:104
+#: core/app_settings.py:139
msgid "The IP address or the DNS name of the LDAP server"
msgstr "L'indirizzo IP o il DNS name del server LDAP"
-#: core/app_settings.py:108
+#: core/app_settings.py:143
msgid "Server port"
msgstr "Porta del server"
-#: core/app_settings.py:110
+#: core/app_settings.py:145
msgid "The TCP port number used by the LDAP server"
msgstr "Il numero della porta TCP utilizzata dal server LDAP"
-#: core/app_settings.py:114
+#: core/app_settings.py:149
msgid "Enable secondary server (fallback)"
msgstr ""
-#: core/app_settings.py:117
+#: core/app_settings.py:152
msgid ""
"Enable a secondary LDAP server which will be used if the primary one fails"
msgstr ""
-#: core/app_settings.py:123
+#: core/app_settings.py:158
#, fuzzy
#| msgid "Server address"
msgid "Secondary server address"
msgstr "Indirizzo del server"
-#: core/app_settings.py:126
+#: core/app_settings.py:161
#, fuzzy
#| msgid "The IP address or the DNS name of the LDAP server"
msgid "The IP address or the DNS name of the seondary LDAP server"
msgstr "L'indirizzo IP o il DNS name del server LDAP"
-#: core/app_settings.py:130
+#: core/app_settings.py:165
#, fuzzy
#| msgid "Server port"
msgid "Secondary server port"
msgstr "Porta del server"
-#: core/app_settings.py:133
+#: core/app_settings.py:168
#, fuzzy
#| msgid "The TCP port number used by the LDAP server"
msgid "The TCP port number used by the LDAP secondary server"
msgstr "Il numero della porta TCP utilizzata dal server LDAP"
-#: core/app_settings.py:137
+#: core/app_settings.py:172
msgid "Use a secured connection"
msgstr "Usa una connessione sicura"
-#: core/app_settings.py:141
+#: core/app_settings.py:176
msgid "Use an SSL/STARTTLS connection to access the LDAP server"
msgstr "Usa una connessione SSL/STARTTLS per l'accesso al server LDAP"
-#: core/app_settings.py:145
+#: core/app_settings.py:180
msgid "Active Directory"
msgstr "Active Directory"
-#: core/app_settings.py:148
+#: core/app_settings.py:183
msgid "Tell if the LDAP server is an Active Directory one"
msgstr "Segnala se il server LDAP è una Active Directory"
-#: core/app_settings.py:152
+#: core/app_settings.py:187
msgid "Administrator groups"
msgstr "Gruppi degli amministratori"
-#: core/app_settings.py:155
+#: core/app_settings.py:190
msgid ""
"Members of those LDAP Posix groups will be created as domain administrators. "
"Use ';' characters to separate groups."
@@ -186,59 +210,59 @@ msgstr ""
"amministratori di dominio. Utilizza il carattere ';' per separare valori "
"multipli."
-#: core/app_settings.py:162
+#: core/app_settings.py:197
msgid "Group type"
msgstr "Tipo di gruppo"
-#: core/app_settings.py:166
+#: core/app_settings.py:201
msgid "The LDAP group type to use with your directory."
msgstr "Il tipo di gruppo LDAP da utilizzare nella Directory"
-#: core/app_settings.py:171
+#: core/app_settings.py:206
msgid "Groups search base"
msgstr "Base di ricerca per i gruppi"
-#: core/app_settings.py:174
+#: core/app_settings.py:209
msgid "The distinguished name of the search base used to find groups"
msgstr ""
"DN (Nome distinto univoco) della base di ricerca utilizzato per trovare i "
"gruppi"
-#: core/app_settings.py:180
+#: core/app_settings.py:215
msgid "Password attribute"
msgstr "Attributo della password"
-#: core/app_settings.py:182
+#: core/app_settings.py:217
msgid "The attribute used to store user passwords"
msgstr "L'attributo utilizzato per memorizzare le password degli utenti"
-#: core/app_settings.py:187
+#: core/app_settings.py:222
#, fuzzy
#| msgid "Authentication method"
msgid "LDAP authentication settings"
msgstr "Metodo di autenticazione"
-#: core/app_settings.py:190
+#: core/app_settings.py:225
msgid "Authentication method"
msgstr "Metodo di autenticazione"
-#: core/app_settings.py:191
+#: core/app_settings.py:226
msgid "Search and bind"
msgstr "Cerca e collega"
-#: core/app_settings.py:192
+#: core/app_settings.py:227
msgid "Direct bind"
msgstr "Collegamento diretto"
-#: core/app_settings.py:194
+#: core/app_settings.py:229
msgid "Choose the authentication method to use"
msgstr "Scegli il metodo di autenticazione da usare"
-#: core/app_settings.py:198 core/app_settings.py:252
+#: core/app_settings.py:233 core/app_settings.py:287
msgid "Bind DN"
msgstr "Collega DN"
-#: core/app_settings.py:201 core/app_settings.py:255
+#: core/app_settings.py:236 core/app_settings.py:290
msgid ""
"The distinguished name to use when binding to the LDAP server. Leave empty "
"for an anonymous bind"
@@ -246,31 +270,31 @@ msgstr ""
"DN (Nome distinto univoco) da usare quando ci si collega al server LDAP. "
"Lasciare vuoto per un collegamento anonimo"
-#: core/app_settings.py:208 core/app_settings.py:262
+#: core/app_settings.py:243 core/app_settings.py:297
msgid "Bind password"
msgstr "Password del collegamento"
-#: core/app_settings.py:211 core/app_settings.py:265
+#: core/app_settings.py:246 core/app_settings.py:300
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:219 core/app_settings.py:311
+#: core/app_settings.py:254 core/app_settings.py:346
msgid "Users search base"
msgstr "Base di ricerca per gli utenti"
-#: core/app_settings.py:222 core/app_settings.py:314
+#: core/app_settings.py:257 core/app_settings.py:349
msgid "The distinguished name of the search base used to find users"
msgstr ""
"DN (Nome distinto univoco) della base di ricerca utilizzata per cercare gli "
"utenti"
-#: core/app_settings.py:228 core/app_settings.py:320
+#: core/app_settings.py:263 core/app_settings.py:355
msgid "Search filter"
msgstr "Filtro ricerca"
-#: core/app_settings.py:231 core/app_settings.py:323
+#: core/app_settings.py:266 core/app_settings.py:358
msgid ""
"An optional filter string (e.g. '(objectClass=person)'). In order to be "
"valid, it must be enclosed in parentheses."
@@ -278,11 +302,11 @@ msgstr ""
"Stringa di filtraggio opzionale (p.es '(objectClass=person)'). Per essere "
"valida deve essere racchiusa tra parentesi."
-#: core/app_settings.py:238
+#: core/app_settings.py:273
msgid "User DN template"
msgstr "Modello DN dell'utente"
-#: core/app_settings.py:241
+#: core/app_settings.py:276
#, python-format
msgid ""
"The template used to construct a user's DN. It should contain one "
@@ -291,38 +315,38 @@ msgstr ""
"Il modello utilizzato per comporre il DN degli utenti. Deve contenere un "
"segnaposto (p.es. %(user)s)"
-#: core/app_settings.py:249
+#: core/app_settings.py:284
#, fuzzy
#| msgid "LDAP settings"
msgid "LDAP synchronization settings"
msgstr "Impostazioni LDAP"
-#: core/app_settings.py:273
+#: core/app_settings.py:308
msgid "Enable export to LDAP"
msgstr ""
-#: core/app_settings.py:276
+#: core/app_settings.py:311
msgid ""
"Enable automatic synchronization between local database and LDAP directory"
msgstr ""
-#: core/app_settings.py:282
+#: core/app_settings.py:317
msgid "Delete remote LDAP account when local account is deleted"
msgstr ""
-#: core/app_settings.py:286
+#: core/app_settings.py:321
msgid ""
"Delete remote LDAP account when local account is deleted, otherwise it will "
"be disabled."
msgstr ""
-#: core/app_settings.py:292
+#: core/app_settings.py:327
#, fuzzy
#| msgid "User DN template"
msgid "Account DN template"
msgstr "Modello DN dell'utente"
-#: core/app_settings.py:295
+#: core/app_settings.py:330
#, fuzzy, python-format
#| msgid ""
#| "The template used to construct a user's DN. It should contain one "
@@ -334,111 +358,130 @@ msgstr ""
"Il modello utilizzato per comporre il DN degli utenti. Deve contenere un "
"segnaposto (p.es. %(user)s)"
-#: core/app_settings.py:302
+#: core/app_settings.py:337
msgid "Enable import from LDAP"
msgstr ""
-#: core/app_settings.py:305
+#: core/app_settings.py:340
msgid "Enable account synchronization from LDAP directory to local database"
msgstr ""
-#: core/app_settings.py:330
+#: core/app_settings.py:365
#, fuzzy
#| msgid "Password attribute"
msgid "Username attribute"
msgstr "Attributo della password"
-#: core/app_settings.py:333
+#: core/app_settings.py:368
msgid "The name of the LDAP attribute where the username can be found."
msgstr ""
-#: core/app_settings.py:337 core/templates/core/dashboard.html:5
+#: core/app_settings.py:373
+#, fuzzy
+#| msgid "Enable communication"
+msgid "Enable Dovecot LDAP sync"
+msgstr "Abilita comunicazione"
+
+#: core/app_settings.py:376
+msgid "LDAP authentication settings will be applied to Dovecot configuration."
+msgstr ""
+
+#: core/app_settings.py:382
+msgid "Dovecot LDAP config file"
+msgstr ""
+
+#: core/app_settings.py:386
+msgid ""
+"Location of the configuration file which contains Dovecot LDAP settings."
+msgstr ""
+
+#: core/app_settings.py:391 core/templates/core/dashboard.html:5
msgid "Dashboard"
msgstr ""
-#: core/app_settings.py:340
+#: core/app_settings.py:394
msgid "Custom RSS feed"
msgstr "RSS feed custom"
-#: core/app_settings.py:343
+#: core/app_settings.py:397
msgid "Display custom RSS feed to resellers and domain administrators"
msgstr "Mostra RSS feed custom a rivenditori e amministratori di dominio"
-#: core/app_settings.py:348
+#: core/app_settings.py:402
msgid "Hide features widget"
msgstr "Nascondi il widget delle feature"
-#: core/app_settings.py:351
+#: core/app_settings.py:405
msgid "Hide features widget for resellers and domain administrators"
msgstr ""
-#: core/app_settings.py:355
+#: core/app_settings.py:409
msgid "Notifications"
msgstr "Notifiche"
-#: core/app_settings.py:358
+#: core/app_settings.py:412
msgid "Sender address"
msgstr "Indirizzo di invio"
-#: core/app_settings.py:361
+#: core/app_settings.py:415
msgid "Email address used to send notifications."
msgstr "Indirizzo email utilizzato per inviare le notifiche"
-#: core/app_settings.py:365
+#: core/app_settings.py:419
msgid "Public API"
msgstr "API pubblica"
-#: core/app_settings.py:368
+#: core/app_settings.py:422
msgid "Enable communication"
msgstr "Abilita comunicazione"
-#: core/app_settings.py:371
+#: core/app_settings.py:425
msgid "Enable communication with Modoboa public API"
msgstr "Abilita la comunicazione con l'API pubblica di modoboa"
-#: core/app_settings.py:375
+#: core/app_settings.py:429
msgid "Check new versions"
msgstr "Controlla nuove versioni"
-#: core/app_settings.py:378
+#: core/app_settings.py:432
msgid "Automatically checks if a newer version is available"
msgstr "Controlla automaticamente se è disponibile una nuova versione"
-#: core/app_settings.py:382
+#: core/app_settings.py:436
msgid "Send an email when new versions are found"
msgstr ""
-#: core/app_settings.py:385
+#: core/app_settings.py:439
msgid "Send an email to notify admins about new versions"
msgstr ""
-#: core/app_settings.py:389
+#: core/app_settings.py:443
msgid "Recipient"
msgstr ""
-#: core/app_settings.py:392
+#: core/app_settings.py:446
msgid "Recipient of new versions notification emails."
msgstr ""
-#: core/app_settings.py:397
+#: core/app_settings.py:451
msgid "Send statistics"
msgstr "Invia statistiche"
-#: core/app_settings.py:400
+#: core/app_settings.py:454
msgid "Send statistics to Modoboa public API (counters and used extensions)"
msgstr ""
"Invia statistiche all'API pubblica di modoboa (contatori ed estensioni "
"utilizzate)"
-#: core/app_settings.py:404
+#: core/app_settings.py:458
msgid "Miscellaneous"
msgstr "Varie"
-#: core/app_settings.py:407
+#: core/app_settings.py:461
msgid "Inactive account threshold"
msgstr "Soglia account inattivo"
-#: core/app_settings.py:410
+#: core/app_settings.py:464
msgid ""
"An account with a last login date greater than this threshold (in days) will "
"be considered as inactive"
@@ -446,49 +489,49 @@ msgstr ""
"Un account con una data di ultimo accesso più vecchia di questa soglia (in "
"giorni) verrà considerato inattivo"
-#: core/app_settings.py:416
+#: core/app_settings.py:470
msgid "Top notifications check interval"
msgstr "Intervallo notifiche"
-#: core/app_settings.py:419
+#: core/app_settings.py:473
msgid "Interval between two top notification checks (in seconds)"
msgstr "Intervallo di tempo per la ricerca di nuove notifiche (in secondi)"
-#: core/app_settings.py:424
+#: core/app_settings.py:478
msgid "Maximum log record age"
msgstr "Età massima dei log"
-#: core/app_settings.py:426
+#: core/app_settings.py:480
msgid "The maximum age in days of a log record"
msgstr "La persistenza massima in giorni dei log"
-#: core/app_settings.py:430
+#: core/app_settings.py:484
msgid "Items per page"
msgstr "Elementi per pagina"
-#: core/app_settings.py:432
+#: core/app_settings.py:486
msgid "Number of displayed items per page"
msgstr "Numero degli elementi visualizzati in ciascuna pagina"
-#: core/app_settings.py:436
+#: core/app_settings.py:490
msgid "Default top redirection"
msgstr "Reindirizzamento principale predefinito"
-#: core/app_settings.py:440
+#: core/app_settings.py:494
msgid "The default redirection used when no application is specified"
msgstr ""
"Redirezione predefinita utilizzata quando non è specificata alcuna "
"applicazione"
-#: core/app_settings.py:478 core/app_settings.py:486
+#: core/app_settings.py:548 core/app_settings.py:556 core/app_settings.py:564
msgid "Invalid syntax"
msgstr "Sintassi errata"
-#: core/app_settings.py:492
+#: core/app_settings.py:570
msgid "Invalid rounds number"
msgstr "Numero di cicli non valido"
-#: core/app_settings.py:519
+#: core/app_settings.py:595 core/app_settings.py:597 core/app_settings.py:608
msgid "This field is required"
msgstr "Questo campo è obbligatorio"
@@ -507,58 +550,78 @@ msgstr ""
msgid "Set `USE_TZ = True` in settings.py"
msgstr "Imposta `USE_TZ = True` in settings.py"
-#: core/constants.py:5
+#: core/constants.py:6
msgid "Simple user"
msgstr "Utente semplice"
-#: core/constants.py:6
+#: core/constants.py:7
msgid "Domain administrator"
msgstr "Amministratore di dominio"
-#: core/constants.py:7
+#: core/constants.py:8
msgid "Reseller"
msgstr "Rivenditore"
-#: core/constants.py:8
+#: core/constants.py:9
msgid "Super administrator"
msgstr "Super amministratore"
-#: core/constants.py:51 lib/form_utils.py:389
+#: core/constants.py:52 lib/form_utils.py:389
msgid "No"
msgstr "No"
-#: core/forms.py:18
+#: core/constants.py:102
+msgid "Choose a provider"
+msgstr ""
+
+#: core/constants.py:107
+msgid "Dummy"
+msgstr ""
+
+#: core/forms.py:21
msgid "Username"
msgstr "Nome utente"
-#: core/forms.py:22
+#: core/forms.py:25
msgid "Password"
msgstr "Password"
-#: core/forms.py:35
+#: core/forms.py:38
msgid "Old password"
msgstr "Vecchia password"
-#: core/forms.py:39
+#: core/forms.py:42
msgid "New password"
msgstr "Nuova password"
-#: core/forms.py:43
+#: core/forms.py:46
msgid "Confirmation"
msgstr "Conferma"
-#: core/forms.py:71
+#: core/forms.py:74
msgid "Old password mismatchs"
msgstr "La vecchia password non corrisponde"
-#: core/forms.py:80
+#: core/forms.py:83
msgid "Passwords mismatch"
msgstr "Le password non corrispondono"
-#: core/forms.py:100
+#: core/forms.py:103
msgid "Enable API access"
msgstr "Abilita accesso API"
+#: core/forms.py:137
+#, fuzzy
+#| msgid "Notifications"
+msgid "Verification code"
+msgstr "Notifiche"
+
+#: core/forms.py:148
+#, fuzzy
+#| msgid "Invalid line"
+msgid "Invalid code"
+msgstr "Riga non valida"
+
#: core/handlers.py:36
msgid "added"
msgstr "aggiunto"
@@ -603,67 +666,67 @@ msgstr "Sono disponibili nuovi aggiornamenti"
msgid "[modoboa] Update(s) available"
msgstr "Sono disponibili nuovi aggiornamenti"
-#: core/models.py:53
+#: core/models.py:55
msgid "Allow mailboxes access"
msgstr "Consenti l'accesso alle caselle di posta"
-#: core/models.py:55
+#: core/models.py:57
msgid "Allow this administrator to access user mailboxes"
msgstr ""
"Permetti a questo amministratore di accedere alle caselle di posta degli "
"utenti"
-#: core/models.py:58
+#: core/models.py:60
msgid "password"
msgstr "password"
-#: core/models.py:61
+#: core/models.py:63
msgid "language"
msgstr "lingua"
-#: core/models.py:64
+#: core/models.py:66
msgid "Prefered language to display pages."
msgstr "Lingua preferita per la visualizzazione delle pagine"
-#: core/models.py:68
+#: core/models.py:70
msgid "Phone number"
msgstr "Numero di telefono"
-#: core/models.py:70
+#: core/models.py:72
msgid "Secondary email"
msgstr "Email alternativa"
-#: core/models.py:73
+#: core/models.py:75
msgid "An alternative e-mail address, can be used for recovery needs."
msgstr ""
"Un indirizzo email alternativo, da utilizzare per il recupero password."
-#: core/models.py:124
+#: core/models.py:126
msgid "Failed to update password: LDAP module not installed"
msgstr "Aggiornamento della password fallito: il modulo LDAP non è installato"
-#: core/models.py:153
+#: core/models.py:155
msgid "account"
msgstr "account"
-#: core/models.py:280
+#: core/models.py:282
msgid "Unknown"
msgstr "Sconosciuto"
-#: core/models.py:314
+#: core/models.py:316
msgid "Invalid line"
msgstr "Riga non valida"
-#: core/models.py:322
+#: core/models.py:324
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:337
+#: core/models.py:339
#, 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:342
+#: core/models.py:344
#, 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"
@@ -697,6 +760,54 @@ msgid "Your password must contain a combination of different character types."
msgstr ""
"La tua password deve contenere una combinazione di diversi tipi di carattere."
+#: core/sms_backends/ovh.py:19
+msgid "API endpoint"
+msgstr ""
+
+#: core/sms_backends/ovh.py:22
+msgid "OVH Europe"
+msgstr ""
+
+#: core/sms_backends/ovh.py:23
+msgid "OVH US"
+msgstr ""
+
+#: core/sms_backends/ovh.py:24
+msgid "OVH North-America"
+msgstr ""
+
+#: core/sms_backends/ovh.py:25
+msgid "So you Start Europe"
+msgstr ""
+
+#: core/sms_backends/ovh.py:26
+msgid "So you Start North America"
+msgstr ""
+
+#: core/sms_backends/ovh.py:27
+msgid "Kimsufi Europe"
+msgstr ""
+
+#: core/sms_backends/ovh.py:28
+msgid "Kimsufi North America"
+msgstr ""
+
+#: core/sms_backends/ovh.py:35
+#, fuzzy
+#| msgid "Applications"
+msgid "Application key"
+msgstr "Applicazioni"
+
+#: core/sms_backends/ovh.py:42
+#, fuzzy
+#| msgid "Applications"
+msgid "Application secret"
+msgstr "Applicazioni"
+
+#: core/sms_backends/ovh.py:50
+msgid "Consumer key"
+msgstr ""
+
#: core/templates/core/_current_features.html:6
msgid "Features looking for sponsoring"
msgstr "Feature in cerca di sponsorizzazione"
@@ -909,29 +1020,33 @@ msgstr "Parte centrale di Modoboa"
msgid "Parameters saved"
msgstr "Parametri salvati"
-#: core/views/auth.py:46
+#: core/views/auth.py:59
#, python-format
msgid "Password scheme mismatch. Updating %s password"
msgstr ""
-#: core/views/auth.py:53
+#: core/views/auth.py:66
#, python-format
msgid "Password hash parameter missmatch. Updating %s password"
msgstr ""
-#: core/views/auth.py:69
+#: core/views/auth.py:82
#, python-format
msgid "User '%s' successfully logged in"
msgstr "L'utente '%s' è correttamente registrato"
-#: core/views/auth.py:77
+#: core/views/auth.py:90
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:112
+#: core/views/auth.py:125
msgid "User '{}' successfully logged out"
msgstr "Utente '{}' disconnesso"
+#: core/views/auth.py:170 core/views/auth.py:225
+msgid "Please use the following code to recover your Modoboa password: {}"
+msgstr ""
+
#: core/views/user.py:53
msgid "Profile updated"
msgstr "Profilo aggiornato"
@@ -971,7 +1086,8 @@ msgid "Enter a valid email address."
msgstr "Inserisci un indirizzo email valido."
#: lib/form_utils.py:77 templates/registration/password_reset_confirm.html:12
-#: templates/registration/password_reset_form.html:11
+#: templates/registration/password_reset_confirm_code.html:25
+#: templates/registration/password_reset_form.html:29
msgid "Submit"
msgstr "Invia"
@@ -1058,7 +1174,7 @@ msgid "Log in"
msgstr "Registrati"
#: templates/registration/login.html:24
-#: templates/registration/password_reset_form.html:6
+#: templates/registration/password_reset_form.html:17
msgid "Forgot password?"
msgstr "Password dimenticata?"
@@ -1082,6 +1198,14 @@ msgstr ""
"Il link per il reset della password non era valido, probabilmente perché è "
"già stato uitilizzato. Richiedi un altro reset della password."
+#: templates/registration/password_reset_confirm_code.html:20
+msgid "Enter the code you've just received by SMS"
+msgstr ""
+
+#: templates/registration/password_reset_confirm_code.html:27
+msgid "Resend code"
+msgstr ""
+
#: templates/registration/password_reset_done.html:7
msgid ""
"We've emailed you instructions for setting your password, if an account "
@@ -1116,15 +1240,14 @@ msgstr ""
msgid "Sincerely, The Modoboa Team."
msgstr "Cordialmente, il Team Modoboa."
+#: templates/registration/password_reset_form.html:24
+msgid "Please fill-in your primary email address"
+msgstr ""
+
#: templates/registration/password_reset_subject.txt:3
msgid "Modoboa password reset"
msgstr "Modoboa password reset"
-#, fuzzy
-#~| msgid "Enable communication"
-#~ msgid "Enable LDAP synchronization"
-#~ msgstr "Abilita comunicazione"
-
#~ msgid "md5crypt (weak)"
#~ msgstr "md5crypt (debole)"
diff --git a/modoboa/locale/it/LC_MESSAGES/djangojs.po b/modoboa/locale/it/LC_MESSAGES/djangojs.po
index b6bff5b3e..5d5f95aab 100644
--- a/modoboa/locale/it/LC_MESSAGES/djangojs.po
+++ b/modoboa/locale/it/LC_MESSAGES/djangojs.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:
# Antonino Ioppolo , 2017
# Rocco , 2015
@@ -10,14 +10,13 @@ msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-03-09 16:48+0100\n"
-"PO-Revision-Date: 2017-09-19 18:38+0000\n"
-"Last-Translator: Antonino Ioppolo \n"
-"Language-Team: Italian (http://www.transifex.com/tonio/modoboa/language/"
-"it/)\n"
-"Language: it\n"
+"PO-Revision-Date: 2020-03-09 15:49+0000\n"
+"Last-Translator: Antoine Nguyen \n"
+"Language-Team: Italian (http://www.transifex.com/tonio/modoboa/language/it/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Language: it\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: bower_components/jquery-ui/jquery-ui.min.js:8
diff --git a/modoboa/locale/ja_JP/LC_MESSAGES/django.po b/modoboa/locale/ja_JP/LC_MESSAGES/django.po
index c6545418c..6dacbff04 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: 2020-03-09 16:48+0100\n"
+"POT-Creation-Date: 2020-05-06 13:15+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,41 +20,41 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-#: core/app_settings.py:20
+#: core/app_settings.py:26
#, fuzzy
#| msgid "Profile"
msgid "User profile"
msgstr "プロフィール"
-#: core/app_settings.py:33
+#: core/app_settings.py:39
msgid "Authentication"
msgstr "認証"
-#: core/app_settings.py:36
+#: core/app_settings.py:42
msgid "Authentication type"
msgstr "認証の種類"
-#: core/app_settings.py:37
+#: core/app_settings.py:43
msgid "Local"
msgstr "ローカル"
-#: core/app_settings.py:40
+#: core/app_settings.py:46
msgid "The backend used for authentication"
msgstr "認証に使用されるバックエンド"
-#: core/app_settings.py:45
+#: core/app_settings.py:51
msgid "Default password scheme"
msgstr "デフォルトのパスワードハッシュ"
-#: core/app_settings.py:50
+#: core/app_settings.py:56
msgid "Scheme used to crypt mailbox passwords"
msgstr "ハッシュは、メールボックスパスワードを暗号化するのに使われます"
-#: core/app_settings.py:54
+#: core/app_settings.py:60
msgid "Rounds"
msgstr "ラウンド"
-#: core/app_settings.py:57
+#: core/app_settings.py:63
msgid ""
"Number of rounds to use (only used by sha256crypt and sha512crypt). Must be "
"between 1000 and 999999999, inclusive."
@@ -62,125 +62,149 @@ msgstr ""
"ラウンド数は(sha256crypt と sha512crypt だけで)使用しています。\n"
"1000 から 999999999 の間でなければなりません。"
-#: core/app_settings.py:63
+#: core/app_settings.py:69
#, fuzzy
#| msgid "Default password scheme"
msgid "Update password scheme at login"
msgstr "デフォルトのパスワードハッシュ"
-#: core/app_settings.py:66
+#: core/app_settings.py:72
msgid "Update user password at login to use the default password scheme"
msgstr ""
-#: core/app_settings.py:71
+#: core/app_settings.py:77
#, fuzzy
#| msgid "Default password scheme"
msgid "Default password"
msgstr "デフォルトのパスワードハッシュ"
-#: core/app_settings.py:74
+#: core/app_settings.py:80
msgid "Default password for automatically created accounts."
msgstr ""
-#: core/app_settings.py:78
+#: core/app_settings.py:84
#, fuzzy
#| msgid "Bind password"
msgid "Random password length"
msgstr "Bind パスワード"
-#: core/app_settings.py:82
+#: core/app_settings.py:88
msgid "Length of randomly generated passwords."
msgstr ""
-#: core/app_settings.py:86
+#: core/app_settings.py:92
#, fuzzy
#| msgid "Default password scheme"
msgid "Update password service URL"
msgstr "デフォルトのパスワードハッシュ"
-#: core/app_settings.py:90
+#: core/app_settings.py:96
msgid ""
"The URL of an external page where users will be able to update their "
"password. It applies only to non local users, ie. those automatically "
"created after a successful external authentication (LDAP, SMTP)."
msgstr ""
-#: core/app_settings.py:98
+#: core/app_settings.py:104
+msgid "Password recovery announcement"
+msgstr ""
+
+#: core/app_settings.py:109
+msgid "A temporary message that will be displayed on the reset password page."
+msgstr ""
+
+#: core/app_settings.py:115
+msgid "Enable password recovery by SMS"
+msgstr ""
+
+#: core/app_settings.py:118
+msgid "Enable password recovery by SMS for users who filled a phone number."
+msgstr ""
+
+#: core/app_settings.py:124
+msgid "SMS provider"
+msgstr ""
+
+#: core/app_settings.py:127
+msgid "Choose a provider to send password recovery SMS"
+msgstr ""
+
+#: core/app_settings.py:133
msgid "LDAP settings"
msgstr "LDAP 設定"
-#: core/app_settings.py:101
+#: core/app_settings.py:136
msgid "Server address"
msgstr "サーバーアドレス"
-#: core/app_settings.py:104
+#: core/app_settings.py:139
msgid "The IP address or the DNS name of the LDAP server"
msgstr "LDAP サーバーの IP アドレス、または DNS 名"
-#: core/app_settings.py:108
+#: core/app_settings.py:143
msgid "Server port"
msgstr "サーバーポート"
-#: core/app_settings.py:110
+#: core/app_settings.py:145
msgid "The TCP port number used by the LDAP server"
msgstr "LDAP サーバーの TCP ポート番号"
-#: core/app_settings.py:114
+#: core/app_settings.py:149
msgid "Enable secondary server (fallback)"
msgstr ""
-#: core/app_settings.py:117
+#: core/app_settings.py:152
msgid ""
"Enable a secondary LDAP server which will be used if the primary one fails"
msgstr ""
-#: core/app_settings.py:123
+#: core/app_settings.py:158
#, fuzzy
#| msgid "Server address"
msgid "Secondary server address"
msgstr "サーバーアドレス"
-#: core/app_settings.py:126
+#: core/app_settings.py:161
#, fuzzy
#| msgid "The IP address or the DNS name of the LDAP server"
msgid "The IP address or the DNS name of the seondary LDAP server"
msgstr "LDAP サーバーの IP アドレス、または DNS 名"
-#: core/app_settings.py:130
+#: core/app_settings.py:165
#, fuzzy
#| msgid "Server port"
msgid "Secondary server port"
msgstr "サーバーポート"
-#: core/app_settings.py:133
+#: core/app_settings.py:168
#, fuzzy
#| msgid "The TCP port number used by the LDAP server"
msgid "The TCP port number used by the LDAP secondary server"
msgstr "LDAP サーバーの TCP ポート番号"
-#: core/app_settings.py:137
+#: core/app_settings.py:172
msgid "Use a secured connection"
msgstr "セキュアな接続を使う"
-#: core/app_settings.py:141
+#: core/app_settings.py:176
#, 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:145
+#: core/app_settings.py:180
msgid "Active Directory"
msgstr "Active Directory"
-#: core/app_settings.py:148
+#: core/app_settings.py:183
msgid "Tell if the LDAP server is an Active Directory one"
msgstr "LDAP サーバーが Active Directory かどうか"
-#: core/app_settings.py:152
+#: core/app_settings.py:187
msgid "Administrator groups"
msgstr "管理者グループ"
-#: core/app_settings.py:155
+#: core/app_settings.py:190
msgid ""
"Members of those LDAP Posix groups will be created as domain administrators. "
"Use ';' characters to separate groups."
@@ -189,57 +213,57 @@ msgstr ""
"す。\n"
"\";\" 文字を使って、複数グループを書けます。"
-#: core/app_settings.py:162
+#: core/app_settings.py:197
msgid "Group type"
msgstr "グループ種類"
-#: core/app_settings.py:166
+#: core/app_settings.py:201
msgid "The LDAP group type to use with your directory."
msgstr "ディレクトリで使用されている LDAP グループの種類"
-#: core/app_settings.py:171
+#: core/app_settings.py:206
msgid "Groups search base"
msgstr "グループの検索ベース"
-#: core/app_settings.py:174
+#: core/app_settings.py:209
msgid "The distinguished name of the search base used to find groups"
msgstr "グループを見つけるために使用される検索ベースの識別名(DN)"
-#: core/app_settings.py:180
+#: core/app_settings.py:215
msgid "Password attribute"
msgstr "パスワード属性"
-#: core/app_settings.py:182
+#: core/app_settings.py:217
msgid "The attribute used to store user passwords"
msgstr "ユーザーパスワードを格納するための属性"
-#: core/app_settings.py:187
+#: core/app_settings.py:222
#, fuzzy
#| msgid "Authentication method"
msgid "LDAP authentication settings"
msgstr "認証方法"
-#: core/app_settings.py:190
+#: core/app_settings.py:225
msgid "Authentication method"
msgstr "認証方法"
-#: core/app_settings.py:191
+#: core/app_settings.py:226
msgid "Search and bind"
msgstr "検索と Bind"
-#: core/app_settings.py:192
+#: core/app_settings.py:227
msgid "Direct bind"
msgstr "Bind"
-#: core/app_settings.py:194
+#: core/app_settings.py:229
msgid "Choose the authentication method to use"
msgstr "使用する認証方式を選択します"
-#: core/app_settings.py:198 core/app_settings.py:252
+#: core/app_settings.py:233 core/app_settings.py:287
msgid "Bind DN"
msgstr "Bind DN"
-#: core/app_settings.py:201 core/app_settings.py:255
+#: core/app_settings.py:236 core/app_settings.py:290
msgid ""
"The distinguished name to use when binding to the LDAP server. Leave empty "
"for an anonymous bind"
@@ -247,28 +271,28 @@ msgstr ""
"LDAPサーバにバインドするときの識別名に使用します。\n"
"匿名バインドのときは空のままにします。"
-#: core/app_settings.py:208 core/app_settings.py:262
+#: core/app_settings.py:243 core/app_settings.py:297
msgid "Bind password"
msgstr "Bind パスワード"
-#: core/app_settings.py:211 core/app_settings.py:265
+#: core/app_settings.py:246 core/app_settings.py:300
msgid "The password to use when binding to the LDAP server (with 'Bind DN')"
msgstr ""
"(\"Bind DN\" を使って) LDAPサーバにバインドするときに使用するパスワード"
-#: core/app_settings.py:219 core/app_settings.py:311
+#: core/app_settings.py:254 core/app_settings.py:346
msgid "Users search base"
msgstr "ユーザーの検索ベース"
-#: core/app_settings.py:222 core/app_settings.py:314
+#: core/app_settings.py:257 core/app_settings.py:349
msgid "The distinguished name of the search base used to find users"
msgstr "ユーザーを見つけるために使用される検索ベースの識別名(DN)"
-#: core/app_settings.py:228 core/app_settings.py:320
+#: core/app_settings.py:263 core/app_settings.py:355
msgid "Search filter"
msgstr "検索フィルター"
-#: core/app_settings.py:231 core/app_settings.py:323
+#: core/app_settings.py:266 core/app_settings.py:358
msgid ""
"An optional filter string (e.g. '(objectClass=person)'). In order to be "
"valid, it must be enclosed in parentheses."
@@ -276,11 +300,11 @@ msgstr ""
"オプションのフィルタ文字列 (例えば \"(objectClass=person)\") \n"
"有効であるためには、括弧で囲まなければなりません。"
-#: core/app_settings.py:238
+#: core/app_settings.py:273
msgid "User DN template"
msgstr "ユーザー DN テンプレート"
-#: core/app_settings.py:241
+#: core/app_settings.py:276
#, python-format
msgid ""
"The template used to construct a user's DN. It should contain one "
@@ -289,38 +313,38 @@ msgstr ""
"ユーザーDNを作るために使用されるテンプレート。1つのプレースホルダ (%(user)s)"
"が含まれている必要があります。"
-#: core/app_settings.py:249
+#: core/app_settings.py:284
#, fuzzy
#| msgid "LDAP settings"
msgid "LDAP synchronization settings"
msgstr "LDAP 設定"
-#: core/app_settings.py:273
+#: core/app_settings.py:308
msgid "Enable export to LDAP"
msgstr ""
-#: core/app_settings.py:276
+#: core/app_settings.py:311
msgid ""
"Enable automatic synchronization between local database and LDAP directory"
msgstr ""
-#: core/app_settings.py:282
+#: core/app_settings.py:317
msgid "Delete remote LDAP account when local account is deleted"
msgstr ""
-#: core/app_settings.py:286
+#: core/app_settings.py:321
msgid ""
"Delete remote LDAP account when local account is deleted, otherwise it will "
"be disabled."
msgstr ""
-#: core/app_settings.py:292
+#: core/app_settings.py:327
#, fuzzy
#| msgid "User DN template"
msgid "Account DN template"
msgstr "ユーザー DN テンプレート"
-#: core/app_settings.py:295
+#: core/app_settings.py:330
#, fuzzy, python-format
#| msgid ""
#| "The template used to construct a user's DN. It should contain one "
@@ -332,157 +356,174 @@ msgstr ""
"ユーザーDNを作るために使用されるテンプレート。1つのプレースホルダ (%(user)s)"
"が含まれている必要があります。"
-#: core/app_settings.py:302
+#: core/app_settings.py:337
msgid "Enable import from LDAP"
msgstr ""
-#: core/app_settings.py:305
+#: core/app_settings.py:340
msgid "Enable account synchronization from LDAP directory to local database"
msgstr ""
-#: core/app_settings.py:330
+#: core/app_settings.py:365
#, fuzzy
#| msgid "Password attribute"
msgid "Username attribute"
msgstr "パスワード属性"
-#: core/app_settings.py:333
+#: core/app_settings.py:368
msgid "The name of the LDAP attribute where the username can be found."
msgstr ""
-#: core/app_settings.py:337 core/templates/core/dashboard.html:5
+#: core/app_settings.py:373
+msgid "Enable Dovecot LDAP sync"
+msgstr ""
+
+#: core/app_settings.py:376
+msgid "LDAP authentication settings will be applied to Dovecot configuration."
+msgstr ""
+
+#: core/app_settings.py:382
+msgid "Dovecot LDAP config file"
+msgstr ""
+
+#: core/app_settings.py:386
+msgid ""
+"Location of the configuration file which contains Dovecot LDAP settings."
+msgstr ""
+
+#: core/app_settings.py:391 core/templates/core/dashboard.html:5
msgid "Dashboard"
msgstr ""
-#: core/app_settings.py:340
+#: core/app_settings.py:394
msgid "Custom RSS feed"
msgstr ""
-#: core/app_settings.py:343
+#: core/app_settings.py:397
msgid "Display custom RSS feed to resellers and domain administrators"
msgstr ""
-#: core/app_settings.py:348
+#: core/app_settings.py:402
msgid "Hide features widget"
msgstr ""
-#: core/app_settings.py:351
+#: core/app_settings.py:405
msgid "Hide features widget for resellers and domain administrators"
msgstr ""
-#: core/app_settings.py:355
+#: core/app_settings.py:409
msgid "Notifications"
msgstr "通知"
-#: core/app_settings.py:358
+#: core/app_settings.py:412
msgid "Sender address"
msgstr "送信者アドレス"
-#: core/app_settings.py:361
+#: core/app_settings.py:415
msgid "Email address used to send notifications."
msgstr "通知の送信に使われる電子メールアドレス"
-#: core/app_settings.py:365
+#: core/app_settings.py:419
msgid "Public API"
msgstr ""
-#: core/app_settings.py:368
+#: core/app_settings.py:422
msgid "Enable communication"
msgstr ""
-#: core/app_settings.py:371
+#: core/app_settings.py:425
msgid "Enable communication with Modoboa public API"
msgstr ""
-#: core/app_settings.py:375
+#: core/app_settings.py:429
msgid "Check new versions"
msgstr "新しいバージョンをチェックする"
-#: core/app_settings.py:378
+#: core/app_settings.py:432
msgid "Automatically checks if a newer version is available"
msgstr "新しいバージョンが利用可能かどうか、自動的にチェックする"
-#: core/app_settings.py:382
+#: core/app_settings.py:436
msgid "Send an email when new versions are found"
msgstr ""
-#: core/app_settings.py:385
+#: core/app_settings.py:439
msgid "Send an email to notify admins about new versions"
msgstr ""
-#: core/app_settings.py:389
+#: core/app_settings.py:443
msgid "Recipient"
msgstr ""
-#: core/app_settings.py:392
+#: core/app_settings.py:446
msgid "Recipient of new versions notification emails."
msgstr ""
-#: core/app_settings.py:397
+#: core/app_settings.py:451
msgid "Send statistics"
msgstr ""
-#: core/app_settings.py:400
+#: core/app_settings.py:454
msgid "Send statistics to Modoboa public API (counters and used extensions)"
msgstr ""
-#: core/app_settings.py:404
+#: core/app_settings.py:458
msgid "Miscellaneous"
msgstr "その他"
-#: core/app_settings.py:407
+#: core/app_settings.py:461
msgid "Inactive account threshold"
msgstr ""
-#: core/app_settings.py:410
+#: core/app_settings.py:464
msgid ""
"An account with a last login date greater than this threshold (in days) will "
"be considered as inactive"
msgstr ""
-#: core/app_settings.py:416
+#: core/app_settings.py:470
msgid "Top notifications check interval"
msgstr "トップの通知をチェックする間隔"
-#: core/app_settings.py:419
+#: core/app_settings.py:473
msgid "Interval between two top notification checks (in seconds)"
msgstr "2つのトップの通知チェックの間隔 (秒)"
-#: core/app_settings.py:424
+#: core/app_settings.py:478
msgid "Maximum log record age"
msgstr "最大ログ記録期間"
-#: core/app_settings.py:426
+#: core/app_settings.py:480
msgid "The maximum age in days of a log record"
msgstr "ログを記録する日数の最大期間"
-#: core/app_settings.py:430
+#: core/app_settings.py:484
msgid "Items per page"
msgstr "ページあたりの件数"
-#: core/app_settings.py:432
+#: core/app_settings.py:486
msgid "Number of displayed items per page"
msgstr "ページあたりに表示される項目の数"
-#: core/app_settings.py:436
+#: core/app_settings.py:490
msgid "Default top redirection"
msgstr "デフォルトのリダイレクト先"
-#: core/app_settings.py:440
+#: core/app_settings.py:494
msgid "The default redirection used when no application is specified"
msgstr ""
"アプリケーションが指定されていないときのデフォルトのリダイレクト先に使用され"
"ます"
-#: core/app_settings.py:478 core/app_settings.py:486
+#: core/app_settings.py:548 core/app_settings.py:556 core/app_settings.py:564
msgid "Invalid syntax"
msgstr "不正な構文"
-#: core/app_settings.py:492
+#: core/app_settings.py:570
msgid "Invalid rounds number"
msgstr "不正なラウンド数"
-#: core/app_settings.py:519
+#: core/app_settings.py:595 core/app_settings.py:597 core/app_settings.py:608
msgid "This field is required"
msgstr "このフィールドは必須です"
@@ -501,58 +542,78 @@ msgstr ""
msgid "Set `USE_TZ = True` in settings.py"
msgstr ""
-#: core/constants.py:5
+#: core/constants.py:6
msgid "Simple user"
msgstr "ユーザー"
-#: core/constants.py:6
+#: core/constants.py:7
msgid "Domain administrator"
msgstr "ドメイン管理者"
-#: core/constants.py:7
+#: core/constants.py:8
msgid "Reseller"
msgstr "リセーラー"
-#: core/constants.py:8
+#: core/constants.py:9
msgid "Super administrator"
msgstr "全体管理者"
-#: core/constants.py:51 lib/form_utils.py:389
+#: core/constants.py:52 lib/form_utils.py:389
msgid "No"
msgstr "いいえ"
-#: core/forms.py:18
+#: core/constants.py:102
+msgid "Choose a provider"
+msgstr ""
+
+#: core/constants.py:107
+msgid "Dummy"
+msgstr ""
+
+#: core/forms.py:21
msgid "Username"
msgstr "ユーザ名"
-#: core/forms.py:22
+#: core/forms.py:25
msgid "Password"
msgstr "パスワード"
-#: core/forms.py:35
+#: core/forms.py:38
msgid "Old password"
msgstr "現在のパスワード"
-#: core/forms.py:39
+#: core/forms.py:42
msgid "New password"
msgstr "新しいパスワード"
-#: core/forms.py:43
+#: core/forms.py:46
msgid "Confirmation"
msgstr "確認"
-#: core/forms.py:71
+#: core/forms.py:74
msgid "Old password mismatchs"
msgstr "現在のパスワードが一致しません"
-#: core/forms.py:80
+#: core/forms.py:83
msgid "Passwords mismatch"
msgstr "パスワード不一致"
-#: core/forms.py:100
+#: core/forms.py:103
msgid "Enable API access"
msgstr "API アクセスを有効にします"
+#: core/forms.py:137
+#, fuzzy
+#| msgid "Notifications"
+msgid "Verification code"
+msgstr "通知"
+
+#: core/forms.py:148
+#, fuzzy
+#| msgid "Invalid line"
+msgid "Invalid code"
+msgstr "不正な行"
+
#: core/handlers.py:36
msgid "added"
msgstr "追加しました"
@@ -598,67 +659,67 @@ msgstr "1つ以上のアップデートが利用できます"
msgid "[modoboa] Update(s) available"
msgstr "1つ以上のアップデートが利用できます"
-#: core/models.py:53
+#: core/models.py:55
msgid "Allow mailboxes access"
msgstr "メールボックスのアクセスを許可する"
-#: core/models.py:55
+#: core/models.py:57
msgid "Allow this administrator to access user mailboxes"
msgstr "ユーザーのメールボックスアクセスをこの管理者に許可する"
-#: core/models.py:58
+#: core/models.py:60
msgid "password"
msgstr "パスワード"
-#: core/models.py:61
+#: core/models.py:63
msgid "language"
msgstr ""
-#: core/models.py:64
+#: core/models.py:66
msgid "Prefered language to display pages."
msgstr "ページの表示に優先言語を使う"
-#: core/models.py:68
+#: core/models.py:70
msgid "Phone number"
msgstr "電話番号"
-#: core/models.py:70
+#: core/models.py:72
msgid "Secondary email"
msgstr "2つめの電子メール"
-#: core/models.py:73
+#: core/models.py:75
msgid "An alternative e-mail address, can be used for recovery needs."
msgstr "別の電子メールアドレスは、回復の必要のために使用することができます。"
-#: core/models.py:124
+#: core/models.py:126
msgid "Failed to update password: LDAP module not installed"
msgstr ""
"パスワードの更新に失敗しました : LDAP モジュールがインストールされていませ"
"ん。"
-#: core/models.py:153
+#: core/models.py:155
msgid "account"
msgstr "アカウント"
-#: core/models.py:280
+#: core/models.py:282
msgid "Unknown"
msgstr ""
-#: core/models.py:314
+#: core/models.py:316
msgid "Invalid line"
msgstr "不正な行"
-#: core/models.py:322
+#: core/models.py:324
msgid "You can't import an account with a role greater than yours"
msgstr "あなた以上のロールを持ったアカウントはインポートできません"
-#: core/models.py:337
+#: core/models.py:339
#, python-format
msgid "The simple user '%s' must have a valid email address"
msgstr ""
"ユーザー \"%s\" は、正しい電子メールアドレスを持っていなければいけません"
-#: core/models.py:342
+#: core/models.py:344
#, python-format
msgid "username and email fields must not differ for '%s'"
msgstr "\"%s\" のユーザー名と電子メールフィールドが同一である必要があります。"
@@ -687,6 +748,54 @@ msgstr[0] ""
msgid "Your password must contain a combination of different character types."
msgstr ""
+#: core/sms_backends/ovh.py:19
+msgid "API endpoint"
+msgstr ""
+
+#: core/sms_backends/ovh.py:22
+msgid "OVH Europe"
+msgstr ""
+
+#: core/sms_backends/ovh.py:23
+msgid "OVH US"
+msgstr ""
+
+#: core/sms_backends/ovh.py:24
+msgid "OVH North-America"
+msgstr ""
+
+#: core/sms_backends/ovh.py:25
+msgid "So you Start Europe"
+msgstr ""
+
+#: core/sms_backends/ovh.py:26
+msgid "So you Start North America"
+msgstr ""
+
+#: core/sms_backends/ovh.py:27
+msgid "Kimsufi Europe"
+msgstr ""
+
+#: core/sms_backends/ovh.py:28
+msgid "Kimsufi North America"
+msgstr ""
+
+#: core/sms_backends/ovh.py:35
+#, fuzzy
+#| msgid "Applications"
+msgid "Application key"
+msgstr "アプリケーション"
+
+#: core/sms_backends/ovh.py:42
+#, fuzzy
+#| msgid "Applications"
+msgid "Application secret"
+msgstr "アプリケーション"
+
+#: core/sms_backends/ovh.py:50
+msgid "Consumer key"
+msgstr ""
+
#: core/templates/core/_current_features.html:6
msgid "Features looking for sponsoring"
msgstr ""
@@ -896,31 +1005,35 @@ msgstr "Modoboaのコア部分"
msgid "Parameters saved"
msgstr "パラメータが保存されました"
-#: core/views/auth.py:46
+#: core/views/auth.py:59
#, python-format
msgid "Password scheme mismatch. Updating %s password"
msgstr ""
-#: core/views/auth.py:53
+#: core/views/auth.py:66
#, python-format
msgid "Password hash parameter missmatch. Updating %s password"
msgstr ""
-#: core/views/auth.py:69
+#: core/views/auth.py:82
#, python-format
msgid "User '%s' successfully logged in"
msgstr "ユーザー \"%s\" がログインに成功しました"
-#: core/views/auth.py:77
+#: core/views/auth.py:90
msgid "Your username and password didn't match. Please try again."
msgstr "ユーザー名とパスワードが一致しません。やり直してください。"
-#: core/views/auth.py:112
+#: core/views/auth.py:125
#, fuzzy
#| msgid "User '%s' successfully logged in"
msgid "User '{}' successfully logged out"
msgstr "ユーザー \"%s\" がログインに成功しました"
+#: core/views/auth.py:170 core/views/auth.py:225
+msgid "Please use the following code to recover your Modoboa password: {}"
+msgstr ""
+
#: core/views/user.py:53
msgid "Profile updated"
msgstr "プロフィールが更新されました"
@@ -960,7 +1073,8 @@ msgid "Enter a valid email address."
msgstr "正しいメールアドレスを入力してください"
#: lib/form_utils.py:77 templates/registration/password_reset_confirm.html:12
-#: templates/registration/password_reset_form.html:11
+#: templates/registration/password_reset_confirm_code.html:25
+#: templates/registration/password_reset_form.html:29
msgid "Submit"
msgstr "送信"
@@ -1047,7 +1161,7 @@ msgid "Log in"
msgstr "ログイン"
#: templates/registration/login.html:24
-#: templates/registration/password_reset_form.html:6
+#: templates/registration/password_reset_form.html:17
#, fuzzy
#| msgid "password"
msgid "Forgot password?"
@@ -1072,6 +1186,14 @@ msgid ""
"used. Please request a new password reset."
msgstr ""
+#: templates/registration/password_reset_confirm_code.html:20
+msgid "Enter the code you've just received by SMS"
+msgstr ""
+
+#: templates/registration/password_reset_confirm_code.html:27
+msgid "Resend code"
+msgstr ""
+
#: templates/registration/password_reset_done.html:7
msgid ""
"We've emailed you instructions for setting your password, if an account "
@@ -1097,6 +1219,10 @@ msgstr ""
msgid "Sincerely, The Modoboa Team."
msgstr ""
+#: templates/registration/password_reset_form.html:24
+msgid "Please fill-in your primary email address"
+msgstr ""
+
#: templates/registration/password_reset_subject.txt:3
msgid "Modoboa password reset"
msgstr ""
diff --git a/modoboa/locale/ja_JP/LC_MESSAGES/djangojs.po b/modoboa/locale/ja_JP/LC_MESSAGES/djangojs.po
index ac74a45f6..9eaa9a7a4 100644
--- a/modoboa/locale/ja_JP/LC_MESSAGES/djangojs.po
+++ b/modoboa/locale/ja_JP/LC_MESSAGES/djangojs.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:
# cwatanab , 2016
msgid ""
@@ -9,14 +9,13 @@ msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-03-09 16:48+0100\n"
-"PO-Revision-Date: 2016-06-07 06:57+0000\n"
-"Last-Translator: cwatanab \n"
-"Language-Team: Japanese (Japan) (http://www.transifex.com/tonio/modoboa/"
-"language/ja_JP/)\n"
-"Language: ja_JP\n"
+"PO-Revision-Date: 2020-03-09 15:49+0000\n"
+"Last-Translator: Antoine Nguyen \n"
+"Language-Team: Japanese (Japan) (http://www.transifex.com/tonio/modoboa/language/ja_JP/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Language: ja_JP\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#: bower_components/jquery-ui/jquery-ui.min.js:8
diff --git a/modoboa/locale/nl_NL/LC_MESSAGES/django.po b/modoboa/locale/nl_NL/LC_MESSAGES/django.po
index e344b23d7..6cf8fe3f6 100644
--- a/modoboa/locale/nl_NL/LC_MESSAGES/django.po
+++ b/modoboa/locale/nl_NL/LC_MESSAGES/django.po
@@ -1,498 +1,492 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
-#
+#
# Translators:
# Andrew , 2014
+# Chris de Gelder , 2017
+# Fred Durst , 2019
+# Harrie v.d. Vegt , 2016
+# Peter van den Heuvel , 2017
+# Remco de Hiep , 2017
+# R Kloosterman , 2016
+# TuxBrother , 2014
+# Tuxis Internet Engineering V.O.F. , 2016
+# Tuxis Internet Engineering V.O.F. , 2017
# TuxBrother , 2014
msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-03-09 16:48+0100\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/"
-"modoboa/language/nl_NL/)\n"
-"Language: nl_NL\n"
+"POT-Creation-Date: 2020-05-06 13:15+0200\n"
+"PO-Revision-Date: 2020-05-06 11:16+0000\n"
+"Last-Translator: Antoine Nguyen \n"
+"Language-Team: Dutch (Netherlands) (http://www.transifex.com/tonio/modoboa/language/nl_NL/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Language: nl_NL\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: core/app_settings.py:20
-#, fuzzy
-#| msgid "Profile"
+#: core/app_settings.py:26
msgid "User profile"
-msgstr "Profiel"
+msgstr "Gebruikersprofiel"
-#: core/app_settings.py:33
+#: core/app_settings.py:39
msgid "Authentication"
msgstr "Authenticatie"
-#: core/app_settings.py:36
+#: core/app_settings.py:42
msgid "Authentication type"
msgstr "Authenticatie type"
-#: core/app_settings.py:37
+#: core/app_settings.py:43
msgid "Local"
msgstr "Lokaal"
-#: core/app_settings.py:40
+#: core/app_settings.py:46
msgid "The backend used for authentication"
msgstr "De backend gebruikt voor authenticatie"
-#: core/app_settings.py:45
+#: core/app_settings.py:51
msgid "Default password scheme"
msgstr "Standaard wachtwoord encryptiemethode"
-#: core/app_settings.py:50
+#: core/app_settings.py:56
msgid "Scheme used to crypt mailbox passwords"
-msgstr "Schema dat gebruikt word om mailbox wachtwoorden te versleutelen"
+msgstr "Schema dat gebruikt wordt om mailboxwachtwoorden te versleutelen"
-#: core/app_settings.py:54
+#: core/app_settings.py:60
msgid "Rounds"
msgstr "Rondes"
-#: core/app_settings.py:57
+#: core/app_settings.py:63
msgid ""
"Number of rounds to use (only used by sha256crypt and sha512crypt). Must be "
"between 1000 and 999999999, inclusive."
-msgstr ""
-"Nummer van te gebruiken randomizeringsrondes (alleen bij sha256crypt en "
-"sha512crypt). Moet tussen de 1000 en 999999999 liggen."
+msgstr "Nummer van te gebruiken randomizeringsrondes (alleen bij sha256crypt en sha512crypt). Moet tussen de 1000 en 999999999 liggen."
-#: core/app_settings.py:63
-#, fuzzy
-#| msgid "Default password scheme"
+#: core/app_settings.py:69
msgid "Update password scheme at login"
-msgstr "Standaard wachtwoord encryptiemethode"
+msgstr ""
-#: core/app_settings.py:66
+#: core/app_settings.py:72
msgid "Update user password at login to use the default password scheme"
-msgstr ""
+msgstr "Update gebruikerswachtwoord bij het inloggen om het standaard wachtwoord schema te gebruiken. "
-#: core/app_settings.py:71
-#, fuzzy
-#| msgid "Default password scheme"
+#: core/app_settings.py:77
msgid "Default password"
-msgstr "Standaard wachtwoord encryptiemethode"
+msgstr "Standaard wachtwoord"
-#: core/app_settings.py:74
+#: core/app_settings.py:80
msgid "Default password for automatically created accounts."
-msgstr ""
+msgstr "Standaard wachtwoord voor automatisch gecreëerde accounts."
-#: core/app_settings.py:78
-#, fuzzy
-#| msgid "Bind password"
+#: core/app_settings.py:84
msgid "Random password length"
-msgstr "Koppel wachtwoord"
+msgstr "Lengte willekeurig wachtwoord"
-#: core/app_settings.py:82
+#: core/app_settings.py:88
msgid "Length of randomly generated passwords."
+msgstr "Lengte van willekeurig gegenereerde wachtwoorden"
+
+#: core/app_settings.py:92
+msgid "Update password service URL"
msgstr ""
-#: core/app_settings.py:86
-#, fuzzy
-#| msgid "Default password scheme"
-msgid "Update password service URL"
-msgstr "Standaard wachtwoord encryptiemethode"
-
-#: core/app_settings.py:90
+#: core/app_settings.py:96
msgid ""
"The URL of an external page where users will be able to update their "
"password. It applies only to non local users, ie. those automatically "
"created after a successful external authentication (LDAP, SMTP)."
msgstr ""
-#: core/app_settings.py:98
+#: core/app_settings.py:104
+msgid "Password recovery announcement"
+msgstr ""
+
+#: core/app_settings.py:109
+msgid "A temporary message that will be displayed on the reset password page."
+msgstr ""
+
+#: core/app_settings.py:115
+msgid "Enable password recovery by SMS"
+msgstr ""
+
+#: core/app_settings.py:118
+msgid "Enable password recovery by SMS for users who filled a phone number."
+msgstr ""
+
+#: core/app_settings.py:124
+msgid "SMS provider"
+msgstr ""
+
+#: core/app_settings.py:127
+msgid "Choose a provider to send password recovery SMS"
+msgstr ""
+
+#: core/app_settings.py:133
msgid "LDAP settings"
msgstr "LDAP instellingen"
-#: core/app_settings.py:101
+#: core/app_settings.py:136
msgid "Server address"
-msgstr "Server adres"
+msgstr "Serveradres"
-#: core/app_settings.py:104
+#: core/app_settings.py:139
msgid "The IP address or the DNS name of the LDAP server"
-msgstr "Het IP adres of de DNS naam van LDAP server"
+msgstr "Het IP-adres of de hostname van LDAP-server"
-#: core/app_settings.py:108
+#: core/app_settings.py:143
msgid "Server port"
-msgstr "Server poort"
+msgstr "Serverpoort"
-#: core/app_settings.py:110
+#: core/app_settings.py:145
msgid "The TCP port number used by the LDAP server"
-msgstr "Het TCP poortnummer gebruikt door de LDAP server"
+msgstr "Het TCP poortnummer van de LDAP-server"
-#: core/app_settings.py:114
+#: core/app_settings.py:149
msgid "Enable secondary server (fallback)"
msgstr ""
-#: core/app_settings.py:117
+#: core/app_settings.py:152
msgid ""
"Enable a secondary LDAP server which will be used if the primary one fails"
msgstr ""
-#: core/app_settings.py:123
-#, fuzzy
-#| msgid "Server address"
+#: core/app_settings.py:158
msgid "Secondary server address"
-msgstr "Server adres"
+msgstr ""
-#: core/app_settings.py:126
-#, fuzzy
-#| msgid "The IP address or the DNS name of the LDAP server"
+#: core/app_settings.py:161
msgid "The IP address or the DNS name of the seondary LDAP server"
-msgstr "Het IP adres of de DNS naam van LDAP server"
+msgstr ""
-#: core/app_settings.py:130
-#, fuzzy
-#| msgid "Server port"
+#: core/app_settings.py:165
msgid "Secondary server port"
-msgstr "Server poort"
+msgstr ""
-#: core/app_settings.py:133
-#, fuzzy
-#| msgid "The TCP port number used by the LDAP server"
+#: core/app_settings.py:168
msgid "The TCP port number used by the LDAP secondary server"
-msgstr "Het TCP poortnummer gebruikt door de LDAP server"
+msgstr ""
-#: core/app_settings.py:137
+#: core/app_settings.py:172
msgid "Use a secured connection"
msgstr "Gebruik een beveiligde verbinding"
-#: core/app_settings.py:141
-#, fuzzy
-#| msgid "Use an SSL/TLS connection to access the LDAP server"
+#: core/app_settings.py:176
msgid "Use an SSL/STARTTLS connection to access the LDAP server"
-msgstr "Gebruik een SSL/TLS verbinding met de LDAP server"
+msgstr "Gebruik een SSL/TLS verbinding met de LDAP-server"
-#: core/app_settings.py:145
+#: core/app_settings.py:180
msgid "Active Directory"
msgstr "Active Directory"
-#: core/app_settings.py:148
+#: core/app_settings.py:183
msgid "Tell if the LDAP server is an Active Directory one"
-msgstr "De LDAP server is een Active Directory"
+msgstr "De LDAP-server is een Active Directory"
-#: core/app_settings.py:152
+#: core/app_settings.py:187
msgid "Administrator groups"
-msgstr "Administrator groepen"
+msgstr "Beheerdergroepen"
-#: core/app_settings.py:155
+#: core/app_settings.py:190
msgid ""
-"Members of those LDAP Posix groups will be created as domain administrators. "
-"Use ';' characters to separate groups."
-msgstr ""
-"Leden van deze LDAP POSIX groepen zullen aangemaakt worden als domein "
-"administrators. Gebruik ';' karakters om groepen te scheiden."
+"Members of those LDAP Posix groups will be created as domain administrators."
+" Use ';' characters to separate groups."
+msgstr "Leden van deze LDAP POSIX-groepen zullen aangemaakt worden als domeinbeheerders. Gebruik ';' karakters om groepen te scheiden."
-#: core/app_settings.py:162
-#, fuzzy
-#| msgid "Group name"
+#: core/app_settings.py:197
msgid "Group type"
-msgstr "Groep naam"
+msgstr "Groeptype"
-#: core/app_settings.py:166
+#: core/app_settings.py:201
msgid "The LDAP group type to use with your directory."
-msgstr ""
+msgstr "De LDAP groeptype dat wordt gebruikt voor uw LDAP-directory."
-#: core/app_settings.py:171
+#: core/app_settings.py:206
msgid "Groups search base"
-msgstr "Groepen zoek basis"
+msgstr "Groepen zoekbasis"
-#: core/app_settings.py:174
+#: core/app_settings.py:209
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:180
+#: core/app_settings.py:215
msgid "Password attribute"
msgstr "Wachtwoord attribuut"
-#: core/app_settings.py:182
+#: core/app_settings.py:217
msgid "The attribute used to store user passwords"
-msgstr "Dit attribuut word gebruikt om wachtwoorden op te slaan"
+msgstr "Het attribuut dat gebruikt wordt om wachtwoorden op te slaan"
-#: core/app_settings.py:187
-#, fuzzy
-#| msgid "Authentication method"
+#: core/app_settings.py:222
msgid "LDAP authentication settings"
-msgstr "Authenticatie methode"
+msgstr ""
-#: core/app_settings.py:190
+#: core/app_settings.py:225
msgid "Authentication method"
-msgstr "Authenticatie methode"
+msgstr "Authenticatiemethode"
-#: core/app_settings.py:191
+#: core/app_settings.py:226
msgid "Search and bind"
msgstr "Zoeken en koppelen"
-#: core/app_settings.py:192
+#: core/app_settings.py:227
msgid "Direct bind"
msgstr "Directe koppeling"
-#: core/app_settings.py:194
+#: core/app_settings.py:229
msgid "Choose the authentication method to use"
-msgstr "Kies een authenticatie methode om te gebruiken"
+msgstr "Kies de te gebruiken authenticatiemethode"
-#: core/app_settings.py:198 core/app_settings.py:252
+#: core/app_settings.py:233 core/app_settings.py:287
msgid "Bind DN"
msgstr "Koppeling DN"
-#: core/app_settings.py:201 core/app_settings.py:255
+#: core/app_settings.py:236 core/app_settings.py:290
msgid ""
"The distinguished name to use when binding to the LDAP server. Leave empty "
"for an anonymous bind"
-msgstr ""
-"De gedistingeerde naam om te gebruiken bij het koppeling met de LDAP server. "
-"Laat leeg voor een anonieme koppeling."
+msgstr "De gedistingeerde naam om te gebruiken bij het koppelen met de LDAP-server. Laat leeg voor een anonieme koppeling."
-#: core/app_settings.py:208 core/app_settings.py:262
+#: core/app_settings.py:243 core/app_settings.py:297
msgid "Bind password"
msgstr "Koppel wachtwoord"
-#: core/app_settings.py:211 core/app_settings.py:265
+#: core/app_settings.py:246 core/app_settings.py:300
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')"
+msgstr "Het wachtwoord om te gebruiken tijdens het koppelen met de LDAP-server (met 'koppel DN')"
-#: core/app_settings.py:219 core/app_settings.py:311
+#: core/app_settings.py:254 core/app_settings.py:346
msgid "Users search base"
msgstr "Gebruikers zoekbasis"
-#: core/app_settings.py:222 core/app_settings.py:314
+#: core/app_settings.py:257 core/app_settings.py:349
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:228 core/app_settings.py:320
+#: core/app_settings.py:263 core/app_settings.py:355
msgid "Search filter"
-msgstr "Zoek filter"
+msgstr "Zoekfilter"
-#: core/app_settings.py:231 core/app_settings.py:323
+#: core/app_settings.py:266 core/app_settings.py:358
msgid ""
"An optional filter string (e.g. '(objectClass=person)'). In order to be "
"valid, it must be enclosed in parentheses."
-msgstr ""
-"Een optionele filter string (zoals '(objectClass=person)'). Om geldig te "
-"kunnen zijn, moet het ingesloten zijn tussen haakjes."
+msgstr "Een optionele filter string (zoals '(objectClass=person)'). Om geldig te kunnen zijn, moet het tussen haakjes staan."
-#: core/app_settings.py:238
+#: core/app_settings.py:273
msgid "User DN template"
msgstr "Gebruiker DN template"
-#: core/app_settings.py:241
+#: core/app_settings.py:276
#, python-format
msgid ""
"The template used to construct a user's DN. It should contain one "
"placeholder (ie. %(user)s)"
-msgstr ""
-"Het template dat gebruikt word om een gebruiker zijn/haar DN op te bouwen. "
-"Het moet een placeholder bevatten (bijvoorbeeld. %(user)s)"
+msgstr "Het template dat gebruikt wordt om een gebruiker zijn/haar DN op te bouwen. Het moet een placeholder bevatten (bijvoorbeeld. %(user)s)"
-#: core/app_settings.py:249
-#, fuzzy
-#| msgid "LDAP settings"
+#: core/app_settings.py:284
msgid "LDAP synchronization settings"
-msgstr "LDAP instellingen"
+msgstr ""
-#: core/app_settings.py:273
+#: core/app_settings.py:308
msgid "Enable export to LDAP"
msgstr ""
-#: core/app_settings.py:276
+#: core/app_settings.py:311
msgid ""
"Enable automatic synchronization between local database and LDAP directory"
msgstr ""
-#: core/app_settings.py:282
+#: core/app_settings.py:317
msgid "Delete remote LDAP account when local account is deleted"
msgstr ""
-#: core/app_settings.py:286
+#: core/app_settings.py:321
msgid ""
"Delete remote LDAP account when local account is deleted, otherwise it will "
"be disabled."
msgstr ""
-#: core/app_settings.py:292
-#, fuzzy
-#| msgid "User DN template"
+#: core/app_settings.py:327
msgid "Account DN template"
-msgstr "Gebruiker DN template"
+msgstr ""
-#: core/app_settings.py:295
-#, fuzzy, python-format
-#| msgid ""
-#| "The template used to construct a user's DN. It should contain one "
-#| "placeholder (ie. %(user)s)"
+#: core/app_settings.py:330
+#, python-format
msgid ""
"The template used to construct an account's DN. It should contain one "
"placeholder (ie. %(user)s)"
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:302
+#: core/app_settings.py:337
msgid "Enable import from LDAP"
msgstr ""
-#: core/app_settings.py:305
+#: core/app_settings.py:340
msgid "Enable account synchronization from LDAP directory to local database"
msgstr ""
-#: core/app_settings.py:330
-#, fuzzy
-#| msgid "Password attribute"
-msgid "Username attribute"
-msgstr "Wachtwoord attribuut"
-
-#: core/app_settings.py:333
-msgid "The name of the LDAP attribute where the username can be found."
-msgstr ""
-
-#: core/app_settings.py:337 core/templates/core/dashboard.html:5
-msgid "Dashboard"
-msgstr ""
-
-#: core/app_settings.py:340
-msgid "Custom RSS feed"
-msgstr ""
-
-#: core/app_settings.py:343
-msgid "Display custom RSS feed to resellers and domain administrators"
-msgstr ""
-
-#: core/app_settings.py:348
-msgid "Hide features widget"
-msgstr ""
-
-#: core/app_settings.py:351
-msgid "Hide features widget for resellers and domain administrators"
-msgstr ""
-
-#: core/app_settings.py:355
-#, fuzzy
-#| msgid "Authentication"
-msgid "Notifications"
-msgstr "Authenticatie"
-
-#: core/app_settings.py:358
-#, fuzzy
-#| msgid "Server address"
-msgid "Sender address"
-msgstr "Server adres"
-
-#: core/app_settings.py:361
-msgid "Email address used to send notifications."
-msgstr ""
-
#: core/app_settings.py:365
-msgid "Public API"
+msgid "Username attribute"
msgstr ""
#: core/app_settings.py:368
+msgid "The name of the LDAP attribute where the username can be found."
+msgstr ""
+
+#: core/app_settings.py:373
+msgid "Enable Dovecot LDAP sync"
+msgstr ""
+
+#: core/app_settings.py:376
+msgid "LDAP authentication settings will be applied to Dovecot configuration."
+msgstr ""
+
+#: core/app_settings.py:382
+msgid "Dovecot LDAP config file"
+msgstr ""
+
+#: core/app_settings.py:386
+msgid ""
+"Location of the configuration file which contains Dovecot LDAP settings."
+msgstr ""
+
+#: core/app_settings.py:391 core/templates/core/dashboard.html:5
+msgid "Dashboard"
+msgstr "Bedieningspaneel"
+
+#: core/app_settings.py:394
+msgid "Custom RSS feed"
+msgstr "Aangepaste RSS feed."
+
+#: core/app_settings.py:397
+msgid "Display custom RSS feed to resellers and domain administrators"
+msgstr "Toon aangepaste RSS feed aan resellers en domein beheerders. "
+
+#: core/app_settings.py:402
+msgid "Hide features widget"
+msgstr "Verberg opties widget"
+
+#: core/app_settings.py:405
+msgid "Hide features widget for resellers and domain administrators"
+msgstr "Verberg features widget voor resellers en domein administrators. "
+
+#: core/app_settings.py:409
+msgid "Notifications"
+msgstr "Notificaties"
+
+#: core/app_settings.py:412
+msgid "Sender address"
+msgstr "Afzenderadres"
+
+#: core/app_settings.py:415
+msgid "Email address used to send notifications."
+msgstr "E-mailadres dat gebruikt wordt om notificaties te versturen"
+
+#: core/app_settings.py:419
+msgid "Public API"
+msgstr "Publieke API"
+
+#: core/app_settings.py:422
msgid "Enable communication"
-msgstr ""
+msgstr "Communicatie toestaan"
-#: core/app_settings.py:371
+#: core/app_settings.py:425
msgid "Enable communication with Modoboa public API"
-msgstr ""
+msgstr "Communicatie met publieke Modoboa API toestaan"
-#: core/app_settings.py:375
+#: core/app_settings.py:429
msgid "Check new versions"
msgstr "Controleer of er een nieuwe versie beschikbaar is"
-#: core/app_settings.py:378
+#: core/app_settings.py:432
msgid "Automatically checks if a newer version is available"
-msgstr "Automatische controle voor nieuwe versies"
+msgstr "Controleert automatisch of een nieuwere versie beschikbaar is"
-#: core/app_settings.py:382
+#: core/app_settings.py:436
msgid "Send an email when new versions are found"
msgstr ""
-#: core/app_settings.py:385
+#: core/app_settings.py:439
msgid "Send an email to notify admins about new versions"
msgstr ""
-#: core/app_settings.py:389
+#: core/app_settings.py:443
msgid "Recipient"
msgstr ""
-#: core/app_settings.py:392
+#: core/app_settings.py:446
msgid "Recipient of new versions notification emails."
msgstr ""
-#: core/app_settings.py:397
+#: core/app_settings.py:451
msgid "Send statistics"
-msgstr ""
+msgstr "Verstuur statistieken"
-#: core/app_settings.py:400
+#: core/app_settings.py:454
msgid "Send statistics to Modoboa public API (counters and used extensions)"
-msgstr ""
+msgstr "Verstuur statistieken naar de publieke Modoboa API (statistieken en gebruikte extenties)"
-#: core/app_settings.py:404
+#: core/app_settings.py:458
msgid "Miscellaneous"
msgstr "Diversen"
-#: core/app_settings.py:407
+#: core/app_settings.py:461
msgid "Inactive account threshold"
-msgstr ""
+msgstr "Drempelwaarde inactieve gebruikers"
-#: core/app_settings.py:410
+#: core/app_settings.py:464
msgid ""
-"An account with a last login date greater than this threshold (in days) will "
-"be considered as inactive"
-msgstr ""
+"An account with a last login date greater than this threshold (in days) will"
+" be considered as inactive"
+msgstr "Een gebruiker die langer dan dit aantal dagen niet ingelogd is, wordt op inactief gezet."
-#: core/app_settings.py:416
+#: core/app_settings.py:470
msgid "Top notifications check interval"
msgstr "Top notificaties controle interval"
-#: core/app_settings.py:419
-#, fuzzy
-#| msgid "Interval between two top notification checks"
+#: core/app_settings.py:473
msgid "Interval between two top notification checks (in seconds)"
-msgstr "Interval tussen twee top notificatie checks"
+msgstr "Interval tussen twee notificatiecontroles (in seconden)"
-#: core/app_settings.py:424
+#: core/app_settings.py:478
msgid "Maximum log record age"
msgstr "Maximum bewaartijd van logs"
-#: core/app_settings.py:426
+#: core/app_settings.py:480
msgid "The maximum age in days of a log record"
msgstr "De maximum bewaartijd in dagen van een log record"
-#: core/app_settings.py:430
+#: core/app_settings.py:484
msgid "Items per page"
msgstr "Items per pagina"
-#: core/app_settings.py:432
+#: core/app_settings.py:486
msgid "Number of displayed items per page"
-msgstr "Hoeveelheid items per pagina"
+msgstr "Aantal getoonde items per pagina"
-#: core/app_settings.py:436
+#: core/app_settings.py:490
msgid "Default top redirection"
msgstr "Standaard top omleiding"
-#: core/app_settings.py:440
+#: core/app_settings.py:494
msgid "The default redirection used when no application is specified"
-msgstr ""
-"De standaard omleiding die gebruikt word als er geen andere applicatie is "
-"opgegeven"
+msgstr "De standaard omleiding die gebruikt wordt als er geen andere applicatie is opgegeven"
-#: core/app_settings.py:478 core/app_settings.py:486
+#: core/app_settings.py:548 core/app_settings.py:556 core/app_settings.py:564
msgid "Invalid syntax"
msgstr "Ongeldige zinsbouw"
-#: core/app_settings.py:492
+#: core/app_settings.py:570
msgid "Invalid rounds number"
msgstr "Ongeldig nummer van rondes"
-#: core/app_settings.py:519
+#: core/app_settings.py:595 core/app_settings.py:597 core/app_settings.py:608
msgid "This field is required"
-msgstr "Dit veld is benodigd"
+msgstr "Dit veld is verplicht"
#: core/apps.py:18
msgid "General"
@@ -503,64 +497,78 @@ 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 ""
+msgstr "USE_TZ staat op 'False', dit kan voor problemen zorgen tijdens de transitie tussen zomer- en wintertijd (bijv. dezelfde locale tijd komt twee keer voor door de tijdsverandering)"
#: core/checks/settings_checks.py:9
msgid "Set `USE_TZ = True` in settings.py"
-msgstr ""
+msgstr "Zet 'USE_TZ = TRUE' in settings.py"
-#: core/constants.py:5
+#: core/constants.py:6
msgid "Simple user"
msgstr "Gebruiker"
-#: core/constants.py:6
-#, fuzzy
-#| msgid "Super administrator"
-msgid "Domain administrator"
-msgstr "Hoofdbeheerder"
-
#: core/constants.py:7
-msgid "Reseller"
-msgstr ""
+msgid "Domain administrator"
+msgstr "Domeinbeheerder"
#: core/constants.py:8
+msgid "Reseller"
+msgstr "Wederverkoper"
+
+#: core/constants.py:9
msgid "Super administrator"
msgstr "Hoofdbeheerder"
-#: core/constants.py:51 lib/form_utils.py:389
+#: core/constants.py:52 lib/form_utils.py:389
msgid "No"
msgstr "Nee"
-#: core/forms.py:18
+#: core/constants.py:102
+msgid "Choose a provider"
+msgstr ""
+
+#: core/constants.py:107
+msgid "Dummy"
+msgstr ""
+
+#: core/forms.py:21
msgid "Username"
msgstr "Gebruikersnaam"
-#: core/forms.py:22
+#: core/forms.py:25
msgid "Password"
msgstr "Wachtwoord"
-#: core/forms.py:35
+#: core/forms.py:38
msgid "Old password"
msgstr "Oud wachtwoord"
-#: core/forms.py:39
+#: core/forms.py:42
msgid "New password"
msgstr "Nieuw wachtwoord"
-#: core/forms.py:43
+#: core/forms.py:46
msgid "Confirmation"
msgstr "Bevestiging"
-#: core/forms.py:71
+#: core/forms.py:74
msgid "Old password mismatchs"
msgstr "Oud wachtwoord komt niet overeen"
-#: core/forms.py:80
+#: core/forms.py:83
msgid "Passwords mismatch"
-msgstr "Wachtwoorden komt niet overeen"
+msgstr "Wachtwoorden komen niet overeen"
-#: core/forms.py:100
+#: core/forms.py:103
msgid "Enable API access"
+msgstr "Activeer API-toegang"
+
+#: core/forms.py:137
+msgid "Verification code"
+msgstr ""
+
+#: core/forms.py:148
+msgid "Invalid code"
msgstr ""
#: core/handlers.py:36
@@ -577,10 +585,9 @@ 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:63
-#, fuzzy, python-format
-#| msgid "%(object)s '%(name)s' %(action)s by user %(user)s"
+#, python-format
msgid "%(object)s '%(name)s' %(action)s by "
-msgstr "%(object)s '%(name)s' %(action)s door gebruiker %(user)s"
+msgstr "%(object)s '%(name)s' %(action)s door "
#: core/handlers.py:65
msgid "deleted"
@@ -588,166 +595,202 @@ msgstr "verwijderd"
#: core/handlers.py:69
msgid "user {}"
-msgstr ""
+msgstr "gebruiker{}"
#: core/handlers.py:71
msgid "management command"
-msgstr ""
+msgstr "beheeropdracht"
#: core/handlers.py:95
msgid "You can't delete your own account"
msgstr "U kunt uw eigen account niet verwijderen"
#: core/handlers.py:131
-#, fuzzy
-#| msgid "An update is available!"
msgid "One or more updates are available"
-msgstr "Er is een update beschikbaar!"
+msgstr "Er zijn een of meer updates beschikbaar"
#: core/management/commands/communicate_with_public_api.py:44
-#, fuzzy
-#| msgid "An update is available!"
msgid "[modoboa] Update(s) available"
-msgstr "Er is een update beschikbaar!"
-
-#: core/models.py:53
-msgid "Allow mailboxes access"
msgstr ""
#: core/models.py:55
-msgid "Allow this administrator to access user mailboxes"
-msgstr ""
+msgid "Allow mailboxes access"
+msgstr "Sta mailboxtoegang toe"
-#: core/models.py:58
+#: core/models.py:57
+msgid "Allow this administrator to access user mailboxes"
+msgstr "Sta deze beheerder toe om mailboxen van gebruikers te benaderen"
+
+#: core/models.py:60
msgid "password"
msgstr "wachtwoord"
-#: core/models.py:61
-#, fuzzy
-#| msgid "Prefered language"
+#: core/models.py:63
msgid "language"
-msgstr "Voorkeurs taal"
+msgstr "taal"
-#: core/models.py:64
-#, fuzzy
-#| msgid "Prefered language to display pages"
+#: core/models.py:66
msgid "Prefered language to display pages."
msgstr "Voorkeurstaal om pagina's weer te geven"
-#: core/models.py:68
-msgid "Phone number"
-msgstr ""
-
#: core/models.py:70
+msgid "Phone number"
+msgstr "Telefoonnummer"
+
+#: core/models.py:72
msgid "Secondary email"
-msgstr ""
+msgstr "Tweede e-mailadres"
-#: core/models.py:73
+#: core/models.py:75
msgid "An alternative e-mail address, can be used for recovery needs."
-msgstr ""
+msgstr "Een alternatief e-mailadres, dit kan gebruikt worden voor herstel mogelijkheden."
-#: core/models.py:124
+#: core/models.py:126
msgid "Failed to update password: LDAP module not installed"
-msgstr "Mislukt om wachtwoord aan te passen: LDAP module niet geinstalleerd"
+msgstr "Mislukt om wachtwoord aan te passen: LDAP-module niet geinstalleerd"
-#: core/models.py:153
+#: core/models.py:155
msgid "account"
msgstr "account"
-#: core/models.py:280
+#: core/models.py:282
msgid "Unknown"
-msgstr ""
+msgstr "Onbekend"
-#: core/models.py:314
+#: core/models.py:316
msgid "Invalid line"
-msgstr "Verkeerde regel"
+msgstr "Onjuiste regel"
-#: core/models.py:322
+#: core/models.py:324
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."
+msgstr "U kunt geen accounts importeren met hogere rechten dan die van uzelf"
-#: core/models.py:337
+#: core/models.py:339
#, python-format
msgid "The simple user '%s' must have a valid email address"
-msgstr "De gebruiker '%s' moet een geldig email adres hebben"
+msgstr "De gebruiker '%s' moet een geldig e-mailadres hebben"
-#: core/models.py:342
+#: core/models.py:344
#, python-format
msgid "username and email fields must not differ for '%s'"
-msgstr "gebruikersnaam en email velden moeten niet verschillen van '%s'"
+msgstr "gebruikersnaam en e-mail -velden moeten niet verschillen van '%s'"
#: core/password_validation.py:24
msgid "Password must contain at least {} digit."
msgid_plural "Password must contain at least {} digits."
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "Wachtwoord moet minstens {} nummer bevatten."
+msgstr[1] "Wachtwoord moet minstens {} nummers bevatten. "
#: core/password_validation.py:34
msgid "Password must contain at least {} lowercase letter."
msgid_plural "Password must contain at least {} lowercase letters."
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "Wachtwoord moet minstens {} kleine letter bevatten. "
+msgstr[1] "Wachtwoord moet minstens {} kleine letters bevatten."
#: core/password_validation.py:45
msgid "Password must contain at least {} uppercase letter."
msgid_plural "Password must contain at least {} uppercase letters."
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "Wachtwoord moet minstens {} hoofdletter bevatten"
+msgstr[1] "Wachtwoord moet minstens {} hoofdletters bevatten"
#: core/password_validation.py:57
msgid "Password must contain at least {} special character."
msgid_plural "Password must contain at least {} special characters."
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "Wachtwoord moet minstens {} speciaal teken bevatten."
+msgstr[1] "Wachtwoord moet minstens {} speciale tekens bevatten."
#: core/password_validation.py:65
msgid "Your password must contain a combination of different character types."
+msgstr "Uw wachtwoord moet verschillende tekens bevatten."
+
+#: core/sms_backends/ovh.py:19
+msgid "API endpoint"
+msgstr ""
+
+#: core/sms_backends/ovh.py:22
+msgid "OVH Europe"
+msgstr ""
+
+#: core/sms_backends/ovh.py:23
+msgid "OVH US"
+msgstr ""
+
+#: core/sms_backends/ovh.py:24
+msgid "OVH North-America"
+msgstr ""
+
+#: core/sms_backends/ovh.py:25
+msgid "So you Start Europe"
+msgstr ""
+
+#: core/sms_backends/ovh.py:26
+msgid "So you Start North America"
+msgstr ""
+
+#: core/sms_backends/ovh.py:27
+msgid "Kimsufi Europe"
+msgstr ""
+
+#: core/sms_backends/ovh.py:28
+msgid "Kimsufi North America"
+msgstr ""
+
+#: core/sms_backends/ovh.py:35
+msgid "Application key"
+msgstr ""
+
+#: core/sms_backends/ovh.py:42
+msgid "Application secret"
+msgstr ""
+
+#: core/sms_backends/ovh.py:50
+msgid "Consumer key"
msgstr ""
#: core/templates/core/_current_features.html:6
msgid "Features looking for sponsoring"
-msgstr ""
+msgstr "Nieuwe functionaliteit waarvoor wij sponsoren zoeken"
#: core/templates/core/_current_features.html:12
msgid "Goal:"
-msgstr ""
+msgstr "Doel:"
#: core/templates/core/_current_features.html:18
msgid "More"
-msgstr ""
+msgstr "Meer"
#: core/templates/core/_current_features.html:22
msgid "Nothing to sponsor yet."
-msgstr ""
+msgstr "Niets te sponsoren op dit moment."
#: core/templates/core/_latest_news_widget.html:5
msgid "Latest news"
-msgstr ""
+msgstr "Laatste nieuws"
#: core/templates/core/_latest_news_widget.html:19
msgid ""
"Visit the official "
"weblog for more information."
-msgstr ""
+msgstr "Bezoek de officiële weblog voor meer informatie."
#: core/templates/core/api_access.html:3
msgid "API access"
-msgstr ""
+msgstr "API toegang"
#: core/templates/core/api_access.html:3
msgid "Control your access to Modoboa API"
-msgstr ""
+msgstr "Beheer uw toegang tot de Modoboa API"
#: core/templates/core/api_access.html:7
#, python-format
msgid ""
-"A documentation of the API is available here."
-msgstr ""
+"A documentation of the API is available here."
+msgstr "API documentatie is beschikbaar hier."
#: core/templates/core/api_access.html:14
msgid "API access token"
-msgstr ""
+msgstr "API toegangstoken"
#: core/templates/core/api_access.html:35
#: core/templates/core/user_profile.html:19 lib/form_utils.py:354
@@ -757,7 +800,7 @@ msgstr "Toepassen"
#: core/templates/core/dashboard.html:11
#, python-format
msgid "Hello %(user)s."
-msgstr ""
+msgstr "Hallo %(user)s."
#: core/templates/core/information.html:2 core/templatetags/core_tags.py:62
msgid "Information"
@@ -765,23 +808,19 @@ msgstr "Informatie"
#: core/templates/core/information.html:2
msgid "Various information about Modoboa"
-msgstr "Informatie over Modoboa"
+msgstr "Diverse informatie over Modoboa"
#: core/templates/core/information.html:5
-#, fuzzy
-#| msgid "An update is available!"
msgid "One or more updates are available!"
-msgstr "Er is een update beschikbaar!"
+msgstr "Eén of meer updates zijn beschikbaar!"
#: core/templates/core/information.html:6
msgid "Check the following list to find the component(s) that can be updated."
-msgstr ""
+msgstr "Bekijk de volgende lijst om de componenten te vinden die bijgewerkt kunnen worden"
#: core/templates/core/information.html:10
-#, fuzzy
-#| msgid "Authentication"
msgid "Applications"
-msgstr "Authenticatie"
+msgstr "Programma's"
#: core/templates/core/information.html:14
#: core/templates/core/information.html:36
@@ -790,13 +829,11 @@ msgstr "Naam"
#: core/templates/core/information.html:15
msgid "Installed version"
-msgstr ""
+msgstr "Geïnstalleerde versie"
#: core/templates/core/information.html:16
-#, fuzzy
-#| msgid "Last login"
msgid "Last version"
-msgstr "Laatste login"
+msgstr "Laatste versie"
#: core/templates/core/information.html:17
msgid "Description"
@@ -808,7 +845,7 @@ msgstr "Actieve gebruikers"
#: core/templates/core/information.html:37
msgid "Role"
-msgstr ""
+msgstr "Rol"
#: core/templates/core/information.html:38
msgid "Last login"
@@ -839,16 +876,14 @@ msgid "Message"
msgstr "Bericht"
#: core/templates/core/notifications/update_available.html:3
-#, fuzzy
-#| msgid "An update is available!"
msgid ""
"\n"
" The following update is available:\n"
msgid_plural ""
"\n"
" The following updates are available:\n"
-msgstr[0] "Er is een update beschikbaar!"
-msgstr[1] "Er is een update beschikbaar!"
+msgstr[0] ""
+msgstr[1] ""
#: core/templates/core/parameters.html:2 core/templatetags/core_tags.py:71
msgid "Parameters"
@@ -865,7 +900,7 @@ msgstr "Opslaan"
#: core/templates/core/settings_header.html:5
msgid "Modoboa settings"
-msgstr "Instellingen van Modoboa"
+msgstr "Modoboa instellingen"
#: core/templates/core/user_index.html:4 core/templatetags/core_tags.py:90
msgid "Settings"
@@ -881,10 +916,8 @@ msgid "Customize Modoboa"
msgstr "Modoboa aanpassen"
#: core/templates/core/user_preferences.html:14
-#, fuzzy
-#| msgid "Preferences saved"
msgid "No preferences available."
-msgstr "Voorkeuren opgeslagen"
+msgstr "Geen voorkeuren beschikbaar"
#: core/templates/core/user_profile.html:3 core/templatetags/core_tags.py:116
msgid "Profile"
@@ -895,10 +928,8 @@ msgid "Update your personal information"
msgstr "Persoonlijke informatie aanpassen"
#: core/templates/core/user_profile.html:13
-#, fuzzy
-#| msgid "Failed to update password: %s"
msgid "Click here to update your password"
-msgstr "Mislukt om wachtwoord aan te passen: %s"
+msgstr ""
#: core/templatetags/core_tags.py:34
msgid "Modoboa"
@@ -910,44 +941,42 @@ msgstr "Uitloggen"
#: core/templatetags/core_tags.py:127
msgid "API"
-msgstr ""
+msgstr "API"
#: core/utils.py:32
-#, fuzzy
-#| msgid "Welcome to Modoboa"
msgid "The core part of Modoboa"
-msgstr "Welkom bij Modoboa"
+msgstr "Het hoofdonderdeel van Modoboa"
#: core/views/admin.py:43
msgid "Parameters saved"
msgstr "Parameters opgeslagen"
-#: core/views/auth.py:46
+#: core/views/auth.py:59
#, python-format
msgid "Password scheme mismatch. Updating %s password"
-msgstr ""
+msgstr "Wachtwoord schema matcht niet. Updating %s wachtwoord"
-#: core/views/auth.py:53
+#: core/views/auth.py:66
#, python-format
msgid "Password hash parameter missmatch. Updating %s password"
msgstr ""
-#: core/views/auth.py:69
+#: core/views/auth.py:82
#, python-format
msgid "User '%s' successfully logged in"
msgstr "Gebruiker '%s' successvol aangemeld"
-#: core/views/auth.py:77
+#: core/views/auth.py:90
msgid "Your username and password didn't match. Please try again."
-msgstr ""
-"Uw gebruikersnaam en wachtwoord komen niet overeen. Probeer het "
-"alstublieftopnieuw."
+msgstr "Uw gebruikersnaam en wachtwoord komen niet overeen. Probeer het alstublieft opnieuw."
-#: core/views/auth.py:112
-#, fuzzy
-#| msgid "User '%s' successfully logged in"
+#: core/views/auth.py:125
msgid "User '{}' successfully logged out"
-msgstr "Gebruiker '%s' successvol aangemeld"
+msgstr "Gebruiker '{}' is uitgelogd."
+
+#: core/views/auth.py:170 core/views/auth.py:225
+msgid "Please use the following code to recover your Modoboa password: {}"
+msgstr ""
#: core/views/user.py:53
msgid "Profile updated"
@@ -958,19 +987,17 @@ msgid "Preferences saved"
msgstr "Voorkeuren opgeslagen"
#: core/views/user.py:103
-#, fuzzy
-#| msgid "Profile updated"
msgid "Access updated"
-msgstr "Profiel aangepast"
+msgstr "Toegang bijgewerkt"
#: lib/db_utils.py:23
#, python-format
msgid "Connection to database %s not configured"
-msgstr "Verbinding naar database %s niet ingesteld"
+msgstr "Verbinding naar database %s niet geconfigureerd"
#: lib/email_utils.py:141 lib/email_utils.py:360
msgid "unable to determine encoding of string"
-msgstr ""
+msgstr "Kan de encoding van de string niet bepalen. "
#: lib/exceptions.py:67
#, python-format
@@ -986,13 +1013,12 @@ msgid "Enter a valid domain name"
msgstr "Vul een geldige domeinnaam in"
#: lib/fields.py:44 lib/fields.py:58
-#, fuzzy
-#| msgid "Enter a valid domain name"
msgid "Enter a valid email address."
-msgstr "Vul een geldig email adres in"
+msgstr "Vul een geldig e-mailadres in."
#: lib/form_utils.py:77 templates/registration/password_reset_confirm.html:12
-#: templates/registration/password_reset_form.html:11
+#: templates/registration/password_reset_confirm_code.html:25
+#: templates/registration/password_reset_form.html:29
msgid "Submit"
msgstr "Versturen"
@@ -1005,10 +1031,8 @@ msgid "Yes"
msgstr "Ja"
#: lib/ldap_utils.py:129
-#, fuzzy
-#| msgid "Failed to update password: %s"
msgid "Failed to update password: {}"
-msgstr "Mislukt om wachtwoord aan te passen: %s"
+msgstr "Aanpassen van wachtwoord mislukt: {}"
#: lib/templatetags/lib_tags.py:104
msgid "From"
@@ -1016,7 +1040,7 @@ msgstr "Van"
#: lib/templatetags/lib_tags.py:105
msgid "To"
-msgstr "aan"
+msgstr "Aan"
#: lib/templatetags/lib_tags.py:107 templates/common/email_searchbar.html:17
msgid "Subject"
@@ -1028,7 +1052,7 @@ msgstr "Sorry"
#: templates/404.html:5
msgid "The requested page does not exist."
-msgstr "De opgegeven pagina bestaat niet."
+msgstr "De opgevraagde pagina bestaat niet."
#: templates/500.html:5
msgid "An internal error occured."
@@ -1040,7 +1064,7 @@ msgstr "Zoeken..."
#: templates/common/email_searchbar.html:10
msgid "From address"
-msgstr "Van adres"
+msgstr "Afzenderadres"
#: templates/common/email_searchbar.html:33
msgid "Both"
@@ -1048,15 +1072,16 @@ msgstr "Beiden"
#: templates/common/error.html:4
msgid "Error:"
-msgstr "Foutmelding:"
+msgstr "Fout:"
#: templates/common/generic_field.html:11
#: templates/common/generic_fields_group.html:8
msgid "Help:"
msgstr "Help:"
-#: 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 "Sluiten"
@@ -1081,9 +1106,7 @@ msgid "Log in"
msgstr "Inloggen"
#: templates/registration/login.html:24
-#: templates/registration/password_reset_form.html:6
-#, fuzzy
-#| msgid "password"
+#: templates/registration/password_reset_form.html:17
msgid "Forgot password?"
msgstr "Wachtwoord vergeten?"
@@ -1092,19 +1115,25 @@ msgstr "Wachtwoord vergeten?"
msgid ""
"Your password has been set. You may go ahead and sign "
"in now."
-msgstr ""
+msgstr "Je wachtwoord is ingesteld. Je kunt nu inloggen"
#: templates/registration/password_reset_confirm.html:7
-#, fuzzy
-#| msgid "New password"
msgid "Change password"
-msgstr "Nieuw wachtwoord"
+msgstr "Wachtwoord wijzigen"
#: templates/registration/password_reset_confirm.html:17
msgid ""
"The password reset link was invalid, possibly because it has already been "
"used. Please request a new password reset."
-msgstr "De wachtwoord reset link was niet geldig, vraag een nieuwe aan"
+msgstr "Deze wachtwoord herstel link is ongeldig, misschien is hij al gebruikt. Vraag een nieuwe wachtwoord herstel link aan."
+
+#: templates/registration/password_reset_confirm_code.html:20
+msgid "Enter the code you've just received by SMS"
+msgstr ""
+
+#: templates/registration/password_reset_confirm_code.html:27
+msgid "Resend code"
+msgstr ""
#: templates/registration/password_reset_done.html:7
msgid ""
@@ -1112,73 +1141,29 @@ 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 ""
+msgstr "We hebben je instructies gemailt om je wachtwoord in te stellen. Als het door jou ingevulde email adres bestaat, zal je hem binnenkort ontvangen
\nAls je geen email ontvangt, controleer dan of je het juiste email adres hebt ingevuld, en controleer je spam folder.
"
#: 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 ""
+msgstr "Klik op de volgende link om een wachtwoord in te stellen voor het Modoboa account %(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 ""
+msgstr "Als u niet op bovenstaande link kunt klikken kopieer dan de URL in uw browser,"
#: templates/registration/password_reset_email.html:14
msgid "Sincerely, The Modoboa Team."
-msgstr "Met vriendelijke groet, het Modoboa Team"
+msgstr "Met vriendelijke groet, Het Modoboa Team,"
+
+#: templates/registration/password_reset_form.html:24
+msgid "Please fill-in your primary email address"
+msgstr ""
#: templates/registration/password_reset_subject.txt:3
msgid "Modoboa password reset"
-msgstr "Modoboa wachtwoord reset"
-
-#~ msgid "md5crypt (weak)"
-#~ msgstr "md5crypt (zwak)"
-
-#~ msgid "sha256 (weak)"
-#~ msgstr "sha256 (zwak)"
-
-#~ msgid "md5 (weak)"
-#~ msgstr "md5 (zwak)"
-
-#~ msgid "crypt (weak)"
-#~ msgstr "crypt (zwak)"
-
-#~ msgid "plain (weak)"
-#~ msgstr "plain (onversleuteld!)"
-
-#~ 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"
-#~ msgstr "Groep naam"
-
-#, fuzzy
-#~| msgid "Last login"
-#~ msgid "Last name"
-#~ msgstr "Laatste login"
-
-#~ msgid "last login"
-#~ msgstr "laatste login"
-
-#, fuzzy
-#~| msgid "User '%s' logged out"
-#~ msgid "User {} logged out"
-#~ msgstr "Gebruiker '%s' heeft afgemeld"
-
-#~ msgid "Group name"
-#~ msgstr "Groep naam"
-
-#~ msgid "Display"
-#~ msgstr "Weergeven"
+msgstr "Modoboa wachtwoord resetten."
diff --git a/modoboa/locale/nl_NL/LC_MESSAGES/djangojs.po b/modoboa/locale/nl_NL/LC_MESSAGES/djangojs.po
index d95a23ccc..ec3742949 100644
--- a/modoboa/locale/nl_NL/LC_MESSAGES/djangojs.po
+++ b/modoboa/locale/nl_NL/LC_MESSAGES/djangojs.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:
# R Kloosterman , 2016
# TuxBrother , 2014
@@ -11,14 +11,13 @@ msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-03-09 16:48+0100\n"
-"PO-Revision-Date: 2017-09-23 19:33+0000\n"
-"Last-Translator: Tuxis Internet Engineering V.O.F. \n"
-"Language-Team: Dutch (Netherlands) (http://www.transifex.com/tonio/modoboa/"
-"language/nl_NL/)\n"
-"Language: nl_NL\n"
+"PO-Revision-Date: 2020-03-09 15:49+0000\n"
+"Last-Translator: Antoine Nguyen \n"
+"Language-Team: Dutch (Netherlands) (http://www.transifex.com/tonio/modoboa/language/nl_NL/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Language: nl_NL\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: bower_components/jquery-ui/jquery-ui.min.js:8
diff --git a/modoboa/locale/pl_PL/LC_MESSAGES/django.po b/modoboa/locale/pl_PL/LC_MESSAGES/django.po
index 94ad41ac5..f1c7faa6a 100644
--- a/modoboa/locale/pl_PL/LC_MESSAGES/django.po
+++ b/modoboa/locale/pl_PL/LC_MESSAGES/django.po
@@ -1,483 +1,486 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
-#
+#
# Translators:
# sin88 , 2016
# Dariusz Koryto , 2016
# Pedro M , 2017
+# Arkadiusz R, 2019
# sin88 , 2016
# Tomasz Proć , 2017
+# Wojtek Gajda , 2018
msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-03-09 16:48+0100\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/"
-"language/pl_PL/)\n"
-"Language: pl_PL\n"
+"POT-Creation-Date: 2020-05-06 13:15+0200\n"
+"PO-Revision-Date: 2020-05-06 11:16+0000\n"
+"Last-Translator: Antoine Nguyen \n"
+"Language-Team: Polish (Poland) (http://www.transifex.com/tonio/modoboa/language/pl_PL/)\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==1 ? 0 : (n%10>=2 && n%10<=4) && (n"
-"%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n"
-"%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n"
+"Language: pl_PL\n"
+"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n"
-#: core/app_settings.py:20
+#: core/app_settings.py:26
msgid "User profile"
msgstr "Profil użytkownika"
-#: core/app_settings.py:33
+#: core/app_settings.py:39
msgid "Authentication"
msgstr "Autentykacja"
-#: core/app_settings.py:36
+#: core/app_settings.py:42
msgid "Authentication type"
msgstr "Typ autentykacji"
-#: core/app_settings.py:37
+#: core/app_settings.py:43
msgid "Local"
msgstr "Wewnętrzne"
-#: core/app_settings.py:40
+#: core/app_settings.py:46
msgid "The backend used for authentication"
msgstr "Backend używany do autentykacji"
-#: core/app_settings.py:45
+#: core/app_settings.py:51
msgid "Default password scheme"
msgstr "Domyślny schemat hasła"
-#: core/app_settings.py:50
+#: core/app_settings.py:56
msgid "Scheme used to crypt mailbox passwords"
msgstr "Schemat używany do szyfrowania haseł do skrzynek"
-#: core/app_settings.py:54
+#: core/app_settings.py:60
msgid "Rounds"
msgstr "Rund"
-#: core/app_settings.py:57
+#: core/app_settings.py:63
msgid ""
"Number of rounds to use (only used by sha256crypt and sha512crypt). Must be "
"between 1000 and 999999999, inclusive."
-msgstr ""
-"Liczba rund (tylko dla sha256crypt i sha512crypt). Musi się zawierać "
-"pomiędzy 1000 a 999999999 włącznie."
+msgstr "Liczba rund (tylko dla sha256crypt i sha512crypt). Musi się zawierać pomiędzy 1000 a 999999999 włącznie."
-#: core/app_settings.py:63
-#, fuzzy
-#| msgid "Default password scheme"
+#: core/app_settings.py:69
msgid "Update password scheme at login"
-msgstr "Domyślny schemat hasła"
-
-#: core/app_settings.py:66
-msgid "Update user password at login to use the default password scheme"
msgstr ""
-#: core/app_settings.py:71
+#: core/app_settings.py:72
+msgid "Update user password at login to use the default password scheme"
+msgstr "Zaktualizuj hasło użytkownika przy logowaniu, tak aby używało domyślnego schematu haseł"
+
+#: core/app_settings.py:77
msgid "Default password"
msgstr "Domyślne hasło"
-#: core/app_settings.py:74
+#: core/app_settings.py:80
msgid "Default password for automatically created accounts."
msgstr "Domyślne hasło dla automatycznie dodawanych kont."
-#: core/app_settings.py:78
+#: core/app_settings.py:84
msgid "Random password length"
msgstr "Długość losowego hasła"
-#: core/app_settings.py:82
+#: core/app_settings.py:88
msgid "Length of randomly generated passwords."
msgstr "Długość losowo wygenerowanego hasła"
-#: core/app_settings.py:86
-#, fuzzy
-#| msgid "Default password scheme"
+#: core/app_settings.py:92
msgid "Update password service URL"
-msgstr "Domyślny schemat hasła"
+msgstr ""
-#: core/app_settings.py:90
+#: core/app_settings.py:96
msgid ""
"The URL of an external page where users will be able to update their "
"password. It applies only to non local users, ie. those automatically "
"created after a successful external authentication (LDAP, SMTP)."
msgstr ""
-#: core/app_settings.py:98
+#: core/app_settings.py:104
+msgid "Password recovery announcement"
+msgstr ""
+
+#: core/app_settings.py:109
+msgid "A temporary message that will be displayed on the reset password page."
+msgstr ""
+
+#: core/app_settings.py:115
+msgid "Enable password recovery by SMS"
+msgstr ""
+
+#: core/app_settings.py:118
+msgid "Enable password recovery by SMS for users who filled a phone number."
+msgstr ""
+
+#: core/app_settings.py:124
+msgid "SMS provider"
+msgstr ""
+
+#: core/app_settings.py:127
+msgid "Choose a provider to send password recovery SMS"
+msgstr ""
+
+#: core/app_settings.py:133
msgid "LDAP settings"
msgstr "Ustawienia LDAP"
-#: core/app_settings.py:101
+#: core/app_settings.py:136
msgid "Server address"
msgstr "Adres serwera"
-#: core/app_settings.py:104
+#: core/app_settings.py:139
msgid "The IP address or the DNS name of the LDAP server"
msgstr "IP lub nazwa DNS serwera LDAP"
-#: core/app_settings.py:108
+#: core/app_settings.py:143
msgid "Server port"
msgstr "Port"
-#: core/app_settings.py:110
+#: core/app_settings.py:145
msgid "The TCP port number used by the LDAP server"
msgstr "Port TCP używany przez LDAP"
-#: core/app_settings.py:114
+#: core/app_settings.py:149
msgid "Enable secondary server (fallback)"
msgstr ""
-#: core/app_settings.py:117
+#: core/app_settings.py:152
msgid ""
"Enable a secondary LDAP server which will be used if the primary one fails"
msgstr ""
-#: core/app_settings.py:123
-#, fuzzy
-#| msgid "Server address"
+#: core/app_settings.py:158
msgid "Secondary server address"
-msgstr "Adres serwera"
+msgstr ""
-#: core/app_settings.py:126
-#, fuzzy
-#| msgid "The IP address or the DNS name of the LDAP server"
+#: core/app_settings.py:161
msgid "The IP address or the DNS name of the seondary LDAP server"
-msgstr "IP lub nazwa DNS serwera LDAP"
+msgstr ""
-#: core/app_settings.py:130
-#, fuzzy
-#| msgid "Server port"
+#: core/app_settings.py:165
msgid "Secondary server port"
-msgstr "Port"
+msgstr ""
-#: core/app_settings.py:133
-#, fuzzy
-#| msgid "The TCP port number used by the LDAP server"
+#: core/app_settings.py:168
msgid "The TCP port number used by the LDAP secondary server"
-msgstr "Port TCP używany przez LDAP"
+msgstr ""
-#: core/app_settings.py:137
+#: core/app_settings.py:172
msgid "Use a secured connection"
msgstr "Użyj połączenia bezpiecznego"
-#: core/app_settings.py:141
+#: core/app_settings.py:176
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:145
+#: core/app_settings.py:180
msgid "Active Directory"
msgstr "Active Directory"
-#: core/app_settings.py:148
+#: core/app_settings.py:183
msgid "Tell if the LDAP server is an Active Directory one"
msgstr "Czy LDAP jest Active Directory "
-#: core/app_settings.py:152
+#: core/app_settings.py:187
msgid "Administrator groups"
msgstr "Administrator grup"
-#: core/app_settings.py:155
+#: core/app_settings.py:190
msgid ""
-"Members of those LDAP Posix groups will be created as domain administrators. "
-"Use ';' characters to separate groups."
-msgstr ""
-"Członkowie tych grup LDAP Posix będą utworzeni jako administratorzy domeny. "
-"Użyj znaku ';' jako separatora grup."
+"Members of those LDAP Posix groups will be created as domain administrators."
+" Use ';' characters to separate groups."
+msgstr "Członkowie tych grup LDAP Posix będą utworzeni jako administratorzy domeny. Użyj znaku ';' jako separatora grup."
-#: core/app_settings.py:162
+#: core/app_settings.py:197
msgid "Group type"
msgstr "Typ grupy"
-#: core/app_settings.py:166
+#: core/app_settings.py:201
msgid "The LDAP group type to use with your directory."
msgstr "Typ grupy LDAP do wykorzystania z Twoim katalogiem."
-#: core/app_settings.py:171
+#: core/app_settings.py:206
msgid "Groups search base"
msgstr "Wyszukiwarka grup"
-#: core/app_settings.py:174
+#: core/app_settings.py:209
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:180
+#: core/app_settings.py:215
msgid "Password attribute"
msgstr "Atrybut hasła"
-#: core/app_settings.py:182
+#: core/app_settings.py:217
msgid "The attribute used to store user passwords"
msgstr "Atrybut używany do przechowywania haseł użytkowników"
-#: core/app_settings.py:187
-#, fuzzy
-#| msgid "Authentication method"
+#: core/app_settings.py:222
msgid "LDAP authentication settings"
-msgstr "Metoda autentykacji"
+msgstr ""
-#: core/app_settings.py:190
+#: core/app_settings.py:225
msgid "Authentication method"
msgstr "Metoda autentykacji"
-#: core/app_settings.py:191
+#: core/app_settings.py:226
msgid "Search and bind"
msgstr "Wyszukaj i powiąż"
-#: core/app_settings.py:192
+#: core/app_settings.py:227
msgid "Direct bind"
msgstr "Bezpośrednie powiązanie"
-#: core/app_settings.py:194
+#: core/app_settings.py:229
msgid "Choose the authentication method to use"
msgstr "Wybierz metode autentykacji"
-#: core/app_settings.py:198 core/app_settings.py:252
+#: core/app_settings.py:233 core/app_settings.py:287
msgid "Bind DN"
msgstr "Przypnij do DN"
-#: core/app_settings.py:201 core/app_settings.py:255
+#: core/app_settings.py:236 core/app_settings.py:290
msgid ""
"The distinguished name to use when binding to the LDAP server. Leave empty "
"for an anonymous bind"
-msgstr ""
-"DN do użycia przy połączeniu do LDAP'a. Zostaw puste dla anonimowego "
-"podłączenia"
+msgstr "DN do użycia przy połączeniu do LDAP'a. Zostaw puste dla anonimowego podłączenia"
-#: core/app_settings.py:208 core/app_settings.py:262
+#: core/app_settings.py:243 core/app_settings.py:297
msgid "Bind password"
msgstr "Hasło"
-#: core/app_settings.py:211 core/app_settings.py:265
+#: core/app_settings.py:246 core/app_settings.py:300
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:219 core/app_settings.py:311
+#: core/app_settings.py:254 core/app_settings.py:346
msgid "Users search base"
msgstr "Wyszukiwania użytkowników"
-#: core/app_settings.py:222 core/app_settings.py:314
+#: core/app_settings.py:257 core/app_settings.py:349
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:228 core/app_settings.py:320
+#: core/app_settings.py:263 core/app_settings.py:355
msgid "Search filter"
msgstr "Filtr wyszukiwania"
-#: core/app_settings.py:231 core/app_settings.py:323
+#: core/app_settings.py:266 core/app_settings.py:358
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:238
+#: core/app_settings.py:273
msgid "User DN template"
msgstr "Użyj szablonu DN"
-#: core/app_settings.py:241
+#: core/app_settings.py:276
#, python-format
msgid ""
"The template used to construct a user's DN. It should contain one "
"placeholder (ie. %(user)s)"
-msgstr ""
-"Szablon użyty do skonstruowania DN użytkownika. Powinna ona zawierać jeden "
-"symbol zastępczy (np. %(user)s)"
+msgstr "Szablon użyty do skonstruowania DN użytkownika. Powinna ona zawierać jeden symbol zastępczy (np. %(user)s)"
-#: core/app_settings.py:249
-#, fuzzy
-#| msgid "LDAP settings"
+#: core/app_settings.py:284
msgid "LDAP synchronization settings"
-msgstr "Ustawienia LDAP"
+msgstr ""
-#: core/app_settings.py:273
+#: core/app_settings.py:308
msgid "Enable export to LDAP"
msgstr ""
-#: core/app_settings.py:276
+#: core/app_settings.py:311
msgid ""
"Enable automatic synchronization between local database and LDAP directory"
msgstr ""
-#: core/app_settings.py:282
+#: core/app_settings.py:317
msgid "Delete remote LDAP account when local account is deleted"
msgstr ""
-#: core/app_settings.py:286
+#: core/app_settings.py:321
msgid ""
"Delete remote LDAP account when local account is deleted, otherwise it will "
"be disabled."
msgstr ""
-#: core/app_settings.py:292
-#, fuzzy
-#| msgid "User DN template"
+#: core/app_settings.py:327
msgid "Account DN template"
-msgstr "Użyj szablonu DN"
+msgstr ""
-#: core/app_settings.py:295
-#, fuzzy, python-format
-#| msgid ""
-#| "The template used to construct a user's DN. It should contain one "
-#| "placeholder (ie. %(user)s)"
+#: core/app_settings.py:330
+#, python-format
msgid ""
"The template used to construct an account's DN. It should contain one "
"placeholder (ie. %(user)s)"
msgstr ""
-"Szablon użyty do skonstruowania DN użytkownika. Powinna ona zawierać jeden "
-"symbol zastępczy (np. %(user)s)"
-#: core/app_settings.py:302
+#: core/app_settings.py:337
msgid "Enable import from LDAP"
msgstr ""
-#: core/app_settings.py:305
+#: core/app_settings.py:340
msgid "Enable account synchronization from LDAP directory to local database"
msgstr ""
-#: core/app_settings.py:330
-#, fuzzy
-#| msgid "Password attribute"
+#: core/app_settings.py:365
msgid "Username attribute"
-msgstr "Atrybut hasła"
+msgstr ""
-#: core/app_settings.py:333
+#: core/app_settings.py:368
msgid "The name of the LDAP attribute where the username can be found."
msgstr ""
-#: core/app_settings.py:337 core/templates/core/dashboard.html:5
+#: core/app_settings.py:373
+msgid "Enable Dovecot LDAP sync"
+msgstr ""
+
+#: core/app_settings.py:376
+msgid "LDAP authentication settings will be applied to Dovecot configuration."
+msgstr ""
+
+#: core/app_settings.py:382
+msgid "Dovecot LDAP config file"
+msgstr ""
+
+#: core/app_settings.py:386
+msgid ""
+"Location of the configuration file which contains Dovecot LDAP settings."
+msgstr ""
+
+#: core/app_settings.py:391 core/templates/core/dashboard.html:5
msgid "Dashboard"
msgstr "Panel główny"
-#: core/app_settings.py:340
+#: core/app_settings.py:394
msgid "Custom RSS feed"
msgstr "Spersonalizowany kanał RSS"
-#: core/app_settings.py:343
+#: core/app_settings.py:397
msgid "Display custom RSS feed to resellers and domain administrators"
-msgstr ""
-"Wyświetl spersonalizowany kanał RSS odsprzedawcy i administratorom domen"
+msgstr "Wyświetl spersonalizowany kanał RSS odsprzedawcy i administratorom domen"
-#: core/app_settings.py:348
+#: core/app_settings.py:402
msgid "Hide features widget"
msgstr "Ukryj kontrolki opcji"
-#: core/app_settings.py:351
+#: core/app_settings.py:405
msgid "Hide features widget for resellers and domain administrators"
msgstr "Ukryj kontrolki opcji dla administratorów domeny i resellerów"
-#: core/app_settings.py:355
+#: core/app_settings.py:409
msgid "Notifications"
msgstr "Powiadomienia"
-#: core/app_settings.py:358
+#: core/app_settings.py:412
msgid "Sender address"
msgstr "Adres nadawcy"
-#: core/app_settings.py:361
+#: core/app_settings.py:415
msgid "Email address used to send notifications."
msgstr "Adres e-mail używany do wysyłania powiadomień"
-#: core/app_settings.py:365
+#: core/app_settings.py:419
msgid "Public API"
msgstr "Publiczne API"
-#: core/app_settings.py:368
+#: core/app_settings.py:422
msgid "Enable communication"
msgstr "Włącz komunikację"
-#: core/app_settings.py:371
+#: core/app_settings.py:425
msgid "Enable communication with Modoboa public API"
msgstr "Włącz komunikację z publicznym API Modoboa"
-#: core/app_settings.py:375
+#: core/app_settings.py:429
msgid "Check new versions"
msgstr "Sprawdź nowe wersje"
-#: core/app_settings.py:378
+#: core/app_settings.py:432
msgid "Automatically checks if a newer version is available"
msgstr "Automatycznie sprawdzaj czy nowa wersja jest dostępna"
-#: core/app_settings.py:382
+#: core/app_settings.py:436
msgid "Send an email when new versions are found"
msgstr ""
-#: core/app_settings.py:385
+#: core/app_settings.py:439
msgid "Send an email to notify admins about new versions"
msgstr ""
-#: core/app_settings.py:389
+#: core/app_settings.py:443
msgid "Recipient"
msgstr ""
-#: core/app_settings.py:392
+#: core/app_settings.py:446
msgid "Recipient of new versions notification emails."
msgstr ""
-#: core/app_settings.py:397
+#: core/app_settings.py:451
msgid "Send statistics"
msgstr "Wyślij statystyki"
-#: core/app_settings.py:400
+#: core/app_settings.py:454
msgid "Send statistics to Modoboa public API (counters and used extensions)"
-msgstr ""
-"Prześlij statystyki do publicznego API Modoboa (licznik i użyte rozszerzenia)"
+msgstr "Prześlij statystyki do publicznego API Modoboa (licznik i użyte rozszerzenia)"
-#: core/app_settings.py:404
+#: core/app_settings.py:458
msgid "Miscellaneous"
msgstr "Różne"
-#: core/app_settings.py:407
+#: core/app_settings.py:461
msgid "Inactive account threshold"
msgstr "Próg nieaktywności konta"
-#: core/app_settings.py:410
+#: core/app_settings.py:464
msgid ""
-"An account with a last login date greater than this threshold (in days) will "
-"be considered as inactive"
-msgstr ""
-"Konto z datą ostatniego logowania większą niż podany próg (w dniach) "
-"zostanie uznane za nieaktywne. "
+"An account with a last login date greater than this threshold (in days) will"
+" be considered as inactive"
+msgstr "Konto z datą ostatniego logowania większą niż podany próg (w dniach) zostanie uznane za nieaktywne. "
-#: core/app_settings.py:416
+#: core/app_settings.py:470
msgid "Top notifications check interval"
msgstr "Odstęp pomiędzy powiadomieniami "
-#: core/app_settings.py:419
+#: core/app_settings.py:473
msgid "Interval between two top notification checks (in seconds)"
msgstr "Odstęp pomiędzy dwoma powiadomieniami (w sek.)"
-#: core/app_settings.py:424
+#: core/app_settings.py:478
msgid "Maximum log record age"
msgstr "Max wiek wpisu w logu"
-#: core/app_settings.py:426
+#: core/app_settings.py:480
msgid "The maximum age in days of a log record"
msgstr "Max wiek w dniach dla wpisu w logu"
-#: core/app_settings.py:430
+#: core/app_settings.py:484
msgid "Items per page"
msgstr "Elementów na stronie"
-#: core/app_settings.py:432
+#: core/app_settings.py:486
msgid "Number of displayed items per page"
msgstr "Liczba wyświetlanych elementów na stronie"
-#: core/app_settings.py:436
+#: core/app_settings.py:490
msgid "Default top redirection"
msgstr "Domyślne górne przekierowanie"
-#: core/app_settings.py:440
+#: core/app_settings.py:494
msgid "The default redirection used when no application is specified"
msgstr "Domyślne górne przekierowanie kiedy nie wskazano aplikacji"
-#: core/app_settings.py:478 core/app_settings.py:486
+#: core/app_settings.py:548 core/app_settings.py:556 core/app_settings.py:564
msgid "Invalid syntax"
msgstr "Nieprawidłowa składnia"
-#: core/app_settings.py:492
+#: core/app_settings.py:570
msgid "Invalid rounds number"
msgstr "Nieprawidłowa liczba rund"
-#: core/app_settings.py:519
+#: core/app_settings.py:595 core/app_settings.py:597 core/app_settings.py:608
msgid "This field is required"
msgstr "To pole jest obowiązkowe"
@@ -490,64 +493,80 @@ 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 ""
+msgstr "Masz ustawione USE_TZ na False, co może powodować problemy przy zmianach czasu pomiędzy letnim a zimowym (ten sam czas będzie występował dwa razy z powodu zmiany godziny)."
#: core/checks/settings_checks.py:9
msgid "Set `USE_TZ = True` in settings.py"
-msgstr ""
+msgstr "Ustaw `USE_TZ = True` w settings.py"
-#: core/constants.py:5
+#: core/constants.py:6
msgid "Simple user"
msgstr "Prosty użytkownik"
-#: core/constants.py:6
+#: core/constants.py:7
msgid "Domain administrator"
msgstr "Administrator domeny"
-#: core/constants.py:7
+#: core/constants.py:8
msgid "Reseller"
msgstr "Reseller"
-#: core/constants.py:8
+#: core/constants.py:9
msgid "Super administrator"
msgstr "Super administrator"
-#: core/constants.py:51 lib/form_utils.py:389
+#: core/constants.py:52 lib/form_utils.py:389
msgid "No"
msgstr "Nie"
-#: core/forms.py:18
+#: core/constants.py:102
+msgid "Choose a provider"
+msgstr ""
+
+#: core/constants.py:107
+msgid "Dummy"
+msgstr ""
+
+#: core/forms.py:21
msgid "Username"
msgstr "Nazwa użytkownika"
-#: core/forms.py:22
+#: core/forms.py:25
msgid "Password"
msgstr "Hasło"
-#: core/forms.py:35
+#: core/forms.py:38
msgid "Old password"
msgstr "Stare hasło"
-#: core/forms.py:39
+#: core/forms.py:42
msgid "New password"
msgstr "Nowe hasło"
-#: core/forms.py:43
+#: core/forms.py:46
msgid "Confirmation"
msgstr "Potwierdzenie"
-#: core/forms.py:71
+#: core/forms.py:74
msgid "Old password mismatchs"
msgstr "Niezgodność ze starym gasłem"
-#: core/forms.py:80
+#: core/forms.py:83
msgid "Passwords mismatch"
msgstr "Niezgodność haseł"
-#: core/forms.py:100
+#: core/forms.py:103
msgid "Enable API access"
msgstr "Włądze dostęp API"
+#: core/forms.py:137
+msgid "Verification code"
+msgstr ""
+
+#: core/forms.py:148
+msgid "Invalid code"
+msgstr ""
+
#: core/handlers.py:36
msgid "added"
msgstr "dodano"
@@ -587,69 +606,67 @@ msgid "One or more updates are available"
msgstr "Jedna lub więcej aktualizacji jest dostępnych"
#: core/management/commands/communicate_with_public_api.py:44
-#, fuzzy
-#| msgid "One or more updates are available"
msgid "[modoboa] Update(s) available"
-msgstr "Jedna lub więcej aktualizacji jest dostępnych"
+msgstr ""
-#: core/models.py:53
+#: core/models.py:55
msgid "Allow mailboxes access"
msgstr "Zezwól na dostęp do skrzynek"
-#: core/models.py:55
+#: core/models.py:57
msgid "Allow this administrator to access user mailboxes"
msgstr "Zezwól temu administratorowi na dostęp do skrzynek użytkowników"
-#: core/models.py:58
+#: core/models.py:60
msgid "password"
msgstr "hasło"
-#: core/models.py:61
+#: core/models.py:63
msgid "language"
msgstr "Język"
-#: core/models.py:64
+#: core/models.py:66
msgid "Prefered language to display pages."
msgstr "Preferowany język"
-#: core/models.py:68
+#: core/models.py:70
msgid "Phone number"
msgstr "Numer telefonu"
-#: core/models.py:70
+#: core/models.py:72
msgid "Secondary email"
msgstr "Zapasowy email"
-#: core/models.py:73
+#: core/models.py:75
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:124
+#: core/models.py:126
msgid "Failed to update password: LDAP module not installed"
msgstr "Nieudana zmiana hasła: moduł LDAP nie został zainstalowany"
-#: core/models.py:153
+#: core/models.py:155
msgid "account"
msgstr "konto"
-#: core/models.py:280
+#: core/models.py:282
msgid "Unknown"
msgstr "Nieznany"
-#: core/models.py:314
+#: core/models.py:316
msgid "Invalid line"
msgstr "Niepoprawna linia"
-#: core/models.py:322
+#: core/models.py:324
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:337
+#: core/models.py:339
#, 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:342
+#: core/models.py:344
#, 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'"
@@ -690,6 +707,50 @@ msgstr[3] "Hasło musi zawierać przynajmniej {} znaków specjalnych."
msgid "Your password must contain a combination of different character types."
msgstr "Hasło musi zawierać kombinację różnych typów znaków."
+#: core/sms_backends/ovh.py:19
+msgid "API endpoint"
+msgstr ""
+
+#: core/sms_backends/ovh.py:22
+msgid "OVH Europe"
+msgstr ""
+
+#: core/sms_backends/ovh.py:23
+msgid "OVH US"
+msgstr ""
+
+#: core/sms_backends/ovh.py:24
+msgid "OVH North-America"
+msgstr ""
+
+#: core/sms_backends/ovh.py:25
+msgid "So you Start Europe"
+msgstr ""
+
+#: core/sms_backends/ovh.py:26
+msgid "So you Start North America"
+msgstr ""
+
+#: core/sms_backends/ovh.py:27
+msgid "Kimsufi Europe"
+msgstr ""
+
+#: core/sms_backends/ovh.py:28
+msgid "Kimsufi North America"
+msgstr ""
+
+#: core/sms_backends/ovh.py:35
+msgid "Application key"
+msgstr ""
+
+#: core/sms_backends/ovh.py:42
+msgid "Application secret"
+msgstr ""
+
+#: core/sms_backends/ovh.py:50
+msgid "Consumer key"
+msgstr ""
+
#: core/templates/core/_current_features.html:6
msgid "Features looking for sponsoring"
msgstr "Nowe funkcje szukające sponsorów"
@@ -714,9 +775,7 @@ msgstr "Ostatnie wiadomości"
msgid ""
"Visit the official "
"weblog for more information."
-msgstr ""
-"Odwiedź oficjalny "
-"blog aby uzyskać więcej informacji."
+msgstr "Odwiedź oficjalny blog aby uzyskać więcej informacji."
#: core/templates/core/api_access.html:3
msgid "API access"
@@ -729,11 +788,9 @@ msgstr "Kontroluj dostęp do Modoboa API"
#: core/templates/core/api_access.html:7
#, python-format
msgid ""
-"A documentation of the API is available here."
-msgstr ""
-"Dokumentacja API jest dostępna tutaj."
+"A documentation of the API is available here."
+msgstr "Dokumentacja API jest dostępna tutaj."
#: core/templates/core/api_access.html:14
msgid "API access token"
@@ -763,8 +820,7 @@ msgstr "Aktualizacje są dostępne!"
#: core/templates/core/information.html:6
msgid "Check the following list to find the component(s) that can be updated."
-msgstr ""
-"Sprawdź poniższą listę, aby znaleźć komponenty, które mogą być aktualizowane."
+msgstr "Sprawdź poniższą listę, aby znaleźć komponenty, które mogą być aktualizowane."
#: core/templates/core/information.html:10
msgid "Applications"
@@ -824,18 +880,16 @@ msgid "Message"
msgstr "Wiadomość"
#: core/templates/core/notifications/update_available.html:3
-#, fuzzy
-#| msgid "One or more updates are available"
msgid ""
"\n"
" The following update is available:\n"
msgid_plural ""
"\n"
" The following updates are available:\n"
-msgstr[0] "Jedna lub więcej aktualizacji jest dostępnych"
-msgstr[1] "Jedna lub więcej aktualizacji jest dostępnych"
-msgstr[2] "Jedna lub więcej aktualizacji jest dostępnych"
-msgstr[3] "Jedna lub więcej aktualizacji jest dostępnych"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
#: core/templates/core/parameters.html:2 core/templatetags/core_tags.py:71
msgid "Parameters"
@@ -880,10 +934,8 @@ msgid "Update your personal information"
msgstr "Aktualizuj swoje dane osobowe"
#: core/templates/core/user_profile.html:13
-#, fuzzy
-#| msgid "Failed to update password: {}"
msgid "Click here to update your password"
-msgstr "Nieudana zmiana hasła: {}"
+msgstr ""
#: core/templatetags/core_tags.py:34
msgid "Modoboa"
@@ -905,29 +957,33 @@ msgstr "Zasadnicza część Modoboa"
msgid "Parameters saved"
msgstr "Parametry zapisano"
-#: core/views/auth.py:46
+#: core/views/auth.py:59
#, python-format
msgid "Password scheme mismatch. Updating %s password"
-msgstr ""
+msgstr "Niezgodny schemat hasła. Aktualizuję hasło %s"
-#: core/views/auth.py:53
+#: core/views/auth.py:66
#, python-format
msgid "Password hash parameter missmatch. Updating %s password"
msgstr ""
-#: core/views/auth.py:69
+#: core/views/auth.py:82
#, python-format
msgid "User '%s' successfully logged in"
msgstr "Użytkownik '%s' pomyślnie zalogowany"
-#: core/views/auth.py:77
+#: core/views/auth.py:90
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:112
+#: core/views/auth.py:125
msgid "User '{}' successfully logged out"
msgstr "Użytkownik '{}' wylogowany pomyślnie"
+#: core/views/auth.py:170 core/views/auth.py:225
+msgid "Please use the following code to recover your Modoboa password: {}"
+msgstr ""
+
#: core/views/user.py:53
msgid "Profile updated"
msgstr "Profil zaktualizowano"
@@ -947,7 +1003,7 @@ msgstr "Połączenie do bazy danych %s nie zostało skonfigurowane"
#: lib/email_utils.py:141 lib/email_utils.py:360
msgid "unable to determine encoding of string"
-msgstr ""
+msgstr "nie potrafi rozpoznać kodowania tekstu"
#: lib/exceptions.py:67
#, python-format
@@ -967,7 +1023,8 @@ msgid "Enter a valid email address."
msgstr "Wprowadź prawidłowy adres email"
#: lib/form_utils.py:77 templates/registration/password_reset_confirm.html:12
-#: templates/registration/password_reset_form.html:11
+#: templates/registration/password_reset_confirm_code.html:25
+#: templates/registration/password_reset_form.html:29
msgid "Submit"
msgstr "Temat"
@@ -1028,8 +1085,9 @@ msgstr "Błąd:"
msgid "Help:"
msgstr "Pomoc:"
-#: 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 "Zamknij"
@@ -1054,7 +1112,7 @@ msgid "Log in"
msgstr "Zaloguj"
#: templates/registration/login.html:24
-#: templates/registration/password_reset_form.html:6
+#: templates/registration/password_reset_form.html:17
msgid "Forgot password?"
msgstr "Zapomniane hasło?"
@@ -1063,9 +1121,7 @@ msgstr "Zapomniane hasło?"
msgid ""
"Your password has been set. You may go ahead and sign "
"in now."
-msgstr ""
-"Twoje hasło zostało zapisane. Teraz możesz się zalogować."
+msgstr "Twoje hasło zostało zapisane. Teraz możesz się zalogować."
#: templates/registration/password_reset_confirm.html:7
msgid "Change password"
@@ -1075,9 +1131,15 @@ msgstr "Zmień hasło"
msgid ""
"The password reset link was invalid, possibly because it has already been "
"used. Please request a new password reset."
+msgstr "Link resetowania hasła jest niepoprawny, być może został już użyty. Wykonaj nowy reset hasła. "
+
+#: templates/registration/password_reset_confirm_code.html:20
+msgid "Enter the code you've just received by SMS"
+msgstr ""
+
+#: templates/registration/password_reset_confirm_code.html:27
+msgid "Resend code"
msgstr ""
-"Link resetowania hasła jest niepoprawny, być może został już użyty. Wykonaj "
-"nowy reset hasła. "
#: templates/registration/password_reset_done.html:7
msgid ""
@@ -1085,62 +1147,29 @@ 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 ""
-"Wysłaliśmy do Ciebie instrukcje n/t ustawienia hasła, na adres który "
-"podałeś. Wkrótce powinieneś je odebrać.
Jeżeli nie otrzymałeś "
-"wiadomości, upewnij się że wprowadziłeś właściwy adres email, oraz sprawdź "
-"folder spamu.
"
+msgstr "Wysłaliśmy do Ciebie instrukcje n/t ustawienia hasła, na adres który podałeś. Wkrótce powinieneś je odebrać.
Jeżeli nie otrzymałeś wiadomości, upewnij się że wprowadziłeś właściwy adres email, oraz sprawdź folder spamu.
"
#: 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 ""
-"Aby rozpocząć proces nadania nowego hasła dla konta %(username)s kliknij "
-"link poniżej:"
+msgstr "Aby rozpocząć proces nadania nowego hasła dla konta %(username)s kliknij link poniżej:"
#: 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 ""
-"Jeżeli kliknięcie w powyższy link nie działa, proszę skopiować i wkleić "
-"adres w nowym oknie przeglądarki."
+msgstr "Jeżeli kliknięcie w powyższy link nie działa, proszę skopiować i wkleić adres w nowym oknie przeglądarki."
#: templates/registration/password_reset_email.html:14
msgid "Sincerely, The Modoboa Team."
msgstr "Z poważaniem, Zespół Modoboa."
+#: templates/registration/password_reset_form.html:24
+msgid "Please fill-in your primary email address"
+msgstr ""
+
#: templates/registration/password_reset_subject.txt:3
msgid "Modoboa password reset"
msgstr "Resetowanie hasła Modoboa"
-
-#, fuzzy
-#~| msgid "Enable communication"
-#~ msgid "Enable LDAP synchronization"
-#~ msgstr "Włącz komunikację"
-
-#~ msgid "md5crypt (weak)"
-#~ msgstr "md5crypt (weak)"
-
-#~ msgid "sha256 (weak)"
-#~ msgstr "sha256 (słabe)"
-
-#~ msgid "md5 (weak)"
-#~ msgstr "md5 (słabe)"
-
-#~ msgid "crypt (weak)"
-#~ msgstr "crypt (słabe)"
-
-#~ msgid "plain (weak)"
-#~ msgstr "plain (słabe)"
-
-#~ 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/pl_PL/LC_MESSAGES/djangojs.po b/modoboa/locale/pl_PL/LC_MESSAGES/djangojs.po
index 2b4c5405a..1dbda6226 100644
--- a/modoboa/locale/pl_PL/LC_MESSAGES/djangojs.po
+++ b/modoboa/locale/pl_PL/LC_MESSAGES/djangojs.po
@@ -1,26 +1,24 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
-#
+#
# Translators:
# sin88 , 2016
# sin88 , 2016
+# Wojtek Gajda , 2018
msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-03-09 16:48+0100\n"
-"PO-Revision-Date: 2017-09-22 09:50+0000\n"
-"Last-Translator: sin88 \n"
-"Language-Team: Polish (Poland) (http://www.transifex.com/tonio/modoboa/"
-"language/pl_PL/)\n"
-"Language: pl_PL\n"
+"PO-Revision-Date: 2020-03-09 15:49+0000\n"
+"Last-Translator: Antoine Nguyen \n"
+"Language-Team: Polish (Poland) (http://www.transifex.com/tonio/modoboa/language/pl_PL/)\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==1 ? 0 : (n%10>=2 && n%10<=4) && (n"
-"%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n"
-"%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n"
+"Language: pl_PL\n"
+"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n"
#: bower_components/jquery-ui/jquery-ui.min.js:8
msgid "'"
@@ -36,7 +34,7 @@ msgstr "Brak logów do wyświetlenia"
#: static/js/confirmation.js:44
msgid "Warning"
-msgstr "Ostrzerzenie"
+msgstr "Ostrzeżenie"
#: static/js/confirmation.js:59
msgid "Cancel"
@@ -56,4 +54,4 @@ msgstr "Szukaj"
#: static/js/searchbar.js:28
msgid "Search..."
-msgstr "Szukaj.."
+msgstr "Szukaj..."
diff --git a/modoboa/locale/pt_BR/LC_MESSAGES/django.po b/modoboa/locale/pt_BR/LC_MESSAGES/django.po
index 492d45004..e6604183d 100644
--- a/modoboa/locale/pt_BR/LC_MESSAGES/django.po
+++ b/modoboa/locale/pt_BR/LC_MESSAGES/django.po
@@ -1,491 +1,493 @@
# 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
# Ian Moone, 2014
# Denison Martins , 2017
# Devit BRemer , 2017
+# Eduardo Folly , 2019
# Felipe Morato , 2017
# Jhon Pitolomeux , 2016
# Jose Marcos Araujo , 2016
-# Paulino Michelazzo , 2014
+# Marks Eliel , 2020
+# Paulino Michelazzo , 2014
# Rafael Barretto , 2013,2015-2017
# Rafael Barretto , 2017-2018
-# vanderson diniz do nascimento , 2015
+# vanderson diniz , 2015
msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-03-09 16:48+0100\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: pt_BR\n"
+"POT-Creation-Date: 2020-05-06 13:15+0200\n"
+"PO-Revision-Date: 2020-05-06 11:16+0000\n"
+"Last-Translator: Antoine Nguyen \n"
+"Language-Team: Portuguese (Brazil) (http://www.transifex.com/tonio/modoboa/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:20
+#: core/app_settings.py:26
msgid "User profile"
msgstr "Perfil do usuário"
-#: core/app_settings.py:33
+#: core/app_settings.py:39
msgid "Authentication"
msgstr "Autenticação"
-#: core/app_settings.py:36
+#: core/app_settings.py:42
msgid "Authentication type"
msgstr "Tipo de autenticação"
-#: core/app_settings.py:37
+#: core/app_settings.py:43
msgid "Local"
msgstr "Local"
-#: core/app_settings.py:40
+#: core/app_settings.py:46
msgid "The backend used for authentication"
msgstr "O backend usado para autenticação"
-#: core/app_settings.py:45
+#: core/app_settings.py:51
msgid "Default password scheme"
msgstr "Esquema padrão de senha"
-#: core/app_settings.py:50
+#: core/app_settings.py:56
msgid "Scheme used to crypt mailbox passwords"
msgstr "Esquema usado para criptografar as senhas das caixas de correio"
-#: core/app_settings.py:54
+#: core/app_settings.py:60
msgid "Rounds"
msgstr "Ciclos"
-#: core/app_settings.py:57
+#: core/app_settings.py:63
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:63
-#, fuzzy
-#| msgid "Default password scheme"
+#: core/app_settings.py:69
msgid "Update password scheme at login"
-msgstr "Esquema padrão de senha"
-
-#: core/app_settings.py:66
-msgid "Update user password at login to use the default password scheme"
msgstr ""
-#: core/app_settings.py:71
+#: core/app_settings.py:72
+msgid "Update user password at login to use the default password scheme"
+msgstr "Atualização da senha do usuário no login para usar o esquema de senha padrão"
+
+#: core/app_settings.py:77
msgid "Default password"
msgstr "Senha padrão"
-#: core/app_settings.py:74
+#: core/app_settings.py:80
msgid "Default password for automatically created accounts."
msgstr "Senha padrão para contas criadas automaticamente."
-#: core/app_settings.py:78
+#: core/app_settings.py:84
msgid "Random password length"
msgstr "Tamanho de senha aleatório"
-#: core/app_settings.py:82
+#: core/app_settings.py:88
msgid "Length of randomly generated passwords."
+msgstr "Tamanho das senhas geradas aleatoriamente."
+
+#: core/app_settings.py:92
+msgid "Update password service URL"
msgstr ""
-#: core/app_settings.py:86
-#, fuzzy
-#| msgid "Default password scheme"
-msgid "Update password service URL"
-msgstr "Esquema padrão de senha"
-
-#: core/app_settings.py:90
+#: core/app_settings.py:96
msgid ""
"The URL of an external page where users will be able to update their "
"password. It applies only to non local users, ie. those automatically "
"created after a successful external authentication (LDAP, SMTP)."
msgstr ""
-#: core/app_settings.py:98
+#: core/app_settings.py:104
+msgid "Password recovery announcement"
+msgstr ""
+
+#: core/app_settings.py:109
+msgid "A temporary message that will be displayed on the reset password page."
+msgstr ""
+
+#: core/app_settings.py:115
+msgid "Enable password recovery by SMS"
+msgstr ""
+
+#: core/app_settings.py:118
+msgid "Enable password recovery by SMS for users who filled a phone number."
+msgstr ""
+
+#: core/app_settings.py:124
+msgid "SMS provider"
+msgstr ""
+
+#: core/app_settings.py:127
+msgid "Choose a provider to send password recovery SMS"
+msgstr ""
+
+#: core/app_settings.py:133
msgid "LDAP settings"
msgstr "Configurações do LDAP"
-#: core/app_settings.py:101
+#: core/app_settings.py:136
msgid "Server address"
msgstr "Endereço do servidor"
-#: core/app_settings.py:104
+#: core/app_settings.py:139
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:108
+#: core/app_settings.py:143
msgid "Server port"
msgstr "Porta do servidor"
-#: core/app_settings.py:110
+#: core/app_settings.py:145
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:114
+#: core/app_settings.py:149
msgid "Enable secondary server (fallback)"
msgstr ""
-#: core/app_settings.py:117
+#: core/app_settings.py:152
msgid ""
"Enable a secondary LDAP server which will be used if the primary one fails"
msgstr ""
-#: core/app_settings.py:123
-#, fuzzy
-#| msgid "Server address"
+#: core/app_settings.py:158
msgid "Secondary server address"
-msgstr "Endereço do servidor"
+msgstr ""
-#: core/app_settings.py:126
-#, fuzzy
-#| msgid "The IP address or the DNS name of the LDAP server"
+#: core/app_settings.py:161
msgid "The IP address or the DNS name of the seondary LDAP server"
-msgstr "O endereço IP do nome DNS do servidor LDAP"
+msgstr ""
-#: core/app_settings.py:130
-#, fuzzy
-#| msgid "Server port"
+#: core/app_settings.py:165
msgid "Secondary server port"
-msgstr "Porta do servidor"
+msgstr ""
-#: core/app_settings.py:133
-#, fuzzy
-#| msgid "The TCP port number used by the LDAP server"
+#: core/app_settings.py:168
msgid "The TCP port number used by the LDAP secondary server"
-msgstr "O número da porta TCP usada pelo servidor LDAP"
+msgstr ""
-#: core/app_settings.py:137
+#: core/app_settings.py:172
msgid "Use a secured connection"
msgstr "Usar conexão segura"
-#: core/app_settings.py:141
+#: core/app_settings.py:176
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:145
+#: core/app_settings.py:180
msgid "Active Directory"
msgstr "Active Directory"
-#: core/app_settings.py:148
+#: core/app_settings.py:183
msgid "Tell if the LDAP server is an Active Directory one"
msgstr "Informe se o servidor LDAP é um Active Directory"
-#: core/app_settings.py:152
+#: core/app_settings.py:187
msgid "Administrator groups"
msgstr "Grupos de administradores"
-#: core/app_settings.py:155
+#: core/app_settings.py:190
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:162
+#: core/app_settings.py:197
msgid "Group type"
msgstr "Tipo de grupo"
-#: core/app_settings.py:166
+#: core/app_settings.py:201
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:171
+#: core/app_settings.py:206
msgid "Groups search base"
msgstr "Base de pesquisa de grupos"
-#: core/app_settings.py:174
+#: core/app_settings.py:209
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:180
+#: core/app_settings.py:215
msgid "Password attribute"
msgstr "Atributo de senha"
-#: core/app_settings.py:182
+#: core/app_settings.py:217
msgid "The attribute used to store user passwords"
msgstr "O atributo usado para armazenar senhas de usuários"
-#: core/app_settings.py:187
-#, fuzzy
-#| msgid "Authentication method"
+#: core/app_settings.py:222
msgid "LDAP authentication settings"
-msgstr "Método de autenticação"
+msgstr ""
-#: core/app_settings.py:190
+#: core/app_settings.py:225
msgid "Authentication method"
msgstr "Método de autenticação"
-#: core/app_settings.py:191
+#: core/app_settings.py:226
msgid "Search and bind"
msgstr "Pesquisar e vincular"
-#: core/app_settings.py:192
+#: core/app_settings.py:227
msgid "Direct bind"
msgstr "Vinculação direta"
-#: core/app_settings.py:194
+#: core/app_settings.py:229
msgid "Choose the authentication method to use"
msgstr "Escolha o método de autenticação para usar"
-#: core/app_settings.py:198 core/app_settings.py:252
+#: core/app_settings.py:233 core/app_settings.py:287
msgid "Bind DN"
msgstr "Vincular DN"
-#: core/app_settings.py:201 core/app_settings.py:255
+#: core/app_settings.py:236 core/app_settings.py:290
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:208 core/app_settings.py:262
+#: core/app_settings.py:243 core/app_settings.py:297
msgid "Bind password"
msgstr "Vincular senha"
-#: core/app_settings.py:211 core/app_settings.py:265
+#: core/app_settings.py:246 core/app_settings.py:300
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:219 core/app_settings.py:311
+#: core/app_settings.py:254 core/app_settings.py:346
msgid "Users search base"
msgstr "Base de pesquisa de usuários"
-#: core/app_settings.py:222 core/app_settings.py:314
+#: core/app_settings.py:257 core/app_settings.py:349
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:228 core/app_settings.py:320
+#: core/app_settings.py:263 core/app_settings.py:355
msgid "Search filter"
msgstr "Filtro de pesquisa"
-#: core/app_settings.py:231 core/app_settings.py:323
+#: core/app_settings.py:266 core/app_settings.py:358
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:238
+#: core/app_settings.py:273
msgid "User DN template"
msgstr "Usar template DN"
-#: core/app_settings.py:241
+#: core/app_settings.py:276
#, 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:249
-#, fuzzy
-#| msgid "LDAP settings"
+#: core/app_settings.py:284
msgid "LDAP synchronization settings"
-msgstr "Configurações do LDAP"
+msgstr ""
-#: core/app_settings.py:273
+#: core/app_settings.py:308
msgid "Enable export to LDAP"
msgstr ""
-#: core/app_settings.py:276
+#: core/app_settings.py:311
msgid ""
"Enable automatic synchronization between local database and LDAP directory"
msgstr ""
-#: core/app_settings.py:282
+#: core/app_settings.py:317
msgid "Delete remote LDAP account when local account is deleted"
msgstr ""
-#: core/app_settings.py:286
+#: core/app_settings.py:321
msgid ""
"Delete remote LDAP account when local account is deleted, otherwise it will "
"be disabled."
msgstr ""
-#: core/app_settings.py:292
-#, fuzzy
-#| msgid "User DN template"
+#: core/app_settings.py:327
msgid "Account DN template"
-msgstr "Usar template DN"
+msgstr ""
-#: core/app_settings.py:295
-#, fuzzy, python-format
-#| msgid ""
-#| "The template used to construct a user's DN. It should contain one "
-#| "placeholder (ie. %(user)s)"
+#: core/app_settings.py:330
+#, python-format
msgid ""
"The template used to construct an account'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)"
-#: core/app_settings.py:302
+#: core/app_settings.py:337
msgid "Enable import from LDAP"
msgstr ""
-#: core/app_settings.py:305
+#: core/app_settings.py:340
msgid "Enable account synchronization from LDAP directory to local database"
msgstr ""
-#: core/app_settings.py:330
-#, fuzzy
-#| msgid "Password attribute"
+#: core/app_settings.py:365
msgid "Username attribute"
-msgstr "Atributo de senha"
+msgstr ""
-#: core/app_settings.py:333
+#: core/app_settings.py:368
msgid "The name of the LDAP attribute where the username can be found."
msgstr ""
-#: core/app_settings.py:337 core/templates/core/dashboard.html:5
+#: core/app_settings.py:373
+msgid "Enable Dovecot LDAP sync"
+msgstr ""
+
+#: core/app_settings.py:376
+msgid "LDAP authentication settings will be applied to Dovecot configuration."
+msgstr ""
+
+#: core/app_settings.py:382
+msgid "Dovecot LDAP config file"
+msgstr ""
+
+#: core/app_settings.py:386
+msgid ""
+"Location of the configuration file which contains Dovecot LDAP settings."
+msgstr ""
+
+#: core/app_settings.py:391 core/templates/core/dashboard.html:5
msgid "Dashboard"
msgstr "Painel"
-#: core/app_settings.py:340
+#: core/app_settings.py:394
msgid "Custom RSS feed"
msgstr "Feed RSS personalizado"
-#: core/app_settings.py:343
+#: core/app_settings.py:397
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:348
+#: core/app_settings.py:402
msgid "Hide features widget"
-msgstr ""
+msgstr "Ocultar widget de apresentação"
-#: core/app_settings.py:351
+#: core/app_settings.py:405
msgid "Hide features widget for resellers and domain administrators"
-msgstr ""
+msgstr "Ocultar recursos widget para revendedores e administradores de domínio"
-#: core/app_settings.py:355
+#: core/app_settings.py:409
msgid "Notifications"
msgstr "Notificações"
-#: core/app_settings.py:358
+#: core/app_settings.py:412
msgid "Sender address"
msgstr "Endereço do remente"
-#: core/app_settings.py:361
+#: core/app_settings.py:415
msgid "Email address used to send notifications."
msgstr "Endereço de e-mail usado para enviar notificações."
-#: core/app_settings.py:365
+#: core/app_settings.py:419
msgid "Public API"
msgstr "API Pública"
-#: core/app_settings.py:368
+#: core/app_settings.py:422
msgid "Enable communication"
msgstr "Habilitar comunicação"
-#: core/app_settings.py:371
+#: core/app_settings.py:425
msgid "Enable communication with Modoboa public API"
msgstr "Habilitar comunicação com API pública do Modoboa"
-#: core/app_settings.py:375
+#: core/app_settings.py:429
msgid "Check new versions"
msgstr "Verificar novas versões"
-#: core/app_settings.py:378
+#: core/app_settings.py:432
msgid "Automatically checks if a newer version is available"
msgstr "Verificar automaticamente se uma nova versão está disponível"
-#: core/app_settings.py:382
+#: core/app_settings.py:436
msgid "Send an email when new versions are found"
msgstr ""
-#: core/app_settings.py:385
+#: core/app_settings.py:439
msgid "Send an email to notify admins about new versions"
msgstr ""
-#: core/app_settings.py:389
+#: core/app_settings.py:443
msgid "Recipient"
msgstr ""
-#: core/app_settings.py:392
+#: core/app_settings.py:446
msgid "Recipient of new versions notification emails."
msgstr ""
-#: core/app_settings.py:397
+#: core/app_settings.py:451
msgid "Send statistics"
msgstr "Enviar estatísticas"
-#: core/app_settings.py:400
+#: core/app_settings.py:454
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:404
+#: core/app_settings.py:458
msgid "Miscellaneous"
msgstr "Diversos"
-#: core/app_settings.py:407
+#: core/app_settings.py:461
msgid "Inactive account threshold"
-msgstr ""
+msgstr "Limite de conta inativa"
-#: core/app_settings.py:410
+#: core/app_settings.py:464
msgid ""
-"An account with a last login date greater than this threshold (in days) will "
-"be considered as inactive"
-msgstr ""
+"An account with a last login date greater than this threshold (in days) will"
+" be considered as inactive"
+msgstr "Uma conta com uma data de login maior que este limite (em dias) será considerado como inativo"
-#: core/app_settings.py:416
+#: core/app_settings.py:470
msgid "Top notifications check interval"
msgstr "Intervalo de verificação de verificações de topo"
-#: core/app_settings.py:419
+#: core/app_settings.py:473
msgid "Interval between two top notification checks (in seconds)"
msgstr "Intervalo entre checagem de notificações (em segundos)"
-#: core/app_settings.py:424
+#: core/app_settings.py:478
msgid "Maximum log record age"
msgstr "Idade máxima do registro de log"
-#: core/app_settings.py:426
+#: core/app_settings.py:480
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:430
+#: core/app_settings.py:484
msgid "Items per page"
msgstr "Itens por página"
-#: core/app_settings.py:432
+#: core/app_settings.py:486
msgid "Number of displayed items per page"
msgstr "Número de itens exibidos por página"
-#: core/app_settings.py:436
+#: core/app_settings.py:490
msgid "Default top redirection"
msgstr "Redirecionamento de topo padrão"
-#: core/app_settings.py:440
+#: core/app_settings.py:494
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:478 core/app_settings.py:486
+#: core/app_settings.py:548 core/app_settings.py:556 core/app_settings.py:564
msgid "Invalid syntax"
msgstr "Sintaxe inválida"
-#: core/app_settings.py:492
+#: core/app_settings.py:570
msgid "Invalid rounds number"
msgstr "Número de ciclos inválido"
-#: core/app_settings.py:519
+#: core/app_settings.py:595 core/app_settings.py:597 core/app_settings.py:608
msgid "This field is required"
msgstr "Este campo é obrigatório"
@@ -498,64 +500,80 @@ 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 ""
+msgstr "Você tem USE_TZ definido como falso, isso pode resultar em problemas durante as transições entre horário de verão / inverno (ou seja, o mesmo local de tempo que ocorre duas vezes devido a alteração do relógio)."
#: core/checks/settings_checks.py:9
msgid "Set `USE_TZ = True` in settings.py"
-msgstr ""
+msgstr "Definir `USE_TZ = TRUE em settings.py"
-#: core/constants.py:5
+#: core/constants.py:6
msgid "Simple user"
msgstr "Usuário simples"
-#: core/constants.py:6
+#: core/constants.py:7
msgid "Domain administrator"
msgstr "Administrador de domínio"
-#: core/constants.py:7
+#: core/constants.py:8
msgid "Reseller"
msgstr "Revendedor"
-#: core/constants.py:8
+#: core/constants.py:9
msgid "Super administrator"
msgstr "Super administrador"
-#: core/constants.py:51 lib/form_utils.py:389
+#: core/constants.py:52 lib/form_utils.py:389
msgid "No"
msgstr "Não"
-#: core/forms.py:18
+#: core/constants.py:102
+msgid "Choose a provider"
+msgstr ""
+
+#: core/constants.py:107
+msgid "Dummy"
+msgstr ""
+
+#: core/forms.py:21
msgid "Username"
msgstr "Nome de usuário"
-#: core/forms.py:22
+#: core/forms.py:25
msgid "Password"
msgstr "Senha"
-#: core/forms.py:35
+#: core/forms.py:38
msgid "Old password"
msgstr "Senha antiga"
-#: core/forms.py:39
+#: core/forms.py:42
msgid "New password"
msgstr "Nova senha"
-#: core/forms.py:43
+#: core/forms.py:46
msgid "Confirmation"
msgstr "Confirmação"
-#: core/forms.py:71
+#: core/forms.py:74
msgid "Old password mismatchs"
msgstr "Senha antiga não confere"
-#: core/forms.py:80
+#: core/forms.py:83
msgid "Passwords mismatch"
msgstr "Senhas não conferem"
-#: core/forms.py:100
+#: core/forms.py:103
msgid "Enable API access"
msgstr "Ativar acesso à API"
+#: core/forms.py:137
+msgid "Verification code"
+msgstr ""
+
+#: core/forms.py:148
+msgid "Invalid code"
+msgstr ""
+
#: core/handlers.py:36
msgid "added"
msgstr "adicionado"
@@ -595,71 +613,67 @@ msgid "One or more updates are available"
msgstr "Uma ou mais atualizações disponíveis"
#: core/management/commands/communicate_with_public_api.py:44
-#, fuzzy
-#| msgid "One or more updates are available"
msgid "[modoboa] Update(s) available"
-msgstr "Uma ou mais atualizações disponíveis"
+msgstr ""
-#: core/models.py:53
+#: core/models.py:55
msgid "Allow mailboxes access"
msgstr "Permitir acesso a caixa de correio"
-#: core/models.py:55
+#: core/models.py:57
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:58
+#: core/models.py:60
msgid "password"
msgstr "senha"
-#: core/models.py:61
+#: core/models.py:63
msgid "language"
msgstr "idioma"
-#: core/models.py:64
+#: core/models.py:66
msgid "Prefered language to display pages."
msgstr "Linguagem padrão para visualizar mensagens"
-#: core/models.py:68
+#: core/models.py:70
msgid "Phone number"
msgstr "Número de telefone"
-#: core/models.py:70
+#: core/models.py:72
msgid "Secondary email"
msgstr "E-mail secundário"
-#: core/models.py:73
+#: core/models.py:75
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:124
+#: core/models.py:126
msgid "Failed to update password: LDAP module not installed"
msgstr "Falha ao atualizar senha: módulo LDAP não instalado"
-#: core/models.py:153
+#: core/models.py:155
msgid "account"
msgstr "conta"
-#: core/models.py:280
+#: core/models.py:282
msgid "Unknown"
msgstr "Desconhecido"
-#: core/models.py:314
+#: core/models.py:316
msgid "Invalid line"
msgstr "Linha inválida"
-#: core/models.py:322
+#: core/models.py:324
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:337
+#: core/models.py:339
#, 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:342
+#: core/models.py:344
#, 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'"
@@ -667,14 +681,14 @@ msgstr "os campos nome de usuário e e-mail não diferem de '%s'"
#: core/password_validation.py:24
msgid "Password must contain at least {} digit."
msgid_plural "Password must contain at least {} digits."
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "Senha deve conter ao menos {} dígitos."
+msgstr[1] "Senha deve conter ao menos {} dígitos."
#: core/password_validation.py:34
msgid "Password must contain at least {} lowercase letter."
msgid_plural "Password must contain at least {} lowercase letters."
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "Senha deve conter ao menos {} letras minúsculas."
+msgstr[1] "Senha deve conter ao menos {} letras minúsculas."
#: core/password_validation.py:45
msgid "Password must contain at least {} uppercase letter."
@@ -692,6 +706,50 @@ msgstr[1] ""
msgid "Your password must contain a combination of different character types."
msgstr ""
+#: core/sms_backends/ovh.py:19
+msgid "API endpoint"
+msgstr ""
+
+#: core/sms_backends/ovh.py:22
+msgid "OVH Europe"
+msgstr ""
+
+#: core/sms_backends/ovh.py:23
+msgid "OVH US"
+msgstr ""
+
+#: core/sms_backends/ovh.py:24
+msgid "OVH North-America"
+msgstr ""
+
+#: core/sms_backends/ovh.py:25
+msgid "So you Start Europe"
+msgstr ""
+
+#: core/sms_backends/ovh.py:26
+msgid "So you Start North America"
+msgstr ""
+
+#: core/sms_backends/ovh.py:27
+msgid "Kimsufi Europe"
+msgstr ""
+
+#: core/sms_backends/ovh.py:28
+msgid "Kimsufi North America"
+msgstr ""
+
+#: core/sms_backends/ovh.py:35
+msgid "Application key"
+msgstr ""
+
+#: core/sms_backends/ovh.py:42
+msgid "Application secret"
+msgstr ""
+
+#: core/sms_backends/ovh.py:50
+msgid "Consumer key"
+msgstr ""
+
#: core/templates/core/_current_features.html:6
msgid "Features looking for sponsoring"
msgstr "Funcionalidades precisando de patrocínio"
@@ -716,9 +774,7 @@ 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"
@@ -731,11 +787,9 @@ 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"
@@ -765,8 +819,7 @@ 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"
@@ -826,16 +879,14 @@ msgid "Message"
msgstr "Mensagem"
#: core/templates/core/notifications/update_available.html:3
-#, fuzzy
-#| msgid "One or more updates are available"
msgid ""
"\n"
" The following update is available:\n"
msgid_plural ""
"\n"
" The following updates are available:\n"
-msgstr[0] "Uma ou mais atualizações disponíveis"
-msgstr[1] "Uma ou mais atualizações disponíveis"
+msgstr[0] ""
+msgstr[1] ""
#: core/templates/core/parameters.html:2 core/templatetags/core_tags.py:71
msgid "Parameters"
@@ -880,10 +931,8 @@ msgid "Update your personal information"
msgstr "Atualizar sua informação pessoal"
#: core/templates/core/user_profile.html:13
-#, fuzzy
-#| msgid "Failed to update password: {}"
msgid "Click here to update your password"
-msgstr "Falha ao atualizar a senha: {}"
+msgstr ""
#: core/templatetags/core_tags.py:34
msgid "Modoboa"
@@ -905,29 +954,33 @@ msgstr "Core do Modoboa"
msgid "Parameters saved"
msgstr "Parêmetros salvos"
-#: core/views/auth.py:46
+#: core/views/auth.py:59
#, python-format
msgid "Password scheme mismatch. Updating %s password"
msgstr ""
-#: core/views/auth.py:53
+#: core/views/auth.py:66
#, python-format
msgid "Password hash parameter missmatch. Updating %s password"
msgstr ""
-#: core/views/auth.py:69
+#: core/views/auth.py:82
#, python-format
msgid "User '%s' successfully logged in"
msgstr "Usuário '%s' autenticado com sucesso"
-#: core/views/auth.py:77
+#: core/views/auth.py:90
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:112
+#: core/views/auth.py:125
msgid "User '{}' successfully logged out"
msgstr "Usuário '{}' saiu com sucesso"
+#: core/views/auth.py:170 core/views/auth.py:225
+msgid "Please use the following code to recover your Modoboa password: {}"
+msgstr ""
+
#: core/views/user.py:53
msgid "Profile updated"
msgstr "Perfil atualizado"
@@ -967,7 +1020,8 @@ msgid "Enter a valid email address."
msgstr "Digite um endereço de e-mail válido"
#: lib/form_utils.py:77 templates/registration/password_reset_confirm.html:12
-#: templates/registration/password_reset_form.html:11
+#: templates/registration/password_reset_confirm_code.html:25
+#: templates/registration/password_reset_form.html:29
msgid "Submit"
msgstr "Enviar"
@@ -1028,8 +1082,9 @@ 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"
@@ -1054,7 +1109,7 @@ msgid "Log in"
msgstr "Entrar"
#: templates/registration/login.html:24
-#: templates/registration/password_reset_form.html:6
+#: templates/registration/password_reset_form.html:17
msgid "Forgot password?"
msgstr "Esqueceu a senha?"
@@ -1067,7 +1122,7 @@ msgstr ""
#: templates/registration/password_reset_confirm.html:7
msgid "Change password"
-msgstr ""
+msgstr "Alterar senha"
#: templates/registration/password_reset_confirm.html:17
msgid ""
@@ -1075,6 +1130,14 @@ msgid ""
"used. Please request a new password reset."
msgstr ""
+#: templates/registration/password_reset_confirm_code.html:20
+msgid "Enter the code you've just received by SMS"
+msgstr ""
+
+#: templates/registration/password_reset_confirm_code.html:27
+msgid "Resend code"
+msgstr ""
+
#: templates/registration/password_reset_done.html:7
msgid ""
"We've emailed you instructions for setting your password, if an account "
@@ -1100,35 +1163,10 @@ msgstr ""
msgid "Sincerely, The Modoboa Team."
msgstr "Atenciosamente, A Equipe Modoboa."
+#: templates/registration/password_reset_form.html:24
+msgid "Please fill-in your primary email address"
+msgstr ""
+
#: templates/registration/password_reset_subject.txt:3
msgid "Modoboa password reset"
msgstr "Redefinição de senha do Modoboa"
-
-#, fuzzy
-#~| msgid "Enable communication"
-#~ msgid "Enable LDAP synchronization"
-#~ msgstr "Habilitar comunicação"
-
-#~ msgid "md5crypt (weak)"
-#~ msgstr "md5crypt (fraca)"
-
-#~ msgid "sha256 (weak)"
-#~ msgstr "sha256 (fraca)"
-
-#~ msgid "md5 (weak)"
-#~ msgstr "md5 (fraca)"
-
-#~ msgid "crypt (weak)"
-#~ msgstr "crypt (fraca)"
-
-#~ msgid "plain (weak)"
-#~ msgstr "plain (fraca)"
-
-#~ 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_BR/LC_MESSAGES/djangojs.po b/modoboa/locale/pt_BR/LC_MESSAGES/djangojs.po
index 28e81a625..b900f7bb4 100644
--- a/modoboa/locale/pt_BR/LC_MESSAGES/djangojs.po
+++ b/modoboa/locale/pt_BR/LC_MESSAGES/djangojs.po
@@ -1,23 +1,22 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
-#
+#
# Translators:
# Jose Marcos Araujo , 2016
-# Paulino Michelazzo , 2014
+# Paulino Michelazzo , 2014
msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-03-09 16:48+0100\n"
-"PO-Revision-Date: 2017-09-23 19:14+0000\n"
-"Last-Translator: Rafael Barretto \n"
-"Language-Team: Portuguese (Brazil) (http://www.transifex.com/tonio/modoboa/"
-"language/pt_BR/)\n"
-"Language: pt_BR\n"
+"PO-Revision-Date: 2020-03-09 15:49+0000\n"
+"Last-Translator: Antoine Nguyen \n"
+"Language-Team: Portuguese (Brazil) (http://www.transifex.com/tonio/modoboa/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"
#: bower_components/jquery-ui/jquery-ui.min.js:8
diff --git a/modoboa/locale/pt_PT/LC_MESSAGES/django.po b/modoboa/locale/pt_PT/LC_MESSAGES/django.po
index f72376da9..adf324c4d 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: 2020-03-09 16:48+0100\n"
+"POT-Creation-Date: 2020-05-06 13:15+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,165 +24,189 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: core/app_settings.py:20
+#: core/app_settings.py:26
#, fuzzy
#| msgid "Profile"
msgid "User profile"
msgstr "Perfil"
-#: core/app_settings.py:33
+#: core/app_settings.py:39
msgid "Authentication"
msgstr "Autenticação"
-#: core/app_settings.py:36
+#: core/app_settings.py:42
msgid "Authentication type"
msgstr "Tipo de autenticação"
-#: core/app_settings.py:37
+#: core/app_settings.py:43
msgid "Local"
msgstr "Local"
-#: core/app_settings.py:40
+#: core/app_settings.py:46
msgid "The backend used for authentication"
msgstr "Backend usado para autenticação"
-#: core/app_settings.py:45
+#: core/app_settings.py:51
msgid "Default password scheme"
msgstr "Esquema pré-definido para passwords"
-#: core/app_settings.py:50
+#: core/app_settings.py:56
msgid "Scheme used to crypt mailbox passwords"
msgstr "Esquema usado para encriptar as passwords das caixas de correio"
-#: core/app_settings.py:54
+#: core/app_settings.py:60
msgid "Rounds"
msgstr ""
-#: core/app_settings.py:57
+#: core/app_settings.py:63
msgid ""
"Number of rounds to use (only used by sha256crypt and sha512crypt). Must be "
"between 1000 and 999999999, inclusive."
msgstr ""
-#: core/app_settings.py:63
+#: core/app_settings.py:69
#, fuzzy
#| msgid "Default password scheme"
msgid "Update password scheme at login"
msgstr "Esquema pré-definido para passwords"
-#: core/app_settings.py:66
+#: core/app_settings.py:72
msgid "Update user password at login to use the default password scheme"
msgstr ""
-#: core/app_settings.py:71
+#: core/app_settings.py:77
#, fuzzy
#| msgid "Default password scheme"
msgid "Default password"
msgstr "Esquema pré-definido para passwords"
-#: core/app_settings.py:74
+#: core/app_settings.py:80
msgid "Default password for automatically created accounts."
msgstr ""
-#: core/app_settings.py:78
+#: core/app_settings.py:84
#, fuzzy
#| msgid "Bind password"
msgid "Random password length"
msgstr "Password para bind"
-#: core/app_settings.py:82
+#: core/app_settings.py:88
msgid "Length of randomly generated passwords."
msgstr ""
-#: core/app_settings.py:86
+#: core/app_settings.py:92
#, fuzzy
#| msgid "Default password scheme"
msgid "Update password service URL"
msgstr "Esquema pré-definido para passwords"
-#: core/app_settings.py:90
+#: core/app_settings.py:96
msgid ""
"The URL of an external page where users will be able to update their "
"password. It applies only to non local users, ie. those automatically "
"created after a successful external authentication (LDAP, SMTP)."
msgstr ""
-#: core/app_settings.py:98
+#: core/app_settings.py:104
+msgid "Password recovery announcement"
+msgstr ""
+
+#: core/app_settings.py:109
+msgid "A temporary message that will be displayed on the reset password page."
+msgstr ""
+
+#: core/app_settings.py:115
+msgid "Enable password recovery by SMS"
+msgstr ""
+
+#: core/app_settings.py:118
+msgid "Enable password recovery by SMS for users who filled a phone number."
+msgstr ""
+
+#: core/app_settings.py:124
+msgid "SMS provider"
+msgstr ""
+
+#: core/app_settings.py:127
+msgid "Choose a provider to send password recovery SMS"
+msgstr ""
+
+#: core/app_settings.py:133
msgid "LDAP settings"
msgstr "Definições do serviço de directório"
-#: core/app_settings.py:101
+#: core/app_settings.py:136
msgid "Server address"
msgstr "Endereço do Servidor"
-#: core/app_settings.py:104
+#: core/app_settings.py:139
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:108
+#: core/app_settings.py:143
msgid "Server port"
msgstr "Porta do Servidor"
-#: core/app_settings.py:110
+#: core/app_settings.py:145
msgid "The TCP port number used by the LDAP server"
msgstr " A porta TCP usada pelo servidor LDAP"
-#: core/app_settings.py:114
+#: core/app_settings.py:149
msgid "Enable secondary server (fallback)"
msgstr ""
-#: core/app_settings.py:117
+#: core/app_settings.py:152
msgid ""
"Enable a secondary LDAP server which will be used if the primary one fails"
msgstr ""
-#: core/app_settings.py:123
+#: core/app_settings.py:158
#, fuzzy
#| msgid "Server address"
msgid "Secondary server address"
msgstr "Endereço do Servidor"
-#: core/app_settings.py:126
+#: core/app_settings.py:161
#, fuzzy
#| msgid "The IP address or the DNS name of the LDAP server"
msgid "The IP address or the DNS name of the seondary LDAP server"
msgstr "O endereço IP do servidor de DNS do servidor LDAP"
-#: core/app_settings.py:130
+#: core/app_settings.py:165
#, fuzzy
#| msgid "Server port"
msgid "Secondary server port"
msgstr "Porta do Servidor"
-#: core/app_settings.py:133
+#: core/app_settings.py:168
#, fuzzy
#| msgid "The TCP port number used by the LDAP server"
msgid "The TCP port number used by the LDAP secondary server"
msgstr " A porta TCP usada pelo servidor LDAP"
-#: core/app_settings.py:137
+#: core/app_settings.py:172
msgid "Use a secured connection"
msgstr "Utilizar uma ligação segura"
-#: core/app_settings.py:141
+#: core/app_settings.py:176
#, 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:145
+#: core/app_settings.py:180
msgid "Active Directory"
msgstr "Active Directory"
-#: core/app_settings.py:148
+#: core/app_settings.py:183
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:152
+#: core/app_settings.py:187
msgid "Administrator groups"
msgstr "Grupos de Administrador"
-#: core/app_settings.py:155
+#: core/app_settings.py:190
msgid ""
"Members of those LDAP Posix groups will be created as domain administrators. "
"Use ';' characters to separate groups."
@@ -190,59 +214,59 @@ msgstr ""
"Os membros destes grupos \"LDAP Posix\" serão criados como administradores "
"de domínio. Use ';' para separar os grupos."
-#: core/app_settings.py:162
+#: core/app_settings.py:197
#, fuzzy
#| msgid "Group name"
msgid "Group type"
msgstr "Nome do grupo"
-#: core/app_settings.py:166
+#: core/app_settings.py:201
msgid "The LDAP group type to use with your directory."
msgstr ""
-#: core/app_settings.py:171
+#: core/app_settings.py:206
msgid "Groups search base"
msgstr "Base para pesquisa de Grupos"
-#: core/app_settings.py:174
+#: core/app_settings.py:209
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:180
+#: core/app_settings.py:215
msgid "Password attribute"
msgstr "Atributo de palavra-passe"
-#: core/app_settings.py:182
+#: core/app_settings.py:217
msgid "The attribute used to store user passwords"
msgstr "O atributo utilizado para armazenar palavras-passe"
-#: core/app_settings.py:187
+#: core/app_settings.py:222
#, fuzzy
#| msgid "Authentication method"
msgid "LDAP authentication settings"
msgstr "Método de autenticação"
-#: core/app_settings.py:190
+#: core/app_settings.py:225
msgid "Authentication method"
msgstr "Método de autenticação"
-#: core/app_settings.py:191
+#: core/app_settings.py:226
msgid "Search and bind"
msgstr "Procurar e vincular (bind)"
-#: core/app_settings.py:192
+#: core/app_settings.py:227
msgid "Direct bind"
msgstr "\"Direct bind\""
-#: core/app_settings.py:194
+#: core/app_settings.py:229
msgid "Choose the authentication method to use"
msgstr "Escolher o método de autenticação"
-#: core/app_settings.py:198 core/app_settings.py:252
+#: core/app_settings.py:233 core/app_settings.py:287
msgid "Bind DN"
msgstr "\"Bind DN\""
-#: core/app_settings.py:201 core/app_settings.py:255
+#: core/app_settings.py:236 core/app_settings.py:290
msgid ""
"The distinguished name to use when binding to the LDAP server. Leave empty "
"for an anonymous bind"
@@ -250,28 +274,28 @@ msgstr ""
"O nome único usado para fazer o \"bind\" ao servidor LDAP. Deixar vario "
"para \"bind\" anónimo"
-#: core/app_settings.py:208 core/app_settings.py:262
+#: core/app_settings.py:243 core/app_settings.py:297
msgid "Bind password"
msgstr "Password para bind"
-#: core/app_settings.py:211 core/app_settings.py:265
+#: core/app_settings.py:246 core/app_settings.py:300
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:219 core/app_settings.py:311
+#: core/app_settings.py:254 core/app_settings.py:346
msgid "Users search base"
msgstr "Base para pesquisa de utilizadores"
-#: core/app_settings.py:222 core/app_settings.py:314
+#: core/app_settings.py:257 core/app_settings.py:349
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:228 core/app_settings.py:320
+#: core/app_settings.py:263 core/app_settings.py:355
msgid "Search filter"
msgstr "Filtro de pesquisa"
-#: core/app_settings.py:231 core/app_settings.py:323
+#: core/app_settings.py:266 core/app_settings.py:358
msgid ""
"An optional filter string (e.g. '(objectClass=person)'). In order to be "
"valid, it must be enclosed in parentheses."
@@ -279,11 +303,11 @@ msgstr ""
"Um filtro opcional (ex: '(objetClass=person)'). Tem de estar entre "
"parênteses para ser válido"
-#: core/app_settings.py:238
+#: core/app_settings.py:273
msgid "User DN template"
msgstr "Template DN de utilizador"
-#: core/app_settings.py:241
+#: core/app_settings.py:276
#, python-format
msgid ""
"The template used to construct a user's DN. It should contain one "
@@ -292,38 +316,38 @@ msgstr ""
"O template usado para construir o DN (nome único). Deve apenas conter um "
"'placeholder' (ex: %(user)s) "
-#: core/app_settings.py:249
+#: core/app_settings.py:284
#, fuzzy
#| msgid "LDAP settings"
msgid "LDAP synchronization settings"
msgstr "Definições do serviço de directório"
-#: core/app_settings.py:273
+#: core/app_settings.py:308
msgid "Enable export to LDAP"
msgstr ""
-#: core/app_settings.py:276
+#: core/app_settings.py:311
msgid ""
"Enable automatic synchronization between local database and LDAP directory"
msgstr ""
-#: core/app_settings.py:282
+#: core/app_settings.py:317
msgid "Delete remote LDAP account when local account is deleted"
msgstr ""
-#: core/app_settings.py:286
+#: core/app_settings.py:321
msgid ""
"Delete remote LDAP account when local account is deleted, otherwise it will "
"be disabled."
msgstr ""
-#: core/app_settings.py:292
+#: core/app_settings.py:327
#, fuzzy
#| msgid "User DN template"
msgid "Account DN template"
msgstr "Template DN de utilizador"
-#: core/app_settings.py:295
+#: core/app_settings.py:330
#, fuzzy, python-format
#| msgid ""
#| "The template used to construct a user's DN. It should contain one "
@@ -335,163 +359,180 @@ msgstr ""
"O template usado para construir o DN (nome único). Deve apenas conter um "
"'placeholder' (ex: %(user)s) "
-#: core/app_settings.py:302
+#: core/app_settings.py:337
msgid "Enable import from LDAP"
msgstr ""
-#: core/app_settings.py:305
+#: core/app_settings.py:340
msgid "Enable account synchronization from LDAP directory to local database"
msgstr ""
-#: core/app_settings.py:330
+#: core/app_settings.py:365
#, fuzzy
#| msgid "Password attribute"
msgid "Username attribute"
msgstr "Atributo de palavra-passe"
-#: core/app_settings.py:333
+#: core/app_settings.py:368
msgid "The name of the LDAP attribute where the username can be found."
msgstr ""
-#: core/app_settings.py:337 core/templates/core/dashboard.html:5
+#: core/app_settings.py:373
+msgid "Enable Dovecot LDAP sync"
+msgstr ""
+
+#: core/app_settings.py:376
+msgid "LDAP authentication settings will be applied to Dovecot configuration."
+msgstr ""
+
+#: core/app_settings.py:382
+msgid "Dovecot LDAP config file"
+msgstr ""
+
+#: core/app_settings.py:386
+msgid ""
+"Location of the configuration file which contains Dovecot LDAP settings."
+msgstr ""
+
+#: core/app_settings.py:391 core/templates/core/dashboard.html:5
msgid "Dashboard"
msgstr ""
-#: core/app_settings.py:340
+#: core/app_settings.py:394
msgid "Custom RSS feed"
msgstr ""
-#: core/app_settings.py:343
+#: core/app_settings.py:397
msgid "Display custom RSS feed to resellers and domain administrators"
msgstr ""
-#: core/app_settings.py:348
+#: core/app_settings.py:402
msgid "Hide features widget"
msgstr ""
-#: core/app_settings.py:351
+#: core/app_settings.py:405
msgid "Hide features widget for resellers and domain administrators"
msgstr ""
-#: core/app_settings.py:355
+#: core/app_settings.py:409
#, fuzzy
#| msgid "Authentication"
msgid "Notifications"
msgstr "Autenticação"
-#: core/app_settings.py:358
+#: core/app_settings.py:412
#, fuzzy
#| msgid "Server address"
msgid "Sender address"
msgstr "Endereço do Servidor"
-#: core/app_settings.py:361
+#: core/app_settings.py:415
msgid "Email address used to send notifications."
msgstr ""
-#: core/app_settings.py:365
+#: core/app_settings.py:419
msgid "Public API"
msgstr ""
-#: core/app_settings.py:368
+#: core/app_settings.py:422
msgid "Enable communication"
msgstr ""
-#: core/app_settings.py:371
+#: core/app_settings.py:425
msgid "Enable communication with Modoboa public API"
msgstr ""
-#: core/app_settings.py:375
+#: core/app_settings.py:429
msgid "Check new versions"
msgstr "Procurar novas versões"
-#: core/app_settings.py:378
+#: core/app_settings.py:432
msgid "Automatically checks if a newer version is available"
msgstr "Verifica automaticamente se existem novas versões"
-#: core/app_settings.py:382
+#: core/app_settings.py:436
msgid "Send an email when new versions are found"
msgstr ""
-#: core/app_settings.py:385
+#: core/app_settings.py:439
msgid "Send an email to notify admins about new versions"
msgstr ""
-#: core/app_settings.py:389
+#: core/app_settings.py:443
msgid "Recipient"
msgstr ""
-#: core/app_settings.py:392
+#: core/app_settings.py:446
msgid "Recipient of new versions notification emails."
msgstr ""
-#: core/app_settings.py:397
+#: core/app_settings.py:451
msgid "Send statistics"
msgstr ""
-#: core/app_settings.py:400
+#: core/app_settings.py:454
msgid "Send statistics to Modoboa public API (counters and used extensions)"
msgstr ""
-#: core/app_settings.py:404
+#: core/app_settings.py:458
msgid "Miscellaneous"
msgstr "Vários"
-#: core/app_settings.py:407
+#: core/app_settings.py:461
msgid "Inactive account threshold"
msgstr ""
-#: core/app_settings.py:410
+#: core/app_settings.py:464
msgid ""
"An account with a last login date greater than this threshold (in days) will "
"be considered as inactive"
msgstr ""
-#: core/app_settings.py:416
+#: core/app_settings.py:470
msgid "Top notifications check interval"
msgstr "Intervalo de tempo para verificar notificações (no topo)"
-#: core/app_settings.py:419
+#: core/app_settings.py:473
#, 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:424
+#: core/app_settings.py:478
msgid "Maximum log record age"
msgstr "Idade máxima do registo no log"
-#: core/app_settings.py:426
+#: core/app_settings.py:480
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:430
+#: core/app_settings.py:484
msgid "Items per page"
msgstr "Itens por página"
-#: core/app_settings.py:432
+#: core/app_settings.py:486
msgid "Number of displayed items per page"
msgstr "Número de itens apresentados por página"
-#: core/app_settings.py:436
+#: core/app_settings.py:490
msgid "Default top redirection"
msgstr "Redirecionamento pré-definido"
-#: core/app_settings.py:440
+#: core/app_settings.py:494
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:478 core/app_settings.py:486
+#: core/app_settings.py:548 core/app_settings.py:556 core/app_settings.py:564
msgid "Invalid syntax"
msgstr "Sintax inválida"
-#: core/app_settings.py:492
+#: core/app_settings.py:570
msgid "Invalid rounds number"
msgstr "Número de linhas inválido"
-#: core/app_settings.py:519
+#: core/app_settings.py:595 core/app_settings.py:597 core/app_settings.py:608
msgid "This field is required"
msgstr "Este campo é obrigatório"
@@ -510,60 +551,80 @@ msgstr ""
msgid "Set `USE_TZ = True` in settings.py"
msgstr ""
-#: core/constants.py:5
+#: core/constants.py:6
msgid "Simple user"
msgstr "Utilizador simples"
-#: core/constants.py:6
+#: core/constants.py:7
#, fuzzy
#| msgid "Super administrator"
msgid "Domain administrator"
msgstr "Super Administrador"
-#: core/constants.py:7
+#: core/constants.py:8
msgid "Reseller"
msgstr ""
-#: core/constants.py:8
+#: core/constants.py:9
msgid "Super administrator"
msgstr "Super Administrador"
-#: core/constants.py:51 lib/form_utils.py:389
+#: core/constants.py:52 lib/form_utils.py:389
msgid "No"
msgstr "Não"
-#: core/forms.py:18
+#: core/constants.py:102
+msgid "Choose a provider"
+msgstr ""
+
+#: core/constants.py:107
+msgid "Dummy"
+msgstr ""
+
+#: core/forms.py:21
msgid "Username"
msgstr "Nome de Utilizador"
-#: core/forms.py:22
+#: core/forms.py:25
msgid "Password"
msgstr "Password"
-#: core/forms.py:35
+#: core/forms.py:38
msgid "Old password"
msgstr "Password antiga"
-#: core/forms.py:39
+#: core/forms.py:42
msgid "New password"
msgstr "Nova password"
-#: core/forms.py:43
+#: core/forms.py:46
msgid "Confirmation"
msgstr "Confirmação"
-#: core/forms.py:71
+#: core/forms.py:74
msgid "Old password mismatchs"
msgstr "Incompatibilidade da password antiga"
-#: core/forms.py:80
+#: core/forms.py:83
msgid "Passwords mismatch"
msgstr "Passwords não coincidem"
-#: core/forms.py:100
+#: core/forms.py:103
msgid "Enable API access"
msgstr ""
+#: core/forms.py:137
+#, fuzzy
+#| msgid "Authentication"
+msgid "Verification code"
+msgstr "Autenticação"
+
+#: core/forms.py:148
+#, fuzzy
+#| msgid "Invalid line"
+msgid "Invalid code"
+msgstr "Linha inválida"
+
#: core/handlers.py:36
msgid "added"
msgstr "acrescentado"
@@ -611,68 +672,68 @@ msgstr "Uma nova versão está disponível!"
msgid "[modoboa] Update(s) available"
msgstr "Uma nova versão está disponível!"
-#: core/models.py:53
+#: core/models.py:55
msgid "Allow mailboxes access"
msgstr ""
-#: core/models.py:55
+#: core/models.py:57
msgid "Allow this administrator to access user mailboxes"
msgstr ""
-#: core/models.py:58
+#: core/models.py:60
msgid "password"
msgstr "password"
-#: core/models.py:61
+#: core/models.py:63
#, fuzzy
#| msgid "Prefered language"
msgid "language"
msgstr "Idioma preferido"
-#: core/models.py:64
+#: core/models.py:66
#, fuzzy
#| msgid "Prefered language to display pages"
msgid "Prefered language to display pages."
msgstr "Idioma preferido para exibir páginas"
-#: core/models.py:68
+#: core/models.py:70
msgid "Phone number"
msgstr ""
-#: core/models.py:70
+#: core/models.py:72
msgid "Secondary email"
msgstr ""
-#: core/models.py:73
+#: core/models.py:75
msgid "An alternative e-mail address, can be used for recovery needs."
msgstr ""
-#: core/models.py:124
+#: core/models.py:126
msgid "Failed to update password: LDAP module not installed"
msgstr "Falha ao actualizar password: Modulo LDAP não instalado"
-#: core/models.py:153
+#: core/models.py:155
msgid "account"
msgstr "conta"
-#: core/models.py:280
+#: core/models.py:282
msgid "Unknown"
msgstr ""
-#: core/models.py:314
+#: core/models.py:316
msgid "Invalid line"
msgstr "Linha inválida"
-#: core/models.py:322
+#: core/models.py:324
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:337
+#: core/models.py:339
#, 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:342
+#: core/models.py:344
#, python-format
msgid "username and email fields must not differ for '%s'"
msgstr ""
@@ -707,6 +768,54 @@ msgstr[1] ""
msgid "Your password must contain a combination of different character types."
msgstr ""
+#: core/sms_backends/ovh.py:19
+msgid "API endpoint"
+msgstr ""
+
+#: core/sms_backends/ovh.py:22
+msgid "OVH Europe"
+msgstr ""
+
+#: core/sms_backends/ovh.py:23
+msgid "OVH US"
+msgstr ""
+
+#: core/sms_backends/ovh.py:24
+msgid "OVH North-America"
+msgstr ""
+
+#: core/sms_backends/ovh.py:25
+msgid "So you Start Europe"
+msgstr ""
+
+#: core/sms_backends/ovh.py:26
+msgid "So you Start North America"
+msgstr ""
+
+#: core/sms_backends/ovh.py:27
+msgid "Kimsufi Europe"
+msgstr ""
+
+#: core/sms_backends/ovh.py:28
+msgid "Kimsufi North America"
+msgstr ""
+
+#: core/sms_backends/ovh.py:35
+#, fuzzy
+#| msgid "Authentication"
+msgid "Application key"
+msgstr "Autenticação"
+
+#: core/sms_backends/ovh.py:42
+#, fuzzy
+#| msgid "Authentication"
+msgid "Application secret"
+msgstr "Autenticação"
+
+#: core/sms_backends/ovh.py:50
+msgid "Consumer key"
+msgstr ""
+
#: core/templates/core/_current_features.html:6
msgid "Features looking for sponsoring"
msgstr ""
@@ -925,31 +1034,35 @@ msgstr "Benvindo ao Modoboa"
msgid "Parameters saved"
msgstr "Parâmetros salvos"
-#: core/views/auth.py:46
+#: core/views/auth.py:59
#, python-format
msgid "Password scheme mismatch. Updating %s password"
msgstr ""
-#: core/views/auth.py:53
+#: core/views/auth.py:66
#, python-format
msgid "Password hash parameter missmatch. Updating %s password"
msgstr ""
-#: core/views/auth.py:69
+#: core/views/auth.py:82
#, python-format
msgid "User '%s' successfully logged in"
msgstr "O utilizador '%s' fez login com sucesso"
-#: core/views/auth.py:77
+#: core/views/auth.py:90
msgid "Your username and password didn't match. Please try again."
msgstr "O seu nome de utilizador"
-#: core/views/auth.py:112
+#: core/views/auth.py:125
#, fuzzy
#| msgid "User '%s' successfully logged in"
msgid "User '{}' successfully logged out"
msgstr "O utilizador '%s' fez login com sucesso"
+#: core/views/auth.py:170 core/views/auth.py:225
+msgid "Please use the following code to recover your Modoboa password: {}"
+msgstr ""
+
#: core/views/user.py:53
msgid "Profile updated"
msgstr "Perfil atualizado"
@@ -993,7 +1106,8 @@ msgid "Enter a valid email address."
msgstr "Introduzir um nome de domínio válido "
#: lib/form_utils.py:77 templates/registration/password_reset_confirm.html:12
-#: templates/registration/password_reset_form.html:11
+#: templates/registration/password_reset_confirm_code.html:25
+#: templates/registration/password_reset_form.html:29
msgid "Submit"
msgstr "Enviar"
@@ -1082,7 +1196,7 @@ msgid "Log in"
msgstr "Entrar"
#: templates/registration/login.html:24
-#: templates/registration/password_reset_form.html:6
+#: templates/registration/password_reset_form.html:17
#, fuzzy
#| msgid "password"
msgid "Forgot password?"
@@ -1107,6 +1221,14 @@ msgid ""
"used. Please request a new password reset."
msgstr ""
+#: templates/registration/password_reset_confirm_code.html:20
+msgid "Enter the code you've just received by SMS"
+msgstr ""
+
+#: templates/registration/password_reset_confirm_code.html:27
+msgid "Resend code"
+msgstr ""
+
#: templates/registration/password_reset_done.html:7
msgid ""
"We've emailed you instructions for setting your password, if an account "
@@ -1132,6 +1254,10 @@ msgstr ""
msgid "Sincerely, The Modoboa Team."
msgstr ""
+#: templates/registration/password_reset_form.html:24
+msgid "Please fill-in your primary email address"
+msgstr ""
+
#: templates/registration/password_reset_subject.txt:3
msgid "Modoboa password reset"
msgstr ""
diff --git a/modoboa/locale/pt_PT/LC_MESSAGES/djangojs.po b/modoboa/locale/pt_PT/LC_MESSAGES/djangojs.po
index 149cda3dc..f94257f5f 100644
--- a/modoboa/locale/pt_PT/LC_MESSAGES/djangojs.po
+++ b/modoboa/locale/pt_PT/LC_MESSAGES/djangojs.po
@@ -1,10 +1,11 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
-#
+#
# Translators:
# lusitan , 2013
# lusitan , 2013
+# lusitan , 2018
# Mike C. , 2012
# Mike C. , 2012
# Mike C. , 2012,2014
@@ -14,19 +15,18 @@ msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-03-09 16:48+0100\n"
-"PO-Revision-Date: 2016-04-27 20:00+0000\n"
+"PO-Revision-Date: 2020-03-09 15:49+0000\n"
"Last-Translator: Antoine Nguyen \n"
-"Language-Team: Portuguese (Portugal) (http://www.transifex.com/tonio/modoboa/"
-"language/pt_PT/)\n"
-"Language: pt_PT\n"
+"Language-Team: Portuguese (Portugal) (http://www.transifex.com/tonio/modoboa/language/pt_PT/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Language: pt_PT\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: bower_components/jquery-ui/jquery-ui.min.js:8
msgid "'"
-msgstr ""
+msgstr "'"
#: bower_components/swagger-ui/dist/swagger-ui-bundle.js:133
msgid "operation"
diff --git a/modoboa/locale/ro_RO/LC_MESSAGES/django.po b/modoboa/locale/ro_RO/LC_MESSAGES/django.po
index 60f8c2846..7960ecf64 100644
--- a/modoboa/locale/ro_RO/LC_MESSAGES/django.po
+++ b/modoboa/locale/ro_RO/LC_MESSAGES/django.po
@@ -1,489 +1,481 @@
# 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
+# Crc Darkplague , 2019
msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-03-09 16:48+0100\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: ro_RO\n"
+"POT-Creation-Date: 2020-05-06 13:15+0200\n"
+"PO-Revision-Date: 2020-05-06 11:16+0000\n"
+"Last-Translator: Antoine Nguyen \n"
+"Language-Team: Romanian (Romania) (http://www.transifex.com/tonio/modoboa/language/ro_RO/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?"
-"2:1));\n"
+"Language: ro_RO\n"
+"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n"
-#: core/app_settings.py:20
+#: core/app_settings.py:26
msgid "User profile"
msgstr "Profil utilizator"
-#: core/app_settings.py:33
+#: core/app_settings.py:39
msgid "Authentication"
msgstr "Autentificare"
-#: core/app_settings.py:36
+#: core/app_settings.py:42
msgid "Authentication type"
msgstr "Tip autentificare"
-#: core/app_settings.py:37
+#: core/app_settings.py:43
msgid "Local"
msgstr "Local"
-#: core/app_settings.py:40
+#: core/app_settings.py:46
msgid "The backend used for authentication"
msgstr "Tehnologia backend folosită pentru autentificare "
-#: core/app_settings.py:45
+#: core/app_settings.py:51
msgid "Default password scheme"
msgstr "Schema pentru parola implicită"
-#: core/app_settings.py:50
+#: core/app_settings.py:56
msgid "Scheme used to crypt mailbox passwords"
msgstr "Schema de criptare pentru parole"
-#: core/app_settings.py:54
+#: core/app_settings.py:60
msgid "Rounds"
msgstr "Iterații"
-#: core/app_settings.py:57
+#: core/app_settings.py:63
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:63
-#, fuzzy
-#| msgid "Default password scheme"
+#: core/app_settings.py:69
msgid "Update password scheme at login"
-msgstr "Schema pentru parola implicită"
-
-#: core/app_settings.py:66
-msgid "Update user password at login to use the default password scheme"
msgstr ""
-#: core/app_settings.py:71
+#: core/app_settings.py:72
+msgid "Update user password at login to use the default password scheme"
+msgstr "Modifică parola utilizatorului la autentificare pentru a utiliza noua schemă de parolă"
+
+#: core/app_settings.py:77
msgid "Default password"
msgstr "Parola implicită"
-#: core/app_settings.py:74
+#: core/app_settings.py:80
msgid "Default password for automatically created accounts."
msgstr "Parola implicită setată pentru conturile create automat."
-#: core/app_settings.py:78
+#: core/app_settings.py:84
msgid "Random password length"
msgstr "Mărime parolă aleatorie"
-#: core/app_settings.py:82
+#: core/app_settings.py:88
msgid "Length of randomly generated passwords."
msgstr "Mărimea parolelor generate aleator."
-#: core/app_settings.py:86
-#, fuzzy
-#| msgid "Default password scheme"
+#: core/app_settings.py:92
msgid "Update password service URL"
-msgstr "Schema pentru parola implicită"
+msgstr ""
-#: core/app_settings.py:90
+#: core/app_settings.py:96
msgid ""
"The URL of an external page where users will be able to update their "
"password. It applies only to non local users, ie. those automatically "
"created after a successful external authentication (LDAP, SMTP)."
msgstr ""
-#: core/app_settings.py:98
+#: core/app_settings.py:104
+msgid "Password recovery announcement"
+msgstr ""
+
+#: core/app_settings.py:109
+msgid "A temporary message that will be displayed on the reset password page."
+msgstr ""
+
+#: core/app_settings.py:115
+msgid "Enable password recovery by SMS"
+msgstr ""
+
+#: core/app_settings.py:118
+msgid "Enable password recovery by SMS for users who filled a phone number."
+msgstr ""
+
+#: core/app_settings.py:124
+msgid "SMS provider"
+msgstr ""
+
+#: core/app_settings.py:127
+msgid "Choose a provider to send password recovery SMS"
+msgstr ""
+
+#: core/app_settings.py:133
msgid "LDAP settings"
msgstr "Setări LDAP"
-#: core/app_settings.py:101
+#: core/app_settings.py:136
msgid "Server address"
msgstr "Adresă server"
-#: core/app_settings.py:104
+#: core/app_settings.py:139
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:108
+#: core/app_settings.py:143
msgid "Server port"
msgstr "Port server"
-#: core/app_settings.py:110
+#: core/app_settings.py:145
msgid "The TCP port number used by the LDAP server"
msgstr "Numărul de port TCP folosit de serverul LDAP"
-#: core/app_settings.py:114
+#: core/app_settings.py:149
msgid "Enable secondary server (fallback)"
msgstr ""
-#: core/app_settings.py:117
+#: core/app_settings.py:152
msgid ""
"Enable a secondary LDAP server which will be used if the primary one fails"
msgstr ""
-#: core/app_settings.py:123
-#, fuzzy
-#| msgid "Server address"
+#: core/app_settings.py:158
msgid "Secondary server address"
-msgstr "Adresă server"
+msgstr ""
-#: core/app_settings.py:126
-#, fuzzy
-#| msgid "The IP address or the DNS name of the LDAP server"
+#: core/app_settings.py:161
msgid "The IP address or the DNS name of the seondary LDAP server"
-msgstr "Adresa IP sau adresa DNS a serverului LDAP"
+msgstr ""
-#: core/app_settings.py:130
-#, fuzzy
-#| msgid "Server port"
+#: core/app_settings.py:165
msgid "Secondary server port"
-msgstr "Port server"
+msgstr ""
-#: core/app_settings.py:133
-#, fuzzy
-#| msgid "The TCP port number used by the LDAP server"
+#: core/app_settings.py:168
msgid "The TCP port number used by the LDAP secondary server"
-msgstr "Numărul de port TCP folosit de serverul LDAP"
+msgstr ""
-#: core/app_settings.py:137
+#: core/app_settings.py:172
msgid "Use a secured connection"
msgstr "Folosește o conexiune securizată"
-#: core/app_settings.py:141
+#: core/app_settings.py:176
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:145
+#: core/app_settings.py:180
msgid "Active Directory"
msgstr "Active Directory"
-#: core/app_settings.py:148
+#: core/app_settings.py:183
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:152
+#: core/app_settings.py:187
msgid "Administrator groups"
msgstr "Grupuri administrator"
-#: core/app_settings.py:155
+#: core/app_settings.py:190
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:162
+#: core/app_settings.py:197
msgid "Group type"
msgstr "Tipul de grup"
-#: core/app_settings.py:166
+#: core/app_settings.py:201
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:171
+#: core/app_settings.py:206
msgid "Groups search base"
msgstr "Baza pentru căutare grupuri"
-#: core/app_settings.py:174
+#: core/app_settings.py:209
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:180
+#: core/app_settings.py:215
msgid "Password attribute"
msgstr "Atributul parolă"
-#: core/app_settings.py:182
+#: core/app_settings.py:217
msgid "The attribute used to store user passwords"
msgstr "Atributul folosit pentru a stoca parola utilizatorului"
-#: core/app_settings.py:187
-#, fuzzy
-#| msgid "Authentication method"
+#: core/app_settings.py:222
msgid "LDAP authentication settings"
-msgstr "Metoda de autentificare"
+msgstr ""
-#: core/app_settings.py:190
+#: core/app_settings.py:225
msgid "Authentication method"
msgstr "Metoda de autentificare"
-#: core/app_settings.py:191
+#: core/app_settings.py:226
msgid "Search and bind"
msgstr "Căutare și atribuire"
-#: core/app_settings.py:192
+#: core/app_settings.py:227
msgid "Direct bind"
msgstr "Atribuire directă"
-#: core/app_settings.py:194
+#: core/app_settings.py:229
msgid "Choose the authentication method to use"
msgstr "Alege metodă folosită pentru autentificare"
-#: core/app_settings.py:198 core/app_settings.py:252
+#: core/app_settings.py:233 core/app_settings.py:287
msgid "Bind DN"
msgstr "Atribuie DN"
-#: core/app_settings.py:201 core/app_settings.py:255
+#: core/app_settings.py:236 core/app_settings.py:290
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:208 core/app_settings.py:262
+#: core/app_settings.py:243 core/app_settings.py:297
msgid "Bind password"
msgstr "Parola de atribuire"
-#: core/app_settings.py:211 core/app_settings.py:265
+#: core/app_settings.py:246 core/app_settings.py:300
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:219 core/app_settings.py:311
+#: core/app_settings.py:254 core/app_settings.py:346
msgid "Users search base"
msgstr "Căutare bază de utilizatori"
-#: core/app_settings.py:222 core/app_settings.py:314
+#: core/app_settings.py:257 core/app_settings.py:349
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:228 core/app_settings.py:320
+#: core/app_settings.py:263 core/app_settings.py:355
msgid "Search filter"
msgstr "Filtru de căutare"
-#: core/app_settings.py:231 core/app_settings.py:323
+#: core/app_settings.py:266 core/app_settings.py:358
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:238
+#: core/app_settings.py:273
msgid "User DN template"
msgstr "Templateul DN pt utilizator"
-#: core/app_settings.py:241
+#: core/app_settings.py:276
#, 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:249
-#, fuzzy
-#| msgid "LDAP settings"
+#: core/app_settings.py:284
msgid "LDAP synchronization settings"
-msgstr "Setări LDAP"
+msgstr ""
-#: core/app_settings.py:273
+#: core/app_settings.py:308
msgid "Enable export to LDAP"
msgstr ""
-#: core/app_settings.py:276
+#: core/app_settings.py:311
msgid ""
"Enable automatic synchronization between local database and LDAP directory"
msgstr ""
-#: core/app_settings.py:282
+#: core/app_settings.py:317
msgid "Delete remote LDAP account when local account is deleted"
msgstr ""
-#: core/app_settings.py:286
+#: core/app_settings.py:321
msgid ""
"Delete remote LDAP account when local account is deleted, otherwise it will "
"be disabled."
msgstr ""
-#: core/app_settings.py:292
-#, fuzzy
-#| msgid "User DN template"
+#: core/app_settings.py:327
msgid "Account DN template"
-msgstr "Templateul DN pt utilizator"
+msgstr ""
-#: core/app_settings.py:295
-#, fuzzy, python-format
-#| msgid ""
-#| "The template used to construct a user's DN. It should contain one "
-#| "placeholder (ie. %(user)s)"
+#: core/app_settings.py:330
+#, python-format
msgid ""
"The template used to construct an account'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)"
-#: core/app_settings.py:302
+#: core/app_settings.py:337
msgid "Enable import from LDAP"
msgstr ""
-#: core/app_settings.py:305
+#: core/app_settings.py:340
msgid "Enable account synchronization from LDAP directory to local database"
msgstr ""
-#: core/app_settings.py:330
-#, fuzzy
-#| msgid "Password attribute"
+#: core/app_settings.py:365
msgid "Username attribute"
-msgstr "Atributul parolă"
+msgstr ""
-#: core/app_settings.py:333
+#: core/app_settings.py:368
msgid "The name of the LDAP attribute where the username can be found."
msgstr ""
-#: core/app_settings.py:337 core/templates/core/dashboard.html:5
+#: core/app_settings.py:373
+msgid "Enable Dovecot LDAP sync"
+msgstr ""
+
+#: core/app_settings.py:376
+msgid "LDAP authentication settings will be applied to Dovecot configuration."
+msgstr ""
+
+#: core/app_settings.py:382
+msgid "Dovecot LDAP config file"
+msgstr ""
+
+#: core/app_settings.py:386
+msgid ""
+"Location of the configuration file which contains Dovecot LDAP settings."
+msgstr ""
+
+#: core/app_settings.py:391 core/templates/core/dashboard.html:5
msgid "Dashboard"
msgstr "Bord"
-#: core/app_settings.py:340
+#: core/app_settings.py:394
msgid "Custom RSS feed"
msgstr "Feedul RSS personalizat"
-#: core/app_settings.py:343
+#: core/app_settings.py:397
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:348
+#: core/app_settings.py:402
msgid "Hide features widget"
msgstr "Ascunde widgetul de caracteristici "
-#: core/app_settings.py:351
+#: core/app_settings.py:405
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:355
+#: core/app_settings.py:409
msgid "Notifications"
msgstr "Notificări"
-#: core/app_settings.py:358
+#: core/app_settings.py:412
msgid "Sender address"
msgstr "Adresa expeditorului"
-#: core/app_settings.py:361
+#: core/app_settings.py:415
msgid "Email address used to send notifications."
msgstr "Adresa de email folosită pentru trimiterea notificărilor."
-#: core/app_settings.py:365
+#: core/app_settings.py:419
msgid "Public API"
msgstr "API public"
-#: core/app_settings.py:368
+#: core/app_settings.py:422
msgid "Enable communication"
msgstr "Activați comunicarea"
-#: core/app_settings.py:371
+#: core/app_settings.py:425
msgid "Enable communication with Modoboa public API"
msgstr "Activați comunicarea cu API-ul public Modoboa"
-#: core/app_settings.py:375
+#: core/app_settings.py:429
msgid "Check new versions"
msgstr "Verifică dacă există noi versiuni"
-#: core/app_settings.py:378
+#: core/app_settings.py:432
msgid "Automatically checks if a newer version is available"
msgstr "Verifică automat dacă este disponibilă o versiune mai nouă"
-#: core/app_settings.py:382
+#: core/app_settings.py:436
msgid "Send an email when new versions are found"
msgstr ""
-#: core/app_settings.py:385
+#: core/app_settings.py:439
msgid "Send an email to notify admins about new versions"
msgstr ""
-#: core/app_settings.py:389
+#: core/app_settings.py:443
msgid "Recipient"
msgstr ""
-#: core/app_settings.py:392
+#: core/app_settings.py:446
msgid "Recipient of new versions notification emails."
msgstr ""
-#: core/app_settings.py:397
+#: core/app_settings.py:451
msgid "Send statistics"
msgstr "Trimite statistici"
-#: core/app_settings.py:400
+#: core/app_settings.py:454
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:404
+#: core/app_settings.py:458
msgid "Miscellaneous"
msgstr "Diverse"
-#: core/app_settings.py:407
+#: core/app_settings.py:461
msgid "Inactive account threshold"
msgstr "Pragul pentru cont invalid"
-#: core/app_settings.py:410
+#: core/app_settings.py:464
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:416
+#: core/app_settings.py:470
msgid "Top notifications check interval"
msgstr "Intervalul de verificare a notificărilor"
-#: core/app_settings.py:419
+#: core/app_settings.py:473
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:424
+#: core/app_settings.py:478
msgid "Maximum log record age"
msgstr "Vechimea maximă a înregistrărilor log"
-#: core/app_settings.py:426
+#: core/app_settings.py:480
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:430
+#: core/app_settings.py:484
msgid "Items per page"
msgstr "Număr de itemi per pagină"
-#: core/app_settings.py:432
+#: core/app_settings.py:486
msgid "Number of displayed items per page"
msgstr "Numărul de itemi afișați pe o pagină"
-#: core/app_settings.py:436
+#: core/app_settings.py:490
msgid "Default top redirection"
msgstr "Redirecționarea principală implicită"
-#: core/app_settings.py:440
+#: core/app_settings.py:494
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:478 core/app_settings.py:486
+#: core/app_settings.py:548 core/app_settings.py:556 core/app_settings.py:564
msgid "Invalid syntax"
msgstr "Sintaxă invalidă"
-#: core/app_settings.py:492
+#: core/app_settings.py:570
msgid "Invalid rounds number"
msgstr "Număr invalid de iterații"
-#: core/app_settings.py:519
+#: core/app_settings.py:595 core/app_settings.py:597 core/app_settings.py:608
msgid "This field is required"
msgstr "Acest câmp este necesar"
@@ -496,67 +488,80 @@ 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:9
msgid "Set `USE_TZ = True` in settings.py"
msgstr "Setează `USE_TZ = True` în settings.py"
-#: core/constants.py:5
+#: core/constants.py:6
msgid "Simple user"
msgstr "Utilizator simplu"
-#: core/constants.py:6
+#: core/constants.py:7
msgid "Domain administrator"
msgstr "Administrator de domeniu"
-#: core/constants.py:7
+#: core/constants.py:8
msgid "Reseller"
msgstr "Reseller"
-#: core/constants.py:8
+#: core/constants.py:9
msgid "Super administrator"
msgstr "Super administrator"
-#: core/constants.py:51 lib/form_utils.py:389
+#: core/constants.py:52 lib/form_utils.py:389
msgid "No"
msgstr "Nu"
-#: core/forms.py:18
+#: core/constants.py:102
+msgid "Choose a provider"
+msgstr ""
+
+#: core/constants.py:107
+msgid "Dummy"
+msgstr ""
+
+#: core/forms.py:21
msgid "Username"
msgstr "Utilizator"
-#: core/forms.py:22
+#: core/forms.py:25
msgid "Password"
msgstr "Parolă"
-#: core/forms.py:35
+#: core/forms.py:38
msgid "Old password"
msgstr "Vechea parolă"
-#: core/forms.py:39
+#: core/forms.py:42
msgid "New password"
msgstr "Noua parolă"
-#: core/forms.py:43
+#: core/forms.py:46
msgid "Confirmation"
msgstr "Confirmare"
-#: core/forms.py:71
+#: core/forms.py:74
msgid "Old password mismatchs"
msgstr "Parola veche nu se potivește"
-#: core/forms.py:80
+#: core/forms.py:83
msgid "Passwords mismatch"
msgstr "Parolele nu se potrivesc"
-#: core/forms.py:100
+#: core/forms.py:103
msgid "Enable API access"
msgstr "Activează accesul API"
+#: core/forms.py:137
+msgid "Verification code"
+msgstr ""
+
+#: core/forms.py:148
+msgid "Invalid code"
+msgstr ""
+
#: core/handlers.py:36
msgid "added"
msgstr "adăugat"
@@ -596,71 +601,67 @@ msgid "One or more updates are available"
msgstr "Sunt disponibile una sau mai multe actualizări"
#: core/management/commands/communicate_with_public_api.py:44
-#, fuzzy
-#| msgid "One or more updates are available"
msgid "[modoboa] Update(s) available"
-msgstr "Sunt disponibile una sau mai multe actualizări"
+msgstr ""
-#: core/models.py:53
+#: core/models.py:55
msgid "Allow mailboxes access"
msgstr "Permiteți accesul la cutiile poștale"
-#: core/models.py:55
+#: core/models.py:57
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:58
+#: core/models.py:60
msgid "password"
msgstr "parolă"
-#: core/models.py:61
+#: core/models.py:63
msgid "language"
msgstr "limbă"
-#: core/models.py:64
+#: core/models.py:66
msgid "Prefered language to display pages."
msgstr "Limba preferată pentru afișarea paginilor."
-#: core/models.py:68
+#: core/models.py:70
msgid "Phone number"
msgstr "Numar de telefon"
-#: core/models.py:70
+#: core/models.py:72
msgid "Secondary email"
msgstr "Email secundar"
-#: core/models.py:73
+#: core/models.py:75
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:124
+#: core/models.py:126
msgid "Failed to update password: LDAP module not installed"
msgstr "Eroare la actualizarea parolei: modulul LDAP nu este instalat"
-#: core/models.py:153
+#: core/models.py:155
msgid "account"
msgstr "cont"
-#: core/models.py:280
+#: core/models.py:282
msgid "Unknown"
msgstr "Necunoscut"
-#: core/models.py:314
+#: core/models.py:316
msgid "Invalid line"
msgstr "Linie invalidă"
-#: core/models.py:322
+#: core/models.py:324
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:337
+#: core/models.py:339
#, 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:342
+#: core/models.py:344
#, 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'"
@@ -695,8 +696,51 @@ msgstr[2] "Parola trebuie să conțină cel puțin {} caractere speciale."
#: core/password_validation.py:65
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."
+
+#: core/sms_backends/ovh.py:19
+msgid "API endpoint"
+msgstr ""
+
+#: core/sms_backends/ovh.py:22
+msgid "OVH Europe"
+msgstr ""
+
+#: core/sms_backends/ovh.py:23
+msgid "OVH US"
+msgstr ""
+
+#: core/sms_backends/ovh.py:24
+msgid "OVH North-America"
+msgstr ""
+
+#: core/sms_backends/ovh.py:25
+msgid "So you Start Europe"
+msgstr ""
+
+#: core/sms_backends/ovh.py:26
+msgid "So you Start North America"
+msgstr ""
+
+#: core/sms_backends/ovh.py:27
+msgid "Kimsufi Europe"
+msgstr ""
+
+#: core/sms_backends/ovh.py:28
+msgid "Kimsufi North America"
+msgstr ""
+
+#: core/sms_backends/ovh.py:35
+msgid "Application key"
+msgstr ""
+
+#: core/sms_backends/ovh.py:42
+msgid "Application secret"
+msgstr ""
+
+#: core/sms_backends/ovh.py:50
+msgid "Consumer key"
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"
@@ -722,9 +766,7 @@ 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"
@@ -737,11 +779,9 @@ 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"
@@ -771,9 +811,7 @@ 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"
@@ -833,17 +871,15 @@ msgid "Message"
msgstr "Mesaj"
#: core/templates/core/notifications/update_available.html:3
-#, fuzzy
-#| msgid "One or more updates are available"
msgid ""
"\n"
" The following update is available:\n"
msgid_plural ""
"\n"
" The following updates are available:\n"
-msgstr[0] "Sunt disponibile una sau mai multe actualizări"
-msgstr[1] "Sunt disponibile una sau mai multe actualizări"
-msgstr[2] "Sunt disponibile una sau mai multe actualizări"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
#: core/templates/core/parameters.html:2 core/templatetags/core_tags.py:71
msgid "Parameters"
@@ -888,10 +924,8 @@ msgid "Update your personal information"
msgstr "Actualizați-vă informațiile personale"
#: core/templates/core/user_profile.html:13
-#, fuzzy
-#| msgid "Failed to update password: {}"
msgid "Click here to update your password"
-msgstr "Eroare la actualizarea parolei: {}"
+msgstr ""
#: core/templatetags/core_tags.py:34
msgid "Modoboa"
@@ -913,31 +947,33 @@ msgstr "Partea de nucleu a Modoboa"
msgid "Parameters saved"
msgstr "Parametrii au fost salvați"
-#: core/views/auth.py:46
+#: core/views/auth.py:59
#, python-format
msgid "Password scheme mismatch. Updating %s password"
-msgstr ""
+msgstr "Schema parola diferită. Reinoim %s parole"
-#: core/views/auth.py:53
+#: core/views/auth.py:66
#, python-format
msgid "Password hash parameter missmatch. Updating %s password"
msgstr ""
-#: core/views/auth.py:69
+#: core/views/auth.py:82
#, python-format
msgid "User '%s' successfully logged in"
msgstr "Utilizatorul '%s' conectat cu succes"
-#: core/views/auth.py:77
+#: core/views/auth.py:90
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:112
+#: core/views/auth.py:125
msgid "User '{}' successfully logged out"
msgstr "Utilizatorul '{}' sa deconectat cu succes"
+#: core/views/auth.py:170 core/views/auth.py:225
+msgid "Please use the following code to recover your Modoboa password: {}"
+msgstr ""
+
#: core/views/user.py:53
msgid "Profile updated"
msgstr "Profil actualizat"
@@ -957,7 +993,7 @@ msgstr "Conexiunea la baza de date %s nu a fost configurată"
#: lib/email_utils.py:141 lib/email_utils.py:360
msgid "unable to determine encoding of string"
-msgstr ""
+msgstr "imposibil de determinat codarea textului"
#: lib/exceptions.py:67
#, python-format
@@ -977,7 +1013,8 @@ msgid "Enter a valid email address."
msgstr "Introduceți o adresă de email validă."
#: lib/form_utils.py:77 templates/registration/password_reset_confirm.html:12
-#: templates/registration/password_reset_form.html:11
+#: templates/registration/password_reset_confirm_code.html:25
+#: templates/registration/password_reset_form.html:29
msgid "Submit"
msgstr "Trimite"
@@ -1038,8 +1075,9 @@ 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"
@@ -1064,7 +1102,7 @@ msgid "Log in"
msgstr "Autentificare"
#: templates/registration/login.html:24
-#: templates/registration/password_reset_form.html:6
+#: templates/registration/password_reset_form.html:17
msgid "Forgot password?"
msgstr "Ai uitat parola?"
@@ -1073,9 +1111,7 @@ 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"
@@ -1085,9 +1121,15 @@ 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. "
+
+#: templates/registration/password_reset_confirm_code.html:20
+msgid "Enter the code you've just received by SMS"
+msgstr ""
+
+#: templates/registration/password_reset_confirm_code.html:27
+msgid "Resend code"
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 ""
@@ -1095,62 +1137,29 @@ 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."
msgstr "Cu sinceritate, Echipa Modoboa."
+#: templates/registration/password_reset_form.html:24
+msgid "Please fill-in your primary email address"
+msgstr ""
+
#: templates/registration/password_reset_subject.txt:3
msgid "Modoboa password reset"
msgstr "Resetare parola Modoboa"
-
-#, fuzzy
-#~| msgid "Enable communication"
-#~ msgid "Enable LDAP synchronization"
-#~ msgstr "Activați comunicarea"
-
-#~ msgid "md5crypt (weak)"
-#~ msgstr "md5crypt (protecție slabă)"
-
-#~ msgid "sha256 (weak)"
-#~ msgstr "sha256 (protecție slabă)"
-
-#~ msgid "md5 (weak)"
-#~ msgstr "md5 (protecție slabă)"
-
-#~ msgid "crypt (weak)"
-#~ msgstr "crypt (protecție slabă)"
-
-#~ msgid "plain (weak)"
-#~ msgstr "în clar (protecție slabă)"
-
-#~ 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/ro_RO/LC_MESSAGES/djangojs.po b/modoboa/locale/ro_RO/LC_MESSAGES/djangojs.po
index 7815e5cf7..c139efa12 100644
--- a/modoboa/locale/ro_RO/LC_MESSAGES/djangojs.po
+++ b/modoboa/locale/ro_RO/LC_MESSAGES/djangojs.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:
# Andrei-Ilie Olteanu , 2018
msgid ""
@@ -9,16 +9,14 @@ msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-03-09 16:48+0100\n"
-"PO-Revision-Date: 2018-06-12 10:39+0000\n"
-"Last-Translator: Andrei-Ilie Olteanu \n"
-"Language-Team: Romanian (Romania) (http://www.transifex.com/tonio/modoboa/"
-"language/ro_RO/)\n"
-"Language: ro_RO\n"
+"PO-Revision-Date: 2020-03-09 15:49+0000\n"
+"Last-Translator: Antoine Nguyen \n"
+"Language-Team: Romanian (Romania) (http://www.transifex.com/tonio/modoboa/language/ro_RO/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?"
-"2:1));\n"
+"Language: ro_RO\n"
+"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n"
#: bower_components/jquery-ui/jquery-ui.min.js:8
msgid "'"
diff --git a/modoboa/locale/ru/LC_MESSAGES/django.po b/modoboa/locale/ru/LC_MESSAGES/django.po
index 887321823..0bcfca2f9 100644
--- a/modoboa/locale/ru/LC_MESSAGES/django.po
+++ b/modoboa/locale/ru/LC_MESSAGES/django.po
@@ -1,488 +1,486 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
-#
+#
# Translators:
+# Avenir Fetisov , 2018
+# Dmitriy Pervin , 2019
+# Oleksandr Tsaran , 2018
+# Ravil Kadyrbayev, 2015
+# Александр Клюшенок , 2017
+# Борис Лапенко, 2013
+# Евгений Белов , 2019
msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-03-09 16:48+0100\n"
-"PO-Revision-Date: 2013-12-03 09:35+0000\n"
+"POT-Creation-Date: 2020-05-06 13:15+0200\n"
+"PO-Revision-Date: 2020-05-06 11:16+0000\n"
"Last-Translator: Antoine Nguyen \n"
-"Language-Team: Russian (http://www.transifex.com/projects/p/modoboa/language/"
-"ru/)\n"
-"Language: ru\n"
+"Language-Team: Russian (http://www.transifex.com/tonio/modoboa/language/ru/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
-"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"Language: ru\n"
+"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"
-#: core/app_settings.py:20
-#, fuzzy
-#| msgid "Profile"
+#: core/app_settings.py:26
msgid "User profile"
-msgstr "Профиль"
+msgstr "Профиль пользователя"
-#: core/app_settings.py:33
+#: core/app_settings.py:39
msgid "Authentication"
msgstr "Аутентификация"
-#: core/app_settings.py:36
+#: core/app_settings.py:42
msgid "Authentication type"
msgstr "Тип аутентификации"
-#: core/app_settings.py:37
+#: core/app_settings.py:43
msgid "Local"
msgstr "Локальный"
-#: core/app_settings.py:40
+#: core/app_settings.py:46
msgid "The backend used for authentication"
msgstr "Базовая программа для проверки подлинности"
-#: core/app_settings.py:45
+#: core/app_settings.py:51
msgid "Default password scheme"
msgstr "Схема пароля по умолчанию"
-#: core/app_settings.py:50
+#: core/app_settings.py:56
msgid "Scheme used to crypt mailbox passwords"
msgstr "Схема используемая для шифровании пароля почтового ящика."
-#: core/app_settings.py:54
+#: core/app_settings.py:60
msgid "Rounds"
-msgstr ""
+msgstr "Циклы"
-#: core/app_settings.py:57
+#: core/app_settings.py:63
msgid ""
"Number of rounds to use (only used by sha256crypt and sha512crypt). Must be "
"between 1000 and 999999999, inclusive."
-msgstr ""
+msgstr "Количество циклов (используется только для sha256crypt и sha512crypt), Может быть от 1000 до 999999999, включительно."
-#: core/app_settings.py:63
-#, fuzzy
-#| msgid "Default password scheme"
+#: core/app_settings.py:69
msgid "Update password scheme at login"
-msgstr "Схема пароля по умолчанию"
+msgstr ""
-#: core/app_settings.py:66
+#: core/app_settings.py:72
msgid "Update user password at login to use the default password scheme"
-msgstr ""
+msgstr "Обновите пароль пользователя при входе в систему, чтобы использовать схему пароля по умолчанию"
-#: core/app_settings.py:71
-#, fuzzy
-#| msgid "Default password scheme"
+#: core/app_settings.py:77
msgid "Default password"
-msgstr "Схема пароля по умолчанию"
+msgstr "Пароль по умолчанию"
-#: core/app_settings.py:74
+#: core/app_settings.py:80
msgid "Default password for automatically created accounts."
-msgstr ""
+msgstr "Пароль по умолчанию для автоматически создаваемых учетных записей."
-#: core/app_settings.py:78
-#, fuzzy
-#| msgid "Bind password"
+#: core/app_settings.py:84
msgid "Random password length"
-msgstr "Пароль для соединения"
+msgstr "Длина случайного пароля"
-#: core/app_settings.py:82
+#: core/app_settings.py:88
msgid "Length of randomly generated passwords."
+msgstr "Длина случайно сгенерированного пароля."
+
+#: core/app_settings.py:92
+msgid "Update password service URL"
msgstr ""
-#: core/app_settings.py:86
-#, fuzzy
-#| msgid "Default password scheme"
-msgid "Update password service URL"
-msgstr "Схема пароля по умолчанию"
-
-#: core/app_settings.py:90
+#: core/app_settings.py:96
msgid ""
"The URL of an external page where users will be able to update their "
"password. It applies only to non local users, ie. those automatically "
"created after a successful external authentication (LDAP, SMTP)."
msgstr ""
-#: core/app_settings.py:98
+#: core/app_settings.py:104
+msgid "Password recovery announcement"
+msgstr ""
+
+#: core/app_settings.py:109
+msgid "A temporary message that will be displayed on the reset password page."
+msgstr ""
+
+#: core/app_settings.py:115
+msgid "Enable password recovery by SMS"
+msgstr ""
+
+#: core/app_settings.py:118
+msgid "Enable password recovery by SMS for users who filled a phone number."
+msgstr ""
+
+#: core/app_settings.py:124
+msgid "SMS provider"
+msgstr ""
+
+#: core/app_settings.py:127
+msgid "Choose a provider to send password recovery SMS"
+msgstr ""
+
+#: core/app_settings.py:133
msgid "LDAP settings"
msgstr "Параметры LDAP"
-#: core/app_settings.py:101
+#: core/app_settings.py:136
msgid "Server address"
msgstr "Адрес сервера"
-#: core/app_settings.py:104
+#: core/app_settings.py:139
msgid "The IP address or the DNS name of the LDAP server"
msgstr "IP адрес или DNS имя сервера LDAP"
-#: core/app_settings.py:108
+#: core/app_settings.py:143
msgid "Server port"
msgstr "Порт сервера"
-#: core/app_settings.py:110
+#: core/app_settings.py:145
msgid "The TCP port number used by the LDAP server"
msgstr "Номер TCP порта LDAP сервера"
-#: core/app_settings.py:114
+#: core/app_settings.py:149
msgid "Enable secondary server (fallback)"
msgstr ""
-#: core/app_settings.py:117
+#: core/app_settings.py:152
msgid ""
"Enable a secondary LDAP server which will be used if the primary one fails"
msgstr ""
-#: core/app_settings.py:123
-#, fuzzy
-#| msgid "Server address"
+#: core/app_settings.py:158
msgid "Secondary server address"
-msgstr "Адрес сервера"
+msgstr ""
-#: core/app_settings.py:126
-#, fuzzy
-#| msgid "The IP address or the DNS name of the LDAP server"
+#: core/app_settings.py:161
msgid "The IP address or the DNS name of the seondary LDAP server"
-msgstr "IP адрес или DNS имя сервера LDAP"
+msgstr ""
-#: core/app_settings.py:130
-#, fuzzy
-#| msgid "Server port"
+#: core/app_settings.py:165
msgid "Secondary server port"
-msgstr "Порт сервера"
+msgstr ""
-#: core/app_settings.py:133
-#, fuzzy
-#| msgid "The TCP port number used by the LDAP server"
+#: core/app_settings.py:168
msgid "The TCP port number used by the LDAP secondary server"
-msgstr "Номер TCP порта LDAP сервера"
+msgstr ""
-#: core/app_settings.py:137
+#: core/app_settings.py:172
msgid "Use a secured connection"
msgstr "Использовать безопасное соединение"
-#: core/app_settings.py:141
-#, fuzzy
-#| msgid "Use an SSL/TLS connection to access the LDAP server"
+#: core/app_settings.py:176
msgid "Use an SSL/STARTTLS connection to access the LDAP server"
msgstr "Использовать SSL/TLS соединение с LDAP сервером"
-#: core/app_settings.py:145
+#: core/app_settings.py:180
msgid "Active Directory"
msgstr "Active Directory"
-#: core/app_settings.py:148
+#: core/app_settings.py:183
msgid "Tell if the LDAP server is an Active Directory one"
msgstr "Укажите, если LDAP сервер в Active Directory"
-#: core/app_settings.py:152
+#: core/app_settings.py:187
msgid "Administrator groups"
-msgstr ""
+msgstr "Администратор груп"
-#: core/app_settings.py:155
+#: core/app_settings.py:190
msgid ""
-"Members of those LDAP Posix groups will be created as domain administrators. "
-"Use ';' characters to separate groups."
-msgstr ""
+"Members of those LDAP Posix groups will be created as domain administrators."
+" Use ';' characters to separate groups."
+msgstr "Члены этих LDAP Posix групп должны быть созданы администратором домена. Используйте ';' для как разделитель груп"
-#: core/app_settings.py:162
-#, fuzzy
-#| msgid "Group name"
+#: core/app_settings.py:197
msgid "Group type"
-msgstr "Название группы"
+msgstr "Тип группы"
-#: core/app_settings.py:166
+#: core/app_settings.py:201
msgid "The LDAP group type to use with your directory."
-msgstr ""
+msgstr "Тип групп, используемых вашим каталогом LDAP"
-#: core/app_settings.py:171
+#: core/app_settings.py:206
msgid "Groups search base"
-msgstr ""
+msgstr "База поиска групп"
-#: core/app_settings.py:174
+#: core/app_settings.py:209
msgid "The distinguished name of the search base used to find groups"
-msgstr ""
+msgstr "Уникальное имя базы которое используется для поиска групп"
-#: core/app_settings.py:180
+#: core/app_settings.py:215
msgid "Password attribute"
msgstr "Свойства пароля"
-#: core/app_settings.py:182
+#: core/app_settings.py:217
msgid "The attribute used to store user passwords"
msgstr "Свойства используемые для сохранения пользовательских паролей"
-#: core/app_settings.py:187
-#, fuzzy
-#| msgid "Authentication method"
+#: core/app_settings.py:222
msgid "LDAP authentication settings"
-msgstr "Метод аутентификации"
+msgstr ""
-#: core/app_settings.py:190
+#: core/app_settings.py:225
msgid "Authentication method"
msgstr "Метод аутентификации"
-#: core/app_settings.py:191
+#: core/app_settings.py:226
msgid "Search and bind"
msgstr "Найти и соединиться"
-#: core/app_settings.py:192
+#: core/app_settings.py:227
msgid "Direct bind"
msgstr "Прямое соединение"
-#: core/app_settings.py:194
+#: core/app_settings.py:229
msgid "Choose the authentication method to use"
msgstr "Выберите метод аутентификации "
-#: core/app_settings.py:198 core/app_settings.py:252
+#: core/app_settings.py:233 core/app_settings.py:287
msgid "Bind DN"
msgstr "Соединится с DN "
-#: core/app_settings.py:201 core/app_settings.py:255
+#: core/app_settings.py:236 core/app_settings.py:290
msgid ""
"The distinguished name to use when binding to the LDAP server. Leave empty "
"for an anonymous bind"
-msgstr ""
-"Отличительное имя используемое для соединения с LDAP сервером. Оставьте "
-"пустым для анонимного соединения"
+msgstr "Отличительное имя используемое для соединения с LDAP сервером. Оставьте пустым для анонимного соединения"
-#: core/app_settings.py:208 core/app_settings.py:262
+#: core/app_settings.py:243 core/app_settings.py:297
msgid "Bind password"
msgstr "Пароль для соединения"
-#: core/app_settings.py:211 core/app_settings.py:265
+#: core/app_settings.py:246 core/app_settings.py:300
msgid "The password to use when binding to the LDAP server (with 'Bind DN')"
msgstr "Пароль для соединения с LDAP сервером"
-#: core/app_settings.py:219 core/app_settings.py:311
+#: core/app_settings.py:254 core/app_settings.py:346
msgid "Users search base"
-msgstr ""
+msgstr "База поиска пользователей"
-#: core/app_settings.py:222 core/app_settings.py:314
+#: core/app_settings.py:257 core/app_settings.py:349
msgid "The distinguished name of the search base used to find users"
-msgstr ""
+msgstr "Уникальное имя базы которое используется для поиска пользователей"
-#: core/app_settings.py:228 core/app_settings.py:320
+#: core/app_settings.py:263 core/app_settings.py:355
msgid "Search filter"
msgstr "Фильтр поиска"
-#: core/app_settings.py:231 core/app_settings.py:323
+#: core/app_settings.py:266 core/app_settings.py:358
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:238
+#: core/app_settings.py:273
msgid "User DN template"
msgstr "Шаблон пользователя DN"
-#: core/app_settings.py:241
+#: core/app_settings.py:276
#, python-format
msgid ""
"The template used to construct a user's DN. It should contain one "
"placeholder (ie. %(user)s)"
-msgstr ""
-"Шаблон используется для построения запросов к DN Он должен содержать атрибут "
-"например (%(user)s)"
+msgstr "Шаблон используется для построения запросов к DN Он должен содержать атрибут например (%(user)s)"
-#: core/app_settings.py:249
-#, fuzzy
-#| msgid "LDAP settings"
+#: core/app_settings.py:284
msgid "LDAP synchronization settings"
-msgstr "Параметры LDAP"
+msgstr ""
-#: core/app_settings.py:273
+#: core/app_settings.py:308
msgid "Enable export to LDAP"
msgstr ""
-#: core/app_settings.py:276
+#: core/app_settings.py:311
msgid ""
"Enable automatic synchronization between local database and LDAP directory"
msgstr ""
-#: core/app_settings.py:282
+#: core/app_settings.py:317
msgid "Delete remote LDAP account when local account is deleted"
msgstr ""
-#: core/app_settings.py:286
+#: core/app_settings.py:321
msgid ""
"Delete remote LDAP account when local account is deleted, otherwise it will "
"be disabled."
msgstr ""
-#: core/app_settings.py:292
-#, fuzzy
-#| msgid "User DN template"
+#: core/app_settings.py:327
msgid "Account DN template"
-msgstr "Шаблон пользователя DN"
+msgstr ""
-#: core/app_settings.py:295
-#, fuzzy, python-format
-#| msgid ""
-#| "The template used to construct a user's DN. It should contain one "
-#| "placeholder (ie. %(user)s)"
+#: core/app_settings.py:330
+#, python-format
msgid ""
"The template used to construct an account's DN. It should contain one "
"placeholder (ie. %(user)s)"
msgstr ""
-"Шаблон используется для построения запросов к DN Он должен содержать атрибут "
-"например (%(user)s)"
-#: core/app_settings.py:302
+#: core/app_settings.py:337
msgid "Enable import from LDAP"
msgstr ""
-#: core/app_settings.py:305
+#: core/app_settings.py:340
msgid "Enable account synchronization from LDAP directory to local database"
msgstr ""
-#: core/app_settings.py:330
-#, fuzzy
-#| msgid "Password attribute"
-msgid "Username attribute"
-msgstr "Свойства пароля"
-
-#: core/app_settings.py:333
-msgid "The name of the LDAP attribute where the username can be found."
-msgstr ""
-
-#: core/app_settings.py:337 core/templates/core/dashboard.html:5
-msgid "Dashboard"
-msgstr ""
-
-#: core/app_settings.py:340
-msgid "Custom RSS feed"
-msgstr ""
-
-#: core/app_settings.py:343
-msgid "Display custom RSS feed to resellers and domain administrators"
-msgstr ""
-
-#: core/app_settings.py:348
-msgid "Hide features widget"
-msgstr ""
-
-#: core/app_settings.py:351
-msgid "Hide features widget for resellers and domain administrators"
-msgstr ""
-
-#: core/app_settings.py:355
-#, fuzzy
-#| msgid "Authentication"
-msgid "Notifications"
-msgstr "Аутентификация"
-
-#: core/app_settings.py:358
-#, fuzzy
-#| msgid "Server address"
-msgid "Sender address"
-msgstr "Адрес сервера"
-
-#: core/app_settings.py:361
-msgid "Email address used to send notifications."
-msgstr ""
-
#: core/app_settings.py:365
-msgid "Public API"
+msgid "Username attribute"
msgstr ""
#: core/app_settings.py:368
-msgid "Enable communication"
+msgid "The name of the LDAP attribute where the username can be found."
msgstr ""
-#: core/app_settings.py:371
-msgid "Enable communication with Modoboa public API"
+#: core/app_settings.py:373
+msgid "Enable Dovecot LDAP sync"
msgstr ""
-#: core/app_settings.py:375
-#, fuzzy
-msgid "Check new versions"
-msgstr "Отметить для разрешения этого расширения"
-
-#: core/app_settings.py:378
-msgid "Automatically checks if a newer version is available"
+#: core/app_settings.py:376
+msgid "LDAP authentication settings will be applied to Dovecot configuration."
msgstr ""
#: core/app_settings.py:382
+msgid "Dovecot LDAP config file"
+msgstr ""
+
+#: core/app_settings.py:386
+msgid ""
+"Location of the configuration file which contains Dovecot LDAP settings."
+msgstr ""
+
+#: core/app_settings.py:391 core/templates/core/dashboard.html:5
+msgid "Dashboard"
+msgstr "Приборная панель"
+
+#: core/app_settings.py:394
+msgid "Custom RSS feed"
+msgstr "Пользовательская RSS лента"
+
+#: core/app_settings.py:397
+msgid "Display custom RSS feed to resellers and domain administrators"
+msgstr "Отображать пользовательскую ленту RSS для реселлеров и администраторов доменов"
+
+#: core/app_settings.py:402
+msgid "Hide features widget"
+msgstr "Спрятать виджет новых функций"
+
+#: core/app_settings.py:405
+msgid "Hide features widget for resellers and domain administrators"
+msgstr "Спрятать виджет новых функций для реселлеров и администраторов доменов"
+
+#: core/app_settings.py:409
+msgid "Notifications"
+msgstr "Уведомления"
+
+#: core/app_settings.py:412
+msgid "Sender address"
+msgstr "Адрес отправителя"
+
+#: core/app_settings.py:415
+msgid "Email address used to send notifications."
+msgstr "Email адрес для отправки уведомлений"
+
+#: core/app_settings.py:419
+msgid "Public API"
+msgstr "Публичный API"
+
+#: core/app_settings.py:422
+msgid "Enable communication"
+msgstr "Разрешить передачу"
+
+#: core/app_settings.py:425
+msgid "Enable communication with Modoboa public API"
+msgstr "Разрешить передачу с публичным API Modoboa"
+
+#: core/app_settings.py:429
+msgid "Check new versions"
+msgstr "Проверить новые версии"
+
+#: core/app_settings.py:432
+msgid "Automatically checks if a newer version is available"
+msgstr "Автоматически проверять доступность новых версий."
+
+#: core/app_settings.py:436
msgid "Send an email when new versions are found"
msgstr ""
-#: core/app_settings.py:385
+#: core/app_settings.py:439
msgid "Send an email to notify admins about new versions"
msgstr ""
-#: core/app_settings.py:389
+#: core/app_settings.py:443
msgid "Recipient"
msgstr ""
-#: core/app_settings.py:392
+#: core/app_settings.py:446
msgid "Recipient of new versions notification emails."
msgstr ""
-#: core/app_settings.py:397
+#: core/app_settings.py:451
msgid "Send statistics"
-msgstr ""
+msgstr "Отправить статистику"
-#: core/app_settings.py:400
+#: core/app_settings.py:454
msgid "Send statistics to Modoboa public API (counters and used extensions)"
-msgstr ""
+msgstr "Отправлять статистику в Modoboa public API (счетчики и используемые расширения)"
-#: core/app_settings.py:404
+#: core/app_settings.py:458
msgid "Miscellaneous"
msgstr "Прочее"
-#: core/app_settings.py:407
+#: core/app_settings.py:461
msgid "Inactive account threshold"
-msgstr ""
+msgstr "Порог неактивного аккаунта"
-#: core/app_settings.py:410
+#: core/app_settings.py:464
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:470
+msgid "Top notifications check interval"
msgstr ""
-#: core/app_settings.py:416
-#, fuzzy
-msgid "Top notifications check interval"
-msgstr "Уведомления отправителю"
-
-#: core/app_settings.py:419
-#, fuzzy
+#: core/app_settings.py:473
msgid "Interval between two top notification checks (in seconds)"
-msgstr "Интервал между запросами на деблокирование для доставки"
+msgstr "Интервал между двумя последними проверками уведомлений (в секундах)"
-#: core/app_settings.py:424
+#: core/app_settings.py:478
msgid "Maximum log record age"
msgstr "Максимальный срок хранения лог записей"
-#: core/app_settings.py:426
+#: core/app_settings.py:480
msgid "The maximum age in days of a log record"
msgstr "Срок хранения лог записей в днях "
-#: core/app_settings.py:430
+#: core/app_settings.py:484
msgid "Items per page"
msgstr "Элементов на странице"
-#: core/app_settings.py:432
+#: core/app_settings.py:486
msgid "Number of displayed items per page"
msgstr "Количество элементов на странице"
-#: core/app_settings.py:436
+#: core/app_settings.py:490
msgid "Default top redirection"
msgstr "Порог перенаправления по умолчанию"
-#: core/app_settings.py:440
+#: core/app_settings.py:494
msgid "The default redirection used when no application is specified"
msgstr "Если приложение не указано. Используется перенаправление по умолчанию."
-#: core/app_settings.py:478 core/app_settings.py:486
+#: core/app_settings.py:548 core/app_settings.py:556 core/app_settings.py:564
msgid "Invalid syntax"
msgstr "Ошибка в написании"
-#: core/app_settings.py:492
+#: core/app_settings.py:570
msgid "Invalid rounds number"
-msgstr ""
+msgstr "Неправильное количество циклов"
-#: core/app_settings.py:519
+#: core/app_settings.py:595 core/app_settings.py:597 core/app_settings.py:608
msgid "This field is required"
msgstr "Это поле обязательно для заполнеия"
@@ -501,60 +499,74 @@ msgstr ""
msgid "Set `USE_TZ = True` in settings.py"
msgstr ""
-#: core/constants.py:5
+#: core/constants.py:6
msgid "Simple user"
msgstr "Обычный пользователь"
-#: core/constants.py:6
-#, fuzzy
-#| msgid "Super administrator"
-msgid "Domain administrator"
-msgstr "Супер администратор"
-
#: core/constants.py:7
-msgid "Reseller"
-msgstr ""
+msgid "Domain administrator"
+msgstr "Администратор домена"
#: core/constants.py:8
+msgid "Reseller"
+msgstr "Реселлер"
+
+#: core/constants.py:9
msgid "Super administrator"
msgstr "Супер администратор"
-#: core/constants.py:51 lib/form_utils.py:389
+#: core/constants.py:52 lib/form_utils.py:389
msgid "No"
msgstr "Нет"
-#: core/forms.py:18
+#: core/constants.py:102
+msgid "Choose a provider"
+msgstr ""
+
+#: core/constants.py:107
+msgid "Dummy"
+msgstr ""
+
+#: core/forms.py:21
msgid "Username"
msgstr "Логин пользователя"
-#: core/forms.py:22
+#: core/forms.py:25
msgid "Password"
msgstr "Пароль"
-#: core/forms.py:35
+#: core/forms.py:38
msgid "Old password"
msgstr "Старый пароль"
-#: core/forms.py:39
+#: core/forms.py:42
msgid "New password"
msgstr "Новый пароль"
-#: core/forms.py:43
+#: core/forms.py:46
msgid "Confirmation"
msgstr "Подтверждение"
-#: core/forms.py:71
+#: core/forms.py:74
msgid "Old password mismatchs"
msgstr "Старые пароли не совпадают"
-#: core/forms.py:80
+#: core/forms.py:83
msgid "Passwords mismatch"
msgstr "Пароли не совпадают"
-#: core/forms.py:100
+#: core/forms.py:103
msgid "Enable API access"
msgstr ""
+#: core/forms.py:137
+msgid "Verification code"
+msgstr ""
+
+#: core/forms.py:148
+msgid "Invalid code"
+msgstr ""
+
#: core/handlers.py:36
msgid "added"
msgstr "добавлено"
@@ -569,10 +581,9 @@ msgid "%(object)s '%(name)s' %(action)s by user %(user)s"
msgstr "%(object)s '%(name)s' %(action)s пользователем %(user)s"
#: core/handlers.py:63
-#, fuzzy, python-format
-#| msgid "%(object)s '%(name)s' %(action)s by user %(user)s"
+#, python-format
msgid "%(object)s '%(name)s' %(action)s by "
-msgstr "%(object)s '%(name)s' %(action)s пользователем %(user)s"
+msgstr "%(object)s '%(name)s' %(action)s от"
#: core/handlers.py:65
msgid "deleted"
@@ -580,7 +591,7 @@ msgstr "удалено"
#: core/handlers.py:69
msgid "user {}"
-msgstr ""
+msgstr "пользователь {}"
#: core/handlers.py:71
msgid "management command"
@@ -591,77 +602,71 @@ msgid "You can't delete your own account"
msgstr "Вы не можете удалить собственный аккаунт"
#: core/handlers.py:131
-#, fuzzy
msgid "One or more updates are available"
-msgstr "Статистика не доступна"
+msgstr "Доступны одно или более обновлений."
#: core/management/commands/communicate_with_public_api.py:44
-#, fuzzy
msgid "[modoboa] Update(s) available"
-msgstr "Статистика не доступна"
-
-#: core/models.py:53
-msgid "Allow mailboxes access"
msgstr ""
#: core/models.py:55
+msgid "Allow mailboxes access"
+msgstr ""
+
+#: core/models.py:57
msgid "Allow this administrator to access user mailboxes"
-msgstr ""
+msgstr "Разрешить этому администратору доступ к пользовательским ящикам."
-#: core/models.py:58
+#: core/models.py:60
msgid "password"
-msgstr ""
+msgstr "пароль"
-#: core/models.py:61
-#, fuzzy
-#| msgid "Prefered language"
+#: core/models.py:63
msgid "language"
-msgstr "Предпочитаемый язык"
+msgstr "язык"
-#: core/models.py:64
-#, fuzzy
-#| msgid "Prefered language to display pages"
+#: core/models.py:66
msgid "Prefered language to display pages."
-msgstr "Предпочитаемый язык для отображения страниц"
-
-#: core/models.py:68
-msgid "Phone number"
-msgstr ""
+msgstr "Предпочитаемый язык для отображения страниц."
#: core/models.py:70
+msgid "Phone number"
+msgstr "Номер телефона"
+
+#: core/models.py:72
msgid "Secondary email"
-msgstr ""
+msgstr "Вспомогательный email"
-#: core/models.py:73
+#: core/models.py:75
msgid "An alternative e-mail address, can be used for recovery needs."
-msgstr ""
+msgstr "Альтернативный e-mail может быть использован для востановления."
-#: core/models.py:124
+#: core/models.py:126
msgid "Failed to update password: LDAP module not installed"
msgstr "Ошибка обновления пароля: модуль LDAP не установлен"
-#: core/models.py:153
+#: core/models.py:155
msgid "account"
msgstr "Аккаунт"
-#: core/models.py:280
+#: core/models.py:282
msgid "Unknown"
-msgstr ""
+msgstr "Неизвестное"
-#: core/models.py:314
+#: core/models.py:316
msgid "Invalid line"
msgstr "Ошибочная строка"
-#: core/models.py:322
+#: core/models.py:324
msgid "You can't import an account with a role greater than yours"
msgstr "Вы не можете импортировать аккаунт с ролью старше чем у вас"
-#: core/models.py:337
+#: core/models.py:339
#, python-format
msgid "The simple user '%s' must have a valid email address"
msgstr "Пользователь '%s' должен иметь действительный почтовый адрес"
-#: core/models.py:342
+#: core/models.py:344
#, python-format
msgid "username and email fields must not differ for '%s'"
msgstr "Имя пользователя и адрес не должны отличатся для пользователя '%s'"
@@ -669,23 +674,26 @@ msgstr "Имя пользователя и адрес не должны отли
#: core/password_validation.py:24
msgid "Password must contain at least {} digit."
msgid_plural "Password must contain at least {} digits."
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgstr[0] "Пароль должен содержать как минимум {} цифру."
+msgstr[1] "Пароль должен содержать как минимум {} цифр."
+msgstr[2] "Пароль должен содержать как минимум {} цифр."
+msgstr[3] "Пароль должен содержать как минимум {} цифр."
#: core/password_validation.py:34
msgid "Password must contain at least {} lowercase letter."
msgid_plural "Password must contain at least {} lowercase letters."
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgstr[0] "Пароль должен содержать как минимум {} букву в нижнем регистре."
+msgstr[1] "Пароль должен содержать как минимум {} букв в нижнем регистре."
+msgstr[2] "Пароль должен содержать как минимум {} букв в нижнем регистре."
+msgstr[3] "Пароль должен содержать как минимум {} букв в нижнем регистре."
#: core/password_validation.py:45
msgid "Password must contain at least {} uppercase letter."
msgid_plural "Password must contain at least {} uppercase letters."
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgstr[0] "Пароль должен содержать как минимум {} заглавную букву."
+msgstr[1] "Пароль должен содержать как минимум {} заглавных букв."
+msgstr[2] "Пароль должен содержать как минимум {} заглавных букв."
+msgstr[3] "Пароль должен содержать как минимум {} заглавных букв."
#: core/password_validation.py:57
msgid "Password must contain at least {} special character."
@@ -693,9 +701,54 @@ msgid_plural "Password must contain at least {} special characters."
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
+msgstr[3] ""
#: core/password_validation.py:65
msgid "Your password must contain a combination of different character types."
+msgstr "Ваш пароль должен содержать комбинацию различных типов символов."
+
+#: core/sms_backends/ovh.py:19
+msgid "API endpoint"
+msgstr ""
+
+#: core/sms_backends/ovh.py:22
+msgid "OVH Europe"
+msgstr ""
+
+#: core/sms_backends/ovh.py:23
+msgid "OVH US"
+msgstr ""
+
+#: core/sms_backends/ovh.py:24
+msgid "OVH North-America"
+msgstr ""
+
+#: core/sms_backends/ovh.py:25
+msgid "So you Start Europe"
+msgstr ""
+
+#: core/sms_backends/ovh.py:26
+msgid "So you Start North America"
+msgstr ""
+
+#: core/sms_backends/ovh.py:27
+msgid "Kimsufi Europe"
+msgstr ""
+
+#: core/sms_backends/ovh.py:28
+msgid "Kimsufi North America"
+msgstr ""
+
+#: core/sms_backends/ovh.py:35
+msgid "Application key"
+msgstr ""
+
+#: core/sms_backends/ovh.py:42
+msgid "Application secret"
+msgstr ""
+
+#: core/sms_backends/ovh.py:50
+msgid "Consumer key"
msgstr ""
#: core/templates/core/_current_features.html:6
@@ -708,7 +761,7 @@ msgstr ""
#: core/templates/core/_current_features.html:18
msgid "More"
-msgstr ""
+msgstr "Ещё"
#: core/templates/core/_current_features.html:22
msgid "Nothing to sponsor yet."
@@ -716,7 +769,7 @@ msgstr ""
#: core/templates/core/_latest_news_widget.html:5
msgid "Latest news"
-msgstr ""
+msgstr "Последние новости"
#: core/templates/core/_latest_news_widget.html:19
msgid ""
@@ -735,8 +788,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
@@ -762,19 +815,16 @@ msgid "Various information about Modoboa"
msgstr "Различная информация о Modoboa"
#: core/templates/core/information.html:5
-#, fuzzy
msgid "One or more updates are available!"
-msgstr "Статистика не доступна"
+msgstr "Доступны одно или более обновлений!"
#: core/templates/core/information.html:6
msgid "Check the following list to find the component(s) that can be updated."
msgstr ""
#: core/templates/core/information.html:10
-#, fuzzy
-#| msgid "Authentication"
msgid "Applications"
-msgstr "Аутентификация"
+msgstr ""
#: core/templates/core/information.html:14
#: core/templates/core/information.html:36
@@ -783,13 +833,11 @@ msgstr "Логин"
#: core/templates/core/information.html:15
msgid "Installed version"
-msgstr ""
+msgstr "Установленная версия"
#: core/templates/core/information.html:16
-#, fuzzy
-#| msgid "Last login"
msgid "Last version"
-msgstr "Последний вход"
+msgstr "Последняя версия"
#: core/templates/core/information.html:17
msgid "Description"
@@ -832,16 +880,16 @@ msgid "Message"
msgstr "Сообщение"
#: core/templates/core/notifications/update_available.html:3
-#, fuzzy
msgid ""
"\n"
" The following update is available:\n"
msgid_plural ""
"\n"
" The following updates are available:\n"
-msgstr[0] "Статистика не доступна"
-msgstr[1] "Статистика не доступна"
-msgstr[2] "Статистика не доступна"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
#: core/templates/core/parameters.html:2 core/templatetags/core_tags.py:71
msgid "Parameters"
@@ -874,10 +922,8 @@ msgid "Customize Modoboa"
msgstr "Настроить Modoboa"
#: core/templates/core/user_preferences.html:14
-#, fuzzy
-#| msgid "Preferences saved"
msgid "No preferences available."
-msgstr "Параметры сохранены"
+msgstr ""
#: core/templates/core/user_profile.html:3 core/templatetags/core_tags.py:116
msgid "Profile"
@@ -888,10 +934,8 @@ msgid "Update your personal information"
msgstr "Обновить личную информацию"
#: core/templates/core/user_profile.html:13
-#, fuzzy
-#| msgid "Failed to update password: %s"
msgid "Click here to update your password"
-msgstr "Ошибка обновления пароля: %s"
+msgstr ""
#: core/templatetags/core_tags.py:34
msgid "Modoboa"
@@ -903,42 +947,42 @@ msgstr "Завершить сеанс"
#: core/templatetags/core_tags.py:127
msgid "API"
-msgstr ""
+msgstr "API"
#: core/utils.py:32
-#, fuzzy
-#| msgid "Welcome to Modoboa"
msgid "The core part of Modoboa"
-msgstr "Добро пожаловать в Modoboa!"
+msgstr ""
#: core/views/admin.py:43
msgid "Parameters saved"
msgstr "Параметры сохранены"
-#: core/views/auth.py:46
+#: core/views/auth.py:59
#, python-format
msgid "Password scheme mismatch. Updating %s password"
msgstr ""
-#: core/views/auth.py:53
+#: core/views/auth.py:66
#, python-format
msgid "Password hash parameter missmatch. Updating %s password"
msgstr ""
-#: core/views/auth.py:69
+#: core/views/auth.py:82
#, python-format
msgid "User '%s' successfully logged in"
msgstr "Пользователь '%s' успешно вошел в систему"
-#: core/views/auth.py:77
+#: core/views/auth.py:90
msgid "Your username and password didn't match. Please try again."
msgstr "Не правильное имя или пароль. Попробуйте еще раз."
-#: core/views/auth.py:112
-#, fuzzy
-#| msgid "User '%s' successfully logged in"
+#: core/views/auth.py:125
msgid "User '{}' successfully logged out"
-msgstr "Пользователь '%s' успешно вошел в систему"
+msgstr ""
+
+#: core/views/auth.py:170 core/views/auth.py:225
+msgid "Please use the following code to recover your Modoboa password: {}"
+msgstr ""
#: core/views/user.py:53
msgid "Profile updated"
@@ -949,15 +993,13 @@ msgid "Preferences saved"
msgstr "Параметры сохранены"
#: core/views/user.py:103
-#, fuzzy
-#| msgid "Profile updated"
msgid "Access updated"
-msgstr "Профиль обновлен"
+msgstr ""
#: lib/db_utils.py:23
#, python-format
msgid "Connection to database %s not configured"
-msgstr ""
+msgstr "Подключение к базе данных %s не настроено"
#: lib/email_utils.py:141 lib/email_utils.py:360
msgid "unable to determine encoding of string"
@@ -977,15 +1019,14 @@ msgid "Enter a valid domain name"
msgstr "Введите действительный адрес домена"
#: lib/fields.py:44 lib/fields.py:58
-#, fuzzy
-#| msgid "Enter a valid domain name"
msgid "Enter a valid email address."
-msgstr "Введите действительный адрес домена"
+msgstr ""
#: lib/form_utils.py:77 templates/registration/password_reset_confirm.html:12
-#: templates/registration/password_reset_form.html:11
+#: templates/registration/password_reset_confirm_code.html:25
+#: templates/registration/password_reset_form.html:29
msgid "Submit"
-msgstr ""
+msgstr "Подтвердить"
#: lib/form_utils.py:110 lib/form_utils.py:113
msgid "Invalid request"
@@ -996,18 +1037,16 @@ msgid "Yes"
msgstr "Да"
#: lib/ldap_utils.py:129
-#, fuzzy
-#| msgid "Failed to update password: %s"
msgid "Failed to update password: {}"
-msgstr "Ошибка обновления пароля: %s"
+msgstr ""
#: lib/templatetags/lib_tags.py:104
msgid "From"
-msgstr ""
+msgstr "От"
#: lib/templatetags/lib_tags.py:105
msgid "To"
-msgstr ""
+msgstr "Кому"
#: lib/templatetags/lib_tags.py:107 templates/common/email_searchbar.html:17
msgid "Subject"
@@ -1046,8 +1085,9 @@ 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 "Закрыть"
@@ -1072,11 +1112,9 @@ msgid "Log in"
msgstr "Войти"
#: templates/registration/login.html:24
-#: templates/registration/password_reset_form.html:6
-#, fuzzy
-#| msgid "Old password"
+#: templates/registration/password_reset_form.html:17
msgid "Forgot password?"
-msgstr "Старый пароль"
+msgstr "Забыли пароль?"
#: templates/registration/password_reset_complete.html:8
#, python-format
@@ -1086,10 +1124,8 @@ msgid ""
msgstr ""
#: templates/registration/password_reset_confirm.html:7
-#, fuzzy
-#| msgid "New password"
msgid "Change password"
-msgstr "Новый пароль"
+msgstr "Изменить пароль"
#: templates/registration/password_reset_confirm.html:17
msgid ""
@@ -1097,6 +1133,14 @@ msgid ""
"used. Please request a new password reset."
msgstr ""
+#: templates/registration/password_reset_confirm_code.html:20
+msgid "Enter the code you've just received by SMS"
+msgstr ""
+
+#: templates/registration/password_reset_confirm_code.html:27
+msgid "Resend code"
+msgstr ""
+
#: templates/registration/password_reset_done.html:7
msgid ""
"We've emailed you instructions for setting your password, if an account "
@@ -1122,36 +1166,10 @@ msgstr ""
msgid "Sincerely, The Modoboa Team."
msgstr ""
+#: templates/registration/password_reset_form.html:24
+msgid "Please fill-in your primary email address"
+msgstr ""
+
#: templates/registration/password_reset_subject.txt:3
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"
-#~ msgstr "Название группы"
-
-#, fuzzy
-#~| msgid "Last login"
-#~ msgid "Last name"
-#~ msgstr "Последний вход"
-
-#, fuzzy
-#~| msgid "User '%s' logged out"
-#~ msgid "User {} logged out"
-#~ msgstr "Пользователь '%s' вышел из системы"
-
-#~ msgid "Group name"
-#~ msgstr "Название группы"
-
-#~ msgid "Display"
-#~ msgstr "Отображение"
diff --git a/modoboa/locale/ru/LC_MESSAGES/djangojs.po b/modoboa/locale/ru/LC_MESSAGES/djangojs.po
index a745b5b9c..8c97ffffc 100644
--- a/modoboa/locale/ru/LC_MESSAGES/djangojs.po
+++ b/modoboa/locale/ru/LC_MESSAGES/djangojs.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:
# Ravil Kadyrbayev, 2015
# Александр Клюшенок , 2017
@@ -10,17 +10,14 @@ msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-03-09 16:48+0100\n"
-"PO-Revision-Date: 2017-09-19 21:45+0000\n"
-"Last-Translator: Александр Клюшенок \n"
-"Language-Team: Russian (http://www.transifex.com/tonio/modoboa/language/"
-"ru/)\n"
-"Language: ru\n"
+"PO-Revision-Date: 2020-03-09 15:49+0000\n"
+"Last-Translator: Antoine Nguyen \n"
+"Language-Team: Russian (http://www.transifex.com/tonio/modoboa/language/ru/)\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"
+"Language: ru\n"
+"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"
#: bower_components/jquery-ui/jquery-ui.min.js:8
msgid "'"
diff --git a/modoboa/locale/sv/LC_MESSAGES/django.po b/modoboa/locale/sv/LC_MESSAGES/django.po
index ef6d73f82..c78f2b9a1 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: 2020-03-09 16:48+0100\n"
+"POT-Creation-Date: 2020-05-06 13:15+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,39 +21,39 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: core/app_settings.py:20
+#: core/app_settings.py:26
msgid "User profile"
msgstr "Användarprofil"
-#: core/app_settings.py:33
+#: core/app_settings.py:39
msgid "Authentication"
msgstr "Autentisering"
-#: core/app_settings.py:36
+#: core/app_settings.py:42
msgid "Authentication type"
msgstr "Autentiseringstyp"
-#: core/app_settings.py:37
+#: core/app_settings.py:43
msgid "Local"
msgstr "Lokal"
-#: core/app_settings.py:40
+#: core/app_settings.py:46
msgid "The backend used for authentication"
msgstr "Autentiserings backend"
-#: core/app_settings.py:45
+#: core/app_settings.py:51
msgid "Default password scheme"
msgstr "Standard lösenords schema"
-#: core/app_settings.py:50
+#: core/app_settings.py:56
msgid "Scheme used to crypt mailbox passwords"
msgstr "Krypteringsschema för brevlåde lösenord"
-#: core/app_settings.py:54
+#: core/app_settings.py:60
msgid "Rounds"
msgstr "Antal omgångar"
-#: core/app_settings.py:57
+#: core/app_settings.py:63
msgid ""
"Number of rounds to use (only used by sha256crypt and sha512crypt). Must be "
"between 1000 and 999999999, inclusive."
@@ -61,123 +61,147 @@ 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:63
+#: core/app_settings.py:69
#, fuzzy
#| msgid "Default password scheme"
msgid "Update password scheme at login"
msgstr "Standard lösenords schema"
-#: core/app_settings.py:66
+#: core/app_settings.py:72
msgid "Update user password at login to use the default password scheme"
msgstr ""
-#: core/app_settings.py:71
+#: core/app_settings.py:77
msgid "Default password"
msgstr "Standardlösenord"
-#: core/app_settings.py:74
+#: core/app_settings.py:80
msgid "Default password for automatically created accounts."
msgstr "Standardlösenord för automatiskt skapade konton."
-#: core/app_settings.py:78
+#: core/app_settings.py:84
#, fuzzy
#| msgid "Modoboa password reset"
msgid "Random password length"
msgstr "Modoboa lösenordsåterställning."
-#: core/app_settings.py:82
+#: core/app_settings.py:88
msgid "Length of randomly generated passwords."
msgstr ""
-#: core/app_settings.py:86
+#: core/app_settings.py:92
#, fuzzy
#| msgid "Default password scheme"
msgid "Update password service URL"
msgstr "Standard lösenords schema"
-#: core/app_settings.py:90
+#: core/app_settings.py:96
msgid ""
"The URL of an external page where users will be able to update their "
"password. It applies only to non local users, ie. those automatically "
"created after a successful external authentication (LDAP, SMTP)."
msgstr ""
-#: core/app_settings.py:98
+#: core/app_settings.py:104
+msgid "Password recovery announcement"
+msgstr ""
+
+#: core/app_settings.py:109
+msgid "A temporary message that will be displayed on the reset password page."
+msgstr ""
+
+#: core/app_settings.py:115
+msgid "Enable password recovery by SMS"
+msgstr ""
+
+#: core/app_settings.py:118
+msgid "Enable password recovery by SMS for users who filled a phone number."
+msgstr ""
+
+#: core/app_settings.py:124
+msgid "SMS provider"
+msgstr ""
+
+#: core/app_settings.py:127
+msgid "Choose a provider to send password recovery SMS"
+msgstr ""
+
+#: core/app_settings.py:133
msgid "LDAP settings"
msgstr "LDAP inställningar"
-#: core/app_settings.py:101
+#: core/app_settings.py:136
msgid "Server address"
msgstr "Server adress"
-#: core/app_settings.py:104
+#: core/app_settings.py:139
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:108
+#: core/app_settings.py:143
msgid "Server port"
msgstr "Server port"
-#: core/app_settings.py:110
+#: core/app_settings.py:145
msgid "The TCP port number used by the LDAP server"
msgstr "TCP port som används av LDAP servern"
-#: core/app_settings.py:114
+#: core/app_settings.py:149
msgid "Enable secondary server (fallback)"
msgstr ""
-#: core/app_settings.py:117
+#: core/app_settings.py:152
msgid ""
"Enable a secondary LDAP server which will be used if the primary one fails"
msgstr ""
-#: core/app_settings.py:123
+#: core/app_settings.py:158
#, fuzzy
#| msgid "Server address"
msgid "Secondary server address"
msgstr "Server adress"
-#: core/app_settings.py:126
+#: core/app_settings.py:161
#, fuzzy
#| msgid "The IP address or the DNS name of the LDAP server"
msgid "The IP address or the DNS name of the seondary LDAP server"
msgstr "IP adressen eller DNS namn för LDAP server"
-#: core/app_settings.py:130
+#: core/app_settings.py:165
#, fuzzy
#| msgid "Server port"
msgid "Secondary server port"
msgstr "Server port"
-#: core/app_settings.py:133
+#: core/app_settings.py:168
#, fuzzy
#| msgid "The TCP port number used by the LDAP server"
msgid "The TCP port number used by the LDAP secondary server"
msgstr "TCP port som används av LDAP servern"
-#: core/app_settings.py:137
+#: core/app_settings.py:172
msgid "Use a secured connection"
msgstr "Använd en säker anslutning"
-#: core/app_settings.py:141
+#: core/app_settings.py:176
#, 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:145
+#: core/app_settings.py:180
msgid "Active Directory"
msgstr "Active Directory"
-#: core/app_settings.py:148
+#: core/app_settings.py:183
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:152
+#: core/app_settings.py:187
msgid "Administrator groups"
msgstr "Administratörsgrupper"
-#: core/app_settings.py:155
+#: core/app_settings.py:190
msgid ""
"Members of those LDAP Posix groups will be created as domain administrators. "
"Use ';' characters to separate groups."
@@ -185,57 +209,57 @@ 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:162
+#: core/app_settings.py:197
msgid "Group type"
msgstr "Grupptyp"
-#: core/app_settings.py:166
+#: core/app_settings.py:201
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:171
+#: core/app_settings.py:206
msgid "Groups search base"
msgstr "Grupper sökbas"
-#: core/app_settings.py:174
+#: core/app_settings.py:209
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:180
+#: core/app_settings.py:215
msgid "Password attribute"
msgstr "Lösenordsattribut"
-#: core/app_settings.py:182
+#: core/app_settings.py:217
msgid "The attribute used to store user passwords"
msgstr "Attribut som används för att lagra användarlösenord"
-#: core/app_settings.py:187
+#: core/app_settings.py:222
#, fuzzy
#| msgid "Authentication method"
msgid "LDAP authentication settings"
msgstr "Autentiseringsmetod"
-#: core/app_settings.py:190
+#: core/app_settings.py:225
msgid "Authentication method"
msgstr "Autentiseringsmetod"
-#: core/app_settings.py:191
+#: core/app_settings.py:226
msgid "Search and bind"
msgstr "Sök och bind"
-#: core/app_settings.py:192
+#: core/app_settings.py:227
msgid "Direct bind"
msgstr "Direkt bindning"
-#: core/app_settings.py:194
+#: core/app_settings.py:229
msgid "Choose the authentication method to use"
msgstr "Välj autentiseringsmetod att använda"
-#: core/app_settings.py:198 core/app_settings.py:252
+#: core/app_settings.py:233 core/app_settings.py:287
msgid "Bind DN"
msgstr "Bind DN"
-#: core/app_settings.py:201 core/app_settings.py:255
+#: core/app_settings.py:236 core/app_settings.py:290
msgid ""
"The distinguished name to use when binding to the LDAP server. Leave empty "
"for an anonymous bind"
@@ -243,28 +267,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:208 core/app_settings.py:262
+#: core/app_settings.py:243 core/app_settings.py:297
msgid "Bind password"
msgstr "Bind lösenord"
-#: core/app_settings.py:211 core/app_settings.py:265
+#: core/app_settings.py:246 core/app_settings.py:300
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:219 core/app_settings.py:311
+#: core/app_settings.py:254 core/app_settings.py:346
msgid "Users search base"
msgstr "Användare sökbas"
-#: core/app_settings.py:222 core/app_settings.py:314
+#: core/app_settings.py:257 core/app_settings.py:349
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:228 core/app_settings.py:320
+#: core/app_settings.py:263 core/app_settings.py:355
msgid "Search filter"
msgstr "Sökfilter"
-#: core/app_settings.py:231 core/app_settings.py:323
+#: core/app_settings.py:266 core/app_settings.py:358
msgid ""
"An optional filter string (e.g. '(objectClass=person)'). In order to be "
"valid, it must be enclosed in parentheses."
@@ -272,11 +296,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:238
+#: core/app_settings.py:273
msgid "User DN template"
msgstr "Anvädar DN mall"
-#: core/app_settings.py:241
+#: core/app_settings.py:276
#, python-format
msgid ""
"The template used to construct a user's DN. It should contain one "
@@ -285,38 +309,38 @@ 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:249
+#: core/app_settings.py:284
#, fuzzy
#| msgid "LDAP settings"
msgid "LDAP synchronization settings"
msgstr "LDAP inställningar"
-#: core/app_settings.py:273
+#: core/app_settings.py:308
msgid "Enable export to LDAP"
msgstr ""
-#: core/app_settings.py:276
+#: core/app_settings.py:311
msgid ""
"Enable automatic synchronization between local database and LDAP directory"
msgstr ""
-#: core/app_settings.py:282
+#: core/app_settings.py:317
msgid "Delete remote LDAP account when local account is deleted"
msgstr ""
-#: core/app_settings.py:286
+#: core/app_settings.py:321
msgid ""
"Delete remote LDAP account when local account is deleted, otherwise it will "
"be disabled."
msgstr ""
-#: core/app_settings.py:292
+#: core/app_settings.py:327
#, fuzzy
#| msgid "User DN template"
msgid "Account DN template"
msgstr "Anvädar DN mall"
-#: core/app_settings.py:295
+#: core/app_settings.py:330
#, fuzzy, python-format
#| msgid ""
#| "The template used to construct a user's DN. It should contain one "
@@ -328,157 +352,176 @@ 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:302
+#: core/app_settings.py:337
msgid "Enable import from LDAP"
msgstr ""
-#: core/app_settings.py:305
+#: core/app_settings.py:340
msgid "Enable account synchronization from LDAP directory to local database"
msgstr ""
-#: core/app_settings.py:330
+#: core/app_settings.py:365
#, fuzzy
#| msgid "Password attribute"
msgid "Username attribute"
msgstr "Lösenordsattribut"
-#: core/app_settings.py:333
+#: core/app_settings.py:368
msgid "The name of the LDAP attribute where the username can be found."
msgstr ""
-#: core/app_settings.py:337 core/templates/core/dashboard.html:5
+#: core/app_settings.py:373
+#, fuzzy
+#| msgid "Enable communication"
+msgid "Enable Dovecot LDAP sync"
+msgstr "Aktivera kommunikation"
+
+#: core/app_settings.py:376
+msgid "LDAP authentication settings will be applied to Dovecot configuration."
+msgstr ""
+
+#: core/app_settings.py:382
+msgid "Dovecot LDAP config file"
+msgstr ""
+
+#: core/app_settings.py:386
+msgid ""
+"Location of the configuration file which contains Dovecot LDAP settings."
+msgstr ""
+
+#: core/app_settings.py:391 core/templates/core/dashboard.html:5
msgid "Dashboard"
msgstr "Kontrollpanel"
-#: core/app_settings.py:340
+#: core/app_settings.py:394
msgid "Custom RSS feed"
msgstr "Användardefinierat RSS-flöde"
-#: core/app_settings.py:343
+#: core/app_settings.py:397
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:348
+#: core/app_settings.py:402
msgid "Hide features widget"
msgstr "Dölj egenskaper widget"
-#: core/app_settings.py:351
+#: core/app_settings.py:405
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:355
+#: core/app_settings.py:409
msgid "Notifications"
msgstr "Notifikationer"
-#: core/app_settings.py:358
+#: core/app_settings.py:412
msgid "Sender address"
msgstr "Avsändaradress"
-#: core/app_settings.py:361
+#: core/app_settings.py:415
msgid "Email address used to send notifications."
msgstr "E-postadress som används till att skicka notifikationer."
-#: core/app_settings.py:365
+#: core/app_settings.py:419
msgid "Public API"
msgstr "Publikt API"
-#: core/app_settings.py:368
+#: core/app_settings.py:422
msgid "Enable communication"
msgstr "Aktivera kommunikation"
-#: core/app_settings.py:371
+#: core/app_settings.py:425
msgid "Enable communication with Modoboa public API"
msgstr "Aktivera kommunikation med Modoboa publikt API"
-#: core/app_settings.py:375
+#: core/app_settings.py:429
msgid "Check new versions"
msgstr "Kontrollera nya versioner"
-#: core/app_settings.py:378
+#: core/app_settings.py:432
msgid "Automatically checks if a newer version is available"
msgstr "Kontrollera automatiskt om en nyare version finns"
-#: core/app_settings.py:382
+#: core/app_settings.py:436
msgid "Send an email when new versions are found"
msgstr ""
-#: core/app_settings.py:385
+#: core/app_settings.py:439
msgid "Send an email to notify admins about new versions"
msgstr ""
-#: core/app_settings.py:389
+#: core/app_settings.py:443
msgid "Recipient"
msgstr ""
-#: core/app_settings.py:392
+#: core/app_settings.py:446
msgid "Recipient of new versions notification emails."
msgstr ""
-#: core/app_settings.py:397
+#: core/app_settings.py:451
msgid "Send statistics"
msgstr "Skicka statistik"
-#: core/app_settings.py:400
+#: core/app_settings.py:454
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:404
+#: core/app_settings.py:458
msgid "Miscellaneous"
msgstr "Övrigt"
-#: core/app_settings.py:407
+#: core/app_settings.py:461
msgid "Inactive account threshold"
msgstr ""
-#: core/app_settings.py:410
+#: core/app_settings.py:464
msgid ""
"An account with a last login date greater than this threshold (in days) will "
"be considered as inactive"
msgstr ""
-#: core/app_settings.py:416
+#: core/app_settings.py:470
msgid "Top notifications check interval"
msgstr "Toppnotifikationer kontrollintervall"
-#: core/app_settings.py:419
+#: core/app_settings.py:473
msgid "Interval between two top notification checks (in seconds)"
msgstr "Intervall mellan två toppnotifikationskontroller (i sekunder)"
-#: core/app_settings.py:424
+#: core/app_settings.py:478
msgid "Maximum log record age"
msgstr "Maximal ålder för loggpost"
-#: core/app_settings.py:426
+#: core/app_settings.py:480
msgid "The maximum age in days of a log record"
msgstr "Maximal ålder i dagar för en logg post"
-#: core/app_settings.py:430
+#: core/app_settings.py:484
msgid "Items per page"
msgstr "Artiklar per sida"
-#: core/app_settings.py:432
+#: core/app_settings.py:486
msgid "Number of displayed items per page"
msgstr "Antal poster som visas per sida"
-#: core/app_settings.py:436
+#: core/app_settings.py:490
msgid "Default top redirection"
msgstr "Standard topp omdirigering"
-#: core/app_settings.py:440
+#: core/app_settings.py:494
msgid "The default redirection used when no application is specified"
msgstr "Standard omdirigering när ingen applikation angetts"
-#: core/app_settings.py:478 core/app_settings.py:486
+#: core/app_settings.py:548 core/app_settings.py:556 core/app_settings.py:564
msgid "Invalid syntax"
msgstr "Ogiltig syntax"
-#: core/app_settings.py:492
+#: core/app_settings.py:570
msgid "Invalid rounds number"
msgstr "Ogiltigt antal omgångar"
-#: core/app_settings.py:519
+#: core/app_settings.py:595 core/app_settings.py:597 core/app_settings.py:608
msgid "This field is required"
msgstr "Detta fält är obligatoriskt"
@@ -497,58 +540,78 @@ msgstr ""
msgid "Set `USE_TZ = True` in settings.py"
msgstr ""
-#: core/constants.py:5
+#: core/constants.py:6
msgid "Simple user"
msgstr "Enkel användare"
-#: core/constants.py:6
+#: core/constants.py:7
msgid "Domain administrator"
msgstr "Domänadministratör"
-#: core/constants.py:7
+#: core/constants.py:8
msgid "Reseller"
msgstr "Återförsäljare"
-#: core/constants.py:8
+#: core/constants.py:9
msgid "Super administrator"
msgstr "Super administratör"
-#: core/constants.py:51 lib/form_utils.py:389
+#: core/constants.py:52 lib/form_utils.py:389
msgid "No"
msgstr "Nej"
-#: core/forms.py:18
+#: core/constants.py:102
+msgid "Choose a provider"
+msgstr ""
+
+#: core/constants.py:107
+msgid "Dummy"
+msgstr ""
+
+#: core/forms.py:21
msgid "Username"
msgstr "Användarnamn"
-#: core/forms.py:22
+#: core/forms.py:25
msgid "Password"
msgstr "Lösenord"
-#: core/forms.py:35
+#: core/forms.py:38
msgid "Old password"
msgstr "Gammalt lösenord"
-#: core/forms.py:39
+#: core/forms.py:42
msgid "New password"
msgstr "Nytt lösenord"
-#: core/forms.py:43
+#: core/forms.py:46
msgid "Confirmation"
msgstr "Bekräftelse"
-#: core/forms.py:71
+#: core/forms.py:74
msgid "Old password mismatchs"
msgstr "Gammalt lösenord matchar inte"
-#: core/forms.py:80
+#: core/forms.py:83
msgid "Passwords mismatch"
msgstr "Lösenord matchar inte"
-#: core/forms.py:100
+#: core/forms.py:103
msgid "Enable API access"
msgstr "Aktivera API access"
+#: core/forms.py:137
+#, fuzzy
+#| msgid "Notifications"
+msgid "Verification code"
+msgstr "Notifikationer"
+
+#: core/forms.py:148
+#, fuzzy
+#| msgid "Invalid line"
+msgid "Invalid code"
+msgstr "Ogiltig rad"
+
#: core/handlers.py:36
msgid "added"
msgstr "tillagd"
@@ -594,64 +657,64 @@ msgstr "En eller fler uppdateringar finns tillgängliga"
msgid "[modoboa] Update(s) available"
msgstr "En eller fler uppdateringar finns tillgängliga"
-#: core/models.py:53
+#: core/models.py:55
msgid "Allow mailboxes access"
msgstr "Tillåt åtkomst till brevlådor"
-#: core/models.py:55
+#: core/models.py:57
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:58
+#: core/models.py:60
msgid "password"
msgstr "lösenord"
-#: core/models.py:61
+#: core/models.py:63
msgid "language"
msgstr "språk"
-#: core/models.py:64
+#: core/models.py:66
msgid "Prefered language to display pages."
msgstr "Önskat språk för att visa sidor."
-#: core/models.py:68
+#: core/models.py:70
msgid "Phone number"
msgstr "Telefonnummer"
-#: core/models.py:70
+#: core/models.py:72
msgid "Secondary email"
msgstr "Sekundär e-post"
-#: core/models.py:73
+#: core/models.py:75
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:124
+#: core/models.py:126
msgid "Failed to update password: LDAP module not installed"
msgstr "Misslyckades med att uppdatera lösenord: LDAP modul ej installerad"
-#: core/models.py:153
+#: core/models.py:155
msgid "account"
msgstr "konto"
-#: core/models.py:280
+#: core/models.py:282
msgid "Unknown"
msgstr "Okänt"
-#: core/models.py:314
+#: core/models.py:316
msgid "Invalid line"
msgstr "Ogiltig rad"
-#: core/models.py:322
+#: core/models.py:324
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:337
+#: core/models.py:339
#, 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:342
+#: core/models.py:344
#, 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'"
@@ -684,6 +747,54 @@ msgstr[1] "Lösenord måste innehålla minst {} specialtecken."
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."
+#: core/sms_backends/ovh.py:19
+msgid "API endpoint"
+msgstr ""
+
+#: core/sms_backends/ovh.py:22
+msgid "OVH Europe"
+msgstr ""
+
+#: core/sms_backends/ovh.py:23
+msgid "OVH US"
+msgstr ""
+
+#: core/sms_backends/ovh.py:24
+msgid "OVH North-America"
+msgstr ""
+
+#: core/sms_backends/ovh.py:25
+msgid "So you Start Europe"
+msgstr ""
+
+#: core/sms_backends/ovh.py:26
+msgid "So you Start North America"
+msgstr ""
+
+#: core/sms_backends/ovh.py:27
+msgid "Kimsufi Europe"
+msgstr ""
+
+#: core/sms_backends/ovh.py:28
+msgid "Kimsufi North America"
+msgstr ""
+
+#: core/sms_backends/ovh.py:35
+#, fuzzy
+#| msgid "Applications"
+msgid "Application key"
+msgstr "Applikationer"
+
+#: core/sms_backends/ovh.py:42
+#, fuzzy
+#| msgid "Applications"
+msgid "Application secret"
+msgstr "Applikationer"
+
+#: core/sms_backends/ovh.py:50
+msgid "Consumer key"
+msgstr ""
+
#: core/templates/core/_current_features.html:6
msgid "Features looking for sponsoring"
msgstr "Egenskaper som söker sponsring"
@@ -897,29 +1008,33 @@ msgstr "Kärnan av Modoboa"
msgid "Parameters saved"
msgstr "Parametrar sparade"
-#: core/views/auth.py:46
+#: core/views/auth.py:59
#, python-format
msgid "Password scheme mismatch. Updating %s password"
msgstr ""
-#: core/views/auth.py:53
+#: core/views/auth.py:66
#, python-format
msgid "Password hash parameter missmatch. Updating %s password"
msgstr ""
-#: core/views/auth.py:69
+#: core/views/auth.py:82
#, python-format
msgid "User '%s' successfully logged in"
msgstr "Användare '%s' har loggat in"
-#: core/views/auth.py:77
+#: core/views/auth.py:90
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:112
+#: core/views/auth.py:125
msgid "User '{}' successfully logged out"
msgstr "Användare '{}' loggade ut framgångsrikt"
+#: core/views/auth.py:170 core/views/auth.py:225
+msgid "Please use the following code to recover your Modoboa password: {}"
+msgstr ""
+
#: core/views/user.py:53
msgid "Profile updated"
msgstr "Profil uppdaterad"
@@ -959,7 +1074,8 @@ msgid "Enter a valid email address."
msgstr "Ange en giltig e-postadress"
#: lib/form_utils.py:77 templates/registration/password_reset_confirm.html:12
-#: templates/registration/password_reset_form.html:11
+#: templates/registration/password_reset_confirm_code.html:25
+#: templates/registration/password_reset_form.html:29
msgid "Submit"
msgstr "Skicka"
@@ -1046,7 +1162,7 @@ msgid "Log in"
msgstr "Logga in"
#: templates/registration/login.html:24
-#: templates/registration/password_reset_form.html:6
+#: templates/registration/password_reset_form.html:17
msgid "Forgot password?"
msgstr "Glömt ditt lösenord?"
@@ -1071,6 +1187,14 @@ msgstr ""
"Lösenordets återställningslänk är ogiltig, förmodligen för att den redan "
"använts. Var vänlig begär en ny återställning av lösenord."
+#: templates/registration/password_reset_confirm_code.html:20
+msgid "Enter the code you've just received by SMS"
+msgstr ""
+
+#: templates/registration/password_reset_confirm_code.html:27
+msgid "Resend code"
+msgstr ""
+
#: templates/registration/password_reset_done.html:7
msgid ""
"We've emailed you instructions for setting your password, if an account "
@@ -1104,15 +1228,14 @@ msgstr ""
msgid "Sincerely, The Modoboa Team."
msgstr "Vänligen, Modoboa teamet."
+#: templates/registration/password_reset_form.html:24
+msgid "Please fill-in your primary email address"
+msgstr ""
+
#: templates/registration/password_reset_subject.txt:3
msgid "Modoboa password reset"
msgstr "Modoboa lösenordsåterställning."
-#, fuzzy
-#~| msgid "Enable communication"
-#~ msgid "Enable LDAP synchronization"
-#~ msgstr "Aktivera kommunikation"
-
#~ msgid "md5crypt (weak)"
#~ msgstr "md5crypt (svag)"
diff --git a/modoboa/locale/sv/LC_MESSAGES/djangojs.po b/modoboa/locale/sv/LC_MESSAGES/djangojs.po
index 77903591c..034817530 100644
--- a/modoboa/locale/sv/LC_MESSAGES/djangojs.po
+++ b/modoboa/locale/sv/LC_MESSAGES/djangojs.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:
# Olle Gustafsson , 2013
# Olle Gustafsson , 2013,2015-2016
@@ -10,14 +10,13 @@ msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-03-09 16:48+0100\n"
-"PO-Revision-Date: 2017-09-19 15:00+0000\n"
-"Last-Translator: Olle Gustafsson \n"
-"Language-Team: Swedish (http://www.transifex.com/tonio/modoboa/language/"
-"sv/)\n"
-"Language: sv\n"
+"PO-Revision-Date: 2020-03-09 15:49+0000\n"
+"Last-Translator: Antoine Nguyen \n"
+"Language-Team: Swedish (http://www.transifex.com/tonio/modoboa/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"
#: bower_components/jquery-ui/jquery-ui.min.js:8
diff --git a/modoboa/locale/tr_TR/LC_MESSAGES/django.po b/modoboa/locale/tr_TR/LC_MESSAGES/django.po
index 4a8acc8ca..2978d5bb9 100644
--- a/modoboa/locale/tr_TR/LC_MESSAGES/django.po
+++ b/modoboa/locale/tr_TR/LC_MESSAGES/django.po
@@ -12,7 +12,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-03-09 16:48+0100\n"
+"POT-Creation-Date: 2020-05-06 13:15+0200\n"
"PO-Revision-Date: 2018-11-22 19:31+0000\n"
"Last-Translator: Ediz Duman \n"
"Language-Team: Turkish (Turkey) (http://www.transifex.com/tonio/modoboa/"
@@ -23,440 +23,481 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-#: core/app_settings.py:20
+#: core/app_settings.py:26
msgid "User profile"
msgstr "Kullanıcı profili"
-#: core/app_settings.py:33
+#: core/app_settings.py:39
msgid "Authentication"
msgstr "Yetkilendirme"
-#: core/app_settings.py:36
+#: core/app_settings.py:42
msgid "Authentication type"
msgstr "Yetkilendirme türü"
-#: core/app_settings.py:37
+#: core/app_settings.py:43
msgid "Local"
msgstr "Yerel"
-#: core/app_settings.py:40
+#: core/app_settings.py:46
msgid "The backend used for authentication"
msgstr ""
-#: core/app_settings.py:45
+#: core/app_settings.py:51
msgid "Default password scheme"
msgstr "Varsayılan parola şeması"
-#: core/app_settings.py:50
+#: core/app_settings.py:56
msgid "Scheme used to crypt mailbox passwords"
msgstr "Mailbox parolalarını şifrelemek için kullanılacak şema"
-#: core/app_settings.py:54
+#: core/app_settings.py:60
msgid "Rounds"
msgstr ""
-#: core/app_settings.py:57
+#: core/app_settings.py:63
msgid ""
"Number of rounds to use (only used by sha256crypt and sha512crypt). Must be "
"between 1000 and 999999999, inclusive."
msgstr ""
-#: core/app_settings.py:63
+#: core/app_settings.py:69
#, fuzzy
#| msgid "Update password scheme"
msgid "Update password scheme at login"
msgstr "Şifre şemasını güncelle"
-#: core/app_settings.py:66
+#: core/app_settings.py:72
msgid "Update user password at login to use the default password scheme"
msgstr ""
-#: core/app_settings.py:71
+#: core/app_settings.py:77
msgid "Default password"
msgstr "Varsayılan parola"
-#: core/app_settings.py:74
+#: core/app_settings.py:80
msgid "Default password for automatically created accounts."
msgstr "Otomatik oluşturulan hesaplar için varsayılan parola."
-#: core/app_settings.py:78
+#: core/app_settings.py:84
msgid "Random password length"
msgstr "Rastgele şifre uzunluğu"
-#: core/app_settings.py:82
+#: core/app_settings.py:88
msgid "Length of randomly generated passwords."
msgstr ""
-#: core/app_settings.py:86
+#: core/app_settings.py:92
#, fuzzy
#| msgid "Update password scheme"
msgid "Update password service URL"
msgstr "Şifre şemasını güncelle"
-#: core/app_settings.py:90
+#: core/app_settings.py:96
msgid ""
"The URL of an external page where users will be able to update their "
"password. It applies only to non local users, ie. those automatically "
"created after a successful external authentication (LDAP, SMTP)."
msgstr ""
-#: core/app_settings.py:98
+#: core/app_settings.py:104
+msgid "Password recovery announcement"
+msgstr ""
+
+#: core/app_settings.py:109
+msgid "A temporary message that will be displayed on the reset password page."
+msgstr ""
+
+#: core/app_settings.py:115
+msgid "Enable password recovery by SMS"
+msgstr ""
+
+#: core/app_settings.py:118
+msgid "Enable password recovery by SMS for users who filled a phone number."
+msgstr ""
+
+#: core/app_settings.py:124
+msgid "SMS provider"
+msgstr ""
+
+#: core/app_settings.py:127
+msgid "Choose a provider to send password recovery SMS"
+msgstr ""
+
+#: core/app_settings.py:133
msgid "LDAP settings"
msgstr "LDAP ayarları"
-#: core/app_settings.py:101
+#: core/app_settings.py:136
msgid "Server address"
msgstr "Sunucu adresi"
-#: core/app_settings.py:104
+#: core/app_settings.py:139
msgid "The IP address or the DNS name of the LDAP server"
msgstr "LDAP sunucusunun adresi (DNS) ya da ip adresi"
-#: core/app_settings.py:108
+#: core/app_settings.py:143
msgid "Server port"
msgstr "Sunucu portu"
-#: core/app_settings.py:110
+#: core/app_settings.py:145
msgid "The TCP port number used by the LDAP server"
msgstr "LDAP sunucu tarafından kullanılan TCP portu"
-#: core/app_settings.py:114
+#: core/app_settings.py:149
msgid "Enable secondary server (fallback)"
msgstr ""
-#: core/app_settings.py:117
+#: core/app_settings.py:152
msgid ""
"Enable a secondary LDAP server which will be used if the primary one fails"
msgstr ""
-#: core/app_settings.py:123
+#: core/app_settings.py:158
#, fuzzy
#| msgid "Server address"
msgid "Secondary server address"
msgstr "Sunucu adresi"
-#: core/app_settings.py:126
+#: core/app_settings.py:161
#, fuzzy
#| msgid "The IP address or the DNS name of the LDAP server"
msgid "The IP address or the DNS name of the seondary LDAP server"
msgstr "LDAP sunucusunun adresi (DNS) ya da ip adresi"
-#: core/app_settings.py:130
+#: core/app_settings.py:165
#, fuzzy
#| msgid "Server port"
msgid "Secondary server port"
msgstr "Sunucu portu"
-#: core/app_settings.py:133
+#: core/app_settings.py:168
#, fuzzy
#| msgid "The TCP port number used by the LDAP server"
msgid "The TCP port number used by the LDAP secondary server"
msgstr "LDAP sunucu tarafından kullanılan TCP portu"
-#: core/app_settings.py:137
+#: core/app_settings.py:172
msgid "Use a secured connection"
msgstr "Güvenli bir bağlantı kullan"
-#: core/app_settings.py:141
+#: core/app_settings.py:176
msgid "Use an SSL/STARTTLS connection to access the LDAP server"
msgstr ""
-#: core/app_settings.py:145
+#: core/app_settings.py:180
msgid "Active Directory"
msgstr "Active Directory"
-#: core/app_settings.py:148
+#: core/app_settings.py:183
msgid "Tell if the LDAP server is an Active Directory one"
msgstr "LDAP sunucu bir Active Directory ise"
-#: core/app_settings.py:152
+#: core/app_settings.py:187
msgid "Administrator groups"
msgstr "Yönetici grupları"
-#: core/app_settings.py:155
+#: core/app_settings.py:190
msgid ""
"Members of those LDAP Posix groups will be created as domain administrators. "
"Use ';' characters to separate groups."
msgstr ""
-#: core/app_settings.py:162
+#: core/app_settings.py:197
msgid "Group type"
msgstr "Grup türü"
-#: core/app_settings.py:166
+#: core/app_settings.py:201
msgid "The LDAP group type to use with your directory."
msgstr ""
-#: core/app_settings.py:171
+#: core/app_settings.py:206
msgid "Groups search base"
msgstr ""
-#: core/app_settings.py:174
+#: core/app_settings.py:209
msgid "The distinguished name of the search base used to find groups"
msgstr ""
-#: core/app_settings.py:180
+#: core/app_settings.py:215
msgid "Password attribute"
msgstr "Parola özelliği"
-#: core/app_settings.py:182
+#: core/app_settings.py:217
msgid "The attribute used to store user passwords"
msgstr "Kullanıcı parolalarını saklamak için kullanılacak özellik"
-#: core/app_settings.py:187
+#: core/app_settings.py:222
#, fuzzy
#| msgid "Authentication method"
msgid "LDAP authentication settings"
msgstr "Yetkilendirme metodu"
-#: core/app_settings.py:190
+#: core/app_settings.py:225
msgid "Authentication method"
msgstr "Yetkilendirme metodu"
-#: core/app_settings.py:191
+#: core/app_settings.py:226
msgid "Search and bind"
msgstr ""
-#: core/app_settings.py:192
+#: core/app_settings.py:227
msgid "Direct bind"
msgstr ""
-#: core/app_settings.py:194
+#: core/app_settings.py:229
msgid "Choose the authentication method to use"
msgstr "Kullanılacak yetkilendirme metodunu seçin"
-#: core/app_settings.py:198 core/app_settings.py:252
+#: core/app_settings.py:233 core/app_settings.py:287
msgid "Bind DN"
msgstr ""
-#: core/app_settings.py:201 core/app_settings.py:255
+#: core/app_settings.py:236 core/app_settings.py:290
msgid ""
"The distinguished name to use when binding to the LDAP server. Leave empty "
"for an anonymous bind"
msgstr ""
-#: core/app_settings.py:208 core/app_settings.py:262
+#: core/app_settings.py:243 core/app_settings.py:297
msgid "Bind password"
msgstr ""
-#: core/app_settings.py:211 core/app_settings.py:265
+#: core/app_settings.py:246 core/app_settings.py:300
msgid "The password to use when binding to the LDAP server (with 'Bind DN')"
msgstr ""
-#: core/app_settings.py:219 core/app_settings.py:311
+#: core/app_settings.py:254 core/app_settings.py:346
msgid "Users search base"
msgstr ""
-#: core/app_settings.py:222 core/app_settings.py:314
+#: core/app_settings.py:257 core/app_settings.py:349
msgid "The distinguished name of the search base used to find users"
msgstr ""
-#: core/app_settings.py:228 core/app_settings.py:320
+#: core/app_settings.py:263 core/app_settings.py:355
msgid "Search filter"
msgstr "Arama filtresi"
-#: core/app_settings.py:231 core/app_settings.py:323
+#: core/app_settings.py:266 core/app_settings.py:358
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:238
+#: core/app_settings.py:273
msgid "User DN template"
msgstr ""
-#: core/app_settings.py:241
+#: core/app_settings.py:276
#, 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:249
+#: core/app_settings.py:284
#, fuzzy
#| msgid "LDAP settings"
msgid "LDAP synchronization settings"
msgstr "LDAP ayarları"
-#: core/app_settings.py:273
+#: core/app_settings.py:308
msgid "Enable export to LDAP"
msgstr ""
-#: core/app_settings.py:276
+#: core/app_settings.py:311
msgid ""
"Enable automatic synchronization between local database and LDAP directory"
msgstr ""
-#: core/app_settings.py:282
+#: core/app_settings.py:317
msgid "Delete remote LDAP account when local account is deleted"
msgstr ""
-#: core/app_settings.py:286
+#: core/app_settings.py:321
msgid ""
"Delete remote LDAP account when local account is deleted, otherwise it will "
"be disabled."
msgstr ""
-#: core/app_settings.py:292
+#: core/app_settings.py:327
msgid "Account DN template"
msgstr ""
-#: core/app_settings.py:295
+#: core/app_settings.py:330
#, python-format
msgid ""
"The template used to construct an account's DN. It should contain one "
"placeholder (ie. %(user)s)"
msgstr ""
-#: core/app_settings.py:302
+#: core/app_settings.py:337
msgid "Enable import from LDAP"
msgstr ""
-#: core/app_settings.py:305
+#: core/app_settings.py:340
msgid "Enable account synchronization from LDAP directory to local database"
msgstr ""
-#: core/app_settings.py:330
+#: core/app_settings.py:365
#, fuzzy
#| msgid "Password attribute"
msgid "Username attribute"
msgstr "Parola özelliği"
-#: core/app_settings.py:333
+#: core/app_settings.py:368
msgid "The name of the LDAP attribute where the username can be found."
msgstr ""
-#: core/app_settings.py:337 core/templates/core/dashboard.html:5
-msgid "Dashboard"
-msgstr "gösterge Paneli"
-
-#: core/app_settings.py:340
-msgid "Custom RSS feed"
+#: core/app_settings.py:373
+msgid "Enable Dovecot LDAP sync"
msgstr ""
-#: core/app_settings.py:343
-msgid "Display custom RSS feed to resellers and domain administrators"
-msgstr ""
-
-#: core/app_settings.py:348
-msgid "Hide features widget"
-msgstr ""
-
-#: core/app_settings.py:351
-msgid "Hide features widget for resellers and domain administrators"
-msgstr ""
-
-#: core/app_settings.py:355
-msgid "Notifications"
-msgstr "Bildirimler"
-
-#: core/app_settings.py:358
-msgid "Sender address"
-msgstr "Gönderici adresi"
-
-#: core/app_settings.py:361
-msgid "Email address used to send notifications."
-msgstr "Bildirimlerin gönderileceği email adresi"
-
-#: core/app_settings.py:365
-msgid "Public API"
-msgstr "Genel API"
-
-#: core/app_settings.py:368
-msgid "Enable communication"
-msgstr ""
-
-#: core/app_settings.py:371
-msgid "Enable communication with Modoboa public API"
-msgstr ""
-
-#: core/app_settings.py:375
-msgid "Check new versions"
-msgstr "Yeni versiyonları kontrol et"
-
-#: core/app_settings.py:378
-msgid "Automatically checks if a newer version is available"
+#: core/app_settings.py:376
+msgid "LDAP authentication settings will be applied to Dovecot configuration."
msgstr ""
#: core/app_settings.py:382
-msgid "Send an email when new versions are found"
+msgid "Dovecot LDAP config file"
msgstr ""
-#: core/app_settings.py:385
-msgid "Send an email to notify admins about new versions"
+#: core/app_settings.py:386
+msgid ""
+"Location of the configuration file which contains Dovecot LDAP settings."
msgstr ""
-#: core/app_settings.py:389
-msgid "Recipient"
-msgstr ""
+#: core/app_settings.py:391 core/templates/core/dashboard.html:5
+msgid "Dashboard"
+msgstr "gösterge Paneli"
-#: core/app_settings.py:392
-msgid "Recipient of new versions notification emails."
+#: core/app_settings.py:394
+msgid "Custom RSS feed"
msgstr ""
#: core/app_settings.py:397
+msgid "Display custom RSS feed to resellers and domain administrators"
+msgstr ""
+
+#: core/app_settings.py:402
+msgid "Hide features widget"
+msgstr ""
+
+#: core/app_settings.py:405
+msgid "Hide features widget for resellers and domain administrators"
+msgstr ""
+
+#: core/app_settings.py:409
+msgid "Notifications"
+msgstr "Bildirimler"
+
+#: core/app_settings.py:412
+msgid "Sender address"
+msgstr "Gönderici adresi"
+
+#: core/app_settings.py:415
+msgid "Email address used to send notifications."
+msgstr "Bildirimlerin gönderileceği email adresi"
+
+#: core/app_settings.py:419
+msgid "Public API"
+msgstr "Genel API"
+
+#: core/app_settings.py:422
+msgid "Enable communication"
+msgstr ""
+
+#: core/app_settings.py:425
+msgid "Enable communication with Modoboa public API"
+msgstr ""
+
+#: core/app_settings.py:429
+msgid "Check new versions"
+msgstr "Yeni versiyonları kontrol et"
+
+#: core/app_settings.py:432
+msgid "Automatically checks if a newer version is available"
+msgstr ""
+
+#: core/app_settings.py:436
+msgid "Send an email when new versions are found"
+msgstr ""
+
+#: core/app_settings.py:439
+msgid "Send an email to notify admins about new versions"
+msgstr ""
+
+#: core/app_settings.py:443
+msgid "Recipient"
+msgstr ""
+
+#: core/app_settings.py:446
+msgid "Recipient of new versions notification emails."
+msgstr ""
+
+#: core/app_settings.py:451
msgid "Send statistics"
msgstr "İstatistikleri gönder"
-#: core/app_settings.py:400
+#: core/app_settings.py:454
msgid "Send statistics to Modoboa public API (counters and used extensions)"
msgstr ""
-#: core/app_settings.py:404
+#: core/app_settings.py:458
msgid "Miscellaneous"
msgstr "Çeşitli"
-#: core/app_settings.py:407
+#: core/app_settings.py:461
msgid "Inactive account threshold"
msgstr ""
-#: core/app_settings.py:410
+#: core/app_settings.py:464
msgid ""
"An account with a last login date greater than this threshold (in days) will "
"be considered as inactive"
msgstr ""
-#: core/app_settings.py:416
+#: core/app_settings.py:470
msgid "Top notifications check interval"
msgstr ""
-#: core/app_settings.py:419
+#: core/app_settings.py:473
msgid "Interval between two top notification checks (in seconds)"
msgstr ""
-#: core/app_settings.py:424
+#: core/app_settings.py:478
msgid "Maximum log record age"
msgstr "Maksimum günlük kayıt yaşı"
-#: core/app_settings.py:426
+#: core/app_settings.py:480
msgid "The maximum age in days of a log record"
msgstr ""
-#: core/app_settings.py:430
+#: core/app_settings.py:484
msgid "Items per page"
msgstr "Sayfa başına öğe"
-#: core/app_settings.py:432
+#: core/app_settings.py:486
msgid "Number of displayed items per page"
msgstr ""
-#: core/app_settings.py:436
+#: core/app_settings.py:490
msgid "Default top redirection"
msgstr ""
-#: core/app_settings.py:440
+#: core/app_settings.py:494
msgid "The default redirection used when no application is specified"
msgstr ""
-#: core/app_settings.py:478 core/app_settings.py:486
+#: core/app_settings.py:548 core/app_settings.py:556 core/app_settings.py:564
msgid "Invalid syntax"
msgstr ""
-#: core/app_settings.py:492
+#: core/app_settings.py:570
msgid "Invalid rounds number"
msgstr ""
-#: core/app_settings.py:519
+#: core/app_settings.py:595 core/app_settings.py:597 core/app_settings.py:608
msgid "This field is required"
msgstr ""
@@ -475,58 +516,76 @@ msgstr ""
msgid "Set `USE_TZ = True` in settings.py"
msgstr ""
-#: core/constants.py:5
+#: core/constants.py:6
msgid "Simple user"
msgstr ""
-#: core/constants.py:6
+#: core/constants.py:7
msgid "Domain administrator"
msgstr ""
-#: core/constants.py:7
+#: core/constants.py:8
msgid "Reseller"
msgstr ""
-#: core/constants.py:8
+#: core/constants.py:9
msgid "Super administrator"
msgstr ""
-#: core/constants.py:51 lib/form_utils.py:389
+#: core/constants.py:52 lib/form_utils.py:389
msgid "No"
msgstr ""
-#: core/forms.py:18
+#: core/constants.py:102
+msgid "Choose a provider"
+msgstr ""
+
+#: core/constants.py:107
+msgid "Dummy"
+msgstr ""
+
+#: core/forms.py:21
msgid "Username"
msgstr "Kullanıcı adı"
-#: core/forms.py:22
+#: core/forms.py:25
msgid "Password"
msgstr "Parola"
-#: core/forms.py:35
+#: core/forms.py:38
msgid "Old password"
msgstr "Eski parola"
-#: core/forms.py:39
+#: core/forms.py:42
msgid "New password"
msgstr "Yeni parola"
-#: core/forms.py:43
+#: core/forms.py:46
msgid "Confirmation"
msgstr "Şifre tekrar"
-#: core/forms.py:71
+#: core/forms.py:74
msgid "Old password mismatchs"
msgstr ""
-#: core/forms.py:80
+#: core/forms.py:83
msgid "Passwords mismatch"
msgstr ""
-#: core/forms.py:100
+#: core/forms.py:103
msgid "Enable API access"
msgstr ""
+#: core/forms.py:137
+#, fuzzy
+#| msgid "Notifications"
+msgid "Verification code"
+msgstr "Bildirimler"
+
+#: core/forms.py:148
+msgid "Invalid code"
+msgstr ""
+
#: core/handlers.py:36
msgid "added"
msgstr ""
@@ -571,64 +630,64 @@ msgstr "Bir veya daha fazla güncelleme mevcut"
msgid "[modoboa] Update(s) available"
msgstr "Bir veya daha fazla güncelleme mevcut"
-#: core/models.py:53
+#: core/models.py:55
msgid "Allow mailboxes access"
msgstr ""
-#: core/models.py:55
+#: core/models.py:57
msgid "Allow this administrator to access user mailboxes"
msgstr ""
-#: core/models.py:58
+#: core/models.py:60
msgid "password"
msgstr "parola"
-#: core/models.py:61
+#: core/models.py:63
msgid "language"
msgstr ""
-#: core/models.py:64
+#: core/models.py:66
msgid "Prefered language to display pages."
msgstr ""
-#: core/models.py:68
+#: core/models.py:70
msgid "Phone number"
msgstr ""
-#: core/models.py:70
+#: core/models.py:72
msgid "Secondary email"
msgstr ""
-#: core/models.py:73
+#: core/models.py:75
msgid "An alternative e-mail address, can be used for recovery needs."
msgstr ""
-#: core/models.py:124
+#: core/models.py:126
msgid "Failed to update password: LDAP module not installed"
msgstr ""
-#: core/models.py:153
+#: core/models.py:155
msgid "account"
msgstr ""
-#: core/models.py:280
+#: core/models.py:282
msgid "Unknown"
msgstr ""
-#: core/models.py:314
+#: core/models.py:316
msgid "Invalid line"
msgstr ""
-#: core/models.py:322
+#: core/models.py:324
msgid "You can't import an account with a role greater than yours"
msgstr ""
-#: core/models.py:337
+#: core/models.py:339
#, python-format
msgid "The simple user '%s' must have a valid email address"
msgstr ""
-#: core/models.py:342
+#: core/models.py:344
#, python-format
msgid "username and email fields must not differ for '%s'"
msgstr ""
@@ -661,6 +720,50 @@ msgstr[1] ""
msgid "Your password must contain a combination of different character types."
msgstr ""
+#: core/sms_backends/ovh.py:19
+msgid "API endpoint"
+msgstr ""
+
+#: core/sms_backends/ovh.py:22
+msgid "OVH Europe"
+msgstr ""
+
+#: core/sms_backends/ovh.py:23
+msgid "OVH US"
+msgstr ""
+
+#: core/sms_backends/ovh.py:24
+msgid "OVH North-America"
+msgstr ""
+
+#: core/sms_backends/ovh.py:25
+msgid "So you Start Europe"
+msgstr ""
+
+#: core/sms_backends/ovh.py:26
+msgid "So you Start North America"
+msgstr ""
+
+#: core/sms_backends/ovh.py:27
+msgid "Kimsufi Europe"
+msgstr ""
+
+#: core/sms_backends/ovh.py:28
+msgid "Kimsufi North America"
+msgstr ""
+
+#: core/sms_backends/ovh.py:35
+msgid "Application key"
+msgstr ""
+
+#: core/sms_backends/ovh.py:42
+msgid "Application secret"
+msgstr ""
+
+#: core/sms_backends/ovh.py:50
+msgid "Consumer key"
+msgstr ""
+
#: core/templates/core/_current_features.html:6
msgid "Features looking for sponsoring"
msgstr ""
@@ -867,29 +970,33 @@ msgstr ""
msgid "Parameters saved"
msgstr ""
-#: core/views/auth.py:46
+#: core/views/auth.py:59
#, python-format
msgid "Password scheme mismatch. Updating %s password"
msgstr ""
-#: core/views/auth.py:53
+#: core/views/auth.py:66
#, python-format
msgid "Password hash parameter missmatch. Updating %s password"
msgstr ""
-#: core/views/auth.py:69
+#: core/views/auth.py:82
#, python-format
msgid "User '%s' successfully logged in"
msgstr ""
-#: core/views/auth.py:77
+#: core/views/auth.py:90
msgid "Your username and password didn't match. Please try again."
msgstr ""
-#: core/views/auth.py:112
+#: core/views/auth.py:125
msgid "User '{}' successfully logged out"
msgstr ""
+#: core/views/auth.py:170 core/views/auth.py:225
+msgid "Please use the following code to recover your Modoboa password: {}"
+msgstr ""
+
#: core/views/user.py:53
msgid "Profile updated"
msgstr "Kullanıcı bilgileri güncellendi"
@@ -929,7 +1036,8 @@ msgid "Enter a valid email address."
msgstr ""
#: lib/form_utils.py:77 templates/registration/password_reset_confirm.html:12
-#: templates/registration/password_reset_form.html:11
+#: templates/registration/password_reset_confirm_code.html:25
+#: templates/registration/password_reset_form.html:29
msgid "Submit"
msgstr "Gönder"
@@ -1016,7 +1124,7 @@ msgid "Log in"
msgstr "Giriş"
#: templates/registration/login.html:24
-#: templates/registration/password_reset_form.html:6
+#: templates/registration/password_reset_form.html:17
msgid "Forgot password?"
msgstr ""
@@ -1037,6 +1145,14 @@ msgid ""
"used. Please request a new password reset."
msgstr ""
+#: templates/registration/password_reset_confirm_code.html:20
+msgid "Enter the code you've just received by SMS"
+msgstr ""
+
+#: templates/registration/password_reset_confirm_code.html:27
+msgid "Resend code"
+msgstr ""
+
#: templates/registration/password_reset_done.html:7
msgid ""
"We've emailed you instructions for setting your password, if an account "
@@ -1062,6 +1178,10 @@ msgstr ""
msgid "Sincerely, The Modoboa Team."
msgstr ""
+#: templates/registration/password_reset_form.html:24
+msgid "Please fill-in your primary email address"
+msgstr ""
+
#: templates/registration/password_reset_subject.txt:3
msgid "Modoboa password reset"
msgstr ""
diff --git a/modoboa/locale/tr_TR/LC_MESSAGES/djangojs.po b/modoboa/locale/tr_TR/LC_MESSAGES/djangojs.po
index 845163478..bbf25fa1f 100644
--- a/modoboa/locale/tr_TR/LC_MESSAGES/djangojs.po
+++ b/modoboa/locale/tr_TR/LC_MESSAGES/djangojs.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:
# Caner Başaran , 2015
# Ediz Duman , 2016
@@ -10,14 +10,13 @@ msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-03-09 16:48+0100\n"
-"PO-Revision-Date: 2017-09-20 11:12+0000\n"
-"Last-Translator: Ediz Duman \n"
-"Language-Team: Turkish (Turkey) (http://www.transifex.com/tonio/modoboa/"
-"language/tr_TR/)\n"
-"Language: tr_TR\n"
+"PO-Revision-Date: 2020-03-09 15:49+0000\n"
+"Last-Translator: Antoine Nguyen \n"
+"Language-Team: Turkish (Turkey) (http://www.transifex.com/tonio/modoboa/language/tr_TR/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Language: tr_TR\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: bower_components/jquery-ui/jquery-ui.min.js:8
diff --git a/modoboa/locale/zh_TW/LC_MESSAGES/django.po b/modoboa/locale/zh_TW/LC_MESSAGES/django.po
index 3a084425f..bb8a2229c 100644
--- a/modoboa/locale/zh_TW/LC_MESSAGES/django.po
+++ b/modoboa/locale/zh_TW/LC_MESSAGES/django.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-03-09 16:48+0100\n"
+"POT-Creation-Date: 2020-05-06 13:15+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/"
@@ -21,39 +21,39 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-#: core/app_settings.py:20
+#: core/app_settings.py:26
msgid "User profile"
msgstr "使用者檔案"
-#: core/app_settings.py:33
+#: core/app_settings.py:39
msgid "Authentication"
msgstr "驗證"
-#: core/app_settings.py:36
+#: core/app_settings.py:42
msgid "Authentication type"
msgstr "驗證類型"
-#: core/app_settings.py:37
+#: core/app_settings.py:43
msgid "Local"
msgstr "本機"
-#: core/app_settings.py:40
+#: core/app_settings.py:46
msgid "The backend used for authentication"
msgstr "此背景程式已用於驗證"
-#: core/app_settings.py:45
+#: core/app_settings.py:51
msgid "Default password scheme"
msgstr "預設密碼方案"
-#: core/app_settings.py:50
+#: core/app_settings.py:56
msgid "Scheme used to crypt mailbox passwords"
msgstr "方案已使用於加密信箱密碼"
-#: core/app_settings.py:54
+#: core/app_settings.py:60
msgid "Rounds"
msgstr "輪"
-#: core/app_settings.py:57
+#: core/app_settings.py:63
msgid ""
"Number of rounds to use (only used by sha256crypt and sha512crypt). Must be "
"between 1000 and 999999999, inclusive."
@@ -61,250 +61,274 @@ msgstr ""
"重複幾輪產生 (只能用於 sha256crypt 和 sha512crypt). 必須介於 1000 到 "
"999999999, 包括."
-#: core/app_settings.py:63
+#: core/app_settings.py:69
#, fuzzy
#| msgid "Default password scheme"
msgid "Update password scheme at login"
msgstr "預設密碼方案"
-#: core/app_settings.py:66
+#: core/app_settings.py:72
msgid "Update user password at login to use the default password scheme"
msgstr ""
-#: core/app_settings.py:71
+#: core/app_settings.py:77
msgid "Default password"
msgstr "預設密碼"
-#: core/app_settings.py:74
+#: core/app_settings.py:80
msgid "Default password for automatically created accounts."
msgstr "預設密碼是給自動產生帳號用。"
-#: core/app_settings.py:78
+#: core/app_settings.py:84
msgid "Random password length"
msgstr "隨機密碼長度"
-#: core/app_settings.py:82
+#: core/app_settings.py:88
msgid "Length of randomly generated passwords."
msgstr "隨機產生密碼的長度。"
-#: core/app_settings.py:86
+#: core/app_settings.py:92
#, fuzzy
#| msgid "Default password scheme"
msgid "Update password service URL"
msgstr "預設密碼方案"
-#: core/app_settings.py:90
+#: core/app_settings.py:96
msgid ""
"The URL of an external page where users will be able to update their "
"password. It applies only to non local users, ie. those automatically "
"created after a successful external authentication (LDAP, SMTP)."
msgstr ""
-#: core/app_settings.py:98
+#: core/app_settings.py:104
+msgid "Password recovery announcement"
+msgstr ""
+
+#: core/app_settings.py:109
+msgid "A temporary message that will be displayed on the reset password page."
+msgstr ""
+
+#: core/app_settings.py:115
+msgid "Enable password recovery by SMS"
+msgstr ""
+
+#: core/app_settings.py:118
+msgid "Enable password recovery by SMS for users who filled a phone number."
+msgstr ""
+
+#: core/app_settings.py:124
+msgid "SMS provider"
+msgstr ""
+
+#: core/app_settings.py:127
+msgid "Choose a provider to send password recovery SMS"
+msgstr ""
+
+#: core/app_settings.py:133
msgid "LDAP settings"
msgstr "LDAP 設定"
-#: core/app_settings.py:101
+#: core/app_settings.py:136
msgid "Server address"
msgstr "伺服器地址"
-#: core/app_settings.py:104
+#: core/app_settings.py:139
msgid "The IP address or the DNS name of the LDAP server"
msgstr "LDAP 伺服器的 IP 或 DNS 名稱"
-#: core/app_settings.py:108
+#: core/app_settings.py:143
msgid "Server port"
msgstr "伺服器連接埠"
-#: core/app_settings.py:110
+#: core/app_settings.py:145
msgid "The TCP port number used by the LDAP server"
msgstr "LDAP 伺服器所使用的 TCP 連接埠"
-#: core/app_settings.py:114
+#: core/app_settings.py:149
msgid "Enable secondary server (fallback)"
msgstr ""
-#: core/app_settings.py:117
+#: core/app_settings.py:152
msgid ""
"Enable a secondary LDAP server which will be used if the primary one fails"
msgstr ""
-#: core/app_settings.py:123
+#: core/app_settings.py:158
#, fuzzy
#| msgid "Server address"
msgid "Secondary server address"
msgstr "伺服器地址"
-#: core/app_settings.py:126
+#: core/app_settings.py:161
#, fuzzy
#| msgid "The IP address or the DNS name of the LDAP server"
msgid "The IP address or the DNS name of the seondary LDAP server"
msgstr "LDAP 伺服器的 IP 或 DNS 名稱"
-#: core/app_settings.py:130
+#: core/app_settings.py:165
#, fuzzy
#| msgid "Server port"
msgid "Secondary server port"
msgstr "伺服器連接埠"
-#: core/app_settings.py:133
+#: core/app_settings.py:168
#, fuzzy
#| msgid "The TCP port number used by the LDAP server"
msgid "The TCP port number used by the LDAP secondary server"
msgstr "LDAP 伺服器所使用的 TCP 連接埠"
-#: core/app_settings.py:137
+#: core/app_settings.py:172
msgid "Use a secured connection"
msgstr "使用安全的連接"
-#: core/app_settings.py:141
+#: core/app_settings.py:176
msgid "Use an SSL/STARTTLS connection to access the LDAP server"
msgstr "使用 SSL/STARTTLS 連線到 LDAP 伺服器"
-#: core/app_settings.py:145
+#: core/app_settings.py:180
msgid "Active Directory"
msgstr "Active Directory"
-#: core/app_settings.py:148
+#: core/app_settings.py:183
msgid "Tell if the LDAP server is an Active Directory one"
msgstr "判斷 LDAP 伺服器是否是 Active Directory 伺服器"
-#: core/app_settings.py:152
+#: core/app_settings.py:187
msgid "Administrator groups"
msgstr "管理者群組"
-#: core/app_settings.py:155
+#: core/app_settings.py:190
msgid ""
"Members of those LDAP Posix groups will be created as domain administrators. "
"Use ';' characters to separate groups."
msgstr "這些 LDAP 群組的成員將會建立為網域管理者。使用 ';' 字元來分開群組"
-#: core/app_settings.py:162
+#: core/app_settings.py:197
msgid "Group type"
msgstr "群組類型"
-#: core/app_settings.py:166
+#: core/app_settings.py:201
msgid "The LDAP group type to use with your directory."
msgstr "此 LDAP 群組類型會使用您的目錄"
-#: core/app_settings.py:171
+#: core/app_settings.py:206
msgid "Groups search base"
msgstr "群組搜尋基準"
-#: core/app_settings.py:174
+#: core/app_settings.py:209
msgid "The distinguished name of the search base used to find groups"
msgstr "搜尋基準使用醒目的名稱來找到群組"
-#: core/app_settings.py:180
+#: core/app_settings.py:215
msgid "Password attribute"
msgstr "密碼屬性"
-#: core/app_settings.py:182
+#: core/app_settings.py:217
msgid "The attribute used to store user passwords"
msgstr "此屬性使用在儲存使用者密碼"
-#: core/app_settings.py:187
+#: core/app_settings.py:222
#, fuzzy
#| msgid "Authentication method"
msgid "LDAP authentication settings"
msgstr "身份驗證方法"
-#: core/app_settings.py:190
+#: core/app_settings.py:225
msgid "Authentication method"
msgstr "身份驗證方法"
-#: core/app_settings.py:191
+#: core/app_settings.py:226
msgid "Search and bind"
msgstr "搜尋和 bind"
-#: core/app_settings.py:192
+#: core/app_settings.py:227
msgid "Direct bind"
msgstr "直接 bind"
-#: core/app_settings.py:194
+#: core/app_settings.py:229
msgid "Choose the authentication method to use"
msgstr "選擇驗證模組來使用"
-#: core/app_settings.py:198 core/app_settings.py:252
+#: core/app_settings.py:233 core/app_settings.py:287
msgid "Bind DN"
msgstr "Bind DN"
-#: core/app_settings.py:201 core/app_settings.py:255
+#: core/app_settings.py:236 core/app_settings.py:290
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:208 core/app_settings.py:262
+#: core/app_settings.py:243 core/app_settings.py:297
msgid "Bind password"
msgstr "Bind 密碼"
-#: core/app_settings.py:211 core/app_settings.py:265
+#: core/app_settings.py:246 core/app_settings.py:300
msgid "The password to use when binding to the LDAP server (with 'Bind DN')"
msgstr "此密碼使用於當綁定到 LDAP 伺服器 (有 'Bind DN')"
-#: core/app_settings.py:219 core/app_settings.py:311
+#: core/app_settings.py:254 core/app_settings.py:346
msgid "Users search base"
msgstr "使用者搜尋基準"
-#: core/app_settings.py:222 core/app_settings.py:314
+#: core/app_settings.py:257 core/app_settings.py:349
msgid "The distinguished name of the search base used to find users"
msgstr "搜尋基準使用醒目的名稱來找到使用者"
-#: core/app_settings.py:228 core/app_settings.py:320
+#: core/app_settings.py:263 core/app_settings.py:355
msgid "Search filter"
msgstr "搜尋過濾器"
-#: core/app_settings.py:231 core/app_settings.py:323
+#: core/app_settings.py:266 core/app_settings.py:358
msgid ""
"An optional filter string (e.g. '(objectClass=person)'). In order to be "
"valid, it must be enclosed in parentheses."
msgstr ""
"過濾字串的選 (例如 '(objectClass=person)'). 要能正常使用,這必須括在括號內。"
-#: core/app_settings.py:238
+#: core/app_settings.py:273
msgid "User DN template"
msgstr "使用者 DN 範本"
-#: core/app_settings.py:241
+#: core/app_settings.py:276
#, 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:249
+#: core/app_settings.py:284
#, fuzzy
#| msgid "LDAP settings"
msgid "LDAP synchronization settings"
msgstr "LDAP 設定"
-#: core/app_settings.py:273
+#: core/app_settings.py:308
msgid "Enable export to LDAP"
msgstr ""
-#: core/app_settings.py:276
+#: core/app_settings.py:311
msgid ""
"Enable automatic synchronization between local database and LDAP directory"
msgstr ""
-#: core/app_settings.py:282
+#: core/app_settings.py:317
msgid "Delete remote LDAP account when local account is deleted"
msgstr ""
-#: core/app_settings.py:286
+#: core/app_settings.py:321
msgid ""
"Delete remote LDAP account when local account is deleted, otherwise it will "
"be disabled."
msgstr ""
-#: core/app_settings.py:292
+#: core/app_settings.py:327
#, fuzzy
#| msgid "User DN template"
msgid "Account DN template"
msgstr "使用者 DN 範本"
-#: core/app_settings.py:295
+#: core/app_settings.py:330
#, fuzzy, python-format
#| msgid ""
#| "The template used to construct a user's DN. It should contain one "
@@ -314,155 +338,174 @@ msgid ""
"placeholder (ie. %(user)s)"
msgstr "此範本已使用結構化使用者的 DN. 他應該包含一個佔位符 (例如 %(user)s)"
-#: core/app_settings.py:302
+#: core/app_settings.py:337
msgid "Enable import from LDAP"
msgstr ""
-#: core/app_settings.py:305
+#: core/app_settings.py:340
msgid "Enable account synchronization from LDAP directory to local database"
msgstr ""
-#: core/app_settings.py:330
+#: core/app_settings.py:365
#, fuzzy
#| msgid "Password attribute"
msgid "Username attribute"
msgstr "密碼屬性"
-#: core/app_settings.py:333
+#: core/app_settings.py:368
msgid "The name of the LDAP attribute where the username can be found."
msgstr ""
-#: core/app_settings.py:337 core/templates/core/dashboard.html:5
+#: core/app_settings.py:373
+#, fuzzy
+#| msgid "Enable communication"
+msgid "Enable Dovecot LDAP sync"
+msgstr "啟用通訊"
+
+#: core/app_settings.py:376
+msgid "LDAP authentication settings will be applied to Dovecot configuration."
+msgstr ""
+
+#: core/app_settings.py:382
+msgid "Dovecot LDAP config file"
+msgstr ""
+
+#: core/app_settings.py:386
+msgid ""
+"Location of the configuration file which contains Dovecot LDAP settings."
+msgstr ""
+
+#: core/app_settings.py:391 core/templates/core/dashboard.html:5
msgid "Dashboard"
msgstr "儀表板"
-#: core/app_settings.py:340
+#: core/app_settings.py:394
msgid "Custom RSS feed"
msgstr "自訂 RSS 來源"
-#: core/app_settings.py:343
+#: core/app_settings.py:397
msgid "Display custom RSS feed to resellers and domain administrators"
msgstr "顯示自訂的 RSS 來源給經銷商和網域管理者"
-#: core/app_settings.py:348
+#: core/app_settings.py:402
msgid "Hide features widget"
msgstr "隱藏功能物件"
-#: core/app_settings.py:351
+#: core/app_settings.py:405
msgid "Hide features widget for resellers and domain administrators"
msgstr "隱藏功能物件給經銷商和網域管理者"
-#: core/app_settings.py:355
+#: core/app_settings.py:409
msgid "Notifications"
msgstr "通知"
-#: core/app_settings.py:358
+#: core/app_settings.py:412
msgid "Sender address"
msgstr "伺服器位址"
-#: core/app_settings.py:361
+#: core/app_settings.py:415
msgid "Email address used to send notifications."
msgstr "郵件地址用於寄送通知。"
-#: core/app_settings.py:365
+#: core/app_settings.py:419
msgid "Public API"
msgstr "公用 API"
-#: core/app_settings.py:368
+#: core/app_settings.py:422
msgid "Enable communication"
msgstr "啟用通訊"
-#: core/app_settings.py:371
+#: core/app_settings.py:425
msgid "Enable communication with Modoboa public API"
msgstr "開啟 Modoboa 公用 API 的通訊"
-#: core/app_settings.py:375
+#: core/app_settings.py:429
msgid "Check new versions"
msgstr "檢查新的版本"
-#: core/app_settings.py:378
+#: core/app_settings.py:432
msgid "Automatically checks if a newer version is available"
msgstr "假如有新的版本就自動檢查"
-#: core/app_settings.py:382
+#: core/app_settings.py:436
msgid "Send an email when new versions are found"
msgstr ""
-#: core/app_settings.py:385
+#: core/app_settings.py:439
msgid "Send an email to notify admins about new versions"
msgstr ""
-#: core/app_settings.py:389
+#: core/app_settings.py:443
msgid "Recipient"
msgstr ""
-#: core/app_settings.py:392
+#: core/app_settings.py:446
msgid "Recipient of new versions notification emails."
msgstr ""
-#: core/app_settings.py:397
+#: core/app_settings.py:451
msgid "Send statistics"
msgstr "寄送狀態"
-#: core/app_settings.py:400
+#: core/app_settings.py:454
msgid "Send statistics to Modoboa public API (counters and used extensions)"
msgstr "寄送狀態到 Modoboa 公用 API (計數器及已使用的外掛)"
-#: core/app_settings.py:404
+#: core/app_settings.py:458
msgid "Miscellaneous"
msgstr "雜項"
-#: core/app_settings.py:407
+#: core/app_settings.py:461
msgid "Inactive account threshold"
msgstr "未啟用帳號上限"
-#: core/app_settings.py:410
+#: core/app_settings.py:464
msgid ""
"An account with a last login date greater than this threshold (in days) will "
"be considered as inactive"
msgstr "這個帳號最後一次登錄日期超過這個上限 (在幾天) 將考慮停用"
-#: core/app_settings.py:416
+#: core/app_settings.py:470
msgid "Top notifications check interval"
msgstr "檢查提醒間隔"
-#: core/app_settings.py:419
+#: core/app_settings.py:473
msgid "Interval between two top notification checks (in seconds)"
msgstr "兩次檢查提醒間隔 (在幾秒)"
-#: core/app_settings.py:424
+#: core/app_settings.py:478
msgid "Maximum log record age"
msgstr "最大日誌紀錄時間"
-#: core/app_settings.py:426
+#: core/app_settings.py:480
msgid "The maximum age in days of a log record"
msgstr ""
-#: core/app_settings.py:430
+#: core/app_settings.py:484
msgid "Items per page"
msgstr "每頁的條目數量"
-#: core/app_settings.py:432
+#: core/app_settings.py:486
msgid "Number of displayed items per page"
msgstr ""
-#: core/app_settings.py:436
+#: core/app_settings.py:490
msgid "Default top redirection"
msgstr ""
-#: core/app_settings.py:440
+#: core/app_settings.py:494
msgid "The default redirection used when no application is specified"
msgstr ""
-#: core/app_settings.py:478 core/app_settings.py:486
+#: core/app_settings.py:548 core/app_settings.py:556 core/app_settings.py:564
msgid "Invalid syntax"
msgstr ""
-#: core/app_settings.py:492
+#: core/app_settings.py:570
msgid "Invalid rounds number"
msgstr ""
-#: core/app_settings.py:519
+#: core/app_settings.py:595 core/app_settings.py:597 core/app_settings.py:608
msgid "This field is required"
msgstr ""
@@ -481,58 +524,78 @@ msgstr ""
msgid "Set `USE_TZ = True` in settings.py"
msgstr ""
-#: core/constants.py:5
+#: core/constants.py:6
msgid "Simple user"
msgstr "簡易用戶"
-#: core/constants.py:6
+#: core/constants.py:7
msgid "Domain administrator"
msgstr "網域管理員"
-#: core/constants.py:7
+#: core/constants.py:8
msgid "Reseller"
msgstr "經銷商"
-#: core/constants.py:8
+#: core/constants.py:9
msgid "Super administrator"
msgstr "超級管理員"
-#: core/constants.py:51 lib/form_utils.py:389
+#: core/constants.py:52 lib/form_utils.py:389
msgid "No"
msgstr "否"
-#: core/forms.py:18
+#: core/constants.py:102
+msgid "Choose a provider"
+msgstr ""
+
+#: core/constants.py:107
+msgid "Dummy"
+msgstr ""
+
+#: core/forms.py:21
msgid "Username"
msgstr "使用者名稱"
-#: core/forms.py:22
+#: core/forms.py:25
msgid "Password"
msgstr "密碼"
-#: core/forms.py:35
+#: core/forms.py:38
msgid "Old password"
msgstr "舊密碼"
-#: core/forms.py:39
+#: core/forms.py:42
msgid "New password"
msgstr "新密碼"
-#: core/forms.py:43
+#: core/forms.py:46
msgid "Confirmation"
msgstr "確認"
-#: core/forms.py:71
+#: core/forms.py:74
msgid "Old password mismatchs"
msgstr "舊密碼不相符"
-#: core/forms.py:80
+#: core/forms.py:83
msgid "Passwords mismatch"
msgstr "密碼不相符"
-#: core/forms.py:100
+#: core/forms.py:103
msgid "Enable API access"
msgstr "啟用 API 存取"
+#: core/forms.py:137
+#, fuzzy
+#| msgid "Notifications"
+msgid "Verification code"
+msgstr "通知"
+
+#: core/forms.py:148
+#, fuzzy
+#| msgid "Invalid line"
+msgid "Invalid code"
+msgstr "無效的線"
+
#: core/handlers.py:36
msgid "added"
msgstr "已增加"
@@ -577,64 +640,64 @@ msgstr "一個或多個可用的更新"
msgid "[modoboa] Update(s) available"
msgstr "一個或多個可用的更新"
-#: core/models.py:53
+#: core/models.py:55
msgid "Allow mailboxes access"
msgstr "允許信箱存取"
-#: core/models.py:55
+#: core/models.py:57
msgid "Allow this administrator to access user mailboxes"
msgstr "允許這個管理者來存取使用者信箱"
-#: core/models.py:58
+#: core/models.py:60
msgid "password"
msgstr "密碼"
-#: core/models.py:61
+#: core/models.py:63
msgid "language"
msgstr "語言"
-#: core/models.py:64
+#: core/models.py:66
msgid "Prefered language to display pages."
msgstr "顯示頁面的預設語言"
-#: core/models.py:68
+#: core/models.py:70
msgid "Phone number"
msgstr "電話號碼"
-#: core/models.py:70
+#: core/models.py:72
msgid "Secondary email"
msgstr "次要電子郵件"
-#: core/models.py:73
+#: core/models.py:75
msgid "An alternative e-mail address, can be used for recovery needs."
msgstr "替代的電子郵件,可以使用在需要回復的時候。"
-#: core/models.py:124
+#: core/models.py:126
msgid "Failed to update password: LDAP module not installed"
msgstr "更新密碼失敗: LDAP 模組未安裝"
-#: core/models.py:153
+#: core/models.py:155
msgid "account"
msgstr "帳號"
-#: core/models.py:280
+#: core/models.py:282
msgid "Unknown"
msgstr "未知"
-#: core/models.py:314
+#: core/models.py:316
msgid "Invalid line"
msgstr "無效的線"
-#: core/models.py:322
+#: core/models.py:324
msgid "You can't import an account with a role greater than yours"
msgstr ""
-#: core/models.py:337
+#: core/models.py:339
#, python-format
msgid "The simple user '%s' must have a valid email address"
msgstr ""
-#: core/models.py:342
+#: core/models.py:344
#, python-format
msgid "username and email fields must not differ for '%s'"
msgstr ""
@@ -663,6 +726,50 @@ msgstr[0] ""
msgid "Your password must contain a combination of different character types."
msgstr ""
+#: core/sms_backends/ovh.py:19
+msgid "API endpoint"
+msgstr ""
+
+#: core/sms_backends/ovh.py:22
+msgid "OVH Europe"
+msgstr ""
+
+#: core/sms_backends/ovh.py:23
+msgid "OVH US"
+msgstr ""
+
+#: core/sms_backends/ovh.py:24
+msgid "OVH North-America"
+msgstr ""
+
+#: core/sms_backends/ovh.py:25
+msgid "So you Start Europe"
+msgstr ""
+
+#: core/sms_backends/ovh.py:26
+msgid "So you Start North America"
+msgstr ""
+
+#: core/sms_backends/ovh.py:27
+msgid "Kimsufi Europe"
+msgstr ""
+
+#: core/sms_backends/ovh.py:28
+msgid "Kimsufi North America"
+msgstr ""
+
+#: core/sms_backends/ovh.py:35
+msgid "Application key"
+msgstr ""
+
+#: core/sms_backends/ovh.py:42
+msgid "Application secret"
+msgstr ""
+
+#: core/sms_backends/ovh.py:50
+msgid "Consumer key"
+msgstr ""
+
#: core/templates/core/_current_features.html:6
msgid "Features looking for sponsoring"
msgstr ""
@@ -870,29 +977,33 @@ msgstr "Modoboa 的核心部分"
msgid "Parameters saved"
msgstr "參數已儲存"
-#: core/views/auth.py:46
+#: core/views/auth.py:59
#, python-format
msgid "Password scheme mismatch. Updating %s password"
msgstr ""
-#: core/views/auth.py:53
+#: core/views/auth.py:66
#, python-format
msgid "Password hash parameter missmatch. Updating %s password"
msgstr ""
-#: core/views/auth.py:69
+#: core/views/auth.py:82
#, python-format
msgid "User '%s' successfully logged in"
msgstr ""
-#: core/views/auth.py:77
+#: core/views/auth.py:90
msgid "Your username and password didn't match. Please try again."
msgstr ""
-#: core/views/auth.py:112
+#: core/views/auth.py:125
msgid "User '{}' successfully logged out"
msgstr ""
+#: core/views/auth.py:170 core/views/auth.py:225
+msgid "Please use the following code to recover your Modoboa password: {}"
+msgstr ""
+
#: core/views/user.py:53
msgid "Profile updated"
msgstr "個人設定已更新"
@@ -932,7 +1043,8 @@ msgid "Enter a valid email address."
msgstr "輸入有效的電子郵件"
#: lib/form_utils.py:77 templates/registration/password_reset_confirm.html:12
-#: templates/registration/password_reset_form.html:11
+#: templates/registration/password_reset_confirm_code.html:25
+#: templates/registration/password_reset_form.html:29
msgid "Submit"
msgstr "執行"
@@ -1019,7 +1131,7 @@ msgid "Log in"
msgstr "登入"
#: templates/registration/login.html:24
-#: templates/registration/password_reset_form.html:6
+#: templates/registration/password_reset_form.html:17
msgid "Forgot password?"
msgstr "忘記密碼?"
@@ -1040,6 +1152,14 @@ msgid ""
"used. Please request a new password reset."
msgstr ""
+#: templates/registration/password_reset_confirm_code.html:20
+msgid "Enter the code you've just received by SMS"
+msgstr ""
+
+#: templates/registration/password_reset_confirm_code.html:27
+msgid "Resend code"
+msgstr ""
+
#: templates/registration/password_reset_done.html:7
msgid ""
"We've emailed you instructions for setting your password, if an account "
@@ -1065,15 +1185,14 @@ msgstr ""
msgid "Sincerely, The Modoboa Team."
msgstr ""
+#: templates/registration/password_reset_form.html:24
+msgid "Please fill-in your primary email address"
+msgstr ""
+
#: templates/registration/password_reset_subject.txt:3
msgid "Modoboa password reset"
msgstr "Modoboa 密碼重設"
-#, fuzzy
-#~| msgid "Enable communication"
-#~ msgid "Enable LDAP synchronization"
-#~ msgstr "啟用通訊"
-
#~ msgid "md5crypt (weak)"
#~ msgstr "md5crypt (弱)"
diff --git a/modoboa/locale/zh_TW/LC_MESSAGES/djangojs.po b/modoboa/locale/zh_TW/LC_MESSAGES/djangojs.po
index b74fe4ea5..f7d90db7b 100644
--- a/modoboa/locale/zh_TW/LC_MESSAGES/djangojs.po
+++ b/modoboa/locale/zh_TW/LC_MESSAGES/djangojs.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
# Radium , 2017
@@ -10,14 +10,13 @@ msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-03-09 16:48+0100\n"
-"PO-Revision-Date: 2018-06-28 02:39+0000\n"
-"Last-Translator: akong \n"
-"Language-Team: Chinese (Taiwan) (http://www.transifex.com/tonio/modoboa/"
-"language/zh_TW/)\n"
-"Language: zh_TW\n"
+"PO-Revision-Date: 2020-03-09 15:49+0000\n"
+"Last-Translator: Antoine Nguyen \n"
+"Language-Team: Chinese (Taiwan) (http://www.transifex.com/tonio/modoboa/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"
#: bower_components/jquery-ui/jquery-ui.min.js:8
diff --git a/modoboa/relaydomains/locale/br/LC_MESSAGES/django.po b/modoboa/relaydomains/locale/br/LC_MESSAGES/django.po
index 357cc65ef..3e4d14115 100644
--- a/modoboa/relaydomains/locale/br/LC_MESSAGES/django.po
+++ b/modoboa/relaydomains/locale/br/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-03-09 16:48+0100\n"
+"POT-Creation-Date: 2020-05-06 13:15+0200\n"
"PO-Revision-Date: 2019-03-08 18:05+0000\n"
"Last-Translator: Irriep Nala Novram \n"
"Language-Team: Breton (http://www.transifex.com/tonio/modoboa/language/br/)\n"
diff --git a/modoboa/relaydomains/locale/cs_CZ/LC_MESSAGES/django.po b/modoboa/relaydomains/locale/cs_CZ/LC_MESSAGES/django.po
index d025d0736..5133c5ded 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: 2020-03-09 16:48+0100\n"
+"POT-Creation-Date: 2020-05-06 13:15+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/"
diff --git a/modoboa/relaydomains/locale/de/LC_MESSAGES/django.po b/modoboa/relaydomains/locale/de/LC_MESSAGES/django.po
index cc9410d7b..afacbd020 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: 2020-03-09 16:48+0100\n"
+"POT-Creation-Date: 2020-05-06 13:15+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/"
diff --git a/modoboa/relaydomains/locale/el_GR/LC_MESSAGES/django.po b/modoboa/relaydomains/locale/el_GR/LC_MESSAGES/django.po
index 118ba01ce..053f83112 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: 2020-03-09 16:48+0100\n"
+"POT-Creation-Date: 2020-05-06 13:15+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/"
diff --git a/modoboa/relaydomains/locale/en/LC_MESSAGES/django.po b/modoboa/relaydomains/locale/en/LC_MESSAGES/django.po
index 82f8736e6..3d6e79515 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: 2020-03-09 16:48+0100\n"
+"POT-Creation-Date: 2020-05-06 13:15+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
diff --git a/modoboa/relaydomains/locale/es/LC_MESSAGES/django.po b/modoboa/relaydomains/locale/es/LC_MESSAGES/django.po
index 88f3edfc9..cdd67e388 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: 2020-03-09 16:48+0100\n"
+"POT-Creation-Date: 2020-05-06 13:15+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/"
diff --git a/modoboa/relaydomains/locale/es/LC_MESSAGES/djangojs.po b/modoboa/relaydomains/locale/es/LC_MESSAGES/djangojs.po
index 69da74907..921369cb7 100644
--- a/modoboa/relaydomains/locale/es/LC_MESSAGES/djangojs.po
+++ b/modoboa/relaydomains/locale/es/LC_MESSAGES/djangojs.po
@@ -1,25 +1,23 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
-#
+#
# Translators:
-# Pedro Gracia , 2011,2013
-# Pedro Gracia , 2010, 2011
+# Pedro Gracia , 2016
msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-11-04 22:08+0100\n"
-"PO-Revision-Date: 2013-06-03 16:32+0000\n"
+"PO-Revision-Date: 2017-09-22 09:57+0000\n"
"Last-Translator: Pedro Gracia \n"
-"Language-Team: Spanish (http://www.transifex.com/projects/p/modoboa/language/"
-"es/)\n"
-"Language: es\n"
+"Language-Team: Spanish (http://www.transifex.com/tonio/modoboa/language/es/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Language: es\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: relaydomains/static/relaydomains/js/relay_domains.js:45
msgid "Services updated"
-msgstr ""
+msgstr "Servicios actualizados"
diff --git a/modoboa/relaydomains/locale/fr/LC_MESSAGES/django.po b/modoboa/relaydomains/locale/fr/LC_MESSAGES/django.po
index 1ab21d2c0..ebcd833a7 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: 2020-03-09 16:48+0100\n"
+"POT-Creation-Date: 2020-05-06 13:15+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"
diff --git a/modoboa/relaydomains/locale/it/LC_MESSAGES/django.po b/modoboa/relaydomains/locale/it/LC_MESSAGES/django.po
index e7f881819..0d5753fc6 100644
--- a/modoboa/relaydomains/locale/it/LC_MESSAGES/django.po
+++ b/modoboa/relaydomains/locale/it/LC_MESSAGES/django.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-03-09 16:48+0100\n"
+"POT-Creation-Date: 2020-05-06 13:15+0200\n"
"PO-Revision-Date: 2018-11-02 14:37+0000\n"
"Last-Translator: marcotrevisan