account; loginname; password; first name; last name; enabled; group; "
@@ -1014,41 +1168,41 @@ msgstr ""
"obligatorio y debe ser igual a uno de los valores anteriores. p> Puede "
"utilizar un carácter diferente como separador. p>"
-#: templates/admin/importform.html:6
+#: admin/templates/admin/importform.html:6
msgid "Help"
msgstr "Ayuda"
-#: templates/admin/importform.html:13
+#: admin/templates/admin/importform.html:13
msgid "Importing..."
msgstr "Importando..."
-#: templates/admin/index.html:6
+#: admin/templates/admin/index.html:6
msgid "Admin"
msgstr "Administrador"
-#: templates/admin/mailboxes_raw.html:3
+#: admin/templates/admin/mailboxes_raw.html:3
msgid "Choose a value"
msgstr "Elija un valor"
-#: templates/admin/mailform.html:7
+#: admin/templates/admin/mailform.html:7
msgid "Use domain default value"
msgstr "Usar el valor por defecto del dominio"
-#: templates/admin/mx_domain_detail.html:11
+#: admin/templates/admin/mx_domain_detail.html:11
msgid "Updated"
msgstr "Actualizado"
-#: templates/admin/mx_domain_detail.html:23
+#: admin/templates/admin/mx_domain_detail.html:23
msgid "This IP does not match any of the valid MXs defined in parameters"
msgstr ""
"Esta IP no coincide con ninguno de los registros MX válidos definidos en los "
"parámetros"
-#: templates/admin/mx_domain_detail.html:36
+#: admin/templates/admin/mx_domain_detail.html:36
msgid "No MX record found for this domain."
msgstr "No se encontró ningún registro MX para este dominio."
-#: templates/admin/notifications/domain_in_dnsbl.html:3
+#: admin/templates/admin/notifications/domain_in_dnsbl.html:3
#, python-format
msgid ""
"Modoboa detected that domain %(domain)s is listed by the following DNSBL "
@@ -1057,7 +1211,7 @@ msgstr ""
"Modoboa detectó que el(los) dominio(s) %(domain)s está(n) listado(s) por los "
"siguientes proveedores DNSBL:"
-#: templates/admin/notifications/domain_in_dnsbl.html:11
+#: admin/templates/admin/notifications/domain_in_dnsbl.html:11
msgid ""
"The domain's reputation will be affected and there is a chance that emails "
"coming from it are considered as spam. You should contact those providers "
@@ -1068,142 +1222,143 @@ msgstr ""
"Debe comunicarse con estos proveedores y pedirles que elimine la(s) "
"dirección(es) IP detectada(s)."
-#: templates/admin/notifications/domain_invalid_mx.html:3
+#: admin/templates/admin/notifications/domain_invalid_mx.html:3
#, python-format
msgid "Modoboa detected that domain %(domain)s has no valid MX record:"
msgstr ""
"Modoboa detectó que el(los) dominio(s) %(domain)s está(n) listado(s) por los "
"siguientes proveedores DNSBL:"
-#: templates/admin/searchform.html:6
+#: admin/templates/admin/searchform.html:6
msgid "Search"
msgstr "Buscar"
-#: templatetags/admin_tags.py:22
+#: admin/templatetags/admin_tags.py:22
msgid "enabled_m"
msgstr "Activado"
-#: templatetags/admin_tags.py:22
+#: admin/templatetags/admin_tags.py:22
msgid "enabled_f"
msgstr "Activado"
-#: templatetags/admin_tags.py:48
+#: admin/templatetags/admin_tags.py:48
msgid "List domains"
msgstr "Listar dominios"
-#: templatetags/admin_tags.py:53 templatetags/admin_tags.py:108
+#: admin/templatetags/admin_tags.py:53 admin/templatetags/admin_tags.py:108
msgid "List quotas"
msgstr "Listar cuotas"
-#: templatetags/admin_tags.py:65 templatetags/admin_tags.py:113
-#: views/import_.py:101 views/import_.py:123
+#: admin/templatetags/admin_tags.py:65 admin/templatetags/admin_tags.py:113
+#: admin/views/import_.py:89 admin/views/import_.py:111
msgid "Import"
msgstr "Importar"
-#: templatetags/admin_tags.py:71 templatetags/admin_tags.py:119
-#: views/export.py:44 views/export.py:74
+#: admin/templatetags/admin_tags.py:71 admin/templatetags/admin_tags.py:119
+#: admin/views/export.py:43 admin/views/export.py:71
msgid "Export"
msgstr "Exportar"
-#: templatetags/admin_tags.py:103
+#: admin/templatetags/admin_tags.py:103
msgid "List identities"
msgstr "Listar identidades"
-#: templatetags/admin_tags.py:138
+#: admin/templatetags/admin_tags.py:138
msgid "View the domain's identities"
msgstr "Ver las identidades del dominio"
-#: templatetags/admin_tags.py:144 templatetags/admin_tags.py:187
-#: templatetags/admin_tags.py:200
+#: admin/templatetags/admin_tags.py:144 admin/templatetags/admin_tags.py:187
+#: admin/templatetags/admin_tags.py:200
msgid "Edit {}"
msgstr "Editar {}"
-#: templatetags/admin_tags.py:154 templatetags/admin_tags.py:191
-#: templatetags/admin_tags.py:205
+#: admin/templatetags/admin_tags.py:154 admin/templatetags/admin_tags.py:191
+#: admin/templatetags/admin_tags.py:205
#, python-format
msgid "Delete %s?"
msgstr "¿Eliminar %s?"
-#: views/alias.py:35
+#: admin/views/alias.py:35
msgid "Alias with this name already exists"
msgstr "Ya existe un alias con este nombre"
-#: views/alias.py:60
+#: admin/views/alias.py:60
msgid "Create"
msgstr "Crear"
-#: views/alias.py:72
+#: admin/views/alias.py:72
msgid "New alias"
msgstr "Nuevo alias"
-#: views/alias.py:73
+#: admin/views/alias.py:73
msgid "Alias created"
msgstr "Alias creado"
-#: views/alias.py:85
+#: admin/views/alias.py:85
msgid "Alias modified"
msgstr "Alias modificado"
-#: views/alias.py:109
+#: admin/views/alias.py:109
msgid "Alias deleted"
msgid_plural "Aliases deleted"
msgstr[0] "Alias eliminado"
msgstr[1] "Aliases eliminados"
-#: views/dns.py:32
+#: admin/views/dns.py:32
msgid "MX records of {}"
msgstr "Registros MX de {}"
-#: views/dns.py:55
+#: admin/views/dns.py:55
msgid "DNSBL summary for {}"
msgstr "Resumen de DNSBL para {}"
-#: views/domain.py:190
+#: admin/views/domain.py:188
msgid "You can't delete your own domain"
msgstr "No puedo eliminar su propio dominio"
-#: views/domain.py:193
+#: admin/views/domain.py:191
msgid "Domain deleted"
msgid_plural "Domains deleted"
msgstr[0] "Dominio eliminado"
msgstr[1] "Dominios eliminados"
-#: views/export.py:43
+#: admin/views/export.py:42
msgid "Export identities"
msgstr "Exportar identidades"
-#: views/export.py:73
+#: admin/views/export.py:70
msgid "Export domains"
msgstr "Exportar dominios"
-#: views/identity.py:113 views/identity.py:206 views/identity.py:211
+#: admin/views/identity.py:113 admin/views/identity.py:206
+#: admin/views/identity.py:211
msgid "Invalid request"
msgstr "Petición inválida"
-#: views/identity.py:196
+#: admin/views/identity.py:196
msgid "Account deleted"
msgid_plural "Accounts deleted"
msgstr[0] "Cuenta eliminada"
msgstr[1] "Cuentas eliminadas"
-#: views/import_.py:77
+#: admin/views/import_.py:65
#, python-format
msgid "Object already exists: %s"
msgstr "El objeto ya existe: %s"
-#: views/import_.py:81
+#: admin/views/import_.py:69
#, python-format
msgid "%d objects imported successfully"
msgstr "%d objetos importados con éxito"
-#: views/import_.py:100
+#: admin/views/import_.py:88
msgid "Import domains"
msgstr "Importar dominios"
-#: views/import_.py:122
+#: admin/views/import_.py:110
msgid "Import identities"
msgstr "Importar identidades"
-#: views/user.py:40
+#: admin/views/user.py:40
msgid "Forward updated"
msgstr "Reenvío actualizado"
diff --git a/modoboa/admin/locale/fr/LC_MESSAGES/django.po b/modoboa/admin/locale/fr/LC_MESSAGES/django.po
index 19e1e0244..2c6e804ae 100644
--- a/modoboa/admin/locale/fr/LC_MESSAGES/django.po
+++ b/modoboa/admin/locale/fr/LC_MESSAGES/django.po
@@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-12-03 12:51+0100\n"
-"PO-Revision-Date: 2017-12-03 12:52+0100\n"
+"POT-Creation-Date: 2018-01-25 09:09+0100\n"
+"PO-Revision-Date: 2018-01-25 09:18+0100\n"
"Last-Translator: Antoine Nguyen \n"
"Language-Team: French (http://www.transifex.com/tonio/modoboa/language/fr/)\n"
"Language: fr\n"
@@ -18,25 +18,25 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-#: app_settings.py:20 handlers.py:269
-#: templates/admin/_global_statistics_widget.html:11
-#: templates/admin/domains.html:4
+#: admin/app_settings.py:22 admin/handlers.py:269
+#: admin/templates/admin/_global_statistics_widget.html:11
+#: admin/templates/admin/domains.html:5
msgid "Domains"
msgstr "Domaines"
-#: app_settings.py:23
+#: admin/app_settings.py:25
msgid "Enable MX checks"
msgstr "Activer la vérification des MX"
-#: app_settings.py:26
+#: admin/app_settings.py:28
msgid "Check that every domain has a valid MX record"
msgstr "Vérifie que chaque domaine a un enregistrement MX valide"
-#: app_settings.py:31
+#: admin/app_settings.py:33
msgid "Valid MXs"
msgstr "MX(s) valide(s)"
-#: app_settings.py:34
+#: admin/app_settings.py:36
msgid ""
"A list of IP or network address every MX record should match. A warning will "
"be sent if a record does not respect it."
@@ -45,11 +45,11 @@ msgstr ""
"respecter. Un avertissement sera envoyé dès qu'un enregistrement ne la "
"respecte pas."
-#: app_settings.py:42
+#: admin/app_settings.py:44
msgid "New domains must use authorized MX(s)"
msgstr "Les nouveaux domaines doivent utiliser un ou plusieurs MX autorisés"
-#: app_settings.py:45
+#: admin/app_settings.py:47
msgid ""
"Prevent the creation of a new domain if its MX record does not use one of "
"the defined addresses."
@@ -57,23 +57,42 @@ msgstr ""
"Empêcher la création d'un domaine s'il n'a pas au moins un MX utilisant une "
"adresse autorisée."
-#: app_settings.py:51
+#: admin/app_settings.py:53
msgid "Enable DNSBL checks"
msgstr "Activer les vérifications DNSBL"
-#: app_settings.py:54
+#: admin/app_settings.py:56
msgid "Check every domain against major DNSBL providers"
msgstr "Vérifie chaque domaine auprès des fournisseurs de DNSBL"
-#: app_settings.py:58 templates/admin/domain_detail.html:49
+#: admin/app_settings.py:61
+msgid "DKIM keys storage directory"
+msgstr "Répertoire de stockage des clés DKIM"
+
+#: admin/app_settings.py:64
+msgid ""
+"Absolute path of the directory where DKIM private keys will be stored. Make "
+"sure this directory belongs to root user and is not readable by the outside "
+"world."
+msgstr "Chemin absolu du répertoire dans lequel seront stockées les clés DKIM. Assurez vous que ce répertoire appartient à l'utilisateur root et qu'il n'est pas lisible par le monde extérieur."
+
+#: admin/app_settings.py:72
+msgid "Default DKIM key length"
+msgstr "Taille par défaut d'une clé DKIM"
+
+#: admin/app_settings.py:76
+msgid "Default length in bits for newly generated DKIM keys."
+msgstr "Taille par défaut en octets des clés DKIM nouvellement générées."
+
+#: admin/app_settings.py:80 admin/templates/admin/domain_detail.html:41
msgid "Mailboxes"
msgstr "Boites"
-#: app_settings.py:61
+#: admin/app_settings.py:83
msgid "Handle mailboxes on filesystem"
msgstr "Gérer les boites sur le système de fichiers"
-#: app_settings.py:64
+#: admin/app_settings.py:86
msgid ""
"Rename or remove mailboxes on the filesystem when they get renamed or "
"removed within Modoboa"
@@ -81,19 +100,19 @@ msgstr ""
"Renommer ou supprimer les boites sur le système de fichiers quand elles sont "
"renommées ou supprimées dans Modoboa"
-#: app_settings.py:70
+#: admin/app_settings.py:92
msgid "Mailboxes owner"
msgstr "Propriétaire des boites"
-#: app_settings.py:73
+#: admin/app_settings.py:95
msgid "The UNIX account who owns mailboxes on the filesystem"
msgstr "Le compte UNIX qui possède les boites sur le système de fichiers"
-#: app_settings.py:78
+#: admin/app_settings.py:100
msgid "Default domain quota"
msgstr "Quota de domaine par défaut"
-#: app_settings.py:81
+#: admin/app_settings.py:103
msgid ""
"Default quota (in MB) applied to freshly created domains with no value "
"specified. A value of 0 means no quota."
@@ -101,11 +120,12 @@ msgstr ""
"Quota par défaut (en Mo) appliqué aux domaines fraichement créés et ne "
"spécifiant pas de valeur. 0 signifie qu'aucun quota ne sera appliqué."
-#: app_settings.py:87 models/domain.py:40 templates/admin/domain_detail.html:72
+#: admin/app_settings.py:109 admin/models/domain.py:40
+#: admin/templates/admin/domain_detail.html:64
msgid "Default mailbox quota"
msgstr "Quota par défaut pour une boîte aux lettres"
-#: app_settings.py:90
+#: admin/app_settings.py:112
msgid ""
"Default mailbox quota (in MB) applied to freshly created domains with no "
"value specified. A value of 0 means no quota."
@@ -113,63 +133,72 @@ msgstr ""
"Quota par défaut pour une boîte aux lettres utilisé pour les domaines "
"nouvellement créés. Une valeur à 0 signifie pas de quota."
-#: app_settings.py:96
+#: admin/app_settings.py:118
msgid "Automatic account removal"
msgstr "Suppression automatique de compte"
-#: app_settings.py:99
+#: admin/app_settings.py:121
msgid "When a mailbox is removed, also remove the associated account"
msgstr ""
"Lorsqu'une boite aux lettres est supprimée, supprimer le compte associé en "
"même temps"
-#: app_settings.py:103
+#: admin/app_settings.py:125
msgid "Automatic domain/mailbox creation"
msgstr "Création automatique de domaine/boite aux lettres"
-#: app_settings.py:106
+#: admin/app_settings.py:128
msgid "Create a domain and a mailbox when an account is automatically created."
msgstr ""
"Créer un domaine et une boite aux lettres quand un compte est créé "
"automatiquement."
-#: app_settings.py:112
+#: admin/app_settings.py:134
msgid "Create an alias when a mailbox is renamed"
msgstr "Créer un alias quand une boite aux lettres est renommée"
-#: app_settings.py:115
+#: admin/app_settings.py:137
msgid "Create an alias using the old address when a mailbox is renamed."
msgstr ""
"Créer un alias en utilisant l'ancienne adresse quand une boite aux lettres "
"est renommée."
-#: app_settings.py:164 app_settings.py:172 forms/account.py:331
+#: admin/app_settings.py:186 admin/app_settings.py:194
+#: admin/forms/account.py:331
msgid "Must be a positive integer"
msgstr "Doit être un entier positif"
-#: app_settings.py:186
+#: admin/app_settings.py:204
+msgid "Directory not found."
+msgstr "Répertoire introuvable."
+
+#: admin/app_settings.py:210
+msgid "openssl not found, please make sure it is installed."
+msgstr "impossible de trouver openssl, veuillez vous assurer vous qu'il est installé."
+
+#: admin/app_settings.py:224
msgid "Define at least one authorized network / address"
msgstr "Définissez au moins un réseau / une adresse autorisé"
-#: app_settings.py:196
+#: admin/app_settings.py:234
msgid "Administration"
msgstr "Administration"
-#: constants.py:99 forms/alias.py:49
-#: templates/admin/_per_domain_statistics_widget.html:7
-#: templates/admin/domains_quota_headers.html:2
+#: admin/constants.py:99 admin/forms/alias.py:49
+#: admin/templates/admin/_per_domain_statistics_widget.html:7
+#: admin/templates/admin/domains_quota_headers.html:2
msgid "Domain"
msgstr "Domaine"
-#: constants.py:100
+#: admin/constants.py:100
msgid "Relay domain"
msgstr "Domaine relais"
-#: forms/account.py:38 templates/admin/domain_detail.html:101
+#: admin/forms/account.py:38 admin/templates/admin/domain_detail.html:120
msgid "Username"
msgstr "Nom d'utilisateur"
-#: forms/account.py:40
+#: admin/forms/account.py:40
msgid ""
"The user's name. Must be a valid e-mail address for simple users or "
"administrators with a mailbox."
@@ -177,23 +206,23 @@ msgstr ""
"Le nom de l'utilisateur. Doit être une adresse e-mail valide pour les "
"utilisateurs simples ou les administrateurs avec une boite aux lettres."
-#: forms/account.py:45 templates/admin/account_detail.html:29
+#: admin/forms/account.py:45 admin/templates/admin/account_detail.html:29
msgid "Role"
msgstr "Rôle"
-#: forms/account.py:46
+#: admin/forms/account.py:46
msgid "Choose"
msgstr "Choisir"
-#: forms/account.py:47
+#: admin/forms/account.py:47
msgid "What level of permission this user will have"
msgstr "Quel niveau de permission cet utilisateur aura"
-#: forms/account.py:50 forms/domain.py:208
+#: admin/forms/account.py:50 admin/forms/domain.py:227
msgid "Random password"
msgstr "Mot de passe aléatoire"
-#: forms/account.py:52
+#: admin/forms/account.py:52
msgid ""
"Generate a random password. If you're updating this account and check this "
"box, a new password will be generated."
@@ -201,53 +230,54 @@ msgstr ""
"Générer un mot de passe aléatoire. Si vous modifiez ce compte et cochez "
"cette case, un nouveau mot de passe sera généré."
-#: forms/account.py:58
+#: admin/forms/account.py:58
msgid "Password"
msgstr "Mot de passe"
-#: forms/account.py:63
+#: admin/forms/account.py:63
msgid "Confirmation"
msgstr "Confirmation"
-#: forms/account.py:66
+#: admin/forms/account.py:66
msgid "Enter the same password as above, for verification."
msgstr "Entrer le même mot de passe, pour vérification."
-#: forms/account.py:78
+#: admin/forms/account.py:78
msgid "Enabled"
msgstr "Activé"
-#: forms/account.py:172
+#: admin/forms/account.py:172
msgid "Only super administrators are allowed for this mode"
msgstr "Seuls les super administrateurs sont autorisés pour ce mode"
-#: forms/account.py:183 forms/account.py:185 forms/domain.py:254
-#: forms/domain.py:257 serializers.py:241
+#: admin/forms/account.py:183 admin/forms/account.py:185
+#: admin/forms/domain.py:144 admin/forms/domain.py:273
+#: admin/forms/domain.py:276 admin/serializers.py:241
msgid "This field is required."
msgstr "Ce champ est requis."
-#: forms/account.py:191
+#: admin/forms/account.py:191
msgid "The two password fields didn't match."
msgstr "Les deux mots de passe ne correspondent pas."
-#: forms/account.py:204
+#: admin/forms/account.py:204
msgid "You can't disable your own account"
msgstr "Vous ne pouvez pas désactiver votre propre compte"
-#: forms/account.py:225
+#: admin/forms/account.py:225
msgid "E-mail"
msgstr "E-mail"
-#: forms/account.py:227
+#: admin/forms/account.py:227
msgid "Create an alias using the old address"
msgstr "Créer un alias en utilisant l'ancienne adresse"
-#: forms/account.py:232 templates/admin/account_detail.html:45
-#: templates/admin/domain_detail.html:57
+#: admin/forms/account.py:232 admin/templates/admin/account_detail.html:45
+#: admin/templates/admin/domain_detail.html:49
msgid "Quota"
msgstr "Quota"
-#: forms/account.py:234
+#: admin/forms/account.py:234
msgid ""
"Quota in MB for this mailbox. Define a custom value or use domain's default "
"one. Leave empty to define an unlimited value (not allowed for domain "
@@ -257,12 +287,12 @@ msgstr ""
"valeur par défaut du domaine. Laisser vide pour définir une valeur illimitée "
"(interdit pour les admins. de domaine)."
-#: forms/account.py:242 forms/domain.py:39
-#: templates/admin/domain_headers.html:4
+#: admin/forms/account.py:242 admin/forms/domain.py:39
+#: admin/templates/admin/domain_headers.html:4
msgid "Alias(es)"
msgstr "Alias"
-#: forms/account.py:245
+#: admin/forms/account.py:245
msgid ""
"Alias(es) of this mailbox. Indicate only one address per input, press ENTER "
"to add a new input. To create a catchall alias, just enter the domain name "
@@ -272,11 +302,11 @@ msgstr ""
"sur ENTREE pour ajouter un nouveau champ. Pour créer un alias 'fourre-tout', "
"entrer seulement le nom du domaine (@domain.tld)."
-#: forms/account.py:251
+#: admin/forms/account.py:251
msgid "Sender addresses"
msgstr "Adresses d'envoi"
-#: forms/account.py:254
+#: admin/forms/account.py:254
msgid ""
"Additional sender address(es) for this account. The user will be allowed to "
"send emails using this address, even if it does not exist locally. Indicate "
@@ -287,64 +317,66 @@ msgstr ""
"même si elle(s) n'existe(nt) pas localement. Indiquer une adresse par champ. "
"Appuyer sur ENTREE pour ajouter un nouveau champ."
-#: forms/account.py:309 forms/alias.py:94 models/mailbox.py:315
+#: admin/forms/account.py:309 admin/forms/alias.py:94
+#: admin/models/mailbox.py:315
msgid "Domain does not exist"
msgstr "Domaine inexistant"
-#: forms/account.py:341
+#: admin/forms/account.py:341
msgid "Local domain does not exist"
msgstr "Le domaine local n'existe pas"
-#: forms/account.py:345 forms/account.py:353 forms/alias.py:97
+#: admin/forms/account.py:345 admin/forms/account.py:353
+#: admin/forms/alias.py:97
msgid "You don't have access to this domain"
msgstr "Vous n'avez pas accès à ce domaine"
-#: forms/account.py:452
+#: admin/forms/account.py:452
msgid "Domain(s)"
msgstr "Domaine(s)"
-#: forms/account.py:454
+#: admin/forms/account.py:454
msgid "Domain(s) that user administrates"
msgstr "Domaine(s) que cet utilisateur administre"
-#: forms/account.py:500 forms/account.py:590 forms/domain.py:325
-#: forms/domain.py:395
+#: admin/forms/account.py:500 admin/forms/account.py:590
+#: admin/forms/domain.py:344 admin/forms/domain.py:414
msgid "General"
msgstr "Général"
-#: forms/account.py:504
+#: admin/forms/account.py:504
msgid "Profile"
msgstr "Profil"
-#: forms/account.py:508 forms/account.py:596
+#: admin/forms/account.py:508 admin/forms/account.py:596
msgid "Mail"
msgstr "Courrier"
-#: forms/account.py:511
+#: admin/forms/account.py:511
msgid "Permissions"
msgstr "Permissions"
-#: forms/account.py:579
+#: admin/forms/account.py:579
msgid "Account updated"
msgstr "Compte mis à jour"
-#: forms/account.py:604
+#: admin/forms/account.py:604
msgid "New account"
msgstr "Nouveau compte"
-#: forms/account.py:616
+#: admin/forms/account.py:614
msgid "Account created"
msgstr "Compte créé"
-#: forms/alias.py:26
+#: admin/forms/alias.py:26
msgid "Random address"
msgstr "Adresse aléatoire"
-#: forms/alias.py:29
+#: admin/forms/alias.py:29
msgid "Email address"
msgstr "Adresse email"
-#: forms/alias.py:31
+#: admin/forms/alias.py:31
msgid ""
"The alias address. To create a catchall alias, just enter the domain name "
"(@domain.tld)."
@@ -352,11 +384,11 @@ msgstr ""
"L'adresse de l'alias. Pour créer un alias \"fourre-tout\", saisissez "
"uniquement le nom du domaine (@domain.tld)."
-#: forms/alias.py:37 templates/admin/alias_detail.html:37
+#: admin/forms/alias.py:37 admin/templates/admin/alias_detail.html:37
msgid "Recipients"
msgstr "Destinataires"
-#: forms/alias.py:39
+#: admin/forms/alias.py:39
msgid ""
"Addresses this alias will point to. Indicate only one address per input, "
"press ENTER to add a new input."
@@ -364,19 +396,20 @@ msgstr ""
"Les adresses vers lesquelles cet alias pointera. Indiquer une adresse par "
"champ, appuyer sur ENTREE pour ajouter un nouveau champ."
-#: forms/alias.py:114 forms/alias.py:116
+#: admin/forms/alias.py:114 admin/forms/alias.py:116
msgid "This field is required"
msgstr "Ce champ est requis."
-#: forms/alias.py:120
+#: admin/forms/alias.py:120
msgid "No recipient defined"
msgstr "Aucune destinataire défini"
-#: forms/domain.py:36 templates/admin/_global_statistics_widget.html:7
+#: admin/forms/domain.py:36
+#: admin/templates/admin/_global_statistics_widget.html:7
msgid "Type"
msgstr "Type"
-#: forms/domain.py:42
+#: admin/forms/domain.py:42
msgid ""
"Alias(es) of this domain. Indicate only one name per input, press ENTER to "
"add a new input."
@@ -384,47 +417,55 @@ msgstr ""
"Alias de ce domaine. Indiquer seulement un nom par champ, appuyer sur ENTREE "
"pour ajouter un nouveau champ."
-#: forms/domain.py:81 handlers.py:171
+#: admin/forms/domain.py:47
+msgid "Key selector"
+msgstr "Sélecteur de clé"
+
+#: admin/forms/domain.py:85 admin/handlers.py:171
msgid "domain alias"
msgstr "alias de domaine"
-#: forms/domain.py:84 forms/domain.py:136 forms/domain.py:144
+#: admin/forms/domain.py:88 admin/forms/domain.py:155 admin/forms/domain.py:163
#, python-format
msgid "A %s with this name already exists"
msgstr "Un %s de ce nom existe déjà"
-#: forms/domain.py:92 serializers.py:45
+#: admin/forms/domain.py:96 admin/serializers.py:45
msgid "No authorized MX record found for this domain"
msgstr "Aucun enregistrement MX autorisé trouvé pour ce domaine"
-#: forms/domain.py:114 serializers.py:55
+#: admin/forms/domain.py:108
+msgid "DKIM keys storage directory not configured"
+msgstr "Répertoire de stockage des clés DKIM non configuré"
+
+#: admin/forms/domain.py:129 admin/serializers.py:55
msgid "Cannot be greater than domain quota"
msgstr "Ne peut pas être supérieur au quota du domaine"
-#: forms/domain.py:119
+#: admin/forms/domain.py:134
msgid "You can't define an unlimited quota."
msgstr "Vous ne pouvez pas définir de quota illimité"
-#: forms/domain.py:136 forms/domain.py:141
+#: admin/forms/domain.py:155 admin/forms/domain.py:160
msgid "domain"
msgstr "domaine"
-#: forms/domain.py:190
+#: admin/forms/domain.py:209
msgid "Create a domain administrator"
msgstr "Créer un administrateur de domaine"
-#: forms/domain.py:193
+#: admin/forms/domain.py:212
msgid "Automatically create an administrator for this domain"
msgstr "Créer automatiquement un administrateur pour ce domaine"
-#: forms/domain.py:198 templates/admin/domain_detail.html:101
-#: templates/admin/domain_headers.html:3
-#: templates/admin/identity_headers.html:2
-#: templates/admin/mx_domain_detail.html:9
+#: admin/forms/domain.py:217 admin/templates/admin/domain_detail.html:120
+#: admin/templates/admin/domain_headers.html:3
+#: admin/templates/admin/identity_headers.html:2
+#: admin/templates/admin/mx_domain_detail.html:9
msgid "Name"
msgstr "Nom"
-#: forms/domain.py:201
+#: admin/forms/domain.py:220
msgid ""
"The administrator's name. Don't include the domain's name here, it will be "
"automatically appended."
@@ -432,554 +473,653 @@ msgstr ""
"Le nom de l'administrateur. Ne pas include un nom de domaine ici, il sera "
"ajouté automatiquement."
-#: forms/domain.py:211
+#: admin/forms/domain.py:230
msgid "Generate a random password for the administrator."
msgstr "Générer un mot de passe aléatoire pour cet administrateur."
-#: forms/domain.py:217
+#: admin/forms/domain.py:236
msgid "With a mailbox"
msgstr "Avec une boite aux lettres"
-#: forms/domain.py:220
+#: admin/forms/domain.py:239
msgid "Create a mailbox for the administrator."
msgstr "Créer une boite aux lettres pour l'administrateur"
-#: forms/domain.py:226
+#: admin/forms/domain.py:245
msgid "Create aliases"
msgstr "Créer des alias"
-#: forms/domain.py:229
+#: admin/forms/domain.py:248
msgid "Automatically create standard aliases for this domain"
msgstr "Créer automatiquement des alias standard pour ce domaine"
-#: forms/domain.py:245
+#: admin/forms/domain.py:264
msgid "Invalid format"
msgstr "Format invalide"
-#: forms/domain.py:274
+#: admin/forms/domain.py:293
#, python-format
msgid "User '%s' already exists"
msgstr "L'utilisateur '%s' existe déjà"
-#: forms/domain.py:385
+#: admin/forms/domain.py:404
msgid "Domain modified"
msgstr "Domaine modifié"
-#: forms/domain.py:406
+#: admin/forms/domain.py:425
msgid "Options"
msgstr "Options"
-#: forms/domain.py:414
+#: admin/forms/domain.py:433
msgid "New domain"
msgstr "Nouveau domaine"
-#: forms/domain.py:427
+#: admin/forms/domain.py:446
msgid "Domain created"
msgstr "Domaine créé"
-#: forms/export.py:9
+#: admin/forms/export.py:9
msgid "File name"
msgstr "Nom du fichier"
-#: forms/export.py:15 forms/import_.py:15
+#: admin/forms/export.py:15 admin/forms/import_.py:15
msgid "Separator"
msgstr "Séparateur"
-#: forms/forward.py:14
+#: admin/forms/forward.py:14
msgid "Recipient(s)"
msgstr "Destinataire(s)"
-#: forms/forward.py:18
+#: admin/forms/forward.py:18
msgid "Indicate one or more recipients separated by a ','"
msgstr "Indiquer un ou plusieurs destinataires séparés par une ','"
-#: forms/forward.py:21
+#: admin/forms/forward.py:21
msgid "Keep local copies"
msgstr "Conserver des copies locales"
-#: forms/forward.py:24
+#: admin/forms/forward.py:24
msgid "Forward messages and store copies into your local mailbox"
msgstr "Transférer les messages et conserver une copie dans votre boite locale"
-#: forms/import_.py:13
+#: admin/forms/import_.py:13
msgid "Select a file"
msgstr "Sélectionner un fichier"
-#: forms/import_.py:21
+#: admin/forms/import_.py:21
msgid "Continue on error"
msgstr "Continuer en cas d'erreur"
-#: forms/import_.py:22
+#: admin/forms/import_.py:22
msgid "Don't treat duplicated objects as error"
msgstr "Ne pas traiter les objets dupliqués comme des erreurs"
-#: forms/import_.py:40
+#: admin/forms/import_.py:40
msgid "Crypt passwords"
msgstr "Chiffrer les mots de passe"
-#: forms/import_.py:42
+#: admin/forms/import_.py:42
msgid "Check this option if passwords contained in your file are not crypted"
msgstr ""
"Cocher cette option si les mots de passe contenus dans votre fichier ne sont "
"pas chiffrés"
-#: handlers.py:218
+#: admin/handlers.py:218
#, python-format
msgid "Account import failed (%s): domain does not exist"
msgstr "L'import du compte a échoué (%s): le domaine n'existe pas"
-#: handlers.py:231 models/mailbox.py:342
+#: admin/handlers.py:231 admin/models/mailbox.py:342
msgid "Mailbox {} already exists"
msgstr "La boite {} existe déjà"
-#: handlers.py:239
+#: admin/handlers.py:239
#, python-format
msgid "Account import failed (%s): wrong quota value"
msgstr "L'import du compte a échoué (%s): mauvais quota"
-#: handlers.py:279 templates/admin/_global_statistics_widget.html:17
-#: templates/admin/_per_domain_statistics_widget.html:8
-#: templates/admin/identities.html:5
+#: admin/handlers.py:279
+#: admin/templates/admin/_global_statistics_widget.html:17
+#: admin/templates/admin/_per_domain_statistics_widget.html:8
+#: admin/templates/admin/identities.html:5
msgid "Identities"
msgstr "Identités"
-#: handlers.py:295 templates/admin/forward.html:2
+#: admin/handlers.py:295 admin/templates/admin/forward.html:2
msgid "Forward"
msgstr "Transfert"
-#: lib.py:41
+#: admin/lib.py:44
msgid "A mailbox is required"
msgstr "Une boite aux lettres est requise"
-#: lib.py:131
+#: admin/lib.py:134
msgid "You are not allowed to import domains"
msgstr "Vous n'êtes pas autorisé à importer des domaines"
-#: lib.py:142
+#: admin/lib.py:145
msgid "You are not allowed to import domain aliases."
msgstr "Vous n'êtes pas autorisé à importer des alias de domaine."
-#: management/commands/subcommands/_mx.py:125
+#: admin/lib.py:183 admin/tests/test_mx.py:122
+#, python-format
+msgid "No DNS records found for %s"
+msgstr "Aucun enregistrement DNS trouvé pour %s."
+
+#: admin/lib.py:185 admin/tests/test_mx.py:125
+#, python-format
+msgid "No MX record for %s"
+msgstr "Aucun enregistrement MX trouvé pour %s"
+
+#: admin/lib.py:187 admin/tests/test_mx.py:126
+msgid "No working name servers found"
+msgstr "Aucun serveur de noms fonctionnel trouvé"
+
+#: admin/lib.py:190 admin/tests/test_mx.py:128
+#, python-format
+msgid "DNS resolution timeout, unable to query %s at the moment"
+msgstr "Timeout de résolution DNS, impossible de requêter %s pour l'instant"
+
+#: admin/lib.py:201 admin/tests/test_mx.py:131
+#, python-format
+msgid "Unable to lookup ip addresses for %(domain)s; %(error)s"
+msgstr "Impossible de chercher des adresses IP pour %(domain)s; %(error)s"
+
+#: admin/lib.py:212 admin/tests/test_mx.py:134
+#, python-format
+msgid "Invalid IP address format for %(domain)s; %(addr)s"
+msgstr "Format d'adresse IP incorrect pour %(domain)s; %(addr)s"
+
+#: admin/management/commands/subcommands/_mx.py:136
msgid "[modoboa] DNSBL issue(s) for domain {}"
msgstr "[modoboa] Problème(s) DNSBL pour le domaine {}"
-#: management/commands/subcommands/_mx.py:145
+#: admin/management/commands/subcommands/_mx.py:156
msgid "Domain {} has no MX record"
msgstr "Le domaine {} n'a pas d'enregistrement MX"
-#: management/commands/subcommands/_mx.py:156
+#: admin/management/commands/subcommands/_mx.py:167
#, python-brace-format
msgid "MX record for domain {0} is invalid: {1}"
msgstr "Enregistrement MX invalide pour le domaine {0} : {1}"
-#: management/commands/subcommands/_mx.py:173
+#: admin/management/commands/subcommands/_mx.py:184
msgid "[modoboa] MX issue(s) for domain {}"
msgstr "[modoboa] problème(s) de MX pour le domaine {}"
-#: models/alias.py:35 models/mailbox.py:97
+#: admin/models/alias.py:35 admin/models/mailbox.py:97
msgid "address"
msgstr "Adresse"
-#: models/alias.py:37
+#: admin/models/alias.py:37
msgid "The alias address."
msgstr "L'adresse de l'alias"
-#: models/alias.py:42 models/domain.py:48 models/domain_alias.py:46
+#: admin/models/alias.py:42 admin/models/domain.py:48
+#: admin/models/domain_alias.py:47
msgid "enabled"
msgstr "Activé"
-#: models/alias.py:43 models/domain_alias.py:47
+#: admin/models/alias.py:43 admin/models/domain_alias.py:48
msgid "Check to activate this alias"
msgstr "Cocher pour activer cet alias"
-#: models/alias.py:48 templates/admin/alias_detail.html:32
+#: admin/models/alias.py:48 admin/templates/admin/alias_detail.html:32
msgid "Description"
msgstr "Description"
-#: models/alias.py:50 templates/admin/alias_detail.html:29
+#: admin/models/alias.py:50 admin/templates/admin/alias_detail.html:29
msgid "Expire at"
msgstr "Expire le"
-#: models/alias.py:93
+#: admin/models/alias.py:93
msgid "alias"
msgstr "alias"
-#: models/alias.py:125
+#: admin/models/alias.py:125
msgid "Invalid address"
msgstr "Adresse invalide"
-#: models/alias.py:146
+#: admin/models/alias.py:146
msgid "Local recipient {}@{} not found"
msgstr "Destinataire local {}@{} introuvable"
-#: models/alias.py:176
+#: admin/models/alias.py:176
#, python-format
msgid "Invalid line: %s"
msgstr "Ligne invalide : %s"
-#: models/alias.py:182
+#: admin/models/alias.py:182
#, python-format
msgid "Domain '%s' does not exist"
msgstr "Domaine '%s' inexistant"
-#: models/domain.py:30 models/domain_alias.py:39
+#: admin/models/domain.py:30 admin/models/domain_alias.py:39
msgid "name"
msgstr "Nom"
-#: models/domain.py:31
+#: admin/models/domain.py:31
msgid "The domain name"
msgstr "Le nom du domaine"
-#: models/domain.py:35
+#: admin/models/domain.py:35
msgid "Quota in MB shared between mailboxes. A value of 0 means no quota."
msgstr ""
"Quota en Mo partagé entre les boîtes aux lettres. Une valeur à 0 signifie "
"pas de quota."
-#: models/domain.py:43
+#: admin/models/domain.py:43
msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota."
msgstr ""
"Quota par défaut en Mo appliqué aux boîtes aux lettres. Une valeur à 0 "
"signifie pas de quota."
-#: models/domain.py:49
+#: admin/models/domain.py:49
msgid "Check to activate this domain"
msgstr "Cocher pour activer ce domaine"
-#: models/domain.py:54
+#: admin/models/domain.py:54
msgid "Enable DNS checks"
msgstr "Activer les tests DNS"
-#: models/domain.py:55
+#: admin/models/domain.py:55
msgid "Check to enable DNS checks for this domain"
msgstr "Cocher pour activer les tests DNS pour ce domaine"
-#: models/domain.py:253 models/domain_alias.py:73
+#: admin/models/domain.py:62
+msgid "Enable DKIM signing"
+msgstr "Activer la signature DKIM"
+
+#: admin/models/domain.py:64
+msgid ""
+"If you activate this feature, a DKIM key will be generated for this domain."
+msgstr "Si vous activez cette fonctionnalité, une clé DKIM sera générée pour ce domain."
+
+#: admin/models/domain.py:70
+msgid "Key length"
+msgstr "Taille de la clé"
+
+#: admin/models/domain.py:285 admin/models/domain_alias.py:74
msgid "Invalid line"
msgstr "Ligne invalide"
-#: models/domain.py:263
+#: admin/models/domain.py:295
msgid "No authorized MX record found for domain {}"
msgstr "Aucun enregistrement MX autorisé trouvé pour le domaine {}"
-#: models/domain.py:270
+#: admin/models/domain.py:302
msgid "Invalid quota value for domain '{}'"
msgstr "Quota invalide pour le domaine '{}'"
-#: models/domain.py:277
+#: admin/models/domain.py:309
msgid "Invalid default mailbox quota value for domain '{}'"
msgstr ""
"Quota par défaut pour une boîte aux lettres invalide pour le domaine '{}'"
-#: models/domain.py:282
+#: admin/models/domain.py:314
msgid "Default mailbox quota cannot be greater than domain quota"
msgstr ""
"Le quota par défaut d'une boîte aux lettres ne peut pas être supérieur au "
"quota du domaine"
-#: models/domain_alias.py:40
+#: admin/models/domain_alias.py:40
msgid "The alias name"
msgstr "Le nom de l'alias"
-#: models/domain_alias.py:42
+#: admin/models/domain_alias.py:42
msgid "target"
msgstr "cible"
-#: models/domain_alias.py:43
+#: admin/models/domain_alias.py:43
msgid "The domain this alias points to"
msgstr "Le domaine vers lequel cet alias pointe"
-#: models/domain_alias.py:82
+#: admin/models/domain_alias.py:83
#, python-format
msgid "Unknown domain %s"
msgstr "Domaine %s inconnu"
-#: models/mailbox.py:99
+#: admin/models/mailbox.py:99
msgid "Mailbox address (without the @domain.tld part)"
msgstr "Adresse de la boite aux lettres (sans la partie @domain.tld)"
-#: models/mailbox.py:165
+#: admin/models/mailbox.py:165
#, python-format
msgid "Failed to retrieve mailbox location (%s)"
msgstr "Impossible de récuperer l'emplacement de la boite (%s)"
-#: models/mailbox.py:258
+#: admin/models/mailbox.py:258
msgid "A quota is required"
msgstr "Un quota est requis"
-#: models/mailbox.py:264
+#: admin/models/mailbox.py:264
msgid "Domain quota exceeded"
msgstr "Quota du domaine dépassé"
-#: serializers.py:80 serializers.py:266 serializers.py:360
+#: admin/serializers.py:80 admin/serializers.py:266 admin/serializers.py:360
msgid "Permission denied."
msgstr "Permission refusée."
-#: serializers.py:118
+#: admin/serializers.py:118
msgid ""
"List of administered domains (resellers and domain administrators only)."
msgstr ""
"Liste des domaines administrés (revendeurs et administrateurs de domaine "
"seulement)."
-#: serializers.py:218
+#: admin/serializers.py:218
msgid "Not allowed for this role."
msgstr "Non autorisé pour ce rôle."
-#: serializers.py:228
+#: admin/serializers.py:228
msgid "Must be equal to mailbox full_address"
msgstr "Doit être égale au champ full_address dans mailbox"
-#: serializers.py:253
+#: admin/serializers.py:253
msgid "Local domain {} does not exist"
msgstr "Le domaine local {} n'existe pas"
-#: serializers.py:347
+#: admin/serializers.py:347
msgid "A list of recipient"
msgstr "Une liste de destinataire"
-#: serializers.py:358
+#: admin/serializers.py:358
msgid "Domain not found."
msgstr "Domaine introuvable."
-#: templates/admin/_domain_dnschecks_status.html:4
+#: admin/serializers.py:407
+msgid "You don't have access to this domain."
+msgstr "Vous n'avez pas accès à ce domaine."
+
+#: admin/serializers.py:415
+msgid "You don't have access to this mailbox."
+msgstr "Vous n'avez pas accès à cette boîtes aux lettres."
+
+#: admin/templates/admin/_domain_dkim_key.html:6
+#: admin/templates/admin/_domain_dkim_key.html:20
+msgid "Close"
+msgstr "Fermer"
+
+#: admin/templates/admin/_domain_dkim_key.html:7
+#, python-format
+msgid "DKIM public key for %(domain)s"
+msgstr "Clé publique DKIM pour %(domain)s"
+
+#: admin/templates/admin/_domain_dkim_key.html:11
+msgid "Raw format"
+msgstr "Format brut"
+
+#: admin/templates/admin/_domain_dkim_key.html:15
+msgid "Bind/named format"
+msgstr "Format Bind/named"
+
+#: admin/templates/admin/_domain_dnschecks_status.html:4
msgctxt "checks"
msgid "Disabled"
msgstr "Désactivés"
-#: templates/admin/_domain_dnschecks_status.html:6
+#: admin/templates/admin/_domain_dnschecks_status.html:6
msgid "Awaiting checks"
msgstr "En attente de vérification"
-#: templates/admin/_global_statistics_widget.html:4
+#: admin/templates/admin/_global_statistics_widget.html:4
msgid "Global statistics"
msgstr "Statistiques globales"
-#: templates/admin/_global_statistics_widget.html:8
+#: admin/templates/admin/_global_statistics_widget.html:8
msgid "Quantity"
msgstr "Quantité"
-#: templates/admin/_global_statistics_widget.html:14
-#: templates/admin/domain_detail.html:45 templates/admin/domain_detail.html:81
+#: admin/templates/admin/_global_statistics_widget.html:14
+#: admin/templates/admin/domain_detail.html:37
+#: admin/templates/admin/domain_detail.html:73
msgid "Domain aliases"
msgstr "Alias de domaine"
-#: templates/admin/_per_domain_statistics_widget.html:4
+#: admin/templates/admin/_per_domain_statistics_widget.html:4
msgid "Per-domain statistics"
msgstr "Statistiques par domaine"
-#: templates/admin/account_detail.html:16 templates/admin/alias_detail.html:16
-#: templates/admin/domain_detail.html:19
-#: templates/admin/identities_table.html:7
+#: admin/templates/admin/account_detail.html:16
+#: admin/templates/admin/alias_detail.html:16
+#: admin/templates/admin/domain_detail.html:19
+#: admin/templates/admin/identities_table.html:7
msgid "(disabled)"
msgstr "(désactivé)"
-#: templates/admin/account_detail.html:22 templates/admin/alias_detail.html:22
-#: templates/admin/domain_detail.html:25
+#: admin/templates/admin/account_detail.html:22
+#: admin/templates/admin/alias_detail.html:22
+#: admin/templates/admin/domain_detail.html:25
msgid "Summary"
msgstr "Résumé"
-#: templates/admin/account_detail.html:26
+#: admin/templates/admin/account_detail.html:26
msgid "Full name"
msgstr "Nom complet"
-#: templates/admin/account_detail.html:32 templates/admin/alias_detail.html:26
+#: admin/templates/admin/account_detail.html:32
+#: admin/templates/admin/alias_detail.html:26
msgid "Created"
msgstr "Créé"
-#: templates/admin/account_detail.html:35
+#: admin/templates/admin/account_detail.html:35
msgid "Last login"
msgstr "Dernière connexion"
-#: templates/admin/account_detail.html:38
+#: admin/templates/admin/account_detail.html:38
msgid "Secondary email"
msgstr "E-mail secondaire"
-#: templates/admin/account_detail.html:38
-#: templates/admin/account_detail.html:41
+#: admin/templates/admin/account_detail.html:38
+#: admin/templates/admin/account_detail.html:41
msgid "Not defined"
msgstr "Non défini"
-#: templates/admin/account_detail.html:41
+#: admin/templates/admin/account_detail.html:41
msgid "Phone number"
msgstr "Numéro de téléphone"
-#: templates/admin/account_detail.html:55
+#: admin/templates/admin/account_detail.html:55
msgid "Administered domains"
msgstr "Domaines gérés"
-#: templates/admin/account_detail.html:61
+#: admin/templates/admin/account_detail.html:61
msgid "No domain defined."
msgstr "Aucun domaine défini."
-#: templates/admin/account_detail.html:75
+#: admin/templates/admin/account_detail.html:75
msgid "Aliases"
msgstr "Alias"
-#: templates/admin/account_detail.html:81
+#: admin/templates/admin/account_detail.html:81
msgid "No alias defined"
msgstr "Aucun alias défini"
-#: templates/admin/account_detail.html:87
+#: admin/templates/admin/account_detail.html:87
msgid "Additional sender addresses"
msgstr "Adresses d'envoi supplémentaires"
-#: templates/admin/account_detail.html:93
+#: admin/templates/admin/account_detail.html:93
msgid "No sender address defined"
msgstr "Aucune adresse d'envoi déclarée"
-#: templates/admin/account_general_form.html:12
-#: templates/admin/aliasform.html:13
+#: admin/templates/admin/account_general_form.html:12
+#: admin/templates/admin/aliasform.html:13
msgid "Domain is disabled"
msgstr "Le domaine est désactivé"
-#: templates/admin/alias_detail.html:16 templates/admin/identities.html:33
+#: admin/templates/admin/alias_detail.html:16
+#: admin/templates/admin/identities.html:33
msgid "Alias"
msgstr "Alias"
-#: templates/admin/alias_detail.html:27
+#: admin/templates/admin/alias_detail.html:27
msgid "Modified"
msgstr "Modifié"
-#: templates/admin/dnsbl_domain_detail.html:10
+#: admin/templates/admin/dnsbl_domain_detail.html:10
msgid "Provider"
msgstr "Fournisseur"
-#: templates/admin/dnsbl_domain_detail.html:11
-#: templates/admin/identities_quota_headers.html:2
-#: templates/admin/mx_domain_detail.html:10
+#: admin/templates/admin/dnsbl_domain_detail.html:11
+#: admin/templates/admin/identities_quota_headers.html:2
+#: admin/templates/admin/mx_domain_detail.html:10
msgid "Address"
msgstr "Adresse"
-#: templates/admin/dnsbl_domain_detail.html:12
+#: admin/templates/admin/dnsbl_domain_detail.html:12
+#: admin/templates/admin/domain_detail.html:96
msgid "Status"
msgstr "Statut"
-#: templates/admin/dnsbl_domain_detail.html:21
+#: admin/templates/admin/dnsbl_domain_detail.html:21
msgid "listed"
msgstr "listé"
-#: templates/admin/dnsbl_domain_detail.html:29
+#: admin/templates/admin/dnsbl_domain_detail.html:29
msgid "Everything is fine, this domain is not listed."
msgstr "Tout va bien, ce domaine n'est pas listé."
-#: templates/admin/dnsbl_domain_detail.html:32
+#: admin/templates/admin/dnsbl_domain_detail.html:32
msgid "No information available for this domain."
msgstr "Aucune information disponible pour ce domaine."
-#: templates/admin/domain_detail.html:30 templates/admin/domain_headers.html:7
-msgid "DNS status"
-msgstr "Statut DNS"
-
-#: templates/admin/domain_detail.html:37
+#: admin/templates/admin/domain_detail.html:29
msgid "Creation date"
msgstr "Date de création"
-#: templates/admin/domain_detail.html:41
+#: admin/templates/admin/domain_detail.html:33
msgid "Last modification date"
msgstr "Date de dernière modification"
-#: templates/admin/domain_detail.html:53
+#: admin/templates/admin/domain_detail.html:45
msgid "Mailbox aliases"
msgstr "Alias de boite."
-#: templates/admin/domain_detail.html:58 templates/admin/domain_detail.html:65
-#: templates/admin/domain_detail.html:66 templates/admin/domain_detail.html:73
-#: templates/admin/domain_general_form.html:4
-#: templates/admin/domain_general_form.html:5
-#: templates/admin/domains_quotas.html:11
-#: templates/admin/domains_quotas.html:12 templates/admin/mailform.html:7
-#: templates/admin/newdomainform.html:3
+#: admin/templates/admin/domain_detail.html:50
+#: admin/templates/admin/domain_detail.html:57
+#: admin/templates/admin/domain_detail.html:58
+#: admin/templates/admin/domain_detail.html:65
+#: admin/templates/admin/domain_general_form.html:4
+#: admin/templates/admin/domain_general_form.html:5
+#: admin/templates/admin/domains_quotas.html:11
+#: admin/templates/admin/domains_quotas.html:12
+#: admin/templates/admin/mailform.html:7
+#: admin/templates/admin/newdomainform.html:3
msgid "MB"
msgstr "Mo"
-#: templates/admin/domain_detail.html:62
+#: admin/templates/admin/domain_detail.html:54
msgid "Usage"
msgstr "Utilisation"
-#: templates/admin/domain_detail.html:65 templates/admin/domains_quotas.html:11
+#: admin/templates/admin/domain_detail.html:57
+#: admin/templates/admin/domains_quotas.html:11
msgctxt "quota"
msgid "used"
msgstr "utilisé"
-#: templates/admin/domain_detail.html:66 templates/admin/domains_quotas.html:12
+#: admin/templates/admin/domain_detail.html:58
+#: admin/templates/admin/domains_quotas.html:12
msgid "allocated"
msgstr "alloué"
-#: templates/admin/domain_detail.html:98
+#: admin/templates/admin/domain_detail.html:91
+msgid "DNS"
+msgstr "DNS"
+
+#: admin/templates/admin/domain_detail.html:103
+msgid "DKIM key"
+msgstr "Clé DKIM"
+
+#: admin/templates/admin/domain_detail.html:107
+msgid "Show key"
+msgstr "Afficher la clé"
+
+#: admin/templates/admin/domain_detail.html:110
+msgid "Not generated"
+msgstr "Non générée"
+
+#: admin/templates/admin/domain_detail.html:117
msgid "Administrators"
msgstr "Administrateurs"
-#: templates/admin/domain_detail.html:110 templatetags/admin_tags.py:268
+#: admin/templates/admin/domain_detail.html:129
+#: admin/templatetags/admin_tags.py:268
msgid "Remove this permission"
msgstr "Supprimer cette permission"
-#: templates/admin/domain_detail.html:115
+#: admin/templates/admin/domain_detail.html:134
msgid "No domain administrator defined yet."
msgstr "Aucun administrateur de domaine défini."
-#: templates/admin/domain_headers.html:5
-#: templates/admin/identity_headers.html:4
+#: admin/templates/admin/domain_headers.html:5
+#: admin/templates/admin/identity_headers.html:4
msgid "Tags"
msgstr "Tags"
-#: templates/admin/domain_headers.html:9
-#: templates/admin/identity_headers.html:5
+#: admin/templates/admin/domain_headers.html:7
+msgid "DNS status"
+msgstr "Statut DNS"
+
+#: admin/templates/admin/domain_headers.html:9
+#: admin/templates/admin/identity_headers.html:5
msgid "Actions"
msgstr "Actions"
-#: templates/admin/domain_options_form.html:10
+#: admin/templates/admin/domain_options_form.html:10
msgid "You can't create a new domain administrator"
msgstr "Vous ne pouvez pas créer de nouvel administrateur de domaine"
-#: templates/admin/domains.html:26 templates/admin/identities.html:29
+#: admin/templates/admin/domains.html:28
+#: admin/templates/admin/identities.html:29
msgid "Add"
msgstr "Ajouter"
-#: templates/admin/domains_quota_headers.html:3
-#: templates/admin/identities_quota_headers.html:4
+#: admin/templates/admin/domains_quota_headers.html:3
+#: admin/templates/admin/identities_quota_headers.html:4
msgid "Limit"
msgstr "Limite"
-#: templates/admin/domains_quota_headers.html:4
+#: admin/templates/admin/domains_quota_headers.html:4
msgid "Used"
msgstr "Utilisé"
-#: templates/admin/domains_quota_headers.html:5
+#: admin/templates/admin/domains_quota_headers.html:5
msgid "Allocated"
msgstr "Alloué"
-#: templates/admin/domains_quota_headers.html:6
-#: templates/admin/identities_quota_headers.html:5
+#: admin/templates/admin/domains_quota_headers.html:6
+#: admin/templates/admin/identities_quota_headers.html:5
#, python-format
msgid "Usage (%%)"
msgstr "Utilisation (%%)"
-#: templates/admin/domains_table.html:5
+#: admin/templates/admin/domains_table.html:5
msgid "disabled"
msgstr "Desactivé"
-#: templates/admin/forward.html:2
+#: admin/templates/admin/forward.html:2
msgid "Automatically forward emails to another address"
msgstr "Transférer automatiquement les messages vers une autre adresse"
-#: templates/admin/forward.html:9 views/alias.py:93
+#: admin/templates/admin/forward.html:9 admin/views/alias.py:93
msgid "Update"
msgstr "Mettre à jour"
-#: templates/admin/identities.html:32
+#: admin/templates/admin/identities.html:32
msgid "Account"
msgstr "Compte"
-#: templates/admin/identities_quota_headers.html:3
+#: admin/templates/admin/identities_quota_headers.html:3
msgid "Value"
msgstr "Valeur"
-#: templates/admin/identity_headers.html:3
+#: admin/templates/admin/identity_headers.html:3
msgid "Fullname/Recipient"
msgstr "Nom complet/Destinataire"
-#: templates/admin/import_domains_form.html:6
+#: admin/templates/admin/import_domains_form.html:6
msgid ""
"Provide a CSV file where lines respect one of the following formats: "
"- domain; name; quota; default mailbox quota; enabled
"
@@ -997,7 +1137,7 @@ msgstr ""
"mandatory and must be equal to one of the previous values.
Vous "
"pouvez utiliser un caractère différent comme séparateur.
"
-#: templates/admin/import_identities_form.html:6
+#: admin/templates/admin/import_identities_form.html:6
msgid ""
"Provide a CSV file where lines respect one of the following formats: "
"- account; loginname; password; first name; last name; enabled; group; "
@@ -1014,41 +1154,41 @@ msgstr ""
"valeurs présentées.
Vous pouvez utiliser un caractère différent en "
"tant que séparateur.
"
-#: templates/admin/importform.html:6
+#: admin/templates/admin/importform.html:6
msgid "Help"
msgstr "Aide"
-#: templates/admin/importform.html:13
+#: admin/templates/admin/importform.html:13
msgid "Importing..."
msgstr "Import en cours..."
-#: templates/admin/index.html:6
+#: admin/templates/admin/index.html:6
msgid "Admin"
msgstr "Admin"
-#: templates/admin/mailboxes_raw.html:3
+#: admin/templates/admin/mailboxes_raw.html:3
msgid "Choose a value"
msgstr "Choisir une valeur"
-#: templates/admin/mailform.html:7
+#: admin/templates/admin/mailform.html:7
msgid "Use domain default value"
msgstr "Utiliser la valeur par défaut du domaine"
-#: templates/admin/mx_domain_detail.html:11
+#: admin/templates/admin/mx_domain_detail.html:11
msgid "Updated"
msgstr "Mis à jour"
-#: templates/admin/mx_domain_detail.html:23
+#: admin/templates/admin/mx_domain_detail.html:23
msgid "This IP does not match any of the valid MXs defined in parameters"
msgstr ""
"Cette IP ne correspond à un aucun des MX valides déclarés dans les "
"paramètres."
-#: templates/admin/mx_domain_detail.html:36
+#: admin/templates/admin/mx_domain_detail.html:36
msgid "No MX record found for this domain."
msgstr "Aucun enregistrement MX trouvé pour ce domaine."
-#: templates/admin/notifications/domain_in_dnsbl.html:3
+#: admin/templates/admin/notifications/domain_in_dnsbl.html:3
#, python-format
msgid ""
"Modoboa detected that domain %(domain)s is listed by the following DNSBL "
@@ -1057,7 +1197,7 @@ msgstr ""
"Modoboa a détecté que le domaine %(domain)s est listé par les fournisseurs "
"de DNSBL suivants :"
-#: templates/admin/notifications/domain_in_dnsbl.html:11
+#: admin/templates/admin/notifications/domain_in_dnsbl.html:11
msgid ""
"The domain's reputation will be affected and there is a chance that emails "
"coming from it are considered as spam. You should contact those providers "
@@ -1067,142 +1207,143 @@ msgstr ""
"venant de lui soient considérés comme du spam. Vous devriez contacter ces "
"fournisseurs pour leur demander de délister la/les adresse(s) détectée(s)."
-#: templates/admin/notifications/domain_invalid_mx.html:3
+#: admin/templates/admin/notifications/domain_invalid_mx.html:3
#, python-format
msgid "Modoboa detected that domain %(domain)s has no valid MX record:"
msgstr ""
"Modoboa a détecté que le domain %(domain)s n'a aucun enregistrement MX "
"valide :"
-#: templates/admin/searchform.html:6
+#: admin/templates/admin/searchform.html:6
msgid "Search"
msgstr "Chercher"
-#: templatetags/admin_tags.py:22
+#: admin/templatetags/admin_tags.py:22
msgid "enabled_m"
msgstr "Activé"
-#: templatetags/admin_tags.py:22
+#: admin/templatetags/admin_tags.py:22
msgid "enabled_f"
msgstr "Activée"
-#: templatetags/admin_tags.py:48
+#: admin/templatetags/admin_tags.py:48
msgid "List domains"
msgstr "Lister les domaines"
-#: templatetags/admin_tags.py:53 templatetags/admin_tags.py:108
+#: admin/templatetags/admin_tags.py:53 admin/templatetags/admin_tags.py:108
msgid "List quotas"
msgstr "Lister les quotas"
-#: templatetags/admin_tags.py:65 templatetags/admin_tags.py:113
-#: views/import_.py:101 views/import_.py:123
+#: admin/templatetags/admin_tags.py:65 admin/templatetags/admin_tags.py:113
+#: admin/views/import_.py:89 admin/views/import_.py:111
msgid "Import"
msgstr "Importer"
-#: templatetags/admin_tags.py:71 templatetags/admin_tags.py:119
-#: views/export.py:44 views/export.py:74
+#: admin/templatetags/admin_tags.py:71 admin/templatetags/admin_tags.py:119
+#: admin/views/export.py:43 admin/views/export.py:71
msgid "Export"
msgstr "Exporter"
-#: templatetags/admin_tags.py:103
+#: admin/templatetags/admin_tags.py:103
msgid "List identities"
msgstr "Lister les identités"
-#: templatetags/admin_tags.py:138
+#: admin/templatetags/admin_tags.py:138
msgid "View the domain's identities"
msgstr "Voir les identités du domaine"
-#: templatetags/admin_tags.py:144 templatetags/admin_tags.py:187
-#: templatetags/admin_tags.py:200
+#: admin/templatetags/admin_tags.py:144 admin/templatetags/admin_tags.py:187
+#: admin/templatetags/admin_tags.py:200
msgid "Edit {}"
msgstr "Modifier {}"
-#: templatetags/admin_tags.py:154 templatetags/admin_tags.py:191
-#: templatetags/admin_tags.py:205
+#: admin/templatetags/admin_tags.py:154 admin/templatetags/admin_tags.py:191
+#: admin/templatetags/admin_tags.py:205
#, python-format
msgid "Delete %s?"
msgstr "Supprimer %s ?"
-#: views/alias.py:35
+#: admin/views/alias.py:35
msgid "Alias with this name already exists"
msgstr "Un alias de ce nom existe déjà"
-#: views/alias.py:60
+#: admin/views/alias.py:60
msgid "Create"
msgstr "Créer"
-#: views/alias.py:72
+#: admin/views/alias.py:72
msgid "New alias"
msgstr "Nouvel alias"
-#: views/alias.py:73
+#: admin/views/alias.py:73
msgid "Alias created"
msgstr "Alias créé"
-#: views/alias.py:85
+#: admin/views/alias.py:85
msgid "Alias modified"
msgstr "Alias modifié"
-#: views/alias.py:109
+#: admin/views/alias.py:109
msgid "Alias deleted"
msgid_plural "Aliases deleted"
msgstr[0] "Alias supprimé"
msgstr[1] "Alias supprimés"
-#: views/dns.py:32
+#: admin/views/dns.py:32
msgid "MX records of {}"
msgstr "Enregistrements MX de {}"
-#: views/dns.py:55
+#: admin/views/dns.py:55
msgid "DNSBL summary for {}"
msgstr "Résumé DNSBL pour {}"
-#: views/domain.py:190
+#: admin/views/domain.py:188
msgid "You can't delete your own domain"
msgstr "Vous ne pouvez pas supprimer votre propre domaine"
-#: views/domain.py:193
+#: admin/views/domain.py:191
msgid "Domain deleted"
msgid_plural "Domains deleted"
msgstr[0] "Domaine supprimé"
msgstr[1] "Domaines supprimés"
-#: views/export.py:43
+#: admin/views/export.py:42
msgid "Export identities"
msgstr "Export d'identités"
-#: views/export.py:73
+#: admin/views/export.py:70
msgid "Export domains"
msgstr "Export de domaines"
-#: views/identity.py:113 views/identity.py:206 views/identity.py:211
+#: admin/views/identity.py:113 admin/views/identity.py:206
+#: admin/views/identity.py:211
msgid "Invalid request"
msgstr "Requête invalide"
-#: views/identity.py:196
+#: admin/views/identity.py:196
msgid "Account deleted"
msgid_plural "Accounts deleted"
msgstr[0] "Compte supprimé"
msgstr[1] "Comptes supprimés"
-#: views/import_.py:77
+#: admin/views/import_.py:65
#, python-format
msgid "Object already exists: %s"
msgstr "L'objet existe déjà : %s"
-#: views/import_.py:81
+#: admin/views/import_.py:69
#, python-format
msgid "%d objects imported successfully"
msgstr "%d objets importés avec succès"
-#: views/import_.py:100
+#: admin/views/import_.py:88
msgid "Import domains"
msgstr "Importer des domaines"
-#: views/import_.py:122
+#: admin/views/import_.py:110
msgid "Import identities"
msgstr "Importer des identités"
-#: views/user.py:40
+#: admin/views/user.py:40
msgid "Forward updated"
msgstr "Transfert mis à jour"
diff --git a/modoboa/admin/locale/it/LC_MESSAGES/django.po b/modoboa/admin/locale/it/LC_MESSAGES/django.po
index 5163f0dd6..cc8a1bad8 100644
--- a/modoboa/admin/locale/it/LC_MESSAGES/django.po
+++ b/modoboa/admin/locale/it/LC_MESSAGES/django.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-12-03 12:51+0100\n"
+"POT-Creation-Date: 2018-01-25 09:09+0100\n"
"PO-Revision-Date: 2015-10-11 11:48+0000\n"
"Last-Translator: Rocco \n"
"Language-Team: Italian (http://www.transifex.com/tonio/modoboa/language/"
@@ -20,57 +20,76 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: app_settings.py:20 handlers.py:269
-#: templates/admin/_global_statistics_widget.html:11
-#: templates/admin/domains.html:4
+#: admin/app_settings.py:22 admin/handlers.py:269
+#: admin/templates/admin/_global_statistics_widget.html:11
+#: admin/templates/admin/domains.html:5
msgid "Domains"
msgstr "Domini"
-#: app_settings.py:23
+#: admin/app_settings.py:25
msgid "Enable MX checks"
msgstr ""
-#: app_settings.py:26
+#: admin/app_settings.py:28
msgid "Check that every domain has a valid MX record"
msgstr ""
-#: app_settings.py:31
+#: admin/app_settings.py:33
msgid "Valid MXs"
msgstr ""
-#: app_settings.py:34
+#: admin/app_settings.py:36
msgid ""
"A list of IP or network address every MX record should match. A warning will "
"be sent if a record does not respect it."
msgstr ""
-#: app_settings.py:42
+#: admin/app_settings.py:44
msgid "New domains must use authorized MX(s)"
msgstr ""
-#: app_settings.py:45
+#: admin/app_settings.py:47
msgid ""
"Prevent the creation of a new domain if its MX record does not use one of "
"the defined addresses."
msgstr ""
-#: app_settings.py:51
+#: admin/app_settings.py:53
msgid "Enable DNSBL checks"
msgstr ""
-#: app_settings.py:54
+#: admin/app_settings.py:56
msgid "Check every domain against major DNSBL providers"
msgstr ""
-#: app_settings.py:58 templates/admin/domain_detail.html:49
+#: admin/app_settings.py:61
+msgid "DKIM keys storage directory"
+msgstr ""
+
+#: admin/app_settings.py:64
+msgid ""
+"Absolute path of the directory where DKIM private keys will be stored. Make "
+"sure this directory belongs to root user and is not readable by the outside "
+"world."
+msgstr ""
+
+#: admin/app_settings.py:72
+msgid "Default DKIM key length"
+msgstr ""
+
+#: admin/app_settings.py:76
+msgid "Default length in bits for newly generated DKIM keys."
+msgstr ""
+
+#: admin/app_settings.py:80 admin/templates/admin/domain_detail.html:41
msgid "Mailboxes"
msgstr "Caselle di posta"
-#: app_settings.py:61
+#: admin/app_settings.py:83
msgid "Handle mailboxes on filesystem"
msgstr "Gestione delle caselle di posta nel filsystem"
-#: app_settings.py:64
+#: admin/app_settings.py:86
msgid ""
"Rename or remove mailboxes on the filesystem when they get renamed or "
"removed within Modoboa"
@@ -78,19 +97,19 @@ msgstr ""
"Rinomina o rimuovi le caselle di posta nel filesystem quando vengono "
"rinominate o cancellate in Modoboa "
-#: app_settings.py:70
+#: admin/app_settings.py:92
msgid "Mailboxes owner"
msgstr "Proprietario delle caselle postali"
-#: app_settings.py:73
+#: admin/app_settings.py:95
msgid "The UNIX account who owns mailboxes on the filesystem"
msgstr "L'account UNIX a cui appartengono le caselle postali nel filsystem"
-#: app_settings.py:78
+#: admin/app_settings.py:100
msgid "Default domain quota"
msgstr "Quota predefinita per il domini"
-#: app_settings.py:81
+#: admin/app_settings.py:103
msgid ""
"Default quota (in MB) applied to freshly created domains with no value "
"specified. A value of 0 means no quota."
@@ -98,13 +117,14 @@ msgstr ""
"Quota predefinita (in MB) applicata ai nuovi domini che non la specificano. "
"Un valore 0 implica nessuna quota."
-#: app_settings.py:87 models/domain.py:40 templates/admin/domain_detail.html:72
+#: admin/app_settings.py:109 admin/models/domain.py:40
+#: admin/templates/admin/domain_detail.html:64
#, fuzzy
#| msgid "Default domain quota"
msgid "Default mailbox quota"
msgstr "Quota predefinita per il domini"
-#: app_settings.py:90
+#: admin/app_settings.py:112
#, fuzzy
#| msgid ""
#| "Default quota (in MB) applied to freshly created domains with no value "
@@ -116,62 +136,73 @@ msgstr ""
"Quota predefinita (in MB) applicata ai nuovi domini che non la specificano. "
"Un valore 0 implica nessuna quota."
-#: app_settings.py:96
+#: admin/app_settings.py:118
msgid "Automatic account removal"
msgstr "Rimozione automatica dell'account"
-#: app_settings.py:99
+#: admin/app_settings.py:121
msgid "When a mailbox is removed, also remove the associated account"
msgstr ""
"Quando una casella postale viene rimossa rimuovi anche l'account associato"
-#: app_settings.py:103
+#: admin/app_settings.py:125
msgid "Automatic domain/mailbox creation"
msgstr "Creazione automatica del domini/casella di posta elettronica"
-#: app_settings.py:106
+#: admin/app_settings.py:128
msgid "Create a domain and a mailbox when an account is automatically created."
msgstr ""
"Crea un dominio ed una casella di posta elettronica quando si crea un "
"account utente"
-#: app_settings.py:112
+#: admin/app_settings.py:134
msgid "Create an alias when a mailbox is renamed"
msgstr ""
-#: app_settings.py:115
+#: admin/app_settings.py:137
msgid "Create an alias using the old address when a mailbox is renamed."
msgstr ""
-#: app_settings.py:164 app_settings.py:172 forms/account.py:331
+#: admin/app_settings.py:186 admin/app_settings.py:194
+#: admin/forms/account.py:331
msgid "Must be a positive integer"
msgstr "Dev'essere un intero positivo"
-#: app_settings.py:186
+#: admin/app_settings.py:204
+#, fuzzy
+#| msgid "Domain modified"
+msgid "Directory not found."
+msgstr "Dominio modificato"
+
+#: admin/app_settings.py:210
+msgid "openssl not found, please make sure it is installed."
+msgstr ""
+
+#: admin/app_settings.py:224
msgid "Define at least one authorized network / address"
msgstr ""
-#: app_settings.py:196
+#: admin/app_settings.py:234
msgid "Administration"
msgstr "Amministrazione"
-#: constants.py:99 forms/alias.py:49
-#: templates/admin/_per_domain_statistics_widget.html:7
-#: templates/admin/domains_quota_headers.html:2
+#: admin/constants.py:99 admin/forms/alias.py:49
+#: admin/templates/admin/_per_domain_statistics_widget.html:7
+#: admin/templates/admin/domains_quota_headers.html:2
msgid "Domain"
msgstr "Dominio"
-#: constants.py:100
+#: admin/constants.py:100
#, fuzzy
#| msgid "New domain"
msgid "Relay domain"
msgstr "Nuovo dominio"
-#: forms/account.py:38 templates/admin/domain_detail.html:101
+#: admin/forms/account.py:38 admin/templates/admin/domain_detail.html:120
msgid "Username"
msgstr "Nome utente"
-#: forms/account.py:40
+#: admin/forms/account.py:40
msgid ""
"The user's name. Must be a valid e-mail address for simple users or "
"administrators with a mailbox."
@@ -179,80 +210,81 @@ msgstr ""
"Il nome dell'utente. Dev'essere un indirizzo e-mail per gli utenti semplici "
"o gli amministratori che posseggono una casella"
-#: forms/account.py:45 templates/admin/account_detail.html:29
+#: admin/forms/account.py:45 admin/templates/admin/account_detail.html:29
msgid "Role"
msgstr "Ruolo"
-#: forms/account.py:46
+#: admin/forms/account.py:46
msgid "Choose"
msgstr "Scegli"
-#: forms/account.py:47
+#: admin/forms/account.py:47
msgid "What level of permission this user will have"
msgstr "Il livello di permessi che avrà questo utente"
-#: forms/account.py:50 forms/domain.py:208
+#: admin/forms/account.py:50 admin/forms/domain.py:227
#, fuzzy
#| msgid "Invalid address"
msgid "Random password"
msgstr "Indirizzo non valido"
-#: forms/account.py:52
+#: admin/forms/account.py:52
msgid ""
"Generate a random password. If you're updating this account and check this "
"box, a new password will be generated."
msgstr ""
-#: forms/account.py:58
+#: admin/forms/account.py:58
msgid "Password"
msgstr "Password"
-#: forms/account.py:63
+#: admin/forms/account.py:63
msgid "Confirmation"
msgstr "Conferma"
-#: forms/account.py:66
+#: admin/forms/account.py:66
msgid "Enter the same password as above, for verification."
msgstr ""
"Inserisci la medesima password che hai inserito sopra, per la verifica."
-#: forms/account.py:78
+#: admin/forms/account.py:78
msgid "Enabled"
msgstr "Abilitato"
-#: forms/account.py:172
+#: admin/forms/account.py:172
msgid "Only super administrators are allowed for this mode"
msgstr "Solo i super amministratori possono operare in questa modalità"
-#: forms/account.py:183 forms/account.py:185 forms/domain.py:254
-#: forms/domain.py:257 serializers.py:241
+#: admin/forms/account.py:183 admin/forms/account.py:185
+#: admin/forms/domain.py:144 admin/forms/domain.py:273
+#: admin/forms/domain.py:276 admin/serializers.py:241
#, fuzzy
#| msgid "A mailbox is required"
msgid "This field is required."
msgstr "É necessaria una casella"
-#: forms/account.py:191
+#: admin/forms/account.py:191
msgid "The two password fields didn't match."
msgstr "Le password nei due campi non corrispondono"
-#: forms/account.py:204
+#: admin/forms/account.py:204
msgid "You can't disable your own account"
msgstr "Tu non puoi disabilitare il tuo account"
-#: forms/account.py:225
+#: admin/forms/account.py:225
msgid "E-mail"
msgstr "E-mail"
-#: forms/account.py:227
+#: admin/forms/account.py:227
msgid "Create an alias using the old address"
msgstr ""
-#: forms/account.py:232 templates/admin/account_detail.html:45
-#: templates/admin/domain_detail.html:57
+#: admin/forms/account.py:232 admin/templates/admin/account_detail.html:45
+#: admin/templates/admin/domain_detail.html:49
msgid "Quota"
msgstr "Quota"
-#: forms/account.py:234
+#: admin/forms/account.py:234
msgid ""
"Quota in MB for this mailbox. Define a custom value or use domain's default "
"one. Leave empty to define an unlimited value (not allowed for domain "
@@ -262,12 +294,12 @@ msgstr ""
"quello predefinito. Lasciare vuoto per non impostare limiti (non consentito "
"per gli amministratori di dominio)."
-#: forms/account.py:242 forms/domain.py:39
-#: templates/admin/domain_headers.html:4
+#: admin/forms/account.py:242 admin/forms/domain.py:39
+#: admin/templates/admin/domain_headers.html:4
msgid "Alias(es)"
msgstr "Alias"
-#: forms/account.py:245
+#: admin/forms/account.py:245
#, fuzzy
#| msgid ""
#| "Alias(es) of this mailbox. Indicate only one address per input, press "
@@ -282,13 +314,13 @@ msgstr ""
"premere INVIO per aggiungere un nuovo elemento. Utilizzare il carattere '*' "
"per creare un alias 'prenditutto' (p.es.: *@dominio.org)."
-#: forms/account.py:251
+#: admin/forms/account.py:251
#, fuzzy
#| msgid "Invalid address"
msgid "Sender addresses"
msgstr "Indirizzo non valido"
-#: forms/account.py:254
+#: admin/forms/account.py:254
#, fuzzy
#| msgid ""
#| "Addresses this alias will point to. Indicate only one address per input, "
@@ -301,68 +333,70 @@ msgstr ""
"Indirizzi verso il quale questo alias punterà . Indicare un solo indirizzo "
"per ogni ingresso , premere INVIO per aggiungere un nuovo input ."
-#: forms/account.py:309 forms/alias.py:94 models/mailbox.py:315
+#: admin/forms/account.py:309 admin/forms/alias.py:94
+#: admin/models/mailbox.py:315
msgid "Domain does not exist"
msgstr "Il dominio non esiste"
-#: forms/account.py:341
+#: admin/forms/account.py:341
#, fuzzy
#| msgid "Domain does not exist"
msgid "Local domain does not exist"
msgstr "Il dominio non esiste"
-#: forms/account.py:345 forms/account.py:353 forms/alias.py:97
+#: admin/forms/account.py:345 admin/forms/account.py:353
+#: admin/forms/alias.py:97
msgid "You don't have access to this domain"
msgstr "Non hai accesso a questo dominio"
-#: forms/account.py:452
+#: admin/forms/account.py:452
msgid "Domain(s)"
msgstr "Dominio(i)"
-#: forms/account.py:454
+#: admin/forms/account.py:454
msgid "Domain(s) that user administrates"
msgstr "Dominio(i) amministrato(i) dall'utente"
-#: forms/account.py:500 forms/account.py:590 forms/domain.py:325
-#: forms/domain.py:395
+#: admin/forms/account.py:500 admin/forms/account.py:590
+#: admin/forms/domain.py:344 admin/forms/domain.py:414
msgid "General"
msgstr "Generale"
-#: forms/account.py:504
+#: admin/forms/account.py:504
msgid "Profile"
msgstr ""
-#: forms/account.py:508 forms/account.py:596
+#: admin/forms/account.py:508 admin/forms/account.py:596
msgid "Mail"
msgstr "Posta"
-#: forms/account.py:511
+#: admin/forms/account.py:511
msgid "Permissions"
msgstr "Permessi"
-#: forms/account.py:579
+#: admin/forms/account.py:579
msgid "Account updated"
msgstr "Account aggiornato"
-#: forms/account.py:604
+#: admin/forms/account.py:604
msgid "New account"
msgstr "Nuovo account"
-#: forms/account.py:616
+#: admin/forms/account.py:614
msgid "Account created"
msgstr "Account creato"
-#: forms/alias.py:26
+#: admin/forms/alias.py:26
#, fuzzy
#| msgid "Invalid address"
msgid "Random address"
msgstr "Indirizzo non valido"
-#: forms/alias.py:29
+#: admin/forms/alias.py:29
msgid "Email address"
msgstr "Indirizzo email"
-#: forms/alias.py:31
+#: admin/forms/alias.py:31
msgid ""
"The alias address. To create a catchall alias, just enter the domain name "
"(@domain.tld)."
@@ -370,11 +404,11 @@ msgstr ""
"Indirizzi email alias. Per creare un alias catchall specifica il nome del "
"dominio (@domain.tld)."
-#: forms/alias.py:37 templates/admin/alias_detail.html:37
+#: admin/forms/alias.py:37 admin/templates/admin/alias_detail.html:37
msgid "Recipients"
msgstr "Destinatari"
-#: forms/alias.py:39
+#: admin/forms/alias.py:39
msgid ""
"Addresses this alias will point to. Indicate only one address per input, "
"press ENTER to add a new input."
@@ -382,21 +416,22 @@ msgstr ""
"Indirizzi verso il quale questo alias punterà . Indicare un solo indirizzo "
"per ogni ingresso , premere INVIO per aggiungere un nuovo input ."
-#: forms/alias.py:114 forms/alias.py:116
+#: admin/forms/alias.py:114 admin/forms/alias.py:116
#, fuzzy
#| msgid "A mailbox is required"
msgid "This field is required"
msgstr "É necessaria una casella"
-#: forms/alias.py:120
+#: admin/forms/alias.py:120
msgid "No recipient defined"
msgstr "Non è stato definito un destinatario"
-#: forms/domain.py:36 templates/admin/_global_statistics_widget.html:7
+#: admin/forms/domain.py:36
+#: admin/templates/admin/_global_statistics_widget.html:7
msgid "Type"
msgstr "Tipo"
-#: forms/domain.py:42
+#: admin/forms/domain.py:42
msgid ""
"Alias(es) of this domain. Indicate only one name per input, press ENTER to "
"add a new input."
@@ -404,47 +439,55 @@ msgstr ""
"Alias per questo dominio. Inserire un solo nome alla volta, premere INVIO "
"per aggiungere un nuovo elemento"
-#: forms/domain.py:81 handlers.py:171
+#: admin/forms/domain.py:47
+msgid "Key selector"
+msgstr ""
+
+#: admin/forms/domain.py:85 admin/handlers.py:171
msgid "domain alias"
msgstr "alias del dominio"
-#: forms/domain.py:84 forms/domain.py:136 forms/domain.py:144
+#: admin/forms/domain.py:88 admin/forms/domain.py:155 admin/forms/domain.py:163
#, python-format
msgid "A %s with this name already exists"
msgstr "Un %s con questo nome esiste già"
-#: forms/domain.py:92 serializers.py:45
+#: admin/forms/domain.py:96 admin/serializers.py:45
msgid "No authorized MX record found for this domain"
msgstr ""
-#: forms/domain.py:114 serializers.py:55
+#: admin/forms/domain.py:108
+msgid "DKIM keys storage directory not configured"
+msgstr ""
+
+#: admin/forms/domain.py:129 admin/serializers.py:55
msgid "Cannot be greater than domain quota"
msgstr ""
-#: forms/domain.py:119
+#: admin/forms/domain.py:134
msgid "You can't define an unlimited quota."
msgstr ""
-#: forms/domain.py:136 forms/domain.py:141
+#: admin/forms/domain.py:155 admin/forms/domain.py:160
msgid "domain"
msgstr "dominio"
-#: forms/domain.py:190
+#: admin/forms/domain.py:209
msgid "Create a domain administrator"
msgstr "Crea un amministratore di dominio"
-#: forms/domain.py:193
+#: admin/forms/domain.py:212
msgid "Automatically create an administrator for this domain"
msgstr "Crea automaticamente un amministratore per questo dominio"
-#: forms/domain.py:198 templates/admin/domain_detail.html:101
-#: templates/admin/domain_headers.html:3
-#: templates/admin/identity_headers.html:2
-#: templates/admin/mx_domain_detail.html:9
+#: admin/forms/domain.py:217 admin/templates/admin/domain_detail.html:120
+#: admin/templates/admin/domain_headers.html:3
+#: admin/templates/admin/identity_headers.html:2
+#: admin/templates/admin/mx_domain_detail.html:9
msgid "Name"
msgstr "Nome"
-#: forms/domain.py:201
+#: admin/forms/domain.py:220
msgid ""
"The administrator's name. Don't include the domain's name here, it will be "
"automatically appended."
@@ -452,211 +495,242 @@ msgstr ""
"Il nome dell'amministratore. Non includere il nome del dominio, verrà "
"aggiunto automaticamente."
-#: forms/domain.py:211
+#: admin/forms/domain.py:230
#, fuzzy
#| msgid "Create a domain administrator"
msgid "Generate a random password for the administrator."
msgstr "Crea un amministratore di dominio"
-#: forms/domain.py:217
+#: admin/forms/domain.py:236
msgid "With a mailbox"
msgstr ""
-#: forms/domain.py:220
+#: admin/forms/domain.py:239
#, fuzzy
#| msgid "Create a domain administrator"
msgid "Create a mailbox for the administrator."
msgstr "Crea un amministratore di dominio"
-#: forms/domain.py:226
+#: admin/forms/domain.py:245
msgid "Create aliases"
msgstr "Crea alias"
-#: forms/domain.py:229
+#: admin/forms/domain.py:248
msgid "Automatically create standard aliases for this domain"
msgstr "Crea automaticamente gli alias standard per questo dominio"
-#: forms/domain.py:245
+#: admin/forms/domain.py:264
msgid "Invalid format"
msgstr "Formato non valido"
-#: forms/domain.py:274
+#: admin/forms/domain.py:293
#, python-format
msgid "User '%s' already exists"
msgstr "L'utente '%s' esiste già"
-#: forms/domain.py:385
+#: admin/forms/domain.py:404
msgid "Domain modified"
msgstr "Dominio modificato"
-#: forms/domain.py:406
+#: admin/forms/domain.py:425
msgid "Options"
msgstr "Opzioni"
-#: forms/domain.py:414
+#: admin/forms/domain.py:433
msgid "New domain"
msgstr "Nuovo dominio"
-#: forms/domain.py:427
+#: admin/forms/domain.py:446
msgid "Domain created"
msgstr "Dominio creato"
-#: forms/export.py:9
+#: admin/forms/export.py:9
msgid "File name"
msgstr "Nome del file"
-#: forms/export.py:15 forms/import_.py:15
+#: admin/forms/export.py:15 admin/forms/import_.py:15
msgid "Separator"
msgstr "Separatore"
-#: forms/forward.py:14
+#: admin/forms/forward.py:14
msgid "Recipient(s)"
msgstr "Destinatario(i)"
-#: forms/forward.py:18
+#: admin/forms/forward.py:18
msgid "Indicate one or more recipients separated by a ','"
msgstr "Indicare uno o più destinatari separati da ','"
-#: forms/forward.py:21
+#: admin/forms/forward.py:21
msgid "Keep local copies"
msgstr "Mantieni copie locali"
-#: forms/forward.py:24
+#: admin/forms/forward.py:24
msgid "Forward messages and store copies into your local mailbox"
msgstr ""
"Inoltra i messaggi e memorizza le copie nella tua casella di posta locale"
-#: forms/import_.py:13
+#: admin/forms/import_.py:13
msgid "Select a file"
msgstr "Seleziona un file"
-#: forms/import_.py:21
+#: admin/forms/import_.py:21
msgid "Continue on error"
msgstr "Continuare in caso di errore"
-#: forms/import_.py:22
+#: admin/forms/import_.py:22
msgid "Don't treat duplicated objects as error"
msgstr "Non considerare errore gli oggetti duplicati"
-#: forms/import_.py:40
+#: admin/forms/import_.py:40
msgid "Crypt passwords"
msgstr "Cripta le password"
-#: forms/import_.py:42
+#: admin/forms/import_.py:42
msgid "Check this option if passwords contained in your file are not crypted"
msgstr ""
"Seleziona questa opzione se le password contenute nel file non sono criptate"
-#: handlers.py:218
+#: admin/handlers.py:218
#, python-format
msgid "Account import failed (%s): domain does not exist"
msgstr "Importazione dell'account fallito (%s): il dominio non esiste"
-#: handlers.py:231 models/mailbox.py:342
+#: admin/handlers.py:231 admin/models/mailbox.py:342
#, fuzzy
#| msgid "Mailbox %s already exists"
msgid "Mailbox {} already exists"
msgstr "La casella di posta %s esiste già"
-#: handlers.py:239
+#: admin/handlers.py:239
#, python-format
msgid "Account import failed (%s): wrong quota value"
msgstr "Importazione account fallito(%s): valore della quota errato"
-#: handlers.py:279 templates/admin/_global_statistics_widget.html:17
-#: templates/admin/_per_domain_statistics_widget.html:8
-#: templates/admin/identities.html:5
+#: admin/handlers.py:279
+#: admin/templates/admin/_global_statistics_widget.html:17
+#: admin/templates/admin/_per_domain_statistics_widget.html:8
+#: admin/templates/admin/identities.html:5
msgid "Identities"
msgstr "Identità"
-#: handlers.py:295 templates/admin/forward.html:2
+#: admin/handlers.py:295 admin/templates/admin/forward.html:2
msgid "Forward"
msgstr "Inoltra"
-#: lib.py:41
+#: admin/lib.py:44
msgid "A mailbox is required"
msgstr "É necessaria una casella"
-#: lib.py:131
+#: admin/lib.py:134
msgid "You are not allowed to import domains"
msgstr "Non hai i permessi di importare domini"
-#: lib.py:142
+#: admin/lib.py:145
msgid "You are not allowed to import domain aliases."
msgstr "Non hai i permessi di importare gli alias dominio"
-#: management/commands/subcommands/_mx.py:125
+#: admin/lib.py:183 admin/tests/test_mx.py:122
+#, python-format
+msgid "No DNS records found for %s"
+msgstr ""
+
+#: admin/lib.py:185 admin/tests/test_mx.py:125
+#, python-format
+msgid "No MX record for %s"
+msgstr ""
+
+#: admin/lib.py:187 admin/tests/test_mx.py:126
+msgid "No working name servers found"
+msgstr ""
+
+#: admin/lib.py:190 admin/tests/test_mx.py:128
+#, python-format
+msgid "DNS resolution timeout, unable to query %s at the moment"
+msgstr ""
+
+#: admin/lib.py:201 admin/tests/test_mx.py:131
+#, python-format
+msgid "Unable to lookup ip addresses for %(domain)s; %(error)s"
+msgstr ""
+
+#: admin/lib.py:212 admin/tests/test_mx.py:134
+#, python-format
+msgid "Invalid IP address format for %(domain)s; %(addr)s"
+msgstr ""
+
+#: admin/management/commands/subcommands/_mx.py:136
msgid "[modoboa] DNSBL issue(s) for domain {}"
msgstr ""
-#: management/commands/subcommands/_mx.py:145
+#: admin/management/commands/subcommands/_mx.py:156
msgid "Domain {} has no MX record"
msgstr ""
-#: management/commands/subcommands/_mx.py:156
+#: admin/management/commands/subcommands/_mx.py:167
#, python-brace-format
msgid "MX record for domain {0} is invalid: {1}"
msgstr ""
-#: management/commands/subcommands/_mx.py:173
+#: admin/management/commands/subcommands/_mx.py:184
msgid "[modoboa] MX issue(s) for domain {}"
msgstr ""
-#: models/alias.py:35 models/mailbox.py:97
+#: admin/models/alias.py:35 admin/models/mailbox.py:97
msgid "address"
msgstr "indirizzo"
-#: models/alias.py:37
+#: admin/models/alias.py:37
msgid "The alias address."
msgstr "Indirizzi Alias."
-#: models/alias.py:42 models/domain.py:48 models/domain_alias.py:46
+#: admin/models/alias.py:42 admin/models/domain.py:48
+#: admin/models/domain_alias.py:47
msgid "enabled"
msgstr "Attivato"
-#: models/alias.py:43 models/domain_alias.py:47
+#: admin/models/alias.py:43 admin/models/domain_alias.py:48
msgid "Check to activate this alias"
msgstr "Seleziona per attivare questo alias"
-#: models/alias.py:48 templates/admin/alias_detail.html:32
+#: admin/models/alias.py:48 admin/templates/admin/alias_detail.html:32
msgid "Description"
msgstr ""
-#: models/alias.py:50 templates/admin/alias_detail.html:29
+#: admin/models/alias.py:50 admin/templates/admin/alias_detail.html:29
msgid "Expire at"
msgstr ""
-#: models/alias.py:93
+#: admin/models/alias.py:93
msgid "alias"
msgstr "alias"
-#: models/alias.py:125
+#: admin/models/alias.py:125
msgid "Invalid address"
msgstr "Indirizzo non valido"
-#: models/alias.py:146
+#: admin/models/alias.py:146
msgid "Local recipient {}@{} not found"
msgstr "Destinatario locale {}@{} non trovato"
-#: models/alias.py:176
+#: admin/models/alias.py:176
#, python-format
msgid "Invalid line: %s"
msgstr "Riga non valida: %s"
-#: models/alias.py:182
+#: admin/models/alias.py:182
#, python-format
msgid "Domain '%s' does not exist"
msgstr "Il dominio '%s' non esiste"
-#: models/domain.py:30 models/domain_alias.py:39
+#: admin/models/domain.py:30 admin/models/domain_alias.py:39
msgid "name"
msgstr "nome"
-#: models/domain.py:31
+#: admin/models/domain.py:31
msgid "The domain name"
msgstr "Il nome del dominio"
-#: models/domain.py:35
+#: admin/models/domain.py:35
#, fuzzy
#| msgid ""
#| "Default quota (in MB) applied to freshly created domains with no value "
@@ -666,7 +740,7 @@ msgstr ""
"Quota predefinita (in MB) applicata ai nuovi domini che non la specificano. "
"Un valore 0 implica nessuna quota."
-#: models/domain.py:43
+#: admin/models/domain.py:43
#, fuzzy
#| msgid ""
#| "Default quota (in MB) applied to freshly created domains with no value "
@@ -676,393 +750,471 @@ msgstr ""
"Quota predefinita (in MB) applicata ai nuovi domini che non la specificano. "
"Un valore 0 implica nessuna quota."
-#: models/domain.py:49
+#: admin/models/domain.py:49
msgid "Check to activate this domain"
msgstr "Seleziona per attivare questo dominio"
-#: models/domain.py:54
+#: admin/models/domain.py:54
msgid "Enable DNS checks"
msgstr ""
-#: models/domain.py:55
+#: admin/models/domain.py:55
#, fuzzy
#| msgid "Check to activate this domain"
msgid "Check to enable DNS checks for this domain"
msgstr "Seleziona per attivare questo dominio"
-#: models/domain.py:253 models/domain_alias.py:73
+#: admin/models/domain.py:62
+msgid "Enable DKIM signing"
+msgstr ""
+
+#: admin/models/domain.py:64
+msgid ""
+"If you activate this feature, a DKIM key will be generated for this domain."
+msgstr ""
+
+#: admin/models/domain.py:70
+msgid "Key length"
+msgstr ""
+
+#: admin/models/domain.py:285 admin/models/domain_alias.py:74
msgid "Invalid line"
msgstr "Riga non valida"
-#: models/domain.py:263
+#: admin/models/domain.py:295
msgid "No authorized MX record found for domain {}"
msgstr ""
-#: models/domain.py:270
+#: admin/models/domain.py:302
#, fuzzy
#| msgid "Invalid quota value for domain '%s'"
msgid "Invalid quota value for domain '{}'"
msgstr "Valore della quota non valido per il dominio '%s'"
-#: models/domain.py:277
+#: admin/models/domain.py:309
#, fuzzy
#| msgid "Invalid quota value for domain '%s'"
msgid "Invalid default mailbox quota value for domain '{}'"
msgstr "Valore della quota non valido per il dominio '%s'"
-#: models/domain.py:282
+#: admin/models/domain.py:314
msgid "Default mailbox quota cannot be greater than domain quota"
msgstr ""
-#: models/domain_alias.py:40
+#: admin/models/domain_alias.py:40
msgid "The alias name"
msgstr "Il nome dell'alias"
-#: models/domain_alias.py:42
+#: admin/models/domain_alias.py:42
msgid "target"
msgstr "destinazione"
-#: models/domain_alias.py:43
+#: admin/models/domain_alias.py:43
msgid "The domain this alias points to"
msgstr "Il dominio a cui punta questo alias"
-#: models/domain_alias.py:82
+#: admin/models/domain_alias.py:83
#, python-format
msgid "Unknown domain %s"
msgstr "Dominio sconosciuto %s"
-#: models/mailbox.py:99
+#: admin/models/mailbox.py:99
msgid "Mailbox address (without the @domain.tld part)"
msgstr "Indirizzo della casella di posta (senza la parte @dominio.org)"
-#: models/mailbox.py:165
+#: admin/models/mailbox.py:165
#, python-format
msgid "Failed to retrieve mailbox location (%s)"
msgstr "Impossibile recuperare la posizione della casella di posta (%s)"
-#: models/mailbox.py:258
+#: admin/models/mailbox.py:258
msgid "A quota is required"
msgstr "È richiesta una quota"
-#: models/mailbox.py:264
+#: admin/models/mailbox.py:264
#, fuzzy
#| msgid "Domain created"
msgid "Domain quota exceeded"
msgstr "Dominio creato"
-#: serializers.py:80 serializers.py:266 serializers.py:360
+#: admin/serializers.py:80 admin/serializers.py:266 admin/serializers.py:360
#, fuzzy
#| msgid "Permissions"
msgid "Permission denied."
msgstr "Permessi"
-#: serializers.py:118
+#: admin/serializers.py:118
msgid ""
"List of administered domains (resellers and domain administrators only)."
msgstr ""
-#: serializers.py:218
+#: admin/serializers.py:218
msgid "Not allowed for this role."
msgstr ""
-#: serializers.py:228
+#: admin/serializers.py:228
msgid "Must be equal to mailbox full_address"
msgstr ""
-#: serializers.py:253
+#: admin/serializers.py:253
#, fuzzy
#| msgid "Domain does not exist"
msgid "Local domain {} does not exist"
msgstr "Il dominio non esiste"
-#: serializers.py:347
+#: admin/serializers.py:347
msgid "A list of recipient"
msgstr ""
-#: serializers.py:358
+#: admin/serializers.py:358
#, fuzzy
#| msgid "Domain modified"
msgid "Domain not found."
msgstr "Dominio modificato"
-#: templates/admin/_domain_dnschecks_status.html:4
+#: admin/serializers.py:407
+#, fuzzy
+#| msgid "You don't have access to this domain"
+msgid "You don't have access to this domain."
+msgstr "Non hai accesso a questo dominio"
+
+#: admin/serializers.py:415
+#, fuzzy
+#| msgid "You don't have access to this domain"
+msgid "You don't have access to this mailbox."
+msgstr "Non hai accesso a questo dominio"
+
+#: admin/templates/admin/_domain_dkim_key.html:6
+#: admin/templates/admin/_domain_dkim_key.html:20
+msgid "Close"
+msgstr ""
+
+#: admin/templates/admin/_domain_dkim_key.html:7
+#, python-format
+msgid "DKIM public key for %(domain)s"
+msgstr ""
+
+#: admin/templates/admin/_domain_dkim_key.html:11
+#, fuzzy
+#| msgid "Invalid format"
+msgid "Raw format"
+msgstr "Formato non valido"
+
+#: admin/templates/admin/_domain_dkim_key.html:15
+#, fuzzy
+#| msgid "Invalid format"
+msgid "Bind/named format"
+msgstr "Formato non valido"
+
+#: admin/templates/admin/_domain_dnschecks_status.html:4
#, fuzzy
#| msgid "disabled"
msgctxt "checks"
msgid "Disabled"
msgstr "Disabilitato"
-#: templates/admin/_domain_dnschecks_status.html:6
+#: admin/templates/admin/_domain_dnschecks_status.html:6
msgid "Awaiting checks"
msgstr ""
-#: templates/admin/_global_statistics_widget.html:4
+#: admin/templates/admin/_global_statistics_widget.html:4
#, fuzzy
#| msgid "Statistics"
msgid "Global statistics"
msgstr "Statistiche"
-#: templates/admin/_global_statistics_widget.html:8
+#: admin/templates/admin/_global_statistics_widget.html:8
msgid "Quantity"
msgstr "Quantità"
-#: templates/admin/_global_statistics_widget.html:14
-#: templates/admin/domain_detail.html:45 templates/admin/domain_detail.html:81
+#: admin/templates/admin/_global_statistics_widget.html:14
+#: admin/templates/admin/domain_detail.html:37
+#: admin/templates/admin/domain_detail.html:73
msgid "Domain aliases"
msgstr "Alias del dominio"
-#: templates/admin/_per_domain_statistics_widget.html:4
+#: admin/templates/admin/_per_domain_statistics_widget.html:4
#, fuzzy
#| msgid "Per-domain counters"
msgid "Per-domain statistics"
msgstr "Contatore per dominio"
-#: templates/admin/account_detail.html:16 templates/admin/alias_detail.html:16
-#: templates/admin/domain_detail.html:19
-#: templates/admin/identities_table.html:7
+#: admin/templates/admin/account_detail.html:16
+#: admin/templates/admin/alias_detail.html:16
+#: admin/templates/admin/domain_detail.html:19
+#: admin/templates/admin/identities_table.html:7
#, fuzzy
#| msgid "disabled"
msgid "(disabled)"
msgstr "Disabilitato"
-#: templates/admin/account_detail.html:22 templates/admin/alias_detail.html:22
-#: templates/admin/domain_detail.html:25
+#: admin/templates/admin/account_detail.html:22
+#: admin/templates/admin/alias_detail.html:22
+#: admin/templates/admin/domain_detail.html:25
msgid "Summary"
msgstr ""
-#: templates/admin/account_detail.html:26
+#: admin/templates/admin/account_detail.html:26
#, fuzzy
#| msgid "File name"
msgid "Full name"
msgstr "Nome del file"
-#: templates/admin/account_detail.html:32 templates/admin/alias_detail.html:26
+#: admin/templates/admin/account_detail.html:32
+#: admin/templates/admin/alias_detail.html:26
#, fuzzy
#| msgid "Create"
msgid "Created"
msgstr "Crea"
-#: templates/admin/account_detail.html:35
+#: admin/templates/admin/account_detail.html:35
msgid "Last login"
msgstr ""
-#: templates/admin/account_detail.html:38
+#: admin/templates/admin/account_detail.html:38
msgid "Secondary email"
msgstr ""
-#: templates/admin/account_detail.html:38
-#: templates/admin/account_detail.html:41
+#: admin/templates/admin/account_detail.html:38
+#: admin/templates/admin/account_detail.html:41
#, fuzzy
#| msgid "No recipient defined"
msgid "Not defined"
msgstr "Non è stato definito un destinatario"
-#: templates/admin/account_detail.html:41
+#: admin/templates/admin/account_detail.html:41
msgid "Phone number"
msgstr ""
-#: templates/admin/account_detail.html:55
+#: admin/templates/admin/account_detail.html:55
#, fuzzy
#| msgid "Administration"
msgid "Administered domains"
msgstr "Amministrazione"
-#: templates/admin/account_detail.html:61
+#: admin/templates/admin/account_detail.html:61
#, fuzzy
#| msgid "No recipient defined"
msgid "No domain defined."
msgstr "Non è stato definito un destinatario"
-#: templates/admin/account_detail.html:75
+#: admin/templates/admin/account_detail.html:75
#, fuzzy
#| msgid "Alias(es)"
msgid "Aliases"
msgstr "Alias"
-#: templates/admin/account_detail.html:81
+#: admin/templates/admin/account_detail.html:81
#, fuzzy
#| msgid "No recipient defined"
msgid "No alias defined"
msgstr "Non è stato definito un destinatario"
-#: templates/admin/account_detail.html:87
+#: admin/templates/admin/account_detail.html:87
msgid "Additional sender addresses"
msgstr ""
-#: templates/admin/account_detail.html:93
+#: admin/templates/admin/account_detail.html:93
msgid "No sender address defined"
msgstr ""
-#: templates/admin/account_general_form.html:12
-#: templates/admin/aliasform.html:13
+#: admin/templates/admin/account_general_form.html:12
+#: admin/templates/admin/aliasform.html:13
msgid "Domain is disabled"
msgstr "il Dominio è disabilitato"
-#: templates/admin/alias_detail.html:16 templates/admin/identities.html:33
+#: admin/templates/admin/alias_detail.html:16
+#: admin/templates/admin/identities.html:33
#, fuzzy
#| msgid "alias"
msgid "Alias"
msgstr "alias"
-#: templates/admin/alias_detail.html:27
+#: admin/templates/admin/alias_detail.html:27
#, fuzzy
#| msgid "Alias modified"
msgid "Modified"
msgstr "Alias modificato"
-#: templates/admin/dnsbl_domain_detail.html:10
+#: admin/templates/admin/dnsbl_domain_detail.html:10
msgid "Provider"
msgstr ""
-#: templates/admin/dnsbl_domain_detail.html:11
-#: templates/admin/identities_quota_headers.html:2
-#: templates/admin/mx_domain_detail.html:10
+#: admin/templates/admin/dnsbl_domain_detail.html:11
+#: admin/templates/admin/identities_quota_headers.html:2
+#: admin/templates/admin/mx_domain_detail.html:10
msgid "Address"
msgstr "Indirizzo"
-#: templates/admin/dnsbl_domain_detail.html:12
+#: admin/templates/admin/dnsbl_domain_detail.html:12
+#: admin/templates/admin/domain_detail.html:96
#, fuzzy
#| msgid "Statistics"
msgid "Status"
msgstr "Statistiche"
-#: templates/admin/dnsbl_domain_detail.html:21
+#: admin/templates/admin/dnsbl_domain_detail.html:21
msgid "listed"
msgstr ""
-#: templates/admin/dnsbl_domain_detail.html:29
+#: admin/templates/admin/dnsbl_domain_detail.html:29
msgid "Everything is fine, this domain is not listed."
msgstr ""
-#: templates/admin/dnsbl_domain_detail.html:32
+#: admin/templates/admin/dnsbl_domain_detail.html:32
msgid "No information available for this domain."
msgstr ""
-#: templates/admin/domain_detail.html:30 templates/admin/domain_headers.html:7
-#, fuzzy
-#| msgid "Statistics"
-msgid "DNS status"
-msgstr "Statistiche"
-
-#: templates/admin/domain_detail.html:37
+#: admin/templates/admin/domain_detail.html:29
msgid "Creation date"
msgstr "Data di creazione"
-#: templates/admin/domain_detail.html:41
+#: admin/templates/admin/domain_detail.html:33
msgid "Last modification date"
msgstr "Data dell'ultima modifica"
-#: templates/admin/domain_detail.html:53
+#: admin/templates/admin/domain_detail.html:45
msgid "Mailbox aliases"
msgstr "Alias delle caselle di posta"
-#: templates/admin/domain_detail.html:58 templates/admin/domain_detail.html:65
-#: templates/admin/domain_detail.html:66 templates/admin/domain_detail.html:73
-#: templates/admin/domain_general_form.html:4
-#: templates/admin/domain_general_form.html:5
-#: templates/admin/domains_quotas.html:11
-#: templates/admin/domains_quotas.html:12 templates/admin/mailform.html:7
-#: templates/admin/newdomainform.html:3
+#: admin/templates/admin/domain_detail.html:50
+#: admin/templates/admin/domain_detail.html:57
+#: admin/templates/admin/domain_detail.html:58
+#: admin/templates/admin/domain_detail.html:65
+#: admin/templates/admin/domain_general_form.html:4
+#: admin/templates/admin/domain_general_form.html:5
+#: admin/templates/admin/domains_quotas.html:11
+#: admin/templates/admin/domains_quotas.html:12
+#: admin/templates/admin/mailform.html:7
+#: admin/templates/admin/newdomainform.html:3
msgid "MB"
msgstr "MB"
-#: templates/admin/domain_detail.html:62
+#: admin/templates/admin/domain_detail.html:54
#, fuzzy
#| msgid "Usage (%%)"
msgid "Usage"
msgstr "Utilizzo (%%)"
-#: templates/admin/domain_detail.html:65 templates/admin/domains_quotas.html:11
+#: admin/templates/admin/domain_detail.html:57
+#: admin/templates/admin/domains_quotas.html:11
msgctxt "quota"
msgid "used"
msgstr ""
-#: templates/admin/domain_detail.html:66 templates/admin/domains_quotas.html:12
+#: admin/templates/admin/domain_detail.html:58
+#: admin/templates/admin/domains_quotas.html:12
msgid "allocated"
msgstr ""
-#: templates/admin/domain_detail.html:98
+#: admin/templates/admin/domain_detail.html:91
+msgid "DNS"
+msgstr ""
+
+#: admin/templates/admin/domain_detail.html:103
+msgid "DKIM key"
+msgstr ""
+
+#: admin/templates/admin/domain_detail.html:107
+msgid "Show key"
+msgstr ""
+
+#: admin/templates/admin/domain_detail.html:110
+#, fuzzy
+#| msgid "No recipient defined"
+msgid "Not generated"
+msgstr "Non è stato definito un destinatario"
+
+#: admin/templates/admin/domain_detail.html:117
msgid "Administrators"
msgstr "Amministratori"
-#: templates/admin/domain_detail.html:110 templatetags/admin_tags.py:268
+#: admin/templates/admin/domain_detail.html:129
+#: admin/templatetags/admin_tags.py:268
msgid "Remove this permission"
msgstr "Rimuovi questo permesso"
-#: templates/admin/domain_detail.html:115
+#: admin/templates/admin/domain_detail.html:134
#, fuzzy
#| msgid "No domain administrator defined"
msgid "No domain administrator defined yet."
msgstr "Non è stato definito alcun amministratore di dominio"
-#: templates/admin/domain_headers.html:5
-#: templates/admin/identity_headers.html:4
+#: admin/templates/admin/domain_headers.html:5
+#: admin/templates/admin/identity_headers.html:4
msgid "Tags"
msgstr "Tag"
-#: templates/admin/domain_headers.html:9
-#: templates/admin/identity_headers.html:5
+#: admin/templates/admin/domain_headers.html:7
+#, fuzzy
+#| msgid "Statistics"
+msgid "DNS status"
+msgstr "Statistiche"
+
+#: admin/templates/admin/domain_headers.html:9
+#: admin/templates/admin/identity_headers.html:5
msgid "Actions"
msgstr "Azioni"
-#: templates/admin/domain_options_form.html:10
+#: admin/templates/admin/domain_options_form.html:10
msgid "You can't create a new domain administrator"
msgstr "Non ti è possibile creare un amministratore di dominio"
-#: templates/admin/domains.html:26 templates/admin/identities.html:29
+#: admin/templates/admin/domains.html:28
+#: admin/templates/admin/identities.html:29
#, fuzzy
#| msgid "Address"
msgid "Add"
msgstr "Indirizzo"
-#: templates/admin/domains_quota_headers.html:3
-#: templates/admin/identities_quota_headers.html:4
+#: admin/templates/admin/domains_quota_headers.html:3
+#: admin/templates/admin/identities_quota_headers.html:4
msgid "Limit"
msgstr "Limite"
-#: templates/admin/domains_quota_headers.html:4
+#: admin/templates/admin/domains_quota_headers.html:4
msgid "Used"
msgstr ""
-#: templates/admin/domains_quota_headers.html:5
+#: admin/templates/admin/domains_quota_headers.html:5
#, fuzzy
#| msgid "Alias created"
msgid "Allocated"
msgstr "Alias creato"
-#: templates/admin/domains_quota_headers.html:6
-#: templates/admin/identities_quota_headers.html:5
+#: admin/templates/admin/domains_quota_headers.html:6
+#: admin/templates/admin/identities_quota_headers.html:5
#, python-format
msgid "Usage (%%)"
msgstr "Utilizzo (%%)"
-#: templates/admin/domains_table.html:5
+#: admin/templates/admin/domains_table.html:5
msgid "disabled"
msgstr "Disabilitato"
-#: templates/admin/forward.html:2
+#: admin/templates/admin/forward.html:2
msgid "Automatically forward emails to another address"
msgstr "Inoltra automaticamente le e-mail ad un altro indirizzo"
-#: templates/admin/forward.html:9 views/alias.py:93
+#: admin/templates/admin/forward.html:9 admin/views/alias.py:93
msgid "Update"
msgstr "Aggiorna"
-#: templates/admin/identities.html:32
+#: admin/templates/admin/identities.html:32
#, fuzzy
#| msgid "Add account"
msgid "Account"
msgstr "Aggiungi account"
-#: templates/admin/identities_quota_headers.html:3
+#: admin/templates/admin/identities_quota_headers.html:3
msgid "Value"
msgstr "Valore"
-#: templates/admin/identity_headers.html:3
+#: admin/templates/admin/identity_headers.html:3
msgid "Fullname/Recipient"
msgstr "Nome completo/Destinatario"
-#: templates/admin/import_domains_form.html:6
+#: admin/templates/admin/import_domains_form.html:6
#, fuzzy
#| msgid ""
#| "Provide a CSV file where lines respect one of the following formats:\n"
@@ -1094,7 +1246,7 @@ msgstr ""
"\n"
"Come separatore puoi utilizzare un carattere diverso.
\n"
-#: templates/admin/import_identities_form.html:6
+#: admin/templates/admin/import_identities_form.html:6
#, fuzzy
#| msgid ""
#| "Provide a CSV file where lines respect one of the following formats:\n"
@@ -1131,129 +1283,129 @@ msgstr ""
"\n"
"Come separatore puoi utilizzare un carattere diverso.
\n"
-#: templates/admin/importform.html:6
+#: admin/templates/admin/importform.html:6
msgid "Help"
msgstr "Aiuto"
-#: templates/admin/importform.html:13
+#: admin/templates/admin/importform.html:13
msgid "Importing..."
msgstr "Importazione..."
-#: templates/admin/index.html:6
+#: admin/templates/admin/index.html:6
msgid "Admin"
msgstr ""
-#: templates/admin/mailboxes_raw.html:3
+#: admin/templates/admin/mailboxes_raw.html:3
msgid "Choose a value"
msgstr "Scegli un valore"
-#: templates/admin/mailform.html:7
+#: admin/templates/admin/mailform.html:7
msgid "Use domain default value"
msgstr "Usa il valore predefinito"
-#: templates/admin/mx_domain_detail.html:11
+#: admin/templates/admin/mx_domain_detail.html:11
#, fuzzy
#| msgid "Update"
msgid "Updated"
msgstr "Aggiorna"
-#: templates/admin/mx_domain_detail.html:23
+#: admin/templates/admin/mx_domain_detail.html:23
msgid "This IP does not match any of the valid MXs defined in parameters"
msgstr ""
-#: templates/admin/mx_domain_detail.html:36
+#: admin/templates/admin/mx_domain_detail.html:36
msgid "No MX record found for this domain."
msgstr ""
-#: templates/admin/notifications/domain_in_dnsbl.html:3
+#: admin/templates/admin/notifications/domain_in_dnsbl.html:3
#, python-format
msgid ""
"Modoboa detected that domain %(domain)s is listed by the following DNSBL "
"providers:"
msgstr ""
-#: templates/admin/notifications/domain_in_dnsbl.html:11
+#: admin/templates/admin/notifications/domain_in_dnsbl.html:11
msgid ""
"The domain's reputation will be affected and there is a chance that emails "
"coming from it are considered as spam. You should contact those providers "
"and ask them to unlist detected IP address(es)."
msgstr ""
-#: templates/admin/notifications/domain_invalid_mx.html:3
+#: admin/templates/admin/notifications/domain_invalid_mx.html:3
#, python-format
msgid "Modoboa detected that domain %(domain)s has no valid MX record:"
msgstr ""
-#: templates/admin/searchform.html:6
+#: admin/templates/admin/searchform.html:6
msgid "Search"
msgstr "Ricerca"
-#: templatetags/admin_tags.py:22
+#: admin/templatetags/admin_tags.py:22
msgid "enabled_m"
msgstr "Abilitato"
-#: templatetags/admin_tags.py:22
+#: admin/templatetags/admin_tags.py:22
msgid "enabled_f"
msgstr "Abilitata"
-#: templatetags/admin_tags.py:48
+#: admin/templatetags/admin_tags.py:48
msgid "List domains"
msgstr "Lista domini"
-#: templatetags/admin_tags.py:53 templatetags/admin_tags.py:108
+#: admin/templatetags/admin_tags.py:53 admin/templatetags/admin_tags.py:108
msgid "List quotas"
msgstr "Elenco quote"
-#: templatetags/admin_tags.py:65 templatetags/admin_tags.py:113
-#: views/import_.py:101 views/import_.py:123
+#: admin/templatetags/admin_tags.py:65 admin/templatetags/admin_tags.py:113
+#: admin/views/import_.py:89 admin/views/import_.py:111
msgid "Import"
msgstr "Importa"
-#: templatetags/admin_tags.py:71 templatetags/admin_tags.py:119
-#: views/export.py:44 views/export.py:74
+#: admin/templatetags/admin_tags.py:71 admin/templatetags/admin_tags.py:119
+#: admin/views/export.py:43 admin/views/export.py:71
msgid "Export"
msgstr "Esporta"
-#: templatetags/admin_tags.py:103
+#: admin/templatetags/admin_tags.py:103
msgid "List identities"
msgstr "Elenco identità"
-#: templatetags/admin_tags.py:138
+#: admin/templatetags/admin_tags.py:138
msgid "View the domain's identities"
msgstr "Visualizza le identita del dominio"
-#: templatetags/admin_tags.py:144 templatetags/admin_tags.py:187
-#: templatetags/admin_tags.py:200
+#: admin/templatetags/admin_tags.py:144 admin/templatetags/admin_tags.py:187
+#: admin/templatetags/admin_tags.py:200
msgid "Edit {}"
msgstr ""
-#: templatetags/admin_tags.py:154 templatetags/admin_tags.py:191
-#: templatetags/admin_tags.py:205
+#: admin/templatetags/admin_tags.py:154 admin/templatetags/admin_tags.py:191
+#: admin/templatetags/admin_tags.py:205
#, python-format
msgid "Delete %s?"
msgstr "Eliminare %s?"
-#: views/alias.py:35
+#: admin/views/alias.py:35
msgid "Alias with this name already exists"
msgstr "Un alias con questo nome esiste già"
-#: views/alias.py:60
+#: admin/views/alias.py:60
msgid "Create"
msgstr "Crea"
-#: views/alias.py:72
+#: admin/views/alias.py:72
msgid "New alias"
msgstr "Nuovo alias"
-#: views/alias.py:73
+#: admin/views/alias.py:73
msgid "Alias created"
msgstr "Alias creato"
-#: views/alias.py:85
+#: admin/views/alias.py:85
msgid "Alias modified"
msgstr "Alias modificato"
-#: views/alias.py:109
+#: admin/views/alias.py:109
#, fuzzy
#| msgid "Alias created"
msgid "Alias deleted"
@@ -1261,61 +1413,62 @@ msgid_plural "Aliases deleted"
msgstr[0] "Alias creato"
msgstr[1] "Alias creato"
-#: views/dns.py:32
+#: admin/views/dns.py:32
msgid "MX records of {}"
msgstr ""
-#: views/dns.py:55
+#: admin/views/dns.py:55
msgid "DNSBL summary for {}"
msgstr ""
-#: views/domain.py:190
+#: admin/views/domain.py:188
msgid "You can't delete your own domain"
msgstr "Non puoi cancellare il tuo dominio"
-#: views/domain.py:193
+#: admin/views/domain.py:191
msgid "Domain deleted"
msgid_plural "Domains deleted"
msgstr[0] "Dominio cancellato"
msgstr[1] "Domini cancellati"
-#: views/export.py:43
+#: admin/views/export.py:42
msgid "Export identities"
msgstr "Identità di esportazione"
-#: views/export.py:73
+#: admin/views/export.py:70
msgid "Export domains"
msgstr "Esporta domini"
-#: views/identity.py:113 views/identity.py:206 views/identity.py:211
+#: admin/views/identity.py:113 admin/views/identity.py:206
+#: admin/views/identity.py:211
msgid "Invalid request"
msgstr "Richiesta non valida"
-#: views/identity.py:196
+#: admin/views/identity.py:196
msgid "Account deleted"
msgid_plural "Accounts deleted"
msgstr[0] "Account cancellato"
msgstr[1] "Account cancellati"
-#: views/import_.py:77
+#: admin/views/import_.py:65
#, python-format
msgid "Object already exists: %s"
msgstr "L'oggetto esiste già: %s"
-#: views/import_.py:81
+#: admin/views/import_.py:69
#, python-format
msgid "%d objects imported successfully"
msgstr "%d oggetti importati correttamente"
-#: views/import_.py:100
+#: admin/views/import_.py:88
msgid "Import domains"
msgstr "Importa domini"
-#: views/import_.py:122
+#: admin/views/import_.py:110
msgid "Import identities"
msgstr "Identità di importazione"
-#: views/user.py:40
+#: admin/views/user.py:40
msgid "Forward updated"
msgstr "Inoltro aggiornato"
diff --git a/modoboa/admin/locale/ja_JP/LC_MESSAGES/django.po b/modoboa/admin/locale/ja_JP/LC_MESSAGES/django.po
index c74cf7112..d311eba9a 100644
--- a/modoboa/admin/locale/ja_JP/LC_MESSAGES/django.po
+++ b/modoboa/admin/locale/ja_JP/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-12-03 12:51+0100\n"
+"POT-Creation-Date: 2018-01-25 09:09+0100\n"
"PO-Revision-Date: 2016-09-14 17:06+0000\n"
"Last-Translator: Antoine Nguyen \n"
"Language-Team: Japanese (Japan) (http://www.transifex.com/tonio/modoboa/"
@@ -19,57 +19,76 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-#: app_settings.py:20 handlers.py:269
-#: templates/admin/_global_statistics_widget.html:11
-#: templates/admin/domains.html:4
+#: admin/app_settings.py:22 admin/handlers.py:269
+#: admin/templates/admin/_global_statistics_widget.html:11
+#: admin/templates/admin/domains.html:5
msgid "Domains"
msgstr "ドメイン"
-#: app_settings.py:23
+#: admin/app_settings.py:25
msgid "Enable MX checks"
msgstr ""
-#: app_settings.py:26
+#: admin/app_settings.py:28
msgid "Check that every domain has a valid MX record"
msgstr ""
-#: app_settings.py:31
+#: admin/app_settings.py:33
msgid "Valid MXs"
msgstr ""
-#: app_settings.py:34
+#: admin/app_settings.py:36
msgid ""
"A list of IP or network address every MX record should match. A warning will "
"be sent if a record does not respect it."
msgstr ""
-#: app_settings.py:42
+#: admin/app_settings.py:44
msgid "New domains must use authorized MX(s)"
msgstr ""
-#: app_settings.py:45
+#: admin/app_settings.py:47
msgid ""
"Prevent the creation of a new domain if its MX record does not use one of "
"the defined addresses."
msgstr ""
-#: app_settings.py:51
+#: admin/app_settings.py:53
msgid "Enable DNSBL checks"
msgstr "DNSBL チェックを有効にする"
-#: app_settings.py:54
+#: admin/app_settings.py:56
msgid "Check every domain against major DNSBL providers"
msgstr "すべてのドメインを 主な DNSBL プロバイダーでチェックする"
-#: app_settings.py:58 templates/admin/domain_detail.html:49
+#: admin/app_settings.py:61
+msgid "DKIM keys storage directory"
+msgstr ""
+
+#: admin/app_settings.py:64
+msgid ""
+"Absolute path of the directory where DKIM private keys will be stored. Make "
+"sure this directory belongs to root user and is not readable by the outside "
+"world."
+msgstr ""
+
+#: admin/app_settings.py:72
+msgid "Default DKIM key length"
+msgstr ""
+
+#: admin/app_settings.py:76
+msgid "Default length in bits for newly generated DKIM keys."
+msgstr ""
+
+#: admin/app_settings.py:80 admin/templates/admin/domain_detail.html:41
msgid "Mailboxes"
msgstr "メールボックス"
-#: app_settings.py:61
+#: admin/app_settings.py:83
msgid "Handle mailboxes on filesystem"
msgstr "ファイルシステムのメールボックスを操作する"
-#: app_settings.py:64
+#: admin/app_settings.py:86
msgid ""
"Rename or remove mailboxes on the filesystem when they get renamed or "
"removed within Modoboa"
@@ -77,19 +96,19 @@ msgstr ""
"Modoboa で、メールボックスの名前の変更もしくは、削除したとき、ファイルシステ"
"ム上のメールボックスも、名前の変更もしくは削除する。"
-#: app_settings.py:70
+#: admin/app_settings.py:92
msgid "Mailboxes owner"
msgstr "メールボックス所有者"
-#: app_settings.py:73
+#: admin/app_settings.py:95
msgid "The UNIX account who owns mailboxes on the filesystem"
msgstr "ファイルシステム上のメールボックスを所有するUNIXアカウント"
-#: app_settings.py:78
+#: admin/app_settings.py:100
msgid "Default domain quota"
msgstr "デフォルトドメインクォータ"
-#: app_settings.py:81
+#: admin/app_settings.py:103
msgid ""
"Default quota (in MB) applied to freshly created domains with no value "
"specified. A value of 0 means no quota."
@@ -98,13 +117,14 @@ msgstr ""
"用されます。\n"
"値が0の場合は、クォータ制限はありません。"
-#: app_settings.py:87 models/domain.py:40 templates/admin/domain_detail.html:72
+#: admin/app_settings.py:109 admin/models/domain.py:40
+#: admin/templates/admin/domain_detail.html:64
#, fuzzy
#| msgid "Default domain quota"
msgid "Default mailbox quota"
msgstr "デフォルトドメインクォータ"
-#: app_settings.py:90
+#: admin/app_settings.py:112
#, fuzzy
#| msgid ""
#| "Default quota (in MB) applied to freshly created domains with no value "
@@ -117,60 +137,71 @@ msgstr ""
"用されます。\n"
"値が0の場合は、クォータ制限はありません。"
-#: app_settings.py:96
+#: admin/app_settings.py:118
msgid "Automatic account removal"
msgstr "アカウントの自動削除"
-#: app_settings.py:99
+#: admin/app_settings.py:121
msgid "When a mailbox is removed, also remove the associated account"
msgstr "メールボックスが削除されたとき、関連するアカウントも削除します"
-#: app_settings.py:103
+#: admin/app_settings.py:125
msgid "Automatic domain/mailbox creation"
msgstr "ドメインとメールボックスを自動作成"
-#: app_settings.py:106
+#: admin/app_settings.py:128
msgid "Create a domain and a mailbox when an account is automatically created."
msgstr ""
"アカウントが自動的に作成されたとき、ドメインとメールボックを作成します。"
-#: app_settings.py:112
+#: admin/app_settings.py:134
msgid "Create an alias when a mailbox is renamed"
msgstr ""
-#: app_settings.py:115
+#: admin/app_settings.py:137
msgid "Create an alias using the old address when a mailbox is renamed."
msgstr ""
-#: app_settings.py:164 app_settings.py:172 forms/account.py:331
+#: admin/app_settings.py:186 admin/app_settings.py:194
+#: admin/forms/account.py:331
msgid "Must be a positive integer"
msgstr "正の整数でなければいけません"
-#: app_settings.py:186
+#: admin/app_settings.py:204
+#, fuzzy
+#| msgid "Domain not found."
+msgid "Directory not found."
+msgstr "ドメインが見つかりません"
+
+#: admin/app_settings.py:210
+msgid "openssl not found, please make sure it is installed."
+msgstr ""
+
+#: admin/app_settings.py:224
msgid "Define at least one authorized network / address"
msgstr ""
-#: app_settings.py:196
+#: admin/app_settings.py:234
msgid "Administration"
msgstr "管理"
-#: constants.py:99 forms/alias.py:49
-#: templates/admin/_per_domain_statistics_widget.html:7
-#: templates/admin/domains_quota_headers.html:2
+#: admin/constants.py:99 admin/forms/alias.py:49
+#: admin/templates/admin/_per_domain_statistics_widget.html:7
+#: admin/templates/admin/domains_quota_headers.html:2
msgid "Domain"
msgstr "ドメイン"
-#: constants.py:100
+#: admin/constants.py:100
#, fuzzy
#| msgid "New domain"
msgid "Relay domain"
msgstr "新しいドメイン"
-#: forms/account.py:38 templates/admin/domain_detail.html:101
+#: admin/forms/account.py:38 admin/templates/admin/domain_detail.html:120
msgid "Username"
msgstr "ユーザー名"
-#: forms/account.py:40
+#: admin/forms/account.py:40
msgid ""
"The user's name. Must be a valid e-mail address for simple users or "
"administrators with a mailbox."
@@ -179,79 +210,80 @@ msgstr ""
"メールボックスを持つユーザーもしくは管理者の有効な電子メールアドレスでなけれ"
"ばなりません。"
-#: forms/account.py:45 templates/admin/account_detail.html:29
+#: admin/forms/account.py:45 admin/templates/admin/account_detail.html:29
msgid "Role"
msgstr "ロール"
-#: forms/account.py:46
+#: admin/forms/account.py:46
msgid "Choose"
msgstr "選ぶ"
-#: forms/account.py:47
+#: admin/forms/account.py:47
msgid "What level of permission this user will have"
msgstr "このユーザーは、アクセス許可のレベルを持つことになります"
-#: forms/account.py:50 forms/domain.py:208
+#: admin/forms/account.py:50 admin/forms/domain.py:227
#, fuzzy
#| msgid "Invalid address"
msgid "Random password"
msgstr "不正なアドレス"
-#: forms/account.py:52
+#: admin/forms/account.py:52
msgid ""
"Generate a random password. If you're updating this account and check this "
"box, a new password will be generated."
msgstr ""
-#: forms/account.py:58
+#: admin/forms/account.py:58
msgid "Password"
msgstr "パスワード"
-#: forms/account.py:63
+#: admin/forms/account.py:63
msgid "Confirmation"
msgstr "確認"
-#: forms/account.py:66
+#: admin/forms/account.py:66
msgid "Enter the same password as above, for verification."
msgstr "確認のため、上記と同じパスワードを入力します。"
-#: forms/account.py:78
+#: admin/forms/account.py:78
msgid "Enabled"
msgstr "有効化"
-#: forms/account.py:172
+#: admin/forms/account.py:172
msgid "Only super administrators are allowed for this mode"
msgstr "スーパー管理者だけが、このモードのために許可されています。"
-#: forms/account.py:183 forms/account.py:185 forms/domain.py:254
-#: forms/domain.py:257 serializers.py:241
+#: admin/forms/account.py:183 admin/forms/account.py:185
+#: admin/forms/domain.py:144 admin/forms/domain.py:273
+#: admin/forms/domain.py:276 admin/serializers.py:241
#, fuzzy
#| msgid "A mailbox is required"
msgid "This field is required."
msgstr "メールボックスは必須です"
-#: forms/account.py:191
+#: admin/forms/account.py:191
msgid "The two password fields didn't match."
msgstr "2つのパスワード項目が一致しません"
-#: forms/account.py:204
+#: admin/forms/account.py:204
msgid "You can't disable your own account"
msgstr "あなた自身のアカウントは無効化できません"
-#: forms/account.py:225
+#: admin/forms/account.py:225
msgid "E-mail"
msgstr "電子メール"
-#: forms/account.py:227
+#: admin/forms/account.py:227
msgid "Create an alias using the old address"
msgstr ""
-#: forms/account.py:232 templates/admin/account_detail.html:45
-#: templates/admin/domain_detail.html:57
+#: admin/forms/account.py:232 admin/templates/admin/account_detail.html:45
+#: admin/templates/admin/domain_detail.html:49
msgid "Quota"
msgstr "クォータ"
-#: forms/account.py:234
+#: admin/forms/account.py:234
msgid ""
"Quota in MB for this mailbox. Define a custom value or use domain's default "
"one. Leave empty to define an unlimited value (not allowed for domain "
@@ -262,12 +294,12 @@ msgstr ""
"無制限の値を定義する場合は空白のままにします\n"
"(ドメイン管理者には許可されていません)"
-#: forms/account.py:242 forms/domain.py:39
-#: templates/admin/domain_headers.html:4
+#: admin/forms/account.py:242 admin/forms/domain.py:39
+#: admin/templates/admin/domain_headers.html:4
msgid "Alias(es)"
msgstr "エイリアス"
-#: forms/account.py:245
+#: admin/forms/account.py:245
#, fuzzy
#| msgid ""
#| "Alias(es) of this mailbox. Indicate only one address per input, press "
@@ -284,77 +316,79 @@ msgstr ""
" 「キャッチオール」エイリアスを作成するには、 ' * '文字を使用してください "
"(例: *@domain.tld)"
-#: forms/account.py:251
+#: admin/forms/account.py:251
msgid "Sender addresses"
msgstr ""
-#: forms/account.py:254
+#: admin/forms/account.py:254
msgid ""
"Additional sender address(es) for this account. The user will be allowed to "
"send emails using this address, even if it does not exist locally. Indicate "
"one address per input. Press ENTER to add a new input."
msgstr ""
-#: forms/account.py:309 forms/alias.py:94 models/mailbox.py:315
+#: admin/forms/account.py:309 admin/forms/alias.py:94
+#: admin/models/mailbox.py:315
msgid "Domain does not exist"
msgstr "ドメインは存在しません"
-#: forms/account.py:341
+#: admin/forms/account.py:341
msgid "Local domain does not exist"
msgstr "ローカルドメインは存在しません"
-#: forms/account.py:345 forms/account.py:353 forms/alias.py:97
+#: admin/forms/account.py:345 admin/forms/account.py:353
+#: admin/forms/alias.py:97
msgid "You don't have access to this domain"
msgstr "このドメインにアクセスする権限がありません"
-#: forms/account.py:452
+#: admin/forms/account.py:452
msgid "Domain(s)"
msgstr "ドメイン"
-#: forms/account.py:454
+#: admin/forms/account.py:454
msgid "Domain(s) that user administrates"
msgstr "ユーザーに管理されたドメイン"
-#: forms/account.py:500 forms/account.py:590 forms/domain.py:325
-#: forms/domain.py:395
+#: admin/forms/account.py:500 admin/forms/account.py:590
+#: admin/forms/domain.py:344 admin/forms/domain.py:414
msgid "General"
msgstr "全般"
-#: forms/account.py:504
+#: admin/forms/account.py:504
msgid "Profile"
msgstr ""
-#: forms/account.py:508 forms/account.py:596
+#: admin/forms/account.py:508 admin/forms/account.py:596
msgid "Mail"
msgstr "メール"
-#: forms/account.py:511
+#: admin/forms/account.py:511
msgid "Permissions"
msgstr "アクセス許可"
-#: forms/account.py:579
+#: admin/forms/account.py:579
msgid "Account updated"
msgstr "アカウントを更新しました"
-#: forms/account.py:604
+#: admin/forms/account.py:604
msgid "New account"
msgstr "新しいアカウト"
-#: forms/account.py:616
+#: admin/forms/account.py:614
msgid "Account created"
msgstr "アカウントを作成しました"
-#: forms/alias.py:26
+#: admin/forms/alias.py:26
#, fuzzy
#| msgid "Invalid address"
msgid "Random address"
msgstr "不正なアドレス"
-#: forms/alias.py:29
+#: admin/forms/alias.py:29
msgid "Email address"
msgstr "メールアドレス"
-#: forms/alias.py:31
+#: admin/forms/alias.py:31
msgid ""
"The alias address. To create a catchall alias, just enter the domain name "
"(@domain.tld)."
@@ -363,11 +397,11 @@ msgstr ""
"キャッチオールエイリアスを作成するためには、ドメイン名だけを入力します "
"(@domain.tld)"
-#: forms/alias.py:37 templates/admin/alias_detail.html:37
+#: admin/forms/alias.py:37 admin/templates/admin/alias_detail.html:37
msgid "Recipients"
msgstr "受信者"
-#: forms/alias.py:39
+#: admin/forms/alias.py:39
msgid ""
"Addresses this alias will point to. Indicate only one address per input, "
"press ENTER to add a new input."
@@ -376,19 +410,20 @@ msgstr ""
"input ごとに1つだけのアドレスを記入し、 ENTER キーを押して、新しい input を追"
"加します"
-#: forms/alias.py:114 forms/alias.py:116
+#: admin/forms/alias.py:114 admin/forms/alias.py:116
msgid "This field is required"
msgstr ""
-#: forms/alias.py:120
+#: admin/forms/alias.py:120
msgid "No recipient defined"
msgstr "受信者が定義されていません"
-#: forms/domain.py:36 templates/admin/_global_statistics_widget.html:7
+#: admin/forms/domain.py:36
+#: admin/templates/admin/_global_statistics_widget.html:7
msgid "Type"
msgstr "タイプ"
-#: forms/domain.py:42
+#: admin/forms/domain.py:42
msgid ""
"Alias(es) of this domain. Indicate only one name per input, press ENTER to "
"add a new input."
@@ -397,49 +432,57 @@ msgstr ""
"input ごとに1つの名前を入力して、 ENTER キーを押して、新しい input を追加しま"
"す"
-#: forms/domain.py:81 handlers.py:171
+#: admin/forms/domain.py:47
+msgid "Key selector"
+msgstr ""
+
+#: admin/forms/domain.py:85 admin/handlers.py:171
msgid "domain alias"
msgstr "ドメインエイリアス"
-#: forms/domain.py:84 forms/domain.py:136 forms/domain.py:144
+#: admin/forms/domain.py:88 admin/forms/domain.py:155 admin/forms/domain.py:163
#, python-format
msgid "A %s with this name already exists"
msgstr " %s という名前は、すでに存在しています"
-#: forms/domain.py:92 serializers.py:45
+#: admin/forms/domain.py:96 admin/serializers.py:45
#, fuzzy
#| msgid "No information available for this domain."
msgid "No authorized MX record found for this domain"
msgstr "このドメインに関する情報がありません。"
-#: forms/domain.py:114 serializers.py:55
+#: admin/forms/domain.py:108
+msgid "DKIM keys storage directory not configured"
+msgstr ""
+
+#: admin/forms/domain.py:129 admin/serializers.py:55
msgid "Cannot be greater than domain quota"
msgstr ""
-#: forms/domain.py:119
+#: admin/forms/domain.py:134
msgid "You can't define an unlimited quota."
msgstr ""
-#: forms/domain.py:136 forms/domain.py:141
+#: admin/forms/domain.py:155 admin/forms/domain.py:160
msgid "domain"
msgstr "ドメイン"
-#: forms/domain.py:190
+#: admin/forms/domain.py:209
msgid "Create a domain administrator"
msgstr "ドメイン管理者を作成する"
-#: forms/domain.py:193
+#: admin/forms/domain.py:212
msgid "Automatically create an administrator for this domain"
msgstr "自動的にドメインの管理者を作成する"
-#: forms/domain.py:198 templates/admin/domain_detail.html:101
-#: templates/admin/domain_headers.html:3
-#: templates/admin/identity_headers.html:2
-#: templates/admin/mx_domain_detail.html:9
+#: admin/forms/domain.py:217 admin/templates/admin/domain_detail.html:120
+#: admin/templates/admin/domain_headers.html:3
+#: admin/templates/admin/identity_headers.html:2
+#: admin/templates/admin/mx_domain_detail.html:9
msgid "Name"
msgstr "名前"
-#: forms/domain.py:201
+#: admin/forms/domain.py:220
msgid ""
"The administrator's name. Don't include the domain's name here, it will be "
"automatically appended."
@@ -447,209 +490,242 @@ msgstr ""
"管理者の名前\n"
"ここでは、ドメイン名を含めないでください、それが自動的に付加されます。"
-#: forms/domain.py:211
+#: admin/forms/domain.py:230
#, fuzzy
#| msgid "Create a domain administrator"
msgid "Generate a random password for the administrator."
msgstr "ドメイン管理者を作成する"
-#: forms/domain.py:217
+#: admin/forms/domain.py:236
msgid "With a mailbox"
msgstr ""
-#: forms/domain.py:220
+#: admin/forms/domain.py:239
#, fuzzy
#| msgid "Create a domain administrator"
msgid "Create a mailbox for the administrator."
msgstr "ドメイン管理者を作成する"
-#: forms/domain.py:226
+#: admin/forms/domain.py:245
msgid "Create aliases"
msgstr "エイリアスを作成"
-#: forms/domain.py:229
+#: admin/forms/domain.py:248
msgid "Automatically create standard aliases for this domain"
msgstr "自動的にドメインの標準的なエイリアスを作成する"
-#: forms/domain.py:245
+#: admin/forms/domain.py:264
msgid "Invalid format"
msgstr "不正なフォーマット"
-#: forms/domain.py:274
+#: admin/forms/domain.py:293
#, python-format
msgid "User '%s' already exists"
msgstr "ユーザー %s はすでに存在します"
-#: forms/domain.py:385
+#: admin/forms/domain.py:404
msgid "Domain modified"
msgstr "ドメインが修正されました"
-#: forms/domain.py:406
+#: admin/forms/domain.py:425
msgid "Options"
msgstr "オプション"
-#: forms/domain.py:414
+#: admin/forms/domain.py:433
msgid "New domain"
msgstr "新しいドメイン"
-#: forms/domain.py:427
+#: admin/forms/domain.py:446
msgid "Domain created"
msgstr "ドメインが作成されました"
-#: forms/export.py:9
+#: admin/forms/export.py:9
msgid "File name"
msgstr "ファイル名"
-#: forms/export.py:15 forms/import_.py:15
+#: admin/forms/export.py:15 admin/forms/import_.py:15
msgid "Separator"
msgstr "セパレーター"
-#: forms/forward.py:14
+#: admin/forms/forward.py:14
msgid "Recipient(s)"
msgstr "受信者"
-#: forms/forward.py:18
+#: admin/forms/forward.py:18
msgid "Indicate one or more recipients separated by a ','"
msgstr "\",\"で区切られた1つまたは複数の受信者を示します"
-#: forms/forward.py:21
+#: admin/forms/forward.py:21
msgid "Keep local copies"
msgstr "ローカルコピーを保持する"
-#: forms/forward.py:24
+#: admin/forms/forward.py:24
msgid "Forward messages and store copies into your local mailbox"
msgstr "メッセージを転送して、ローカルのメールボックスへコピーを格納します。"
-#: forms/import_.py:13
+#: admin/forms/import_.py:13
msgid "Select a file"
msgstr "ファイルを選択"
-#: forms/import_.py:21
+#: admin/forms/import_.py:21
msgid "Continue on error"
msgstr "エラーのときに続行する"
-#: forms/import_.py:22
+#: admin/forms/import_.py:22
msgid "Don't treat duplicated objects as error"
msgstr "重複したオブジェクトをエラーとして処理しない"
-#: forms/import_.py:40
+#: admin/forms/import_.py:40
msgid "Crypt passwords"
msgstr "パスワード暗号化"
-#: forms/import_.py:42
+#: admin/forms/import_.py:42
msgid "Check this option if passwords contained in your file are not crypted"
msgstr ""
"ファイルに含まれるパスワードが暗号化されていない場合は、このオプションを"
"チェックしてください"
-#: handlers.py:218
+#: admin/handlers.py:218
#, python-format
msgid "Account import failed (%s): domain does not exist"
msgstr "アカウントのインポートに失敗しました (%s): ドメインが存在しません"
-#: handlers.py:231 models/mailbox.py:342
+#: admin/handlers.py:231 admin/models/mailbox.py:342
msgid "Mailbox {} already exists"
msgstr "メールボックス {} はすでに存在します"
-#: handlers.py:239
+#: admin/handlers.py:239
#, python-format
msgid "Account import failed (%s): wrong quota value"
msgstr "アカウントのインポートに失敗しました (%s): 不正なクォータの値"
-#: handlers.py:279 templates/admin/_global_statistics_widget.html:17
-#: templates/admin/_per_domain_statistics_widget.html:8
-#: templates/admin/identities.html:5
+#: admin/handlers.py:279
+#: admin/templates/admin/_global_statistics_widget.html:17
+#: admin/templates/admin/_per_domain_statistics_widget.html:8
+#: admin/templates/admin/identities.html:5
msgid "Identities"
msgstr "ID"
-#: handlers.py:295 templates/admin/forward.html:2
+#: admin/handlers.py:295 admin/templates/admin/forward.html:2
msgid "Forward"
msgstr "転送先"
-#: lib.py:41
+#: admin/lib.py:44
msgid "A mailbox is required"
msgstr "メールボックスは必須です"
-#: lib.py:131
+#: admin/lib.py:134
msgid "You are not allowed to import domains"
msgstr "ドメインのインポートは許可されていません"
-#: lib.py:142
+#: admin/lib.py:145
msgid "You are not allowed to import domain aliases."
msgstr "ドメインエイリアスのインポートは許可されていません"
-#: management/commands/subcommands/_mx.py:125
+#: admin/lib.py:183 admin/tests/test_mx.py:122
+#, fuzzy, python-format
+#| msgid "No information available for this domain."
+msgid "No DNS records found for %s"
+msgstr "このドメインに関する情報がありません。"
+
+#: admin/lib.py:185 admin/tests/test_mx.py:125
+#, fuzzy, python-format
+#| msgid "No information available for this domain."
+msgid "No MX record for %s"
+msgstr "このドメインに関する情報がありません。"
+
+#: admin/lib.py:187 admin/tests/test_mx.py:126
+msgid "No working name servers found"
+msgstr ""
+
+#: admin/lib.py:190 admin/tests/test_mx.py:128
+#, python-format
+msgid "DNS resolution timeout, unable to query %s at the moment"
+msgstr ""
+
+#: admin/lib.py:201 admin/tests/test_mx.py:131
+#, python-format
+msgid "Unable to lookup ip addresses for %(domain)s; %(error)s"
+msgstr ""
+
+#: admin/lib.py:212 admin/tests/test_mx.py:134
+#, python-format
+msgid "Invalid IP address format for %(domain)s; %(addr)s"
+msgstr ""
+
+#: admin/management/commands/subcommands/_mx.py:136
msgid "[modoboa] DNSBL issue(s) for domain {}"
msgstr "[modoboa] ドメイン {} の DNSBL結果"
-#: management/commands/subcommands/_mx.py:145
+#: admin/management/commands/subcommands/_mx.py:156
msgid "Domain {} has no MX record"
msgstr ""
-#: management/commands/subcommands/_mx.py:156
+#: admin/management/commands/subcommands/_mx.py:167
#, python-brace-format
msgid "MX record for domain {0} is invalid: {1}"
msgstr ""
-#: management/commands/subcommands/_mx.py:173
+#: admin/management/commands/subcommands/_mx.py:184
msgid "[modoboa] MX issue(s) for domain {}"
msgstr ""
-#: models/alias.py:35 models/mailbox.py:97
+#: admin/models/alias.py:35 admin/models/mailbox.py:97
msgid "address"
msgstr "アドレス"
-#: models/alias.py:37
+#: admin/models/alias.py:37
msgid "The alias address."
msgstr "エイリアスアドレス"
-#: models/alias.py:42 models/domain.py:48 models/domain_alias.py:46
+#: admin/models/alias.py:42 admin/models/domain.py:48
+#: admin/models/domain_alias.py:47
msgid "enabled"
msgstr "有効"
-#: models/alias.py:43 models/domain_alias.py:47
+#: admin/models/alias.py:43 admin/models/domain_alias.py:48
msgid "Check to activate this alias"
msgstr "このエイリアスをアクティブにするために確認してください"
-#: models/alias.py:48 templates/admin/alias_detail.html:32
+#: admin/models/alias.py:48 admin/templates/admin/alias_detail.html:32
msgid "Description"
msgstr ""
-#: models/alias.py:50 templates/admin/alias_detail.html:29
+#: admin/models/alias.py:50 admin/templates/admin/alias_detail.html:29
msgid "Expire at"
msgstr ""
-#: models/alias.py:93
+#: admin/models/alias.py:93
msgid "alias"
msgstr "エイリアス"
-#: models/alias.py:125
+#: admin/models/alias.py:125
msgid "Invalid address"
msgstr "不正なアドレス"
-#: models/alias.py:146
+#: admin/models/alias.py:146
msgid "Local recipient {}@{} not found"
msgstr "ローカル受信者 {}@{} は見つかりません"
-#: models/alias.py:176
+#: admin/models/alias.py:176
#, python-format
msgid "Invalid line: %s"
msgstr "不正な行: %s"
-#: models/alias.py:182
+#: admin/models/alias.py:182
#, python-format
msgid "Domain '%s' does not exist"
msgstr "ドメイン %s は、存在しません"
-#: models/domain.py:30 models/domain_alias.py:39
+#: admin/models/domain.py:30 admin/models/domain_alias.py:39
msgid "name"
msgstr "名前"
-#: models/domain.py:31
+#: admin/models/domain.py:31
msgid "The domain name"
msgstr "ドメイン名"
-#: models/domain.py:35
+#: admin/models/domain.py:35
#, fuzzy
#| msgid ""
#| "Default quota (in MB) applied to freshly created domains with no value "
@@ -660,7 +736,7 @@ msgstr ""
"用されます。\n"
"値が0の場合は、クォータ制限はありません。"
-#: models/domain.py:43
+#: admin/models/domain.py:43
#, fuzzy
#| msgid ""
#| "Default quota (in MB) applied to freshly created domains with no value "
@@ -671,363 +747,439 @@ msgstr ""
"用されます。\n"
"値が0の場合は、クォータ制限はありません。"
-#: models/domain.py:49
+#: admin/models/domain.py:49
msgid "Check to activate this domain"
msgstr "このドメインをアクティブするために確認してください"
-#: models/domain.py:54
+#: admin/models/domain.py:54
#, fuzzy
#| msgid "Enable DNSBL checks"
msgid "Enable DNS checks"
msgstr "DNSBL チェックを有効にする"
-#: models/domain.py:55
+#: admin/models/domain.py:55
#, fuzzy
#| msgid "Check to activate this domain"
msgid "Check to enable DNS checks for this domain"
msgstr "このドメインをアクティブするために確認してください"
-#: models/domain.py:253 models/domain_alias.py:73
+#: admin/models/domain.py:62
+msgid "Enable DKIM signing"
+msgstr ""
+
+#: admin/models/domain.py:64
+msgid ""
+"If you activate this feature, a DKIM key will be generated for this domain."
+msgstr ""
+
+#: admin/models/domain.py:70
+msgid "Key length"
+msgstr ""
+
+#: admin/models/domain.py:285 admin/models/domain_alias.py:74
msgid "Invalid line"
msgstr "不正な行"
-#: models/domain.py:263
+#: admin/models/domain.py:295
#, fuzzy
#| msgid "No information available for this domain."
msgid "No authorized MX record found for domain {}"
msgstr "このドメインに関する情報がありません。"
-#: models/domain.py:270
+#: admin/models/domain.py:302
#, fuzzy
#| msgid "Invalid quota value for domain '%s'"
msgid "Invalid quota value for domain '{}'"
msgstr "不正なドメイン %s のクォータ値"
-#: models/domain.py:277
+#: admin/models/domain.py:309
#, fuzzy
#| msgid "Invalid quota value for domain '%s'"
msgid "Invalid default mailbox quota value for domain '{}'"
msgstr "不正なドメイン %s のクォータ値"
-#: models/domain.py:282
+#: admin/models/domain.py:314
msgid "Default mailbox quota cannot be greater than domain quota"
msgstr ""
-#: models/domain_alias.py:40
+#: admin/models/domain_alias.py:40
msgid "The alias name"
msgstr "エイリアス名"
-#: models/domain_alias.py:42
+#: admin/models/domain_alias.py:42
msgid "target"
msgstr "ターゲット"
-#: models/domain_alias.py:43
+#: admin/models/domain_alias.py:43
msgid "The domain this alias points to"
msgstr "ドメインこのエイリアスポイントへ"
-#: models/domain_alias.py:82
+#: admin/models/domain_alias.py:83
#, python-format
msgid "Unknown domain %s"
msgstr "不明なドメイン %s"
-#: models/mailbox.py:99
+#: admin/models/mailbox.py:99
msgid "Mailbox address (without the @domain.tld part)"
msgstr "メールボックスアドレス (@domain.tld 部分なし)"
-#: models/mailbox.py:165
+#: admin/models/mailbox.py:165
#, python-format
msgid "Failed to retrieve mailbox location (%s)"
msgstr "メールボックスの場所の取得に失敗しました (%s)"
-#: models/mailbox.py:258
+#: admin/models/mailbox.py:258
msgid "A quota is required"
msgstr "クォータは必須です"
-#: models/mailbox.py:264
+#: admin/models/mailbox.py:264
#, fuzzy
#| msgid "Domain created"
msgid "Domain quota exceeded"
msgstr "ドメインが作成されました"
-#: serializers.py:80 serializers.py:266 serializers.py:360
+#: admin/serializers.py:80 admin/serializers.py:266 admin/serializers.py:360
msgid "Permission denied."
msgstr "アクセス拒否"
-#: serializers.py:118
+#: admin/serializers.py:118
msgid ""
"List of administered domains (resellers and domain administrators only)."
msgstr "管理しているドメインのリスト (リセーラーとドメイン管理者のみ)"
-#: serializers.py:218
+#: admin/serializers.py:218
msgid "Not allowed for this role."
msgstr "このロールには許可されていません"
-#: serializers.py:228
+#: admin/serializers.py:228
msgid "Must be equal to mailbox full_address"
msgstr "メールボックス full_address に等しくなければなりません"
-#: serializers.py:253
+#: admin/serializers.py:253
msgid "Local domain {} does not exist"
msgstr "ローカルドメイン {} は、存在しません"
-#: serializers.py:347
+#: admin/serializers.py:347
msgid "A list of recipient"
msgstr ""
-#: serializers.py:358
+#: admin/serializers.py:358
msgid "Domain not found."
msgstr "ドメインが見つかりません"
-#: templates/admin/_domain_dnschecks_status.html:4
+#: admin/serializers.py:407
+#, fuzzy
+#| msgid "You don't have access to this domain"
+msgid "You don't have access to this domain."
+msgstr "このドメインにアクセスする権限がありません"
+
+#: admin/serializers.py:415
+#, fuzzy
+#| msgid "You don't have access to this domain"
+msgid "You don't have access to this mailbox."
+msgstr "このドメインにアクセスする権限がありません"
+
+#: admin/templates/admin/_domain_dkim_key.html:6
+#: admin/templates/admin/_domain_dkim_key.html:20
+msgid "Close"
+msgstr ""
+
+#: admin/templates/admin/_domain_dkim_key.html:7
+#, python-format
+msgid "DKIM public key for %(domain)s"
+msgstr ""
+
+#: admin/templates/admin/_domain_dkim_key.html:11
+#, fuzzy
+#| msgid "Invalid format"
+msgid "Raw format"
+msgstr "不正なフォーマット"
+
+#: admin/templates/admin/_domain_dkim_key.html:15
+#, fuzzy
+#| msgid "Invalid format"
+msgid "Bind/named format"
+msgstr "不正なフォーマット"
+
+#: admin/templates/admin/_domain_dnschecks_status.html:4
#, fuzzy
#| msgid "disabled"
msgctxt "checks"
msgid "Disabled"
msgstr "無効化"
-#: templates/admin/_domain_dnschecks_status.html:6
+#: admin/templates/admin/_domain_dnschecks_status.html:6
msgid "Awaiting checks"
msgstr ""
-#: templates/admin/_global_statistics_widget.html:4
+#: admin/templates/admin/_global_statistics_widget.html:4
#, fuzzy
#| msgid "Statistics"
msgid "Global statistics"
msgstr "統計情報"
-#: templates/admin/_global_statistics_widget.html:8
+#: admin/templates/admin/_global_statistics_widget.html:8
msgid "Quantity"
msgstr "数量"
-#: templates/admin/_global_statistics_widget.html:14
-#: templates/admin/domain_detail.html:45 templates/admin/domain_detail.html:81
+#: admin/templates/admin/_global_statistics_widget.html:14
+#: admin/templates/admin/domain_detail.html:37
+#: admin/templates/admin/domain_detail.html:73
msgid "Domain aliases"
msgstr "ドメインエイリアス"
-#: templates/admin/_per_domain_statistics_widget.html:4
+#: admin/templates/admin/_per_domain_statistics_widget.html:4
#, fuzzy
#| msgid "Per-domain counters"
msgid "Per-domain statistics"
msgstr "ドメインごとのカウンター"
-#: templates/admin/account_detail.html:16 templates/admin/alias_detail.html:16
-#: templates/admin/domain_detail.html:19
-#: templates/admin/identities_table.html:7
+#: admin/templates/admin/account_detail.html:16
+#: admin/templates/admin/alias_detail.html:16
+#: admin/templates/admin/domain_detail.html:19
+#: admin/templates/admin/identities_table.html:7
msgid "(disabled)"
msgstr ""
-#: templates/admin/account_detail.html:22 templates/admin/alias_detail.html:22
-#: templates/admin/domain_detail.html:25
+#: admin/templates/admin/account_detail.html:22
+#: admin/templates/admin/alias_detail.html:22
+#: admin/templates/admin/domain_detail.html:25
msgid "Summary"
msgstr ""
-#: templates/admin/account_detail.html:26
+#: admin/templates/admin/account_detail.html:26
msgid "Full name"
msgstr ""
-#: templates/admin/account_detail.html:32 templates/admin/alias_detail.html:26
+#: admin/templates/admin/account_detail.html:32
+#: admin/templates/admin/alias_detail.html:26
msgid "Created"
msgstr ""
-#: templates/admin/account_detail.html:35
+#: admin/templates/admin/account_detail.html:35
msgid "Last login"
msgstr ""
-#: templates/admin/account_detail.html:38
+#: admin/templates/admin/account_detail.html:38
msgid "Secondary email"
msgstr ""
-#: templates/admin/account_detail.html:38
-#: templates/admin/account_detail.html:41
+#: admin/templates/admin/account_detail.html:38
+#: admin/templates/admin/account_detail.html:41
msgid "Not defined"
msgstr ""
-#: templates/admin/account_detail.html:41
+#: admin/templates/admin/account_detail.html:41
msgid "Phone number"
msgstr ""
-#: templates/admin/account_detail.html:55
+#: admin/templates/admin/account_detail.html:55
msgid "Administered domains"
msgstr ""
-#: templates/admin/account_detail.html:61
+#: admin/templates/admin/account_detail.html:61
msgid "No domain defined."
msgstr ""
-#: templates/admin/account_detail.html:75
+#: admin/templates/admin/account_detail.html:75
msgid "Aliases"
msgstr ""
-#: templates/admin/account_detail.html:81
+#: admin/templates/admin/account_detail.html:81
msgid "No alias defined"
msgstr ""
-#: templates/admin/account_detail.html:87
+#: admin/templates/admin/account_detail.html:87
msgid "Additional sender addresses"
msgstr ""
-#: templates/admin/account_detail.html:93
+#: admin/templates/admin/account_detail.html:93
msgid "No sender address defined"
msgstr ""
-#: templates/admin/account_general_form.html:12
-#: templates/admin/aliasform.html:13
+#: admin/templates/admin/account_general_form.html:12
+#: admin/templates/admin/aliasform.html:13
msgid "Domain is disabled"
msgstr "ドメインが無効です"
-#: templates/admin/alias_detail.html:16 templates/admin/identities.html:33
+#: admin/templates/admin/alias_detail.html:16
+#: admin/templates/admin/identities.html:33
msgid "Alias"
msgstr ""
-#: templates/admin/alias_detail.html:27
+#: admin/templates/admin/alias_detail.html:27
msgid "Modified"
msgstr ""
-#: templates/admin/dnsbl_domain_detail.html:10
+#: admin/templates/admin/dnsbl_domain_detail.html:10
msgid "Provider"
msgstr "プロバイダー"
-#: templates/admin/dnsbl_domain_detail.html:11
-#: templates/admin/identities_quota_headers.html:2
-#: templates/admin/mx_domain_detail.html:10
+#: admin/templates/admin/dnsbl_domain_detail.html:11
+#: admin/templates/admin/identities_quota_headers.html:2
+#: admin/templates/admin/mx_domain_detail.html:10
msgid "Address"
msgstr "アドレス"
-#: templates/admin/dnsbl_domain_detail.html:12
+#: admin/templates/admin/dnsbl_domain_detail.html:12
+#: admin/templates/admin/domain_detail.html:96
msgid "Status"
msgstr "ステータス"
-#: templates/admin/dnsbl_domain_detail.html:21
+#: admin/templates/admin/dnsbl_domain_detail.html:21
msgid "listed"
msgstr "一覧"
-#: templates/admin/dnsbl_domain_detail.html:29
+#: admin/templates/admin/dnsbl_domain_detail.html:29
msgid "Everything is fine, this domain is not listed."
msgstr "すべて良好です。このドメインは載っていません。"
-#: templates/admin/dnsbl_domain_detail.html:32
+#: admin/templates/admin/dnsbl_domain_detail.html:32
msgid "No information available for this domain."
msgstr "このドメインに関する情報がありません。"
-#: templates/admin/domain_detail.html:30 templates/admin/domain_headers.html:7
-#, fuzzy
-#| msgid "Status"
-msgid "DNS status"
-msgstr "ステータス"
-
-#: templates/admin/domain_detail.html:37
+#: admin/templates/admin/domain_detail.html:29
msgid "Creation date"
msgstr "作成日時"
-#: templates/admin/domain_detail.html:41
+#: admin/templates/admin/domain_detail.html:33
msgid "Last modification date"
msgstr "最終修正日時"
-#: templates/admin/domain_detail.html:53
+#: admin/templates/admin/domain_detail.html:45
msgid "Mailbox aliases"
msgstr "メールボックスエイリアス"
-#: templates/admin/domain_detail.html:58 templates/admin/domain_detail.html:65
-#: templates/admin/domain_detail.html:66 templates/admin/domain_detail.html:73
-#: templates/admin/domain_general_form.html:4
-#: templates/admin/domain_general_form.html:5
-#: templates/admin/domains_quotas.html:11
-#: templates/admin/domains_quotas.html:12 templates/admin/mailform.html:7
-#: templates/admin/newdomainform.html:3
+#: admin/templates/admin/domain_detail.html:50
+#: admin/templates/admin/domain_detail.html:57
+#: admin/templates/admin/domain_detail.html:58
+#: admin/templates/admin/domain_detail.html:65
+#: admin/templates/admin/domain_general_form.html:4
+#: admin/templates/admin/domain_general_form.html:5
+#: admin/templates/admin/domains_quotas.html:11
+#: admin/templates/admin/domains_quotas.html:12
+#: admin/templates/admin/mailform.html:7
+#: admin/templates/admin/newdomainform.html:3
msgid "MB"
msgstr "MB"
-#: templates/admin/domain_detail.html:62
+#: admin/templates/admin/domain_detail.html:54
#, fuzzy
#| msgid "Usage (%%)"
msgid "Usage"
msgstr "使用量 (%%)"
-#: templates/admin/domain_detail.html:65 templates/admin/domains_quotas.html:11
+#: admin/templates/admin/domain_detail.html:57
+#: admin/templates/admin/domains_quotas.html:11
msgctxt "quota"
msgid "used"
msgstr ""
-#: templates/admin/domain_detail.html:66 templates/admin/domains_quotas.html:12
+#: admin/templates/admin/domain_detail.html:58
+#: admin/templates/admin/domains_quotas.html:12
msgid "allocated"
msgstr ""
-#: templates/admin/domain_detail.html:98
+#: admin/templates/admin/domain_detail.html:91
+msgid "DNS"
+msgstr ""
+
+#: admin/templates/admin/domain_detail.html:103
+msgid "DKIM key"
+msgstr ""
+
+#: admin/templates/admin/domain_detail.html:107
+msgid "Show key"
+msgstr ""
+
+#: admin/templates/admin/domain_detail.html:110
+msgid "Not generated"
+msgstr ""
+
+#: admin/templates/admin/domain_detail.html:117
msgid "Administrators"
msgstr "管理者"
-#: templates/admin/domain_detail.html:110 templatetags/admin_tags.py:268
+#: admin/templates/admin/domain_detail.html:129
+#: admin/templatetags/admin_tags.py:268
msgid "Remove this permission"
msgstr "このパーミッションを削除"
-#: templates/admin/domain_detail.html:115
+#: admin/templates/admin/domain_detail.html:134
msgid "No domain administrator defined yet."
msgstr "ドメイン管理者が指定されていません"
-#: templates/admin/domain_headers.html:5
-#: templates/admin/identity_headers.html:4
+#: admin/templates/admin/domain_headers.html:5
+#: admin/templates/admin/identity_headers.html:4
msgid "Tags"
msgstr "タグ"
-#: templates/admin/domain_headers.html:9
-#: templates/admin/identity_headers.html:5
+#: admin/templates/admin/domain_headers.html:7
+#, fuzzy
+#| msgid "Status"
+msgid "DNS status"
+msgstr "ステータス"
+
+#: admin/templates/admin/domain_headers.html:9
+#: admin/templates/admin/identity_headers.html:5
msgid "Actions"
msgstr "アション"
-#: templates/admin/domain_options_form.html:10
+#: admin/templates/admin/domain_options_form.html:10
msgid "You can't create a new domain administrator"
msgstr "新しいドメイン管理者を作成できません"
-#: templates/admin/domains.html:26 templates/admin/identities.html:29
+#: admin/templates/admin/domains.html:28
+#: admin/templates/admin/identities.html:29
msgid "Add"
msgstr ""
-#: templates/admin/domains_quota_headers.html:3
-#: templates/admin/identities_quota_headers.html:4
+#: admin/templates/admin/domains_quota_headers.html:3
+#: admin/templates/admin/identities_quota_headers.html:4
msgid "Limit"
msgstr "制限"
-#: templates/admin/domains_quota_headers.html:4
+#: admin/templates/admin/domains_quota_headers.html:4
msgid "Used"
msgstr ""
-#: templates/admin/domains_quota_headers.html:5
+#: admin/templates/admin/domains_quota_headers.html:5
#, fuzzy
#| msgid "Alias created"
msgid "Allocated"
msgstr "エイリアスが作成されました"
-#: templates/admin/domains_quota_headers.html:6
-#: templates/admin/identities_quota_headers.html:5
+#: admin/templates/admin/domains_quota_headers.html:6
+#: admin/templates/admin/identities_quota_headers.html:5
#, python-format
msgid "Usage (%%)"
msgstr "使用量 (%%)"
-#: templates/admin/domains_table.html:5
+#: admin/templates/admin/domains_table.html:5
msgid "disabled"
msgstr "無効化"
-#: templates/admin/forward.html:2
+#: admin/templates/admin/forward.html:2
msgid "Automatically forward emails to another address"
msgstr "電子メールをほかのアドレスへ自動的に転送します"
-#: templates/admin/forward.html:9 views/alias.py:93
+#: admin/templates/admin/forward.html:9 admin/views/alias.py:93
msgid "Update"
msgstr "更新"
-#: templates/admin/identities.html:32
+#: admin/templates/admin/identities.html:32
msgid "Account"
msgstr ""
-#: templates/admin/identities_quota_headers.html:3
+#: admin/templates/admin/identities_quota_headers.html:3
msgid "Value"
msgstr "値"
-#: templates/admin/identity_headers.html:3
+#: admin/templates/admin/identity_headers.html:3
msgid "Fullname/Recipient"
msgstr "フルネーム / 受信者"
-#: templates/admin/import_domains_form.html:6
+#: admin/templates/admin/import_domains_form.html:6
#, fuzzy
#| msgid ""
#| "Provide a CSV file where lines respect one of the following formats:\n"
@@ -1057,7 +1209,7 @@ msgstr ""
"各行の最初の要素は必須で、上の値に等しくなければなりません。
\n"
"セパレータとして別の文字を使用することができます。
\n"
-#: templates/admin/import_identities_form.html:6
+#: admin/templates/admin/import_identities_form.html:6
#, fuzzy
#| msgid ""
#| "Provide a CSV file where lines respect one of the following formats:\n"
@@ -1086,43 +1238,43 @@ msgstr ""
"各行の最初の要素は必須で、上の値に等しくなければなりません。
\n"
"セパレータとして別の文字を使用することができます。
\n"
-#: templates/admin/importform.html:6
+#: admin/templates/admin/importform.html:6
msgid "Help"
msgstr "ヘルプ"
-#: templates/admin/importform.html:13
+#: admin/templates/admin/importform.html:13
msgid "Importing..."
msgstr "インポート中 ..."
-#: templates/admin/index.html:6
+#: admin/templates/admin/index.html:6
msgid "Admin"
msgstr ""
-#: templates/admin/mailboxes_raw.html:3
+#: admin/templates/admin/mailboxes_raw.html:3
msgid "Choose a value"
msgstr "値を選択してください"
-#: templates/admin/mailform.html:7
+#: admin/templates/admin/mailform.html:7
msgid "Use domain default value"
msgstr "ドメインのデフォルト値を使う"
-#: templates/admin/mx_domain_detail.html:11
+#: admin/templates/admin/mx_domain_detail.html:11
#, fuzzy
#| msgid "Update"
msgid "Updated"
msgstr "更新"
-#: templates/admin/mx_domain_detail.html:23
+#: admin/templates/admin/mx_domain_detail.html:23
msgid "This IP does not match any of the valid MXs defined in parameters"
msgstr ""
-#: templates/admin/mx_domain_detail.html:36
+#: admin/templates/admin/mx_domain_detail.html:36
#, fuzzy
#| msgid "No information available for this domain."
msgid "No MX record found for this domain."
msgstr "このドメインに関する情報がありません。"
-#: templates/admin/notifications/domain_in_dnsbl.html:3
+#: admin/templates/admin/notifications/domain_in_dnsbl.html:3
#, python-format
msgid ""
"Modoboa detected that domain %(domain)s is listed by the following DNSBL "
@@ -1131,7 +1283,7 @@ msgstr ""
"Modoboa は、ドメイン %(domain)s が、以下の DNSBL プロバイダーに載っていること"
"を検出しました:"
-#: templates/admin/notifications/domain_in_dnsbl.html:11
+#: admin/templates/admin/notifications/domain_in_dnsbl.html:11
msgid ""
"The domain's reputation will be affected and there is a chance that emails "
"coming from it are considered as spam. You should contact those providers "
@@ -1141,138 +1293,139 @@ msgstr ""
"はスパムと見なされる可能性があります。あなたは、これらのプロバイダーに連絡し"
"て、検出されたIPアドレスを登録解除してもらう必要があります。"
-#: templates/admin/notifications/domain_invalid_mx.html:3
+#: admin/templates/admin/notifications/domain_invalid_mx.html:3
#, python-format
msgid "Modoboa detected that domain %(domain)s has no valid MX record:"
msgstr ""
-#: templates/admin/searchform.html:6
+#: admin/templates/admin/searchform.html:6
msgid "Search"
msgstr "検索"
-#: templatetags/admin_tags.py:22
+#: admin/templatetags/admin_tags.py:22
msgid "enabled_m"
msgstr "enabled_m"
-#: templatetags/admin_tags.py:22
+#: admin/templatetags/admin_tags.py:22
msgid "enabled_f"
msgstr "enabled_f"
-#: templatetags/admin_tags.py:48
+#: admin/templatetags/admin_tags.py:48
msgid "List domains"
msgstr "ドメイン一覧を表示"
-#: templatetags/admin_tags.py:53 templatetags/admin_tags.py:108
+#: admin/templatetags/admin_tags.py:53 admin/templatetags/admin_tags.py:108
msgid "List quotas"
msgstr "クォータ一覧を表示"
-#: templatetags/admin_tags.py:65 templatetags/admin_tags.py:113
-#: views/import_.py:101 views/import_.py:123
+#: admin/templatetags/admin_tags.py:65 admin/templatetags/admin_tags.py:113
+#: admin/views/import_.py:89 admin/views/import_.py:111
msgid "Import"
msgstr "インポート"
-#: templatetags/admin_tags.py:71 templatetags/admin_tags.py:119
-#: views/export.py:44 views/export.py:74
+#: admin/templatetags/admin_tags.py:71 admin/templatetags/admin_tags.py:119
+#: admin/views/export.py:43 admin/views/export.py:71
msgid "Export"
msgstr "エクスポート"
-#: templatetags/admin_tags.py:103
+#: admin/templatetags/admin_tags.py:103
msgid "List identities"
msgstr "ID 一覧を表示"
-#: templatetags/admin_tags.py:138
+#: admin/templatetags/admin_tags.py:138
msgid "View the domain's identities"
msgstr "ドメインの ID を表示"
-#: templatetags/admin_tags.py:144 templatetags/admin_tags.py:187
-#: templatetags/admin_tags.py:200
+#: admin/templatetags/admin_tags.py:144 admin/templatetags/admin_tags.py:187
+#: admin/templatetags/admin_tags.py:200
msgid "Edit {}"
msgstr "{} を編集"
-#: templatetags/admin_tags.py:154 templatetags/admin_tags.py:191
-#: templatetags/admin_tags.py:205
+#: admin/templatetags/admin_tags.py:154 admin/templatetags/admin_tags.py:191
+#: admin/templatetags/admin_tags.py:205
#, python-format
msgid "Delete %s?"
msgstr "%s を削除しますか?"
-#: views/alias.py:35
+#: admin/views/alias.py:35
msgid "Alias with this name already exists"
msgstr "このエイリアス名がすでに存在しています"
-#: views/alias.py:60
+#: admin/views/alias.py:60
msgid "Create"
msgstr "作成"
-#: views/alias.py:72
+#: admin/views/alias.py:72
msgid "New alias"
msgstr "新しいエイリアス"
-#: views/alias.py:73
+#: admin/views/alias.py:73
msgid "Alias created"
msgstr "エイリアスが作成されました"
-#: views/alias.py:85
+#: admin/views/alias.py:85
msgid "Alias modified"
msgstr "エイリアスは修正されました"
-#: views/alias.py:109
+#: admin/views/alias.py:109
msgid "Alias deleted"
msgid_plural "Aliases deleted"
msgstr[0] ""
-#: views/dns.py:32
+#: admin/views/dns.py:32
msgid "MX records of {}"
msgstr ""
-#: views/dns.py:55
+#: admin/views/dns.py:55
msgid "DNSBL summary for {}"
msgstr "{} のDNSBL 要約"
-#: views/domain.py:190
+#: admin/views/domain.py:188
msgid "You can't delete your own domain"
msgstr "あなた自身のドメインは削除できません"
-#: views/domain.py:193
+#: admin/views/domain.py:191
msgid "Domain deleted"
msgid_plural "Domains deleted"
msgstr[0] "ドメインを削除しました"
-#: views/export.py:43
+#: admin/views/export.py:42
msgid "Export identities"
msgstr "ID をエクスポート"
-#: views/export.py:73
+#: admin/views/export.py:70
msgid "Export domains"
msgstr "ドメインをエクスポート"
-#: views/identity.py:113 views/identity.py:206 views/identity.py:211
+#: admin/views/identity.py:113 admin/views/identity.py:206
+#: admin/views/identity.py:211
msgid "Invalid request"
msgstr "不正なリクエスト"
-#: views/identity.py:196
+#: admin/views/identity.py:196
msgid "Account deleted"
msgid_plural "Accounts deleted"
msgstr[0] "アカウントを削除しました"
-#: views/import_.py:77
+#: admin/views/import_.py:65
#, python-format
msgid "Object already exists: %s"
msgstr "オブジェクトはすでに存在します: %s"
-#: views/import_.py:81
+#: admin/views/import_.py:69
#, python-format
msgid "%d objects imported successfully"
msgstr "%d オブジェクトのインポートに成功しました"
-#: views/import_.py:100
+#: admin/views/import_.py:88
msgid "Import domains"
msgstr "ドメインをインポート"
-#: views/import_.py:122
+#: admin/views/import_.py:110
msgid "Import identities"
msgstr "ID をインポート"
-#: views/user.py:40
+#: admin/views/user.py:40
msgid "Forward updated"
msgstr "転送先が更新されました"
diff --git a/modoboa/admin/locale/nl_NL/LC_MESSAGES/django.po b/modoboa/admin/locale/nl_NL/LC_MESSAGES/django.po
index fe0f34a40..001c339d7 100644
--- a/modoboa/admin/locale/nl_NL/LC_MESSAGES/django.po
+++ b/modoboa/admin/locale/nl_NL/LC_MESSAGES/django.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-12-03 12:51+0100\n"
+"POT-Creation-Date: 2018-01-25 09:09+0100\n"
"PO-Revision-Date: 2014-12-31 11:37+0000\n"
"Last-Translator: TuxBrother \n"
"Language-Team: Dutch (Netherlands) (http://www.transifex.com/projects/p/"
@@ -20,57 +20,76 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: app_settings.py:20 handlers.py:269
-#: templates/admin/_global_statistics_widget.html:11
-#: templates/admin/domains.html:4
+#: admin/app_settings.py:22 admin/handlers.py:269
+#: admin/templates/admin/_global_statistics_widget.html:11
+#: admin/templates/admin/domains.html:5
msgid "Domains"
msgstr "Domeinen"
-#: app_settings.py:23
+#: admin/app_settings.py:25
msgid "Enable MX checks"
msgstr ""
-#: app_settings.py:26
+#: admin/app_settings.py:28
msgid "Check that every domain has a valid MX record"
msgstr "Controlleer of ieder domein een valide MX record heeft"
-#: app_settings.py:31
+#: admin/app_settings.py:33
msgid "Valid MXs"
msgstr "Correcte MX-records"
-#: app_settings.py:34
+#: admin/app_settings.py:36
msgid ""
"A list of IP or network address every MX record should match. A warning will "
"be sent if a record does not respect it."
msgstr ""
-#: app_settings.py:42
+#: admin/app_settings.py:44
msgid "New domains must use authorized MX(s)"
msgstr ""
-#: app_settings.py:45
+#: admin/app_settings.py:47
msgid ""
"Prevent the creation of a new domain if its MX record does not use one of "
"the defined addresses."
msgstr ""
-#: app_settings.py:51
+#: admin/app_settings.py:53
msgid "Enable DNSBL checks"
msgstr "Zet DNSBL controle aan"
-#: app_settings.py:54
+#: admin/app_settings.py:56
msgid "Check every domain against major DNSBL providers"
msgstr "Controlleer ieder domein bij de grote DNSBL providers"
-#: app_settings.py:58 templates/admin/domain_detail.html:49
+#: admin/app_settings.py:61
+msgid "DKIM keys storage directory"
+msgstr ""
+
+#: admin/app_settings.py:64
+msgid ""
+"Absolute path of the directory where DKIM private keys will be stored. Make "
+"sure this directory belongs to root user and is not readable by the outside "
+"world."
+msgstr ""
+
+#: admin/app_settings.py:72
+msgid "Default DKIM key length"
+msgstr ""
+
+#: admin/app_settings.py:76
+msgid "Default length in bits for newly generated DKIM keys."
+msgstr ""
+
+#: admin/app_settings.py:80 admin/templates/admin/domain_detail.html:41
msgid "Mailboxes"
msgstr "Mailboxen"
-#: app_settings.py:61
+#: admin/app_settings.py:83
msgid "Handle mailboxes on filesystem"
msgstr "Pas mailboxen op het bestandssysteem aan"
-#: app_settings.py:64
+#: admin/app_settings.py:86
msgid ""
"Rename or remove mailboxes on the filesystem when they get renamed or "
"removed within Modoboa"
@@ -78,20 +97,20 @@ msgstr ""
"Hernoem of verwijder mailboxen op het bestandssysteem wanner ze hernoemd of "
"verwijderd worden in Modoboa."
-#: app_settings.py:70
+#: admin/app_settings.py:92
msgid "Mailboxes owner"
msgstr "Eigenaar van de mailboxen"
-#: app_settings.py:73
+#: admin/app_settings.py:95
msgid "The UNIX account who owns mailboxes on the filesystem"
msgstr ""
"De UNIX account die de rechten heeft tot de mailboxen op het bestandssysteem"
-#: app_settings.py:78
+#: admin/app_settings.py:100
msgid "Default domain quota"
msgstr "Standaard domein quota"
-#: app_settings.py:81
+#: admin/app_settings.py:103
msgid ""
"Default quota (in MB) applied to freshly created domains with no value "
"specified. A value of 0 means no quota."
@@ -99,13 +118,14 @@ msgstr ""
"Standaard quota (in MB) om op nieuw aangemaakte domeinen zonder waarde toe "
"te passen. Een waarde van 0 betekend geen quota."
-#: app_settings.py:87 models/domain.py:40 templates/admin/domain_detail.html:72
+#: admin/app_settings.py:109 admin/models/domain.py:40
+#: admin/templates/admin/domain_detail.html:64
#, fuzzy
#| msgid "Default domain quota"
msgid "Default mailbox quota"
msgstr "Standaard domein quota"
-#: app_settings.py:90
+#: admin/app_settings.py:112
#, fuzzy
#| msgid ""
#| "Default quota (in MB) applied to freshly created domains with no value "
@@ -117,62 +137,73 @@ msgstr ""
"Standaard quota (in MB) om op nieuw aangemaakte domeinen zonder waarde toe "
"te passen. Een waarde van 0 betekend geen quota."
-#: app_settings.py:96
+#: admin/app_settings.py:118
msgid "Automatic account removal"
msgstr "Automatish een account verwijderen"
-#: app_settings.py:99
+#: admin/app_settings.py:121
msgid "When a mailbox is removed, also remove the associated account"
msgstr ""
"Als een mailbox word verwijderd, verwijder dan ook de bijbehorende account"
-#: app_settings.py:103
+#: admin/app_settings.py:125
msgid "Automatic domain/mailbox creation"
msgstr "Domein en mailbox automatisch aanmaken"
-#: app_settings.py:106
+#: admin/app_settings.py:128
msgid "Create a domain and a mailbox when an account is automatically created."
msgstr ""
"Maak een domein en mailbox aan wanneer een account automatisch is aangemaakt."
-#: app_settings.py:112
+#: admin/app_settings.py:134
msgid "Create an alias when a mailbox is renamed"
msgstr "Maak een alias aan wanneer een mailbox word hernoemd"
-#: app_settings.py:115
+#: admin/app_settings.py:137
msgid "Create an alias using the old address when a mailbox is renamed."
msgstr ""
"Maak een alias aan met het oude adres wanneer een mailbox word hernoemd"
-#: app_settings.py:164 app_settings.py:172 forms/account.py:331
+#: admin/app_settings.py:186 admin/app_settings.py:194
+#: admin/forms/account.py:331
msgid "Must be a positive integer"
msgstr "Dit moet een positive integer zijn."
-#: app_settings.py:186
+#: admin/app_settings.py:204
+#, fuzzy
+#| msgid "Domain modified"
+msgid "Directory not found."
+msgstr "Domein gewijzigd"
+
+#: admin/app_settings.py:210
+msgid "openssl not found, please make sure it is installed."
+msgstr ""
+
+#: admin/app_settings.py:224
msgid "Define at least one authorized network / address"
msgstr ""
-#: app_settings.py:196
+#: admin/app_settings.py:234
msgid "Administration"
msgstr "Administratie"
-#: constants.py:99 forms/alias.py:49
-#: templates/admin/_per_domain_statistics_widget.html:7
-#: templates/admin/domains_quota_headers.html:2
+#: admin/constants.py:99 admin/forms/alias.py:49
+#: admin/templates/admin/_per_domain_statistics_widget.html:7
+#: admin/templates/admin/domains_quota_headers.html:2
msgid "Domain"
msgstr "Domein"
-#: constants.py:100
+#: admin/constants.py:100
#, fuzzy
#| msgid "New domain"
msgid "Relay domain"
msgstr "Nieuw domein"
-#: forms/account.py:38 templates/admin/domain_detail.html:101
+#: admin/forms/account.py:38 admin/templates/admin/domain_detail.html:120
msgid "Username"
msgstr "Gebruikersnaam"
-#: forms/account.py:40
+#: admin/forms/account.py:40
msgid ""
"The user's name. Must be a valid e-mail address for simple users or "
"administrators with a mailbox."
@@ -180,79 +211,80 @@ msgstr ""
"De naam van de gebruiker. Moet een geldig e-mail adres zijn voor gebruikers "
"of administrators met een mailbox."
-#: forms/account.py:45 templates/admin/account_detail.html:29
+#: admin/forms/account.py:45 admin/templates/admin/account_detail.html:29
msgid "Role"
msgstr "Rol"
-#: forms/account.py:46
+#: admin/forms/account.py:46
msgid "Choose"
msgstr "Kiezen"
-#: forms/account.py:47
+#: admin/forms/account.py:47
msgid "What level of permission this user will have"
msgstr "Welk niveau van rechten deze gebruiker zal hebben"
-#: forms/account.py:50 forms/domain.py:208
+#: admin/forms/account.py:50 admin/forms/domain.py:227
#, fuzzy
#| msgid "Invalid request"
msgid "Random password"
msgstr "Willekeuring wachtwoord"
-#: forms/account.py:52
+#: admin/forms/account.py:52
msgid ""
"Generate a random password. If you're updating this account and check this "
"box, a new password will be generated."
msgstr ""
-#: forms/account.py:58
+#: admin/forms/account.py:58
msgid "Password"
msgstr "Wachtwoord"
-#: forms/account.py:63
+#: admin/forms/account.py:63
msgid "Confirmation"
msgstr "Bevestiging"
-#: forms/account.py:66
+#: admin/forms/account.py:66
msgid "Enter the same password as above, for verification."
msgstr "Herhaal wachtwoord ter verificatie"
-#: forms/account.py:78
+#: admin/forms/account.py:78
msgid "Enabled"
msgstr "Actief"
-#: forms/account.py:172
+#: admin/forms/account.py:172
msgid "Only super administrators are allowed for this mode"
msgstr "Alleen super administrators mogen dit"
-#: forms/account.py:183 forms/account.py:185 forms/domain.py:254
-#: forms/domain.py:257 serializers.py:241
+#: admin/forms/account.py:183 admin/forms/account.py:185
+#: admin/forms/domain.py:144 admin/forms/domain.py:273
+#: admin/forms/domain.py:276 admin/serializers.py:241
#, fuzzy
#| msgid "A mailbox is required"
msgid "This field is required."
msgstr "Een mailbox is benodigd"
-#: forms/account.py:191
+#: admin/forms/account.py:191
msgid "The two password fields didn't match."
msgstr "De wachtwoorden komen niet overeen."
-#: forms/account.py:204
+#: admin/forms/account.py:204
msgid "You can't disable your own account"
msgstr "U kunt uw eigen account niet uitschakelen"
-#: forms/account.py:225
+#: admin/forms/account.py:225
msgid "E-mail"
msgstr "E-mail"
-#: forms/account.py:227
+#: admin/forms/account.py:227
msgid "Create an alias using the old address"
msgstr "Maak een alias aan met het oude adres"
-#: forms/account.py:232 templates/admin/account_detail.html:45
-#: templates/admin/domain_detail.html:57
+#: admin/forms/account.py:232 admin/templates/admin/account_detail.html:45
+#: admin/templates/admin/domain_detail.html:49
msgid "Quota"
msgstr "Quota"
-#: forms/account.py:234
+#: admin/forms/account.py:234
msgid ""
"Quota in MB for this mailbox. Define a custom value or use domain's default "
"one. Leave empty to define an unlimited value (not allowed for domain "
@@ -262,12 +294,12 @@ msgstr ""
"stanaard waarde van het domein. Laat leeg om een ongelimiteerde waarde te "
"definieren (niet toegestaan voor domein administrators)."
-#: forms/account.py:242 forms/domain.py:39
-#: templates/admin/domain_headers.html:4
+#: admin/forms/account.py:242 admin/forms/domain.py:39
+#: admin/templates/admin/domain_headers.html:4
msgid "Alias(es)"
msgstr "Alias(sen)"
-#: forms/account.py:245
+#: admin/forms/account.py:245
#, fuzzy
#| msgid ""
#| "Alias(es) of this mailbox. Indicate only one address per input, press "
@@ -282,13 +314,13 @@ msgstr ""
"ENTER om een nieuwe regel te krijgen. Gebruik een wildcard '*' om een 'catch-"
"all' adres te maken (bijvoorbeeld: *@domein.tld)."
-#: forms/account.py:251
+#: admin/forms/account.py:251
#, fuzzy
#| msgid "Invalid request"
msgid "Sender addresses"
msgstr "Ongeldig verzoek"
-#: forms/account.py:254
+#: admin/forms/account.py:254
#, fuzzy
#| msgid ""
#| "Mailbox(es) this alias will point to. Indicate only one address per "
@@ -301,68 +333,70 @@ msgstr ""
"Mailbox(en) waarnaar deze alias zal verwijzen. Geef slechts een adres per "
"regel op, en toets ENTER om een nieuwe regel te krijgen."
-#: forms/account.py:309 forms/alias.py:94 models/mailbox.py:315
+#: admin/forms/account.py:309 admin/forms/alias.py:94
+#: admin/models/mailbox.py:315
msgid "Domain does not exist"
msgstr "Domein bestaat niet"
-#: forms/account.py:341
+#: admin/forms/account.py:341
#, fuzzy
#| msgid "Domain does not exist"
msgid "Local domain does not exist"
msgstr "Domein bestaat niet"
-#: forms/account.py:345 forms/account.py:353 forms/alias.py:97
+#: admin/forms/account.py:345 admin/forms/account.py:353
+#: admin/forms/alias.py:97
msgid "You don't have access to this domain"
msgstr "U heeft geen toegang tot dit domein"
-#: forms/account.py:452
+#: admin/forms/account.py:452
msgid "Domain(s)"
msgstr "Domein(en)"
-#: forms/account.py:454
+#: admin/forms/account.py:454
msgid "Domain(s) that user administrates"
msgstr "Domein(en) die gebruiker mag beheren"
-#: forms/account.py:500 forms/account.py:590 forms/domain.py:325
-#: forms/domain.py:395
+#: admin/forms/account.py:500 admin/forms/account.py:590
+#: admin/forms/domain.py:344 admin/forms/domain.py:414
msgid "General"
msgstr "Algemeen"
-#: forms/account.py:504
+#: admin/forms/account.py:504
msgid "Profile"
msgstr "Profiel"
-#: forms/account.py:508 forms/account.py:596
+#: admin/forms/account.py:508 admin/forms/account.py:596
msgid "Mail"
msgstr "Mail"
-#: forms/account.py:511
+#: admin/forms/account.py:511
msgid "Permissions"
msgstr "Rechten"
-#: forms/account.py:579
+#: admin/forms/account.py:579
msgid "Account updated"
msgstr "Account aangepast"
-#: forms/account.py:604
+#: admin/forms/account.py:604
msgid "New account"
msgstr "Nieuw account"
-#: forms/account.py:616
+#: admin/forms/account.py:614
msgid "Account created"
msgstr "Account aangemaakt"
-#: forms/alias.py:26
+#: admin/forms/alias.py:26
#, fuzzy
#| msgid "Invalid request"
msgid "Random address"
msgstr "Willekeuring adres"
-#: forms/alias.py:29
+#: admin/forms/alias.py:29
msgid "Email address"
msgstr "Email adres"
-#: forms/alias.py:31
+#: admin/forms/alias.py:31
#, fuzzy
#| msgid ""
#| "The alias address (without the domain part). For a 'catch-all' address, "
@@ -374,11 +408,11 @@ msgstr ""
"Het alias adres (zonder het domein deel). Voor een 'catch-all' adres, vul "
"een * in."
-#: forms/alias.py:37 templates/admin/alias_detail.html:37
+#: admin/forms/alias.py:37 admin/templates/admin/alias_detail.html:37
msgid "Recipients"
msgstr "Ontvangers"
-#: forms/alias.py:39
+#: admin/forms/alias.py:39
#, fuzzy
#| msgid ""
#| "Mailbox(es) this alias will point to. Indicate only one address per "
@@ -390,21 +424,22 @@ msgstr ""
"Mailbox(en) waarnaar deze alias zal verwijzen. Geef slechts een adres per "
"regel op, en toets ENTER om een nieuwe regel te krijgen."
-#: forms/alias.py:114 forms/alias.py:116
+#: admin/forms/alias.py:114 admin/forms/alias.py:116
#, fuzzy
#| msgid "A mailbox is required"
msgid "This field is required"
msgstr "Een mailbox is benodigd"
-#: forms/alias.py:120
+#: admin/forms/alias.py:120
msgid "No recipient defined"
msgstr "Geen ontvanger opgegeven"
-#: forms/domain.py:36 templates/admin/_global_statistics_widget.html:7
+#: admin/forms/domain.py:36
+#: admin/templates/admin/_global_statistics_widget.html:7
msgid "Type"
msgstr "Type"
-#: forms/domain.py:42
+#: admin/forms/domain.py:42
msgid ""
"Alias(es) of this domain. Indicate only one name per input, press ENTER to "
"add a new input."
@@ -412,265 +447,306 @@ msgstr ""
"Alias(sen) van dit domein. Geef slechts een adres per regel op, en toets "
"ENTER om een nieuwe regel te krijgen."
-#: forms/domain.py:81 handlers.py:171
+#: admin/forms/domain.py:47
+msgid "Key selector"
+msgstr ""
+
+#: admin/forms/domain.py:85 admin/handlers.py:171
msgid "domain alias"
msgstr "domein alias"
-#: forms/domain.py:84 forms/domain.py:136 forms/domain.py:144
+#: admin/forms/domain.py:88 admin/forms/domain.py:155 admin/forms/domain.py:163
#, python-format
msgid "A %s with this name already exists"
msgstr "Een %s met deze naam bestaat al"
-#: forms/domain.py:92 serializers.py:45
+#: admin/forms/domain.py:96 admin/serializers.py:45
msgid "No authorized MX record found for this domain"
msgstr ""
-#: forms/domain.py:114 serializers.py:55
+#: admin/forms/domain.py:108
+msgid "DKIM keys storage directory not configured"
+msgstr ""
+
+#: admin/forms/domain.py:129 admin/serializers.py:55
msgid "Cannot be greater than domain quota"
msgstr ""
-#: forms/domain.py:119
+#: admin/forms/domain.py:134
msgid "You can't define an unlimited quota."
msgstr ""
-#: forms/domain.py:136 forms/domain.py:141
+#: admin/forms/domain.py:155 admin/forms/domain.py:160
msgid "domain"
msgstr "domein"
-#: forms/domain.py:190
+#: admin/forms/domain.py:209
msgid "Create a domain administrator"
msgstr "Maak een domein administrator aan"
-#: forms/domain.py:193
+#: admin/forms/domain.py:212
msgid "Automatically create an administrator for this domain"
msgstr "Automatisch een administrator aanmaken voor dit domein"
-#: forms/domain.py:198 templates/admin/domain_detail.html:101
-#: templates/admin/domain_headers.html:3
-#: templates/admin/identity_headers.html:2
-#: templates/admin/mx_domain_detail.html:9
+#: admin/forms/domain.py:217 admin/templates/admin/domain_detail.html:120
+#: admin/templates/admin/domain_headers.html:3
+#: admin/templates/admin/identity_headers.html:2
+#: admin/templates/admin/mx_domain_detail.html:9
msgid "Name"
msgstr "Naam"
-#: forms/domain.py:201
+#: admin/forms/domain.py:220
msgid ""
"The administrator's name. Don't include the domain's name here, it will be "
"automatically appended."
msgstr ""
"De naam van de administrator. De domeinnaam word automatisch toegevoegd."
-#: forms/domain.py:211
+#: admin/forms/domain.py:230
#, fuzzy
#| msgid "Create a domain administrator"
msgid "Generate a random password for the administrator."
msgstr "Maak een domein administrator aan"
-#: forms/domain.py:217
+#: admin/forms/domain.py:236
msgid "With a mailbox"
msgstr "Met een mailbox"
-#: forms/domain.py:220
+#: admin/forms/domain.py:239
#, fuzzy
#| msgid "Create a domain administrator"
msgid "Create a mailbox for the administrator."
msgstr "Maak een domein administrator aan"
-#: forms/domain.py:226
+#: admin/forms/domain.py:245
msgid "Create aliases"
msgstr "Aliassen aanmaken"
-#: forms/domain.py:229
+#: admin/forms/domain.py:248
msgid "Automatically create standard aliases for this domain"
msgstr "Automatisch een standaard alias voor dit domein aanmaken"
-#: forms/domain.py:245
+#: admin/forms/domain.py:264
msgid "Invalid format"
msgstr "Verkeerd formaat"
-#: forms/domain.py:274
+#: admin/forms/domain.py:293
#, python-format
msgid "User '%s' already exists"
msgstr "Gebruiker '%s' bestaat al"
-#: forms/domain.py:385
+#: admin/forms/domain.py:404
msgid "Domain modified"
msgstr "Domein gewijzigd"
-#: forms/domain.py:406
+#: admin/forms/domain.py:425
msgid "Options"
msgstr "Opties"
-#: forms/domain.py:414
+#: admin/forms/domain.py:433
msgid "New domain"
msgstr "Nieuw domein"
-#: forms/domain.py:427
+#: admin/forms/domain.py:446
msgid "Domain created"
msgstr "Domein aangemaakt"
-#: forms/export.py:9
+#: admin/forms/export.py:9
msgid "File name"
msgstr "Bestandsnaam"
-#: forms/export.py:15 forms/import_.py:15
+#: admin/forms/export.py:15 admin/forms/import_.py:15
msgid "Separator"
msgstr "Scheidingsteken"
-#: forms/forward.py:14
+#: admin/forms/forward.py:14
msgid "Recipient(s)"
msgstr "Ontvanger(s)"
-#: forms/forward.py:18
+#: admin/forms/forward.py:18
msgid "Indicate one or more recipients separated by a ','"
msgstr "Geef een of meer ontvangers op, gescheiden door een komma"
-#: forms/forward.py:21
+#: admin/forms/forward.py:21
msgid "Keep local copies"
msgstr "Lokale kopie behouden"
-#: forms/forward.py:24
+#: admin/forms/forward.py:24
msgid "Forward messages and store copies into your local mailbox"
msgstr "Stuur berichten door en sla een kopie op in uw mailbox"
-#: forms/import_.py:13
+#: admin/forms/import_.py:13
msgid "Select a file"
msgstr "Bestand selecteren"
-#: forms/import_.py:21
+#: admin/forms/import_.py:21
msgid "Continue on error"
msgstr "Doorgaan als er een fout optreed"
-#: forms/import_.py:22
+#: admin/forms/import_.py:22
msgid "Don't treat duplicated objects as error"
msgstr "Zie duplicaten niet als fout"
-#: forms/import_.py:40
+#: admin/forms/import_.py:40
msgid "Crypt passwords"
msgstr "Versleutel wachtwoorden"
-#: forms/import_.py:42
+#: admin/forms/import_.py:42
msgid "Check this option if passwords contained in your file are not crypted"
msgstr ""
"Vink deze optie aan als wachtwoorden in uw bestand niet versleuteld zijn"
-#: handlers.py:218
+#: admin/handlers.py:218
#, python-format
msgid "Account import failed (%s): domain does not exist"
msgstr "Accounts importeren mislukt (%s): domein bestaat niet"
-#: handlers.py:231 models/mailbox.py:342
+#: admin/handlers.py:231 admin/models/mailbox.py:342
#, fuzzy
#| msgid "Mailbox %s already exists"
msgid "Mailbox {} already exists"
msgstr "Mailbox %s bestaat al"
-#: handlers.py:239
+#: admin/handlers.py:239
#, python-format
msgid "Account import failed (%s): wrong quota value"
msgstr "Account import is mislukt (%s): verkeerd quotum waarde"
-#: handlers.py:279 templates/admin/_global_statistics_widget.html:17
-#: templates/admin/_per_domain_statistics_widget.html:8
-#: templates/admin/identities.html:5
+#: admin/handlers.py:279
+#: admin/templates/admin/_global_statistics_widget.html:17
+#: admin/templates/admin/_per_domain_statistics_widget.html:8
+#: admin/templates/admin/identities.html:5
msgid "Identities"
msgstr "Identiteiten"
-#: handlers.py:295 templates/admin/forward.html:2
+#: admin/handlers.py:295 admin/templates/admin/forward.html:2
msgid "Forward"
msgstr "Doorsturen"
-#: lib.py:41
+#: admin/lib.py:44
msgid "A mailbox is required"
msgstr "Een mailbox is benodigd"
-#: lib.py:131
+#: admin/lib.py:134
#, fuzzy
#| msgid "You can't delete your own domain"
msgid "You are not allowed to import domains"
msgstr "U kunt uw eigen domein niet verwijderen"
-#: lib.py:142
+#: admin/lib.py:145
msgid "You are not allowed to import domain aliases."
msgstr "U bent niet gemachtigd om domein aliassen te importeren."
-#: management/commands/subcommands/_mx.py:125
+#: admin/lib.py:183 admin/tests/test_mx.py:122
+#, fuzzy, python-format
+#| msgid "No MX record found for this domain."
+msgid "No DNS records found for %s"
+msgstr "Geen mx record gevonden voor dit domein"
+
+#: admin/lib.py:185 admin/tests/test_mx.py:125
+#, fuzzy, python-format
+#| msgid "No MX record found for this domain."
+msgid "No MX record for %s"
+msgstr "Geen mx record gevonden voor dit domein"
+
+#: admin/lib.py:187 admin/tests/test_mx.py:126
+msgid "No working name servers found"
+msgstr ""
+
+#: admin/lib.py:190 admin/tests/test_mx.py:128
+#, python-format
+msgid "DNS resolution timeout, unable to query %s at the moment"
+msgstr ""
+
+#: admin/lib.py:201 admin/tests/test_mx.py:131
+#, python-format
+msgid "Unable to lookup ip addresses for %(domain)s; %(error)s"
+msgstr ""
+
+#: admin/lib.py:212 admin/tests/test_mx.py:134
+#, python-format
+msgid "Invalid IP address format for %(domain)s; %(addr)s"
+msgstr ""
+
+#: admin/management/commands/subcommands/_mx.py:136
msgid "[modoboa] DNSBL issue(s) for domain {}"
msgstr "[modoboa] DNSBL problemen voor domein {}"
-#: management/commands/subcommands/_mx.py:145
+#: admin/management/commands/subcommands/_mx.py:156
msgid "Domain {} has no MX record"
msgstr "Domein {} heeft geen MX record(s)"
-#: management/commands/subcommands/_mx.py:156
+#: admin/management/commands/subcommands/_mx.py:167
#, python-brace-format
msgid "MX record for domain {0} is invalid: {1}"
msgstr "MX record voor domein {0} is ongeldig: {1}"
-#: management/commands/subcommands/_mx.py:173
+#: admin/management/commands/subcommands/_mx.py:184
msgid "[modoboa] MX issue(s) for domain {}"
msgstr "[modoboa] MX probleem met domein {}"
-#: models/alias.py:35 models/mailbox.py:97
+#: admin/models/alias.py:35 admin/models/mailbox.py:97
msgid "address"
msgstr "adres"
-#: models/alias.py:37
+#: admin/models/alias.py:37
#, fuzzy
#| msgid "The alias name"
msgid "The alias address."
msgstr "De alias naam"
-#: models/alias.py:42 models/domain.py:48 models/domain_alias.py:46
+#: admin/models/alias.py:42 admin/models/domain.py:48
+#: admin/models/domain_alias.py:47
msgid "enabled"
msgstr "actief"
-#: models/alias.py:43 models/domain_alias.py:47
+#: admin/models/alias.py:43 admin/models/domain_alias.py:48
msgid "Check to activate this alias"
msgstr "Aanvinken om deze alias te activeren"
-#: models/alias.py:48 templates/admin/alias_detail.html:32
+#: admin/models/alias.py:48 admin/templates/admin/alias_detail.html:32
msgid "Description"
msgstr "Omschrijving"
-#: models/alias.py:50 templates/admin/alias_detail.html:29
+#: admin/models/alias.py:50 admin/templates/admin/alias_detail.html:29
msgid "Expire at"
msgstr "Verloopt op"
-#: models/alias.py:93
+#: admin/models/alias.py:93
msgid "alias"
msgstr "alias"
-#: models/alias.py:125
+#: admin/models/alias.py:125
#, fuzzy
#| msgid "Invalid request"
msgid "Invalid address"
msgstr "Ongeldig verzoek"
-#: models/alias.py:146
+#: admin/models/alias.py:146
#, fuzzy
#| msgid "Local recipient %s not found"
msgid "Local recipient {}@{} not found"
msgstr "Lokale ontvanger %s niet gevonden"
-#: models/alias.py:176
+#: admin/models/alias.py:176
#, python-format
msgid "Invalid line: %s"
msgstr "Ongeldige regel: %s"
-#: models/alias.py:182
+#: admin/models/alias.py:182
#, python-format
msgid "Domain '%s' does not exist"
msgstr "Domein '%s' bestaat niet"
-#: models/domain.py:30 models/domain_alias.py:39
+#: admin/models/domain.py:30 admin/models/domain_alias.py:39
msgid "name"
msgstr "naam"
-#: models/domain.py:31
+#: admin/models/domain.py:31
msgid "The domain name"
msgstr "De domeinnaam"
-#: models/domain.py:35
+#: admin/models/domain.py:35
#, fuzzy
#| msgid ""
#| "Default quota (in MB) applied to freshly created domains with no value "
@@ -680,7 +756,7 @@ msgstr ""
"Standaard quota (in MB) om op nieuw aangemaakte domeinen zonder waarde toe "
"te passen. Een waarde van 0 betekend geen quota."
-#: models/domain.py:43
+#: admin/models/domain.py:43
#, fuzzy
#| msgid ""
#| "Default quota (in MB) applied to freshly created domains with no value "
@@ -690,393 +766,471 @@ msgstr ""
"Standaard quota (in MB) om op nieuw aangemaakte domeinen zonder waarde toe "
"te passen. Een waarde van 0 betekend geen quota."
-#: models/domain.py:49
+#: admin/models/domain.py:49
msgid "Check to activate this domain"
msgstr "Aanvinken om dit domein te activeren"
-#: models/domain.py:54
+#: admin/models/domain.py:54
msgid "Enable DNS checks"
msgstr "Activeer DNS checks"
-#: models/domain.py:55
+#: admin/models/domain.py:55
#, fuzzy
#| msgid "Check to activate this domain"
msgid "Check to enable DNS checks for this domain"
msgstr "Aanvinken om dit domein te activeren"
-#: models/domain.py:253 models/domain_alias.py:73
+#: admin/models/domain.py:62
+msgid "Enable DKIM signing"
+msgstr ""
+
+#: admin/models/domain.py:64
+msgid ""
+"If you activate this feature, a DKIM key will be generated for this domain."
+msgstr ""
+
+#: admin/models/domain.py:70
+msgid "Key length"
+msgstr ""
+
+#: admin/models/domain.py:285 admin/models/domain_alias.py:74
msgid "Invalid line"
msgstr "Verkeerde regel"
-#: models/domain.py:263
+#: admin/models/domain.py:295
msgid "No authorized MX record found for domain {}"
msgstr ""
-#: models/domain.py:270
+#: admin/models/domain.py:302
#, fuzzy
#| msgid "Invalid quota value for domain '%s'"
msgid "Invalid quota value for domain '{}'"
msgstr "Verkeerde quota waarde voor domein '%s'"
-#: models/domain.py:277
+#: admin/models/domain.py:309
#, fuzzy
#| msgid "Invalid quota value for domain '%s'"
msgid "Invalid default mailbox quota value for domain '{}'"
msgstr "Verkeerde quota waarde voor domein '%s'"
-#: models/domain.py:282
+#: admin/models/domain.py:314
msgid "Default mailbox quota cannot be greater than domain quota"
msgstr ""
-#: models/domain_alias.py:40
+#: admin/models/domain_alias.py:40
msgid "The alias name"
msgstr "De alias naam"
-#: models/domain_alias.py:42
+#: admin/models/domain_alias.py:42
msgid "target"
msgstr "doel"
-#: models/domain_alias.py:43
+#: admin/models/domain_alias.py:43
msgid "The domain this alias points to"
msgstr "De domein alias verwijst naar"
-#: models/domain_alias.py:82
+#: admin/models/domain_alias.py:83
#, python-format
msgid "Unknown domain %s"
msgstr "Onbekend domein %s"
-#: models/mailbox.py:99
+#: admin/models/mailbox.py:99
msgid "Mailbox address (without the @domain.tld part)"
msgstr "Mailbox adres (zonder het @domein.naam deel)"
-#: models/mailbox.py:165
+#: admin/models/mailbox.py:165
#, python-format
msgid "Failed to retrieve mailbox location (%s)"
msgstr "Mislukt om de mailbox locatie te verkijgen (%s)"
-#: models/mailbox.py:258
+#: admin/models/mailbox.py:258
msgid "A quota is required"
msgstr "Een quota is vereist"
-#: models/mailbox.py:264
+#: admin/models/mailbox.py:264
#, fuzzy
#| msgid "Domain created"
msgid "Domain quota exceeded"
msgstr "Domein aangemaakt"
-#: serializers.py:80 serializers.py:266 serializers.py:360
+#: admin/serializers.py:80 admin/serializers.py:266 admin/serializers.py:360
#, fuzzy
#| msgid "Permissions"
msgid "Permission denied."
msgstr "Toegang geweigerd"
-#: serializers.py:118
+#: admin/serializers.py:118
msgid ""
"List of administered domains (resellers and domain administrators only)."
msgstr ""
-#: serializers.py:218
+#: admin/serializers.py:218
msgid "Not allowed for this role."
msgstr "Niet toegestaan met deze rol"
-#: serializers.py:228
+#: admin/serializers.py:228
msgid "Must be equal to mailbox full_address"
msgstr "Moet gelijk zijn aan het volledige e-mail adres"
-#: serializers.py:253
+#: admin/serializers.py:253
#, fuzzy
#| msgid "Domain does not exist"
msgid "Local domain {} does not exist"
msgstr "Domein bestaat niet"
-#: serializers.py:347
+#: admin/serializers.py:347
msgid "A list of recipient"
msgstr "Een lijst van ontvangers"
-#: serializers.py:358
+#: admin/serializers.py:358
#, fuzzy
#| msgid "Domain modified"
msgid "Domain not found."
msgstr "Domein gewijzigd"
-#: templates/admin/_domain_dnschecks_status.html:4
+#: admin/serializers.py:407
+#, fuzzy
+#| msgid "You don't have access to this domain"
+msgid "You don't have access to this domain."
+msgstr "U heeft geen toegang tot dit domein"
+
+#: admin/serializers.py:415
+#, fuzzy
+#| msgid "You don't have access to this domain"
+msgid "You don't have access to this mailbox."
+msgstr "U heeft geen toegang tot dit domein"
+
+#: admin/templates/admin/_domain_dkim_key.html:6
+#: admin/templates/admin/_domain_dkim_key.html:20
+msgid "Close"
+msgstr ""
+
+#: admin/templates/admin/_domain_dkim_key.html:7
+#, python-format
+msgid "DKIM public key for %(domain)s"
+msgstr ""
+
+#: admin/templates/admin/_domain_dkim_key.html:11
+#, fuzzy
+#| msgid "Invalid format"
+msgid "Raw format"
+msgstr "Verkeerd formaat"
+
+#: admin/templates/admin/_domain_dkim_key.html:15
+#, fuzzy
+#| msgid "Invalid format"
+msgid "Bind/named format"
+msgstr "Verkeerd formaat"
+
+#: admin/templates/admin/_domain_dnschecks_status.html:4
#, fuzzy
#| msgid "disabled"
msgctxt "checks"
msgid "Disabled"
msgstr "uitgeschakeld"
-#: templates/admin/_domain_dnschecks_status.html:6
+#: admin/templates/admin/_domain_dnschecks_status.html:6
msgid "Awaiting checks"
msgstr "Controles afwachten"
-#: templates/admin/_global_statistics_widget.html:4
+#: admin/templates/admin/_global_statistics_widget.html:4
#, fuzzy
#| msgid "Statistics"
msgid "Global statistics"
msgstr "Statistieken"
-#: templates/admin/_global_statistics_widget.html:8
+#: admin/templates/admin/_global_statistics_widget.html:8
msgid "Quantity"
msgstr "Hoeveelheid"
-#: templates/admin/_global_statistics_widget.html:14
-#: templates/admin/domain_detail.html:45 templates/admin/domain_detail.html:81
+#: admin/templates/admin/_global_statistics_widget.html:14
+#: admin/templates/admin/domain_detail.html:37
+#: admin/templates/admin/domain_detail.html:73
msgid "Domain aliases"
msgstr "Domein aliassen"
-#: templates/admin/_per_domain_statistics_widget.html:4
+#: admin/templates/admin/_per_domain_statistics_widget.html:4
#, fuzzy
#| msgid "Per-domain counters"
msgid "Per-domain statistics"
msgstr "Statistieken per domein"
-#: templates/admin/account_detail.html:16 templates/admin/alias_detail.html:16
-#: templates/admin/domain_detail.html:19
-#: templates/admin/identities_table.html:7
+#: admin/templates/admin/account_detail.html:16
+#: admin/templates/admin/alias_detail.html:16
+#: admin/templates/admin/domain_detail.html:19
+#: admin/templates/admin/identities_table.html:7
#, fuzzy
#| msgid "disabled"
msgid "(disabled)"
msgstr "uitgeschakeld"
-#: templates/admin/account_detail.html:22 templates/admin/alias_detail.html:22
-#: templates/admin/domain_detail.html:25
+#: admin/templates/admin/account_detail.html:22
+#: admin/templates/admin/alias_detail.html:22
+#: admin/templates/admin/domain_detail.html:25
msgid "Summary"
msgstr ""
-#: templates/admin/account_detail.html:26
+#: admin/templates/admin/account_detail.html:26
#, fuzzy
#| msgid "File name"
msgid "Full name"
msgstr "Bestandsnaam"
-#: templates/admin/account_detail.html:32 templates/admin/alias_detail.html:26
+#: admin/templates/admin/account_detail.html:32
+#: admin/templates/admin/alias_detail.html:26
#, fuzzy
#| msgid "Create"
msgid "Created"
msgstr "Aanmaken"
-#: templates/admin/account_detail.html:35
+#: admin/templates/admin/account_detail.html:35
msgid "Last login"
msgstr "Laatste login"
-#: templates/admin/account_detail.html:38
+#: admin/templates/admin/account_detail.html:38
msgid "Secondary email"
msgstr "Tweede email"
-#: templates/admin/account_detail.html:38
-#: templates/admin/account_detail.html:41
+#: admin/templates/admin/account_detail.html:38
+#: admin/templates/admin/account_detail.html:41
#, fuzzy
#| msgid "No recipient defined"
msgid "Not defined"
msgstr "Geen ontvanger opgegeven"
-#: templates/admin/account_detail.html:41
+#: admin/templates/admin/account_detail.html:41
msgid "Phone number"
msgstr "Telefoonnummer"
-#: templates/admin/account_detail.html:55
+#: admin/templates/admin/account_detail.html:55
#, fuzzy
#| msgid "Administration"
msgid "Administered domains"
msgstr "Administratie"
-#: templates/admin/account_detail.html:61
+#: admin/templates/admin/account_detail.html:61
#, fuzzy
#| msgid "No recipient defined"
msgid "No domain defined."
msgstr "Geen ontvanger opgegeven"
-#: templates/admin/account_detail.html:75
+#: admin/templates/admin/account_detail.html:75
#, fuzzy
#| msgid "Alias(es)"
msgid "Aliases"
msgstr "Alias(sen)"
-#: templates/admin/account_detail.html:81
+#: admin/templates/admin/account_detail.html:81
#, fuzzy
#| msgid "No recipient defined"
msgid "No alias defined"
msgstr "Geen ontvanger opgegeven"
-#: templates/admin/account_detail.html:87
+#: admin/templates/admin/account_detail.html:87
msgid "Additional sender addresses"
msgstr "Overige verstuur adressen"
-#: templates/admin/account_detail.html:93
+#: admin/templates/admin/account_detail.html:93
msgid "No sender address defined"
msgstr "Er is geen verzendadres gedefineerd"
-#: templates/admin/account_general_form.html:12
-#: templates/admin/aliasform.html:13
+#: admin/templates/admin/account_general_form.html:12
+#: admin/templates/admin/aliasform.html:13
msgid "Domain is disabled"
msgstr "Domein is gedeactiveerd"
-#: templates/admin/alias_detail.html:16 templates/admin/identities.html:33
+#: admin/templates/admin/alias_detail.html:16
+#: admin/templates/admin/identities.html:33
#, fuzzy
#| msgid "alias"
msgid "Alias"
msgstr "alias"
-#: templates/admin/alias_detail.html:27
+#: admin/templates/admin/alias_detail.html:27
#, fuzzy
#| msgid "Alias modified"
msgid "Modified"
msgstr "Alias aangepast"
-#: templates/admin/dnsbl_domain_detail.html:10
+#: admin/templates/admin/dnsbl_domain_detail.html:10
msgid "Provider"
msgstr ""
-#: templates/admin/dnsbl_domain_detail.html:11
-#: templates/admin/identities_quota_headers.html:2
-#: templates/admin/mx_domain_detail.html:10
+#: admin/templates/admin/dnsbl_domain_detail.html:11
+#: admin/templates/admin/identities_quota_headers.html:2
+#: admin/templates/admin/mx_domain_detail.html:10
msgid "Address"
msgstr "Adres"
-#: templates/admin/dnsbl_domain_detail.html:12
+#: admin/templates/admin/dnsbl_domain_detail.html:12
+#: admin/templates/admin/domain_detail.html:96
#, fuzzy
#| msgid "Statistics"
msgid "Status"
msgstr "Statistieken"
-#: templates/admin/dnsbl_domain_detail.html:21
+#: admin/templates/admin/dnsbl_domain_detail.html:21
msgid "listed"
msgstr ""
-#: templates/admin/dnsbl_domain_detail.html:29
+#: admin/templates/admin/dnsbl_domain_detail.html:29
msgid "Everything is fine, this domain is not listed."
msgstr "Alles OK, dit domein komt niet voor in de lijst"
-#: templates/admin/dnsbl_domain_detail.html:32
+#: admin/templates/admin/dnsbl_domain_detail.html:32
msgid "No information available for this domain."
msgstr "Geen informatie beschikbaar voor dit domein"
-#: templates/admin/domain_detail.html:30 templates/admin/domain_headers.html:7
-#, fuzzy
-#| msgid "Statistics"
-msgid "DNS status"
-msgstr "Statistieken"
-
-#: templates/admin/domain_detail.html:37
+#: admin/templates/admin/domain_detail.html:29
msgid "Creation date"
msgstr "Datum van aanmaken"
-#: templates/admin/domain_detail.html:41
+#: admin/templates/admin/domain_detail.html:33
msgid "Last modification date"
msgstr "Laatst gewijzigd"
-#: templates/admin/domain_detail.html:53
+#: admin/templates/admin/domain_detail.html:45
msgid "Mailbox aliases"
msgstr "Mailbox aliassen"
-#: templates/admin/domain_detail.html:58 templates/admin/domain_detail.html:65
-#: templates/admin/domain_detail.html:66 templates/admin/domain_detail.html:73
-#: templates/admin/domain_general_form.html:4
-#: templates/admin/domain_general_form.html:5
-#: templates/admin/domains_quotas.html:11
-#: templates/admin/domains_quotas.html:12 templates/admin/mailform.html:7
-#: templates/admin/newdomainform.html:3
+#: admin/templates/admin/domain_detail.html:50
+#: admin/templates/admin/domain_detail.html:57
+#: admin/templates/admin/domain_detail.html:58
+#: admin/templates/admin/domain_detail.html:65
+#: admin/templates/admin/domain_general_form.html:4
+#: admin/templates/admin/domain_general_form.html:5
+#: admin/templates/admin/domains_quotas.html:11
+#: admin/templates/admin/domains_quotas.html:12
+#: admin/templates/admin/mailform.html:7
+#: admin/templates/admin/newdomainform.html:3
msgid "MB"
msgstr "MB"
-#: templates/admin/domain_detail.html:62
+#: admin/templates/admin/domain_detail.html:54
#, fuzzy
#| msgid "Usage (%%)"
msgid "Usage"
msgstr "Gebruik (%%)"
-#: templates/admin/domain_detail.html:65 templates/admin/domains_quotas.html:11
+#: admin/templates/admin/domain_detail.html:57
+#: admin/templates/admin/domains_quotas.html:11
msgctxt "quota"
msgid "used"
msgstr ""
-#: templates/admin/domain_detail.html:66 templates/admin/domains_quotas.html:12
+#: admin/templates/admin/domain_detail.html:58
+#: admin/templates/admin/domains_quotas.html:12
msgid "allocated"
msgstr ""
-#: templates/admin/domain_detail.html:98
+#: admin/templates/admin/domain_detail.html:91
+msgid "DNS"
+msgstr ""
+
+#: admin/templates/admin/domain_detail.html:103
+msgid "DKIM key"
+msgstr ""
+
+#: admin/templates/admin/domain_detail.html:107
+msgid "Show key"
+msgstr ""
+
+#: admin/templates/admin/domain_detail.html:110
+#, fuzzy
+#| msgid "No recipient defined"
+msgid "Not generated"
+msgstr "Geen ontvanger opgegeven"
+
+#: admin/templates/admin/domain_detail.html:117
msgid "Administrators"
msgstr "Administrators"
-#: templates/admin/domain_detail.html:110 templatetags/admin_tags.py:268
+#: admin/templates/admin/domain_detail.html:129
+#: admin/templatetags/admin_tags.py:268
msgid "Remove this permission"
msgstr "Deze bevoegdheid verwijderen"
-#: templates/admin/domain_detail.html:115
+#: admin/templates/admin/domain_detail.html:134
#, fuzzy
#| msgid "No domain administrator defined"
msgid "No domain administrator defined yet."
msgstr "Geen domein administrator toegewezen"
-#: templates/admin/domain_headers.html:5
-#: templates/admin/identity_headers.html:4
+#: admin/templates/admin/domain_headers.html:5
+#: admin/templates/admin/identity_headers.html:4
msgid "Tags"
msgstr "Labels"
-#: templates/admin/domain_headers.html:9
-#: templates/admin/identity_headers.html:5
+#: admin/templates/admin/domain_headers.html:7
+#, fuzzy
+#| msgid "Statistics"
+msgid "DNS status"
+msgstr "Statistieken"
+
+#: admin/templates/admin/domain_headers.html:9
+#: admin/templates/admin/identity_headers.html:5
msgid "Actions"
msgstr "Acties"
-#: templates/admin/domain_options_form.html:10
+#: admin/templates/admin/domain_options_form.html:10
msgid "You can't create a new domain administrator"
msgstr "U kunt geen nieuwe domein administrator aanmaken"
-#: templates/admin/domains.html:26 templates/admin/identities.html:29
+#: admin/templates/admin/domains.html:28
+#: admin/templates/admin/identities.html:29
#, fuzzy
#| msgid "Address"
msgid "Add"
msgstr "Adres"
-#: templates/admin/domains_quota_headers.html:3
-#: templates/admin/identities_quota_headers.html:4
+#: admin/templates/admin/domains_quota_headers.html:3
+#: admin/templates/admin/identities_quota_headers.html:4
msgid "Limit"
msgstr "Limiet"
-#: templates/admin/domains_quota_headers.html:4
+#: admin/templates/admin/domains_quota_headers.html:4
msgid "Used"
msgstr ""
-#: templates/admin/domains_quota_headers.html:5
+#: admin/templates/admin/domains_quota_headers.html:5
#, fuzzy
#| msgid "Alias created"
msgid "Allocated"
msgstr "Alias aangemaakt"
-#: templates/admin/domains_quota_headers.html:6
-#: templates/admin/identities_quota_headers.html:5
+#: admin/templates/admin/domains_quota_headers.html:6
+#: admin/templates/admin/identities_quota_headers.html:5
#, python-format
msgid "Usage (%%)"
msgstr "Gebruik (%%)"
-#: templates/admin/domains_table.html:5
+#: admin/templates/admin/domains_table.html:5
msgid "disabled"
msgstr "uitgeschakeld"
-#: templates/admin/forward.html:2
+#: admin/templates/admin/forward.html:2
msgid "Automatically forward emails to another address"
msgstr "Automatisch mails doorsturen naar een ander adres"
-#: templates/admin/forward.html:9 views/alias.py:93
+#: admin/templates/admin/forward.html:9 admin/views/alias.py:93
msgid "Update"
msgstr "Toepassen"
-#: templates/admin/identities.html:32
+#: admin/templates/admin/identities.html:32
#, fuzzy
#| msgid "Add account"
msgid "Account"
msgstr "Account aanmaken"
-#: templates/admin/identities_quota_headers.html:3
+#: admin/templates/admin/identities_quota_headers.html:3
msgid "Value"
msgstr "Waarde"
-#: templates/admin/identity_headers.html:3
+#: admin/templates/admin/identity_headers.html:3
msgid "Fullname/Recipient"
msgstr "Volledige naam/Ontvanger"
-#: templates/admin/import_domains_form.html:6
+#: admin/templates/admin/import_domains_form.html:6
#, fuzzy
#| msgid ""
#| "Provide a CSV file where lines respect one of the following formats:\n"
@@ -1111,7 +1265,7 @@ msgstr ""
"importeren mis\n"
"\n"
-#: templates/admin/import_identities_form.html:6
+#: admin/templates/admin/import_identities_form.html:6
#, fuzzy
#| msgid ""
#| "Provide a CSV file where lines respect one of the following formats:\n"
@@ -1149,129 +1303,129 @@ msgstr ""
"Let op! Zorg dat het 'line-encoding format' Unix is - anders gaat het "
"importeren mis
\n"
-#: templates/admin/importform.html:6
+#: admin/templates/admin/importform.html:6
msgid "Help"
msgstr "Help"
-#: templates/admin/importform.html:13
+#: admin/templates/admin/importform.html:13
msgid "Importing..."
msgstr "Importeren..."
-#: templates/admin/index.html:6
+#: admin/templates/admin/index.html:6
msgid "Admin"
msgstr ""
-#: templates/admin/mailboxes_raw.html:3
+#: admin/templates/admin/mailboxes_raw.html:3
msgid "Choose a value"
msgstr "Kies een waarde"
-#: templates/admin/mailform.html:7
+#: admin/templates/admin/mailform.html:7
msgid "Use domain default value"
msgstr "Gebruik de standaard waarde van dit domein"
-#: templates/admin/mx_domain_detail.html:11
+#: admin/templates/admin/mx_domain_detail.html:11
#, fuzzy
#| msgid "Update"
msgid "Updated"
msgstr "Toepassen"
-#: templates/admin/mx_domain_detail.html:23
+#: admin/templates/admin/mx_domain_detail.html:23
msgid "This IP does not match any of the valid MXs defined in parameters"
msgstr ""
-#: templates/admin/mx_domain_detail.html:36
+#: admin/templates/admin/mx_domain_detail.html:36
msgid "No MX record found for this domain."
msgstr "Geen mx record gevonden voor dit domein"
-#: templates/admin/notifications/domain_in_dnsbl.html:3
+#: admin/templates/admin/notifications/domain_in_dnsbl.html:3
#, python-format
msgid ""
"Modoboa detected that domain %(domain)s is listed by the following DNSBL "
"providers:"
msgstr ""
-#: templates/admin/notifications/domain_in_dnsbl.html:11
+#: admin/templates/admin/notifications/domain_in_dnsbl.html:11
msgid ""
"The domain's reputation will be affected and there is a chance that emails "
"coming from it are considered as spam. You should contact those providers "
"and ask them to unlist detected IP address(es)."
msgstr ""
-#: templates/admin/notifications/domain_invalid_mx.html:3
+#: admin/templates/admin/notifications/domain_invalid_mx.html:3
#, python-format
msgid "Modoboa detected that domain %(domain)s has no valid MX record:"
msgstr ""
-#: templates/admin/searchform.html:6
+#: admin/templates/admin/searchform.html:6
msgid "Search"
msgstr "Zoeken"
-#: templatetags/admin_tags.py:22
+#: admin/templatetags/admin_tags.py:22
msgid "enabled_m"
msgstr "geactiveerd_m"
-#: templatetags/admin_tags.py:22
+#: admin/templatetags/admin_tags.py:22
msgid "enabled_f"
msgstr "geactiveerd_f"
-#: templatetags/admin_tags.py:48
+#: admin/templatetags/admin_tags.py:48
msgid "List domains"
msgstr "Weergeef domeinen"
-#: templatetags/admin_tags.py:53 templatetags/admin_tags.py:108
+#: admin/templatetags/admin_tags.py:53 admin/templatetags/admin_tags.py:108
msgid "List quotas"
msgstr "Weergeef quota's"
-#: templatetags/admin_tags.py:65 templatetags/admin_tags.py:113
-#: views/import_.py:101 views/import_.py:123
+#: admin/templatetags/admin_tags.py:65 admin/templatetags/admin_tags.py:113
+#: admin/views/import_.py:89 admin/views/import_.py:111
msgid "Import"
msgstr "Importeren"
-#: templatetags/admin_tags.py:71 templatetags/admin_tags.py:119
-#: views/export.py:44 views/export.py:74
+#: admin/templatetags/admin_tags.py:71 admin/templatetags/admin_tags.py:119
+#: admin/views/export.py:43 admin/views/export.py:71
msgid "Export"
msgstr "Exporteren"
-#: templatetags/admin_tags.py:103
+#: admin/templatetags/admin_tags.py:103
msgid "List identities"
msgstr "Weergeef identiteiten"
-#: templatetags/admin_tags.py:138
+#: admin/templatetags/admin_tags.py:138
msgid "View the domain's identities"
msgstr "Weergeef de identiteiten van dit domein"
-#: templatetags/admin_tags.py:144 templatetags/admin_tags.py:187
-#: templatetags/admin_tags.py:200
+#: admin/templatetags/admin_tags.py:144 admin/templatetags/admin_tags.py:187
+#: admin/templatetags/admin_tags.py:200
msgid "Edit {}"
msgstr ""
-#: templatetags/admin_tags.py:154 templatetags/admin_tags.py:191
-#: templatetags/admin_tags.py:205
+#: admin/templatetags/admin_tags.py:154 admin/templatetags/admin_tags.py:191
+#: admin/templatetags/admin_tags.py:205
#, python-format
msgid "Delete %s?"
msgstr "Verwijder %s?"
-#: views/alias.py:35
+#: admin/views/alias.py:35
msgid "Alias with this name already exists"
msgstr "Een alias met deze naam bestaat al"
-#: views/alias.py:60
+#: admin/views/alias.py:60
msgid "Create"
msgstr "Aanmaken"
-#: views/alias.py:72
+#: admin/views/alias.py:72
msgid "New alias"
msgstr "Nieuwe alias"
-#: views/alias.py:73
+#: admin/views/alias.py:73
msgid "Alias created"
msgstr "Alias aangemaakt"
-#: views/alias.py:85
+#: admin/views/alias.py:85
msgid "Alias modified"
msgstr "Alias aangepast"
-#: views/alias.py:109
+#: admin/views/alias.py:109
#, fuzzy
#| msgid "Alias created"
msgid "Alias deleted"
@@ -1279,61 +1433,62 @@ msgid_plural "Aliases deleted"
msgstr[0] "Alias aangemaakt"
msgstr[1] "Alias aangemaakt"
-#: views/dns.py:32
+#: admin/views/dns.py:32
msgid "MX records of {}"
msgstr ""
-#: views/dns.py:55
+#: admin/views/dns.py:55
msgid "DNSBL summary for {}"
msgstr "DNSBL samenvatting voor {}"
-#: views/domain.py:190
+#: admin/views/domain.py:188
msgid "You can't delete your own domain"
msgstr "U kunt uw eigen domein niet verwijderen"
-#: views/domain.py:193
+#: admin/views/domain.py:191
msgid "Domain deleted"
msgid_plural "Domains deleted"
msgstr[0] "Domeinen verwijderd"
msgstr[1] "Domeinen verwijderd"
-#: views/export.py:43
+#: admin/views/export.py:42
msgid "Export identities"
msgstr "Identiteiten exporteren"
-#: views/export.py:73
+#: admin/views/export.py:70
msgid "Export domains"
msgstr "Exporteer domeinen"
-#: views/identity.py:113 views/identity.py:206 views/identity.py:211
+#: admin/views/identity.py:113 admin/views/identity.py:206
+#: admin/views/identity.py:211
msgid "Invalid request"
msgstr "Ongeldig verzoek"
-#: views/identity.py:196
+#: admin/views/identity.py:196
msgid "Account deleted"
msgid_plural "Accounts deleted"
msgstr[0] "Account verwijderd"
msgstr[1] "Accounts verwijderd"
-#: views/import_.py:77
+#: admin/views/import_.py:65
#, python-format
msgid "Object already exists: %s"
msgstr "Object bestaat al: %s"
-#: views/import_.py:81
+#: admin/views/import_.py:69
#, python-format
msgid "%d objects imported successfully"
msgstr "%d objecten successvol geimporteerd"
-#: views/import_.py:100
+#: admin/views/import_.py:88
msgid "Import domains"
msgstr "Importeer domeinen"
-#: views/import_.py:122
+#: admin/views/import_.py:110
msgid "Import identities"
msgstr "Identiteiten importeren"
-#: views/user.py:40
+#: admin/views/user.py:40
msgid "Forward updated"
msgstr "Doorstuuradres aangepast"
diff --git a/modoboa/admin/locale/pl_PL/LC_MESSAGES/django.po b/modoboa/admin/locale/pl_PL/LC_MESSAGES/django.po
index b690e076a..74a67a6ee 100644
--- a/modoboa/admin/locale/pl_PL/LC_MESSAGES/django.po
+++ b/modoboa/admin/locale/pl_PL/LC_MESSAGES/django.po
@@ -1,7 +1,7 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
-#
+#
# Translators:
# Dariusz Koryto , 2016
# Pedro M , 2017
@@ -11,932 +11,1120 @@ msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-12-03 12:51+0100\n"
+"POT-Creation-Date: 2018-01-25 09:09+0100\n"
"PO-Revision-Date: 2017-12-07 08:37+0000\n"
"Last-Translator: Antoine Nguyen \n"
-"Language-Team: Polish (Poland) (http://www.transifex.com/tonio/modoboa/language/pl_PL/)\n"
+"Language-Team: Polish (Poland) (http://www.transifex.com/tonio/modoboa/"
+"language/pl_PL/)\n"
+"Language: pl_PL\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Language: pl_PL\n"
-"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n"
+"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n"
+"%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n"
+"%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n"
-#: app_settings.py:20 handlers.py:269
-#: templates/admin/_global_statistics_widget.html:11
-#: templates/admin/domains.html:4
+#: admin/app_settings.py:22 admin/handlers.py:269
+#: admin/templates/admin/_global_statistics_widget.html:11
+#: admin/templates/admin/domains.html:5
msgid "Domains"
msgstr "Domeny"
-#: app_settings.py:23
+#: admin/app_settings.py:25
msgid "Enable MX checks"
msgstr "Włącz sprawdzanie rekordów MX"
-#: app_settings.py:26
+#: admin/app_settings.py:28
msgid "Check that every domain has a valid MX record"
msgstr "Sprawdź czy dla domeny zdefiniowano poprawny rekord MX"
-#: app_settings.py:31
+#: admin/app_settings.py:33
msgid "Valid MXs"
msgstr "Poprawne MXy"
-#: app_settings.py:34
+#: admin/app_settings.py:36
msgid ""
-"A list of IP or network address every MX record should match. A warning will"
-" be sent if a record does not respect it."
-msgstr "Lista adresów IP lub sieci dla każdego pasującego rekordu MX. Monit zostanie wysłany w przypadku błędu."
+"A list of IP or network address every MX record should match. A warning will "
+"be sent if a record does not respect it."
+msgstr ""
+"Lista adresów IP lub sieci dla każdego pasującego rekordu MX. Monit zostanie "
+"wysłany w przypadku błędu."
-#: app_settings.py:42
+#: admin/app_settings.py:44
msgid "New domains must use authorized MX(s)"
msgstr "Nowe domeny muszą używać autoryzowanych MX'ów"
-#: app_settings.py:45
+#: admin/app_settings.py:47
msgid ""
"Prevent the creation of a new domain if its MX record does not use one of "
"the defined addresses."
-msgstr "Zapobiegaj tworzeniu nowych domen jeśli ich MXy nie są jednym ze zdefiniowanych adresów."
+msgstr ""
+"Zapobiegaj tworzeniu nowych domen jeśli ich MXy nie są jednym ze "
+"zdefiniowanych adresów."
-#: app_settings.py:51
+#: admin/app_settings.py:53
msgid "Enable DNSBL checks"
msgstr "Włącz sprawdzanie DNSBL"
-#: app_settings.py:54
+#: admin/app_settings.py:56
msgid "Check every domain against major DNSBL providers"
msgstr "Sprawdź każdą domenę po kątem głównych providerów DNSBL"
-#: app_settings.py:58 templates/admin/domain_detail.html:49
+#: admin/app_settings.py:61
+msgid "DKIM keys storage directory"
+msgstr ""
+
+#: admin/app_settings.py:64
+msgid ""
+"Absolute path of the directory where DKIM private keys will be stored. Make "
+"sure this directory belongs to root user and is not readable by the outside "
+"world."
+msgstr ""
+
+#: admin/app_settings.py:72
+msgid "Default DKIM key length"
+msgstr ""
+
+#: admin/app_settings.py:76
+msgid "Default length in bits for newly generated DKIM keys."
+msgstr ""
+
+#: admin/app_settings.py:80 admin/templates/admin/domain_detail.html:41
msgid "Mailboxes"
msgstr "Skrzynki pocztowe"
-#: app_settings.py:61
+#: admin/app_settings.py:83
msgid "Handle mailboxes on filesystem"
msgstr "Przechowuj skrzynka na filesystemie"
-#: app_settings.py:64
+#: admin/app_settings.py:86
msgid ""
"Rename or remove mailboxes on the filesystem when they get renamed or "
"removed within Modoboa"
-msgstr "Zmieniaj lub usuwaj skrzynki na filesystemie jeśli zostały zmodyfikowane lub usuniętę przez Modoboa"
+msgstr ""
+"Zmieniaj lub usuwaj skrzynki na filesystemie jeśli zostały zmodyfikowane lub "
+"usuniętę przez Modoboa"
-#: app_settings.py:70
+#: admin/app_settings.py:92
msgid "Mailboxes owner"
msgstr "Właściciel skrzynek"
-#: app_settings.py:73
+#: admin/app_settings.py:95
msgid "The UNIX account who owns mailboxes on the filesystem"
msgstr "Konto UNIX właściciela skrzynek na filesystemie"
-#: app_settings.py:78
+#: admin/app_settings.py:100
msgid "Default domain quota"
msgstr "Domyślne ograniczenie dla domeny"
-#: app_settings.py:81
+#: admin/app_settings.py:103
msgid ""
"Default quota (in MB) applied to freshly created domains with no value "
"specified. A value of 0 means no quota."
-msgstr "Domyślne ograniczenie (w MB) dla nowych domen, gdy nie zostało podane. (0 - brak ograniczenia)"
+msgstr ""
+"Domyślne ograniczenie (w MB) dla nowych domen, gdy nie zostało podane. (0 - "
+"brak ograniczenia)"
-#: app_settings.py:87 models/domain.py:40
-#: templates/admin/domain_detail.html:72
+#: admin/app_settings.py:109 admin/models/domain.py:40
+#: admin/templates/admin/domain_detail.html:64
msgid "Default mailbox quota"
msgstr "Domyślna przestrzeń dla konta pocztowego"
-#: app_settings.py:90
+#: admin/app_settings.py:112
msgid ""
"Default mailbox quota (in MB) applied to freshly created domains with no "
"value specified. A value of 0 means no quota."
-msgstr "Domyślna pojemność skrzynki (w MB) dla nowo tworzonych domen bez podanej wartości. 0 oznacza brak limitu."
+msgstr ""
+"Domyślna pojemność skrzynki (w MB) dla nowo tworzonych domen bez podanej "
+"wartości. 0 oznacza brak limitu."
-#: app_settings.py:96
+#: admin/app_settings.py:118
msgid "Automatic account removal"
msgstr "Automatyczne usuwanie konta"
-#: app_settings.py:99
+#: admin/app_settings.py:121
msgid "When a mailbox is removed, also remove the associated account"
msgstr "Gdy usuwana jest skrzynka usuń powizane z nią konto"
-#: app_settings.py:103
+#: admin/app_settings.py:125
msgid "Automatic domain/mailbox creation"
msgstr "Automatyczne tworzenie domeny/skrzynki"
-#: app_settings.py:106
-msgid ""
-"Create a domain and a mailbox when an account is automatically created."
+#: admin/app_settings.py:128
+msgid "Create a domain and a mailbox when an account is automatically created."
msgstr "Utwórz domenę i skrzynkę gdy tworzone jest konto"
-#: app_settings.py:112
+#: admin/app_settings.py:134
msgid "Create an alias when a mailbox is renamed"
msgstr "Utwórz alias podczas zmiany nazwy skrzynki"
-#: app_settings.py:115
+#: admin/app_settings.py:137
msgid "Create an alias using the old address when a mailbox is renamed."
msgstr "Utwórz alias używając starego adresu podczas zmiany nazwy skrzynki."
-#: app_settings.py:164 app_settings.py:172 forms/account.py:331
+#: admin/app_settings.py:186 admin/app_settings.py:194
+#: admin/forms/account.py:331
msgid "Must be a positive integer"
msgstr "Musi być liczbą całkowitą dodatnią"
-#: app_settings.py:186
+#: admin/app_settings.py:204
+#, fuzzy
+#| msgid "Domain not found."
+msgid "Directory not found."
+msgstr "Domena nie znaleziona."
+
+#: admin/app_settings.py:210
+msgid "openssl not found, please make sure it is installed."
+msgstr ""
+
+#: admin/app_settings.py:224
msgid "Define at least one authorized network / address"
msgstr "Zdefiniuj przynajmniej jedną autoryzowaną sieć / adres"
-#: app_settings.py:196
+#: admin/app_settings.py:234
msgid "Administration"
msgstr "Administracja"
-#: constants.py:99 forms/alias.py:49
-#: templates/admin/_per_domain_statistics_widget.html:7
-#: templates/admin/domains_quota_headers.html:2
+#: admin/constants.py:99 admin/forms/alias.py:49
+#: admin/templates/admin/_per_domain_statistics_widget.html:7
+#: admin/templates/admin/domains_quota_headers.html:2
msgid "Domain"
msgstr "Domena"
-#: constants.py:100
+#: admin/constants.py:100
msgid "Relay domain"
msgstr ""
-#: forms/account.py:38 templates/admin/domain_detail.html:101
+#: admin/forms/account.py:38 admin/templates/admin/domain_detail.html:120
msgid "Username"
msgstr "Username"
-#: forms/account.py:40
+#: admin/forms/account.py:40
msgid ""
"The user's name. Must be a valid e-mail address for simple users or "
"administrators with a mailbox."
-msgstr "Username musi być poprawnym adresem e-mail dla zwykłych użytkowników i administratorów posiadających skrzynkę."
+msgstr ""
+"Username musi być poprawnym adresem e-mail dla zwykłych użytkowników i "
+"administratorów posiadających skrzynkę."
-#: forms/account.py:45 templates/admin/account_detail.html:29
+#: admin/forms/account.py:45 admin/templates/admin/account_detail.html:29
msgid "Role"
msgstr "Rola"
-#: forms/account.py:46
+#: admin/forms/account.py:46
msgid "Choose"
msgstr "Wybierz"
-#: forms/account.py:47
+#: admin/forms/account.py:47
msgid "What level of permission this user will have"
msgstr "Jaki zakres uprawnień będzie miał użytkownik"
-#: forms/account.py:50 forms/domain.py:208
+#: admin/forms/account.py:50 admin/forms/domain.py:227
msgid "Random password"
msgstr "Losowe hasło"
-#: forms/account.py:52
+#: admin/forms/account.py:52
msgid ""
"Generate a random password. If you're updating this account and check this "
"box, a new password will be generated."
-msgstr "Wygeneruj losowe hasło. Jeśli aktualizujesz to konto i zaznaczysz te pole, to zostanie wygenerowane nowe hasło."
+msgstr ""
+"Wygeneruj losowe hasło. Jeśli aktualizujesz to konto i zaznaczysz te pole, "
+"to zostanie wygenerowane nowe hasło."
-#: forms/account.py:58
+#: admin/forms/account.py:58
msgid "Password"
msgstr "Hasło"
-#: forms/account.py:63
+#: admin/forms/account.py:63
msgid "Confirmation"
msgstr "Potwierdzenie"
-#: forms/account.py:66
+#: admin/forms/account.py:66
msgid "Enter the same password as above, for verification."
msgstr "Wprowadź hasło ponownie"
-#: forms/account.py:78
+#: admin/forms/account.py:78
msgid "Enabled"
msgstr "Włączone"
-#: forms/account.py:172
+#: admin/forms/account.py:172
msgid "Only super administrators are allowed for this mode"
msgstr "Tylko super administratorzy mogą korzystać z tej opcji"
-#: forms/account.py:183 forms/account.py:185 forms/domain.py:254
-#: forms/domain.py:257 serializers.py:241
+#: admin/forms/account.py:183 admin/forms/account.py:185
+#: admin/forms/domain.py:144 admin/forms/domain.py:273
+#: admin/forms/domain.py:276 admin/serializers.py:241
msgid "This field is required."
msgstr "To pole jest wymagane"
-#: forms/account.py:191
+#: admin/forms/account.py:191
msgid "The two password fields didn't match."
msgstr "Hasła nie są zgodne"
-#: forms/account.py:204
+#: admin/forms/account.py:204
msgid "You can't disable your own account"
msgstr "Nie możesz wyłączyć swojego konta"
-#: forms/account.py:225
+#: admin/forms/account.py:225
msgid "E-mail"
msgstr "E-mail"
-#: forms/account.py:227
+#: admin/forms/account.py:227
msgid "Create an alias using the old address"
msgstr "Utwórz alias używając starego adresu"
-#: forms/account.py:232 templates/admin/account_detail.html:45
-#: templates/admin/domain_detail.html:57
+#: admin/forms/account.py:232 admin/templates/admin/account_detail.html:45
+#: admin/templates/admin/domain_detail.html:49
msgid "Quota"
msgstr "Limit"
-#: forms/account.py:234
+#: admin/forms/account.py:234
msgid ""
"Quota in MB for this mailbox. Define a custom value or use domain's default "
"one. Leave empty to define an unlimited value (not allowed for domain "
"administrators)."
-msgstr "Limit w MB dla tej skrzynki. Podaj własną wartość lub skorzystaj z domyślne wartości dla domeny. Brak limitu jeśli pozostawisz niewypełnione (opcja niedozwolona dla administratorów domen)"
+msgstr ""
+"Limit w MB dla tej skrzynki. Podaj własną wartość lub skorzystaj z domyślne "
+"wartości dla domeny. Brak limitu jeśli pozostawisz niewypełnione (opcja "
+"niedozwolona dla administratorów domen)"
-#: forms/account.py:242 forms/domain.py:39
-#: templates/admin/domain_headers.html:4
+#: admin/forms/account.py:242 admin/forms/domain.py:39
+#: admin/templates/admin/domain_headers.html:4
msgid "Alias(es)"
msgstr "Alias(y)"
-#: forms/account.py:245
+#: admin/forms/account.py:245
msgid ""
"Alias(es) of this mailbox. Indicate only one address per input, press ENTER "
"to add a new input. To create a catchall alias, just enter the domain name "
"(@domain.tld)."
-msgstr "Aliasy dla tej skrzynki. Podaj jeden adres w polu. Naciśnij ENTER aby dodać kolejne pole. Aby stworzyć alias \"catchall\" po prostu podaj nazwę domeny (@domena.tld)."
+msgstr ""
+"Aliasy dla tej skrzynki. Podaj jeden adres w polu. Naciśnij ENTER aby dodać "
+"kolejne pole. Aby stworzyć alias \"catchall\" po prostu podaj nazwę domeny "
+"(@domena.tld)."
-#: forms/account.py:251
+#: admin/forms/account.py:251
msgid "Sender addresses"
msgstr "Adres nadawcy"
-#: forms/account.py:254
+#: admin/forms/account.py:254
msgid ""
"Additional sender address(es) for this account. The user will be allowed to "
"send emails using this address, even if it does not exist locally. Indicate "
"one address per input. Press ENTER to add a new input."
-msgstr "Dodatkowe adresy nadawcy dla tego konta. Użytkownik będzie mógł tych adresów podczas wysyłania wiadomości, nawet jeśli taki nie istnieje lokalnie. Podaj jeden adres w polu. Naciśnij ENTER aby dodać nowe pole."
+msgstr ""
+"Dodatkowe adresy nadawcy dla tego konta. Użytkownik będzie mógł tych adresów "
+"podczas wysyłania wiadomości, nawet jeśli taki nie istnieje lokalnie. Podaj "
+"jeden adres w polu. Naciśnij ENTER aby dodać nowe pole."
-#: forms/account.py:309 forms/alias.py:94 models/mailbox.py:315
+#: admin/forms/account.py:309 admin/forms/alias.py:94
+#: admin/models/mailbox.py:315
msgid "Domain does not exist"
msgstr "Domena nie istnieje"
-#: forms/account.py:341
+#: admin/forms/account.py:341
msgid "Local domain does not exist"
msgstr "Domena lokalna nie istnieje"
-#: forms/account.py:345 forms/account.py:353 forms/alias.py:97
+#: admin/forms/account.py:345 admin/forms/account.py:353
+#: admin/forms/alias.py:97
msgid "You don't have access to this domain"
msgstr "Nie masz uprawnień dla tej domeny"
-#: forms/account.py:452
+#: admin/forms/account.py:452
msgid "Domain(s)"
msgstr "Domena(y)"
-#: forms/account.py:454
+#: admin/forms/account.py:454
msgid "Domain(s) that user administrates"
msgstr "Domena(y), którmi zarządza użytkownik"
-#: forms/account.py:500 forms/account.py:590 forms/domain.py:325
-#: forms/domain.py:395
+#: admin/forms/account.py:500 admin/forms/account.py:590
+#: admin/forms/domain.py:344 admin/forms/domain.py:414
msgid "General"
msgstr "Ogólne"
-#: forms/account.py:504
+#: admin/forms/account.py:504
msgid "Profile"
msgstr "Profil"
-#: forms/account.py:508 forms/account.py:596
+#: admin/forms/account.py:508 admin/forms/account.py:596
msgid "Mail"
msgstr "Mail"
-#: forms/account.py:511
+#: admin/forms/account.py:511
msgid "Permissions"
msgstr "Uprawnienia"
-#: forms/account.py:579
+#: admin/forms/account.py:579
msgid "Account updated"
msgstr "Konto zaktualizowane"
-#: forms/account.py:604
+#: admin/forms/account.py:604
msgid "New account"
msgstr "Nowe konto"
-#: forms/account.py:616
+#: admin/forms/account.py:614
msgid "Account created"
msgstr "Konto utworzone"
-#: forms/alias.py:26
+#: admin/forms/alias.py:26
msgid "Random address"
msgstr "Adres losowy"
-#: forms/alias.py:29
+#: admin/forms/alias.py:29
msgid "Email address"
msgstr "Adres e-mail"
-#: forms/alias.py:31
+#: admin/forms/alias.py:31
msgid ""
"The alias address. To create a catchall alias, just enter the domain name "
"(@domain.tld)."
-msgstr "Adres aliasu. W celu utworzenia aliasu typu catchall wprowadź jedynie nazwę domeny (np. @domena.pl)"
+msgstr ""
+"Adres aliasu. W celu utworzenia aliasu typu catchall wprowadź jedynie nazwę "
+"domeny (np. @domena.pl)"
-#: forms/alias.py:37 templates/admin/alias_detail.html:37
+#: admin/forms/alias.py:37 admin/templates/admin/alias_detail.html:37
msgid "Recipients"
msgstr "Odbiorcy"
-#: forms/alias.py:39
+#: admin/forms/alias.py:39
msgid ""
"Addresses this alias will point to. Indicate only one address per input, "
"press ENTER to add a new input."
-msgstr "Adres na który wskazuje alias. Wprowadź pojedynczo. Wciśnij ENTER aby dodać kolejny."
+msgstr ""
+"Adres na który wskazuje alias. Wprowadź pojedynczo. Wciśnij ENTER aby dodać "
+"kolejny."
-#: forms/alias.py:114 forms/alias.py:116
+#: admin/forms/alias.py:114 admin/forms/alias.py:116
msgid "This field is required"
msgstr "To pole jest wymagane"
-#: forms/alias.py:120
+#: admin/forms/alias.py:120
msgid "No recipient defined"
msgstr "Nie zdefiniowano odbiorców"
-#: forms/domain.py:36 templates/admin/_global_statistics_widget.html:7
+#: admin/forms/domain.py:36
+#: admin/templates/admin/_global_statistics_widget.html:7
msgid "Type"
msgstr "Typ"
-#: forms/domain.py:42
+#: admin/forms/domain.py:42
msgid ""
"Alias(es) of this domain. Indicate only one name per input, press ENTER to "
"add a new input."
-msgstr "Alias(y) tej domeny. Wprowadź pojedynczo. Wciśnij ENTER aby dodać kolejny."
+msgstr ""
+"Alias(y) tej domeny. Wprowadź pojedynczo. Wciśnij ENTER aby dodać kolejny."
-#: forms/domain.py:81 handlers.py:171
+#: admin/forms/domain.py:47
+msgid "Key selector"
+msgstr ""
+
+#: admin/forms/domain.py:85 admin/handlers.py:171
msgid "domain alias"
msgstr "alias domeny"
-#: forms/domain.py:84 forms/domain.py:136 forms/domain.py:144
+#: admin/forms/domain.py:88 admin/forms/domain.py:155 admin/forms/domain.py:163
#, python-format
msgid "A %s with this name already exists"
msgstr "Nazwa %s już istnieje"
-#: forms/domain.py:92 serializers.py:45
+#: admin/forms/domain.py:96 admin/serializers.py:45
msgid "No authorized MX record found for this domain"
msgstr "Nie znaleziono autoryzowanych dla tej domeny rekordów MX "
-#: forms/domain.py:114 serializers.py:55
+#: admin/forms/domain.py:108
+msgid "DKIM keys storage directory not configured"
+msgstr ""
+
+#: admin/forms/domain.py:129 admin/serializers.py:55
msgid "Cannot be greater than domain quota"
msgstr "Nie może być wyższa niż limit domeny"
-#: forms/domain.py:119
+#: admin/forms/domain.py:134
msgid "You can't define an unlimited quota."
msgstr "Nie możesz przypisać nielimitowanej przestrzeni"
-#: forms/domain.py:136 forms/domain.py:141
+#: admin/forms/domain.py:155 admin/forms/domain.py:160
msgid "domain"
msgstr "domena"
-#: forms/domain.py:190
+#: admin/forms/domain.py:209
msgid "Create a domain administrator"
msgstr "Utwórz administratora domeny"
-#: forms/domain.py:193
+#: admin/forms/domain.py:212
msgid "Automatically create an administrator for this domain"
msgstr "Automatycznie utwórz administratora dla tej domeny"
-#: forms/domain.py:198 templates/admin/domain_detail.html:101
-#: templates/admin/domain_headers.html:3
-#: templates/admin/identity_headers.html:2
-#: templates/admin/mx_domain_detail.html:9
+#: admin/forms/domain.py:217 admin/templates/admin/domain_detail.html:120
+#: admin/templates/admin/domain_headers.html:3
+#: admin/templates/admin/identity_headers.html:2
+#: admin/templates/admin/mx_domain_detail.html:9
msgid "Name"
msgstr "Nazwa"
-#: forms/domain.py:201
+#: admin/forms/domain.py:220
msgid ""
"The administrator's name. Don't include the domain's name here, it will be "
"automatically appended."
-msgstr "Nazwa administratora. Nie dodawaj tutaj nazwy domeny, zostanie dodana automatycznie"
+msgstr ""
+"Nazwa administratora. Nie dodawaj tutaj nazwy domeny, zostanie dodana "
+"automatycznie"
-#: forms/domain.py:211
+#: admin/forms/domain.py:230
msgid "Generate a random password for the administrator."
msgstr "Wygeneruj losowe hasło dla administratora."
-#: forms/domain.py:217
+#: admin/forms/domain.py:236
msgid "With a mailbox"
msgstr "Ze skrzynką"
-#: forms/domain.py:220
+#: admin/forms/domain.py:239
msgid "Create a mailbox for the administrator."
msgstr "Utwórz skrzynkę dla administratora."
-#: forms/domain.py:226
+#: admin/forms/domain.py:245
msgid "Create aliases"
msgstr "Utwórz aliasy"
-#: forms/domain.py:229
+#: admin/forms/domain.py:248
msgid "Automatically create standard aliases for this domain"
msgstr "Automatycznie utwórz standardowe aliasy dla tej domeny"
-#: forms/domain.py:245
+#: admin/forms/domain.py:264
msgid "Invalid format"
msgstr "Niepoprawny format"
-#: forms/domain.py:274
+#: admin/forms/domain.py:293
#, python-format
msgid "User '%s' already exists"
msgstr "Użytkownik '%s' już istnieje"
-#: forms/domain.py:385
+#: admin/forms/domain.py:404
msgid "Domain modified"
msgstr "Domena zmodyfikowana"
-#: forms/domain.py:406
+#: admin/forms/domain.py:425
msgid "Options"
msgstr "Opcje"
-#: forms/domain.py:414
+#: admin/forms/domain.py:433
msgid "New domain"
msgstr "Nowa domena"
-#: forms/domain.py:427
+#: admin/forms/domain.py:446
msgid "Domain created"
msgstr "Domena utworzona"
-#: forms/export.py:9
+#: admin/forms/export.py:9
msgid "File name"
msgstr "Nazwa pliku"
-#: forms/export.py:15 forms/import_.py:15
+#: admin/forms/export.py:15 admin/forms/import_.py:15
msgid "Separator"
msgstr "Separator"
-#: forms/forward.py:14
+#: admin/forms/forward.py:14
msgid "Recipient(s)"
msgstr "Odbiorca(y)"
-#: forms/forward.py:18
+#: admin/forms/forward.py:18
msgid "Indicate one or more recipients separated by a ','"
msgstr "Wprowadź jednego lub wielu odbiorców używając przecinka"
-#: forms/forward.py:21
+#: admin/forms/forward.py:21
msgid "Keep local copies"
msgstr "Zachowuj lokalne kopie"
-#: forms/forward.py:24
+#: admin/forms/forward.py:24
msgid "Forward messages and store copies into your local mailbox"
msgstr "Przekazuj wiadomości i przechowuj kopie w twojej skrzynce"
-#: forms/import_.py:13
+#: admin/forms/import_.py:13
msgid "Select a file"
msgstr "Wybierz plik"
-#: forms/import_.py:21
+#: admin/forms/import_.py:21
msgid "Continue on error"
msgstr "Kontynuuj przy błędzie"
-#: forms/import_.py:22
+#: admin/forms/import_.py:22
msgid "Don't treat duplicated objects as error"
msgstr "Nie traktuj zdublowanych obiektów jako błąd"
-#: forms/import_.py:40
+#: admin/forms/import_.py:40
msgid "Crypt passwords"
msgstr "Szyfruj hasła"
-#: forms/import_.py:42
+#: admin/forms/import_.py:42
msgid "Check this option if passwords contained in your file are not crypted"
msgstr "Zaznacz opcję jeśli hasła w twoim pliku nie są zaszyfrowane"
-#: handlers.py:218
+#: admin/handlers.py:218
#, python-format
msgid "Account import failed (%s): domain does not exist"
msgstr "Błąd importu (%s): domena nie istnieje"
-#: handlers.py:231 models/mailbox.py:342
+#: admin/handlers.py:231 admin/models/mailbox.py:342
msgid "Mailbox {} already exists"
msgstr "Skrzynka {} już istnieje"
-#: handlers.py:239
+#: admin/handlers.py:239
#, python-format
msgid "Account import failed (%s): wrong quota value"
msgstr "Błąd importu (%s): błędna wartość limitu"
-#: handlers.py:279 templates/admin/_global_statistics_widget.html:17
-#: templates/admin/_per_domain_statistics_widget.html:8
-#: templates/admin/identities.html:5
+#: admin/handlers.py:279
+#: admin/templates/admin/_global_statistics_widget.html:17
+#: admin/templates/admin/_per_domain_statistics_widget.html:8
+#: admin/templates/admin/identities.html:5
msgid "Identities"
msgstr "Tożsamości"
-#: handlers.py:295 templates/admin/forward.html:2
+#: admin/handlers.py:295 admin/templates/admin/forward.html:2
msgid "Forward"
msgstr "Przekaż"
-#: lib.py:41
+#: admin/lib.py:44
msgid "A mailbox is required"
msgstr "Skrzynka jest obowiązkowa"
-#: lib.py:131
+#: admin/lib.py:134
msgid "You are not allowed to import domains"
msgstr "Nie masz uprawnień do importowania domen"
-#: lib.py:142
+#: admin/lib.py:145
msgid "You are not allowed to import domain aliases."
msgstr "Nie masz uprawnień do importowania aliasów."
-#: management/commands/subcommands/_mx.py:125
+#: admin/lib.py:183 admin/tests/test_mx.py:122
+#, fuzzy, python-format
+#| msgid "No MX record found for this domain."
+msgid "No DNS records found for %s"
+msgstr "Nie znaleziono rekordu MX dla tej domeny"
+
+#: admin/lib.py:185 admin/tests/test_mx.py:125
+#, fuzzy, python-format
+#| msgid "MX records of {}"
+msgid "No MX record for %s"
+msgstr "Rekordy MX dla {}"
+
+#: admin/lib.py:187 admin/tests/test_mx.py:126
+msgid "No working name servers found"
+msgstr ""
+
+#: admin/lib.py:190 admin/tests/test_mx.py:128
+#, python-format
+msgid "DNS resolution timeout, unable to query %s at the moment"
+msgstr ""
+
+#: admin/lib.py:201 admin/tests/test_mx.py:131
+#, python-format
+msgid "Unable to lookup ip addresses for %(domain)s; %(error)s"
+msgstr ""
+
+#: admin/lib.py:212 admin/tests/test_mx.py:134
+#, python-format
+msgid "Invalid IP address format for %(domain)s; %(addr)s"
+msgstr ""
+
+#: admin/management/commands/subcommands/_mx.py:136
msgid "[modoboa] DNSBL issue(s) for domain {}"
msgstr "[modoboa] DNSBL problem(y) dla domeny {}"
-#: management/commands/subcommands/_mx.py:145
+#: admin/management/commands/subcommands/_mx.py:156
msgid "Domain {} has no MX record"
msgstr "Domena {} nie ma zdefiniowanego rekordu MX"
-#: management/commands/subcommands/_mx.py:156
+#: admin/management/commands/subcommands/_mx.py:167
#, python-brace-format
msgid "MX record for domain {0} is invalid: {1}"
msgstr "Rekord MX dla domeny {0} jest niepoprawny: {1}"
-#: management/commands/subcommands/_mx.py:173
+#: admin/management/commands/subcommands/_mx.py:184
msgid "[modoboa] MX issue(s) for domain {}"
msgstr "[modoboa] Wykryto problem(y) z MX dla domeny {}"
-#: models/alias.py:35 models/mailbox.py:97
+#: admin/models/alias.py:35 admin/models/mailbox.py:97
msgid "address"
msgstr "adres"
-#: models/alias.py:37
+#: admin/models/alias.py:37
msgid "The alias address."
msgstr "Adres aliasu."
-#: models/alias.py:42 models/domain.py:48 models/domain_alias.py:46
+#: admin/models/alias.py:42 admin/models/domain.py:48
+#: admin/models/domain_alias.py:47
msgid "enabled"
msgstr "włączone"
-#: models/alias.py:43 models/domain_alias.py:47
+#: admin/models/alias.py:43 admin/models/domain_alias.py:48
msgid "Check to activate this alias"
msgstr "Zaznacz aby włączyć alias."
-#: models/alias.py:48 templates/admin/alias_detail.html:32
+#: admin/models/alias.py:48 admin/templates/admin/alias_detail.html:32
msgid "Description"
msgstr "Opis"
-#: models/alias.py:50 templates/admin/alias_detail.html:29
+#: admin/models/alias.py:50 admin/templates/admin/alias_detail.html:29
msgid "Expire at"
msgstr "Wygasa"
-#: models/alias.py:93
+#: admin/models/alias.py:93
msgid "alias"
msgstr "alias"
-#: models/alias.py:125
+#: admin/models/alias.py:125
msgid "Invalid address"
msgstr "Niepoprawny adres"
-#: models/alias.py:146
+#: admin/models/alias.py:146
msgid "Local recipient {}@{} not found"
msgstr "Lokalny odbiorca {}@{} nie został odnaleziony"
-#: models/alias.py:176
+#: admin/models/alias.py:176
#, python-format
msgid "Invalid line: %s"
msgstr "Niepoprawna linia: %s"
-#: models/alias.py:182
+#: admin/models/alias.py:182
#, python-format
msgid "Domain '%s' does not exist"
msgstr "Domena '%s' nie istnieje"
-#: models/domain.py:30 models/domain_alias.py:39
+#: admin/models/domain.py:30 admin/models/domain_alias.py:39
msgid "name"
msgstr "nazwa"
-#: models/domain.py:31
+#: admin/models/domain.py:31
msgid "The domain name"
msgstr "Nazwa domeny"
-#: models/domain.py:35
+#: admin/models/domain.py:35
msgid "Quota in MB shared between mailboxes. A value of 0 means no quota."
-msgstr "Przydział w MB dzielony między skrzynki. Wartość 0 oznacza brak limitu."
+msgstr ""
+"Przydział w MB dzielony między skrzynki. Wartość 0 oznacza brak limitu."
-#: models/domain.py:43
+#: admin/models/domain.py:43
msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota."
-msgstr "Domyślne ograniczenie (w MB) dla nowych skrzynek. Wartość 0 oznacza brak ograniczenia."
+msgstr ""
+"Domyślne ograniczenie (w MB) dla nowych skrzynek. Wartość 0 oznacza brak "
+"ograniczenia."
-#: models/domain.py:49
+#: admin/models/domain.py:49
msgid "Check to activate this domain"
msgstr "Zaznacz, aby aktywować domenę"
-#: models/domain.py:54
+#: admin/models/domain.py:54
msgid "Enable DNS checks"
msgstr "Aktywuj sprawdzanie rekordów DNS"
-#: models/domain.py:55
+#: admin/models/domain.py:55
msgid "Check to enable DNS checks for this domain"
msgstr "Zaznacz aby aktywować sprawdzanie DNS dla tej domeny"
-#: models/domain.py:253 models/domain_alias.py:73
+#: admin/models/domain.py:62
+msgid "Enable DKIM signing"
+msgstr ""
+
+#: admin/models/domain.py:64
+msgid ""
+"If you activate this feature, a DKIM key will be generated for this domain."
+msgstr ""
+
+#: admin/models/domain.py:70
+msgid "Key length"
+msgstr ""
+
+#: admin/models/domain.py:285 admin/models/domain_alias.py:74
msgid "Invalid line"
msgstr "Niepoprawna linia"
-#: models/domain.py:263
+#: admin/models/domain.py:295
msgid "No authorized MX record found for domain {}"
msgstr "Nie znaleziono autoryzowanego rekordu MX dla domeny {}"
-#: models/domain.py:270
+#: admin/models/domain.py:302
msgid "Invalid quota value for domain '{}'"
msgstr "Niepoprawna wartość przydziału (quoty) dla domeny {}"
-#: models/domain.py:277
+#: admin/models/domain.py:309
msgid "Invalid default mailbox quota value for domain '{}'"
msgstr "Niepoprawna wartość domyślna przydziału (quoty) dla domeny '{}'"
-#: models/domain.py:282
+#: admin/models/domain.py:314
msgid "Default mailbox quota cannot be greater than domain quota"
-msgstr "Domyślna wartość przydziału (quota) nie może być wyższa niż przydział domeny"
+msgstr ""
+"Domyślna wartość przydziału (quota) nie może być wyższa niż przydział domeny"
-#: models/domain_alias.py:40
+#: admin/models/domain_alias.py:40
msgid "The alias name"
msgstr "Nazwa aliasu"
-#: models/domain_alias.py:42
+#: admin/models/domain_alias.py:42
msgid "target"
msgstr "cel"
-#: models/domain_alias.py:43
+#: admin/models/domain_alias.py:43
msgid "The domain this alias points to"
msgstr "Alias wskazuje na"
-#: models/domain_alias.py:82
+#: admin/models/domain_alias.py:83
#, python-format
msgid "Unknown domain %s"
msgstr "Nieznana domena %s"
-#: models/mailbox.py:99
+#: admin/models/mailbox.py:99
msgid "Mailbox address (without the @domain.tld part)"
msgstr "Adres skrzynki (bez części @domena.pl)"
-#: models/mailbox.py:165
+#: admin/models/mailbox.py:165
#, python-format
msgid "Failed to retrieve mailbox location (%s)"
msgstr "Błąd - nie udało się odczytać lokalizacji skrzynki (%s)"
-#: models/mailbox.py:258
+#: admin/models/mailbox.py:258
msgid "A quota is required"
msgstr "Limit jest wymagany"
-#: models/mailbox.py:264
+#: admin/models/mailbox.py:264
msgid "Domain quota exceeded"
msgstr "Przekroczono limit przydziału"
-#: serializers.py:80 serializers.py:266 serializers.py:360
+#: admin/serializers.py:80 admin/serializers.py:266 admin/serializers.py:360
msgid "Permission denied."
msgstr "Odmowa dostępu"
-#: serializers.py:118
+#: admin/serializers.py:118
msgid ""
"List of administered domains (resellers and domain administrators only)."
-msgstr "Lista administratorów domen (tylko resellerów i administratorów domen)."
+msgstr ""
+"Lista administratorów domen (tylko resellerów i administratorów domen)."
-#: serializers.py:218
+#: admin/serializers.py:218
msgid "Not allowed for this role."
msgstr "Niedozwolone dla tej roli."
-#: serializers.py:228
+#: admin/serializers.py:228
msgid "Must be equal to mailbox full_address"
msgstr "Musi być równe z full_address skrzynki."
-#: serializers.py:253
+#: admin/serializers.py:253
msgid "Local domain {} does not exist"
msgstr "Lokalna domena {} nie istnieje"
-#: serializers.py:347
+#: admin/serializers.py:347
msgid "A list of recipient"
msgstr "Lista odbiorców"
-#: serializers.py:358
+#: admin/serializers.py:358
msgid "Domain not found."
msgstr "Domena nie znaleziona."
-#: templates/admin/_domain_dnschecks_status.html:4
+#: admin/serializers.py:407
+#, fuzzy
+#| msgid "You don't have access to this domain"
+msgid "You don't have access to this domain."
+msgstr "Nie masz uprawnień dla tej domeny"
+
+#: admin/serializers.py:415
+#, fuzzy
+#| msgid "You don't have access to this domain"
+msgid "You don't have access to this mailbox."
+msgstr "Nie masz uprawnień dla tej domeny"
+
+#: admin/templates/admin/_domain_dkim_key.html:6
+#: admin/templates/admin/_domain_dkim_key.html:20
+msgid "Close"
+msgstr ""
+
+#: admin/templates/admin/_domain_dkim_key.html:7
+#, python-format
+msgid "DKIM public key for %(domain)s"
+msgstr ""
+
+#: admin/templates/admin/_domain_dkim_key.html:11
+#, fuzzy
+#| msgid "Invalid format"
+msgid "Raw format"
+msgstr "Niepoprawny format"
+
+#: admin/templates/admin/_domain_dkim_key.html:15
+#, fuzzy
+#| msgid "Invalid format"
+msgid "Bind/named format"
+msgstr "Niepoprawny format"
+
+#: admin/templates/admin/_domain_dnschecks_status.html:4
msgctxt "checks"
msgid "Disabled"
msgstr "Wyłączony"
-#: templates/admin/_domain_dnschecks_status.html:6
+#: admin/templates/admin/_domain_dnschecks_status.html:6
msgid "Awaiting checks"
msgstr "Czeka na sprawdzenie"
-#: templates/admin/_global_statistics_widget.html:4
+#: admin/templates/admin/_global_statistics_widget.html:4
msgid "Global statistics"
msgstr "Statystyki globalne"
-#: templates/admin/_global_statistics_widget.html:8
+#: admin/templates/admin/_global_statistics_widget.html:8
msgid "Quantity"
msgstr "Ilość"
-#: templates/admin/_global_statistics_widget.html:14
-#: templates/admin/domain_detail.html:45 templates/admin/domain_detail.html:81
+#: admin/templates/admin/_global_statistics_widget.html:14
+#: admin/templates/admin/domain_detail.html:37
+#: admin/templates/admin/domain_detail.html:73
msgid "Domain aliases"
msgstr "Aliasy domen"
-#: templates/admin/_per_domain_statistics_widget.html:4
+#: admin/templates/admin/_per_domain_statistics_widget.html:4
msgid "Per-domain statistics"
msgstr "Statystyki dla domeny"
-#: templates/admin/account_detail.html:16 templates/admin/alias_detail.html:16
-#: templates/admin/domain_detail.html:19
-#: templates/admin/identities_table.html:7
+#: admin/templates/admin/account_detail.html:16
+#: admin/templates/admin/alias_detail.html:16
+#: admin/templates/admin/domain_detail.html:19
+#: admin/templates/admin/identities_table.html:7
msgid "(disabled)"
msgstr "(wyłączone)"
-#: templates/admin/account_detail.html:22 templates/admin/alias_detail.html:22
-#: templates/admin/domain_detail.html:25
+#: admin/templates/admin/account_detail.html:22
+#: admin/templates/admin/alias_detail.html:22
+#: admin/templates/admin/domain_detail.html:25
msgid "Summary"
msgstr "Podsumowanie"
-#: templates/admin/account_detail.html:26
+#: admin/templates/admin/account_detail.html:26
msgid "Full name"
msgstr "Pełna nazwa"
-#: templates/admin/account_detail.html:32 templates/admin/alias_detail.html:26
+#: admin/templates/admin/account_detail.html:32
+#: admin/templates/admin/alias_detail.html:26
msgid "Created"
msgstr "Utworzono"
-#: templates/admin/account_detail.html:35
+#: admin/templates/admin/account_detail.html:35
msgid "Last login"
msgstr "Ostatnie logowanie"
-#: templates/admin/account_detail.html:38
+#: admin/templates/admin/account_detail.html:38
msgid "Secondary email"
msgstr "Drugi adres email"
-#: templates/admin/account_detail.html:38
-#: templates/admin/account_detail.html:41
+#: admin/templates/admin/account_detail.html:38
+#: admin/templates/admin/account_detail.html:41
msgid "Not defined"
msgstr "Nie zdefiniowano"
-#: templates/admin/account_detail.html:41
+#: admin/templates/admin/account_detail.html:41
msgid "Phone number"
msgstr "Numer telefonu"
-#: templates/admin/account_detail.html:55
+#: admin/templates/admin/account_detail.html:55
msgid "Administered domains"
msgstr "Zarządzane domeny"
-#: templates/admin/account_detail.html:61
+#: admin/templates/admin/account_detail.html:61
msgid "No domain defined."
msgstr "Brak zdefiniowanej domeny"
-#: templates/admin/account_detail.html:75
+#: admin/templates/admin/account_detail.html:75
msgid "Aliases"
msgstr "Alias"
-#: templates/admin/account_detail.html:81
+#: admin/templates/admin/account_detail.html:81
msgid "No alias defined"
msgstr "Brak zdefiniowanych aliasów"
-#: templates/admin/account_detail.html:87
+#: admin/templates/admin/account_detail.html:87
msgid "Additional sender addresses"
msgstr "Dodatkowy adres nadawcy"
-#: templates/admin/account_detail.html:93
+#: admin/templates/admin/account_detail.html:93
msgid "No sender address defined"
msgstr "Brak zdefiniowanego adresu nadawcy"
-#: templates/admin/account_general_form.html:12
-#: templates/admin/aliasform.html:13
+#: admin/templates/admin/account_general_form.html:12
+#: admin/templates/admin/aliasform.html:13
msgid "Domain is disabled"
msgstr "Domen wyłączona"
-#: templates/admin/alias_detail.html:16 templates/admin/identities.html:33
+#: admin/templates/admin/alias_detail.html:16
+#: admin/templates/admin/identities.html:33
msgid "Alias"
msgstr "Alias"
-#: templates/admin/alias_detail.html:27
+#: admin/templates/admin/alias_detail.html:27
msgid "Modified"
msgstr "Modyfikowano"
-#: templates/admin/dnsbl_domain_detail.html:10
+#: admin/templates/admin/dnsbl_domain_detail.html:10
msgid "Provider"
msgstr "Dostawca"
-#: templates/admin/dnsbl_domain_detail.html:11
-#: templates/admin/identities_quota_headers.html:2
-#: templates/admin/mx_domain_detail.html:10
+#: admin/templates/admin/dnsbl_domain_detail.html:11
+#: admin/templates/admin/identities_quota_headers.html:2
+#: admin/templates/admin/mx_domain_detail.html:10
msgid "Address"
msgstr "Adres"
-#: templates/admin/dnsbl_domain_detail.html:12
+#: admin/templates/admin/dnsbl_domain_detail.html:12
+#: admin/templates/admin/domain_detail.html:96
msgid "Status"
msgstr "Status"
-#: templates/admin/dnsbl_domain_detail.html:21
+#: admin/templates/admin/dnsbl_domain_detail.html:21
msgid "listed"
msgstr "wylistowane"
-#: templates/admin/dnsbl_domain_detail.html:29
+#: admin/templates/admin/dnsbl_domain_detail.html:29
msgid "Everything is fine, this domain is not listed."
msgstr "Wszystko ok, ta domena nie jest wylistowana."
-#: templates/admin/dnsbl_domain_detail.html:32
+#: admin/templates/admin/dnsbl_domain_detail.html:32
msgid "No information available for this domain."
msgstr "Brak dostępnych informacji dla tej domeny."
-#: templates/admin/domain_detail.html:30 templates/admin/domain_headers.html:7
-msgid "DNS status"
-msgstr "Status DNS"
-
-#: templates/admin/domain_detail.html:37
+#: admin/templates/admin/domain_detail.html:29
msgid "Creation date"
msgstr "Data utworzenia"
-#: templates/admin/domain_detail.html:41
+#: admin/templates/admin/domain_detail.html:33
msgid "Last modification date"
msgstr "Data ostatniej modyfikacji"
-#: templates/admin/domain_detail.html:53
+#: admin/templates/admin/domain_detail.html:45
msgid "Mailbox aliases"
msgstr "Aliasy skrzynki"
-#: templates/admin/domain_detail.html:58 templates/admin/domain_detail.html:65
-#: templates/admin/domain_detail.html:66 templates/admin/domain_detail.html:73
-#: templates/admin/domain_general_form.html:4
-#: templates/admin/domain_general_form.html:5
-#: templates/admin/domains_quotas.html:11
-#: templates/admin/domains_quotas.html:12 templates/admin/mailform.html:7
-#: templates/admin/newdomainform.html:3
+#: admin/templates/admin/domain_detail.html:50
+#: admin/templates/admin/domain_detail.html:57
+#: admin/templates/admin/domain_detail.html:58
+#: admin/templates/admin/domain_detail.html:65
+#: admin/templates/admin/domain_general_form.html:4
+#: admin/templates/admin/domain_general_form.html:5
+#: admin/templates/admin/domains_quotas.html:11
+#: admin/templates/admin/domains_quotas.html:12
+#: admin/templates/admin/mailform.html:7
+#: admin/templates/admin/newdomainform.html:3
msgid "MB"
msgstr "MB"
-#: templates/admin/domain_detail.html:62
+#: admin/templates/admin/domain_detail.html:54
msgid "Usage"
msgstr "Wykorzystanie"
-#: templates/admin/domain_detail.html:65
-#: templates/admin/domains_quotas.html:11
+#: admin/templates/admin/domain_detail.html:57
+#: admin/templates/admin/domains_quotas.html:11
msgctxt "quota"
msgid "used"
msgstr "użyto"
-#: templates/admin/domain_detail.html:66
-#: templates/admin/domains_quotas.html:12
+#: admin/templates/admin/domain_detail.html:58
+#: admin/templates/admin/domains_quotas.html:12
msgid "allocated"
msgstr "przydzielono"
-#: templates/admin/domain_detail.html:98
+#: admin/templates/admin/domain_detail.html:91
+msgid "DNS"
+msgstr ""
+
+#: admin/templates/admin/domain_detail.html:103
+msgid "DKIM key"
+msgstr ""
+
+#: admin/templates/admin/domain_detail.html:107
+msgid "Show key"
+msgstr ""
+
+#: admin/templates/admin/domain_detail.html:110
+#, fuzzy
+#| msgid "Not defined"
+msgid "Not generated"
+msgstr "Nie zdefiniowano"
+
+#: admin/templates/admin/domain_detail.html:117
msgid "Administrators"
msgstr "Administratorzy"
-#: templates/admin/domain_detail.html:110 templatetags/admin_tags.py:268
+#: admin/templates/admin/domain_detail.html:129
+#: admin/templatetags/admin_tags.py:268
msgid "Remove this permission"
msgstr "Usuń to uprawnienie"
-#: templates/admin/domain_detail.html:115
+#: admin/templates/admin/domain_detail.html:134
msgid "No domain administrator defined yet."
msgstr "Nie zdefiniowano jeszcze administratorów domeny."
-#: templates/admin/domain_headers.html:5
-#: templates/admin/identity_headers.html:4
+#: admin/templates/admin/domain_headers.html:5
+#: admin/templates/admin/identity_headers.html:4
msgid "Tags"
msgstr "Tagi"
-#: templates/admin/domain_headers.html:9
-#: templates/admin/identity_headers.html:5
+#: admin/templates/admin/domain_headers.html:7
+msgid "DNS status"
+msgstr "Status DNS"
+
+#: admin/templates/admin/domain_headers.html:9
+#: admin/templates/admin/identity_headers.html:5
msgid "Actions"
msgstr "Akcje"
-#: templates/admin/domain_options_form.html:10
+#: admin/templates/admin/domain_options_form.html:10
msgid "You can't create a new domain administrator"
msgstr "Nie możesz utworzyć nowego administratora domeny"
-#: templates/admin/domains.html:26 templates/admin/identities.html:29
+#: admin/templates/admin/domains.html:28
+#: admin/templates/admin/identities.html:29
msgid "Add"
msgstr "Dodaj"
-#: templates/admin/domains_quota_headers.html:3
-#: templates/admin/identities_quota_headers.html:4
+#: admin/templates/admin/domains_quota_headers.html:3
+#: admin/templates/admin/identities_quota_headers.html:4
msgid "Limit"
msgstr "Limit"
-#: templates/admin/domains_quota_headers.html:4
+#: admin/templates/admin/domains_quota_headers.html:4
msgid "Used"
msgstr "Użyto"
-#: templates/admin/domains_quota_headers.html:5
+#: admin/templates/admin/domains_quota_headers.html:5
msgid "Allocated"
msgstr "Przydzielono"
-#: templates/admin/domains_quota_headers.html:6
-#: templates/admin/identities_quota_headers.html:5
+#: admin/templates/admin/domains_quota_headers.html:6
+#: admin/templates/admin/identities_quota_headers.html:5
#, python-format
msgid "Usage (%%)"
msgstr "Wykorzystanie (%%)"
-#: templates/admin/domains_table.html:5
+#: admin/templates/admin/domains_table.html:5
msgid "disabled"
msgstr "wyłączone"
-#: templates/admin/forward.html:2
+#: admin/templates/admin/forward.html:2
msgid "Automatically forward emails to another address"
msgstr "Automatycznie przekazuj wiadomości do do innych odbiorców"
-#: templates/admin/forward.html:9 views/alias.py:93
+#: admin/templates/admin/forward.html:9 admin/views/alias.py:93
msgid "Update"
msgstr "Zaktualizuj"
-#: templates/admin/identities.html:32
+#: admin/templates/admin/identities.html:32
msgid "Account"
msgstr "Konto"
-#: templates/admin/identities_quota_headers.html:3
+#: admin/templates/admin/identities_quota_headers.html:3
msgid "Value"
msgstr "Wartość"
-#: templates/admin/identity_headers.html:3
+#: admin/templates/admin/identity_headers.html:3
msgid "Fullname/Recipient"
msgstr "Pełna nazwa/Odbiorcy"
-#: templates/admin/import_domains_form.html:6
+#: admin/templates/admin/import_domains_form.html:6
msgid ""
"Provide a CSV file where lines respect one of the following formats: "
"- domain; name; quota; default mailbox quota; enabled
"
@@ -945,139 +1133,164 @@ msgid ""
"verify recipients
The first element of each line is "
"mandatory and must be equal to one of the previous values.
You can "
"use a different character as separator.
"
-msgstr "Przygotuj plik CSV gdzie linie są nastepującego formatu:\n - domain; nazwa; quota; domyślna quota skrzynki; enabled
\n- domainalias; nazwa; docelowa domena; enabled
\n- relaydomain; nazwa; docelowy host; docelowy port; service; enabled; verify recipients
\n\nPierwszy element każdej linii jest obowiązkowy i musi być zawierać jedną z powyższych wartości.
\nMożesz użyc różnych znaków jako separatora pól.
"
+msgstr ""
+"Przygotuj plik CSV gdzie linie są nastepującego formatu:\n"
+" - domain; nazwa; quota; domyślna quota skrzynki; enabled"
+"li> \n"
+"
- domainalias; nazwa; docelowa domena; enabled
\n"
+"- relaydomain; nazwa; docelowy host; docelowy port; service; enabled; "
+"verify recipients
\n"
+"\n"
+"Pierwszy element każdej linii jest obowiązkowy i musi być zawierać jedną "
+"z powyższych wartości.
\n"
+"Możesz użyc różnych znaków jako separatora pól.
"
-#: templates/admin/import_identities_form.html:6
+#: admin/templates/admin/import_identities_form.html:6
msgid ""
"Provide a CSV file where lines respect one of the following formats: "
-"- account; loginname; password; first name; last name; enabled; group;"
-" address; quota; [, domain, ...]
- alias; address; enabled; "
+"
- account; loginname; password; first name; last name; enabled; group; "
+"address; quota; [, domain, ...]
- alias; address; enabled; "
"recipient; recipient; ...
The first element of each line "
-"is mandatory and must be equal to one of the previous values.
You can"
-" use a different character as separator.
"
-msgstr "Przygotuj plik CSV gdzie linie są następującego formatu:\n \n- account; login; hasło; imie; nazwisko; enabled; grupa; addres; quota; [, domena, ...]
\n- alias; addres; enabled; recipient; recipient; ...
\n
\nPierwszy element każdej linii jest obowiązkowy i musi być zawierać jedną z powyższych wartości.
\nMożesz użyć różnych znaków jako separatora pól."
+"is mandatory and must be equal to one of the previous values.
You can "
+"use a different character as separator.
"
+msgstr ""
+"Przygotuj plik CSV gdzie linie są następującego formatu:\n"
+" \n"
+"- account; login; hasło; imie; nazwisko; enabled; grupa; addres; "
+"quota; [, domena, ...]
\n"
+"- alias; addres; enabled; recipient; recipient; ...
\n"
+"
\n"
+"Pierwszy element każdej linii jest obowiązkowy i musi być zawierać jedną "
+"z powyższych wartości.
\n"
+"Możesz użyć różnych znaków jako separatora pól."
-#: templates/admin/importform.html:6
+#: admin/templates/admin/importform.html:6
msgid "Help"
msgstr "Pomoc"
-#: templates/admin/importform.html:13
+#: admin/templates/admin/importform.html:13
msgid "Importing..."
msgstr "Importowanie..."
-#: templates/admin/index.html:6
+#: admin/templates/admin/index.html:6
msgid "Admin"
msgstr "Admin"
-#: templates/admin/mailboxes_raw.html:3
+#: admin/templates/admin/mailboxes_raw.html:3
msgid "Choose a value"
msgstr "Wybierz wartość"
-#: templates/admin/mailform.html:7
+#: admin/templates/admin/mailform.html:7
msgid "Use domain default value"
msgstr "Użyj domyślnej wartości dla domeny"
-#: templates/admin/mx_domain_detail.html:11
+#: admin/templates/admin/mx_domain_detail.html:11
msgid "Updated"
msgstr "Zaktualizowane"
-#: templates/admin/mx_domain_detail.html:23
+#: admin/templates/admin/mx_domain_detail.html:23
msgid "This IP does not match any of the valid MXs defined in parameters"
msgstr "Ten IP nie pasuje do żadnego poprawnego MX'a określonego w parametrach"
-#: templates/admin/mx_domain_detail.html:36
+#: admin/templates/admin/mx_domain_detail.html:36
msgid "No MX record found for this domain."
msgstr "Nie znaleziono rekordu MX dla tej domeny"
-#: templates/admin/notifications/domain_in_dnsbl.html:3
+#: admin/templates/admin/notifications/domain_in_dnsbl.html:3
#, python-format
msgid ""
"Modoboa detected that domain %(domain)s is listed by the following DNSBL "
"providers:"
-msgstr "Modoboa znalazło tą domenę %(domain)s na liście DNSBL poniższych providerów:"
+msgstr ""
+"Modoboa znalazło tą domenę %(domain)s na liście DNSBL poniższych providerów:"
-#: templates/admin/notifications/domain_in_dnsbl.html:11
+#: admin/templates/admin/notifications/domain_in_dnsbl.html:11
msgid ""
"The domain's reputation will be affected and there is a chance that emails "
"coming from it are considered as spam. You should contact those providers "
"and ask them to unlist detected IP address(es)."
-msgstr "Reputacja domeny zostanie naruszona i istnieje szansa, że wiadomości z niej pochodzące zostaną zakwalifikowane jako spam. Powinieneś skontaktować się z tymi providerami i poprości o usunięcie wykrytych adresów IP."
+msgstr ""
+"Reputacja domeny zostanie naruszona i istnieje szansa, że wiadomości z niej "
+"pochodzące zostaną zakwalifikowane jako spam. Powinieneś skontaktować się z "
+"tymi providerami i poprości o usunięcie wykrytych adresów IP."
-#: templates/admin/notifications/domain_invalid_mx.html:3
+#: admin/templates/admin/notifications/domain_invalid_mx.html:3
#, python-format
msgid "Modoboa detected that domain %(domain)s has no valid MX record:"
-msgstr "Modoboa sygnalizuje że ta domena %(domain)s nie posiada poprawnego rekordu MX:"
+msgstr ""
+"Modoboa sygnalizuje że ta domena %(domain)s nie posiada poprawnego rekordu "
+"MX:"
-#: templates/admin/searchform.html:6
+#: admin/templates/admin/searchform.html:6
msgid "Search"
msgstr "Szukaj"
-#: templatetags/admin_tags.py:22
+#: admin/templatetags/admin_tags.py:22
msgid "enabled_m"
msgstr "enabled_m"
-#: templatetags/admin_tags.py:22
+#: admin/templatetags/admin_tags.py:22
msgid "enabled_f"
msgstr "enabled_f"
-#: templatetags/admin_tags.py:48
+#: admin/templatetags/admin_tags.py:48
msgid "List domains"
msgstr "Lista domen"
-#: templatetags/admin_tags.py:53 templatetags/admin_tags.py:108
+#: admin/templatetags/admin_tags.py:53 admin/templatetags/admin_tags.py:108
msgid "List quotas"
msgstr "Lista limitów"
-#: templatetags/admin_tags.py:65 templatetags/admin_tags.py:113
-#: views/import_.py:101 views/import_.py:123
+#: admin/templatetags/admin_tags.py:65 admin/templatetags/admin_tags.py:113
+#: admin/views/import_.py:89 admin/views/import_.py:111
msgid "Import"
msgstr "Importuj"
-#: templatetags/admin_tags.py:71 templatetags/admin_tags.py:119
-#: views/export.py:44 views/export.py:74
+#: admin/templatetags/admin_tags.py:71 admin/templatetags/admin_tags.py:119
+#: admin/views/export.py:43 admin/views/export.py:71
msgid "Export"
msgstr "Exportuj"
-#: templatetags/admin_tags.py:103
+#: admin/templatetags/admin_tags.py:103
msgid "List identities"
msgstr "Lista tożsamości"
-#: templatetags/admin_tags.py:138
+#: admin/templatetags/admin_tags.py:138
msgid "View the domain's identities"
msgstr "Pokaż tożsamości domeny"
-#: templatetags/admin_tags.py:144 templatetags/admin_tags.py:187
-#: templatetags/admin_tags.py:200
+#: admin/templatetags/admin_tags.py:144 admin/templatetags/admin_tags.py:187
+#: admin/templatetags/admin_tags.py:200
msgid "Edit {}"
msgstr "Edytuj {}"
-#: templatetags/admin_tags.py:154 templatetags/admin_tags.py:191
-#: templatetags/admin_tags.py:205
+#: admin/templatetags/admin_tags.py:154 admin/templatetags/admin_tags.py:191
+#: admin/templatetags/admin_tags.py:205
#, python-format
msgid "Delete %s?"
msgstr "Usunąć %s?"
-#: views/alias.py:35
+#: admin/views/alias.py:35
msgid "Alias with this name already exists"
msgstr "Alias z taką nazwą już istnieje"
-#: views/alias.py:60
+#: admin/views/alias.py:60
msgid "Create"
msgstr "Utwórz"
-#: views/alias.py:72
+#: admin/views/alias.py:72
msgid "New alias"
msgstr "Nowy alias"
-#: views/alias.py:73
+#: admin/views/alias.py:73
msgid "Alias created"
msgstr "Alias utworzony"
-#: views/alias.py:85
+#: admin/views/alias.py:85
msgid "Alias modified"
msgstr "Alias zmodyfikowany"
-#: views/alias.py:109
+#: admin/views/alias.py:109
msgid "Alias deleted"
msgid_plural "Aliases deleted"
msgstr[0] "Alias skasowano"
@@ -1085,19 +1298,19 @@ msgstr[1] "Alias skasowano"
msgstr[2] "Alias skasowano"
msgstr[3] "Aliasy skasowano"
-#: views/dns.py:32
+#: admin/views/dns.py:32
msgid "MX records of {}"
msgstr "Rekordy MX dla {}"
-#: views/dns.py:55
+#: admin/views/dns.py:55
msgid "DNSBL summary for {}"
msgstr "DNSBL podsumowanie dla {}"
-#: views/domain.py:190
+#: admin/views/domain.py:188
msgid "You can't delete your own domain"
msgstr "Nie możesz usunąć swoje własnej domeny"
-#: views/domain.py:193
+#: admin/views/domain.py:191
msgid "Domain deleted"
msgid_plural "Domains deleted"
msgstr[0] "Domena usunięta"
@@ -1105,19 +1318,20 @@ msgstr[1] "Domeny usunięte"
msgstr[2] "Domeny usunięte"
msgstr[3] "Domeny usunięte"
-#: views/export.py:43
+#: admin/views/export.py:42
msgid "Export identities"
msgstr "Eksportuj tożsamości"
-#: views/export.py:73
+#: admin/views/export.py:70
msgid "Export domains"
msgstr "Eksportuj domeny"
-#: views/identity.py:113 views/identity.py:206 views/identity.py:211
+#: admin/views/identity.py:113 admin/views/identity.py:206
+#: admin/views/identity.py:211
msgid "Invalid request"
msgstr "Nieprawidłowe żądanie"
-#: views/identity.py:196
+#: admin/views/identity.py:196
msgid "Account deleted"
msgid_plural "Accounts deleted"
msgstr[0] "Konto usunięte"
@@ -1125,24 +1339,24 @@ msgstr[1] "Konta usunięte"
msgstr[2] "Konta usunięte"
msgstr[3] "Konta usunięte"
-#: views/import_.py:77
+#: admin/views/import_.py:65
#, python-format
msgid "Object already exists: %s"
msgstr "Obiekt %s już istnieje"
-#: views/import_.py:81
+#: admin/views/import_.py:69
#, python-format
msgid "%d objects imported successfully"
msgstr "Zaimportowano %d obiektów z sukcesem"
-#: views/import_.py:100
+#: admin/views/import_.py:88
msgid "Import domains"
msgstr "Importuj domeny"
-#: views/import_.py:122
+#: admin/views/import_.py:110
msgid "Import identities"
msgstr "Importuj tożsamości"
-#: views/user.py:40
+#: admin/views/user.py:40
msgid "Forward updated"
msgstr "Reguła przekazywania zmodyfikowana"
diff --git a/modoboa/admin/locale/pt_BR/LC_MESSAGES/django.po b/modoboa/admin/locale/pt_BR/LC_MESSAGES/django.po
index 6ae0e728c..9b510ac56 100644
--- a/modoboa/admin/locale/pt_BR/LC_MESSAGES/django.po
+++ b/modoboa/admin/locale/pt_BR/LC_MESSAGES/django.po
@@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-12-03 12:51+0100\n"
+"POT-Creation-Date: 2018-01-25 09:09+0100\n"
"PO-Revision-Date: 2016-05-17 12:28+0000\n"
"Last-Translator: Jose Marcos Araujo \n"
"Language-Team: Portuguese (Brazil) (http://www.transifex.com/tonio/modoboa/"
@@ -22,57 +22,76 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-#: app_settings.py:20 handlers.py:269
-#: templates/admin/_global_statistics_widget.html:11
-#: templates/admin/domains.html:4
+#: admin/app_settings.py:22 admin/handlers.py:269
+#: admin/templates/admin/_global_statistics_widget.html:11
+#: admin/templates/admin/domains.html:5
msgid "Domains"
msgstr "Domínios"
-#: app_settings.py:23
+#: admin/app_settings.py:25
msgid "Enable MX checks"
msgstr ""
-#: app_settings.py:26
+#: admin/app_settings.py:28
msgid "Check that every domain has a valid MX record"
msgstr ""
-#: app_settings.py:31
+#: admin/app_settings.py:33
msgid "Valid MXs"
msgstr ""
-#: app_settings.py:34
+#: admin/app_settings.py:36
msgid ""
"A list of IP or network address every MX record should match. A warning will "
"be sent if a record does not respect it."
msgstr ""
-#: app_settings.py:42
+#: admin/app_settings.py:44
msgid "New domains must use authorized MX(s)"
msgstr ""
-#: app_settings.py:45
+#: admin/app_settings.py:47
msgid ""
"Prevent the creation of a new domain if its MX record does not use one of "
"the defined addresses."
msgstr ""
-#: app_settings.py:51
+#: admin/app_settings.py:53
msgid "Enable DNSBL checks"
msgstr ""
-#: app_settings.py:54
+#: admin/app_settings.py:56
msgid "Check every domain against major DNSBL providers"
msgstr ""
-#: app_settings.py:58 templates/admin/domain_detail.html:49
+#: admin/app_settings.py:61
+msgid "DKIM keys storage directory"
+msgstr ""
+
+#: admin/app_settings.py:64
+msgid ""
+"Absolute path of the directory where DKIM private keys will be stored. Make "
+"sure this directory belongs to root user and is not readable by the outside "
+"world."
+msgstr ""
+
+#: admin/app_settings.py:72
+msgid "Default DKIM key length"
+msgstr ""
+
+#: admin/app_settings.py:76
+msgid "Default length in bits for newly generated DKIM keys."
+msgstr ""
+
+#: admin/app_settings.py:80 admin/templates/admin/domain_detail.html:41
msgid "Mailboxes"
msgstr "Caixas de correios"
-#: app_settings.py:61
+#: admin/app_settings.py:83
msgid "Handle mailboxes on filesystem"
msgstr "Tratar caixas de mensagens no sistema de arquivos."
-#: app_settings.py:64
+#: admin/app_settings.py:86
msgid ""
"Rename or remove mailboxes on the filesystem when they get renamed or "
"removed within Modoboa"
@@ -80,19 +99,19 @@ msgstr ""
"Renomeia ou remove caixas de mensagens do sistema de arquivos quando elas "
"são renomeadas ou removidas dentro do Modoboa"
-#: app_settings.py:70
+#: admin/app_settings.py:92
msgid "Mailboxes owner"
msgstr "Proprietário de caixas de mensagens"
-#: app_settings.py:73
+#: admin/app_settings.py:95
msgid "The UNIX account who owns mailboxes on the filesystem"
msgstr "A conta UNIX que possui caixas de mensagens no sistema de arquivos"
-#: app_settings.py:78
+#: admin/app_settings.py:100
msgid "Default domain quota"
msgstr "Cota padrão do domínio"
-#: app_settings.py:81
+#: admin/app_settings.py:103
msgid ""
"Default quota (in MB) applied to freshly created domains with no value "
"specified. A value of 0 means no quota."
@@ -100,13 +119,14 @@ msgstr ""
"Cota padrão (em MB) aplicada para novos domínios sem nenhum valor "
"especificado. Um valor de 0 indica que não existe cota."
-#: app_settings.py:87 models/domain.py:40 templates/admin/domain_detail.html:72
+#: admin/app_settings.py:109 admin/models/domain.py:40
+#: admin/templates/admin/domain_detail.html:64
#, fuzzy
#| msgid "Default domain quota"
msgid "Default mailbox quota"
msgstr "Cota padrão do domínio"
-#: app_settings.py:90
+#: admin/app_settings.py:112
#, fuzzy
#| msgid ""
#| "Default quota (in MB) applied to freshly created domains with no value "
@@ -118,62 +138,73 @@ msgstr ""
"Cota padrão (em MB) aplicada para novos domínios sem nenhum valor "
"especificado. Um valor de 0 indica que não existe cota."
-#: app_settings.py:96
+#: admin/app_settings.py:118
msgid "Automatic account removal"
msgstr "Remoção automática da conta"
-#: app_settings.py:99
+#: admin/app_settings.py:121
msgid "When a mailbox is removed, also remove the associated account"
msgstr ""
"Quando uma caixa de correio é removida, também remove a conta associada"
-#: app_settings.py:103
+#: admin/app_settings.py:125
msgid "Automatic domain/mailbox creation"
msgstr "Criação automática de domínio/caixa de correio"
-#: app_settings.py:106
+#: admin/app_settings.py:128
msgid "Create a domain and a mailbox when an account is automatically created."
msgstr ""
"Criar um domínio e uma caixa de correio quando uma conta é automaticamente "
"criada."
-#: app_settings.py:112
+#: admin/app_settings.py:134
msgid "Create an alias when a mailbox is renamed"
msgstr ""
-#: app_settings.py:115
+#: admin/app_settings.py:137
msgid "Create an alias using the old address when a mailbox is renamed."
msgstr ""
-#: app_settings.py:164 app_settings.py:172 forms/account.py:331
+#: admin/app_settings.py:186 admin/app_settings.py:194
+#: admin/forms/account.py:331
msgid "Must be a positive integer"
msgstr "Deve ser um inteiro positivo"
-#: app_settings.py:186
+#: admin/app_settings.py:204
+#, fuzzy
+#| msgid "Domain not found."
+msgid "Directory not found."
+msgstr "Domínio não encontrado"
+
+#: admin/app_settings.py:210
+msgid "openssl not found, please make sure it is installed."
+msgstr ""
+
+#: admin/app_settings.py:224
msgid "Define at least one authorized network / address"
msgstr ""
-#: app_settings.py:196
+#: admin/app_settings.py:234
msgid "Administration"
msgstr "Administração"
-#: constants.py:99 forms/alias.py:49
-#: templates/admin/_per_domain_statistics_widget.html:7
-#: templates/admin/domains_quota_headers.html:2
+#: admin/constants.py:99 admin/forms/alias.py:49
+#: admin/templates/admin/_per_domain_statistics_widget.html:7
+#: admin/templates/admin/domains_quota_headers.html:2
msgid "Domain"
msgstr "Domínio"
-#: constants.py:100
+#: admin/constants.py:100
#, fuzzy
#| msgid "New domain"
msgid "Relay domain"
msgstr "Novo domínio"
-#: forms/account.py:38 templates/admin/domain_detail.html:101
+#: admin/forms/account.py:38 admin/templates/admin/domain_detail.html:120
msgid "Username"
msgstr "Nome de usuário"
-#: forms/account.py:40
+#: admin/forms/account.py:40
msgid ""
"The user's name. Must be a valid e-mail address for simple users or "
"administrators with a mailbox."
@@ -181,79 +212,80 @@ msgstr ""
"O nome de usuário. Deve ser um endereço de e-mail válido para usuários "
"simples ou administradores com uma caixa de mensagens."
-#: forms/account.py:45 templates/admin/account_detail.html:29
+#: admin/forms/account.py:45 admin/templates/admin/account_detail.html:29
msgid "Role"
msgstr "Papel"
-#: forms/account.py:46
+#: admin/forms/account.py:46
msgid "Choose"
msgstr "Escolher"
-#: forms/account.py:47
+#: admin/forms/account.py:47
msgid "What level of permission this user will have"
msgstr "Qual nível de permissão terá esse usuário"
-#: forms/account.py:50 forms/domain.py:208
+#: admin/forms/account.py:50 admin/forms/domain.py:227
#, fuzzy
#| msgid "Invalid address"
msgid "Random password"
msgstr "Endereço inválido"
-#: forms/account.py:52
+#: admin/forms/account.py:52
msgid ""
"Generate a random password. If you're updating this account and check this "
"box, a new password will be generated."
msgstr ""
-#: forms/account.py:58
+#: admin/forms/account.py:58
msgid "Password"
msgstr "Senha"
-#: forms/account.py:63
+#: admin/forms/account.py:63
msgid "Confirmation"
msgstr "Confirmação"
-#: forms/account.py:66
+#: admin/forms/account.py:66
msgid "Enter the same password as above, for verification."
msgstr "Para verificação, digite a mesma senha que a anterior."
-#: forms/account.py:78
+#: admin/forms/account.py:78
msgid "Enabled"
msgstr "Ativado"
-#: forms/account.py:172
+#: admin/forms/account.py:172
msgid "Only super administrators are allowed for this mode"
msgstr "Apenas super administradores estão liberados para este modo"
-#: forms/account.py:183 forms/account.py:185 forms/domain.py:254
-#: forms/domain.py:257 serializers.py:241
+#: admin/forms/account.py:183 admin/forms/account.py:185
+#: admin/forms/domain.py:144 admin/forms/domain.py:273
+#: admin/forms/domain.py:276 admin/serializers.py:241
#, fuzzy
#| msgid "A mailbox is required"
msgid "This field is required."
msgstr "Um caixa de mensagens é obrigatória"
-#: forms/account.py:191
+#: admin/forms/account.py:191
msgid "The two password fields didn't match."
msgstr "Os dois campos de senha não coincidiram."
-#: forms/account.py:204
+#: admin/forms/account.py:204
msgid "You can't disable your own account"
msgstr "Você não pode desabilitar seu própria conta"
-#: forms/account.py:225
+#: admin/forms/account.py:225
msgid "E-mail"
msgstr "E-mail"
-#: forms/account.py:227
+#: admin/forms/account.py:227
msgid "Create an alias using the old address"
msgstr ""
-#: forms/account.py:232 templates/admin/account_detail.html:45
-#: templates/admin/domain_detail.html:57
+#: admin/forms/account.py:232 admin/templates/admin/account_detail.html:45
+#: admin/templates/admin/domain_detail.html:49
msgid "Quota"
msgstr "Cota"
-#: forms/account.py:234
+#: admin/forms/account.py:234
msgid ""
"Quota in MB for this mailbox. Define a custom value or use domain's default "
"one. Leave empty to define an unlimited value (not allowed for domain "
@@ -263,12 +295,12 @@ msgstr ""
"o padrão do domínio. Deixe em branco para definir um valor ilimitado (não "
"permitido para administradores de domínios)."
-#: forms/account.py:242 forms/domain.py:39
-#: templates/admin/domain_headers.html:4
+#: admin/forms/account.py:242 admin/forms/domain.py:39
+#: admin/templates/admin/domain_headers.html:4
msgid "Alias(es)"
msgstr "Alias(es)"
-#: forms/account.py:245
+#: admin/forms/account.py:245
#, fuzzy
#| msgid ""
#| "Alias(es) of this mailbox. Indicate only one address per input, press "
@@ -283,13 +315,13 @@ msgstr ""
"entrada, pressione ENTER para adicionar uma nova entrada. Use o caractere "
"'*' para criar um alias 'pega-todos' (ex: *@exemplo.com)."
-#: forms/account.py:251
+#: admin/forms/account.py:251
#, fuzzy
#| msgid "Invalid address"
msgid "Sender addresses"
msgstr "Endereço inválido"
-#: forms/account.py:254
+#: admin/forms/account.py:254
#, fuzzy
#| msgid ""
#| "Addresses this alias will point to. Indicate only one address per input, "
@@ -302,66 +334,68 @@ msgstr ""
"Endereços que este alias vai apontar. Indique apenas um endereço por "
"entrada, pressione ENTER para adicionar uma nova entrada."
-#: forms/account.py:309 forms/alias.py:94 models/mailbox.py:315
+#: admin/forms/account.py:309 admin/forms/alias.py:94
+#: admin/models/mailbox.py:315
msgid "Domain does not exist"
msgstr "Domínio não existe"
-#: forms/account.py:341
+#: admin/forms/account.py:341
msgid "Local domain does not exist"
msgstr "Domínio local não existe"
-#: forms/account.py:345 forms/account.py:353 forms/alias.py:97
+#: admin/forms/account.py:345 admin/forms/account.py:353
+#: admin/forms/alias.py:97
msgid "You don't have access to this domain"
msgstr "Você não tem acesso a esse domínio"
-#: forms/account.py:452
+#: admin/forms/account.py:452
msgid "Domain(s)"
msgstr "Domínio(s)"
-#: forms/account.py:454
+#: admin/forms/account.py:454
msgid "Domain(s) that user administrates"
msgstr "Domínio(s) que o usuário administra"
-#: forms/account.py:500 forms/account.py:590 forms/domain.py:325
-#: forms/domain.py:395
+#: admin/forms/account.py:500 admin/forms/account.py:590
+#: admin/forms/domain.py:344 admin/forms/domain.py:414
msgid "General"
msgstr "Geral"
-#: forms/account.py:504
+#: admin/forms/account.py:504
msgid "Profile"
msgstr ""
-#: forms/account.py:508 forms/account.py:596
+#: admin/forms/account.py:508 admin/forms/account.py:596
msgid "Mail"
msgstr "Correio"
-#: forms/account.py:511
+#: admin/forms/account.py:511
msgid "Permissions"
msgstr "Permissões"
-#: forms/account.py:579
+#: admin/forms/account.py:579
msgid "Account updated"
msgstr "Conta atualizada"
-#: forms/account.py:604
+#: admin/forms/account.py:604
msgid "New account"
msgstr "Nova conta"
-#: forms/account.py:616
+#: admin/forms/account.py:614
msgid "Account created"
msgstr "Conta criada"
-#: forms/alias.py:26
+#: admin/forms/alias.py:26
#, fuzzy
#| msgid "Invalid address"
msgid "Random address"
msgstr "Endereço inválido"
-#: forms/alias.py:29
+#: admin/forms/alias.py:29
msgid "Email address"
msgstr "Endereço de e-mail"
-#: forms/alias.py:31
+#: admin/forms/alias.py:31
msgid ""
"The alias address. To create a catchall alias, just enter the domain name "
"(@domain.tld)."
@@ -369,11 +403,11 @@ msgstr ""
"O endereço alias. Para criar um alias de captura, basta digitar o nome de "
"domínio (@domain.tld)."
-#: forms/alias.py:37 templates/admin/alias_detail.html:37
+#: admin/forms/alias.py:37 admin/templates/admin/alias_detail.html:37
msgid "Recipients"
msgstr "Destinatários"
-#: forms/alias.py:39
+#: admin/forms/alias.py:39
msgid ""
"Addresses this alias will point to. Indicate only one address per input, "
"press ENTER to add a new input."
@@ -381,21 +415,22 @@ msgstr ""
"Endereços que este alias vai apontar. Indique apenas um endereço por "
"entrada, pressione ENTER para adicionar uma nova entrada."
-#: forms/alias.py:114 forms/alias.py:116
+#: admin/forms/alias.py:114 admin/forms/alias.py:116
#, fuzzy
#| msgid "A mailbox is required"
msgid "This field is required"
msgstr "Um caixa de mensagens é obrigatória"
-#: forms/alias.py:120
+#: admin/forms/alias.py:120
msgid "No recipient defined"
msgstr "Nenhum destinatário definido"
-#: forms/domain.py:36 templates/admin/_global_statistics_widget.html:7
+#: admin/forms/domain.py:36
+#: admin/templates/admin/_global_statistics_widget.html:7
msgid "Type"
msgstr "Tipo"
-#: forms/domain.py:42
+#: admin/forms/domain.py:42
msgid ""
"Alias(es) of this domain. Indicate only one name per input, press ENTER to "
"add a new input."
@@ -403,47 +438,55 @@ msgstr ""
"Alias(es) para esse domínio. Indique apenas um nome por entrada, pressione "
"ENTER para adicionar uma nova entrada."
-#: forms/domain.py:81 handlers.py:171
+#: admin/forms/domain.py:47
+msgid "Key selector"
+msgstr ""
+
+#: admin/forms/domain.py:85 admin/handlers.py:171
msgid "domain alias"
msgstr "alias de domínio"
-#: forms/domain.py:84 forms/domain.py:136 forms/domain.py:144
+#: admin/forms/domain.py:88 admin/forms/domain.py:155 admin/forms/domain.py:163
#, python-format
msgid "A %s with this name already exists"
msgstr "Já existe um %s com este nome"
-#: forms/domain.py:92 serializers.py:45
+#: admin/forms/domain.py:96 admin/serializers.py:45
msgid "No authorized MX record found for this domain"
msgstr ""
-#: forms/domain.py:114 serializers.py:55
+#: admin/forms/domain.py:108
+msgid "DKIM keys storage directory not configured"
+msgstr ""
+
+#: admin/forms/domain.py:129 admin/serializers.py:55
msgid "Cannot be greater than domain quota"
msgstr ""
-#: forms/domain.py:119
+#: admin/forms/domain.py:134
msgid "You can't define an unlimited quota."
msgstr ""
-#: forms/domain.py:136 forms/domain.py:141
+#: admin/forms/domain.py:155 admin/forms/domain.py:160
msgid "domain"
msgstr "domínio"
-#: forms/domain.py:190
+#: admin/forms/domain.py:209
msgid "Create a domain administrator"
msgstr "Criar um administrador de domínio"
-#: forms/domain.py:193
+#: admin/forms/domain.py:212
msgid "Automatically create an administrator for this domain"
msgstr "Criar automaticamente um administrador para este domínio"
-#: forms/domain.py:198 templates/admin/domain_detail.html:101
-#: templates/admin/domain_headers.html:3
-#: templates/admin/identity_headers.html:2
-#: templates/admin/mx_domain_detail.html:9
+#: admin/forms/domain.py:217 admin/templates/admin/domain_detail.html:120
+#: admin/templates/admin/domain_headers.html:3
+#: admin/templates/admin/identity_headers.html:2
+#: admin/templates/admin/mx_domain_detail.html:9
msgid "Name"
msgstr "Nome"
-#: forms/domain.py:201
+#: admin/forms/domain.py:220
msgid ""
"The administrator's name. Don't include the domain's name here, it will be "
"automatically appended."
@@ -451,208 +494,239 @@ msgstr ""
"O nome de administrador. Não inclua aqui o nome de domínio. Ele será "
"automaticamente adicionado."
-#: forms/domain.py:211
+#: admin/forms/domain.py:230
#, fuzzy
#| msgid "Create a domain administrator"
msgid "Generate a random password for the administrator."
msgstr "Criar um administrador de domínio"
-#: forms/domain.py:217
+#: admin/forms/domain.py:236
msgid "With a mailbox"
msgstr ""
-#: forms/domain.py:220
+#: admin/forms/domain.py:239
#, fuzzy
#| msgid "Create a domain administrator"
msgid "Create a mailbox for the administrator."
msgstr "Criar um administrador de domínio"
-#: forms/domain.py:226
+#: admin/forms/domain.py:245
msgid "Create aliases"
msgstr "Criar alias"
-#: forms/domain.py:229
+#: admin/forms/domain.py:248
msgid "Automatically create standard aliases for this domain"
msgstr "Criar automaticamente aliases padrão para este domínio"
-#: forms/domain.py:245
+#: admin/forms/domain.py:264
msgid "Invalid format"
msgstr "Formato inválido"
-#: forms/domain.py:274
+#: admin/forms/domain.py:293
#, python-format
msgid "User '%s' already exists"
msgstr "O usuário '%s' já existe"
-#: forms/domain.py:385
+#: admin/forms/domain.py:404
msgid "Domain modified"
msgstr "Domínio alterado"
-#: forms/domain.py:406
+#: admin/forms/domain.py:425
msgid "Options"
msgstr "Opções"
-#: forms/domain.py:414
+#: admin/forms/domain.py:433
msgid "New domain"
msgstr "Novo domínio"
-#: forms/domain.py:427
+#: admin/forms/domain.py:446
msgid "Domain created"
msgstr "Domínio criado"
-#: forms/export.py:9
+#: admin/forms/export.py:9
msgid "File name"
msgstr "Nome do arquivo"
-#: forms/export.py:15 forms/import_.py:15
+#: admin/forms/export.py:15 admin/forms/import_.py:15
msgid "Separator"
msgstr "Separador"
-#: forms/forward.py:14
+#: admin/forms/forward.py:14
msgid "Recipient(s)"
msgstr "Destinatário(s)"
-#: forms/forward.py:18
+#: admin/forms/forward.py:18
msgid "Indicate one or more recipients separated by a ','"
msgstr "Indique um ou mais destinatários separados por uma ','"
-#: forms/forward.py:21
+#: admin/forms/forward.py:21
msgid "Keep local copies"
msgstr "Manter cópias locais"
-#: forms/forward.py:24
+#: admin/forms/forward.py:24
msgid "Forward messages and store copies into your local mailbox"
msgstr "Encaminhar mensagens e armazenar cópias em sua caixa de correio local"
-#: forms/import_.py:13
+#: admin/forms/import_.py:13
msgid "Select a file"
msgstr "Selecione um arquivo"
-#: forms/import_.py:21
+#: admin/forms/import_.py:21
msgid "Continue on error"
msgstr "Continuar em caso de erro"
-#: forms/import_.py:22
+#: admin/forms/import_.py:22
msgid "Don't treat duplicated objects as error"
msgstr "Não tratar como erro objetos duplicados"
-#: forms/import_.py:40
+#: admin/forms/import_.py:40
msgid "Crypt passwords"
msgstr "Criptografar senhas"
-#: forms/import_.py:42
+#: admin/forms/import_.py:42
msgid "Check this option if passwords contained in your file are not crypted"
msgstr ""
"Marcar essa opção se as senhas contidas no seu arquivo estão criptografadas"
-#: handlers.py:218
+#: admin/handlers.py:218
#, python-format
msgid "Account import failed (%s): domain does not exist"
msgstr "Falha ao importar a conta (%s): domínio não existe"
-#: handlers.py:231 models/mailbox.py:342
+#: admin/handlers.py:231 admin/models/mailbox.py:342
msgid "Mailbox {} already exists"
msgstr "Caixa {} já existente"
-#: handlers.py:239
+#: admin/handlers.py:239
#, python-format
msgid "Account import failed (%s): wrong quota value"
msgstr "Falha na importação de conta (%s): valor de cota errado"
-#: handlers.py:279 templates/admin/_global_statistics_widget.html:17
-#: templates/admin/_per_domain_statistics_widget.html:8
-#: templates/admin/identities.html:5
+#: admin/handlers.py:279
+#: admin/templates/admin/_global_statistics_widget.html:17
+#: admin/templates/admin/_per_domain_statistics_widget.html:8
+#: admin/templates/admin/identities.html:5
msgid "Identities"
msgstr "Identidades"
-#: handlers.py:295 templates/admin/forward.html:2
+#: admin/handlers.py:295 admin/templates/admin/forward.html:2
msgid "Forward"
msgstr "Encaminhar"
-#: lib.py:41
+#: admin/lib.py:44
msgid "A mailbox is required"
msgstr "Um caixa de mensagens é obrigatória"
-#: lib.py:131
+#: admin/lib.py:134
msgid "You are not allowed to import domains"
msgstr "Você não tem permissão para importar domínios"
-#: lib.py:142
+#: admin/lib.py:145
msgid "You are not allowed to import domain aliases."
msgstr "Você não tem permissão para importar aliases de domínio."
-#: management/commands/subcommands/_mx.py:125
+#: admin/lib.py:183 admin/tests/test_mx.py:122
+#, python-format
+msgid "No DNS records found for %s"
+msgstr ""
+
+#: admin/lib.py:185 admin/tests/test_mx.py:125
+#, python-format
+msgid "No MX record for %s"
+msgstr ""
+
+#: admin/lib.py:187 admin/tests/test_mx.py:126
+msgid "No working name servers found"
+msgstr ""
+
+#: admin/lib.py:190 admin/tests/test_mx.py:128
+#, python-format
+msgid "DNS resolution timeout, unable to query %s at the moment"
+msgstr ""
+
+#: admin/lib.py:201 admin/tests/test_mx.py:131
+#, python-format
+msgid "Unable to lookup ip addresses for %(domain)s; %(error)s"
+msgstr ""
+
+#: admin/lib.py:212 admin/tests/test_mx.py:134
+#, python-format
+msgid "Invalid IP address format for %(domain)s; %(addr)s"
+msgstr ""
+
+#: admin/management/commands/subcommands/_mx.py:136
msgid "[modoboa] DNSBL issue(s) for domain {}"
msgstr ""
-#: management/commands/subcommands/_mx.py:145
+#: admin/management/commands/subcommands/_mx.py:156
msgid "Domain {} has no MX record"
msgstr ""
-#: management/commands/subcommands/_mx.py:156
+#: admin/management/commands/subcommands/_mx.py:167
#, python-brace-format
msgid "MX record for domain {0} is invalid: {1}"
msgstr ""
-#: management/commands/subcommands/_mx.py:173
+#: admin/management/commands/subcommands/_mx.py:184
msgid "[modoboa] MX issue(s) for domain {}"
msgstr ""
-#: models/alias.py:35 models/mailbox.py:97
+#: admin/models/alias.py:35 admin/models/mailbox.py:97
msgid "address"
msgstr "endereço"
-#: models/alias.py:37
+#: admin/models/alias.py:37
msgid "The alias address."
msgstr "O endereço alias."
-#: models/alias.py:42 models/domain.py:48 models/domain_alias.py:46
+#: admin/models/alias.py:42 admin/models/domain.py:48
+#: admin/models/domain_alias.py:47
msgid "enabled"
msgstr "ativado"
-#: models/alias.py:43 models/domain_alias.py:47
+#: admin/models/alias.py:43 admin/models/domain_alias.py:48
msgid "Check to activate this alias"
msgstr "Verificar para ativar o alias"
-#: models/alias.py:48 templates/admin/alias_detail.html:32
+#: admin/models/alias.py:48 admin/templates/admin/alias_detail.html:32
msgid "Description"
msgstr ""
-#: models/alias.py:50 templates/admin/alias_detail.html:29
+#: admin/models/alias.py:50 admin/templates/admin/alias_detail.html:29
msgid "Expire at"
msgstr ""
-#: models/alias.py:93
+#: admin/models/alias.py:93
msgid "alias"
msgstr "alias"
-#: models/alias.py:125
+#: admin/models/alias.py:125
msgid "Invalid address"
msgstr "Endereço inválido"
-#: models/alias.py:146
+#: admin/models/alias.py:146
msgid "Local recipient {}@{} not found"
msgstr "Destinatário local {}@{} não encontrado"
-#: models/alias.py:176
+#: admin/models/alias.py:176
#, python-format
msgid "Invalid line: %s"
msgstr "Linha inválida: %s"
-#: models/alias.py:182
+#: admin/models/alias.py:182
#, python-format
msgid "Domain '%s' does not exist"
msgstr "O domínio '%s' não existe"
-#: models/domain.py:30 models/domain_alias.py:39
+#: admin/models/domain.py:30 admin/models/domain_alias.py:39
msgid "name"
msgstr "nome"
-#: models/domain.py:31
+#: admin/models/domain.py:31
msgid "The domain name"
msgstr "Nome do domínio"
-#: models/domain.py:35
+#: admin/models/domain.py:35
#, fuzzy
#| msgid ""
#| "Default quota (in MB) applied to freshly created domains with no value "
@@ -662,7 +736,7 @@ msgstr ""
"Cota padrão (em MB) aplicada para novos domínios sem nenhum valor "
"especificado. Um valor de 0 indica que não existe cota."
-#: models/domain.py:43
+#: admin/models/domain.py:43
#, fuzzy
#| msgid ""
#| "Default quota (in MB) applied to freshly created domains with no value "
@@ -672,389 +746,467 @@ msgstr ""
"Cota padrão (em MB) aplicada para novos domínios sem nenhum valor "
"especificado. Um valor de 0 indica que não existe cota."
-#: models/domain.py:49
+#: admin/models/domain.py:49
msgid "Check to activate this domain"
msgstr "Marque para ativar esse domínio"
-#: models/domain.py:54
+#: admin/models/domain.py:54
msgid "Enable DNS checks"
msgstr ""
-#: models/domain.py:55
+#: admin/models/domain.py:55
#, fuzzy
#| msgid "Check to activate this domain"
msgid "Check to enable DNS checks for this domain"
msgstr "Marque para ativar esse domínio"
-#: models/domain.py:253 models/domain_alias.py:73
+#: admin/models/domain.py:62
+msgid "Enable DKIM signing"
+msgstr ""
+
+#: admin/models/domain.py:64
+msgid ""
+"If you activate this feature, a DKIM key will be generated for this domain."
+msgstr ""
+
+#: admin/models/domain.py:70
+msgid "Key length"
+msgstr ""
+
+#: admin/models/domain.py:285 admin/models/domain_alias.py:74
msgid "Invalid line"
msgstr "Linha inválida"
-#: models/domain.py:263
+#: admin/models/domain.py:295
msgid "No authorized MX record found for domain {}"
msgstr ""
-#: models/domain.py:270
+#: admin/models/domain.py:302
#, fuzzy
#| msgid "Invalid quota value for domain '%s'"
msgid "Invalid quota value for domain '{}'"
msgstr "Valor de cota inválido para o domínio '%s'"
-#: models/domain.py:277
+#: admin/models/domain.py:309
#, fuzzy
#| msgid "Invalid quota value for domain '%s'"
msgid "Invalid default mailbox quota value for domain '{}'"
msgstr "Valor de cota inválido para o domínio '%s'"
-#: models/domain.py:282
+#: admin/models/domain.py:314
msgid "Default mailbox quota cannot be greater than domain quota"
msgstr ""
-#: models/domain_alias.py:40
+#: admin/models/domain_alias.py:40
msgid "The alias name"
msgstr "Nome de alias"
-#: models/domain_alias.py:42
+#: admin/models/domain_alias.py:42
msgid "target"
msgstr "alvo"
-#: models/domain_alias.py:43
+#: admin/models/domain_alias.py:43
msgid "The domain this alias points to"
msgstr "Esse alias aponta para o domínio"
-#: models/domain_alias.py:82
+#: admin/models/domain_alias.py:83
#, python-format
msgid "Unknown domain %s"
msgstr "Domínio desconhecido %s"
-#: models/mailbox.py:99
+#: admin/models/mailbox.py:99
msgid "Mailbox address (without the @domain.tld part)"
msgstr "Endereço da caixa de correio (sem a parte @meu.dominio)"
-#: models/mailbox.py:165
+#: admin/models/mailbox.py:165
#, python-format
msgid "Failed to retrieve mailbox location (%s)"
msgstr "Falha ao recuperar a localização da caixa de mensagens (%s)"
-#: models/mailbox.py:258
+#: admin/models/mailbox.py:258
msgid "A quota is required"
msgstr "Uma cota é requerida"
-#: models/mailbox.py:264
+#: admin/models/mailbox.py:264
#, fuzzy
#| msgid "Domain created"
msgid "Domain quota exceeded"
msgstr "Domínio criado"
-#: serializers.py:80 serializers.py:266 serializers.py:360
+#: admin/serializers.py:80 admin/serializers.py:266 admin/serializers.py:360
msgid "Permission denied."
msgstr "Permissão negada"
-#: serializers.py:118
+#: admin/serializers.py:118
msgid ""
"List of administered domains (resellers and domain administrators only)."
msgstr ""
"Lista dos domínios administrados (somente revendedores e administradores de "
"domínio)"
-#: serializers.py:218
+#: admin/serializers.py:218
msgid "Not allowed for this role."
msgstr "Não permitido para este perfil (role)"
-#: serializers.py:228
+#: admin/serializers.py:228
msgid "Must be equal to mailbox full_address"
msgstr "Deve ser igual ao endereço completo da conta"
-#: serializers.py:253
+#: admin/serializers.py:253
msgid "Local domain {} does not exist"
msgstr "Domínio local {} não existe"
-#: serializers.py:347
+#: admin/serializers.py:347
msgid "A list of recipient"
msgstr ""
-#: serializers.py:358
+#: admin/serializers.py:358
msgid "Domain not found."
msgstr "Domínio não encontrado"
-#: templates/admin/_domain_dnschecks_status.html:4
+#: admin/serializers.py:407
+#, fuzzy
+#| msgid "You don't have access to this domain"
+msgid "You don't have access to this domain."
+msgstr "Você não tem acesso a esse domínio"
+
+#: admin/serializers.py:415
+#, fuzzy
+#| msgid "You don't have access to this domain"
+msgid "You don't have access to this mailbox."
+msgstr "Você não tem acesso a esse domínio"
+
+#: admin/templates/admin/_domain_dkim_key.html:6
+#: admin/templates/admin/_domain_dkim_key.html:20
+msgid "Close"
+msgstr ""
+
+#: admin/templates/admin/_domain_dkim_key.html:7
+#, python-format
+msgid "DKIM public key for %(domain)s"
+msgstr ""
+
+#: admin/templates/admin/_domain_dkim_key.html:11
+#, fuzzy
+#| msgid "Invalid format"
+msgid "Raw format"
+msgstr "Formato inválido"
+
+#: admin/templates/admin/_domain_dkim_key.html:15
+#, fuzzy
+#| msgid "Invalid format"
+msgid "Bind/named format"
+msgstr "Formato inválido"
+
+#: admin/templates/admin/_domain_dnschecks_status.html:4
#, fuzzy
#| msgid "disabled"
msgctxt "checks"
msgid "Disabled"
msgstr "desabilitado"
-#: templates/admin/_domain_dnschecks_status.html:6
+#: admin/templates/admin/_domain_dnschecks_status.html:6
msgid "Awaiting checks"
msgstr ""
-#: templates/admin/_global_statistics_widget.html:4
+#: admin/templates/admin/_global_statistics_widget.html:4
#, fuzzy
#| msgid "Statistics"
msgid "Global statistics"
msgstr "Estatísticas"
-#: templates/admin/_global_statistics_widget.html:8
+#: admin/templates/admin/_global_statistics_widget.html:8
msgid "Quantity"
msgstr "Quantidade"
-#: templates/admin/_global_statistics_widget.html:14
-#: templates/admin/domain_detail.html:45 templates/admin/domain_detail.html:81
+#: admin/templates/admin/_global_statistics_widget.html:14
+#: admin/templates/admin/domain_detail.html:37
+#: admin/templates/admin/domain_detail.html:73
msgid "Domain aliases"
msgstr "Alias de domínios"
-#: templates/admin/_per_domain_statistics_widget.html:4
+#: admin/templates/admin/_per_domain_statistics_widget.html:4
#, fuzzy
#| msgid "Per-domain counters"
msgid "Per-domain statistics"
msgstr "Contadores por domínios"
-#: templates/admin/account_detail.html:16 templates/admin/alias_detail.html:16
-#: templates/admin/domain_detail.html:19
-#: templates/admin/identities_table.html:7
+#: admin/templates/admin/account_detail.html:16
+#: admin/templates/admin/alias_detail.html:16
+#: admin/templates/admin/domain_detail.html:19
+#: admin/templates/admin/identities_table.html:7
#, fuzzy
#| msgid "disabled"
msgid "(disabled)"
msgstr "desabilitado"
-#: templates/admin/account_detail.html:22 templates/admin/alias_detail.html:22
-#: templates/admin/domain_detail.html:25
+#: admin/templates/admin/account_detail.html:22
+#: admin/templates/admin/alias_detail.html:22
+#: admin/templates/admin/domain_detail.html:25
msgid "Summary"
msgstr ""
-#: templates/admin/account_detail.html:26
+#: admin/templates/admin/account_detail.html:26
#, fuzzy
#| msgid "File name"
msgid "Full name"
msgstr "Nome do arquivo"
-#: templates/admin/account_detail.html:32 templates/admin/alias_detail.html:26
+#: admin/templates/admin/account_detail.html:32
+#: admin/templates/admin/alias_detail.html:26
#, fuzzy
#| msgid "Create"
msgid "Created"
msgstr "Criar"
-#: templates/admin/account_detail.html:35
+#: admin/templates/admin/account_detail.html:35
msgid "Last login"
msgstr ""
-#: templates/admin/account_detail.html:38
+#: admin/templates/admin/account_detail.html:38
msgid "Secondary email"
msgstr ""
-#: templates/admin/account_detail.html:38
-#: templates/admin/account_detail.html:41
+#: admin/templates/admin/account_detail.html:38
+#: admin/templates/admin/account_detail.html:41
#, fuzzy
#| msgid "No recipient defined"
msgid "Not defined"
msgstr "Nenhum destinatário definido"
-#: templates/admin/account_detail.html:41
+#: admin/templates/admin/account_detail.html:41
msgid "Phone number"
msgstr ""
-#: templates/admin/account_detail.html:55
+#: admin/templates/admin/account_detail.html:55
#, fuzzy
#| msgid "Administration"
msgid "Administered domains"
msgstr "Administração"
-#: templates/admin/account_detail.html:61
+#: admin/templates/admin/account_detail.html:61
#, fuzzy
#| msgid "No recipient defined"
msgid "No domain defined."
msgstr "Nenhum destinatário definido"
-#: templates/admin/account_detail.html:75
+#: admin/templates/admin/account_detail.html:75
#, fuzzy
#| msgid "Alias(es)"
msgid "Aliases"
msgstr "Alias(es)"
-#: templates/admin/account_detail.html:81
+#: admin/templates/admin/account_detail.html:81
#, fuzzy
#| msgid "No recipient defined"
msgid "No alias defined"
msgstr "Nenhum destinatário definido"
-#: templates/admin/account_detail.html:87
+#: admin/templates/admin/account_detail.html:87
msgid "Additional sender addresses"
msgstr ""
-#: templates/admin/account_detail.html:93
+#: admin/templates/admin/account_detail.html:93
msgid "No sender address defined"
msgstr ""
-#: templates/admin/account_general_form.html:12
-#: templates/admin/aliasform.html:13
+#: admin/templates/admin/account_general_form.html:12
+#: admin/templates/admin/aliasform.html:13
msgid "Domain is disabled"
msgstr "Domínio está desabilitado"
-#: templates/admin/alias_detail.html:16 templates/admin/identities.html:33
+#: admin/templates/admin/alias_detail.html:16
+#: admin/templates/admin/identities.html:33
#, fuzzy
#| msgid "alias"
msgid "Alias"
msgstr "alias"
-#: templates/admin/alias_detail.html:27
+#: admin/templates/admin/alias_detail.html:27
#, fuzzy
#| msgid "Alias modified"
msgid "Modified"
msgstr "Alias modificado"
-#: templates/admin/dnsbl_domain_detail.html:10
+#: admin/templates/admin/dnsbl_domain_detail.html:10
msgid "Provider"
msgstr ""
-#: templates/admin/dnsbl_domain_detail.html:11
-#: templates/admin/identities_quota_headers.html:2
-#: templates/admin/mx_domain_detail.html:10
+#: admin/templates/admin/dnsbl_domain_detail.html:11
+#: admin/templates/admin/identities_quota_headers.html:2
+#: admin/templates/admin/mx_domain_detail.html:10
msgid "Address"
msgstr "Endereço"
-#: templates/admin/dnsbl_domain_detail.html:12
+#: admin/templates/admin/dnsbl_domain_detail.html:12
+#: admin/templates/admin/domain_detail.html:96
#, fuzzy
#| msgid "Statistics"
msgid "Status"
msgstr "Estatísticas"
-#: templates/admin/dnsbl_domain_detail.html:21
+#: admin/templates/admin/dnsbl_domain_detail.html:21
msgid "listed"
msgstr ""
-#: templates/admin/dnsbl_domain_detail.html:29
+#: admin/templates/admin/dnsbl_domain_detail.html:29
msgid "Everything is fine, this domain is not listed."
msgstr ""
-#: templates/admin/dnsbl_domain_detail.html:32
+#: admin/templates/admin/dnsbl_domain_detail.html:32
msgid "No information available for this domain."
msgstr ""
-#: templates/admin/domain_detail.html:30 templates/admin/domain_headers.html:7
-#, fuzzy
-#| msgid "Statistics"
-msgid "DNS status"
-msgstr "Estatísticas"
-
-#: templates/admin/domain_detail.html:37
+#: admin/templates/admin/domain_detail.html:29
msgid "Creation date"
msgstr "Data de criação"
-#: templates/admin/domain_detail.html:41
+#: admin/templates/admin/domain_detail.html:33
msgid "Last modification date"
msgstr "Data da última modificação"
-#: templates/admin/domain_detail.html:53
+#: admin/templates/admin/domain_detail.html:45
msgid "Mailbox aliases"
msgstr "Alias de caixas de correio"
-#: templates/admin/domain_detail.html:58 templates/admin/domain_detail.html:65
-#: templates/admin/domain_detail.html:66 templates/admin/domain_detail.html:73
-#: templates/admin/domain_general_form.html:4
-#: templates/admin/domain_general_form.html:5
-#: templates/admin/domains_quotas.html:11
-#: templates/admin/domains_quotas.html:12 templates/admin/mailform.html:7
-#: templates/admin/newdomainform.html:3
+#: admin/templates/admin/domain_detail.html:50
+#: admin/templates/admin/domain_detail.html:57
+#: admin/templates/admin/domain_detail.html:58
+#: admin/templates/admin/domain_detail.html:65
+#: admin/templates/admin/domain_general_form.html:4
+#: admin/templates/admin/domain_general_form.html:5
+#: admin/templates/admin/domains_quotas.html:11
+#: admin/templates/admin/domains_quotas.html:12
+#: admin/templates/admin/mailform.html:7
+#: admin/templates/admin/newdomainform.html:3
msgid "MB"
msgstr "MB"
-#: templates/admin/domain_detail.html:62
+#: admin/templates/admin/domain_detail.html:54
#, fuzzy
#| msgid "Usage (%%)"
msgid "Usage"
msgstr "Uso (%%)"
-#: templates/admin/domain_detail.html:65 templates/admin/domains_quotas.html:11
+#: admin/templates/admin/domain_detail.html:57
+#: admin/templates/admin/domains_quotas.html:11
msgctxt "quota"
msgid "used"
msgstr ""
-#: templates/admin/domain_detail.html:66 templates/admin/domains_quotas.html:12
+#: admin/templates/admin/domain_detail.html:58
+#: admin/templates/admin/domains_quotas.html:12
msgid "allocated"
msgstr ""
-#: templates/admin/domain_detail.html:98
+#: admin/templates/admin/domain_detail.html:91
+msgid "DNS"
+msgstr ""
+
+#: admin/templates/admin/domain_detail.html:103
+msgid "DKIM key"
+msgstr ""
+
+#: admin/templates/admin/domain_detail.html:107
+msgid "Show key"
+msgstr ""
+
+#: admin/templates/admin/domain_detail.html:110
+#, fuzzy
+#| msgid "No recipient defined"
+msgid "Not generated"
+msgstr "Nenhum destinatário definido"
+
+#: admin/templates/admin/domain_detail.html:117
msgid "Administrators"
msgstr "Administradores"
-#: templates/admin/domain_detail.html:110 templatetags/admin_tags.py:268
+#: admin/templates/admin/domain_detail.html:129
+#: admin/templatetags/admin_tags.py:268
msgid "Remove this permission"
msgstr "Remover essa persmissão"
-#: templates/admin/domain_detail.html:115
+#: admin/templates/admin/domain_detail.html:134
#, fuzzy
#| msgid "No domain administrator defined"
msgid "No domain administrator defined yet."
msgstr "Nenhum administrador de domínio definido"
-#: templates/admin/domain_headers.html:5
-#: templates/admin/identity_headers.html:4
+#: admin/templates/admin/domain_headers.html:5
+#: admin/templates/admin/identity_headers.html:4
msgid "Tags"
msgstr "Tags"
-#: templates/admin/domain_headers.html:9
-#: templates/admin/identity_headers.html:5
+#: admin/templates/admin/domain_headers.html:7
+#, fuzzy
+#| msgid "Statistics"
+msgid "DNS status"
+msgstr "Estatísticas"
+
+#: admin/templates/admin/domain_headers.html:9
+#: admin/templates/admin/identity_headers.html:5
msgid "Actions"
msgstr "Ações"
-#: templates/admin/domain_options_form.html:10
+#: admin/templates/admin/domain_options_form.html:10
msgid "You can't create a new domain administrator"
msgstr "Você não pode criar um novo administrador de domínio"
-#: templates/admin/domains.html:26 templates/admin/identities.html:29
+#: admin/templates/admin/domains.html:28
+#: admin/templates/admin/identities.html:29
#, fuzzy
#| msgid "Address"
msgid "Add"
msgstr "Endereço"
-#: templates/admin/domains_quota_headers.html:3
-#: templates/admin/identities_quota_headers.html:4
+#: admin/templates/admin/domains_quota_headers.html:3
+#: admin/templates/admin/identities_quota_headers.html:4
msgid "Limit"
msgstr "Limite"
-#: templates/admin/domains_quota_headers.html:4
+#: admin/templates/admin/domains_quota_headers.html:4
msgid "Used"
msgstr ""
-#: templates/admin/domains_quota_headers.html:5
+#: admin/templates/admin/domains_quota_headers.html:5
#, fuzzy
#| msgid "Alias created"
msgid "Allocated"
msgstr "Alias criado"
-#: templates/admin/domains_quota_headers.html:6
-#: templates/admin/identities_quota_headers.html:5
+#: admin/templates/admin/domains_quota_headers.html:6
+#: admin/templates/admin/identities_quota_headers.html:5
#, python-format
msgid "Usage (%%)"
msgstr "Uso (%%)"
-#: templates/admin/domains_table.html:5
+#: admin/templates/admin/domains_table.html:5
msgid "disabled"
msgstr "desabilitado"
-#: templates/admin/forward.html:2
+#: admin/templates/admin/forward.html:2
msgid "Automatically forward emails to another address"
msgstr "Encaminhar e-mails automaticamente para outro endereço"
-#: templates/admin/forward.html:9 views/alias.py:93
+#: admin/templates/admin/forward.html:9 admin/views/alias.py:93
msgid "Update"
msgstr "Atualizar"
-#: templates/admin/identities.html:32
+#: admin/templates/admin/identities.html:32
#, fuzzy
#| msgid "Add account"
msgid "Account"
msgstr "Adicionar conta"
-#: templates/admin/identities_quota_headers.html:3
+#: admin/templates/admin/identities_quota_headers.html:3
msgid "Value"
msgstr "Valor"
-#: templates/admin/identity_headers.html:3
+#: admin/templates/admin/identity_headers.html:3
msgid "Fullname/Recipient"
msgstr "Nome completo/Destinatário"
-#: templates/admin/import_domains_form.html:6
+#: admin/templates/admin/import_domains_form.html:6
#, fuzzy
#| msgid ""
#| "Provide a CSV file where lines respect one of the following formats:\n"
@@ -1085,7 +1237,7 @@ msgstr ""
"valores indicados.
\n"
"Você pode usar um caractere diferente como separador.
\n"
-#: templates/admin/import_identities_form.html:6
+#: admin/templates/admin/import_identities_form.html:6
#, fuzzy
#| msgid ""
#| "Provide a CSV file where lines respect one of the following formats:\n"
@@ -1121,129 +1273,129 @@ msgstr ""
"\n"
"Você pode usar um caractere diferente como separador.
\n"
-#: templates/admin/importform.html:6
+#: admin/templates/admin/importform.html:6
msgid "Help"
msgstr "Ajuda"
-#: templates/admin/importform.html:13
+#: admin/templates/admin/importform.html:13
msgid "Importing..."
msgstr "Importando..."
-#: templates/admin/index.html:6
+#: admin/templates/admin/index.html:6
msgid "Admin"
msgstr ""
-#: templates/admin/mailboxes_raw.html:3
+#: admin/templates/admin/mailboxes_raw.html:3
msgid "Choose a value"
msgstr "Escolher um valor"
-#: templates/admin/mailform.html:7
+#: admin/templates/admin/mailform.html:7
msgid "Use domain default value"
msgstr "Usar valor padrão do domínio"
-#: templates/admin/mx_domain_detail.html:11
+#: admin/templates/admin/mx_domain_detail.html:11
#, fuzzy
#| msgid "Update"
msgid "Updated"
msgstr "Atualizar"
-#: templates/admin/mx_domain_detail.html:23
+#: admin/templates/admin/mx_domain_detail.html:23
msgid "This IP does not match any of the valid MXs defined in parameters"
msgstr ""
-#: templates/admin/mx_domain_detail.html:36
+#: admin/templates/admin/mx_domain_detail.html:36
msgid "No MX record found for this domain."
msgstr ""
-#: templates/admin/notifications/domain_in_dnsbl.html:3
+#: admin/templates/admin/notifications/domain_in_dnsbl.html:3
#, python-format
msgid ""
"Modoboa detected that domain %(domain)s is listed by the following DNSBL "
"providers:"
msgstr ""
-#: templates/admin/notifications/domain_in_dnsbl.html:11
+#: admin/templates/admin/notifications/domain_in_dnsbl.html:11
msgid ""
"The domain's reputation will be affected and there is a chance that emails "
"coming from it are considered as spam. You should contact those providers "
"and ask them to unlist detected IP address(es)."
msgstr ""
-#: templates/admin/notifications/domain_invalid_mx.html:3
+#: admin/templates/admin/notifications/domain_invalid_mx.html:3
#, python-format
msgid "Modoboa detected that domain %(domain)s has no valid MX record:"
msgstr ""
-#: templates/admin/searchform.html:6
+#: admin/templates/admin/searchform.html:6
msgid "Search"
msgstr "Busca"
-#: templatetags/admin_tags.py:22
+#: admin/templatetags/admin_tags.py:22
msgid "enabled_m"
msgstr "Ativado"
-#: templatetags/admin_tags.py:22
+#: admin/templatetags/admin_tags.py:22
msgid "enabled_f"
msgstr "Ativada"
-#: templatetags/admin_tags.py:48
+#: admin/templatetags/admin_tags.py:48
msgid "List domains"
msgstr "Listardomínios"
-#: templatetags/admin_tags.py:53 templatetags/admin_tags.py:108
+#: admin/templatetags/admin_tags.py:53 admin/templatetags/admin_tags.py:108
msgid "List quotas"
msgstr "Listar quotas"
-#: templatetags/admin_tags.py:65 templatetags/admin_tags.py:113
-#: views/import_.py:101 views/import_.py:123
+#: admin/templatetags/admin_tags.py:65 admin/templatetags/admin_tags.py:113
+#: admin/views/import_.py:89 admin/views/import_.py:111
msgid "Import"
msgstr "Importar"
-#: templatetags/admin_tags.py:71 templatetags/admin_tags.py:119
-#: views/export.py:44 views/export.py:74
+#: admin/templatetags/admin_tags.py:71 admin/templatetags/admin_tags.py:119
+#: admin/views/export.py:43 admin/views/export.py:71
msgid "Export"
msgstr "Exportar"
-#: templatetags/admin_tags.py:103
+#: admin/templatetags/admin_tags.py:103
msgid "List identities"
msgstr "Listar identidades"
-#: templatetags/admin_tags.py:138
+#: admin/templatetags/admin_tags.py:138
msgid "View the domain's identities"
msgstr "Ver as identidades de domínios"
-#: templatetags/admin_tags.py:144 templatetags/admin_tags.py:187
-#: templatetags/admin_tags.py:200
+#: admin/templatetags/admin_tags.py:144 admin/templatetags/admin_tags.py:187
+#: admin/templatetags/admin_tags.py:200
msgid "Edit {}"
msgstr ""
-#: templatetags/admin_tags.py:154 templatetags/admin_tags.py:191
-#: templatetags/admin_tags.py:205
+#: admin/templatetags/admin_tags.py:154 admin/templatetags/admin_tags.py:191
+#: admin/templatetags/admin_tags.py:205
#, python-format
msgid "Delete %s?"
msgstr "Remover %s?"
-#: views/alias.py:35
+#: admin/views/alias.py:35
msgid "Alias with this name already exists"
msgstr "Um alias para esse nome já existe"
-#: views/alias.py:60
+#: admin/views/alias.py:60
msgid "Create"
msgstr "Criar"
-#: views/alias.py:72
+#: admin/views/alias.py:72
msgid "New alias"
msgstr "Novo alias"
-#: views/alias.py:73
+#: admin/views/alias.py:73
msgid "Alias created"
msgstr "Alias criado"
-#: views/alias.py:85
+#: admin/views/alias.py:85
msgid "Alias modified"
msgstr "Alias modificado"
-#: views/alias.py:109
+#: admin/views/alias.py:109
#, fuzzy
#| msgid "Alias created"
msgid "Alias deleted"
@@ -1251,61 +1403,62 @@ msgid_plural "Aliases deleted"
msgstr[0] "Alias criado"
msgstr[1] "Alias criado"
-#: views/dns.py:32
+#: admin/views/dns.py:32
msgid "MX records of {}"
msgstr ""
-#: views/dns.py:55
+#: admin/views/dns.py:55
msgid "DNSBL summary for {}"
msgstr ""
-#: views/domain.py:190
+#: admin/views/domain.py:188
msgid "You can't delete your own domain"
msgstr "Você não pode deletar seu próprio domínio"
-#: views/domain.py:193
+#: admin/views/domain.py:191
msgid "Domain deleted"
msgid_plural "Domains deleted"
msgstr[0] "Domínio deletado"
msgstr[1] "Domínios deletados"
-#: views/export.py:43
+#: admin/views/export.py:42
msgid "Export identities"
msgstr "Exportar identidades"
-#: views/export.py:73
+#: admin/views/export.py:70
msgid "Export domains"
msgstr "Exportar domínios"
-#: views/identity.py:113 views/identity.py:206 views/identity.py:211
+#: admin/views/identity.py:113 admin/views/identity.py:206
+#: admin/views/identity.py:211
msgid "Invalid request"
msgstr "Solicitação inválida"
-#: views/identity.py:196
+#: admin/views/identity.py:196
msgid "Account deleted"
msgid_plural "Accounts deleted"
msgstr[0] "Conta deletada"
msgstr[1] "Contas deletadas"
-#: views/import_.py:77
+#: admin/views/import_.py:65
#, python-format
msgid "Object already exists: %s"
msgstr "O objeto já existe: %s"
-#: views/import_.py:81
+#: admin/views/import_.py:69
#, python-format
msgid "%d objects imported successfully"
msgstr "%d objetos importados com sucesso"
-#: views/import_.py:100
+#: admin/views/import_.py:88
msgid "Import domains"
msgstr "Importar domínios"
-#: views/import_.py:122
+#: admin/views/import_.py:110
msgid "Import identities"
msgstr "Importar identidades"
-#: views/user.py:40
+#: admin/views/user.py:40
msgid "Forward updated"
msgstr "Encaminhamento atualizado"
diff --git a/modoboa/admin/locale/pt_PT/LC_MESSAGES/django.po b/modoboa/admin/locale/pt_PT/LC_MESSAGES/django.po
index a854aea75..c1ffe3223 100644
--- a/modoboa/admin/locale/pt_PT/LC_MESSAGES/django.po
+++ b/modoboa/admin/locale/pt_PT/LC_MESSAGES/django.po
@@ -13,7 +13,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-12-03 12:51+0100\n"
+"POT-Creation-Date: 2018-01-25 09:09+0100\n"
"PO-Revision-Date: 2014-12-29 12:51+0000\n"
"Last-Translator: Mike C. \n"
"Language-Team: Portuguese (Portugal) (http://www.transifex.com/projects/p/"
@@ -24,57 +24,76 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: app_settings.py:20 handlers.py:269
-#: templates/admin/_global_statistics_widget.html:11
-#: templates/admin/domains.html:4
+#: admin/app_settings.py:22 admin/handlers.py:269
+#: admin/templates/admin/_global_statistics_widget.html:11
+#: admin/templates/admin/domains.html:5
msgid "Domains"
msgstr "Domínios"
-#: app_settings.py:23
+#: admin/app_settings.py:25
msgid "Enable MX checks"
msgstr ""
-#: app_settings.py:26
+#: admin/app_settings.py:28
msgid "Check that every domain has a valid MX record"
msgstr ""
-#: app_settings.py:31
+#: admin/app_settings.py:33
msgid "Valid MXs"
msgstr ""
-#: app_settings.py:34
+#: admin/app_settings.py:36
msgid ""
"A list of IP or network address every MX record should match. A warning will "
"be sent if a record does not respect it."
msgstr ""
-#: app_settings.py:42
+#: admin/app_settings.py:44
msgid "New domains must use authorized MX(s)"
msgstr ""
-#: app_settings.py:45
+#: admin/app_settings.py:47
msgid ""
"Prevent the creation of a new domain if its MX record does not use one of "
"the defined addresses."
msgstr ""
-#: app_settings.py:51
+#: admin/app_settings.py:53
msgid "Enable DNSBL checks"
msgstr ""
-#: app_settings.py:54
+#: admin/app_settings.py:56
msgid "Check every domain against major DNSBL providers"
msgstr ""
-#: app_settings.py:58 templates/admin/domain_detail.html:49
+#: admin/app_settings.py:61
+msgid "DKIM keys storage directory"
+msgstr ""
+
+#: admin/app_settings.py:64
+msgid ""
+"Absolute path of the directory where DKIM private keys will be stored. Make "
+"sure this directory belongs to root user and is not readable by the outside "
+"world."
+msgstr ""
+
+#: admin/app_settings.py:72
+msgid "Default DKIM key length"
+msgstr ""
+
+#: admin/app_settings.py:76
+msgid "Default length in bits for newly generated DKIM keys."
+msgstr ""
+
+#: admin/app_settings.py:80 admin/templates/admin/domain_detail.html:41
msgid "Mailboxes"
msgstr "Caixas de Correio"
-#: app_settings.py:61
+#: admin/app_settings.py:83
msgid "Handle mailboxes on filesystem"
msgstr "Lidar com caixas de correio no sistema de ficheiros"
-#: app_settings.py:64
+#: admin/app_settings.py:86
msgid ""
"Rename or remove mailboxes on the filesystem when they get renamed or "
"removed within Modoboa"
@@ -82,19 +101,19 @@ msgstr ""
"Renomear ou remover as caixas de correio no sistema de ficheiros quando "
"estas são renomeadas no Modoboa"
-#: app_settings.py:70
+#: admin/app_settings.py:92
msgid "Mailboxes owner"
msgstr "Dono das caixas de correio"
-#: app_settings.py:73
+#: admin/app_settings.py:95
msgid "The UNIX account who owns mailboxes on the filesystem"
msgstr "A conta UNIX que detém as caixas de correio no sistema de ficheiros"
-#: app_settings.py:78
+#: admin/app_settings.py:100
msgid "Default domain quota"
msgstr "Quota pré-definida para o domínio"
-#: app_settings.py:81
+#: admin/app_settings.py:103
msgid ""
"Default quota (in MB) applied to freshly created domains with no value "
"specified. A value of 0 means no quota."
@@ -102,13 +121,14 @@ msgstr ""
"Quota (em MB) a aplicar a domínios recentemente criados sem valor "
"especificado. Um valor de 0 implica sem quota."
-#: app_settings.py:87 models/domain.py:40 templates/admin/domain_detail.html:72
+#: admin/app_settings.py:109 admin/models/domain.py:40
+#: admin/templates/admin/domain_detail.html:64
#, fuzzy
#| msgid "Default domain quota"
msgid "Default mailbox quota"
msgstr "Quota pré-definida para o domínio"
-#: app_settings.py:90
+#: admin/app_settings.py:112
#, fuzzy
#| msgid ""
#| "Default quota (in MB) applied to freshly created domains with no value "
@@ -120,140 +140,152 @@ msgstr ""
"Quota (em MB) a aplicar a domínios recentemente criados sem valor "
"especificado. Um valor de 0 implica sem quota."
-#: app_settings.py:96
+#: admin/app_settings.py:118
msgid "Automatic account removal"
msgstr "Remoção automática de conta"
-#: app_settings.py:99
+#: admin/app_settings.py:121
msgid "When a mailbox is removed, also remove the associated account"
msgstr ""
"Ao remover uma caixa de correio estará também a remover a conta associada"
-#: app_settings.py:103
+#: admin/app_settings.py:125
msgid "Automatic domain/mailbox creation"
msgstr "Criação automatica de domino/caixa de correio"
-#: app_settings.py:106
+#: admin/app_settings.py:128
msgid "Create a domain and a mailbox when an account is automatically created."
msgstr ""
"Criar um dominio e uma caixa de correio quando uma conta é criada "
"automátiamente."
-#: app_settings.py:112
+#: admin/app_settings.py:134
msgid "Create an alias when a mailbox is renamed"
msgstr ""
-#: app_settings.py:115
+#: admin/app_settings.py:137
msgid "Create an alias using the old address when a mailbox is renamed."
msgstr ""
-#: app_settings.py:164 app_settings.py:172 forms/account.py:331
+#: admin/app_settings.py:186 admin/app_settings.py:194
+#: admin/forms/account.py:331
msgid "Must be a positive integer"
msgstr "Tem de ser um inteiro, positivo"
-#: app_settings.py:186
+#: admin/app_settings.py:204
+#, fuzzy
+#| msgid "Domain modified"
+msgid "Directory not found."
+msgstr "Domínio alterado"
+
+#: admin/app_settings.py:210
+msgid "openssl not found, please make sure it is installed."
+msgstr ""
+
+#: admin/app_settings.py:224
msgid "Define at least one authorized network / address"
msgstr ""
-#: app_settings.py:196
+#: admin/app_settings.py:234
msgid "Administration"
msgstr "Administração"
-#: constants.py:99 forms/alias.py:49
-#: templates/admin/_per_domain_statistics_widget.html:7
-#: templates/admin/domains_quota_headers.html:2
+#: admin/constants.py:99 admin/forms/alias.py:49
+#: admin/templates/admin/_per_domain_statistics_widget.html:7
+#: admin/templates/admin/domains_quota_headers.html:2
msgid "Domain"
msgstr "Domínio"
-#: constants.py:100
+#: admin/constants.py:100
#, fuzzy
#| msgid "New domain"
msgid "Relay domain"
msgstr "Novo domínio"
-#: forms/account.py:38 templates/admin/domain_detail.html:101
+#: admin/forms/account.py:38 admin/templates/admin/domain_detail.html:120
msgid "Username"
msgstr "Nome de Utilizador"
-#: forms/account.py:40
+#: admin/forms/account.py:40
msgid ""
"The user's name. Must be a valid e-mail address for simple users or "
"administrators with a mailbox."
msgstr ""
-#: forms/account.py:45 templates/admin/account_detail.html:29
+#: admin/forms/account.py:45 admin/templates/admin/account_detail.html:29
msgid "Role"
msgstr "Papel"
-#: forms/account.py:46
+#: admin/forms/account.py:46
msgid "Choose"
msgstr "Escolher"
-#: forms/account.py:47
+#: admin/forms/account.py:47
msgid "What level of permission this user will have"
msgstr "Que nível de permissões terá o utilizador"
-#: forms/account.py:50 forms/domain.py:208
+#: admin/forms/account.py:50 admin/forms/domain.py:227
#, fuzzy
#| msgid "Invalid request"
msgid "Random password"
msgstr "Pedido inválido"
-#: forms/account.py:52
+#: admin/forms/account.py:52
msgid ""
"Generate a random password. If you're updating this account and check this "
"box, a new password will be generated."
msgstr ""
-#: forms/account.py:58
+#: admin/forms/account.py:58
msgid "Password"
msgstr "Password"
-#: forms/account.py:63
+#: admin/forms/account.py:63
msgid "Confirmation"
msgstr "Confirmação"
-#: forms/account.py:66
+#: admin/forms/account.py:66
msgid "Enter the same password as above, for verification."
msgstr "Repita a password acima, para verificação."
-#: forms/account.py:78
+#: admin/forms/account.py:78
msgid "Enabled"
msgstr "Ativo"
-#: forms/account.py:172
+#: admin/forms/account.py:172
msgid "Only super administrators are allowed for this mode"
msgstr ""
-#: forms/account.py:183 forms/account.py:185 forms/domain.py:254
-#: forms/domain.py:257 serializers.py:241
+#: admin/forms/account.py:183 admin/forms/account.py:185
+#: admin/forms/domain.py:144 admin/forms/domain.py:273
+#: admin/forms/domain.py:276 admin/serializers.py:241
#, fuzzy
#| msgid "A mailbox is required"
msgid "This field is required."
msgstr "É necessária uma caixa de correio"
-#: forms/account.py:191
+#: admin/forms/account.py:191
msgid "The two password fields didn't match."
msgstr "Os dois campos de password não são idênticos."
-#: forms/account.py:204
+#: admin/forms/account.py:204
msgid "You can't disable your own account"
msgstr "Não pode desativar a sua própria conta"
-#: forms/account.py:225
+#: admin/forms/account.py:225
msgid "E-mail"
msgstr "E-mail"
-#: forms/account.py:227
+#: admin/forms/account.py:227
msgid "Create an alias using the old address"
msgstr ""
-#: forms/account.py:232 templates/admin/account_detail.html:45
-#: templates/admin/domain_detail.html:57
+#: admin/forms/account.py:232 admin/templates/admin/account_detail.html:45
+#: admin/templates/admin/domain_detail.html:49
msgid "Quota"
msgstr "Quota"
-#: forms/account.py:234
+#: admin/forms/account.py:234
msgid ""
"Quota in MB for this mailbox. Define a custom value or use domain's default "
"one. Leave empty to define an unlimited value (not allowed for domain "
@@ -263,12 +295,12 @@ msgstr ""
"usar o valor predefinido pelo domínio. Deixar em branco para definir uma "
"valor ilimitado (não permitido para administradores do domínio)."
-#: forms/account.py:242 forms/domain.py:39
-#: templates/admin/domain_headers.html:4
+#: admin/forms/account.py:242 admin/forms/domain.py:39
+#: admin/templates/admin/domain_headers.html:4
msgid "Alias(es)"
msgstr "Alias(es)"
-#: forms/account.py:245
+#: admin/forms/account.py:245
#, fuzzy
#| msgid ""
#| "Alias(es) of this mailbox. Indicate only one address per input, press "
@@ -283,13 +315,13 @@ msgstr ""
"clique ENTER para adicionar uma nova entrada. Use o '*' para criar um alias "
"'catchall' (ex: *@domain.tld)."
-#: forms/account.py:251
+#: admin/forms/account.py:251
#, fuzzy
#| msgid "Invalid request"
msgid "Sender addresses"
msgstr "Pedido inválido"
-#: forms/account.py:254
+#: admin/forms/account.py:254
#, fuzzy
#| msgid ""
#| "Mailbox(es) this alias will point to. Indicate only one address per "
@@ -302,68 +334,70 @@ msgstr ""
"Caixa(s) de correio para o qual este 'alias' aponta. Indicar apenas um "
"endereço por entrada, pressionar ENTER para acrescentar uma nova entrada."
-#: forms/account.py:309 forms/alias.py:94 models/mailbox.py:315
+#: admin/forms/account.py:309 admin/forms/alias.py:94
+#: admin/models/mailbox.py:315
msgid "Domain does not exist"
msgstr "O domínio não existe"
-#: forms/account.py:341
+#: admin/forms/account.py:341
#, fuzzy
#| msgid "Domain does not exist"
msgid "Local domain does not exist"
msgstr "O domínio não existe"
-#: forms/account.py:345 forms/account.py:353 forms/alias.py:97
+#: admin/forms/account.py:345 admin/forms/account.py:353
+#: admin/forms/alias.py:97
msgid "You don't have access to this domain"
msgstr "Não tem acesso a este domínio"
-#: forms/account.py:452
+#: admin/forms/account.py:452
msgid "Domain(s)"
msgstr "Domínio(s)"
-#: forms/account.py:454
+#: admin/forms/account.py:454
msgid "Domain(s) that user administrates"
msgstr "Domínio(s) administrado pelo utilizador"
-#: forms/account.py:500 forms/account.py:590 forms/domain.py:325
-#: forms/domain.py:395
+#: admin/forms/account.py:500 admin/forms/account.py:590
+#: admin/forms/domain.py:344 admin/forms/domain.py:414
msgid "General"
msgstr "Geral"
-#: forms/account.py:504
+#: admin/forms/account.py:504
msgid "Profile"
msgstr ""
-#: forms/account.py:508 forms/account.py:596
+#: admin/forms/account.py:508 admin/forms/account.py:596
msgid "Mail"
msgstr "Correio"
-#: forms/account.py:511
+#: admin/forms/account.py:511
msgid "Permissions"
msgstr "Permissões"
-#: forms/account.py:579
+#: admin/forms/account.py:579
msgid "Account updated"
msgstr "Conta actualizada"
-#: forms/account.py:604
+#: admin/forms/account.py:604
msgid "New account"
msgstr "Nova conta"
-#: forms/account.py:616
+#: admin/forms/account.py:614
msgid "Account created"
msgstr "Conta criada"
-#: forms/alias.py:26
+#: admin/forms/alias.py:26
#, fuzzy
#| msgid "Invalid request"
msgid "Random address"
msgstr "Pedido inválido"
-#: forms/alias.py:29
+#: admin/forms/alias.py:29
msgid "Email address"
msgstr "Endereço de e-mail"
-#: forms/alias.py:31
+#: admin/forms/alias.py:31
#, fuzzy
#| msgid ""
#| "The alias address (without the domain part). For a 'catch-all' address, "
@@ -375,11 +409,11 @@ msgstr ""
"O endereço do alias (sem a parte do domínio). Para um endereço 'cath-all', "
"digite apenas o caractere *"
-#: forms/alias.py:37 templates/admin/alias_detail.html:37
+#: admin/forms/alias.py:37 admin/templates/admin/alias_detail.html:37
msgid "Recipients"
msgstr "Destinatários"
-#: forms/alias.py:39
+#: admin/forms/alias.py:39
#, fuzzy
#| msgid ""
#| "Mailbox(es) this alias will point to. Indicate only one address per "
@@ -391,21 +425,22 @@ msgstr ""
"Caixa(s) de correio para o qual este 'alias' aponta. Indicar apenas um "
"endereço por entrada, pressionar ENTER para acrescentar uma nova entrada."
-#: forms/alias.py:114 forms/alias.py:116
+#: admin/forms/alias.py:114 admin/forms/alias.py:116
#, fuzzy
#| msgid "A mailbox is required"
msgid "This field is required"
msgstr "É necessária uma caixa de correio"
-#: forms/alias.py:120
+#: admin/forms/alias.py:120
msgid "No recipient defined"
msgstr "Sem destinatário definido"
-#: forms/domain.py:36 templates/admin/_global_statistics_widget.html:7
+#: admin/forms/domain.py:36
+#: admin/templates/admin/_global_statistics_widget.html:7
msgid "Type"
msgstr "Tipo"
-#: forms/domain.py:42
+#: admin/forms/domain.py:42
msgid ""
"Alias(es) of this domain. Indicate only one name per input, press ENTER to "
"add a new input."
@@ -413,47 +448,55 @@ msgstr ""
"Alias(es) deste domínio. Indicar apenas um nome por entrada, pressionar "
"ENTER para acrescentar uma nova entrada."
-#: forms/domain.py:81 handlers.py:171
+#: admin/forms/domain.py:47
+msgid "Key selector"
+msgstr ""
+
+#: admin/forms/domain.py:85 admin/handlers.py:171
msgid "domain alias"
msgstr "'Alias' de domínio"
-#: forms/domain.py:84 forms/domain.py:136 forms/domain.py:144
+#: admin/forms/domain.py:88 admin/forms/domain.py:155 admin/forms/domain.py:163
#, python-format
msgid "A %s with this name already exists"
msgstr "Já existe um(a) %s com este nome. "
-#: forms/domain.py:92 serializers.py:45
+#: admin/forms/domain.py:96 admin/serializers.py:45
msgid "No authorized MX record found for this domain"
msgstr ""
-#: forms/domain.py:114 serializers.py:55
+#: admin/forms/domain.py:108
+msgid "DKIM keys storage directory not configured"
+msgstr ""
+
+#: admin/forms/domain.py:129 admin/serializers.py:55
msgid "Cannot be greater than domain quota"
msgstr ""
-#: forms/domain.py:119
+#: admin/forms/domain.py:134
msgid "You can't define an unlimited quota."
msgstr ""
-#: forms/domain.py:136 forms/domain.py:141
+#: admin/forms/domain.py:155 admin/forms/domain.py:160
msgid "domain"
msgstr "domínio"
-#: forms/domain.py:190
+#: admin/forms/domain.py:209
msgid "Create a domain administrator"
msgstr "Criar um administrador de domínio"
-#: forms/domain.py:193
+#: admin/forms/domain.py:212
msgid "Automatically create an administrator for this domain"
msgstr "Criar automaticamente um administrador para este domínio"
-#: forms/domain.py:198 templates/admin/domain_detail.html:101
-#: templates/admin/domain_headers.html:3
-#: templates/admin/identity_headers.html:2
-#: templates/admin/mx_domain_detail.html:9
+#: admin/forms/domain.py:217 admin/templates/admin/domain_detail.html:120
+#: admin/templates/admin/domain_headers.html:3
+#: admin/templates/admin/identity_headers.html:2
+#: admin/templates/admin/mx_domain_detail.html:9
msgid "Name"
msgstr "Nome"
-#: forms/domain.py:201
+#: admin/forms/domain.py:220
msgid ""
"The administrator's name. Don't include the domain's name here, it will be "
"automatically appended."
@@ -461,218 +504,249 @@ msgstr ""
"O nome do administrador. Não inclua o nome do domínio já que este será "
"automaticamente anexado."
-#: forms/domain.py:211
+#: admin/forms/domain.py:230
#, fuzzy
#| msgid "Create a domain administrator"
msgid "Generate a random password for the administrator."
msgstr "Criar um administrador de domínio"
-#: forms/domain.py:217
+#: admin/forms/domain.py:236
msgid "With a mailbox"
msgstr ""
-#: forms/domain.py:220
+#: admin/forms/domain.py:239
#, fuzzy
#| msgid "Create a domain administrator"
msgid "Create a mailbox for the administrator."
msgstr "Criar um administrador de domínio"
-#: forms/domain.py:226
+#: admin/forms/domain.py:245
msgid "Create aliases"
msgstr " Criar aliases"
-#: forms/domain.py:229
+#: admin/forms/domain.py:248
msgid "Automatically create standard aliases for this domain"
msgstr "Criar automaticamente aliases para este domínio"
-#: forms/domain.py:245
+#: admin/forms/domain.py:264
msgid "Invalid format"
msgstr "Formato inválido"
-#: forms/domain.py:274
+#: admin/forms/domain.py:293
#, python-format
msgid "User '%s' already exists"
msgstr "O utilizador '%s' já existe"
-#: forms/domain.py:385
+#: admin/forms/domain.py:404
msgid "Domain modified"
msgstr "Domínio alterado"
-#: forms/domain.py:406
+#: admin/forms/domain.py:425
msgid "Options"
msgstr "Opções"
-#: forms/domain.py:414
+#: admin/forms/domain.py:433
msgid "New domain"
msgstr "Novo domínio"
-#: forms/domain.py:427
+#: admin/forms/domain.py:446
msgid "Domain created"
msgstr "Domínio criado"
-#: forms/export.py:9
+#: admin/forms/export.py:9
msgid "File name"
msgstr "Nome do ficheiro"
-#: forms/export.py:15 forms/import_.py:15
+#: admin/forms/export.py:15 admin/forms/import_.py:15
msgid "Separator"
msgstr "Separador"
-#: forms/forward.py:14
+#: admin/forms/forward.py:14
msgid "Recipient(s)"
msgstr "Destinatário(s)"
-#: forms/forward.py:18
+#: admin/forms/forward.py:18
msgid "Indicate one or more recipients separated by a ','"
msgstr "Indicar um ou mais destinatários separados por ','"
-#: forms/forward.py:21
+#: admin/forms/forward.py:21
msgid "Keep local copies"
msgstr "Conservar cópias locais"
-#: forms/forward.py:24
+#: admin/forms/forward.py:24
msgid "Forward messages and store copies into your local mailbox"
msgstr ""
"Reencaminhar mensagens e armazenar cópias na sua caixa de correio local"
-#: forms/import_.py:13
+#: admin/forms/import_.py:13
msgid "Select a file"
msgstr "Escolha um ficheiro"
-#: forms/import_.py:21
+#: admin/forms/import_.py:21
msgid "Continue on error"
msgstr "Continua com erro"
-#: forms/import_.py:22
+#: admin/forms/import_.py:22
msgid "Don't treat duplicated objects as error"
msgstr "Não tratar objetos duplicados como erro"
-#: forms/import_.py:40
+#: admin/forms/import_.py:40
msgid "Crypt passwords"
msgstr "Passwords encriptadas"
-#: forms/import_.py:42
+#: admin/forms/import_.py:42
msgid "Check this option if passwords contained in your file are not crypted"
msgstr "Marque esta opção se as senhas contidas no arquivo não são encriptadas"
-#: handlers.py:218
+#: admin/handlers.py:218
#, python-format
msgid "Account import failed (%s): domain does not exist"
msgstr "Importação da conta falhou (%s): domínio não existe"
-#: handlers.py:231 models/mailbox.py:342
+#: admin/handlers.py:231 admin/models/mailbox.py:342
#, fuzzy
#| msgid "Mailbox %s already exists"
msgid "Mailbox {} already exists"
msgstr "Caixa de correio %s já existe"
-#: handlers.py:239
+#: admin/handlers.py:239
#, python-format
msgid "Account import failed (%s): wrong quota value"
msgstr "Importação da conta falhou (%s): valor para quota inválido"
-#: handlers.py:279 templates/admin/_global_statistics_widget.html:17
-#: templates/admin/_per_domain_statistics_widget.html:8
-#: templates/admin/identities.html:5
+#: admin/handlers.py:279
+#: admin/templates/admin/_global_statistics_widget.html:17
+#: admin/templates/admin/_per_domain_statistics_widget.html:8
+#: admin/templates/admin/identities.html:5
msgid "Identities"
msgstr "Identidades"
-#: handlers.py:295 templates/admin/forward.html:2
+#: admin/handlers.py:295 admin/templates/admin/forward.html:2
msgid "Forward"
msgstr "Reencaminhar"
-#: lib.py:41
+#: admin/lib.py:44
msgid "A mailbox is required"
msgstr "É necessária uma caixa de correio"
-#: lib.py:131
+#: admin/lib.py:134
#, fuzzy
#| msgid "You can't delete your own domain"
msgid "You are not allowed to import domains"
msgstr "Não é possível eliminar o seu próprio domínio"
-#: lib.py:142
+#: admin/lib.py:145
msgid "You are not allowed to import domain aliases."
msgstr ""
-#: management/commands/subcommands/_mx.py:125
+#: admin/lib.py:183 admin/tests/test_mx.py:122
+#, python-format
+msgid "No DNS records found for %s"
+msgstr ""
+
+#: admin/lib.py:185 admin/tests/test_mx.py:125
+#, python-format
+msgid "No MX record for %s"
+msgstr ""
+
+#: admin/lib.py:187 admin/tests/test_mx.py:126
+msgid "No working name servers found"
+msgstr ""
+
+#: admin/lib.py:190 admin/tests/test_mx.py:128
+#, python-format
+msgid "DNS resolution timeout, unable to query %s at the moment"
+msgstr ""
+
+#: admin/lib.py:201 admin/tests/test_mx.py:131
+#, python-format
+msgid "Unable to lookup ip addresses for %(domain)s; %(error)s"
+msgstr ""
+
+#: admin/lib.py:212 admin/tests/test_mx.py:134
+#, python-format
+msgid "Invalid IP address format for %(domain)s; %(addr)s"
+msgstr ""
+
+#: admin/management/commands/subcommands/_mx.py:136
msgid "[modoboa] DNSBL issue(s) for domain {}"
msgstr ""
-#: management/commands/subcommands/_mx.py:145
+#: admin/management/commands/subcommands/_mx.py:156
msgid "Domain {} has no MX record"
msgstr ""
-#: management/commands/subcommands/_mx.py:156
+#: admin/management/commands/subcommands/_mx.py:167
#, python-brace-format
msgid "MX record for domain {0} is invalid: {1}"
msgstr ""
-#: management/commands/subcommands/_mx.py:173
+#: admin/management/commands/subcommands/_mx.py:184
msgid "[modoboa] MX issue(s) for domain {}"
msgstr ""
-#: models/alias.py:35 models/mailbox.py:97
+#: admin/models/alias.py:35 admin/models/mailbox.py:97
msgid "address"
msgstr "endereços"
-#: models/alias.py:37
+#: admin/models/alias.py:37
#, fuzzy
#| msgid "The alias name"
msgid "The alias address."
msgstr "O nome do 'alias'"
-#: models/alias.py:42 models/domain.py:48 models/domain_alias.py:46
+#: admin/models/alias.py:42 admin/models/domain.py:48
+#: admin/models/domain_alias.py:47
msgid "enabled"
msgstr "ativo"
-#: models/alias.py:43 models/domain_alias.py:47
+#: admin/models/alias.py:43 admin/models/domain_alias.py:48
msgid "Check to activate this alias"
msgstr "Marcar para ativar este alias"
-#: models/alias.py:48 templates/admin/alias_detail.html:32
+#: admin/models/alias.py:48 admin/templates/admin/alias_detail.html:32
msgid "Description"
msgstr ""
-#: models/alias.py:50 templates/admin/alias_detail.html:29
+#: admin/models/alias.py:50 admin/templates/admin/alias_detail.html:29
msgid "Expire at"
msgstr ""
-#: models/alias.py:93
+#: admin/models/alias.py:93
msgid "alias"
msgstr "alias"
-#: models/alias.py:125
+#: admin/models/alias.py:125
#, fuzzy
#| msgid "Invalid request"
msgid "Invalid address"
msgstr "Pedido inválido"
-#: models/alias.py:146
+#: admin/models/alias.py:146
#, fuzzy
#| msgid "Local recipient %s not found"
msgid "Local recipient {}@{} not found"
msgstr "O destinatário local %s não foi encontrado"
-#: models/alias.py:176
+#: admin/models/alias.py:176
#, python-format
msgid "Invalid line: %s"
msgstr "Linha inválida: %s"
-#: models/alias.py:182
+#: admin/models/alias.py:182
#, python-format
msgid "Domain '%s' does not exist"
msgstr "O domínio '%s' não existe"
-#: models/domain.py:30 models/domain_alias.py:39
+#: admin/models/domain.py:30 admin/models/domain_alias.py:39
msgid "name"
msgstr "nome"
-#: models/domain.py:31
+#: admin/models/domain.py:31
msgid "The domain name"
msgstr "O nome do domínio"
-#: models/domain.py:35
+#: admin/models/domain.py:35
#, fuzzy
#| msgid ""
#| "Default quota (in MB) applied to freshly created domains with no value "
@@ -682,7 +756,7 @@ msgstr ""
"Quota (em MB) a aplicar a domínios recentemente criados sem valor "
"especificado. Um valor de 0 implica sem quota."
-#: models/domain.py:43
+#: admin/models/domain.py:43
#, fuzzy
#| msgid ""
#| "Default quota (in MB) applied to freshly created domains with no value "
@@ -692,393 +766,471 @@ msgstr ""
"Quota (em MB) a aplicar a domínios recentemente criados sem valor "
"especificado. Um valor de 0 implica sem quota."
-#: models/domain.py:49
+#: admin/models/domain.py:49
msgid "Check to activate this domain"
msgstr "Marcar para ativar este domínio"
-#: models/domain.py:54
+#: admin/models/domain.py:54
msgid "Enable DNS checks"
msgstr ""
-#: models/domain.py:55
+#: admin/models/domain.py:55
#, fuzzy
#| msgid "Check to activate this domain"
msgid "Check to enable DNS checks for this domain"
msgstr "Marcar para ativar este domínio"
-#: models/domain.py:253 models/domain_alias.py:73
+#: admin/models/domain.py:62
+msgid "Enable DKIM signing"
+msgstr ""
+
+#: admin/models/domain.py:64
+msgid ""
+"If you activate this feature, a DKIM key will be generated for this domain."
+msgstr ""
+
+#: admin/models/domain.py:70
+msgid "Key length"
+msgstr ""
+
+#: admin/models/domain.py:285 admin/models/domain_alias.py:74
msgid "Invalid line"
msgstr "Linha inválida"
-#: models/domain.py:263
+#: admin/models/domain.py:295
msgid "No authorized MX record found for domain {}"
msgstr ""
-#: models/domain.py:270
+#: admin/models/domain.py:302
#, fuzzy
#| msgid "Invalid quota value for domain '%s'"
msgid "Invalid quota value for domain '{}'"
msgstr "Valor de quota inválido para o dominio '%s'"
-#: models/domain.py:277
+#: admin/models/domain.py:309
#, fuzzy
#| msgid "Invalid quota value for domain '%s'"
msgid "Invalid default mailbox quota value for domain '{}'"
msgstr "Valor de quota inválido para o dominio '%s'"
-#: models/domain.py:282
+#: admin/models/domain.py:314
msgid "Default mailbox quota cannot be greater than domain quota"
msgstr ""
-#: models/domain_alias.py:40
+#: admin/models/domain_alias.py:40
msgid "The alias name"
msgstr "O nome do 'alias'"
-#: models/domain_alias.py:42
+#: admin/models/domain_alias.py:42
msgid "target"
msgstr "alvo"
-#: models/domain_alias.py:43
+#: admin/models/domain_alias.py:43
msgid "The domain this alias points to"
msgstr "O domínio para o qual este alias irá apontar"
-#: models/domain_alias.py:82
+#: admin/models/domain_alias.py:83
#, python-format
msgid "Unknown domain %s"
msgstr "Domínio desconhecido: %s"
-#: models/mailbox.py:99
+#: admin/models/mailbox.py:99
msgid "Mailbox address (without the @domain.tld part)"
msgstr "Endereços das caixas de correio (sem a parte @domain.tld)"
-#: models/mailbox.py:165
+#: admin/models/mailbox.py:165
#, python-format
msgid "Failed to retrieve mailbox location (%s)"
msgstr "Falha ao recuperar a localização da caixa de correio (%s)"
-#: models/mailbox.py:258
+#: admin/models/mailbox.py:258
msgid "A quota is required"
msgstr "É necessário uma quota"
-#: models/mailbox.py:264
+#: admin/models/mailbox.py:264
#, fuzzy
#| msgid "Domain created"
msgid "Domain quota exceeded"
msgstr "Domínio criado"
-#: serializers.py:80 serializers.py:266 serializers.py:360
+#: admin/serializers.py:80 admin/serializers.py:266 admin/serializers.py:360
#, fuzzy
#| msgid "Permissions"
msgid "Permission denied."
msgstr "Permissões"
-#: serializers.py:118
+#: admin/serializers.py:118
msgid ""
"List of administered domains (resellers and domain administrators only)."
msgstr ""
-#: serializers.py:218
+#: admin/serializers.py:218
msgid "Not allowed for this role."
msgstr ""
-#: serializers.py:228
+#: admin/serializers.py:228
msgid "Must be equal to mailbox full_address"
msgstr ""
-#: serializers.py:253
+#: admin/serializers.py:253
#, fuzzy
#| msgid "Domain does not exist"
msgid "Local domain {} does not exist"
msgstr "O domínio não existe"
-#: serializers.py:347
+#: admin/serializers.py:347
msgid "A list of recipient"
msgstr ""
-#: serializers.py:358
+#: admin/serializers.py:358
#, fuzzy
#| msgid "Domain modified"
msgid "Domain not found."
msgstr "Domínio alterado"
-#: templates/admin/_domain_dnschecks_status.html:4
+#: admin/serializers.py:407
+#, fuzzy
+#| msgid "You don't have access to this domain"
+msgid "You don't have access to this domain."
+msgstr "Não tem acesso a este domínio"
+
+#: admin/serializers.py:415
+#, fuzzy
+#| msgid "You don't have access to this domain"
+msgid "You don't have access to this mailbox."
+msgstr "Não tem acesso a este domínio"
+
+#: admin/templates/admin/_domain_dkim_key.html:6
+#: admin/templates/admin/_domain_dkim_key.html:20
+msgid "Close"
+msgstr ""
+
+#: admin/templates/admin/_domain_dkim_key.html:7
+#, python-format
+msgid "DKIM public key for %(domain)s"
+msgstr ""
+
+#: admin/templates/admin/_domain_dkim_key.html:11
+#, fuzzy
+#| msgid "Invalid format"
+msgid "Raw format"
+msgstr "Formato inválido"
+
+#: admin/templates/admin/_domain_dkim_key.html:15
+#, fuzzy
+#| msgid "Invalid format"
+msgid "Bind/named format"
+msgstr "Formato inválido"
+
+#: admin/templates/admin/_domain_dnschecks_status.html:4
#, fuzzy
#| msgid "disabled"
msgctxt "checks"
msgid "Disabled"
msgstr "inativo"
-#: templates/admin/_domain_dnschecks_status.html:6
+#: admin/templates/admin/_domain_dnschecks_status.html:6
msgid "Awaiting checks"
msgstr ""
-#: templates/admin/_global_statistics_widget.html:4
+#: admin/templates/admin/_global_statistics_widget.html:4
#, fuzzy
#| msgid "Statistics"
msgid "Global statistics"
msgstr "Estatísticas"
-#: templates/admin/_global_statistics_widget.html:8
+#: admin/templates/admin/_global_statistics_widget.html:8
msgid "Quantity"
msgstr "Quantidade"
-#: templates/admin/_global_statistics_widget.html:14
-#: templates/admin/domain_detail.html:45 templates/admin/domain_detail.html:81
+#: admin/templates/admin/_global_statistics_widget.html:14
+#: admin/templates/admin/domain_detail.html:37
+#: admin/templates/admin/domain_detail.html:73
msgid "Domain aliases"
msgstr "Aliases de domínio"
-#: templates/admin/_per_domain_statistics_widget.html:4
+#: admin/templates/admin/_per_domain_statistics_widget.html:4
#, fuzzy
#| msgid "Per-domain counters"
msgid "Per-domain statistics"
msgstr "Contadores por-domínio"
-#: templates/admin/account_detail.html:16 templates/admin/alias_detail.html:16
-#: templates/admin/domain_detail.html:19
-#: templates/admin/identities_table.html:7
+#: admin/templates/admin/account_detail.html:16
+#: admin/templates/admin/alias_detail.html:16
+#: admin/templates/admin/domain_detail.html:19
+#: admin/templates/admin/identities_table.html:7
#, fuzzy
#| msgid "disabled"
msgid "(disabled)"
msgstr "inativo"
-#: templates/admin/account_detail.html:22 templates/admin/alias_detail.html:22
-#: templates/admin/domain_detail.html:25
+#: admin/templates/admin/account_detail.html:22
+#: admin/templates/admin/alias_detail.html:22
+#: admin/templates/admin/domain_detail.html:25
msgid "Summary"
msgstr ""
-#: templates/admin/account_detail.html:26
+#: admin/templates/admin/account_detail.html:26
#, fuzzy
#| msgid "File name"
msgid "Full name"
msgstr "Nome do ficheiro"
-#: templates/admin/account_detail.html:32 templates/admin/alias_detail.html:26
+#: admin/templates/admin/account_detail.html:32
+#: admin/templates/admin/alias_detail.html:26
#, fuzzy
#| msgid "Create"
msgid "Created"
msgstr "Criar"
-#: templates/admin/account_detail.html:35
+#: admin/templates/admin/account_detail.html:35
msgid "Last login"
msgstr ""
-#: templates/admin/account_detail.html:38
+#: admin/templates/admin/account_detail.html:38
msgid "Secondary email"
msgstr ""
-#: templates/admin/account_detail.html:38
-#: templates/admin/account_detail.html:41
+#: admin/templates/admin/account_detail.html:38
+#: admin/templates/admin/account_detail.html:41
#, fuzzy
#| msgid "No recipient defined"
msgid "Not defined"
msgstr "Sem destinatário definido"
-#: templates/admin/account_detail.html:41
+#: admin/templates/admin/account_detail.html:41
msgid "Phone number"
msgstr ""
-#: templates/admin/account_detail.html:55
+#: admin/templates/admin/account_detail.html:55
#, fuzzy
#| msgid "Administration"
msgid "Administered domains"
msgstr "Administração"
-#: templates/admin/account_detail.html:61
+#: admin/templates/admin/account_detail.html:61
#, fuzzy
#| msgid "No recipient defined"
msgid "No domain defined."
msgstr "Sem destinatário definido"
-#: templates/admin/account_detail.html:75
+#: admin/templates/admin/account_detail.html:75
#, fuzzy
#| msgid "Alias(es)"
msgid "Aliases"
msgstr "Alias(es)"
-#: templates/admin/account_detail.html:81
+#: admin/templates/admin/account_detail.html:81
#, fuzzy
#| msgid "No recipient defined"
msgid "No alias defined"
msgstr "Sem destinatário definido"
-#: templates/admin/account_detail.html:87
+#: admin/templates/admin/account_detail.html:87
msgid "Additional sender addresses"
msgstr ""
-#: templates/admin/account_detail.html:93
+#: admin/templates/admin/account_detail.html:93
msgid "No sender address defined"
msgstr ""
-#: templates/admin/account_general_form.html:12
-#: templates/admin/aliasform.html:13
+#: admin/templates/admin/account_general_form.html:12
+#: admin/templates/admin/aliasform.html:13
msgid "Domain is disabled"
msgstr "O dominio está inativo"
-#: templates/admin/alias_detail.html:16 templates/admin/identities.html:33
+#: admin/templates/admin/alias_detail.html:16
+#: admin/templates/admin/identities.html:33
#, fuzzy
#| msgid "alias"
msgid "Alias"
msgstr "alias"
-#: templates/admin/alias_detail.html:27
+#: admin/templates/admin/alias_detail.html:27
#, fuzzy
#| msgid "Alias modified"
msgid "Modified"
msgstr "'Alias' modificado"
-#: templates/admin/dnsbl_domain_detail.html:10
+#: admin/templates/admin/dnsbl_domain_detail.html:10
msgid "Provider"
msgstr ""
-#: templates/admin/dnsbl_domain_detail.html:11
-#: templates/admin/identities_quota_headers.html:2
-#: templates/admin/mx_domain_detail.html:10
+#: admin/templates/admin/dnsbl_domain_detail.html:11
+#: admin/templates/admin/identities_quota_headers.html:2
+#: admin/templates/admin/mx_domain_detail.html:10
msgid "Address"
msgstr "Endereço"
-#: templates/admin/dnsbl_domain_detail.html:12
+#: admin/templates/admin/dnsbl_domain_detail.html:12
+#: admin/templates/admin/domain_detail.html:96
#, fuzzy
#| msgid "Statistics"
msgid "Status"
msgstr "Estatísticas"
-#: templates/admin/dnsbl_domain_detail.html:21
+#: admin/templates/admin/dnsbl_domain_detail.html:21
msgid "listed"
msgstr ""
-#: templates/admin/dnsbl_domain_detail.html:29
+#: admin/templates/admin/dnsbl_domain_detail.html:29
msgid "Everything is fine, this domain is not listed."
msgstr ""
-#: templates/admin/dnsbl_domain_detail.html:32
+#: admin/templates/admin/dnsbl_domain_detail.html:32
msgid "No information available for this domain."
msgstr ""
-#: templates/admin/domain_detail.html:30 templates/admin/domain_headers.html:7
-#, fuzzy
-#| msgid "Statistics"
-msgid "DNS status"
-msgstr "Estatísticas"
-
-#: templates/admin/domain_detail.html:37
+#: admin/templates/admin/domain_detail.html:29
msgid "Creation date"
msgstr "Data de criação"
-#: templates/admin/domain_detail.html:41
+#: admin/templates/admin/domain_detail.html:33
msgid "Last modification date"
msgstr "Data da última modificação"
-#: templates/admin/domain_detail.html:53
+#: admin/templates/admin/domain_detail.html:45
msgid "Mailbox aliases"
msgstr "Aliases para caixas de correio"
-#: templates/admin/domain_detail.html:58 templates/admin/domain_detail.html:65
-#: templates/admin/domain_detail.html:66 templates/admin/domain_detail.html:73
-#: templates/admin/domain_general_form.html:4
-#: templates/admin/domain_general_form.html:5
-#: templates/admin/domains_quotas.html:11
-#: templates/admin/domains_quotas.html:12 templates/admin/mailform.html:7
-#: templates/admin/newdomainform.html:3
+#: admin/templates/admin/domain_detail.html:50
+#: admin/templates/admin/domain_detail.html:57
+#: admin/templates/admin/domain_detail.html:58
+#: admin/templates/admin/domain_detail.html:65
+#: admin/templates/admin/domain_general_form.html:4
+#: admin/templates/admin/domain_general_form.html:5
+#: admin/templates/admin/domains_quotas.html:11
+#: admin/templates/admin/domains_quotas.html:12
+#: admin/templates/admin/mailform.html:7
+#: admin/templates/admin/newdomainform.html:3
msgid "MB"
msgstr "MB"
-#: templates/admin/domain_detail.html:62
+#: admin/templates/admin/domain_detail.html:54
#, fuzzy
#| msgid "Usage (%%)"
msgid "Usage"
msgstr "Utilização (%%)"
-#: templates/admin/domain_detail.html:65 templates/admin/domains_quotas.html:11
+#: admin/templates/admin/domain_detail.html:57
+#: admin/templates/admin/domains_quotas.html:11
msgctxt "quota"
msgid "used"
msgstr ""
-#: templates/admin/domain_detail.html:66 templates/admin/domains_quotas.html:12
+#: admin/templates/admin/domain_detail.html:58
+#: admin/templates/admin/domains_quotas.html:12
msgid "allocated"
msgstr ""
-#: templates/admin/domain_detail.html:98
+#: admin/templates/admin/domain_detail.html:91
+msgid "DNS"
+msgstr ""
+
+#: admin/templates/admin/domain_detail.html:103
+msgid "DKIM key"
+msgstr ""
+
+#: admin/templates/admin/domain_detail.html:107
+msgid "Show key"
+msgstr ""
+
+#: admin/templates/admin/domain_detail.html:110
+#, fuzzy
+#| msgid "No recipient defined"
+msgid "Not generated"
+msgstr "Sem destinatário definido"
+
+#: admin/templates/admin/domain_detail.html:117
msgid "Administrators"
msgstr "Administradores"
-#: templates/admin/domain_detail.html:110 templatetags/admin_tags.py:268
+#: admin/templates/admin/domain_detail.html:129
+#: admin/templatetags/admin_tags.py:268
msgid "Remove this permission"
msgstr "Remover esta permissão"
-#: templates/admin/domain_detail.html:115
+#: admin/templates/admin/domain_detail.html:134
#, fuzzy
#| msgid "No domain administrator defined"
msgid "No domain administrator defined yet."
msgstr "Nenhum administrador de domínio definido"
-#: templates/admin/domain_headers.html:5
-#: templates/admin/identity_headers.html:4
+#: admin/templates/admin/domain_headers.html:5
+#: admin/templates/admin/identity_headers.html:4
msgid "Tags"
msgstr "Tags"
-#: templates/admin/domain_headers.html:9
-#: templates/admin/identity_headers.html:5
+#: admin/templates/admin/domain_headers.html:7
+#, fuzzy
+#| msgid "Statistics"
+msgid "DNS status"
+msgstr "Estatísticas"
+
+#: admin/templates/admin/domain_headers.html:9
+#: admin/templates/admin/identity_headers.html:5
msgid "Actions"
msgstr "Ações"
-#: templates/admin/domain_options_form.html:10
+#: admin/templates/admin/domain_options_form.html:10
msgid "You can't create a new domain administrator"
msgstr "Não pode criar administradores de domínio"
-#: templates/admin/domains.html:26 templates/admin/identities.html:29
+#: admin/templates/admin/domains.html:28
+#: admin/templates/admin/identities.html:29
#, fuzzy
#| msgid "Address"
msgid "Add"
msgstr "Endereço"
-#: templates/admin/domains_quota_headers.html:3
-#: templates/admin/identities_quota_headers.html:4
+#: admin/templates/admin/domains_quota_headers.html:3
+#: admin/templates/admin/identities_quota_headers.html:4
msgid "Limit"
msgstr "Limite"
-#: templates/admin/domains_quota_headers.html:4
+#: admin/templates/admin/domains_quota_headers.html:4
msgid "Used"
msgstr ""
-#: templates/admin/domains_quota_headers.html:5
+#: admin/templates/admin/domains_quota_headers.html:5
#, fuzzy
#| msgid "Alias created"
msgid "Allocated"
msgstr "Alias criado"
-#: templates/admin/domains_quota_headers.html:6
-#: templates/admin/identities_quota_headers.html:5
+#: admin/templates/admin/domains_quota_headers.html:6
+#: admin/templates/admin/identities_quota_headers.html:5
#, python-format
msgid "Usage (%%)"
msgstr "Utilização (%%)"
-#: templates/admin/domains_table.html:5
+#: admin/templates/admin/domains_table.html:5
msgid "disabled"
msgstr "inativo"
-#: templates/admin/forward.html:2
+#: admin/templates/admin/forward.html:2
msgid "Automatically forward emails to another address"
msgstr "Reenviar automaticamente e-mails para outro endereço"
-#: templates/admin/forward.html:9 views/alias.py:93
+#: admin/templates/admin/forward.html:9 admin/views/alias.py:93
msgid "Update"
msgstr "Actualizar"
-#: templates/admin/identities.html:32
+#: admin/templates/admin/identities.html:32
#, fuzzy
#| msgid "Add account"
msgid "Account"
msgstr "Adicionar conta"
-#: templates/admin/identities_quota_headers.html:3
+#: admin/templates/admin/identities_quota_headers.html:3
msgid "Value"
msgstr "Valor"
-#: templates/admin/identity_headers.html:3
+#: admin/templates/admin/identity_headers.html:3
msgid "Fullname/Recipient"
msgstr "Nome Completo / Destinatário"
-#: templates/admin/import_domains_form.html:6
+#: admin/templates/admin/import_domains_form.html:6
msgid ""
"Provide a CSV file where lines respect one of the following formats: "
"- domain; name; quota; default mailbox quota; enabled
"
@@ -1089,7 +1241,7 @@ msgid ""
"use a different character as separator."
msgstr ""
-#: templates/admin/import_identities_form.html:6
+#: admin/templates/admin/import_identities_form.html:6
msgid ""
"Provide a CSV file where lines respect one of the following formats: "
"- account; loginname; password; first name; last name; enabled; group; "
@@ -1099,129 +1251,129 @@ msgid ""
"use a different character as separator."
msgstr ""
-#: templates/admin/importform.html:6
+#: admin/templates/admin/importform.html:6
msgid "Help"
msgstr "Ajuda"
-#: templates/admin/importform.html:13
+#: admin/templates/admin/importform.html:13
msgid "Importing..."
msgstr "A importar..."
-#: templates/admin/index.html:6
+#: admin/templates/admin/index.html:6
msgid "Admin"
msgstr ""
-#: templates/admin/mailboxes_raw.html:3
+#: admin/templates/admin/mailboxes_raw.html:3
msgid "Choose a value"
msgstr "Escolha um valor"
-#: templates/admin/mailform.html:7
+#: admin/templates/admin/mailform.html:7
msgid "Use domain default value"
msgstr "Usar um valor padrão de domínio"
-#: templates/admin/mx_domain_detail.html:11
+#: admin/templates/admin/mx_domain_detail.html:11
#, fuzzy
#| msgid "Update"
msgid "Updated"
msgstr "Actualizar"
-#: templates/admin/mx_domain_detail.html:23
+#: admin/templates/admin/mx_domain_detail.html:23
msgid "This IP does not match any of the valid MXs defined in parameters"
msgstr ""
-#: templates/admin/mx_domain_detail.html:36
+#: admin/templates/admin/mx_domain_detail.html:36
msgid "No MX record found for this domain."
msgstr ""
-#: templates/admin/notifications/domain_in_dnsbl.html:3
+#: admin/templates/admin/notifications/domain_in_dnsbl.html:3
#, python-format
msgid ""
"Modoboa detected that domain %(domain)s is listed by the following DNSBL "
"providers:"
msgstr ""
-#: templates/admin/notifications/domain_in_dnsbl.html:11
+#: admin/templates/admin/notifications/domain_in_dnsbl.html:11
msgid ""
"The domain's reputation will be affected and there is a chance that emails "
"coming from it are considered as spam. You should contact those providers "
"and ask them to unlist detected IP address(es)."
msgstr ""
-#: templates/admin/notifications/domain_invalid_mx.html:3
+#: admin/templates/admin/notifications/domain_invalid_mx.html:3
#, python-format
msgid "Modoboa detected that domain %(domain)s has no valid MX record:"
msgstr ""
-#: templates/admin/searchform.html:6
+#: admin/templates/admin/searchform.html:6
msgid "Search"
msgstr "Procurar"
-#: templatetags/admin_tags.py:22
+#: admin/templatetags/admin_tags.py:22
msgid "enabled_m"
msgstr "enabled_m"
-#: templatetags/admin_tags.py:22
+#: admin/templatetags/admin_tags.py:22
msgid "enabled_f"
msgstr "enabled_f"
-#: templatetags/admin_tags.py:48
+#: admin/templatetags/admin_tags.py:48
msgid "List domains"
msgstr "Listar domínios"
-#: templatetags/admin_tags.py:53 templatetags/admin_tags.py:108
+#: admin/templatetags/admin_tags.py:53 admin/templatetags/admin_tags.py:108
msgid "List quotas"
msgstr "Listar as quotas"
-#: templatetags/admin_tags.py:65 templatetags/admin_tags.py:113
-#: views/import_.py:101 views/import_.py:123
+#: admin/templatetags/admin_tags.py:65 admin/templatetags/admin_tags.py:113
+#: admin/views/import_.py:89 admin/views/import_.py:111
msgid "Import"
msgstr "Importar"
-#: templatetags/admin_tags.py:71 templatetags/admin_tags.py:119
-#: views/export.py:44 views/export.py:74
+#: admin/templatetags/admin_tags.py:71 admin/templatetags/admin_tags.py:119
+#: admin/views/export.py:43 admin/views/export.py:71
msgid "Export"
msgstr "Exportar"
-#: templatetags/admin_tags.py:103
+#: admin/templatetags/admin_tags.py:103
msgid "List identities"
msgstr "Listar identidades"
-#: templatetags/admin_tags.py:138
+#: admin/templatetags/admin_tags.py:138
msgid "View the domain's identities"
msgstr "Visualizar as identidades do domínio"
-#: templatetags/admin_tags.py:144 templatetags/admin_tags.py:187
-#: templatetags/admin_tags.py:200
+#: admin/templatetags/admin_tags.py:144 admin/templatetags/admin_tags.py:187
+#: admin/templatetags/admin_tags.py:200
msgid "Edit {}"
msgstr ""
-#: templatetags/admin_tags.py:154 templatetags/admin_tags.py:191
-#: templatetags/admin_tags.py:205
+#: admin/templatetags/admin_tags.py:154 admin/templatetags/admin_tags.py:191
+#: admin/templatetags/admin_tags.py:205
#, python-format
msgid "Delete %s?"
msgstr "Eliminar %s?"
-#: views/alias.py:35
+#: admin/views/alias.py:35
msgid "Alias with this name already exists"
msgstr "Já existe um 'alias' com este nome"
-#: views/alias.py:60
+#: admin/views/alias.py:60
msgid "Create"
msgstr "Criar"
-#: views/alias.py:72
+#: admin/views/alias.py:72
msgid "New alias"
msgstr "Novo 'alias'"
-#: views/alias.py:73
+#: admin/views/alias.py:73
msgid "Alias created"
msgstr "Alias criado"
-#: views/alias.py:85
+#: admin/views/alias.py:85
msgid "Alias modified"
msgstr "'Alias' modificado"
-#: views/alias.py:109
+#: admin/views/alias.py:109
#, fuzzy
#| msgid "Alias created"
msgid "Alias deleted"
@@ -1229,61 +1381,62 @@ msgid_plural "Aliases deleted"
msgstr[0] "Alias criado"
msgstr[1] "Alias criado"
-#: views/dns.py:32
+#: admin/views/dns.py:32
msgid "MX records of {}"
msgstr ""
-#: views/dns.py:55
+#: admin/views/dns.py:55
msgid "DNSBL summary for {}"
msgstr ""
-#: views/domain.py:190
+#: admin/views/domain.py:188
msgid "You can't delete your own domain"
msgstr "Não é possível eliminar o seu próprio domínio"
-#: views/domain.py:193
+#: admin/views/domain.py:191
msgid "Domain deleted"
msgid_plural "Domains deleted"
msgstr[0] "Domínio criado"
msgstr[1] "Domínios eliminados"
-#: views/export.py:43
+#: admin/views/export.py:42
msgid "Export identities"
msgstr "Exportar identidades"
-#: views/export.py:73
+#: admin/views/export.py:70
msgid "Export domains"
msgstr "Exportar domínios"
-#: views/identity.py:113 views/identity.py:206 views/identity.py:211
+#: admin/views/identity.py:113 admin/views/identity.py:206
+#: admin/views/identity.py:211
msgid "Invalid request"
msgstr "Pedido inválido"
-#: views/identity.py:196
+#: admin/views/identity.py:196
msgid "Account deleted"
msgid_plural "Accounts deleted"
msgstr[0] "Conta eliminada"
msgstr[1] "Contas eliminadas"
-#: views/import_.py:77
+#: admin/views/import_.py:65
#, python-format
msgid "Object already exists: %s"
msgstr "Este objeto já existe: %s"
-#: views/import_.py:81
+#: admin/views/import_.py:69
#, python-format
msgid "%d objects imported successfully"
msgstr "%d objetos importados com sucesso"
-#: views/import_.py:100
+#: admin/views/import_.py:88
msgid "Import domains"
msgstr "Importar domínios"
-#: views/import_.py:122
+#: admin/views/import_.py:110
msgid "Import identities"
msgstr "Importar identidades"
-#: views/user.py:40
+#: admin/views/user.py:40
msgid "Forward updated"
msgstr "Reencaminhamento atualizado"
diff --git a/modoboa/admin/locale/ru/LC_MESSAGES/django.po b/modoboa/admin/locale/ru/LC_MESSAGES/django.po
index 69d15f152..37751dc67 100644
--- a/modoboa/admin/locale/ru/LC_MESSAGES/django.po
+++ b/modoboa/admin/locale/ru/LC_MESSAGES/django.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-12-03 12:51+0100\n"
+"POT-Creation-Date: 2018-01-25 09:09+0100\n"
"PO-Revision-Date: 2013-12-03 09:35+0000\n"
"Last-Translator: Antoine Nguyen \n"
"Language-Team: Russian (http://www.transifex.com/projects/p/modoboa/language/"
@@ -19,57 +19,76 @@ msgstr ""
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
-#: app_settings.py:20 handlers.py:269
-#: templates/admin/_global_statistics_widget.html:11
-#: templates/admin/domains.html:4
+#: admin/app_settings.py:22 admin/handlers.py:269
+#: admin/templates/admin/_global_statistics_widget.html:11
+#: admin/templates/admin/domains.html:5
msgid "Domains"
msgstr "Домены"
-#: app_settings.py:23
+#: admin/app_settings.py:25
msgid "Enable MX checks"
msgstr ""
-#: app_settings.py:26
+#: admin/app_settings.py:28
msgid "Check that every domain has a valid MX record"
msgstr ""
-#: app_settings.py:31
+#: admin/app_settings.py:33
msgid "Valid MXs"
msgstr ""
-#: app_settings.py:34
+#: admin/app_settings.py:36
msgid ""
"A list of IP or network address every MX record should match. A warning will "
"be sent if a record does not respect it."
msgstr ""
-#: app_settings.py:42
+#: admin/app_settings.py:44
msgid "New domains must use authorized MX(s)"
msgstr ""
-#: app_settings.py:45
+#: admin/app_settings.py:47
msgid ""
"Prevent the creation of a new domain if its MX record does not use one of "
"the defined addresses."
msgstr ""
-#: app_settings.py:51
+#: admin/app_settings.py:53
msgid "Enable DNSBL checks"
msgstr ""
-#: app_settings.py:54
+#: admin/app_settings.py:56
msgid "Check every domain against major DNSBL providers"
msgstr ""
-#: app_settings.py:58 templates/admin/domain_detail.html:49
+#: admin/app_settings.py:61
+msgid "DKIM keys storage directory"
+msgstr ""
+
+#: admin/app_settings.py:64
+msgid ""
+"Absolute path of the directory where DKIM private keys will be stored. Make "
+"sure this directory belongs to root user and is not readable by the outside "
+"world."
+msgstr ""
+
+#: admin/app_settings.py:72
+msgid "Default DKIM key length"
+msgstr ""
+
+#: admin/app_settings.py:76
+msgid "Default length in bits for newly generated DKIM keys."
+msgstr ""
+
+#: admin/app_settings.py:80 admin/templates/admin/domain_detail.html:41
msgid "Mailboxes"
msgstr "Почтовые ящики"
-#: app_settings.py:61
+#: admin/app_settings.py:83
msgid "Handle mailboxes on filesystem"
msgstr "Обрабатывать почтовые ящики на диске"
-#: app_settings.py:64
+#: admin/app_settings.py:86
#, fuzzy
msgid ""
"Rename or remove mailboxes on the filesystem when they get renamed or "
@@ -78,166 +97,179 @@ msgstr ""
"Удалять или переименовывать почтовые ящики на диске, если они удалены или "
"переименованы в Modoboa"
-#: app_settings.py:70
+#: admin/app_settings.py:92
msgid "Mailboxes owner"
msgstr "Почтовые ящики закончились"
-#: app_settings.py:73
+#: admin/app_settings.py:95
msgid "The UNIX account who owns mailboxes on the filesystem"
msgstr "UNIX аккаунт владельца почтового ящика на диске"
-#: app_settings.py:78
+#: admin/app_settings.py:100
msgid "Default domain quota"
msgstr ""
-#: app_settings.py:81
+#: admin/app_settings.py:103
msgid ""
"Default quota (in MB) applied to freshly created domains with no value "
"specified. A value of 0 means no quota."
msgstr ""
-#: app_settings.py:87 models/domain.py:40 templates/admin/domain_detail.html:72
+#: admin/app_settings.py:109 admin/models/domain.py:40
+#: admin/templates/admin/domain_detail.html:64
msgid "Default mailbox quota"
msgstr ""
-#: app_settings.py:90
+#: admin/app_settings.py:112
msgid ""
"Default mailbox quota (in MB) applied to freshly created domains with no "
"value specified. A value of 0 means no quota."
msgstr ""
-#: app_settings.py:96
+#: admin/app_settings.py:118
msgid "Automatic account removal"
msgstr "Автоматическое удаление аккаунта"
-#: app_settings.py:99
+#: admin/app_settings.py:121
msgid "When a mailbox is removed, also remove the associated account"
msgstr "При удалении почтового ящика, так же удалять и аккаунт владельца"
-#: app_settings.py:103
+#: admin/app_settings.py:125
#, fuzzy
msgid "Automatic domain/mailbox creation"
msgstr "Домен создан"
-#: app_settings.py:106
+#: admin/app_settings.py:128
msgid "Create a domain and a mailbox when an account is automatically created."
msgstr ""
-#: app_settings.py:112
+#: admin/app_settings.py:134
msgid "Create an alias when a mailbox is renamed"
msgstr ""
-#: app_settings.py:115
+#: admin/app_settings.py:137
msgid "Create an alias using the old address when a mailbox is renamed."
msgstr ""
-#: app_settings.py:164 app_settings.py:172 forms/account.py:331
+#: admin/app_settings.py:186 admin/app_settings.py:194
+#: admin/forms/account.py:331
msgid "Must be a positive integer"
msgstr ""
-#: app_settings.py:186
+#: admin/app_settings.py:204
+#, fuzzy
+#| msgid "Domain modified"
+msgid "Directory not found."
+msgstr "Домен изменен"
+
+#: admin/app_settings.py:210
+msgid "openssl not found, please make sure it is installed."
+msgstr ""
+
+#: admin/app_settings.py:224
msgid "Define at least one authorized network / address"
msgstr ""
-#: app_settings.py:196
+#: admin/app_settings.py:234
msgid "Administration"
msgstr ""
-#: constants.py:99 forms/alias.py:49
-#: templates/admin/_per_domain_statistics_widget.html:7
-#: templates/admin/domains_quota_headers.html:2
+#: admin/constants.py:99 admin/forms/alias.py:49
+#: admin/templates/admin/_per_domain_statistics_widget.html:7
+#: admin/templates/admin/domains_quota_headers.html:2
msgid "Domain"
msgstr ""
-#: constants.py:100
+#: admin/constants.py:100
#, fuzzy
#| msgid "New domain"
msgid "Relay domain"
msgstr "Новый домен"
-#: forms/account.py:38 templates/admin/domain_detail.html:101
+#: admin/forms/account.py:38 admin/templates/admin/domain_detail.html:120
msgid "Username"
msgstr "Логин пользователя"
-#: forms/account.py:40
+#: admin/forms/account.py:40
msgid ""
"The user's name. Must be a valid e-mail address for simple users or "
"administrators with a mailbox."
msgstr ""
-#: forms/account.py:45 templates/admin/account_detail.html:29
+#: admin/forms/account.py:45 admin/templates/admin/account_detail.html:29
msgid "Role"
msgstr "Роль"
-#: forms/account.py:46
+#: admin/forms/account.py:46
msgid "Choose"
msgstr "Выбрать"
-#: forms/account.py:47
+#: admin/forms/account.py:47
msgid "What level of permission this user will have"
msgstr "Разрешения для этого пользователя"
-#: forms/account.py:50 forms/domain.py:208
+#: admin/forms/account.py:50 admin/forms/domain.py:227
#, fuzzy
#| msgid "Invalid request"
msgid "Random password"
msgstr "Ошибочный запрос"
-#: forms/account.py:52
+#: admin/forms/account.py:52
msgid ""
"Generate a random password. If you're updating this account and check this "
"box, a new password will be generated."
msgstr ""
-#: forms/account.py:58
+#: admin/forms/account.py:58
msgid "Password"
msgstr "Пароль"
-#: forms/account.py:63
+#: admin/forms/account.py:63
msgid "Confirmation"
msgstr "Подтверждение"
-#: forms/account.py:66
+#: admin/forms/account.py:66
msgid "Enter the same password as above, for verification."
msgstr "Введите такой же пароль как выше. Для проверки."
-#: forms/account.py:78
+#: admin/forms/account.py:78
msgid "Enabled"
msgstr "Разрешено"
-#: forms/account.py:172
+#: admin/forms/account.py:172
msgid "Only super administrators are allowed for this mode"
msgstr ""
-#: forms/account.py:183 forms/account.py:185 forms/domain.py:254
-#: forms/domain.py:257 serializers.py:241
+#: admin/forms/account.py:183 admin/forms/account.py:185
+#: admin/forms/domain.py:144 admin/forms/domain.py:273
+#: admin/forms/domain.py:276 admin/serializers.py:241
#, fuzzy
#| msgid "A quota is required"
msgid "This field is required."
msgstr "Требуется квота"
-#: forms/account.py:191
+#: admin/forms/account.py:191
msgid "The two password fields didn't match."
msgstr "Пароли не совпадают"
-#: forms/account.py:204
+#: admin/forms/account.py:204
msgid "You can't disable your own account"
msgstr "Вы не можете запретить собственный аккаунт"
-#: forms/account.py:225
+#: admin/forms/account.py:225
msgid "E-mail"
msgstr "Е-майл"
-#: forms/account.py:227
+#: admin/forms/account.py:227
msgid "Create an alias using the old address"
msgstr ""
-#: forms/account.py:232 templates/admin/account_detail.html:45
-#: templates/admin/domain_detail.html:57
+#: admin/forms/account.py:232 admin/templates/admin/account_detail.html:45
+#: admin/templates/admin/domain_detail.html:49
msgid "Quota"
msgstr "Квота"
-#: forms/account.py:234
+#: admin/forms/account.py:234
msgid ""
"Quota in MB for this mailbox. Define a custom value or use domain's default "
"one. Leave empty to define an unlimited value (not allowed for domain "
@@ -248,12 +280,12 @@ msgstr ""
"Оставьте пустым для неограниченного значения. (Не разрешено администраторам "
"домена)"
-#: forms/account.py:242 forms/domain.py:39
-#: templates/admin/domain_headers.html:4
+#: admin/forms/account.py:242 admin/forms/domain.py:39
+#: admin/templates/admin/domain_headers.html:4
msgid "Alias(es)"
msgstr "Синоним(ы)"
-#: forms/account.py:245
+#: admin/forms/account.py:245
#, fuzzy
#| msgid ""
#| "Alias(es) of this mailbox. Indicate only one address per input, press "
@@ -267,13 +299,13 @@ msgstr ""
"Синонимы этого почтового ящика. Вводите один адрес за раз. Нажмите ENTER для "
"добавления. Используйте '*' для создания синонима 'для всех' (*@domain.tld)"
-#: forms/account.py:251
+#: admin/forms/account.py:251
#, fuzzy
#| msgid "Invalid request"
msgid "Sender addresses"
msgstr "Ошибочный запрос"
-#: forms/account.py:254
+#: admin/forms/account.py:254
#, fuzzy
#| msgid ""
#| "Mailbox(es) this alias will point to. Indicate only one address per "
@@ -286,68 +318,70 @@ msgstr ""
"Этот синоним почтового ящика. Вводите один адрес за раз. Нажмите ENTER для "
"добавления."
-#: forms/account.py:309 forms/alias.py:94 models/mailbox.py:315
+#: admin/forms/account.py:309 admin/forms/alias.py:94
+#: admin/models/mailbox.py:315
msgid "Domain does not exist"
msgstr "Домен не существует"
-#: forms/account.py:341
+#: admin/forms/account.py:341
#, fuzzy
#| msgid "Domain does not exist"
msgid "Local domain does not exist"
msgstr "Домен не существует"
-#: forms/account.py:345 forms/account.py:353 forms/alias.py:97
+#: admin/forms/account.py:345 admin/forms/account.py:353
+#: admin/forms/alias.py:97
msgid "You don't have access to this domain"
msgstr "Вы не имеете права доступа к этому домену"
-#: forms/account.py:452
+#: admin/forms/account.py:452
msgid "Domain(s)"
msgstr "Домен(ы)"
-#: forms/account.py:454
+#: admin/forms/account.py:454
msgid "Domain(s) that user administrates"
msgstr "Домен(ы) администрируемые пользователем"
-#: forms/account.py:500 forms/account.py:590 forms/domain.py:325
-#: forms/domain.py:395
+#: admin/forms/account.py:500 admin/forms/account.py:590
+#: admin/forms/domain.py:344 admin/forms/domain.py:414
msgid "General"
msgstr "Основные"
-#: forms/account.py:504
+#: admin/forms/account.py:504
msgid "Profile"
msgstr ""
-#: forms/account.py:508 forms/account.py:596
+#: admin/forms/account.py:508 admin/forms/account.py:596
msgid "Mail"
msgstr "Почта"
-#: forms/account.py:511
+#: admin/forms/account.py:511
msgid "Permissions"
msgstr "Права"
-#: forms/account.py:579
+#: admin/forms/account.py:579
msgid "Account updated"
msgstr "аккаунт изменен"
-#: forms/account.py:604
+#: admin/forms/account.py:604
msgid "New account"
msgstr "Новый аккаунт"
-#: forms/account.py:616
+#: admin/forms/account.py:614
msgid "Account created"
msgstr "Аккаунт создан"
-#: forms/alias.py:26
+#: admin/forms/alias.py:26
#, fuzzy
#| msgid "Invalid request"
msgid "Random address"
msgstr "Ошибочный запрос"
-#: forms/alias.py:29
+#: admin/forms/alias.py:29
msgid "Email address"
msgstr "Е-майл адрес"
-#: forms/alias.py:31
+#: admin/forms/alias.py:31
#, fuzzy
#| msgid ""
#| "The alias address (without the domain part). For a 'catch-all' address, "
@@ -359,11 +393,11 @@ msgstr ""
"Адреса синонимов (без доменной части). Для указания адреса 'для всех' "
"введите символ *"
-#: forms/alias.py:37 templates/admin/alias_detail.html:37
+#: admin/forms/alias.py:37 admin/templates/admin/alias_detail.html:37
msgid "Recipients"
msgstr "Получатели"
-#: forms/alias.py:39
+#: admin/forms/alias.py:39
#, fuzzy
#| msgid ""
#| "Mailbox(es) this alias will point to. Indicate only one address per "
@@ -375,21 +409,22 @@ msgstr ""
"Этот синоним почтового ящика. Вводите один адрес за раз. Нажмите ENTER для "
"добавления."
-#: forms/alias.py:114 forms/alias.py:116
+#: admin/forms/alias.py:114 admin/forms/alias.py:116
#, fuzzy
#| msgid "A quota is required"
msgid "This field is required"
msgstr "Требуется квота"
-#: forms/alias.py:120
+#: admin/forms/alias.py:120
msgid "No recipient defined"
msgstr "Получатель не определен"
-#: forms/domain.py:36 templates/admin/_global_statistics_widget.html:7
+#: admin/forms/domain.py:36
+#: admin/templates/admin/_global_statistics_widget.html:7
msgid "Type"
msgstr ""
-#: forms/domain.py:42
+#: admin/forms/domain.py:42
msgid ""
"Alias(es) of this domain. Indicate only one name per input, press ENTER to "
"add a new input."
@@ -397,47 +432,55 @@ msgstr ""
"Синоним(ы) этого домена. Вводите одно имя за раз. Нажмите ENTER для "
"добавления."
-#: forms/domain.py:81 handlers.py:171
+#: admin/forms/domain.py:47
+msgid "Key selector"
+msgstr ""
+
+#: admin/forms/domain.py:85 admin/handlers.py:171
msgid "domain alias"
msgstr ""
-#: forms/domain.py:84 forms/domain.py:136 forms/domain.py:144
+#: admin/forms/domain.py:88 admin/forms/domain.py:155 admin/forms/domain.py:163
#, python-format
msgid "A %s with this name already exists"
msgstr ""
-#: forms/domain.py:92 serializers.py:45
+#: admin/forms/domain.py:96 admin/serializers.py:45
msgid "No authorized MX record found for this domain"
msgstr ""
-#: forms/domain.py:114 serializers.py:55
+#: admin/forms/domain.py:108
+msgid "DKIM keys storage directory not configured"
+msgstr ""
+
+#: admin/forms/domain.py:129 admin/serializers.py:55
msgid "Cannot be greater than domain quota"
msgstr ""
-#: forms/domain.py:119
+#: admin/forms/domain.py:134
msgid "You can't define an unlimited quota."
msgstr ""
-#: forms/domain.py:136 forms/domain.py:141
+#: admin/forms/domain.py:155 admin/forms/domain.py:160
msgid "domain"
msgstr ""
-#: forms/domain.py:190
+#: admin/forms/domain.py:209
msgid "Create a domain administrator"
msgstr "Создание администратора домена"
-#: forms/domain.py:193
+#: admin/forms/domain.py:212
msgid "Automatically create an administrator for this domain"
msgstr "Автоматически создаст администратора для этого домена"
-#: forms/domain.py:198 templates/admin/domain_detail.html:101
-#: templates/admin/domain_headers.html:3
-#: templates/admin/identity_headers.html:2
-#: templates/admin/mx_domain_detail.html:9
+#: admin/forms/domain.py:217 admin/templates/admin/domain_detail.html:120
+#: admin/templates/admin/domain_headers.html:3
+#: admin/templates/admin/identity_headers.html:2
+#: admin/templates/admin/mx_domain_detail.html:9
msgid "Name"
msgstr "Логин"
-#: forms/domain.py:201
+#: admin/forms/domain.py:220
msgid ""
"The administrator's name. Don't include the domain's name here, it will be "
"automatically appended."
@@ -445,607 +488,716 @@ msgstr ""
"Имя администратора. Не включайте имя домена оно будет добавлено "
"автоматически."
-#: forms/domain.py:211
+#: admin/forms/domain.py:230
#, fuzzy
#| msgid "Create a domain administrator"
msgid "Generate a random password for the administrator."
msgstr "Создание администратора домена"
-#: forms/domain.py:217
+#: admin/forms/domain.py:236
msgid "With a mailbox"
msgstr ""
-#: forms/domain.py:220
+#: admin/forms/domain.py:239
#, fuzzy
#| msgid "Create a domain administrator"
msgid "Create a mailbox for the administrator."
msgstr "Создание администратора домена"
-#: forms/domain.py:226
+#: admin/forms/domain.py:245
msgid "Create aliases"
msgstr "Создание синонимов"
-#: forms/domain.py:229
+#: admin/forms/domain.py:248
msgid "Automatically create standard aliases for this domain"
msgstr "Автоматически создает стандартные синонимы для этого домена"
-#: forms/domain.py:245
+#: admin/forms/domain.py:264
msgid "Invalid format"
msgstr "Неверный формат"
-#: forms/domain.py:274
+#: admin/forms/domain.py:293
#, python-format
msgid "User '%s' already exists"
msgstr "Пользователь '%s' уже существует"
-#: forms/domain.py:385
+#: admin/forms/domain.py:404
msgid "Domain modified"
msgstr "Домен изменен"
-#: forms/domain.py:406
+#: admin/forms/domain.py:425
msgid "Options"
msgstr "Опции"
-#: forms/domain.py:414
+#: admin/forms/domain.py:433
msgid "New domain"
msgstr "Новый домен"
-#: forms/domain.py:427
+#: admin/forms/domain.py:446
msgid "Domain created"
msgstr "Домен создан"
-#: forms/export.py:9
+#: admin/forms/export.py:9
msgid "File name"
msgstr "Имя файла"
-#: forms/export.py:15 forms/import_.py:15
+#: admin/forms/export.py:15 admin/forms/import_.py:15
msgid "Separator"
msgstr "Разделитель"
-#: forms/forward.py:14
+#: admin/forms/forward.py:14
msgid "Recipient(s)"
msgstr "Получатели"
-#: forms/forward.py:18
+#: admin/forms/forward.py:18
msgid "Indicate one or more recipients separated by a ','"
msgstr "Укажите одного или нескольких получателей, разделенных запятой ','"
-#: forms/forward.py:21
+#: admin/forms/forward.py:21
msgid "Keep local copies"
msgstr "Сохранить локальную копию"
-#: forms/forward.py:24
+#: admin/forms/forward.py:24
msgid "Forward messages and store copies into your local mailbox"
msgstr ""
"Перенаправление сообщения, и сохранение копии в вашем локальном почтовом "
"ящике"
-#: forms/import_.py:13
+#: admin/forms/import_.py:13
msgid "Select a file"
msgstr "Выберите файл"
-#: forms/import_.py:21
+#: admin/forms/import_.py:21
msgid "Continue on error"
msgstr "Продолжать при ошибке"
-#: forms/import_.py:22
+#: admin/forms/import_.py:22
msgid "Don't treat duplicated objects as error"
msgstr "Не исправлять дублирующийся объект при ошибке"
-#: forms/import_.py:40
+#: admin/forms/import_.py:40
msgid "Crypt passwords"
msgstr "Шифровать пароль"
-#: forms/import_.py:42
+#: admin/forms/import_.py:42
msgid "Check this option if passwords contained in your file are not crypted"
msgstr "Выберите эту опцию если пароль в вашем файле не зашифрован "
-#: handlers.py:218
+#: admin/handlers.py:218
#, python-format
msgid "Account import failed (%s): domain does not exist"
msgstr "Ошибка импорта аккаунта (%s): домен должен существовать "
-#: handlers.py:231 models/mailbox.py:342
+#: admin/handlers.py:231 admin/models/mailbox.py:342
#, fuzzy
#| msgid "Mailbox %s already exists"
msgid "Mailbox {} already exists"
msgstr "Почтовый ящик %s существует"
-#: handlers.py:239
+#: admin/handlers.py:239
#, fuzzy, python-format
msgid "Account import failed (%s): wrong quota value"
msgstr "Ошибка импорта аккаунта (%s): домен должен существовать "
-#: handlers.py:279 templates/admin/_global_statistics_widget.html:17
-#: templates/admin/_per_domain_statistics_widget.html:8
-#: templates/admin/identities.html:5
+#: admin/handlers.py:279
+#: admin/templates/admin/_global_statistics_widget.html:17
+#: admin/templates/admin/_per_domain_statistics_widget.html:8
+#: admin/templates/admin/identities.html:5
msgid "Identities"
msgstr "Пользователи"
-#: handlers.py:295 templates/admin/forward.html:2
+#: admin/handlers.py:295 admin/templates/admin/forward.html:2
msgid "Forward"
msgstr "Перенаправленые"
-#: lib.py:41
+#: admin/lib.py:44
msgid "A mailbox is required"
msgstr ""
-#: lib.py:131
+#: admin/lib.py:134
#, fuzzy
#| msgid "You can't delete your own domain"
msgid "You are not allowed to import domains"
msgstr "Вы не можете удалить собственный домен"
-#: lib.py:142
+#: admin/lib.py:145
msgid "You are not allowed to import domain aliases."
msgstr ""
-#: management/commands/subcommands/_mx.py:125
+#: admin/lib.py:183 admin/tests/test_mx.py:122
+#, python-format
+msgid "No DNS records found for %s"
+msgstr ""
+
+#: admin/lib.py:185 admin/tests/test_mx.py:125
+#, python-format
+msgid "No MX record for %s"
+msgstr ""
+
+#: admin/lib.py:187 admin/tests/test_mx.py:126
+msgid "No working name servers found"
+msgstr ""
+
+#: admin/lib.py:190 admin/tests/test_mx.py:128
+#, python-format
+msgid "DNS resolution timeout, unable to query %s at the moment"
+msgstr ""
+
+#: admin/lib.py:201 admin/tests/test_mx.py:131
+#, python-format
+msgid "Unable to lookup ip addresses for %(domain)s; %(error)s"
+msgstr ""
+
+#: admin/lib.py:212 admin/tests/test_mx.py:134
+#, python-format
+msgid "Invalid IP address format for %(domain)s; %(addr)s"
+msgstr ""
+
+#: admin/management/commands/subcommands/_mx.py:136
msgid "[modoboa] DNSBL issue(s) for domain {}"
msgstr ""
-#: management/commands/subcommands/_mx.py:145
+#: admin/management/commands/subcommands/_mx.py:156
msgid "Domain {} has no MX record"
msgstr ""
-#: management/commands/subcommands/_mx.py:156
+#: admin/management/commands/subcommands/_mx.py:167
#, python-brace-format
msgid "MX record for domain {0} is invalid: {1}"
msgstr ""
-#: management/commands/subcommands/_mx.py:173
+#: admin/management/commands/subcommands/_mx.py:184
msgid "[modoboa] MX issue(s) for domain {}"
msgstr ""
-#: models/alias.py:35 models/mailbox.py:97
+#: admin/models/alias.py:35 admin/models/mailbox.py:97
msgid "address"
msgstr "адрес"
-#: models/alias.py:37
+#: admin/models/alias.py:37
#, fuzzy
#| msgid "The alias name"
msgid "The alias address."
msgstr "Имя синонима"
-#: models/alias.py:42 models/domain.py:48 models/domain_alias.py:46
+#: admin/models/alias.py:42 admin/models/domain.py:48
+#: admin/models/domain_alias.py:47
msgid "enabled"
msgstr "Разрешен"
-#: models/alias.py:43 models/domain_alias.py:47
+#: admin/models/alias.py:43 admin/models/domain_alias.py:48
msgid "Check to activate this alias"
msgstr "Отметить для активации синонима"
-#: models/alias.py:48 templates/admin/alias_detail.html:32
+#: admin/models/alias.py:48 admin/templates/admin/alias_detail.html:32
msgid "Description"
msgstr ""
-#: models/alias.py:50 templates/admin/alias_detail.html:29
+#: admin/models/alias.py:50 admin/templates/admin/alias_detail.html:29
msgid "Expire at"
msgstr ""
-#: models/alias.py:93
+#: admin/models/alias.py:93
msgid "alias"
msgstr "Синоним"
-#: models/alias.py:125
+#: admin/models/alias.py:125
#, fuzzy
#| msgid "Invalid request"
msgid "Invalid address"
msgstr "Ошибочный запрос"
-#: models/alias.py:146
+#: admin/models/alias.py:146
#, fuzzy
#| msgid "Local recipient %s not found"
msgid "Local recipient {}@{} not found"
msgstr "Локальный получатель %s не найден"
-#: models/alias.py:176
+#: admin/models/alias.py:176
#, python-format
msgid "Invalid line: %s"
msgstr "Неверная строка %s"
-#: models/alias.py:182
+#: admin/models/alias.py:182
#, python-format
msgid "Domain '%s' does not exist"
msgstr "Домен '%s' не существует"
-#: models/domain.py:30 models/domain_alias.py:39
+#: admin/models/domain.py:30 admin/models/domain_alias.py:39
msgid "name"
msgstr "имя"
-#: models/domain.py:31
+#: admin/models/domain.py:31
msgid "The domain name"
msgstr "Имя домена"
-#: models/domain.py:35
+#: admin/models/domain.py:35
msgid "Quota in MB shared between mailboxes. A value of 0 means no quota."
msgstr ""
-#: models/domain.py:43
+#: admin/models/domain.py:43
msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota."
msgstr ""
-#: models/domain.py:49
+#: admin/models/domain.py:49
msgid "Check to activate this domain"
msgstr "Отметить для активации этого домена"
-#: models/domain.py:54
+#: admin/models/domain.py:54
msgid "Enable DNS checks"
msgstr ""
-#: models/domain.py:55
+#: admin/models/domain.py:55
#, fuzzy
#| msgid "Check to activate this domain"
msgid "Check to enable DNS checks for this domain"
msgstr "Отметить для активации этого домена"
-#: models/domain.py:253 models/domain_alias.py:73
+#: admin/models/domain.py:62
+msgid "Enable DKIM signing"
+msgstr ""
+
+#: admin/models/domain.py:64
+msgid ""
+"If you activate this feature, a DKIM key will be generated for this domain."
+msgstr ""
+
+#: admin/models/domain.py:70
+msgid "Key length"
+msgstr ""
+
+#: admin/models/domain.py:285 admin/models/domain_alias.py:74
msgid "Invalid line"
msgstr "Ошибочная строка"
-#: models/domain.py:263
+#: admin/models/domain.py:295
msgid "No authorized MX record found for domain {}"
msgstr ""
-#: models/domain.py:270
+#: admin/models/domain.py:302
msgid "Invalid quota value for domain '{}'"
msgstr ""
-#: models/domain.py:277
+#: admin/models/domain.py:309
msgid "Invalid default mailbox quota value for domain '{}'"
msgstr ""
-#: models/domain.py:282
+#: admin/models/domain.py:314
msgid "Default mailbox quota cannot be greater than domain quota"
msgstr ""
-#: models/domain_alias.py:40
+#: admin/models/domain_alias.py:40
msgid "The alias name"
msgstr "Имя синонима"
-#: models/domain_alias.py:42
+#: admin/models/domain_alias.py:42
msgid "target"
msgstr "адресат"
-#: models/domain_alias.py:43
+#: admin/models/domain_alias.py:43
msgid "The domain this alias points to"
msgstr "Домен этого синонима указывает на"
-#: models/domain_alias.py:82
+#: admin/models/domain_alias.py:83
#, python-format
msgid "Unknown domain %s"
msgstr "Неизвестный домен %s"
-#: models/mailbox.py:99
+#: admin/models/mailbox.py:99
msgid "Mailbox address (without the @domain.tld part)"
msgstr "Адрес почтового ящика (без @domain.tld)"
-#: models/mailbox.py:165
+#: admin/models/mailbox.py:165
#, python-format
msgid "Failed to retrieve mailbox location (%s)"
msgstr "Ошибка получения места находжения почтового ящика (%s)"
-#: models/mailbox.py:258
+#: admin/models/mailbox.py:258
msgid "A quota is required"
msgstr "Требуется квота"
-#: models/mailbox.py:264
+#: admin/models/mailbox.py:264
#, fuzzy
#| msgid "Domain created"
msgid "Domain quota exceeded"
msgstr "Домен создан"
-#: serializers.py:80 serializers.py:266 serializers.py:360
+#: admin/serializers.py:80 admin/serializers.py:266 admin/serializers.py:360
#, fuzzy
#| msgid "Permissions"
msgid "Permission denied."
msgstr "Права"
-#: serializers.py:118
+#: admin/serializers.py:118
msgid ""
"List of administered domains (resellers and domain administrators only)."
msgstr ""
-#: serializers.py:218
+#: admin/serializers.py:218
msgid "Not allowed for this role."
msgstr ""
-#: serializers.py:228
+#: admin/serializers.py:228
msgid "Must be equal to mailbox full_address"
msgstr ""
-#: serializers.py:253
+#: admin/serializers.py:253
#, fuzzy
#| msgid "Domain does not exist"
msgid "Local domain {} does not exist"
msgstr "Домен не существует"
-#: serializers.py:347
+#: admin/serializers.py:347
msgid "A list of recipient"
msgstr ""
-#: serializers.py:358
+#: admin/serializers.py:358
#, fuzzy
#| msgid "Domain modified"
msgid "Domain not found."
msgstr "Домен изменен"
-#: templates/admin/_domain_dnschecks_status.html:4
+#: admin/serializers.py:407
+#, fuzzy
+#| msgid "You don't have access to this domain"
+msgid "You don't have access to this domain."
+msgstr "Вы не имеете права доступа к этому домену"
+
+#: admin/serializers.py:415
+#, fuzzy
+#| msgid "You don't have access to this domain"
+msgid "You don't have access to this mailbox."
+msgstr "Вы не имеете права доступа к этому домену"
+
+#: admin/templates/admin/_domain_dkim_key.html:6
+#: admin/templates/admin/_domain_dkim_key.html:20
+msgid "Close"
+msgstr ""
+
+#: admin/templates/admin/_domain_dkim_key.html:7
+#, python-format
+msgid "DKIM public key for %(domain)s"
+msgstr ""
+
+#: admin/templates/admin/_domain_dkim_key.html:11
+#, fuzzy
+#| msgid "Invalid format"
+msgid "Raw format"
+msgstr "Неверный формат"
+
+#: admin/templates/admin/_domain_dkim_key.html:15
+#, fuzzy
+#| msgid "Invalid format"
+msgid "Bind/named format"
+msgstr "Неверный формат"
+
+#: admin/templates/admin/_domain_dnschecks_status.html:4
#, fuzzy
msgctxt "checks"
msgid "Disabled"
msgstr "Разрешен"
-#: templates/admin/_domain_dnschecks_status.html:6
+#: admin/templates/admin/_domain_dnschecks_status.html:6
msgid "Awaiting checks"
msgstr ""
-#: templates/admin/_global_statistics_widget.html:4
+#: admin/templates/admin/_global_statistics_widget.html:4
#, fuzzy
#| msgid "Statistics"
msgid "Global statistics"
msgstr "Статистика"
-#: templates/admin/_global_statistics_widget.html:8
+#: admin/templates/admin/_global_statistics_widget.html:8
#, fuzzy
msgid "Quantity"
msgstr "Карантин"
-#: templates/admin/_global_statistics_widget.html:14
-#: templates/admin/domain_detail.html:45 templates/admin/domain_detail.html:81
+#: admin/templates/admin/_global_statistics_widget.html:14
+#: admin/templates/admin/domain_detail.html:37
+#: admin/templates/admin/domain_detail.html:73
msgid "Domain aliases"
msgstr "Синонимы доменов"
-#: templates/admin/_per_domain_statistics_widget.html:4
+#: admin/templates/admin/_per_domain_statistics_widget.html:4
msgid "Per-domain statistics"
msgstr ""
-#: templates/admin/account_detail.html:16 templates/admin/alias_detail.html:16
-#: templates/admin/domain_detail.html:19
-#: templates/admin/identities_table.html:7
+#: admin/templates/admin/account_detail.html:16
+#: admin/templates/admin/alias_detail.html:16
+#: admin/templates/admin/domain_detail.html:19
+#: admin/templates/admin/identities_table.html:7
#, fuzzy
msgid "(disabled)"
msgstr "Разрешен"
-#: templates/admin/account_detail.html:22 templates/admin/alias_detail.html:22
-#: templates/admin/domain_detail.html:25
+#: admin/templates/admin/account_detail.html:22
+#: admin/templates/admin/alias_detail.html:22
+#: admin/templates/admin/domain_detail.html:25
msgid "Summary"
msgstr ""
-#: templates/admin/account_detail.html:26
+#: admin/templates/admin/account_detail.html:26
#, fuzzy
#| msgid "File name"
msgid "Full name"
msgstr "Имя файла"
-#: templates/admin/account_detail.html:32 templates/admin/alias_detail.html:26
+#: admin/templates/admin/account_detail.html:32
+#: admin/templates/admin/alias_detail.html:26
#, fuzzy
#| msgid "Create"
msgid "Created"
msgstr "Создать"
-#: templates/admin/account_detail.html:35
+#: admin/templates/admin/account_detail.html:35
msgid "Last login"
msgstr ""
-#: templates/admin/account_detail.html:38
+#: admin/templates/admin/account_detail.html:38
msgid "Secondary email"
msgstr ""
-#: templates/admin/account_detail.html:38
-#: templates/admin/account_detail.html:41
+#: admin/templates/admin/account_detail.html:38
+#: admin/templates/admin/account_detail.html:41
#, fuzzy
#| msgid "No recipient defined"
msgid "Not defined"
msgstr "Получатель не определен"
-#: templates/admin/account_detail.html:41
+#: admin/templates/admin/account_detail.html:41
msgid "Phone number"
msgstr ""
-#: templates/admin/account_detail.html:55
+#: admin/templates/admin/account_detail.html:55
#, fuzzy
msgid "Administered domains"
msgstr "Список квот"
-#: templates/admin/account_detail.html:61
+#: admin/templates/admin/account_detail.html:61
#, fuzzy
#| msgid "No recipient defined"
msgid "No domain defined."
msgstr "Получатель не определен"
-#: templates/admin/account_detail.html:75
+#: admin/templates/admin/account_detail.html:75
#, fuzzy
#| msgid "Alias(es)"
msgid "Aliases"
msgstr "Синоним(ы)"
-#: templates/admin/account_detail.html:81
+#: admin/templates/admin/account_detail.html:81
#, fuzzy
#| msgid "No recipient defined"
msgid "No alias defined"
msgstr "Получатель не определен"
-#: templates/admin/account_detail.html:87
+#: admin/templates/admin/account_detail.html:87
msgid "Additional sender addresses"
msgstr ""
-#: templates/admin/account_detail.html:93
+#: admin/templates/admin/account_detail.html:93
msgid "No sender address defined"
msgstr ""
-#: templates/admin/account_general_form.html:12
-#: templates/admin/aliasform.html:13
+#: admin/templates/admin/account_general_form.html:12
+#: admin/templates/admin/aliasform.html:13
#, fuzzy
msgid "Domain is disabled"
msgstr "Домен удален"
-#: templates/admin/alias_detail.html:16 templates/admin/identities.html:33
+#: admin/templates/admin/alias_detail.html:16
+#: admin/templates/admin/identities.html:33
#, fuzzy
#| msgid "alias"
msgid "Alias"
msgstr "Синоним"
-#: templates/admin/alias_detail.html:27
+#: admin/templates/admin/alias_detail.html:27
#, fuzzy
#| msgid "Alias modified"
msgid "Modified"
msgstr "Синоним изменен"
-#: templates/admin/dnsbl_domain_detail.html:10
+#: admin/templates/admin/dnsbl_domain_detail.html:10
msgid "Provider"
msgstr ""
-#: templates/admin/dnsbl_domain_detail.html:11
-#: templates/admin/identities_quota_headers.html:2
-#: templates/admin/mx_domain_detail.html:10
+#: admin/templates/admin/dnsbl_domain_detail.html:11
+#: admin/templates/admin/identities_quota_headers.html:2
+#: admin/templates/admin/mx_domain_detail.html:10
msgid "Address"
msgstr "Адрес"
-#: templates/admin/dnsbl_domain_detail.html:12
+#: admin/templates/admin/dnsbl_domain_detail.html:12
+#: admin/templates/admin/domain_detail.html:96
#, fuzzy
#| msgid "Statistics"
msgid "Status"
msgstr "Статистика"
-#: templates/admin/dnsbl_domain_detail.html:21
+#: admin/templates/admin/dnsbl_domain_detail.html:21
msgid "listed"
msgstr ""
-#: templates/admin/dnsbl_domain_detail.html:29
+#: admin/templates/admin/dnsbl_domain_detail.html:29
msgid "Everything is fine, this domain is not listed."
msgstr ""
-#: templates/admin/dnsbl_domain_detail.html:32
+#: admin/templates/admin/dnsbl_domain_detail.html:32
msgid "No information available for this domain."
msgstr ""
-#: templates/admin/domain_detail.html:30 templates/admin/domain_headers.html:7
-#, fuzzy
-#| msgid "Statistics"
-msgid "DNS status"
-msgstr "Статистика"
-
-#: templates/admin/domain_detail.html:37
+#: admin/templates/admin/domain_detail.html:29
msgid "Creation date"
msgstr "Дата создания"
-#: templates/admin/domain_detail.html:41
+#: admin/templates/admin/domain_detail.html:33
msgid "Last modification date"
msgstr "Дата последней модификации"
-#: templates/admin/domain_detail.html:53
+#: admin/templates/admin/domain_detail.html:45
msgid "Mailbox aliases"
msgstr "Синонимы почтового ящика"
-#: templates/admin/domain_detail.html:58 templates/admin/domain_detail.html:65
-#: templates/admin/domain_detail.html:66 templates/admin/domain_detail.html:73
-#: templates/admin/domain_general_form.html:4
-#: templates/admin/domain_general_form.html:5
-#: templates/admin/domains_quotas.html:11
-#: templates/admin/domains_quotas.html:12 templates/admin/mailform.html:7
-#: templates/admin/newdomainform.html:3
+#: admin/templates/admin/domain_detail.html:50
+#: admin/templates/admin/domain_detail.html:57
+#: admin/templates/admin/domain_detail.html:58
+#: admin/templates/admin/domain_detail.html:65
+#: admin/templates/admin/domain_general_form.html:4
+#: admin/templates/admin/domain_general_form.html:5
+#: admin/templates/admin/domains_quotas.html:11
+#: admin/templates/admin/domains_quotas.html:12
+#: admin/templates/admin/mailform.html:7
+#: admin/templates/admin/newdomainform.html:3
msgid "MB"
msgstr "Мб"
-#: templates/admin/domain_detail.html:62
+#: admin/templates/admin/domain_detail.html:54
#, fuzzy
#| msgid "Usage (%%)"
msgid "Usage"
msgstr "использование (%%)"
-#: templates/admin/domain_detail.html:65 templates/admin/domains_quotas.html:11
+#: admin/templates/admin/domain_detail.html:57
+#: admin/templates/admin/domains_quotas.html:11
msgctxt "quota"
msgid "used"
msgstr ""
-#: templates/admin/domain_detail.html:66 templates/admin/domains_quotas.html:12
+#: admin/templates/admin/domain_detail.html:58
+#: admin/templates/admin/domains_quotas.html:12
msgid "allocated"
msgstr ""
-#: templates/admin/domain_detail.html:98
+#: admin/templates/admin/domain_detail.html:91
+msgid "DNS"
+msgstr ""
+
+#: admin/templates/admin/domain_detail.html:103
+msgid "DKIM key"
+msgstr ""
+
+#: admin/templates/admin/domain_detail.html:107
+msgid "Show key"
+msgstr ""
+
+#: admin/templates/admin/domain_detail.html:110
+#, fuzzy
+#| msgid "No recipient defined"
+msgid "Not generated"
+msgstr "Получатель не определен"
+
+#: admin/templates/admin/domain_detail.html:117
msgid "Administrators"
msgstr "Администраторы"
-#: templates/admin/domain_detail.html:110 templatetags/admin_tags.py:268
+#: admin/templates/admin/domain_detail.html:129
+#: admin/templatetags/admin_tags.py:268
msgid "Remove this permission"
msgstr "Удалить это разрешение"
-#: templates/admin/domain_detail.html:115
+#: admin/templates/admin/domain_detail.html:134
#, fuzzy
#| msgid "No domain administrator defined"
msgid "No domain administrator defined yet."
msgstr "Администратор домена не определен"
-#: templates/admin/domain_headers.html:5
-#: templates/admin/identity_headers.html:4
+#: admin/templates/admin/domain_headers.html:5
+#: admin/templates/admin/identity_headers.html:4
msgid "Tags"
msgstr "Теги"
-#: templates/admin/domain_headers.html:9
-#: templates/admin/identity_headers.html:5
+#: admin/templates/admin/domain_headers.html:7
+#, fuzzy
+#| msgid "Statistics"
+msgid "DNS status"
+msgstr "Статистика"
+
+#: admin/templates/admin/domain_headers.html:9
+#: admin/templates/admin/identity_headers.html:5
msgid "Actions"
msgstr "Действие"
-#: templates/admin/domain_options_form.html:10
+#: admin/templates/admin/domain_options_form.html:10
msgid "You can't create a new domain administrator"
msgstr ""
-#: templates/admin/domains.html:26 templates/admin/identities.html:29
+#: admin/templates/admin/domains.html:28
+#: admin/templates/admin/identities.html:29
#, fuzzy
#| msgid "Address"
msgid "Add"
msgstr "Адрес"
-#: templates/admin/domains_quota_headers.html:3
-#: templates/admin/identities_quota_headers.html:4
+#: admin/templates/admin/domains_quota_headers.html:3
+#: admin/templates/admin/identities_quota_headers.html:4
msgid "Limit"
msgstr "Лимит"
-#: templates/admin/domains_quota_headers.html:4
+#: admin/templates/admin/domains_quota_headers.html:4
msgid "Used"
msgstr ""
-#: templates/admin/domains_quota_headers.html:5
+#: admin/templates/admin/domains_quota_headers.html:5
#, fuzzy
#| msgid "Alias created"
msgid "Allocated"
msgstr "Синоним создан"
-#: templates/admin/domains_quota_headers.html:6
-#: templates/admin/identities_quota_headers.html:5
+#: admin/templates/admin/domains_quota_headers.html:6
+#: admin/templates/admin/identities_quota_headers.html:5
#, python-format
msgid "Usage (%%)"
msgstr "использование (%%)"
-#: templates/admin/domains_table.html:5
+#: admin/templates/admin/domains_table.html:5
#, fuzzy
msgid "disabled"
msgstr "Разрешен"
-#: templates/admin/forward.html:2
+#: admin/templates/admin/forward.html:2
msgid "Automatically forward emails to another address"
msgstr "Автоматически перенаправлять письма на другой адрес"
-#: templates/admin/forward.html:9 views/alias.py:93
+#: admin/templates/admin/forward.html:9 admin/views/alias.py:93
msgid "Update"
msgstr "Обновление"
-#: templates/admin/identities.html:32
+#: admin/templates/admin/identities.html:32
#, fuzzy
#| msgid "Add account"
msgid "Account"
msgstr "Добавить аккаунт"
-#: templates/admin/identities_quota_headers.html:3
+#: admin/templates/admin/identities_quota_headers.html:3
msgid "Value"
msgstr "Значение"
-#: templates/admin/identity_headers.html:3
+#: admin/templates/admin/identity_headers.html:3
msgid "Fullname/Recipient"
msgstr "Полное имя/получатель"
-#: templates/admin/import_domains_form.html:6
+#: admin/templates/admin/import_domains_form.html:6
msgid ""
"Provide a CSV file where lines respect one of the following formats:
"
"- domain; name; quota; default mailbox quota; enabled
"
@@ -1056,7 +1208,7 @@ msgid ""
"use a different character as separator."
msgstr ""
-#: templates/admin/import_identities_form.html:6
+#: admin/templates/admin/import_identities_form.html:6
msgid ""
"Provide a CSV file where lines respect one of the following formats: "
"- account; loginname; password; first name; last name; enabled; group; "
@@ -1066,130 +1218,130 @@ msgid ""
"use a different character as separator."
msgstr ""
-#: templates/admin/importform.html:6
+#: admin/templates/admin/importform.html:6
msgid "Help"
msgstr "Подсказка"
-#: templates/admin/importform.html:13
+#: admin/templates/admin/importform.html:13
msgid "Importing..."
msgstr "Импорт..."
-#: templates/admin/index.html:6
+#: admin/templates/admin/index.html:6
msgid "Admin"
msgstr ""
-#: templates/admin/mailboxes_raw.html:3
+#: admin/templates/admin/mailboxes_raw.html:3
msgid "Choose a value"
msgstr "Выбрать значение"
-#: templates/admin/mailform.html:7
+#: admin/templates/admin/mailform.html:7
msgid "Use domain default value"
msgstr "Используются значения домена по умолчанию "
-#: templates/admin/mx_domain_detail.html:11
+#: admin/templates/admin/mx_domain_detail.html:11
#, fuzzy
#| msgid "Update"
msgid "Updated"
msgstr "Обновление"
-#: templates/admin/mx_domain_detail.html:23
+#: admin/templates/admin/mx_domain_detail.html:23
msgid "This IP does not match any of the valid MXs defined in parameters"
msgstr ""
-#: templates/admin/mx_domain_detail.html:36
+#: admin/templates/admin/mx_domain_detail.html:36
msgid "No MX record found for this domain."
msgstr ""
-#: templates/admin/notifications/domain_in_dnsbl.html:3
+#: admin/templates/admin/notifications/domain_in_dnsbl.html:3
#, python-format
msgid ""
"Modoboa detected that domain %(domain)s is listed by the following DNSBL "
"providers:"
msgstr ""
-#: templates/admin/notifications/domain_in_dnsbl.html:11
+#: admin/templates/admin/notifications/domain_in_dnsbl.html:11
msgid ""
"The domain's reputation will be affected and there is a chance that emails "
"coming from it are considered as spam. You should contact those providers "
"and ask them to unlist detected IP address(es)."
msgstr ""
-#: templates/admin/notifications/domain_invalid_mx.html:3
+#: admin/templates/admin/notifications/domain_invalid_mx.html:3
#, python-format
msgid "Modoboa detected that domain %(domain)s has no valid MX record:"
msgstr ""
-#: templates/admin/searchform.html:6
+#: admin/templates/admin/searchform.html:6
msgid "Search"
msgstr "Поиск"
-#: templatetags/admin_tags.py:22
+#: admin/templatetags/admin_tags.py:22
msgid "enabled_m"
msgstr "enabled_m"
-#: templatetags/admin_tags.py:22
+#: admin/templatetags/admin_tags.py:22
msgid "enabled_f"
msgstr "enabled_f"
-#: templatetags/admin_tags.py:48
+#: admin/templatetags/admin_tags.py:48
#, fuzzy
msgid "List domains"
msgstr "Список квот"
-#: templatetags/admin_tags.py:53 templatetags/admin_tags.py:108
+#: admin/templatetags/admin_tags.py:53 admin/templatetags/admin_tags.py:108
msgid "List quotas"
msgstr "Список квот"
-#: templatetags/admin_tags.py:65 templatetags/admin_tags.py:113
-#: views/import_.py:101 views/import_.py:123
+#: admin/templatetags/admin_tags.py:65 admin/templatetags/admin_tags.py:113
+#: admin/views/import_.py:89 admin/views/import_.py:111
msgid "Import"
msgstr "Импорт"
-#: templatetags/admin_tags.py:71 templatetags/admin_tags.py:119
-#: views/export.py:44 views/export.py:74
+#: admin/templatetags/admin_tags.py:71 admin/templatetags/admin_tags.py:119
+#: admin/views/export.py:43 admin/views/export.py:71
msgid "Export"
msgstr "Экспорт"
-#: templatetags/admin_tags.py:103
+#: admin/templatetags/admin_tags.py:103
msgid "List identities"
msgstr "Список пользователей"
-#: templatetags/admin_tags.py:138
+#: admin/templatetags/admin_tags.py:138
msgid "View the domain's identities"
msgstr "Информация о домене"
-#: templatetags/admin_tags.py:144 templatetags/admin_tags.py:187
-#: templatetags/admin_tags.py:200
+#: admin/templatetags/admin_tags.py:144 admin/templatetags/admin_tags.py:187
+#: admin/templatetags/admin_tags.py:200
msgid "Edit {}"
msgstr ""
-#: templatetags/admin_tags.py:154 templatetags/admin_tags.py:191
-#: templatetags/admin_tags.py:205
+#: admin/templatetags/admin_tags.py:154 admin/templatetags/admin_tags.py:191
+#: admin/templatetags/admin_tags.py:205
#, python-format
msgid "Delete %s?"
msgstr "Удалить %s?"
-#: views/alias.py:35
+#: admin/views/alias.py:35
msgid "Alias with this name already exists"
msgstr "Синоним с таким именем уже есть"
-#: views/alias.py:60
+#: admin/views/alias.py:60
msgid "Create"
msgstr "Создать"
-#: views/alias.py:72
+#: admin/views/alias.py:72
msgid "New alias"
msgstr "Новый синоним"
-#: views/alias.py:73
+#: admin/views/alias.py:73
msgid "Alias created"
msgstr "Синоним создан"
-#: views/alias.py:85
+#: admin/views/alias.py:85
msgid "Alias modified"
msgstr "Синоним изменен"
-#: views/alias.py:109
+#: admin/views/alias.py:109
#, fuzzy
#| msgid "Alias created"
msgid "Alias deleted"
@@ -1198,63 +1350,64 @@ msgstr[0] "Синоним создан"
msgstr[1] "Синоним создан"
msgstr[2] "Синоним создан"
-#: views/dns.py:32
+#: admin/views/dns.py:32
msgid "MX records of {}"
msgstr ""
-#: views/dns.py:55
+#: admin/views/dns.py:55
msgid "DNSBL summary for {}"
msgstr ""
-#: views/domain.py:190
+#: admin/views/domain.py:188
msgid "You can't delete your own domain"
msgstr "Вы не можете удалить собственный домен"
-#: views/domain.py:193
+#: admin/views/domain.py:191
msgid "Domain deleted"
msgid_plural "Domains deleted"
msgstr[0] "Домен удален"
msgstr[1] "Домена удалено"
msgstr[2] "Доменов удалено"
-#: views/export.py:43
+#: admin/views/export.py:42
msgid "Export identities"
msgstr "Экспорт пользователя"
-#: views/export.py:73
+#: admin/views/export.py:70
msgid "Export domains"
msgstr "Экспорт доменов"
-#: views/identity.py:113 views/identity.py:206 views/identity.py:211
+#: admin/views/identity.py:113 admin/views/identity.py:206
+#: admin/views/identity.py:211
msgid "Invalid request"
msgstr "Ошибочный запрос"
-#: views/identity.py:196
+#: admin/views/identity.py:196
msgid "Account deleted"
msgid_plural "Accounts deleted"
msgstr[0] "Аккаунт удален"
msgstr[1] "Аккаунта удалено"
msgstr[2] "Аккаунтов удалено"
-#: views/import_.py:77
+#: admin/views/import_.py:65
#, python-format
msgid "Object already exists: %s"
msgstr "Объект уже существует: %s"
-#: views/import_.py:81
+#: admin/views/import_.py:69
#, python-format
msgid "%d objects imported successfully"
msgstr "%d объектов импортировано"
-#: views/import_.py:100
+#: admin/views/import_.py:88
msgid "Import domains"
msgstr "Импорт доменов"
-#: views/import_.py:122
+#: admin/views/import_.py:110
msgid "Import identities"
msgstr "Импорт информации о пользователях"
-#: views/user.py:40
+#: admin/views/user.py:40
msgid "Forward updated"
msgstr "Перенаправление обновлено"
diff --git a/modoboa/admin/locale/sv/LC_MESSAGES/django.po b/modoboa/admin/locale/sv/LC_MESSAGES/django.po
index c02be82d9..5c2bfe9a0 100644
--- a/modoboa/admin/locale/sv/LC_MESSAGES/django.po
+++ b/modoboa/admin/locale/sv/LC_MESSAGES/django.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-12-03 12:51+0100\n"
+"POT-Creation-Date: 2018-01-25 09:09+0100\n"
"PO-Revision-Date: 2017-07-07 11:06+0000\n"
"Last-Translator: Olle Gustafsson \n"
"Language-Team: Swedish (http://www.transifex.com/tonio/modoboa/language/"
@@ -20,25 +20,25 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: app_settings.py:20 handlers.py:269
-#: templates/admin/_global_statistics_widget.html:11
-#: templates/admin/domains.html:4
+#: admin/app_settings.py:22 admin/handlers.py:269
+#: admin/templates/admin/_global_statistics_widget.html:11
+#: admin/templates/admin/domains.html:5
msgid "Domains"
msgstr "Domäner"
-#: app_settings.py:23
+#: admin/app_settings.py:25
msgid "Enable MX checks"
msgstr "Aktivera MX kontroll"
-#: app_settings.py:26
+#: admin/app_settings.py:28
msgid "Check that every domain has a valid MX record"
msgstr "Kontrollera att varje domän har ett giltigt MX record"
-#: app_settings.py:31
+#: admin/app_settings.py:33
msgid "Valid MXs"
msgstr "Giltiga MX"
-#: app_settings.py:34
+#: admin/app_settings.py:36
msgid ""
"A list of IP or network address every MX record should match. A warning will "
"be sent if a record does not respect it."
@@ -46,33 +46,52 @@ msgstr ""
"En lista över IP eller nätverksadresser varje MX record skall matcha. En "
"varning kommer skickas om ett record inte matchar."
-#: app_settings.py:42
+#: admin/app_settings.py:44
msgid "New domains must use authorized MX(s)"
msgstr ""
-#: app_settings.py:45
+#: admin/app_settings.py:47
msgid ""
"Prevent the creation of a new domain if its MX record does not use one of "
"the defined addresses."
msgstr ""
-#: app_settings.py:51
+#: admin/app_settings.py:53
msgid "Enable DNSBL checks"
msgstr "Aktivera DNSBL kontroller"
-#: app_settings.py:54
+#: admin/app_settings.py:56
msgid "Check every domain against major DNSBL providers"
msgstr "Kontrollera varje domän mot större DNSBL leverantörer"
-#: app_settings.py:58 templates/admin/domain_detail.html:49
+#: admin/app_settings.py:61
+msgid "DKIM keys storage directory"
+msgstr ""
+
+#: admin/app_settings.py:64
+msgid ""
+"Absolute path of the directory where DKIM private keys will be stored. Make "
+"sure this directory belongs to root user and is not readable by the outside "
+"world."
+msgstr ""
+
+#: admin/app_settings.py:72
+msgid "Default DKIM key length"
+msgstr ""
+
+#: admin/app_settings.py:76
+msgid "Default length in bits for newly generated DKIM keys."
+msgstr ""
+
+#: admin/app_settings.py:80 admin/templates/admin/domain_detail.html:41
msgid "Mailboxes"
msgstr "Brevlådor"
-#: app_settings.py:61
+#: admin/app_settings.py:83
msgid "Handle mailboxes on filesystem"
msgstr "Hantera brevlådor på filsystem"
-#: app_settings.py:64
+#: admin/app_settings.py:86
msgid ""
"Rename or remove mailboxes on the filesystem when they get renamed or "
"removed within Modoboa"
@@ -80,19 +99,19 @@ msgstr ""
"Byt namn på eller ta bort brevlådor på filsystemet när de kommer byta namn "
"eller tas bort inom Modoboa"
-#: app_settings.py:70
+#: admin/app_settings.py:92
msgid "Mailboxes owner"
msgstr "Brevlådans ägare"
-#: app_settings.py:73
+#: admin/app_settings.py:95
msgid "The UNIX account who owns mailboxes on the filesystem"
msgstr "Den UNIX-konto som äger brevlådor på filsystemet"
-#: app_settings.py:78
+#: admin/app_settings.py:100
msgid "Default domain quota"
msgstr "Standard domän kvota"
-#: app_settings.py:81
+#: admin/app_settings.py:103
msgid ""
"Default quota (in MB) applied to freshly created domains with no value "
"specified. A value of 0 means no quota."
@@ -100,11 +119,12 @@ msgstr ""
"Standard kvota (i MB) applicerad på nyskapade domäner som inte har något "
"värde specificerat. Ett värde på 0 betyder ingen kvota."
-#: app_settings.py:87 models/domain.py:40 templates/admin/domain_detail.html:72
+#: admin/app_settings.py:109 admin/models/domain.py:40
+#: admin/templates/admin/domain_detail.html:64
msgid "Default mailbox quota"
msgstr "Standard brevlåde kvota"
-#: app_settings.py:90
+#: admin/app_settings.py:112
msgid ""
"Default mailbox quota (in MB) applied to freshly created domains with no "
"value specified. A value of 0 means no quota."
@@ -112,59 +132,70 @@ msgstr ""
"Standard brevlåde kvota (i MB) applicerad på nyligen skapade domäner där "
"inget värde angetts. 0 betyder ingen kvota."
-#: app_settings.py:96
+#: admin/app_settings.py:118
msgid "Automatic account removal"
msgstr "Automatisk konto borttagning"
-#: app_settings.py:99
+#: admin/app_settings.py:121
msgid "When a mailbox is removed, also remove the associated account"
msgstr "När en brevlåda raderas, radera också tillhörande konto"
-#: app_settings.py:103
+#: admin/app_settings.py:125
msgid "Automatic domain/mailbox creation"
msgstr "Automatisk skapande av domän/brevlåda"
-#: app_settings.py:106
+#: admin/app_settings.py:128
msgid "Create a domain and a mailbox when an account is automatically created."
msgstr "Skapa en domän och en brevlåda när ett konto skapas automatiskt."
-#: app_settings.py:112
+#: admin/app_settings.py:134
msgid "Create an alias when a mailbox is renamed"
msgstr ""
-#: app_settings.py:115
+#: admin/app_settings.py:137
msgid "Create an alias using the old address when a mailbox is renamed."
msgstr ""
-#: app_settings.py:164 app_settings.py:172 forms/account.py:331
+#: admin/app_settings.py:186 admin/app_settings.py:194
+#: admin/forms/account.py:331
msgid "Must be a positive integer"
msgstr "Måste vara ett positivt heltal"
-#: app_settings.py:186
+#: admin/app_settings.py:204
+#, fuzzy
+#| msgid "Domain not found."
+msgid "Directory not found."
+msgstr "Domän kunde ej hittas."
+
+#: admin/app_settings.py:210
+msgid "openssl not found, please make sure it is installed."
+msgstr ""
+
+#: admin/app_settings.py:224
msgid "Define at least one authorized network / address"
msgstr ""
-#: app_settings.py:196
+#: admin/app_settings.py:234
msgid "Administration"
msgstr "Administration"
-#: constants.py:99 forms/alias.py:49
-#: templates/admin/_per_domain_statistics_widget.html:7
-#: templates/admin/domains_quota_headers.html:2
+#: admin/constants.py:99 admin/forms/alias.py:49
+#: admin/templates/admin/_per_domain_statistics_widget.html:7
+#: admin/templates/admin/domains_quota_headers.html:2
msgid "Domain"
msgstr "Domän"
-#: constants.py:100
+#: admin/constants.py:100
#, fuzzy
#| msgid "New domain"
msgid "Relay domain"
msgstr "Ny domän"
-#: forms/account.py:38 templates/admin/domain_detail.html:101
+#: admin/forms/account.py:38 admin/templates/admin/domain_detail.html:120
msgid "Username"
msgstr "Användarnamn"
-#: forms/account.py:40
+#: admin/forms/account.py:40
msgid ""
"The user's name. Must be a valid e-mail address for simple users or "
"administrators with a mailbox."
@@ -172,77 +203,78 @@ msgstr ""
"Användarens namn. Måste vara en giltig e-postadress för vanliga användare "
"eller för administratörer med brevlåda."
-#: forms/account.py:45 templates/admin/account_detail.html:29
+#: admin/forms/account.py:45 admin/templates/admin/account_detail.html:29
msgid "Role"
msgstr "Roll"
-#: forms/account.py:46
+#: admin/forms/account.py:46
msgid "Choose"
msgstr "Välj"
-#: forms/account.py:47
+#: admin/forms/account.py:47
msgid "What level of permission this user will have"
msgstr "Vilken nivå av behörighet den här användaren har"
-#: forms/account.py:50 forms/domain.py:208
+#: admin/forms/account.py:50 admin/forms/domain.py:227
#, fuzzy
#| msgid "Random address"
msgid "Random password"
msgstr "Slumpmässig adress"
-#: forms/account.py:52
+#: admin/forms/account.py:52
msgid ""
"Generate a random password. If you're updating this account and check this "
"box, a new password will be generated."
msgstr ""
-#: forms/account.py:58
+#: admin/forms/account.py:58
msgid "Password"
msgstr "Lösenord"
-#: forms/account.py:63
+#: admin/forms/account.py:63
msgid "Confirmation"
msgstr "Bekräftelse"
-#: forms/account.py:66
+#: admin/forms/account.py:66
msgid "Enter the same password as above, for verification."
msgstr "Ange samma lösenord som ovan för verifiering."
-#: forms/account.py:78
+#: admin/forms/account.py:78
msgid "Enabled"
msgstr "Aktiverad"
-#: forms/account.py:172
+#: admin/forms/account.py:172
msgid "Only super administrators are allowed for this mode"
msgstr "Endast superadmininstratörer tillåts åtkomst till det här läget"
-#: forms/account.py:183 forms/account.py:185 forms/domain.py:254
-#: forms/domain.py:257 serializers.py:241
+#: admin/forms/account.py:183 admin/forms/account.py:185
+#: admin/forms/domain.py:144 admin/forms/domain.py:273
+#: admin/forms/domain.py:276 admin/serializers.py:241
msgid "This field is required."
msgstr "Detta fält krävs."
-#: forms/account.py:191
+#: admin/forms/account.py:191
msgid "The two password fields didn't match."
msgstr "Dessa två lösnordsfält matchar inte."
-#: forms/account.py:204
+#: admin/forms/account.py:204
msgid "You can't disable your own account"
msgstr "Du kan inte inaktivera ditt eget konto"
-#: forms/account.py:225
+#: admin/forms/account.py:225
msgid "E-mail"
msgstr "E-post"
-#: forms/account.py:227
+#: admin/forms/account.py:227
msgid "Create an alias using the old address"
msgstr ""
-#: forms/account.py:232 templates/admin/account_detail.html:45
-#: templates/admin/domain_detail.html:57
+#: admin/forms/account.py:232 admin/templates/admin/account_detail.html:45
+#: admin/templates/admin/domain_detail.html:49
msgid "Quota"
msgstr "Kvot"
-#: forms/account.py:234
+#: admin/forms/account.py:234
msgid ""
"Quota in MB for this mailbox. Define a custom value or use domain's default "
"one. Leave empty to define an unlimited value (not allowed for domain "
@@ -252,12 +284,12 @@ msgstr ""
"domänens förvalda. Lämna tomt för att definiera ett obegränsat värde (ej "
"tillåtet för domänadministratörer)."
-#: forms/account.py:242 forms/domain.py:39
-#: templates/admin/domain_headers.html:4
+#: admin/forms/account.py:242 admin/forms/domain.py:39
+#: admin/templates/admin/domain_headers.html:4
msgid "Alias(es)"
msgstr "Alias"
-#: forms/account.py:245
+#: admin/forms/account.py:245
msgid ""
"Alias(es) of this mailbox. Indicate only one address per input, press ENTER "
"to add a new input. To create a catchall alias, just enter the domain name "
@@ -267,11 +299,11 @@ msgstr ""
"för att lägga till nytt. För att skapa ett \"catch-all\" alias, ange bara "
"domännamnet (@domain.tld)."
-#: forms/account.py:251
+#: admin/forms/account.py:251
msgid "Sender addresses"
msgstr "Avsändaradress"
-#: forms/account.py:254
+#: admin/forms/account.py:254
msgid ""
"Additional sender address(es) for this account. The user will be allowed to "
"send emails using this address, even if it does not exist locally. Indicate "
@@ -281,75 +313,77 @@ msgstr ""
"med från denna adress, även om den inte finns lokalt. Ange en adress per "
"rad. Tryck RETUR för att lägga till ny rad."
-#: forms/account.py:309 forms/alias.py:94 models/mailbox.py:315
+#: admin/forms/account.py:309 admin/forms/alias.py:94
+#: admin/models/mailbox.py:315
msgid "Domain does not exist"
msgstr "Domän existerar inte"
-#: forms/account.py:341
+#: admin/forms/account.py:341
msgid "Local domain does not exist"
msgstr "Lokal domän existerar inte"
-#: forms/account.py:345 forms/account.py:353 forms/alias.py:97
+#: admin/forms/account.py:345 admin/forms/account.py:353
+#: admin/forms/alias.py:97
msgid "You don't have access to this domain"
msgstr "Du har inte åtkomst till denna domän"
-#: forms/account.py:452
+#: admin/forms/account.py:452
msgid "Domain(s)"
msgstr "Domän(er)"
-#: forms/account.py:454
+#: admin/forms/account.py:454
msgid "Domain(s) that user administrates"
msgstr "Domän(er) användaren administrerar"
-#: forms/account.py:500 forms/account.py:590 forms/domain.py:325
-#: forms/domain.py:395
+#: admin/forms/account.py:500 admin/forms/account.py:590
+#: admin/forms/domain.py:344 admin/forms/domain.py:414
msgid "General"
msgstr "Generellt"
-#: forms/account.py:504
+#: admin/forms/account.py:504
msgid "Profile"
msgstr "Profil"
-#: forms/account.py:508 forms/account.py:596
+#: admin/forms/account.py:508 admin/forms/account.py:596
msgid "Mail"
msgstr "Post"
-#: forms/account.py:511
+#: admin/forms/account.py:511
msgid "Permissions"
msgstr "Rättigheter"
-#: forms/account.py:579
+#: admin/forms/account.py:579
msgid "Account updated"
msgstr "Konto uppdaterat"
-#: forms/account.py:604
+#: admin/forms/account.py:604
msgid "New account"
msgstr "Nytt konto"
-#: forms/account.py:616
+#: admin/forms/account.py:614
msgid "Account created"
msgstr "Konto skapat"
-#: forms/alias.py:26
+#: admin/forms/alias.py:26
msgid "Random address"
msgstr "Slumpmässig adress"
-#: forms/alias.py:29
+#: admin/forms/alias.py:29
msgid "Email address"
msgstr "E-post adress"
-#: forms/alias.py:31
+#: admin/forms/alias.py:31
msgid ""
"The alias address. To create a catchall alias, just enter the domain name "
"(@domain.tld)."
msgstr ""
"Alias adress. För en \"catch-all\"-alias, ange bara domännamnet (@domän.tld)."
-#: forms/alias.py:37 templates/admin/alias_detail.html:37
+#: admin/forms/alias.py:37 admin/templates/admin/alias_detail.html:37
msgid "Recipients"
msgstr "Mottagare"
-#: forms/alias.py:39
+#: admin/forms/alias.py:39
msgid ""
"Addresses this alias will point to. Indicate only one address per input, "
"press ENTER to add a new input."
@@ -357,19 +391,20 @@ msgstr ""
"Adresser detta alias kommer peka på. Ange bara en adress per fält, tryck "
"RETUR för att lägga till ytterligare."
-#: forms/alias.py:114 forms/alias.py:116
+#: admin/forms/alias.py:114 admin/forms/alias.py:116
msgid "This field is required"
msgstr "Detta fält krävs"
-#: forms/alias.py:120
+#: admin/forms/alias.py:120
msgid "No recipient defined"
msgstr "Ingen mottagare definierad"
-#: forms/domain.py:36 templates/admin/_global_statistics_widget.html:7
+#: admin/forms/domain.py:36
+#: admin/templates/admin/_global_statistics_widget.html:7
msgid "Type"
msgstr "Typ"
-#: forms/domain.py:42
+#: admin/forms/domain.py:42
msgid ""
"Alias(es) of this domain. Indicate only one name per input, press ENTER to "
"add a new input."
@@ -377,49 +412,57 @@ msgstr ""
"Alias för denna domän. Ange endast ett namn per rad, tryck ENTER för att "
"lägga till en rad."
-#: forms/domain.py:81 handlers.py:171
+#: admin/forms/domain.py:47
+msgid "Key selector"
+msgstr ""
+
+#: admin/forms/domain.py:85 admin/handlers.py:171
msgid "domain alias"
msgstr "domän alias"
-#: forms/domain.py:84 forms/domain.py:136 forms/domain.py:144
+#: admin/forms/domain.py:88 admin/forms/domain.py:155 admin/forms/domain.py:163
#, python-format
msgid "A %s with this name already exists"
msgstr "En %s med detta namn finns redan"
-#: forms/domain.py:92 serializers.py:45
+#: admin/forms/domain.py:96 admin/serializers.py:45
#, fuzzy
#| msgid "No MX record found for this domain."
msgid "No authorized MX record found for this domain"
msgstr "Inget MX record funnet för denna domän."
-#: forms/domain.py:114 serializers.py:55
+#: admin/forms/domain.py:108
+msgid "DKIM keys storage directory not configured"
+msgstr ""
+
+#: admin/forms/domain.py:129 admin/serializers.py:55
msgid "Cannot be greater than domain quota"
msgstr "Får inte vara större än domän kvot"
-#: forms/domain.py:119
+#: admin/forms/domain.py:134
msgid "You can't define an unlimited quota."
msgstr "Du kan inte ange en obegränsad kvota."
-#: forms/domain.py:136 forms/domain.py:141
+#: admin/forms/domain.py:155 admin/forms/domain.py:160
msgid "domain"
msgstr "domän"
-#: forms/domain.py:190
+#: admin/forms/domain.py:209
msgid "Create a domain administrator"
msgstr "Skapa en domän administratör"
-#: forms/domain.py:193
+#: admin/forms/domain.py:212
msgid "Automatically create an administrator for this domain"
msgstr "Skapa en domän administratör automatiskt för denna domän"
-#: forms/domain.py:198 templates/admin/domain_detail.html:101
-#: templates/admin/domain_headers.html:3
-#: templates/admin/identity_headers.html:2
-#: templates/admin/mx_domain_detail.html:9
+#: admin/forms/domain.py:217 admin/templates/admin/domain_detail.html:120
+#: admin/templates/admin/domain_headers.html:3
+#: admin/templates/admin/identity_headers.html:2
+#: admin/templates/admin/mx_domain_detail.html:9
msgid "Name"
msgstr "Namn"
-#: forms/domain.py:201
+#: admin/forms/domain.py:220
msgid ""
"The administrator's name. Don't include the domain's name here, it will be "
"automatically appended."
@@ -427,551 +470,662 @@ msgstr ""
"Administratörens namn. Inkludera inte domänens namn här, den kommer att "
"läggas till automatiskt."
-#: forms/domain.py:211
+#: admin/forms/domain.py:230
#, fuzzy
#| msgid "Create a mailbox for the administrator."
msgid "Generate a random password for the administrator."
msgstr "Skapa en brevlåda för administratören."
-#: forms/domain.py:217
+#: admin/forms/domain.py:236
msgid "With a mailbox"
msgstr "Med en brevlåda"
-#: forms/domain.py:220
+#: admin/forms/domain.py:239
msgid "Create a mailbox for the administrator."
msgstr "Skapa en brevlåda för administratören."
-#: forms/domain.py:226
+#: admin/forms/domain.py:245
msgid "Create aliases"
msgstr "Skapa alias."
-#: forms/domain.py:229
+#: admin/forms/domain.py:248
msgid "Automatically create standard aliases for this domain"
msgstr "Skapa automatiskt standard alias för den här domänen"
-#: forms/domain.py:245
+#: admin/forms/domain.py:264
msgid "Invalid format"
msgstr "Ogiltigt format"
-#: forms/domain.py:274
+#: admin/forms/domain.py:293
#, python-format
msgid "User '%s' already exists"
msgstr "Användare '%s' finns redan"
-#: forms/domain.py:385
+#: admin/forms/domain.py:404
msgid "Domain modified"
msgstr "Domän ändrad"
-#: forms/domain.py:406
+#: admin/forms/domain.py:425
msgid "Options"
msgstr "Inställningar"
-#: forms/domain.py:414
+#: admin/forms/domain.py:433
msgid "New domain"
msgstr "Ny domän"
-#: forms/domain.py:427
+#: admin/forms/domain.py:446
msgid "Domain created"
msgstr "Domän skapad"
-#: forms/export.py:9
+#: admin/forms/export.py:9
msgid "File name"
msgstr "Filnamn"
-#: forms/export.py:15 forms/import_.py:15
+#: admin/forms/export.py:15 admin/forms/import_.py:15
msgid "Separator"
msgstr "Separator"
-#: forms/forward.py:14
+#: admin/forms/forward.py:14
msgid "Recipient(s)"
msgstr "Mottagare"
-#: forms/forward.py:18
+#: admin/forms/forward.py:18
msgid "Indicate one or more recipients separated by a ','"
msgstr "Ange en eller flera mottagare separerade med ett ','"
-#: forms/forward.py:21
+#: admin/forms/forward.py:21
msgid "Keep local copies"
msgstr "Behåll lokal kopia"
-#: forms/forward.py:24
+#: admin/forms/forward.py:24
msgid "Forward messages and store copies into your local mailbox"
msgstr "Vidarebefordra meddelande och spara kopia i din lokala brevlåda"
-#: forms/import_.py:13
+#: admin/forms/import_.py:13
msgid "Select a file"
msgstr "Välj en fil"
-#: forms/import_.py:21
+#: admin/forms/import_.py:21
msgid "Continue on error"
msgstr "Fortsätt vid fel"
-#: forms/import_.py:22
+#: admin/forms/import_.py:22
msgid "Don't treat duplicated objects as error"
msgstr "Behandla inte dubletter som fel"
-#: forms/import_.py:40
+#: admin/forms/import_.py:40
msgid "Crypt passwords"
msgstr "Krypterade lösenord"
-#: forms/import_.py:42
+#: admin/forms/import_.py:42
msgid "Check this option if passwords contained in your file are not crypted"
msgstr "Markera det här alternativet om lösenord i filen inte är krypterad"
-#: handlers.py:218
+#: admin/handlers.py:218
#, python-format
msgid "Account import failed (%s): domain does not exist"
msgstr "Konto import misslyckades (%s): domänen existerar inte"
-#: handlers.py:231 models/mailbox.py:342
+#: admin/handlers.py:231 admin/models/mailbox.py:342
msgid "Mailbox {} already exists"
msgstr "Brevlåda {} finns redan"
-#: handlers.py:239
+#: admin/handlers.py:239
#, python-format
msgid "Account import failed (%s): wrong quota value"
msgstr "Importering av konto misslyckades (%s): Fel kvota värde"
-#: handlers.py:279 templates/admin/_global_statistics_widget.html:17
-#: templates/admin/_per_domain_statistics_widget.html:8
-#: templates/admin/identities.html:5
+#: admin/handlers.py:279
+#: admin/templates/admin/_global_statistics_widget.html:17
+#: admin/templates/admin/_per_domain_statistics_widget.html:8
+#: admin/templates/admin/identities.html:5
msgid "Identities"
msgstr "Konton"
-#: handlers.py:295 templates/admin/forward.html:2
+#: admin/handlers.py:295 admin/templates/admin/forward.html:2
msgid "Forward"
msgstr "Vidarebefordra"
-#: lib.py:41
+#: admin/lib.py:44
msgid "A mailbox is required"
msgstr "En brevlåda krävs"
-#: lib.py:131
+#: admin/lib.py:134
msgid "You are not allowed to import domains"
msgstr "Du tillåts inte att importera domäner"
-#: lib.py:142
+#: admin/lib.py:145
msgid "You are not allowed to import domain aliases."
msgstr "Du tillåts inte att importera domän alias."
-#: management/commands/subcommands/_mx.py:125
+#: admin/lib.py:183 admin/tests/test_mx.py:122
+#, fuzzy, python-format
+#| msgid "No MX record found for this domain."
+msgid "No DNS records found for %s"
+msgstr "Inget MX record funnet för denna domän."
+
+#: admin/lib.py:185 admin/tests/test_mx.py:125
+#, fuzzy, python-format
+#| msgid "MX records of {}"
+msgid "No MX record for %s"
+msgstr "MX record för {}"
+
+#: admin/lib.py:187 admin/tests/test_mx.py:126
+msgid "No working name servers found"
+msgstr ""
+
+#: admin/lib.py:190 admin/tests/test_mx.py:128
+#, python-format
+msgid "DNS resolution timeout, unable to query %s at the moment"
+msgstr ""
+
+#: admin/lib.py:201 admin/tests/test_mx.py:131
+#, python-format
+msgid "Unable to lookup ip addresses for %(domain)s; %(error)s"
+msgstr ""
+
+#: admin/lib.py:212 admin/tests/test_mx.py:134
+#, python-format
+msgid "Invalid IP address format for %(domain)s; %(addr)s"
+msgstr ""
+
+#: admin/management/commands/subcommands/_mx.py:136
msgid "[modoboa] DNSBL issue(s) for domain {}"
msgstr "[modoboa] DNSBL fråga(or) för domän {}"
-#: management/commands/subcommands/_mx.py:145
+#: admin/management/commands/subcommands/_mx.py:156
msgid "Domain {} has no MX record"
msgstr "Domän {} saknar MX record"
-#: management/commands/subcommands/_mx.py:156
+#: admin/management/commands/subcommands/_mx.py:167
#, python-brace-format
msgid "MX record for domain {0} is invalid: {1}"
msgstr "MX record för domän {0} är ogiltig: {1}"
-#: management/commands/subcommands/_mx.py:173
+#: admin/management/commands/subcommands/_mx.py:184
msgid "[modoboa] MX issue(s) for domain {}"
msgstr "[modoboa] MX problem för domän {}"
-#: models/alias.py:35 models/mailbox.py:97
+#: admin/models/alias.py:35 admin/models/mailbox.py:97
msgid "address"
msgstr "adress"
-#: models/alias.py:37
+#: admin/models/alias.py:37
msgid "The alias address."
msgstr "Alias adressen."
-#: models/alias.py:42 models/domain.py:48 models/domain_alias.py:46
+#: admin/models/alias.py:42 admin/models/domain.py:48
+#: admin/models/domain_alias.py:47
msgid "enabled"
msgstr "aktiverad"
-#: models/alias.py:43 models/domain_alias.py:47
+#: admin/models/alias.py:43 admin/models/domain_alias.py:48
msgid "Check to activate this alias"
msgstr "Markera för aktivera detta alias"
-#: models/alias.py:48 templates/admin/alias_detail.html:32
+#: admin/models/alias.py:48 admin/templates/admin/alias_detail.html:32
msgid "Description"
msgstr "Beskrivning"
-#: models/alias.py:50 templates/admin/alias_detail.html:29
+#: admin/models/alias.py:50 admin/templates/admin/alias_detail.html:29
msgid "Expire at"
msgstr "Går ut"
-#: models/alias.py:93
+#: admin/models/alias.py:93
msgid "alias"
msgstr "alias"
-#: models/alias.py:125
+#: admin/models/alias.py:125
msgid "Invalid address"
msgstr "Ogiltigt adress"
-#: models/alias.py:146
+#: admin/models/alias.py:146
msgid "Local recipient {}@{} not found"
msgstr "Lokal mottagare {}@{} kunde inte hittas."
-#: models/alias.py:176
+#: admin/models/alias.py:176
#, python-format
msgid "Invalid line: %s"
msgstr "Ogiltig rad: %s"
-#: models/alias.py:182
+#: admin/models/alias.py:182
#, python-format
msgid "Domain '%s' does not exist"
msgstr "Domänen '%s' existerar inte"
-#: models/domain.py:30 models/domain_alias.py:39
+#: admin/models/domain.py:30 admin/models/domain_alias.py:39
msgid "name"
msgstr "namn"
-#: models/domain.py:31
+#: admin/models/domain.py:31
msgid "The domain name"
msgstr "Domännamnet"
-#: models/domain.py:35
+#: admin/models/domain.py:35
msgid "Quota in MB shared between mailboxes. A value of 0 means no quota."
msgstr "Kvota i MB delade mellan brevlådor. 0 betyder ingen kvota."
-#: models/domain.py:43
+#: admin/models/domain.py:43
msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota."
msgstr "Standardkvota i MB applicerad på nya brevlådor. 0 betyder ingen kvota."
-#: models/domain.py:49
+#: admin/models/domain.py:49
msgid "Check to activate this domain"
msgstr "Markera för att aktivera denna domän"
-#: models/domain.py:54
+#: admin/models/domain.py:54
msgid "Enable DNS checks"
msgstr "Aktivera DNS kontroller"
-#: models/domain.py:55
+#: admin/models/domain.py:55
msgid "Check to enable DNS checks for this domain"
msgstr "Markera för att aktivera DNS kontroller för den här domänen"
-#: models/domain.py:253 models/domain_alias.py:73
+#: admin/models/domain.py:62
+msgid "Enable DKIM signing"
+msgstr ""
+
+#: admin/models/domain.py:64
+msgid ""
+"If you activate this feature, a DKIM key will be generated for this domain."
+msgstr ""
+
+#: admin/models/domain.py:70
+msgid "Key length"
+msgstr ""
+
+#: admin/models/domain.py:285 admin/models/domain_alias.py:74
msgid "Invalid line"
msgstr "Ogiltig rad"
-#: models/domain.py:263
+#: admin/models/domain.py:295
#, fuzzy
#| msgid "No MX record found for this domain."
msgid "No authorized MX record found for domain {}"
msgstr "Inget MX record funnet för denna domän."
-#: models/domain.py:270
+#: admin/models/domain.py:302
msgid "Invalid quota value for domain '{}'"
msgstr "Ogiltig kvota värd för domän '{}'"
-#: models/domain.py:277
+#: admin/models/domain.py:309
msgid "Invalid default mailbox quota value for domain '{}'"
msgstr "Ogiltig standard brevlådekvota för domän '{}'"
-#: models/domain.py:282
+#: admin/models/domain.py:314
msgid "Default mailbox quota cannot be greater than domain quota"
msgstr "Standard brevlådekvota kan inte vara större än domänkvotan"
-#: models/domain_alias.py:40
+#: admin/models/domain_alias.py:40
msgid "The alias name"
msgstr "Alias namn"
-#: models/domain_alias.py:42
+#: admin/models/domain_alias.py:42
msgid "target"
msgstr "mål"
-#: models/domain_alias.py:43
+#: admin/models/domain_alias.py:43
msgid "The domain this alias points to"
msgstr "Domän dit detta alias pekar mot"
-#: models/domain_alias.py:82
+#: admin/models/domain_alias.py:83
#, python-format
msgid "Unknown domain %s"
msgstr "Okänt kommando %s"
-#: models/mailbox.py:99
+#: admin/models/mailbox.py:99
msgid "Mailbox address (without the @domain.tld part)"
msgstr "Brevlåde adress (utan @domain.tld)"
-#: models/mailbox.py:165
+#: admin/models/mailbox.py:165
#, python-format
msgid "Failed to retrieve mailbox location (%s)"
msgstr "Kunde inte hitta brevlådans sökväg (%s)"
-#: models/mailbox.py:258
+#: admin/models/mailbox.py:258
msgid "A quota is required"
msgstr "En kvota krävs"
-#: models/mailbox.py:264
+#: admin/models/mailbox.py:264
msgid "Domain quota exceeded"
msgstr "Domänkvota överskriden"
-#: serializers.py:80 serializers.py:266 serializers.py:360
+#: admin/serializers.py:80 admin/serializers.py:266 admin/serializers.py:360
msgid "Permission denied."
msgstr "Åtskomst nekad."
-#: serializers.py:118
+#: admin/serializers.py:118
msgid ""
"List of administered domains (resellers and domain administrators only)."
msgstr ""
"Lista över administrerade domäner (endast återförsäljare och "
"domänadministratörer)."
-#: serializers.py:218
+#: admin/serializers.py:218
msgid "Not allowed for this role."
msgstr "Inte tillåtet för denna roll."
-#: serializers.py:228
+#: admin/serializers.py:228
msgid "Must be equal to mailbox full_address"
msgstr "Måste vara lika med brevlådans full_address"
-#: serializers.py:253
+#: admin/serializers.py:253
msgid "Local domain {} does not exist"
msgstr "Lokal domän {} finns inte"
-#: serializers.py:347
+#: admin/serializers.py:347
msgid "A list of recipient"
msgstr "En lista på mottagare"
-#: serializers.py:358
+#: admin/serializers.py:358
msgid "Domain not found."
msgstr "Domän kunde ej hittas."
-#: templates/admin/_domain_dnschecks_status.html:4
+#: admin/serializers.py:407
+#, fuzzy
+#| msgid "You don't have access to this domain"
+msgid "You don't have access to this domain."
+msgstr "Du har inte åtkomst till denna domän"
+
+#: admin/serializers.py:415
+#, fuzzy
+#| msgid "You don't have access to this domain"
+msgid "You don't have access to this mailbox."
+msgstr "Du har inte åtkomst till denna domän"
+
+#: admin/templates/admin/_domain_dkim_key.html:6
+#: admin/templates/admin/_domain_dkim_key.html:20
+msgid "Close"
+msgstr ""
+
+#: admin/templates/admin/_domain_dkim_key.html:7
+#, python-format
+msgid "DKIM public key for %(domain)s"
+msgstr ""
+
+#: admin/templates/admin/_domain_dkim_key.html:11
+#, fuzzy
+#| msgid "Invalid format"
+msgid "Raw format"
+msgstr "Ogiltigt format"
+
+#: admin/templates/admin/_domain_dkim_key.html:15
+#, fuzzy
+#| msgid "Invalid format"
+msgid "Bind/named format"
+msgstr "Ogiltigt format"
+
+#: admin/templates/admin/_domain_dnschecks_status.html:4
msgctxt "checks"
msgid "Disabled"
msgstr "Inaktiverad"
-#: templates/admin/_domain_dnschecks_status.html:6
+#: admin/templates/admin/_domain_dnschecks_status.html:6
msgid "Awaiting checks"
msgstr "Väntar kontroll"
-#: templates/admin/_global_statistics_widget.html:4
+#: admin/templates/admin/_global_statistics_widget.html:4
msgid "Global statistics"
msgstr "Global statistik"
-#: templates/admin/_global_statistics_widget.html:8
+#: admin/templates/admin/_global_statistics_widget.html:8
msgid "Quantity"
msgstr "Mängd"
-#: templates/admin/_global_statistics_widget.html:14
-#: templates/admin/domain_detail.html:45 templates/admin/domain_detail.html:81
+#: admin/templates/admin/_global_statistics_widget.html:14
+#: admin/templates/admin/domain_detail.html:37
+#: admin/templates/admin/domain_detail.html:73
msgid "Domain aliases"
msgstr "Domän alias"
-#: templates/admin/_per_domain_statistics_widget.html:4
+#: admin/templates/admin/_per_domain_statistics_widget.html:4
msgid "Per-domain statistics"
msgstr "Per domän statistik"
-#: templates/admin/account_detail.html:16 templates/admin/alias_detail.html:16
-#: templates/admin/domain_detail.html:19
-#: templates/admin/identities_table.html:7
+#: admin/templates/admin/account_detail.html:16
+#: admin/templates/admin/alias_detail.html:16
+#: admin/templates/admin/domain_detail.html:19
+#: admin/templates/admin/identities_table.html:7
msgid "(disabled)"
msgstr "(inaktiverad)"
-#: templates/admin/account_detail.html:22 templates/admin/alias_detail.html:22
-#: templates/admin/domain_detail.html:25
+#: admin/templates/admin/account_detail.html:22
+#: admin/templates/admin/alias_detail.html:22
+#: admin/templates/admin/domain_detail.html:25
msgid "Summary"
msgstr "Sammanställning"
-#: templates/admin/account_detail.html:26
+#: admin/templates/admin/account_detail.html:26
msgid "Full name"
msgstr "Fullständigt nam"
-#: templates/admin/account_detail.html:32 templates/admin/alias_detail.html:26
+#: admin/templates/admin/account_detail.html:32
+#: admin/templates/admin/alias_detail.html:26
msgid "Created"
msgstr "Skapad"
-#: templates/admin/account_detail.html:35
+#: admin/templates/admin/account_detail.html:35
msgid "Last login"
msgstr "Senast inloggad"
-#: templates/admin/account_detail.html:38
+#: admin/templates/admin/account_detail.html:38
msgid "Secondary email"
msgstr "Sekundär e-post"
-#: templates/admin/account_detail.html:38
-#: templates/admin/account_detail.html:41
+#: admin/templates/admin/account_detail.html:38
+#: admin/templates/admin/account_detail.html:41
msgid "Not defined"
msgstr "Ej definierad"
-#: templates/admin/account_detail.html:41
+#: admin/templates/admin/account_detail.html:41
msgid "Phone number"
msgstr "Telefonnummer"
-#: templates/admin/account_detail.html:55
+#: admin/templates/admin/account_detail.html:55
msgid "Administered domains"
msgstr "Administrerade domäner"
-#: templates/admin/account_detail.html:61
+#: admin/templates/admin/account_detail.html:61
msgid "No domain defined."
msgstr "Ingen domän angedd."
-#: templates/admin/account_detail.html:75
+#: admin/templates/admin/account_detail.html:75
msgid "Aliases"
msgstr "Alias"
-#: templates/admin/account_detail.html:81
+#: admin/templates/admin/account_detail.html:81
msgid "No alias defined"
msgstr "Inga alias angedda"
-#: templates/admin/account_detail.html:87
+#: admin/templates/admin/account_detail.html:87
msgid "Additional sender addresses"
msgstr "Övriga avsändaradresser"
-#: templates/admin/account_detail.html:93
+#: admin/templates/admin/account_detail.html:93
msgid "No sender address defined"
msgstr "Inga avsändaradresser angedda"
-#: templates/admin/account_general_form.html:12
-#: templates/admin/aliasform.html:13
+#: admin/templates/admin/account_general_form.html:12
+#: admin/templates/admin/aliasform.html:13
msgid "Domain is disabled"
msgstr "Domänen är inaktiverad"
-#: templates/admin/alias_detail.html:16 templates/admin/identities.html:33
+#: admin/templates/admin/alias_detail.html:16
+#: admin/templates/admin/identities.html:33
msgid "Alias"
msgstr "Alias"
-#: templates/admin/alias_detail.html:27
+#: admin/templates/admin/alias_detail.html:27
msgid "Modified"
msgstr "Ändrad"
-#: templates/admin/dnsbl_domain_detail.html:10
+#: admin/templates/admin/dnsbl_domain_detail.html:10
msgid "Provider"
msgstr "Leverantör"
-#: templates/admin/dnsbl_domain_detail.html:11
-#: templates/admin/identities_quota_headers.html:2
-#: templates/admin/mx_domain_detail.html:10
+#: admin/templates/admin/dnsbl_domain_detail.html:11
+#: admin/templates/admin/identities_quota_headers.html:2
+#: admin/templates/admin/mx_domain_detail.html:10
msgid "Address"
msgstr "Adress"
-#: templates/admin/dnsbl_domain_detail.html:12
+#: admin/templates/admin/dnsbl_domain_detail.html:12
+#: admin/templates/admin/domain_detail.html:96
msgid "Status"
msgstr "Status"
-#: templates/admin/dnsbl_domain_detail.html:21
+#: admin/templates/admin/dnsbl_domain_detail.html:21
msgid "listed"
msgstr "listad"
-#: templates/admin/dnsbl_domain_detail.html:29
+#: admin/templates/admin/dnsbl_domain_detail.html:29
msgid "Everything is fine, this domain is not listed."
msgstr "Allt är okej, denna domän är ej listad."
-#: templates/admin/dnsbl_domain_detail.html:32
+#: admin/templates/admin/dnsbl_domain_detail.html:32
msgid "No information available for this domain."
msgstr "Ingen information tillgänglig för den här domänen."
-#: templates/admin/domain_detail.html:30 templates/admin/domain_headers.html:7
-msgid "DNS status"
-msgstr "DNS status"
-
-#: templates/admin/domain_detail.html:37
+#: admin/templates/admin/domain_detail.html:29
msgid "Creation date"
msgstr "Skapelsedatum"
-#: templates/admin/domain_detail.html:41
+#: admin/templates/admin/domain_detail.html:33
msgid "Last modification date"
msgstr "Senast ändrad"
-#: templates/admin/domain_detail.html:53
+#: admin/templates/admin/domain_detail.html:45
msgid "Mailbox aliases"
msgstr "Brevlåde alias"
-#: templates/admin/domain_detail.html:58 templates/admin/domain_detail.html:65
-#: templates/admin/domain_detail.html:66 templates/admin/domain_detail.html:73
-#: templates/admin/domain_general_form.html:4
-#: templates/admin/domain_general_form.html:5
-#: templates/admin/domains_quotas.html:11
-#: templates/admin/domains_quotas.html:12 templates/admin/mailform.html:7
-#: templates/admin/newdomainform.html:3
+#: admin/templates/admin/domain_detail.html:50
+#: admin/templates/admin/domain_detail.html:57
+#: admin/templates/admin/domain_detail.html:58
+#: admin/templates/admin/domain_detail.html:65
+#: admin/templates/admin/domain_general_form.html:4
+#: admin/templates/admin/domain_general_form.html:5
+#: admin/templates/admin/domains_quotas.html:11
+#: admin/templates/admin/domains_quotas.html:12
+#: admin/templates/admin/mailform.html:7
+#: admin/templates/admin/newdomainform.html:3
msgid "MB"
msgstr "MB"
-#: templates/admin/domain_detail.html:62
+#: admin/templates/admin/domain_detail.html:54
msgid "Usage"
msgstr "Användande"
-#: templates/admin/domain_detail.html:65 templates/admin/domains_quotas.html:11
+#: admin/templates/admin/domain_detail.html:57
+#: admin/templates/admin/domains_quotas.html:11
msgctxt "quota"
msgid "used"
msgstr "använt"
-#: templates/admin/domain_detail.html:66 templates/admin/domains_quotas.html:12
+#: admin/templates/admin/domain_detail.html:58
+#: admin/templates/admin/domains_quotas.html:12
msgid "allocated"
msgstr "allokerat"
-#: templates/admin/domain_detail.html:98
+#: admin/templates/admin/domain_detail.html:91
+msgid "DNS"
+msgstr ""
+
+#: admin/templates/admin/domain_detail.html:103
+msgid "DKIM key"
+msgstr ""
+
+#: admin/templates/admin/domain_detail.html:107
+msgid "Show key"
+msgstr ""
+
+#: admin/templates/admin/domain_detail.html:110
+#, fuzzy
+#| msgid "Not defined"
+msgid "Not generated"
+msgstr "Ej definierad"
+
+#: admin/templates/admin/domain_detail.html:117
msgid "Administrators"
msgstr "Administratörer"
-#: templates/admin/domain_detail.html:110 templatetags/admin_tags.py:268
+#: admin/templates/admin/domain_detail.html:129
+#: admin/templatetags/admin_tags.py:268
msgid "Remove this permission"
msgstr "Radera detta tillstånd"
-#: templates/admin/domain_detail.html:115
+#: admin/templates/admin/domain_detail.html:134
msgid "No domain administrator defined yet."
msgstr "Ingen domänadministratöre ännu definierad."
-#: templates/admin/domain_headers.html:5
-#: templates/admin/identity_headers.html:4
+#: admin/templates/admin/domain_headers.html:5
+#: admin/templates/admin/identity_headers.html:4
msgid "Tags"
msgstr "Tagg"
-#: templates/admin/domain_headers.html:9
-#: templates/admin/identity_headers.html:5
+#: admin/templates/admin/domain_headers.html:7
+msgid "DNS status"
+msgstr "DNS status"
+
+#: admin/templates/admin/domain_headers.html:9
+#: admin/templates/admin/identity_headers.html:5
msgid "Actions"
msgstr "Åtgärder"
-#: templates/admin/domain_options_form.html:10
+#: admin/templates/admin/domain_options_form.html:10
msgid "You can't create a new domain administrator"
msgstr "Du kan inte skapa en ny domänadministratör"
-#: templates/admin/domains.html:26 templates/admin/identities.html:29
+#: admin/templates/admin/domains.html:28
+#: admin/templates/admin/identities.html:29
msgid "Add"
msgstr "Lägg till"
-#: templates/admin/domains_quota_headers.html:3
-#: templates/admin/identities_quota_headers.html:4
+#: admin/templates/admin/domains_quota_headers.html:3
+#: admin/templates/admin/identities_quota_headers.html:4
msgid "Limit"
msgstr "Gräns"
-#: templates/admin/domains_quota_headers.html:4
+#: admin/templates/admin/domains_quota_headers.html:4
msgid "Used"
msgstr ""
-#: templates/admin/domains_quota_headers.html:5
+#: admin/templates/admin/domains_quota_headers.html:5
#, fuzzy
#| msgid "allocated"
msgid "Allocated"
msgstr "allokerat"
-#: templates/admin/domains_quota_headers.html:6
-#: templates/admin/identities_quota_headers.html:5
+#: admin/templates/admin/domains_quota_headers.html:6
+#: admin/templates/admin/identities_quota_headers.html:5
#, python-format
msgid "Usage (%%)"
msgstr "Användning (%%)"
-#: templates/admin/domains_table.html:5
+#: admin/templates/admin/domains_table.html:5
msgid "disabled"
msgstr "inaktiverad"
-#: templates/admin/forward.html:2
+#: admin/templates/admin/forward.html:2
msgid "Automatically forward emails to another address"
msgstr "Vidarebefordra automatiskt e-post till en annan adress"
-#: templates/admin/forward.html:9 views/alias.py:93
+#: admin/templates/admin/forward.html:9 admin/views/alias.py:93
msgid "Update"
msgstr "Uppdatera"
-#: templates/admin/identities.html:32
+#: admin/templates/admin/identities.html:32
msgid "Account"
msgstr "Konto"
-#: templates/admin/identities_quota_headers.html:3
+#: admin/templates/admin/identities_quota_headers.html:3
msgid "Value"
msgstr "Värde"
-#: templates/admin/identity_headers.html:3
+#: admin/templates/admin/identity_headers.html:3
msgid "Fullname/Recipient"
msgstr "Fullständigt namn/Mottagare"
-#: templates/admin/import_domains_form.html:6
+#: admin/templates/admin/import_domains_form.html:6
msgid ""
"Provide a CSV file where lines respect one of the following formats: