Updated translation files

This commit is contained in:
Antoine Nguyen
2025-07-27 10:51:18 +02:00
parent b2e6ba074e
commit 6d7f475bf9
51 changed files with 9786 additions and 5987 deletions
+3 -3
View File
@@ -640,7 +640,7 @@ msgstr ""
msgid "Copy token to clipboard"
msgstr ""
#: src/components/tools/ParametersForm.vue:183
#: src/components/tools/ParametersForm.vue:194
msgid "Could not save parameters"
msgstr ""
@@ -1965,7 +1965,7 @@ msgstr "Dibarzhioù"
msgid "or suggest a new language"
msgstr ""
#: src/components/tools/ParametersForm.vue:178
#: src/components/tools/ParametersForm.vue:189
#, fuzzy
msgid "Parameters updated"
msgstr "Profil hizivaet"
@@ -2707,7 +2707,7 @@ msgstr "Postel"
msgid "Week"
msgstr ""
#: src/views/DashboardView.vue:3
#: src/views/DashboardView.vue:27
msgid "Welcome to Modoboa"
msgstr "Degemer mat e-barzh Modoboa"
+3 -3
View File
@@ -613,7 +613,7 @@ msgstr ""
msgid "Copy token to clipboard"
msgstr ""
#: src/components/tools/ParametersForm.vue:183
#: src/components/tools/ParametersForm.vue:194
msgid "Could not save parameters"
msgstr ""
@@ -1856,7 +1856,7 @@ msgstr ""
msgid "or suggest a new language"
msgstr ""
#: src/components/tools/ParametersForm.vue:178
#: src/components/tools/ParametersForm.vue:189
msgid "Parameters updated"
msgstr ""
@@ -2553,7 +2553,7 @@ msgstr ""
msgid "Week"
msgstr ""
#: src/views/DashboardView.vue:3
#: src/views/DashboardView.vue:27
msgid "Welcome to Modoboa"
msgstr ""
+3 -3
View File
@@ -642,7 +642,7 @@ msgstr ""
msgid "Copy token to clipboard"
msgstr ""
#: src/components/tools/ParametersForm.vue:183
#: src/components/tools/ParametersForm.vue:194
msgid "Could not save parameters"
msgstr ""
@@ -1965,7 +1965,7 @@ msgstr "Optionen"
msgid "or suggest a new language"
msgstr ""
#: src/components/tools/ParametersForm.vue:178
#: src/components/tools/ParametersForm.vue:189
#, fuzzy
msgid "Parameters updated"
msgstr "Profil aktualisiert"
@@ -2710,7 +2710,7 @@ msgstr ""
msgid "Week"
msgstr "Woche"
#: src/views/DashboardView.vue:3
#: src/views/DashboardView.vue:27
msgid "Welcome to Modoboa"
msgstr "Willkommen zu Modoboa"
+3 -3
View File
@@ -612,7 +612,7 @@ msgstr ""
msgid "Copy token to clipboard"
msgstr ""
#: src/components/tools/ParametersForm.vue:183
#: src/components/tools/ParametersForm.vue:194
msgid "Could not save parameters"
msgstr ""
@@ -1855,7 +1855,7 @@ msgstr ""
msgid "or suggest a new language"
msgstr ""
#: src/components/tools/ParametersForm.vue:178
#: src/components/tools/ParametersForm.vue:189
msgid "Parameters updated"
msgstr ""
@@ -2552,7 +2552,7 @@ msgstr ""
msgid "Week"
msgstr ""
#: src/views/DashboardView.vue:3
#: src/views/DashboardView.vue:27
msgid "Welcome to Modoboa"
msgstr ""
+3 -3
View File
@@ -604,7 +604,7 @@ msgstr ""
msgid "Copy token to clipboard"
msgstr ""
#: src/components/tools/ParametersForm.vue:183
#: src/components/tools/ParametersForm.vue:194
msgid "Could not save parameters"
msgstr ""
@@ -1847,7 +1847,7 @@ msgstr ""
msgid "or suggest a new language"
msgstr ""
#: src/components/tools/ParametersForm.vue:178
#: src/components/tools/ParametersForm.vue:189
msgid "Parameters updated"
msgstr ""
@@ -2544,7 +2544,7 @@ msgstr ""
msgid "Week"
msgstr ""
#: src/views/DashboardView.vue:3
#: src/views/DashboardView.vue:27
msgid "Welcome to Modoboa"
msgstr ""
+3 -3
View File
@@ -639,7 +639,7 @@ msgstr ""
msgid "Copy token to clipboard"
msgstr ""
#: src/components/tools/ParametersForm.vue:183
#: src/components/tools/ParametersForm.vue:194
msgid "Could not save parameters"
msgstr ""
@@ -1960,7 +1960,7 @@ msgstr "Opciones"
msgid "or suggest a new language"
msgstr ""
#: src/components/tools/ParametersForm.vue:178
#: src/components/tools/ParametersForm.vue:189
#, fuzzy
msgid "Parameters updated"
msgstr "Perfil actualizado"
@@ -2699,7 +2699,7 @@ msgstr "Correo-e"
msgid "Week"
msgstr "Semana"
#: src/views/DashboardView.vue:3
#: src/views/DashboardView.vue:27
msgid "Welcome to Modoboa"
msgstr "Bienvenido a Modoboa"
+3 -3
View File
@@ -661,7 +661,7 @@ msgstr "Kopioi leikepöydälle"
msgid "Copy token to clipboard"
msgstr "Kopioi turvatunnus leikepöydälle"
#: src/components/tools/ParametersForm.vue:183
#: src/components/tools/ParametersForm.vue:194
msgid "Could not save parameters"
msgstr ""
@@ -2005,7 +2005,7 @@ msgstr "Vaihtoehdot"
msgid "or suggest a new language"
msgstr ""
#: src/components/tools/ParametersForm.vue:178
#: src/components/tools/ParametersForm.vue:189
msgid "Parameters updated"
msgstr "Parametrit päivitetty"
@@ -2756,7 +2756,7 @@ msgstr "Sähköposti"
msgid "Week"
msgstr "Viikko"
#: src/views/DashboardView.vue:3
#: src/views/DashboardView.vue:27
msgid "Welcome to Modoboa"
msgstr "Tervetuloa Modoboaan"
+45 -45
View File
@@ -1,19 +1,20 @@
#
#
# Translators:
# Adrien spitfireap, 2024
# Antoine Nguyen <tonio@ngyn.org>, 2025
#
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"PO-Revision-Date: 2024-08-01 12:26+0000\n"
"Last-Translator: Antoine Nguyen <tonio@ngyn.org>, 2025\n"
"Language-Team: French (https://app.transifex.com/tonio/teams/13749/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=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % "
"1000000 == 0 ? 1 : 2;\n"
#: src/components/admin/imap_migration/ProviderCreationForm.vue:41
msgid "(the domain will be created locally)"
@@ -42,8 +43,8 @@ msgid ""
"A user with all privileges, can do anything. By default, such a user does "
"not have a mailbox so he can't access end-user features."
msgstr ""
"Un utilisateur ayant tous les privilège, peut tout faire. Par défaut, il n'a"
" pas de boîte mail et ne peut donc pas accéder aux fonctionnalités d'un "
"Un utilisateur ayant tous les privilège, peut tout faire. Par défaut, il n'a "
"pas de boîte mail et ne peut donc pas accéder aux fonctionnalités d'un "
"utilisateur final."
#: src/components/admin/identities/form_steps/AccountRoleForm.vue:83
@@ -51,8 +52,8 @@ msgid ""
"A user with no privileges but with a mailbox. He will be allowed to use all "
"end-user features: webmail, calendar, contacts, filters."
msgstr ""
"Un utilisateur sans privilèges mais ayant une boîte mail. Il sera autorisé à"
" utiliser toutes les fonctionnalités de l'utilisateur final : webmail, "
"Un utilisateur sans privilèges mais ayant une boîte mail. Il sera autorisé à "
"utiliser toutes les fonctionnalités de l'utilisateur final : webmail, "
"calendrier, contacts, filtres."
#: src/components/admin/identities/form_steps/AccountRoleForm.vue:93
@@ -273,11 +274,11 @@ msgstr "Alias supprimé"
#: src/components/admin/identities/form_steps/AccountAliasForm.vue:8
#: src/components/admin/identities/form_steps/AliasRecipientForm.vue:8
msgid ""
"Alias(es) of this mailbox. To create a catchall alias, just enter the domain"
" name (@domain.tld)."
"Alias(es) of this mailbox. To create a catchall alias, just enter the domain "
"name (@domain.tld)."
msgstr ""
"Alias(s) de cette boîte aux lettres. Pour créer un alias fourre-tout, entrer"
" uniquement le nom du domaine (@domain.tld)."
"Alias(s) de cette boîte aux lettres. Pour créer un alias fourre-tout, entrer "
"uniquement le nom du domaine (@domain.tld)."
#: src/components/admin/domains/DomainList.vue:209
#: src/components/admin/domains/DomainSummary.vue:40
@@ -306,8 +307,8 @@ msgid ""
"administrator, plus the possibility to create domains and to assign "
"resources."
msgstr ""
"Un utilisateur intermédiaire qui a les mêmes privilèges qu'un administrateur"
" de domaine, et la possibilité de créer des domaines et d'affecter des "
"Un utilisateur intermédiaire qui a les mêmes privilèges qu'un administrateur "
"de domaine, et la possibilité de créer des domaines et d'affecter des "
"ressources."
#: src/components/account/FilterForm.vue:17
@@ -498,8 +499,8 @@ msgstr "Consulter la liste suivante pour trouver des composants associés"
#: src/views/admin/identities/IdentitiesView.vue:95
msgid "Check this option if passwords contained in your file are not crypted"
msgstr ""
"Cochez cette option si les mots de passe contenus dans votre fichier ne sont"
" pas chiffrés"
"Cochez cette option si les mots de passe contenus dans votre fichier ne sont "
"pas chiffrés"
#: src/components/admin/domains/DomainAliasForm.vue:15
msgid "Choose a domain"
@@ -633,7 +634,7 @@ msgstr "Copier dans le presse-papiers"
msgid "Copy token to clipboard"
msgstr "Copier le jeton dans la presse-papiers"
#: src/components/tools/ParametersForm.vue:183
#: src/components/tools/ParametersForm.vue:194
msgid "Could not save parameters"
msgstr "Impossible de sauvegarder les paramètres"
@@ -830,8 +831,8 @@ msgid ""
"DKIM key does not seem to be generated yet or has failed. Do you want to "
"requeue the job?"
msgstr ""
"La génération de la clé DKIM ne semble pas avoir eu lieu ou a échoué. Voulez"
" vous replanifier cette action ?"
"La génération de la clé DKIM ne semble pas avoir eu lieu ou a échoué. Voulez "
"vous replanifier cette action ?"
#: src/components/admin/domains/DomainCreationForm.vue:209
#: src/components/admin/domains/form_steps/DomainDNSForm.vue:22
@@ -844,8 +845,7 @@ msgid "DKIM key selector"
msgstr "Sélecteur de clé DKIM"
#: src/components/admin/domains/DNSDetail.vue:238
msgid ""
"DKIM keys already exist for this domain. Do you want to overwrite them?"
msgid "DKIM keys already exist for this domain. Do you want to overwrite them?"
msgstr "Des clés DKIM existent déjà pour ce domaine. Voulez-vous les écraser?"
#: src/components/admin/domains/DomainDKIMKey.vue:5
@@ -1339,8 +1339,8 @@ msgid ""
"If you configured it recently, please wait for the first report to be "
"received and processed."
msgstr ""
"Si vous l'avez récemment configuré, veuillez attendre que le premier rapport"
" soit reçu et traité. "
"Si vous l'avez récemment configuré, veuillez attendre que le premier rapport "
"soit reçu et traité. "
#: src/layouts/admin/AdminLayout.vue:83
msgid "IMAP Migration"
@@ -1402,11 +1402,12 @@ msgstr "Information"
#: src/components/account/TotpAuthForm.vue:34
msgid ""
"Install a soft token authenticator like FreeOTP or Google Authenticator from"
" your application repository and use that app to scan this QR code."
"Install a soft token authenticator like FreeOTP or Google Authenticator from "
"your application repository and use that app to scan this QR code."
msgstr ""
"Installez un logiciel d'authentification de jeton comme FreeOTP ou google\n"
" Authentification depuis votre magasin d'applications et utilisez\n"
" Authentification depuis votre magasin d'applications et "
"utilisez\n"
" cette application pour scanner ce QR code."
#: src/views/admin/InformationView.vue:92
@@ -1424,8 +1425,7 @@ msgstr "Numéro de port incorrect"
#: src/components/admin/imap_migration/form_steps/ProviderGeneralForm.vue:27
msgid "Is the IMAP connection secured using SSL/TLS or StartTLS"
msgstr ""
"La connexion IMAP est-elle sécurisée via l'utilisation de SSL/TLS ou "
"StartTLS"
"La connexion IMAP est-elle sécurisée via l'utilisation de SSL/TLS ou StartTLS"
#: src/components/account/ForwardForm.vue:16
msgid "Keep local copies"
@@ -1547,8 +1547,8 @@ msgstr "Boîtes aux lettres"
msgid ""
"Make sure <strong>Update password scheme at login</strong> option is enabled"
msgstr ""
"Assurez vous que l'option <strong>Mettre à jour la méthode de chiffrement du"
" mot de passe à la connexion</strong> est activée"
"Assurez vous que l'option <strong>Mettre à jour la méthode de chiffrement du "
"mot de passe à la connexion</strong> est activée"
#: src/components/webmail/EmailList.vue:72
msgid "Mark as followed"
@@ -1906,7 +1906,7 @@ msgstr "Options"
msgid "or suggest a new language"
msgstr "ou suggérer une nouvelle langue"
#: src/components/tools/ParametersForm.vue:178
#: src/components/tools/ParametersForm.vue:189
msgid "Parameters updated"
msgstr "Paramètres mis à jour"
@@ -1983,9 +1983,9 @@ msgid ""
"Please note that you will see this message until <strong>ALL</strong> user "
"passwords have been converted using the new scheme."
msgstr ""
"Veuillez noter que vous verrez ce message jusqu'à ce que "
"<strong>TOUS</strong> les mots de passe de vos utilisateurs aient été "
"convertis en utilisant la nouvelle méthode."
"Veuillez noter que vous verrez ce message jusqu'à ce que <strong>TOUS</"
"strong> les mots de passe de vos utilisateurs aient été convertis en "
"utilisant la nouvelle méthode."
#: src/components/admin/imap_migration/ProviderCreationForm.vue:55
#: src/components/admin/imap_migration/ProvidersList.vue:98
@@ -2063,9 +2063,9 @@ msgstr "Quota"
#: src/components/admin/identities/form_steps/AccountMailboxForm.vue:15
msgid ""
"Quota for this mailbox, can be expressed in KB, MB (default) or GB. Define a"
" custom value or use domain's default one. Leave empty to define an "
"unlimited value (not allowed for domain administrators)."
"Quota for this mailbox, can be expressed in KB, MB (default) or GB. Define a "
"custom value or use domain's default one. Leave empty to define an unlimited "
"value (not allowed for domain administrators)."
msgstr ""
"Quota pour cette boite. Peut être exprimé en Ko, Mo (défaut) ou Go. Définir "
"une valeur spécifique ou utiliser la valeur par défaut du domaine. Laisser "
@@ -2409,8 +2409,8 @@ msgid ""
"The first element of each line is mandatory and must be equal to one of the "
"previous values."
msgstr ""
"Le premier élément de chaque ligne est obligatoire et doit être égal à l'une"
" des valeurs précédentes."
"Le premier élément de chaque ligne est obligatoire et doit être égal à l'une "
"des valeurs précédentes."
#: src/components/account/RecoveryCodesResetDialog.vue:9
#: src/components/account/TotpAuthForm.vue:61
@@ -2428,9 +2428,9 @@ msgstr ""
#: src/views/admin/InformationView.vue:22
msgid ""
"The password scheme you are using has been deprecated and will be removed in"
" the next minor version. The procedure to upgrade to a stronger scheme is as"
" follows:"
"The password scheme you are using has been deprecated and will be removed in "
"the next minor version. The procedure to upgrade to a stronger scheme is as "
"follows:"
msgstr ""
"La méthode de chiffrement de mot de passe que vous utilisez a été rendue "
"obsolète et sera retirée dans la prochaine version mineure. La procédure de "
@@ -2454,8 +2454,8 @@ msgstr "A"
#: src/components/contacts/AddressBookInfo.vue:9
msgid ""
"To access this address book from the outside (such as Mozilla Thunderbird or"
" your smartphone), use the following URL:"
"To access this address book from the outside (such as Mozilla Thunderbird or "
"your smartphone), use the following URL:"
msgstr ""
"Pour accéder à ce carnet d'adresse depuis l'extérieur (comme Mozilla "
"Thunderbird ou votre smartphone), utilisez l'URL suivante :"
@@ -2636,7 +2636,7 @@ msgstr "Webmail"
msgid "Week"
msgstr "Semaine"
#: src/views/DashboardView.vue:3
#: src/views/DashboardView.vue:27
msgid "Welcome to Modoboa"
msgstr "Bienvenue dans Modoboa"
+3 -3
View File
@@ -640,7 +640,7 @@ msgstr ""
msgid "Copy token to clipboard"
msgstr ""
#: src/components/tools/ParametersForm.vue:183
#: src/components/tools/ParametersForm.vue:194
msgid "Could not save parameters"
msgstr ""
@@ -1966,7 +1966,7 @@ msgstr "Opzioni"
msgid "or suggest a new language"
msgstr ""
#: src/components/tools/ParametersForm.vue:178
#: src/components/tools/ParametersForm.vue:189
#, fuzzy
msgid "Parameters updated"
msgstr "Profilo aggiornato"
@@ -2707,7 +2707,7 @@ msgstr "Email"
msgid "Week"
msgstr "Settimana"
#: src/views/DashboardView.vue:3
#: src/views/DashboardView.vue:27
msgid "Welcome to Modoboa"
msgstr "Benvenuti in Modoboa"
+3 -3
View File
@@ -611,7 +611,7 @@ msgstr ""
msgid "Copy token to clipboard"
msgstr ""
#: src/components/tools/ParametersForm.vue:183
#: src/components/tools/ParametersForm.vue:194
msgid "Could not save parameters"
msgstr ""
@@ -1854,7 +1854,7 @@ msgstr ""
msgid "or suggest a new language"
msgstr ""
#: src/components/tools/ParametersForm.vue:178
#: src/components/tools/ParametersForm.vue:189
msgid "Parameters updated"
msgstr ""
@@ -2551,7 +2551,7 @@ msgstr ""
msgid "Week"
msgstr ""
#: src/views/DashboardView.vue:3
#: src/views/DashboardView.vue:27
msgid "Welcome to Modoboa"
msgstr ""
+3 -3
View File
@@ -585,7 +585,7 @@ msgstr ""
msgid "Copy token to clipboard"
msgstr ""
#: src/components/tools/ParametersForm.vue:183
#: src/components/tools/ParametersForm.vue:194
msgid "Could not save parameters"
msgstr ""
@@ -1813,7 +1813,7 @@ msgstr ""
msgid "or suggest a new language"
msgstr ""
#: src/components/tools/ParametersForm.vue:178
#: src/components/tools/ParametersForm.vue:189
msgid "Parameters updated"
msgstr ""
@@ -2483,7 +2483,7 @@ msgstr ""
msgid "Week"
msgstr ""
#: src/views/DashboardView.vue:3
#: src/views/DashboardView.vue:27
msgid "Welcome to Modoboa"
msgstr ""
+3 -3
View File
@@ -612,7 +612,7 @@ msgstr ""
msgid "Copy token to clipboard"
msgstr ""
#: src/components/tools/ParametersForm.vue:183
#: src/components/tools/ParametersForm.vue:194
msgid "Could not save parameters"
msgstr ""
@@ -1855,7 +1855,7 @@ msgstr ""
msgid "or suggest a new language"
msgstr ""
#: src/components/tools/ParametersForm.vue:178
#: src/components/tools/ParametersForm.vue:189
msgid "Parameters updated"
msgstr ""
@@ -2552,7 +2552,7 @@ msgstr ""
msgid "Week"
msgstr ""
#: src/views/DashboardView.vue:3
#: src/views/DashboardView.vue:27
msgid "Welcome to Modoboa"
msgstr ""
+3 -3
View File
@@ -614,7 +614,7 @@ msgstr ""
msgid "Copy token to clipboard"
msgstr ""
#: src/components/tools/ParametersForm.vue:183
#: src/components/tools/ParametersForm.vue:194
msgid "Could not save parameters"
msgstr ""
@@ -1857,7 +1857,7 @@ msgstr ""
msgid "or suggest a new language"
msgstr ""
#: src/components/tools/ParametersForm.vue:178
#: src/components/tools/ParametersForm.vue:189
msgid "Parameters updated"
msgstr ""
@@ -2554,7 +2554,7 @@ msgstr ""
msgid "Week"
msgstr ""
#: src/views/DashboardView.vue:3
#: src/views/DashboardView.vue:27
msgid "Welcome to Modoboa"
msgstr ""
+3 -3
View File
@@ -635,7 +635,7 @@ msgstr "Copiar para área de transferência"
msgid "Copy token to clipboard"
msgstr "Copiar token para a área de transferência"
#: src/components/tools/ParametersForm.vue:183
#: src/components/tools/ParametersForm.vue:194
msgid "Could not save parameters"
msgstr "Não é possível salvar os parâmetros"
@@ -1927,7 +1927,7 @@ msgstr "Opções"
msgid "or suggest a new language"
msgstr "ou sugira um novo idioma"
#: src/components/tools/ParametersForm.vue:178
#: src/components/tools/ParametersForm.vue:189
msgid "Parameters updated"
msgstr "Parâmetros atualizados"
@@ -2662,7 +2662,7 @@ msgstr "E-mail"
msgid "Week"
msgstr "Semana"
#: src/views/DashboardView.vue:3
#: src/views/DashboardView.vue:27
msgid "Welcome to Modoboa"
msgstr "Bem-vindo ao Modoboa"
+3 -3
View File
@@ -639,7 +639,7 @@ msgstr ""
msgid "Copy token to clipboard"
msgstr ""
#: src/components/tools/ParametersForm.vue:183
#: src/components/tools/ParametersForm.vue:194
msgid "Could not save parameters"
msgstr ""
@@ -1956,7 +1956,7 @@ msgstr "Опции"
msgid "or suggest a new language"
msgstr ""
#: src/components/tools/ParametersForm.vue:178
#: src/components/tools/ParametersForm.vue:189
#, fuzzy
msgid "Parameters updated"
msgstr "Профиль обновлен"
@@ -2688,7 +2688,7 @@ msgstr ""
msgid "Week"
msgstr "Неделя"
#: src/views/DashboardView.vue:3
#: src/views/DashboardView.vue:27
msgid "Welcome to Modoboa"
msgstr "Добро пожаловать в Modoboa!"
+3 -3
View File
@@ -627,7 +627,7 @@ msgstr "Kopiera till urklipp"
msgid "Copy token to clipboard"
msgstr "Kopiera token till urklipp"
#: src/components/tools/ParametersForm.vue:183
#: src/components/tools/ParametersForm.vue:194
msgid "Could not save parameters"
msgstr "Kunde inte spara parametrar"
@@ -1899,7 +1899,7 @@ msgstr "Alternativ"
msgid "or suggest a new language"
msgstr "eller föreslå ett nytt språk"
#: src/components/tools/ParametersForm.vue:178
#: src/components/tools/ParametersForm.vue:189
msgid "Parameters updated"
msgstr "Parametrar uppdaterade"
@@ -2627,7 +2627,7 @@ msgstr "Webmail"
msgid "Week"
msgstr "Vecka"
#: src/views/DashboardView.vue:3
#: src/views/DashboardView.vue:27
msgid "Welcome to Modoboa"
msgstr "Välkommen till Modoboa"
+3 -3
View File
@@ -631,7 +631,7 @@ msgstr ""
msgid "Copy token to clipboard"
msgstr ""
#: src/components/tools/ParametersForm.vue:183
#: src/components/tools/ParametersForm.vue:194
msgid "Could not save parameters"
msgstr ""
@@ -1923,7 +1923,7 @@ msgstr ""
msgid "or suggest a new language"
msgstr ""
#: src/components/tools/ParametersForm.vue:178
#: src/components/tools/ParametersForm.vue:189
#, fuzzy
msgid "Parameters updated"
msgstr "Profil güncellendi"
@@ -2649,7 +2649,7 @@ msgstr ""
msgid "Week"
msgstr ""
#: src/views/DashboardView.vue:3
#: src/views/DashboardView.vue:27
msgid "Welcome to Modoboa"
msgstr "Modoboa'ya hoş geldiniz"
+3 -3
View File
@@ -611,7 +611,7 @@ msgstr ""
msgid "Copy token to clipboard"
msgstr ""
#: src/components/tools/ParametersForm.vue:183
#: src/components/tools/ParametersForm.vue:194
msgid "Could not save parameters"
msgstr ""
@@ -1854,7 +1854,7 @@ msgstr ""
msgid "or suggest a new language"
msgstr ""
#: src/components/tools/ParametersForm.vue:178
#: src/components/tools/ParametersForm.vue:189
msgid "Parameters updated"
msgstr ""
@@ -2551,7 +2551,7 @@ msgstr ""
msgid "Week"
msgstr ""
#: src/views/DashboardView.vue:3
#: src/views/DashboardView.vue:27
msgid "Welcome to Modoboa"
msgstr ""
File diff suppressed because it is too large Load Diff
+266 -174
View File
@@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-06-20 16:45+0200\n"
"POT-Creation-Date: 2025-07-27 10:50+0200\n"
"PO-Revision-Date: 2020-05-11 18:45+0000\n"
"Last-Translator: Tydýt _, 2023\n"
"Language-Team: Czech (https://www.transifex.com/tonio/teams/13749/cs/)\n"
@@ -22,75 +22,75 @@ msgstr ""
"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"
#: admin/api/v1/serializers.py:41
#: admin/api/v1/serializers.py:39
msgid ""
"Quota shared between mailboxes. Can be expressed in KB, MB (default) or GB. "
"A value of 0 means no quota."
msgstr ""
#: admin/api/v1/serializers.py:48
#: admin/api/v1/serializers.py:46
msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota."
msgstr ""
#: admin/api/v1/serializers.py:90
#: admin/api/v1/serializers.py:88
msgid "domain alias with this name already exists"
msgstr ""
#: admin/api/v1/serializers.py:100
#: admin/api/v1/serializers.py:98
msgid "No authorized MX record found for this domain"
msgstr ""
#: admin/api/v1/serializers.py:118
#: admin/api/v1/serializers.py:116
msgid "Cannot be greater than domain quota"
msgstr ""
#: admin/api/v1/serializers.py:164 admin/api/v1/serializers.py:359
#: admin/api/v2/serializers.py:531 admin/models/alias.py:44
#: admin/api/v1/serializers.py:162 admin/api/v1/serializers.py:357
#: admin/api/v2/serializers.py:548 admin/models/alias.py:44
msgid "Permission denied."
msgstr ""
#: admin/api/v1/serializers.py:226 admin/api/v2/serializers.py:89
#: admin/api/v2/serializers.py:453 core/api/v2/serializers.py:225
#: core/api/v2/serializers.py:227 core/api/v2/serializers.py:236
#: admin/api/v1/serializers.py:224 admin/api/v2/serializers.py:88
#: admin/api/v2/serializers.py:470 core/api/v2/serializers.py:235
#: core/api/v2/serializers.py:237 core/api/v2/serializers.py:246
#: transport/backends.py:40
msgid "This field is required"
msgstr ""
#: admin/api/v1/serializers.py:238
#: admin/api/v1/serializers.py:236
msgid ""
"List of administered domains (resellers and domain administrators only)."
msgstr ""
#: admin/api/v1/serializers.py:332 admin/api/v2/serializers.py:513
#: admin/api/v1/serializers.py:330 admin/api/v2/serializers.py:530
msgid "Not allowed for this role."
msgstr ""
#: admin/api/v1/serializers.py:350
#: admin/api/v1/serializers.py:348
msgid "Must be equal to mailbox full_address"
msgstr ""
#: admin/api/v1/serializers.py:392 admin/api/v2/serializers.py:565
#: admin/api/v1/serializers.py:390 admin/api/v2/serializers.py:582
#: calendars/serializers.py:175 calendars/serializers.py:177
msgid "This field is required."
msgstr ""
#: admin/api/v1/serializers.py:404 admin/api/v2/serializers.py:582
#: admin/api/v1/serializers.py:402 admin/api/v2/serializers.py:599
msgid "Local domain {} does not exist"
msgstr ""
#: admin/api/v1/serializers.py:494
#: admin/api/v1/serializers.py:492
msgid "A list of recipient"
msgstr ""
#: admin/api/v1/serializers.py:510 admin/api/v2/viewsets.py:271
#: admin/api/v1/serializers.py:508 admin/api/v2/viewsets.py:286
msgid "This alias already exists"
msgstr ""
#: admin/api/v1/serializers.py:546
#: admin/api/v1/serializers.py:544
msgid "You don't have access to this domain."
msgstr ""
#: admin/api/v1/serializers.py:555
#: admin/api/v1/serializers.py:553
msgid "You don't have access to this mailbox."
msgstr ""
@@ -98,56 +98,56 @@ msgstr ""
msgid "Here is your new Modoboa password: {}"
msgstr ""
#: admin/api/v2/serializers.py:81
#: admin/api/v2/serializers.py:80
msgid "DKIM keys storage directory not configured"
msgstr ""
#: admin/api/v2/serializers.py:93
#: admin/api/v2/serializers.py:92
msgid "This field is valid when type is relaydomain"
msgstr ""
#: admin/api/v2/serializers.py:100
#: admin/api/v2/serializers.py:99
msgid "You can't define an unlimited quota."
msgstr ""
#: admin/api/v2/serializers.py:134
#: admin/api/v2/serializers.py:133
#, python-format
msgid "User '%s' already exists"
msgstr ""
#: admin/api/v2/serializers.py:249 admin/api/v2/serializers.py:255
#: admin/api/v2/serializers.py:248 admin/api/v2/serializers.py:254
msgid "Must be a positive integer"
msgstr ""
#: admin/api/v2/serializers.py:264
#: admin/api/v2/serializers.py:263
msgid "openssl not found, please make sure it is installed."
msgstr ""
#: admin/api/v2/serializers.py:267 pdfcredentials/api/v2/serializers.py:79
#: admin/api/v2/serializers.py:266 pdfcredentials/api/v2/serializers.py:79
msgid "Directory not found."
msgstr ""
#: admin/api/v2/serializers.py:278
#: admin/api/v2/serializers.py:277
msgid "This field only allows valid IP addresses (or networks)"
msgstr ""
#: admin/api/v2/serializers.py:291
#: admin/api/v2/serializers.py:290
msgid "Please disable imap migration before disabling this option."
msgstr ""
#: admin/api/v2/serializers.py:304
#: admin/api/v2/serializers.py:303
msgid "Define at least one authorized network / address"
msgstr ""
#: admin/api/v2/serializers.py:548
#: admin/api/v2/serializers.py:565
msgid "The left part of an email address can't be more than 64 characters."
msgstr ""
#: admin/api/v2/serializers.py:570
#: admin/api/v2/serializers.py:587
msgid "A mailbox is required to create aliases."
msgstr ""
#: admin/api/v2/serializers.py:734
#: admin/api/v2/serializers.py:751
msgid "Unknown status"
msgstr ""
@@ -159,11 +159,11 @@ msgstr ""
msgid "You can't delete your own domain"
msgstr ""
#: admin/api/v2/viewsets.py:392
#: admin/api/v2/viewsets.py:407
msgid "No alarm ID provided"
msgstr ""
#: admin/api/v2/viewsets.py:396
#: admin/api/v2/viewsets.py:411
msgid "Received invalid alarm id(s)"
msgstr ""
@@ -428,12 +428,12 @@ msgstr ""
msgid "Invalid IP address format for {domain}; {addr}"
msgstr ""
#: admin/lib.py:340
#: admin/lib.py:360
#, python-format
msgid "Object already exists: %s"
msgstr ""
#: admin/lib.py:344
#: admin/lib.py:364
#, python-format
msgid "%d objects imported successfully"
msgstr ""
@@ -582,7 +582,7 @@ msgid "Key length"
msgstr ""
#: admin/models/domain.py:321 admin/models/domain_alias.py:70
#: core/models.py:353 relaydomains/lib.py:13
#: core/models.py:352 relaydomains/lib.py:13
msgid "Invalid line"
msgstr ""
@@ -778,7 +778,7 @@ msgstr ""
msgid "Allow domain administrators to manage user calendars (read and write)"
msgstr ""
#: calendars/app_settings.py:60 core/app_settings.py:579
#: calendars/app_settings.py:60 core/app_settings.py:676
#: rspamd/app_settings.py:45
msgid "Miscellaneous"
msgstr ""
@@ -879,7 +879,7 @@ msgstr ""
msgid "Failed TFA settings editing attempt from '%s' as user '%s'"
msgstr ""
#: core/api/v1/serializers.py:91 core/api/v2/serializers.py:415
#: core/api/v1/serializers.py:91 core/api/v2/serializers.py:425
msgid "Invalid password"
msgstr ""
@@ -891,24 +891,24 @@ msgstr ""
msgid "Local"
msgstr ""
#: core/api/v2/serializers.py:165 core/app_settings.py:17
#: core/api/v2/serializers.py:175 core/app_settings.py:17
msgid "User profile"
msgstr ""
#: core/api/v2/serializers.py:184 core/api/v2/serializers.py:191
#: core/api/v2/serializers.py:198
#: core/api/v2/serializers.py:194 core/api/v2/serializers.py:201
#: core/api/v2/serializers.py:208
msgid "Invalid syntax"
msgstr ""
#: core/api/v2/serializers.py:203
#: core/api/v2/serializers.py:213
msgid "Invalid rounds number"
msgstr ""
#: core/api/v2/serializers.py:403 core/forms.py:81
#: core/api/v2/serializers.py:413 core/forms.py:81
msgid "This code is invalid"
msgstr ""
#: core/api/v2/serializers.py:473 core/views/auth.py:194 core/views/auth.py:247
#: core/api/v2/serializers.py:483 core/views/auth.py:194 core/views/auth.py:247
msgid "Please use the following code to recover your Modoboa password: {}"
msgstr ""
@@ -983,410 +983,502 @@ msgstr ""
msgid "Length of randomly generated passwords."
msgstr ""
#: core/app_settings.py:102
#: core/app_settings.py:103
msgid "Allow special characters for random password"
msgstr ""
#: core/app_settings.py:106
msgid "Enable special characters in randomly generated passwords."
msgstr ""
#: core/app_settings.py:114
msgid "Update password service URL"
msgstr ""
#: core/app_settings.py:104
#: core/app_settings.py:116
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:114
#: core/app_settings.py:126
msgid "Password recovery announcement"
msgstr ""
#: core/app_settings.py:116
#: core/app_settings.py:128
msgid "A temporary message that will be displayed on the reset password page."
msgstr ""
#: core/app_settings.py:125
#: core/app_settings.py:137
msgid "Enable password recovery by SMS"
msgstr ""
#: core/app_settings.py:128
#: core/app_settings.py:140
msgid "Enable password recovery by SMS for users who filled a phone number."
msgstr ""
#: core/app_settings.py:136
#: core/app_settings.py:148
msgid "SMS provider"
msgstr ""
#: core/app_settings.py:139
#: core/app_settings.py:151
msgid "Choose a provider to send password recovery SMS"
msgstr ""
#: core/app_settings.py:151
#: core/app_settings.py:163
msgid "LDAP"
msgstr ""
#: core/app_settings.py:157 sievefilters/app_settings.py:18
#: core/app_settings.py:169 sievefilters/app_settings.py:18
#: sievefilters/app_settings.py:51 webmail/app_settings.py:36
#: webmail/app_settings.py:73
msgid "Server address"
msgstr ""
#: core/app_settings.py:159
#: core/app_settings.py:171
msgid "The IP address or the DNS name of the LDAP server"
msgstr ""
#: core/app_settings.py:166 sievefilters/app_settings.py:25
#: core/app_settings.py:178 sievefilters/app_settings.py:25
#: sievefilters/app_settings.py:67 webmail/app_settings.py:54
#: webmail/app_settings.py:91
msgid "Server port"
msgstr ""
#: core/app_settings.py:168
#: core/app_settings.py:180
msgid "The TCP port number used by the LDAP server"
msgstr ""
#: core/app_settings.py:176
#: core/app_settings.py:188
msgid "Enable secondary server (fallback)"
msgstr ""
#: core/app_settings.py:179
#: core/app_settings.py:191
msgid ""
"Enable a secondary LDAP server which will be used if the primary one fails"
msgstr ""
#: core/app_settings.py:187
#: core/app_settings.py:199
msgid "Secondary server address"
msgstr ""
#: core/app_settings.py:190
#: core/app_settings.py:202
msgid "The IP address or the DNS name of the seondary LDAP server"
msgstr ""
#: core/app_settings.py:197
#: core/app_settings.py:209
msgid "Secondary server port"
msgstr ""
#: core/app_settings.py:200
#: core/app_settings.py:212
msgid "The TCP port number used by the LDAP secondary server"
msgstr ""
#: core/app_settings.py:207 sievefilters/app_settings.py:58
#: core/app_settings.py:219 sievefilters/app_settings.py:58
#: webmail/app_settings.py:45
msgid "Use a secured connection"
msgstr ""
#: core/app_settings.py:209
#: core/app_settings.py:221
msgid "Use an SSL/STARTTLS connection to access the LDAP server"
msgstr ""
#: core/app_settings.py:216
#: core/app_settings.py:228
msgid "Active Directory"
msgstr ""
#: core/app_settings.py:218
#: core/app_settings.py:230
msgid "Tell if the LDAP server is an Active Directory one"
msgstr ""
#: core/app_settings.py:225
#: core/app_settings.py:237
msgid "Administrator groups"
msgstr ""
#: core/app_settings.py:227
#: core/app_settings.py:239
msgid ""
"Members of those LDAP Posix groups will be created as domain administrators. "
"Use ';' characters to separate groups."
msgstr ""
#: core/app_settings.py:236
#: core/app_settings.py:248
msgid "Group type"
msgstr ""
#: core/app_settings.py:238
#: core/app_settings.py:250
msgid "The LDAP group type to use with your directory."
msgstr ""
#: core/app_settings.py:245
#: core/app_settings.py:257
msgid "Groups search base"
msgstr ""
#: core/app_settings.py:247
#: core/app_settings.py:259
msgid "The distinguished name of the search base used to find groups"
msgstr ""
#: core/app_settings.py:255
#: core/app_settings.py:267
msgid "Password attribute"
msgstr ""
#: core/app_settings.py:257
#: core/app_settings.py:269
msgid "The attribute used to store user passwords"
msgstr ""
#: core/app_settings.py:264
#: core/app_settings.py:276
msgid "LDAP authentication settings"
msgstr ""
#: core/app_settings.py:272
#: core/app_settings.py:284
msgid "Authentication method"
msgstr ""
#: core/app_settings.py:275
#: core/app_settings.py:287
msgid "Choose the authentication method to use"
msgstr ""
#: core/app_settings.py:282 core/app_settings.py:345
#: core/app_settings.py:294 core/app_settings.py:357
msgid "Bind DN"
msgstr ""
#: core/app_settings.py:284 core/app_settings.py:347
#: core/app_settings.py:296 core/app_settings.py:359
msgid ""
"The distinguished name to use when binding to the LDAP server. Leave empty "
"for an anonymous bind"
msgstr ""
#: core/app_settings.py:293 core/app_settings.py:355
#: core/app_settings.py:305 core/app_settings.py:367
msgid "Bind password"
msgstr ""
#: core/app_settings.py:295 core/app_settings.py:357
#: core/app_settings.py:307 core/app_settings.py:369
msgid "The password to use when binding to the LDAP server (with 'Bind DN')"
msgstr ""
#: core/app_settings.py:305 core/app_settings.py:410
#: core/app_settings.py:317 core/app_settings.py:422
msgid "Users search base"
msgstr ""
#: core/app_settings.py:307 core/app_settings.py:412
#: core/app_settings.py:319 core/app_settings.py:424
msgid "The distinguished name of the search base used to find users"
msgstr ""
#: core/app_settings.py:316 core/app_settings.py:421
#: core/app_settings.py:328 core/app_settings.py:433
msgid "Search filter"
msgstr ""
#: core/app_settings.py:318 core/app_settings.py:423
#: core/app_settings.py:330 core/app_settings.py:435
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:327
#: core/app_settings.py:339
msgid "User DN template"
msgstr ""
#: core/app_settings.py:329
#: core/app_settings.py:341
#, 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:338
#: core/app_settings.py:350
msgid "LDAP synchronization settings"
msgstr ""
#: core/app_settings.py:366
#: core/app_settings.py:378
msgid "Enable export to LDAP"
msgstr ""
#: core/app_settings.py:368
#: core/app_settings.py:380
msgid ""
"Enable automatic synchronization between local database and LDAP directory"
msgstr ""
#: core/app_settings.py:377
#: core/app_settings.py:389
msgid "Delete remote LDAP account when local account is deleted"
msgstr ""
#: core/app_settings.py:380
#: core/app_settings.py:392
msgid ""
"Delete remote LDAP account when local account is deleted, otherwise it will "
"be disabled."
msgstr ""
#: core/app_settings.py:389
#: core/app_settings.py:401
msgid "Account DN template"
msgstr ""
#: core/app_settings.py:391
#: core/app_settings.py:403
#, 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:400
#: core/app_settings.py:412
msgid "Enable import from LDAP"
msgstr ""
#: core/app_settings.py:402
#: core/app_settings.py:414
msgid "Enable account synchronization from LDAP directory to local database"
msgstr ""
#: core/app_settings.py:432
#: core/app_settings.py:444
msgid "Username attribute"
msgstr ""
#: core/app_settings.py:434
#: core/app_settings.py:446
msgid "The name of the LDAP attribute where the username can be found."
msgstr ""
#: core/app_settings.py:443
#: core/app_settings.py:455
msgid "Enable Dovecot LDAP sync"
msgstr ""
#: core/app_settings.py:445
#: core/app_settings.py:457
msgid "LDAP authentication settings will be applied to Dovecot configuration."
msgstr ""
#: core/app_settings.py:453
#: core/app_settings.py:465
msgid "Dovecot LDAP config file"
msgstr ""
#: core/app_settings.py:455
#: core/app_settings.py:467
msgid ""
"Location of the configuration file which contains Dovecot LDAP settings."
msgstr ""
#: core/app_settings.py:468
#: core/app_settings.py:480
msgid "Dashboard"
msgstr ""
#: core/app_settings.py:474
#: core/app_settings.py:486
msgid "Custom welcome message"
msgstr ""
#: core/app_settings.py:488
msgid "A welcome message that will be displayed instead the default one"
msgstr ""
#: core/app_settings.py:495
msgid "Custom RSS feed"
msgstr ""
#: core/app_settings.py:476
#: core/app_settings.py:497
msgid "Display custom RSS feed to resellers and domain administrators"
msgstr ""
#: core/app_settings.py:484
msgid "Hide features widget"
msgstr ""
#: core/app_settings.py:486
msgid "Hide features widget for resellers and domain administrators"
msgstr ""
#: core/app_settings.py:498
msgid "Notifications"
msgstr ""
#: core/app_settings.py:504
msgid "Sender address"
msgstr ""
#: core/app_settings.py:506
msgid "Email address used to send notifications."
msgid "Display custom RSS feed to super admins"
msgstr ""
#: core/app_settings.py:509
msgid "Display custom RSS feed also to super administrators"
msgstr ""
#: core/app_settings.py:517
msgid "Hide features widget"
msgstr ""
#: core/app_settings.py:519
msgid "Hide features widget for resellers and domain administrators"
msgstr ""
#: core/app_settings.py:531
msgid "Theme"
msgstr ""
#: core/app_settings.py:537
msgid "Primary theme color"
msgstr ""
#: core/app_settings.py:539
msgid ""
"Primary color of the theme (hexadecimal code), used as the background color "
"of the left menu for example"
msgstr ""
#: core/app_settings.py:548
msgid "Primary theme color (lighter version)"
msgstr ""
#: core/app_settings.py:551 core/app_settings.py:563
msgid "Primary color of the theme (hexadecimal code)"
msgstr ""
#: core/app_settings.py:560
msgid "Primary theme color (darker version)"
msgstr ""
#: core/app_settings.py:571
msgid "Secondary theme color"
msgstr ""
#: core/app_settings.py:573
msgid ""
"Secondary color of the theme (hexadecimal code), used as the background "
"color of some buttons for example"
msgstr ""
#: core/app_settings.py:581
msgid "Labels theme color"
msgstr ""
#: core/app_settings.py:583
msgid "Theme color for labels (hexadecimal code)"
msgstr ""
#: core/app_settings.py:595
msgid "Notifications"
msgstr ""
#: core/app_settings.py:601
msgid "Sender address"
msgstr ""
#: core/app_settings.py:603
msgid "Email address used to send notifications."
msgstr ""
#: core/app_settings.py:614
msgid "Public API"
msgstr ""
#: core/app_settings.py:523
#: core/app_settings.py:620
msgid "Enable communication"
msgstr ""
#: core/app_settings.py:525 core/app_settings.py:535
#: core/app_settings.py:622 core/app_settings.py:632
msgid "Automatically checks if a newer version is available"
msgstr ""
#: core/app_settings.py:532
#: core/app_settings.py:629
msgid "Check new versions"
msgstr ""
#: core/app_settings.py:543
#: core/app_settings.py:640
msgid "Send an email when new versions are found"
msgstr ""
#: core/app_settings.py:547
#: core/app_settings.py:644
msgid "Send an email to notify admins about new versions"
msgstr ""
#: core/app_settings.py:554 sievefilters/constants.py:25
#: core/app_settings.py:651 sievefilters/constants.py:25
msgid "Recipient"
msgstr ""
#: core/app_settings.py:557
#: core/app_settings.py:654
msgid "Recipient of new versions notification emails."
msgstr ""
#: core/app_settings.py:564
#: core/app_settings.py:661
msgid "Send statistics"
msgstr ""
#: core/app_settings.py:567
#: core/app_settings.py:664
msgid "Send statistics to Modoboa public API (counters and used extensions)"
msgstr ""
#: core/app_settings.py:586
#: core/app_settings.py:683
msgid "Enable inactive account tracking"
msgstr ""
#: core/app_settings.py:589
#: core/app_settings.py:686
msgid ""
"Allow the administrator to set a threshold (in days) beyond which an account "
"is considered inactive if the user hasn't logged in"
msgstr ""
#: core/app_settings.py:598
#: core/app_settings.py:695
msgid "Inactive account threshold"
msgstr ""
#: core/app_settings.py:601
#: core/app_settings.py:698
msgid ""
"An account with a last login date greater than this threshold (in days) will "
"be considered as inactive"
msgstr ""
#: core/app_settings.py:610
#: core/app_settings.py:707
msgid "Top notifications check interval"
msgstr ""
#: core/app_settings.py:613
#: core/app_settings.py:710
msgid "Interval between two top notification checks (in seconds)"
msgstr ""
#: core/app_settings.py:620
#: core/app_settings.py:717
msgid "Maximum log record age"
msgstr ""
#: core/app_settings.py:622
#: core/app_settings.py:719
msgid "The maximum age in days of a log record"
msgstr ""
#: core/app_settings.py:629
#: core/app_settings.py:726
msgid "Items per page"
msgstr ""
#: core/app_settings.py:631
#: core/app_settings.py:728
msgid "Number of displayed items per page"
msgstr ""
#: core/app_settings.py:638
#: core/app_settings.py:735
msgid "Default top redirection"
msgstr ""
#: core/app_settings.py:640
#: core/app_settings.py:737
msgid "The default redirection used when no application is specified"
msgstr ""
#: core/checks.py:13
#: core/checks.py:15
msgid ""
"You have USE_TZ set to False, this may result in issues during transitions "
"between summer/winter time (ie the same local time occuring twice due to "
"clock change)."
msgstr ""
#: core/checks.py:17
#: core/checks.py:19
msgid "Set `USE_TZ = True` in settings.py"
msgstr ""
#: core/checks.py:21
#: core/checks.py:23
msgid "The password scheme you are using is deprecated."
msgstr ""
#: core/checks.py:22
#: core/checks.py:24
msgid "Upgrade your password scheme to a stronger one"
msgstr ""
#: core/checks.py:30
msgid ""
"Oauth2 application for dovecot has not been found. Webmail and some other "
"features won't be available."
msgstr ""
#: core/checks.py:34
msgid ""
"Visit : https://modoboa.readthedocs.io/en/latest/manual_installation/dovecot."
"html#dovecot-oauth2"
msgstr ""
#: core/checks.py:41
msgid ""
"Oauth2 application for radicale has not been found. Calendar and some other "
"features won't be available."
msgstr ""
#: core/checks.py:45
msgid ""
"Visit : https://modoboa.readthedocs.io/en/latest/manual_installation/"
"radicale.html#radicale-oauth2"
msgstr ""
#: core/constants.py:6
msgid "Simple user"
msgstr ""
@@ -1478,61 +1570,61 @@ msgstr ""
msgid "[modoboa] Update(s) available"
msgstr ""
#: core/models.py:72
#: core/models.py:71
msgid "Allow mailboxes access"
msgstr ""
#: core/models.py:74
#: core/models.py:73
msgid "Allow this administrator to access user mailboxes"
msgstr ""
#: core/models.py:76
#: core/models.py:75
msgid "password"
msgstr ""
#: core/models.py:79
#: core/models.py:78
msgid "language"
msgstr ""
#: core/models.py:83
#: core/models.py:82
msgid "Prefered language to display pages."
msgstr ""
#: core/models.py:85
#: core/models.py:84
msgid "Phone number"
msgstr ""
#: core/models.py:87
#: core/models.py:86
msgid "Secondary email"
msgstr ""
#: core/models.py:92
#: core/models.py:91
msgid "An alternative e-mail address, can be used for recovery needs."
msgstr ""
#: core/models.py:151
#: core/models.py:150
#, fuzzy
#| msgid "Failed to update LDAP account: {}"
msgid "Failed to update password: LDAP module not installed"
msgstr "Nepodařilo se aktualizovat LDAP účet: {}"
#: core/models.py:186 policyd/core.py:117
#: core/models.py:185 policyd/core.py:117
msgid "account"
msgstr ""
#: core/models.py:318
#: core/models.py:317
msgid "Unknown"
msgstr ""
#: core/models.py:361
#: core/models.py:360
msgid "You can't import an account with a role greater than yours"
msgstr ""
#: core/models.py:376
#: core/models.py:375
msgid "The simple user '{}' must have a valid email address"
msgstr ""
#: core/models.py:384
#: core/models.py:383
msgid "username and email fields must not differ for '{}'"
msgstr ""
@@ -1869,7 +1961,7 @@ msgstr ""
msgid "IMAP Migration"
msgstr ""
#: imap_migration/auth_backends.py:49 webmail/lib/imaputils.py:241
#: imap_migration/auth_backends.py:49 webmail/lib/imaputils.py:240
#, python-brace-format
msgid "Connection to IMAP server failed: {error}"
msgstr ""
@@ -1901,21 +1993,21 @@ msgstr "Nepodařilo se smazat LDAP účet: {}"
msgid "Failed to disable LDAP account: {}"
msgstr "Nepodařilo se zakázat LDAP účet: {}"
#: lib/api_client.py:35 lib/api_client.py:69 lib/api_client.py:83
#: lib/api_client.py:87
#: lib/api_client.py:35 lib/api_client.py:67 lib/api_client.py:81
#: lib/api_client.py:85
#, python-format
msgid "Failed to communicate with public API: %s"
msgstr ""
#: lib/email_utils.py:139 lib/email_utils.py:350
#: lib/email_utils.py:140 lib/email_utils.py:351
msgid "unable to determine encoding of string"
msgstr ""
#: lib/exceptions.py:85
#: lib/exceptions.py:83
msgid "Permission denied: {}"
msgstr ""
#: lib/exceptions.py:86
#: lib/exceptions.py:84
msgid "Permission denied"
msgstr ""
@@ -2605,11 +2697,11 @@ msgstr ""
msgid "Stop processing"
msgstr ""
#: sievefilters/lib.py:51
#: sievefilters/lib.py:49
msgid "Connection to MANAGESIEVE server failed, check your configuration"
msgstr ""
#: sievefilters/lib.py:78
#: sievefilters/lib.py:76
msgid "Not enough space on server"
msgstr ""
@@ -2911,7 +3003,7 @@ msgstr ""
msgid "User defined email signature"
msgstr ""
#: webmail/lib/attachments.py:113
#: webmail/lib/attachments.py:112
#, fuzzy
#| msgid "Failed to create LDAP account: {}"
msgid "Failed to remove attachment: "
@@ -2921,7 +3013,7 @@ msgstr "Nepodařilo se vytvořit LDAT účet: {}"
msgid "Date"
msgstr ""
#: webmail/lib/imaputils.py:222
#: webmail/lib/imaputils.py:221
msgid "Failed to retrieve hierarchy delimiter"
msgstr ""
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+266 -174
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-06-20 16:45+0200\n"
"POT-Creation-Date: 2025-07-27 10:50+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -17,75 +17,75 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: admin/api/v1/serializers.py:41
#: admin/api/v1/serializers.py:39
msgid ""
"Quota shared between mailboxes. Can be expressed in KB, MB (default) or GB. "
"A value of 0 means no quota."
msgstr ""
#: admin/api/v1/serializers.py:48
#: admin/api/v1/serializers.py:46
msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota."
msgstr ""
#: admin/api/v1/serializers.py:90
#: admin/api/v1/serializers.py:88
msgid "domain alias with this name already exists"
msgstr ""
#: admin/api/v1/serializers.py:100
#: admin/api/v1/serializers.py:98
msgid "No authorized MX record found for this domain"
msgstr ""
#: admin/api/v1/serializers.py:118
#: admin/api/v1/serializers.py:116
msgid "Cannot be greater than domain quota"
msgstr ""
#: admin/api/v1/serializers.py:164 admin/api/v1/serializers.py:359
#: admin/api/v2/serializers.py:531 admin/models/alias.py:44
#: admin/api/v1/serializers.py:162 admin/api/v1/serializers.py:357
#: admin/api/v2/serializers.py:548 admin/models/alias.py:44
msgid "Permission denied."
msgstr ""
#: admin/api/v1/serializers.py:226 admin/api/v2/serializers.py:89
#: admin/api/v2/serializers.py:453 core/api/v2/serializers.py:225
#: core/api/v2/serializers.py:227 core/api/v2/serializers.py:236
#: admin/api/v1/serializers.py:224 admin/api/v2/serializers.py:88
#: admin/api/v2/serializers.py:470 core/api/v2/serializers.py:235
#: core/api/v2/serializers.py:237 core/api/v2/serializers.py:246
#: transport/backends.py:40
msgid "This field is required"
msgstr ""
#: admin/api/v1/serializers.py:238
#: admin/api/v1/serializers.py:236
msgid ""
"List of administered domains (resellers and domain administrators only)."
msgstr ""
#: admin/api/v1/serializers.py:332 admin/api/v2/serializers.py:513
#: admin/api/v1/serializers.py:330 admin/api/v2/serializers.py:530
msgid "Not allowed for this role."
msgstr ""
#: admin/api/v1/serializers.py:350
#: admin/api/v1/serializers.py:348
msgid "Must be equal to mailbox full_address"
msgstr ""
#: admin/api/v1/serializers.py:392 admin/api/v2/serializers.py:565
#: admin/api/v1/serializers.py:390 admin/api/v2/serializers.py:582
#: calendars/serializers.py:175 calendars/serializers.py:177
msgid "This field is required."
msgstr ""
#: admin/api/v1/serializers.py:404 admin/api/v2/serializers.py:582
#: admin/api/v1/serializers.py:402 admin/api/v2/serializers.py:599
msgid "Local domain {} does not exist"
msgstr ""
#: admin/api/v1/serializers.py:494
#: admin/api/v1/serializers.py:492
msgid "A list of recipient"
msgstr ""
#: admin/api/v1/serializers.py:510 admin/api/v2/viewsets.py:271
#: admin/api/v1/serializers.py:508 admin/api/v2/viewsets.py:286
msgid "This alias already exists"
msgstr ""
#: admin/api/v1/serializers.py:546
#: admin/api/v1/serializers.py:544
msgid "You don't have access to this domain."
msgstr ""
#: admin/api/v1/serializers.py:555
#: admin/api/v1/serializers.py:553
msgid "You don't have access to this mailbox."
msgstr ""
@@ -93,56 +93,56 @@ msgstr ""
msgid "Here is your new Modoboa password: {}"
msgstr ""
#: admin/api/v2/serializers.py:81
#: admin/api/v2/serializers.py:80
msgid "DKIM keys storage directory not configured"
msgstr ""
#: admin/api/v2/serializers.py:93
#: admin/api/v2/serializers.py:92
msgid "This field is valid when type is relaydomain"
msgstr ""
#: admin/api/v2/serializers.py:100
#: admin/api/v2/serializers.py:99
msgid "You can't define an unlimited quota."
msgstr ""
#: admin/api/v2/serializers.py:134
#: admin/api/v2/serializers.py:133
#, python-format
msgid "User '%s' already exists"
msgstr ""
#: admin/api/v2/serializers.py:249 admin/api/v2/serializers.py:255
#: admin/api/v2/serializers.py:248 admin/api/v2/serializers.py:254
msgid "Must be a positive integer"
msgstr ""
#: admin/api/v2/serializers.py:264
#: admin/api/v2/serializers.py:263
msgid "openssl not found, please make sure it is installed."
msgstr ""
#: admin/api/v2/serializers.py:267 pdfcredentials/api/v2/serializers.py:79
#: admin/api/v2/serializers.py:266 pdfcredentials/api/v2/serializers.py:79
msgid "Directory not found."
msgstr ""
#: admin/api/v2/serializers.py:278
#: admin/api/v2/serializers.py:277
msgid "This field only allows valid IP addresses (or networks)"
msgstr ""
#: admin/api/v2/serializers.py:291
#: admin/api/v2/serializers.py:290
msgid "Please disable imap migration before disabling this option."
msgstr ""
#: admin/api/v2/serializers.py:304
#: admin/api/v2/serializers.py:303
msgid "Define at least one authorized network / address"
msgstr ""
#: admin/api/v2/serializers.py:548
#: admin/api/v2/serializers.py:565
msgid "The left part of an email address can't be more than 64 characters."
msgstr ""
#: admin/api/v2/serializers.py:570
#: admin/api/v2/serializers.py:587
msgid "A mailbox is required to create aliases."
msgstr ""
#: admin/api/v2/serializers.py:734
#: admin/api/v2/serializers.py:751
msgid "Unknown status"
msgstr ""
@@ -154,11 +154,11 @@ msgstr ""
msgid "You can't delete your own domain"
msgstr ""
#: admin/api/v2/viewsets.py:392
#: admin/api/v2/viewsets.py:407
msgid "No alarm ID provided"
msgstr ""
#: admin/api/v2/viewsets.py:396
#: admin/api/v2/viewsets.py:411
msgid "Received invalid alarm id(s)"
msgstr ""
@@ -423,12 +423,12 @@ msgstr ""
msgid "Invalid IP address format for {domain}; {addr}"
msgstr ""
#: admin/lib.py:340
#: admin/lib.py:360
#, python-format
msgid "Object already exists: %s"
msgstr ""
#: admin/lib.py:344
#: admin/lib.py:364
#, python-format
msgid "%d objects imported successfully"
msgstr ""
@@ -577,7 +577,7 @@ msgid "Key length"
msgstr ""
#: admin/models/domain.py:321 admin/models/domain_alias.py:70
#: core/models.py:353 relaydomains/lib.py:13
#: core/models.py:352 relaydomains/lib.py:13
msgid "Invalid line"
msgstr ""
@@ -773,7 +773,7 @@ msgstr ""
msgid "Allow domain administrators to manage user calendars (read and write)"
msgstr ""
#: calendars/app_settings.py:60 core/app_settings.py:579
#: calendars/app_settings.py:60 core/app_settings.py:676
#: rspamd/app_settings.py:45
msgid "Miscellaneous"
msgstr ""
@@ -874,7 +874,7 @@ msgstr ""
msgid "Failed TFA settings editing attempt from '%s' as user '%s'"
msgstr ""
#: core/api/v1/serializers.py:91 core/api/v2/serializers.py:415
#: core/api/v1/serializers.py:91 core/api/v2/serializers.py:425
msgid "Invalid password"
msgstr ""
@@ -886,24 +886,24 @@ msgstr ""
msgid "Local"
msgstr ""
#: core/api/v2/serializers.py:165 core/app_settings.py:17
#: core/api/v2/serializers.py:175 core/app_settings.py:17
msgid "User profile"
msgstr ""
#: core/api/v2/serializers.py:184 core/api/v2/serializers.py:191
#: core/api/v2/serializers.py:198
#: core/api/v2/serializers.py:194 core/api/v2/serializers.py:201
#: core/api/v2/serializers.py:208
msgid "Invalid syntax"
msgstr ""
#: core/api/v2/serializers.py:203
#: core/api/v2/serializers.py:213
msgid "Invalid rounds number"
msgstr ""
#: core/api/v2/serializers.py:403 core/forms.py:81
#: core/api/v2/serializers.py:413 core/forms.py:81
msgid "This code is invalid"
msgstr ""
#: core/api/v2/serializers.py:473 core/views/auth.py:194 core/views/auth.py:247
#: core/api/v2/serializers.py:483 core/views/auth.py:194 core/views/auth.py:247
msgid "Please use the following code to recover your Modoboa password: {}"
msgstr ""
@@ -978,410 +978,502 @@ msgstr ""
msgid "Length of randomly generated passwords."
msgstr ""
#: core/app_settings.py:102
#: core/app_settings.py:103
msgid "Allow special characters for random password"
msgstr ""
#: core/app_settings.py:106
msgid "Enable special characters in randomly generated passwords."
msgstr ""
#: core/app_settings.py:114
msgid "Update password service URL"
msgstr ""
#: core/app_settings.py:104
#: core/app_settings.py:116
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:114
#: core/app_settings.py:126
msgid "Password recovery announcement"
msgstr ""
#: core/app_settings.py:116
#: core/app_settings.py:128
msgid "A temporary message that will be displayed on the reset password page."
msgstr ""
#: core/app_settings.py:125
#: core/app_settings.py:137
msgid "Enable password recovery by SMS"
msgstr ""
#: core/app_settings.py:128
#: core/app_settings.py:140
msgid "Enable password recovery by SMS for users who filled a phone number."
msgstr ""
#: core/app_settings.py:136
#: core/app_settings.py:148
msgid "SMS provider"
msgstr ""
#: core/app_settings.py:139
#: core/app_settings.py:151
msgid "Choose a provider to send password recovery SMS"
msgstr ""
#: core/app_settings.py:151
#: core/app_settings.py:163
msgid "LDAP"
msgstr ""
#: core/app_settings.py:157 sievefilters/app_settings.py:18
#: core/app_settings.py:169 sievefilters/app_settings.py:18
#: sievefilters/app_settings.py:51 webmail/app_settings.py:36
#: webmail/app_settings.py:73
msgid "Server address"
msgstr ""
#: core/app_settings.py:159
#: core/app_settings.py:171
msgid "The IP address or the DNS name of the LDAP server"
msgstr ""
#: core/app_settings.py:166 sievefilters/app_settings.py:25
#: core/app_settings.py:178 sievefilters/app_settings.py:25
#: sievefilters/app_settings.py:67 webmail/app_settings.py:54
#: webmail/app_settings.py:91
msgid "Server port"
msgstr ""
#: core/app_settings.py:168
#: core/app_settings.py:180
msgid "The TCP port number used by the LDAP server"
msgstr ""
#: core/app_settings.py:176
#: core/app_settings.py:188
msgid "Enable secondary server (fallback)"
msgstr ""
#: core/app_settings.py:179
#: core/app_settings.py:191
msgid ""
"Enable a secondary LDAP server which will be used if the primary one fails"
msgstr ""
#: core/app_settings.py:187
#: core/app_settings.py:199
msgid "Secondary server address"
msgstr ""
#: core/app_settings.py:190
#: core/app_settings.py:202
msgid "The IP address or the DNS name of the seondary LDAP server"
msgstr ""
#: core/app_settings.py:197
#: core/app_settings.py:209
msgid "Secondary server port"
msgstr ""
#: core/app_settings.py:200
#: core/app_settings.py:212
msgid "The TCP port number used by the LDAP secondary server"
msgstr ""
#: core/app_settings.py:207 sievefilters/app_settings.py:58
#: core/app_settings.py:219 sievefilters/app_settings.py:58
#: webmail/app_settings.py:45
msgid "Use a secured connection"
msgstr ""
#: core/app_settings.py:209
#: core/app_settings.py:221
msgid "Use an SSL/STARTTLS connection to access the LDAP server"
msgstr ""
#: core/app_settings.py:216
#: core/app_settings.py:228
msgid "Active Directory"
msgstr ""
#: core/app_settings.py:218
#: core/app_settings.py:230
msgid "Tell if the LDAP server is an Active Directory one"
msgstr ""
#: core/app_settings.py:225
#: core/app_settings.py:237
msgid "Administrator groups"
msgstr ""
#: core/app_settings.py:227
#: core/app_settings.py:239
msgid ""
"Members of those LDAP Posix groups will be created as domain administrators. "
"Use ';' characters to separate groups."
msgstr ""
#: core/app_settings.py:236
#: core/app_settings.py:248
msgid "Group type"
msgstr ""
#: core/app_settings.py:238
#: core/app_settings.py:250
msgid "The LDAP group type to use with your directory."
msgstr ""
#: core/app_settings.py:245
#: core/app_settings.py:257
msgid "Groups search base"
msgstr ""
#: core/app_settings.py:247
#: core/app_settings.py:259
msgid "The distinguished name of the search base used to find groups"
msgstr ""
#: core/app_settings.py:255
#: core/app_settings.py:267
msgid "Password attribute"
msgstr ""
#: core/app_settings.py:257
#: core/app_settings.py:269
msgid "The attribute used to store user passwords"
msgstr ""
#: core/app_settings.py:264
#: core/app_settings.py:276
msgid "LDAP authentication settings"
msgstr ""
#: core/app_settings.py:272
#: core/app_settings.py:284
msgid "Authentication method"
msgstr ""
#: core/app_settings.py:275
#: core/app_settings.py:287
msgid "Choose the authentication method to use"
msgstr ""
#: core/app_settings.py:282 core/app_settings.py:345
#: core/app_settings.py:294 core/app_settings.py:357
msgid "Bind DN"
msgstr ""
#: core/app_settings.py:284 core/app_settings.py:347
#: core/app_settings.py:296 core/app_settings.py:359
msgid ""
"The distinguished name to use when binding to the LDAP server. Leave empty "
"for an anonymous bind"
msgstr ""
#: core/app_settings.py:293 core/app_settings.py:355
#: core/app_settings.py:305 core/app_settings.py:367
msgid "Bind password"
msgstr ""
#: core/app_settings.py:295 core/app_settings.py:357
#: core/app_settings.py:307 core/app_settings.py:369
msgid "The password to use when binding to the LDAP server (with 'Bind DN')"
msgstr ""
#: core/app_settings.py:305 core/app_settings.py:410
#: core/app_settings.py:317 core/app_settings.py:422
msgid "Users search base"
msgstr ""
#: core/app_settings.py:307 core/app_settings.py:412
#: core/app_settings.py:319 core/app_settings.py:424
msgid "The distinguished name of the search base used to find users"
msgstr ""
#: core/app_settings.py:316 core/app_settings.py:421
#: core/app_settings.py:328 core/app_settings.py:433
msgid "Search filter"
msgstr ""
#: core/app_settings.py:318 core/app_settings.py:423
#: core/app_settings.py:330 core/app_settings.py:435
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:327
#: core/app_settings.py:339
msgid "User DN template"
msgstr ""
#: core/app_settings.py:329
#: core/app_settings.py:341
#, 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:338
#: core/app_settings.py:350
msgid "LDAP synchronization settings"
msgstr ""
#: core/app_settings.py:366
#: core/app_settings.py:378
msgid "Enable export to LDAP"
msgstr ""
#: core/app_settings.py:368
#: core/app_settings.py:380
msgid ""
"Enable automatic synchronization between local database and LDAP directory"
msgstr ""
#: core/app_settings.py:377
#: core/app_settings.py:389
msgid "Delete remote LDAP account when local account is deleted"
msgstr ""
#: core/app_settings.py:380
#: core/app_settings.py:392
msgid ""
"Delete remote LDAP account when local account is deleted, otherwise it will "
"be disabled."
msgstr ""
#: core/app_settings.py:389
#: core/app_settings.py:401
msgid "Account DN template"
msgstr ""
#: core/app_settings.py:391
#: core/app_settings.py:403
#, 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:400
#: core/app_settings.py:412
msgid "Enable import from LDAP"
msgstr ""
#: core/app_settings.py:402
#: core/app_settings.py:414
msgid "Enable account synchronization from LDAP directory to local database"
msgstr ""
#: core/app_settings.py:432
#: core/app_settings.py:444
msgid "Username attribute"
msgstr ""
#: core/app_settings.py:434
#: core/app_settings.py:446
msgid "The name of the LDAP attribute where the username can be found."
msgstr ""
#: core/app_settings.py:443
#: core/app_settings.py:455
msgid "Enable Dovecot LDAP sync"
msgstr ""
#: core/app_settings.py:445
#: core/app_settings.py:457
msgid "LDAP authentication settings will be applied to Dovecot configuration."
msgstr ""
#: core/app_settings.py:453
#: core/app_settings.py:465
msgid "Dovecot LDAP config file"
msgstr ""
#: core/app_settings.py:455
#: core/app_settings.py:467
msgid ""
"Location of the configuration file which contains Dovecot LDAP settings."
msgstr ""
#: core/app_settings.py:468
#: core/app_settings.py:480
msgid "Dashboard"
msgstr ""
#: core/app_settings.py:474
#: core/app_settings.py:486
msgid "Custom welcome message"
msgstr ""
#: core/app_settings.py:488
msgid "A welcome message that will be displayed instead the default one"
msgstr ""
#: core/app_settings.py:495
msgid "Custom RSS feed"
msgstr ""
#: core/app_settings.py:476
#: core/app_settings.py:497
msgid "Display custom RSS feed to resellers and domain administrators"
msgstr ""
#: core/app_settings.py:484
msgid "Hide features widget"
msgstr ""
#: core/app_settings.py:486
msgid "Hide features widget for resellers and domain administrators"
msgstr ""
#: core/app_settings.py:498
msgid "Notifications"
msgstr ""
#: core/app_settings.py:504
msgid "Sender address"
msgstr ""
#: core/app_settings.py:506
msgid "Email address used to send notifications."
msgid "Display custom RSS feed to super admins"
msgstr ""
#: core/app_settings.py:509
msgid "Display custom RSS feed also to super administrators"
msgstr ""
#: core/app_settings.py:517
msgid "Hide features widget"
msgstr ""
#: core/app_settings.py:519
msgid "Hide features widget for resellers and domain administrators"
msgstr ""
#: core/app_settings.py:531
msgid "Theme"
msgstr ""
#: core/app_settings.py:537
msgid "Primary theme color"
msgstr ""
#: core/app_settings.py:539
msgid ""
"Primary color of the theme (hexadecimal code), used as the background color "
"of the left menu for example"
msgstr ""
#: core/app_settings.py:548
msgid "Primary theme color (lighter version)"
msgstr ""
#: core/app_settings.py:551 core/app_settings.py:563
msgid "Primary color of the theme (hexadecimal code)"
msgstr ""
#: core/app_settings.py:560
msgid "Primary theme color (darker version)"
msgstr ""
#: core/app_settings.py:571
msgid "Secondary theme color"
msgstr ""
#: core/app_settings.py:573
msgid ""
"Secondary color of the theme (hexadecimal code), used as the background "
"color of some buttons for example"
msgstr ""
#: core/app_settings.py:581
msgid "Labels theme color"
msgstr ""
#: core/app_settings.py:583
msgid "Theme color for labels (hexadecimal code)"
msgstr ""
#: core/app_settings.py:595
msgid "Notifications"
msgstr ""
#: core/app_settings.py:601
msgid "Sender address"
msgstr ""
#: core/app_settings.py:603
msgid "Email address used to send notifications."
msgstr ""
#: core/app_settings.py:614
msgid "Public API"
msgstr ""
#: core/app_settings.py:523
#: core/app_settings.py:620
msgid "Enable communication"
msgstr ""
#: core/app_settings.py:525 core/app_settings.py:535
#: core/app_settings.py:622 core/app_settings.py:632
msgid "Automatically checks if a newer version is available"
msgstr ""
#: core/app_settings.py:532
#: core/app_settings.py:629
msgid "Check new versions"
msgstr ""
#: core/app_settings.py:543
#: core/app_settings.py:640
msgid "Send an email when new versions are found"
msgstr ""
#: core/app_settings.py:547
#: core/app_settings.py:644
msgid "Send an email to notify admins about new versions"
msgstr ""
#: core/app_settings.py:554 sievefilters/constants.py:25
#: core/app_settings.py:651 sievefilters/constants.py:25
msgid "Recipient"
msgstr ""
#: core/app_settings.py:557
#: core/app_settings.py:654
msgid "Recipient of new versions notification emails."
msgstr ""
#: core/app_settings.py:564
#: core/app_settings.py:661
msgid "Send statistics"
msgstr ""
#: core/app_settings.py:567
#: core/app_settings.py:664
msgid "Send statistics to Modoboa public API (counters and used extensions)"
msgstr ""
#: core/app_settings.py:586
#: core/app_settings.py:683
msgid "Enable inactive account tracking"
msgstr ""
#: core/app_settings.py:589
#: core/app_settings.py:686
msgid ""
"Allow the administrator to set a threshold (in days) beyond which an account "
"is considered inactive if the user hasn't logged in"
msgstr ""
#: core/app_settings.py:598
#: core/app_settings.py:695
msgid "Inactive account threshold"
msgstr ""
#: core/app_settings.py:601
#: core/app_settings.py:698
msgid ""
"An account with a last login date greater than this threshold (in days) will "
"be considered as inactive"
msgstr ""
#: core/app_settings.py:610
#: core/app_settings.py:707
msgid "Top notifications check interval"
msgstr ""
#: core/app_settings.py:613
#: core/app_settings.py:710
msgid "Interval between two top notification checks (in seconds)"
msgstr ""
#: core/app_settings.py:620
#: core/app_settings.py:717
msgid "Maximum log record age"
msgstr ""
#: core/app_settings.py:622
#: core/app_settings.py:719
msgid "The maximum age in days of a log record"
msgstr ""
#: core/app_settings.py:629
#: core/app_settings.py:726
msgid "Items per page"
msgstr ""
#: core/app_settings.py:631
#: core/app_settings.py:728
msgid "Number of displayed items per page"
msgstr ""
#: core/app_settings.py:638
#: core/app_settings.py:735
msgid "Default top redirection"
msgstr ""
#: core/app_settings.py:640
#: core/app_settings.py:737
msgid "The default redirection used when no application is specified"
msgstr ""
#: core/checks.py:13
#: core/checks.py:15
msgid ""
"You have USE_TZ set to False, this may result in issues during transitions "
"between summer/winter time (ie the same local time occuring twice due to "
"clock change)."
msgstr ""
#: core/checks.py:17
#: core/checks.py:19
msgid "Set `USE_TZ = True` in settings.py"
msgstr ""
#: core/checks.py:21
#: core/checks.py:23
msgid "The password scheme you are using is deprecated."
msgstr ""
#: core/checks.py:22
#: core/checks.py:24
msgid "Upgrade your password scheme to a stronger one"
msgstr ""
#: core/checks.py:30
msgid ""
"Oauth2 application for dovecot has not been found. Webmail and some other "
"features won't be available."
msgstr ""
#: core/checks.py:34
msgid ""
"Visit : https://modoboa.readthedocs.io/en/latest/manual_installation/dovecot."
"html#dovecot-oauth2"
msgstr ""
#: core/checks.py:41
msgid ""
"Oauth2 application for radicale has not been found. Calendar and some other "
"features won't be available."
msgstr ""
#: core/checks.py:45
msgid ""
"Visit : https://modoboa.readthedocs.io/en/latest/manual_installation/"
"radicale.html#radicale-oauth2"
msgstr ""
#: core/constants.py:6
msgid "Simple user"
msgstr ""
@@ -1473,59 +1565,59 @@ msgstr ""
msgid "[modoboa] Update(s) available"
msgstr ""
#: core/models.py:72
#: core/models.py:71
msgid "Allow mailboxes access"
msgstr ""
#: core/models.py:74
#: core/models.py:73
msgid "Allow this administrator to access user mailboxes"
msgstr ""
#: core/models.py:76
#: core/models.py:75
msgid "password"
msgstr ""
#: core/models.py:79
#: core/models.py:78
msgid "language"
msgstr ""
#: core/models.py:83
#: core/models.py:82
msgid "Prefered language to display pages."
msgstr ""
#: core/models.py:85
#: core/models.py:84
msgid "Phone number"
msgstr ""
#: core/models.py:87
#: core/models.py:86
msgid "Secondary email"
msgstr ""
#: core/models.py:92
#: core/models.py:91
msgid "An alternative e-mail address, can be used for recovery needs."
msgstr ""
#: core/models.py:151
#: core/models.py:150
msgid "Failed to update password: LDAP module not installed"
msgstr ""
#: core/models.py:186 policyd/core.py:117
#: core/models.py:185 policyd/core.py:117
msgid "account"
msgstr ""
#: core/models.py:318
#: core/models.py:317
msgid "Unknown"
msgstr ""
#: core/models.py:361
#: core/models.py:360
msgid "You can't import an account with a role greater than yours"
msgstr ""
#: core/models.py:376
#: core/models.py:375
msgid "The simple user '{}' must have a valid email address"
msgstr ""
#: core/models.py:384
#: core/models.py:383
msgid "username and email fields must not differ for '{}'"
msgstr ""
@@ -1852,7 +1944,7 @@ msgstr ""
msgid "IMAP Migration"
msgstr ""
#: imap_migration/auth_backends.py:49 webmail/lib/imaputils.py:241
#: imap_migration/auth_backends.py:49 webmail/lib/imaputils.py:240
#, python-brace-format
msgid "Connection to IMAP server failed: {error}"
msgstr ""
@@ -1884,21 +1976,21 @@ msgstr ""
msgid "Failed to disable LDAP account: {}"
msgstr ""
#: lib/api_client.py:35 lib/api_client.py:69 lib/api_client.py:83
#: lib/api_client.py:87
#: lib/api_client.py:35 lib/api_client.py:67 lib/api_client.py:81
#: lib/api_client.py:85
#, python-format
msgid "Failed to communicate with public API: %s"
msgstr ""
#: lib/email_utils.py:139 lib/email_utils.py:350
#: lib/email_utils.py:140 lib/email_utils.py:351
msgid "unable to determine encoding of string"
msgstr ""
#: lib/exceptions.py:85
#: lib/exceptions.py:83
msgid "Permission denied: {}"
msgstr ""
#: lib/exceptions.py:86
#: lib/exceptions.py:84
msgid "Permission denied"
msgstr ""
@@ -2586,11 +2678,11 @@ msgstr ""
msgid "Stop processing"
msgstr ""
#: sievefilters/lib.py:51
#: sievefilters/lib.py:49
msgid "Connection to MANAGESIEVE server failed, check your configuration"
msgstr ""
#: sievefilters/lib.py:78
#: sievefilters/lib.py:76
msgid "Not enough space on server"
msgstr ""
@@ -2892,7 +2984,7 @@ msgstr ""
msgid "User defined email signature"
msgstr ""
#: webmail/lib/attachments.py:113
#: webmail/lib/attachments.py:112
msgid "Failed to remove attachment: "
msgstr ""
@@ -2900,7 +2992,7 @@ msgstr ""
msgid "Date"
msgstr ""
#: webmail/lib/imaputils.py:222
#: webmail/lib/imaputils.py:221
msgid "Failed to retrieve hierarchy delimiter"
msgstr ""
File diff suppressed because it is too large Load Diff
+266 -174
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-06-20 16:45+0200\n"
"POT-Creation-Date: 2025-07-27 10:50+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -18,75 +18,75 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: admin/api/v1/serializers.py:41
#: admin/api/v1/serializers.py:39
msgid ""
"Quota shared between mailboxes. Can be expressed in KB, MB (default) or GB. "
"A value of 0 means no quota."
msgstr ""
#: admin/api/v1/serializers.py:48
#: admin/api/v1/serializers.py:46
msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota."
msgstr ""
#: admin/api/v1/serializers.py:90
#: admin/api/v1/serializers.py:88
msgid "domain alias with this name already exists"
msgstr ""
#: admin/api/v1/serializers.py:100
#: admin/api/v1/serializers.py:98
msgid "No authorized MX record found for this domain"
msgstr ""
#: admin/api/v1/serializers.py:118
#: admin/api/v1/serializers.py:116
msgid "Cannot be greater than domain quota"
msgstr ""
#: admin/api/v1/serializers.py:164 admin/api/v1/serializers.py:359
#: admin/api/v2/serializers.py:531 admin/models/alias.py:44
#: admin/api/v1/serializers.py:162 admin/api/v1/serializers.py:357
#: admin/api/v2/serializers.py:548 admin/models/alias.py:44
msgid "Permission denied."
msgstr ""
#: admin/api/v1/serializers.py:226 admin/api/v2/serializers.py:89
#: admin/api/v2/serializers.py:453 core/api/v2/serializers.py:225
#: core/api/v2/serializers.py:227 core/api/v2/serializers.py:236
#: admin/api/v1/serializers.py:224 admin/api/v2/serializers.py:88
#: admin/api/v2/serializers.py:470 core/api/v2/serializers.py:235
#: core/api/v2/serializers.py:237 core/api/v2/serializers.py:246
#: transport/backends.py:40
msgid "This field is required"
msgstr ""
#: admin/api/v1/serializers.py:238
#: admin/api/v1/serializers.py:236
msgid ""
"List of administered domains (resellers and domain administrators only)."
msgstr ""
#: admin/api/v1/serializers.py:332 admin/api/v2/serializers.py:513
#: admin/api/v1/serializers.py:330 admin/api/v2/serializers.py:530
msgid "Not allowed for this role."
msgstr ""
#: admin/api/v1/serializers.py:350
#: admin/api/v1/serializers.py:348
msgid "Must be equal to mailbox full_address"
msgstr ""
#: admin/api/v1/serializers.py:392 admin/api/v2/serializers.py:565
#: admin/api/v1/serializers.py:390 admin/api/v2/serializers.py:582
#: calendars/serializers.py:175 calendars/serializers.py:177
msgid "This field is required."
msgstr ""
#: admin/api/v1/serializers.py:404 admin/api/v2/serializers.py:582
#: admin/api/v1/serializers.py:402 admin/api/v2/serializers.py:599
msgid "Local domain {} does not exist"
msgstr ""
#: admin/api/v1/serializers.py:494
#: admin/api/v1/serializers.py:492
msgid "A list of recipient"
msgstr ""
#: admin/api/v1/serializers.py:510 admin/api/v2/viewsets.py:271
#: admin/api/v1/serializers.py:508 admin/api/v2/viewsets.py:286
msgid "This alias already exists"
msgstr ""
#: admin/api/v1/serializers.py:546
#: admin/api/v1/serializers.py:544
msgid "You don't have access to this domain."
msgstr ""
#: admin/api/v1/serializers.py:555
#: admin/api/v1/serializers.py:553
msgid "You don't have access to this mailbox."
msgstr ""
@@ -94,56 +94,56 @@ msgstr ""
msgid "Here is your new Modoboa password: {}"
msgstr ""
#: admin/api/v2/serializers.py:81
#: admin/api/v2/serializers.py:80
msgid "DKIM keys storage directory not configured"
msgstr ""
#: admin/api/v2/serializers.py:93
#: admin/api/v2/serializers.py:92
msgid "This field is valid when type is relaydomain"
msgstr ""
#: admin/api/v2/serializers.py:100
#: admin/api/v2/serializers.py:99
msgid "You can't define an unlimited quota."
msgstr ""
#: admin/api/v2/serializers.py:134
#: admin/api/v2/serializers.py:133
#, python-format
msgid "User '%s' already exists"
msgstr ""
#: admin/api/v2/serializers.py:249 admin/api/v2/serializers.py:255
#: admin/api/v2/serializers.py:248 admin/api/v2/serializers.py:254
msgid "Must be a positive integer"
msgstr ""
#: admin/api/v2/serializers.py:264
#: admin/api/v2/serializers.py:263
msgid "openssl not found, please make sure it is installed."
msgstr ""
#: admin/api/v2/serializers.py:267 pdfcredentials/api/v2/serializers.py:79
#: admin/api/v2/serializers.py:266 pdfcredentials/api/v2/serializers.py:79
msgid "Directory not found."
msgstr ""
#: admin/api/v2/serializers.py:278
#: admin/api/v2/serializers.py:277
msgid "This field only allows valid IP addresses (or networks)"
msgstr ""
#: admin/api/v2/serializers.py:291
#: admin/api/v2/serializers.py:290
msgid "Please disable imap migration before disabling this option."
msgstr ""
#: admin/api/v2/serializers.py:304
#: admin/api/v2/serializers.py:303
msgid "Define at least one authorized network / address"
msgstr ""
#: admin/api/v2/serializers.py:548
#: admin/api/v2/serializers.py:565
msgid "The left part of an email address can't be more than 64 characters."
msgstr ""
#: admin/api/v2/serializers.py:570
#: admin/api/v2/serializers.py:587
msgid "A mailbox is required to create aliases."
msgstr ""
#: admin/api/v2/serializers.py:734
#: admin/api/v2/serializers.py:751
msgid "Unknown status"
msgstr ""
@@ -155,11 +155,11 @@ msgstr ""
msgid "You can't delete your own domain"
msgstr ""
#: admin/api/v2/viewsets.py:392
#: admin/api/v2/viewsets.py:407
msgid "No alarm ID provided"
msgstr ""
#: admin/api/v2/viewsets.py:396
#: admin/api/v2/viewsets.py:411
msgid "Received invalid alarm id(s)"
msgstr ""
@@ -424,12 +424,12 @@ msgstr ""
msgid "Invalid IP address format for {domain}; {addr}"
msgstr ""
#: admin/lib.py:340
#: admin/lib.py:360
#, python-format
msgid "Object already exists: %s"
msgstr ""
#: admin/lib.py:344
#: admin/lib.py:364
#, python-format
msgid "%d objects imported successfully"
msgstr ""
@@ -578,7 +578,7 @@ msgid "Key length"
msgstr ""
#: admin/models/domain.py:321 admin/models/domain_alias.py:70
#: core/models.py:353 relaydomains/lib.py:13
#: core/models.py:352 relaydomains/lib.py:13
msgid "Invalid line"
msgstr ""
@@ -774,7 +774,7 @@ msgstr ""
msgid "Allow domain administrators to manage user calendars (read and write)"
msgstr ""
#: calendars/app_settings.py:60 core/app_settings.py:579
#: calendars/app_settings.py:60 core/app_settings.py:676
#: rspamd/app_settings.py:45
msgid "Miscellaneous"
msgstr ""
@@ -875,7 +875,7 @@ msgstr ""
msgid "Failed TFA settings editing attempt from '%s' as user '%s'"
msgstr ""
#: core/api/v1/serializers.py:91 core/api/v2/serializers.py:415
#: core/api/v1/serializers.py:91 core/api/v2/serializers.py:425
msgid "Invalid password"
msgstr ""
@@ -887,24 +887,24 @@ msgstr ""
msgid "Local"
msgstr ""
#: core/api/v2/serializers.py:165 core/app_settings.py:17
#: core/api/v2/serializers.py:175 core/app_settings.py:17
msgid "User profile"
msgstr ""
#: core/api/v2/serializers.py:184 core/api/v2/serializers.py:191
#: core/api/v2/serializers.py:198
#: core/api/v2/serializers.py:194 core/api/v2/serializers.py:201
#: core/api/v2/serializers.py:208
msgid "Invalid syntax"
msgstr ""
#: core/api/v2/serializers.py:203
#: core/api/v2/serializers.py:213
msgid "Invalid rounds number"
msgstr ""
#: core/api/v2/serializers.py:403 core/forms.py:81
#: core/api/v2/serializers.py:413 core/forms.py:81
msgid "This code is invalid"
msgstr ""
#: core/api/v2/serializers.py:473 core/views/auth.py:194 core/views/auth.py:247
#: core/api/v2/serializers.py:483 core/views/auth.py:194 core/views/auth.py:247
msgid "Please use the following code to recover your Modoboa password: {}"
msgstr ""
@@ -979,410 +979,502 @@ msgstr ""
msgid "Length of randomly generated passwords."
msgstr ""
#: core/app_settings.py:102
#: core/app_settings.py:103
msgid "Allow special characters for random password"
msgstr ""
#: core/app_settings.py:106
msgid "Enable special characters in randomly generated passwords."
msgstr ""
#: core/app_settings.py:114
msgid "Update password service URL"
msgstr ""
#: core/app_settings.py:104
#: core/app_settings.py:116
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:114
#: core/app_settings.py:126
msgid "Password recovery announcement"
msgstr ""
#: core/app_settings.py:116
#: core/app_settings.py:128
msgid "A temporary message that will be displayed on the reset password page."
msgstr ""
#: core/app_settings.py:125
#: core/app_settings.py:137
msgid "Enable password recovery by SMS"
msgstr ""
#: core/app_settings.py:128
#: core/app_settings.py:140
msgid "Enable password recovery by SMS for users who filled a phone number."
msgstr ""
#: core/app_settings.py:136
#: core/app_settings.py:148
msgid "SMS provider"
msgstr ""
#: core/app_settings.py:139
#: core/app_settings.py:151
msgid "Choose a provider to send password recovery SMS"
msgstr ""
#: core/app_settings.py:151
#: core/app_settings.py:163
msgid "LDAP"
msgstr ""
#: core/app_settings.py:157 sievefilters/app_settings.py:18
#: core/app_settings.py:169 sievefilters/app_settings.py:18
#: sievefilters/app_settings.py:51 webmail/app_settings.py:36
#: webmail/app_settings.py:73
msgid "Server address"
msgstr ""
#: core/app_settings.py:159
#: core/app_settings.py:171
msgid "The IP address or the DNS name of the LDAP server"
msgstr ""
#: core/app_settings.py:166 sievefilters/app_settings.py:25
#: core/app_settings.py:178 sievefilters/app_settings.py:25
#: sievefilters/app_settings.py:67 webmail/app_settings.py:54
#: webmail/app_settings.py:91
msgid "Server port"
msgstr ""
#: core/app_settings.py:168
#: core/app_settings.py:180
msgid "The TCP port number used by the LDAP server"
msgstr ""
#: core/app_settings.py:176
#: core/app_settings.py:188
msgid "Enable secondary server (fallback)"
msgstr ""
#: core/app_settings.py:179
#: core/app_settings.py:191
msgid ""
"Enable a secondary LDAP server which will be used if the primary one fails"
msgstr ""
#: core/app_settings.py:187
#: core/app_settings.py:199
msgid "Secondary server address"
msgstr ""
#: core/app_settings.py:190
#: core/app_settings.py:202
msgid "The IP address or the DNS name of the seondary LDAP server"
msgstr ""
#: core/app_settings.py:197
#: core/app_settings.py:209
msgid "Secondary server port"
msgstr ""
#: core/app_settings.py:200
#: core/app_settings.py:212
msgid "The TCP port number used by the LDAP secondary server"
msgstr ""
#: core/app_settings.py:207 sievefilters/app_settings.py:58
#: core/app_settings.py:219 sievefilters/app_settings.py:58
#: webmail/app_settings.py:45
msgid "Use a secured connection"
msgstr ""
#: core/app_settings.py:209
#: core/app_settings.py:221
msgid "Use an SSL/STARTTLS connection to access the LDAP server"
msgstr ""
#: core/app_settings.py:216
#: core/app_settings.py:228
msgid "Active Directory"
msgstr ""
#: core/app_settings.py:218
#: core/app_settings.py:230
msgid "Tell if the LDAP server is an Active Directory one"
msgstr ""
#: core/app_settings.py:225
#: core/app_settings.py:237
msgid "Administrator groups"
msgstr ""
#: core/app_settings.py:227
#: core/app_settings.py:239
msgid ""
"Members of those LDAP Posix groups will be created as domain administrators. "
"Use ';' characters to separate groups."
msgstr ""
#: core/app_settings.py:236
#: core/app_settings.py:248
msgid "Group type"
msgstr ""
#: core/app_settings.py:238
#: core/app_settings.py:250
msgid "The LDAP group type to use with your directory."
msgstr ""
#: core/app_settings.py:245
#: core/app_settings.py:257
msgid "Groups search base"
msgstr ""
#: core/app_settings.py:247
#: core/app_settings.py:259
msgid "The distinguished name of the search base used to find groups"
msgstr ""
#: core/app_settings.py:255
#: core/app_settings.py:267
msgid "Password attribute"
msgstr ""
#: core/app_settings.py:257
#: core/app_settings.py:269
msgid "The attribute used to store user passwords"
msgstr ""
#: core/app_settings.py:264
#: core/app_settings.py:276
msgid "LDAP authentication settings"
msgstr ""
#: core/app_settings.py:272
#: core/app_settings.py:284
msgid "Authentication method"
msgstr ""
#: core/app_settings.py:275
#: core/app_settings.py:287
msgid "Choose the authentication method to use"
msgstr ""
#: core/app_settings.py:282 core/app_settings.py:345
#: core/app_settings.py:294 core/app_settings.py:357
msgid "Bind DN"
msgstr ""
#: core/app_settings.py:284 core/app_settings.py:347
#: core/app_settings.py:296 core/app_settings.py:359
msgid ""
"The distinguished name to use when binding to the LDAP server. Leave empty "
"for an anonymous bind"
msgstr ""
#: core/app_settings.py:293 core/app_settings.py:355
#: core/app_settings.py:305 core/app_settings.py:367
msgid "Bind password"
msgstr ""
#: core/app_settings.py:295 core/app_settings.py:357
#: core/app_settings.py:307 core/app_settings.py:369
msgid "The password to use when binding to the LDAP server (with 'Bind DN')"
msgstr ""
#: core/app_settings.py:305 core/app_settings.py:410
#: core/app_settings.py:317 core/app_settings.py:422
msgid "Users search base"
msgstr ""
#: core/app_settings.py:307 core/app_settings.py:412
#: core/app_settings.py:319 core/app_settings.py:424
msgid "The distinguished name of the search base used to find users"
msgstr ""
#: core/app_settings.py:316 core/app_settings.py:421
#: core/app_settings.py:328 core/app_settings.py:433
msgid "Search filter"
msgstr ""
#: core/app_settings.py:318 core/app_settings.py:423
#: core/app_settings.py:330 core/app_settings.py:435
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:327
#: core/app_settings.py:339
msgid "User DN template"
msgstr ""
#: core/app_settings.py:329
#: core/app_settings.py:341
#, 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:338
#: core/app_settings.py:350
msgid "LDAP synchronization settings"
msgstr ""
#: core/app_settings.py:366
#: core/app_settings.py:378
msgid "Enable export to LDAP"
msgstr ""
#: core/app_settings.py:368
#: core/app_settings.py:380
msgid ""
"Enable automatic synchronization between local database and LDAP directory"
msgstr ""
#: core/app_settings.py:377
#: core/app_settings.py:389
msgid "Delete remote LDAP account when local account is deleted"
msgstr ""
#: core/app_settings.py:380
#: core/app_settings.py:392
msgid ""
"Delete remote LDAP account when local account is deleted, otherwise it will "
"be disabled."
msgstr ""
#: core/app_settings.py:389
#: core/app_settings.py:401
msgid "Account DN template"
msgstr ""
#: core/app_settings.py:391
#: core/app_settings.py:403
#, 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:400
#: core/app_settings.py:412
msgid "Enable import from LDAP"
msgstr ""
#: core/app_settings.py:402
#: core/app_settings.py:414
msgid "Enable account synchronization from LDAP directory to local database"
msgstr ""
#: core/app_settings.py:432
#: core/app_settings.py:444
msgid "Username attribute"
msgstr ""
#: core/app_settings.py:434
#: core/app_settings.py:446
msgid "The name of the LDAP attribute where the username can be found."
msgstr ""
#: core/app_settings.py:443
#: core/app_settings.py:455
msgid "Enable Dovecot LDAP sync"
msgstr ""
#: core/app_settings.py:445
#: core/app_settings.py:457
msgid "LDAP authentication settings will be applied to Dovecot configuration."
msgstr ""
#: core/app_settings.py:453
#: core/app_settings.py:465
msgid "Dovecot LDAP config file"
msgstr ""
#: core/app_settings.py:455
#: core/app_settings.py:467
msgid ""
"Location of the configuration file which contains Dovecot LDAP settings."
msgstr ""
#: core/app_settings.py:468
#: core/app_settings.py:480
msgid "Dashboard"
msgstr ""
#: core/app_settings.py:474
#: core/app_settings.py:486
msgid "Custom welcome message"
msgstr ""
#: core/app_settings.py:488
msgid "A welcome message that will be displayed instead the default one"
msgstr ""
#: core/app_settings.py:495
msgid "Custom RSS feed"
msgstr ""
#: core/app_settings.py:476
#: core/app_settings.py:497
msgid "Display custom RSS feed to resellers and domain administrators"
msgstr ""
#: core/app_settings.py:484
msgid "Hide features widget"
msgstr ""
#: core/app_settings.py:486
msgid "Hide features widget for resellers and domain administrators"
msgstr ""
#: core/app_settings.py:498
msgid "Notifications"
msgstr ""
#: core/app_settings.py:504
msgid "Sender address"
msgstr ""
#: core/app_settings.py:506
msgid "Email address used to send notifications."
msgid "Display custom RSS feed to super admins"
msgstr ""
#: core/app_settings.py:509
msgid "Display custom RSS feed also to super administrators"
msgstr ""
#: core/app_settings.py:517
msgid "Hide features widget"
msgstr ""
#: core/app_settings.py:519
msgid "Hide features widget for resellers and domain administrators"
msgstr ""
#: core/app_settings.py:531
msgid "Theme"
msgstr ""
#: core/app_settings.py:537
msgid "Primary theme color"
msgstr ""
#: core/app_settings.py:539
msgid ""
"Primary color of the theme (hexadecimal code), used as the background color "
"of the left menu for example"
msgstr ""
#: core/app_settings.py:548
msgid "Primary theme color (lighter version)"
msgstr ""
#: core/app_settings.py:551 core/app_settings.py:563
msgid "Primary color of the theme (hexadecimal code)"
msgstr ""
#: core/app_settings.py:560
msgid "Primary theme color (darker version)"
msgstr ""
#: core/app_settings.py:571
msgid "Secondary theme color"
msgstr ""
#: core/app_settings.py:573
msgid ""
"Secondary color of the theme (hexadecimal code), used as the background "
"color of some buttons for example"
msgstr ""
#: core/app_settings.py:581
msgid "Labels theme color"
msgstr ""
#: core/app_settings.py:583
msgid "Theme color for labels (hexadecimal code)"
msgstr ""
#: core/app_settings.py:595
msgid "Notifications"
msgstr ""
#: core/app_settings.py:601
msgid "Sender address"
msgstr ""
#: core/app_settings.py:603
msgid "Email address used to send notifications."
msgstr ""
#: core/app_settings.py:614
msgid "Public API"
msgstr ""
#: core/app_settings.py:523
#: core/app_settings.py:620
msgid "Enable communication"
msgstr ""
#: core/app_settings.py:525 core/app_settings.py:535
#: core/app_settings.py:622 core/app_settings.py:632
msgid "Automatically checks if a newer version is available"
msgstr ""
#: core/app_settings.py:532
#: core/app_settings.py:629
msgid "Check new versions"
msgstr ""
#: core/app_settings.py:543
#: core/app_settings.py:640
msgid "Send an email when new versions are found"
msgstr ""
#: core/app_settings.py:547
#: core/app_settings.py:644
msgid "Send an email to notify admins about new versions"
msgstr ""
#: core/app_settings.py:554 sievefilters/constants.py:25
#: core/app_settings.py:651 sievefilters/constants.py:25
msgid "Recipient"
msgstr ""
#: core/app_settings.py:557
#: core/app_settings.py:654
msgid "Recipient of new versions notification emails."
msgstr ""
#: core/app_settings.py:564
#: core/app_settings.py:661
msgid "Send statistics"
msgstr ""
#: core/app_settings.py:567
#: core/app_settings.py:664
msgid "Send statistics to Modoboa public API (counters and used extensions)"
msgstr ""
#: core/app_settings.py:586
#: core/app_settings.py:683
msgid "Enable inactive account tracking"
msgstr ""
#: core/app_settings.py:589
#: core/app_settings.py:686
msgid ""
"Allow the administrator to set a threshold (in days) beyond which an account "
"is considered inactive if the user hasn't logged in"
msgstr ""
#: core/app_settings.py:598
#: core/app_settings.py:695
msgid "Inactive account threshold"
msgstr ""
#: core/app_settings.py:601
#: core/app_settings.py:698
msgid ""
"An account with a last login date greater than this threshold (in days) will "
"be considered as inactive"
msgstr ""
#: core/app_settings.py:610
#: core/app_settings.py:707
msgid "Top notifications check interval"
msgstr ""
#: core/app_settings.py:613
#: core/app_settings.py:710
msgid "Interval between two top notification checks (in seconds)"
msgstr ""
#: core/app_settings.py:620
#: core/app_settings.py:717
msgid "Maximum log record age"
msgstr ""
#: core/app_settings.py:622
#: core/app_settings.py:719
msgid "The maximum age in days of a log record"
msgstr ""
#: core/app_settings.py:629
#: core/app_settings.py:726
msgid "Items per page"
msgstr ""
#: core/app_settings.py:631
#: core/app_settings.py:728
msgid "Number of displayed items per page"
msgstr ""
#: core/app_settings.py:638
#: core/app_settings.py:735
msgid "Default top redirection"
msgstr ""
#: core/app_settings.py:640
#: core/app_settings.py:737
msgid "The default redirection used when no application is specified"
msgstr ""
#: core/checks.py:13
#: core/checks.py:15
msgid ""
"You have USE_TZ set to False, this may result in issues during transitions "
"between summer/winter time (ie the same local time occuring twice due to "
"clock change)."
msgstr ""
#: core/checks.py:17
#: core/checks.py:19
msgid "Set `USE_TZ = True` in settings.py"
msgstr ""
#: core/checks.py:21
#: core/checks.py:23
msgid "The password scheme you are using is deprecated."
msgstr ""
#: core/checks.py:22
#: core/checks.py:24
msgid "Upgrade your password scheme to a stronger one"
msgstr ""
#: core/checks.py:30
msgid ""
"Oauth2 application for dovecot has not been found. Webmail and some other "
"features won't be available."
msgstr ""
#: core/checks.py:34
msgid ""
"Visit : https://modoboa.readthedocs.io/en/latest/manual_installation/dovecot."
"html#dovecot-oauth2"
msgstr ""
#: core/checks.py:41
msgid ""
"Oauth2 application for radicale has not been found. Calendar and some other "
"features won't be available."
msgstr ""
#: core/checks.py:45
msgid ""
"Visit : https://modoboa.readthedocs.io/en/latest/manual_installation/"
"radicale.html#radicale-oauth2"
msgstr ""
#: core/constants.py:6
msgid "Simple user"
msgstr ""
@@ -1474,59 +1566,59 @@ msgstr ""
msgid "[modoboa] Update(s) available"
msgstr ""
#: core/models.py:72
#: core/models.py:71
msgid "Allow mailboxes access"
msgstr ""
#: core/models.py:74
#: core/models.py:73
msgid "Allow this administrator to access user mailboxes"
msgstr ""
#: core/models.py:76
#: core/models.py:75
msgid "password"
msgstr ""
#: core/models.py:79
#: core/models.py:78
msgid "language"
msgstr ""
#: core/models.py:83
#: core/models.py:82
msgid "Prefered language to display pages."
msgstr ""
#: core/models.py:85
#: core/models.py:84
msgid "Phone number"
msgstr ""
#: core/models.py:87
#: core/models.py:86
msgid "Secondary email"
msgstr ""
#: core/models.py:92
#: core/models.py:91
msgid "An alternative e-mail address, can be used for recovery needs."
msgstr ""
#: core/models.py:151
#: core/models.py:150
msgid "Failed to update password: LDAP module not installed"
msgstr ""
#: core/models.py:186 policyd/core.py:117
#: core/models.py:185 policyd/core.py:117
msgid "account"
msgstr ""
#: core/models.py:318
#: core/models.py:317
msgid "Unknown"
msgstr ""
#: core/models.py:361
#: core/models.py:360
msgid "You can't import an account with a role greater than yours"
msgstr ""
#: core/models.py:376
#: core/models.py:375
msgid "The simple user '{}' must have a valid email address"
msgstr ""
#: core/models.py:384
#: core/models.py:383
msgid "username and email fields must not differ for '{}'"
msgstr ""
@@ -1853,7 +1945,7 @@ msgstr ""
msgid "IMAP Migration"
msgstr ""
#: imap_migration/auth_backends.py:49 webmail/lib/imaputils.py:241
#: imap_migration/auth_backends.py:49 webmail/lib/imaputils.py:240
#, python-brace-format
msgid "Connection to IMAP server failed: {error}"
msgstr ""
@@ -1885,21 +1977,21 @@ msgstr ""
msgid "Failed to disable LDAP account: {}"
msgstr ""
#: lib/api_client.py:35 lib/api_client.py:69 lib/api_client.py:83
#: lib/api_client.py:87
#: lib/api_client.py:35 lib/api_client.py:67 lib/api_client.py:81
#: lib/api_client.py:85
#, python-format
msgid "Failed to communicate with public API: %s"
msgstr ""
#: lib/email_utils.py:139 lib/email_utils.py:350
#: lib/email_utils.py:140 lib/email_utils.py:351
msgid "unable to determine encoding of string"
msgstr ""
#: lib/exceptions.py:85
#: lib/exceptions.py:83
msgid "Permission denied: {}"
msgstr ""
#: lib/exceptions.py:86
#: lib/exceptions.py:84
msgid "Permission denied"
msgstr ""
@@ -2587,11 +2679,11 @@ msgstr ""
msgid "Stop processing"
msgstr ""
#: sievefilters/lib.py:51
#: sievefilters/lib.py:49
msgid "Connection to MANAGESIEVE server failed, check your configuration"
msgstr ""
#: sievefilters/lib.py:78
#: sievefilters/lib.py:76
msgid "Not enough space on server"
msgstr ""
@@ -2893,7 +2985,7 @@ msgstr ""
msgid "User defined email signature"
msgstr ""
#: webmail/lib/attachments.py:113
#: webmail/lib/attachments.py:112
msgid "Failed to remove attachment: "
msgstr ""
@@ -2901,7 +2993,7 @@ msgstr ""
msgid "Date"
msgstr ""
#: webmail/lib/imaputils.py:222
#: webmail/lib/imaputils.py:221
msgid "Failed to retrieve hierarchy delimiter"
msgstr ""
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+266 -174
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-06-20 16:45+0200\n"
"POT-Creation-Date: 2025-07-27 10:50+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -18,75 +18,75 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: admin/api/v1/serializers.py:41
#: admin/api/v1/serializers.py:39
msgid ""
"Quota shared between mailboxes. Can be expressed in KB, MB (default) or GB. "
"A value of 0 means no quota."
msgstr ""
#: admin/api/v1/serializers.py:48
#: admin/api/v1/serializers.py:46
msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota."
msgstr ""
#: admin/api/v1/serializers.py:90
#: admin/api/v1/serializers.py:88
msgid "domain alias with this name already exists"
msgstr ""
#: admin/api/v1/serializers.py:100
#: admin/api/v1/serializers.py:98
msgid "No authorized MX record found for this domain"
msgstr ""
#: admin/api/v1/serializers.py:118
#: admin/api/v1/serializers.py:116
msgid "Cannot be greater than domain quota"
msgstr ""
#: admin/api/v1/serializers.py:164 admin/api/v1/serializers.py:359
#: admin/api/v2/serializers.py:531 admin/models/alias.py:44
#: admin/api/v1/serializers.py:162 admin/api/v1/serializers.py:357
#: admin/api/v2/serializers.py:548 admin/models/alias.py:44
msgid "Permission denied."
msgstr ""
#: admin/api/v1/serializers.py:226 admin/api/v2/serializers.py:89
#: admin/api/v2/serializers.py:453 core/api/v2/serializers.py:225
#: core/api/v2/serializers.py:227 core/api/v2/serializers.py:236
#: admin/api/v1/serializers.py:224 admin/api/v2/serializers.py:88
#: admin/api/v2/serializers.py:470 core/api/v2/serializers.py:235
#: core/api/v2/serializers.py:237 core/api/v2/serializers.py:246
#: transport/backends.py:40
msgid "This field is required"
msgstr ""
#: admin/api/v1/serializers.py:238
#: admin/api/v1/serializers.py:236
msgid ""
"List of administered domains (resellers and domain administrators only)."
msgstr ""
#: admin/api/v1/serializers.py:332 admin/api/v2/serializers.py:513
#: admin/api/v1/serializers.py:330 admin/api/v2/serializers.py:530
msgid "Not allowed for this role."
msgstr ""
#: admin/api/v1/serializers.py:350
#: admin/api/v1/serializers.py:348
msgid "Must be equal to mailbox full_address"
msgstr ""
#: admin/api/v1/serializers.py:392 admin/api/v2/serializers.py:565
#: admin/api/v1/serializers.py:390 admin/api/v2/serializers.py:582
#: calendars/serializers.py:175 calendars/serializers.py:177
msgid "This field is required."
msgstr ""
#: admin/api/v1/serializers.py:404 admin/api/v2/serializers.py:582
#: admin/api/v1/serializers.py:402 admin/api/v2/serializers.py:599
msgid "Local domain {} does not exist"
msgstr ""
#: admin/api/v1/serializers.py:494
#: admin/api/v1/serializers.py:492
msgid "A list of recipient"
msgstr ""
#: admin/api/v1/serializers.py:510 admin/api/v2/viewsets.py:271
#: admin/api/v1/serializers.py:508 admin/api/v2/viewsets.py:286
msgid "This alias already exists"
msgstr ""
#: admin/api/v1/serializers.py:546
#: admin/api/v1/serializers.py:544
msgid "You don't have access to this domain."
msgstr ""
#: admin/api/v1/serializers.py:555
#: admin/api/v1/serializers.py:553
msgid "You don't have access to this mailbox."
msgstr ""
@@ -94,56 +94,56 @@ msgstr ""
msgid "Here is your new Modoboa password: {}"
msgstr ""
#: admin/api/v2/serializers.py:81
#: admin/api/v2/serializers.py:80
msgid "DKIM keys storage directory not configured"
msgstr ""
#: admin/api/v2/serializers.py:93
#: admin/api/v2/serializers.py:92
msgid "This field is valid when type is relaydomain"
msgstr ""
#: admin/api/v2/serializers.py:100
#: admin/api/v2/serializers.py:99
msgid "You can't define an unlimited quota."
msgstr ""
#: admin/api/v2/serializers.py:134
#: admin/api/v2/serializers.py:133
#, python-format
msgid "User '%s' already exists"
msgstr ""
#: admin/api/v2/serializers.py:249 admin/api/v2/serializers.py:255
#: admin/api/v2/serializers.py:248 admin/api/v2/serializers.py:254
msgid "Must be a positive integer"
msgstr ""
#: admin/api/v2/serializers.py:264
#: admin/api/v2/serializers.py:263
msgid "openssl not found, please make sure it is installed."
msgstr ""
#: admin/api/v2/serializers.py:267 pdfcredentials/api/v2/serializers.py:79
#: admin/api/v2/serializers.py:266 pdfcredentials/api/v2/serializers.py:79
msgid "Directory not found."
msgstr ""
#: admin/api/v2/serializers.py:278
#: admin/api/v2/serializers.py:277
msgid "This field only allows valid IP addresses (or networks)"
msgstr ""
#: admin/api/v2/serializers.py:291
#: admin/api/v2/serializers.py:290
msgid "Please disable imap migration before disabling this option."
msgstr ""
#: admin/api/v2/serializers.py:304
#: admin/api/v2/serializers.py:303
msgid "Define at least one authorized network / address"
msgstr ""
#: admin/api/v2/serializers.py:548
#: admin/api/v2/serializers.py:565
msgid "The left part of an email address can't be more than 64 characters."
msgstr ""
#: admin/api/v2/serializers.py:570
#: admin/api/v2/serializers.py:587
msgid "A mailbox is required to create aliases."
msgstr ""
#: admin/api/v2/serializers.py:734
#: admin/api/v2/serializers.py:751
msgid "Unknown status"
msgstr ""
@@ -155,11 +155,11 @@ msgstr ""
msgid "You can't delete your own domain"
msgstr ""
#: admin/api/v2/viewsets.py:392
#: admin/api/v2/viewsets.py:407
msgid "No alarm ID provided"
msgstr ""
#: admin/api/v2/viewsets.py:396
#: admin/api/v2/viewsets.py:411
msgid "Received invalid alarm id(s)"
msgstr ""
@@ -424,12 +424,12 @@ msgstr ""
msgid "Invalid IP address format for {domain}; {addr}"
msgstr ""
#: admin/lib.py:340
#: admin/lib.py:360
#, python-format
msgid "Object already exists: %s"
msgstr ""
#: admin/lib.py:344
#: admin/lib.py:364
#, python-format
msgid "%d objects imported successfully"
msgstr ""
@@ -578,7 +578,7 @@ msgid "Key length"
msgstr ""
#: admin/models/domain.py:321 admin/models/domain_alias.py:70
#: core/models.py:353 relaydomains/lib.py:13
#: core/models.py:352 relaydomains/lib.py:13
msgid "Invalid line"
msgstr ""
@@ -774,7 +774,7 @@ msgstr ""
msgid "Allow domain administrators to manage user calendars (read and write)"
msgstr ""
#: calendars/app_settings.py:60 core/app_settings.py:579
#: calendars/app_settings.py:60 core/app_settings.py:676
#: rspamd/app_settings.py:45
msgid "Miscellaneous"
msgstr ""
@@ -875,7 +875,7 @@ msgstr ""
msgid "Failed TFA settings editing attempt from '%s' as user '%s'"
msgstr ""
#: core/api/v1/serializers.py:91 core/api/v2/serializers.py:415
#: core/api/v1/serializers.py:91 core/api/v2/serializers.py:425
msgid "Invalid password"
msgstr ""
@@ -887,24 +887,24 @@ msgstr ""
msgid "Local"
msgstr ""
#: core/api/v2/serializers.py:165 core/app_settings.py:17
#: core/api/v2/serializers.py:175 core/app_settings.py:17
msgid "User profile"
msgstr ""
#: core/api/v2/serializers.py:184 core/api/v2/serializers.py:191
#: core/api/v2/serializers.py:198
#: core/api/v2/serializers.py:194 core/api/v2/serializers.py:201
#: core/api/v2/serializers.py:208
msgid "Invalid syntax"
msgstr ""
#: core/api/v2/serializers.py:203
#: core/api/v2/serializers.py:213
msgid "Invalid rounds number"
msgstr ""
#: core/api/v2/serializers.py:403 core/forms.py:81
#: core/api/v2/serializers.py:413 core/forms.py:81
msgid "This code is invalid"
msgstr ""
#: core/api/v2/serializers.py:473 core/views/auth.py:194 core/views/auth.py:247
#: core/api/v2/serializers.py:483 core/views/auth.py:194 core/views/auth.py:247
msgid "Please use the following code to recover your Modoboa password: {}"
msgstr ""
@@ -979,410 +979,502 @@ msgstr ""
msgid "Length of randomly generated passwords."
msgstr ""
#: core/app_settings.py:102
#: core/app_settings.py:103
msgid "Allow special characters for random password"
msgstr ""
#: core/app_settings.py:106
msgid "Enable special characters in randomly generated passwords."
msgstr ""
#: core/app_settings.py:114
msgid "Update password service URL"
msgstr ""
#: core/app_settings.py:104
#: core/app_settings.py:116
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:114
#: core/app_settings.py:126
msgid "Password recovery announcement"
msgstr ""
#: core/app_settings.py:116
#: core/app_settings.py:128
msgid "A temporary message that will be displayed on the reset password page."
msgstr ""
#: core/app_settings.py:125
#: core/app_settings.py:137
msgid "Enable password recovery by SMS"
msgstr ""
#: core/app_settings.py:128
#: core/app_settings.py:140
msgid "Enable password recovery by SMS for users who filled a phone number."
msgstr ""
#: core/app_settings.py:136
#: core/app_settings.py:148
msgid "SMS provider"
msgstr ""
#: core/app_settings.py:139
#: core/app_settings.py:151
msgid "Choose a provider to send password recovery SMS"
msgstr ""
#: core/app_settings.py:151
#: core/app_settings.py:163
msgid "LDAP"
msgstr ""
#: core/app_settings.py:157 sievefilters/app_settings.py:18
#: core/app_settings.py:169 sievefilters/app_settings.py:18
#: sievefilters/app_settings.py:51 webmail/app_settings.py:36
#: webmail/app_settings.py:73
msgid "Server address"
msgstr ""
#: core/app_settings.py:159
#: core/app_settings.py:171
msgid "The IP address or the DNS name of the LDAP server"
msgstr ""
#: core/app_settings.py:166 sievefilters/app_settings.py:25
#: core/app_settings.py:178 sievefilters/app_settings.py:25
#: sievefilters/app_settings.py:67 webmail/app_settings.py:54
#: webmail/app_settings.py:91
msgid "Server port"
msgstr ""
#: core/app_settings.py:168
#: core/app_settings.py:180
msgid "The TCP port number used by the LDAP server"
msgstr ""
#: core/app_settings.py:176
#: core/app_settings.py:188
msgid "Enable secondary server (fallback)"
msgstr ""
#: core/app_settings.py:179
#: core/app_settings.py:191
msgid ""
"Enable a secondary LDAP server which will be used if the primary one fails"
msgstr ""
#: core/app_settings.py:187
#: core/app_settings.py:199
msgid "Secondary server address"
msgstr ""
#: core/app_settings.py:190
#: core/app_settings.py:202
msgid "The IP address or the DNS name of the seondary LDAP server"
msgstr ""
#: core/app_settings.py:197
#: core/app_settings.py:209
msgid "Secondary server port"
msgstr ""
#: core/app_settings.py:200
#: core/app_settings.py:212
msgid "The TCP port number used by the LDAP secondary server"
msgstr ""
#: core/app_settings.py:207 sievefilters/app_settings.py:58
#: core/app_settings.py:219 sievefilters/app_settings.py:58
#: webmail/app_settings.py:45
msgid "Use a secured connection"
msgstr ""
#: core/app_settings.py:209
#: core/app_settings.py:221
msgid "Use an SSL/STARTTLS connection to access the LDAP server"
msgstr ""
#: core/app_settings.py:216
#: core/app_settings.py:228
msgid "Active Directory"
msgstr ""
#: core/app_settings.py:218
#: core/app_settings.py:230
msgid "Tell if the LDAP server is an Active Directory one"
msgstr ""
#: core/app_settings.py:225
#: core/app_settings.py:237
msgid "Administrator groups"
msgstr ""
#: core/app_settings.py:227
#: core/app_settings.py:239
msgid ""
"Members of those LDAP Posix groups will be created as domain administrators. "
"Use ';' characters to separate groups."
msgstr ""
#: core/app_settings.py:236
#: core/app_settings.py:248
msgid "Group type"
msgstr ""
#: core/app_settings.py:238
#: core/app_settings.py:250
msgid "The LDAP group type to use with your directory."
msgstr ""
#: core/app_settings.py:245
#: core/app_settings.py:257
msgid "Groups search base"
msgstr ""
#: core/app_settings.py:247
#: core/app_settings.py:259
msgid "The distinguished name of the search base used to find groups"
msgstr ""
#: core/app_settings.py:255
#: core/app_settings.py:267
msgid "Password attribute"
msgstr ""
#: core/app_settings.py:257
#: core/app_settings.py:269
msgid "The attribute used to store user passwords"
msgstr ""
#: core/app_settings.py:264
#: core/app_settings.py:276
msgid "LDAP authentication settings"
msgstr ""
#: core/app_settings.py:272
#: core/app_settings.py:284
msgid "Authentication method"
msgstr ""
#: core/app_settings.py:275
#: core/app_settings.py:287
msgid "Choose the authentication method to use"
msgstr ""
#: core/app_settings.py:282 core/app_settings.py:345
#: core/app_settings.py:294 core/app_settings.py:357
msgid "Bind DN"
msgstr ""
#: core/app_settings.py:284 core/app_settings.py:347
#: core/app_settings.py:296 core/app_settings.py:359
msgid ""
"The distinguished name to use when binding to the LDAP server. Leave empty "
"for an anonymous bind"
msgstr ""
#: core/app_settings.py:293 core/app_settings.py:355
#: core/app_settings.py:305 core/app_settings.py:367
msgid "Bind password"
msgstr ""
#: core/app_settings.py:295 core/app_settings.py:357
#: core/app_settings.py:307 core/app_settings.py:369
msgid "The password to use when binding to the LDAP server (with 'Bind DN')"
msgstr ""
#: core/app_settings.py:305 core/app_settings.py:410
#: core/app_settings.py:317 core/app_settings.py:422
msgid "Users search base"
msgstr ""
#: core/app_settings.py:307 core/app_settings.py:412
#: core/app_settings.py:319 core/app_settings.py:424
msgid "The distinguished name of the search base used to find users"
msgstr ""
#: core/app_settings.py:316 core/app_settings.py:421
#: core/app_settings.py:328 core/app_settings.py:433
msgid "Search filter"
msgstr ""
#: core/app_settings.py:318 core/app_settings.py:423
#: core/app_settings.py:330 core/app_settings.py:435
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:327
#: core/app_settings.py:339
msgid "User DN template"
msgstr ""
#: core/app_settings.py:329
#: core/app_settings.py:341
#, 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:338
#: core/app_settings.py:350
msgid "LDAP synchronization settings"
msgstr ""
#: core/app_settings.py:366
#: core/app_settings.py:378
msgid "Enable export to LDAP"
msgstr ""
#: core/app_settings.py:368
#: core/app_settings.py:380
msgid ""
"Enable automatic synchronization between local database and LDAP directory"
msgstr ""
#: core/app_settings.py:377
#: core/app_settings.py:389
msgid "Delete remote LDAP account when local account is deleted"
msgstr ""
#: core/app_settings.py:380
#: core/app_settings.py:392
msgid ""
"Delete remote LDAP account when local account is deleted, otherwise it will "
"be disabled."
msgstr ""
#: core/app_settings.py:389
#: core/app_settings.py:401
msgid "Account DN template"
msgstr ""
#: core/app_settings.py:391
#: core/app_settings.py:403
#, 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:400
#: core/app_settings.py:412
msgid "Enable import from LDAP"
msgstr ""
#: core/app_settings.py:402
#: core/app_settings.py:414
msgid "Enable account synchronization from LDAP directory to local database"
msgstr ""
#: core/app_settings.py:432
#: core/app_settings.py:444
msgid "Username attribute"
msgstr ""
#: core/app_settings.py:434
#: core/app_settings.py:446
msgid "The name of the LDAP attribute where the username can be found."
msgstr ""
#: core/app_settings.py:443
#: core/app_settings.py:455
msgid "Enable Dovecot LDAP sync"
msgstr ""
#: core/app_settings.py:445
#: core/app_settings.py:457
msgid "LDAP authentication settings will be applied to Dovecot configuration."
msgstr ""
#: core/app_settings.py:453
#: core/app_settings.py:465
msgid "Dovecot LDAP config file"
msgstr ""
#: core/app_settings.py:455
#: core/app_settings.py:467
msgid ""
"Location of the configuration file which contains Dovecot LDAP settings."
msgstr ""
#: core/app_settings.py:468
#: core/app_settings.py:480
msgid "Dashboard"
msgstr ""
#: core/app_settings.py:474
#: core/app_settings.py:486
msgid "Custom welcome message"
msgstr ""
#: core/app_settings.py:488
msgid "A welcome message that will be displayed instead the default one"
msgstr ""
#: core/app_settings.py:495
msgid "Custom RSS feed"
msgstr ""
#: core/app_settings.py:476
#: core/app_settings.py:497
msgid "Display custom RSS feed to resellers and domain administrators"
msgstr ""
#: core/app_settings.py:484
msgid "Hide features widget"
msgstr ""
#: core/app_settings.py:486
msgid "Hide features widget for resellers and domain administrators"
msgstr ""
#: core/app_settings.py:498
msgid "Notifications"
msgstr ""
#: core/app_settings.py:504
msgid "Sender address"
msgstr ""
#: core/app_settings.py:506
msgid "Email address used to send notifications."
msgid "Display custom RSS feed to super admins"
msgstr ""
#: core/app_settings.py:509
msgid "Display custom RSS feed also to super administrators"
msgstr ""
#: core/app_settings.py:517
msgid "Hide features widget"
msgstr ""
#: core/app_settings.py:519
msgid "Hide features widget for resellers and domain administrators"
msgstr ""
#: core/app_settings.py:531
msgid "Theme"
msgstr ""
#: core/app_settings.py:537
msgid "Primary theme color"
msgstr ""
#: core/app_settings.py:539
msgid ""
"Primary color of the theme (hexadecimal code), used as the background color "
"of the left menu for example"
msgstr ""
#: core/app_settings.py:548
msgid "Primary theme color (lighter version)"
msgstr ""
#: core/app_settings.py:551 core/app_settings.py:563
msgid "Primary color of the theme (hexadecimal code)"
msgstr ""
#: core/app_settings.py:560
msgid "Primary theme color (darker version)"
msgstr ""
#: core/app_settings.py:571
msgid "Secondary theme color"
msgstr ""
#: core/app_settings.py:573
msgid ""
"Secondary color of the theme (hexadecimal code), used as the background "
"color of some buttons for example"
msgstr ""
#: core/app_settings.py:581
msgid "Labels theme color"
msgstr ""
#: core/app_settings.py:583
msgid "Theme color for labels (hexadecimal code)"
msgstr ""
#: core/app_settings.py:595
msgid "Notifications"
msgstr ""
#: core/app_settings.py:601
msgid "Sender address"
msgstr ""
#: core/app_settings.py:603
msgid "Email address used to send notifications."
msgstr ""
#: core/app_settings.py:614
msgid "Public API"
msgstr ""
#: core/app_settings.py:523
#: core/app_settings.py:620
msgid "Enable communication"
msgstr ""
#: core/app_settings.py:525 core/app_settings.py:535
#: core/app_settings.py:622 core/app_settings.py:632
msgid "Automatically checks if a newer version is available"
msgstr ""
#: core/app_settings.py:532
#: core/app_settings.py:629
msgid "Check new versions"
msgstr ""
#: core/app_settings.py:543
#: core/app_settings.py:640
msgid "Send an email when new versions are found"
msgstr ""
#: core/app_settings.py:547
#: core/app_settings.py:644
msgid "Send an email to notify admins about new versions"
msgstr ""
#: core/app_settings.py:554 sievefilters/constants.py:25
#: core/app_settings.py:651 sievefilters/constants.py:25
msgid "Recipient"
msgstr ""
#: core/app_settings.py:557
#: core/app_settings.py:654
msgid "Recipient of new versions notification emails."
msgstr ""
#: core/app_settings.py:564
#: core/app_settings.py:661
msgid "Send statistics"
msgstr ""
#: core/app_settings.py:567
#: core/app_settings.py:664
msgid "Send statistics to Modoboa public API (counters and used extensions)"
msgstr ""
#: core/app_settings.py:586
#: core/app_settings.py:683
msgid "Enable inactive account tracking"
msgstr ""
#: core/app_settings.py:589
#: core/app_settings.py:686
msgid ""
"Allow the administrator to set a threshold (in days) beyond which an account "
"is considered inactive if the user hasn't logged in"
msgstr ""
#: core/app_settings.py:598
#: core/app_settings.py:695
msgid "Inactive account threshold"
msgstr ""
#: core/app_settings.py:601
#: core/app_settings.py:698
msgid ""
"An account with a last login date greater than this threshold (in days) will "
"be considered as inactive"
msgstr ""
#: core/app_settings.py:610
#: core/app_settings.py:707
msgid "Top notifications check interval"
msgstr ""
#: core/app_settings.py:613
#: core/app_settings.py:710
msgid "Interval between two top notification checks (in seconds)"
msgstr ""
#: core/app_settings.py:620
#: core/app_settings.py:717
msgid "Maximum log record age"
msgstr ""
#: core/app_settings.py:622
#: core/app_settings.py:719
msgid "The maximum age in days of a log record"
msgstr ""
#: core/app_settings.py:629
#: core/app_settings.py:726
msgid "Items per page"
msgstr ""
#: core/app_settings.py:631
#: core/app_settings.py:728
msgid "Number of displayed items per page"
msgstr ""
#: core/app_settings.py:638
#: core/app_settings.py:735
msgid "Default top redirection"
msgstr ""
#: core/app_settings.py:640
#: core/app_settings.py:737
msgid "The default redirection used when no application is specified"
msgstr ""
#: core/checks.py:13
#: core/checks.py:15
msgid ""
"You have USE_TZ set to False, this may result in issues during transitions "
"between summer/winter time (ie the same local time occuring twice due to "
"clock change)."
msgstr ""
#: core/checks.py:17
#: core/checks.py:19
msgid "Set `USE_TZ = True` in settings.py"
msgstr ""
#: core/checks.py:21
#: core/checks.py:23
msgid "The password scheme you are using is deprecated."
msgstr ""
#: core/checks.py:22
#: core/checks.py:24
msgid "Upgrade your password scheme to a stronger one"
msgstr ""
#: core/checks.py:30
msgid ""
"Oauth2 application for dovecot has not been found. Webmail and some other "
"features won't be available."
msgstr ""
#: core/checks.py:34
msgid ""
"Visit : https://modoboa.readthedocs.io/en/latest/manual_installation/dovecot."
"html#dovecot-oauth2"
msgstr ""
#: core/checks.py:41
msgid ""
"Oauth2 application for radicale has not been found. Calendar and some other "
"features won't be available."
msgstr ""
#: core/checks.py:45
msgid ""
"Visit : https://modoboa.readthedocs.io/en/latest/manual_installation/"
"radicale.html#radicale-oauth2"
msgstr ""
#: core/constants.py:6
msgid "Simple user"
msgstr ""
@@ -1474,59 +1566,59 @@ msgstr ""
msgid "[modoboa] Update(s) available"
msgstr ""
#: core/models.py:72
#: core/models.py:71
msgid "Allow mailboxes access"
msgstr ""
#: core/models.py:74
#: core/models.py:73
msgid "Allow this administrator to access user mailboxes"
msgstr ""
#: core/models.py:76
#: core/models.py:75
msgid "password"
msgstr ""
#: core/models.py:79
#: core/models.py:78
msgid "language"
msgstr ""
#: core/models.py:83
#: core/models.py:82
msgid "Prefered language to display pages."
msgstr ""
#: core/models.py:85
#: core/models.py:84
msgid "Phone number"
msgstr ""
#: core/models.py:87
#: core/models.py:86
msgid "Secondary email"
msgstr ""
#: core/models.py:92
#: core/models.py:91
msgid "An alternative e-mail address, can be used for recovery needs."
msgstr ""
#: core/models.py:151
#: core/models.py:150
msgid "Failed to update password: LDAP module not installed"
msgstr ""
#: core/models.py:186 policyd/core.py:117
#: core/models.py:185 policyd/core.py:117
msgid "account"
msgstr ""
#: core/models.py:318
#: core/models.py:317
msgid "Unknown"
msgstr ""
#: core/models.py:361
#: core/models.py:360
msgid "You can't import an account with a role greater than yours"
msgstr ""
#: core/models.py:376
#: core/models.py:375
msgid "The simple user '{}' must have a valid email address"
msgstr ""
#: core/models.py:384
#: core/models.py:383
msgid "username and email fields must not differ for '{}'"
msgstr ""
@@ -1853,7 +1945,7 @@ msgstr ""
msgid "IMAP Migration"
msgstr ""
#: imap_migration/auth_backends.py:49 webmail/lib/imaputils.py:241
#: imap_migration/auth_backends.py:49 webmail/lib/imaputils.py:240
#, python-brace-format
msgid "Connection to IMAP server failed: {error}"
msgstr ""
@@ -1885,21 +1977,21 @@ msgstr ""
msgid "Failed to disable LDAP account: {}"
msgstr ""
#: lib/api_client.py:35 lib/api_client.py:69 lib/api_client.py:83
#: lib/api_client.py:87
#: lib/api_client.py:35 lib/api_client.py:67 lib/api_client.py:81
#: lib/api_client.py:85
#, python-format
msgid "Failed to communicate with public API: %s"
msgstr ""
#: lib/email_utils.py:139 lib/email_utils.py:350
#: lib/email_utils.py:140 lib/email_utils.py:351
msgid "unable to determine encoding of string"
msgstr ""
#: lib/exceptions.py:85
#: lib/exceptions.py:83
msgid "Permission denied: {}"
msgstr ""
#: lib/exceptions.py:86
#: lib/exceptions.py:84
msgid "Permission denied"
msgstr ""
@@ -2587,11 +2679,11 @@ msgstr ""
msgid "Stop processing"
msgstr ""
#: sievefilters/lib.py:51
#: sievefilters/lib.py:49
msgid "Connection to MANAGESIEVE server failed, check your configuration"
msgstr ""
#: sievefilters/lib.py:78
#: sievefilters/lib.py:76
msgid "Not enough space on server"
msgstr ""
@@ -2893,7 +2985,7 @@ msgstr ""
msgid "User defined email signature"
msgstr ""
#: webmail/lib/attachments.py:113
#: webmail/lib/attachments.py:112
msgid "Failed to remove attachment: "
msgstr ""
@@ -2901,7 +2993,7 @@ msgstr ""
msgid "Date"
msgstr ""
#: webmail/lib/imaputils.py:222
#: webmail/lib/imaputils.py:221
msgid "Failed to retrieve hierarchy delimiter"
msgstr ""
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+266 -174
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-06-20 16:45+0200\n"
"POT-Creation-Date: 2025-07-27 10:50+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -18,75 +18,75 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n!=1);\n"
#: admin/api/v1/serializers.py:41
#: admin/api/v1/serializers.py:39
msgid ""
"Quota shared between mailboxes. Can be expressed in KB, MB (default) or GB. "
"A value of 0 means no quota."
msgstr ""
#: admin/api/v1/serializers.py:48
#: admin/api/v1/serializers.py:46
msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota."
msgstr ""
#: admin/api/v1/serializers.py:90
#: admin/api/v1/serializers.py:88
msgid "domain alias with this name already exists"
msgstr ""
#: admin/api/v1/serializers.py:100
#: admin/api/v1/serializers.py:98
msgid "No authorized MX record found for this domain"
msgstr ""
#: admin/api/v1/serializers.py:118
#: admin/api/v1/serializers.py:116
msgid "Cannot be greater than domain quota"
msgstr ""
#: admin/api/v1/serializers.py:164 admin/api/v1/serializers.py:359
#: admin/api/v2/serializers.py:531 admin/models/alias.py:44
#: admin/api/v1/serializers.py:162 admin/api/v1/serializers.py:357
#: admin/api/v2/serializers.py:548 admin/models/alias.py:44
msgid "Permission denied."
msgstr ""
#: admin/api/v1/serializers.py:226 admin/api/v2/serializers.py:89
#: admin/api/v2/serializers.py:453 core/api/v2/serializers.py:225
#: core/api/v2/serializers.py:227 core/api/v2/serializers.py:236
#: admin/api/v1/serializers.py:224 admin/api/v2/serializers.py:88
#: admin/api/v2/serializers.py:470 core/api/v2/serializers.py:235
#: core/api/v2/serializers.py:237 core/api/v2/serializers.py:246
#: transport/backends.py:40
msgid "This field is required"
msgstr ""
#: admin/api/v1/serializers.py:238
#: admin/api/v1/serializers.py:236
msgid ""
"List of administered domains (resellers and domain administrators only)."
msgstr ""
#: admin/api/v1/serializers.py:332 admin/api/v2/serializers.py:513
#: admin/api/v1/serializers.py:330 admin/api/v2/serializers.py:530
msgid "Not allowed for this role."
msgstr ""
#: admin/api/v1/serializers.py:350
#: admin/api/v1/serializers.py:348
msgid "Must be equal to mailbox full_address"
msgstr ""
#: admin/api/v1/serializers.py:392 admin/api/v2/serializers.py:565
#: admin/api/v1/serializers.py:390 admin/api/v2/serializers.py:582
#: calendars/serializers.py:175 calendars/serializers.py:177
msgid "This field is required."
msgstr ""
#: admin/api/v1/serializers.py:404 admin/api/v2/serializers.py:582
#: admin/api/v1/serializers.py:402 admin/api/v2/serializers.py:599
msgid "Local domain {} does not exist"
msgstr ""
#: admin/api/v1/serializers.py:494
#: admin/api/v1/serializers.py:492
msgid "A list of recipient"
msgstr ""
#: admin/api/v1/serializers.py:510 admin/api/v2/viewsets.py:271
#: admin/api/v1/serializers.py:508 admin/api/v2/viewsets.py:286
msgid "This alias already exists"
msgstr ""
#: admin/api/v1/serializers.py:546
#: admin/api/v1/serializers.py:544
msgid "You don't have access to this domain."
msgstr ""
#: admin/api/v1/serializers.py:555
#: admin/api/v1/serializers.py:553
msgid "You don't have access to this mailbox."
msgstr ""
@@ -94,56 +94,56 @@ msgstr ""
msgid "Here is your new Modoboa password: {}"
msgstr ""
#: admin/api/v2/serializers.py:81
#: admin/api/v2/serializers.py:80
msgid "DKIM keys storage directory not configured"
msgstr ""
#: admin/api/v2/serializers.py:93
#: admin/api/v2/serializers.py:92
msgid "This field is valid when type is relaydomain"
msgstr ""
#: admin/api/v2/serializers.py:100
#: admin/api/v2/serializers.py:99
msgid "You can't define an unlimited quota."
msgstr ""
#: admin/api/v2/serializers.py:134
#: admin/api/v2/serializers.py:133
#, python-format
msgid "User '%s' already exists"
msgstr ""
#: admin/api/v2/serializers.py:249 admin/api/v2/serializers.py:255
#: admin/api/v2/serializers.py:248 admin/api/v2/serializers.py:254
msgid "Must be a positive integer"
msgstr ""
#: admin/api/v2/serializers.py:264
#: admin/api/v2/serializers.py:263
msgid "openssl not found, please make sure it is installed."
msgstr ""
#: admin/api/v2/serializers.py:267 pdfcredentials/api/v2/serializers.py:79
#: admin/api/v2/serializers.py:266 pdfcredentials/api/v2/serializers.py:79
msgid "Directory not found."
msgstr ""
#: admin/api/v2/serializers.py:278
#: admin/api/v2/serializers.py:277
msgid "This field only allows valid IP addresses (or networks)"
msgstr ""
#: admin/api/v2/serializers.py:291
#: admin/api/v2/serializers.py:290
msgid "Please disable imap migration before disabling this option."
msgstr ""
#: admin/api/v2/serializers.py:304
#: admin/api/v2/serializers.py:303
msgid "Define at least one authorized network / address"
msgstr ""
#: admin/api/v2/serializers.py:548
#: admin/api/v2/serializers.py:565
msgid "The left part of an email address can't be more than 64 characters."
msgstr ""
#: admin/api/v2/serializers.py:570
#: admin/api/v2/serializers.py:587
msgid "A mailbox is required to create aliases."
msgstr ""
#: admin/api/v2/serializers.py:734
#: admin/api/v2/serializers.py:751
msgid "Unknown status"
msgstr ""
@@ -155,11 +155,11 @@ msgstr ""
msgid "You can't delete your own domain"
msgstr ""
#: admin/api/v2/viewsets.py:392
#: admin/api/v2/viewsets.py:407
msgid "No alarm ID provided"
msgstr ""
#: admin/api/v2/viewsets.py:396
#: admin/api/v2/viewsets.py:411
msgid "Received invalid alarm id(s)"
msgstr ""
@@ -424,12 +424,12 @@ msgstr ""
msgid "Invalid IP address format for {domain}; {addr}"
msgstr ""
#: admin/lib.py:340
#: admin/lib.py:360
#, python-format
msgid "Object already exists: %s"
msgstr ""
#: admin/lib.py:344
#: admin/lib.py:364
#, python-format
msgid "%d objects imported successfully"
msgstr ""
@@ -578,7 +578,7 @@ msgid "Key length"
msgstr ""
#: admin/models/domain.py:321 admin/models/domain_alias.py:70
#: core/models.py:353 relaydomains/lib.py:13
#: core/models.py:352 relaydomains/lib.py:13
msgid "Invalid line"
msgstr ""
@@ -774,7 +774,7 @@ msgstr ""
msgid "Allow domain administrators to manage user calendars (read and write)"
msgstr ""
#: calendars/app_settings.py:60 core/app_settings.py:579
#: calendars/app_settings.py:60 core/app_settings.py:676
#: rspamd/app_settings.py:45
msgid "Miscellaneous"
msgstr ""
@@ -875,7 +875,7 @@ msgstr ""
msgid "Failed TFA settings editing attempt from '%s' as user '%s'"
msgstr ""
#: core/api/v1/serializers.py:91 core/api/v2/serializers.py:415
#: core/api/v1/serializers.py:91 core/api/v2/serializers.py:425
msgid "Invalid password"
msgstr ""
@@ -887,24 +887,24 @@ msgstr ""
msgid "Local"
msgstr ""
#: core/api/v2/serializers.py:165 core/app_settings.py:17
#: core/api/v2/serializers.py:175 core/app_settings.py:17
msgid "User profile"
msgstr ""
#: core/api/v2/serializers.py:184 core/api/v2/serializers.py:191
#: core/api/v2/serializers.py:198
#: core/api/v2/serializers.py:194 core/api/v2/serializers.py:201
#: core/api/v2/serializers.py:208
msgid "Invalid syntax"
msgstr ""
#: core/api/v2/serializers.py:203
#: core/api/v2/serializers.py:213
msgid "Invalid rounds number"
msgstr ""
#: core/api/v2/serializers.py:403 core/forms.py:81
#: core/api/v2/serializers.py:413 core/forms.py:81
msgid "This code is invalid"
msgstr ""
#: core/api/v2/serializers.py:473 core/views/auth.py:194 core/views/auth.py:247
#: core/api/v2/serializers.py:483 core/views/auth.py:194 core/views/auth.py:247
msgid "Please use the following code to recover your Modoboa password: {}"
msgstr ""
@@ -979,410 +979,502 @@ msgstr ""
msgid "Length of randomly generated passwords."
msgstr ""
#: core/app_settings.py:102
#: core/app_settings.py:103
msgid "Allow special characters for random password"
msgstr ""
#: core/app_settings.py:106
msgid "Enable special characters in randomly generated passwords."
msgstr ""
#: core/app_settings.py:114
msgid "Update password service URL"
msgstr ""
#: core/app_settings.py:104
#: core/app_settings.py:116
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:114
#: core/app_settings.py:126
msgid "Password recovery announcement"
msgstr ""
#: core/app_settings.py:116
#: core/app_settings.py:128
msgid "A temporary message that will be displayed on the reset password page."
msgstr ""
#: core/app_settings.py:125
#: core/app_settings.py:137
msgid "Enable password recovery by SMS"
msgstr ""
#: core/app_settings.py:128
#: core/app_settings.py:140
msgid "Enable password recovery by SMS for users who filled a phone number."
msgstr ""
#: core/app_settings.py:136
#: core/app_settings.py:148
msgid "SMS provider"
msgstr ""
#: core/app_settings.py:139
#: core/app_settings.py:151
msgid "Choose a provider to send password recovery SMS"
msgstr ""
#: core/app_settings.py:151
#: core/app_settings.py:163
msgid "LDAP"
msgstr ""
#: core/app_settings.py:157 sievefilters/app_settings.py:18
#: core/app_settings.py:169 sievefilters/app_settings.py:18
#: sievefilters/app_settings.py:51 webmail/app_settings.py:36
#: webmail/app_settings.py:73
msgid "Server address"
msgstr ""
#: core/app_settings.py:159
#: core/app_settings.py:171
msgid "The IP address or the DNS name of the LDAP server"
msgstr ""
#: core/app_settings.py:166 sievefilters/app_settings.py:25
#: core/app_settings.py:178 sievefilters/app_settings.py:25
#: sievefilters/app_settings.py:67 webmail/app_settings.py:54
#: webmail/app_settings.py:91
msgid "Server port"
msgstr ""
#: core/app_settings.py:168
#: core/app_settings.py:180
msgid "The TCP port number used by the LDAP server"
msgstr ""
#: core/app_settings.py:176
#: core/app_settings.py:188
msgid "Enable secondary server (fallback)"
msgstr ""
#: core/app_settings.py:179
#: core/app_settings.py:191
msgid ""
"Enable a secondary LDAP server which will be used if the primary one fails"
msgstr ""
#: core/app_settings.py:187
#: core/app_settings.py:199
msgid "Secondary server address"
msgstr ""
#: core/app_settings.py:190
#: core/app_settings.py:202
msgid "The IP address or the DNS name of the seondary LDAP server"
msgstr ""
#: core/app_settings.py:197
#: core/app_settings.py:209
msgid "Secondary server port"
msgstr ""
#: core/app_settings.py:200
#: core/app_settings.py:212
msgid "The TCP port number used by the LDAP secondary server"
msgstr ""
#: core/app_settings.py:207 sievefilters/app_settings.py:58
#: core/app_settings.py:219 sievefilters/app_settings.py:58
#: webmail/app_settings.py:45
msgid "Use a secured connection"
msgstr ""
#: core/app_settings.py:209
#: core/app_settings.py:221
msgid "Use an SSL/STARTTLS connection to access the LDAP server"
msgstr ""
#: core/app_settings.py:216
#: core/app_settings.py:228
msgid "Active Directory"
msgstr ""
#: core/app_settings.py:218
#: core/app_settings.py:230
msgid "Tell if the LDAP server is an Active Directory one"
msgstr ""
#: core/app_settings.py:225
#: core/app_settings.py:237
msgid "Administrator groups"
msgstr ""
#: core/app_settings.py:227
#: core/app_settings.py:239
msgid ""
"Members of those LDAP Posix groups will be created as domain administrators. "
"Use ';' characters to separate groups."
msgstr ""
#: core/app_settings.py:236
#: core/app_settings.py:248
msgid "Group type"
msgstr ""
#: core/app_settings.py:238
#: core/app_settings.py:250
msgid "The LDAP group type to use with your directory."
msgstr ""
#: core/app_settings.py:245
#: core/app_settings.py:257
msgid "Groups search base"
msgstr ""
#: core/app_settings.py:247
#: core/app_settings.py:259
msgid "The distinguished name of the search base used to find groups"
msgstr ""
#: core/app_settings.py:255
#: core/app_settings.py:267
msgid "Password attribute"
msgstr ""
#: core/app_settings.py:257
#: core/app_settings.py:269
msgid "The attribute used to store user passwords"
msgstr ""
#: core/app_settings.py:264
#: core/app_settings.py:276
msgid "LDAP authentication settings"
msgstr ""
#: core/app_settings.py:272
#: core/app_settings.py:284
msgid "Authentication method"
msgstr ""
#: core/app_settings.py:275
#: core/app_settings.py:287
msgid "Choose the authentication method to use"
msgstr ""
#: core/app_settings.py:282 core/app_settings.py:345
#: core/app_settings.py:294 core/app_settings.py:357
msgid "Bind DN"
msgstr ""
#: core/app_settings.py:284 core/app_settings.py:347
#: core/app_settings.py:296 core/app_settings.py:359
msgid ""
"The distinguished name to use when binding to the LDAP server. Leave empty "
"for an anonymous bind"
msgstr ""
#: core/app_settings.py:293 core/app_settings.py:355
#: core/app_settings.py:305 core/app_settings.py:367
msgid "Bind password"
msgstr ""
#: core/app_settings.py:295 core/app_settings.py:357
#: core/app_settings.py:307 core/app_settings.py:369
msgid "The password to use when binding to the LDAP server (with 'Bind DN')"
msgstr ""
#: core/app_settings.py:305 core/app_settings.py:410
#: core/app_settings.py:317 core/app_settings.py:422
msgid "Users search base"
msgstr ""
#: core/app_settings.py:307 core/app_settings.py:412
#: core/app_settings.py:319 core/app_settings.py:424
msgid "The distinguished name of the search base used to find users"
msgstr ""
#: core/app_settings.py:316 core/app_settings.py:421
#: core/app_settings.py:328 core/app_settings.py:433
msgid "Search filter"
msgstr ""
#: core/app_settings.py:318 core/app_settings.py:423
#: core/app_settings.py:330 core/app_settings.py:435
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:327
#: core/app_settings.py:339
msgid "User DN template"
msgstr ""
#: core/app_settings.py:329
#: core/app_settings.py:341
#, 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:338
#: core/app_settings.py:350
msgid "LDAP synchronization settings"
msgstr ""
#: core/app_settings.py:366
#: core/app_settings.py:378
msgid "Enable export to LDAP"
msgstr ""
#: core/app_settings.py:368
#: core/app_settings.py:380
msgid ""
"Enable automatic synchronization between local database and LDAP directory"
msgstr ""
#: core/app_settings.py:377
#: core/app_settings.py:389
msgid "Delete remote LDAP account when local account is deleted"
msgstr ""
#: core/app_settings.py:380
#: core/app_settings.py:392
msgid ""
"Delete remote LDAP account when local account is deleted, otherwise it will "
"be disabled."
msgstr ""
#: core/app_settings.py:389
#: core/app_settings.py:401
msgid "Account DN template"
msgstr ""
#: core/app_settings.py:391
#: core/app_settings.py:403
#, 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:400
#: core/app_settings.py:412
msgid "Enable import from LDAP"
msgstr ""
#: core/app_settings.py:402
#: core/app_settings.py:414
msgid "Enable account synchronization from LDAP directory to local database"
msgstr ""
#: core/app_settings.py:432
#: core/app_settings.py:444
msgid "Username attribute"
msgstr ""
#: core/app_settings.py:434
#: core/app_settings.py:446
msgid "The name of the LDAP attribute where the username can be found."
msgstr ""
#: core/app_settings.py:443
#: core/app_settings.py:455
msgid "Enable Dovecot LDAP sync"
msgstr ""
#: core/app_settings.py:445
#: core/app_settings.py:457
msgid "LDAP authentication settings will be applied to Dovecot configuration."
msgstr ""
#: core/app_settings.py:453
#: core/app_settings.py:465
msgid "Dovecot LDAP config file"
msgstr ""
#: core/app_settings.py:455
#: core/app_settings.py:467
msgid ""
"Location of the configuration file which contains Dovecot LDAP settings."
msgstr ""
#: core/app_settings.py:468
#: core/app_settings.py:480
msgid "Dashboard"
msgstr ""
#: core/app_settings.py:474
#: core/app_settings.py:486
msgid "Custom welcome message"
msgstr ""
#: core/app_settings.py:488
msgid "A welcome message that will be displayed instead the default one"
msgstr ""
#: core/app_settings.py:495
msgid "Custom RSS feed"
msgstr ""
#: core/app_settings.py:476
#: core/app_settings.py:497
msgid "Display custom RSS feed to resellers and domain administrators"
msgstr ""
#: core/app_settings.py:484
msgid "Hide features widget"
msgstr ""
#: core/app_settings.py:486
msgid "Hide features widget for resellers and domain administrators"
msgstr ""
#: core/app_settings.py:498
msgid "Notifications"
msgstr ""
#: core/app_settings.py:504
msgid "Sender address"
msgstr ""
#: core/app_settings.py:506
msgid "Email address used to send notifications."
msgid "Display custom RSS feed to super admins"
msgstr ""
#: core/app_settings.py:509
msgid "Display custom RSS feed also to super administrators"
msgstr ""
#: core/app_settings.py:517
msgid "Hide features widget"
msgstr ""
#: core/app_settings.py:519
msgid "Hide features widget for resellers and domain administrators"
msgstr ""
#: core/app_settings.py:531
msgid "Theme"
msgstr ""
#: core/app_settings.py:537
msgid "Primary theme color"
msgstr ""
#: core/app_settings.py:539
msgid ""
"Primary color of the theme (hexadecimal code), used as the background color "
"of the left menu for example"
msgstr ""
#: core/app_settings.py:548
msgid "Primary theme color (lighter version)"
msgstr ""
#: core/app_settings.py:551 core/app_settings.py:563
msgid "Primary color of the theme (hexadecimal code)"
msgstr ""
#: core/app_settings.py:560
msgid "Primary theme color (darker version)"
msgstr ""
#: core/app_settings.py:571
msgid "Secondary theme color"
msgstr ""
#: core/app_settings.py:573
msgid ""
"Secondary color of the theme (hexadecimal code), used as the background "
"color of some buttons for example"
msgstr ""
#: core/app_settings.py:581
msgid "Labels theme color"
msgstr ""
#: core/app_settings.py:583
msgid "Theme color for labels (hexadecimal code)"
msgstr ""
#: core/app_settings.py:595
msgid "Notifications"
msgstr ""
#: core/app_settings.py:601
msgid "Sender address"
msgstr ""
#: core/app_settings.py:603
msgid "Email address used to send notifications."
msgstr ""
#: core/app_settings.py:614
msgid "Public API"
msgstr ""
#: core/app_settings.py:523
#: core/app_settings.py:620
msgid "Enable communication"
msgstr ""
#: core/app_settings.py:525 core/app_settings.py:535
#: core/app_settings.py:622 core/app_settings.py:632
msgid "Automatically checks if a newer version is available"
msgstr ""
#: core/app_settings.py:532
#: core/app_settings.py:629
msgid "Check new versions"
msgstr ""
#: core/app_settings.py:543
#: core/app_settings.py:640
msgid "Send an email when new versions are found"
msgstr ""
#: core/app_settings.py:547
#: core/app_settings.py:644
msgid "Send an email to notify admins about new versions"
msgstr ""
#: core/app_settings.py:554 sievefilters/constants.py:25
#: core/app_settings.py:651 sievefilters/constants.py:25
msgid "Recipient"
msgstr ""
#: core/app_settings.py:557
#: core/app_settings.py:654
msgid "Recipient of new versions notification emails."
msgstr ""
#: core/app_settings.py:564
#: core/app_settings.py:661
msgid "Send statistics"
msgstr ""
#: core/app_settings.py:567
#: core/app_settings.py:664
msgid "Send statistics to Modoboa public API (counters and used extensions)"
msgstr ""
#: core/app_settings.py:586
#: core/app_settings.py:683
msgid "Enable inactive account tracking"
msgstr ""
#: core/app_settings.py:589
#: core/app_settings.py:686
msgid ""
"Allow the administrator to set a threshold (in days) beyond which an account "
"is considered inactive if the user hasn't logged in"
msgstr ""
#: core/app_settings.py:598
#: core/app_settings.py:695
msgid "Inactive account threshold"
msgstr ""
#: core/app_settings.py:601
#: core/app_settings.py:698
msgid ""
"An account with a last login date greater than this threshold (in days) will "
"be considered as inactive"
msgstr ""
#: core/app_settings.py:610
#: core/app_settings.py:707
msgid "Top notifications check interval"
msgstr ""
#: core/app_settings.py:613
#: core/app_settings.py:710
msgid "Interval between two top notification checks (in seconds)"
msgstr ""
#: core/app_settings.py:620
#: core/app_settings.py:717
msgid "Maximum log record age"
msgstr ""
#: core/app_settings.py:622
#: core/app_settings.py:719
msgid "The maximum age in days of a log record"
msgstr ""
#: core/app_settings.py:629
#: core/app_settings.py:726
msgid "Items per page"
msgstr ""
#: core/app_settings.py:631
#: core/app_settings.py:728
msgid "Number of displayed items per page"
msgstr ""
#: core/app_settings.py:638
#: core/app_settings.py:735
msgid "Default top redirection"
msgstr ""
#: core/app_settings.py:640
#: core/app_settings.py:737
msgid "The default redirection used when no application is specified"
msgstr ""
#: core/checks.py:13
#: core/checks.py:15
msgid ""
"You have USE_TZ set to False, this may result in issues during transitions "
"between summer/winter time (ie the same local time occuring twice due to "
"clock change)."
msgstr ""
#: core/checks.py:17
#: core/checks.py:19
msgid "Set `USE_TZ = True` in settings.py"
msgstr ""
#: core/checks.py:21
#: core/checks.py:23
msgid "The password scheme you are using is deprecated."
msgstr ""
#: core/checks.py:22
#: core/checks.py:24
msgid "Upgrade your password scheme to a stronger one"
msgstr ""
#: core/checks.py:30
msgid ""
"Oauth2 application for dovecot has not been found. Webmail and some other "
"features won't be available."
msgstr ""
#: core/checks.py:34
msgid ""
"Visit : https://modoboa.readthedocs.io/en/latest/manual_installation/dovecot."
"html#dovecot-oauth2"
msgstr ""
#: core/checks.py:41
msgid ""
"Oauth2 application for radicale has not been found. Calendar and some other "
"features won't be available."
msgstr ""
#: core/checks.py:45
msgid ""
"Visit : https://modoboa.readthedocs.io/en/latest/manual_installation/"
"radicale.html#radicale-oauth2"
msgstr ""
#: core/constants.py:6
msgid "Simple user"
msgstr ""
@@ -1474,59 +1566,59 @@ msgstr ""
msgid "[modoboa] Update(s) available"
msgstr ""
#: core/models.py:72
#: core/models.py:71
msgid "Allow mailboxes access"
msgstr ""
#: core/models.py:74
#: core/models.py:73
msgid "Allow this administrator to access user mailboxes"
msgstr ""
#: core/models.py:76
#: core/models.py:75
msgid "password"
msgstr ""
#: core/models.py:79
#: core/models.py:78
msgid "language"
msgstr ""
#: core/models.py:83
#: core/models.py:82
msgid "Prefered language to display pages."
msgstr ""
#: core/models.py:85
#: core/models.py:84
msgid "Phone number"
msgstr ""
#: core/models.py:87
#: core/models.py:86
msgid "Secondary email"
msgstr ""
#: core/models.py:92
#: core/models.py:91
msgid "An alternative e-mail address, can be used for recovery needs."
msgstr ""
#: core/models.py:151
#: core/models.py:150
msgid "Failed to update password: LDAP module not installed"
msgstr ""
#: core/models.py:186 policyd/core.py:117
#: core/models.py:185 policyd/core.py:117
msgid "account"
msgstr ""
#: core/models.py:318
#: core/models.py:317
msgid "Unknown"
msgstr ""
#: core/models.py:361
#: core/models.py:360
msgid "You can't import an account with a role greater than yours"
msgstr ""
#: core/models.py:376
#: core/models.py:375
msgid "The simple user '{}' must have a valid email address"
msgstr ""
#: core/models.py:384
#: core/models.py:383
msgid "username and email fields must not differ for '{}'"
msgstr ""
@@ -1853,7 +1945,7 @@ msgstr ""
msgid "IMAP Migration"
msgstr ""
#: imap_migration/auth_backends.py:49 webmail/lib/imaputils.py:241
#: imap_migration/auth_backends.py:49 webmail/lib/imaputils.py:240
#, python-brace-format
msgid "Connection to IMAP server failed: {error}"
msgstr ""
@@ -1885,21 +1977,21 @@ msgstr ""
msgid "Failed to disable LDAP account: {}"
msgstr ""
#: lib/api_client.py:35 lib/api_client.py:69 lib/api_client.py:83
#: lib/api_client.py:87
#: lib/api_client.py:35 lib/api_client.py:67 lib/api_client.py:81
#: lib/api_client.py:85
#, python-format
msgid "Failed to communicate with public API: %s"
msgstr ""
#: lib/email_utils.py:139 lib/email_utils.py:350
#: lib/email_utils.py:140 lib/email_utils.py:351
msgid "unable to determine encoding of string"
msgstr ""
#: lib/exceptions.py:85
#: lib/exceptions.py:83
msgid "Permission denied: {}"
msgstr ""
#: lib/exceptions.py:86
#: lib/exceptions.py:84
msgid "Permission denied"
msgstr ""
@@ -2587,11 +2679,11 @@ msgstr ""
msgid "Stop processing"
msgstr ""
#: sievefilters/lib.py:51
#: sievefilters/lib.py:49
msgid "Connection to MANAGESIEVE server failed, check your configuration"
msgstr ""
#: sievefilters/lib.py:78
#: sievefilters/lib.py:76
msgid "Not enough space on server"
msgstr ""
@@ -2893,7 +2985,7 @@ msgstr ""
msgid "User defined email signature"
msgstr ""
#: webmail/lib/attachments.py:113
#: webmail/lib/attachments.py:112
msgid "Failed to remove attachment: "
msgstr ""
@@ -2901,7 +2993,7 @@ msgstr ""
msgid "Date"
msgstr ""
#: webmail/lib/imaputils.py:222
#: webmail/lib/imaputils.py:221
msgid "Failed to retrieve hierarchy delimiter"
msgstr ""
File diff suppressed because it is too large Load Diff
+266 -174
View File
@@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-06-20 16:45+0200\n"
"POT-Creation-Date: 2025-07-27 10:50+0200\n"
"PO-Revision-Date: 2020-05-11 18:45+0000\n"
"Last-Translator: Nils Otto Lillegrein <post@activeweb.no>, 2020\n"
"Language-Team: Norwegian (https://www.transifex.com/tonio/teams/13749/no/)\n"
@@ -21,75 +21,75 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: admin/api/v1/serializers.py:41
#: admin/api/v1/serializers.py:39
msgid ""
"Quota shared between mailboxes. Can be expressed in KB, MB (default) or GB. "
"A value of 0 means no quota."
msgstr ""
#: admin/api/v1/serializers.py:48
#: admin/api/v1/serializers.py:46
msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota."
msgstr ""
#: admin/api/v1/serializers.py:90
#: admin/api/v1/serializers.py:88
msgid "domain alias with this name already exists"
msgstr ""
#: admin/api/v1/serializers.py:100
#: admin/api/v1/serializers.py:98
msgid "No authorized MX record found for this domain"
msgstr ""
#: admin/api/v1/serializers.py:118
#: admin/api/v1/serializers.py:116
msgid "Cannot be greater than domain quota"
msgstr ""
#: admin/api/v1/serializers.py:164 admin/api/v1/serializers.py:359
#: admin/api/v2/serializers.py:531 admin/models/alias.py:44
#: admin/api/v1/serializers.py:162 admin/api/v1/serializers.py:357
#: admin/api/v2/serializers.py:548 admin/models/alias.py:44
msgid "Permission denied."
msgstr ""
#: admin/api/v1/serializers.py:226 admin/api/v2/serializers.py:89
#: admin/api/v2/serializers.py:453 core/api/v2/serializers.py:225
#: core/api/v2/serializers.py:227 core/api/v2/serializers.py:236
#: admin/api/v1/serializers.py:224 admin/api/v2/serializers.py:88
#: admin/api/v2/serializers.py:470 core/api/v2/serializers.py:235
#: core/api/v2/serializers.py:237 core/api/v2/serializers.py:246
#: transport/backends.py:40
msgid "This field is required"
msgstr ""
#: admin/api/v1/serializers.py:238
#: admin/api/v1/serializers.py:236
msgid ""
"List of administered domains (resellers and domain administrators only)."
msgstr ""
#: admin/api/v1/serializers.py:332 admin/api/v2/serializers.py:513
#: admin/api/v1/serializers.py:330 admin/api/v2/serializers.py:530
msgid "Not allowed for this role."
msgstr ""
#: admin/api/v1/serializers.py:350
#: admin/api/v1/serializers.py:348
msgid "Must be equal to mailbox full_address"
msgstr ""
#: admin/api/v1/serializers.py:392 admin/api/v2/serializers.py:565
#: admin/api/v1/serializers.py:390 admin/api/v2/serializers.py:582
#: calendars/serializers.py:175 calendars/serializers.py:177
msgid "This field is required."
msgstr ""
#: admin/api/v1/serializers.py:404 admin/api/v2/serializers.py:582
#: admin/api/v1/serializers.py:402 admin/api/v2/serializers.py:599
msgid "Local domain {} does not exist"
msgstr ""
#: admin/api/v1/serializers.py:494
#: admin/api/v1/serializers.py:492
msgid "A list of recipient"
msgstr ""
#: admin/api/v1/serializers.py:510 admin/api/v2/viewsets.py:271
#: admin/api/v1/serializers.py:508 admin/api/v2/viewsets.py:286
msgid "This alias already exists"
msgstr ""
#: admin/api/v1/serializers.py:546
#: admin/api/v1/serializers.py:544
msgid "You don't have access to this domain."
msgstr ""
#: admin/api/v1/serializers.py:555
#: admin/api/v1/serializers.py:553
msgid "You don't have access to this mailbox."
msgstr ""
@@ -97,56 +97,56 @@ msgstr ""
msgid "Here is your new Modoboa password: {}"
msgstr ""
#: admin/api/v2/serializers.py:81
#: admin/api/v2/serializers.py:80
msgid "DKIM keys storage directory not configured"
msgstr ""
#: admin/api/v2/serializers.py:93
#: admin/api/v2/serializers.py:92
msgid "This field is valid when type is relaydomain"
msgstr ""
#: admin/api/v2/serializers.py:100
#: admin/api/v2/serializers.py:99
msgid "You can't define an unlimited quota."
msgstr ""
#: admin/api/v2/serializers.py:134
#: admin/api/v2/serializers.py:133
#, python-format
msgid "User '%s' already exists"
msgstr ""
#: admin/api/v2/serializers.py:249 admin/api/v2/serializers.py:255
#: admin/api/v2/serializers.py:248 admin/api/v2/serializers.py:254
msgid "Must be a positive integer"
msgstr ""
#: admin/api/v2/serializers.py:264
#: admin/api/v2/serializers.py:263
msgid "openssl not found, please make sure it is installed."
msgstr ""
#: admin/api/v2/serializers.py:267 pdfcredentials/api/v2/serializers.py:79
#: admin/api/v2/serializers.py:266 pdfcredentials/api/v2/serializers.py:79
msgid "Directory not found."
msgstr ""
#: admin/api/v2/serializers.py:278
#: admin/api/v2/serializers.py:277
msgid "This field only allows valid IP addresses (or networks)"
msgstr ""
#: admin/api/v2/serializers.py:291
#: admin/api/v2/serializers.py:290
msgid "Please disable imap migration before disabling this option."
msgstr ""
#: admin/api/v2/serializers.py:304
#: admin/api/v2/serializers.py:303
msgid "Define at least one authorized network / address"
msgstr ""
#: admin/api/v2/serializers.py:548
#: admin/api/v2/serializers.py:565
msgid "The left part of an email address can't be more than 64 characters."
msgstr ""
#: admin/api/v2/serializers.py:570
#: admin/api/v2/serializers.py:587
msgid "A mailbox is required to create aliases."
msgstr ""
#: admin/api/v2/serializers.py:734
#: admin/api/v2/serializers.py:751
msgid "Unknown status"
msgstr ""
@@ -158,11 +158,11 @@ msgstr ""
msgid "You can't delete your own domain"
msgstr ""
#: admin/api/v2/viewsets.py:392
#: admin/api/v2/viewsets.py:407
msgid "No alarm ID provided"
msgstr ""
#: admin/api/v2/viewsets.py:396
#: admin/api/v2/viewsets.py:411
msgid "Received invalid alarm id(s)"
msgstr ""
@@ -427,12 +427,12 @@ msgstr ""
msgid "Invalid IP address format for {domain}; {addr}"
msgstr ""
#: admin/lib.py:340
#: admin/lib.py:360
#, python-format
msgid "Object already exists: %s"
msgstr ""
#: admin/lib.py:344
#: admin/lib.py:364
#, python-format
msgid "%d objects imported successfully"
msgstr ""
@@ -581,7 +581,7 @@ msgid "Key length"
msgstr ""
#: admin/models/domain.py:321 admin/models/domain_alias.py:70
#: core/models.py:353 relaydomains/lib.py:13
#: core/models.py:352 relaydomains/lib.py:13
msgid "Invalid line"
msgstr ""
@@ -777,7 +777,7 @@ msgstr ""
msgid "Allow domain administrators to manage user calendars (read and write)"
msgstr ""
#: calendars/app_settings.py:60 core/app_settings.py:579
#: calendars/app_settings.py:60 core/app_settings.py:676
#: rspamd/app_settings.py:45
msgid "Miscellaneous"
msgstr ""
@@ -878,7 +878,7 @@ msgstr ""
msgid "Failed TFA settings editing attempt from '%s' as user '%s'"
msgstr ""
#: core/api/v1/serializers.py:91 core/api/v2/serializers.py:415
#: core/api/v1/serializers.py:91 core/api/v2/serializers.py:425
msgid "Invalid password"
msgstr ""
@@ -890,24 +890,24 @@ msgstr ""
msgid "Local"
msgstr ""
#: core/api/v2/serializers.py:165 core/app_settings.py:17
#: core/api/v2/serializers.py:175 core/app_settings.py:17
msgid "User profile"
msgstr ""
#: core/api/v2/serializers.py:184 core/api/v2/serializers.py:191
#: core/api/v2/serializers.py:198
#: core/api/v2/serializers.py:194 core/api/v2/serializers.py:201
#: core/api/v2/serializers.py:208
msgid "Invalid syntax"
msgstr ""
#: core/api/v2/serializers.py:203
#: core/api/v2/serializers.py:213
msgid "Invalid rounds number"
msgstr ""
#: core/api/v2/serializers.py:403 core/forms.py:81
#: core/api/v2/serializers.py:413 core/forms.py:81
msgid "This code is invalid"
msgstr ""
#: core/api/v2/serializers.py:473 core/views/auth.py:194 core/views/auth.py:247
#: core/api/v2/serializers.py:483 core/views/auth.py:194 core/views/auth.py:247
msgid "Please use the following code to recover your Modoboa password: {}"
msgstr ""
@@ -982,410 +982,502 @@ msgstr ""
msgid "Length of randomly generated passwords."
msgstr ""
#: core/app_settings.py:102
#: core/app_settings.py:103
msgid "Allow special characters for random password"
msgstr ""
#: core/app_settings.py:106
msgid "Enable special characters in randomly generated passwords."
msgstr ""
#: core/app_settings.py:114
msgid "Update password service URL"
msgstr ""
#: core/app_settings.py:104
#: core/app_settings.py:116
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:114
#: core/app_settings.py:126
msgid "Password recovery announcement"
msgstr ""
#: core/app_settings.py:116
#: core/app_settings.py:128
msgid "A temporary message that will be displayed on the reset password page."
msgstr ""
#: core/app_settings.py:125
#: core/app_settings.py:137
msgid "Enable password recovery by SMS"
msgstr ""
#: core/app_settings.py:128
#: core/app_settings.py:140
msgid "Enable password recovery by SMS for users who filled a phone number."
msgstr ""
#: core/app_settings.py:136
#: core/app_settings.py:148
msgid "SMS provider"
msgstr ""
#: core/app_settings.py:139
#: core/app_settings.py:151
msgid "Choose a provider to send password recovery SMS"
msgstr ""
#: core/app_settings.py:151
#: core/app_settings.py:163
msgid "LDAP"
msgstr ""
#: core/app_settings.py:157 sievefilters/app_settings.py:18
#: core/app_settings.py:169 sievefilters/app_settings.py:18
#: sievefilters/app_settings.py:51 webmail/app_settings.py:36
#: webmail/app_settings.py:73
msgid "Server address"
msgstr ""
#: core/app_settings.py:159
#: core/app_settings.py:171
msgid "The IP address or the DNS name of the LDAP server"
msgstr ""
#: core/app_settings.py:166 sievefilters/app_settings.py:25
#: core/app_settings.py:178 sievefilters/app_settings.py:25
#: sievefilters/app_settings.py:67 webmail/app_settings.py:54
#: webmail/app_settings.py:91
msgid "Server port"
msgstr ""
#: core/app_settings.py:168
#: core/app_settings.py:180
msgid "The TCP port number used by the LDAP server"
msgstr ""
#: core/app_settings.py:176
#: core/app_settings.py:188
msgid "Enable secondary server (fallback)"
msgstr ""
#: core/app_settings.py:179
#: core/app_settings.py:191
msgid ""
"Enable a secondary LDAP server which will be used if the primary one fails"
msgstr ""
#: core/app_settings.py:187
#: core/app_settings.py:199
msgid "Secondary server address"
msgstr ""
#: core/app_settings.py:190
#: core/app_settings.py:202
msgid "The IP address or the DNS name of the seondary LDAP server"
msgstr ""
#: core/app_settings.py:197
#: core/app_settings.py:209
msgid "Secondary server port"
msgstr ""
#: core/app_settings.py:200
#: core/app_settings.py:212
msgid "The TCP port number used by the LDAP secondary server"
msgstr ""
#: core/app_settings.py:207 sievefilters/app_settings.py:58
#: core/app_settings.py:219 sievefilters/app_settings.py:58
#: webmail/app_settings.py:45
msgid "Use a secured connection"
msgstr ""
#: core/app_settings.py:209
#: core/app_settings.py:221
msgid "Use an SSL/STARTTLS connection to access the LDAP server"
msgstr ""
#: core/app_settings.py:216
#: core/app_settings.py:228
msgid "Active Directory"
msgstr ""
#: core/app_settings.py:218
#: core/app_settings.py:230
msgid "Tell if the LDAP server is an Active Directory one"
msgstr ""
#: core/app_settings.py:225
#: core/app_settings.py:237
msgid "Administrator groups"
msgstr ""
#: core/app_settings.py:227
#: core/app_settings.py:239
msgid ""
"Members of those LDAP Posix groups will be created as domain administrators. "
"Use ';' characters to separate groups."
msgstr ""
#: core/app_settings.py:236
#: core/app_settings.py:248
msgid "Group type"
msgstr ""
#: core/app_settings.py:238
#: core/app_settings.py:250
msgid "The LDAP group type to use with your directory."
msgstr ""
#: core/app_settings.py:245
#: core/app_settings.py:257
msgid "Groups search base"
msgstr ""
#: core/app_settings.py:247
#: core/app_settings.py:259
msgid "The distinguished name of the search base used to find groups"
msgstr ""
#: core/app_settings.py:255
#: core/app_settings.py:267
msgid "Password attribute"
msgstr ""
#: core/app_settings.py:257
#: core/app_settings.py:269
msgid "The attribute used to store user passwords"
msgstr ""
#: core/app_settings.py:264
#: core/app_settings.py:276
msgid "LDAP authentication settings"
msgstr ""
#: core/app_settings.py:272
#: core/app_settings.py:284
msgid "Authentication method"
msgstr ""
#: core/app_settings.py:275
#: core/app_settings.py:287
msgid "Choose the authentication method to use"
msgstr ""
#: core/app_settings.py:282 core/app_settings.py:345
#: core/app_settings.py:294 core/app_settings.py:357
msgid "Bind DN"
msgstr ""
#: core/app_settings.py:284 core/app_settings.py:347
#: core/app_settings.py:296 core/app_settings.py:359
msgid ""
"The distinguished name to use when binding to the LDAP server. Leave empty "
"for an anonymous bind"
msgstr ""
#: core/app_settings.py:293 core/app_settings.py:355
#: core/app_settings.py:305 core/app_settings.py:367
msgid "Bind password"
msgstr ""
#: core/app_settings.py:295 core/app_settings.py:357
#: core/app_settings.py:307 core/app_settings.py:369
msgid "The password to use when binding to the LDAP server (with 'Bind DN')"
msgstr ""
#: core/app_settings.py:305 core/app_settings.py:410
#: core/app_settings.py:317 core/app_settings.py:422
msgid "Users search base"
msgstr ""
#: core/app_settings.py:307 core/app_settings.py:412
#: core/app_settings.py:319 core/app_settings.py:424
msgid "The distinguished name of the search base used to find users"
msgstr ""
#: core/app_settings.py:316 core/app_settings.py:421
#: core/app_settings.py:328 core/app_settings.py:433
msgid "Search filter"
msgstr ""
#: core/app_settings.py:318 core/app_settings.py:423
#: core/app_settings.py:330 core/app_settings.py:435
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:327
#: core/app_settings.py:339
msgid "User DN template"
msgstr ""
#: core/app_settings.py:329
#: core/app_settings.py:341
#, 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:338
#: core/app_settings.py:350
msgid "LDAP synchronization settings"
msgstr ""
#: core/app_settings.py:366
#: core/app_settings.py:378
msgid "Enable export to LDAP"
msgstr ""
#: core/app_settings.py:368
#: core/app_settings.py:380
msgid ""
"Enable automatic synchronization between local database and LDAP directory"
msgstr ""
#: core/app_settings.py:377
#: core/app_settings.py:389
msgid "Delete remote LDAP account when local account is deleted"
msgstr ""
#: core/app_settings.py:380
#: core/app_settings.py:392
msgid ""
"Delete remote LDAP account when local account is deleted, otherwise it will "
"be disabled."
msgstr ""
#: core/app_settings.py:389
#: core/app_settings.py:401
msgid "Account DN template"
msgstr ""
#: core/app_settings.py:391
#: core/app_settings.py:403
#, 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:400
#: core/app_settings.py:412
msgid "Enable import from LDAP"
msgstr ""
#: core/app_settings.py:402
#: core/app_settings.py:414
msgid "Enable account synchronization from LDAP directory to local database"
msgstr ""
#: core/app_settings.py:432
#: core/app_settings.py:444
msgid "Username attribute"
msgstr ""
#: core/app_settings.py:434
#: core/app_settings.py:446
msgid "The name of the LDAP attribute where the username can be found."
msgstr ""
#: core/app_settings.py:443
#: core/app_settings.py:455
msgid "Enable Dovecot LDAP sync"
msgstr ""
#: core/app_settings.py:445
#: core/app_settings.py:457
msgid "LDAP authentication settings will be applied to Dovecot configuration."
msgstr ""
#: core/app_settings.py:453
#: core/app_settings.py:465
msgid "Dovecot LDAP config file"
msgstr ""
#: core/app_settings.py:455
#: core/app_settings.py:467
msgid ""
"Location of the configuration file which contains Dovecot LDAP settings."
msgstr ""
#: core/app_settings.py:468
#: core/app_settings.py:480
msgid "Dashboard"
msgstr ""
#: core/app_settings.py:474
#: core/app_settings.py:486
msgid "Custom welcome message"
msgstr ""
#: core/app_settings.py:488
msgid "A welcome message that will be displayed instead the default one"
msgstr ""
#: core/app_settings.py:495
msgid "Custom RSS feed"
msgstr ""
#: core/app_settings.py:476
#: core/app_settings.py:497
msgid "Display custom RSS feed to resellers and domain administrators"
msgstr ""
#: core/app_settings.py:484
msgid "Hide features widget"
msgstr ""
#: core/app_settings.py:486
msgid "Hide features widget for resellers and domain administrators"
msgstr ""
#: core/app_settings.py:498
msgid "Notifications"
msgstr ""
#: core/app_settings.py:504
msgid "Sender address"
msgstr ""
#: core/app_settings.py:506
msgid "Email address used to send notifications."
msgid "Display custom RSS feed to super admins"
msgstr ""
#: core/app_settings.py:509
msgid "Display custom RSS feed also to super administrators"
msgstr ""
#: core/app_settings.py:517
msgid "Hide features widget"
msgstr ""
#: core/app_settings.py:519
msgid "Hide features widget for resellers and domain administrators"
msgstr ""
#: core/app_settings.py:531
msgid "Theme"
msgstr ""
#: core/app_settings.py:537
msgid "Primary theme color"
msgstr ""
#: core/app_settings.py:539
msgid ""
"Primary color of the theme (hexadecimal code), used as the background color "
"of the left menu for example"
msgstr ""
#: core/app_settings.py:548
msgid "Primary theme color (lighter version)"
msgstr ""
#: core/app_settings.py:551 core/app_settings.py:563
msgid "Primary color of the theme (hexadecimal code)"
msgstr ""
#: core/app_settings.py:560
msgid "Primary theme color (darker version)"
msgstr ""
#: core/app_settings.py:571
msgid "Secondary theme color"
msgstr ""
#: core/app_settings.py:573
msgid ""
"Secondary color of the theme (hexadecimal code), used as the background "
"color of some buttons for example"
msgstr ""
#: core/app_settings.py:581
msgid "Labels theme color"
msgstr ""
#: core/app_settings.py:583
msgid "Theme color for labels (hexadecimal code)"
msgstr ""
#: core/app_settings.py:595
msgid "Notifications"
msgstr ""
#: core/app_settings.py:601
msgid "Sender address"
msgstr ""
#: core/app_settings.py:603
msgid "Email address used to send notifications."
msgstr ""
#: core/app_settings.py:614
msgid "Public API"
msgstr ""
#: core/app_settings.py:523
#: core/app_settings.py:620
msgid "Enable communication"
msgstr ""
#: core/app_settings.py:525 core/app_settings.py:535
#: core/app_settings.py:622 core/app_settings.py:632
msgid "Automatically checks if a newer version is available"
msgstr ""
#: core/app_settings.py:532
#: core/app_settings.py:629
msgid "Check new versions"
msgstr ""
#: core/app_settings.py:543
#: core/app_settings.py:640
msgid "Send an email when new versions are found"
msgstr ""
#: core/app_settings.py:547
#: core/app_settings.py:644
msgid "Send an email to notify admins about new versions"
msgstr ""
#: core/app_settings.py:554 sievefilters/constants.py:25
#: core/app_settings.py:651 sievefilters/constants.py:25
msgid "Recipient"
msgstr ""
#: core/app_settings.py:557
#: core/app_settings.py:654
msgid "Recipient of new versions notification emails."
msgstr ""
#: core/app_settings.py:564
#: core/app_settings.py:661
msgid "Send statistics"
msgstr ""
#: core/app_settings.py:567
#: core/app_settings.py:664
msgid "Send statistics to Modoboa public API (counters and used extensions)"
msgstr ""
#: core/app_settings.py:586
#: core/app_settings.py:683
msgid "Enable inactive account tracking"
msgstr ""
#: core/app_settings.py:589
#: core/app_settings.py:686
msgid ""
"Allow the administrator to set a threshold (in days) beyond which an account "
"is considered inactive if the user hasn't logged in"
msgstr ""
#: core/app_settings.py:598
#: core/app_settings.py:695
msgid "Inactive account threshold"
msgstr ""
#: core/app_settings.py:601
#: core/app_settings.py:698
msgid ""
"An account with a last login date greater than this threshold (in days) will "
"be considered as inactive"
msgstr ""
#: core/app_settings.py:610
#: core/app_settings.py:707
msgid "Top notifications check interval"
msgstr ""
#: core/app_settings.py:613
#: core/app_settings.py:710
msgid "Interval between two top notification checks (in seconds)"
msgstr ""
#: core/app_settings.py:620
#: core/app_settings.py:717
msgid "Maximum log record age"
msgstr ""
#: core/app_settings.py:622
#: core/app_settings.py:719
msgid "The maximum age in days of a log record"
msgstr ""
#: core/app_settings.py:629
#: core/app_settings.py:726
msgid "Items per page"
msgstr ""
#: core/app_settings.py:631
#: core/app_settings.py:728
msgid "Number of displayed items per page"
msgstr ""
#: core/app_settings.py:638
#: core/app_settings.py:735
msgid "Default top redirection"
msgstr ""
#: core/app_settings.py:640
#: core/app_settings.py:737
msgid "The default redirection used when no application is specified"
msgstr ""
#: core/checks.py:13
#: core/checks.py:15
msgid ""
"You have USE_TZ set to False, this may result in issues during transitions "
"between summer/winter time (ie the same local time occuring twice due to "
"clock change)."
msgstr ""
#: core/checks.py:17
#: core/checks.py:19
msgid "Set `USE_TZ = True` in settings.py"
msgstr ""
#: core/checks.py:21
#: core/checks.py:23
msgid "The password scheme you are using is deprecated."
msgstr ""
#: core/checks.py:22
#: core/checks.py:24
msgid "Upgrade your password scheme to a stronger one"
msgstr ""
#: core/checks.py:30
msgid ""
"Oauth2 application for dovecot has not been found. Webmail and some other "
"features won't be available."
msgstr ""
#: core/checks.py:34
msgid ""
"Visit : https://modoboa.readthedocs.io/en/latest/manual_installation/dovecot."
"html#dovecot-oauth2"
msgstr ""
#: core/checks.py:41
msgid ""
"Oauth2 application for radicale has not been found. Calendar and some other "
"features won't be available."
msgstr ""
#: core/checks.py:45
msgid ""
"Visit : https://modoboa.readthedocs.io/en/latest/manual_installation/"
"radicale.html#radicale-oauth2"
msgstr ""
#: core/constants.py:6
msgid "Simple user"
msgstr ""
@@ -1477,61 +1569,61 @@ msgstr ""
msgid "[modoboa] Update(s) available"
msgstr ""
#: core/models.py:72
#: core/models.py:71
msgid "Allow mailboxes access"
msgstr ""
#: core/models.py:74
#: core/models.py:73
msgid "Allow this administrator to access user mailboxes"
msgstr ""
#: core/models.py:76
#: core/models.py:75
msgid "password"
msgstr ""
#: core/models.py:79
#: core/models.py:78
msgid "language"
msgstr ""
#: core/models.py:83
#: core/models.py:82
msgid "Prefered language to display pages."
msgstr ""
#: core/models.py:85
#: core/models.py:84
msgid "Phone number"
msgstr ""
#: core/models.py:87
#: core/models.py:86
msgid "Secondary email"
msgstr ""
#: core/models.py:92
#: core/models.py:91
msgid "An alternative e-mail address, can be used for recovery needs."
msgstr ""
#: core/models.py:151
#: core/models.py:150
#, fuzzy
#| msgid "Failed to update LDAP account: {}"
msgid "Failed to update password: LDAP module not installed"
msgstr "Kunne ikke oppdatere LDAP-konto: {}"
#: core/models.py:186 policyd/core.py:117
#: core/models.py:185 policyd/core.py:117
msgid "account"
msgstr ""
#: core/models.py:318
#: core/models.py:317
msgid "Unknown"
msgstr ""
#: core/models.py:361
#: core/models.py:360
msgid "You can't import an account with a role greater than yours"
msgstr ""
#: core/models.py:376
#: core/models.py:375
msgid "The simple user '{}' must have a valid email address"
msgstr ""
#: core/models.py:384
#: core/models.py:383
msgid "username and email fields must not differ for '{}'"
msgstr ""
@@ -1858,7 +1950,7 @@ msgstr ""
msgid "IMAP Migration"
msgstr ""
#: imap_migration/auth_backends.py:49 webmail/lib/imaputils.py:241
#: imap_migration/auth_backends.py:49 webmail/lib/imaputils.py:240
#, python-brace-format
msgid "Connection to IMAP server failed: {error}"
msgstr ""
@@ -1890,21 +1982,21 @@ msgstr "Kunne ikke slette LDAP-konto: {}"
msgid "Failed to disable LDAP account: {}"
msgstr "Kunne ikke deaktivere LDAP-konto: {}"
#: lib/api_client.py:35 lib/api_client.py:69 lib/api_client.py:83
#: lib/api_client.py:87
#: lib/api_client.py:35 lib/api_client.py:67 lib/api_client.py:81
#: lib/api_client.py:85
#, python-format
msgid "Failed to communicate with public API: %s"
msgstr ""
#: lib/email_utils.py:139 lib/email_utils.py:350
#: lib/email_utils.py:140 lib/email_utils.py:351
msgid "unable to determine encoding of string"
msgstr ""
#: lib/exceptions.py:85
#: lib/exceptions.py:83
msgid "Permission denied: {}"
msgstr ""
#: lib/exceptions.py:86
#: lib/exceptions.py:84
msgid "Permission denied"
msgstr ""
@@ -2594,11 +2686,11 @@ msgstr ""
msgid "Stop processing"
msgstr ""
#: sievefilters/lib.py:51
#: sievefilters/lib.py:49
msgid "Connection to MANAGESIEVE server failed, check your configuration"
msgstr ""
#: sievefilters/lib.py:78
#: sievefilters/lib.py:76
msgid "Not enough space on server"
msgstr ""
@@ -2900,7 +2992,7 @@ msgstr ""
msgid "User defined email signature"
msgstr ""
#: webmail/lib/attachments.py:113
#: webmail/lib/attachments.py:112
#, fuzzy
#| msgid "Failed to create LDAP account: {}"
msgid "Failed to remove attachment: "
@@ -2910,7 +3002,7 @@ msgstr "Kunne ikke opprette LDAP-konto: {}"
msgid "Date"
msgstr ""
#: webmail/lib/imaputils.py:222
#: webmail/lib/imaputils.py:221
msgid "Failed to retrieve hierarchy delimiter"
msgstr ""
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+266 -174
View File
@@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-06-20 16:45+0200\n"
"POT-Creation-Date: 2025-07-27 10:50+0200\n"
"PO-Revision-Date: 2020-05-11 18:45+0000\n"
"Last-Translator: හෙළබස, 2022\n"
"Language-Team: Sinhala (https://www.transifex.com/tonio/teams/13749/si/)\n"
@@ -21,75 +21,75 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: admin/api/v1/serializers.py:41
#: admin/api/v1/serializers.py:39
msgid ""
"Quota shared between mailboxes. Can be expressed in KB, MB (default) or GB. "
"A value of 0 means no quota."
msgstr ""
#: admin/api/v1/serializers.py:48
#: admin/api/v1/serializers.py:46
msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota."
msgstr ""
#: admin/api/v1/serializers.py:90
#: admin/api/v1/serializers.py:88
msgid "domain alias with this name already exists"
msgstr ""
#: admin/api/v1/serializers.py:100
#: admin/api/v1/serializers.py:98
msgid "No authorized MX record found for this domain"
msgstr ""
#: admin/api/v1/serializers.py:118
#: admin/api/v1/serializers.py:116
msgid "Cannot be greater than domain quota"
msgstr ""
#: admin/api/v1/serializers.py:164 admin/api/v1/serializers.py:359
#: admin/api/v2/serializers.py:531 admin/models/alias.py:44
#: admin/api/v1/serializers.py:162 admin/api/v1/serializers.py:357
#: admin/api/v2/serializers.py:548 admin/models/alias.py:44
msgid "Permission denied."
msgstr ""
#: admin/api/v1/serializers.py:226 admin/api/v2/serializers.py:89
#: admin/api/v2/serializers.py:453 core/api/v2/serializers.py:225
#: core/api/v2/serializers.py:227 core/api/v2/serializers.py:236
#: admin/api/v1/serializers.py:224 admin/api/v2/serializers.py:88
#: admin/api/v2/serializers.py:470 core/api/v2/serializers.py:235
#: core/api/v2/serializers.py:237 core/api/v2/serializers.py:246
#: transport/backends.py:40
msgid "This field is required"
msgstr ""
#: admin/api/v1/serializers.py:238
#: admin/api/v1/serializers.py:236
msgid ""
"List of administered domains (resellers and domain administrators only)."
msgstr ""
#: admin/api/v1/serializers.py:332 admin/api/v2/serializers.py:513
#: admin/api/v1/serializers.py:330 admin/api/v2/serializers.py:530
msgid "Not allowed for this role."
msgstr ""
#: admin/api/v1/serializers.py:350
#: admin/api/v1/serializers.py:348
msgid "Must be equal to mailbox full_address"
msgstr ""
#: admin/api/v1/serializers.py:392 admin/api/v2/serializers.py:565
#: admin/api/v1/serializers.py:390 admin/api/v2/serializers.py:582
#: calendars/serializers.py:175 calendars/serializers.py:177
msgid "This field is required."
msgstr ""
#: admin/api/v1/serializers.py:404 admin/api/v2/serializers.py:582
#: admin/api/v1/serializers.py:402 admin/api/v2/serializers.py:599
msgid "Local domain {} does not exist"
msgstr ""
#: admin/api/v1/serializers.py:494
#: admin/api/v1/serializers.py:492
msgid "A list of recipient"
msgstr ""
#: admin/api/v1/serializers.py:510 admin/api/v2/viewsets.py:271
#: admin/api/v1/serializers.py:508 admin/api/v2/viewsets.py:286
msgid "This alias already exists"
msgstr ""
#: admin/api/v1/serializers.py:546
#: admin/api/v1/serializers.py:544
msgid "You don't have access to this domain."
msgstr ""
#: admin/api/v1/serializers.py:555
#: admin/api/v1/serializers.py:553
msgid "You don't have access to this mailbox."
msgstr ""
@@ -97,56 +97,56 @@ msgstr ""
msgid "Here is your new Modoboa password: {}"
msgstr ""
#: admin/api/v2/serializers.py:81
#: admin/api/v2/serializers.py:80
msgid "DKIM keys storage directory not configured"
msgstr ""
#: admin/api/v2/serializers.py:93
#: admin/api/v2/serializers.py:92
msgid "This field is valid when type is relaydomain"
msgstr ""
#: admin/api/v2/serializers.py:100
#: admin/api/v2/serializers.py:99
msgid "You can't define an unlimited quota."
msgstr ""
#: admin/api/v2/serializers.py:134
#: admin/api/v2/serializers.py:133
#, python-format
msgid "User '%s' already exists"
msgstr ""
#: admin/api/v2/serializers.py:249 admin/api/v2/serializers.py:255
#: admin/api/v2/serializers.py:248 admin/api/v2/serializers.py:254
msgid "Must be a positive integer"
msgstr ""
#: admin/api/v2/serializers.py:264
#: admin/api/v2/serializers.py:263
msgid "openssl not found, please make sure it is installed."
msgstr ""
#: admin/api/v2/serializers.py:267 pdfcredentials/api/v2/serializers.py:79
#: admin/api/v2/serializers.py:266 pdfcredentials/api/v2/serializers.py:79
msgid "Directory not found."
msgstr ""
#: admin/api/v2/serializers.py:278
#: admin/api/v2/serializers.py:277
msgid "This field only allows valid IP addresses (or networks)"
msgstr ""
#: admin/api/v2/serializers.py:291
#: admin/api/v2/serializers.py:290
msgid "Please disable imap migration before disabling this option."
msgstr ""
#: admin/api/v2/serializers.py:304
#: admin/api/v2/serializers.py:303
msgid "Define at least one authorized network / address"
msgstr ""
#: admin/api/v2/serializers.py:548
#: admin/api/v2/serializers.py:565
msgid "The left part of an email address can't be more than 64 characters."
msgstr ""
#: admin/api/v2/serializers.py:570
#: admin/api/v2/serializers.py:587
msgid "A mailbox is required to create aliases."
msgstr ""
#: admin/api/v2/serializers.py:734
#: admin/api/v2/serializers.py:751
msgid "Unknown status"
msgstr ""
@@ -158,11 +158,11 @@ msgstr ""
msgid "You can't delete your own domain"
msgstr ""
#: admin/api/v2/viewsets.py:392
#: admin/api/v2/viewsets.py:407
msgid "No alarm ID provided"
msgstr ""
#: admin/api/v2/viewsets.py:396
#: admin/api/v2/viewsets.py:411
msgid "Received invalid alarm id(s)"
msgstr ""
@@ -427,12 +427,12 @@ msgstr ""
msgid "Invalid IP address format for {domain}; {addr}"
msgstr ""
#: admin/lib.py:340
#: admin/lib.py:360
#, python-format
msgid "Object already exists: %s"
msgstr ""
#: admin/lib.py:344
#: admin/lib.py:364
#, python-format
msgid "%d objects imported successfully"
msgstr ""
@@ -581,7 +581,7 @@ msgid "Key length"
msgstr ""
#: admin/models/domain.py:321 admin/models/domain_alias.py:70
#: core/models.py:353 relaydomains/lib.py:13
#: core/models.py:352 relaydomains/lib.py:13
msgid "Invalid line"
msgstr ""
@@ -777,7 +777,7 @@ msgstr ""
msgid "Allow domain administrators to manage user calendars (read and write)"
msgstr ""
#: calendars/app_settings.py:60 core/app_settings.py:579
#: calendars/app_settings.py:60 core/app_settings.py:676
#: rspamd/app_settings.py:45
msgid "Miscellaneous"
msgstr ""
@@ -878,7 +878,7 @@ msgstr ""
msgid "Failed TFA settings editing attempt from '%s' as user '%s'"
msgstr ""
#: core/api/v1/serializers.py:91 core/api/v2/serializers.py:415
#: core/api/v1/serializers.py:91 core/api/v2/serializers.py:425
msgid "Invalid password"
msgstr ""
@@ -890,24 +890,24 @@ msgstr ""
msgid "Local"
msgstr ""
#: core/api/v2/serializers.py:165 core/app_settings.py:17
#: core/api/v2/serializers.py:175 core/app_settings.py:17
msgid "User profile"
msgstr ""
#: core/api/v2/serializers.py:184 core/api/v2/serializers.py:191
#: core/api/v2/serializers.py:198
#: core/api/v2/serializers.py:194 core/api/v2/serializers.py:201
#: core/api/v2/serializers.py:208
msgid "Invalid syntax"
msgstr ""
#: core/api/v2/serializers.py:203
#: core/api/v2/serializers.py:213
msgid "Invalid rounds number"
msgstr ""
#: core/api/v2/serializers.py:403 core/forms.py:81
#: core/api/v2/serializers.py:413 core/forms.py:81
msgid "This code is invalid"
msgstr ""
#: core/api/v2/serializers.py:473 core/views/auth.py:194 core/views/auth.py:247
#: core/api/v2/serializers.py:483 core/views/auth.py:194 core/views/auth.py:247
msgid "Please use the following code to recover your Modoboa password: {}"
msgstr ""
@@ -982,410 +982,502 @@ msgstr ""
msgid "Length of randomly generated passwords."
msgstr ""
#: core/app_settings.py:102
#: core/app_settings.py:103
msgid "Allow special characters for random password"
msgstr ""
#: core/app_settings.py:106
msgid "Enable special characters in randomly generated passwords."
msgstr ""
#: core/app_settings.py:114
msgid "Update password service URL"
msgstr ""
#: core/app_settings.py:104
#: core/app_settings.py:116
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:114
#: core/app_settings.py:126
msgid "Password recovery announcement"
msgstr ""
#: core/app_settings.py:116
#: core/app_settings.py:128
msgid "A temporary message that will be displayed on the reset password page."
msgstr ""
#: core/app_settings.py:125
#: core/app_settings.py:137
msgid "Enable password recovery by SMS"
msgstr ""
#: core/app_settings.py:128
#: core/app_settings.py:140
msgid "Enable password recovery by SMS for users who filled a phone number."
msgstr ""
#: core/app_settings.py:136
#: core/app_settings.py:148
msgid "SMS provider"
msgstr ""
#: core/app_settings.py:139
#: core/app_settings.py:151
msgid "Choose a provider to send password recovery SMS"
msgstr ""
#: core/app_settings.py:151
#: core/app_settings.py:163
msgid "LDAP"
msgstr ""
#: core/app_settings.py:157 sievefilters/app_settings.py:18
#: core/app_settings.py:169 sievefilters/app_settings.py:18
#: sievefilters/app_settings.py:51 webmail/app_settings.py:36
#: webmail/app_settings.py:73
msgid "Server address"
msgstr ""
#: core/app_settings.py:159
#: core/app_settings.py:171
msgid "The IP address or the DNS name of the LDAP server"
msgstr ""
#: core/app_settings.py:166 sievefilters/app_settings.py:25
#: core/app_settings.py:178 sievefilters/app_settings.py:25
#: sievefilters/app_settings.py:67 webmail/app_settings.py:54
#: webmail/app_settings.py:91
msgid "Server port"
msgstr ""
#: core/app_settings.py:168
#: core/app_settings.py:180
msgid "The TCP port number used by the LDAP server"
msgstr ""
#: core/app_settings.py:176
#: core/app_settings.py:188
msgid "Enable secondary server (fallback)"
msgstr ""
#: core/app_settings.py:179
#: core/app_settings.py:191
msgid ""
"Enable a secondary LDAP server which will be used if the primary one fails"
msgstr ""
#: core/app_settings.py:187
#: core/app_settings.py:199
msgid "Secondary server address"
msgstr ""
#: core/app_settings.py:190
#: core/app_settings.py:202
msgid "The IP address or the DNS name of the seondary LDAP server"
msgstr ""
#: core/app_settings.py:197
#: core/app_settings.py:209
msgid "Secondary server port"
msgstr ""
#: core/app_settings.py:200
#: core/app_settings.py:212
msgid "The TCP port number used by the LDAP secondary server"
msgstr ""
#: core/app_settings.py:207 sievefilters/app_settings.py:58
#: core/app_settings.py:219 sievefilters/app_settings.py:58
#: webmail/app_settings.py:45
msgid "Use a secured connection"
msgstr ""
#: core/app_settings.py:209
#: core/app_settings.py:221
msgid "Use an SSL/STARTTLS connection to access the LDAP server"
msgstr ""
#: core/app_settings.py:216
#: core/app_settings.py:228
msgid "Active Directory"
msgstr ""
#: core/app_settings.py:218
#: core/app_settings.py:230
msgid "Tell if the LDAP server is an Active Directory one"
msgstr ""
#: core/app_settings.py:225
#: core/app_settings.py:237
msgid "Administrator groups"
msgstr ""
#: core/app_settings.py:227
#: core/app_settings.py:239
msgid ""
"Members of those LDAP Posix groups will be created as domain administrators. "
"Use ';' characters to separate groups."
msgstr ""
#: core/app_settings.py:236
#: core/app_settings.py:248
msgid "Group type"
msgstr ""
#: core/app_settings.py:238
#: core/app_settings.py:250
msgid "The LDAP group type to use with your directory."
msgstr ""
#: core/app_settings.py:245
#: core/app_settings.py:257
msgid "Groups search base"
msgstr ""
#: core/app_settings.py:247
#: core/app_settings.py:259
msgid "The distinguished name of the search base used to find groups"
msgstr ""
#: core/app_settings.py:255
#: core/app_settings.py:267
msgid "Password attribute"
msgstr ""
#: core/app_settings.py:257
#: core/app_settings.py:269
msgid "The attribute used to store user passwords"
msgstr ""
#: core/app_settings.py:264
#: core/app_settings.py:276
msgid "LDAP authentication settings"
msgstr ""
#: core/app_settings.py:272
#: core/app_settings.py:284
msgid "Authentication method"
msgstr ""
#: core/app_settings.py:275
#: core/app_settings.py:287
msgid "Choose the authentication method to use"
msgstr ""
#: core/app_settings.py:282 core/app_settings.py:345
#: core/app_settings.py:294 core/app_settings.py:357
msgid "Bind DN"
msgstr ""
#: core/app_settings.py:284 core/app_settings.py:347
#: core/app_settings.py:296 core/app_settings.py:359
msgid ""
"The distinguished name to use when binding to the LDAP server. Leave empty "
"for an anonymous bind"
msgstr ""
#: core/app_settings.py:293 core/app_settings.py:355
#: core/app_settings.py:305 core/app_settings.py:367
msgid "Bind password"
msgstr ""
#: core/app_settings.py:295 core/app_settings.py:357
#: core/app_settings.py:307 core/app_settings.py:369
msgid "The password to use when binding to the LDAP server (with 'Bind DN')"
msgstr ""
#: core/app_settings.py:305 core/app_settings.py:410
#: core/app_settings.py:317 core/app_settings.py:422
msgid "Users search base"
msgstr ""
#: core/app_settings.py:307 core/app_settings.py:412
#: core/app_settings.py:319 core/app_settings.py:424
msgid "The distinguished name of the search base used to find users"
msgstr ""
#: core/app_settings.py:316 core/app_settings.py:421
#: core/app_settings.py:328 core/app_settings.py:433
msgid "Search filter"
msgstr ""
#: core/app_settings.py:318 core/app_settings.py:423
#: core/app_settings.py:330 core/app_settings.py:435
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:327
#: core/app_settings.py:339
msgid "User DN template"
msgstr ""
#: core/app_settings.py:329
#: core/app_settings.py:341
#, 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:338
#: core/app_settings.py:350
msgid "LDAP synchronization settings"
msgstr ""
#: core/app_settings.py:366
#: core/app_settings.py:378
msgid "Enable export to LDAP"
msgstr ""
#: core/app_settings.py:368
#: core/app_settings.py:380
msgid ""
"Enable automatic synchronization between local database and LDAP directory"
msgstr ""
#: core/app_settings.py:377
#: core/app_settings.py:389
msgid "Delete remote LDAP account when local account is deleted"
msgstr ""
#: core/app_settings.py:380
#: core/app_settings.py:392
msgid ""
"Delete remote LDAP account when local account is deleted, otherwise it will "
"be disabled."
msgstr ""
#: core/app_settings.py:389
#: core/app_settings.py:401
msgid "Account DN template"
msgstr ""
#: core/app_settings.py:391
#: core/app_settings.py:403
#, 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:400
#: core/app_settings.py:412
msgid "Enable import from LDAP"
msgstr ""
#: core/app_settings.py:402
#: core/app_settings.py:414
msgid "Enable account synchronization from LDAP directory to local database"
msgstr ""
#: core/app_settings.py:432
#: core/app_settings.py:444
msgid "Username attribute"
msgstr ""
#: core/app_settings.py:434
#: core/app_settings.py:446
msgid "The name of the LDAP attribute where the username can be found."
msgstr ""
#: core/app_settings.py:443
#: core/app_settings.py:455
msgid "Enable Dovecot LDAP sync"
msgstr ""
#: core/app_settings.py:445
#: core/app_settings.py:457
msgid "LDAP authentication settings will be applied to Dovecot configuration."
msgstr ""
#: core/app_settings.py:453
#: core/app_settings.py:465
msgid "Dovecot LDAP config file"
msgstr ""
#: core/app_settings.py:455
#: core/app_settings.py:467
msgid ""
"Location of the configuration file which contains Dovecot LDAP settings."
msgstr ""
#: core/app_settings.py:468
#: core/app_settings.py:480
msgid "Dashboard"
msgstr ""
#: core/app_settings.py:474
#: core/app_settings.py:486
msgid "Custom welcome message"
msgstr ""
#: core/app_settings.py:488
msgid "A welcome message that will be displayed instead the default one"
msgstr ""
#: core/app_settings.py:495
msgid "Custom RSS feed"
msgstr ""
#: core/app_settings.py:476
#: core/app_settings.py:497
msgid "Display custom RSS feed to resellers and domain administrators"
msgstr ""
#: core/app_settings.py:484
msgid "Hide features widget"
msgstr ""
#: core/app_settings.py:486
msgid "Hide features widget for resellers and domain administrators"
msgstr ""
#: core/app_settings.py:498
msgid "Notifications"
msgstr ""
#: core/app_settings.py:504
msgid "Sender address"
msgstr ""
#: core/app_settings.py:506
msgid "Email address used to send notifications."
msgid "Display custom RSS feed to super admins"
msgstr ""
#: core/app_settings.py:509
msgid "Display custom RSS feed also to super administrators"
msgstr ""
#: core/app_settings.py:517
msgid "Hide features widget"
msgstr ""
#: core/app_settings.py:519
msgid "Hide features widget for resellers and domain administrators"
msgstr ""
#: core/app_settings.py:531
msgid "Theme"
msgstr ""
#: core/app_settings.py:537
msgid "Primary theme color"
msgstr ""
#: core/app_settings.py:539
msgid ""
"Primary color of the theme (hexadecimal code), used as the background color "
"of the left menu for example"
msgstr ""
#: core/app_settings.py:548
msgid "Primary theme color (lighter version)"
msgstr ""
#: core/app_settings.py:551 core/app_settings.py:563
msgid "Primary color of the theme (hexadecimal code)"
msgstr ""
#: core/app_settings.py:560
msgid "Primary theme color (darker version)"
msgstr ""
#: core/app_settings.py:571
msgid "Secondary theme color"
msgstr ""
#: core/app_settings.py:573
msgid ""
"Secondary color of the theme (hexadecimal code), used as the background "
"color of some buttons for example"
msgstr ""
#: core/app_settings.py:581
msgid "Labels theme color"
msgstr ""
#: core/app_settings.py:583
msgid "Theme color for labels (hexadecimal code)"
msgstr ""
#: core/app_settings.py:595
msgid "Notifications"
msgstr ""
#: core/app_settings.py:601
msgid "Sender address"
msgstr ""
#: core/app_settings.py:603
msgid "Email address used to send notifications."
msgstr ""
#: core/app_settings.py:614
msgid "Public API"
msgstr ""
#: core/app_settings.py:523
#: core/app_settings.py:620
msgid "Enable communication"
msgstr ""
#: core/app_settings.py:525 core/app_settings.py:535
#: core/app_settings.py:622 core/app_settings.py:632
msgid "Automatically checks if a newer version is available"
msgstr ""
#: core/app_settings.py:532
#: core/app_settings.py:629
msgid "Check new versions"
msgstr ""
#: core/app_settings.py:543
#: core/app_settings.py:640
msgid "Send an email when new versions are found"
msgstr ""
#: core/app_settings.py:547
#: core/app_settings.py:644
msgid "Send an email to notify admins about new versions"
msgstr ""
#: core/app_settings.py:554 sievefilters/constants.py:25
#: core/app_settings.py:651 sievefilters/constants.py:25
msgid "Recipient"
msgstr ""
#: core/app_settings.py:557
#: core/app_settings.py:654
msgid "Recipient of new versions notification emails."
msgstr ""
#: core/app_settings.py:564
#: core/app_settings.py:661
msgid "Send statistics"
msgstr ""
#: core/app_settings.py:567
#: core/app_settings.py:664
msgid "Send statistics to Modoboa public API (counters and used extensions)"
msgstr ""
#: core/app_settings.py:586
#: core/app_settings.py:683
msgid "Enable inactive account tracking"
msgstr ""
#: core/app_settings.py:589
#: core/app_settings.py:686
msgid ""
"Allow the administrator to set a threshold (in days) beyond which an account "
"is considered inactive if the user hasn't logged in"
msgstr ""
#: core/app_settings.py:598
#: core/app_settings.py:695
msgid "Inactive account threshold"
msgstr ""
#: core/app_settings.py:601
#: core/app_settings.py:698
msgid ""
"An account with a last login date greater than this threshold (in days) will "
"be considered as inactive"
msgstr ""
#: core/app_settings.py:610
#: core/app_settings.py:707
msgid "Top notifications check interval"
msgstr ""
#: core/app_settings.py:613
#: core/app_settings.py:710
msgid "Interval between two top notification checks (in seconds)"
msgstr ""
#: core/app_settings.py:620
#: core/app_settings.py:717
msgid "Maximum log record age"
msgstr ""
#: core/app_settings.py:622
#: core/app_settings.py:719
msgid "The maximum age in days of a log record"
msgstr ""
#: core/app_settings.py:629
#: core/app_settings.py:726
msgid "Items per page"
msgstr ""
#: core/app_settings.py:631
#: core/app_settings.py:728
msgid "Number of displayed items per page"
msgstr ""
#: core/app_settings.py:638
#: core/app_settings.py:735
msgid "Default top redirection"
msgstr ""
#: core/app_settings.py:640
#: core/app_settings.py:737
msgid "The default redirection used when no application is specified"
msgstr ""
#: core/checks.py:13
#: core/checks.py:15
msgid ""
"You have USE_TZ set to False, this may result in issues during transitions "
"between summer/winter time (ie the same local time occuring twice due to "
"clock change)."
msgstr ""
#: core/checks.py:17
#: core/checks.py:19
msgid "Set `USE_TZ = True` in settings.py"
msgstr ""
#: core/checks.py:21
#: core/checks.py:23
msgid "The password scheme you are using is deprecated."
msgstr ""
#: core/checks.py:22
#: core/checks.py:24
msgid "Upgrade your password scheme to a stronger one"
msgstr ""
#: core/checks.py:30
msgid ""
"Oauth2 application for dovecot has not been found. Webmail and some other "
"features won't be available."
msgstr ""
#: core/checks.py:34
msgid ""
"Visit : https://modoboa.readthedocs.io/en/latest/manual_installation/dovecot."
"html#dovecot-oauth2"
msgstr ""
#: core/checks.py:41
msgid ""
"Oauth2 application for radicale has not been found. Calendar and some other "
"features won't be available."
msgstr ""
#: core/checks.py:45
msgid ""
"Visit : https://modoboa.readthedocs.io/en/latest/manual_installation/"
"radicale.html#radicale-oauth2"
msgstr ""
#: core/constants.py:6
msgid "Simple user"
msgstr ""
@@ -1477,61 +1569,61 @@ msgstr ""
msgid "[modoboa] Update(s) available"
msgstr ""
#: core/models.py:72
#: core/models.py:71
msgid "Allow mailboxes access"
msgstr ""
#: core/models.py:74
#: core/models.py:73
msgid "Allow this administrator to access user mailboxes"
msgstr ""
#: core/models.py:76
#: core/models.py:75
msgid "password"
msgstr ""
#: core/models.py:79
#: core/models.py:78
msgid "language"
msgstr ""
#: core/models.py:83
#: core/models.py:82
msgid "Prefered language to display pages."
msgstr ""
#: core/models.py:85
#: core/models.py:84
msgid "Phone number"
msgstr ""
#: core/models.py:87
#: core/models.py:86
msgid "Secondary email"
msgstr ""
#: core/models.py:92
#: core/models.py:91
msgid "An alternative e-mail address, can be used for recovery needs."
msgstr ""
#: core/models.py:151
#: core/models.py:150
#, fuzzy
#| msgid "Failed to update LDAP account: {}"
msgid "Failed to update password: LDAP module not installed"
msgstr "LDAP ගිණුම යාවත්කාලයට අසමත් විය: {}"
#: core/models.py:186 policyd/core.py:117
#: core/models.py:185 policyd/core.py:117
msgid "account"
msgstr ""
#: core/models.py:318
#: core/models.py:317
msgid "Unknown"
msgstr ""
#: core/models.py:361
#: core/models.py:360
msgid "You can't import an account with a role greater than yours"
msgstr ""
#: core/models.py:376
#: core/models.py:375
msgid "The simple user '{}' must have a valid email address"
msgstr ""
#: core/models.py:384
#: core/models.py:383
msgid "username and email fields must not differ for '{}'"
msgstr ""
@@ -1858,7 +1950,7 @@ msgstr ""
msgid "IMAP Migration"
msgstr ""
#: imap_migration/auth_backends.py:49 webmail/lib/imaputils.py:241
#: imap_migration/auth_backends.py:49 webmail/lib/imaputils.py:240
#, python-brace-format
msgid "Connection to IMAP server failed: {error}"
msgstr ""
@@ -1890,21 +1982,21 @@ msgstr "LDAP ගිණුම මැකීමට අසමත් විය: {}"
msgid "Failed to disable LDAP account: {}"
msgstr "LDAP ගිණුම අබල කිරීමට අසමත් විය: {}"
#: lib/api_client.py:35 lib/api_client.py:69 lib/api_client.py:83
#: lib/api_client.py:87
#: lib/api_client.py:35 lib/api_client.py:67 lib/api_client.py:81
#: lib/api_client.py:85
#, python-format
msgid "Failed to communicate with public API: %s"
msgstr ""
#: lib/email_utils.py:139 lib/email_utils.py:350
#: lib/email_utils.py:140 lib/email_utils.py:351
msgid "unable to determine encoding of string"
msgstr ""
#: lib/exceptions.py:85
#: lib/exceptions.py:83
msgid "Permission denied: {}"
msgstr ""
#: lib/exceptions.py:86
#: lib/exceptions.py:84
msgid "Permission denied"
msgstr ""
@@ -2594,11 +2686,11 @@ msgstr ""
msgid "Stop processing"
msgstr ""
#: sievefilters/lib.py:51
#: sievefilters/lib.py:49
msgid "Connection to MANAGESIEVE server failed, check your configuration"
msgstr ""
#: sievefilters/lib.py:78
#: sievefilters/lib.py:76
msgid "Not enough space on server"
msgstr ""
@@ -2900,7 +2992,7 @@ msgstr ""
msgid "User defined email signature"
msgstr ""
#: webmail/lib/attachments.py:113
#: webmail/lib/attachments.py:112
#, fuzzy
#| msgid "Failed to create LDAP account: {}"
msgid "Failed to remove attachment: "
@@ -2910,7 +3002,7 @@ msgstr "LDAP ගිණුම සෑදීමට අසමත් විය: {}"
msgid "Date"
msgstr ""
#: webmail/lib/imaputils.py:222
#: webmail/lib/imaputils.py:221
msgid "Failed to retrieve hierarchy delimiter"
msgstr ""
+266 -174
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-06-20 16:45+0200\n"
"POT-Creation-Date: 2025-07-27 10:50+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -19,75 +19,75 @@ msgstr ""
"Plural-Forms: nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n "
">= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);\n"
#: admin/api/v1/serializers.py:41
#: admin/api/v1/serializers.py:39
msgid ""
"Quota shared between mailboxes. Can be expressed in KB, MB (default) or GB. "
"A value of 0 means no quota."
msgstr ""
#: admin/api/v1/serializers.py:48
#: admin/api/v1/serializers.py:46
msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota."
msgstr ""
#: admin/api/v1/serializers.py:90
#: admin/api/v1/serializers.py:88
msgid "domain alias with this name already exists"
msgstr ""
#: admin/api/v1/serializers.py:100
#: admin/api/v1/serializers.py:98
msgid "No authorized MX record found for this domain"
msgstr ""
#: admin/api/v1/serializers.py:118
#: admin/api/v1/serializers.py:116
msgid "Cannot be greater than domain quota"
msgstr ""
#: admin/api/v1/serializers.py:164 admin/api/v1/serializers.py:359
#: admin/api/v2/serializers.py:531 admin/models/alias.py:44
#: admin/api/v1/serializers.py:162 admin/api/v1/serializers.py:357
#: admin/api/v2/serializers.py:548 admin/models/alias.py:44
msgid "Permission denied."
msgstr ""
#: admin/api/v1/serializers.py:226 admin/api/v2/serializers.py:89
#: admin/api/v2/serializers.py:453 core/api/v2/serializers.py:225
#: core/api/v2/serializers.py:227 core/api/v2/serializers.py:236
#: admin/api/v1/serializers.py:224 admin/api/v2/serializers.py:88
#: admin/api/v2/serializers.py:470 core/api/v2/serializers.py:235
#: core/api/v2/serializers.py:237 core/api/v2/serializers.py:246
#: transport/backends.py:40
msgid "This field is required"
msgstr ""
#: admin/api/v1/serializers.py:238
#: admin/api/v1/serializers.py:236
msgid ""
"List of administered domains (resellers and domain administrators only)."
msgstr ""
#: admin/api/v1/serializers.py:332 admin/api/v2/serializers.py:513
#: admin/api/v1/serializers.py:330 admin/api/v2/serializers.py:530
msgid "Not allowed for this role."
msgstr ""
#: admin/api/v1/serializers.py:350
#: admin/api/v1/serializers.py:348
msgid "Must be equal to mailbox full_address"
msgstr ""
#: admin/api/v1/serializers.py:392 admin/api/v2/serializers.py:565
#: admin/api/v1/serializers.py:390 admin/api/v2/serializers.py:582
#: calendars/serializers.py:175 calendars/serializers.py:177
msgid "This field is required."
msgstr ""
#: admin/api/v1/serializers.py:404 admin/api/v2/serializers.py:582
#: admin/api/v1/serializers.py:402 admin/api/v2/serializers.py:599
msgid "Local domain {} does not exist"
msgstr ""
#: admin/api/v1/serializers.py:494
#: admin/api/v1/serializers.py:492
msgid "A list of recipient"
msgstr ""
#: admin/api/v1/serializers.py:510 admin/api/v2/viewsets.py:271
#: admin/api/v1/serializers.py:508 admin/api/v2/viewsets.py:286
msgid "This alias already exists"
msgstr ""
#: admin/api/v1/serializers.py:546
#: admin/api/v1/serializers.py:544
msgid "You don't have access to this domain."
msgstr ""
#: admin/api/v1/serializers.py:555
#: admin/api/v1/serializers.py:553
msgid "You don't have access to this mailbox."
msgstr ""
@@ -95,56 +95,56 @@ msgstr ""
msgid "Here is your new Modoboa password: {}"
msgstr ""
#: admin/api/v2/serializers.py:81
#: admin/api/v2/serializers.py:80
msgid "DKIM keys storage directory not configured"
msgstr ""
#: admin/api/v2/serializers.py:93
#: admin/api/v2/serializers.py:92
msgid "This field is valid when type is relaydomain"
msgstr ""
#: admin/api/v2/serializers.py:100
#: admin/api/v2/serializers.py:99
msgid "You can't define an unlimited quota."
msgstr ""
#: admin/api/v2/serializers.py:134
#: admin/api/v2/serializers.py:133
#, python-format
msgid "User '%s' already exists"
msgstr ""
#: admin/api/v2/serializers.py:249 admin/api/v2/serializers.py:255
#: admin/api/v2/serializers.py:248 admin/api/v2/serializers.py:254
msgid "Must be a positive integer"
msgstr ""
#: admin/api/v2/serializers.py:264
#: admin/api/v2/serializers.py:263
msgid "openssl not found, please make sure it is installed."
msgstr ""
#: admin/api/v2/serializers.py:267 pdfcredentials/api/v2/serializers.py:79
#: admin/api/v2/serializers.py:266 pdfcredentials/api/v2/serializers.py:79
msgid "Directory not found."
msgstr ""
#: admin/api/v2/serializers.py:278
#: admin/api/v2/serializers.py:277
msgid "This field only allows valid IP addresses (or networks)"
msgstr ""
#: admin/api/v2/serializers.py:291
#: admin/api/v2/serializers.py:290
msgid "Please disable imap migration before disabling this option."
msgstr ""
#: admin/api/v2/serializers.py:304
#: admin/api/v2/serializers.py:303
msgid "Define at least one authorized network / address"
msgstr ""
#: admin/api/v2/serializers.py:548
#: admin/api/v2/serializers.py:565
msgid "The left part of an email address can't be more than 64 characters."
msgstr ""
#: admin/api/v2/serializers.py:570
#: admin/api/v2/serializers.py:587
msgid "A mailbox is required to create aliases."
msgstr ""
#: admin/api/v2/serializers.py:734
#: admin/api/v2/serializers.py:751
msgid "Unknown status"
msgstr ""
@@ -156,11 +156,11 @@ msgstr ""
msgid "You can't delete your own domain"
msgstr ""
#: admin/api/v2/viewsets.py:392
#: admin/api/v2/viewsets.py:407
msgid "No alarm ID provided"
msgstr ""
#: admin/api/v2/viewsets.py:396
#: admin/api/v2/viewsets.py:411
msgid "Received invalid alarm id(s)"
msgstr ""
@@ -425,12 +425,12 @@ msgstr ""
msgid "Invalid IP address format for {domain}; {addr}"
msgstr ""
#: admin/lib.py:340
#: admin/lib.py:360
#, python-format
msgid "Object already exists: %s"
msgstr ""
#: admin/lib.py:344
#: admin/lib.py:364
#, python-format
msgid "%d objects imported successfully"
msgstr ""
@@ -579,7 +579,7 @@ msgid "Key length"
msgstr ""
#: admin/models/domain.py:321 admin/models/domain_alias.py:70
#: core/models.py:353 relaydomains/lib.py:13
#: core/models.py:352 relaydomains/lib.py:13
msgid "Invalid line"
msgstr ""
@@ -775,7 +775,7 @@ msgstr ""
msgid "Allow domain administrators to manage user calendars (read and write)"
msgstr ""
#: calendars/app_settings.py:60 core/app_settings.py:579
#: calendars/app_settings.py:60 core/app_settings.py:676
#: rspamd/app_settings.py:45
msgid "Miscellaneous"
msgstr ""
@@ -876,7 +876,7 @@ msgstr ""
msgid "Failed TFA settings editing attempt from '%s' as user '%s'"
msgstr ""
#: core/api/v1/serializers.py:91 core/api/v2/serializers.py:415
#: core/api/v1/serializers.py:91 core/api/v2/serializers.py:425
msgid "Invalid password"
msgstr ""
@@ -888,24 +888,24 @@ msgstr ""
msgid "Local"
msgstr ""
#: core/api/v2/serializers.py:165 core/app_settings.py:17
#: core/api/v2/serializers.py:175 core/app_settings.py:17
msgid "User profile"
msgstr ""
#: core/api/v2/serializers.py:184 core/api/v2/serializers.py:191
#: core/api/v2/serializers.py:198
#: core/api/v2/serializers.py:194 core/api/v2/serializers.py:201
#: core/api/v2/serializers.py:208
msgid "Invalid syntax"
msgstr ""
#: core/api/v2/serializers.py:203
#: core/api/v2/serializers.py:213
msgid "Invalid rounds number"
msgstr ""
#: core/api/v2/serializers.py:403 core/forms.py:81
#: core/api/v2/serializers.py:413 core/forms.py:81
msgid "This code is invalid"
msgstr ""
#: core/api/v2/serializers.py:473 core/views/auth.py:194 core/views/auth.py:247
#: core/api/v2/serializers.py:483 core/views/auth.py:194 core/views/auth.py:247
msgid "Please use the following code to recover your Modoboa password: {}"
msgstr ""
@@ -980,410 +980,502 @@ msgstr ""
msgid "Length of randomly generated passwords."
msgstr ""
#: core/app_settings.py:102
#: core/app_settings.py:103
msgid "Allow special characters for random password"
msgstr ""
#: core/app_settings.py:106
msgid "Enable special characters in randomly generated passwords."
msgstr ""
#: core/app_settings.py:114
msgid "Update password service URL"
msgstr ""
#: core/app_settings.py:104
#: core/app_settings.py:116
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:114
#: core/app_settings.py:126
msgid "Password recovery announcement"
msgstr ""
#: core/app_settings.py:116
#: core/app_settings.py:128
msgid "A temporary message that will be displayed on the reset password page."
msgstr ""
#: core/app_settings.py:125
#: core/app_settings.py:137
msgid "Enable password recovery by SMS"
msgstr ""
#: core/app_settings.py:128
#: core/app_settings.py:140
msgid "Enable password recovery by SMS for users who filled a phone number."
msgstr ""
#: core/app_settings.py:136
#: core/app_settings.py:148
msgid "SMS provider"
msgstr ""
#: core/app_settings.py:139
#: core/app_settings.py:151
msgid "Choose a provider to send password recovery SMS"
msgstr ""
#: core/app_settings.py:151
#: core/app_settings.py:163
msgid "LDAP"
msgstr ""
#: core/app_settings.py:157 sievefilters/app_settings.py:18
#: core/app_settings.py:169 sievefilters/app_settings.py:18
#: sievefilters/app_settings.py:51 webmail/app_settings.py:36
#: webmail/app_settings.py:73
msgid "Server address"
msgstr ""
#: core/app_settings.py:159
#: core/app_settings.py:171
msgid "The IP address or the DNS name of the LDAP server"
msgstr ""
#: core/app_settings.py:166 sievefilters/app_settings.py:25
#: core/app_settings.py:178 sievefilters/app_settings.py:25
#: sievefilters/app_settings.py:67 webmail/app_settings.py:54
#: webmail/app_settings.py:91
msgid "Server port"
msgstr ""
#: core/app_settings.py:168
#: core/app_settings.py:180
msgid "The TCP port number used by the LDAP server"
msgstr ""
#: core/app_settings.py:176
#: core/app_settings.py:188
msgid "Enable secondary server (fallback)"
msgstr ""
#: core/app_settings.py:179
#: core/app_settings.py:191
msgid ""
"Enable a secondary LDAP server which will be used if the primary one fails"
msgstr ""
#: core/app_settings.py:187
#: core/app_settings.py:199
msgid "Secondary server address"
msgstr ""
#: core/app_settings.py:190
#: core/app_settings.py:202
msgid "The IP address or the DNS name of the seondary LDAP server"
msgstr ""
#: core/app_settings.py:197
#: core/app_settings.py:209
msgid "Secondary server port"
msgstr ""
#: core/app_settings.py:200
#: core/app_settings.py:212
msgid "The TCP port number used by the LDAP secondary server"
msgstr ""
#: core/app_settings.py:207 sievefilters/app_settings.py:58
#: core/app_settings.py:219 sievefilters/app_settings.py:58
#: webmail/app_settings.py:45
msgid "Use a secured connection"
msgstr ""
#: core/app_settings.py:209
#: core/app_settings.py:221
msgid "Use an SSL/STARTTLS connection to access the LDAP server"
msgstr ""
#: core/app_settings.py:216
#: core/app_settings.py:228
msgid "Active Directory"
msgstr ""
#: core/app_settings.py:218
#: core/app_settings.py:230
msgid "Tell if the LDAP server is an Active Directory one"
msgstr ""
#: core/app_settings.py:225
#: core/app_settings.py:237
msgid "Administrator groups"
msgstr ""
#: core/app_settings.py:227
#: core/app_settings.py:239
msgid ""
"Members of those LDAP Posix groups will be created as domain administrators. "
"Use ';' characters to separate groups."
msgstr ""
#: core/app_settings.py:236
#: core/app_settings.py:248
msgid "Group type"
msgstr ""
#: core/app_settings.py:238
#: core/app_settings.py:250
msgid "The LDAP group type to use with your directory."
msgstr ""
#: core/app_settings.py:245
#: core/app_settings.py:257
msgid "Groups search base"
msgstr ""
#: core/app_settings.py:247
#: core/app_settings.py:259
msgid "The distinguished name of the search base used to find groups"
msgstr ""
#: core/app_settings.py:255
#: core/app_settings.py:267
msgid "Password attribute"
msgstr ""
#: core/app_settings.py:257
#: core/app_settings.py:269
msgid "The attribute used to store user passwords"
msgstr ""
#: core/app_settings.py:264
#: core/app_settings.py:276
msgid "LDAP authentication settings"
msgstr ""
#: core/app_settings.py:272
#: core/app_settings.py:284
msgid "Authentication method"
msgstr ""
#: core/app_settings.py:275
#: core/app_settings.py:287
msgid "Choose the authentication method to use"
msgstr ""
#: core/app_settings.py:282 core/app_settings.py:345
#: core/app_settings.py:294 core/app_settings.py:357
msgid "Bind DN"
msgstr ""
#: core/app_settings.py:284 core/app_settings.py:347
#: core/app_settings.py:296 core/app_settings.py:359
msgid ""
"The distinguished name to use when binding to the LDAP server. Leave empty "
"for an anonymous bind"
msgstr ""
#: core/app_settings.py:293 core/app_settings.py:355
#: core/app_settings.py:305 core/app_settings.py:367
msgid "Bind password"
msgstr ""
#: core/app_settings.py:295 core/app_settings.py:357
#: core/app_settings.py:307 core/app_settings.py:369
msgid "The password to use when binding to the LDAP server (with 'Bind DN')"
msgstr ""
#: core/app_settings.py:305 core/app_settings.py:410
#: core/app_settings.py:317 core/app_settings.py:422
msgid "Users search base"
msgstr ""
#: core/app_settings.py:307 core/app_settings.py:412
#: core/app_settings.py:319 core/app_settings.py:424
msgid "The distinguished name of the search base used to find users"
msgstr ""
#: core/app_settings.py:316 core/app_settings.py:421
#: core/app_settings.py:328 core/app_settings.py:433
msgid "Search filter"
msgstr ""
#: core/app_settings.py:318 core/app_settings.py:423
#: core/app_settings.py:330 core/app_settings.py:435
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:327
#: core/app_settings.py:339
msgid "User DN template"
msgstr ""
#: core/app_settings.py:329
#: core/app_settings.py:341
#, 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:338
#: core/app_settings.py:350
msgid "LDAP synchronization settings"
msgstr ""
#: core/app_settings.py:366
#: core/app_settings.py:378
msgid "Enable export to LDAP"
msgstr ""
#: core/app_settings.py:368
#: core/app_settings.py:380
msgid ""
"Enable automatic synchronization between local database and LDAP directory"
msgstr ""
#: core/app_settings.py:377
#: core/app_settings.py:389
msgid "Delete remote LDAP account when local account is deleted"
msgstr ""
#: core/app_settings.py:380
#: core/app_settings.py:392
msgid ""
"Delete remote LDAP account when local account is deleted, otherwise it will "
"be disabled."
msgstr ""
#: core/app_settings.py:389
#: core/app_settings.py:401
msgid "Account DN template"
msgstr ""
#: core/app_settings.py:391
#: core/app_settings.py:403
#, 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:400
#: core/app_settings.py:412
msgid "Enable import from LDAP"
msgstr ""
#: core/app_settings.py:402
#: core/app_settings.py:414
msgid "Enable account synchronization from LDAP directory to local database"
msgstr ""
#: core/app_settings.py:432
#: core/app_settings.py:444
msgid "Username attribute"
msgstr ""
#: core/app_settings.py:434
#: core/app_settings.py:446
msgid "The name of the LDAP attribute where the username can be found."
msgstr ""
#: core/app_settings.py:443
#: core/app_settings.py:455
msgid "Enable Dovecot LDAP sync"
msgstr ""
#: core/app_settings.py:445
#: core/app_settings.py:457
msgid "LDAP authentication settings will be applied to Dovecot configuration."
msgstr ""
#: core/app_settings.py:453
#: core/app_settings.py:465
msgid "Dovecot LDAP config file"
msgstr ""
#: core/app_settings.py:455
#: core/app_settings.py:467
msgid ""
"Location of the configuration file which contains Dovecot LDAP settings."
msgstr ""
#: core/app_settings.py:468
#: core/app_settings.py:480
msgid "Dashboard"
msgstr ""
#: core/app_settings.py:474
#: core/app_settings.py:486
msgid "Custom welcome message"
msgstr ""
#: core/app_settings.py:488
msgid "A welcome message that will be displayed instead the default one"
msgstr ""
#: core/app_settings.py:495
msgid "Custom RSS feed"
msgstr ""
#: core/app_settings.py:476
#: core/app_settings.py:497
msgid "Display custom RSS feed to resellers and domain administrators"
msgstr ""
#: core/app_settings.py:484
msgid "Hide features widget"
msgstr ""
#: core/app_settings.py:486
msgid "Hide features widget for resellers and domain administrators"
msgstr ""
#: core/app_settings.py:498
msgid "Notifications"
msgstr ""
#: core/app_settings.py:504
msgid "Sender address"
msgstr ""
#: core/app_settings.py:506
msgid "Email address used to send notifications."
msgid "Display custom RSS feed to super admins"
msgstr ""
#: core/app_settings.py:509
msgid "Display custom RSS feed also to super administrators"
msgstr ""
#: core/app_settings.py:517
msgid "Hide features widget"
msgstr ""
#: core/app_settings.py:519
msgid "Hide features widget for resellers and domain administrators"
msgstr ""
#: core/app_settings.py:531
msgid "Theme"
msgstr ""
#: core/app_settings.py:537
msgid "Primary theme color"
msgstr ""
#: core/app_settings.py:539
msgid ""
"Primary color of the theme (hexadecimal code), used as the background color "
"of the left menu for example"
msgstr ""
#: core/app_settings.py:548
msgid "Primary theme color (lighter version)"
msgstr ""
#: core/app_settings.py:551 core/app_settings.py:563
msgid "Primary color of the theme (hexadecimal code)"
msgstr ""
#: core/app_settings.py:560
msgid "Primary theme color (darker version)"
msgstr ""
#: core/app_settings.py:571
msgid "Secondary theme color"
msgstr ""
#: core/app_settings.py:573
msgid ""
"Secondary color of the theme (hexadecimal code), used as the background "
"color of some buttons for example"
msgstr ""
#: core/app_settings.py:581
msgid "Labels theme color"
msgstr ""
#: core/app_settings.py:583
msgid "Theme color for labels (hexadecimal code)"
msgstr ""
#: core/app_settings.py:595
msgid "Notifications"
msgstr ""
#: core/app_settings.py:601
msgid "Sender address"
msgstr ""
#: core/app_settings.py:603
msgid "Email address used to send notifications."
msgstr ""
#: core/app_settings.py:614
msgid "Public API"
msgstr ""
#: core/app_settings.py:523
#: core/app_settings.py:620
msgid "Enable communication"
msgstr ""
#: core/app_settings.py:525 core/app_settings.py:535
#: core/app_settings.py:622 core/app_settings.py:632
msgid "Automatically checks if a newer version is available"
msgstr ""
#: core/app_settings.py:532
#: core/app_settings.py:629
msgid "Check new versions"
msgstr ""
#: core/app_settings.py:543
#: core/app_settings.py:640
msgid "Send an email when new versions are found"
msgstr ""
#: core/app_settings.py:547
#: core/app_settings.py:644
msgid "Send an email to notify admins about new versions"
msgstr ""
#: core/app_settings.py:554 sievefilters/constants.py:25
#: core/app_settings.py:651 sievefilters/constants.py:25
msgid "Recipient"
msgstr ""
#: core/app_settings.py:557
#: core/app_settings.py:654
msgid "Recipient of new versions notification emails."
msgstr ""
#: core/app_settings.py:564
#: core/app_settings.py:661
msgid "Send statistics"
msgstr ""
#: core/app_settings.py:567
#: core/app_settings.py:664
msgid "Send statistics to Modoboa public API (counters and used extensions)"
msgstr ""
#: core/app_settings.py:586
#: core/app_settings.py:683
msgid "Enable inactive account tracking"
msgstr ""
#: core/app_settings.py:589
#: core/app_settings.py:686
msgid ""
"Allow the administrator to set a threshold (in days) beyond which an account "
"is considered inactive if the user hasn't logged in"
msgstr ""
#: core/app_settings.py:598
#: core/app_settings.py:695
msgid "Inactive account threshold"
msgstr ""
#: core/app_settings.py:601
#: core/app_settings.py:698
msgid ""
"An account with a last login date greater than this threshold (in days) will "
"be considered as inactive"
msgstr ""
#: core/app_settings.py:610
#: core/app_settings.py:707
msgid "Top notifications check interval"
msgstr ""
#: core/app_settings.py:613
#: core/app_settings.py:710
msgid "Interval between two top notification checks (in seconds)"
msgstr ""
#: core/app_settings.py:620
#: core/app_settings.py:717
msgid "Maximum log record age"
msgstr ""
#: core/app_settings.py:622
#: core/app_settings.py:719
msgid "The maximum age in days of a log record"
msgstr ""
#: core/app_settings.py:629
#: core/app_settings.py:726
msgid "Items per page"
msgstr ""
#: core/app_settings.py:631
#: core/app_settings.py:728
msgid "Number of displayed items per page"
msgstr ""
#: core/app_settings.py:638
#: core/app_settings.py:735
msgid "Default top redirection"
msgstr ""
#: core/app_settings.py:640
#: core/app_settings.py:737
msgid "The default redirection used when no application is specified"
msgstr ""
#: core/checks.py:13
#: core/checks.py:15
msgid ""
"You have USE_TZ set to False, this may result in issues during transitions "
"between summer/winter time (ie the same local time occuring twice due to "
"clock change)."
msgstr ""
#: core/checks.py:17
#: core/checks.py:19
msgid "Set `USE_TZ = True` in settings.py"
msgstr ""
#: core/checks.py:21
#: core/checks.py:23
msgid "The password scheme you are using is deprecated."
msgstr ""
#: core/checks.py:22
#: core/checks.py:24
msgid "Upgrade your password scheme to a stronger one"
msgstr ""
#: core/checks.py:30
msgid ""
"Oauth2 application for dovecot has not been found. Webmail and some other "
"features won't be available."
msgstr ""
#: core/checks.py:34
msgid ""
"Visit : https://modoboa.readthedocs.io/en/latest/manual_installation/dovecot."
"html#dovecot-oauth2"
msgstr ""
#: core/checks.py:41
msgid ""
"Oauth2 application for radicale has not been found. Calendar and some other "
"features won't be available."
msgstr ""
#: core/checks.py:45
msgid ""
"Visit : https://modoboa.readthedocs.io/en/latest/manual_installation/"
"radicale.html#radicale-oauth2"
msgstr ""
#: core/constants.py:6
msgid "Simple user"
msgstr ""
@@ -1475,59 +1567,59 @@ msgstr ""
msgid "[modoboa] Update(s) available"
msgstr ""
#: core/models.py:72
#: core/models.py:71
msgid "Allow mailboxes access"
msgstr ""
#: core/models.py:74
#: core/models.py:73
msgid "Allow this administrator to access user mailboxes"
msgstr ""
#: core/models.py:76
#: core/models.py:75
msgid "password"
msgstr ""
#: core/models.py:79
#: core/models.py:78
msgid "language"
msgstr ""
#: core/models.py:83
#: core/models.py:82
msgid "Prefered language to display pages."
msgstr ""
#: core/models.py:85
#: core/models.py:84
msgid "Phone number"
msgstr ""
#: core/models.py:87
#: core/models.py:86
msgid "Secondary email"
msgstr ""
#: core/models.py:92
#: core/models.py:91
msgid "An alternative e-mail address, can be used for recovery needs."
msgstr ""
#: core/models.py:151
#: core/models.py:150
msgid "Failed to update password: LDAP module not installed"
msgstr ""
#: core/models.py:186 policyd/core.py:117
#: core/models.py:185 policyd/core.py:117
msgid "account"
msgstr ""
#: core/models.py:318
#: core/models.py:317
msgid "Unknown"
msgstr ""
#: core/models.py:361
#: core/models.py:360
msgid "You can't import an account with a role greater than yours"
msgstr ""
#: core/models.py:376
#: core/models.py:375
msgid "The simple user '{}' must have a valid email address"
msgstr ""
#: core/models.py:384
#: core/models.py:383
msgid "username and email fields must not differ for '{}'"
msgstr ""
@@ -1854,7 +1946,7 @@ msgstr ""
msgid "IMAP Migration"
msgstr ""
#: imap_migration/auth_backends.py:49 webmail/lib/imaputils.py:241
#: imap_migration/auth_backends.py:49 webmail/lib/imaputils.py:240
#, python-brace-format
msgid "Connection to IMAP server failed: {error}"
msgstr ""
@@ -1886,21 +1978,21 @@ msgstr ""
msgid "Failed to disable LDAP account: {}"
msgstr ""
#: lib/api_client.py:35 lib/api_client.py:69 lib/api_client.py:83
#: lib/api_client.py:87
#: lib/api_client.py:35 lib/api_client.py:67 lib/api_client.py:81
#: lib/api_client.py:85
#, python-format
msgid "Failed to communicate with public API: %s"
msgstr ""
#: lib/email_utils.py:139 lib/email_utils.py:350
#: lib/email_utils.py:140 lib/email_utils.py:351
msgid "unable to determine encoding of string"
msgstr ""
#: lib/exceptions.py:85
#: lib/exceptions.py:83
msgid "Permission denied: {}"
msgstr ""
#: lib/exceptions.py:86
#: lib/exceptions.py:84
msgid "Permission denied"
msgstr ""
@@ -2588,11 +2680,11 @@ msgstr ""
msgid "Stop processing"
msgstr ""
#: sievefilters/lib.py:51
#: sievefilters/lib.py:49
msgid "Connection to MANAGESIEVE server failed, check your configuration"
msgstr ""
#: sievefilters/lib.py:78
#: sievefilters/lib.py:76
msgid "Not enough space on server"
msgstr ""
@@ -2894,7 +2986,7 @@ msgstr ""
msgid "User defined email signature"
msgstr ""
#: webmail/lib/attachments.py:113
#: webmail/lib/attachments.py:112
msgid "Failed to remove attachment: "
msgstr ""
@@ -2902,7 +2994,7 @@ msgstr ""
msgid "Date"
msgstr ""
#: webmail/lib/imaputils.py:222
#: webmail/lib/imaputils.py:221
msgid "Failed to retrieve hierarchy delimiter"
msgstr ""
+266 -174
View File
@@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-06-20 16:45+0200\n"
"POT-Creation-Date: 2025-07-27 10:50+0200\n"
"PO-Revision-Date: 2020-05-11 18:45+0000\n"
"Last-Translator: R .. <nordscan@gmail.com>, 2020\n"
"Language-Team: Slovak (Slovakia) (https://www.transifex.com/tonio/"
@@ -23,75 +23,75 @@ msgstr ""
"Plural-Forms: nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n "
">= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);\n"
#: admin/api/v1/serializers.py:41
#: admin/api/v1/serializers.py:39
msgid ""
"Quota shared between mailboxes. Can be expressed in KB, MB (default) or GB. "
"A value of 0 means no quota."
msgstr ""
#: admin/api/v1/serializers.py:48
#: admin/api/v1/serializers.py:46
msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota."
msgstr ""
#: admin/api/v1/serializers.py:90
#: admin/api/v1/serializers.py:88
msgid "domain alias with this name already exists"
msgstr ""
#: admin/api/v1/serializers.py:100
#: admin/api/v1/serializers.py:98
msgid "No authorized MX record found for this domain"
msgstr ""
#: admin/api/v1/serializers.py:118
#: admin/api/v1/serializers.py:116
msgid "Cannot be greater than domain quota"
msgstr ""
#: admin/api/v1/serializers.py:164 admin/api/v1/serializers.py:359
#: admin/api/v2/serializers.py:531 admin/models/alias.py:44
#: admin/api/v1/serializers.py:162 admin/api/v1/serializers.py:357
#: admin/api/v2/serializers.py:548 admin/models/alias.py:44
msgid "Permission denied."
msgstr ""
#: admin/api/v1/serializers.py:226 admin/api/v2/serializers.py:89
#: admin/api/v2/serializers.py:453 core/api/v2/serializers.py:225
#: core/api/v2/serializers.py:227 core/api/v2/serializers.py:236
#: admin/api/v1/serializers.py:224 admin/api/v2/serializers.py:88
#: admin/api/v2/serializers.py:470 core/api/v2/serializers.py:235
#: core/api/v2/serializers.py:237 core/api/v2/serializers.py:246
#: transport/backends.py:40
msgid "This field is required"
msgstr ""
#: admin/api/v1/serializers.py:238
#: admin/api/v1/serializers.py:236
msgid ""
"List of administered domains (resellers and domain administrators only)."
msgstr ""
#: admin/api/v1/serializers.py:332 admin/api/v2/serializers.py:513
#: admin/api/v1/serializers.py:330 admin/api/v2/serializers.py:530
msgid "Not allowed for this role."
msgstr ""
#: admin/api/v1/serializers.py:350
#: admin/api/v1/serializers.py:348
msgid "Must be equal to mailbox full_address"
msgstr ""
#: admin/api/v1/serializers.py:392 admin/api/v2/serializers.py:565
#: admin/api/v1/serializers.py:390 admin/api/v2/serializers.py:582
#: calendars/serializers.py:175 calendars/serializers.py:177
msgid "This field is required."
msgstr ""
#: admin/api/v1/serializers.py:404 admin/api/v2/serializers.py:582
#: admin/api/v1/serializers.py:402 admin/api/v2/serializers.py:599
msgid "Local domain {} does not exist"
msgstr ""
#: admin/api/v1/serializers.py:494
#: admin/api/v1/serializers.py:492
msgid "A list of recipient"
msgstr ""
#: admin/api/v1/serializers.py:510 admin/api/v2/viewsets.py:271
#: admin/api/v1/serializers.py:508 admin/api/v2/viewsets.py:286
msgid "This alias already exists"
msgstr ""
#: admin/api/v1/serializers.py:546
#: admin/api/v1/serializers.py:544
msgid "You don't have access to this domain."
msgstr ""
#: admin/api/v1/serializers.py:555
#: admin/api/v1/serializers.py:553
msgid "You don't have access to this mailbox."
msgstr ""
@@ -99,56 +99,56 @@ msgstr ""
msgid "Here is your new Modoboa password: {}"
msgstr ""
#: admin/api/v2/serializers.py:81
#: admin/api/v2/serializers.py:80
msgid "DKIM keys storage directory not configured"
msgstr ""
#: admin/api/v2/serializers.py:93
#: admin/api/v2/serializers.py:92
msgid "This field is valid when type is relaydomain"
msgstr ""
#: admin/api/v2/serializers.py:100
#: admin/api/v2/serializers.py:99
msgid "You can't define an unlimited quota."
msgstr ""
#: admin/api/v2/serializers.py:134
#: admin/api/v2/serializers.py:133
#, python-format
msgid "User '%s' already exists"
msgstr ""
#: admin/api/v2/serializers.py:249 admin/api/v2/serializers.py:255
#: admin/api/v2/serializers.py:248 admin/api/v2/serializers.py:254
msgid "Must be a positive integer"
msgstr ""
#: admin/api/v2/serializers.py:264
#: admin/api/v2/serializers.py:263
msgid "openssl not found, please make sure it is installed."
msgstr ""
#: admin/api/v2/serializers.py:267 pdfcredentials/api/v2/serializers.py:79
#: admin/api/v2/serializers.py:266 pdfcredentials/api/v2/serializers.py:79
msgid "Directory not found."
msgstr ""
#: admin/api/v2/serializers.py:278
#: admin/api/v2/serializers.py:277
msgid "This field only allows valid IP addresses (or networks)"
msgstr ""
#: admin/api/v2/serializers.py:291
#: admin/api/v2/serializers.py:290
msgid "Please disable imap migration before disabling this option."
msgstr ""
#: admin/api/v2/serializers.py:304
#: admin/api/v2/serializers.py:303
msgid "Define at least one authorized network / address"
msgstr ""
#: admin/api/v2/serializers.py:548
#: admin/api/v2/serializers.py:565
msgid "The left part of an email address can't be more than 64 characters."
msgstr ""
#: admin/api/v2/serializers.py:570
#: admin/api/v2/serializers.py:587
msgid "A mailbox is required to create aliases."
msgstr ""
#: admin/api/v2/serializers.py:734
#: admin/api/v2/serializers.py:751
msgid "Unknown status"
msgstr ""
@@ -160,11 +160,11 @@ msgstr ""
msgid "You can't delete your own domain"
msgstr ""
#: admin/api/v2/viewsets.py:392
#: admin/api/v2/viewsets.py:407
msgid "No alarm ID provided"
msgstr ""
#: admin/api/v2/viewsets.py:396
#: admin/api/v2/viewsets.py:411
msgid "Received invalid alarm id(s)"
msgstr ""
@@ -429,12 +429,12 @@ msgstr ""
msgid "Invalid IP address format for {domain}; {addr}"
msgstr ""
#: admin/lib.py:340
#: admin/lib.py:360
#, python-format
msgid "Object already exists: %s"
msgstr ""
#: admin/lib.py:344
#: admin/lib.py:364
#, python-format
msgid "%d objects imported successfully"
msgstr ""
@@ -583,7 +583,7 @@ msgid "Key length"
msgstr ""
#: admin/models/domain.py:321 admin/models/domain_alias.py:70
#: core/models.py:353 relaydomains/lib.py:13
#: core/models.py:352 relaydomains/lib.py:13
msgid "Invalid line"
msgstr ""
@@ -779,7 +779,7 @@ msgstr ""
msgid "Allow domain administrators to manage user calendars (read and write)"
msgstr ""
#: calendars/app_settings.py:60 core/app_settings.py:579
#: calendars/app_settings.py:60 core/app_settings.py:676
#: rspamd/app_settings.py:45
msgid "Miscellaneous"
msgstr ""
@@ -880,7 +880,7 @@ msgstr ""
msgid "Failed TFA settings editing attempt from '%s' as user '%s'"
msgstr ""
#: core/api/v1/serializers.py:91 core/api/v2/serializers.py:415
#: core/api/v1/serializers.py:91 core/api/v2/serializers.py:425
msgid "Invalid password"
msgstr ""
@@ -892,24 +892,24 @@ msgstr ""
msgid "Local"
msgstr ""
#: core/api/v2/serializers.py:165 core/app_settings.py:17
#: core/api/v2/serializers.py:175 core/app_settings.py:17
msgid "User profile"
msgstr ""
#: core/api/v2/serializers.py:184 core/api/v2/serializers.py:191
#: core/api/v2/serializers.py:198
#: core/api/v2/serializers.py:194 core/api/v2/serializers.py:201
#: core/api/v2/serializers.py:208
msgid "Invalid syntax"
msgstr ""
#: core/api/v2/serializers.py:203
#: core/api/v2/serializers.py:213
msgid "Invalid rounds number"
msgstr ""
#: core/api/v2/serializers.py:403 core/forms.py:81
#: core/api/v2/serializers.py:413 core/forms.py:81
msgid "This code is invalid"
msgstr ""
#: core/api/v2/serializers.py:473 core/views/auth.py:194 core/views/auth.py:247
#: core/api/v2/serializers.py:483 core/views/auth.py:194 core/views/auth.py:247
msgid "Please use the following code to recover your Modoboa password: {}"
msgstr ""
@@ -984,410 +984,502 @@ msgstr ""
msgid "Length of randomly generated passwords."
msgstr ""
#: core/app_settings.py:102
#: core/app_settings.py:103
msgid "Allow special characters for random password"
msgstr ""
#: core/app_settings.py:106
msgid "Enable special characters in randomly generated passwords."
msgstr ""
#: core/app_settings.py:114
msgid "Update password service URL"
msgstr ""
#: core/app_settings.py:104
#: core/app_settings.py:116
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:114
#: core/app_settings.py:126
msgid "Password recovery announcement"
msgstr ""
#: core/app_settings.py:116
#: core/app_settings.py:128
msgid "A temporary message that will be displayed on the reset password page."
msgstr ""
#: core/app_settings.py:125
#: core/app_settings.py:137
msgid "Enable password recovery by SMS"
msgstr ""
#: core/app_settings.py:128
#: core/app_settings.py:140
msgid "Enable password recovery by SMS for users who filled a phone number."
msgstr ""
#: core/app_settings.py:136
#: core/app_settings.py:148
msgid "SMS provider"
msgstr ""
#: core/app_settings.py:139
#: core/app_settings.py:151
msgid "Choose a provider to send password recovery SMS"
msgstr ""
#: core/app_settings.py:151
#: core/app_settings.py:163
msgid "LDAP"
msgstr ""
#: core/app_settings.py:157 sievefilters/app_settings.py:18
#: core/app_settings.py:169 sievefilters/app_settings.py:18
#: sievefilters/app_settings.py:51 webmail/app_settings.py:36
#: webmail/app_settings.py:73
msgid "Server address"
msgstr ""
#: core/app_settings.py:159
#: core/app_settings.py:171
msgid "The IP address or the DNS name of the LDAP server"
msgstr ""
#: core/app_settings.py:166 sievefilters/app_settings.py:25
#: core/app_settings.py:178 sievefilters/app_settings.py:25
#: sievefilters/app_settings.py:67 webmail/app_settings.py:54
#: webmail/app_settings.py:91
msgid "Server port"
msgstr ""
#: core/app_settings.py:168
#: core/app_settings.py:180
msgid "The TCP port number used by the LDAP server"
msgstr ""
#: core/app_settings.py:176
#: core/app_settings.py:188
msgid "Enable secondary server (fallback)"
msgstr ""
#: core/app_settings.py:179
#: core/app_settings.py:191
msgid ""
"Enable a secondary LDAP server which will be used if the primary one fails"
msgstr ""
#: core/app_settings.py:187
#: core/app_settings.py:199
msgid "Secondary server address"
msgstr ""
#: core/app_settings.py:190
#: core/app_settings.py:202
msgid "The IP address or the DNS name of the seondary LDAP server"
msgstr ""
#: core/app_settings.py:197
#: core/app_settings.py:209
msgid "Secondary server port"
msgstr ""
#: core/app_settings.py:200
#: core/app_settings.py:212
msgid "The TCP port number used by the LDAP secondary server"
msgstr ""
#: core/app_settings.py:207 sievefilters/app_settings.py:58
#: core/app_settings.py:219 sievefilters/app_settings.py:58
#: webmail/app_settings.py:45
msgid "Use a secured connection"
msgstr ""
#: core/app_settings.py:209
#: core/app_settings.py:221
msgid "Use an SSL/STARTTLS connection to access the LDAP server"
msgstr ""
#: core/app_settings.py:216
#: core/app_settings.py:228
msgid "Active Directory"
msgstr ""
#: core/app_settings.py:218
#: core/app_settings.py:230
msgid "Tell if the LDAP server is an Active Directory one"
msgstr ""
#: core/app_settings.py:225
#: core/app_settings.py:237
msgid "Administrator groups"
msgstr ""
#: core/app_settings.py:227
#: core/app_settings.py:239
msgid ""
"Members of those LDAP Posix groups will be created as domain administrators. "
"Use ';' characters to separate groups."
msgstr ""
#: core/app_settings.py:236
#: core/app_settings.py:248
msgid "Group type"
msgstr ""
#: core/app_settings.py:238
#: core/app_settings.py:250
msgid "The LDAP group type to use with your directory."
msgstr ""
#: core/app_settings.py:245
#: core/app_settings.py:257
msgid "Groups search base"
msgstr ""
#: core/app_settings.py:247
#: core/app_settings.py:259
msgid "The distinguished name of the search base used to find groups"
msgstr ""
#: core/app_settings.py:255
#: core/app_settings.py:267
msgid "Password attribute"
msgstr ""
#: core/app_settings.py:257
#: core/app_settings.py:269
msgid "The attribute used to store user passwords"
msgstr ""
#: core/app_settings.py:264
#: core/app_settings.py:276
msgid "LDAP authentication settings"
msgstr ""
#: core/app_settings.py:272
#: core/app_settings.py:284
msgid "Authentication method"
msgstr ""
#: core/app_settings.py:275
#: core/app_settings.py:287
msgid "Choose the authentication method to use"
msgstr ""
#: core/app_settings.py:282 core/app_settings.py:345
#: core/app_settings.py:294 core/app_settings.py:357
msgid "Bind DN"
msgstr ""
#: core/app_settings.py:284 core/app_settings.py:347
#: core/app_settings.py:296 core/app_settings.py:359
msgid ""
"The distinguished name to use when binding to the LDAP server. Leave empty "
"for an anonymous bind"
msgstr ""
#: core/app_settings.py:293 core/app_settings.py:355
#: core/app_settings.py:305 core/app_settings.py:367
msgid "Bind password"
msgstr ""
#: core/app_settings.py:295 core/app_settings.py:357
#: core/app_settings.py:307 core/app_settings.py:369
msgid "The password to use when binding to the LDAP server (with 'Bind DN')"
msgstr ""
#: core/app_settings.py:305 core/app_settings.py:410
#: core/app_settings.py:317 core/app_settings.py:422
msgid "Users search base"
msgstr ""
#: core/app_settings.py:307 core/app_settings.py:412
#: core/app_settings.py:319 core/app_settings.py:424
msgid "The distinguished name of the search base used to find users"
msgstr ""
#: core/app_settings.py:316 core/app_settings.py:421
#: core/app_settings.py:328 core/app_settings.py:433
msgid "Search filter"
msgstr ""
#: core/app_settings.py:318 core/app_settings.py:423
#: core/app_settings.py:330 core/app_settings.py:435
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:327
#: core/app_settings.py:339
msgid "User DN template"
msgstr ""
#: core/app_settings.py:329
#: core/app_settings.py:341
#, 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:338
#: core/app_settings.py:350
msgid "LDAP synchronization settings"
msgstr ""
#: core/app_settings.py:366
#: core/app_settings.py:378
msgid "Enable export to LDAP"
msgstr ""
#: core/app_settings.py:368
#: core/app_settings.py:380
msgid ""
"Enable automatic synchronization between local database and LDAP directory"
msgstr ""
#: core/app_settings.py:377
#: core/app_settings.py:389
msgid "Delete remote LDAP account when local account is deleted"
msgstr ""
#: core/app_settings.py:380
#: core/app_settings.py:392
msgid ""
"Delete remote LDAP account when local account is deleted, otherwise it will "
"be disabled."
msgstr ""
#: core/app_settings.py:389
#: core/app_settings.py:401
msgid "Account DN template"
msgstr ""
#: core/app_settings.py:391
#: core/app_settings.py:403
#, 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:400
#: core/app_settings.py:412
msgid "Enable import from LDAP"
msgstr ""
#: core/app_settings.py:402
#: core/app_settings.py:414
msgid "Enable account synchronization from LDAP directory to local database"
msgstr ""
#: core/app_settings.py:432
#: core/app_settings.py:444
msgid "Username attribute"
msgstr ""
#: core/app_settings.py:434
#: core/app_settings.py:446
msgid "The name of the LDAP attribute where the username can be found."
msgstr ""
#: core/app_settings.py:443
#: core/app_settings.py:455
msgid "Enable Dovecot LDAP sync"
msgstr ""
#: core/app_settings.py:445
#: core/app_settings.py:457
msgid "LDAP authentication settings will be applied to Dovecot configuration."
msgstr ""
#: core/app_settings.py:453
#: core/app_settings.py:465
msgid "Dovecot LDAP config file"
msgstr ""
#: core/app_settings.py:455
#: core/app_settings.py:467
msgid ""
"Location of the configuration file which contains Dovecot LDAP settings."
msgstr ""
#: core/app_settings.py:468
#: core/app_settings.py:480
msgid "Dashboard"
msgstr ""
#: core/app_settings.py:474
#: core/app_settings.py:486
msgid "Custom welcome message"
msgstr ""
#: core/app_settings.py:488
msgid "A welcome message that will be displayed instead the default one"
msgstr ""
#: core/app_settings.py:495
msgid "Custom RSS feed"
msgstr ""
#: core/app_settings.py:476
#: core/app_settings.py:497
msgid "Display custom RSS feed to resellers and domain administrators"
msgstr ""
#: core/app_settings.py:484
msgid "Hide features widget"
msgstr ""
#: core/app_settings.py:486
msgid "Hide features widget for resellers and domain administrators"
msgstr ""
#: core/app_settings.py:498
msgid "Notifications"
msgstr ""
#: core/app_settings.py:504
msgid "Sender address"
msgstr ""
#: core/app_settings.py:506
msgid "Email address used to send notifications."
msgid "Display custom RSS feed to super admins"
msgstr ""
#: core/app_settings.py:509
msgid "Display custom RSS feed also to super administrators"
msgstr ""
#: core/app_settings.py:517
msgid "Hide features widget"
msgstr ""
#: core/app_settings.py:519
msgid "Hide features widget for resellers and domain administrators"
msgstr ""
#: core/app_settings.py:531
msgid "Theme"
msgstr ""
#: core/app_settings.py:537
msgid "Primary theme color"
msgstr ""
#: core/app_settings.py:539
msgid ""
"Primary color of the theme (hexadecimal code), used as the background color "
"of the left menu for example"
msgstr ""
#: core/app_settings.py:548
msgid "Primary theme color (lighter version)"
msgstr ""
#: core/app_settings.py:551 core/app_settings.py:563
msgid "Primary color of the theme (hexadecimal code)"
msgstr ""
#: core/app_settings.py:560
msgid "Primary theme color (darker version)"
msgstr ""
#: core/app_settings.py:571
msgid "Secondary theme color"
msgstr ""
#: core/app_settings.py:573
msgid ""
"Secondary color of the theme (hexadecimal code), used as the background "
"color of some buttons for example"
msgstr ""
#: core/app_settings.py:581
msgid "Labels theme color"
msgstr ""
#: core/app_settings.py:583
msgid "Theme color for labels (hexadecimal code)"
msgstr ""
#: core/app_settings.py:595
msgid "Notifications"
msgstr ""
#: core/app_settings.py:601
msgid "Sender address"
msgstr ""
#: core/app_settings.py:603
msgid "Email address used to send notifications."
msgstr ""
#: core/app_settings.py:614
msgid "Public API"
msgstr ""
#: core/app_settings.py:523
#: core/app_settings.py:620
msgid "Enable communication"
msgstr ""
#: core/app_settings.py:525 core/app_settings.py:535
#: core/app_settings.py:622 core/app_settings.py:632
msgid "Automatically checks if a newer version is available"
msgstr ""
#: core/app_settings.py:532
#: core/app_settings.py:629
msgid "Check new versions"
msgstr ""
#: core/app_settings.py:543
#: core/app_settings.py:640
msgid "Send an email when new versions are found"
msgstr ""
#: core/app_settings.py:547
#: core/app_settings.py:644
msgid "Send an email to notify admins about new versions"
msgstr ""
#: core/app_settings.py:554 sievefilters/constants.py:25
#: core/app_settings.py:651 sievefilters/constants.py:25
msgid "Recipient"
msgstr ""
#: core/app_settings.py:557
#: core/app_settings.py:654
msgid "Recipient of new versions notification emails."
msgstr ""
#: core/app_settings.py:564
#: core/app_settings.py:661
msgid "Send statistics"
msgstr ""
#: core/app_settings.py:567
#: core/app_settings.py:664
msgid "Send statistics to Modoboa public API (counters and used extensions)"
msgstr ""
#: core/app_settings.py:586
#: core/app_settings.py:683
msgid "Enable inactive account tracking"
msgstr ""
#: core/app_settings.py:589
#: core/app_settings.py:686
msgid ""
"Allow the administrator to set a threshold (in days) beyond which an account "
"is considered inactive if the user hasn't logged in"
msgstr ""
#: core/app_settings.py:598
#: core/app_settings.py:695
msgid "Inactive account threshold"
msgstr ""
#: core/app_settings.py:601
#: core/app_settings.py:698
msgid ""
"An account with a last login date greater than this threshold (in days) will "
"be considered as inactive"
msgstr ""
#: core/app_settings.py:610
#: core/app_settings.py:707
msgid "Top notifications check interval"
msgstr ""
#: core/app_settings.py:613
#: core/app_settings.py:710
msgid "Interval between two top notification checks (in seconds)"
msgstr ""
#: core/app_settings.py:620
#: core/app_settings.py:717
msgid "Maximum log record age"
msgstr ""
#: core/app_settings.py:622
#: core/app_settings.py:719
msgid "The maximum age in days of a log record"
msgstr ""
#: core/app_settings.py:629
#: core/app_settings.py:726
msgid "Items per page"
msgstr ""
#: core/app_settings.py:631
#: core/app_settings.py:728
msgid "Number of displayed items per page"
msgstr ""
#: core/app_settings.py:638
#: core/app_settings.py:735
msgid "Default top redirection"
msgstr ""
#: core/app_settings.py:640
#: core/app_settings.py:737
msgid "The default redirection used when no application is specified"
msgstr ""
#: core/checks.py:13
#: core/checks.py:15
msgid ""
"You have USE_TZ set to False, this may result in issues during transitions "
"between summer/winter time (ie the same local time occuring twice due to "
"clock change)."
msgstr ""
#: core/checks.py:17
#: core/checks.py:19
msgid "Set `USE_TZ = True` in settings.py"
msgstr ""
#: core/checks.py:21
#: core/checks.py:23
msgid "The password scheme you are using is deprecated."
msgstr ""
#: core/checks.py:22
#: core/checks.py:24
msgid "Upgrade your password scheme to a stronger one"
msgstr ""
#: core/checks.py:30
msgid ""
"Oauth2 application for dovecot has not been found. Webmail and some other "
"features won't be available."
msgstr ""
#: core/checks.py:34
msgid ""
"Visit : https://modoboa.readthedocs.io/en/latest/manual_installation/dovecot."
"html#dovecot-oauth2"
msgstr ""
#: core/checks.py:41
msgid ""
"Oauth2 application for radicale has not been found. Calendar and some other "
"features won't be available."
msgstr ""
#: core/checks.py:45
msgid ""
"Visit : https://modoboa.readthedocs.io/en/latest/manual_installation/"
"radicale.html#radicale-oauth2"
msgstr ""
#: core/constants.py:6
msgid "Simple user"
msgstr ""
@@ -1479,61 +1571,61 @@ msgstr ""
msgid "[modoboa] Update(s) available"
msgstr ""
#: core/models.py:72
#: core/models.py:71
msgid "Allow mailboxes access"
msgstr ""
#: core/models.py:74
#: core/models.py:73
msgid "Allow this administrator to access user mailboxes"
msgstr ""
#: core/models.py:76
#: core/models.py:75
msgid "password"
msgstr ""
#: core/models.py:79
#: core/models.py:78
msgid "language"
msgstr ""
#: core/models.py:83
#: core/models.py:82
msgid "Prefered language to display pages."
msgstr ""
#: core/models.py:85
#: core/models.py:84
msgid "Phone number"
msgstr ""
#: core/models.py:87
#: core/models.py:86
msgid "Secondary email"
msgstr ""
#: core/models.py:92
#: core/models.py:91
msgid "An alternative e-mail address, can be used for recovery needs."
msgstr ""
#: core/models.py:151
#: core/models.py:150
#, fuzzy
#| msgid "Failed to update LDAP account: {}"
msgid "Failed to update password: LDAP module not installed"
msgstr "Nepodarilo sa aktulizovať účet LDAP: {}"
#: core/models.py:186 policyd/core.py:117
#: core/models.py:185 policyd/core.py:117
msgid "account"
msgstr ""
#: core/models.py:318
#: core/models.py:317
msgid "Unknown"
msgstr ""
#: core/models.py:361
#: core/models.py:360
msgid "You can't import an account with a role greater than yours"
msgstr ""
#: core/models.py:376
#: core/models.py:375
msgid "The simple user '{}' must have a valid email address"
msgstr ""
#: core/models.py:384
#: core/models.py:383
msgid "username and email fields must not differ for '{}'"
msgstr ""
@@ -1870,7 +1962,7 @@ msgstr ""
msgid "IMAP Migration"
msgstr ""
#: imap_migration/auth_backends.py:49 webmail/lib/imaputils.py:241
#: imap_migration/auth_backends.py:49 webmail/lib/imaputils.py:240
#, python-brace-format
msgid "Connection to IMAP server failed: {error}"
msgstr ""
@@ -1902,21 +1994,21 @@ msgstr "Nepodarilo sa odstrániť účet LDAP: {}"
msgid "Failed to disable LDAP account: {}"
msgstr "Nepodarilo sa deaktivovať účet LDAP: {}"
#: lib/api_client.py:35 lib/api_client.py:69 lib/api_client.py:83
#: lib/api_client.py:87
#: lib/api_client.py:35 lib/api_client.py:67 lib/api_client.py:81
#: lib/api_client.py:85
#, python-format
msgid "Failed to communicate with public API: %s"
msgstr ""
#: lib/email_utils.py:139 lib/email_utils.py:350
#: lib/email_utils.py:140 lib/email_utils.py:351
msgid "unable to determine encoding of string"
msgstr ""
#: lib/exceptions.py:85
#: lib/exceptions.py:83
msgid "Permission denied: {}"
msgstr ""
#: lib/exceptions.py:86
#: lib/exceptions.py:84
msgid "Permission denied"
msgstr ""
@@ -2606,11 +2698,11 @@ msgstr ""
msgid "Stop processing"
msgstr ""
#: sievefilters/lib.py:51
#: sievefilters/lib.py:49
msgid "Connection to MANAGESIEVE server failed, check your configuration"
msgstr ""
#: sievefilters/lib.py:78
#: sievefilters/lib.py:76
msgid "Not enough space on server"
msgstr ""
@@ -2912,7 +3004,7 @@ msgstr ""
msgid "User defined email signature"
msgstr ""
#: webmail/lib/attachments.py:113
#: webmail/lib/attachments.py:112
#, fuzzy
#| msgid "Failed to create LDAP account: {}"
msgid "Failed to remove attachment: "
@@ -2922,7 +3014,7 @@ msgstr "Nepodarilo sa vytvoriť účet LDAP: {}"
msgid "Date"
msgstr ""
#: webmail/lib/imaputils.py:222
#: webmail/lib/imaputils.py:221
msgid "Failed to retrieve hierarchy delimiter"
msgstr ""
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+266 -174
View File
@@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-06-20 16:45+0200\n"
"POT-Creation-Date: 2025-07-27 10:50+0200\n"
"PO-Revision-Date: 2020-05-11 18:45+0000\n"
"Last-Translator: Taras Havryliuk <admin@web4u.in.ua>, 2021\n"
"Language-Team: Ukrainian (https://www.transifex.com/tonio/teams/13749/uk/)\n"
@@ -24,75 +24,75 @@ msgstr ""
"100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || "
"(n % 100 >=11 && n % 100 <=14 )) ? 2: 3);\n"
#: admin/api/v1/serializers.py:41
#: admin/api/v1/serializers.py:39
msgid ""
"Quota shared between mailboxes. Can be expressed in KB, MB (default) or GB. "
"A value of 0 means no quota."
msgstr ""
#: admin/api/v1/serializers.py:48
#: admin/api/v1/serializers.py:46
msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota."
msgstr ""
#: admin/api/v1/serializers.py:90
#: admin/api/v1/serializers.py:88
msgid "domain alias with this name already exists"
msgstr ""
#: admin/api/v1/serializers.py:100
#: admin/api/v1/serializers.py:98
msgid "No authorized MX record found for this domain"
msgstr ""
#: admin/api/v1/serializers.py:118
#: admin/api/v1/serializers.py:116
msgid "Cannot be greater than domain quota"
msgstr ""
#: admin/api/v1/serializers.py:164 admin/api/v1/serializers.py:359
#: admin/api/v2/serializers.py:531 admin/models/alias.py:44
#: admin/api/v1/serializers.py:162 admin/api/v1/serializers.py:357
#: admin/api/v2/serializers.py:548 admin/models/alias.py:44
msgid "Permission denied."
msgstr ""
#: admin/api/v1/serializers.py:226 admin/api/v2/serializers.py:89
#: admin/api/v2/serializers.py:453 core/api/v2/serializers.py:225
#: core/api/v2/serializers.py:227 core/api/v2/serializers.py:236
#: admin/api/v1/serializers.py:224 admin/api/v2/serializers.py:88
#: admin/api/v2/serializers.py:470 core/api/v2/serializers.py:235
#: core/api/v2/serializers.py:237 core/api/v2/serializers.py:246
#: transport/backends.py:40
msgid "This field is required"
msgstr ""
#: admin/api/v1/serializers.py:238
#: admin/api/v1/serializers.py:236
msgid ""
"List of administered domains (resellers and domain administrators only)."
msgstr ""
#: admin/api/v1/serializers.py:332 admin/api/v2/serializers.py:513
#: admin/api/v1/serializers.py:330 admin/api/v2/serializers.py:530
msgid "Not allowed for this role."
msgstr ""
#: admin/api/v1/serializers.py:350
#: admin/api/v1/serializers.py:348
msgid "Must be equal to mailbox full_address"
msgstr ""
#: admin/api/v1/serializers.py:392 admin/api/v2/serializers.py:565
#: admin/api/v1/serializers.py:390 admin/api/v2/serializers.py:582
#: calendars/serializers.py:175 calendars/serializers.py:177
msgid "This field is required."
msgstr ""
#: admin/api/v1/serializers.py:404 admin/api/v2/serializers.py:582
#: admin/api/v1/serializers.py:402 admin/api/v2/serializers.py:599
msgid "Local domain {} does not exist"
msgstr ""
#: admin/api/v1/serializers.py:494
#: admin/api/v1/serializers.py:492
msgid "A list of recipient"
msgstr ""
#: admin/api/v1/serializers.py:510 admin/api/v2/viewsets.py:271
#: admin/api/v1/serializers.py:508 admin/api/v2/viewsets.py:286
msgid "This alias already exists"
msgstr ""
#: admin/api/v1/serializers.py:546
#: admin/api/v1/serializers.py:544
msgid "You don't have access to this domain."
msgstr ""
#: admin/api/v1/serializers.py:555
#: admin/api/v1/serializers.py:553
msgid "You don't have access to this mailbox."
msgstr ""
@@ -100,56 +100,56 @@ msgstr ""
msgid "Here is your new Modoboa password: {}"
msgstr ""
#: admin/api/v2/serializers.py:81
#: admin/api/v2/serializers.py:80
msgid "DKIM keys storage directory not configured"
msgstr ""
#: admin/api/v2/serializers.py:93
#: admin/api/v2/serializers.py:92
msgid "This field is valid when type is relaydomain"
msgstr ""
#: admin/api/v2/serializers.py:100
#: admin/api/v2/serializers.py:99
msgid "You can't define an unlimited quota."
msgstr ""
#: admin/api/v2/serializers.py:134
#: admin/api/v2/serializers.py:133
#, python-format
msgid "User '%s' already exists"
msgstr ""
#: admin/api/v2/serializers.py:249 admin/api/v2/serializers.py:255
#: admin/api/v2/serializers.py:248 admin/api/v2/serializers.py:254
msgid "Must be a positive integer"
msgstr ""
#: admin/api/v2/serializers.py:264
#: admin/api/v2/serializers.py:263
msgid "openssl not found, please make sure it is installed."
msgstr ""
#: admin/api/v2/serializers.py:267 pdfcredentials/api/v2/serializers.py:79
#: admin/api/v2/serializers.py:266 pdfcredentials/api/v2/serializers.py:79
msgid "Directory not found."
msgstr ""
#: admin/api/v2/serializers.py:278
#: admin/api/v2/serializers.py:277
msgid "This field only allows valid IP addresses (or networks)"
msgstr ""
#: admin/api/v2/serializers.py:291
#: admin/api/v2/serializers.py:290
msgid "Please disable imap migration before disabling this option."
msgstr ""
#: admin/api/v2/serializers.py:304
#: admin/api/v2/serializers.py:303
msgid "Define at least one authorized network / address"
msgstr ""
#: admin/api/v2/serializers.py:548
#: admin/api/v2/serializers.py:565
msgid "The left part of an email address can't be more than 64 characters."
msgstr ""
#: admin/api/v2/serializers.py:570
#: admin/api/v2/serializers.py:587
msgid "A mailbox is required to create aliases."
msgstr ""
#: admin/api/v2/serializers.py:734
#: admin/api/v2/serializers.py:751
msgid "Unknown status"
msgstr ""
@@ -161,11 +161,11 @@ msgstr ""
msgid "You can't delete your own domain"
msgstr ""
#: admin/api/v2/viewsets.py:392
#: admin/api/v2/viewsets.py:407
msgid "No alarm ID provided"
msgstr ""
#: admin/api/v2/viewsets.py:396
#: admin/api/v2/viewsets.py:411
msgid "Received invalid alarm id(s)"
msgstr ""
@@ -430,12 +430,12 @@ msgstr ""
msgid "Invalid IP address format for {domain}; {addr}"
msgstr ""
#: admin/lib.py:340
#: admin/lib.py:360
#, python-format
msgid "Object already exists: %s"
msgstr ""
#: admin/lib.py:344
#: admin/lib.py:364
#, python-format
msgid "%d objects imported successfully"
msgstr ""
@@ -584,7 +584,7 @@ msgid "Key length"
msgstr ""
#: admin/models/domain.py:321 admin/models/domain_alias.py:70
#: core/models.py:353 relaydomains/lib.py:13
#: core/models.py:352 relaydomains/lib.py:13
msgid "Invalid line"
msgstr ""
@@ -780,7 +780,7 @@ msgstr ""
msgid "Allow domain administrators to manage user calendars (read and write)"
msgstr ""
#: calendars/app_settings.py:60 core/app_settings.py:579
#: calendars/app_settings.py:60 core/app_settings.py:676
#: rspamd/app_settings.py:45
msgid "Miscellaneous"
msgstr ""
@@ -881,7 +881,7 @@ msgstr ""
msgid "Failed TFA settings editing attempt from '%s' as user '%s'"
msgstr ""
#: core/api/v1/serializers.py:91 core/api/v2/serializers.py:415
#: core/api/v1/serializers.py:91 core/api/v2/serializers.py:425
msgid "Invalid password"
msgstr ""
@@ -893,24 +893,24 @@ msgstr ""
msgid "Local"
msgstr ""
#: core/api/v2/serializers.py:165 core/app_settings.py:17
#: core/api/v2/serializers.py:175 core/app_settings.py:17
msgid "User profile"
msgstr ""
#: core/api/v2/serializers.py:184 core/api/v2/serializers.py:191
#: core/api/v2/serializers.py:198
#: core/api/v2/serializers.py:194 core/api/v2/serializers.py:201
#: core/api/v2/serializers.py:208
msgid "Invalid syntax"
msgstr ""
#: core/api/v2/serializers.py:203
#: core/api/v2/serializers.py:213
msgid "Invalid rounds number"
msgstr ""
#: core/api/v2/serializers.py:403 core/forms.py:81
#: core/api/v2/serializers.py:413 core/forms.py:81
msgid "This code is invalid"
msgstr ""
#: core/api/v2/serializers.py:473 core/views/auth.py:194 core/views/auth.py:247
#: core/api/v2/serializers.py:483 core/views/auth.py:194 core/views/auth.py:247
msgid "Please use the following code to recover your Modoboa password: {}"
msgstr ""
@@ -985,410 +985,502 @@ msgstr ""
msgid "Length of randomly generated passwords."
msgstr ""
#: core/app_settings.py:102
#: core/app_settings.py:103
msgid "Allow special characters for random password"
msgstr ""
#: core/app_settings.py:106
msgid "Enable special characters in randomly generated passwords."
msgstr ""
#: core/app_settings.py:114
msgid "Update password service URL"
msgstr ""
#: core/app_settings.py:104
#: core/app_settings.py:116
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:114
#: core/app_settings.py:126
msgid "Password recovery announcement"
msgstr ""
#: core/app_settings.py:116
#: core/app_settings.py:128
msgid "A temporary message that will be displayed on the reset password page."
msgstr ""
#: core/app_settings.py:125
#: core/app_settings.py:137
msgid "Enable password recovery by SMS"
msgstr ""
#: core/app_settings.py:128
#: core/app_settings.py:140
msgid "Enable password recovery by SMS for users who filled a phone number."
msgstr ""
#: core/app_settings.py:136
#: core/app_settings.py:148
msgid "SMS provider"
msgstr ""
#: core/app_settings.py:139
#: core/app_settings.py:151
msgid "Choose a provider to send password recovery SMS"
msgstr ""
#: core/app_settings.py:151
#: core/app_settings.py:163
msgid "LDAP"
msgstr ""
#: core/app_settings.py:157 sievefilters/app_settings.py:18
#: core/app_settings.py:169 sievefilters/app_settings.py:18
#: sievefilters/app_settings.py:51 webmail/app_settings.py:36
#: webmail/app_settings.py:73
msgid "Server address"
msgstr ""
#: core/app_settings.py:159
#: core/app_settings.py:171
msgid "The IP address or the DNS name of the LDAP server"
msgstr ""
#: core/app_settings.py:166 sievefilters/app_settings.py:25
#: core/app_settings.py:178 sievefilters/app_settings.py:25
#: sievefilters/app_settings.py:67 webmail/app_settings.py:54
#: webmail/app_settings.py:91
msgid "Server port"
msgstr ""
#: core/app_settings.py:168
#: core/app_settings.py:180
msgid "The TCP port number used by the LDAP server"
msgstr ""
#: core/app_settings.py:176
#: core/app_settings.py:188
msgid "Enable secondary server (fallback)"
msgstr ""
#: core/app_settings.py:179
#: core/app_settings.py:191
msgid ""
"Enable a secondary LDAP server which will be used if the primary one fails"
msgstr ""
#: core/app_settings.py:187
#: core/app_settings.py:199
msgid "Secondary server address"
msgstr ""
#: core/app_settings.py:190
#: core/app_settings.py:202
msgid "The IP address or the DNS name of the seondary LDAP server"
msgstr ""
#: core/app_settings.py:197
#: core/app_settings.py:209
msgid "Secondary server port"
msgstr ""
#: core/app_settings.py:200
#: core/app_settings.py:212
msgid "The TCP port number used by the LDAP secondary server"
msgstr ""
#: core/app_settings.py:207 sievefilters/app_settings.py:58
#: core/app_settings.py:219 sievefilters/app_settings.py:58
#: webmail/app_settings.py:45
msgid "Use a secured connection"
msgstr ""
#: core/app_settings.py:209
#: core/app_settings.py:221
msgid "Use an SSL/STARTTLS connection to access the LDAP server"
msgstr ""
#: core/app_settings.py:216
#: core/app_settings.py:228
msgid "Active Directory"
msgstr ""
#: core/app_settings.py:218
#: core/app_settings.py:230
msgid "Tell if the LDAP server is an Active Directory one"
msgstr ""
#: core/app_settings.py:225
#: core/app_settings.py:237
msgid "Administrator groups"
msgstr ""
#: core/app_settings.py:227
#: core/app_settings.py:239
msgid ""
"Members of those LDAP Posix groups will be created as domain administrators. "
"Use ';' characters to separate groups."
msgstr ""
#: core/app_settings.py:236
#: core/app_settings.py:248
msgid "Group type"
msgstr ""
#: core/app_settings.py:238
#: core/app_settings.py:250
msgid "The LDAP group type to use with your directory."
msgstr ""
#: core/app_settings.py:245
#: core/app_settings.py:257
msgid "Groups search base"
msgstr ""
#: core/app_settings.py:247
#: core/app_settings.py:259
msgid "The distinguished name of the search base used to find groups"
msgstr ""
#: core/app_settings.py:255
#: core/app_settings.py:267
msgid "Password attribute"
msgstr ""
#: core/app_settings.py:257
#: core/app_settings.py:269
msgid "The attribute used to store user passwords"
msgstr ""
#: core/app_settings.py:264
#: core/app_settings.py:276
msgid "LDAP authentication settings"
msgstr ""
#: core/app_settings.py:272
#: core/app_settings.py:284
msgid "Authentication method"
msgstr ""
#: core/app_settings.py:275
#: core/app_settings.py:287
msgid "Choose the authentication method to use"
msgstr ""
#: core/app_settings.py:282 core/app_settings.py:345
#: core/app_settings.py:294 core/app_settings.py:357
msgid "Bind DN"
msgstr ""
#: core/app_settings.py:284 core/app_settings.py:347
#: core/app_settings.py:296 core/app_settings.py:359
msgid ""
"The distinguished name to use when binding to the LDAP server. Leave empty "
"for an anonymous bind"
msgstr ""
#: core/app_settings.py:293 core/app_settings.py:355
#: core/app_settings.py:305 core/app_settings.py:367
msgid "Bind password"
msgstr ""
#: core/app_settings.py:295 core/app_settings.py:357
#: core/app_settings.py:307 core/app_settings.py:369
msgid "The password to use when binding to the LDAP server (with 'Bind DN')"
msgstr ""
#: core/app_settings.py:305 core/app_settings.py:410
#: core/app_settings.py:317 core/app_settings.py:422
msgid "Users search base"
msgstr ""
#: core/app_settings.py:307 core/app_settings.py:412
#: core/app_settings.py:319 core/app_settings.py:424
msgid "The distinguished name of the search base used to find users"
msgstr ""
#: core/app_settings.py:316 core/app_settings.py:421
#: core/app_settings.py:328 core/app_settings.py:433
msgid "Search filter"
msgstr ""
#: core/app_settings.py:318 core/app_settings.py:423
#: core/app_settings.py:330 core/app_settings.py:435
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:327
#: core/app_settings.py:339
msgid "User DN template"
msgstr ""
#: core/app_settings.py:329
#: core/app_settings.py:341
#, 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:338
#: core/app_settings.py:350
msgid "LDAP synchronization settings"
msgstr ""
#: core/app_settings.py:366
#: core/app_settings.py:378
msgid "Enable export to LDAP"
msgstr ""
#: core/app_settings.py:368
#: core/app_settings.py:380
msgid ""
"Enable automatic synchronization between local database and LDAP directory"
msgstr ""
#: core/app_settings.py:377
#: core/app_settings.py:389
msgid "Delete remote LDAP account when local account is deleted"
msgstr ""
#: core/app_settings.py:380
#: core/app_settings.py:392
msgid ""
"Delete remote LDAP account when local account is deleted, otherwise it will "
"be disabled."
msgstr ""
#: core/app_settings.py:389
#: core/app_settings.py:401
msgid "Account DN template"
msgstr ""
#: core/app_settings.py:391
#: core/app_settings.py:403
#, 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:400
#: core/app_settings.py:412
msgid "Enable import from LDAP"
msgstr ""
#: core/app_settings.py:402
#: core/app_settings.py:414
msgid "Enable account synchronization from LDAP directory to local database"
msgstr ""
#: core/app_settings.py:432
#: core/app_settings.py:444
msgid "Username attribute"
msgstr ""
#: core/app_settings.py:434
#: core/app_settings.py:446
msgid "The name of the LDAP attribute where the username can be found."
msgstr ""
#: core/app_settings.py:443
#: core/app_settings.py:455
msgid "Enable Dovecot LDAP sync"
msgstr ""
#: core/app_settings.py:445
#: core/app_settings.py:457
msgid "LDAP authentication settings will be applied to Dovecot configuration."
msgstr ""
#: core/app_settings.py:453
#: core/app_settings.py:465
msgid "Dovecot LDAP config file"
msgstr ""
#: core/app_settings.py:455
#: core/app_settings.py:467
msgid ""
"Location of the configuration file which contains Dovecot LDAP settings."
msgstr ""
#: core/app_settings.py:468
#: core/app_settings.py:480
msgid "Dashboard"
msgstr ""
#: core/app_settings.py:474
#: core/app_settings.py:486
msgid "Custom welcome message"
msgstr ""
#: core/app_settings.py:488
msgid "A welcome message that will be displayed instead the default one"
msgstr ""
#: core/app_settings.py:495
msgid "Custom RSS feed"
msgstr ""
#: core/app_settings.py:476
#: core/app_settings.py:497
msgid "Display custom RSS feed to resellers and domain administrators"
msgstr ""
#: core/app_settings.py:484
msgid "Hide features widget"
msgstr ""
#: core/app_settings.py:486
msgid "Hide features widget for resellers and domain administrators"
msgstr ""
#: core/app_settings.py:498
msgid "Notifications"
msgstr ""
#: core/app_settings.py:504
msgid "Sender address"
msgstr ""
#: core/app_settings.py:506
msgid "Email address used to send notifications."
msgid "Display custom RSS feed to super admins"
msgstr ""
#: core/app_settings.py:509
msgid "Display custom RSS feed also to super administrators"
msgstr ""
#: core/app_settings.py:517
msgid "Hide features widget"
msgstr ""
#: core/app_settings.py:519
msgid "Hide features widget for resellers and domain administrators"
msgstr ""
#: core/app_settings.py:531
msgid "Theme"
msgstr ""
#: core/app_settings.py:537
msgid "Primary theme color"
msgstr ""
#: core/app_settings.py:539
msgid ""
"Primary color of the theme (hexadecimal code), used as the background color "
"of the left menu for example"
msgstr ""
#: core/app_settings.py:548
msgid "Primary theme color (lighter version)"
msgstr ""
#: core/app_settings.py:551 core/app_settings.py:563
msgid "Primary color of the theme (hexadecimal code)"
msgstr ""
#: core/app_settings.py:560
msgid "Primary theme color (darker version)"
msgstr ""
#: core/app_settings.py:571
msgid "Secondary theme color"
msgstr ""
#: core/app_settings.py:573
msgid ""
"Secondary color of the theme (hexadecimal code), used as the background "
"color of some buttons for example"
msgstr ""
#: core/app_settings.py:581
msgid "Labels theme color"
msgstr ""
#: core/app_settings.py:583
msgid "Theme color for labels (hexadecimal code)"
msgstr ""
#: core/app_settings.py:595
msgid "Notifications"
msgstr ""
#: core/app_settings.py:601
msgid "Sender address"
msgstr ""
#: core/app_settings.py:603
msgid "Email address used to send notifications."
msgstr ""
#: core/app_settings.py:614
msgid "Public API"
msgstr ""
#: core/app_settings.py:523
#: core/app_settings.py:620
msgid "Enable communication"
msgstr ""
#: core/app_settings.py:525 core/app_settings.py:535
#: core/app_settings.py:622 core/app_settings.py:632
msgid "Automatically checks if a newer version is available"
msgstr ""
#: core/app_settings.py:532
#: core/app_settings.py:629
msgid "Check new versions"
msgstr ""
#: core/app_settings.py:543
#: core/app_settings.py:640
msgid "Send an email when new versions are found"
msgstr ""
#: core/app_settings.py:547
#: core/app_settings.py:644
msgid "Send an email to notify admins about new versions"
msgstr ""
#: core/app_settings.py:554 sievefilters/constants.py:25
#: core/app_settings.py:651 sievefilters/constants.py:25
msgid "Recipient"
msgstr ""
#: core/app_settings.py:557
#: core/app_settings.py:654
msgid "Recipient of new versions notification emails."
msgstr ""
#: core/app_settings.py:564
#: core/app_settings.py:661
msgid "Send statistics"
msgstr ""
#: core/app_settings.py:567
#: core/app_settings.py:664
msgid "Send statistics to Modoboa public API (counters and used extensions)"
msgstr ""
#: core/app_settings.py:586
#: core/app_settings.py:683
msgid "Enable inactive account tracking"
msgstr ""
#: core/app_settings.py:589
#: core/app_settings.py:686
msgid ""
"Allow the administrator to set a threshold (in days) beyond which an account "
"is considered inactive if the user hasn't logged in"
msgstr ""
#: core/app_settings.py:598
#: core/app_settings.py:695
msgid "Inactive account threshold"
msgstr ""
#: core/app_settings.py:601
#: core/app_settings.py:698
msgid ""
"An account with a last login date greater than this threshold (in days) will "
"be considered as inactive"
msgstr ""
#: core/app_settings.py:610
#: core/app_settings.py:707
msgid "Top notifications check interval"
msgstr ""
#: core/app_settings.py:613
#: core/app_settings.py:710
msgid "Interval between two top notification checks (in seconds)"
msgstr ""
#: core/app_settings.py:620
#: core/app_settings.py:717
msgid "Maximum log record age"
msgstr ""
#: core/app_settings.py:622
#: core/app_settings.py:719
msgid "The maximum age in days of a log record"
msgstr ""
#: core/app_settings.py:629
#: core/app_settings.py:726
msgid "Items per page"
msgstr ""
#: core/app_settings.py:631
#: core/app_settings.py:728
msgid "Number of displayed items per page"
msgstr ""
#: core/app_settings.py:638
#: core/app_settings.py:735
msgid "Default top redirection"
msgstr ""
#: core/app_settings.py:640
#: core/app_settings.py:737
msgid "The default redirection used when no application is specified"
msgstr ""
#: core/checks.py:13
#: core/checks.py:15
msgid ""
"You have USE_TZ set to False, this may result in issues during transitions "
"between summer/winter time (ie the same local time occuring twice due to "
"clock change)."
msgstr ""
#: core/checks.py:17
#: core/checks.py:19
msgid "Set `USE_TZ = True` in settings.py"
msgstr ""
#: core/checks.py:21
#: core/checks.py:23
msgid "The password scheme you are using is deprecated."
msgstr ""
#: core/checks.py:22
#: core/checks.py:24
msgid "Upgrade your password scheme to a stronger one"
msgstr ""
#: core/checks.py:30
msgid ""
"Oauth2 application for dovecot has not been found. Webmail and some other "
"features won't be available."
msgstr ""
#: core/checks.py:34
msgid ""
"Visit : https://modoboa.readthedocs.io/en/latest/manual_installation/dovecot."
"html#dovecot-oauth2"
msgstr ""
#: core/checks.py:41
msgid ""
"Oauth2 application for radicale has not been found. Calendar and some other "
"features won't be available."
msgstr ""
#: core/checks.py:45
msgid ""
"Visit : https://modoboa.readthedocs.io/en/latest/manual_installation/"
"radicale.html#radicale-oauth2"
msgstr ""
#: core/constants.py:6
msgid "Simple user"
msgstr ""
@@ -1480,61 +1572,61 @@ msgstr ""
msgid "[modoboa] Update(s) available"
msgstr ""
#: core/models.py:72
#: core/models.py:71
msgid "Allow mailboxes access"
msgstr ""
#: core/models.py:74
#: core/models.py:73
msgid "Allow this administrator to access user mailboxes"
msgstr ""
#: core/models.py:76
#: core/models.py:75
msgid "password"
msgstr ""
#: core/models.py:79
#: core/models.py:78
msgid "language"
msgstr ""
#: core/models.py:83
#: core/models.py:82
msgid "Prefered language to display pages."
msgstr ""
#: core/models.py:85
#: core/models.py:84
msgid "Phone number"
msgstr ""
#: core/models.py:87
#: core/models.py:86
msgid "Secondary email"
msgstr ""
#: core/models.py:92
#: core/models.py:91
msgid "An alternative e-mail address, can be used for recovery needs."
msgstr ""
#: core/models.py:151
#: core/models.py:150
#, fuzzy
#| msgid "Failed to update LDAP account: {}"
msgid "Failed to update password: LDAP module not installed"
msgstr "Не вдалося оновити обліковий запис LDAP: {} "
#: core/models.py:186 policyd/core.py:117
#: core/models.py:185 policyd/core.py:117
msgid "account"
msgstr ""
#: core/models.py:318
#: core/models.py:317
msgid "Unknown"
msgstr ""
#: core/models.py:361
#: core/models.py:360
msgid "You can't import an account with a role greater than yours"
msgstr ""
#: core/models.py:376
#: core/models.py:375
msgid "The simple user '{}' must have a valid email address"
msgstr ""
#: core/models.py:384
#: core/models.py:383
msgid "username and email fields must not differ for '{}'"
msgstr ""
@@ -1871,7 +1963,7 @@ msgstr ""
msgid "IMAP Migration"
msgstr ""
#: imap_migration/auth_backends.py:49 webmail/lib/imaputils.py:241
#: imap_migration/auth_backends.py:49 webmail/lib/imaputils.py:240
#, python-brace-format
msgid "Connection to IMAP server failed: {error}"
msgstr ""
@@ -1903,21 +1995,21 @@ msgstr "Не вдалося видалити обліковий запис LDAP:
msgid "Failed to disable LDAP account: {}"
msgstr "Не вдалося відключити обліковий запис LDAP: {} "
#: lib/api_client.py:35 lib/api_client.py:69 lib/api_client.py:83
#: lib/api_client.py:87
#: lib/api_client.py:35 lib/api_client.py:67 lib/api_client.py:81
#: lib/api_client.py:85
#, python-format
msgid "Failed to communicate with public API: %s"
msgstr ""
#: lib/email_utils.py:139 lib/email_utils.py:350
#: lib/email_utils.py:140 lib/email_utils.py:351
msgid "unable to determine encoding of string"
msgstr ""
#: lib/exceptions.py:85
#: lib/exceptions.py:83
msgid "Permission denied: {}"
msgstr ""
#: lib/exceptions.py:86
#: lib/exceptions.py:84
msgid "Permission denied"
msgstr ""
@@ -2607,11 +2699,11 @@ msgstr ""
msgid "Stop processing"
msgstr ""
#: sievefilters/lib.py:51
#: sievefilters/lib.py:49
msgid "Connection to MANAGESIEVE server failed, check your configuration"
msgstr ""
#: sievefilters/lib.py:78
#: sievefilters/lib.py:76
msgid "Not enough space on server"
msgstr ""
@@ -2913,7 +3005,7 @@ msgstr ""
msgid "User defined email signature"
msgstr ""
#: webmail/lib/attachments.py:113
#: webmail/lib/attachments.py:112
#, fuzzy
#| msgid "Failed to create LDAP account: {}"
msgid "Failed to remove attachment: "
@@ -2923,7 +3015,7 @@ msgstr "Не вдалося створити обліковий запис LDAP:
msgid "Date"
msgstr ""
#: webmail/lib/imaputils.py:222
#: webmail/lib/imaputils.py:221
msgid "Failed to retrieve hierarchy delimiter"
msgstr ""
+266 -174
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-06-20 16:45+0200\n"
"POT-Creation-Date: 2025-07-27 10:50+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -18,75 +18,75 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
#: admin/api/v1/serializers.py:41
#: admin/api/v1/serializers.py:39
msgid ""
"Quota shared between mailboxes. Can be expressed in KB, MB (default) or GB. "
"A value of 0 means no quota."
msgstr ""
#: admin/api/v1/serializers.py:48
#: admin/api/v1/serializers.py:46
msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota."
msgstr ""
#: admin/api/v1/serializers.py:90
#: admin/api/v1/serializers.py:88
msgid "domain alias with this name already exists"
msgstr ""
#: admin/api/v1/serializers.py:100
#: admin/api/v1/serializers.py:98
msgid "No authorized MX record found for this domain"
msgstr ""
#: admin/api/v1/serializers.py:118
#: admin/api/v1/serializers.py:116
msgid "Cannot be greater than domain quota"
msgstr ""
#: admin/api/v1/serializers.py:164 admin/api/v1/serializers.py:359
#: admin/api/v2/serializers.py:531 admin/models/alias.py:44
#: admin/api/v1/serializers.py:162 admin/api/v1/serializers.py:357
#: admin/api/v2/serializers.py:548 admin/models/alias.py:44
msgid "Permission denied."
msgstr ""
#: admin/api/v1/serializers.py:226 admin/api/v2/serializers.py:89
#: admin/api/v2/serializers.py:453 core/api/v2/serializers.py:225
#: core/api/v2/serializers.py:227 core/api/v2/serializers.py:236
#: admin/api/v1/serializers.py:224 admin/api/v2/serializers.py:88
#: admin/api/v2/serializers.py:470 core/api/v2/serializers.py:235
#: core/api/v2/serializers.py:237 core/api/v2/serializers.py:246
#: transport/backends.py:40
msgid "This field is required"
msgstr ""
#: admin/api/v1/serializers.py:238
#: admin/api/v1/serializers.py:236
msgid ""
"List of administered domains (resellers and domain administrators only)."
msgstr ""
#: admin/api/v1/serializers.py:332 admin/api/v2/serializers.py:513
#: admin/api/v1/serializers.py:330 admin/api/v2/serializers.py:530
msgid "Not allowed for this role."
msgstr ""
#: admin/api/v1/serializers.py:350
#: admin/api/v1/serializers.py:348
msgid "Must be equal to mailbox full_address"
msgstr ""
#: admin/api/v1/serializers.py:392 admin/api/v2/serializers.py:565
#: admin/api/v1/serializers.py:390 admin/api/v2/serializers.py:582
#: calendars/serializers.py:175 calendars/serializers.py:177
msgid "This field is required."
msgstr ""
#: admin/api/v1/serializers.py:404 admin/api/v2/serializers.py:582
#: admin/api/v1/serializers.py:402 admin/api/v2/serializers.py:599
msgid "Local domain {} does not exist"
msgstr ""
#: admin/api/v1/serializers.py:494
#: admin/api/v1/serializers.py:492
msgid "A list of recipient"
msgstr ""
#: admin/api/v1/serializers.py:510 admin/api/v2/viewsets.py:271
#: admin/api/v1/serializers.py:508 admin/api/v2/viewsets.py:286
msgid "This alias already exists"
msgstr ""
#: admin/api/v1/serializers.py:546
#: admin/api/v1/serializers.py:544
msgid "You don't have access to this domain."
msgstr ""
#: admin/api/v1/serializers.py:555
#: admin/api/v1/serializers.py:553
msgid "You don't have access to this mailbox."
msgstr ""
@@ -94,56 +94,56 @@ msgstr ""
msgid "Here is your new Modoboa password: {}"
msgstr ""
#: admin/api/v2/serializers.py:81
#: admin/api/v2/serializers.py:80
msgid "DKIM keys storage directory not configured"
msgstr ""
#: admin/api/v2/serializers.py:93
#: admin/api/v2/serializers.py:92
msgid "This field is valid when type is relaydomain"
msgstr ""
#: admin/api/v2/serializers.py:100
#: admin/api/v2/serializers.py:99
msgid "You can't define an unlimited quota."
msgstr ""
#: admin/api/v2/serializers.py:134
#: admin/api/v2/serializers.py:133
#, python-format
msgid "User '%s' already exists"
msgstr ""
#: admin/api/v2/serializers.py:249 admin/api/v2/serializers.py:255
#: admin/api/v2/serializers.py:248 admin/api/v2/serializers.py:254
msgid "Must be a positive integer"
msgstr ""
#: admin/api/v2/serializers.py:264
#: admin/api/v2/serializers.py:263
msgid "openssl not found, please make sure it is installed."
msgstr ""
#: admin/api/v2/serializers.py:267 pdfcredentials/api/v2/serializers.py:79
#: admin/api/v2/serializers.py:266 pdfcredentials/api/v2/serializers.py:79
msgid "Directory not found."
msgstr ""
#: admin/api/v2/serializers.py:278
#: admin/api/v2/serializers.py:277
msgid "This field only allows valid IP addresses (or networks)"
msgstr ""
#: admin/api/v2/serializers.py:291
#: admin/api/v2/serializers.py:290
msgid "Please disable imap migration before disabling this option."
msgstr ""
#: admin/api/v2/serializers.py:304
#: admin/api/v2/serializers.py:303
msgid "Define at least one authorized network / address"
msgstr ""
#: admin/api/v2/serializers.py:548
#: admin/api/v2/serializers.py:565
msgid "The left part of an email address can't be more than 64 characters."
msgstr ""
#: admin/api/v2/serializers.py:570
#: admin/api/v2/serializers.py:587
msgid "A mailbox is required to create aliases."
msgstr ""
#: admin/api/v2/serializers.py:734
#: admin/api/v2/serializers.py:751
msgid "Unknown status"
msgstr ""
@@ -155,11 +155,11 @@ msgstr ""
msgid "You can't delete your own domain"
msgstr ""
#: admin/api/v2/viewsets.py:392
#: admin/api/v2/viewsets.py:407
msgid "No alarm ID provided"
msgstr ""
#: admin/api/v2/viewsets.py:396
#: admin/api/v2/viewsets.py:411
msgid "Received invalid alarm id(s)"
msgstr ""
@@ -424,12 +424,12 @@ msgstr ""
msgid "Invalid IP address format for {domain}; {addr}"
msgstr ""
#: admin/lib.py:340
#: admin/lib.py:360
#, python-format
msgid "Object already exists: %s"
msgstr ""
#: admin/lib.py:344
#: admin/lib.py:364
#, python-format
msgid "%d objects imported successfully"
msgstr ""
@@ -578,7 +578,7 @@ msgid "Key length"
msgstr ""
#: admin/models/domain.py:321 admin/models/domain_alias.py:70
#: core/models.py:353 relaydomains/lib.py:13
#: core/models.py:352 relaydomains/lib.py:13
msgid "Invalid line"
msgstr ""
@@ -774,7 +774,7 @@ msgstr ""
msgid "Allow domain administrators to manage user calendars (read and write)"
msgstr ""
#: calendars/app_settings.py:60 core/app_settings.py:579
#: calendars/app_settings.py:60 core/app_settings.py:676
#: rspamd/app_settings.py:45
msgid "Miscellaneous"
msgstr ""
@@ -875,7 +875,7 @@ msgstr ""
msgid "Failed TFA settings editing attempt from '%s' as user '%s'"
msgstr ""
#: core/api/v1/serializers.py:91 core/api/v2/serializers.py:415
#: core/api/v1/serializers.py:91 core/api/v2/serializers.py:425
msgid "Invalid password"
msgstr ""
@@ -887,24 +887,24 @@ msgstr ""
msgid "Local"
msgstr ""
#: core/api/v2/serializers.py:165 core/app_settings.py:17
#: core/api/v2/serializers.py:175 core/app_settings.py:17
msgid "User profile"
msgstr ""
#: core/api/v2/serializers.py:184 core/api/v2/serializers.py:191
#: core/api/v2/serializers.py:198
#: core/api/v2/serializers.py:194 core/api/v2/serializers.py:201
#: core/api/v2/serializers.py:208
msgid "Invalid syntax"
msgstr ""
#: core/api/v2/serializers.py:203
#: core/api/v2/serializers.py:213
msgid "Invalid rounds number"
msgstr ""
#: core/api/v2/serializers.py:403 core/forms.py:81
#: core/api/v2/serializers.py:413 core/forms.py:81
msgid "This code is invalid"
msgstr ""
#: core/api/v2/serializers.py:473 core/views/auth.py:194 core/views/auth.py:247
#: core/api/v2/serializers.py:483 core/views/auth.py:194 core/views/auth.py:247
msgid "Please use the following code to recover your Modoboa password: {}"
msgstr ""
@@ -979,410 +979,502 @@ msgstr ""
msgid "Length of randomly generated passwords."
msgstr ""
#: core/app_settings.py:102
#: core/app_settings.py:103
msgid "Allow special characters for random password"
msgstr ""
#: core/app_settings.py:106
msgid "Enable special characters in randomly generated passwords."
msgstr ""
#: core/app_settings.py:114
msgid "Update password service URL"
msgstr ""
#: core/app_settings.py:104
#: core/app_settings.py:116
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:114
#: core/app_settings.py:126
msgid "Password recovery announcement"
msgstr ""
#: core/app_settings.py:116
#: core/app_settings.py:128
msgid "A temporary message that will be displayed on the reset password page."
msgstr ""
#: core/app_settings.py:125
#: core/app_settings.py:137
msgid "Enable password recovery by SMS"
msgstr ""
#: core/app_settings.py:128
#: core/app_settings.py:140
msgid "Enable password recovery by SMS for users who filled a phone number."
msgstr ""
#: core/app_settings.py:136
#: core/app_settings.py:148
msgid "SMS provider"
msgstr ""
#: core/app_settings.py:139
#: core/app_settings.py:151
msgid "Choose a provider to send password recovery SMS"
msgstr ""
#: core/app_settings.py:151
#: core/app_settings.py:163
msgid "LDAP"
msgstr ""
#: core/app_settings.py:157 sievefilters/app_settings.py:18
#: core/app_settings.py:169 sievefilters/app_settings.py:18
#: sievefilters/app_settings.py:51 webmail/app_settings.py:36
#: webmail/app_settings.py:73
msgid "Server address"
msgstr ""
#: core/app_settings.py:159
#: core/app_settings.py:171
msgid "The IP address or the DNS name of the LDAP server"
msgstr ""
#: core/app_settings.py:166 sievefilters/app_settings.py:25
#: core/app_settings.py:178 sievefilters/app_settings.py:25
#: sievefilters/app_settings.py:67 webmail/app_settings.py:54
#: webmail/app_settings.py:91
msgid "Server port"
msgstr ""
#: core/app_settings.py:168
#: core/app_settings.py:180
msgid "The TCP port number used by the LDAP server"
msgstr ""
#: core/app_settings.py:176
#: core/app_settings.py:188
msgid "Enable secondary server (fallback)"
msgstr ""
#: core/app_settings.py:179
#: core/app_settings.py:191
msgid ""
"Enable a secondary LDAP server which will be used if the primary one fails"
msgstr ""
#: core/app_settings.py:187
#: core/app_settings.py:199
msgid "Secondary server address"
msgstr ""
#: core/app_settings.py:190
#: core/app_settings.py:202
msgid "The IP address or the DNS name of the seondary LDAP server"
msgstr ""
#: core/app_settings.py:197
#: core/app_settings.py:209
msgid "Secondary server port"
msgstr ""
#: core/app_settings.py:200
#: core/app_settings.py:212
msgid "The TCP port number used by the LDAP secondary server"
msgstr ""
#: core/app_settings.py:207 sievefilters/app_settings.py:58
#: core/app_settings.py:219 sievefilters/app_settings.py:58
#: webmail/app_settings.py:45
msgid "Use a secured connection"
msgstr ""
#: core/app_settings.py:209
#: core/app_settings.py:221
msgid "Use an SSL/STARTTLS connection to access the LDAP server"
msgstr ""
#: core/app_settings.py:216
#: core/app_settings.py:228
msgid "Active Directory"
msgstr ""
#: core/app_settings.py:218
#: core/app_settings.py:230
msgid "Tell if the LDAP server is an Active Directory one"
msgstr ""
#: core/app_settings.py:225
#: core/app_settings.py:237
msgid "Administrator groups"
msgstr ""
#: core/app_settings.py:227
#: core/app_settings.py:239
msgid ""
"Members of those LDAP Posix groups will be created as domain administrators. "
"Use ';' characters to separate groups."
msgstr ""
#: core/app_settings.py:236
#: core/app_settings.py:248
msgid "Group type"
msgstr ""
#: core/app_settings.py:238
#: core/app_settings.py:250
msgid "The LDAP group type to use with your directory."
msgstr ""
#: core/app_settings.py:245
#: core/app_settings.py:257
msgid "Groups search base"
msgstr ""
#: core/app_settings.py:247
#: core/app_settings.py:259
msgid "The distinguished name of the search base used to find groups"
msgstr ""
#: core/app_settings.py:255
#: core/app_settings.py:267
msgid "Password attribute"
msgstr ""
#: core/app_settings.py:257
#: core/app_settings.py:269
msgid "The attribute used to store user passwords"
msgstr ""
#: core/app_settings.py:264
#: core/app_settings.py:276
msgid "LDAP authentication settings"
msgstr ""
#: core/app_settings.py:272
#: core/app_settings.py:284
msgid "Authentication method"
msgstr ""
#: core/app_settings.py:275
#: core/app_settings.py:287
msgid "Choose the authentication method to use"
msgstr ""
#: core/app_settings.py:282 core/app_settings.py:345
#: core/app_settings.py:294 core/app_settings.py:357
msgid "Bind DN"
msgstr ""
#: core/app_settings.py:284 core/app_settings.py:347
#: core/app_settings.py:296 core/app_settings.py:359
msgid ""
"The distinguished name to use when binding to the LDAP server. Leave empty "
"for an anonymous bind"
msgstr ""
#: core/app_settings.py:293 core/app_settings.py:355
#: core/app_settings.py:305 core/app_settings.py:367
msgid "Bind password"
msgstr ""
#: core/app_settings.py:295 core/app_settings.py:357
#: core/app_settings.py:307 core/app_settings.py:369
msgid "The password to use when binding to the LDAP server (with 'Bind DN')"
msgstr ""
#: core/app_settings.py:305 core/app_settings.py:410
#: core/app_settings.py:317 core/app_settings.py:422
msgid "Users search base"
msgstr ""
#: core/app_settings.py:307 core/app_settings.py:412
#: core/app_settings.py:319 core/app_settings.py:424
msgid "The distinguished name of the search base used to find users"
msgstr ""
#: core/app_settings.py:316 core/app_settings.py:421
#: core/app_settings.py:328 core/app_settings.py:433
msgid "Search filter"
msgstr ""
#: core/app_settings.py:318 core/app_settings.py:423
#: core/app_settings.py:330 core/app_settings.py:435
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:327
#: core/app_settings.py:339
msgid "User DN template"
msgstr ""
#: core/app_settings.py:329
#: core/app_settings.py:341
#, 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:338
#: core/app_settings.py:350
msgid "LDAP synchronization settings"
msgstr ""
#: core/app_settings.py:366
#: core/app_settings.py:378
msgid "Enable export to LDAP"
msgstr ""
#: core/app_settings.py:368
#: core/app_settings.py:380
msgid ""
"Enable automatic synchronization between local database and LDAP directory"
msgstr ""
#: core/app_settings.py:377
#: core/app_settings.py:389
msgid "Delete remote LDAP account when local account is deleted"
msgstr ""
#: core/app_settings.py:380
#: core/app_settings.py:392
msgid ""
"Delete remote LDAP account when local account is deleted, otherwise it will "
"be disabled."
msgstr ""
#: core/app_settings.py:389
#: core/app_settings.py:401
msgid "Account DN template"
msgstr ""
#: core/app_settings.py:391
#: core/app_settings.py:403
#, 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:400
#: core/app_settings.py:412
msgid "Enable import from LDAP"
msgstr ""
#: core/app_settings.py:402
#: core/app_settings.py:414
msgid "Enable account synchronization from LDAP directory to local database"
msgstr ""
#: core/app_settings.py:432
#: core/app_settings.py:444
msgid "Username attribute"
msgstr ""
#: core/app_settings.py:434
#: core/app_settings.py:446
msgid "The name of the LDAP attribute where the username can be found."
msgstr ""
#: core/app_settings.py:443
#: core/app_settings.py:455
msgid "Enable Dovecot LDAP sync"
msgstr ""
#: core/app_settings.py:445
#: core/app_settings.py:457
msgid "LDAP authentication settings will be applied to Dovecot configuration."
msgstr ""
#: core/app_settings.py:453
#: core/app_settings.py:465
msgid "Dovecot LDAP config file"
msgstr ""
#: core/app_settings.py:455
#: core/app_settings.py:467
msgid ""
"Location of the configuration file which contains Dovecot LDAP settings."
msgstr ""
#: core/app_settings.py:468
#: core/app_settings.py:480
msgid "Dashboard"
msgstr ""
#: core/app_settings.py:474
#: core/app_settings.py:486
msgid "Custom welcome message"
msgstr ""
#: core/app_settings.py:488
msgid "A welcome message that will be displayed instead the default one"
msgstr ""
#: core/app_settings.py:495
msgid "Custom RSS feed"
msgstr ""
#: core/app_settings.py:476
#: core/app_settings.py:497
msgid "Display custom RSS feed to resellers and domain administrators"
msgstr ""
#: core/app_settings.py:484
msgid "Hide features widget"
msgstr ""
#: core/app_settings.py:486
msgid "Hide features widget for resellers and domain administrators"
msgstr ""
#: core/app_settings.py:498
msgid "Notifications"
msgstr ""
#: core/app_settings.py:504
msgid "Sender address"
msgstr ""
#: core/app_settings.py:506
msgid "Email address used to send notifications."
msgid "Display custom RSS feed to super admins"
msgstr ""
#: core/app_settings.py:509
msgid "Display custom RSS feed also to super administrators"
msgstr ""
#: core/app_settings.py:517
msgid "Hide features widget"
msgstr ""
#: core/app_settings.py:519
msgid "Hide features widget for resellers and domain administrators"
msgstr ""
#: core/app_settings.py:531
msgid "Theme"
msgstr ""
#: core/app_settings.py:537
msgid "Primary theme color"
msgstr ""
#: core/app_settings.py:539
msgid ""
"Primary color of the theme (hexadecimal code), used as the background color "
"of the left menu for example"
msgstr ""
#: core/app_settings.py:548
msgid "Primary theme color (lighter version)"
msgstr ""
#: core/app_settings.py:551 core/app_settings.py:563
msgid "Primary color of the theme (hexadecimal code)"
msgstr ""
#: core/app_settings.py:560
msgid "Primary theme color (darker version)"
msgstr ""
#: core/app_settings.py:571
msgid "Secondary theme color"
msgstr ""
#: core/app_settings.py:573
msgid ""
"Secondary color of the theme (hexadecimal code), used as the background "
"color of some buttons for example"
msgstr ""
#: core/app_settings.py:581
msgid "Labels theme color"
msgstr ""
#: core/app_settings.py:583
msgid "Theme color for labels (hexadecimal code)"
msgstr ""
#: core/app_settings.py:595
msgid "Notifications"
msgstr ""
#: core/app_settings.py:601
msgid "Sender address"
msgstr ""
#: core/app_settings.py:603
msgid "Email address used to send notifications."
msgstr ""
#: core/app_settings.py:614
msgid "Public API"
msgstr ""
#: core/app_settings.py:523
#: core/app_settings.py:620
msgid "Enable communication"
msgstr ""
#: core/app_settings.py:525 core/app_settings.py:535
#: core/app_settings.py:622 core/app_settings.py:632
msgid "Automatically checks if a newer version is available"
msgstr ""
#: core/app_settings.py:532
#: core/app_settings.py:629
msgid "Check new versions"
msgstr ""
#: core/app_settings.py:543
#: core/app_settings.py:640
msgid "Send an email when new versions are found"
msgstr ""
#: core/app_settings.py:547
#: core/app_settings.py:644
msgid "Send an email to notify admins about new versions"
msgstr ""
#: core/app_settings.py:554 sievefilters/constants.py:25
#: core/app_settings.py:651 sievefilters/constants.py:25
msgid "Recipient"
msgstr ""
#: core/app_settings.py:557
#: core/app_settings.py:654
msgid "Recipient of new versions notification emails."
msgstr ""
#: core/app_settings.py:564
#: core/app_settings.py:661
msgid "Send statistics"
msgstr ""
#: core/app_settings.py:567
#: core/app_settings.py:664
msgid "Send statistics to Modoboa public API (counters and used extensions)"
msgstr ""
#: core/app_settings.py:586
#: core/app_settings.py:683
msgid "Enable inactive account tracking"
msgstr ""
#: core/app_settings.py:589
#: core/app_settings.py:686
msgid ""
"Allow the administrator to set a threshold (in days) beyond which an account "
"is considered inactive if the user hasn't logged in"
msgstr ""
#: core/app_settings.py:598
#: core/app_settings.py:695
msgid "Inactive account threshold"
msgstr ""
#: core/app_settings.py:601
#: core/app_settings.py:698
msgid ""
"An account with a last login date greater than this threshold (in days) will "
"be considered as inactive"
msgstr ""
#: core/app_settings.py:610
#: core/app_settings.py:707
msgid "Top notifications check interval"
msgstr ""
#: core/app_settings.py:613
#: core/app_settings.py:710
msgid "Interval between two top notification checks (in seconds)"
msgstr ""
#: core/app_settings.py:620
#: core/app_settings.py:717
msgid "Maximum log record age"
msgstr ""
#: core/app_settings.py:622
#: core/app_settings.py:719
msgid "The maximum age in days of a log record"
msgstr ""
#: core/app_settings.py:629
#: core/app_settings.py:726
msgid "Items per page"
msgstr ""
#: core/app_settings.py:631
#: core/app_settings.py:728
msgid "Number of displayed items per page"
msgstr ""
#: core/app_settings.py:638
#: core/app_settings.py:735
msgid "Default top redirection"
msgstr ""
#: core/app_settings.py:640
#: core/app_settings.py:737
msgid "The default redirection used when no application is specified"
msgstr ""
#: core/checks.py:13
#: core/checks.py:15
msgid ""
"You have USE_TZ set to False, this may result in issues during transitions "
"between summer/winter time (ie the same local time occuring twice due to "
"clock change)."
msgstr ""
#: core/checks.py:17
#: core/checks.py:19
msgid "Set `USE_TZ = True` in settings.py"
msgstr ""
#: core/checks.py:21
#: core/checks.py:23
msgid "The password scheme you are using is deprecated."
msgstr ""
#: core/checks.py:22
#: core/checks.py:24
msgid "Upgrade your password scheme to a stronger one"
msgstr ""
#: core/checks.py:30
msgid ""
"Oauth2 application for dovecot has not been found. Webmail and some other "
"features won't be available."
msgstr ""
#: core/checks.py:34
msgid ""
"Visit : https://modoboa.readthedocs.io/en/latest/manual_installation/dovecot."
"html#dovecot-oauth2"
msgstr ""
#: core/checks.py:41
msgid ""
"Oauth2 application for radicale has not been found. Calendar and some other "
"features won't be available."
msgstr ""
#: core/checks.py:45
msgid ""
"Visit : https://modoboa.readthedocs.io/en/latest/manual_installation/"
"radicale.html#radicale-oauth2"
msgstr ""
#: core/constants.py:6
msgid "Simple user"
msgstr ""
@@ -1474,59 +1566,59 @@ msgstr ""
msgid "[modoboa] Update(s) available"
msgstr ""
#: core/models.py:72
#: core/models.py:71
msgid "Allow mailboxes access"
msgstr ""
#: core/models.py:74
#: core/models.py:73
msgid "Allow this administrator to access user mailboxes"
msgstr ""
#: core/models.py:76
#: core/models.py:75
msgid "password"
msgstr ""
#: core/models.py:79
#: core/models.py:78
msgid "language"
msgstr ""
#: core/models.py:83
#: core/models.py:82
msgid "Prefered language to display pages."
msgstr ""
#: core/models.py:85
#: core/models.py:84
msgid "Phone number"
msgstr ""
#: core/models.py:87
#: core/models.py:86
msgid "Secondary email"
msgstr ""
#: core/models.py:92
#: core/models.py:91
msgid "An alternative e-mail address, can be used for recovery needs."
msgstr ""
#: core/models.py:151
#: core/models.py:150
msgid "Failed to update password: LDAP module not installed"
msgstr ""
#: core/models.py:186 policyd/core.py:117
#: core/models.py:185 policyd/core.py:117
msgid "account"
msgstr ""
#: core/models.py:318
#: core/models.py:317
msgid "Unknown"
msgstr ""
#: core/models.py:361
#: core/models.py:360
msgid "You can't import an account with a role greater than yours"
msgstr ""
#: core/models.py:376
#: core/models.py:375
msgid "The simple user '{}' must have a valid email address"
msgstr ""
#: core/models.py:384
#: core/models.py:383
msgid "username and email fields must not differ for '{}'"
msgstr ""
@@ -1853,7 +1945,7 @@ msgstr ""
msgid "IMAP Migration"
msgstr ""
#: imap_migration/auth_backends.py:49 webmail/lib/imaputils.py:241
#: imap_migration/auth_backends.py:49 webmail/lib/imaputils.py:240
#, python-brace-format
msgid "Connection to IMAP server failed: {error}"
msgstr ""
@@ -1885,21 +1977,21 @@ msgstr ""
msgid "Failed to disable LDAP account: {}"
msgstr ""
#: lib/api_client.py:35 lib/api_client.py:69 lib/api_client.py:83
#: lib/api_client.py:87
#: lib/api_client.py:35 lib/api_client.py:67 lib/api_client.py:81
#: lib/api_client.py:85
#, python-format
msgid "Failed to communicate with public API: %s"
msgstr ""
#: lib/email_utils.py:139 lib/email_utils.py:350
#: lib/email_utils.py:140 lib/email_utils.py:351
msgid "unable to determine encoding of string"
msgstr ""
#: lib/exceptions.py:85
#: lib/exceptions.py:83
msgid "Permission denied: {}"
msgstr ""
#: lib/exceptions.py:86
#: lib/exceptions.py:84
msgid "Permission denied"
msgstr ""
@@ -2587,11 +2679,11 @@ msgstr ""
msgid "Stop processing"
msgstr ""
#: sievefilters/lib.py:51
#: sievefilters/lib.py:49
msgid "Connection to MANAGESIEVE server failed, check your configuration"
msgstr ""
#: sievefilters/lib.py:78
#: sievefilters/lib.py:76
msgid "Not enough space on server"
msgstr ""
@@ -2893,7 +2985,7 @@ msgstr ""
msgid "User defined email signature"
msgstr ""
#: webmail/lib/attachments.py:113
#: webmail/lib/attachments.py:112
msgid "Failed to remove attachment: "
msgstr ""
@@ -2901,7 +2993,7 @@ msgstr ""
msgid "Date"
msgstr ""
#: webmail/lib/imaputils.py:222
#: webmail/lib/imaputils.py:221
msgid "Failed to retrieve hierarchy delimiter"
msgstr ""
+266 -174
View File
@@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-06-20 16:45+0200\n"
"POT-Creation-Date: 2025-07-27 10:50+0200\n"
"PO-Revision-Date: 2020-05-11 18:45+0000\n"
"Last-Translator: 李 正 <364109980@qq.com>, 2021\n"
"Language-Team: Chinese (China) (https://www.transifex.com/tonio/teams/13749/"
@@ -22,75 +22,75 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#: admin/api/v1/serializers.py:41
#: admin/api/v1/serializers.py:39
msgid ""
"Quota shared between mailboxes. Can be expressed in KB, MB (default) or GB. "
"A value of 0 means no quota."
msgstr ""
#: admin/api/v1/serializers.py:48
#: admin/api/v1/serializers.py:46
msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota."
msgstr ""
#: admin/api/v1/serializers.py:90
#: admin/api/v1/serializers.py:88
msgid "domain alias with this name already exists"
msgstr ""
#: admin/api/v1/serializers.py:100
#: admin/api/v1/serializers.py:98
msgid "No authorized MX record found for this domain"
msgstr ""
#: admin/api/v1/serializers.py:118
#: admin/api/v1/serializers.py:116
msgid "Cannot be greater than domain quota"
msgstr ""
#: admin/api/v1/serializers.py:164 admin/api/v1/serializers.py:359
#: admin/api/v2/serializers.py:531 admin/models/alias.py:44
#: admin/api/v1/serializers.py:162 admin/api/v1/serializers.py:357
#: admin/api/v2/serializers.py:548 admin/models/alias.py:44
msgid "Permission denied."
msgstr ""
#: admin/api/v1/serializers.py:226 admin/api/v2/serializers.py:89
#: admin/api/v2/serializers.py:453 core/api/v2/serializers.py:225
#: core/api/v2/serializers.py:227 core/api/v2/serializers.py:236
#: admin/api/v1/serializers.py:224 admin/api/v2/serializers.py:88
#: admin/api/v2/serializers.py:470 core/api/v2/serializers.py:235
#: core/api/v2/serializers.py:237 core/api/v2/serializers.py:246
#: transport/backends.py:40
msgid "This field is required"
msgstr ""
#: admin/api/v1/serializers.py:238
#: admin/api/v1/serializers.py:236
msgid ""
"List of administered domains (resellers and domain administrators only)."
msgstr ""
#: admin/api/v1/serializers.py:332 admin/api/v2/serializers.py:513
#: admin/api/v1/serializers.py:330 admin/api/v2/serializers.py:530
msgid "Not allowed for this role."
msgstr ""
#: admin/api/v1/serializers.py:350
#: admin/api/v1/serializers.py:348
msgid "Must be equal to mailbox full_address"
msgstr ""
#: admin/api/v1/serializers.py:392 admin/api/v2/serializers.py:565
#: admin/api/v1/serializers.py:390 admin/api/v2/serializers.py:582
#: calendars/serializers.py:175 calendars/serializers.py:177
msgid "This field is required."
msgstr ""
#: admin/api/v1/serializers.py:404 admin/api/v2/serializers.py:582
#: admin/api/v1/serializers.py:402 admin/api/v2/serializers.py:599
msgid "Local domain {} does not exist"
msgstr ""
#: admin/api/v1/serializers.py:494
#: admin/api/v1/serializers.py:492
msgid "A list of recipient"
msgstr ""
#: admin/api/v1/serializers.py:510 admin/api/v2/viewsets.py:271
#: admin/api/v1/serializers.py:508 admin/api/v2/viewsets.py:286
msgid "This alias already exists"
msgstr ""
#: admin/api/v1/serializers.py:546
#: admin/api/v1/serializers.py:544
msgid "You don't have access to this domain."
msgstr ""
#: admin/api/v1/serializers.py:555
#: admin/api/v1/serializers.py:553
msgid "You don't have access to this mailbox."
msgstr ""
@@ -98,56 +98,56 @@ msgstr ""
msgid "Here is your new Modoboa password: {}"
msgstr ""
#: admin/api/v2/serializers.py:81
#: admin/api/v2/serializers.py:80
msgid "DKIM keys storage directory not configured"
msgstr ""
#: admin/api/v2/serializers.py:93
#: admin/api/v2/serializers.py:92
msgid "This field is valid when type is relaydomain"
msgstr ""
#: admin/api/v2/serializers.py:100
#: admin/api/v2/serializers.py:99
msgid "You can't define an unlimited quota."
msgstr ""
#: admin/api/v2/serializers.py:134
#: admin/api/v2/serializers.py:133
#, python-format
msgid "User '%s' already exists"
msgstr ""
#: admin/api/v2/serializers.py:249 admin/api/v2/serializers.py:255
#: admin/api/v2/serializers.py:248 admin/api/v2/serializers.py:254
msgid "Must be a positive integer"
msgstr ""
#: admin/api/v2/serializers.py:264
#: admin/api/v2/serializers.py:263
msgid "openssl not found, please make sure it is installed."
msgstr ""
#: admin/api/v2/serializers.py:267 pdfcredentials/api/v2/serializers.py:79
#: admin/api/v2/serializers.py:266 pdfcredentials/api/v2/serializers.py:79
msgid "Directory not found."
msgstr ""
#: admin/api/v2/serializers.py:278
#: admin/api/v2/serializers.py:277
msgid "This field only allows valid IP addresses (or networks)"
msgstr ""
#: admin/api/v2/serializers.py:291
#: admin/api/v2/serializers.py:290
msgid "Please disable imap migration before disabling this option."
msgstr ""
#: admin/api/v2/serializers.py:304
#: admin/api/v2/serializers.py:303
msgid "Define at least one authorized network / address"
msgstr ""
#: admin/api/v2/serializers.py:548
#: admin/api/v2/serializers.py:565
msgid "The left part of an email address can't be more than 64 characters."
msgstr ""
#: admin/api/v2/serializers.py:570
#: admin/api/v2/serializers.py:587
msgid "A mailbox is required to create aliases."
msgstr ""
#: admin/api/v2/serializers.py:734
#: admin/api/v2/serializers.py:751
msgid "Unknown status"
msgstr ""
@@ -159,11 +159,11 @@ msgstr ""
msgid "You can't delete your own domain"
msgstr ""
#: admin/api/v2/viewsets.py:392
#: admin/api/v2/viewsets.py:407
msgid "No alarm ID provided"
msgstr ""
#: admin/api/v2/viewsets.py:396
#: admin/api/v2/viewsets.py:411
msgid "Received invalid alarm id(s)"
msgstr ""
@@ -428,12 +428,12 @@ msgstr ""
msgid "Invalid IP address format for {domain}; {addr}"
msgstr ""
#: admin/lib.py:340
#: admin/lib.py:360
#, python-format
msgid "Object already exists: %s"
msgstr ""
#: admin/lib.py:344
#: admin/lib.py:364
#, python-format
msgid "%d objects imported successfully"
msgstr ""
@@ -582,7 +582,7 @@ msgid "Key length"
msgstr ""
#: admin/models/domain.py:321 admin/models/domain_alias.py:70
#: core/models.py:353 relaydomains/lib.py:13
#: core/models.py:352 relaydomains/lib.py:13
msgid "Invalid line"
msgstr ""
@@ -778,7 +778,7 @@ msgstr ""
msgid "Allow domain administrators to manage user calendars (read and write)"
msgstr ""
#: calendars/app_settings.py:60 core/app_settings.py:579
#: calendars/app_settings.py:60 core/app_settings.py:676
#: rspamd/app_settings.py:45
msgid "Miscellaneous"
msgstr ""
@@ -879,7 +879,7 @@ msgstr ""
msgid "Failed TFA settings editing attempt from '%s' as user '%s'"
msgstr ""
#: core/api/v1/serializers.py:91 core/api/v2/serializers.py:415
#: core/api/v1/serializers.py:91 core/api/v2/serializers.py:425
msgid "Invalid password"
msgstr ""
@@ -891,24 +891,24 @@ msgstr ""
msgid "Local"
msgstr ""
#: core/api/v2/serializers.py:165 core/app_settings.py:17
#: core/api/v2/serializers.py:175 core/app_settings.py:17
msgid "User profile"
msgstr ""
#: core/api/v2/serializers.py:184 core/api/v2/serializers.py:191
#: core/api/v2/serializers.py:198
#: core/api/v2/serializers.py:194 core/api/v2/serializers.py:201
#: core/api/v2/serializers.py:208
msgid "Invalid syntax"
msgstr ""
#: core/api/v2/serializers.py:203
#: core/api/v2/serializers.py:213
msgid "Invalid rounds number"
msgstr ""
#: core/api/v2/serializers.py:403 core/forms.py:81
#: core/api/v2/serializers.py:413 core/forms.py:81
msgid "This code is invalid"
msgstr ""
#: core/api/v2/serializers.py:473 core/views/auth.py:194 core/views/auth.py:247
#: core/api/v2/serializers.py:483 core/views/auth.py:194 core/views/auth.py:247
msgid "Please use the following code to recover your Modoboa password: {}"
msgstr ""
@@ -983,410 +983,502 @@ msgstr ""
msgid "Length of randomly generated passwords."
msgstr ""
#: core/app_settings.py:102
#: core/app_settings.py:103
msgid "Allow special characters for random password"
msgstr ""
#: core/app_settings.py:106
msgid "Enable special characters in randomly generated passwords."
msgstr ""
#: core/app_settings.py:114
msgid "Update password service URL"
msgstr ""
#: core/app_settings.py:104
#: core/app_settings.py:116
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:114
#: core/app_settings.py:126
msgid "Password recovery announcement"
msgstr ""
#: core/app_settings.py:116
#: core/app_settings.py:128
msgid "A temporary message that will be displayed on the reset password page."
msgstr ""
#: core/app_settings.py:125
#: core/app_settings.py:137
msgid "Enable password recovery by SMS"
msgstr ""
#: core/app_settings.py:128
#: core/app_settings.py:140
msgid "Enable password recovery by SMS for users who filled a phone number."
msgstr ""
#: core/app_settings.py:136
#: core/app_settings.py:148
msgid "SMS provider"
msgstr ""
#: core/app_settings.py:139
#: core/app_settings.py:151
msgid "Choose a provider to send password recovery SMS"
msgstr ""
#: core/app_settings.py:151
#: core/app_settings.py:163
msgid "LDAP"
msgstr ""
#: core/app_settings.py:157 sievefilters/app_settings.py:18
#: core/app_settings.py:169 sievefilters/app_settings.py:18
#: sievefilters/app_settings.py:51 webmail/app_settings.py:36
#: webmail/app_settings.py:73
msgid "Server address"
msgstr ""
#: core/app_settings.py:159
#: core/app_settings.py:171
msgid "The IP address or the DNS name of the LDAP server"
msgstr ""
#: core/app_settings.py:166 sievefilters/app_settings.py:25
#: core/app_settings.py:178 sievefilters/app_settings.py:25
#: sievefilters/app_settings.py:67 webmail/app_settings.py:54
#: webmail/app_settings.py:91
msgid "Server port"
msgstr ""
#: core/app_settings.py:168
#: core/app_settings.py:180
msgid "The TCP port number used by the LDAP server"
msgstr ""
#: core/app_settings.py:176
#: core/app_settings.py:188
msgid "Enable secondary server (fallback)"
msgstr ""
#: core/app_settings.py:179
#: core/app_settings.py:191
msgid ""
"Enable a secondary LDAP server which will be used if the primary one fails"
msgstr ""
#: core/app_settings.py:187
#: core/app_settings.py:199
msgid "Secondary server address"
msgstr ""
#: core/app_settings.py:190
#: core/app_settings.py:202
msgid "The IP address or the DNS name of the seondary LDAP server"
msgstr ""
#: core/app_settings.py:197
#: core/app_settings.py:209
msgid "Secondary server port"
msgstr ""
#: core/app_settings.py:200
#: core/app_settings.py:212
msgid "The TCP port number used by the LDAP secondary server"
msgstr ""
#: core/app_settings.py:207 sievefilters/app_settings.py:58
#: core/app_settings.py:219 sievefilters/app_settings.py:58
#: webmail/app_settings.py:45
msgid "Use a secured connection"
msgstr ""
#: core/app_settings.py:209
#: core/app_settings.py:221
msgid "Use an SSL/STARTTLS connection to access the LDAP server"
msgstr ""
#: core/app_settings.py:216
#: core/app_settings.py:228
msgid "Active Directory"
msgstr ""
#: core/app_settings.py:218
#: core/app_settings.py:230
msgid "Tell if the LDAP server is an Active Directory one"
msgstr ""
#: core/app_settings.py:225
#: core/app_settings.py:237
msgid "Administrator groups"
msgstr ""
#: core/app_settings.py:227
#: core/app_settings.py:239
msgid ""
"Members of those LDAP Posix groups will be created as domain administrators. "
"Use ';' characters to separate groups."
msgstr ""
#: core/app_settings.py:236
#: core/app_settings.py:248
msgid "Group type"
msgstr ""
#: core/app_settings.py:238
#: core/app_settings.py:250
msgid "The LDAP group type to use with your directory."
msgstr ""
#: core/app_settings.py:245
#: core/app_settings.py:257
msgid "Groups search base"
msgstr ""
#: core/app_settings.py:247
#: core/app_settings.py:259
msgid "The distinguished name of the search base used to find groups"
msgstr ""
#: core/app_settings.py:255
#: core/app_settings.py:267
msgid "Password attribute"
msgstr ""
#: core/app_settings.py:257
#: core/app_settings.py:269
msgid "The attribute used to store user passwords"
msgstr ""
#: core/app_settings.py:264
#: core/app_settings.py:276
msgid "LDAP authentication settings"
msgstr ""
#: core/app_settings.py:272
#: core/app_settings.py:284
msgid "Authentication method"
msgstr ""
#: core/app_settings.py:275
#: core/app_settings.py:287
msgid "Choose the authentication method to use"
msgstr ""
#: core/app_settings.py:282 core/app_settings.py:345
#: core/app_settings.py:294 core/app_settings.py:357
msgid "Bind DN"
msgstr ""
#: core/app_settings.py:284 core/app_settings.py:347
#: core/app_settings.py:296 core/app_settings.py:359
msgid ""
"The distinguished name to use when binding to the LDAP server. Leave empty "
"for an anonymous bind"
msgstr ""
#: core/app_settings.py:293 core/app_settings.py:355
#: core/app_settings.py:305 core/app_settings.py:367
msgid "Bind password"
msgstr ""
#: core/app_settings.py:295 core/app_settings.py:357
#: core/app_settings.py:307 core/app_settings.py:369
msgid "The password to use when binding to the LDAP server (with 'Bind DN')"
msgstr ""
#: core/app_settings.py:305 core/app_settings.py:410
#: core/app_settings.py:317 core/app_settings.py:422
msgid "Users search base"
msgstr ""
#: core/app_settings.py:307 core/app_settings.py:412
#: core/app_settings.py:319 core/app_settings.py:424
msgid "The distinguished name of the search base used to find users"
msgstr ""
#: core/app_settings.py:316 core/app_settings.py:421
#: core/app_settings.py:328 core/app_settings.py:433
msgid "Search filter"
msgstr ""
#: core/app_settings.py:318 core/app_settings.py:423
#: core/app_settings.py:330 core/app_settings.py:435
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:327
#: core/app_settings.py:339
msgid "User DN template"
msgstr ""
#: core/app_settings.py:329
#: core/app_settings.py:341
#, 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:338
#: core/app_settings.py:350
msgid "LDAP synchronization settings"
msgstr ""
#: core/app_settings.py:366
#: core/app_settings.py:378
msgid "Enable export to LDAP"
msgstr ""
#: core/app_settings.py:368
#: core/app_settings.py:380
msgid ""
"Enable automatic synchronization between local database and LDAP directory"
msgstr ""
#: core/app_settings.py:377
#: core/app_settings.py:389
msgid "Delete remote LDAP account when local account is deleted"
msgstr ""
#: core/app_settings.py:380
#: core/app_settings.py:392
msgid ""
"Delete remote LDAP account when local account is deleted, otherwise it will "
"be disabled."
msgstr ""
#: core/app_settings.py:389
#: core/app_settings.py:401
msgid "Account DN template"
msgstr ""
#: core/app_settings.py:391
#: core/app_settings.py:403
#, 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:400
#: core/app_settings.py:412
msgid "Enable import from LDAP"
msgstr ""
#: core/app_settings.py:402
#: core/app_settings.py:414
msgid "Enable account synchronization from LDAP directory to local database"
msgstr ""
#: core/app_settings.py:432
#: core/app_settings.py:444
msgid "Username attribute"
msgstr ""
#: core/app_settings.py:434
#: core/app_settings.py:446
msgid "The name of the LDAP attribute where the username can be found."
msgstr ""
#: core/app_settings.py:443
#: core/app_settings.py:455
msgid "Enable Dovecot LDAP sync"
msgstr ""
#: core/app_settings.py:445
#: core/app_settings.py:457
msgid "LDAP authentication settings will be applied to Dovecot configuration."
msgstr ""
#: core/app_settings.py:453
#: core/app_settings.py:465
msgid "Dovecot LDAP config file"
msgstr ""
#: core/app_settings.py:455
#: core/app_settings.py:467
msgid ""
"Location of the configuration file which contains Dovecot LDAP settings."
msgstr ""
#: core/app_settings.py:468
#: core/app_settings.py:480
msgid "Dashboard"
msgstr ""
#: core/app_settings.py:474
#: core/app_settings.py:486
msgid "Custom welcome message"
msgstr ""
#: core/app_settings.py:488
msgid "A welcome message that will be displayed instead the default one"
msgstr ""
#: core/app_settings.py:495
msgid "Custom RSS feed"
msgstr ""
#: core/app_settings.py:476
#: core/app_settings.py:497
msgid "Display custom RSS feed to resellers and domain administrators"
msgstr ""
#: core/app_settings.py:484
msgid "Hide features widget"
msgstr ""
#: core/app_settings.py:486
msgid "Hide features widget for resellers and domain administrators"
msgstr ""
#: core/app_settings.py:498
msgid "Notifications"
msgstr ""
#: core/app_settings.py:504
msgid "Sender address"
msgstr ""
#: core/app_settings.py:506
msgid "Email address used to send notifications."
msgid "Display custom RSS feed to super admins"
msgstr ""
#: core/app_settings.py:509
msgid "Display custom RSS feed also to super administrators"
msgstr ""
#: core/app_settings.py:517
msgid "Hide features widget"
msgstr ""
#: core/app_settings.py:519
msgid "Hide features widget for resellers and domain administrators"
msgstr ""
#: core/app_settings.py:531
msgid "Theme"
msgstr ""
#: core/app_settings.py:537
msgid "Primary theme color"
msgstr ""
#: core/app_settings.py:539
msgid ""
"Primary color of the theme (hexadecimal code), used as the background color "
"of the left menu for example"
msgstr ""
#: core/app_settings.py:548
msgid "Primary theme color (lighter version)"
msgstr ""
#: core/app_settings.py:551 core/app_settings.py:563
msgid "Primary color of the theme (hexadecimal code)"
msgstr ""
#: core/app_settings.py:560
msgid "Primary theme color (darker version)"
msgstr ""
#: core/app_settings.py:571
msgid "Secondary theme color"
msgstr ""
#: core/app_settings.py:573
msgid ""
"Secondary color of the theme (hexadecimal code), used as the background "
"color of some buttons for example"
msgstr ""
#: core/app_settings.py:581
msgid "Labels theme color"
msgstr ""
#: core/app_settings.py:583
msgid "Theme color for labels (hexadecimal code)"
msgstr ""
#: core/app_settings.py:595
msgid "Notifications"
msgstr ""
#: core/app_settings.py:601
msgid "Sender address"
msgstr ""
#: core/app_settings.py:603
msgid "Email address used to send notifications."
msgstr ""
#: core/app_settings.py:614
msgid "Public API"
msgstr ""
#: core/app_settings.py:523
#: core/app_settings.py:620
msgid "Enable communication"
msgstr ""
#: core/app_settings.py:525 core/app_settings.py:535
#: core/app_settings.py:622 core/app_settings.py:632
msgid "Automatically checks if a newer version is available"
msgstr ""
#: core/app_settings.py:532
#: core/app_settings.py:629
msgid "Check new versions"
msgstr ""
#: core/app_settings.py:543
#: core/app_settings.py:640
msgid "Send an email when new versions are found"
msgstr ""
#: core/app_settings.py:547
#: core/app_settings.py:644
msgid "Send an email to notify admins about new versions"
msgstr ""
#: core/app_settings.py:554 sievefilters/constants.py:25
#: core/app_settings.py:651 sievefilters/constants.py:25
msgid "Recipient"
msgstr ""
#: core/app_settings.py:557
#: core/app_settings.py:654
msgid "Recipient of new versions notification emails."
msgstr ""
#: core/app_settings.py:564
#: core/app_settings.py:661
msgid "Send statistics"
msgstr ""
#: core/app_settings.py:567
#: core/app_settings.py:664
msgid "Send statistics to Modoboa public API (counters and used extensions)"
msgstr ""
#: core/app_settings.py:586
#: core/app_settings.py:683
msgid "Enable inactive account tracking"
msgstr ""
#: core/app_settings.py:589
#: core/app_settings.py:686
msgid ""
"Allow the administrator to set a threshold (in days) beyond which an account "
"is considered inactive if the user hasn't logged in"
msgstr ""
#: core/app_settings.py:598
#: core/app_settings.py:695
msgid "Inactive account threshold"
msgstr ""
#: core/app_settings.py:601
#: core/app_settings.py:698
msgid ""
"An account with a last login date greater than this threshold (in days) will "
"be considered as inactive"
msgstr ""
#: core/app_settings.py:610
#: core/app_settings.py:707
msgid "Top notifications check interval"
msgstr ""
#: core/app_settings.py:613
#: core/app_settings.py:710
msgid "Interval between two top notification checks (in seconds)"
msgstr ""
#: core/app_settings.py:620
#: core/app_settings.py:717
msgid "Maximum log record age"
msgstr ""
#: core/app_settings.py:622
#: core/app_settings.py:719
msgid "The maximum age in days of a log record"
msgstr ""
#: core/app_settings.py:629
#: core/app_settings.py:726
msgid "Items per page"
msgstr ""
#: core/app_settings.py:631
#: core/app_settings.py:728
msgid "Number of displayed items per page"
msgstr ""
#: core/app_settings.py:638
#: core/app_settings.py:735
msgid "Default top redirection"
msgstr ""
#: core/app_settings.py:640
#: core/app_settings.py:737
msgid "The default redirection used when no application is specified"
msgstr ""
#: core/checks.py:13
#: core/checks.py:15
msgid ""
"You have USE_TZ set to False, this may result in issues during transitions "
"between summer/winter time (ie the same local time occuring twice due to "
"clock change)."
msgstr ""
#: core/checks.py:17
#: core/checks.py:19
msgid "Set `USE_TZ = True` in settings.py"
msgstr ""
#: core/checks.py:21
#: core/checks.py:23
msgid "The password scheme you are using is deprecated."
msgstr ""
#: core/checks.py:22
#: core/checks.py:24
msgid "Upgrade your password scheme to a stronger one"
msgstr ""
#: core/checks.py:30
msgid ""
"Oauth2 application for dovecot has not been found. Webmail and some other "
"features won't be available."
msgstr ""
#: core/checks.py:34
msgid ""
"Visit : https://modoboa.readthedocs.io/en/latest/manual_installation/dovecot."
"html#dovecot-oauth2"
msgstr ""
#: core/checks.py:41
msgid ""
"Oauth2 application for radicale has not been found. Calendar and some other "
"features won't be available."
msgstr ""
#: core/checks.py:45
msgid ""
"Visit : https://modoboa.readthedocs.io/en/latest/manual_installation/"
"radicale.html#radicale-oauth2"
msgstr ""
#: core/constants.py:6
msgid "Simple user"
msgstr ""
@@ -1478,61 +1570,61 @@ msgstr ""
msgid "[modoboa] Update(s) available"
msgstr ""
#: core/models.py:72
#: core/models.py:71
msgid "Allow mailboxes access"
msgstr ""
#: core/models.py:74
#: core/models.py:73
msgid "Allow this administrator to access user mailboxes"
msgstr ""
#: core/models.py:76
#: core/models.py:75
msgid "password"
msgstr ""
#: core/models.py:79
#: core/models.py:78
msgid "language"
msgstr ""
#: core/models.py:83
#: core/models.py:82
msgid "Prefered language to display pages."
msgstr ""
#: core/models.py:85
#: core/models.py:84
msgid "Phone number"
msgstr ""
#: core/models.py:87
#: core/models.py:86
msgid "Secondary email"
msgstr ""
#: core/models.py:92
#: core/models.py:91
msgid "An alternative e-mail address, can be used for recovery needs."
msgstr ""
#: core/models.py:151
#: core/models.py:150
#, fuzzy
#| msgid "Failed to update LDAP account: {}"
msgid "Failed to update password: LDAP module not installed"
msgstr "无法更新LDAP帐户: {}"
#: core/models.py:186 policyd/core.py:117
#: core/models.py:185 policyd/core.py:117
msgid "account"
msgstr ""
#: core/models.py:318
#: core/models.py:317
msgid "Unknown"
msgstr ""
#: core/models.py:361
#: core/models.py:360
msgid "You can't import an account with a role greater than yours"
msgstr ""
#: core/models.py:376
#: core/models.py:375
msgid "The simple user '{}' must have a valid email address"
msgstr ""
#: core/models.py:384
#: core/models.py:383
msgid "username and email fields must not differ for '{}'"
msgstr ""
@@ -1854,7 +1946,7 @@ msgstr ""
msgid "IMAP Migration"
msgstr ""
#: imap_migration/auth_backends.py:49 webmail/lib/imaputils.py:241
#: imap_migration/auth_backends.py:49 webmail/lib/imaputils.py:240
#, python-brace-format
msgid "Connection to IMAP server failed: {error}"
msgstr ""
@@ -1886,21 +1978,21 @@ msgstr "无法删除LDAP帐户: {}"
msgid "Failed to disable LDAP account: {}"
msgstr "无法关闭LDAP帐户: {}"
#: lib/api_client.py:35 lib/api_client.py:69 lib/api_client.py:83
#: lib/api_client.py:87
#: lib/api_client.py:35 lib/api_client.py:67 lib/api_client.py:81
#: lib/api_client.py:85
#, python-format
msgid "Failed to communicate with public API: %s"
msgstr ""
#: lib/email_utils.py:139 lib/email_utils.py:350
#: lib/email_utils.py:140 lib/email_utils.py:351
msgid "unable to determine encoding of string"
msgstr ""
#: lib/exceptions.py:85
#: lib/exceptions.py:83
msgid "Permission denied: {}"
msgstr ""
#: lib/exceptions.py:86
#: lib/exceptions.py:84
msgid "Permission denied"
msgstr ""
@@ -2590,11 +2682,11 @@ msgstr ""
msgid "Stop processing"
msgstr ""
#: sievefilters/lib.py:51
#: sievefilters/lib.py:49
msgid "Connection to MANAGESIEVE server failed, check your configuration"
msgstr ""
#: sievefilters/lib.py:78
#: sievefilters/lib.py:76
msgid "Not enough space on server"
msgstr ""
@@ -2896,7 +2988,7 @@ msgstr ""
msgid "User defined email signature"
msgstr ""
#: webmail/lib/attachments.py:113
#: webmail/lib/attachments.py:112
#, fuzzy
#| msgid "Failed to create LDAP account: {}"
msgid "Failed to remove attachment: "
@@ -2906,7 +2998,7 @@ msgstr "无法创建LDAP帐户: {}"
msgid "Date"
msgstr ""
#: webmail/lib/imaputils.py:222
#: webmail/lib/imaputils.py:221
msgid "Failed to retrieve hierarchy delimiter"
msgstr ""
File diff suppressed because it is too large Load Diff