diff --git a/doc/additional/migrating.rst b/doc/additional/migrating.rst index 448e7fdd1..4f1e8f71c 100644 --- a/doc/additional/migrating.rst +++ b/doc/additional/migrating.rst @@ -6,7 +6,7 @@ Migrating from other software PostfixAdmin ************ -Since version 0.8.5, Modoboa provides a simple script to migrate an +Modoboa provides a simple script to migrate an existing `PostfixAdmin (version 2.3.3+) `_ database to a Modoboa one. @@ -21,40 +21,37 @@ connection named ``pfxadmin`` into the ``DATABASES`` variable corresponding to your PostfixAdmin setup:: DATABASES = { - "default" : { - # default connection definition - }, - "pfxadmin" : { - "ENGINE" : "", - "NAME" : "", - "USER" : "", - "PASSWORD" : "", - } + "default" : { + # default connection definition + }, + "pfxadmin" : { + "ENGINE" : "", + "NAME" : "", + "USER" : "", + "PASSWORD" : "", + } } This connection should correspond to the one defined in PostfixAdmin's configuration file. -You are now ready to start the migration. Enter Modoboa's root -directory and execute the following command:: +Then, uncomment the line containing +``'modoboa.tools.pfxadmin_migrate'`` inside the ``MODOBOA_APPS`` +variable and save your changes. - $ PYTHONPATH=$PWD/.. DJANGO_SETTINGS_MODULE=modoboa.settings \ - ./tools/pfxadmin_migrate/migrate.py -r -p +You are now ready to start the migration so run the following commands:: + + $ cd + $ python manage.py migrate_from_postfixadmin -r -p Depending on how many domains/mailboxes your existing setup contains, the migration can be long. Just wait for the script's ending. -Once the migration has succeed, go the *Admin > Configuration* panel, -click on the *admin* row and modify the value of ``MAILDIR_ROOT`` as -follow:: +.. note:: - MAILDIR_ROOT = - -The corresponding field must be empty. Don't touch other fields except -``PASSWORD_SCHEME``, if needed. (set it to the same method as the one -used by PostfixAdmin, check its configuration file if you're not sure) - -Click on the *Save* button. + The rename operation is not synchronous. If you choose this option, + you must enable **Handle mailboxes on filesystem** option. See + :ref:`fs_operations`. The procedure is over, edit the :file:`settings.py` file and: diff --git a/doc/getting_started/configuration.rst b/doc/getting_started/configuration.rst index ff035892f..47bd74de7 100644 --- a/doc/getting_started/configuration.rst +++ b/doc/getting_started/configuration.rst @@ -274,6 +274,14 @@ Modoboa should connect to your LDAP server. They are described just below: | | | | | | | | +--------------------+---------------------------------+--------------------+ +|Domain/mailbox |Automatically create a domain and|yes | +|creation |a mailbox when a new user is | | +| |created just after the first | | +| |successful authentication. You | | +| |will generally want to disable | | +| |this feature when the relay | | +| |domains extension is in use | | ++--------------------+---------------------------------+--------------------+ If you need additional parameters, you will find a detailled diff --git a/doc/getting_started/upgrade.rst b/doc/getting_started/upgrade.rst index fb1643141..db1d0ec6b 100644 --- a/doc/getting_started/upgrade.rst +++ b/doc/getting_started/upgrade.rst @@ -48,6 +48,17 @@ Finally, follow the common procedure:: $ python manage.py syncdb --migrate $ python manage.py collectstatic +1.1.6: Few bugfixes +=================== + +Catchall aliases were not really functional until this version as they +were eating all domain traffic. + +To fix them, a postfix map file (``sql-mailboxes-self-aliases.cf``) +has been re-introduced and must be listed into the +``virtual_alias_maps`` setting. See :ref:`postfix_config` for the +order. + 1.1.2: Audit trail issues ========================= diff --git a/doc/integration/imap_and_smtp.rst b/doc/integration/imap_and_smtp.rst index 06f84b8fe..d14f413bd 100644 --- a/doc/integration/imap_and_smtp.rst +++ b/doc/integration/imap_and_smtp.rst @@ -443,6 +443,7 @@ Use the following configuration in the :file:`/etc/postfix/main.cf` file virtual_alias_domains = :/etc/postfix/sql-domain-aliases.cf virtual_alias_maps = :/etc/postfix/sql-aliases.cf, :/etc/postfix/sql-domain-aliases-mailboxes.cf, + :/etc/postfix/sql-mailboxes-self-aliases.cf, :/etc/postfix/sql-catchall-aliases.cf smtpd_recipient_restrictions = diff --git a/modoboa/core/app_settings.py b/modoboa/core/app_settings.py index 1b01fe34e..9ad551d83 100644 --- a/modoboa/core/app_settings.py +++ b/modoboa/core/app_settings.py @@ -31,6 +31,9 @@ def enabled_applications(): class GeneralParametersForm(parameters.AdminParametersForm): + + """General parameters.""" + app = "core" sep1 = SeparatorField(label=ugettext_lazy("Authentication")) @@ -78,7 +81,8 @@ class GeneralParametersForm(parameters.AdminParametersForm): ldap_server_address = forms.CharField( label=ugettext_lazy("Server address"), initial="localhost", - help_text=ugettext_lazy("The IP address of the DNS name of the LDAP server") + help_text=ugettext_lazy( + "The IP address of the DNS name of the LDAP server") ) ldap_server_port = forms.IntegerField( @@ -90,7 +94,8 @@ class GeneralParametersForm(parameters.AdminParametersForm): ldap_secured = YesNoField( label=ugettext_lazy("Use a secured connection"), initial="no", - help_text=ugettext_lazy("Use an SSL/TLS connection to access the LDAP server") + help_text=ugettext_lazy( + "Use an SSL/TLS connection to access the LDAP server") ) ldap_auth_method = forms.ChoiceField( @@ -105,14 +110,20 @@ class GeneralParametersForm(parameters.AdminParametersForm): ldap_bind_dn = forms.CharField( label=ugettext_lazy("Bind DN"), initial='', - help_text=ugettext_lazy("The distinguished name to use when binding to the LDAP server. Leave empty for an anonymous bind"), + help_text=ugettext_lazy( + "The distinguished name to use when binding to the LDAP server. " + "Leave empty for an anonymous bind" + ), required=False ) ldap_bind_password = forms.CharField( label=ugettext_lazy("Bind password"), initial='', - help_text=ugettext_lazy("The password to use when binding to the LDAP server (with 'Bind DN')"), + help_text=ugettext_lazy( + "The password to use when binding to the LDAP server " + "(with 'Bind DN')" + ), widget=forms.PasswordInput(render_value=True), required=False ) @@ -120,21 +131,29 @@ class GeneralParametersForm(parameters.AdminParametersForm): ldap_search_base = forms.CharField( label=ugettext_lazy("Users search base"), initial="", - help_text=ugettext_lazy("The distinguished name of the search base used to find users"), + help_text=ugettext_lazy( + "The distinguished name of the search base used to find users" + ), required=False ) ldap_search_filter = forms.CharField( label=ugettext_lazy("Search filter"), initial="(mail=%(user)s)", - help_text=ugettext_lazy("An optional filter string (e.g. '(objectClass=person)'). In order to be valid, it must be enclosed in parentheses."), + help_text=ugettext_lazy( + "An optional filter string (e.g. '(objectClass=person)'). " + "In order to be valid, it must be enclosed in parentheses." + ), required=False ) ldap_user_dn_template = forms.CharField( label=ugettext_lazy("User DN template"), initial="", - help_text=ugettext_lazy("The template used to construct a user's DN. It should contain one placeholder (ie. %(user)s)"), + help_text=ugettext_lazy( + "The template used to construct a user's DN. It should contain " + "one placeholder (ie. %(user)s)" + ), required=False ) @@ -147,7 +166,8 @@ class GeneralParametersForm(parameters.AdminParametersForm): ldap_is_active_directory = YesNoField( label=ugettext_lazy("Active Directory"), initial="no", - help_text=ugettext_lazy("Tell if the LDAP server is an Active Directory one") + help_text=ugettext_lazy( + "Tell if the LDAP server is an Active Directory one") ) ldap_admin_groups = forms.CharField( @@ -169,6 +189,15 @@ class GeneralParametersForm(parameters.AdminParametersForm): required=False ) + ldap_create_domain_mailbox = YesNoField( + label=ugettext_lazy("Domain/mailbox creation"), + initial="yes", + help_text=ugettext_lazy( + "Automatically create a domain and a mailbox when a new user " + "is created just after the first successful authentication." + ) + ) + sep3 = SeparatorField(label=ugettext_lazy("Miscellaneous")) top_notifications_check_interval = forms.IntegerField( @@ -200,7 +229,9 @@ class GeneralParametersForm(parameters.AdminParametersForm): label=ugettext_lazy("Default top redirection"), choices=[], initial="user", - help_text=ugettext_lazy("The default redirection used when no application is specified") + help_text=ugettext_lazy( + "The default redirection used when no application is specified" + ) ) # Visibility rules @@ -292,7 +323,8 @@ class GeneralParametersForm(parameters.AdminParametersForm): "last_name": "sn" }) ldap_uri = 'ldaps://' if values["ldap_secured"] == "yes" else "ldap://" - ldap_uri += "%s:%s" % (values["ldap_server_address"], values["ldap_server_port"]) + ldap_uri += "%s:%s" % ( + values["ldap_server_address"], values["ldap_server_port"]) setattr(settings, "AUTH_LDAP_SERVER_URI", ldap_uri) setattr(settings, "AUTH_LDAP_GROUP_TYPE", PosixGroupType()) setattr(settings, "AUTH_LDAP_GROUP_SEARCH", LDAPSearch( diff --git a/modoboa/core/commands/postfix_maps.py b/modoboa/core/commands/postfix_maps.py index 5ba7c23f3..0cf9e9fb2 100644 --- a/modoboa/core/commands/postfix_maps.py +++ b/modoboa/core/commands/postfix_maps.py @@ -133,6 +133,13 @@ class DomainAliasesMailboxesMap(MapFile): sqlite = "(SELECT mb.address || '@' || dom.name FROM admin_domainalias domal INNER JOIN admin_domain dom ON domal.target_id=dom.id INNER JOIN admin_mailbox mb ON mb.domain_id=dom.id WHERE domal.name='%d' AND dom.enabled=1 AND mb.address='%u') UNION (SELECT al.address || '@' || dom.name FROM admin_domainalias domal INNER JOIN admin_domain dom ON domal.target_id=dom.id INNER JOIN admin_alias al ON al.domain_id=dom.id WHERE domal.name='%d' AND dom.enabled=1 AND al.address='%u')" +class MailboxesSelfAliasesMap(MapFile): + filename = "sql-mailboxes-self-aliases.cf" + mysql = "SELECT email FROM core_user u INNER JOIN admin_mailbox mb ON mb.user_id=u.id WHERE u.email='%s' AND u.is_active=1" + postgres = "SELECT email FROM core_user u INNER JOIN admin_mailbox mb ON mb.user_id=u.id WHERE u.email='%s' AND u.is_active" + sqlite = "SELECT email FROM core_user u INNER JOIN admin_mailbox mb ON mb.user_id=u.id WHERE u.email='%s' AND u.is_active=1" + + class CatchallAliasesMap(MapFile): filename = 'sql-catchall-aliases.cf' mysql = "(SELECT concat(mb.address, '@', dom.name) FROM admin_mailbox mb INNER JOIN admin_domain dom ON mb.domain_id=dom.id WHERE mb.id IN (SELECT al_mb.mailbox_id FROM admin_alias al INNER JOIN admin_domain dom ON al.domain_id=dom.id INNER JOIN admin_alias_mboxes al_mb ON al.id=al_mb.alias_id WHERE al.enabled=1 AND al.address='*' AND dom.name='%d' AND dom.enabled=1)) UNION (SELECT al.extmboxes FROM admin_alias al INNER JOIN admin_domain dom ON al.domain_id=dom.id WHERE al.enabled='1' AND al.extmboxes<>'' AND al.address='*' AND dom.name='%d' AND dom.enabled=1)" diff --git a/modoboa/core/commands/templates/settings.py.tpl b/modoboa/core/commands/templates/settings.py.tpl index af84b8935..1e88a55e2 100644 --- a/modoboa/core/commands/templates/settings.py.tpl +++ b/modoboa/core/commands/templates/settings.py.tpl @@ -175,6 +175,9 @@ MODOBOA_APPS = ( 'modoboa.extensions.sievefilters', 'modoboa.extensions.radicale', {% if not amavis_conn %}#{% endif %}'modoboa.extensions.amavis', + + # Tools from here + #'modoboa.tools.pfxadmin_migrate', ) INSTALLED_APPS += MODOBOA_APPS diff --git a/modoboa/extensions/admin/__init__.py b/modoboa/extensions/admin/__init__.py index 12baf0961..acab3ea18 100644 --- a/modoboa/extensions/admin/__init__.py +++ b/modoboa/extensions/admin/__init__.py @@ -196,8 +196,11 @@ def import_account_mailbox(user, account, row): @events.observe("AccountAutoCreated") def account_auto_created(user): from modoboa.core.models import User + from modoboa.extensions.admin.lib import check_if_domain_exists from modoboa.lib.permissions import grant_access_to_object + if parameters.get_admin("LDAP_CREATE_DOMAIN_MAILBOX", app="core") == "no": + return localpart, domname = split_mailbox(user.username) if user.group != 'SimpleUsers' and domname is None: return @@ -205,6 +208,10 @@ def account_auto_created(user): try: domain = Domain.objects.get(name=domname) except Domain.DoesNotExist: + label = check_if_domain_exists( + domname, [(DomainAlias, _('domain alias'))]) + if label is not None: + return domain = Domain(name=domname, enabled=True, quota=0) domain.save(creator=sadmins[0]) for su in sadmins[1:]: diff --git a/modoboa/extensions/admin/forms/domain.py b/modoboa/extensions/admin/forms/domain.py index b03837f41..030c6ee9a 100644 --- a/modoboa/extensions/admin/forms/domain.py +++ b/modoboa/extensions/admin/forms/domain.py @@ -10,6 +10,7 @@ from modoboa.lib.formutils import ( ) from modoboa.lib.webutils import render_to_json_response from modoboa.core.models import User +from modoboa.extensions.admin.lib import check_if_domain_exists from modoboa.extensions.admin.models import ( Domain, DomainAlias, Mailbox, Alias, Quota ) @@ -74,34 +75,27 @@ class DomainFormGeneral(forms.ModelForm, DynamicForm): cleaned_data = self.cleaned_data name = cleaned_data["name"] - dtypes = events.raiseQueryEvent('CheckDomainName') - for dtype, label in [(DomainAlias, _('domain alias'))] + dtypes: - try: - dtype.objects.get(name=name) - except dtype.DoesNotExist: - pass - else: - self._errors["name"] = self.error_class( - [_("A %s with this name already exists" % unicode(label))] - ) - del cleaned_data["name"] - break + label = check_if_domain_exists(name, [(DomainAlias, _('domain alias'))]) + if label is not None: + self._errors["name"] = self.error_class( + [_("A %s with this name already exists" % unicode(label))] + ) + del cleaned_data["name"] + for k in cleaned_data.keys(): if not k.startswith("aliases"): continue if cleaned_data[k] == "": del cleaned_data[k] continue - for dtype, label in [(Domain, _('domain'))] + dtypes: - try: - dtype.objects.get(name=cleaned_data[k]) - except dtype.DoesNotExist: - continue + label = check_if_domain_exists( + cleaned_data[k], [(Domain, _('domain'))]) + if label is not None: self._errors[k] = self.error_class( [_("A %s with this name already exists" % unicode(label))] ) del cleaned_data[k] - break + return cleaned_data def update_mailbox_quotas(self, domain): diff --git a/modoboa/extensions/admin/lib.py b/modoboa/extensions/admin/lib.py index db945437e..5b68e1273 100644 --- a/modoboa/extensions/admin/lib.py +++ b/modoboa/extensions/admin/lib.py @@ -96,3 +96,23 @@ def get_domains(user, domfilter=None, searchquery=None, **extrafilters): 'ExtraDomainEntries', user, domfilter, searchquery, **extrafilters ) return chain(domains, extra_domain_entries) + + +def check_if_domain_exists(name, extra_checks=None): + """Check if a domain already exists. + + We not only look for domains, we also look for every object that + could conflict with a domain (domain alias, etc.) + + """ + dtypes = events.raiseQueryEvent('CheckDomainName') + if extra_checks is not None: + dtypes = extra_checks + dtypes + for dtype, label in dtypes: + try: + dtype.objects.get(name=name) + except dtype.DoesNotExist: + pass + else: + return label + return None diff --git a/modoboa/extensions/amavis/sql_connector.py b/modoboa/extensions/amavis/sql_connector.py index bd2758ca9..026483d31 100644 --- a/modoboa/extensions/amavis/sql_connector.py +++ b/modoboa/extensions/amavis/sql_connector.py @@ -61,13 +61,15 @@ class SQLconnector(object): """ if self.user.group == 'SimpleUsers': - rcpts = [self.user.email] \ - + self.user.mailbox_set.all()[0].alias_addresses - flt &= Q(rid__email__in=rcpts) + rcpts = [self.user.email] + if self.user.mailbox_set.count(): + rcpts += self.user.mailbox_set.all()[0].alias_addresses + return flt & Q(rid__email__in=rcpts) elif not self.user.is_superuser: doms = Domain.objects.get_for_admin(self.user) regexp = "(%s)" % '|'.join([dom.name for dom in doms]) - flt &= Q(rid__email__regex=regexp) + return flt & Q(rid__email__regex=regexp) + return flt def _apply_extra_search_filter(self, crit, pattern): """Apply search filters using additional criterias. @@ -90,7 +92,7 @@ class SQLconnector(object): """ flt = Q(rs__in=[' ', 'V', 'R', 'p']) \ if self.navparams.get('viewrequests', '0') != '1' else Q(rs='p') - self._apply_msgrcpt_filters(flt) + flt = self._apply_msgrcpt_filters(flt) pattern = self.navparams.get("pattern", "") if pattern: criteria = self.navparams.get('criteria') @@ -226,8 +228,9 @@ class PgSQLconnector(SQLconnector): """ self._where = [] if self.user.group == 'SimpleUsers': - rcpts = [self.user.email] \ - + self.user.mailbox_set.all()[0].alias_addresses + rcpts = [self.user.email] + if self.user.mailbox_set.count(): + rcpts += self.user.mailbox_set.all()[0].alias_addresses self._where.append( "convert_from(maddr.email, 'UTF8') IN (%s)" \ % (','.join(["'%s'" % rcpt for rcpt in rcpts]))) @@ -236,6 +239,7 @@ class PgSQLconnector(SQLconnector): regexp = "(%s)" % '|'.join([dom.name for dom in doms]) self._where.append( "convert_from(maddr.email, 'UTF8') ~ '%s'" % regexp) + return flt def _apply_extra_search_filter(self, crit, pattern): """Apply search filters using additional criterias. diff --git a/modoboa/extensions/amavis/static/amavis/js/quarantine.js b/modoboa/extensions/amavis/static/amavis/js/quarantine.js index a5d676a54..fe98bd4f3 100644 --- a/modoboa/extensions/amavis/static/amavis/js/quarantine.js +++ b/modoboa/extensions/amavis/static/amavis/js/quarantine.js @@ -136,9 +136,16 @@ Quarantine.prototype = { * Filter listing by message type (spam, virus, etc.) */ filter_by_type: function(evt) { - var msgtype = $(evt.target).html().trim(); + var $target = $(evt.target); + var msgtype; - if (msgtype != 'All') { + if ($target.is("span")) { + msgtype = $target.html().trim(); + } else { + msgtype = $target.attr("name").replace("msgtype_", ""); + } + + if (msgtype != 'all') { this.navobj.setparam('msgtype', msgtype); } else { this.navobj.delparam('msgtype'); diff --git a/modoboa/extensions/amavis/views.py b/modoboa/extensions/amavis/views.py index 587f37cba..8a3284004 100644 --- a/modoboa/extensions/amavis/views.py +++ b/modoboa/extensions/amavis/views.py @@ -102,7 +102,9 @@ def viewmail_selfservice(request, mail_id, @selfservice(viewmail_selfservice) def viewmail(request, mail_id): rcpt = request.GET["rcpt"] - if request.user.mailbox_set.count(): + if request.user.email == rcpt: + get_connector().set_msgrcpt_status(rcpt, mail_id, 'V') + elif request.user.mailbox_set.count(): mb = Mailbox.objects.get(user=request.user) if rcpt == mb.full_address or rcpt in mb.alias_addresses: get_connector().set_msgrcpt_status(rcpt, mail_id, 'V') diff --git a/modoboa/locale/cs_CZ/LC_MESSAGES/django.po b/modoboa/locale/cs_CZ/LC_MESSAGES/django.po index a990bed64..cb2a4db07 100644 --- a/modoboa/locale/cs_CZ/LC_MESSAGES/django.po +++ b/modoboa/locale/cs_CZ/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: modoboa-1.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-12-15 10:20+0100\n" +"POT-Creation-Date: 2014-08-24 12:29+0200\n" "PO-Revision-Date: 2013-09-29 22:08+0100\n" "Last-Translator: Miroslav Abrahám \n" "Language-Team: CS \n" @@ -19,8 +19,8 @@ msgstr "" "X-Generator: Poedit 1.5.7\n" #: core/__init__.py:52 core/__init__.py:53 -#: extensions/admin/forms/account.py:326 extensions/admin/forms/domain.py:251 -#: extensions/admin/views/domain.py:95 extensions/admin/views/identity.py:127 +#: extensions/admin/forms/account.py:326 extensions/admin/forms/domain.py:256 +#: extensions/admin/views/domain.py:97 extensions/admin/views/identity.py:129 #: extensions/postfix_autoreply/app_settings.py:11 #: extensions/postfix_relay_domains/forms.py:138 #: extensions/sievefilters/app_settings.py:50 @@ -28,119 +28,119 @@ msgstr "" msgid "General" msgstr "Obecné" -#: core/app_settings.py:36 +#: core/app_settings.py:39 msgid "Authentication" msgstr "Ověření" -#: core/app_settings.py:39 +#: core/app_settings.py:42 msgid "Authentication type" msgstr "Typ ověření" -#: core/app_settings.py:40 +#: core/app_settings.py:43 msgid "Local" msgstr "Lokální" -#: core/app_settings.py:43 +#: core/app_settings.py:46 msgid "The backend used for authentication" msgstr "Rozhraní pro ověřování přístupu" -#: core/app_settings.py:48 +#: core/app_settings.py:51 msgid "Default password scheme" msgstr "Výchozí schéma hesel" -#: core/app_settings.py:51 +#: core/app_settings.py:54 msgid "md5crypt (weak)" msgstr "" -#: core/app_settings.py:52 +#: core/app_settings.py:55 msgid "sha256 (weak)" msgstr "" -#: core/app_settings.py:53 +#: core/app_settings.py:56 msgid "md5 (weak)" msgstr "" -#: core/app_settings.py:54 +#: core/app_settings.py:57 msgid "crypt (weak)" msgstr "" -#: core/app_settings.py:55 +#: core/app_settings.py:58 msgid "plain (weak)" msgstr "" -#: core/app_settings.py:57 +#: core/app_settings.py:60 msgid "Scheme used to crypt mailbox passwords" msgstr "Použité schéma pro šifrování hesel schránek" -#: core/app_settings.py:61 +#: core/app_settings.py:64 msgid "Rounds" msgstr "" -#: core/app_settings.py:64 +#: core/app_settings.py:67 msgid "" "Number of rounds to use (only used by sha256crypt and sha512crypt). Must be " "between 1000 and 999999999, inclusive." msgstr "" -#: core/app_settings.py:70 +#: core/app_settings.py:73 msgid "Secret key" msgstr "Tajný klíč" -#: core/app_settings.py:72 +#: core/app_settings.py:75 msgid "Key used to encrypt/decrypt passwords" msgstr "Klíč používaný k šifrování/dešifrování hesel" -#: core/app_settings.py:76 +#: core/app_settings.py:79 msgid "LDAP settings" msgstr "Nastavení LDAP" -#: core/app_settings.py:79 extensions/sievefilters/app_settings.py:22 +#: core/app_settings.py:82 extensions/sievefilters/app_settings.py:22 #: extensions/webmail/app_settings.py:22 extensions/webmail/app_settings.py:42 msgid "Server address" msgstr "Adresa serveru" -#: core/app_settings.py:81 +#: core/app_settings.py:85 msgid "The IP address of the DNS name of the LDAP server" msgstr "IP adresa DNS jména LDAP serveru" -#: core/app_settings.py:85 extensions/sievefilters/app_settings.py:28 +#: core/app_settings.py:89 extensions/sievefilters/app_settings.py:28 #: extensions/webmail/app_settings.py:34 extensions/webmail/app_settings.py:58 msgid "Server port" msgstr "Port serveru" -#: core/app_settings.py:87 +#: core/app_settings.py:91 msgid "The TCP port number used by the LDAP server" msgstr "Port TCP, který používá LDAP server" -#: core/app_settings.py:91 extensions/webmail/app_settings.py:28 +#: core/app_settings.py:95 extensions/webmail/app_settings.py:28 msgid "Use a secured connection" msgstr "Použít zabezpečené připojení" -#: core/app_settings.py:93 +#: core/app_settings.py:98 msgid "Use an SSL/TLS connection to access the LDAP server" msgstr "Použít připojení SSL/TLS pro přístup k LDAP serveru" -#: core/app_settings.py:97 +#: core/app_settings.py:102 msgid "Authentication method" msgstr "Metoda ověření" -#: core/app_settings.py:98 +#: core/app_settings.py:103 msgid "Search and bind" msgstr "Vyhledat a spojit" -#: core/app_settings.py:99 +#: core/app_settings.py:104 msgid "Direct bind" msgstr "Přímé spojení" -#: core/app_settings.py:101 +#: core/app_settings.py:106 msgid "Choose the authentication method to use" msgstr "Zvolte si metodu ověření, která se použije" -#: core/app_settings.py:106 +#: core/app_settings.py:111 msgid "Bind DN" msgstr "Spojení pomocí DN" -#: core/app_settings.py:108 +#: core/app_settings.py:114 msgid "" "The distinguished name to use when binding to the LDAP server. Leave empty " "for an anonymous bind" @@ -148,31 +148,31 @@ msgstr "" "Rozlišovací jméno, které se použije při spojování s LDAP serverem. " "Ponechejte prázdné pro anonymní spojení." -#: core/app_settings.py:113 +#: core/app_settings.py:121 msgid "Bind password" msgstr "Heslo spojení" -#: core/app_settings.py:115 +#: core/app_settings.py:124 msgid "The password to use when binding to the LDAP server (with 'Bind DN')" msgstr "" "Heslo, které se použije při spojování s LDAP serverem (při výběru DN " "spojení)." -#: core/app_settings.py:121 +#: core/app_settings.py:132 #, fuzzy msgid "Users search base" msgstr "Základna struktury" -#: core/app_settings.py:123 +#: core/app_settings.py:135 #, fuzzy msgid "The distinguished name of the search base used to find users" msgstr "Rozlišovací jméno (DN) základny struktury" -#: core/app_settings.py:128 +#: core/app_settings.py:141 msgid "Search filter" msgstr "Vyhledávací filtr" -#: core/app_settings.py:130 +#: core/app_settings.py:144 msgid "" "An optional filter string (e.g. '(objectClass=person)'). In order to be " "valid, it must be enclosed in parentheses." @@ -180,11 +180,11 @@ msgstr "" "Volitelný filtr (např. '(objectClass=osoba)'). Aby byl filtr platný, je " "nezbytné jen uzavřít do závorek." -#: core/app_settings.py:135 +#: core/app_settings.py:151 msgid "User DN template" msgstr "Šablona uživatelského DN" -#: core/app_settings.py:137 +#: core/app_settings.py:154 #, python-format msgid "" "The template used to construct a user's DN. It should contain one " @@ -193,103 +193,114 @@ msgstr "" "Šablona použitá pro tvorbu uživatelského rozlišovacího jména (DN). Měla by " "obsahovat jeden zástupný řetězec (tj. %(user)s)." -#: core/app_settings.py:142 +#: core/app_settings.py:161 msgid "Password attribute" msgstr "Atribut hesla" -#: core/app_settings.py:144 +#: core/app_settings.py:163 msgid "The attribute used to store user passwords" msgstr "Atribut používaný pro ukládání hesel uživatelů" -#: core/app_settings.py:148 +#: core/app_settings.py:167 msgid "Active Directory" msgstr "Active Directory" -#: core/app_settings.py:150 +#: core/app_settings.py:170 msgid "Tell if the LDAP server is an Active Directory one" msgstr "" "Volba určující, jestli je nebo není LDAP server serverem Active Directory" -#: core/app_settings.py:154 +#: core/app_settings.py:174 #, fuzzy msgid "Administrator groups" msgstr "Správci" -#: core/app_settings.py:157 +#: core/app_settings.py:177 msgid "" "Members of those LDAP Posix groups will be created as domain administrators. " "Use ';' characters to separate groups." msgstr "" -#: core/app_settings.py:164 +#: core/app_settings.py:184 #, fuzzy msgid "Groups search base" msgstr "Základna struktury" -#: core/app_settings.py:167 +#: core/app_settings.py:187 #, fuzzy msgid "The distinguished name of the search base used to find groups" msgstr "Rozlišovací jméno (DN) základny struktury" -#: core/app_settings.py:172 +#: core/app_settings.py:193 +#, fuzzy +msgid "Domain/mailbox creation" +msgstr "Doména vytvořena" + +#: core/app_settings.py:196 +msgid "" +"Automatically create a domain and a mailbox when a new user is created just " +"after the first successful authentication." +msgstr "" + +#: core/app_settings.py:201 #: extensions/admin/templates/admin/editdomainform.html:7 msgid "Miscellaneous" msgstr "Různé" -#: core/app_settings.py:175 +#: core/app_settings.py:204 msgid "Maximum log record age" msgstr "Maximální stáří záznamu" -#: core/app_settings.py:177 +#: core/app_settings.py:206 msgid "The maximum age in days of a log record" msgstr "Maximální stáří záznamu ve dnech" -#: core/app_settings.py:181 +#: core/app_settings.py:210 msgid "Items per page" msgstr "Položek na stránce" -#: core/app_settings.py:183 +#: core/app_settings.py:212 msgid "Number of displayed items per page" msgstr "Počet zobrazených položek na stránce" -#: core/app_settings.py:187 +#: core/app_settings.py:216 msgid "Default top redirection" msgstr "Výchozí přesměrování aplikace" -#: core/app_settings.py:190 +#: core/app_settings.py:220 msgid "The default redirection used when no application is specified" msgstr "" "Výchozí přesměrování, které se použije, pokud není žádná aplikace " "specifikována" -#: core/app_settings.py:218 +#: core/app_settings.py:249 msgid "Key must be either 16, 24, or 32 bytes long" msgstr "Klíč musí mít délku 16, 24 nebo 32 znaků" -#: core/app_settings.py:227 extensions/postfix_autoreply/app_settings.py:53 +#: core/app_settings.py:258 extensions/postfix_autoreply/app_settings.py:53 msgid "Invalid syntax" msgstr "Neplatná syntaxe" -#: core/app_settings.py:233 +#: core/app_settings.py:264 #, fuzzy msgid "Invalid rounds number" msgstr "Neplatný požadavek" -#: core/app_settings.py:256 +#: core/app_settings.py:287 msgid "This field is required" msgstr "Toto pole je vyžadováno" -#: core/app_settings.py:317 extensions/amavis/app_settings.py:87 +#: core/app_settings.py:349 extensions/amavis/app_settings.py:87 #: extensions/amavis/templates/amavis/main_action_bar.html:29 #: extensions/webmail/app_settings.py:73 msgid "Display" msgstr "Zobrazení" -#: core/app_settings.py:321 +#: core/app_settings.py:353 msgid "Prefered language" msgstr "Preferovaný jazyk" -#: core/app_settings.py:327 +#: core/app_settings.py:359 msgid "Prefered language to display pages" msgstr "Preferovaný jazyk pro zobrazení stránek" @@ -344,7 +355,7 @@ msgstr "Nebylo možné změnit heslo: LDAP modul není instalován" msgid "account" msgstr "účet" -#: core/models.py:321 extensions/admin/models/domain.py:135 +#: core/models.py:321 extensions/admin/models/domain.py:144 #: extensions/admin/models/domain_alias.py:39 #: extensions/postfix_relay_domains/models.py:134 #: extensions/postfix_relay_domains/models.py:190 @@ -355,17 +366,17 @@ msgstr "Neplatný řádek" msgid "You can't import an account with a role greater than yours" msgstr "Nemůžete importvat účet s vyšším oprávněním, než máte vy sám" -#: core/models.py:331 +#: core/models.py:337 #, python-format msgid "The simple user '%s' must have a valid email address" msgstr "Uživatel '%s' musí mít nastavenou platnou emailovou adresu" -#: core/models.py:335 +#: core/models.py:341 #, python-format msgid "username and email fields must not differ for '%s'" msgstr "pole uživatelského jména a emailu se nesmí pro '%s' lišit" -#: core/models.py:404 extensions/admin/models/alias.py:33 +#: core/models.py:410 extensions/admin/models/alias.py:35 #: extensions/admin/models/domain.py:32 #: extensions/admin/models/domain_alias.py:17 #: extensions/postfix_autoreply/models.py:28 @@ -374,29 +385,29 @@ msgstr "pole uživatelského jména a emailu se nesmí pro '%s' lišit" msgid "enabled" msgstr "povoleno" -#: core/models.py:405 +#: core/models.py:411 msgid "Check to enable this extension" msgstr "Zatrhněte pole pro povolení tohoto rozšíření" -#: core/models.py:475 +#: core/models.py:491 msgid "added" msgstr "přidáno" -#: core/models.py:478 +#: core/models.py:494 msgid "modified" msgstr "upraveno" -#: core/models.py:480 core/models.py:504 +#: core/models.py:496 core/models.py:521 #, python-format msgid "%(object)s '%(name)s' %(action)s by user %(user)s" msgstr "%(object)s '%(name)s' %(action)s uživatelem %(user)s" -#: core/models.py:506 +#: core/models.py:523 msgid "deleted" msgstr "smazáno" #: core/tables.py:8 core/templates/core/information.html:8 -#: extensions/admin/tables.py:9 extensions/admin/forms/domain.py:182 +#: extensions/admin/tables.py:9 extensions/admin/forms/domain.py:187 #: extensions/admin/templates/admin/domains_table.html:5 #: extensions/admin/templates/admin/editdomainform.html:13 #: extensions/admin/templates/admin/identities_table.html:5 @@ -458,8 +469,9 @@ msgstr "Záznamy" msgid "Previously on Modoboa..." msgstr "Dříve v Modoboa..." -#: core/templates/core/logs.html:6 extensions/amavis/sql_listing.py:46 -#: extensions/webmail/lib.py:48 extensions/webmail/lib.py:425 +#: core/templates/core/logs.html:6 extensions/amavis/sql_listing.py:44 +#: extensions/webmail/lib/imapemail.py:290 +#: extensions/webmail/lib/listing.py:35 extensions/webmail/lib/tables.py:34 msgid "Date" msgstr "Datum" @@ -510,12 +522,12 @@ msgstr "Aktualizovat osobní informace" #: core/templates/core/user_profile.html:8 #: extensions/admin/templates/admin/forward.html:8 -#: extensions/admin/views/alias.py:107 extensions/admin/views/domain.py:165 -#: extensions/admin/views/identity.py:197 +#: extensions/admin/views/alias.py:112 extensions/admin/views/domain.py:168 +#: extensions/admin/views/identity.py:200 #: extensions/postfix_autoreply/templates/postfix_autoreply/autoreply.html:9 -#: extensions/postfix_relay_domains/views.py:63 -#: extensions/sievefilters/views.py:163 extensions/webmail/views.py:170 -#: extensions/webmail/views.py:205 +#: extensions/postfix_relay_domains/views.py:66 +#: extensions/sievefilters/views.py:166 extensions/webmail/views.py:172 +#: extensions/webmail/views.py:207 msgid "Update" msgstr "Aktualizovat" @@ -545,7 +557,7 @@ msgid "Your username and password didn't match. Please try again." msgstr "" "Vaše uživatelské jméno nebo heslo se neshodují. Zkuste to prosím znovu." -#: core/views/auth.py:66 +#: core/views/auth.py:69 #, python-format msgid "User '%s' logged out" msgstr "Uživatel '%s' se odhlásil" @@ -640,7 +652,17 @@ msgstr "Přeposlat" msgid "Account import failed (%s): domain does not exist" msgstr "Import účtu nebyl úspěšný (%s): doména neexistuje" -#: extensions/admin/app_settings.py:11 +#: extensions/admin/__init__.py:172 extensions/admin/forms/account.py:196 +#, python-format +msgid "Mailbox %s already exists" +msgstr "Schránka %s již existuje" + +#: extensions/admin/__init__.py:180 +#, fuzzy, python-format +msgid "Account import failed (%s): wrong quota value" +msgstr "Import účtu nebyl úspěšný (%s): doména neexistuje" + +#: extensions/admin/app_settings.py:13 #: extensions/admin/templates/admin/editdomainform.html:25 #: extensions/limits/app_settings.py:31 extensions/limits/models.py:23 #: extensions/webmail/app_settings.py:107 @@ -648,11 +670,11 @@ msgstr "Import účtu nebyl úspěšný (%s): doména neexistuje" msgid "Mailboxes" msgstr "Schránky" -#: extensions/admin/app_settings.py:14 +#: extensions/admin/app_settings.py:16 msgid "Handle mailboxes on filesystem" msgstr "Spravovat schránky v souborovém systému" -#: extensions/admin/app_settings.py:16 +#: extensions/admin/app_settings.py:18 msgid "" "Rename or remove mailboxes on the filesystem when they get renamed or " "removed within Modoboa" @@ -660,34 +682,34 @@ msgstr "" "Přejmenovat nebo odstranit schránky v souborovém systému, pokud jsou " "přejmenovány nebo odstraněny v Modoboa" -#: extensions/admin/app_settings.py:20 +#: extensions/admin/app_settings.py:22 msgid "Mailboxes owner" msgstr "Vlastník schránek" -#: extensions/admin/app_settings.py:22 +#: extensions/admin/app_settings.py:24 msgid "The UNIX account who owns mailboxes on the filesystem" msgstr "Účet UNIXu, který vlastní schránky v souborovém systému" -#: extensions/admin/app_settings.py:26 +#: extensions/admin/app_settings.py:28 #, fuzzy msgid "Default domain quota" msgstr "Výchozí omezení" -#: extensions/admin/app_settings.py:29 +#: extensions/admin/app_settings.py:31 msgid "" "Default quota (in MB) applied to freshly created domains with no value " "specified. A value of 0 means no quota." msgstr "" -#: extensions/admin/app_settings.py:36 +#: extensions/admin/app_settings.py:38 msgid "Automatic account removal" msgstr "Automatické odstranění účtu" -#: extensions/admin/app_settings.py:38 +#: extensions/admin/app_settings.py:40 msgid "When a mailbox is removed, also remove the associated account" msgstr "Když je schránka odstraněná, odstranit také přiřazený účet uživatele" -#: extensions/admin/app_settings.py:69 extensions/admin/forms/account.py:178 +#: extensions/admin/app_settings.py:81 extensions/admin/forms/account.py:178 #: extensions/admin/forms/domain.py:56 msgid "Must be a positive integer" msgstr "" @@ -771,11 +793,6 @@ msgstr "" msgid "Domain does not exist" msgstr "Doména neexistuje" -#: extensions/admin/forms/account.py:196 -#, python-format -msgid "Mailbox %s already exists" -msgstr "Schránka %s již existuje" - #: extensions/admin/forms/account.py:284 msgid "Domain(s)" msgstr "Doména(y)" @@ -785,7 +802,7 @@ msgid "Domain(s) that user administrates" msgstr "Doména(y) pod správou uživatele" #: extensions/admin/forms/account.py:328 -#: extensions/admin/views/identity.py:130 +#: extensions/admin/views/identity.py:132 msgid "Mail" msgstr "Mail" @@ -826,7 +843,7 @@ msgstr "Nemáte oprávnění k přístupu k této doméně" msgid "Invalid mailbox" msgstr "Neplatná schránka" -#: extensions/admin/forms/alias.py:108 extensions/admin/models/alias.py:182 +#: extensions/admin/forms/alias.py:108 extensions/admin/models/alias.py:194 #, python-format msgid "Local recipient %s not found" msgstr "Místní příjemce %s nebyl nalezen" @@ -876,34 +893,34 @@ msgstr "Alias s tímto názvem již existuje" msgid "domain" msgstr "Domény" -#: extensions/admin/forms/domain.py:176 +#: extensions/admin/forms/domain.py:181 msgid "Create a domain administrator" msgstr "Vytvořit správce domény" -#: extensions/admin/forms/domain.py:178 +#: extensions/admin/forms/domain.py:183 msgid "Automatically create an administrator for this domain" msgstr "Automaticky vytvořit správce této domény" -#: extensions/admin/forms/domain.py:185 +#: extensions/admin/forms/domain.py:190 msgid "" "The administrator's name. Don't include the domain's name here, it will be " "automatically appended." msgstr "" "Jméno správce. Nevkládejte sem název domény, název bude automaticky doplněn." -#: extensions/admin/forms/domain.py:193 +#: extensions/admin/forms/domain.py:198 msgid "Create aliases" msgstr "Vytvořit aliasy" -#: extensions/admin/forms/domain.py:195 +#: extensions/admin/forms/domain.py:200 msgid "Automatically create standard aliases for this domain" msgstr "Automaticky vytvořit běžné aliasy pro tuto doménu" -#: extensions/admin/forms/domain.py:211 +#: extensions/admin/forms/domain.py:216 msgid "Invalid format" msgstr "Neplatný formát" -#: extensions/admin/forms/domain.py:225 +#: extensions/admin/forms/domain.py:230 #, python-format msgid "User '%s' already exists" msgstr "Uživatel '%s' již existuje" @@ -940,7 +957,7 @@ msgstr "" "Nemůžete nastavit přeposílání na místní adresu. Požádejte správce o " "vytvoření aliasu." -#: extensions/admin/forms/import_.py:6 extensions/webmail/forms.py:26 +#: extensions/admin/forms/import_.py:6 extensions/webmail/forms.py:198 msgid "Select a file" msgstr "Vybrat soubor" @@ -960,11 +977,11 @@ msgstr "Zašifrovat hesla" msgid "Check this option if passwords contained in your file are not crypted" msgstr "Zatrhněte toto pole, pokud hesla ve vašem souboru nejsou zašifrována" -#: extensions/admin/models/alias.py:16 extensions/admin/models/mailbox.py:51 +#: extensions/admin/models/alias.py:18 extensions/admin/models/mailbox.py:62 msgid "address" msgstr "adresa" -#: extensions/admin/models/alias.py:18 +#: extensions/admin/models/alias.py:20 msgid "" "The alias address (without the domain part). For a 'catch-all' address, just " "enter an * character." @@ -972,42 +989,42 @@ msgstr "" "Alias adresy (bez části označující doménu). Pro vytvoření doménového koše " "vložte znak '*'." -#: extensions/admin/models/alias.py:24 +#: extensions/admin/models/alias.py:26 msgid "mailboxes" msgstr "schránky" -#: extensions/admin/models/alias.py:25 +#: extensions/admin/models/alias.py:27 msgid "The mailboxes this alias points to" msgstr "Schránky, na které tento alias odkazuje" -#: extensions/admin/models/alias.py:29 +#: extensions/admin/models/alias.py:31 msgid "The aliases this alias points to" msgstr "Aliasy, na které tento alias odkazuje" -#: extensions/admin/models/alias.py:34 +#: extensions/admin/models/alias.py:36 #: extensions/admin/models/domain_alias.py:18 #: extensions/postfix_relay_domains/models.py:168 msgid "Check to activate this alias" msgstr "Zatrhněte pole pro povolení tohoto aliasu" -#: extensions/admin/models/alias.py:79 +#: extensions/admin/models/alias.py:81 msgid "distribution list" msgstr "distribuční seznam" -#: extensions/admin/models/alias.py:80 +#: extensions/admin/models/alias.py:82 msgid "forward" msgstr "přeposlat" -#: extensions/admin/models/alias.py:81 +#: extensions/admin/models/alias.py:83 msgid "alias" msgstr "alias" -#: extensions/admin/models/alias.py:150 +#: extensions/admin/models/alias.py:152 #, python-format msgid "Invalid line: %s" msgstr "Neplatný řádek: %s" -#: extensions/admin/models/alias.py:155 +#: extensions/admin/models/alias.py:157 #, python-format msgid "Domain '%s' does not exist" msgstr "Doména '%s' neexistuje" @@ -1035,7 +1052,7 @@ msgstr "Zatrhněte pole pro povolení této domény" msgid "Domain" msgstr "Domény" -#: extensions/admin/models/domain.py:140 +#: extensions/admin/models/domain.py:155 #, python-format msgid "Invalid quota value for domain '%s'" msgstr "" @@ -1054,31 +1071,26 @@ msgstr "cíl" msgid "The domain this alias points to" msgstr "Doména, na kterou tento alias odkazuje" -#: extensions/admin/models/domain_alias.py:46 -#, fuzzy, python-format -msgid "A domain %s already exists" -msgstr "Schránka %s již existuje" - -#: extensions/admin/models/domain_alias.py:51 +#: extensions/admin/models/domain_alias.py:52 #, python-format msgid "Unknown domain %s" msgstr "Neznámá doména %s" -#: extensions/admin/models/mailbox.py:52 +#: extensions/admin/models/mailbox.py:63 msgid "Mailbox address (without the @domain.tld part)" msgstr "Adresa schránky (bez části @doména.tld)" -#: extensions/admin/models/mailbox.py:113 +#: extensions/admin/models/mailbox.py:125 #, python-format msgid "Failed to retrieve mailbox location (%s)" msgstr "Nebylo možné zjistit umístění schránky (%s)" -#: extensions/admin/models/mailbox.py:173 +#: extensions/admin/models/mailbox.py:194 #, python-format msgid "Quota is greater than the allowed domain's limit (%dM)" msgstr "Zvolená kvóta je větší než povolené omezení domény (%dM)" -#: extensions/admin/models/mailbox.py:178 +#: extensions/admin/models/mailbox.py:199 msgid "A quota is required" msgstr "Kvóta je vyžadována" @@ -1101,7 +1113,7 @@ msgstr "Značky" #: extensions/admin/templates/admin/domains_table.html:8 #: extensions/admin/templates/admin/identities_table.html:8 #: extensions/admin/templates/admin/listing.html:17 -#: extensions/sievefilters/views.py:93 +#: extensions/sievefilters/views.py:95 #: extensions/sievefilters/templates/sievefilters/filter.html:17 #: extensions/sievefilters/templates/sievefilters/guieditor.html:5 #: extensions/webmail/templatetags/webmail_tags.py:101 @@ -1198,7 +1210,7 @@ msgstr "Přidat doménu" #: extensions/admin/templatetags/admin_tags.py:42 #: extensions/admin/templatetags/admin_tags.py:106 -#: extensions/admin/views/import.py:51 extensions/admin/views/import.py:166 +#: extensions/admin/views/import.py:52 extensions/admin/views/import.py:168 msgid "Import" msgstr "Import" @@ -1248,84 +1260,84 @@ msgstr "Smazat %s?" msgid "Remove this permission" msgstr "Odstranit toto oprávnění" -#: extensions/admin/views/alias.py:25 +#: extensions/admin/views/alias.py:26 msgid "Alias with this name already exists" msgstr "Alias s tímto názvem již existuje" -#: extensions/admin/views/alias.py:49 extensions/admin/views/domain.py:100 -#: extensions/admin/views/domain.py:129 extensions/admin/views/identity.py:131 -#: extensions/admin/views/identity.py:158 -#: extensions/postfix_relay_domains/views.py:32 -#: extensions/sievefilters/views.py:141 extensions/sievefilters/views.py:230 -#: extensions/webmail/views.py:151 +#: extensions/admin/views/alias.py:50 extensions/admin/views/domain.py:102 +#: extensions/admin/views/domain.py:131 extensions/admin/views/identity.py:133 +#: extensions/admin/views/identity.py:160 +#: extensions/postfix_relay_domains/views.py:34 +#: extensions/sievefilters/views.py:144 extensions/sievefilters/views.py:233 +#: extensions/webmail/views.py:153 msgid "Create" msgstr "Vytvořit" -#: extensions/admin/views/alias.py:61 +#: extensions/admin/views/alias.py:63 msgid "New distribution list" msgstr "Nový distribuční seznam" -#: extensions/admin/views/alias.py:62 +#: extensions/admin/views/alias.py:64 msgid "Distribution list created" msgstr "Distribuční seznam vytvořen" -#: extensions/admin/views/alias.py:71 +#: extensions/admin/views/alias.py:74 msgid "New alias" msgstr "Nový alias" -#: extensions/admin/views/alias.py:72 +#: extensions/admin/views/alias.py:75 msgid "Alias created" msgstr "Alias vytvořen" -#: extensions/admin/views/alias.py:81 +#: extensions/admin/views/alias.py:85 msgid "New forward" msgstr "Nové přeposílání" -#: extensions/admin/views/alias.py:82 +#: extensions/admin/views/alias.py:86 msgid "Forward created" msgstr "Přeposílání vytvořeno" -#: extensions/admin/views/alias.py:95 +#: extensions/admin/views/alias.py:100 msgid "Distribution list modified" msgstr "Distribuční seznam upraven" -#: extensions/admin/views/alias.py:97 +#: extensions/admin/views/alias.py:102 msgid "Forward modified" msgstr "Přeposílání upraveno" -#: extensions/admin/views/alias.py:99 +#: extensions/admin/views/alias.py:104 msgid "Alias modified" msgstr "Alias upraven" -#: extensions/admin/views/domain.py:96 extensions/admin/views/identity.py:128 +#: extensions/admin/views/domain.py:98 extensions/admin/views/identity.py:130 msgid "Next" msgstr "Další" -#: extensions/admin/views/domain.py:99 +#: extensions/admin/views/domain.py:101 msgid "Options" msgstr "Možnosti" -#: extensions/admin/views/domain.py:101 extensions/admin/views/identity.py:132 +#: extensions/admin/views/domain.py:103 extensions/admin/views/identity.py:134 msgid "Previous" msgstr "Předchozí" -#: extensions/admin/views/domain.py:123 +#: extensions/admin/views/domain.py:125 msgid "Domain created" msgstr "Doména vytvořena" -#: extensions/admin/views/domain.py:128 +#: extensions/admin/views/domain.py:130 msgid "New domain" msgstr "Nová doména" -#: extensions/admin/views/domain.py:155 +#: extensions/admin/views/domain.py:158 msgid "Domain modified" msgstr "Doména upravena" -#: extensions/admin/views/domain.py:189 +#: extensions/admin/views/domain.py:192 msgid "You can't delete your own domain" msgstr "Nemůžete smazat vlastní doménu" -#: extensions/admin/views/domain.py:192 +#: extensions/admin/views/domain.py:195 msgid "Domain deleted" msgid_plural "Domains deleted" msgstr[0] "Doména smazána" @@ -1340,41 +1352,41 @@ msgstr "Exportovat identity" msgid "Export domains" msgstr "Exportovat domény" -#: extensions/admin/views/identity.py:103 -#: extensions/admin/views/identity.py:224 -#: extensions/admin/views/identity.py:229 extensions/amavis/views.py:179 -#: extensions/amavis/views.py:185 extensions/amavis/views.py:220 -#: extensions/amavis/views.py:224 extensions/amavis/views.py:226 -#: extensions/webmail/views.py:47 extensions/webmail/views.py:65 -#: extensions/webmail/views.py:79 extensions/webmail/views.py:97 -#: extensions/webmail/views.py:114 extensions/webmail/views.py:200 -#: extensions/webmail/views.py:223 extensions/webmail/views.py:396 -#: extensions/webmail/views.py:430 extensions/webmail/views.py:443 -#: extensions/webmail/views.py:472 extensions/webmail/views.py:512 +#: extensions/admin/views/identity.py:104 +#: extensions/admin/views/identity.py:227 +#: extensions/admin/views/identity.py:232 extensions/amavis/views.py:144 +#: extensions/amavis/views.py:148 extensions/amavis/views.py:181 +#: extensions/amavis/views.py:186 extensions/amavis/views.py:188 +#: extensions/webmail/views.py:49 extensions/webmail/views.py:67 +#: extensions/webmail/views.py:81 extensions/webmail/views.py:99 +#: extensions/webmail/views.py:116 extensions/webmail/views.py:202 +#: extensions/webmail/views.py:225 extensions/webmail/views.py:401 +#: extensions/webmail/views.py:451 extensions/webmail/views.py:467 +#: extensions/webmail/views.py:496 extensions/webmail/views.py:536 #: lib/formutils.py:44 lib/formutils.py:49 msgid "Invalid request" msgstr "Neplatný požadavek" -#: extensions/admin/views/identity.py:149 +#: extensions/admin/views/identity.py:151 msgid "Account created" msgstr "Účet vytvořen" -#: extensions/admin/views/identity.py:155 +#: extensions/admin/views/identity.py:157 msgid "New account" msgstr "Nový účet" -#: extensions/admin/views/identity.py:190 +#: extensions/admin/views/identity.py:193 msgid "Account updated" msgstr "Účet aktualizován" -#: extensions/admin/views/identity.py:214 +#: extensions/admin/views/identity.py:217 msgid "Account deleted" msgid_plural "Accounts deleted" msgstr[0] "Účet smazán" msgstr[1] "Účty smazány" msgstr[2] "Účtů smazáno" -#: extensions/admin/views/import.py:39 +#: extensions/admin/views/import.py:40 #, fuzzy, python-format msgid "" "Provide a CSV file where lines respect one of the following formats:\n" @@ -1397,21 +1409,21 @@ msgstr "" "předchozích hodnot.

\n" "

Můžete také použít odlišný oddělovač hodnot.

\n" -#: extensions/admin/views/import.py:50 +#: extensions/admin/views/import.py:51 msgid "Import domains" msgstr "Importovat domény" -#: extensions/admin/views/import.py:129 +#: extensions/admin/views/import.py:131 #, python-format msgid "Object already exists: %s" msgstr "Objekt již existuje: %s" -#: extensions/admin/views/import.py:133 +#: extensions/admin/views/import.py:135 #, python-format msgid "%d objects imported successfully" msgstr "%d objektů úspěšně importováno" -#: extensions/admin/views/import.py:153 +#: extensions/admin/views/import.py:155 #, fuzzy msgid "" "Provide a CSV file where lines respect one of the following formats:\n" @@ -1441,11 +1453,11 @@ msgstr "" "\n" "

Můžete také použít odlišný oddělovač hodnot.

\n" -#: extensions/admin/views/import.py:165 +#: extensions/admin/views/import.py:167 msgid "Import identities" msgstr "Importovat identity" -#: extensions/admin/views/user.py:37 +#: extensions/admin/views/user.py:38 msgid "Forward updated" msgstr "Přeposílání aktualizováno" @@ -1453,7 +1465,7 @@ msgstr "Přeposílání aktualizováno" msgid "Simple amavis management frontend" msgstr "Jednoduché rozhraní pro správu amavis" -#: extensions/amavis/__init__.py:52 extensions/amavis/general_callbacks.py:17 +#: extensions/amavis/__init__.py:52 extensions/amavis/general_callbacks.py:18 msgid "Quarantine" msgstr "Karanténa" @@ -1555,20 +1567,20 @@ msgstr "Počet zobrazených zpráv na stránce" msgid "Set the maximum number of messages displayed in a page" msgstr "Nastavit maximální počet zobrazených zpráv na stránce" -#: extensions/amavis/general_callbacks.py:81 +#: extensions/amavis/general_callbacks.py:82 msgid "pending requests" msgstr "nevyřízené požadavky" -#: extensions/amavis/general_callbacks.py:124 +#: extensions/amavis/general_callbacks.py:125 #, fuzzy msgid "Pending requests" msgstr "nevyřízené požadavky" -#: extensions/amavis/general_callbacks.py:134 +#: extensions/amavis/general_callbacks.py:135 msgid "Content filter" msgstr "Filtr obsahu" -#: extensions/amavis/lib.py:57 +#: extensions/amavis/lib.py:56 #, python-format msgid "Connection to amavis failed: %s" msgstr "Spojení s amavis selhalo: %s" @@ -1578,12 +1590,12 @@ msgid "Virus filter" msgstr "Filtr virů" #: extensions/amavis/models.py:94 extensions/amavis/models.py:102 -#: extensions/amavis/models.py:110 extensions/sievefilters/views.py:290 +#: extensions/amavis/models.py:110 extensions/sievefilters/views.py:293 msgid "yes" msgstr "ano" #: extensions/amavis/models.py:95 extensions/amavis/models.py:103 -#: extensions/amavis/models.py:111 extensions/sievefilters/views.py:294 +#: extensions/amavis/models.py:111 extensions/sievefilters/views.py:297 msgid "no" msgstr "ne" @@ -1631,24 +1643,26 @@ msgstr "" "Upravit předmět nevyžádané zprávy uvedeným textem. Pro zachování globálního " "nastavení serveru zatrhněte 'výchozí'." -#: extensions/amavis/sql_listing.py:31 +#: extensions/amavis/sql_listing.py:29 msgid "Score" msgstr "" -#: extensions/amavis/sql_listing.py:35 +#: extensions/amavis/sql_listing.py:33 #: extensions/amavis/templatetags/amavis_tags.py:75 -#: extensions/webmail/forms.py:7 +#: extensions/webmail/forms.py:82 msgid "To" msgstr "Komu" -#: extensions/amavis/sql_listing.py:38 -#: extensions/postfix_autoreply/forms.py:11 extensions/webmail/lib.py:44 +#: extensions/amavis/sql_listing.py:36 +#: extensions/postfix_autoreply/forms.py:10 +#: extensions/webmail/lib/listing.py:31 extensions/webmail/lib/tables.py:30 msgid "From" msgstr "Od" -#: extensions/amavis/sql_listing.py:42 extensions/sievefilters/forms.py:77 -#: extensions/webmail/forms.py:11 extensions/webmail/lib.py:40 -#: extensions/webmail/lib.py:423 templates/common/email_searchbar.html:6 +#: extensions/amavis/sql_listing.py:40 extensions/sievefilters/forms.py:77 +#: extensions/webmail/forms.py:86 extensions/webmail/lib/imapemail.py:288 +#: extensions/webmail/lib/listing.py:27 extensions/webmail/lib/tables.py:26 +#: templates/common/email_searchbar.html:6 msgid "Subject" msgstr "Předmět" @@ -1656,11 +1670,11 @@ msgstr "Předmět" msgid "Empty quarantine" msgstr "Vyprázdnit karanténu" -#: extensions/amavis/views.py:186 +#: extensions/amavis/views.py:149 msgid "Message deleted" msgstr "Zpráva smazána" -#: extensions/amavis/views.py:207 +#: extensions/amavis/views.py:168 #, python-format msgid "%(count)d message deleted successfully" msgid_plural "%(count)d messages deleted successfully" @@ -1668,15 +1682,15 @@ msgstr[0] "%(count)d zpráva úspěšně smazána" msgstr[1] "%(count)d zprávy úspěšně smazány" msgstr[2] "%(count)d zpráv úspěšně smazáno" -#: extensions/amavis/views.py:229 +#: extensions/amavis/views.py:191 msgid "Request sent" msgstr "Požadavek odeslán" -#: extensions/amavis/views.py:235 +#: extensions/amavis/views.py:197 msgid "Message released" msgstr "Zprávy odblokována" -#: extensions/amavis/views.py:268 +#: extensions/amavis/views.py:225 #, python-format msgid "%(count)d request sent" msgid_plural "%(count)d requests sent" @@ -1684,7 +1698,7 @@ msgstr[0] "%(count)d požadavek odeslán" msgstr[1] "%(count)d požadavky odeslány" msgstr[2] "%(count)d požadavků odesláno" -#: extensions/amavis/views.py:288 +#: extensions/amavis/views.py:246 #, python-format msgid "%(count)d message released successfully" msgid_plural "%(count)d messages released successfully" @@ -1692,7 +1706,7 @@ msgstr[0] "%(count)d zpráva úspěšně odblokována" msgstr[1] "%(count)d zprávy úspěšně odblokovány" msgstr[2] "%(count)d zpráv úspěšně odblokováno" -#: extensions/amavis/management/commands/amnotify.py:57 +#: extensions/amavis/management/commands/amnotify.py:61 msgid "[modoboa] Pending release requests" msgstr "[modoboa] Nevyřízené požadavky na odblokování" @@ -1945,7 +1959,7 @@ msgstr "Využití zdrojů" msgid "Auto-reply (vacation) functionality using Postfix" msgstr "Funkce automatické odpovědi (vacation) Postfix" -#: extensions/postfix_autoreply/__init__.py:47 +#: extensions/postfix_autoreply/__init__.py:49 msgid "Automatic replies" msgstr "Automatické odpovědi" @@ -1993,25 +2007,25 @@ msgid "" "The '%(name)s' macro will be replaced by the user's full name." msgstr "" -#: extensions/postfix_autoreply/forms.py:13 +#: extensions/postfix_autoreply/forms.py:12 #, fuzzy msgid "Activate your auto reply from this date" msgstr "Povolit automatické odpovědi až do uvedeného data" -#: extensions/postfix_autoreply/forms.py:19 +#: extensions/postfix_autoreply/forms.py:18 msgid "Until" msgstr "Do" -#: extensions/postfix_autoreply/forms.py:21 +#: extensions/postfix_autoreply/forms.py:20 msgid "Activate your auto reply until this date" msgstr "Povolit automatické odpovědi až do uvedeného data" -#: extensions/postfix_autoreply/forms.py:49 #: extensions/postfix_autoreply/forms.py:55 +#: extensions/postfix_autoreply/forms.py:62 msgid "This date is over" msgstr "Zvolené datum je v minulosti" -#: extensions/postfix_autoreply/forms.py:59 +#: extensions/postfix_autoreply/forms.py:67 #, fuzzy msgid "Must be greater than start date" msgstr "Je větší než" @@ -2178,22 +2192,22 @@ msgstr "Doména, na kterou tento alias odkazuje" msgid "Relay domain %s does not exist" msgstr "Doména '%s' neexistuje" -#: extensions/postfix_relay_domains/views.py:26 +#: extensions/postfix_relay_domains/views.py:28 #, fuzzy msgid "Relay domain created" msgstr "Doména vytvořena" -#: extensions/postfix_relay_domains/views.py:31 +#: extensions/postfix_relay_domains/views.py:33 #, fuzzy msgid "New relay domain" msgstr "Nová doména" -#: extensions/postfix_relay_domains/views.py:54 +#: extensions/postfix_relay_domains/views.py:57 #, fuzzy msgid "Relay domain modified" msgstr "Doména upravena" -#: extensions/postfix_relay_domains/views.py:77 +#: extensions/postfix_relay_domains/views.py:80 #, fuzzy msgid "Relay domain deleted" msgstr "Doména smazána" @@ -2288,7 +2302,7 @@ msgstr "Odesílatel" msgid "Recipient" msgstr "Příjemce" -#: extensions/sievefilters/forms.py:80 extensions/webmail/forms.py:8 +#: extensions/sievefilters/forms.py:80 extensions/webmail/forms.py:83 msgid "Cc" msgstr "Kopie" @@ -2312,6 +2326,11 @@ msgstr "Přesunout zprávu do" msgid "Redirect message to" msgstr "Přesměrovat zprávu na" +#: extensions/sievefilters/forms.py:104 +#, fuzzy +msgid "Wrong filter name" +msgstr "Název souboru" + #: extensions/sievefilters/lib.py:40 msgid "Connection to MANAGESIEVE server failed, check your configuration" msgstr "Spojení se serverem ManageSieve selhalo, zkontrolujte nastavení" @@ -2320,53 +2339,53 @@ msgstr "Spojení se serverem ManageSieve selhalo, zkontrolujte nastavení" msgid "Not enough space on server" msgstr "Nedostatek prostoru na serveru" -#: extensions/sievefilters/views.py:78 +#: extensions/sievefilters/views.py:80 msgid "Failed to retrieve filters set" msgstr "Nebylo možné získat sadu filtrů" -#: extensions/sievefilters/views.py:138 +#: extensions/sievefilters/views.py:141 #: extensions/sievefilters/templatetags/sfilters_tags.py:33 msgid "New filter" msgstr "Nový filtr" -#: extensions/sievefilters/views.py:146 +#: extensions/sievefilters/views.py:149 msgid "Filter created" msgstr "Filtr vytvořen" -#: extensions/sievefilters/views.py:160 +#: extensions/sievefilters/views.py:163 #: extensions/sievefilters/templatetags/sfilters_tags.py:78 msgid "Edit filter" msgstr "Upravit filtr" -#: extensions/sievefilters/views.py:169 +#: extensions/sievefilters/views.py:172 msgid "Filter modified" msgstr "Filtr upraven" -#: extensions/sievefilters/views.py:192 +#: extensions/sievefilters/views.py:195 msgid "Filter removed" msgstr "Filtr odstraněn" -#: extensions/sievefilters/views.py:193 +#: extensions/sievefilters/views.py:196 msgid "Failed to remove filter" msgstr "Nezdařilo se odstranit filtr" -#: extensions/sievefilters/views.py:208 +#: extensions/sievefilters/views.py:211 msgid "Filters set saved" msgstr "Sada filtrů uložena" -#: extensions/sievefilters/views.py:224 +#: extensions/sievefilters/views.py:227 msgid "Filters set created" msgstr "Sada filtrů vytvořena" -#: extensions/sievefilters/views.py:228 +#: extensions/sievefilters/views.py:231 msgid "Create a new filters set" msgstr "Vytvořit novou sadu filtrů" -#: extensions/sievefilters/views.py:247 +#: extensions/sievefilters/views.py:250 msgid "Filters set deleted" msgstr "Sada filtrů vymazána" -#: extensions/sievefilters/views.py:260 +#: extensions/sievefilters/views.py:263 msgid "Filters set activated" msgstr "Sada filtrů povolena" @@ -2455,14 +2474,6 @@ msgstr "Adresář pro ukládání RRD souborů" msgid "Path to directory where RRD files are stored" msgstr "Cesta k adresáři, ve kterém budou ukládány RRD soubory" -#: extensions/stats/app_settings.py:26 -msgid "Directory to store PNG files" -msgstr "Adresář pro ukládání PNG souborů" - -#: extensions/stats/app_settings.py:28 -msgid "Path to directory where PNG files are stored" -msgstr "Cesta k adresáři, ve kterém budou ukládány PNG soubory" - #: extensions/stats/general_callbacks.py:12 msgid "Statistics" msgstr "Statistiky" @@ -2516,23 +2527,23 @@ msgstr "odeslaná velikost" msgid "Mail traffic" msgstr "Provoz emailů" -#: extensions/stats/grapher.py:8 +#: extensions/stats/grapher.py:9 msgid "Day" msgstr "Den" -#: extensions/stats/grapher.py:9 +#: extensions/stats/grapher.py:10 msgid "Week" msgstr "Týden" -#: extensions/stats/grapher.py:10 +#: extensions/stats/grapher.py:11 msgid "Month" msgstr "Měsíc" -#: extensions/stats/grapher.py:11 +#: extensions/stats/grapher.py:12 msgid "Year" msgstr "Rok" -#: extensions/stats/grapher.py:60 +#: extensions/stats/grapher.py:61 msgid "Total" msgstr "Celkem" @@ -2718,7 +2729,7 @@ msgstr "Odpověď serveru" msgid "Unknown action" msgstr "Neznámá akce" -#: extensions/webmail/forms.py:9 +#: extensions/webmail/forms.py:84 msgid "Cci" msgstr "BCC" @@ -2726,24 +2737,7 @@ msgstr "BCC" msgid "Webmail" msgstr "Webmail" -#: extensions/webmail/imaputils.py:242 -msgid "Failed to retrieve hierarchy delimiter" -msgstr "Nebylo možné zjistit hierarchický oddělovač" - -#: extensions/webmail/imaputils.py:283 -#, python-format -msgid "Connection to IMAP server failed: %s" -msgstr "Spojení se serverem IMAP selhalo: %s" - -#: extensions/webmail/lib.py:371 -msgid "wrote:" -msgstr "napsal/a:" - -#: extensions/webmail/lib.py:437 extensions/webmail/lib.py:441 -msgid "Original message" -msgstr "Původní zpráva" - -#: extensions/webmail/views.py:85 +#: extensions/webmail/views.py:87 #, python-format msgid "%(count)d message deleted" msgid_plural "%(count)d messages deleted" @@ -2751,54 +2745,72 @@ msgstr[0] "%(count)d zpráva smazána" msgstr[1] "%(count)d zprávy smazány" msgstr[2] "%(count)d zpráv smazáno" -#: extensions/webmail/views.py:116 lib/email_listing.py:138 +#: extensions/webmail/views.py:118 lib/email_listing.py:128 msgid "Empty mailbox" msgstr "Vyprázdnit schránku" -#: extensions/webmail/views.py:142 +#: extensions/webmail/views.py:144 msgid "Mailbox created" msgstr "Schránka vytvořena" -#: extensions/webmail/views.py:148 -#: extensions/webmail/templatetags/webmail_tags.py:175 +#: extensions/webmail/views.py:150 +#: extensions/webmail/templatetags/webmail_tags.py:177 msgid "Create a new mailbox" msgstr "Vytvořit novou schránku" -#: extensions/webmail/views.py:167 extensions/webmail/views.py:202 +#: extensions/webmail/views.py:169 extensions/webmail/views.py:204 msgid "Edit mailbox" msgstr "Upravit schránku" -#: extensions/webmail/views.py:183 +#: extensions/webmail/views.py:185 msgid "Mailbox updated" msgstr "Schránka aktualizována" -#: extensions/webmail/views.py:255 +#: extensions/webmail/views.py:257 msgid "Failed to save attachment: " msgstr "Nebylo možné uložit přílohu:" -#: extensions/webmail/views.py:258 +#: extensions/webmail/views.py:260 #, python-format msgid "Attachment is too big (limit: %s)" msgstr "Příloha je příliš velká (omezení: %s)" -#: extensions/webmail/views.py:264 +#: extensions/webmail/views.py:266 #: extensions/webmail/templates/webmail/compose.html:15 #: extensions/webmail/templates/webmail/headers.html:4 msgid "Attachments" msgstr "Přílohy" -#: extensions/webmail/views.py:281 +#: extensions/webmail/views.py:283 msgid "Bad query" msgstr "Neplatný dotaz" -#: extensions/webmail/views.py:293 +#: extensions/webmail/views.py:295 msgid "Failed to remove attachment: " msgstr "Nebylo možné odstranit přílohu:" -#: extensions/webmail/views.py:298 +#: extensions/webmail/views.py:300 msgid "Unknown attachment" msgstr "Neznámá příloha" +#: extensions/webmail/lib/imapemail.py:235 +msgid "wrote:" +msgstr "napsal/a:" + +#: extensions/webmail/lib/imapemail.py:302 +#: extensions/webmail/lib/imapemail.py:305 +msgid "Original message" +msgstr "Původní zpráva" + +#: extensions/webmail/lib/imaputils.py:242 +msgid "Failed to retrieve hierarchy delimiter" +msgstr "Nebylo možné zjistit hierarchický oddělovač" + +#: extensions/webmail/lib/imaputils.py:283 +#, python-format +msgid "Connection to IMAP server failed: %s" +msgstr "Spojení se serverem IMAP selhalo: %s" + #: extensions/webmail/templates/webmail/attachments.html:6 msgid "Attach" msgstr "Připojit" @@ -2827,7 +2839,7 @@ msgstr[2] "%(counter)s souborů" msgid "Parent mailbox" msgstr "Nadřazená schránka" -#: extensions/webmail/templates/webmail/index.html:40 +#: extensions/webmail/templates/webmail/index.html:42 msgid "Mailbox quota" msgstr "Kvóta schránky" @@ -2887,11 +2899,11 @@ msgstr "Stlačit složku" msgid "Empty folder" msgstr "Vyprázdnit složku" -#: extensions/webmail/templatetags/webmail_tags.py:183 +#: extensions/webmail/templatetags/webmail_tags.py:185 msgid "Edit the selected mailbox" msgstr "Upravit vybranou schránku" -#: extensions/webmail/templatetags/webmail_tags.py:188 +#: extensions/webmail/templatetags/webmail_tags.py:190 msgid "Remove the selected mailbox" msgstr "Odstranit označené schránky" @@ -2938,11 +2950,6 @@ msgstr "Super správce" msgid "Domain administrator" msgstr "Správce domény" -#: lib/permissions.py:73 -#, python-format -msgid "Failed to grant access (%s)" -msgstr "Nebylo možné povolit přístup (%s)" - #: lib/tables.py:251 msgid "No entries to display" msgstr "Žádné položky k zobrazení" @@ -3005,6 +3012,19 @@ msgstr "Zapamatovat si" msgid "Log in" msgstr "Přihlásit" +#, fuzzy +#~ msgid "A domain %s already exists" +#~ msgstr "Schránka %s již existuje" + +#~ msgid "Directory to store PNG files" +#~ msgstr "Adresář pro ukládání PNG souborů" + +#~ msgid "Path to directory where PNG files are stored" +#~ msgstr "Cesta k adresáři, ve kterém budou ukládány PNG soubory" + +#~ msgid "Failed to grant access (%s)" +#~ msgstr "Nebylo možné povolit přístup (%s)" + #~ msgid "An alias with this name already exists" #~ msgstr "Alias s tímto názvem již existuje" diff --git a/modoboa/locale/cs_CZ/LC_MESSAGES/djangojs.po b/modoboa/locale/cs_CZ/LC_MESSAGES/djangojs.po index 6ae902c65..8908fccfb 100644 --- a/modoboa/locale/cs_CZ/LC_MESSAGES/djangojs.po +++ b/modoboa/locale/cs_CZ/LC_MESSAGES/djangojs.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: modoboa-1.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-12-15 10:16+0100\n" +"POT-Creation-Date: 2014-08-24 12:33+0200\n" "PO-Revision-Date: 2013-09-29 22:13+0100\n" "Last-Translator: Miroslav Abrahám \n" "Language-Team: CS \n" @@ -108,11 +108,11 @@ msgstr "Odstranit vybranou schránku?" msgid "Mailbox removed" msgstr "Schránka odstraněna" -#: extensions/webmail/static/webmail/js/webmail.js:746 +#: extensions/webmail/static/webmail/js/webmail.js:752 msgid "Message sent" msgstr "Zpráva odeslána" -#: extensions/webmail/static/webmail/js/webmail.js:997 +#: extensions/webmail/static/webmail/js/webmail.js:1003 #, c-format msgid "%s file" msgid_plural "%s files" @@ -120,7 +120,7 @@ msgstr[0] "%s soubor" msgstr[1] "%s soubory" msgstr[2] "%s souborů" -#: extensions/webmail/static/webmail/js/webmail.js:1031 +#: extensions/webmail/static/webmail/js/webmail.js:1037 #, c-format msgid "Moving %s message" msgid_plural "Moving %s messages" diff --git a/modoboa/locale/de/LC_MESSAGES/django.po b/modoboa/locale/de/LC_MESSAGES/django.po index 309061009..f744a59c8 100644 --- a/modoboa/locale/de/LC_MESSAGES/django.po +++ b/modoboa/locale/de/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Modoboa-0.9\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-12-15 10:21+0100\n" +"POT-Creation-Date: 2014-08-24 12:29+0200\n" "PO-Revision-Date: 2013-12-23 14:26+0100\n" "Last-Translator: Patrick Ben Koetter \n" "Language-Team: DE \n" @@ -20,273 +20,290 @@ msgstr "" "X-Poedit-Country: GERMANY\n" "X-Poedit-SourceCharset: utf-8\n" -#: core/__init__.py:52 -#: core/__init__.py:53 -#: extensions/admin/forms/account.py:326 -#: extensions/admin/forms/domain.py:251 -#: extensions/admin/views/domain.py:95 -#: extensions/admin/views/identity.py:127 +#: core/__init__.py:52 core/__init__.py:53 +#: extensions/admin/forms/account.py:326 extensions/admin/forms/domain.py:256 +#: extensions/admin/views/domain.py:97 extensions/admin/views/identity.py:129 #: extensions/postfix_autoreply/app_settings.py:11 #: extensions/postfix_relay_domains/forms.py:138 #: extensions/sievefilters/app_settings.py:50 -#: extensions/stats/app_settings.py:11 -#: extensions/webmail/app_settings.py:11 +#: extensions/stats/app_settings.py:11 extensions/webmail/app_settings.py:11 msgid "General" msgstr "Grundsätzlich" -#: core/app_settings.py:36 +#: core/app_settings.py:39 msgid "Authentication" msgstr "Authentifizierung" -#: core/app_settings.py:39 +#: core/app_settings.py:42 msgid "Authentication type" msgstr "Authentifizierungstyp" -#: core/app_settings.py:40 +#: core/app_settings.py:43 msgid "Local" msgstr "Lokal" -#: core/app_settings.py:43 +#: core/app_settings.py:46 msgid "The backend used for authentication" msgstr "Das backend, das zur Authentifizierung genutzt wird" -#: core/app_settings.py:48 +#: core/app_settings.py:51 msgid "Default password scheme" msgstr "Standard Passwort-Schema" -#: core/app_settings.py:51 +#: core/app_settings.py:54 msgid "md5crypt (weak)" msgstr "md5crypt (schwach)" -#: core/app_settings.py:52 +#: core/app_settings.py:55 msgid "sha256 (weak)" msgstr "sha256 (schwach)" -#: core/app_settings.py:53 +#: core/app_settings.py:56 msgid "md5 (weak)" msgstr "md5 (schwach)" -#: core/app_settings.py:54 +#: core/app_settings.py:57 msgid "crypt (weak)" msgstr "crypt (schwach)" -#: core/app_settings.py:55 +#: core/app_settings.py:58 msgid "plain (weak)" msgstr "plain (schwach)" -#: core/app_settings.py:57 +#: core/app_settings.py:60 msgid "Scheme used to crypt mailbox passwords" msgstr "Verschlüsselungsschema der Mailbox-Passworte" -#: core/app_settings.py:61 +#: core/app_settings.py:64 msgid "Rounds" msgstr "Runden" -#: core/app_settings.py:64 -msgid "Number of rounds to use (only used by sha256crypt and sha512crypt). Must be between 1000 and 999999999, inclusive." -msgstr "Anzahl zu verwendender Runden (nur für sha256crypt und sha512crypt). Zahl muss zwischen 1000 und 999999999 liegen." +#: core/app_settings.py:67 +msgid "" +"Number of rounds to use (only used by sha256crypt and sha512crypt). Must be " +"between 1000 and 999999999, inclusive." +msgstr "" +"Anzahl zu verwendender Runden (nur für sha256crypt und sha512crypt). Zahl " +"muss zwischen 1000 und 999999999 liegen." -#: core/app_settings.py:70 +#: core/app_settings.py:73 msgid "Secret key" msgstr "Geheimer Schlüssel" -#: core/app_settings.py:72 +#: core/app_settings.py:75 msgid "Key used to encrypt/decrypt passwords" msgstr "Verwendeter Schlüssel, um Passworte zu ver-/entschlüsseln" -#: core/app_settings.py:76 +#: core/app_settings.py:79 msgid "LDAP settings" msgstr "LDAP-Einstellungen" -#: core/app_settings.py:79 -#: extensions/sievefilters/app_settings.py:22 -#: extensions/webmail/app_settings.py:22 -#: extensions/webmail/app_settings.py:42 +#: core/app_settings.py:82 extensions/sievefilters/app_settings.py:22 +#: extensions/webmail/app_settings.py:22 extensions/webmail/app_settings.py:42 msgid "Server address" msgstr "Server-Adresse" -#: core/app_settings.py:81 +#: core/app_settings.py:85 msgid "The IP address of the DNS name of the LDAP server" msgstr "Die IP-Adresse des LDAP-Server Hostnamens" -#: core/app_settings.py:85 -#: extensions/sievefilters/app_settings.py:28 -#: extensions/webmail/app_settings.py:34 -#: extensions/webmail/app_settings.py:58 +#: core/app_settings.py:89 extensions/sievefilters/app_settings.py:28 +#: extensions/webmail/app_settings.py:34 extensions/webmail/app_settings.py:58 msgid "Server port" msgstr "Server-Port" -#: core/app_settings.py:87 +#: core/app_settings.py:91 msgid "The TCP port number used by the LDAP server" msgstr "Der TCP Port des LDAP-Servers" -#: core/app_settings.py:91 -#: extensions/webmail/app_settings.py:28 +#: core/app_settings.py:95 extensions/webmail/app_settings.py:28 msgid "Use a secured connection" msgstr "Gesicherte Verbindung verwenden" -#: core/app_settings.py:93 +#: core/app_settings.py:98 msgid "Use an SSL/TLS connection to access the LDAP server" msgstr "SSL/TLS-Verbindung für Zugriff auf LDAP-Server verwenden" -#: core/app_settings.py:97 +#: core/app_settings.py:102 msgid "Authentication method" msgstr "Authentifizierungsmethode" -#: core/app_settings.py:98 +#: core/app_settings.py:103 msgid "Search and bind" msgstr "Suchen und Bind anwenden" -#: core/app_settings.py:99 +#: core/app_settings.py:104 msgid "Direct bind" msgstr "Direkter Bind" -#: core/app_settings.py:101 +#: core/app_settings.py:106 msgid "Choose the authentication method to use" msgstr "Wählen Sie die Authentifizierungsmethode aus" -#: core/app_settings.py:106 +#: core/app_settings.py:111 msgid "Bind DN" msgstr "Bind DN" -#: core/app_settings.py:108 -msgid "The distinguished name to use when binding to the LDAP server. Leave empty for an anonymous bind" -msgstr "Der DN für einen Bind an den LDAP-Server. Nichts eingeben für anonymen Bind." +#: core/app_settings.py:114 +msgid "" +"The distinguished name to use when binding to the LDAP server. Leave empty " +"for an anonymous bind" +msgstr "" +"Der DN für einen Bind an den LDAP-Server. Nichts eingeben für anonymen Bind." -#: core/app_settings.py:113 +#: core/app_settings.py:121 msgid "Bind password" msgstr "Bind Passwort" -#: core/app_settings.py:115 +#: core/app_settings.py:124 msgid "The password to use when binding to the LDAP server (with 'Bind DN')" msgstr "Das Kennwort wenn mit dem Bind DN angemeldet wird." -#: core/app_settings.py:121 +#: core/app_settings.py:132 msgid "Users search base" msgstr "Anwender Search Base" -#: core/app_settings.py:123 +#: core/app_settings.py:135 msgid "The distinguished name of the search base used to find users" msgstr "Der DN der Search Base mit der Anwenderkonten gefunden werden" -#: core/app_settings.py:128 +#: core/app_settings.py:141 msgid "Search filter" msgstr "Suchfilter" -#: core/app_settings.py:130 -msgid "An optional filter string (e.g. '(objectClass=person)'). In order to be valid, it must be enclosed in parentheses." -msgstr "Ein optionaler Filter z.B. (objectClass=person). Das Filter muss entsprechend der LDAP-Konvention in Klammern gesetzt werden." +#: core/app_settings.py:144 +msgid "" +"An optional filter string (e.g. '(objectClass=person)'). In order to be " +"valid, it must be enclosed in parentheses." +msgstr "" +"Ein optionaler Filter z.B. (objectClass=person). Das Filter muss " +"entsprechend der LDAP-Konvention in Klammern gesetzt werden." -#: core/app_settings.py:135 +#: core/app_settings.py:151 msgid "User DN template" msgstr "Vorlage für User DN" -#: core/app_settings.py:137 +#: core/app_settings.py:154 #, python-format -msgid "The template used to construct a user's DN. It should contain one placeholder (ie. %(user)s)" -msgstr "Die Vorlage für einen User DN. Sie sollte einen Platzhalter z.B. %(user)s enthalten." +msgid "" +"The template used to construct a user's DN. It should contain one " +"placeholder (ie. %(user)s)" +msgstr "" +"Die Vorlage für einen User DN. Sie sollte einen Platzhalter z.B. %(user)s " +"enthalten." -#: core/app_settings.py:142 +#: core/app_settings.py:161 msgid "Password attribute" msgstr "Passwort-Attribut" -#: core/app_settings.py:144 +#: core/app_settings.py:163 msgid "The attribute used to store user passwords" msgstr "Das Attribut für Benutzerpassworte" -#: core/app_settings.py:148 +#: core/app_settings.py:167 msgid "Active Directory" msgstr "Active Directory" -#: core/app_settings.py:150 +#: core/app_settings.py:170 msgid "Tell if the LDAP server is an Active Directory one" msgstr "Auswählen wenn der LDAP-Server ein Active Directory ist." -#: core/app_settings.py:154 +#: core/app_settings.py:174 msgid "Administrator groups" msgstr "Administrator-Gruppen" -#: core/app_settings.py:157 -msgid "Members of those LDAP Posix groups will be created as domain administrators. Use ';' characters to separate groups." -msgstr "Mitglieder dieser LDAP Posix-Gruppe werden als Domain-Administratoren angelegt werden. Nutzen sie ';', um Gruppen zu separieren." +#: core/app_settings.py:177 +msgid "" +"Members of those LDAP Posix groups will be created as domain administrators. " +"Use ';' characters to separate groups." +msgstr "" +"Mitglieder dieser LDAP Posix-Gruppe werden als Domain-Administratoren " +"angelegt werden. Nutzen sie ';', um Gruppen zu separieren." -#: core/app_settings.py:164 +#: core/app_settings.py:184 msgid "Groups search base" msgstr "Gruppen Search Base" -#: core/app_settings.py:167 +#: core/app_settings.py:187 msgid "The distinguished name of the search base used to find groups" msgstr "Der DN der Search Base mit Gruppen gefunden werden" -#: core/app_settings.py:172 +#: core/app_settings.py:193 +#, fuzzy +msgid "Domain/mailbox creation" +msgstr "Domäne erstellt." + +#: core/app_settings.py:196 +msgid "" +"Automatically create a domain and a mailbox when a new user is created just " +"after the first successful authentication." +msgstr "" + +#: core/app_settings.py:201 #: extensions/admin/templates/admin/editdomainform.html:7 msgid "Miscellaneous" msgstr "Verschiedenes" -#: core/app_settings.py:175 +#: core/app_settings.py:204 msgid "Maximum log record age" msgstr "Maximales Alter eines Log-Eintrags" -#: core/app_settings.py:177 +#: core/app_settings.py:206 msgid "The maximum age in days of a log record" msgstr "Das maximale Alter eines Log-Eintrags (in Tagen)" -#: core/app_settings.py:181 +#: core/app_settings.py:210 msgid "Items per page" msgstr "Einträge pro Seite" -#: core/app_settings.py:183 +#: core/app_settings.py:212 msgid "Number of displayed items per page" msgstr "Anzahl dargestellter Einträge pro Seite" -#: core/app_settings.py:187 +#: core/app_settings.py:216 msgid "Default top redirection" msgstr "Standard Top-Redirect" -#: core/app_settings.py:190 +#: core/app_settings.py:220 msgid "The default redirection used when no application is specified" msgstr "Die Standardumleitung wenn kein Programm angegeben wurde" -#: core/app_settings.py:218 +#: core/app_settings.py:249 msgid "Key must be either 16, 24, or 32 bytes long" msgstr "Schlüssel muss 16, 24 oder 32 Byte lang sein" -#: core/app_settings.py:227 -#: extensions/postfix_autoreply/app_settings.py:53 +#: core/app_settings.py:258 extensions/postfix_autoreply/app_settings.py:53 msgid "Invalid syntax" msgstr "Ungültige Syntax" -#: core/app_settings.py:233 +#: core/app_settings.py:264 msgid "Invalid rounds number" msgstr "Ungültige Zahl für Runden" -#: core/app_settings.py:256 +#: core/app_settings.py:287 msgid "This field is required" msgstr "Dieses Feld ist erforderlich" -#: core/app_settings.py:317 -#: extensions/amavis/app_settings.py:87 +#: core/app_settings.py:349 extensions/amavis/app_settings.py:87 #: extensions/amavis/templates/amavis/main_action_bar.html:29 #: extensions/webmail/app_settings.py:73 msgid "Display" msgstr "Darstellung" -#: core/app_settings.py:321 +#: core/app_settings.py:353 msgid "Prefered language" msgstr "Bevorzugte Sprache" -#: core/app_settings.py:327 +#: core/app_settings.py:359 msgid "Prefered language to display pages" msgstr "Bevorzugte Sprache für Seitendarstellung" -#: core/forms.py:10 -#: extensions/admin/forms/account.py:19 +#: core/forms.py:10 extensions/admin/forms/account.py:19 #: extensions/admin/templates/admin/editdomainform.html:13 msgid "Username" msgstr "Benutzername" -#: core/forms.py:14 -#: extensions/admin/forms/account.py:31 +#: core/forms.py:14 extensions/admin/forms/account.py:31 msgid "Password" msgstr "Passwort" @@ -298,8 +315,7 @@ msgstr "Altes Passwort" msgid "New password" msgstr "Neues Passwort" -#: core/forms.py:33 -#: extensions/admin/forms/account.py:34 +#: core/forms.py:33 extensions/admin/forms/account.py:34 msgid "Confirmation" msgstr "Bestätigung" @@ -331,8 +347,7 @@ msgstr "Konnte Kennwort nicht aktualisieren: LDAP-Modul nicht installiert" msgid "account" msgstr "Konto" -#: core/models.py:321 -#: extensions/admin/models/domain.py:135 +#: core/models.py:321 extensions/admin/models/domain.py:144 #: extensions/admin/models/domain_alias.py:39 #: extensions/postfix_relay_domains/models.py:134 #: extensions/postfix_relay_domains/models.py:190 @@ -343,18 +358,19 @@ msgstr "Ungültige Zeile" msgid "You can't import an account with a role greater than yours" msgstr "Sie können kein Konto einer höheren Rolle importieren" -#: core/models.py:331 +#: core/models.py:337 #, python-format msgid "The simple user '%s' must have a valid email address" msgstr "Der normale Benutzer '%s' muss eine gültige E-Mail-Adresse besitzen" -#: core/models.py:335 +#: core/models.py:341 #, python-format msgid "username and email fields must not differ for '%s'" -msgstr "Die Felder für Benutzername und E-Mail für '%s' dürfen sich nicht unterscheiden" +msgstr "" +"Die Felder für Benutzername und E-Mail für '%s' dürfen sich nicht " +"unterscheiden" -#: core/models.py:404 -#: extensions/admin/models/alias.py:33 +#: core/models.py:410 extensions/admin/models/alias.py:35 #: extensions/admin/models/domain.py:32 #: extensions/admin/models/domain_alias.py:17 #: extensions/postfix_autoreply/models.py:28 @@ -363,32 +379,29 @@ msgstr "Die Felder für Benutzername und E-Mail für '%s' dürfen sich nicht unt msgid "enabled" msgstr "aktiviert" -#: core/models.py:405 +#: core/models.py:411 msgid "Check to enable this extension" msgstr "Auswählen, um diese Erweiterung zu aktivieren" -#: core/models.py:475 +#: core/models.py:491 msgid "added" msgstr "hinzugefügt" -#: core/models.py:478 +#: core/models.py:494 msgid "modified" msgstr "verändert" -#: core/models.py:480 -#: core/models.py:504 +#: core/models.py:496 core/models.py:521 #, python-format msgid "%(object)s '%(name)s' %(action)s by user %(user)s" msgstr "%(object)s '%(name)s' %(action)s der Identität %(user)s" -#: core/models.py:506 +#: core/models.py:523 msgid "deleted" msgstr "entfernt" -#: core/tables.py:8 -#: core/templates/core/information.html:8 -#: extensions/admin/tables.py:9 -#: extensions/admin/forms/domain.py:182 +#: core/tables.py:8 core/templates/core/information.html:8 +#: extensions/admin/tables.py:9 extensions/admin/forms/domain.py:187 #: extensions/admin/templates/admin/domains_table.html:5 #: extensions/admin/templates/admin/editdomainform.html:13 #: extensions/admin/templates/admin/identities_table.html:5 @@ -397,18 +410,15 @@ msgstr "entfernt" msgid "Name" msgstr "Name" -#: core/tables.py:10 -#: extensions/admin/tables.py:11 +#: core/tables.py:10 extensions/admin/tables.py:11 msgid "Version" msgstr "Version" -#: core/tables.py:12 -#: extensions/admin/tables.py:13 +#: core/tables.py:12 extensions/admin/tables.py:13 msgid "Description" msgstr "Beschreibung" -#: core/templates/core/extensions.html:2 -#: core/templatetags/core_tags.py:48 +#: core/templates/core/extensions.html:2 core/templatetags/core_tags.py:48 msgid "Extensions" msgstr "Erweiterungen" @@ -416,14 +426,12 @@ msgstr "Erweiterungen" msgid "Choose the extension(s) to use" msgstr "Extension auswählen" -#: core/templates/core/extensions.html:6 -#: core/templates/core/parameters.html:7 +#: core/templates/core/extensions.html:6 core/templates/core/parameters.html:7 #: core/templates/core/user_preferences.html:8 msgid "Save" msgstr "Speichern" -#: core/templates/core/information.html:2 -#: core/templatetags/core_tags.py:53 +#: core/templates/core/information.html:2 core/templatetags/core_tags.py:53 msgid "Information" msgstr "Information" @@ -447,8 +455,7 @@ msgstr "Gruppenname" msgid "Last login" msgstr "Letzte Anmeldung" -#: core/templates/core/logs.html:2 -#: core/templatetags/core_tags.py:57 +#: core/templates/core/logs.html:2 core/templatetags/core_tags.py:57 msgid "Logs" msgstr "Logs" @@ -456,10 +463,9 @@ msgstr "Logs" msgid "Previously on Modoboa..." msgstr "Vorher auf Modoboa…" -#: core/templates/core/logs.html:6 -#: extensions/amavis/sql_listing.py:46 -#: extensions/webmail/lib.py:48 -#: extensions/webmail/lib.py:425 +#: core/templates/core/logs.html:6 extensions/amavis/sql_listing.py:44 +#: extensions/webmail/lib/imapemail.py:290 +#: extensions/webmail/lib/listing.py:35 extensions/webmail/lib/tables.py:34 msgid "Date" msgstr "Datum" @@ -475,8 +481,7 @@ msgstr "Logger" msgid "Message" msgstr "Nachricht" -#: core/templates/core/parameters.html:2 -#: core/templatetags/core_tags.py:62 +#: core/templates/core/parameters.html:2 core/templatetags/core_tags.py:62 msgid "Parameters" msgstr "Parameter" @@ -488,8 +493,7 @@ msgstr "Modoboa konfigurieren" msgid "Modoboa settings" msgstr "Modoboa-Einstellungen" -#: core/templates/core/user_index.html:2 -#: core/templatetags/core_tags.py:81 +#: core/templates/core/user_index.html:2 core/templatetags/core_tags.py:81 msgid "Settings" msgstr "Einstellungen" @@ -502,8 +506,7 @@ msgstr "Einstellungen" msgid "Customize Modoboa" msgstr "Modoboa anpassen" -#: core/templates/core/user_profile.html:2 -#: core/templatetags/core_tags.py:104 +#: core/templates/core/user_profile.html:2 core/templatetags/core_tags.py:104 msgid "Profile" msgstr "Profil" @@ -513,14 +516,12 @@ msgstr "Aktualisieren sie ihre persönlichen Daten" #: core/templates/core/user_profile.html:8 #: extensions/admin/templates/admin/forward.html:8 -#: extensions/admin/views/alias.py:107 -#: extensions/admin/views/domain.py:165 -#: extensions/admin/views/identity.py:197 +#: extensions/admin/views/alias.py:112 extensions/admin/views/domain.py:168 +#: extensions/admin/views/identity.py:200 #: extensions/postfix_autoreply/templates/postfix_autoreply/autoreply.html:9 -#: extensions/postfix_relay_domains/views.py:63 -#: extensions/sievefilters/views.py:163 -#: extensions/webmail/views.py:170 -#: extensions/webmail/views.py:205 +#: extensions/postfix_relay_domains/views.py:66 +#: extensions/sievefilters/views.py:166 extensions/webmail/views.py:172 +#: extensions/webmail/views.py:207 msgid "Update" msgstr "Aktualisieren" @@ -547,9 +548,11 @@ msgstr "Identität '%s' hat sich erfolgreich angemeldet" #: core/views/auth.py:43 msgid "Your username and password didn't match. Please try again." -msgstr "Ihr Benutzername und Passwort stimmen nicht überein. Bitte versuchen Sie es noch einmal." +msgstr "" +"Ihr Benutzername und Passwort stimmen nicht überein. Bitte versuchen Sie es " +"noch einmal." -#: core/views/auth.py:66 +#: core/views/auth.py:69 #, python-format msgid "User '%s' logged out" msgstr "Identität '%s' hat sich abgemeldet" @@ -574,8 +577,7 @@ msgstr "Virus senden" msgid "Send spam" msgstr "Spam senden" -#: demo/views.py:18 -#: demo/views.py:43 +#: demo/views.py:18 demo/views.py:43 msgid "Message sent" msgstr "Nachricht gesendet" @@ -584,26 +586,31 @@ msgid "" "\n" "

Welcome to the online demo!

\n" "

Warning: the demo's concent is resetted every two hours.

\n" -"

To try the demo, the following users are available (username/password):

\n" +"

To try the demo, the following users are available (username/password):

\n" "
    \n" "
  • A super administrator : admin/password
  • \n" "
  • A domain administrator : admin@demo.local/admin
  • \n" "
  • A simple user : user@demo.local/user
  • \n" "
\n" "

Please report any issue or give any suggestion to \n" -" the mailing list.

\n" +" the " +"mailing list.

\n" msgstr "" "\n" "

Willkommen zur Online Demo!

\n" -"

Warnung: die Inhalte dieser Demo werden alle zwei Stunden gelöscht.

\n" -"

Folgende User (Benutzername/Kennwort) stehen zum Testen zur Verfügung:

\n" +"

Warnung: die Inhalte dieser Demo werden alle zwei Stunden gelöscht." +"

\n" +"

Folgende User (Benutzername/Kennwort) stehen zum Testen zur " +"Verfügung:

\n" "
    \n" "
  • Super-Administrator : admin/password
  • \n" "
  • Domänen-Administrator : admin@demo.local/admin
  • \n" "
  • Normaler Benutzer: user@demo.local/user
  • \n" "
\n" "

Probleme und Anregungen bitte an die\n" -" Mailingliste berichten.

\n" +" Mailingliste berichten.

\n" #: extensions/admin/__init__.py:48 msgid "Administration console" @@ -619,8 +626,7 @@ msgstr "Administration" #: extensions/admin/__init__.py:79 #: extensions/admin/templates/admin/domains.html:2 -#: extensions/limits/app_settings.py:19 -#: extensions/limits/models.py:17 +#: extensions/limits/app_settings.py:19 extensions/limits/models.py:17 msgid "Domains" msgstr "Domänen" @@ -640,49 +646,67 @@ msgstr "Weiterleiten" msgid "Account import failed (%s): domain does not exist" msgstr "Kann Konto nicht importieren (%s): Die Domain existiert nicht" -#: extensions/admin/app_settings.py:11 +#: extensions/admin/__init__.py:172 extensions/admin/forms/account.py:196 +#, python-format +msgid "Mailbox %s already exists" +msgstr "Mailbox %s existiert bereits" + +#: extensions/admin/__init__.py:180 +#, fuzzy, python-format +msgid "Account import failed (%s): wrong quota value" +msgstr "Kann Konto nicht importieren (%s): Die Domain existiert nicht" + +#: extensions/admin/app_settings.py:13 #: extensions/admin/templates/admin/editdomainform.html:25 -#: extensions/limits/app_settings.py:31 -#: extensions/limits/models.py:23 +#: extensions/limits/app_settings.py:31 extensions/limits/models.py:23 #: extensions/webmail/app_settings.py:107 #: extensions/webmail/templates/webmail/folders.html:4 msgid "Mailboxes" msgstr "Mailboxen" -#: extensions/admin/app_settings.py:14 +#: extensions/admin/app_settings.py:16 msgid "Handle mailboxes on filesystem" msgstr "Mailbox im Dateisystem verwalten" -#: extensions/admin/app_settings.py:16 -msgid "Rename or remove mailboxes on the filesystem when they get renamed or removed within Modoboa" -msgstr "Mailboxen auch in Dateisystem umbenennen oder entfernen wenn sie in Modoboa umbenannt oder entfernt werden" +#: extensions/admin/app_settings.py:18 +msgid "" +"Rename or remove mailboxes on the filesystem when they get renamed or " +"removed within Modoboa" +msgstr "" +"Mailboxen auch in Dateisystem umbenennen oder entfernen wenn sie in Modoboa " +"umbenannt oder entfernt werden" -#: extensions/admin/app_settings.py:20 +#: extensions/admin/app_settings.py:22 msgid "Mailboxes owner" msgstr "Mailbox-Besitzer" -#: extensions/admin/app_settings.py:22 +#: extensions/admin/app_settings.py:24 msgid "The UNIX account who owns mailboxes on the filesystem" -msgstr "UID des virtuellen Benutzers, der Besitzer der Domains, Mailboxen und Nachrichten im Dateisystem ist." +msgstr "" +"UID des virtuellen Benutzers, der Besitzer der Domains, Mailboxen und " +"Nachrichten im Dateisystem ist." -#: extensions/admin/app_settings.py:26 +#: extensions/admin/app_settings.py:28 msgid "Default domain quota" msgstr "Standard Domainquota" -#: extensions/admin/app_settings.py:29 -msgid "Default quota (in MB) applied to freshly created domains with no value specified. A value of 0 means no quota." -msgstr "Standardquota (in MB) für neu erstelle Domains ohne explizite Wertangabe. Der Wert 0 bedeutet „Kein Quota“" +#: extensions/admin/app_settings.py:31 +msgid "" +"Default quota (in MB) applied to freshly created domains with no value " +"specified. A value of 0 means no quota." +msgstr "" +"Standardquota (in MB) für neu erstelle Domains ohne explizite Wertangabe. " +"Der Wert 0 bedeutet „Kein Quota“" -#: extensions/admin/app_settings.py:36 +#: extensions/admin/app_settings.py:38 msgid "Automatic account removal" msgstr "Automatische Konto-Entfernung" -#: extensions/admin/app_settings.py:38 +#: extensions/admin/app_settings.py:40 msgid "When a mailbox is removed, also remove the associated account" msgstr "Beim Löschen der Mailbox auch das Konto entfernen." -#: extensions/admin/app_settings.py:69 -#: extensions/admin/forms/account.py:178 +#: extensions/admin/app_settings.py:81 extensions/admin/forms/account.py:178 #: extensions/admin/forms/domain.py:56 msgid "Must be a positive integer" msgstr "Muss eine positive Integer sein" @@ -692,15 +716,18 @@ msgid "A mailbox is required" msgstr "Ein Mailbox ist erforderlich" #: extensions/admin/forms/account.py:21 -msgid "The user's name. Must be a valid e-mail address for simple users or administrators with a mailbox." -msgstr "Der Anwendername. Muss eine gültige E-Mail-Adresse für 'simple users' oder Administratoren mit einer Mailbox sein." +msgid "" +"The user's name. Must be a valid e-mail address for simple users or " +"administrators with a mailbox." +msgstr "" +"Der Anwendername. Muss eine gültige E-Mail-Adresse für 'simple users' oder " +"Administratoren mit einer Mailbox sein." #: extensions/admin/forms/account.py:26 msgid "Role" msgstr "Rolle" -#: extensions/admin/forms/account.py:27 -#: extensions/admin/forms/account.py:55 +#: extensions/admin/forms/account.py:27 extensions/admin/forms/account.py:55 msgid "Choose" msgstr "Auswählen" @@ -728,37 +755,41 @@ msgstr "Sie können Ihr eigenes Konto nicht deaktivieren" msgid "E-mail" msgstr "E-Mail" -#: extensions/admin/forms/account.py:113 -#: extensions/admin/forms/domain.py:17 +#: extensions/admin/forms/account.py:113 extensions/admin/forms/domain.py:17 msgid "Quota" msgstr "Quota" #: extensions/admin/forms/account.py:115 -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 "Quota in MB für diese Mailbox. Geben Sie einen eigenen Wert an oder nutzen Sie den Standardwert der Domain. Lassen Sie das Feld leer für unbegrenztes Quota - Domänen-Administratoren ist dies nicht gestattet." +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 "" +"Quota in MB für diese Mailbox. Geben Sie einen eigenen Wert an oder nutzen " +"Sie den Standardwert der Domain. Lassen Sie das Feld leer für unbegrenztes " +"Quota - Domänen-Administratoren ist dies nicht gestattet." -#: extensions/admin/forms/account.py:123 -#: extensions/admin/forms/domain.py:26 +#: extensions/admin/forms/account.py:123 extensions/admin/forms/domain.py:26 #: extensions/admin/templates/admin/domains_table.html:6 #: extensions/postfix_relay_domains/forms.py:12 msgid "Alias(es)" msgstr "Aliase" #: extensions/admin/forms/account.py:126 -msgid "Alias(es) of this mailbox. Indicate only one address per input, press ENTER to add a new input. Use the '*' character to create a 'catchall' alias (ex: *@domain.tld)." -msgstr "Alias(e) für diese Mailbox. Geben Sie jeweils nur eine Adresse pro Eingabe an. Bestätigen Sie mit ENTER um die Eingabe zu bestätigen. Geben Sie '*' an, um einen 'catchall'-Alias (Bsp: *@example.com) zu erstellen." +msgid "" +"Alias(es) of this mailbox. Indicate only one address per input, press ENTER " +"to add a new input. Use the '*' character to create a 'catchall' alias (ex: " +"*@domain.tld)." +msgstr "" +"Alias(e) für diese Mailbox. Geben Sie jeweils nur eine Adresse pro Eingabe " +"an. Bestätigen Sie mit ENTER um die Eingabe zu bestätigen. Geben Sie '*' an, " +"um einen 'catchall'-Alias (Bsp: *@example.com) zu erstellen." -#: extensions/admin/forms/account.py:187 -#: extensions/admin/forms/account.py:217 +#: extensions/admin/forms/account.py:187 extensions/admin/forms/account.py:217 #: extensions/admin/forms/alias.py:65 msgid "Domain does not exist" msgstr "Domain existiert nicht" -#: extensions/admin/forms/account.py:196 -#, python-format -msgid "Mailbox %s already exists" -msgstr "Mailbox %s existiert bereits" - #: extensions/admin/forms/account.py:284 msgid "Domain(s)" msgstr "Domain(s)" @@ -768,7 +799,7 @@ msgid "Domain(s) that user administrates" msgstr "Domänen, die dieser Anwender administriert" #: extensions/admin/forms/account.py:328 -#: extensions/admin/views/identity.py:130 +#: extensions/admin/views/identity.py:132 msgid "Mail" msgstr "E-Mail" @@ -781,16 +812,24 @@ msgid "Email address" msgstr "E-Mail Adresse" #: extensions/admin/forms/alias.py:18 -msgid "The distribution list address. Use the '*' character to create a 'catchall' address (ex: *@domain.tld)." -msgstr "Adresse einer Verteilerliste. Geben Sie '*' an, um einen 'catchall'-Alias (Bsp: *@example.com) zu erstellen." +msgid "" +"The distribution list address. Use the '*' character to create a 'catchall' " +"address (ex: *@domain.tld)." +msgstr "" +"Adresse einer Verteilerliste. Geben Sie '*' an, um einen 'catchall'-Alias " +"(Bsp: *@example.com) zu erstellen." #: extensions/admin/forms/alias.py:23 msgid "Recipients" msgstr "Empfänger" #: extensions/admin/forms/alias.py:25 -msgid "Mailbox(es) this alias will point to. Indicate only one address per input, press ENTER to add a new input." -msgstr "Mailboxen auf die der Alias verweist. Geben Sie jeweils nur eine Adresse ein und bestätigen Sie mit ENTER." +msgid "" +"Mailbox(es) this alias will point to. Indicate only one address per input, " +"press ENTER to add a new input." +msgstr "" +"Mailboxen auf die der Alias verweist. Geben Sie jeweils nur eine Adresse ein " +"und bestätigen Sie mit ENTER." #: extensions/admin/forms/alias.py:68 msgid "You don't have access to this domain" @@ -800,14 +839,12 @@ msgstr "Der Zugriff auf diese Domain ist ihnen nicht gestattet" msgid "Invalid mailbox" msgstr "Ungültige Mailbox" -#: extensions/admin/forms/alias.py:108 -#: extensions/admin/models/alias.py:182 +#: extensions/admin/forms/alias.py:108 extensions/admin/models/alias.py:194 #, python-format msgid "Local recipient %s not found" msgstr "Lokaler Empfänger %s nicht gefunden" -#: extensions/admin/forms/alias.py:112 -#: extensions/admin/forms/alias.py:120 +#: extensions/admin/forms/alias.py:112 extensions/admin/forms/alias.py:120 #, python-format msgid "Recipient %s already present" msgstr "Empfänger %s existiert bereits" @@ -817,12 +854,21 @@ msgid "No recipient defined" msgstr "Keine Empfänger angegeben" #: extensions/admin/forms/domain.py:20 -msgid "Default quota in MB applied to mailboxes. Leave empty to use the default value." -msgstr "Standardquota in MB für Mailboxen. Bei leerem Feld wird der Domain-Standard genutzt." +msgid "" +"Default quota in MB applied to mailboxes. Leave empty to use the default " +"value." +msgstr "" +"Standardquota in MB für Mailboxen. Bei leerem Feld wird der Domain-Standard " +"genutzt." #: extensions/admin/forms/domain.py:29 -msgid "Alias(es) of this domain. Indicate only one name per input, press ENTER to add a new input." -msgstr "Alias(e) für diese Mailbox. Geben Sie jeweils nur eine Adresse pro Eingabefeld an. Bestätigen Sie mit ENTER, um ein neues Eingabefeld zu erhalten." +msgid "" +"Alias(es) of this domain. Indicate only one name per input, press ENTER to " +"add a new input." +msgstr "" +"Alias(e) für diese Mailbox. Geben Sie jeweils nur eine Adresse pro " +"Eingabefeld an. Bestätigen Sie mit ENTER, um ein neues Eingabefeld zu " +"erhalten." #: extensions/admin/forms/domain.py:75 #: extensions/postfix_relay_domains/forms.py:50 @@ -830,8 +876,7 @@ msgstr "Alias(e) für diese Mailbox. Geben Sie jeweils nur eine Adresse pro Eing msgid "domain alias" msgstr "Domain-Alias" -#: extensions/admin/forms/domain.py:82 -#: extensions/admin/forms/domain.py:98 +#: extensions/admin/forms/domain.py:82 extensions/admin/forms/domain.py:98 #: extensions/postfix_relay_domains/forms.py:58 #: extensions/postfix_relay_domains/forms.py:78 #, python-format @@ -844,31 +889,35 @@ msgstr "Ein %s mit diesem Namen existiert bereits" msgid "domain" msgstr "Domain" -#: extensions/admin/forms/domain.py:176 +#: extensions/admin/forms/domain.py:181 msgid "Create a domain administrator" msgstr "Domänen-Administrator erstellen" -#: extensions/admin/forms/domain.py:178 +#: extensions/admin/forms/domain.py:183 msgid "Automatically create an administrator for this domain" msgstr "Automatisch Administrator für diese Domain anlegen" -#: extensions/admin/forms/domain.py:185 -msgid "The administrator's name. Don't include the domain's name here, it will be automatically appended." -msgstr "Name des Administrators. Geben Sie nicht den Domainnamen mit an. Er wird automatisch hinzugefügt." +#: extensions/admin/forms/domain.py:190 +msgid "" +"The administrator's name. Don't include the domain's name here, it will be " +"automatically appended." +msgstr "" +"Name des Administrators. Geben Sie nicht den Domainnamen mit an. Er wird " +"automatisch hinzugefügt." -#: extensions/admin/forms/domain.py:193 +#: extensions/admin/forms/domain.py:198 msgid "Create aliases" msgstr "Aliase erstellen" -#: extensions/admin/forms/domain.py:195 +#: extensions/admin/forms/domain.py:200 msgid "Automatically create standard aliases for this domain" msgstr "Automatisch Standard-Aliase für Domain anlegen" -#: extensions/admin/forms/domain.py:211 +#: extensions/admin/forms/domain.py:216 msgid "Invalid format" msgstr "Ungültiges Format" -#: extensions/admin/forms/domain.py:225 +#: extensions/admin/forms/domain.py:230 #, python-format msgid "User '%s' already exists" msgstr "Identität %s existiert bereits" @@ -877,8 +926,7 @@ msgstr "Identität %s existiert bereits" msgid "File name" msgstr "Dateiname" -#: extensions/admin/forms/export.py:10 -#: extensions/admin/forms/import_.py:8 +#: extensions/admin/forms/export.py:10 extensions/admin/forms/import_.py:8 msgid "Separator" msgstr "Separator" @@ -899,11 +947,14 @@ msgid "Forward messages and store copies into your local mailbox" msgstr "Nachricht weiterleiten und Kopie in Mailbox ablegen" #: extensions/admin/forms/forward.py:38 -msgid "You can't define a forward to a local destination. Please ask your administrator to create an alias instead." -msgstr "Sie können keine Weiterleitung auf ein lokales Ziel anlegen. Bitten Sie Ihren Administrator stattdessen einen Alias anzulegen." +msgid "" +"You can't define a forward to a local destination. Please ask your " +"administrator to create an alias instead." +msgstr "" +"Sie können keine Weiterleitung auf ein lokales Ziel anlegen. Bitten Sie " +"Ihren Administrator stattdessen einen Alias anzulegen." -#: extensions/admin/forms/import_.py:6 -#: extensions/webmail/forms.py:26 +#: extensions/admin/forms/import_.py:6 extensions/webmail/forms.py:198 msgid "Select a file" msgstr "Wählen Sie eine Datei" @@ -923,51 +974,54 @@ msgstr "Passworte verschlüsseln" msgid "Check this option if passwords contained in your file are not crypted" msgstr "Auswählen wenn Kennwörter in Datei nicht verschlüsselt sind" -#: extensions/admin/models/alias.py:16 -#: extensions/admin/models/mailbox.py:51 +#: extensions/admin/models/alias.py:18 extensions/admin/models/mailbox.py:62 msgid "address" msgstr "Adresse" -#: extensions/admin/models/alias.py:18 -msgid "The alias address (without the domain part). For a 'catch-all' address, just enter an * character." -msgstr "Die Alias-Adresse (ohne den Domain-Anteil). Geben sie für eine Adresse an, die alles annimmt, * an." +#: extensions/admin/models/alias.py:20 +msgid "" +"The alias address (without the domain part). For a 'catch-all' address, just " +"enter an * character." +msgstr "" +"Die Alias-Adresse (ohne den Domain-Anteil). Geben sie für eine Adresse an, " +"die alles annimmt, * an." -#: extensions/admin/models/alias.py:24 +#: extensions/admin/models/alias.py:26 msgid "mailboxes" msgstr "Mailboxen" -#: extensions/admin/models/alias.py:25 +#: extensions/admin/models/alias.py:27 msgid "The mailboxes this alias points to" msgstr "Mailbox auf den dieser Alias verweist" -#: extensions/admin/models/alias.py:29 +#: extensions/admin/models/alias.py:31 msgid "The aliases this alias points to" msgstr "Aliase auf die dieser Alias verweist" -#: extensions/admin/models/alias.py:34 +#: extensions/admin/models/alias.py:36 #: extensions/admin/models/domain_alias.py:18 #: extensions/postfix_relay_domains/models.py:168 msgid "Check to activate this alias" msgstr "Auswählen um den Alias zu aktivieren" -#: extensions/admin/models/alias.py:79 +#: extensions/admin/models/alias.py:81 msgid "distribution list" msgstr "Verteilerliste" -#: extensions/admin/models/alias.py:80 +#: extensions/admin/models/alias.py:82 msgid "forward" msgstr "Weiterleitung" -#: extensions/admin/models/alias.py:81 +#: extensions/admin/models/alias.py:83 msgid "alias" msgstr "Alias" -#: extensions/admin/models/alias.py:150 +#: extensions/admin/models/alias.py:152 #, python-format msgid "Invalid line: %s" msgstr "Ungültige Zeile: %s" -#: extensions/admin/models/alias.py:155 +#: extensions/admin/models/alias.py:157 #, python-format msgid "Domain '%s' does not exist" msgstr "Domain '%s' existiert nicht" @@ -994,7 +1048,7 @@ msgstr "Auswählen, um diese Domäne zu aktivieren" msgid "Domain" msgstr "Domain" -#: extensions/admin/models/domain.py:140 +#: extensions/admin/models/domain.py:155 #, python-format msgid "Invalid quota value for domain '%s'" msgstr "Ungültiger Quota-Wert für Domain '%s'" @@ -1013,31 +1067,26 @@ msgstr "Ziel" msgid "The domain this alias points to" msgstr "Domäne auf die dieser Alias verweist" -#: extensions/admin/models/domain_alias.py:46 -#, python-format -msgid "A domain %s already exists" -msgstr "Eine Domain %s existiert bereits" - -#: extensions/admin/models/domain_alias.py:51 +#: extensions/admin/models/domain_alias.py:52 #, python-format msgid "Unknown domain %s" msgstr "Unbekannte Domain %s" -#: extensions/admin/models/mailbox.py:52 +#: extensions/admin/models/mailbox.py:63 msgid "Mailbox address (without the @domain.tld part)" msgstr "Mailbox-Adresse (ohne den @domain.tld-Anteil)" -#: extensions/admin/models/mailbox.py:113 +#: extensions/admin/models/mailbox.py:125 #, python-format msgid "Failed to retrieve mailbox location (%s)" msgstr "Konnte Speicherort der Mailbox (%s) nicht bestimmen" -#: extensions/admin/models/mailbox.py:173 +#: extensions/admin/models/mailbox.py:194 #, python-format msgid "Quota is greater than the allowed domain's limit (%dM)" msgstr "Das Quota ist größer als das maximale Quota der Domain (%dM)" -#: extensions/admin/models/mailbox.py:178 +#: extensions/admin/models/mailbox.py:199 msgid "A quota is required" msgstr "Ein Quota ist erforderlich" @@ -1059,7 +1108,7 @@ msgstr "Tags" #: extensions/admin/templates/admin/domains_table.html:8 #: extensions/admin/templates/admin/identities_table.html:8 #: extensions/admin/templates/admin/listing.html:17 -#: extensions/sievefilters/views.py:93 +#: extensions/sievefilters/views.py:95 #: extensions/sievefilters/templates/sievefilters/filter.html:17 #: extensions/sievefilters/templates/sievefilters/guieditor.html:5 #: extensions/webmail/templatetags/webmail_tags.py:101 @@ -1083,14 +1132,12 @@ msgid "Last modification date" msgstr "Datum der letzten Änderung" #: extensions/admin/templates/admin/editdomainform.html:24 -#: extensions/limits/app_settings.py:25 -#: extensions/limits/models.py:20 +#: extensions/limits/app_settings.py:25 extensions/limits/models.py:20 msgid "Domain aliases" msgstr "Domänen-Aliase" #: extensions/admin/templates/admin/editdomainform.html:26 -#: extensions/limits/app_settings.py:37 -#: extensions/limits/models.py:25 +#: extensions/limits/app_settings.py:37 extensions/limits/models.py:25 msgid "Mailbox aliases" msgstr "Mailboxen-Aliase" @@ -1158,15 +1205,13 @@ msgstr "Domain hinzufügen" #: extensions/admin/templatetags/admin_tags.py:42 #: extensions/admin/templatetags/admin_tags.py:106 -#: extensions/admin/views/import.py:51 -#: extensions/admin/views/import.py:166 +#: extensions/admin/views/import.py:52 extensions/admin/views/import.py:168 msgid "Import" msgstr "Importiere" #: extensions/admin/templatetags/admin_tags.py:48 #: extensions/admin/templatetags/admin_tags.py:112 -#: extensions/admin/views/export.py:38 -#: extensions/admin/views/export.py:64 +#: extensions/admin/views/export.py:38 extensions/admin/views/export.py:64 msgid "Export" msgstr "Exportiere" @@ -1210,89 +1255,84 @@ msgstr "%s löschen?" msgid "Remove this permission" msgstr "Berechtigung entfernen" -#: extensions/admin/views/alias.py:25 +#: extensions/admin/views/alias.py:26 msgid "Alias with this name already exists" msgstr "Ein Alias mit diesem Namen existiert bereits" -#: extensions/admin/views/alias.py:49 -#: extensions/admin/views/domain.py:100 -#: extensions/admin/views/domain.py:129 -#: extensions/admin/views/identity.py:131 -#: extensions/admin/views/identity.py:158 -#: extensions/postfix_relay_domains/views.py:32 -#: extensions/sievefilters/views.py:141 -#: extensions/sievefilters/views.py:230 -#: extensions/webmail/views.py:151 +#: extensions/admin/views/alias.py:50 extensions/admin/views/domain.py:102 +#: extensions/admin/views/domain.py:131 extensions/admin/views/identity.py:133 +#: extensions/admin/views/identity.py:160 +#: extensions/postfix_relay_domains/views.py:34 +#: extensions/sievefilters/views.py:144 extensions/sievefilters/views.py:233 +#: extensions/webmail/views.py:153 msgid "Create" msgstr "Erstellen" -#: extensions/admin/views/alias.py:61 +#: extensions/admin/views/alias.py:63 msgid "New distribution list" msgstr "Neue Verteilerliste" -#: extensions/admin/views/alias.py:62 +#: extensions/admin/views/alias.py:64 msgid "Distribution list created" msgstr "Verteilerliste erstellt" -#: extensions/admin/views/alias.py:71 +#: extensions/admin/views/alias.py:74 msgid "New alias" msgstr "Neuer Alias" -#: extensions/admin/views/alias.py:72 +#: extensions/admin/views/alias.py:75 msgid "Alias created" msgstr "Alias erstellt" -#: extensions/admin/views/alias.py:81 +#: extensions/admin/views/alias.py:85 msgid "New forward" msgstr "Neue Weiterleitung" -#: extensions/admin/views/alias.py:82 +#: extensions/admin/views/alias.py:86 msgid "Forward created" msgstr "Weiterleitung erstellt" -#: extensions/admin/views/alias.py:95 +#: extensions/admin/views/alias.py:100 msgid "Distribution list modified" msgstr "Verteilerliste verändert" -#: extensions/admin/views/alias.py:97 +#: extensions/admin/views/alias.py:102 msgid "Forward modified" msgstr "Weiterleitung verändert" -#: extensions/admin/views/alias.py:99 +#: extensions/admin/views/alias.py:104 msgid "Alias modified" msgstr "Alias verändert" -#: extensions/admin/views/domain.py:96 -#: extensions/admin/views/identity.py:128 +#: extensions/admin/views/domain.py:98 extensions/admin/views/identity.py:130 msgid "Next" msgstr "Nächstes" -#: extensions/admin/views/domain.py:99 +#: extensions/admin/views/domain.py:101 msgid "Options" msgstr "optionen" -#: extensions/admin/views/domain.py:101 -#: extensions/admin/views/identity.py:132 +#: extensions/admin/views/domain.py:103 extensions/admin/views/identity.py:134 msgid "Previous" msgstr "Vorheriges" -#: extensions/admin/views/domain.py:123 +#: extensions/admin/views/domain.py:125 msgid "Domain created" msgstr "Domäne erstellt." -#: extensions/admin/views/domain.py:128 +#: extensions/admin/views/domain.py:130 msgid "New domain" msgstr "Neue Domäne" -#: extensions/admin/views/domain.py:155 +#: extensions/admin/views/domain.py:158 msgid "Domain modified" msgstr "Domäne verändert" -#: extensions/admin/views/domain.py:189 +#: extensions/admin/views/domain.py:192 msgid "You can't delete your own domain" msgstr "Sie können Ihre eigene Domäne nicht löschen" -#: extensions/admin/views/domain.py:192 +#: extensions/admin/views/domain.py:195 msgid "Domain deleted" msgid_plural "Domains deleted" msgstr[0] "Domäne gelöscht" @@ -1306,50 +1346,40 @@ msgstr "Identitäten exportieren" msgid "Export domains" msgstr "Domains exportieren" -#: extensions/admin/views/identity.py:103 -#: extensions/admin/views/identity.py:224 -#: extensions/admin/views/identity.py:229 -#: extensions/amavis/views.py:179 -#: extensions/amavis/views.py:185 -#: extensions/amavis/views.py:220 -#: extensions/amavis/views.py:224 -#: extensions/amavis/views.py:226 -#: extensions/webmail/views.py:47 -#: extensions/webmail/views.py:65 -#: extensions/webmail/views.py:79 -#: extensions/webmail/views.py:97 -#: extensions/webmail/views.py:114 -#: extensions/webmail/views.py:200 -#: extensions/webmail/views.py:223 -#: extensions/webmail/views.py:396 -#: extensions/webmail/views.py:430 -#: extensions/webmail/views.py:443 -#: extensions/webmail/views.py:472 -#: extensions/webmail/views.py:512 -#: lib/formutils.py:44 -#: lib/formutils.py:49 +#: extensions/admin/views/identity.py:104 +#: extensions/admin/views/identity.py:227 +#: extensions/admin/views/identity.py:232 extensions/amavis/views.py:144 +#: extensions/amavis/views.py:148 extensions/amavis/views.py:181 +#: extensions/amavis/views.py:186 extensions/amavis/views.py:188 +#: extensions/webmail/views.py:49 extensions/webmail/views.py:67 +#: extensions/webmail/views.py:81 extensions/webmail/views.py:99 +#: extensions/webmail/views.py:116 extensions/webmail/views.py:202 +#: extensions/webmail/views.py:225 extensions/webmail/views.py:401 +#: extensions/webmail/views.py:451 extensions/webmail/views.py:467 +#: extensions/webmail/views.py:496 extensions/webmail/views.py:536 +#: lib/formutils.py:44 lib/formutils.py:49 msgid "Invalid request" msgstr "Ungültige Anfrage" -#: extensions/admin/views/identity.py:149 +#: extensions/admin/views/identity.py:151 msgid "Account created" msgstr "Konto erstellt" -#: extensions/admin/views/identity.py:155 +#: extensions/admin/views/identity.py:157 msgid "New account" msgstr "Neues Konto" -#: extensions/admin/views/identity.py:190 +#: extensions/admin/views/identity.py:193 msgid "Account updated" msgstr "Konto aktualisiert" -#: extensions/admin/views/identity.py:214 +#: extensions/admin/views/identity.py:217 msgid "Account deleted" msgid_plural "Accounts deleted" msgstr[0] "Konto gelöscht" msgstr[1] "Konten gelöscht" -#: extensions/admin/views/import.py:39 +#: extensions/admin/views/import.py:40 #, python-format msgid "" "Provide a CSV file where lines respect one of the following formats:\n" @@ -1358,7 +1388,8 @@ msgid "" "
  • domainalias; name; targeted domain; enabled
  • \n" " %s\n" "\n" -"

    The first element of each line is mandatory and must be equal to one of the previous values.

    \n" +"

    The first element of each line is mandatory and must be equal to one of " +"the previous values.

    \n" "

    You can use a different character as separator.

    \n" msgstr "" "Verwenden sie eine CSV-Datei mit einem der folgenden Formate:\n" @@ -1367,52 +1398,57 @@ msgstr "" "
  • domainalias; name; targeted domain; enabled
  • \n" " %s\n" "\n" -"

    Das erste Element jeder Zeile ist zwingend und muss gleich zum vorhergehenden sein.

    \n" +"

    Das erste Element jeder Zeile ist zwingend und muss gleich zum " +"vorhergehenden sein.

    \n" "

    Ein anderes Zeichen als Trenner ist gestattet.

    \n" -#: extensions/admin/views/import.py:50 +#: extensions/admin/views/import.py:51 msgid "Import domains" msgstr "Domains importieren" -#: extensions/admin/views/import.py:129 +#: extensions/admin/views/import.py:131 #, python-format msgid "Object already exists: %s" msgstr "Objekt existiert bereits: %s" -#: extensions/admin/views/import.py:133 +#: extensions/admin/views/import.py:135 #, python-format msgid "%d objects imported successfully" msgstr "%d Objekte erfolgreich importiert" -#: extensions/admin/views/import.py:153 +#: extensions/admin/views/import.py:155 msgid "" "Provide a CSV file where lines respect one of the following formats:\n" "
      \n" -"
    • account; loginname; password; first name; last name; enabled; group; address; quota; [, domain, ...]
    • \n" +"
    • account; loginname; password; first name; last name; enabled; group; " +"address; quota; [, domain, ...]
    • \n" "
    • alias; address; enabled; internal recipient
    • \n" "
    • forward; address; enabled; external recipient
    • \n" "
    • dlist; address; enabled; recipient; recipient; ...
    • \n" "
    \n" -"

    The first element of each line is mandatory and must be equal to one of the previous values.

    \n" +"

    The first element of each line is mandatory and must be equal to one of " +"the previous values.

    \n" "\n" "

    You can use a different character as separator.

    \n" msgstr "" "Verwenden sie eine CSV-Datei in einem der folgenden Formate:\n" "
      \n" -"
    • account; loginname; password; first name; last name; enabled; group; address; quota; [, domain, ...]
    • \n" +"
    • account; loginname; password; first name; last name; enabled; group; " +"address; quota; [, domain, ...]
    • \n" "
    • alias; address; enabled; internal recipient
    • \n" "
    • forward; address; enabled; external recipient
    • \n" "
    • dlist; address; enabled; recipient; recipient; ...
    • \n" "
    \n" -"

    Das erste Element einer Zeile ist zwingend und muss gleich mit einem der vorhergehenden sein.

    \n" +"

    Das erste Element einer Zeile ist zwingend und muss gleich mit einem der " +"vorhergehenden sein.

    \n" "\n" "

    Ein anderes Zeichen als Separator ist gestattet.

    \n" -#: extensions/admin/views/import.py:165 +#: extensions/admin/views/import.py:167 msgid "Import identities" msgstr "Identitäten importieren" -#: extensions/admin/views/user.py:37 +#: extensions/admin/views/user.py:38 msgid "Forward updated" msgstr "Weiterleitung aktualisiert" @@ -1420,8 +1456,7 @@ msgstr "Weiterleitung aktualisiert" msgid "Simple amavis management frontend" msgstr "Einfache amavis Management Oberfläche" -#: extensions/amavis/__init__.py:52 -#: extensions/amavis/general_callbacks.py:17 +#: extensions/amavis/__init__.py:52 extensions/amavis/general_callbacks.py:18 msgid "Quarantine" msgstr "Quarantäne" @@ -1435,7 +1470,9 @@ msgstr "Maximales Alter einer Nachricht" #: extensions/amavis/app_settings.py:16 msgid "Quarantine messages maximum age (in days) before deletion" -msgstr "Maximales Alter (in Tagen) von Nachrichten in der Quarantäne bevor sie gelöscht werden" +msgstr "" +"Maximales Alter (in Tagen) von Nachrichten in der Quarantäne bevor sie " +"gelöscht werden" #: extensions/amavis/app_settings.py:19 msgid "Messages releasing" @@ -1511,30 +1548,32 @@ msgstr "Absender von Benachrichtigungen" #: extensions/amavis/app_settings.py:74 msgid "The e-mail address used to send notitications" -msgstr "Die Mailadresse, die verwendet wird, um Benachrichtigungen zu versenden" +msgstr "" +"Die Mailadresse, die verwendet wird, um Benachrichtigungen zu versenden" -#: extensions/amavis/app_settings.py:91 -#: extensions/webmail/app_settings.py:91 +#: extensions/amavis/app_settings.py:91 extensions/webmail/app_settings.py:91 msgid "Number of displayed emails per page" msgstr "Anzahl dargestellter Nachrichten pro Seite" #: extensions/amavis/app_settings.py:92 msgid "Set the maximum number of messages displayed in a page" -msgstr "Legt die maximale Anzahl von Nachrichten fest, die in einer Seite dargestellt werden" +msgstr "" +"Legt die maximale Anzahl von Nachrichten fest, die in einer Seite " +"dargestellt werden" -#: extensions/amavis/general_callbacks.py:81 +#: extensions/amavis/general_callbacks.py:82 msgid "pending requests" msgstr "Offene Anfragen" -#: extensions/amavis/general_callbacks.py:124 +#: extensions/amavis/general_callbacks.py:125 msgid "Pending requests" msgstr "Offene Anfragen" -#: extensions/amavis/general_callbacks.py:134 +#: extensions/amavis/general_callbacks.py:135 msgid "Content filter" msgstr "Inhaltsfilter" -#: extensions/amavis/lib.py:57 +#: extensions/amavis/lib.py:56 #, python-format msgid "Connection to amavis failed: %s" msgstr "Verbindung zu amavis fehlgeschlagen: %s" @@ -1543,22 +1582,17 @@ msgstr "Verbindung zu amavis fehlgeschlagen: %s" msgid "Virus filter" msgstr "Virusfilter" -#: extensions/amavis/models.py:94 -#: extensions/amavis/models.py:102 -#: extensions/amavis/models.py:110 -#: extensions/sievefilters/views.py:290 +#: extensions/amavis/models.py:94 extensions/amavis/models.py:102 +#: extensions/amavis/models.py:110 extensions/sievefilters/views.py:293 msgid "yes" msgstr "Ja" -#: extensions/amavis/models.py:95 -#: extensions/amavis/models.py:103 -#: extensions/amavis/models.py:111 -#: extensions/sievefilters/views.py:294 +#: extensions/amavis/models.py:95 extensions/amavis/models.py:103 +#: extensions/amavis/models.py:111 extensions/sievefilters/views.py:297 msgid "no" msgstr "Nein" -#: extensions/amavis/models.py:96 -#: extensions/amavis/models.py:104 +#: extensions/amavis/models.py:96 extensions/amavis/models.py:104 #: extensions/amavis/models.py:112 #: extensions/amavis/templates/amavis/domain_content_filter.html:11 msgid "default" @@ -1566,7 +1600,9 @@ msgstr "Standard" #: extensions/amavis/models.py:98 msgid "Bypass virus checks or not. Choose 'default' to use global settings." -msgstr "Virus-Prüfungen umgehen oder nicht. Geben Sie, um den Domain-Standard zu nutzen, keinen individuellen Wert an." +msgstr "" +"Virus-Prüfungen umgehen oder nicht. Geben Sie, um den Domain-Standard zu " +"nutzen, keinen individuellen Wert an." #: extensions/amavis/models.py:101 msgid "Spam filter" @@ -1574,7 +1610,9 @@ msgstr "SPAM-Filter" #: extensions/amavis/models.py:106 msgid "Bypass spam checks or not. Choose 'default' to use global settings." -msgstr "Spam-Prüfungen umgehen oder nicht. Geben Sie, um den Domain-Standard zu nutzen, keinen individuellen Wert an." +msgstr "" +"Spam-Prüfungen umgehen oder nicht. Geben Sie, um den Domain-Standard zu " +"nutzen, keinen individuellen Wert an." #: extensions/amavis/models.py:109 msgid "Banned filter" @@ -1582,37 +1620,41 @@ msgstr "Filter für unerwünschte Dateien" #: extensions/amavis/models.py:114 msgid "Bypass banned checks or not. Choose 'default' to use global settings." -msgstr "Unerwünschte Dateien umgehen oder nicht. Geben Sie, um den Domain-Standard zu nutzen, keinen individuellen Wert an." +msgstr "" +"Unerwünschte Dateien umgehen oder nicht. Geben Sie, um den Domain-Standard " +"zu nutzen, keinen individuellen Wert an." #: extensions/amavis/models.py:144 msgid "Spam marker" msgstr "SPAM-Markierung" #: extensions/amavis/models.py:146 -msgid "Modify spam subject using the specified text. Choose 'default' to use global settings." -msgstr "Betreff:-Zeile einer Spam-Nachricht mit dem angegebenen Text ergänzen. Wählen Sie 'Standard' für den systemweiten Standard." +msgid "" +"Modify spam subject using the specified text. Choose 'default' to use global " +"settings." +msgstr "" +"Betreff:-Zeile einer Spam-Nachricht mit dem angegebenen Text ergänzen. " +"Wählen Sie 'Standard' für den systemweiten Standard." -#: extensions/amavis/sql_listing.py:31 +#: extensions/amavis/sql_listing.py:29 msgid "Score" msgstr "Punktzahl" -#: extensions/amavis/sql_listing.py:35 +#: extensions/amavis/sql_listing.py:33 #: extensions/amavis/templatetags/amavis_tags.py:75 -#: extensions/webmail/forms.py:7 +#: extensions/webmail/forms.py:82 msgid "To" msgstr "An" -#: extensions/amavis/sql_listing.py:38 -#: extensions/postfix_autoreply/forms.py:11 -#: extensions/webmail/lib.py:44 +#: extensions/amavis/sql_listing.py:36 +#: extensions/postfix_autoreply/forms.py:10 +#: extensions/webmail/lib/listing.py:31 extensions/webmail/lib/tables.py:30 msgid "From" msgstr "Von" -#: extensions/amavis/sql_listing.py:42 -#: extensions/sievefilters/forms.py:77 -#: extensions/webmail/forms.py:11 -#: extensions/webmail/lib.py:40 -#: extensions/webmail/lib.py:423 +#: extensions/amavis/sql_listing.py:40 extensions/sievefilters/forms.py:77 +#: extensions/webmail/forms.py:86 extensions/webmail/lib/imapemail.py:288 +#: extensions/webmail/lib/listing.py:27 extensions/webmail/lib/tables.py:26 #: templates/common/email_searchbar.html:6 msgid "Subject" msgstr "Betreff" @@ -1621,40 +1663,40 @@ msgstr "Betreff" msgid "Empty quarantine" msgstr "Quarantäne leeren" -#: extensions/amavis/views.py:186 +#: extensions/amavis/views.py:149 msgid "Message deleted" msgstr "Nachricht gelöscht" -#: extensions/amavis/views.py:207 +#: extensions/amavis/views.py:168 #, python-format msgid "%(count)d message deleted successfully" msgid_plural "%(count)d messages deleted successfully" msgstr[0] "%(count)d Nachricht erfolgreich gelöscht" msgstr[1] "%(count)d Nachrichten erfolgreich gelöscht" -#: extensions/amavis/views.py:229 +#: extensions/amavis/views.py:191 msgid "Request sent" msgstr "Anfrage gesendet" -#: extensions/amavis/views.py:235 +#: extensions/amavis/views.py:197 msgid "Message released" msgstr "Nachricht freigegeben" -#: extensions/amavis/views.py:268 +#: extensions/amavis/views.py:225 #, python-format msgid "%(count)d request sent" msgid_plural "%(count)d requests sent" msgstr[0] "%(count)d Anfrage gesendet" msgstr[1] "%(count)d Anfragen gesendet" -#: extensions/amavis/views.py:288 +#: extensions/amavis/views.py:246 #, python-format msgid "%(count)d message released successfully" msgid_plural "%(count)d messages released successfully" msgstr[0] "%(count)d Nachicht erfolgreich freigegeben" msgstr[1] "%(count)d Nachichten erfolgreich freigegeben" -#: extensions/amavis/management/commands/amnotify.py:57 +#: extensions/amavis/management/commands/amnotify.py:61 msgid "[modoboa] Pending release requests" msgstr "[modoboa] Offene Freigabeanfragen" @@ -1782,15 +1824,18 @@ msgstr "Rektion auf diese Nachricht:" #: extensions/amavis/templates/amavis/notifications/pending_requests.html:14 #, python-format msgid "Please visit %(listingurl)s for a full listing." -msgstr "Bitte besuchen sie %(listingurl)s um eine vollständige Ausgabe zu erhalten." +msgstr "" +"Bitte besuchen sie %(listingurl)s um eine vollständige Ausgabe zu erhalten." #: extensions/amavis/templatetags/amavis_tags.py:28 msgid "View full headers" msgstr "Alle Mail-Header ansehen" #: extensions/limits/__init__.py:25 -msgid "Per administrator resources to limit the number of objects they can create" -msgstr "Administrator-Ressourcen, um die Anzahl erstellbarer Objekte einzuschränken" +msgid "" +"Per administrator resources to limit the number of objects they can create" +msgstr "" +"Administrator-Ressourcen, um die Anzahl erstellbarer Objekte einzuschränken" #: extensions/limits/__init__.py:56 msgid "Limits" @@ -1800,14 +1845,15 @@ msgstr "Grenzwerte" msgid "Default limits" msgstr "Standard-Grenzwerte" -#: extensions/limits/app_settings.py:13 -#: extensions/limits/models.py:14 +#: extensions/limits/app_settings.py:13 extensions/limits/models.py:14 msgid "Domain admins" msgstr "Domänen-Administratoren" #: extensions/limits/app_settings.py:15 msgid "Maximum number of allowed domain administrators for a new administrator" -msgstr "Maximale Anzahl Domänenadministratoren, die ein neuer Administrator erstellen darf" +msgstr "" +"Maximale Anzahl Domänenadministratoren, die ein neuer Administrator " +"erstellen darf" #: extensions/limits/app_settings.py:21 msgid "Maximum number of allowed domains for a new administrator" @@ -1815,7 +1861,8 @@ msgstr "Maximale Anzahl Domains, die ein neuer Administrator erstellen darf" #: extensions/limits/app_settings.py:27 msgid "Maximum number of allowed domain aliases for a new administrator" -msgstr "Maximale Anzahl Domain Aliase, die ein neuer Administrator erstellen darf" +msgstr "" +"Maximale Anzahl Domain Aliase, die ein neuer Administrator erstellen darf" #: extensions/limits/app_settings.py:33 msgid "Maximum number of allowed mailboxes for a new administrator" @@ -1825,8 +1872,7 @@ msgstr "Maximale Anzahl Mailboxen, die ein neuer Administrator erstellen darf" msgid "Maximum number of allowed aliases for a new administrator" msgstr "Maximale Anzahl Aliase, die ein neuer Administrator erstellen darf" -#: extensions/limits/forms.py:28 -#: extensions/limits/forms.py:35 +#: extensions/limits/forms.py:28 extensions/limits/forms.py:35 msgid "Invalid limit" msgstr "Ungültiger Grenzwert" @@ -1836,7 +1882,8 @@ msgstr "Ihre Ressourcen wurde noch nicht initialisiert" #: extensions/limits/forms.py:61 msgid "You're not allowed to define unlimited values" -msgstr "Sie verfügen nicht über ausreichend Rechte, um unbegrenzte Werte anzugeben" +msgstr "" +"Sie verfügen nicht über ausreichend Rechte, um unbegrenzte Werte anzugeben" #: extensions/limits/general_callbacks.py:10 msgid "Reseller" @@ -1889,9 +1936,10 @@ msgstr "Ressourcen-Verbrauch" #: extensions/postfix_autoreply/__init__.py:26 msgid "Auto-reply (vacation) functionality using Postfix" -msgstr "Automatische Antwort (Abwesenheitsbenachrichtigung) über Postfix-Programm" +msgstr "" +"Automatische Antwort (Abwesenheitsbenachrichtigung) über Postfix-Programm" -#: extensions/postfix_autoreply/__init__.py:47 +#: extensions/postfix_autoreply/__init__.py:49 msgid "Automatic replies" msgstr "Automatische Antworten" @@ -1901,7 +1949,9 @@ msgstr "Zeitüberschreitung für automatische Antworten" #: extensions/postfix_autoreply/app_settings.py:16 msgid "Timeout in seconds between two auto-replies to the same recipient" -msgstr "Zeit in Sekunden zwischen zwei automatisierten Antworten an denselben Empfänger" +msgstr "" +"Zeit in Sekunden zwischen zwei automatisierten Antworten an denselben " +"Empfänger" #: extensions/postfix_autoreply/app_settings.py:20 msgid "Default subject" @@ -1912,7 +1962,8 @@ msgid "I'm off" msgstr "Ich bin weg" #: extensions/postfix_autoreply/app_settings.py:23 -msgid "Default subject used when an auto-reply message is created automatically" +msgid "" +"Default subject used when an auto-reply message is created automatically" msgstr "Standardbetreff wenn eine Antwortnachricht automatisch generiert wird" #: extensions/postfix_autoreply/app_settings.py:28 @@ -1934,27 +1985,31 @@ msgstr "" #: extensions/postfix_autoreply/app_settings.py:36 #, python-format -msgid "Default content used when an auto-reply message is created automatically. The '%(name)s' macro will be replaced by the user's full name." -msgstr "Standardinhalt wenn eine Antwort automatisch erstellt wird. Das '%(name)s' Makro wird gegen den vollen Anwendernamen ersetzt." +msgid "" +"Default content used when an auto-reply message is created automatically. " +"The '%(name)s' macro will be replaced by the user's full name." +msgstr "" +"Standardinhalt wenn eine Antwort automatisch erstellt wird. Das '%(name)s' " +"Makro wird gegen den vollen Anwendernamen ersetzt." -#: extensions/postfix_autoreply/forms.py:13 +#: extensions/postfix_autoreply/forms.py:12 msgid "Activate your auto reply from this date" msgstr "Automatisierte Antwort beginnend mit diesem Datum aktivieren" -#: extensions/postfix_autoreply/forms.py:19 +#: extensions/postfix_autoreply/forms.py:18 msgid "Until" msgstr "Bis" -#: extensions/postfix_autoreply/forms.py:21 +#: extensions/postfix_autoreply/forms.py:20 msgid "Activate your auto reply until this date" msgstr "Aktivieren Sie ihre automatisierte Antwort bis zu diesem Datum" -#: extensions/postfix_autoreply/forms.py:49 #: extensions/postfix_autoreply/forms.py:55 +#: extensions/postfix_autoreply/forms.py:62 msgid "This date is over" msgstr "Das Datum ist vorbei" -#: extensions/postfix_autoreply/forms.py:59 +#: extensions/postfix_autoreply/forms.py:67 msgid "Must be greater than start date" msgstr "Muss größer als Wert des Startdatums sein" @@ -1997,7 +2052,9 @@ msgstr "Automatische Antwort erfolgreich aktualisiert." #: extensions/postfix_autoreply/templates/postfix_autoreply/autoreply.html:2 msgid "Define a message to automatically send when you are off" -msgstr "Gegen sie eine Nachricht an, die gesendet werden soll, wenn Sie nicht erreichbar sind" +msgstr "" +"Gegen sie eine Nachricht an, die gesendet werden soll, wenn Sie nicht " +"erreichbar sind" #: extensions/postfix_relay_domains/__init__.py:72 msgid "Relay domains support for Postfix" @@ -2018,8 +2075,12 @@ msgid "Path to the master.cf configuration file" msgstr "Pfad zur master.cf Konfigurationsdatei" #: extensions/postfix_relay_domains/forms.py:15 -msgid "Alias(es) of this relay domain. Indicate only one name per input, press ENTER to add a new input." -msgstr "Alias(e) für diese Relaydomain. Geben Sie jeweils nur einen pro Eingabefeld an. Bestätigen Sie mit ENTER, um ein weiteres Eingabefeld zu erhalten." +msgid "" +"Alias(es) of this relay domain. Indicate only one name per input, press " +"ENTER to add a new input." +msgstr "" +"Alias(e) für diese Relaydomain. Geben Sie jeweils nur einen pro Eingabefeld " +"an. Bestätigen Sie mit ENTER, um ein weiteres Eingabefeld zu erhalten." #: extensions/postfix_relay_domains/forms.py:51 #: extensions/postfix_relay_domains/general_callbacks.py:93 @@ -2051,20 +2112,25 @@ msgstr "Maximale Anzahl Relaydomain-Aliase, die dieser Anwender erstellen darf" #: extensions/postfix_relay_domains/general_callbacks.py:111 msgid "" "\n" -"
  • relaydomain; name; target host; service; enabled; verify recipients
  • \n" +"
  • relaydomain; name; target host; service; enabled; verify recipients
  • \n" "
  • relaydomainalias; name; target; enabled
  • \n" msgstr "" "\n" -"
  • relaydomain; name; target host; service; enabled; verify recipients
  • \n" +"
  • relaydomain; name; target host; service; enabled; verify recipients
  • \n" "
  • relaydomainalias; name; target; enabled
  • \n" #: extensions/postfix_relay_domains/limits_callbacks.py:19 msgid "Maximum number of allowed relay domains for a new administrator" -msgstr "Maximale Anzahl Relaydomains, die ein neuer Administrator erstellen darf" +msgstr "" +"Maximale Anzahl Relaydomains, die ein neuer Administrator erstellen darf" #: extensions/postfix_relay_domains/limits_callbacks.py:27 msgid "Maximum number of allowed relay domain aliases for a new administrator" -msgstr "Maximale Anzahl Relaydomain-Aliase, die ein neuer Administrator erstellen darf" +msgstr "" +"Maximale Anzahl Relaydomain-Aliase, die ein neuer Administrator erstellen " +"darf" #: extensions/postfix_relay_domains/models.py:59 msgid "The service name" @@ -2099,19 +2165,19 @@ msgstr "Die Relaydomain auf die dieser Alias verweist" msgid "Relay domain %s does not exist" msgstr "Relaydomain '%s' existiert nicht" -#: extensions/postfix_relay_domains/views.py:26 +#: extensions/postfix_relay_domains/views.py:28 msgid "Relay domain created" msgstr "Relaydomain erstellt" -#: extensions/postfix_relay_domains/views.py:31 +#: extensions/postfix_relay_domains/views.py:33 msgid "New relay domain" msgstr "Neue Relaydomain" -#: extensions/postfix_relay_domains/views.py:54 +#: extensions/postfix_relay_domains/views.py:57 msgid "Relay domain modified" msgstr "Relaydomain geändert" -#: extensions/postfix_relay_domains/views.py:77 +#: extensions/postfix_relay_domains/views.py:80 msgid "Relay domain deleted" msgstr "Relaydomain gelöscht" @@ -2205,8 +2271,7 @@ msgstr "Sender" msgid "Recipient" msgstr "Empfänger" -#: extensions/sievefilters/forms.py:80 -#: extensions/webmail/forms.py:8 +#: extensions/sievefilters/forms.py:80 extensions/webmail/forms.py:83 msgid "Cc" msgstr "Cc" @@ -2230,61 +2295,68 @@ msgstr "Verschiebe Nachricht nach" msgid "Redirect message to" msgstr "Leite Nachricht um zu" +#: extensions/sievefilters/forms.py:104 +#, fuzzy +msgid "Wrong filter name" +msgstr "Dateiname" + #: extensions/sievefilters/lib.py:40 msgid "Connection to MANAGESIEVE server failed, check your configuration" -msgstr "Verbindung zu MANAGESIEVE-Server fehlgeschlagen. Überprüfen Sie Ihre Konfiguration." +msgstr "" +"Verbindung zu MANAGESIEVE-Server fehlgeschlagen. Überprüfen Sie Ihre " +"Konfiguration." #: extensions/sievefilters/lib.py:85 msgid "Not enough space on server" msgstr "Kein weiterer Platz auf Server verfügbar" -#: extensions/sievefilters/views.py:78 +#: extensions/sievefilters/views.py:80 msgid "Failed to retrieve filters set" msgstr "Konnte Filter-Satz nicht laden" -#: extensions/sievefilters/views.py:138 +#: extensions/sievefilters/views.py:141 #: extensions/sievefilters/templatetags/sfilters_tags.py:33 msgid "New filter" msgstr "Neuer Filter" -#: extensions/sievefilters/views.py:146 +#: extensions/sievefilters/views.py:149 msgid "Filter created" msgstr "Filter erstellt" -#: extensions/sievefilters/views.py:160 +#: extensions/sievefilters/views.py:163 #: extensions/sievefilters/templatetags/sfilters_tags.py:78 msgid "Edit filter" msgstr "Filter bearbeiten" -#: extensions/sievefilters/views.py:169 +#: extensions/sievefilters/views.py:172 msgid "Filter modified" msgstr "Filter verändert" -#: extensions/sievefilters/views.py:192 +#: extensions/sievefilters/views.py:195 msgid "Filter removed" msgstr "Filter entfernt" -#: extensions/sievefilters/views.py:193 +#: extensions/sievefilters/views.py:196 msgid "Failed to remove filter" msgstr "Konnte Filter nicht entfernen" -#: extensions/sievefilters/views.py:208 +#: extensions/sievefilters/views.py:211 msgid "Filters set saved" msgstr "Filter-Satz gespeichert" -#: extensions/sievefilters/views.py:224 +#: extensions/sievefilters/views.py:227 msgid "Filters set created" msgstr "Filter erstellt" -#: extensions/sievefilters/views.py:228 +#: extensions/sievefilters/views.py:231 msgid "Create a new filters set" msgstr "Neuen Filter-Satz erstellen" -#: extensions/sievefilters/views.py:247 +#: extensions/sievefilters/views.py:250 msgid "Filters set deleted" msgstr "Filter entfernt" -#: extensions/sievefilters/views.py:260 +#: extensions/sievefilters/views.py:263 msgid "Filters set activated" msgstr "Filter-Satz aktiviert" @@ -2309,8 +2381,11 @@ msgid "active" msgstr "aktiv" #: extensions/sievefilters/templates/sievefilters/index.html:94 -msgid "No filters set defined yet. You must create one in order to define filters." -msgstr "Nich keine Filter-Sätze definiert. Sie müssen einen erstellen, damit sie Filter erstellen können." +msgid "" +"No filters set defined yet. You must create one in order to define filters." +msgstr "" +"Nich keine Filter-Sätze definiert. Sie müssen einen erstellen, damit sie " +"Filter erstellen können." #: extensions/sievefilters/templatetags/sfilters_tags.py:15 msgid "New filters set" @@ -2369,14 +2444,6 @@ msgstr "Ablageverzeichnis für RRD-Dateien" msgid "Path to directory where RRD files are stored" msgstr "Pfad zum Verzeichnis in dem die RRD-Dateien abgelegt werden" -#: extensions/stats/app_settings.py:26 -msgid "Directory to store PNG files" -msgstr "Ablageverzeichnis für PNG-Dateien" - -#: extensions/stats/app_settings.py:28 -msgid "Path to directory where PNG files are stored" -msgstr "Pfad zu dem Verzeichnis in dem PNG-Dateien abgelegt werden" - #: extensions/stats/general_callbacks.py:12 msgid "Statistics" msgstr "Statistiken" @@ -2430,28 +2497,27 @@ msgstr "Versendegrösse" msgid "Mail traffic" msgstr "Mailverkehr" -#: extensions/stats/grapher.py:8 +#: extensions/stats/grapher.py:9 msgid "Day" msgstr "Tag" -#: extensions/stats/grapher.py:9 +#: extensions/stats/grapher.py:10 msgid "Week" msgstr "Woche" -#: extensions/stats/grapher.py:10 +#: extensions/stats/grapher.py:11 msgid "Month" msgstr "Monat" -#: extensions/stats/grapher.py:11 +#: extensions/stats/grapher.py:12 msgid "Year" msgstr "Jahr" -#: extensions/stats/grapher.py:60 +#: extensions/stats/grapher.py:61 msgid "Total" msgstr "Gesamt" -#: extensions/stats/views.py:28 -#: extensions/stats/templates/stats/graphs.html:4 +#: extensions/stats/views.py:28 extensions/stats/templates/stats/graphs.html:4 msgid "No statistics available" msgstr "Keine Statistik-Daten verfügbar" @@ -2557,7 +2623,9 @@ msgstr "Aktiviere/Deaktiviere Darstellung von HTML-Links" #: extensions/webmail/app_settings.py:92 msgid "Sets the maximum number of messages displayed in a page" -msgstr "Legt die maximale Anzahl von Nachrichten fest, die in einer Seite dargestellt werden" +msgstr "" +"Legt die maximale Anzahl von Nachrichten fest, die in einer Seite " +"dargestellt werden" #: extensions/webmail/app_settings.py:97 msgid "Listing refresh rate" @@ -2631,7 +2699,7 @@ msgstr "Server-Antwort" msgid "Unknown action" msgstr "Unbekannte Aktion" -#: extensions/webmail/forms.py:9 +#: extensions/webmail/forms.py:84 msgid "Cci" msgstr "Cci" @@ -2639,81 +2707,79 @@ msgstr "Cci" msgid "Webmail" msgstr "Webmail" -#: extensions/webmail/imaputils.py:242 -msgid "Failed to retrieve hierarchy delimiter" -msgstr "Konnte Trenner für Hierarchie nicht in Erfahrung bringen" - -#: extensions/webmail/imaputils.py:283 -#, python-format -msgid "Connection to IMAP server failed: %s" -msgstr "Verbindung zu IMAP-Server fehlgeschlagen: %s" - -#: extensions/webmail/lib.py:371 -msgid "wrote:" -msgstr "schrieb:" - -#: extensions/webmail/lib.py:437 -#: extensions/webmail/lib.py:441 -msgid "Original message" -msgstr "Gesendete Nachrichten" - -#: extensions/webmail/views.py:85 +#: extensions/webmail/views.py:87 #, python-format msgid "%(count)d message deleted" msgid_plural "%(count)d messages deleted" msgstr[0] "%(count)d Nachricht gelöscht" msgstr[1] "%(count)d Nachrichten gelöscht" -#: extensions/webmail/views.py:116 -#: lib/email_listing.py:138 +#: extensions/webmail/views.py:118 lib/email_listing.py:128 msgid "Empty mailbox" msgstr "Mailbox leer" -#: extensions/webmail/views.py:142 +#: extensions/webmail/views.py:144 msgid "Mailbox created" msgstr "Mailbox erstellt." -#: extensions/webmail/views.py:148 -#: extensions/webmail/templatetags/webmail_tags.py:175 +#: extensions/webmail/views.py:150 +#: extensions/webmail/templatetags/webmail_tags.py:177 msgid "Create a new mailbox" msgstr "Neue Mailbox erstellen" -#: extensions/webmail/views.py:167 -#: extensions/webmail/views.py:202 +#: extensions/webmail/views.py:169 extensions/webmail/views.py:204 msgid "Edit mailbox" msgstr "Mailbox bearbeiten" -#: extensions/webmail/views.py:183 +#: extensions/webmail/views.py:185 msgid "Mailbox updated" msgstr "Mailbox aktualisiert" -#: extensions/webmail/views.py:255 +#: extensions/webmail/views.py:257 msgid "Failed to save attachment: " msgstr "Konnte Anhang nicht speichern" -#: extensions/webmail/views.py:258 +#: extensions/webmail/views.py:260 #, python-format msgid "Attachment is too big (limit: %s)" msgstr "Anhang ist zu groß (Limit: %s)" -#: extensions/webmail/views.py:264 +#: extensions/webmail/views.py:266 #: extensions/webmail/templates/webmail/compose.html:15 #: extensions/webmail/templates/webmail/headers.html:4 msgid "Attachments" msgstr "Dateianhänge" -#: extensions/webmail/views.py:281 +#: extensions/webmail/views.py:283 msgid "Bad query" msgstr "Fehlerhafte Anfrage" -#: extensions/webmail/views.py:293 +#: extensions/webmail/views.py:295 msgid "Failed to remove attachment: " msgstr "Konnte Anhang nicht entfernen:" -#: extensions/webmail/views.py:298 +#: extensions/webmail/views.py:300 msgid "Unknown attachment" msgstr "Unbekannter Anhang" +#: extensions/webmail/lib/imapemail.py:235 +msgid "wrote:" +msgstr "schrieb:" + +#: extensions/webmail/lib/imapemail.py:302 +#: extensions/webmail/lib/imapemail.py:305 +msgid "Original message" +msgstr "Gesendete Nachrichten" + +#: extensions/webmail/lib/imaputils.py:242 +msgid "Failed to retrieve hierarchy delimiter" +msgstr "Konnte Trenner für Hierarchie nicht in Erfahrung bringen" + +#: extensions/webmail/lib/imaputils.py:283 +#, python-format +msgid "Connection to IMAP server failed: %s" +msgstr "Verbindung zu IMAP-Server fehlgeschlagen: %s" + #: extensions/webmail/templates/webmail/attachments.html:6 msgid "Attach" msgstr "Anhängen" @@ -2741,7 +2807,7 @@ msgstr[1] "%(counter)s Dateien" msgid "Parent mailbox" msgstr "Eltern-Mailbox" -#: extensions/webmail/templates/webmail/index.html:40 +#: extensions/webmail/templates/webmail/index.html:42 msgid "Mailbox quota" msgstr "Mailbox Quota" @@ -2801,11 +2867,11 @@ msgstr "Ordner komprimieren" msgid "Empty folder" msgstr "Leerer Ordner" -#: extensions/webmail/templatetags/webmail_tags.py:183 +#: extensions/webmail/templatetags/webmail_tags.py:185 msgid "Edit the selected mailbox" msgstr "Ausgewählte Mailbox bearbeiten" -#: extensions/webmail/templatetags/webmail_tags.py:188 +#: extensions/webmail/templatetags/webmail_tags.py:190 msgid "Remove the selected mailbox" msgstr "Markierte Mailbox entfernen" @@ -2823,8 +2889,7 @@ msgstr "Erlaubnis verweigert: %s" msgid "Permission denied" msgstr "Berechtigung verweigert" -#: lib/formutils.py:187 -#: lib/formutils.py:195 +#: lib/formutils.py:187 lib/formutils.py:195 msgid "Enter a valid domain name" msgstr "Geben Sie einen gültigen Domain-Namen an" @@ -2853,11 +2918,6 @@ msgstr "Super-Administrator" msgid "Domain administrator" msgstr "Domänen-Administrator" -#: lib/permissions.py:73 -#, python-format -msgid "Failed to grant access (%s)" -msgstr "Konnte Zugriff nicht gewähren: %s" - #: lib/tables.py:251 msgid "No entries to display" msgstr "Keine Einträge darzustellen" @@ -2866,8 +2926,7 @@ msgstr "Keine Einträge darzustellen" msgid "activate" msgstr "aktivieren" -#: templates/404.html:4 -#: templates/500.html:4 +#: templates/404.html:4 templates/500.html:4 msgid "Sorry" msgstr "Entschuldigung" @@ -2921,6 +2980,18 @@ msgstr "Erinnere mich" msgid "Log in" msgstr "Anmelden" +#~ msgid "A domain %s already exists" +#~ msgstr "Eine Domain %s existiert bereits" + +#~ msgid "Directory to store PNG files" +#~ msgstr "Ablageverzeichnis für PNG-Dateien" + +#~ msgid "Path to directory where PNG files are stored" +#~ msgstr "Pfad zu dem Verzeichnis in dem PNG-Dateien abgelegt werden" + +#~ msgid "Failed to grant access (%s)" +#~ msgstr "Konnte Zugriff nicht gewähren: %s" + #~ msgid "An alias with this name already exists" #~ msgstr "Ein Alias mit diesem Namen existiert bereits" diff --git a/modoboa/locale/de/LC_MESSAGES/djangojs.po b/modoboa/locale/de/LC_MESSAGES/djangojs.po index 928db3254..70039d146 100644 --- a/modoboa/locale/de/LC_MESSAGES/djangojs.po +++ b/modoboa/locale/de/LC_MESSAGES/djangojs.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Modoboa-0.9\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-12-15 10:16+0100\n" +"POT-Creation-Date: 2014-08-24 12:33+0200\n" "PO-Revision-Date: 2013-12-08 23:34+0100\n" "Last-Translator: Patrick Ben Koetter \n" "Language-Team: DE \n" @@ -108,18 +108,18 @@ msgstr "Ausgewählte Mailbox entfernen?" msgid "Mailbox removed" msgstr "Mailbox entfernt" -#: extensions/webmail/static/webmail/js/webmail.js:746 +#: extensions/webmail/static/webmail/js/webmail.js:752 msgid "Message sent" msgstr "Nachricht gesendet" -#: extensions/webmail/static/webmail/js/webmail.js:997 +#: extensions/webmail/static/webmail/js/webmail.js:1003 #, c-format msgid "%s file" msgid_plural "%s files" msgstr[0] "%s Datei" msgstr[1] "%s Dateien" -#: extensions/webmail/static/webmail/js/webmail.js:1031 +#: extensions/webmail/static/webmail/js/webmail.js:1037 #, c-format msgid "Moving %s message" msgid_plural "Moving %s messages" diff --git a/modoboa/locale/en/LC_MESSAGES/django.po b/modoboa/locale/en/LC_MESSAGES/django.po index 099630df0..76de9903a 100644 --- a/modoboa/locale/en/LC_MESSAGES/django.po +++ b/modoboa/locale/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-12-15 10:21+0100\n" +"POT-Creation-Date: 2014-08-24 12:29+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,8 +18,8 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" #: core/__init__.py:52 core/__init__.py:53 -#: extensions/admin/forms/account.py:326 extensions/admin/forms/domain.py:251 -#: extensions/admin/views/domain.py:95 extensions/admin/views/identity.py:127 +#: extensions/admin/forms/account.py:326 extensions/admin/forms/domain.py:256 +#: extensions/admin/views/domain.py:97 extensions/admin/views/identity.py:129 #: extensions/postfix_autoreply/app_settings.py:11 #: extensions/postfix_relay_domains/forms.py:138 #: extensions/sievefilters/app_settings.py:50 @@ -27,251 +27,261 @@ msgstr "" msgid "General" msgstr "" -#: core/app_settings.py:36 +#: core/app_settings.py:39 msgid "Authentication" msgstr "" -#: core/app_settings.py:39 +#: core/app_settings.py:42 msgid "Authentication type" msgstr "" -#: core/app_settings.py:40 +#: core/app_settings.py:43 msgid "Local" msgstr "" -#: core/app_settings.py:43 +#: core/app_settings.py:46 msgid "The backend used for authentication" msgstr "" -#: core/app_settings.py:48 +#: core/app_settings.py:51 msgid "Default password scheme" msgstr "" -#: core/app_settings.py:51 +#: core/app_settings.py:54 msgid "md5crypt (weak)" msgstr "" -#: core/app_settings.py:52 +#: core/app_settings.py:55 msgid "sha256 (weak)" msgstr "" -#: core/app_settings.py:53 +#: core/app_settings.py:56 msgid "md5 (weak)" msgstr "" -#: core/app_settings.py:54 +#: core/app_settings.py:57 msgid "crypt (weak)" msgstr "" -#: core/app_settings.py:55 +#: core/app_settings.py:58 msgid "plain (weak)" msgstr "" -#: core/app_settings.py:57 +#: core/app_settings.py:60 msgid "Scheme used to crypt mailbox passwords" msgstr "" -#: core/app_settings.py:61 +#: core/app_settings.py:64 msgid "Rounds" msgstr "" -#: core/app_settings.py:64 +#: core/app_settings.py:67 msgid "" "Number of rounds to use (only used by sha256crypt and sha512crypt). Must be " "between 1000 and 999999999, inclusive." msgstr "" -#: core/app_settings.py:70 +#: core/app_settings.py:73 msgid "Secret key" msgstr "" -#: core/app_settings.py:72 +#: core/app_settings.py:75 msgid "Key used to encrypt/decrypt passwords" msgstr "" -#: core/app_settings.py:76 +#: core/app_settings.py:79 msgid "LDAP settings" msgstr "" -#: core/app_settings.py:79 extensions/sievefilters/app_settings.py:22 +#: core/app_settings.py:82 extensions/sievefilters/app_settings.py:22 #: extensions/webmail/app_settings.py:22 extensions/webmail/app_settings.py:42 msgid "Server address" msgstr "" -#: core/app_settings.py:81 +#: core/app_settings.py:85 msgid "The IP address of the DNS name of the LDAP server" msgstr "" -#: core/app_settings.py:85 extensions/sievefilters/app_settings.py:28 +#: core/app_settings.py:89 extensions/sievefilters/app_settings.py:28 #: extensions/webmail/app_settings.py:34 extensions/webmail/app_settings.py:58 msgid "Server port" msgstr "" -#: core/app_settings.py:87 +#: core/app_settings.py:91 msgid "The TCP port number used by the LDAP server" msgstr "" -#: core/app_settings.py:91 extensions/webmail/app_settings.py:28 +#: core/app_settings.py:95 extensions/webmail/app_settings.py:28 msgid "Use a secured connection" msgstr "" -#: core/app_settings.py:93 +#: core/app_settings.py:98 msgid "Use an SSL/TLS connection to access the LDAP server" msgstr "" -#: core/app_settings.py:97 +#: core/app_settings.py:102 msgid "Authentication method" msgstr "" -#: core/app_settings.py:98 +#: core/app_settings.py:103 msgid "Search and bind" msgstr "" -#: core/app_settings.py:99 +#: core/app_settings.py:104 msgid "Direct bind" msgstr "" -#: core/app_settings.py:101 +#: core/app_settings.py:106 msgid "Choose the authentication method to use" msgstr "" -#: core/app_settings.py:106 +#: core/app_settings.py:111 msgid "Bind DN" msgstr "" -#: core/app_settings.py:108 +#: core/app_settings.py:114 msgid "" "The distinguished name to use when binding to the LDAP server. Leave empty " "for an anonymous bind" msgstr "" -#: core/app_settings.py:113 +#: core/app_settings.py:121 msgid "Bind password" msgstr "" -#: core/app_settings.py:115 +#: core/app_settings.py:124 msgid "The password to use when binding to the LDAP server (with 'Bind DN')" msgstr "" -#: core/app_settings.py:121 +#: core/app_settings.py:132 msgid "Users search base" msgstr "" -#: core/app_settings.py:123 +#: core/app_settings.py:135 msgid "The distinguished name of the search base used to find users" msgstr "" -#: core/app_settings.py:128 +#: core/app_settings.py:141 msgid "Search filter" msgstr "" -#: core/app_settings.py:130 +#: core/app_settings.py:144 msgid "" "An optional filter string (e.g. '(objectClass=person)'). In order to be " "valid, it must be enclosed in parentheses." msgstr "" -#: core/app_settings.py:135 +#: core/app_settings.py:151 msgid "User DN template" msgstr "" -#: core/app_settings.py:137 +#: core/app_settings.py:154 #, python-format msgid "" "The template used to construct a user's DN. It should contain one " "placeholder (ie. %(user)s)" msgstr "" -#: core/app_settings.py:142 +#: core/app_settings.py:161 msgid "Password attribute" msgstr "" -#: core/app_settings.py:144 +#: core/app_settings.py:163 msgid "The attribute used to store user passwords" msgstr "" -#: core/app_settings.py:148 +#: core/app_settings.py:167 msgid "Active Directory" msgstr "" -#: core/app_settings.py:150 +#: core/app_settings.py:170 msgid "Tell if the LDAP server is an Active Directory one" msgstr "" -#: core/app_settings.py:154 +#: core/app_settings.py:174 msgid "Administrator groups" msgstr "" -#: core/app_settings.py:157 +#: core/app_settings.py:177 msgid "" "Members of those LDAP Posix groups will be created as domain administrators. " "Use ';' characters to separate groups." msgstr "" -#: core/app_settings.py:164 +#: core/app_settings.py:184 msgid "Groups search base" msgstr "" -#: core/app_settings.py:167 +#: core/app_settings.py:187 msgid "The distinguished name of the search base used to find groups" msgstr "" -#: core/app_settings.py:172 +#: core/app_settings.py:193 +msgid "Domain/mailbox creation" +msgstr "" + +#: core/app_settings.py:196 +msgid "" +"Automatically create a domain and a mailbox when a new user is created just " +"after the first successful authentication." +msgstr "" + +#: core/app_settings.py:201 #: extensions/admin/templates/admin/editdomainform.html:7 msgid "Miscellaneous" msgstr "" -#: core/app_settings.py:175 +#: core/app_settings.py:204 msgid "Maximum log record age" msgstr "" -#: core/app_settings.py:177 +#: core/app_settings.py:206 msgid "The maximum age in days of a log record" msgstr "" -#: core/app_settings.py:181 +#: core/app_settings.py:210 msgid "Items per page" msgstr "" -#: core/app_settings.py:183 +#: core/app_settings.py:212 msgid "Number of displayed items per page" msgstr "" -#: core/app_settings.py:187 +#: core/app_settings.py:216 msgid "Default top redirection" msgstr "" -#: core/app_settings.py:190 +#: core/app_settings.py:220 msgid "The default redirection used when no application is specified" msgstr "" -#: core/app_settings.py:218 +#: core/app_settings.py:249 msgid "Key must be either 16, 24, or 32 bytes long" msgstr "" -#: core/app_settings.py:227 extensions/postfix_autoreply/app_settings.py:53 +#: core/app_settings.py:258 extensions/postfix_autoreply/app_settings.py:53 msgid "Invalid syntax" msgstr "" -#: core/app_settings.py:233 +#: core/app_settings.py:264 msgid "Invalid rounds number" msgstr "" -#: core/app_settings.py:256 +#: core/app_settings.py:287 msgid "This field is required" msgstr "" -#: core/app_settings.py:317 extensions/amavis/app_settings.py:87 +#: core/app_settings.py:349 extensions/amavis/app_settings.py:87 #: extensions/amavis/templates/amavis/main_action_bar.html:29 #: extensions/webmail/app_settings.py:73 msgid "Display" msgstr "" -#: core/app_settings.py:321 +#: core/app_settings.py:353 msgid "Prefered language" msgstr "" -#: core/app_settings.py:327 +#: core/app_settings.py:359 msgid "Prefered language to display pages" msgstr "" @@ -324,7 +334,7 @@ msgstr "" msgid "account" msgstr "" -#: core/models.py:321 extensions/admin/models/domain.py:135 +#: core/models.py:321 extensions/admin/models/domain.py:144 #: extensions/admin/models/domain_alias.py:39 #: extensions/postfix_relay_domains/models.py:134 #: extensions/postfix_relay_domains/models.py:190 @@ -335,17 +345,17 @@ msgstr "" msgid "You can't import an account with a role greater than yours" msgstr "" -#: core/models.py:331 +#: core/models.py:337 #, python-format msgid "The simple user '%s' must have a valid email address" msgstr "" -#: core/models.py:335 +#: core/models.py:341 #, python-format msgid "username and email fields must not differ for '%s'" msgstr "" -#: core/models.py:404 extensions/admin/models/alias.py:33 +#: core/models.py:410 extensions/admin/models/alias.py:35 #: extensions/admin/models/domain.py:32 #: extensions/admin/models/domain_alias.py:17 #: extensions/postfix_autoreply/models.py:28 @@ -354,29 +364,29 @@ msgstr "" msgid "enabled" msgstr "" -#: core/models.py:405 +#: core/models.py:411 msgid "Check to enable this extension" msgstr "" -#: core/models.py:475 +#: core/models.py:491 msgid "added" msgstr "" -#: core/models.py:478 +#: core/models.py:494 msgid "modified" msgstr "" -#: core/models.py:480 core/models.py:504 +#: core/models.py:496 core/models.py:521 #, python-format msgid "%(object)s '%(name)s' %(action)s by user %(user)s" msgstr "" -#: core/models.py:506 +#: core/models.py:523 msgid "deleted" msgstr "" #: core/tables.py:8 core/templates/core/information.html:8 -#: extensions/admin/tables.py:9 extensions/admin/forms/domain.py:182 +#: extensions/admin/tables.py:9 extensions/admin/forms/domain.py:187 #: extensions/admin/templates/admin/domains_table.html:5 #: extensions/admin/templates/admin/editdomainform.html:13 #: extensions/admin/templates/admin/identities_table.html:5 @@ -438,8 +448,9 @@ msgstr "" msgid "Previously on Modoboa..." msgstr "" -#: core/templates/core/logs.html:6 extensions/amavis/sql_listing.py:46 -#: extensions/webmail/lib.py:48 extensions/webmail/lib.py:425 +#: core/templates/core/logs.html:6 extensions/amavis/sql_listing.py:44 +#: extensions/webmail/lib/imapemail.py:290 +#: extensions/webmail/lib/listing.py:35 extensions/webmail/lib/tables.py:34 msgid "Date" msgstr "" @@ -490,12 +501,12 @@ msgstr "" #: core/templates/core/user_profile.html:8 #: extensions/admin/templates/admin/forward.html:8 -#: extensions/admin/views/alias.py:107 extensions/admin/views/domain.py:165 -#: extensions/admin/views/identity.py:197 +#: extensions/admin/views/alias.py:112 extensions/admin/views/domain.py:168 +#: extensions/admin/views/identity.py:200 #: extensions/postfix_autoreply/templates/postfix_autoreply/autoreply.html:9 -#: extensions/postfix_relay_domains/views.py:63 -#: extensions/sievefilters/views.py:163 extensions/webmail/views.py:170 -#: extensions/webmail/views.py:205 +#: extensions/postfix_relay_domains/views.py:66 +#: extensions/sievefilters/views.py:166 extensions/webmail/views.py:172 +#: extensions/webmail/views.py:207 msgid "Update" msgstr "" @@ -524,7 +535,7 @@ msgstr "" msgid "Your username and password didn't match. Please try again." msgstr "" -#: core/views/auth.py:66 +#: core/views/auth.py:69 #, python-format msgid "User '%s' logged out" msgstr "" @@ -604,7 +615,17 @@ msgstr "" msgid "Account import failed (%s): domain does not exist" msgstr "" -#: extensions/admin/app_settings.py:11 +#: extensions/admin/__init__.py:172 extensions/admin/forms/account.py:196 +#, python-format +msgid "Mailbox %s already exists" +msgstr "" + +#: extensions/admin/__init__.py:180 +#, python-format +msgid "Account import failed (%s): wrong quota value" +msgstr "" + +#: extensions/admin/app_settings.py:13 #: extensions/admin/templates/admin/editdomainform.html:25 #: extensions/limits/app_settings.py:31 extensions/limits/models.py:23 #: extensions/webmail/app_settings.py:107 @@ -612,43 +633,43 @@ msgstr "" msgid "Mailboxes" msgstr "" -#: extensions/admin/app_settings.py:14 +#: extensions/admin/app_settings.py:16 msgid "Handle mailboxes on filesystem" msgstr "" -#: extensions/admin/app_settings.py:16 +#: extensions/admin/app_settings.py:18 msgid "" "Rename or remove mailboxes on the filesystem when they get renamed or " "removed within Modoboa" msgstr "" -#: extensions/admin/app_settings.py:20 +#: extensions/admin/app_settings.py:22 msgid "Mailboxes owner" msgstr "" -#: extensions/admin/app_settings.py:22 +#: extensions/admin/app_settings.py:24 msgid "The UNIX account who owns mailboxes on the filesystem" msgstr "" -#: extensions/admin/app_settings.py:26 +#: extensions/admin/app_settings.py:28 msgid "Default domain quota" msgstr "" -#: extensions/admin/app_settings.py:29 +#: extensions/admin/app_settings.py:31 msgid "" "Default quota (in MB) applied to freshly created domains with no value " "specified. A value of 0 means no quota." msgstr "" -#: extensions/admin/app_settings.py:36 +#: extensions/admin/app_settings.py:38 msgid "Automatic account removal" msgstr "" -#: extensions/admin/app_settings.py:38 +#: extensions/admin/app_settings.py:40 msgid "When a mailbox is removed, also remove the associated account" msgstr "" -#: extensions/admin/app_settings.py:69 extensions/admin/forms/account.py:178 +#: extensions/admin/app_settings.py:81 extensions/admin/forms/account.py:178 #: extensions/admin/forms/domain.py:56 msgid "Must be a positive integer" msgstr "" @@ -724,11 +745,6 @@ msgstr "" msgid "Domain does not exist" msgstr "" -#: extensions/admin/forms/account.py:196 -#, python-format -msgid "Mailbox %s already exists" -msgstr "" - #: extensions/admin/forms/account.py:284 msgid "Domain(s)" msgstr "" @@ -738,7 +754,7 @@ msgid "Domain(s) that user administrates" msgstr "" #: extensions/admin/forms/account.py:328 -#: extensions/admin/views/identity.py:130 +#: extensions/admin/views/identity.py:132 msgid "Mail" msgstr "" @@ -774,7 +790,7 @@ msgstr "" msgid "Invalid mailbox" msgstr "" -#: extensions/admin/forms/alias.py:108 extensions/admin/models/alias.py:182 +#: extensions/admin/forms/alias.py:108 extensions/admin/models/alias.py:194 #, python-format msgid "Local recipient %s not found" msgstr "" @@ -819,33 +835,33 @@ msgstr "" msgid "domain" msgstr "" -#: extensions/admin/forms/domain.py:176 +#: extensions/admin/forms/domain.py:181 msgid "Create a domain administrator" msgstr "" -#: extensions/admin/forms/domain.py:178 +#: extensions/admin/forms/domain.py:183 msgid "Automatically create an administrator for this domain" msgstr "" -#: extensions/admin/forms/domain.py:185 +#: extensions/admin/forms/domain.py:190 msgid "" "The administrator's name. Don't include the domain's name here, it will be " "automatically appended." msgstr "" -#: extensions/admin/forms/domain.py:193 +#: extensions/admin/forms/domain.py:198 msgid "Create aliases" msgstr "" -#: extensions/admin/forms/domain.py:195 +#: extensions/admin/forms/domain.py:200 msgid "Automatically create standard aliases for this domain" msgstr "" -#: extensions/admin/forms/domain.py:211 +#: extensions/admin/forms/domain.py:216 msgid "Invalid format" msgstr "" -#: extensions/admin/forms/domain.py:225 +#: extensions/admin/forms/domain.py:230 #, python-format msgid "User '%s' already exists" msgstr "" @@ -880,7 +896,7 @@ msgid "" "administrator to create an alias instead." msgstr "" -#: extensions/admin/forms/import_.py:6 extensions/webmail/forms.py:26 +#: extensions/admin/forms/import_.py:6 extensions/webmail/forms.py:198 msgid "Select a file" msgstr "" @@ -900,52 +916,52 @@ msgstr "" msgid "Check this option if passwords contained in your file are not crypted" msgstr "" -#: extensions/admin/models/alias.py:16 extensions/admin/models/mailbox.py:51 +#: extensions/admin/models/alias.py:18 extensions/admin/models/mailbox.py:62 msgid "address" msgstr "" -#: extensions/admin/models/alias.py:18 +#: extensions/admin/models/alias.py:20 msgid "" "The alias address (without the domain part). For a 'catch-all' address, just " "enter an * character." msgstr "" -#: extensions/admin/models/alias.py:24 +#: extensions/admin/models/alias.py:26 msgid "mailboxes" msgstr "" -#: extensions/admin/models/alias.py:25 +#: extensions/admin/models/alias.py:27 msgid "The mailboxes this alias points to" msgstr "" -#: extensions/admin/models/alias.py:29 +#: extensions/admin/models/alias.py:31 msgid "The aliases this alias points to" msgstr "" -#: extensions/admin/models/alias.py:34 +#: extensions/admin/models/alias.py:36 #: extensions/admin/models/domain_alias.py:18 #: extensions/postfix_relay_domains/models.py:168 msgid "Check to activate this alias" msgstr "" -#: extensions/admin/models/alias.py:79 +#: extensions/admin/models/alias.py:81 msgid "distribution list" msgstr "" -#: extensions/admin/models/alias.py:80 +#: extensions/admin/models/alias.py:82 msgid "forward" msgstr "" -#: extensions/admin/models/alias.py:81 +#: extensions/admin/models/alias.py:83 msgid "alias" msgstr "" -#: extensions/admin/models/alias.py:150 +#: extensions/admin/models/alias.py:152 #, python-format msgid "Invalid line: %s" msgstr "" -#: extensions/admin/models/alias.py:155 +#: extensions/admin/models/alias.py:157 #, python-format msgid "Domain '%s' does not exist" msgstr "" @@ -972,7 +988,7 @@ msgstr "" msgid "Domain" msgstr "" -#: extensions/admin/models/domain.py:140 +#: extensions/admin/models/domain.py:155 #, python-format msgid "Invalid quota value for domain '%s'" msgstr "" @@ -991,31 +1007,26 @@ msgstr "" msgid "The domain this alias points to" msgstr "" -#: extensions/admin/models/domain_alias.py:46 -#, python-format -msgid "A domain %s already exists" -msgstr "" - -#: extensions/admin/models/domain_alias.py:51 +#: extensions/admin/models/domain_alias.py:52 #, python-format msgid "Unknown domain %s" msgstr "" -#: extensions/admin/models/mailbox.py:52 +#: extensions/admin/models/mailbox.py:63 msgid "Mailbox address (without the @domain.tld part)" msgstr "" -#: extensions/admin/models/mailbox.py:113 +#: extensions/admin/models/mailbox.py:125 #, python-format msgid "Failed to retrieve mailbox location (%s)" msgstr "" -#: extensions/admin/models/mailbox.py:173 +#: extensions/admin/models/mailbox.py:194 #, python-format msgid "Quota is greater than the allowed domain's limit (%dM)" msgstr "" -#: extensions/admin/models/mailbox.py:178 +#: extensions/admin/models/mailbox.py:199 msgid "A quota is required" msgstr "" @@ -1037,7 +1048,7 @@ msgstr "" #: extensions/admin/templates/admin/domains_table.html:8 #: extensions/admin/templates/admin/identities_table.html:8 #: extensions/admin/templates/admin/listing.html:17 -#: extensions/sievefilters/views.py:93 +#: extensions/sievefilters/views.py:95 #: extensions/sievefilters/templates/sievefilters/filter.html:17 #: extensions/sievefilters/templates/sievefilters/guieditor.html:5 #: extensions/webmail/templatetags/webmail_tags.py:101 @@ -1134,7 +1145,7 @@ msgstr "" #: extensions/admin/templatetags/admin_tags.py:42 #: extensions/admin/templatetags/admin_tags.py:106 -#: extensions/admin/views/import.py:51 extensions/admin/views/import.py:166 +#: extensions/admin/views/import.py:52 extensions/admin/views/import.py:168 msgid "Import" msgstr "" @@ -1184,84 +1195,84 @@ msgstr "" msgid "Remove this permission" msgstr "" -#: extensions/admin/views/alias.py:25 +#: extensions/admin/views/alias.py:26 msgid "Alias with this name already exists" msgstr "" -#: extensions/admin/views/alias.py:49 extensions/admin/views/domain.py:100 -#: extensions/admin/views/domain.py:129 extensions/admin/views/identity.py:131 -#: extensions/admin/views/identity.py:158 -#: extensions/postfix_relay_domains/views.py:32 -#: extensions/sievefilters/views.py:141 extensions/sievefilters/views.py:230 -#: extensions/webmail/views.py:151 +#: extensions/admin/views/alias.py:50 extensions/admin/views/domain.py:102 +#: extensions/admin/views/domain.py:131 extensions/admin/views/identity.py:133 +#: extensions/admin/views/identity.py:160 +#: extensions/postfix_relay_domains/views.py:34 +#: extensions/sievefilters/views.py:144 extensions/sievefilters/views.py:233 +#: extensions/webmail/views.py:153 msgid "Create" msgstr "" -#: extensions/admin/views/alias.py:61 +#: extensions/admin/views/alias.py:63 msgid "New distribution list" msgstr "" -#: extensions/admin/views/alias.py:62 +#: extensions/admin/views/alias.py:64 msgid "Distribution list created" msgstr "" -#: extensions/admin/views/alias.py:71 +#: extensions/admin/views/alias.py:74 msgid "New alias" msgstr "" -#: extensions/admin/views/alias.py:72 +#: extensions/admin/views/alias.py:75 msgid "Alias created" msgstr "" -#: extensions/admin/views/alias.py:81 +#: extensions/admin/views/alias.py:85 msgid "New forward" msgstr "" -#: extensions/admin/views/alias.py:82 +#: extensions/admin/views/alias.py:86 msgid "Forward created" msgstr "" -#: extensions/admin/views/alias.py:95 +#: extensions/admin/views/alias.py:100 msgid "Distribution list modified" msgstr "" -#: extensions/admin/views/alias.py:97 +#: extensions/admin/views/alias.py:102 msgid "Forward modified" msgstr "" -#: extensions/admin/views/alias.py:99 +#: extensions/admin/views/alias.py:104 msgid "Alias modified" msgstr "" -#: extensions/admin/views/domain.py:96 extensions/admin/views/identity.py:128 +#: extensions/admin/views/domain.py:98 extensions/admin/views/identity.py:130 msgid "Next" msgstr "" -#: extensions/admin/views/domain.py:99 +#: extensions/admin/views/domain.py:101 msgid "Options" msgstr "" -#: extensions/admin/views/domain.py:101 extensions/admin/views/identity.py:132 +#: extensions/admin/views/domain.py:103 extensions/admin/views/identity.py:134 msgid "Previous" msgstr "" -#: extensions/admin/views/domain.py:123 +#: extensions/admin/views/domain.py:125 msgid "Domain created" msgstr "" -#: extensions/admin/views/domain.py:128 +#: extensions/admin/views/domain.py:130 msgid "New domain" msgstr "" -#: extensions/admin/views/domain.py:155 +#: extensions/admin/views/domain.py:158 msgid "Domain modified" msgstr "" -#: extensions/admin/views/domain.py:189 +#: extensions/admin/views/domain.py:192 msgid "You can't delete your own domain" msgstr "" -#: extensions/admin/views/domain.py:192 +#: extensions/admin/views/domain.py:195 msgid "Domain deleted" msgid_plural "Domains deleted" msgstr[0] "" @@ -1275,40 +1286,40 @@ msgstr "" msgid "Export domains" msgstr "" -#: extensions/admin/views/identity.py:103 -#: extensions/admin/views/identity.py:224 -#: extensions/admin/views/identity.py:229 extensions/amavis/views.py:179 -#: extensions/amavis/views.py:185 extensions/amavis/views.py:220 -#: extensions/amavis/views.py:224 extensions/amavis/views.py:226 -#: extensions/webmail/views.py:47 extensions/webmail/views.py:65 -#: extensions/webmail/views.py:79 extensions/webmail/views.py:97 -#: extensions/webmail/views.py:114 extensions/webmail/views.py:200 -#: extensions/webmail/views.py:223 extensions/webmail/views.py:396 -#: extensions/webmail/views.py:430 extensions/webmail/views.py:443 -#: extensions/webmail/views.py:472 extensions/webmail/views.py:512 +#: extensions/admin/views/identity.py:104 +#: extensions/admin/views/identity.py:227 +#: extensions/admin/views/identity.py:232 extensions/amavis/views.py:144 +#: extensions/amavis/views.py:148 extensions/amavis/views.py:181 +#: extensions/amavis/views.py:186 extensions/amavis/views.py:188 +#: extensions/webmail/views.py:49 extensions/webmail/views.py:67 +#: extensions/webmail/views.py:81 extensions/webmail/views.py:99 +#: extensions/webmail/views.py:116 extensions/webmail/views.py:202 +#: extensions/webmail/views.py:225 extensions/webmail/views.py:401 +#: extensions/webmail/views.py:451 extensions/webmail/views.py:467 +#: extensions/webmail/views.py:496 extensions/webmail/views.py:536 #: lib/formutils.py:44 lib/formutils.py:49 msgid "Invalid request" msgstr "" -#: extensions/admin/views/identity.py:149 +#: extensions/admin/views/identity.py:151 msgid "Account created" msgstr "" -#: extensions/admin/views/identity.py:155 +#: extensions/admin/views/identity.py:157 msgid "New account" msgstr "" -#: extensions/admin/views/identity.py:190 +#: extensions/admin/views/identity.py:193 msgid "Account updated" msgstr "" -#: extensions/admin/views/identity.py:214 +#: extensions/admin/views/identity.py:217 msgid "Account deleted" msgid_plural "Accounts deleted" msgstr[0] "" msgstr[1] "" -#: extensions/admin/views/import.py:39 +#: extensions/admin/views/import.py:40 #, python-format msgid "" "Provide a CSV file where lines respect one of the following formats:\n" @@ -1322,21 +1333,21 @@ msgid "" "

    You can use a different character as separator.

    \n" msgstr "" -#: extensions/admin/views/import.py:50 +#: extensions/admin/views/import.py:51 msgid "Import domains" msgstr "" -#: extensions/admin/views/import.py:129 +#: extensions/admin/views/import.py:131 #, python-format msgid "Object already exists: %s" msgstr "" -#: extensions/admin/views/import.py:133 +#: extensions/admin/views/import.py:135 #, python-format msgid "%d objects imported successfully" msgstr "" -#: extensions/admin/views/import.py:153 +#: extensions/admin/views/import.py:155 msgid "" "Provide a CSV file where lines respect one of the following formats:\n" "
      \n" @@ -1352,11 +1363,11 @@ msgid "" "

      You can use a different character as separator.

      \n" msgstr "" -#: extensions/admin/views/import.py:165 +#: extensions/admin/views/import.py:167 msgid "Import identities" msgstr "" -#: extensions/admin/views/user.py:37 +#: extensions/admin/views/user.py:38 msgid "Forward updated" msgstr "" @@ -1364,7 +1375,7 @@ msgstr "" msgid "Simple amavis management frontend" msgstr "" -#: extensions/amavis/__init__.py:52 extensions/amavis/general_callbacks.py:17 +#: extensions/amavis/__init__.py:52 extensions/amavis/general_callbacks.py:18 msgid "Quarantine" msgstr "" @@ -1464,19 +1475,19 @@ msgstr "" msgid "Set the maximum number of messages displayed in a page" msgstr "" -#: extensions/amavis/general_callbacks.py:81 +#: extensions/amavis/general_callbacks.py:82 msgid "pending requests" msgstr "" -#: extensions/amavis/general_callbacks.py:124 +#: extensions/amavis/general_callbacks.py:125 msgid "Pending requests" msgstr "" -#: extensions/amavis/general_callbacks.py:134 +#: extensions/amavis/general_callbacks.py:135 msgid "Content filter" msgstr "" -#: extensions/amavis/lib.py:57 +#: extensions/amavis/lib.py:56 #, python-format msgid "Connection to amavis failed: %s" msgstr "" @@ -1486,12 +1497,12 @@ msgid "Virus filter" msgstr "" #: extensions/amavis/models.py:94 extensions/amavis/models.py:102 -#: extensions/amavis/models.py:110 extensions/sievefilters/views.py:290 +#: extensions/amavis/models.py:110 extensions/sievefilters/views.py:293 msgid "yes" msgstr "" #: extensions/amavis/models.py:95 extensions/amavis/models.py:103 -#: extensions/amavis/models.py:111 extensions/sievefilters/views.py:294 +#: extensions/amavis/models.py:111 extensions/sievefilters/views.py:297 msgid "no" msgstr "" @@ -1531,24 +1542,26 @@ msgid "" "settings." msgstr "" -#: extensions/amavis/sql_listing.py:31 +#: extensions/amavis/sql_listing.py:29 msgid "Score" msgstr "" -#: extensions/amavis/sql_listing.py:35 +#: extensions/amavis/sql_listing.py:33 #: extensions/amavis/templatetags/amavis_tags.py:75 -#: extensions/webmail/forms.py:7 +#: extensions/webmail/forms.py:82 msgid "To" msgstr "" -#: extensions/amavis/sql_listing.py:38 -#: extensions/postfix_autoreply/forms.py:11 extensions/webmail/lib.py:44 +#: extensions/amavis/sql_listing.py:36 +#: extensions/postfix_autoreply/forms.py:10 +#: extensions/webmail/lib/listing.py:31 extensions/webmail/lib/tables.py:30 msgid "From" msgstr "" -#: extensions/amavis/sql_listing.py:42 extensions/sievefilters/forms.py:77 -#: extensions/webmail/forms.py:11 extensions/webmail/lib.py:40 -#: extensions/webmail/lib.py:423 templates/common/email_searchbar.html:6 +#: extensions/amavis/sql_listing.py:40 extensions/sievefilters/forms.py:77 +#: extensions/webmail/forms.py:86 extensions/webmail/lib/imapemail.py:288 +#: extensions/webmail/lib/listing.py:27 extensions/webmail/lib/tables.py:26 +#: templates/common/email_searchbar.html:6 msgid "Subject" msgstr "" @@ -1556,40 +1569,40 @@ msgstr "" msgid "Empty quarantine" msgstr "" -#: extensions/amavis/views.py:186 +#: extensions/amavis/views.py:149 msgid "Message deleted" msgstr "" -#: extensions/amavis/views.py:207 +#: extensions/amavis/views.py:168 #, python-format msgid "%(count)d message deleted successfully" msgid_plural "%(count)d messages deleted successfully" msgstr[0] "" msgstr[1] "" -#: extensions/amavis/views.py:229 +#: extensions/amavis/views.py:191 msgid "Request sent" msgstr "" -#: extensions/amavis/views.py:235 +#: extensions/amavis/views.py:197 msgid "Message released" msgstr "" -#: extensions/amavis/views.py:268 +#: extensions/amavis/views.py:225 #, python-format msgid "%(count)d request sent" msgid_plural "%(count)d requests sent" msgstr[0] "" msgstr[1] "" -#: extensions/amavis/views.py:288 +#: extensions/amavis/views.py:246 #, python-format msgid "%(count)d message released successfully" msgid_plural "%(count)d messages released successfully" msgstr[0] "" msgstr[1] "" -#: extensions/amavis/management/commands/amnotify.py:57 +#: extensions/amavis/management/commands/amnotify.py:61 msgid "[modoboa] Pending release requests" msgstr "" @@ -1821,7 +1834,7 @@ msgstr "" msgid "Auto-reply (vacation) functionality using Postfix" msgstr "" -#: extensions/postfix_autoreply/__init__.py:47 +#: extensions/postfix_autoreply/__init__.py:49 msgid "Automatic replies" msgstr "" @@ -1866,24 +1879,24 @@ msgid "" "The '%(name)s' macro will be replaced by the user's full name." msgstr "" -#: extensions/postfix_autoreply/forms.py:13 +#: extensions/postfix_autoreply/forms.py:12 msgid "Activate your auto reply from this date" msgstr "" -#: extensions/postfix_autoreply/forms.py:19 +#: extensions/postfix_autoreply/forms.py:18 msgid "Until" msgstr "" -#: extensions/postfix_autoreply/forms.py:21 +#: extensions/postfix_autoreply/forms.py:20 msgid "Activate your auto reply until this date" msgstr "" -#: extensions/postfix_autoreply/forms.py:49 #: extensions/postfix_autoreply/forms.py:55 +#: extensions/postfix_autoreply/forms.py:62 msgid "This date is over" msgstr "" -#: extensions/postfix_autoreply/forms.py:59 +#: extensions/postfix_autoreply/forms.py:67 msgid "Must be greater than start date" msgstr "" @@ -2028,19 +2041,19 @@ msgstr "" msgid "Relay domain %s does not exist" msgstr "" -#: extensions/postfix_relay_domains/views.py:26 +#: extensions/postfix_relay_domains/views.py:28 msgid "Relay domain created" msgstr "" -#: extensions/postfix_relay_domains/views.py:31 +#: extensions/postfix_relay_domains/views.py:33 msgid "New relay domain" msgstr "" -#: extensions/postfix_relay_domains/views.py:54 +#: extensions/postfix_relay_domains/views.py:57 msgid "Relay domain modified" msgstr "" -#: extensions/postfix_relay_domains/views.py:77 +#: extensions/postfix_relay_domains/views.py:80 msgid "Relay domain deleted" msgstr "" @@ -2134,7 +2147,7 @@ msgstr "" msgid "Recipient" msgstr "" -#: extensions/sievefilters/forms.py:80 extensions/webmail/forms.py:8 +#: extensions/sievefilters/forms.py:80 extensions/webmail/forms.py:83 msgid "Cc" msgstr "" @@ -2158,6 +2171,10 @@ msgstr "" msgid "Redirect message to" msgstr "" +#: extensions/sievefilters/forms.py:104 +msgid "Wrong filter name" +msgstr "" + #: extensions/sievefilters/lib.py:40 msgid "Connection to MANAGESIEVE server failed, check your configuration" msgstr "" @@ -2166,53 +2183,53 @@ msgstr "" msgid "Not enough space on server" msgstr "" -#: extensions/sievefilters/views.py:78 +#: extensions/sievefilters/views.py:80 msgid "Failed to retrieve filters set" msgstr "" -#: extensions/sievefilters/views.py:138 +#: extensions/sievefilters/views.py:141 #: extensions/sievefilters/templatetags/sfilters_tags.py:33 msgid "New filter" msgstr "" -#: extensions/sievefilters/views.py:146 +#: extensions/sievefilters/views.py:149 msgid "Filter created" msgstr "" -#: extensions/sievefilters/views.py:160 +#: extensions/sievefilters/views.py:163 #: extensions/sievefilters/templatetags/sfilters_tags.py:78 msgid "Edit filter" msgstr "" -#: extensions/sievefilters/views.py:169 +#: extensions/sievefilters/views.py:172 msgid "Filter modified" msgstr "" -#: extensions/sievefilters/views.py:192 +#: extensions/sievefilters/views.py:195 msgid "Filter removed" msgstr "" -#: extensions/sievefilters/views.py:193 +#: extensions/sievefilters/views.py:196 msgid "Failed to remove filter" msgstr "" -#: extensions/sievefilters/views.py:208 +#: extensions/sievefilters/views.py:211 msgid "Filters set saved" msgstr "" -#: extensions/sievefilters/views.py:224 +#: extensions/sievefilters/views.py:227 msgid "Filters set created" msgstr "" -#: extensions/sievefilters/views.py:228 +#: extensions/sievefilters/views.py:231 msgid "Create a new filters set" msgstr "" -#: extensions/sievefilters/views.py:247 +#: extensions/sievefilters/views.py:250 msgid "Filters set deleted" msgstr "" -#: extensions/sievefilters/views.py:260 +#: extensions/sievefilters/views.py:263 msgid "Filters set activated" msgstr "" @@ -2298,14 +2315,6 @@ msgstr "" msgid "Path to directory where RRD files are stored" msgstr "" -#: extensions/stats/app_settings.py:26 -msgid "Directory to store PNG files" -msgstr "" - -#: extensions/stats/app_settings.py:28 -msgid "Path to directory where PNG files are stored" -msgstr "" - #: extensions/stats/general_callbacks.py:12 msgid "Statistics" msgstr "" @@ -2359,23 +2368,23 @@ msgstr "" msgid "Mail traffic" msgstr "" -#: extensions/stats/grapher.py:8 +#: extensions/stats/grapher.py:9 msgid "Day" msgstr "" -#: extensions/stats/grapher.py:9 +#: extensions/stats/grapher.py:10 msgid "Week" msgstr "" -#: extensions/stats/grapher.py:10 +#: extensions/stats/grapher.py:11 msgid "Month" msgstr "" -#: extensions/stats/grapher.py:11 +#: extensions/stats/grapher.py:12 msgid "Year" msgstr "" -#: extensions/stats/grapher.py:60 +#: extensions/stats/grapher.py:61 msgid "Total" msgstr "" @@ -2559,7 +2568,7 @@ msgstr "" msgid "Unknown action" msgstr "" -#: extensions/webmail/forms.py:9 +#: extensions/webmail/forms.py:84 msgid "Cci" msgstr "" @@ -2567,78 +2576,79 @@ msgstr "" msgid "Webmail" msgstr "" -#: extensions/webmail/imaputils.py:242 -msgid "Failed to retrieve hierarchy delimiter" -msgstr "" - -#: extensions/webmail/imaputils.py:283 -#, python-format -msgid "Connection to IMAP server failed: %s" -msgstr "" - -#: extensions/webmail/lib.py:371 -msgid "wrote:" -msgstr "" - -#: extensions/webmail/lib.py:437 extensions/webmail/lib.py:441 -msgid "Original message" -msgstr "" - -#: extensions/webmail/views.py:85 +#: extensions/webmail/views.py:87 #, python-format msgid "%(count)d message deleted" msgid_plural "%(count)d messages deleted" msgstr[0] "" msgstr[1] "" -#: extensions/webmail/views.py:116 lib/email_listing.py:138 +#: extensions/webmail/views.py:118 lib/email_listing.py:128 msgid "Empty mailbox" msgstr "" -#: extensions/webmail/views.py:142 +#: extensions/webmail/views.py:144 msgid "Mailbox created" msgstr "" -#: extensions/webmail/views.py:148 -#: extensions/webmail/templatetags/webmail_tags.py:175 +#: extensions/webmail/views.py:150 +#: extensions/webmail/templatetags/webmail_tags.py:177 msgid "Create a new mailbox" msgstr "" -#: extensions/webmail/views.py:167 extensions/webmail/views.py:202 +#: extensions/webmail/views.py:169 extensions/webmail/views.py:204 msgid "Edit mailbox" msgstr "" -#: extensions/webmail/views.py:183 +#: extensions/webmail/views.py:185 msgid "Mailbox updated" msgstr "" -#: extensions/webmail/views.py:255 +#: extensions/webmail/views.py:257 msgid "Failed to save attachment: " msgstr "" -#: extensions/webmail/views.py:258 +#: extensions/webmail/views.py:260 #, python-format msgid "Attachment is too big (limit: %s)" msgstr "" -#: extensions/webmail/views.py:264 +#: extensions/webmail/views.py:266 #: extensions/webmail/templates/webmail/compose.html:15 #: extensions/webmail/templates/webmail/headers.html:4 msgid "Attachments" msgstr "" -#: extensions/webmail/views.py:281 +#: extensions/webmail/views.py:283 msgid "Bad query" msgstr "" -#: extensions/webmail/views.py:293 +#: extensions/webmail/views.py:295 msgid "Failed to remove attachment: " msgstr "" -#: extensions/webmail/views.py:298 +#: extensions/webmail/views.py:300 msgid "Unknown attachment" msgstr "" +#: extensions/webmail/lib/imapemail.py:235 +msgid "wrote:" +msgstr "" + +#: extensions/webmail/lib/imapemail.py:302 +#: extensions/webmail/lib/imapemail.py:305 +msgid "Original message" +msgstr "" + +#: extensions/webmail/lib/imaputils.py:242 +msgid "Failed to retrieve hierarchy delimiter" +msgstr "" + +#: extensions/webmail/lib/imaputils.py:283 +#, python-format +msgid "Connection to IMAP server failed: %s" +msgstr "" + #: extensions/webmail/templates/webmail/attachments.html:6 msgid "Attach" msgstr "" @@ -2666,7 +2676,7 @@ msgstr[1] "" msgid "Parent mailbox" msgstr "" -#: extensions/webmail/templates/webmail/index.html:40 +#: extensions/webmail/templates/webmail/index.html:42 msgid "Mailbox quota" msgstr "" @@ -2726,11 +2736,11 @@ msgstr "" msgid "Empty folder" msgstr "" -#: extensions/webmail/templatetags/webmail_tags.py:183 +#: extensions/webmail/templatetags/webmail_tags.py:185 msgid "Edit the selected mailbox" msgstr "" -#: extensions/webmail/templatetags/webmail_tags.py:188 +#: extensions/webmail/templatetags/webmail_tags.py:190 msgid "Remove the selected mailbox" msgstr "" @@ -2777,11 +2787,6 @@ msgstr "" msgid "Domain administrator" msgstr "" -#: lib/permissions.py:73 -#, python-format -msgid "Failed to grant access (%s)" -msgstr "" - #: lib/tables.py:251 msgid "No entries to display" msgstr "" diff --git a/modoboa/locale/en/LC_MESSAGES/djangojs.po b/modoboa/locale/en/LC_MESSAGES/djangojs.po index 22ebd2479..530dd8b34 100644 --- a/modoboa/locale/en/LC_MESSAGES/djangojs.po +++ b/modoboa/locale/en/LC_MESSAGES/djangojs.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-12-15 10:16+0100\n" +"POT-Creation-Date: 2014-08-24 12:32+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -106,18 +106,18 @@ msgstr "" msgid "Mailbox removed" msgstr "" -#: extensions/webmail/static/webmail/js/webmail.js:746 +#: extensions/webmail/static/webmail/js/webmail.js:752 msgid "Message sent" msgstr "" -#: extensions/webmail/static/webmail/js/webmail.js:997 +#: extensions/webmail/static/webmail/js/webmail.js:1003 #, c-format msgid "%s file" msgid_plural "%s files" msgstr[0] "" msgstr[1] "" -#: extensions/webmail/static/webmail/js/webmail.js:1031 +#: extensions/webmail/static/webmail/js/webmail.js:1037 #, c-format msgid "Moving %s message" msgid_plural "Moving %s messages" diff --git a/modoboa/locale/es/LC_MESSAGES/django.po b/modoboa/locale/es/LC_MESSAGES/django.po index 67ff3ab25..abeb7228e 100644 --- a/modoboa/locale/es/LC_MESSAGES/django.po +++ b/modoboa/locale/es/LC_MESSAGES/django.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Modoboa\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-12-15 10:20+0100\n" +"POT-Creation-Date: 2014-08-24 12:29+0200\n" "PO-Revision-Date: 2013-10-01 09:56+0000\n" "Last-Translator: Pedro Gracia \n" "Language-Team: Spanish (http://www.transifex.com/projects/p/modoboa/language/" @@ -21,8 +21,8 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: core/__init__.py:52 core/__init__.py:53 -#: extensions/admin/forms/account.py:326 extensions/admin/forms/domain.py:251 -#: extensions/admin/views/domain.py:95 extensions/admin/views/identity.py:127 +#: extensions/admin/forms/account.py:326 extensions/admin/forms/domain.py:256 +#: extensions/admin/views/domain.py:97 extensions/admin/views/identity.py:129 #: extensions/postfix_autoreply/app_settings.py:11 #: extensions/postfix_relay_domains/forms.py:138 #: extensions/sievefilters/app_settings.py:50 @@ -30,119 +30,119 @@ msgstr "" msgid "General" msgstr "General" -#: core/app_settings.py:36 +#: core/app_settings.py:39 msgid "Authentication" msgstr "Autenticación" -#: core/app_settings.py:39 +#: core/app_settings.py:42 msgid "Authentication type" msgstr "Tipo de autenticación" -#: core/app_settings.py:40 +#: core/app_settings.py:43 msgid "Local" msgstr "Local" -#: core/app_settings.py:43 +#: core/app_settings.py:46 msgid "The backend used for authentication" msgstr "El sistema usado para autenticación" -#: core/app_settings.py:48 +#: core/app_settings.py:51 msgid "Default password scheme" msgstr "Esquema de contraseña por defecto" -#: core/app_settings.py:51 +#: core/app_settings.py:54 msgid "md5crypt (weak)" msgstr "" -#: core/app_settings.py:52 +#: core/app_settings.py:55 msgid "sha256 (weak)" msgstr "" -#: core/app_settings.py:53 +#: core/app_settings.py:56 msgid "md5 (weak)" msgstr "" -#: core/app_settings.py:54 +#: core/app_settings.py:57 msgid "crypt (weak)" msgstr "" -#: core/app_settings.py:55 +#: core/app_settings.py:58 msgid "plain (weak)" msgstr "" -#: core/app_settings.py:57 +#: core/app_settings.py:60 msgid "Scheme used to crypt mailbox passwords" msgstr "Esquema usado para cifrar las contraseñas del mailbox" -#: core/app_settings.py:61 +#: core/app_settings.py:64 msgid "Rounds" msgstr "" -#: core/app_settings.py:64 +#: core/app_settings.py:67 msgid "" "Number of rounds to use (only used by sha256crypt and sha512crypt). Must be " "between 1000 and 999999999, inclusive." msgstr "" -#: core/app_settings.py:70 +#: core/app_settings.py:73 msgid "Secret key" msgstr "Clave secreta" -#: core/app_settings.py:72 +#: core/app_settings.py:75 msgid "Key used to encrypt/decrypt passwords" msgstr "Clave usada para cifrar/descifrar contraseñas" -#: core/app_settings.py:76 +#: core/app_settings.py:79 msgid "LDAP settings" msgstr "Configuración de LDAP" -#: core/app_settings.py:79 extensions/sievefilters/app_settings.py:22 +#: core/app_settings.py:82 extensions/sievefilters/app_settings.py:22 #: extensions/webmail/app_settings.py:22 extensions/webmail/app_settings.py:42 msgid "Server address" msgstr "Dirección del servidor" -#: core/app_settings.py:81 +#: core/app_settings.py:85 msgid "The IP address of the DNS name of the LDAP server" msgstr "La dirección IP del servidor de nombres (DNS) del servidor LDAP" -#: core/app_settings.py:85 extensions/sievefilters/app_settings.py:28 +#: core/app_settings.py:89 extensions/sievefilters/app_settings.py:28 #: extensions/webmail/app_settings.py:34 extensions/webmail/app_settings.py:58 msgid "Server port" msgstr "Puerto del servidor" -#: core/app_settings.py:87 +#: core/app_settings.py:91 msgid "The TCP port number used by the LDAP server" msgstr "Número de puerto TCP usado por el servidor LDAP" -#: core/app_settings.py:91 extensions/webmail/app_settings.py:28 +#: core/app_settings.py:95 extensions/webmail/app_settings.py:28 msgid "Use a secured connection" msgstr "Usa una conexión segura" -#: core/app_settings.py:93 +#: core/app_settings.py:98 msgid "Use an SSL/TLS connection to access the LDAP server" msgstr "Usa una conexión SSL/TLS para acceder al servidor LDAP" -#: core/app_settings.py:97 +#: core/app_settings.py:102 msgid "Authentication method" msgstr "Método de autenticación" -#: core/app_settings.py:98 +#: core/app_settings.py:103 msgid "Search and bind" msgstr "Buscar y unir" -#: core/app_settings.py:99 +#: core/app_settings.py:104 msgid "Direct bind" msgstr "Unión directa" -#: core/app_settings.py:101 +#: core/app_settings.py:106 msgid "Choose the authentication method to use" msgstr "Elegir el método de autenticación a usar" -#: core/app_settings.py:106 +#: core/app_settings.py:111 msgid "Bind DN" msgstr "Unir a DN" -#: core/app_settings.py:108 +#: core/app_settings.py:114 msgid "" "The distinguished name to use when binding to the LDAP server. Leave empty " "for an anonymous bind" @@ -150,30 +150,30 @@ msgstr "" "El nombre distinguido a usar cuando nos unimos al servidor LDAP. Dejar vació " "para una unión anónima" -#: core/app_settings.py:113 +#: core/app_settings.py:121 msgid "Bind password" msgstr "Unir contraseña" -#: core/app_settings.py:115 +#: core/app_settings.py:124 msgid "The password to use when binding to the LDAP server (with 'Bind DN')" msgstr "" "La contraseña a usar cuando nos unimos al servidor LDAP (con 'Unir a DN')" -#: core/app_settings.py:121 +#: core/app_settings.py:132 #, fuzzy msgid "Users search base" msgstr "Buscar base" -#: core/app_settings.py:123 +#: core/app_settings.py:135 #, fuzzy msgid "The distinguished name of the search base used to find users" msgstr "El nombre disgituido de la búsqueda base" -#: core/app_settings.py:128 +#: core/app_settings.py:141 msgid "Search filter" msgstr "Filtro de búsqueda" -#: core/app_settings.py:130 +#: core/app_settings.py:144 msgid "" "An optional filter string (e.g. '(objectClass=person)'). In order to be " "valid, it must be enclosed in parentheses." @@ -181,11 +181,11 @@ msgstr "" "Una cadena de filtro opcional (p.e. '(objectClass=person)'). Para que sea " "válido tiene que ser encerrado entre paréntesis." -#: core/app_settings.py:135 +#: core/app_settings.py:151 msgid "User DN template" msgstr "Plantilla DN del usuario" -#: core/app_settings.py:137 +#: core/app_settings.py:154 #, python-format msgid "" "The template used to construct a user's DN. It should contain one " @@ -194,101 +194,112 @@ msgstr "" "La plantilla usada para contriunr un DN de usuario. Debería contener una " "cadena reemplazables (p.e. %(user)s)" -#: core/app_settings.py:142 +#: core/app_settings.py:161 msgid "Password attribute" msgstr "Atributo de la contraseña" -#: core/app_settings.py:144 +#: core/app_settings.py:163 msgid "The attribute used to store user passwords" msgstr "El atributo usado para guardar las contraseñas del usuario" -#: core/app_settings.py:148 +#: core/app_settings.py:167 msgid "Active Directory" msgstr "Directorio Activo" -#: core/app_settings.py:150 +#: core/app_settings.py:170 msgid "Tell if the LDAP server is an Active Directory one" msgstr "Decir si el servidor de LDAP es uno del tipo Directorio Activo" -#: core/app_settings.py:154 +#: core/app_settings.py:174 #, fuzzy msgid "Administrator groups" msgstr "Administradores" -#: core/app_settings.py:157 +#: core/app_settings.py:177 msgid "" "Members of those LDAP Posix groups will be created as domain administrators. " "Use ';' characters to separate groups." msgstr "" -#: core/app_settings.py:164 +#: core/app_settings.py:184 #, fuzzy msgid "Groups search base" msgstr "Buscar base" -#: core/app_settings.py:167 +#: core/app_settings.py:187 #, fuzzy msgid "The distinguished name of the search base used to find groups" msgstr "El nombre disgituido de la búsqueda base" -#: core/app_settings.py:172 +#: core/app_settings.py:193 +#, fuzzy +msgid "Domain/mailbox creation" +msgstr "Dominio creado" + +#: core/app_settings.py:196 +msgid "" +"Automatically create a domain and a mailbox when a new user is created just " +"after the first successful authentication." +msgstr "" + +#: core/app_settings.py:201 #: extensions/admin/templates/admin/editdomainform.html:7 msgid "Miscellaneous" msgstr "Otros" -#: core/app_settings.py:175 +#: core/app_settings.py:204 msgid "Maximum log record age" msgstr "Máximo tiempo de almacenamiento del log" -#: core/app_settings.py:177 +#: core/app_settings.py:206 msgid "The maximum age in days of a log record" msgstr "El tiempo máximo de almacenamiento del log en días" -#: core/app_settings.py:181 +#: core/app_settings.py:210 msgid "Items per page" msgstr "Items por página" -#: core/app_settings.py:183 +#: core/app_settings.py:212 msgid "Number of displayed items per page" msgstr "Número de elementos mostrado por página" -#: core/app_settings.py:187 +#: core/app_settings.py:216 msgid "Default top redirection" msgstr "Redirección principal por defecto" -#: core/app_settings.py:190 +#: core/app_settings.py:220 msgid "The default redirection used when no application is specified" msgstr "" "La redirección que será usada cuando ninguna aplicación sea especificada." -#: core/app_settings.py:218 +#: core/app_settings.py:249 msgid "Key must be either 16, 24, or 32 bytes long" msgstr "La clave debe tener 16, 24 o 32 bytes de longitud" -#: core/app_settings.py:227 extensions/postfix_autoreply/app_settings.py:53 +#: core/app_settings.py:258 extensions/postfix_autoreply/app_settings.py:53 msgid "Invalid syntax" msgstr "Sintaxis inválida" -#: core/app_settings.py:233 +#: core/app_settings.py:264 #, fuzzy msgid "Invalid rounds number" msgstr "Petición inválida" -#: core/app_settings.py:256 +#: core/app_settings.py:287 msgid "This field is required" msgstr "Este campo es obligatorio" -#: core/app_settings.py:317 extensions/amavis/app_settings.py:87 +#: core/app_settings.py:349 extensions/amavis/app_settings.py:87 #: extensions/amavis/templates/amavis/main_action_bar.html:29 #: extensions/webmail/app_settings.py:73 msgid "Display" msgstr "Mostrar" -#: core/app_settings.py:321 +#: core/app_settings.py:353 msgid "Prefered language" msgstr "Idioma preferido" -#: core/app_settings.py:327 +#: core/app_settings.py:359 msgid "Prefered language to display pages" msgstr "Idioma preferido para mostrar las páginas" @@ -343,7 +354,7 @@ msgstr "Falló al actualizar la contraseña: módulo LDAP no instalado" msgid "account" msgstr "cuenta" -#: core/models.py:321 extensions/admin/models/domain.py:135 +#: core/models.py:321 extensions/admin/models/domain.py:144 #: extensions/admin/models/domain_alias.py:39 #: extensions/postfix_relay_domains/models.py:134 #: extensions/postfix_relay_domains/models.py:190 @@ -354,18 +365,18 @@ msgstr "Línea inválida" msgid "You can't import an account with a role greater than yours" msgstr "No puede importar una cuenta con un rol mayor que el suyo" -#: core/models.py:331 +#: core/models.py:337 #, python-format msgid "The simple user '%s' must have a valid email address" msgstr "El usuario normal '%s' debe tener una dirección de email válida" -#: core/models.py:335 +#: core/models.py:341 #, python-format msgid "username and email fields must not differ for '%s'" msgstr "" "Los campos de nombre de usuario y de email no deben ser diferentes para '%s'" -#: core/models.py:404 extensions/admin/models/alias.py:33 +#: core/models.py:410 extensions/admin/models/alias.py:35 #: extensions/admin/models/domain.py:32 #: extensions/admin/models/domain_alias.py:17 #: extensions/postfix_autoreply/models.py:28 @@ -374,29 +385,29 @@ msgstr "" msgid "enabled" msgstr "activado" -#: core/models.py:405 +#: core/models.py:411 msgid "Check to enable this extension" msgstr "Marcar para activar esta extensión" -#: core/models.py:475 +#: core/models.py:491 msgid "added" msgstr "añadido" -#: core/models.py:478 +#: core/models.py:494 msgid "modified" msgstr "modificado" -#: core/models.py:480 core/models.py:504 +#: core/models.py:496 core/models.py:521 #, python-format msgid "%(object)s '%(name)s' %(action)s by user %(user)s" msgstr "%(object)s '%(name)s' %(action)s por el usuario %(user)s" -#: core/models.py:506 +#: core/models.py:523 msgid "deleted" msgstr "eliminado" #: core/tables.py:8 core/templates/core/information.html:8 -#: extensions/admin/tables.py:9 extensions/admin/forms/domain.py:182 +#: extensions/admin/tables.py:9 extensions/admin/forms/domain.py:187 #: extensions/admin/templates/admin/domains_table.html:5 #: extensions/admin/templates/admin/editdomainform.html:13 #: extensions/admin/templates/admin/identities_table.html:5 @@ -458,8 +469,9 @@ msgstr "Logs" msgid "Previously on Modoboa..." msgstr "Anteriormente en Modoboa..." -#: core/templates/core/logs.html:6 extensions/amavis/sql_listing.py:46 -#: extensions/webmail/lib.py:48 extensions/webmail/lib.py:425 +#: core/templates/core/logs.html:6 extensions/amavis/sql_listing.py:44 +#: extensions/webmail/lib/imapemail.py:290 +#: extensions/webmail/lib/listing.py:35 extensions/webmail/lib/tables.py:34 msgid "Date" msgstr "Fecha" @@ -510,12 +522,12 @@ msgstr "Actualizar su información personal" #: core/templates/core/user_profile.html:8 #: extensions/admin/templates/admin/forward.html:8 -#: extensions/admin/views/alias.py:107 extensions/admin/views/domain.py:165 -#: extensions/admin/views/identity.py:197 +#: extensions/admin/views/alias.py:112 extensions/admin/views/domain.py:168 +#: extensions/admin/views/identity.py:200 #: extensions/postfix_autoreply/templates/postfix_autoreply/autoreply.html:9 -#: extensions/postfix_relay_domains/views.py:63 -#: extensions/sievefilters/views.py:163 extensions/webmail/views.py:170 -#: extensions/webmail/views.py:205 +#: extensions/postfix_relay_domains/views.py:66 +#: extensions/sievefilters/views.py:166 extensions/webmail/views.py:172 +#: extensions/webmail/views.py:207 msgid "Update" msgstr "Actualizar" @@ -546,7 +558,7 @@ msgstr "" "Su nombre de usuario y contraseña no concuerdan. Por favor, inténtelo de " "nuevo." -#: core/views/auth.py:66 +#: core/views/auth.py:69 #, python-format msgid "User '%s' logged out" msgstr "Usuario '%s' ha salido" @@ -642,7 +654,17 @@ msgstr "Siguiente" msgid "Account import failed (%s): domain does not exist" msgstr "Falló la importación de la cuenta (%s): el dominio no existe" -#: extensions/admin/app_settings.py:11 +#: extensions/admin/__init__.py:172 extensions/admin/forms/account.py:196 +#, python-format +msgid "Mailbox %s already exists" +msgstr "El mailbox %s ya existe" + +#: extensions/admin/__init__.py:180 +#, fuzzy, python-format +msgid "Account import failed (%s): wrong quota value" +msgstr "Falló la importación de la cuenta (%s): el dominio no existe" + +#: extensions/admin/app_settings.py:13 #: extensions/admin/templates/admin/editdomainform.html:25 #: extensions/limits/app_settings.py:31 extensions/limits/models.py:23 #: extensions/webmail/app_settings.py:107 @@ -650,11 +672,11 @@ msgstr "Falló la importación de la cuenta (%s): el dominio no existe" msgid "Mailboxes" msgstr "Mailboxes" -#: extensions/admin/app_settings.py:14 +#: extensions/admin/app_settings.py:16 msgid "Handle mailboxes on filesystem" msgstr "Manejar mailboxes en el sistema de fichero" -#: extensions/admin/app_settings.py:16 +#: extensions/admin/app_settings.py:18 msgid "" "Rename or remove mailboxes on the filesystem when they get renamed or " "removed within Modoboa" @@ -662,34 +684,34 @@ msgstr "" "Renombrar o eliminar mailboxes en el sistema de ficheros cuando sean " "renombrados o eliminados dentro de Modoboa" -#: extensions/admin/app_settings.py:20 +#: extensions/admin/app_settings.py:22 msgid "Mailboxes owner" msgstr "Propietario de los mailboxes" -#: extensions/admin/app_settings.py:22 +#: extensions/admin/app_settings.py:24 msgid "The UNIX account who owns mailboxes on the filesystem" msgstr "Cuenta de UNIX que posee los mailboxes en el sistema de ficheros" -#: extensions/admin/app_settings.py:26 +#: extensions/admin/app_settings.py:28 #, fuzzy msgid "Default domain quota" msgstr "Límites por defecto" -#: extensions/admin/app_settings.py:29 +#: extensions/admin/app_settings.py:31 msgid "" "Default quota (in MB) applied to freshly created domains with no value " "specified. A value of 0 means no quota." msgstr "" -#: extensions/admin/app_settings.py:36 +#: extensions/admin/app_settings.py:38 msgid "Automatic account removal" msgstr "Elminar cuentas automáticamente" -#: extensions/admin/app_settings.py:38 +#: extensions/admin/app_settings.py:40 msgid "When a mailbox is removed, also remove the associated account" msgstr "Cuando un mailbox es eliminado, también lo es su cuenta asociada." -#: extensions/admin/app_settings.py:69 extensions/admin/forms/account.py:178 +#: extensions/admin/app_settings.py:81 extensions/admin/forms/account.py:178 #: extensions/admin/forms/domain.py:56 msgid "Must be a positive integer" msgstr "" @@ -773,11 +795,6 @@ msgstr "" msgid "Domain does not exist" msgstr "El dominio no existe" -#: extensions/admin/forms/account.py:196 -#, python-format -msgid "Mailbox %s already exists" -msgstr "El mailbox %s ya existe" - #: extensions/admin/forms/account.py:284 msgid "Domain(s)" msgstr "Dominio(s)" @@ -787,7 +804,7 @@ msgid "Domain(s) that user administrates" msgstr "Dominio(s) que el usuario administra" #: extensions/admin/forms/account.py:328 -#: extensions/admin/views/identity.py:130 +#: extensions/admin/views/identity.py:132 msgid "Mail" msgstr "Correo" @@ -827,7 +844,7 @@ msgstr "No tienes acceso a este dominio" msgid "Invalid mailbox" msgstr "mailbox inválido" -#: extensions/admin/forms/alias.py:108 extensions/admin/models/alias.py:182 +#: extensions/admin/forms/alias.py:108 extensions/admin/models/alias.py:194 #, python-format msgid "Local recipient %s not found" msgstr "Destinatario local %s no encontrado" @@ -877,15 +894,15 @@ msgstr "Ya existe un alias con este nombre" msgid "domain" msgstr "Dominios" -#: extensions/admin/forms/domain.py:176 +#: extensions/admin/forms/domain.py:181 msgid "Create a domain administrator" msgstr "Crear un administrador del dominio" -#: extensions/admin/forms/domain.py:178 +#: extensions/admin/forms/domain.py:183 msgid "Automatically create an administrator for this domain" msgstr "Automáticamente crear una administrador para este dominio" -#: extensions/admin/forms/domain.py:185 +#: extensions/admin/forms/domain.py:190 msgid "" "The administrator's name. Don't include the domain's name here, it will be " "automatically appended." @@ -893,19 +910,19 @@ msgstr "" "El nombre del administrador. No incluya el nombre del dominio aquí, será " "añadido automáticamente." -#: extensions/admin/forms/domain.py:193 +#: extensions/admin/forms/domain.py:198 msgid "Create aliases" msgstr "Crear alias" -#: extensions/admin/forms/domain.py:195 +#: extensions/admin/forms/domain.py:200 msgid "Automatically create standard aliases for this domain" msgstr "Automáticamente crear alias estándar para este dominio" -#: extensions/admin/forms/domain.py:211 +#: extensions/admin/forms/domain.py:216 msgid "Invalid format" msgstr "Formato inválido" -#: extensions/admin/forms/domain.py:225 +#: extensions/admin/forms/domain.py:230 #, python-format msgid "User '%s' already exists" msgstr "El usuario '%s' ya existe" @@ -942,7 +959,7 @@ msgstr "" "No puede definir un reenvío a un destino local. Por favor, pregunte a su " "administrador para crear un alias en su lugar." -#: extensions/admin/forms/import_.py:6 extensions/webmail/forms.py:26 +#: extensions/admin/forms/import_.py:6 extensions/webmail/forms.py:198 msgid "Select a file" msgstr "Seleccione un fichero" @@ -964,11 +981,11 @@ msgstr "" "Marque esta opción si las contraseñas que contiene su fichero no están " "cifradas" -#: extensions/admin/models/alias.py:16 extensions/admin/models/mailbox.py:51 +#: extensions/admin/models/alias.py:18 extensions/admin/models/mailbox.py:62 msgid "address" msgstr "dirección" -#: extensions/admin/models/alias.py:18 +#: extensions/admin/models/alias.py:20 msgid "" "The alias address (without the domain part). For a 'catch-all' address, just " "enter an * character." @@ -976,42 +993,42 @@ msgstr "" "La dirección del alias (sin la parte del dominio). Para una dirección que lo " "recoja todo, ponga un asterisco (*)." -#: extensions/admin/models/alias.py:24 +#: extensions/admin/models/alias.py:26 msgid "mailboxes" msgstr "mailboxes" -#: extensions/admin/models/alias.py:25 +#: extensions/admin/models/alias.py:27 msgid "The mailboxes this alias points to" msgstr "Los 'mailboxes' de este alias apuntan a" -#: extensions/admin/models/alias.py:29 +#: extensions/admin/models/alias.py:31 msgid "The aliases this alias points to" msgstr "Los alias de este alias apuntan a" -#: extensions/admin/models/alias.py:34 +#: extensions/admin/models/alias.py:36 #: extensions/admin/models/domain_alias.py:18 #: extensions/postfix_relay_domains/models.py:168 msgid "Check to activate this alias" msgstr "Marcar para activar este alias" -#: extensions/admin/models/alias.py:79 +#: extensions/admin/models/alias.py:81 msgid "distribution list" msgstr "Lista de distribución" -#: extensions/admin/models/alias.py:80 +#: extensions/admin/models/alias.py:82 msgid "forward" msgstr "reenvío" -#: extensions/admin/models/alias.py:81 +#: extensions/admin/models/alias.py:83 msgid "alias" msgstr "alias" -#: extensions/admin/models/alias.py:150 +#: extensions/admin/models/alias.py:152 #, python-format msgid "Invalid line: %s" msgstr "Línea inválida: %s" -#: extensions/admin/models/alias.py:155 +#: extensions/admin/models/alias.py:157 #, python-format msgid "Domain '%s' does not exist" msgstr "El dominio '%s' no existe" @@ -1039,7 +1056,7 @@ msgstr "Marcar para activar este dominio" msgid "Domain" msgstr "Dominios" -#: extensions/admin/models/domain.py:140 +#: extensions/admin/models/domain.py:155 #, python-format msgid "Invalid quota value for domain '%s'" msgstr "" @@ -1058,31 +1075,26 @@ msgstr "objetivo" msgid "The domain this alias points to" msgstr "El dominio al que este alias apunta" -#: extensions/admin/models/domain_alias.py:46 -#, fuzzy, python-format -msgid "A domain %s already exists" -msgstr "El mailbox %s ya existe" - -#: extensions/admin/models/domain_alias.py:51 +#: extensions/admin/models/domain_alias.py:52 #, python-format msgid "Unknown domain %s" msgstr "Dominio desconocido %s" -#: extensions/admin/models/mailbox.py:52 +#: extensions/admin/models/mailbox.py:63 msgid "Mailbox address (without the @domain.tld part)" msgstr "Dirección del mailbox (sin la parte @dominio.tld)" -#: extensions/admin/models/mailbox.py:113 +#: extensions/admin/models/mailbox.py:125 #, python-format msgid "Failed to retrieve mailbox location (%s)" msgstr "Fallo al recuperar la localización del mailbox (%s)" -#: extensions/admin/models/mailbox.py:173 +#: extensions/admin/models/mailbox.py:194 #, python-format msgid "Quota is greater than the allowed domain's limit (%dM)" msgstr "La cuota es mayor que el límite permitido para el dominio (%dM)" -#: extensions/admin/models/mailbox.py:178 +#: extensions/admin/models/mailbox.py:199 msgid "A quota is required" msgstr "Una cuota es obligatoria" @@ -1105,7 +1117,7 @@ msgstr "Tags" #: extensions/admin/templates/admin/domains_table.html:8 #: extensions/admin/templates/admin/identities_table.html:8 #: extensions/admin/templates/admin/listing.html:17 -#: extensions/sievefilters/views.py:93 +#: extensions/sievefilters/views.py:95 #: extensions/sievefilters/templates/sievefilters/filter.html:17 #: extensions/sievefilters/templates/sievefilters/guieditor.html:5 #: extensions/webmail/templatetags/webmail_tags.py:101 @@ -1202,7 +1214,7 @@ msgstr "Añadir dominio" #: extensions/admin/templatetags/admin_tags.py:42 #: extensions/admin/templatetags/admin_tags.py:106 -#: extensions/admin/views/import.py:51 extensions/admin/views/import.py:166 +#: extensions/admin/views/import.py:52 extensions/admin/views/import.py:168 msgid "Import" msgstr "Importar" @@ -1252,84 +1264,84 @@ msgstr "¿Eliminar %s?" msgid "Remove this permission" msgstr "Eliminar este permiso" -#: extensions/admin/views/alias.py:25 +#: extensions/admin/views/alias.py:26 msgid "Alias with this name already exists" msgstr "Ya existe un alias con este nombre" -#: extensions/admin/views/alias.py:49 extensions/admin/views/domain.py:100 -#: extensions/admin/views/domain.py:129 extensions/admin/views/identity.py:131 -#: extensions/admin/views/identity.py:158 -#: extensions/postfix_relay_domains/views.py:32 -#: extensions/sievefilters/views.py:141 extensions/sievefilters/views.py:230 -#: extensions/webmail/views.py:151 +#: extensions/admin/views/alias.py:50 extensions/admin/views/domain.py:102 +#: extensions/admin/views/domain.py:131 extensions/admin/views/identity.py:133 +#: extensions/admin/views/identity.py:160 +#: extensions/postfix_relay_domains/views.py:34 +#: extensions/sievefilters/views.py:144 extensions/sievefilters/views.py:233 +#: extensions/webmail/views.py:153 msgid "Create" msgstr "Crear" -#: extensions/admin/views/alias.py:61 +#: extensions/admin/views/alias.py:63 msgid "New distribution list" msgstr "Nueva lista de distribución" -#: extensions/admin/views/alias.py:62 +#: extensions/admin/views/alias.py:64 msgid "Distribution list created" msgstr "Lista de distribución creada" -#: extensions/admin/views/alias.py:71 +#: extensions/admin/views/alias.py:74 msgid "New alias" msgstr "Nuevo alias" -#: extensions/admin/views/alias.py:72 +#: extensions/admin/views/alias.py:75 msgid "Alias created" msgstr "Alias creado" -#: extensions/admin/views/alias.py:81 +#: extensions/admin/views/alias.py:85 msgid "New forward" msgstr "Nuevo reenvío" -#: extensions/admin/views/alias.py:82 +#: extensions/admin/views/alias.py:86 msgid "Forward created" msgstr "Reenvío creado" -#: extensions/admin/views/alias.py:95 +#: extensions/admin/views/alias.py:100 msgid "Distribution list modified" msgstr "Lista de distribución modificada" -#: extensions/admin/views/alias.py:97 +#: extensions/admin/views/alias.py:102 msgid "Forward modified" msgstr "Reenvío modificado" -#: extensions/admin/views/alias.py:99 +#: extensions/admin/views/alias.py:104 msgid "Alias modified" msgstr "Alias modificado" -#: extensions/admin/views/domain.py:96 extensions/admin/views/identity.py:128 +#: extensions/admin/views/domain.py:98 extensions/admin/views/identity.py:130 msgid "Next" msgstr "Siguiente" -#: extensions/admin/views/domain.py:99 +#: extensions/admin/views/domain.py:101 msgid "Options" msgstr "Opciones" -#: extensions/admin/views/domain.py:101 extensions/admin/views/identity.py:132 +#: extensions/admin/views/domain.py:103 extensions/admin/views/identity.py:134 msgid "Previous" msgstr "Anterior" -#: extensions/admin/views/domain.py:123 +#: extensions/admin/views/domain.py:125 msgid "Domain created" msgstr "Dominio creado" -#: extensions/admin/views/domain.py:128 +#: extensions/admin/views/domain.py:130 msgid "New domain" msgstr "Nuevo dominio" -#: extensions/admin/views/domain.py:155 +#: extensions/admin/views/domain.py:158 msgid "Domain modified" msgstr "Dominio modificado" -#: extensions/admin/views/domain.py:189 +#: extensions/admin/views/domain.py:192 msgid "You can't delete your own domain" msgstr "No puedo eliminar su propio dominio" -#: extensions/admin/views/domain.py:192 +#: extensions/admin/views/domain.py:195 msgid "Domain deleted" msgid_plural "Domains deleted" msgstr[0] "Dominio eliminado" @@ -1343,40 +1355,40 @@ msgstr "Exportar identidades" msgid "Export domains" msgstr "Exportar dominios" -#: extensions/admin/views/identity.py:103 -#: extensions/admin/views/identity.py:224 -#: extensions/admin/views/identity.py:229 extensions/amavis/views.py:179 -#: extensions/amavis/views.py:185 extensions/amavis/views.py:220 -#: extensions/amavis/views.py:224 extensions/amavis/views.py:226 -#: extensions/webmail/views.py:47 extensions/webmail/views.py:65 -#: extensions/webmail/views.py:79 extensions/webmail/views.py:97 -#: extensions/webmail/views.py:114 extensions/webmail/views.py:200 -#: extensions/webmail/views.py:223 extensions/webmail/views.py:396 -#: extensions/webmail/views.py:430 extensions/webmail/views.py:443 -#: extensions/webmail/views.py:472 extensions/webmail/views.py:512 +#: extensions/admin/views/identity.py:104 +#: extensions/admin/views/identity.py:227 +#: extensions/admin/views/identity.py:232 extensions/amavis/views.py:144 +#: extensions/amavis/views.py:148 extensions/amavis/views.py:181 +#: extensions/amavis/views.py:186 extensions/amavis/views.py:188 +#: extensions/webmail/views.py:49 extensions/webmail/views.py:67 +#: extensions/webmail/views.py:81 extensions/webmail/views.py:99 +#: extensions/webmail/views.py:116 extensions/webmail/views.py:202 +#: extensions/webmail/views.py:225 extensions/webmail/views.py:401 +#: extensions/webmail/views.py:451 extensions/webmail/views.py:467 +#: extensions/webmail/views.py:496 extensions/webmail/views.py:536 #: lib/formutils.py:44 lib/formutils.py:49 msgid "Invalid request" msgstr "Petición inválida" -#: extensions/admin/views/identity.py:149 +#: extensions/admin/views/identity.py:151 msgid "Account created" msgstr "Cuenta creada" -#: extensions/admin/views/identity.py:155 +#: extensions/admin/views/identity.py:157 msgid "New account" msgstr "Nueva cuenta" -#: extensions/admin/views/identity.py:190 +#: extensions/admin/views/identity.py:193 msgid "Account updated" msgstr "Cuenta actualizada" -#: extensions/admin/views/identity.py:214 +#: extensions/admin/views/identity.py:217 msgid "Account deleted" msgid_plural "Accounts deleted" msgstr[0] "Cuenta eliminada" msgstr[1] "Cuentas eliminadas" -#: extensions/admin/views/import.py:39 +#: extensions/admin/views/import.py:40 #, fuzzy, python-format msgid "" "Provide a CSV file where lines respect one of the following formats:\n" @@ -1396,21 +1408,21 @@ msgstr "" "uno de los valores anteriores.

      ⏎

      Puede usar un carácter diferente como " "separador.

      ⏎\n" -#: extensions/admin/views/import.py:50 +#: extensions/admin/views/import.py:51 msgid "Import domains" msgstr "Importar dominios" -#: extensions/admin/views/import.py:129 +#: extensions/admin/views/import.py:131 #, python-format msgid "Object already exists: %s" msgstr "El objeto ya existe: %s" -#: extensions/admin/views/import.py:133 +#: extensions/admin/views/import.py:135 #, python-format msgid "%d objects imported successfully" msgstr "%d objetos importados con éxito" -#: extensions/admin/views/import.py:153 +#: extensions/admin/views/import.py:155 #, fuzzy msgid "" "Provide a CSV file where lines respect one of the following formats:\n" @@ -1440,11 +1452,11 @@ msgstr "" "\n" "

      Puede usar un carácter diferente como separador.

      \n" -#: extensions/admin/views/import.py:165 +#: extensions/admin/views/import.py:167 msgid "Import identities" msgstr "Importar identidades" -#: extensions/admin/views/user.py:37 +#: extensions/admin/views/user.py:38 msgid "Forward updated" msgstr "Reenvío actualizado" @@ -1452,7 +1464,7 @@ msgstr "Reenvío actualizado" msgid "Simple amavis management frontend" msgstr "Panel de gestión sencilla para amavis" -#: extensions/amavis/__init__.py:52 extensions/amavis/general_callbacks.py:17 +#: extensions/amavis/__init__.py:52 extensions/amavis/general_callbacks.py:18 msgid "Quarantine" msgstr "Cuarentena" @@ -1556,20 +1568,20 @@ msgstr "Número de emails mostrados por página" msgid "Set the maximum number of messages displayed in a page" msgstr "Fijar el número máxima de mensajes mostrados en una página" -#: extensions/amavis/general_callbacks.py:81 +#: extensions/amavis/general_callbacks.py:82 msgid "pending requests" msgstr "Peticiones pendientes" -#: extensions/amavis/general_callbacks.py:124 +#: extensions/amavis/general_callbacks.py:125 #, fuzzy msgid "Pending requests" msgstr "Peticiones pendientes" -#: extensions/amavis/general_callbacks.py:134 +#: extensions/amavis/general_callbacks.py:135 msgid "Content filter" msgstr "Filtro de contenido" -#: extensions/amavis/lib.py:57 +#: extensions/amavis/lib.py:56 #, python-format msgid "Connection to amavis failed: %s" msgstr "La conexión con amavis falló: %s" @@ -1579,12 +1591,12 @@ msgid "Virus filter" msgstr "Filtro de virus" #: extensions/amavis/models.py:94 extensions/amavis/models.py:102 -#: extensions/amavis/models.py:110 extensions/sievefilters/views.py:290 +#: extensions/amavis/models.py:110 extensions/sievefilters/views.py:293 msgid "yes" msgstr "sí" #: extensions/amavis/models.py:95 extensions/amavis/models.py:103 -#: extensions/amavis/models.py:111 extensions/sievefilters/views.py:294 +#: extensions/amavis/models.py:111 extensions/sievefilters/views.py:297 msgid "no" msgstr "no" @@ -1632,24 +1644,26 @@ msgstr "" "Modificar el asunto del spam usando el texto especificado. Elija 'por " "defecto' para usar la configuración global." -#: extensions/amavis/sql_listing.py:31 +#: extensions/amavis/sql_listing.py:29 msgid "Score" msgstr "" -#: extensions/amavis/sql_listing.py:35 +#: extensions/amavis/sql_listing.py:33 #: extensions/amavis/templatetags/amavis_tags.py:75 -#: extensions/webmail/forms.py:7 +#: extensions/webmail/forms.py:82 msgid "To" msgstr "A" -#: extensions/amavis/sql_listing.py:38 -#: extensions/postfix_autoreply/forms.py:11 extensions/webmail/lib.py:44 +#: extensions/amavis/sql_listing.py:36 +#: extensions/postfix_autoreply/forms.py:10 +#: extensions/webmail/lib/listing.py:31 extensions/webmail/lib/tables.py:30 msgid "From" msgstr "Desde" -#: extensions/amavis/sql_listing.py:42 extensions/sievefilters/forms.py:77 -#: extensions/webmail/forms.py:11 extensions/webmail/lib.py:40 -#: extensions/webmail/lib.py:423 templates/common/email_searchbar.html:6 +#: extensions/amavis/sql_listing.py:40 extensions/sievefilters/forms.py:77 +#: extensions/webmail/forms.py:86 extensions/webmail/lib/imapemail.py:288 +#: extensions/webmail/lib/listing.py:27 extensions/webmail/lib/tables.py:26 +#: templates/common/email_searchbar.html:6 msgid "Subject" msgstr "Tema" @@ -1657,40 +1671,40 @@ msgstr "Tema" msgid "Empty quarantine" msgstr "Vaciar cuarentena" -#: extensions/amavis/views.py:186 +#: extensions/amavis/views.py:149 msgid "Message deleted" msgstr "Mensaje eliminado" -#: extensions/amavis/views.py:207 +#: extensions/amavis/views.py:168 #, python-format msgid "%(count)d message deleted successfully" msgid_plural "%(count)d messages deleted successfully" msgstr[0] "%(count)d mensaje eliminado correctamente" msgstr[1] "%(count)d mensajes eliminados correctamente" -#: extensions/amavis/views.py:229 +#: extensions/amavis/views.py:191 msgid "Request sent" msgstr "Petición enviada" -#: extensions/amavis/views.py:235 +#: extensions/amavis/views.py:197 msgid "Message released" msgstr "Mensaje publicado" -#: extensions/amavis/views.py:268 +#: extensions/amavis/views.py:225 #, python-format msgid "%(count)d request sent" msgid_plural "%(count)d requests sent" msgstr[0] "%(count)d petición enviada" msgstr[1] "%(count)d peticiones enviadas" -#: extensions/amavis/views.py:288 +#: extensions/amavis/views.py:246 #, python-format msgid "%(count)d message released successfully" msgid_plural "%(count)d messages released successfully" msgstr[0] "%(count)d mensaje publicado correctamente" msgstr[1] "%(count)d mensajes publicados correctamente" -#: extensions/amavis/management/commands/amnotify.py:57 +#: extensions/amavis/management/commands/amnotify.py:61 msgid "[modoboa] Pending release requests" msgstr "[modoboa] Pendiente de publicar las peticiones" @@ -1939,7 +1953,7 @@ msgstr "Uso de recursos" msgid "Auto-reply (vacation) functionality using Postfix" msgstr "Funcionalidad de autorespuesta (vacaciones) usando Postfix" -#: extensions/postfix_autoreply/__init__.py:47 +#: extensions/postfix_autoreply/__init__.py:49 msgid "Automatic replies" msgstr "Contestaciones automáticas" @@ -1986,25 +2000,25 @@ msgid "" "The '%(name)s' macro will be replaced by the user's full name." msgstr "" -#: extensions/postfix_autoreply/forms.py:13 +#: extensions/postfix_autoreply/forms.py:12 #, fuzzy msgid "Activate your auto reply from this date" msgstr "Activar su autorespuesta hasta esta fecha" -#: extensions/postfix_autoreply/forms.py:19 +#: extensions/postfix_autoreply/forms.py:18 msgid "Until" msgstr "Hasta" -#: extensions/postfix_autoreply/forms.py:21 +#: extensions/postfix_autoreply/forms.py:20 msgid "Activate your auto reply until this date" msgstr "Activar su autorespuesta hasta esta fecha" -#: extensions/postfix_autoreply/forms.py:49 #: extensions/postfix_autoreply/forms.py:55 +#: extensions/postfix_autoreply/forms.py:62 msgid "This date is over" msgstr "Esta fecha ha pasado" -#: extensions/postfix_autoreply/forms.py:59 +#: extensions/postfix_autoreply/forms.py:67 #, fuzzy msgid "Must be greater than start date" msgstr "es mayor que" @@ -2171,22 +2185,22 @@ msgstr "El dominio al que este alias apunta" msgid "Relay domain %s does not exist" msgstr "El dominio '%s' no existe" -#: extensions/postfix_relay_domains/views.py:26 +#: extensions/postfix_relay_domains/views.py:28 #, fuzzy msgid "Relay domain created" msgstr "Dominio creado" -#: extensions/postfix_relay_domains/views.py:31 +#: extensions/postfix_relay_domains/views.py:33 #, fuzzy msgid "New relay domain" msgstr "Nuevo dominio" -#: extensions/postfix_relay_domains/views.py:54 +#: extensions/postfix_relay_domains/views.py:57 #, fuzzy msgid "Relay domain modified" msgstr "Dominio modificado" -#: extensions/postfix_relay_domains/views.py:77 +#: extensions/postfix_relay_domains/views.py:80 #, fuzzy msgid "Relay domain deleted" msgstr "Dominio eliminado" @@ -2281,7 +2295,7 @@ msgstr "Remitente" msgid "Recipient" msgstr "Destinatario" -#: extensions/sievefilters/forms.py:80 extensions/webmail/forms.py:8 +#: extensions/sievefilters/forms.py:80 extensions/webmail/forms.py:83 msgid "Cc" msgstr "Cc" @@ -2305,6 +2319,11 @@ msgstr "Mover el mensaje a" msgid "Redirect message to" msgstr "Redirigir el mensaje a" +#: extensions/sievefilters/forms.py:104 +#, fuzzy +msgid "Wrong filter name" +msgstr "Nombre del fichero" + #: extensions/sievefilters/lib.py:40 msgid "Connection to MANAGESIEVE server failed, check your configuration" msgstr "La conexión al servidor MANAGESIEVE falló, verifique su configuración." @@ -2313,53 +2332,53 @@ msgstr "La conexión al servidor MANAGESIEVE falló, verifique su configuración msgid "Not enough space on server" msgstr "No hay suficiente espacio en el servidor" -#: extensions/sievefilters/views.py:78 +#: extensions/sievefilters/views.py:80 msgid "Failed to retrieve filters set" msgstr "Fallo en la recuperación de un conjunto de filtros" -#: extensions/sievefilters/views.py:138 +#: extensions/sievefilters/views.py:141 #: extensions/sievefilters/templatetags/sfilters_tags.py:33 msgid "New filter" msgstr "Nuevo filtro" -#: extensions/sievefilters/views.py:146 +#: extensions/sievefilters/views.py:149 msgid "Filter created" msgstr "Filtro creado" -#: extensions/sievefilters/views.py:160 +#: extensions/sievefilters/views.py:163 #: extensions/sievefilters/templatetags/sfilters_tags.py:78 msgid "Edit filter" msgstr "Editar filtro" -#: extensions/sievefilters/views.py:169 +#: extensions/sievefilters/views.py:172 msgid "Filter modified" msgstr "Filtro modificado" -#: extensions/sievefilters/views.py:192 +#: extensions/sievefilters/views.py:195 msgid "Filter removed" msgstr "Filtro eliminado" -#: extensions/sievefilters/views.py:193 +#: extensions/sievefilters/views.py:196 msgid "Failed to remove filter" msgstr "La eliminación del filtro falló" -#: extensions/sievefilters/views.py:208 +#: extensions/sievefilters/views.py:211 msgid "Filters set saved" msgstr "Filtros guardados" -#: extensions/sievefilters/views.py:224 +#: extensions/sievefilters/views.py:227 msgid "Filters set created" msgstr "Conjunto de filtros creado" -#: extensions/sievefilters/views.py:228 +#: extensions/sievefilters/views.py:231 msgid "Create a new filters set" msgstr "Crear un nuevo conjunto de filtros" -#: extensions/sievefilters/views.py:247 +#: extensions/sievefilters/views.py:250 msgid "Filters set deleted" msgstr "Conjunto de filtros eliminado" -#: extensions/sievefilters/views.py:260 +#: extensions/sievefilters/views.py:263 msgid "Filters set activated" msgstr "Conjunto de filtros activado" @@ -2447,14 +2466,6 @@ msgstr "Directorio para guardar los ficheros RRD" msgid "Path to directory where RRD files are stored" msgstr "Ruta al directorio dónde están almacenados los ficheros RRD" -#: extensions/stats/app_settings.py:26 -msgid "Directory to store PNG files" -msgstr "Directorio para guardar los ficheros PNG" - -#: extensions/stats/app_settings.py:28 -msgid "Path to directory where PNG files are stored" -msgstr "Ruta al directorio dónde están almacenados los ficheros PNG" - #: extensions/stats/general_callbacks.py:12 msgid "Statistics" msgstr "Estadísticas" @@ -2508,23 +2519,23 @@ msgstr "tamaño enviado" msgid "Mail traffic" msgstr "Tráfico de correo" -#: extensions/stats/grapher.py:8 +#: extensions/stats/grapher.py:9 msgid "Day" msgstr "Día" -#: extensions/stats/grapher.py:9 +#: extensions/stats/grapher.py:10 msgid "Week" msgstr "Semana" -#: extensions/stats/grapher.py:10 +#: extensions/stats/grapher.py:11 msgid "Month" msgstr "Mes" -#: extensions/stats/grapher.py:11 +#: extensions/stats/grapher.py:12 msgid "Year" msgstr "Año" -#: extensions/stats/grapher.py:60 +#: extensions/stats/grapher.py:61 msgid "Total" msgstr "Total" @@ -2709,7 +2720,7 @@ msgstr "Respuesta del servidor" msgid "Unknown action" msgstr "Acción desconocida" -#: extensions/webmail/forms.py:9 +#: extensions/webmail/forms.py:84 msgid "Cci" msgstr "Cco" @@ -2717,78 +2728,79 @@ msgstr "Cco" msgid "Webmail" msgstr "Correo web" -#: extensions/webmail/imaputils.py:242 -msgid "Failed to retrieve hierarchy delimiter" -msgstr "Fallo al recuperar el delimitador jerárquico" - -#: extensions/webmail/imaputils.py:283 -#, python-format -msgid "Connection to IMAP server failed: %s" -msgstr "Falló la conexión con el servidor IMAP: %s" - -#: extensions/webmail/lib.py:371 -msgid "wrote:" -msgstr "escribió:" - -#: extensions/webmail/lib.py:437 extensions/webmail/lib.py:441 -msgid "Original message" -msgstr "Mensaje original" - -#: extensions/webmail/views.py:85 +#: extensions/webmail/views.py:87 #, python-format msgid "%(count)d message deleted" msgid_plural "%(count)d messages deleted" msgstr[0] "%(count)d mensaje eliminado" msgstr[1] "%(count)d mensajes eliminados" -#: extensions/webmail/views.py:116 lib/email_listing.py:138 +#: extensions/webmail/views.py:118 lib/email_listing.py:128 msgid "Empty mailbox" msgstr "Mailbox vacío" -#: extensions/webmail/views.py:142 +#: extensions/webmail/views.py:144 msgid "Mailbox created" msgstr "Mailbox creado." -#: extensions/webmail/views.py:148 -#: extensions/webmail/templatetags/webmail_tags.py:175 +#: extensions/webmail/views.py:150 +#: extensions/webmail/templatetags/webmail_tags.py:177 msgid "Create a new mailbox" msgstr "Crear un nuevo mailbox" -#: extensions/webmail/views.py:167 extensions/webmail/views.py:202 +#: extensions/webmail/views.py:169 extensions/webmail/views.py:204 msgid "Edit mailbox" msgstr "Editar el mailbox" -#: extensions/webmail/views.py:183 +#: extensions/webmail/views.py:185 msgid "Mailbox updated" msgstr "Mailbox actualizado" -#: extensions/webmail/views.py:255 +#: extensions/webmail/views.py:257 msgid "Failed to save attachment: " msgstr "Fallo al guardar el adjunto:" -#: extensions/webmail/views.py:258 +#: extensions/webmail/views.py:260 #, python-format msgid "Attachment is too big (limit: %s)" msgstr "EL adjunto es demasiado grande (límite: %s)" -#: extensions/webmail/views.py:264 +#: extensions/webmail/views.py:266 #: extensions/webmail/templates/webmail/compose.html:15 #: extensions/webmail/templates/webmail/headers.html:4 msgid "Attachments" msgstr "Adjuntos" -#: extensions/webmail/views.py:281 +#: extensions/webmail/views.py:283 msgid "Bad query" msgstr "Consulta errónea" -#: extensions/webmail/views.py:293 +#: extensions/webmail/views.py:295 msgid "Failed to remove attachment: " msgstr "Fallo al eliminar el adjunto:" -#: extensions/webmail/views.py:298 +#: extensions/webmail/views.py:300 msgid "Unknown attachment" msgstr "Adjunto desconocido" +#: extensions/webmail/lib/imapemail.py:235 +msgid "wrote:" +msgstr "escribió:" + +#: extensions/webmail/lib/imapemail.py:302 +#: extensions/webmail/lib/imapemail.py:305 +msgid "Original message" +msgstr "Mensaje original" + +#: extensions/webmail/lib/imaputils.py:242 +msgid "Failed to retrieve hierarchy delimiter" +msgstr "Fallo al recuperar el delimitador jerárquico" + +#: extensions/webmail/lib/imaputils.py:283 +#, python-format +msgid "Connection to IMAP server failed: %s" +msgstr "Falló la conexión con el servidor IMAP: %s" + #: extensions/webmail/templates/webmail/attachments.html:6 msgid "Attach" msgstr "Adjunto" @@ -2816,7 +2828,7 @@ msgstr[1] "%(counter)s ficheros" msgid "Parent mailbox" msgstr "Mailbox padre" -#: extensions/webmail/templates/webmail/index.html:40 +#: extensions/webmail/templates/webmail/index.html:42 msgid "Mailbox quota" msgstr "Cuota del mailbox" @@ -2876,11 +2888,11 @@ msgstr "Comprimir la carpeta" msgid "Empty folder" msgstr "Vaciar la carpeta" -#: extensions/webmail/templatetags/webmail_tags.py:183 +#: extensions/webmail/templatetags/webmail_tags.py:185 msgid "Edit the selected mailbox" msgstr "Editar el mailbox seleccionado" -#: extensions/webmail/templatetags/webmail_tags.py:188 +#: extensions/webmail/templatetags/webmail_tags.py:190 msgid "Remove the selected mailbox" msgstr "Eliminar el mailbox seleccionado" @@ -2927,11 +2939,6 @@ msgstr "Super administrador" msgid "Domain administrator" msgstr "Administrador de dominio" -#: lib/permissions.py:73 -#, python-format -msgid "Failed to grant access (%s)" -msgstr "Fallo al dar acceso (%s)" - #: lib/tables.py:251 msgid "No entries to display" msgstr "No hay entradas que mostrar" @@ -2994,6 +3001,19 @@ msgstr "Recuerdame" msgid "Log in" msgstr "Entrar" +#, fuzzy +#~ msgid "A domain %s already exists" +#~ msgstr "El mailbox %s ya existe" + +#~ msgid "Directory to store PNG files" +#~ msgstr "Directorio para guardar los ficheros PNG" + +#~ msgid "Path to directory where PNG files are stored" +#~ msgstr "Ruta al directorio dónde están almacenados los ficheros PNG" + +#~ msgid "Failed to grant access (%s)" +#~ msgstr "Fallo al dar acceso (%s)" + #~ msgid "An alias with this name already exists" #~ msgstr "Ya existe un alias con este nombre" diff --git a/modoboa/locale/es/LC_MESSAGES/djangojs.po b/modoboa/locale/es/LC_MESSAGES/djangojs.po index 891ca70a3..861ac1cb4 100644 --- a/modoboa/locale/es/LC_MESSAGES/djangojs.po +++ b/modoboa/locale/es/LC_MESSAGES/djangojs.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Modoboa\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-12-15 10:16+0100\n" +"POT-Creation-Date: 2014-08-24 12:32+0200\n" "PO-Revision-Date: 2013-06-03 16:32+0000\n" "Last-Translator: Pedro Gracia \n" "Language-Team: Spanish (http://www.transifex.com/projects/p/modoboa/language/" @@ -111,18 +111,18 @@ msgstr "¿Eliminar el mailbox seleccionado?" msgid "Mailbox removed" msgstr "Mailbox eliminado" -#: extensions/webmail/static/webmail/js/webmail.js:746 +#: extensions/webmail/static/webmail/js/webmail.js:752 msgid "Message sent" msgstr "Mensaje enviado" -#: extensions/webmail/static/webmail/js/webmail.js:997 +#: extensions/webmail/static/webmail/js/webmail.js:1003 #, c-format msgid "%s file" msgid_plural "%s files" msgstr[0] "%s fichero" msgstr[1] "%s ficheros" -#: extensions/webmail/static/webmail/js/webmail.js:1031 +#: extensions/webmail/static/webmail/js/webmail.js:1037 #, c-format msgid "Moving %s message" msgid_plural "Moving %s messages" diff --git a/modoboa/locale/fr/LC_MESSAGES/django.po b/modoboa/locale/fr/LC_MESSAGES/django.po index f26cdbb63..8c4da86cd 100644 --- a/modoboa/locale/fr/LC_MESSAGES/django.po +++ b/modoboa/locale/fr/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: modoboa-1.1.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-12-15 10:20+0100\n" +"POT-Creation-Date: 2014-08-24 12:29+0200\n" "PO-Revision-Date: 2011-01-07 10:00+100\n" "Last-Translator: Antoine Nguyen \n" "Language-Team: FR \n" @@ -18,8 +18,8 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: core/__init__.py:52 core/__init__.py:53 -#: extensions/admin/forms/account.py:326 extensions/admin/forms/domain.py:251 -#: extensions/admin/views/domain.py:95 extensions/admin/views/identity.py:127 +#: extensions/admin/forms/account.py:326 extensions/admin/forms/domain.py:256 +#: extensions/admin/views/domain.py:97 extensions/admin/views/identity.py:129 #: extensions/postfix_autoreply/app_settings.py:11 #: extensions/postfix_relay_domains/forms.py:138 #: extensions/sievefilters/app_settings.py:50 @@ -27,56 +27,56 @@ msgstr "" msgid "General" msgstr "Général" -#: core/app_settings.py:36 +#: core/app_settings.py:39 msgid "Authentication" msgstr "Authentification" -#: core/app_settings.py:39 +#: core/app_settings.py:42 msgid "Authentication type" msgstr "Type d'authentification" -#: core/app_settings.py:40 +#: core/app_settings.py:43 msgid "Local" msgstr "Locale" -#: core/app_settings.py:43 +#: core/app_settings.py:46 msgid "The backend used for authentication" msgstr "Le backend utilisé pour l'authentification" -#: core/app_settings.py:48 +#: core/app_settings.py:51 msgid "Default password scheme" msgstr "Méthode de chiffrement par défaut" -#: core/app_settings.py:51 +#: core/app_settings.py:54 msgid "md5crypt (weak)" msgstr "md5crypt (faible)" -#: core/app_settings.py:52 +#: core/app_settings.py:55 msgid "sha256 (weak)" msgstr "sha256 (faible)" -#: core/app_settings.py:53 +#: core/app_settings.py:56 msgid "md5 (weak)" msgstr "md5 (faible)" -#: core/app_settings.py:54 +#: core/app_settings.py:57 msgid "crypt (weak)" msgstr "crypt (faible)" -#: core/app_settings.py:55 +#: core/app_settings.py:58 msgid "plain (weak)" msgstr "plain (faible)" -#: core/app_settings.py:57 +#: core/app_settings.py:60 msgid "Scheme used to crypt mailbox passwords" msgstr "" "Méthode utilisée pour chiffrer les mots de passe des boites aux lettres" -#: core/app_settings.py:61 +#: core/app_settings.py:64 msgid "Rounds" msgstr "Tours" -#: core/app_settings.py:64 +#: core/app_settings.py:67 msgid "" "Number of rounds to use (only used by sha256crypt and sha512crypt). Must be " "between 1000 and 999999999, inclusive." @@ -84,65 +84,65 @@ msgstr "" "Nombre de tours à utiliser (sha256crypt et sha512crypt uniquement). Doit " "être compris entre 1000 et 999999999 inclue." -#: core/app_settings.py:70 +#: core/app_settings.py:73 msgid "Secret key" msgstr "Clé secrète" -#: core/app_settings.py:72 +#: core/app_settings.py:75 msgid "Key used to encrypt/decrypt passwords" msgstr "Clé utilisée pour chiffrer/déchiffre les mots de passe" -#: core/app_settings.py:76 +#: core/app_settings.py:79 msgid "LDAP settings" msgstr "Paramètres LDAP" -#: core/app_settings.py:79 extensions/sievefilters/app_settings.py:22 +#: core/app_settings.py:82 extensions/sievefilters/app_settings.py:22 #: extensions/webmail/app_settings.py:22 extensions/webmail/app_settings.py:42 msgid "Server address" msgstr "Adresse du serveur" -#: core/app_settings.py:81 +#: core/app_settings.py:85 msgid "The IP address of the DNS name of the LDAP server" msgstr "L'adresse IP ou le nom DNS du serveur LDAP" -#: core/app_settings.py:85 extensions/sievefilters/app_settings.py:28 +#: core/app_settings.py:89 extensions/sievefilters/app_settings.py:28 #: extensions/webmail/app_settings.py:34 extensions/webmail/app_settings.py:58 msgid "Server port" msgstr "Port utilisé par le serveur" -#: core/app_settings.py:87 +#: core/app_settings.py:91 msgid "The TCP port number used by the LDAP server" msgstr "Le port TCP utilisé par le serveur LDAP" -#: core/app_settings.py:91 extensions/webmail/app_settings.py:28 +#: core/app_settings.py:95 extensions/webmail/app_settings.py:28 msgid "Use a secured connection" msgstr "Utiliser une connexion sécurisée" -#: core/app_settings.py:93 +#: core/app_settings.py:98 msgid "Use an SSL/TLS connection to access the LDAP server" msgstr "Utiliser une connextion SSL/TLS pour accéder au serveur LDAP" -#: core/app_settings.py:97 +#: core/app_settings.py:102 msgid "Authentication method" msgstr "Méthode d'authentification" -#: core/app_settings.py:98 +#: core/app_settings.py:103 msgid "Search and bind" msgstr "Recherche et connexion" -#: core/app_settings.py:99 +#: core/app_settings.py:104 msgid "Direct bind" msgstr "Connexion directe" -#: core/app_settings.py:101 +#: core/app_settings.py:106 msgid "Choose the authentication method to use" msgstr "Choisir la méthode d'authentification à utiliser" -#: core/app_settings.py:106 +#: core/app_settings.py:111 msgid "Bind DN" msgstr "ND de connexion" -#: core/app_settings.py:108 +#: core/app_settings.py:114 msgid "" "The distinguished name to use when binding to the LDAP server. Leave empty " "for an anonymous bind" @@ -150,31 +150,31 @@ msgstr "" "Le nom distinctif à utiliser pour les connections au serveur LDAP. Laisser " "vide pour une connexion anonyme" -#: core/app_settings.py:113 +#: core/app_settings.py:121 msgid "Bind password" msgstr "Mot de passe de connexion" -#: core/app_settings.py:115 +#: core/app_settings.py:124 msgid "The password to use when binding to the LDAP server (with 'Bind DN')" msgstr "" "Le mot de passe à utiliser pour les connections au serveur LDAP (avec 'ND de " "connexion')" -#: core/app_settings.py:121 +#: core/app_settings.py:132 msgid "Users search base" msgstr "Base de recherche des utilisateurs" -#: core/app_settings.py:123 +#: core/app_settings.py:135 msgid "The distinguished name of the search base used to find users" msgstr "" "Le nom distinctif de la base de recherche utilisée pour rechercher les " "utilisateurs" -#: core/app_settings.py:128 +#: core/app_settings.py:141 msgid "Search filter" msgstr "Filtre de recherche" -#: core/app_settings.py:130 +#: core/app_settings.py:144 msgid "" "An optional filter string (e.g. '(objectClass=person)'). In order to be " "valid, it must be enclosed in parentheses." @@ -182,11 +182,11 @@ msgstr "" "Un filtre de recherche optionel (ex. '(objectClass=person)'). Pour être " "valide, il doit être entouré de parenthèses." -#: core/app_settings.py:135 +#: core/app_settings.py:151 msgid "User DN template" msgstr "Modèle de nom distinctif utilisateur" -#: core/app_settings.py:137 +#: core/app_settings.py:154 #, python-format msgid "" "The template used to construct a user's DN. It should contain one " @@ -195,27 +195,27 @@ msgstr "" "Le modèle utilisé pour construire le nom distinctif d'un utilisateur. Il " "doit contenir un espace réservé (ex. %(user)s)" -#: core/app_settings.py:142 +#: core/app_settings.py:161 msgid "Password attribute" msgstr "Attribut 'mot de passe'" -#: core/app_settings.py:144 +#: core/app_settings.py:163 msgid "The attribute used to store user passwords" msgstr "L'attribut utilisé pour stocker les mots de passe" -#: core/app_settings.py:148 +#: core/app_settings.py:167 msgid "Active Directory" msgstr "Active Directory" -#: core/app_settings.py:150 +#: core/app_settings.py:170 msgid "Tell if the LDAP server is an Active Directory one" msgstr "Indiquer si le serveur LDAP est un Active Directory ou pas" -#: core/app_settings.py:154 +#: core/app_settings.py:174 msgid "Administrator groups" msgstr "Groupes administrateurs" -#: core/app_settings.py:157 +#: core/app_settings.py:177 msgid "" "Members of those LDAP Posix groups will be created as domain administrators. " "Use ';' characters to separate groups." @@ -224,73 +224,85 @@ msgstr "" "qu'administrateurs de domaine. Utiliser des caractères ';' pour séparer les " "groupes." -#: core/app_settings.py:164 +#: core/app_settings.py:184 msgid "Groups search base" msgstr "Base de recherche des groupes" -#: core/app_settings.py:167 +#: core/app_settings.py:187 msgid "The distinguished name of the search base used to find groups" msgstr "" "Le nom distinctif de la base de recherche utilisée pour rechercher les " "groupes" -#: core/app_settings.py:172 +#: core/app_settings.py:193 +msgid "Domain/mailbox creation" +msgstr "Création de domaine/boite aux lettres" + +#: core/app_settings.py:196 +msgid "" +"Automatically create a domain and a mailbox when a new user is created just " +"after the first successful authentication." +msgstr "" +"Créer automatiquement un domaine et une boite aux lettres quand un " +"nouvel utilisateur est créé après la première authenfication réussie." + +#: core/app_settings.py:201 #: extensions/admin/templates/admin/editdomainform.html:7 msgid "Miscellaneous" msgstr "Divers" -#: core/app_settings.py:175 +#: core/app_settings.py:204 msgid "Maximum log record age" msgstr "Age maximal d'un enregistrement du journal" -#: core/app_settings.py:177 +#: core/app_settings.py:206 msgid "The maximum age in days of a log record" msgstr "L'age maximal en jours d'un enregistrement du journal" -#: core/app_settings.py:181 +#: core/app_settings.py:210 msgid "Items per page" msgstr "Eléments par page" -#: core/app_settings.py:183 +#: core/app_settings.py:212 msgid "Number of displayed items per page" msgstr "Nombre d'éléments affichés par page" -#: core/app_settings.py:187 +#: core/app_settings.py:216 msgid "Default top redirection" msgstr "Redirection par défaut" -#: core/app_settings.py:190 +#: core/app_settings.py:220 msgid "The default redirection used when no application is specified" msgstr "" "La redirection appliquée par défaut quand aucune application n'est spécifiée" -#: core/app_settings.py:218 +#: core/app_settings.py:249 msgid "Key must be either 16, 24, or 32 bytes long" msgstr "La longueur d'une clé doit être de 16, 24 ou 32 octets" -#: core/app_settings.py:227 extensions/postfix_autoreply/app_settings.py:53 +#: core/app_settings.py:258 extensions/postfix_autoreply/app_settings.py:53 msgid "Invalid syntax" msgstr "Syntaxe invalide" -#: core/app_settings.py:233 +#: core/app_settings.py:264 msgid "Invalid rounds number" msgstr "Nombre invalide de tours" -#: core/app_settings.py:256 +#: core/app_settings.py:287 msgid "This field is required" msgstr "Ce champ est requis" -#: core/app_settings.py:317 extensions/amavis/app_settings.py:87 +#: core/app_settings.py:349 extensions/amavis/app_settings.py:87 #: extensions/amavis/templates/amavis/main_action_bar.html:29 #: extensions/webmail/app_settings.py:73 msgid "Display" msgstr "Afficher" -#: core/app_settings.py:321 +#: core/app_settings.py:353 msgid "Prefered language" msgstr "Langage préféré" -#: core/app_settings.py:327 +#: core/app_settings.py:359 msgid "Prefered language to display pages" msgstr "Langage préféré pour afficher les pages" @@ -344,7 +356,7 @@ msgstr "" msgid "account" msgstr "compte" -#: core/models.py:321 extensions/admin/models/domain.py:135 +#: core/models.py:321 extensions/admin/models/domain.py:144 #: extensions/admin/models/domain_alias.py:39 #: extensions/postfix_relay_domains/models.py:134 #: extensions/postfix_relay_domains/models.py:190 @@ -355,17 +367,17 @@ msgstr "Ligne invalide" msgid "You can't import an account with a role greater than yours" msgstr "Vous ne pouvez pas importer un compte avec un rôle supérieur au votre" -#: core/models.py:331 +#: core/models.py:337 #, python-format msgid "The simple user '%s' must have a valid email address" msgstr "L'utilisateur simple '%s' doit avoir une adresse email valide" -#: core/models.py:335 +#: core/models.py:341 #, python-format msgid "username and email fields must not differ for '%s'" msgstr "Les champs username et email de '%s' ne doivent pas différer" -#: core/models.py:404 extensions/admin/models/alias.py:33 +#: core/models.py:410 extensions/admin/models/alias.py:35 #: extensions/admin/models/domain.py:32 #: extensions/admin/models/domain_alias.py:17 #: extensions/postfix_autoreply/models.py:28 @@ -374,29 +386,29 @@ msgstr "Les champs username et email de '%s' ne doivent pas différer" msgid "enabled" msgstr "Activé" -#: core/models.py:405 +#: core/models.py:411 msgid "Check to enable this extension" msgstr "Cocher pour activer cette extension" -#: core/models.py:475 +#: core/models.py:491 msgid "added" msgstr "ajouté" -#: core/models.py:478 +#: core/models.py:494 msgid "modified" msgstr "modifié" -#: core/models.py:480 core/models.py:504 +#: core/models.py:496 core/models.py:521 #, python-format msgid "%(object)s '%(name)s' %(action)s by user %(user)s" msgstr "%(object)s '%(name)s' %(action)s par l'utilisateur %(user)s" -#: core/models.py:506 +#: core/models.py:523 msgid "deleted" msgstr "Supprimé" #: core/tables.py:8 core/templates/core/information.html:8 -#: extensions/admin/tables.py:9 extensions/admin/forms/domain.py:182 +#: extensions/admin/tables.py:9 extensions/admin/forms/domain.py:187 #: extensions/admin/templates/admin/domains_table.html:5 #: extensions/admin/templates/admin/editdomainform.html:13 #: extensions/admin/templates/admin/identities_table.html:5 @@ -458,8 +470,9 @@ msgstr "Journaux" msgid "Previously on Modoboa..." msgstr "Précédemment dans Modoboa..." -#: core/templates/core/logs.html:6 extensions/amavis/sql_listing.py:46 -#: extensions/webmail/lib.py:48 extensions/webmail/lib.py:425 +#: core/templates/core/logs.html:6 extensions/amavis/sql_listing.py:44 +#: extensions/webmail/lib/imapemail.py:290 +#: extensions/webmail/lib/listing.py:35 extensions/webmail/lib/tables.py:34 msgid "Date" msgstr "Date" @@ -510,12 +523,12 @@ msgstr "Mettez à jour vos informations personnelles" #: core/templates/core/user_profile.html:8 #: extensions/admin/templates/admin/forward.html:8 -#: extensions/admin/views/alias.py:107 extensions/admin/views/domain.py:165 -#: extensions/admin/views/identity.py:197 +#: extensions/admin/views/alias.py:112 extensions/admin/views/domain.py:168 +#: extensions/admin/views/identity.py:200 #: extensions/postfix_autoreply/templates/postfix_autoreply/autoreply.html:9 -#: extensions/postfix_relay_domains/views.py:63 -#: extensions/sievefilters/views.py:163 extensions/webmail/views.py:170 -#: extensions/webmail/views.py:205 +#: extensions/postfix_relay_domains/views.py:66 +#: extensions/sievefilters/views.py:166 extensions/webmail/views.py:172 +#: extensions/webmail/views.py:207 msgid "Update" msgstr "Mettre à jour" @@ -546,7 +559,7 @@ msgstr "" "Votre nom d'utilisateur et mot de passe ne correspondent pas. Veuillez " "réessayer." -#: core/views/auth.py:66 +#: core/views/auth.py:69 #, python-format msgid "User '%s' logged out" msgstr "Utilisateur '%s' déconnecté" @@ -640,7 +653,17 @@ msgstr "Transfert" msgid "Account import failed (%s): domain does not exist" msgstr "L'import du compte a échoué (%s): le domaine n'existe pas" -#: extensions/admin/app_settings.py:11 +#: extensions/admin/__init__.py:172 extensions/admin/forms/account.py:196 +#, python-format +msgid "Mailbox %s already exists" +msgstr "La boite %s existe déjà" + +#: extensions/admin/__init__.py:180 +#, python-format +msgid "Account import failed (%s): wrong quota value" +msgstr "L'import du compte a échoué (%s): mauvais quota" + +#: extensions/admin/app_settings.py:13 #: extensions/admin/templates/admin/editdomainform.html:25 #: extensions/limits/app_settings.py:31 extensions/limits/models.py:23 #: extensions/webmail/app_settings.py:107 @@ -648,11 +671,11 @@ msgstr "L'import du compte a échoué (%s): le domaine n'existe pas" msgid "Mailboxes" msgstr "Boites" -#: extensions/admin/app_settings.py:14 +#: extensions/admin/app_settings.py:16 msgid "Handle mailboxes on filesystem" msgstr "Gérer les boites sur le système de fichiers" -#: extensions/admin/app_settings.py:16 +#: extensions/admin/app_settings.py:18 msgid "" "Rename or remove mailboxes on the filesystem when they get renamed or " "removed within Modoboa" @@ -660,19 +683,19 @@ msgstr "" "Renommer ou supprimer les boites sur le système de fichiers quand elles sont " "renommées ou supprimées dans Modoboa" -#: extensions/admin/app_settings.py:20 +#: extensions/admin/app_settings.py:22 msgid "Mailboxes owner" msgstr "Propriétaire des boites" -#: extensions/admin/app_settings.py:22 +#: extensions/admin/app_settings.py:24 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" -#: extensions/admin/app_settings.py:26 +#: extensions/admin/app_settings.py:28 msgid "Default domain quota" msgstr "Quota de domaine par défaut" -#: extensions/admin/app_settings.py:29 +#: extensions/admin/app_settings.py:31 msgid "" "Default quota (in MB) applied to freshly created domains with no value " "specified. A value of 0 means no quota." @@ -680,17 +703,17 @@ 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é." -#: extensions/admin/app_settings.py:36 +#: extensions/admin/app_settings.py:38 msgid "Automatic account removal" msgstr "Suppression automatique de compte" -#: extensions/admin/app_settings.py:38 +#: extensions/admin/app_settings.py:40 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" -#: extensions/admin/app_settings.py:69 extensions/admin/forms/account.py:178 +#: extensions/admin/app_settings.py:81 extensions/admin/forms/account.py:178 #: extensions/admin/forms/domain.py:56 msgid "Must be a positive integer" msgstr "Doit être un entier positif" @@ -774,11 +797,6 @@ msgstr "" msgid "Domain does not exist" msgstr "Domain inexistant" -#: extensions/admin/forms/account.py:196 -#, python-format -msgid "Mailbox %s already exists" -msgstr "La boite %s existe déjà" - #: extensions/admin/forms/account.py:284 msgid "Domain(s)" msgstr "Domaine(s)" @@ -788,7 +806,7 @@ msgid "Domain(s) that user administrates" msgstr "Domaine(s) que cet utilisateur administre" #: extensions/admin/forms/account.py:328 -#: extensions/admin/views/identity.py:130 +#: extensions/admin/views/identity.py:132 msgid "Mail" msgstr "Courrier" @@ -828,7 +846,7 @@ msgstr "Vous n'avez pas accès à ce domaine" msgid "Invalid mailbox" msgstr "Boite aux lettres invalide" -#: extensions/admin/forms/alias.py:108 extensions/admin/models/alias.py:182 +#: extensions/admin/forms/alias.py:108 extensions/admin/models/alias.py:194 #, python-format msgid "Local recipient %s not found" msgstr "Destinataire local %s introuvable" @@ -877,15 +895,15 @@ msgstr "Un %s de ce nom existe déjà" msgid "domain" msgstr "domaine" -#: extensions/admin/forms/domain.py:176 +#: extensions/admin/forms/domain.py:181 msgid "Create a domain administrator" msgstr "Créer un administrateur de domaine" -#: extensions/admin/forms/domain.py:178 +#: extensions/admin/forms/domain.py:183 msgid "Automatically create an administrator for this domain" msgstr "Créer automatiquement un administrateur pour ce domaine" -#: extensions/admin/forms/domain.py:185 +#: extensions/admin/forms/domain.py:190 msgid "" "The administrator's name. Don't include the domain's name here, it will be " "automatically appended." @@ -893,19 +911,19 @@ msgstr "" "Le nom de l'administrateur. Ne pas include un nom de domaine ici, il sera " "ajouté automatiquement." -#: extensions/admin/forms/domain.py:193 +#: extensions/admin/forms/domain.py:198 msgid "Create aliases" msgstr "Créer des alias" -#: extensions/admin/forms/domain.py:195 +#: extensions/admin/forms/domain.py:200 msgid "Automatically create standard aliases for this domain" msgstr "Créer automatiquement des alias standard pour ce domaine" -#: extensions/admin/forms/domain.py:211 +#: extensions/admin/forms/domain.py:216 msgid "Invalid format" msgstr "Format invalide" -#: extensions/admin/forms/domain.py:225 +#: extensions/admin/forms/domain.py:230 #, python-format msgid "User '%s' already exists" msgstr "L'utilisateur '%s' existe déjà" @@ -942,7 +960,7 @@ msgstr "" "Vous ne pouvez pas définir un transfert vers une destination locale. " "Veuillez plutôt demander à votre administrateur de créer un alias" -#: extensions/admin/forms/import_.py:6 extensions/webmail/forms.py:26 +#: extensions/admin/forms/import_.py:6 extensions/webmail/forms.py:198 msgid "Select a file" msgstr "Sélectionner un fichier" @@ -964,11 +982,11 @@ msgstr "" "Cocher cette option si les mots de passe contenus dans votre fichier ne sont " "pas chiffrés" -#: extensions/admin/models/alias.py:16 extensions/admin/models/mailbox.py:51 +#: extensions/admin/models/alias.py:18 extensions/admin/models/mailbox.py:62 msgid "address" msgstr "Adresse" -#: extensions/admin/models/alias.py:18 +#: extensions/admin/models/alias.py:20 msgid "" "The alias address (without the domain part). For a 'catch-all' address, just " "enter an * character." @@ -976,42 +994,42 @@ msgstr "" "L'adresse de l'alias (sans la partie domaine). Pour une adresse 'attrape-" "tout', entrer juste un caractère *." -#: extensions/admin/models/alias.py:24 +#: extensions/admin/models/alias.py:26 msgid "mailboxes" msgstr "Boites aux lettres" -#: extensions/admin/models/alias.py:25 +#: extensions/admin/models/alias.py:27 msgid "The mailboxes this alias points to" msgstr "Les boites aux lettres sur lesquelles pointe cet alias" -#: extensions/admin/models/alias.py:29 +#: extensions/admin/models/alias.py:31 msgid "The aliases this alias points to" msgstr "Les alias vers lesquels pointe cet alias" -#: extensions/admin/models/alias.py:34 +#: extensions/admin/models/alias.py:36 #: extensions/admin/models/domain_alias.py:18 #: extensions/postfix_relay_domains/models.py:168 msgid "Check to activate this alias" msgstr "Cocher pour activer cet alias" -#: extensions/admin/models/alias.py:79 +#: extensions/admin/models/alias.py:81 msgid "distribution list" msgstr "liste de distribution" -#: extensions/admin/models/alias.py:80 +#: extensions/admin/models/alias.py:82 msgid "forward" msgstr "transfert" -#: extensions/admin/models/alias.py:81 +#: extensions/admin/models/alias.py:83 msgid "alias" msgstr "alias" -#: extensions/admin/models/alias.py:150 +#: extensions/admin/models/alias.py:152 #, python-format msgid "Invalid line: %s" msgstr "Ligne invalide : %s" -#: extensions/admin/models/alias.py:155 +#: extensions/admin/models/alias.py:157 #, python-format msgid "Domain '%s' does not exist" msgstr "Domain '%s' inexistant" @@ -1038,7 +1056,7 @@ msgstr "Cocher pour activer ce domaine" msgid "Domain" msgstr "Domaine" -#: extensions/admin/models/domain.py:140 +#: extensions/admin/models/domain.py:155 #, python-format msgid "Invalid quota value for domain '%s'" msgstr "Quota invalide pour le domaine '%s'" @@ -1057,31 +1075,26 @@ msgstr "cible" msgid "The domain this alias points to" msgstr "Le domaine vers lequel cet alias pointe" -#: extensions/admin/models/domain_alias.py:46 -#, python-format -msgid "A domain %s already exists" -msgstr "Un domaine %s existe déjà" - -#: extensions/admin/models/domain_alias.py:51 +#: extensions/admin/models/domain_alias.py:52 #, python-format msgid "Unknown domain %s" msgstr "Domain %s inconnu" -#: extensions/admin/models/mailbox.py:52 +#: extensions/admin/models/mailbox.py:63 msgid "Mailbox address (without the @domain.tld part)" msgstr "Adresse de la boite aux lettres (sans la partie @domain.tld)" -#: extensions/admin/models/mailbox.py:113 +#: extensions/admin/models/mailbox.py:125 #, python-format msgid "Failed to retrieve mailbox location (%s)" msgstr "Impossible de récuperer l'emplacement de la boite (%s)" -#: extensions/admin/models/mailbox.py:173 +#: extensions/admin/models/mailbox.py:194 #, python-format msgid "Quota is greater than the allowed domain's limit (%dM)" msgstr "Le quota est supérieur à la limité autorisée pour le domaine (%dM)" -#: extensions/admin/models/mailbox.py:178 +#: extensions/admin/models/mailbox.py:199 msgid "A quota is required" msgstr "Un quota est requis" @@ -1103,7 +1116,7 @@ msgstr "Tags" #: extensions/admin/templates/admin/domains_table.html:8 #: extensions/admin/templates/admin/identities_table.html:8 #: extensions/admin/templates/admin/listing.html:17 -#: extensions/sievefilters/views.py:93 +#: extensions/sievefilters/views.py:95 #: extensions/sievefilters/templates/sievefilters/filter.html:17 #: extensions/sievefilters/templates/sievefilters/guieditor.html:5 #: extensions/webmail/templatetags/webmail_tags.py:101 @@ -1200,7 +1213,7 @@ msgstr "Ajouter un domaine" #: extensions/admin/templatetags/admin_tags.py:42 #: extensions/admin/templatetags/admin_tags.py:106 -#: extensions/admin/views/import.py:51 extensions/admin/views/import.py:166 +#: extensions/admin/views/import.py:52 extensions/admin/views/import.py:168 msgid "Import" msgstr "Importer" @@ -1250,84 +1263,84 @@ msgstr "Supprimer %s ?" msgid "Remove this permission" msgstr "Supprimer cette permission" -#: extensions/admin/views/alias.py:25 +#: extensions/admin/views/alias.py:26 msgid "Alias with this name already exists" msgstr "Un alias de ce nom existe déjà" -#: extensions/admin/views/alias.py:49 extensions/admin/views/domain.py:100 -#: extensions/admin/views/domain.py:129 extensions/admin/views/identity.py:131 -#: extensions/admin/views/identity.py:158 -#: extensions/postfix_relay_domains/views.py:32 -#: extensions/sievefilters/views.py:141 extensions/sievefilters/views.py:230 -#: extensions/webmail/views.py:151 +#: extensions/admin/views/alias.py:50 extensions/admin/views/domain.py:102 +#: extensions/admin/views/domain.py:131 extensions/admin/views/identity.py:133 +#: extensions/admin/views/identity.py:160 +#: extensions/postfix_relay_domains/views.py:34 +#: extensions/sievefilters/views.py:144 extensions/sievefilters/views.py:233 +#: extensions/webmail/views.py:153 msgid "Create" msgstr "Créer" -#: extensions/admin/views/alias.py:61 +#: extensions/admin/views/alias.py:63 msgid "New distribution list" msgstr "Nouvelle liste de distribution" -#: extensions/admin/views/alias.py:62 +#: extensions/admin/views/alias.py:64 msgid "Distribution list created" msgstr "Liste de distribution créée" -#: extensions/admin/views/alias.py:71 +#: extensions/admin/views/alias.py:74 msgid "New alias" msgstr "Nouvel alias" -#: extensions/admin/views/alias.py:72 +#: extensions/admin/views/alias.py:75 msgid "Alias created" msgstr "Alias créé" -#: extensions/admin/views/alias.py:81 +#: extensions/admin/views/alias.py:85 msgid "New forward" msgstr "Nouveau transfert" -#: extensions/admin/views/alias.py:82 +#: extensions/admin/views/alias.py:86 msgid "Forward created" msgstr "Transfert créé" -#: extensions/admin/views/alias.py:95 +#: extensions/admin/views/alias.py:100 msgid "Distribution list modified" msgstr "Liste de distribution modifiée" -#: extensions/admin/views/alias.py:97 +#: extensions/admin/views/alias.py:102 msgid "Forward modified" msgstr "Transfert modifié" -#: extensions/admin/views/alias.py:99 +#: extensions/admin/views/alias.py:104 msgid "Alias modified" msgstr "Alias modifié" -#: extensions/admin/views/domain.py:96 extensions/admin/views/identity.py:128 +#: extensions/admin/views/domain.py:98 extensions/admin/views/identity.py:130 msgid "Next" msgstr "Suivante" -#: extensions/admin/views/domain.py:99 +#: extensions/admin/views/domain.py:101 msgid "Options" msgstr "Options" -#: extensions/admin/views/domain.py:101 extensions/admin/views/identity.py:132 +#: extensions/admin/views/domain.py:103 extensions/admin/views/identity.py:134 msgid "Previous" msgstr "Précédente" -#: extensions/admin/views/domain.py:123 +#: extensions/admin/views/domain.py:125 msgid "Domain created" msgstr "Domaine créé" -#: extensions/admin/views/domain.py:128 +#: extensions/admin/views/domain.py:130 msgid "New domain" msgstr "Nouveau domaine" -#: extensions/admin/views/domain.py:155 +#: extensions/admin/views/domain.py:158 msgid "Domain modified" msgstr "Domaine modifié" -#: extensions/admin/views/domain.py:189 +#: extensions/admin/views/domain.py:192 msgid "You can't delete your own domain" msgstr "Vous ne pouvez pas supprimer votre propre domaine" -#: extensions/admin/views/domain.py:192 +#: extensions/admin/views/domain.py:195 msgid "Domain deleted" msgid_plural "Domains deleted" msgstr[0] "Domaine supprimé" @@ -1341,40 +1354,40 @@ msgstr "Export d'identités" msgid "Export domains" msgstr "Export de domaines" -#: extensions/admin/views/identity.py:103 -#: extensions/admin/views/identity.py:224 -#: extensions/admin/views/identity.py:229 extensions/amavis/views.py:179 -#: extensions/amavis/views.py:185 extensions/amavis/views.py:220 -#: extensions/amavis/views.py:224 extensions/amavis/views.py:226 -#: extensions/webmail/views.py:47 extensions/webmail/views.py:65 -#: extensions/webmail/views.py:79 extensions/webmail/views.py:97 -#: extensions/webmail/views.py:114 extensions/webmail/views.py:200 -#: extensions/webmail/views.py:223 extensions/webmail/views.py:396 -#: extensions/webmail/views.py:430 extensions/webmail/views.py:443 -#: extensions/webmail/views.py:472 extensions/webmail/views.py:512 +#: extensions/admin/views/identity.py:104 +#: extensions/admin/views/identity.py:227 +#: extensions/admin/views/identity.py:232 extensions/amavis/views.py:144 +#: extensions/amavis/views.py:148 extensions/amavis/views.py:181 +#: extensions/amavis/views.py:186 extensions/amavis/views.py:188 +#: extensions/webmail/views.py:49 extensions/webmail/views.py:67 +#: extensions/webmail/views.py:81 extensions/webmail/views.py:99 +#: extensions/webmail/views.py:116 extensions/webmail/views.py:202 +#: extensions/webmail/views.py:225 extensions/webmail/views.py:401 +#: extensions/webmail/views.py:451 extensions/webmail/views.py:467 +#: extensions/webmail/views.py:496 extensions/webmail/views.py:536 #: lib/formutils.py:44 lib/formutils.py:49 msgid "Invalid request" msgstr "Requête invalide" -#: extensions/admin/views/identity.py:149 +#: extensions/admin/views/identity.py:151 msgid "Account created" msgstr "Compte créé" -#: extensions/admin/views/identity.py:155 +#: extensions/admin/views/identity.py:157 msgid "New account" msgstr "Nouveau compte" -#: extensions/admin/views/identity.py:190 +#: extensions/admin/views/identity.py:193 msgid "Account updated" msgstr "Compte mis à jour" -#: extensions/admin/views/identity.py:214 +#: extensions/admin/views/identity.py:217 msgid "Account deleted" msgid_plural "Accounts deleted" msgstr[0] "Compte supprimé" msgstr[1] "Comptes supprimés" -#: extensions/admin/views/import.py:39 +#: extensions/admin/views/import.py:40 #, python-format msgid "" "Provide a CSV file where lines respect one of the following formats:\n" @@ -1397,21 +1410,21 @@ msgstr "" "l'une des valeurs précédentes.

      \n" "

      Vous pouvez utiliser un caractère différent comme séparateur.

      \n" -#: extensions/admin/views/import.py:50 +#: extensions/admin/views/import.py:51 msgid "Import domains" msgstr "Importer des domaines" -#: extensions/admin/views/import.py:129 +#: extensions/admin/views/import.py:131 #, python-format msgid "Object already exists: %s" msgstr "L'objet existe déjà : %s" -#: extensions/admin/views/import.py:133 +#: extensions/admin/views/import.py:135 #, python-format msgid "%d objects imported successfully" msgstr "%d objets importés avec succès" -#: extensions/admin/views/import.py:153 +#: extensions/admin/views/import.py:155 msgid "" "Provide a CSV file where lines respect one of the following formats:\n" "
        \n" @@ -1439,11 +1452,11 @@ msgstr "" "\n" "

        Vous pouvez utiliser un caractère différent comme séparateur.

        \n" -#: extensions/admin/views/import.py:165 +#: extensions/admin/views/import.py:167 msgid "Import identities" msgstr "Importer des identités" -#: extensions/admin/views/user.py:37 +#: extensions/admin/views/user.py:38 msgid "Forward updated" msgstr "Transfert mis à jour" @@ -1451,7 +1464,7 @@ msgstr "Transfert mis à jour" msgid "Simple amavis management frontend" msgstr "Interface simplifiée pour la gestion d'amavis" -#: extensions/amavis/__init__.py:52 extensions/amavis/general_callbacks.py:17 +#: extensions/amavis/__init__.py:52 extensions/amavis/general_callbacks.py:18 msgid "Quarantine" msgstr "Quarantaine" @@ -1553,19 +1566,19 @@ msgstr "Nombre d'emails affichés par page" msgid "Set the maximum number of messages displayed in a page" msgstr "Définir le nombre maximal de messages affichés dans une page" -#: extensions/amavis/general_callbacks.py:81 +#: extensions/amavis/general_callbacks.py:82 msgid "pending requests" msgstr "requêtes en attente" -#: extensions/amavis/general_callbacks.py:124 +#: extensions/amavis/general_callbacks.py:125 msgid "Pending requests" msgstr "Requêtes en attente" -#: extensions/amavis/general_callbacks.py:134 +#: extensions/amavis/general_callbacks.py:135 msgid "Content filter" msgstr "Filtrage de contenu" -#: extensions/amavis/lib.py:57 +#: extensions/amavis/lib.py:56 #, python-format msgid "Connection to amavis failed: %s" msgstr "La connexion avec amavis a échoué : %s" @@ -1575,12 +1588,12 @@ msgid "Virus filter" msgstr "Filtrage des virus" #: extensions/amavis/models.py:94 extensions/amavis/models.py:102 -#: extensions/amavis/models.py:110 extensions/sievefilters/views.py:290 +#: extensions/amavis/models.py:110 extensions/sievefilters/views.py:293 msgid "yes" msgstr "oui" #: extensions/amavis/models.py:95 extensions/amavis/models.py:103 -#: extensions/amavis/models.py:111 extensions/sievefilters/views.py:294 +#: extensions/amavis/models.py:111 extensions/sievefilters/views.py:297 msgid "no" msgstr "non" @@ -1628,24 +1641,26 @@ msgstr "" "Modifier le sujet du spam en utilisant le texte spécifié. Choisir 'défaut' " "pour utiliser les paramètres globaux." -#: extensions/amavis/sql_listing.py:31 +#: extensions/amavis/sql_listing.py:29 msgid "Score" msgstr "Score" -#: extensions/amavis/sql_listing.py:35 +#: extensions/amavis/sql_listing.py:33 #: extensions/amavis/templatetags/amavis_tags.py:75 -#: extensions/webmail/forms.py:7 +#: extensions/webmail/forms.py:82 msgid "To" msgstr "A" -#: extensions/amavis/sql_listing.py:38 -#: extensions/postfix_autoreply/forms.py:11 extensions/webmail/lib.py:44 +#: extensions/amavis/sql_listing.py:36 +#: extensions/postfix_autoreply/forms.py:10 +#: extensions/webmail/lib/listing.py:31 extensions/webmail/lib/tables.py:30 msgid "From" msgstr "De" -#: extensions/amavis/sql_listing.py:42 extensions/sievefilters/forms.py:77 -#: extensions/webmail/forms.py:11 extensions/webmail/lib.py:40 -#: extensions/webmail/lib.py:423 templates/common/email_searchbar.html:6 +#: extensions/amavis/sql_listing.py:40 extensions/sievefilters/forms.py:77 +#: extensions/webmail/forms.py:86 extensions/webmail/lib/imapemail.py:288 +#: extensions/webmail/lib/listing.py:27 extensions/webmail/lib/tables.py:26 +#: templates/common/email_searchbar.html:6 msgid "Subject" msgstr "Sujet" @@ -1653,40 +1668,40 @@ msgstr "Sujet" msgid "Empty quarantine" msgstr "Quarantaine vide" -#: extensions/amavis/views.py:186 +#: extensions/amavis/views.py:149 msgid "Message deleted" msgstr "Message supprimé" -#: extensions/amavis/views.py:207 +#: extensions/amavis/views.py:168 #, python-format msgid "%(count)d message deleted successfully" msgid_plural "%(count)d messages deleted successfully" msgstr[0] "%(count)d message supprimé correctement" msgstr[1] "%(count)d messages supprimés correctement" -#: extensions/amavis/views.py:229 +#: extensions/amavis/views.py:191 msgid "Request sent" msgstr "Requête envoyée" -#: extensions/amavis/views.py:235 +#: extensions/amavis/views.py:197 msgid "Message released" msgstr "Message relâché" -#: extensions/amavis/views.py:268 +#: extensions/amavis/views.py:225 #, python-format msgid "%(count)d request sent" msgid_plural "%(count)d requests sent" msgstr[0] "%(count)d requête envoyée" msgstr[1] "%(count)d requêtes envoyées" -#: extensions/amavis/views.py:288 +#: extensions/amavis/views.py:246 #, python-format msgid "%(count)d message released successfully" msgid_plural "%(count)d messages released successfully" msgstr[0] "%(count)d message relâché correctement" msgstr[1] "%(count)d messages relâchés correctement" -#: extensions/amavis/management/commands/amnotify.py:57 +#: extensions/amavis/management/commands/amnotify.py:61 msgid "[modoboa] Pending release requests" msgstr "[modoboa] requêtes de libération en attente" @@ -1924,7 +1939,7 @@ msgstr "Utilisation des ressources" msgid "Auto-reply (vacation) functionality using Postfix" msgstr "Fonction de réponse automatique (vacances) utilisant Postfix" -#: extensions/postfix_autoreply/__init__.py:47 +#: extensions/postfix_autoreply/__init__.py:49 msgid "Automatic replies" msgstr "Réponses automatiques" @@ -1979,24 +1994,24 @@ msgstr "" "automatiquement.La macro '%(name)s' sera remplacée par le nom complet de " "l'utilisateur." -#: extensions/postfix_autoreply/forms.py:13 +#: extensions/postfix_autoreply/forms.py:12 msgid "Activate your auto reply from this date" msgstr "Activer votre réponse automatique à partir de cette date" -#: extensions/postfix_autoreply/forms.py:19 +#: extensions/postfix_autoreply/forms.py:18 msgid "Until" msgstr "Jusqu'à" -#: extensions/postfix_autoreply/forms.py:21 +#: extensions/postfix_autoreply/forms.py:20 msgid "Activate your auto reply until this date" msgstr "Activer votre réponse automatique jusqu'à cette date" -#: extensions/postfix_autoreply/forms.py:49 #: extensions/postfix_autoreply/forms.py:55 +#: extensions/postfix_autoreply/forms.py:62 msgid "This date is over" msgstr "Cette date est dépassée" -#: extensions/postfix_autoreply/forms.py:59 +#: extensions/postfix_autoreply/forms.py:67 msgid "Must be greater than start date" msgstr "Doit être supérieure à la date de démarrage" @@ -2148,19 +2163,19 @@ msgstr "Le domaine relais vers lequel cet alias pointe" msgid "Relay domain %s does not exist" msgstr "Domaine relais '%s' inexistant" -#: extensions/postfix_relay_domains/views.py:26 +#: extensions/postfix_relay_domains/views.py:28 msgid "Relay domain created" msgstr "Domaine relais créé" -#: extensions/postfix_relay_domains/views.py:31 +#: extensions/postfix_relay_domains/views.py:33 msgid "New relay domain" msgstr "Nouveau domaine relais" -#: extensions/postfix_relay_domains/views.py:54 +#: extensions/postfix_relay_domains/views.py:57 msgid "Relay domain modified" msgstr "Domaine relais modifié" -#: extensions/postfix_relay_domains/views.py:77 +#: extensions/postfix_relay_domains/views.py:80 msgid "Relay domain deleted" msgstr "Domaine relais supprimé" @@ -2254,7 +2269,7 @@ msgstr "Expéditeur" msgid "Recipient" msgstr "Destinataire" -#: extensions/sievefilters/forms.py:80 extensions/webmail/forms.py:8 +#: extensions/sievefilters/forms.py:80 extensions/webmail/forms.py:83 msgid "Cc" msgstr "Cc" @@ -2278,6 +2293,10 @@ msgstr "Déplacer le message vers" msgid "Redirect message to" msgstr "Rediriger le message vers" +#: extensions/sievefilters/forms.py:104 +msgid "Wrong filter name" +msgstr "Nom de filtre invalide" + #: extensions/sievefilters/lib.py:40 msgid "Connection to MANAGESIEVE server failed, check your configuration" msgstr "" @@ -2287,53 +2306,53 @@ msgstr "" msgid "Not enough space on server" msgstr "Pas assez d'espace sur le serveur" -#: extensions/sievefilters/views.py:78 +#: extensions/sievefilters/views.py:80 msgid "Failed to retrieve filters set" msgstr "Impossible de récuperer le jeu de filtres" -#: extensions/sievefilters/views.py:138 +#: extensions/sievefilters/views.py:141 #: extensions/sievefilters/templatetags/sfilters_tags.py:33 msgid "New filter" msgstr "Nouveau filtre" -#: extensions/sievefilters/views.py:146 +#: extensions/sievefilters/views.py:149 msgid "Filter created" msgstr "Filtre créé" -#: extensions/sievefilters/views.py:160 +#: extensions/sievefilters/views.py:163 #: extensions/sievefilters/templatetags/sfilters_tags.py:78 msgid "Edit filter" msgstr "Editer le filtre" -#: extensions/sievefilters/views.py:169 +#: extensions/sievefilters/views.py:172 msgid "Filter modified" msgstr "Filtre modifié" -#: extensions/sievefilters/views.py:192 +#: extensions/sievefilters/views.py:195 msgid "Filter removed" msgstr "Filtre supprimé" -#: extensions/sievefilters/views.py:193 +#: extensions/sievefilters/views.py:196 msgid "Failed to remove filter" msgstr "Impossible de supprimer le filtre" -#: extensions/sievefilters/views.py:208 +#: extensions/sievefilters/views.py:211 msgid "Filters set saved" msgstr "Jeu de filtres sauvegardé" -#: extensions/sievefilters/views.py:224 +#: extensions/sievefilters/views.py:227 msgid "Filters set created" msgstr "Jeu de filtres créé" -#: extensions/sievefilters/views.py:228 +#: extensions/sievefilters/views.py:231 msgid "Create a new filters set" msgstr "Créer un nouveau jeu de filtres" -#: extensions/sievefilters/views.py:247 +#: extensions/sievefilters/views.py:250 msgid "Filters set deleted" msgstr "Jeu de filtres supprimé" -#: extensions/sievefilters/views.py:260 +#: extensions/sievefilters/views.py:263 msgid "Filters set activated" msgstr "Jeu de filtres activé" @@ -2422,14 +2441,6 @@ msgstr "Répertoire où stocker les fichiers RRD" msgid "Path to directory where RRD files are stored" msgstr "Emplacement du répertoire de stockage des fichiers RRD" -#: extensions/stats/app_settings.py:26 -msgid "Directory to store PNG files" -msgstr "Répertoire où stocker les fichiers PNG" - -#: extensions/stats/app_settings.py:28 -msgid "Path to directory where PNG files are stored" -msgstr "Emplacement du répertoire de stockage des fichiers PNG" - #: extensions/stats/general_callbacks.py:12 msgid "Statistics" msgstr "Statistiques" @@ -2483,23 +2494,23 @@ msgstr "taille envoyée" msgid "Mail traffic" msgstr "Trafic messagerie" -#: extensions/stats/grapher.py:8 +#: extensions/stats/grapher.py:9 msgid "Day" msgstr "Jour" -#: extensions/stats/grapher.py:9 +#: extensions/stats/grapher.py:10 msgid "Week" msgstr "Semaine" -#: extensions/stats/grapher.py:10 +#: extensions/stats/grapher.py:11 msgid "Month" msgstr "Mois" -#: extensions/stats/grapher.py:11 +#: extensions/stats/grapher.py:12 msgid "Year" msgstr "Année" -#: extensions/stats/grapher.py:60 +#: extensions/stats/grapher.py:61 msgid "Total" msgstr "Total" @@ -2683,7 +2694,7 @@ msgstr "Réponse du serveur" msgid "Unknown action" msgstr "Action inconnue" -#: extensions/webmail/forms.py:9 +#: extensions/webmail/forms.py:84 msgid "Cci" msgstr "Cci" @@ -2691,78 +2702,79 @@ msgstr "Cci" msgid "Webmail" msgstr "Webmail" -#: extensions/webmail/imaputils.py:242 -msgid "Failed to retrieve hierarchy delimiter" -msgstr "Impossible de récuperer le séparateur de hiérarchie" - -#: extensions/webmail/imaputils.py:283 -#, python-format -msgid "Connection to IMAP server failed: %s" -msgstr "La connexion au serveur IMAP a échoué : %s" - -#: extensions/webmail/lib.py:371 -msgid "wrote:" -msgstr "a écrit :" - -#: extensions/webmail/lib.py:437 extensions/webmail/lib.py:441 -msgid "Original message" -msgstr "Message original" - -#: extensions/webmail/views.py:85 +#: extensions/webmail/views.py:87 #, python-format msgid "%(count)d message deleted" msgid_plural "%(count)d messages deleted" msgstr[0] "%(count)d message supprimé" msgstr[1] "%(count)d messages supprimés" -#: extensions/webmail/views.py:116 lib/email_listing.py:138 +#: extensions/webmail/views.py:118 lib/email_listing.py:128 msgid "Empty mailbox" msgstr "Boite aux lettre vide" -#: extensions/webmail/views.py:142 +#: extensions/webmail/views.py:144 msgid "Mailbox created" msgstr "Boite aux lettres créée" -#: extensions/webmail/views.py:148 -#: extensions/webmail/templatetags/webmail_tags.py:175 +#: extensions/webmail/views.py:150 +#: extensions/webmail/templatetags/webmail_tags.py:177 msgid "Create a new mailbox" msgstr "Créer une nouvelle boite aux lettres" -#: extensions/webmail/views.py:167 extensions/webmail/views.py:202 +#: extensions/webmail/views.py:169 extensions/webmail/views.py:204 msgid "Edit mailbox" msgstr "Editer la boite aux lettres" -#: extensions/webmail/views.py:183 +#: extensions/webmail/views.py:185 msgid "Mailbox updated" msgstr "Boite aux lettres mise à jour" -#: extensions/webmail/views.py:255 +#: extensions/webmail/views.py:257 msgid "Failed to save attachment: " msgstr "Impossible d'enregistrer la pièce jointe : " -#: extensions/webmail/views.py:258 +#: extensions/webmail/views.py:260 #, python-format msgid "Attachment is too big (limit: %s)" msgstr "Pièce jointe trop grosse (limite : %s)" -#: extensions/webmail/views.py:264 +#: extensions/webmail/views.py:266 #: extensions/webmail/templates/webmail/compose.html:15 #: extensions/webmail/templates/webmail/headers.html:4 msgid "Attachments" msgstr "Pièces jointes" -#: extensions/webmail/views.py:281 +#: extensions/webmail/views.py:283 msgid "Bad query" msgstr "Mauvaise requête" -#: extensions/webmail/views.py:293 +#: extensions/webmail/views.py:295 msgid "Failed to remove attachment: " msgstr "Impossible de supprimer la pièce jointe :" -#: extensions/webmail/views.py:298 +#: extensions/webmail/views.py:300 msgid "Unknown attachment" msgstr "Pièce jointe inconnue" +#: extensions/webmail/lib/imapemail.py:235 +msgid "wrote:" +msgstr "a écrit :" + +#: extensions/webmail/lib/imapemail.py:302 +#: extensions/webmail/lib/imapemail.py:305 +msgid "Original message" +msgstr "Message original" + +#: extensions/webmail/lib/imaputils.py:242 +msgid "Failed to retrieve hierarchy delimiter" +msgstr "Impossible de récuperer le séparateur de hiérarchie" + +#: extensions/webmail/lib/imaputils.py:283 +#, python-format +msgid "Connection to IMAP server failed: %s" +msgstr "La connexion au serveur IMAP a échoué : %s" + #: extensions/webmail/templates/webmail/attachments.html:6 msgid "Attach" msgstr "Joindre" @@ -2790,7 +2802,7 @@ msgstr[1] "%(counter)s fichiers" msgid "Parent mailbox" msgstr "Boite aux lettres parente" -#: extensions/webmail/templates/webmail/index.html:40 +#: extensions/webmail/templates/webmail/index.html:42 msgid "Mailbox quota" msgstr "Quota de la boite aux lettres" @@ -2850,11 +2862,11 @@ msgstr "Compresser ce dossier" msgid "Empty folder" msgstr "Vider ce dossier" -#: extensions/webmail/templatetags/webmail_tags.py:183 +#: extensions/webmail/templatetags/webmail_tags.py:185 msgid "Edit the selected mailbox" msgstr "Editer la boite aux lettres sélectionnée" -#: extensions/webmail/templatetags/webmail_tags.py:188 +#: extensions/webmail/templatetags/webmail_tags.py:190 msgid "Remove the selected mailbox" msgstr "Supprimer la boite aux lettres sélectionnée" @@ -2901,11 +2913,6 @@ msgstr "Super administrateur" msgid "Domain administrator" msgstr "Administrateur de domaine" -#: lib/permissions.py:73 -#, python-format -msgid "Failed to grant access (%s)" -msgstr "Impossible de donner l'accès : %s" - #: lib/tables.py:251 msgid "No entries to display" msgstr "Aucune entrée à afficher" diff --git a/modoboa/locale/fr/LC_MESSAGES/djangojs.po b/modoboa/locale/fr/LC_MESSAGES/djangojs.po index d5b7d7709..ee11efc9e 100644 --- a/modoboa/locale/fr/LC_MESSAGES/djangojs.po +++ b/modoboa/locale/fr/LC_MESSAGES/djangojs.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: modoboa-1.0.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-12-15 10:16+0100\n" +"POT-Creation-Date: 2014-08-24 12:33+0200\n" "PO-Revision-Date: 2011-01-07 10:00+0100\n" "Last-Translator: Antoine Nguyen \n" "Language-Team: FR \n" @@ -108,18 +108,18 @@ msgstr "Supprimer la boite sélectionnée?" msgid "Mailbox removed" msgstr "Boite aux lettres supprimées" -#: extensions/webmail/static/webmail/js/webmail.js:746 +#: extensions/webmail/static/webmail/js/webmail.js:752 msgid "Message sent" msgstr "Message envoyé" -#: extensions/webmail/static/webmail/js/webmail.js:997 +#: extensions/webmail/static/webmail/js/webmail.js:1003 #, c-format msgid "%s file" msgid_plural "%s files" msgstr[0] "%s fichier" msgstr[1] "%s fichiers" -#: extensions/webmail/static/webmail/js/webmail.js:1031 +#: extensions/webmail/static/webmail/js/webmail.js:1037 #, c-format msgid "Moving %s message" msgid_plural "Moving %s messages" diff --git a/modoboa/locale/it/LC_MESSAGES/django.po b/modoboa/locale/it/LC_MESSAGES/django.po index 214b2548f..40c7c8474 100644 --- a/modoboa/locale/it/LC_MESSAGES/django.po +++ b/modoboa/locale/it/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-12-22 23:15+0100\n" +"POT-Creation-Date: 2014-08-24 12:29+0200\n" "PO-Revision-Date: 2013-12-23 00:56+0100\n" "Last-Translator: Alberto Berti \n" "Language-Team: ITALIANO \n" @@ -18,8 +18,8 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: core/__init__.py:52 core/__init__.py:53 -#: extensions/admin/forms/account.py:326 extensions/admin/forms/domain.py:251 -#: extensions/admin/views/domain.py:95 extensions/admin/views/identity.py:127 +#: extensions/admin/forms/account.py:326 extensions/admin/forms/domain.py:256 +#: extensions/admin/views/domain.py:97 extensions/admin/views/identity.py:129 #: extensions/postfix_autoreply/app_settings.py:11 #: extensions/postfix_relay_domains/forms.py:138 #: extensions/sievefilters/app_settings.py:50 @@ -27,120 +27,122 @@ msgstr "" msgid "General" msgstr "Generale" -#: core/app_settings.py:36 +#: core/app_settings.py:39 msgid "Authentication" msgstr "Autenticazione" -#: core/app_settings.py:39 +#: core/app_settings.py:42 msgid "Authentication type" msgstr "Tipo di autenticazione" -#: core/app_settings.py:40 +#: core/app_settings.py:43 msgid "Local" msgstr "Locale" -#: core/app_settings.py:43 +#: core/app_settings.py:46 msgid "The backend used for authentication" msgstr "Il backend utilizzato per l'autenticazione" -#: core/app_settings.py:48 +#: core/app_settings.py:51 msgid "Default password scheme" msgstr "Schema password predefinito" -#: core/app_settings.py:51 +#: core/app_settings.py:54 msgid "md5crypt (weak)" msgstr "md5crypt (debole)" -#: core/app_settings.py:52 +#: core/app_settings.py:55 msgid "sha256 (weak)" msgstr "sha256 (debole)" -#: core/app_settings.py:53 +#: core/app_settings.py:56 msgid "md5 (weak)" msgstr "md5 (debole)" -#: core/app_settings.py:54 +#: core/app_settings.py:57 msgid "crypt (weak)" msgstr "crypt (debole)" -#: core/app_settings.py:55 +#: core/app_settings.py:58 msgid "plain (weak)" msgstr "plain (debole)" -#: core/app_settings.py:57 +#: core/app_settings.py:60 msgid "Scheme used to crypt mailbox passwords" msgstr "" "Schema utilizzato per la criptazione delle password delle caselle di posta" -#: core/app_settings.py:61 +#: core/app_settings.py:64 msgid "Rounds" msgstr "Cicli" -#: core/app_settings.py:64 +#: core/app_settings.py:67 msgid "" "Number of rounds to use (only used by sha256crypt and sha512crypt). Must be " "between 1000 and 999999999, inclusive." -msgstr "Numero di cicli da utilizzare (valido per sha256crypt e sha512crypt). Dev'essere tra 1000 e 999999999, inclusivo." +msgstr "" +"Numero di cicli da utilizzare (valido per sha256crypt e sha512crypt). " +"Dev'essere tra 1000 e 999999999, inclusivo." -#: core/app_settings.py:70 +#: core/app_settings.py:73 msgid "Secret key" msgstr "Chiave segreta" -#: core/app_settings.py:72 +#: core/app_settings.py:75 msgid "Key used to encrypt/decrypt passwords" msgstr "Chiave utilizzata per criptare/decriptare le password" -#: core/app_settings.py:76 +#: core/app_settings.py:79 msgid "LDAP settings" msgstr "Impostazioni LDAP" -#: core/app_settings.py:79 extensions/sievefilters/app_settings.py:22 +#: core/app_settings.py:82 extensions/sievefilters/app_settings.py:22 #: extensions/webmail/app_settings.py:22 extensions/webmail/app_settings.py:42 msgid "Server address" msgstr "Indirizzo del server" -#: core/app_settings.py:81 +#: core/app_settings.py:85 msgid "The IP address of the DNS name of the LDAP server" msgstr "L'indirizzo IP associato al DNS name del server LDAP" -#: core/app_settings.py:85 extensions/sievefilters/app_settings.py:28 +#: core/app_settings.py:89 extensions/sievefilters/app_settings.py:28 #: extensions/webmail/app_settings.py:34 extensions/webmail/app_settings.py:58 msgid "Server port" msgstr "Porta del server" -#: core/app_settings.py:87 +#: core/app_settings.py:91 msgid "The TCP port number used by the LDAP server" msgstr "Il numero della porta TCP utilizzata dal server LDAP" -#: core/app_settings.py:91 extensions/webmail/app_settings.py:28 +#: core/app_settings.py:95 extensions/webmail/app_settings.py:28 msgid "Use a secured connection" msgstr "Usa una connessione sicura" -#: core/app_settings.py:93 +#: core/app_settings.py:98 msgid "Use an SSL/TLS connection to access the LDAP server" msgstr "Utilizza una connessione SSL/TLS per accedere al server LDAP" -#: core/app_settings.py:97 +#: core/app_settings.py:102 msgid "Authentication method" msgstr "Metodo di autenticazione" -#: core/app_settings.py:98 +#: core/app_settings.py:103 msgid "Search and bind" msgstr "Cerca e collega" -#: core/app_settings.py:99 +#: core/app_settings.py:104 msgid "Direct bind" msgstr "Collegamento diretto" -#: core/app_settings.py:101 +#: core/app_settings.py:106 msgid "Choose the authentication method to use" msgstr "Scegli il metodo di autenticazione da usare" -#: core/app_settings.py:106 +#: core/app_settings.py:111 msgid "Bind DN" msgstr "collega DN" -#: core/app_settings.py:108 +#: core/app_settings.py:114 msgid "" "The distinguished name to use when binding to the LDAP server. Leave empty " "for an anonymous bind" @@ -148,29 +150,31 @@ msgstr "" "Nome particolare da usare quando ci si collega al server LDAP. Lasciare " "vuoto per un collegamento anonimo" -#: core/app_settings.py:113 +#: core/app_settings.py:121 msgid "Bind password" msgstr "Password del collegamento" -#: core/app_settings.py:115 +#: core/app_settings.py:124 msgid "The password to use when binding to the LDAP server (with 'Bind DN')" msgstr "" "La password da utilizzare quando ci si collega al server LDAP (con 'Collega " "DN')" -#: core/app_settings.py:121 +#: core/app_settings.py:132 msgid "Users search base" msgstr "Base ricerca per gli utenti" -#: core/app_settings.py:123 +#: core/app_settings.py:135 msgid "The distinguished name of the search base used to find users" -msgstr "L'identificativo (dn:) della base di ricerca utilizzata per cercare gli utenti" +msgstr "" +"L'identificativo (dn:) della base di ricerca utilizzata per cercare gli " +"utenti" -#: core/app_settings.py:128 +#: core/app_settings.py:141 msgid "Search filter" msgstr "Filtro ricerca" -#: core/app_settings.py:130 +#: core/app_settings.py:144 msgid "" "An optional filter string (e.g. '(objectClass=person)'). In order to be " "valid, it must be enclosed in parentheses." @@ -178,11 +182,11 @@ msgstr "" "Stringa di filtraggio opzionale (p.es '(objectClass=person)'). Per essere " "valida deve essere racchiusa tra parentesi." -#: core/app_settings.py:135 +#: core/app_settings.py:151 msgid "User DN template" msgstr "Modello DN dell'utente" -#: core/app_settings.py:137 +#: core/app_settings.py:154 #, python-format msgid "" "The template used to construct a user's DN. It should contain one " @@ -191,98 +195,113 @@ msgstr "" "Il modello utilizzato per comporre un DN dell'utente. Deve contenere un " "segnaposto (p.es. %(user)s)" -#: core/app_settings.py:142 +#: core/app_settings.py:161 msgid "Password attribute" msgstr "Attributo della password" -#: core/app_settings.py:144 +#: core/app_settings.py:163 msgid "The attribute used to store user passwords" msgstr "L'attributo utilizzato per memorizzare le password dell'utente" -#: core/app_settings.py:148 +#: core/app_settings.py:167 msgid "Active Directory" msgstr "Active Directory" -#: core/app_settings.py:150 +#: core/app_settings.py:170 msgid "Tell if the LDAP server is an Active Directory one" msgstr "Segnala se il server LDAP è una Active Directory" -#: core/app_settings.py:154 +#: core/app_settings.py:174 msgid "Administrator groups" msgstr "Gruppi degli amministratori" -#: core/app_settings.py:157 +#: core/app_settings.py:177 msgid "" "Members of those LDAP Posix groups will be created as domain administrators. " "Use ';' characters to separate groups." -msgstr "Gli appartenenti a questi gruppi LDAP Posix avranno i privilegi di amministratori di dominio. Utilizza il carattere ';' per separare valori multipli." +msgstr "" +"Gli appartenenti a questi gruppi LDAP Posix avranno i privilegi di " +"amministratori di dominio. Utilizza il carattere ';' per separare valori " +"multipli." -#: core/app_settings.py:164 +#: core/app_settings.py:184 msgid "Groups search base" msgstr "Base ricerca per i gruppi" -#: core/app_settings.py:167 +#: core/app_settings.py:187 msgid "The distinguished name of the search base used to find groups" -msgstr "L'identificatore (dn:) della base di ricerca utilizzato per trovare i gruppi" +msgstr "" +"L'identificatore (dn:) della base di ricerca utilizzato per trovare i gruppi" -#: core/app_settings.py:172 +#: core/app_settings.py:193 +#, fuzzy +msgid "Domain/mailbox creation" +msgstr "Dominio creato" + +#: core/app_settings.py:196 +msgid "" +"Automatically create a domain and a mailbox when a new user is created just " +"after the first successful authentication." +msgstr "" + +#: core/app_settings.py:201 #: extensions/admin/templates/admin/editdomainform.html:7 msgid "Miscellaneous" msgstr "Miscellanea" -#: core/app_settings.py:175 +#: core/app_settings.py:204 msgid "Maximum log record age" msgstr "Età massima dei log" -#: core/app_settings.py:177 +#: core/app_settings.py:206 msgid "The maximum age in days of a log record" msgstr "La persistenza massima in giorni dei log" -#: core/app_settings.py:181 +#: core/app_settings.py:210 msgid "Items per page" msgstr "Elementi per pagina" -#: core/app_settings.py:183 +#: core/app_settings.py:212 msgid "Number of displayed items per page" msgstr "Numero degli elementi visualizzati in ciascuna pagina" -#: core/app_settings.py:187 +#: core/app_settings.py:216 msgid "Default top redirection" msgstr "Reindirizzamento principale predefinito" -#: core/app_settings.py:190 +#: core/app_settings.py:220 msgid "The default redirection used when no application is specified" msgstr "" "Redirezione predefinita utilizzata quando non è specificata alcuna " "applicazione" -#: core/app_settings.py:218 +#: core/app_settings.py:249 msgid "Key must be either 16, 24, or 32 bytes long" msgstr "La chiave può essere lunga solo 16, 24 o 32 bytes" -#: core/app_settings.py:227 extensions/postfix_autoreply/app_settings.py:53 +#: core/app_settings.py:258 extensions/postfix_autoreply/app_settings.py:53 msgid "Invalid syntax" msgstr "Sintassi errata" -#: core/app_settings.py:233 +#: core/app_settings.py:264 msgid "Invalid rounds number" msgstr "Numero di cicli non valido" -#: core/app_settings.py:256 +#: core/app_settings.py:287 msgid "This field is required" msgstr "Questo campo è obbligatorio" -#: core/app_settings.py:317 extensions/amavis/app_settings.py:87 +#: core/app_settings.py:349 extensions/amavis/app_settings.py:87 #: extensions/amavis/templates/amavis/main_action_bar.html:29 #: extensions/webmail/app_settings.py:73 msgid "Display" msgstr "Mostra" -#: core/app_settings.py:321 +#: core/app_settings.py:353 msgid "Prefered language" msgstr "Lingua preferita" -#: core/app_settings.py:327 +#: core/app_settings.py:359 msgid "Prefered language to display pages" msgstr "Lingua preferita per mostrare le pagine" @@ -335,7 +354,7 @@ msgstr "Aggiornamento della password fallito: il modulo LDAP non è installato" msgid "account" msgstr "account" -#: core/models.py:321 extensions/admin/models/domain.py:135 +#: core/models.py:321 extensions/admin/models/domain.py:144 #: extensions/admin/models/domain_alias.py:39 #: extensions/postfix_relay_domains/models.py:134 #: extensions/postfix_relay_domains/models.py:190 @@ -346,17 +365,17 @@ msgstr "Riga non valida" msgid "You can't import an account with a role greater than yours" msgstr "Non puoi importare un account con un ruolo superiore al tuo" -#: core/models.py:331 +#: core/models.py:337 #, python-format msgid "The simple user '%s' must have a valid email address" msgstr "L'utente '%s' deve avere un indirizzo email valido" -#: core/models.py:335 +#: core/models.py:341 #, python-format msgid "username and email fields must not differ for '%s'" msgstr "I campi nome utente e email di '%s' devono avere lo stesso valore" -#: core/models.py:404 extensions/admin/models/alias.py:33 +#: core/models.py:410 extensions/admin/models/alias.py:35 #: extensions/admin/models/domain.py:32 #: extensions/admin/models/domain_alias.py:17 #: extensions/postfix_autoreply/models.py:28 @@ -365,29 +384,29 @@ msgstr "I campi nome utente e email di '%s' devono avere lo stesso valore" msgid "enabled" msgstr "Attivato" -#: core/models.py:405 +#: core/models.py:411 msgid "Check to enable this extension" msgstr "Seleziona per abilitare questa estensione" -#: core/models.py:475 +#: core/models.py:491 msgid "added" msgstr "aggiunto" -#: core/models.py:478 +#: core/models.py:494 msgid "modified" msgstr "modificato" -#: core/models.py:480 core/models.py:504 +#: core/models.py:496 core/models.py:521 #, python-format msgid "%(object)s '%(name)s' %(action)s by user %(user)s" msgstr "%(object)s '%(name)s' %(action)s dell'utente %(user)s" -#: core/models.py:506 +#: core/models.py:523 msgid "deleted" msgstr "cancellato" #: core/tables.py:8 core/templates/core/information.html:8 -#: extensions/admin/tables.py:9 extensions/admin/forms/domain.py:182 +#: extensions/admin/tables.py:9 extensions/admin/forms/domain.py:187 #: extensions/admin/templates/admin/domains_table.html:5 #: extensions/admin/templates/admin/editdomainform.html:13 #: extensions/admin/templates/admin/identities_table.html:5 @@ -449,8 +468,9 @@ msgstr "Log" msgid "Previously on Modoboa..." msgstr "Precedentemente su Modoboa ..." -#: core/templates/core/logs.html:6 extensions/amavis/sql_listing.py:46 -#: extensions/webmail/lib.py:48 extensions/webmail/lib.py:425 +#: core/templates/core/logs.html:6 extensions/amavis/sql_listing.py:44 +#: extensions/webmail/lib/imapemail.py:290 +#: extensions/webmail/lib/listing.py:35 extensions/webmail/lib/tables.py:34 msgid "Date" msgstr "Data" @@ -501,12 +521,12 @@ msgstr "Aggiorna le informazioni personali" #: core/templates/core/user_profile.html:8 #: extensions/admin/templates/admin/forward.html:8 -#: extensions/admin/views/alias.py:107 extensions/admin/views/domain.py:165 -#: extensions/admin/views/identity.py:197 +#: extensions/admin/views/alias.py:112 extensions/admin/views/domain.py:168 +#: extensions/admin/views/identity.py:200 #: extensions/postfix_autoreply/templates/postfix_autoreply/autoreply.html:9 -#: extensions/postfix_relay_domains/views.py:63 -#: extensions/sievefilters/views.py:166 extensions/webmail/views.py:170 -#: extensions/webmail/views.py:205 +#: extensions/postfix_relay_domains/views.py:66 +#: extensions/sievefilters/views.py:166 extensions/webmail/views.py:172 +#: extensions/webmail/views.py:207 msgid "Update" msgstr "Aggiorna" @@ -535,7 +555,7 @@ msgstr "L'utente '%s? è correttamente registrato" msgid "Your username and password didn't match. Please try again." msgstr "Il tuo username e/o la tua password non corrispondono. Riprova." -#: core/views/auth.py:66 +#: core/views/auth.py:69 #, python-format msgid "User '%s' logged out" msgstr "L'utente '%s' è scollegato" @@ -630,7 +650,17 @@ msgstr "Inoltra" msgid "Account import failed (%s): domain does not exist" msgstr "Importazione dell'account fallito (%s): il dominio non esiste" -#: extensions/admin/app_settings.py:11 +#: extensions/admin/__init__.py:172 extensions/admin/forms/account.py:196 +#, python-format +msgid "Mailbox %s already exists" +msgstr "La casella di posta %s esiste già" + +#: extensions/admin/__init__.py:180 +#, fuzzy, python-format +msgid "Account import failed (%s): wrong quota value" +msgstr "Importazione dell'account fallito (%s): il dominio non esiste" + +#: extensions/admin/app_settings.py:13 #: extensions/admin/templates/admin/editdomainform.html:25 #: extensions/limits/app_settings.py:31 extensions/limits/models.py:23 #: extensions/webmail/app_settings.py:107 @@ -638,11 +668,11 @@ msgstr "Importazione dell'account fallito (%s): il dominio non esiste" msgid "Mailboxes" msgstr "Caselle di posta" -#: extensions/admin/app_settings.py:14 +#: extensions/admin/app_settings.py:16 msgid "Handle mailboxes on filesystem" msgstr "Gestione delle caselle di posta nel filsystem" -#: extensions/admin/app_settings.py:16 +#: extensions/admin/app_settings.py:18 msgid "" "Rename or remove mailboxes on the filesystem when they get renamed or " "removed within Modoboa" @@ -650,34 +680,36 @@ msgstr "" "Rinomina o rimuovi le caselle di posta nel filsystem quando sono rinominate " "o rimosse in Modoboa" -#: extensions/admin/app_settings.py:20 +#: extensions/admin/app_settings.py:22 msgid "Mailboxes owner" msgstr "Proprietario delle caselle postali" -#: extensions/admin/app_settings.py:22 +#: extensions/admin/app_settings.py:24 msgid "The UNIX account who owns mailboxes on the filesystem" msgstr "L'account UNIX a cui appartengono le caselle postali nel filsystem" -#: extensions/admin/app_settings.py:26 +#: extensions/admin/app_settings.py:28 msgid "Default domain quota" msgstr "Quota predefinita per il domini" -#: extensions/admin/app_settings.py:29 +#: extensions/admin/app_settings.py:31 msgid "" "Default quota (in MB) applied to freshly created domains with no value " "specified. A value of 0 means no quota." -msgstr "Quota predefinita (in MB) applicata ai nuovi domini che non la specificano. Un valore 0 implica nessuna quota." +msgstr "" +"Quota predefinita (in MB) applicata ai nuovi domini che non la specificano. " +"Un valore 0 implica nessuna quota." -#: extensions/admin/app_settings.py:36 +#: extensions/admin/app_settings.py:38 msgid "Automatic account removal" msgstr "Rimozione automatica dell'account" -#: extensions/admin/app_settings.py:38 +#: extensions/admin/app_settings.py:40 msgid "When a mailbox is removed, also remove the associated account" msgstr "" "Quando una casella postale viene rimossa rimuovi anche l'account associato" -#: extensions/admin/app_settings.py:69 extensions/admin/forms/account.py:178 +#: extensions/admin/app_settings.py:81 extensions/admin/forms/account.py:178 #: extensions/admin/forms/domain.py:56 msgid "Must be a positive integer" msgstr "Dev'essere un intero positivo" @@ -690,7 +722,9 @@ msgstr "É necessaria una casella" msgid "" "The user's name. Must be a valid e-mail address for simple users or " "administrators with a mailbox." -msgstr "Il nome dell'utente. Dev'essere un indirizzo e-mail per gli utenti semplici o gli amministratori che posseggono una casella" +msgstr "" +"Il nome dell'utente. Dev'essere un indirizzo e-mail per gli utenti semplici " +"o gli amministratori che posseggono una casella" #: extensions/admin/forms/account.py:26 msgid "Role" @@ -760,11 +794,6 @@ msgstr "" msgid "Domain does not exist" msgstr "Il dominio non esiste" -#: extensions/admin/forms/account.py:196 -#, python-format -msgid "Mailbox %s already exists" -msgstr "La casella di posta %s esiste già" - #: extensions/admin/forms/account.py:284 msgid "Domain(s)" msgstr "Dominio(i)" @@ -774,7 +803,7 @@ msgid "Domain(s) that user administrates" msgstr "Dominio(i) amministrato(i) dall'utente" #: extensions/admin/forms/account.py:328 -#: extensions/admin/views/identity.py:130 +#: extensions/admin/views/identity.py:132 msgid "Mail" msgstr "Posta" @@ -812,7 +841,7 @@ msgstr "Non hai accesso a questo dominio" msgid "Invalid mailbox" msgstr "Casella di posta non valida" -#: extensions/admin/forms/alias.py:108 extensions/admin/models/alias.py:182 +#: extensions/admin/forms/alias.py:108 extensions/admin/models/alias.py:194 #, python-format msgid "Local recipient %s not found" msgstr "Il destinatario locale %s non è stato trovato" @@ -830,7 +859,9 @@ msgstr "Non è stato definito un destinatario" msgid "" "Default quota in MB applied to mailboxes. Leave empty to use the default " "value." -msgstr "Quota in MB predefinita applicata alle caselle di posta. Lascialo vuoto se vuoi applicare il valore predefinito." +msgstr "" +"Quota in MB predefinita applicata alle caselle di posta. Lascialo vuoto se " +"vuoi applicare il valore predefinito." #: extensions/admin/forms/domain.py:29 msgid "" @@ -859,15 +890,15 @@ msgstr "Un %s con questo nome esiste già" msgid "domain" msgstr "dominio" -#: extensions/admin/forms/domain.py:176 +#: extensions/admin/forms/domain.py:181 msgid "Create a domain administrator" msgstr "Crea un amministratore di dominio" -#: extensions/admin/forms/domain.py:178 +#: extensions/admin/forms/domain.py:183 msgid "Automatically create an administrator for this domain" msgstr "Crea automaticamente un amministratore per questo dominio" -#: extensions/admin/forms/domain.py:185 +#: extensions/admin/forms/domain.py:190 msgid "" "The administrator's name. Don't include the domain's name here, it will be " "automatically appended." @@ -875,19 +906,19 @@ msgstr "" "Il nome dell'amministratore. Non includere il nome del dominio, verrà " "aggiunto automaticamente." -#: extensions/admin/forms/domain.py:193 +#: extensions/admin/forms/domain.py:198 msgid "Create aliases" msgstr "Crea alias" -#: extensions/admin/forms/domain.py:195 +#: extensions/admin/forms/domain.py:200 msgid "Automatically create standard aliases for this domain" msgstr "Crea automaticamente gli alias standard per questo dominio" -#: extensions/admin/forms/domain.py:211 +#: extensions/admin/forms/domain.py:216 msgid "Invalid format" msgstr "Formato non valido" -#: extensions/admin/forms/domain.py:225 +#: extensions/admin/forms/domain.py:230 #, python-format msgid "User '%s' already exists" msgstr "L'utente '%s' esiste già" @@ -925,7 +956,7 @@ msgstr "" "Non puoi definire l'inoltro con destinazione una cartella locale. Chiedi " "piuttosto all'amministratore di creare un alias." -#: extensions/admin/forms/import_.py:6 extensions/webmail/forms.py:26 +#: extensions/admin/forms/import_.py:6 extensions/webmail/forms.py:198 msgid "Select a file" msgstr "Seleziona un file" @@ -946,11 +977,11 @@ 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" -#: extensions/admin/models/alias.py:16 extensions/admin/models/mailbox.py:51 +#: extensions/admin/models/alias.py:18 extensions/admin/models/mailbox.py:62 msgid "address" msgstr "indirizzo" -#: extensions/admin/models/alias.py:18 +#: extensions/admin/models/alias.py:20 msgid "" "The alias address (without the domain part). For a 'catch-all' address, just " "enter an * character." @@ -958,42 +989,42 @@ msgstr "" "L'indirizzo alternativo (senza la parte del dominio). Per un indirizzo " "'prenditutto' inserisci un carattere '*'." -#: extensions/admin/models/alias.py:24 +#: extensions/admin/models/alias.py:26 msgid "mailboxes" msgstr "caselle di posta" -#: extensions/admin/models/alias.py:25 +#: extensions/admin/models/alias.py:27 msgid "The mailboxes this alias points to" msgstr "Le caselle di posta a cui punta questo alias" -#: extensions/admin/models/alias.py:29 +#: extensions/admin/models/alias.py:31 msgid "The aliases this alias points to" msgstr "Gli alias a cui questo alias puntano" -#: extensions/admin/models/alias.py:34 +#: extensions/admin/models/alias.py:36 #: extensions/admin/models/domain_alias.py:18 #: extensions/postfix_relay_domains/models.py:168 msgid "Check to activate this alias" msgstr "Seleziona per attivare questo alias" -#: extensions/admin/models/alias.py:79 +#: extensions/admin/models/alias.py:81 msgid "distribution list" msgstr "elenco di smistamento" -#: extensions/admin/models/alias.py:80 +#: extensions/admin/models/alias.py:82 msgid "forward" msgstr "inoltra" -#: extensions/admin/models/alias.py:81 +#: extensions/admin/models/alias.py:83 msgid "alias" msgstr "alias" -#: extensions/admin/models/alias.py:150 +#: extensions/admin/models/alias.py:152 #, python-format msgid "Invalid line: %s" msgstr "Riga non valida: %s" -#: extensions/admin/models/alias.py:155 +#: extensions/admin/models/alias.py:157 #, python-format msgid "Domain '%s' does not exist" msgstr "Il dominio '%s' non esiste" @@ -1020,7 +1051,7 @@ msgstr "Seleziona per attivare questo dominio" msgid "Domain" msgstr "Dominio" -#: extensions/admin/models/domain.py:140 +#: extensions/admin/models/domain.py:155 #, python-format msgid "Invalid quota value for domain '%s'" msgstr "Valore della quota non valido per il dominio '%s'" @@ -1039,31 +1070,26 @@ msgstr "destinazione" msgid "The domain this alias points to" msgstr "Il dominio a cui punta questo alias" -#: extensions/admin/models/domain_alias.py:46 -#, python-format -msgid "A domain %s already exists" -msgstr "Esiste già un dominio %s" - -#: extensions/admin/models/domain_alias.py:51 +#: extensions/admin/models/domain_alias.py:52 #, python-format msgid "Unknown domain %s" msgstr "Dominio sconosciuto %s" -#: extensions/admin/models/mailbox.py:52 +#: extensions/admin/models/mailbox.py:63 msgid "Mailbox address (without the @domain.tld part)" msgstr "Indirizzo della casella di posta (senza la parte @dominio.org)" -#: extensions/admin/models/mailbox.py:113 +#: extensions/admin/models/mailbox.py:125 #, python-format msgid "Failed to retrieve mailbox location (%s)" msgstr "Impossibile recuperare la posizione della casella di posta (%s)" -#: extensions/admin/models/mailbox.py:173 +#: extensions/admin/models/mailbox.py:194 #, python-format msgid "Quota is greater than the allowed domain's limit (%dM)" msgstr "La quota è maggiore del limite stabilito per il dominio (%dM)" -#: extensions/admin/models/mailbox.py:178 +#: extensions/admin/models/mailbox.py:199 msgid "A quota is required" msgstr "È richiesta una quota" @@ -1182,7 +1208,7 @@ msgstr "Aggiungi dominio" #: extensions/admin/templatetags/admin_tags.py:42 #: extensions/admin/templatetags/admin_tags.py:106 -#: extensions/admin/views/import.py:51 extensions/admin/views/import.py:166 +#: extensions/admin/views/import.py:52 extensions/admin/views/import.py:168 msgid "Import" msgstr "Importa" @@ -1232,84 +1258,84 @@ msgstr "Eliminare %s?" msgid "Remove this permission" msgstr "Rimuovi questo permesso" -#: extensions/admin/views/alias.py:25 +#: extensions/admin/views/alias.py:26 msgid "Alias with this name already exists" msgstr "Un alias con questo nome esiste già" -#: extensions/admin/views/alias.py:49 extensions/admin/views/domain.py:100 -#: extensions/admin/views/domain.py:129 extensions/admin/views/identity.py:131 -#: extensions/admin/views/identity.py:158 -#: extensions/postfix_relay_domains/views.py:32 +#: extensions/admin/views/alias.py:50 extensions/admin/views/domain.py:102 +#: extensions/admin/views/domain.py:131 extensions/admin/views/identity.py:133 +#: extensions/admin/views/identity.py:160 +#: extensions/postfix_relay_domains/views.py:34 #: extensions/sievefilters/views.py:144 extensions/sievefilters/views.py:233 -#: extensions/webmail/views.py:151 +#: extensions/webmail/views.py:153 msgid "Create" msgstr "Crea" -#: extensions/admin/views/alias.py:61 +#: extensions/admin/views/alias.py:63 msgid "New distribution list" msgstr "Nuovo elenco di smistamento" -#: extensions/admin/views/alias.py:62 +#: extensions/admin/views/alias.py:64 msgid "Distribution list created" msgstr "Elenco di smistamento creato" -#: extensions/admin/views/alias.py:71 +#: extensions/admin/views/alias.py:74 msgid "New alias" msgstr "Nuovo alias" -#: extensions/admin/views/alias.py:72 +#: extensions/admin/views/alias.py:75 msgid "Alias created" msgstr "Alias creato" -#: extensions/admin/views/alias.py:81 +#: extensions/admin/views/alias.py:85 msgid "New forward" msgstr "Nuovo inoltro" -#: extensions/admin/views/alias.py:82 +#: extensions/admin/views/alias.py:86 msgid "Forward created" msgstr "Inoltro creato" -#: extensions/admin/views/alias.py:95 +#: extensions/admin/views/alias.py:100 msgid "Distribution list modified" msgstr "Elenco di smistamento modificato" -#: extensions/admin/views/alias.py:97 +#: extensions/admin/views/alias.py:102 msgid "Forward modified" msgstr "Inoltro modificato" -#: extensions/admin/views/alias.py:99 +#: extensions/admin/views/alias.py:104 msgid "Alias modified" msgstr "Alias modificato" -#: extensions/admin/views/domain.py:96 extensions/admin/views/identity.py:128 +#: extensions/admin/views/domain.py:98 extensions/admin/views/identity.py:130 msgid "Next" msgstr "Successivo" -#: extensions/admin/views/domain.py:99 +#: extensions/admin/views/domain.py:101 msgid "Options" msgstr "Opzioni" -#: extensions/admin/views/domain.py:101 extensions/admin/views/identity.py:132 +#: extensions/admin/views/domain.py:103 extensions/admin/views/identity.py:134 msgid "Previous" msgstr "Precedente" -#: extensions/admin/views/domain.py:123 +#: extensions/admin/views/domain.py:125 msgid "Domain created" msgstr "Dominio creato" -#: extensions/admin/views/domain.py:128 +#: extensions/admin/views/domain.py:130 msgid "New domain" msgstr "Nuovo dominio" -#: extensions/admin/views/domain.py:155 +#: extensions/admin/views/domain.py:158 msgid "Domain modified" msgstr "Dominio modificato" -#: extensions/admin/views/domain.py:189 +#: extensions/admin/views/domain.py:192 msgid "You can't delete your own domain" msgstr "Non puoi cancellare il tuo dominio" -#: extensions/admin/views/domain.py:192 +#: extensions/admin/views/domain.py:195 msgid "Domain deleted" msgid_plural "Domains deleted" msgstr[0] "Dominio cancellato" @@ -1323,40 +1349,40 @@ msgstr "Identità di esportazione" msgid "Export domains" msgstr "Esporta domini" -#: extensions/admin/views/identity.py:103 -#: extensions/admin/views/identity.py:224 -#: extensions/admin/views/identity.py:229 extensions/amavis/views.py:179 -#: extensions/amavis/views.py:185 extensions/amavis/views.py:220 -#: extensions/amavis/views.py:224 extensions/amavis/views.py:226 -#: extensions/webmail/views.py:47 extensions/webmail/views.py:65 -#: extensions/webmail/views.py:79 extensions/webmail/views.py:97 -#: extensions/webmail/views.py:114 extensions/webmail/views.py:200 -#: extensions/webmail/views.py:223 extensions/webmail/views.py:396 -#: extensions/webmail/views.py:430 extensions/webmail/views.py:443 -#: extensions/webmail/views.py:472 extensions/webmail/views.py:512 +#: extensions/admin/views/identity.py:104 +#: extensions/admin/views/identity.py:227 +#: extensions/admin/views/identity.py:232 extensions/amavis/views.py:144 +#: extensions/amavis/views.py:148 extensions/amavis/views.py:181 +#: extensions/amavis/views.py:186 extensions/amavis/views.py:188 +#: extensions/webmail/views.py:49 extensions/webmail/views.py:67 +#: extensions/webmail/views.py:81 extensions/webmail/views.py:99 +#: extensions/webmail/views.py:116 extensions/webmail/views.py:202 +#: extensions/webmail/views.py:225 extensions/webmail/views.py:401 +#: extensions/webmail/views.py:451 extensions/webmail/views.py:467 +#: extensions/webmail/views.py:496 extensions/webmail/views.py:536 #: lib/formutils.py:44 lib/formutils.py:49 msgid "Invalid request" msgstr "Richiesta non valida" -#: extensions/admin/views/identity.py:149 +#: extensions/admin/views/identity.py:151 msgid "Account created" msgstr "Account creato" -#: extensions/admin/views/identity.py:155 +#: extensions/admin/views/identity.py:157 msgid "New account" msgstr "Nuovo account" -#: extensions/admin/views/identity.py:190 +#: extensions/admin/views/identity.py:193 msgid "Account updated" msgstr "Account aggiornato" -#: extensions/admin/views/identity.py:214 +#: extensions/admin/views/identity.py:217 msgid "Account deleted" msgid_plural "Accounts deleted" msgstr[0] "Account cancellato" msgstr[1] "Account cancellati" -#: extensions/admin/views/import.py:39 +#: extensions/admin/views/import.py:40 #, python-format msgid "" "Provide a CSV file where lines respect one of the following formats:\n" @@ -1375,25 +1401,26 @@ msgstr "" "
      • aliasdominio; nome; dominio di destinazione; abilitato
      • \n" " %s\n" "
      \n" -"

      Il primo elemento di ogni riga è obbligatorio e deve essere uguale a quello dei valori precedenti.

      \n" +"

      Il primo elemento di ogni riga è obbligatorio e deve essere uguale a " +"quello dei valori precedenti.

      \n" "\n" "

      Come separatore puoi utilizzare un carattere diverso.

      \n" -#: extensions/admin/views/import.py:50 +#: extensions/admin/views/import.py:51 msgid "Import domains" msgstr "Importa domini" -#: extensions/admin/views/import.py:129 +#: extensions/admin/views/import.py:131 #, python-format msgid "Object already exists: %s" msgstr "L'oggetto esiste già: %s" -#: extensions/admin/views/import.py:133 +#: extensions/admin/views/import.py:135 #, python-format msgid "%d objects imported successfully" msgstr "%d oggetti importati correttamente" -#: extensions/admin/views/import.py:153 +#: extensions/admin/views/import.py:155 msgid "" "Provide a CSV file where lines respect one of the following formats:\n" "
        \n" @@ -1410,20 +1437,23 @@ msgid "" msgstr "" "Fornire un file CSV le cui righe rispettino uno dei seguenti formati:\n" "
          \n" -"
        • account; id utente; password; nome; cognome; abilitato; gruppo; indirizzo; quota; [, dominio, ...]
        • \n" +"
        • account; id utente; password; nome; cognome; abilitato; gruppo; " +"indirizzo; quota; [, dominio, ...]
        • \n" "
        • alias; indirizzo; abilitato; destinatario interno
        • \n" "
        • forward; indirizzo; abilitato; destinatario esterno
        • \n" -"
        • dlist; indirizzo; abilitato; destinatario; destinatario; ...
        • \n" +"
        • dlist; indirizzo; abilitato; destinatario; destinatario; ...\n" "
        \n" -"

        Il primo elemento di ogni riga è obbligatorio e deve essere uguale a quello dei valori precedenti.

        \n" +"

        Il primo elemento di ogni riga è obbligatorio e deve essere uguale a " +"quello dei valori precedenti.

        \n" "\n" "

        Come separatore puoi utilizzare un carattere diverso.

        \n" -#: extensions/admin/views/import.py:165 +#: extensions/admin/views/import.py:167 msgid "Import identities" msgstr "Identità di importazione" -#: extensions/admin/views/user.py:37 +#: extensions/admin/views/user.py:38 msgid "Forward updated" msgstr "Inoltro aggiornato" @@ -1431,7 +1461,7 @@ msgstr "Inoltro aggiornato" msgid "Simple amavis management frontend" msgstr "Interfaccia di gestione amavis semplice" -#: extensions/amavis/__init__.py:52 extensions/amavis/general_callbacks.py:17 +#: extensions/amavis/__init__.py:52 extensions/amavis/general_callbacks.py:18 msgid "Quarantine" msgstr "Quarantena" @@ -1532,19 +1562,19 @@ msgstr "Numero di e-mail mostrate in ogni pagina" msgid "Set the maximum number of messages displayed in a page" msgstr "Imposta il numero massimo di messaggi mostrati in una pagina" -#: extensions/amavis/general_callbacks.py:81 +#: extensions/amavis/general_callbacks.py:82 msgid "pending requests" msgstr "richieste in sospeso" -#: extensions/amavis/general_callbacks.py:124 +#: extensions/amavis/general_callbacks.py:125 msgid "Pending requests" msgstr "Richieste in sospeso" -#: extensions/amavis/general_callbacks.py:134 +#: extensions/amavis/general_callbacks.py:135 msgid "Content filter" msgstr "Filtro sui contenuti" -#: extensions/amavis/lib.py:57 +#: extensions/amavis/lib.py:56 #, python-format msgid "Connection to amavis failed: %s" msgstr "Connessione ad amavis fallita: %s" @@ -1607,24 +1637,26 @@ msgstr "" "Modifica dell'oggetto spam utilizzando un testo specifico. Scegliere " "'predefinito' per utilizzare le impostazioni globali." -#: extensions/amavis/sql_listing.py:31 +#: extensions/amavis/sql_listing.py:29 msgid "Score" msgstr "Punteggio" -#: extensions/amavis/sql_listing.py:35 +#: extensions/amavis/sql_listing.py:33 #: extensions/amavis/templatetags/amavis_tags.py:75 -#: extensions/webmail/forms.py:7 +#: extensions/webmail/forms.py:82 msgid "To" msgstr "A" -#: extensions/amavis/sql_listing.py:38 -#: extensions/postfix_autoreply/forms.py:11 extensions/webmail/lib.py:44 +#: extensions/amavis/sql_listing.py:36 +#: extensions/postfix_autoreply/forms.py:10 +#: extensions/webmail/lib/listing.py:31 extensions/webmail/lib/tables.py:30 msgid "From" msgstr "Da" -#: extensions/amavis/sql_listing.py:42 extensions/sievefilters/forms.py:77 -#: extensions/webmail/forms.py:11 extensions/webmail/lib.py:40 -#: extensions/webmail/lib.py:423 templates/common/email_searchbar.html:6 +#: extensions/amavis/sql_listing.py:40 extensions/sievefilters/forms.py:77 +#: extensions/webmail/forms.py:86 extensions/webmail/lib/imapemail.py:288 +#: extensions/webmail/lib/listing.py:27 extensions/webmail/lib/tables.py:26 +#: templates/common/email_searchbar.html:6 msgid "Subject" msgstr "Oggetto" @@ -1632,40 +1664,40 @@ msgstr "Oggetto" msgid "Empty quarantine" msgstr "Svuota quarantena" -#: extensions/amavis/views.py:186 +#: extensions/amavis/views.py:149 msgid "Message deleted" msgstr "Messaggio eliminato" -#: extensions/amavis/views.py:207 +#: extensions/amavis/views.py:168 #, python-format msgid "%(count)d message deleted successfully" msgid_plural "%(count)d messages deleted successfully" msgstr[0] "%(count)d messaggio eliminato con successo" msgstr[1] "%(count)d messaggi eliminati con successo" -#: extensions/amavis/views.py:229 +#: extensions/amavis/views.py:191 msgid "Request sent" msgstr "Request inviata" -#: extensions/amavis/views.py:235 +#: extensions/amavis/views.py:197 msgid "Message released" msgstr "Messaggio rilasciato" -#: extensions/amavis/views.py:268 +#: extensions/amavis/views.py:225 #, python-format msgid "%(count)d request sent" msgid_plural "%(count)d requests sent" msgstr[0] "%(count)d request inviata" msgstr[1] "%(count)d request inviate" -#: extensions/amavis/views.py:288 +#: extensions/amavis/views.py:246 #, python-format msgid "%(count)d message released successfully" msgid_plural "%(count)d messages released successfully" msgstr[0] "%(count)d messaggio rilasciato con successo" msgstr[1] "%(count)d messaggi rilasciati con successo " -#: extensions/amavis/management/commands/amnotify.py:57 +#: extensions/amavis/management/commands/amnotify.py:61 msgid "[modoboa] Pending release requests" msgstr "[modoboa] Richieste di rilascio in sospeso" @@ -1909,7 +1941,7 @@ msgstr "Utilizzo risorse" msgid "Auto-reply (vacation) functionality using Postfix" msgstr "Funzionalità di auto-risposta (per assenza) usando Postfix" -#: extensions/postfix_autoreply/__init__.py:47 +#: extensions/postfix_autoreply/__init__.py:49 msgid "Automatic replies" msgstr "Risposte automatiche" @@ -1958,26 +1990,28 @@ msgstr "" msgid "" "Default content used when an auto-reply message is created automatically. " "The '%(name)s' macro will be replaced by the user's full name." -msgstr "Corpo del messaggio predefinito per i messaggi di risposta automatica. La macro '%(name)s' verrà sostituita con il nome dell'utente. " +msgstr "" +"Corpo del messaggio predefinito per i messaggi di risposta automatica. La " +"macro '%(name)s' verrà sostituita con il nome dell'utente. " -#: extensions/postfix_autoreply/forms.py:13 +#: extensions/postfix_autoreply/forms.py:12 msgid "Activate your auto reply from this date" msgstr "Attiva la risposta automatica da questa data" -#: extensions/postfix_autoreply/forms.py:19 +#: extensions/postfix_autoreply/forms.py:18 msgid "Until" msgstr "Fino al" -#: extensions/postfix_autoreply/forms.py:21 +#: extensions/postfix_autoreply/forms.py:20 msgid "Activate your auto reply until this date" msgstr "Attiva la tua risposta automatica fino a questa data" -#: extensions/postfix_autoreply/forms.py:49 #: extensions/postfix_autoreply/forms.py:55 +#: extensions/postfix_autoreply/forms.py:62 msgid "This date is over" msgstr "Questa data è passata" -#: extensions/postfix_autoreply/forms.py:59 +#: extensions/postfix_autoreply/forms.py:67 msgid "Must be greater than start date" msgstr "Dev'essere successiva alla data di inizio" @@ -2044,7 +2078,9 @@ msgstr "Percorso del file di configurazione master.cf" msgid "" "Alias(es) of this relay domain. Indicate only one name per input, press " "ENTER to add a new input." -msgstr "Alias per questo dominio relè. Inserisci un solo nome per casella, premi INVIO per aggiungere un nuovo elemento." +msgstr "" +"Alias per questo dominio relè. Inserisci un solo nome per casella, premi " +"INVIO per aggiungere un nuovo elemento." #: extensions/postfix_relay_domains/forms.py:51 #: extensions/postfix_relay_domains/general_callbacks.py:93 @@ -2071,7 +2107,8 @@ msgstr "Alias del dominio relè" #: extensions/postfix_relay_domains/general_callbacks.py:104 msgid "Maximum number of relay domain aliases this user can create" -msgstr "Numero massimo di alias di un dominio relè che questo utente può creare" +msgstr "" +"Numero massimo di alias di un dominio relè che questo utente può creare" #: extensions/postfix_relay_domains/general_callbacks.py:111 msgid "" @@ -2081,7 +2118,8 @@ msgid "" "
      • relaydomainalias; name; target; enabled
      • \n" msgstr "" "\n" -"
      • dominio relè; nome; host di destinazione; servizio; abilitato; verifica caselle
      • \n" +"
      • dominio relè; nome; host di destinazione; servizio; abilitato; " +"verifica caselle
      • \n" "
      • alias dominio relè; nome; destinazione; abilitato
      • \n" #: extensions/postfix_relay_domains/limits_callbacks.py:19 @@ -2090,7 +2128,9 @@ msgstr "Numero massimo di domini relè consentiti per un nuovo amministratore" #: extensions/postfix_relay_domains/limits_callbacks.py:27 msgid "Maximum number of allowed relay domain aliases for a new administrator" -msgstr "Numero massimo di alias di dominio relè consentiti per un nuovo amministratore" +msgstr "" +"Numero massimo di alias di dominio relè consentiti per un nuovo " +"amministratore" #: extensions/postfix_relay_domains/models.py:59 msgid "The service name" @@ -2125,19 +2165,19 @@ msgstr "Il dominio relè a cui punta questo alias" msgid "Relay domain %s does not exist" msgstr "Il dominio relè '%s' non esiste" -#: extensions/postfix_relay_domains/views.py:26 +#: extensions/postfix_relay_domains/views.py:28 msgid "Relay domain created" msgstr "Dominio relè creato" -#: extensions/postfix_relay_domains/views.py:31 +#: extensions/postfix_relay_domains/views.py:33 msgid "New relay domain" msgstr "Nuovo dominio relè" -#: extensions/postfix_relay_domains/views.py:54 +#: extensions/postfix_relay_domains/views.py:57 msgid "Relay domain modified" msgstr "Dominio relè modificato" -#: extensions/postfix_relay_domains/views.py:77 +#: extensions/postfix_relay_domains/views.py:80 msgid "Relay domain deleted" msgstr "Dominio relè cancellato" @@ -2231,7 +2271,7 @@ msgstr "Mittente" msgid "Recipient" msgstr "Destinatario" -#: extensions/sievefilters/forms.py:80 extensions/webmail/forms.py:8 +#: extensions/sievefilters/forms.py:80 extensions/webmail/forms.py:83 msgid "Cc" msgstr "Cc" @@ -2255,6 +2295,11 @@ msgstr "Sposta il messaggio in" msgid "Redirect message to" msgstr "Ridireziona il messaggio a" +#: extensions/sievefilters/forms.py:104 +#, fuzzy +msgid "Wrong filter name" +msgstr "Nome del file" + #: extensions/sievefilters/lib.py:40 msgid "Connection to MANAGESIEVE server failed, check your configuration" msgstr "" @@ -2398,14 +2443,6 @@ msgstr "Cartella dei file RRD" msgid "Path to directory where RRD files are stored" msgstr "Percorso della cartella dove sono memorizzati i file RRD" -#: extensions/stats/app_settings.py:26 -msgid "Directory to store PNG files" -msgstr "Cartella dei file PNG" - -#: extensions/stats/app_settings.py:28 -msgid "Path to directory where PNG files are stored" -msgstr "Percorso della cartella dove sono memorizzati i file PNG" - #: extensions/stats/general_callbacks.py:12 msgid "Statistics" msgstr "Statistiche" @@ -2459,23 +2496,23 @@ msgstr "dimensione di spedizione" msgid "Mail traffic" msgstr "Traffico mail" -#: extensions/stats/grapher.py:8 +#: extensions/stats/grapher.py:9 msgid "Day" msgstr "Giorno" -#: extensions/stats/grapher.py:9 +#: extensions/stats/grapher.py:10 msgid "Week" msgstr "Settimana" -#: extensions/stats/grapher.py:10 +#: extensions/stats/grapher.py:11 msgid "Month" msgstr "Mese" -#: extensions/stats/grapher.py:11 +#: extensions/stats/grapher.py:12 msgid "Year" msgstr "Anno" -#: extensions/stats/grapher.py:60 +#: extensions/stats/grapher.py:61 msgid "Total" msgstr "Totale" @@ -2661,7 +2698,7 @@ msgstr "Risposta del server" msgid "Unknown action" msgstr "Azione sconosciuta" -#: extensions/webmail/forms.py:9 +#: extensions/webmail/forms.py:84 msgid "Cci" msgstr "Cci" @@ -2669,78 +2706,79 @@ msgstr "Cci" msgid "Webmail" msgstr "Webmail" -#: extensions/webmail/imaputils.py:242 -msgid "Failed to retrieve hierarchy delimiter" -msgstr "Impossibile recuperare il delimitatore delle gerarchie" - -#: extensions/webmail/imaputils.py:283 -#, python-format -msgid "Connection to IMAP server failed: %s" -msgstr "Connessione al server IMAP fallita: %s" - -#: extensions/webmail/lib.py:371 -msgid "wrote:" -msgstr "scritto:" - -#: extensions/webmail/lib.py:437 extensions/webmail/lib.py:441 -msgid "Original message" -msgstr "Messaggio originale" - -#: extensions/webmail/views.py:85 +#: extensions/webmail/views.py:87 #, python-format msgid "%(count)d message deleted" msgid_plural "%(count)d messages deleted" msgstr[0] "%(count)d messaggio cancellato" msgstr[1] "%(count)d messaggi cancellati" -#: extensions/webmail/views.py:116 lib/email_listing.py:138 +#: extensions/webmail/views.py:118 lib/email_listing.py:128 msgid "Empty mailbox" msgstr "Casella di posta vuota" -#: extensions/webmail/views.py:142 +#: extensions/webmail/views.py:144 msgid "Mailbox created" msgstr "Casella di posta creata" -#: extensions/webmail/views.py:148 -#: extensions/webmail/templatetags/webmail_tags.py:175 +#: extensions/webmail/views.py:150 +#: extensions/webmail/templatetags/webmail_tags.py:177 msgid "Create a new mailbox" msgstr "Crea una nuova casella di posta" -#: extensions/webmail/views.py:167 extensions/webmail/views.py:202 +#: extensions/webmail/views.py:169 extensions/webmail/views.py:204 msgid "Edit mailbox" msgstr "Modifica casella di posta" -#: extensions/webmail/views.py:183 +#: extensions/webmail/views.py:185 msgid "Mailbox updated" msgstr "Casella di posta aggiornata" -#: extensions/webmail/views.py:255 +#: extensions/webmail/views.py:257 msgid "Failed to save attachment: " msgstr "Salvataggio allegato fallito: " -#: extensions/webmail/views.py:258 +#: extensions/webmail/views.py:260 #, python-format msgid "Attachment is too big (limit: %s)" msgstr "L'allegato è troppo grande (limite: %s)" -#: extensions/webmail/views.py:264 +#: extensions/webmail/views.py:266 #: extensions/webmail/templates/webmail/compose.html:15 #: extensions/webmail/templates/webmail/headers.html:4 msgid "Attachments" msgstr "Allegati" -#: extensions/webmail/views.py:281 +#: extensions/webmail/views.py:283 msgid "Bad query" msgstr "Domanda sbagliata" -#: extensions/webmail/views.py:293 +#: extensions/webmail/views.py:295 msgid "Failed to remove attachment: " msgstr "Rimozione allegato fallita: " -#: extensions/webmail/views.py:298 +#: extensions/webmail/views.py:300 msgid "Unknown attachment" msgstr "Allegato sconosciuto" +#: extensions/webmail/lib/imapemail.py:235 +msgid "wrote:" +msgstr "scritto:" + +#: extensions/webmail/lib/imapemail.py:302 +#: extensions/webmail/lib/imapemail.py:305 +msgid "Original message" +msgstr "Messaggio originale" + +#: extensions/webmail/lib/imaputils.py:242 +msgid "Failed to retrieve hierarchy delimiter" +msgstr "Impossibile recuperare il delimitatore delle gerarchie" + +#: extensions/webmail/lib/imaputils.py:283 +#, python-format +msgid "Connection to IMAP server failed: %s" +msgstr "Connessione al server IMAP fallita: %s" + #: extensions/webmail/templates/webmail/attachments.html:6 msgid "Attach" msgstr "Allega" @@ -2768,7 +2806,7 @@ msgstr[1] "%(counter)s file" msgid "Parent mailbox" msgstr "Casella di posta principale" -#: extensions/webmail/templates/webmail/index.html:40 +#: extensions/webmail/templates/webmail/index.html:42 msgid "Mailbox quota" msgstr "Quota casella di posta" @@ -2828,11 +2866,11 @@ msgstr "Comprimi cartella" msgid "Empty folder" msgstr "Svuota cartella" -#: extensions/webmail/templatetags/webmail_tags.py:183 +#: extensions/webmail/templatetags/webmail_tags.py:185 msgid "Edit the selected mailbox" msgstr "Modifica la casella di posta selezionata" -#: extensions/webmail/templatetags/webmail_tags.py:188 +#: extensions/webmail/templatetags/webmail_tags.py:190 msgid "Remove the selected mailbox" msgstr "Elimina la cartella di posta selezionata" @@ -2879,11 +2917,6 @@ msgstr "Super amministratore" msgid "Domain administrator" msgstr "Amministratore di domini" -#: lib/permissions.py:73 -#, python-format -msgid "Failed to grant access (%s)" -msgstr "Accesso fallito (%s)" - #: lib/tables.py:251 msgid "No entries to display" msgstr "Non ci sono elementi da mostrare" @@ -2945,3 +2978,15 @@ msgstr "Ricordami" #: templates/registration/login.html:36 msgid "Log in" msgstr "Registrati" + +#~ msgid "A domain %s already exists" +#~ msgstr "Esiste già un dominio %s" + +#~ msgid "Directory to store PNG files" +#~ msgstr "Cartella dei file PNG" + +#~ msgid "Path to directory where PNG files are stored" +#~ msgstr "Percorso della cartella dove sono memorizzati i file PNG" + +#~ msgid "Failed to grant access (%s)" +#~ msgstr "Accesso fallito (%s)" diff --git a/modoboa/locale/it/LC_MESSAGES/djangojs.po b/modoboa/locale/it/LC_MESSAGES/djangojs.po index 3d7c25ebd..bf8c313fd 100644 --- a/modoboa/locale/it/LC_MESSAGES/djangojs.po +++ b/modoboa/locale/it/LC_MESSAGES/djangojs.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Modoboa\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-12-22 23:16+0100\n" +"POT-Creation-Date: 2014-08-24 12:32+0200\n" "PO-Revision-Date: 2013-12-23 00:58+0100\n" "Last-Translator: Alberto Berti \n" "Language-Team: Italiano \n" @@ -108,18 +108,18 @@ msgstr "Rimuovere la casella di posta selezionata?" msgid "Mailbox removed" msgstr "Casella di posta rimossa" -#: extensions/webmail/static/webmail/js/webmail.js:746 +#: extensions/webmail/static/webmail/js/webmail.js:752 msgid "Message sent" msgstr "Messaggio inviato" -#: extensions/webmail/static/webmail/js/webmail.js:997 +#: extensions/webmail/static/webmail/js/webmail.js:1003 #, c-format msgid "%s file" msgid_plural "%s files" msgstr[0] "%s file" msgstr[1] "%s file" -#: extensions/webmail/static/webmail/js/webmail.js:1031 +#: extensions/webmail/static/webmail/js/webmail.js:1037 #, c-format msgid "Moving %s message" msgid_plural "Moving %s messages" diff --git a/modoboa/locale/nl_NL/LC_MESSAGES/django.po b/modoboa/locale/nl_NL/LC_MESSAGES/django.po index 8800d6907..d121a03b0 100644 --- a/modoboa/locale/nl_NL/LC_MESSAGES/django.po +++ b/modoboa/locale/nl_NL/LC_MESSAGES/django.po @@ -1,26 +1,27 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # TuxBrother , 2014 msgid "" msgstr "" "Project-Id-Version: Modoboa\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-12-15 10:21+0100\n" +"POT-Creation-Date: 2014-08-24 12:29+0200\n" "PO-Revision-Date: 2014-04-16 12:58+0000\n" "Last-Translator: TuxBrother \n" -"Language-Team: Dutch (Netherlands) (http://www.transifex.com/projects/p/modoboa/language/nl_NL/)\n" +"Language-Team: Dutch (Netherlands) (http://www.transifex.com/projects/p/" +"modoboa/language/nl_NL/)\n" +"Language: nl_NL\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: nl_NL\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: core/__init__.py:52 core/__init__.py:53 -#: extensions/admin/forms/account.py:326 extensions/admin/forms/domain.py:251 -#: extensions/admin/views/domain.py:95 extensions/admin/views/identity.py:127 +#: extensions/admin/forms/account.py:326 extensions/admin/forms/domain.py:256 +#: extensions/admin/views/domain.py:97 extensions/admin/views/identity.py:129 #: extensions/postfix_autoreply/app_settings.py:11 #: extensions/postfix_relay_domains/forms.py:138 #: extensions/sievefilters/app_settings.py:50 @@ -28,251 +29,276 @@ msgstr "" msgid "General" msgstr "Algemeen" -#: core/app_settings.py:36 +#: core/app_settings.py:39 msgid "Authentication" msgstr "Authenticatie" -#: core/app_settings.py:39 +#: core/app_settings.py:42 msgid "Authentication type" msgstr "Authenticatie type" -#: core/app_settings.py:40 +#: core/app_settings.py:43 msgid "Local" msgstr "Lokaal" -#: core/app_settings.py:43 +#: core/app_settings.py:46 msgid "The backend used for authentication" msgstr "De backend gebruikt voor authenticatie" -#: core/app_settings.py:48 +#: core/app_settings.py:51 msgid "Default password scheme" msgstr "Standaard wachtwoord encryptiemethode" -#: core/app_settings.py:51 +#: core/app_settings.py:54 msgid "md5crypt (weak)" msgstr "md5crypt (zwak)" -#: core/app_settings.py:52 +#: core/app_settings.py:55 msgid "sha256 (weak)" msgstr "sha256 (zwak)" -#: core/app_settings.py:53 +#: core/app_settings.py:56 msgid "md5 (weak)" msgstr "md5 (zwak)" -#: core/app_settings.py:54 +#: core/app_settings.py:57 msgid "crypt (weak)" msgstr "crypt (zwak)" -#: core/app_settings.py:55 +#: core/app_settings.py:58 msgid "plain (weak)" msgstr "plain (onversleuteld!)" -#: core/app_settings.py:57 +#: core/app_settings.py:60 msgid "Scheme used to crypt mailbox passwords" msgstr "Schema dat gebruikt word om mailbox wachtwoorden te versleutelen" -#: core/app_settings.py:61 +#: core/app_settings.py:64 msgid "Rounds" msgstr "Rondes" -#: core/app_settings.py:64 +#: core/app_settings.py:67 msgid "" "Number of rounds to use (only used by sha256crypt and sha512crypt). Must be " "between 1000 and 999999999, inclusive." -msgstr "Nummer van te gebruiken randomizeringsrondes (alleen bij sha256crypt en sha512crypt). Moet tussen de 1000 en 999999999 liggen." +msgstr "" +"Nummer van te gebruiken randomizeringsrondes (alleen bij sha256crypt en " +"sha512crypt). Moet tussen de 1000 en 999999999 liggen." -#: core/app_settings.py:70 +#: core/app_settings.py:73 msgid "Secret key" msgstr "Geheime sleutel" -#: core/app_settings.py:72 +#: core/app_settings.py:75 msgid "Key used to encrypt/decrypt passwords" msgstr "Code die gebruikt word om wachtwoorden te versleutelen/ontsleutelen" -#: core/app_settings.py:76 +#: core/app_settings.py:79 msgid "LDAP settings" msgstr "LDAP instellingen" -#: core/app_settings.py:79 extensions/sievefilters/app_settings.py:22 +#: core/app_settings.py:82 extensions/sievefilters/app_settings.py:22 #: extensions/webmail/app_settings.py:22 extensions/webmail/app_settings.py:42 msgid "Server address" msgstr "Server adres" -#: core/app_settings.py:81 +#: core/app_settings.py:85 msgid "The IP address of the DNS name of the LDAP server" msgstr "Het IP adres en de DNS naam van LDAP server" -#: core/app_settings.py:85 extensions/sievefilters/app_settings.py:28 +#: core/app_settings.py:89 extensions/sievefilters/app_settings.py:28 #: extensions/webmail/app_settings.py:34 extensions/webmail/app_settings.py:58 msgid "Server port" msgstr "Server poort" -#: core/app_settings.py:87 +#: core/app_settings.py:91 msgid "The TCP port number used by the LDAP server" msgstr "Het TCP poortnummer gebruikt door de LDAP server" -#: core/app_settings.py:91 extensions/webmail/app_settings.py:28 +#: core/app_settings.py:95 extensions/webmail/app_settings.py:28 msgid "Use a secured connection" msgstr "Gebruik een beveiligde verbinding" -#: core/app_settings.py:93 +#: core/app_settings.py:98 msgid "Use an SSL/TLS connection to access the LDAP server" msgstr "Gebruik een SSL/TLS verbinding met de LDAP server" -#: core/app_settings.py:97 +#: core/app_settings.py:102 msgid "Authentication method" msgstr "Authenticatie methode" -#: core/app_settings.py:98 +#: core/app_settings.py:103 msgid "Search and bind" msgstr "Zoeken en koppelen" -#: core/app_settings.py:99 +#: core/app_settings.py:104 msgid "Direct bind" msgstr "Directe koppeling" -#: core/app_settings.py:101 +#: core/app_settings.py:106 msgid "Choose the authentication method to use" msgstr "Kies een authenticatie methode om te gebruiken" -#: core/app_settings.py:106 +#: core/app_settings.py:111 msgid "Bind DN" msgstr "Koppeling DN" -#: core/app_settings.py:108 +#: core/app_settings.py:114 msgid "" "The distinguished name to use when binding to the LDAP server. Leave empty " "for an anonymous bind" -msgstr "De gedistingeerde naam om te gebruiken bij het koppeling met de LDAP server. Laat leeg voor een anonieme koppeling." +msgstr "" +"De gedistingeerde naam om te gebruiken bij het koppeling met de LDAP server. " +"Laat leeg voor een anonieme koppeling." -#: core/app_settings.py:113 +#: core/app_settings.py:121 msgid "Bind password" msgstr "Koppel wachtwoord" -#: core/app_settings.py:115 +#: core/app_settings.py:124 msgid "The password to use when binding to the LDAP server (with 'Bind DN')" -msgstr "Het wachtwoord om te gebruiken tijdens het koppelen met de LDAP server (met 'koppel DN')" +msgstr "" +"Het wachtwoord om te gebruiken tijdens het koppelen met de LDAP server (met " +"'koppel DN')" -#: core/app_settings.py:121 +#: core/app_settings.py:132 msgid "Users search base" msgstr "Gebruikers zoekbasis" -#: core/app_settings.py:123 +#: core/app_settings.py:135 msgid "The distinguished name of the search base used to find users" msgstr "De gedistingeerde naam van de zoekbasis om gebruikers te vinden" -#: core/app_settings.py:128 +#: core/app_settings.py:141 msgid "Search filter" msgstr "Zoek filter" -#: core/app_settings.py:130 +#: core/app_settings.py:144 msgid "" "An optional filter string (e.g. '(objectClass=person)'). In order to be " "valid, it must be enclosed in parentheses." -msgstr "Een optionele filter string (zoals '(objectClass=person)'). Om geldig te kunnen zijn, moet het ingesloten zijn tussen haakjes." +msgstr "" +"Een optionele filter string (zoals '(objectClass=person)'). Om geldig te " +"kunnen zijn, moet het ingesloten zijn tussen haakjes." -#: core/app_settings.py:135 +#: core/app_settings.py:151 msgid "User DN template" msgstr "Gebruiker DN template" -#: core/app_settings.py:137 +#: core/app_settings.py:154 #, python-format msgid "" "The template used to construct a user's DN. It should contain one " "placeholder (ie. %(user)s)" -msgstr "Het template dat gebruikt word om een gebruiker zijn/haar DN op te bouwen. Het moet een placeholder bevatten (bijvoorbeeld. %(user)s)" +msgstr "" +"Het template dat gebruikt word om een gebruiker zijn/haar DN op te bouwen. " +"Het moet een placeholder bevatten (bijvoorbeeld. %(user)s)" -#: core/app_settings.py:142 +#: core/app_settings.py:161 msgid "Password attribute" msgstr "Wachtwoord attribuut" -#: core/app_settings.py:144 +#: core/app_settings.py:163 msgid "The attribute used to store user passwords" msgstr "Dit attribuut word gebruikt om wachtwoorden op te slaan" -#: core/app_settings.py:148 +#: core/app_settings.py:167 msgid "Active Directory" msgstr "Active Directory" -#: core/app_settings.py:150 +#: core/app_settings.py:170 msgid "Tell if the LDAP server is an Active Directory one" msgstr "De LDAP server is een Active Directory" -#: core/app_settings.py:154 +#: core/app_settings.py:174 msgid "Administrator groups" msgstr "Administrator groepen" -#: core/app_settings.py:157 +#: core/app_settings.py:177 msgid "" -"Members of those LDAP Posix groups will be created as domain administrators." -" Use ';' characters to separate groups." -msgstr "Leden van deze LDAP POSIX groepen zullen aangemaakt worden als domein administrators. Gebruik ';' karakters om groepen te scheiden." +"Members of those LDAP Posix groups will be created as domain administrators. " +"Use ';' characters to separate groups." +msgstr "" +"Leden van deze LDAP POSIX groepen zullen aangemaakt worden als domein " +"administrators. Gebruik ';' karakters om groepen te scheiden." -#: core/app_settings.py:164 +#: core/app_settings.py:184 msgid "Groups search base" msgstr "Groepen zoek basis" -#: core/app_settings.py:167 +#: core/app_settings.py:187 msgid "The distinguished name of the search base used to find groups" msgstr "De gedistingeerde naam van de zoekbasis om groepen te vinden" -#: core/app_settings.py:172 +#: core/app_settings.py:193 +#, fuzzy +msgid "Domain/mailbox creation" +msgstr "Domein aangemaakt" + +#: core/app_settings.py:196 +msgid "" +"Automatically create a domain and a mailbox when a new user is created just " +"after the first successful authentication." +msgstr "" + +#: core/app_settings.py:201 #: extensions/admin/templates/admin/editdomainform.html:7 msgid "Miscellaneous" msgstr "Diversen" -#: core/app_settings.py:175 +#: core/app_settings.py:204 msgid "Maximum log record age" msgstr "Maximum bewaartijd van logs" -#: core/app_settings.py:177 +#: core/app_settings.py:206 msgid "The maximum age in days of a log record" msgstr "De maximum bewaartijd in dagen van een log record" -#: core/app_settings.py:181 +#: core/app_settings.py:210 msgid "Items per page" msgstr "Items per pagina" -#: core/app_settings.py:183 +#: core/app_settings.py:212 msgid "Number of displayed items per page" msgstr "Hoeveelheid items per pagina" -#: core/app_settings.py:187 +#: core/app_settings.py:216 msgid "Default top redirection" msgstr "Standaard top omleiding" -#: core/app_settings.py:190 +#: core/app_settings.py:220 msgid "The default redirection used when no application is specified" -msgstr "De standaard omleiding die gebruikt word als er geen andere applicatie is opgegeven" +msgstr "" +"De standaard omleiding die gebruikt word als er geen andere applicatie is " +"opgegeven" -#: core/app_settings.py:218 +#: core/app_settings.py:249 msgid "Key must be either 16, 24, or 32 bytes long" msgstr "Sleutelwaarde moet 16, 24 of 32 bytes lang zijn" -#: core/app_settings.py:227 extensions/postfix_autoreply/app_settings.py:53 +#: core/app_settings.py:258 extensions/postfix_autoreply/app_settings.py:53 msgid "Invalid syntax" msgstr "Ongeldige zinsbouw" -#: core/app_settings.py:233 +#: core/app_settings.py:264 msgid "Invalid rounds number" msgstr "Ongeldig nummer van rondes" -#: core/app_settings.py:256 +#: core/app_settings.py:287 msgid "This field is required" msgstr "Dit veld is benodigd" -#: core/app_settings.py:317 extensions/amavis/app_settings.py:87 +#: core/app_settings.py:349 extensions/amavis/app_settings.py:87 #: extensions/amavis/templates/amavis/main_action_bar.html:29 #: extensions/webmail/app_settings.py:73 msgid "Display" msgstr "Weergeven" -#: core/app_settings.py:321 +#: core/app_settings.py:353 msgid "Prefered language" msgstr "Voorkeurs taal" -#: core/app_settings.py:327 +#: core/app_settings.py:359 msgid "Prefered language to display pages" msgstr "Voorkeurstaal om pagina's weer te geven" @@ -325,7 +351,7 @@ msgstr "Mislukt om wachtwoord aan te passen: LDAP module niet geinstalleerd" msgid "account" msgstr "account" -#: core/models.py:321 extensions/admin/models/domain.py:135 +#: core/models.py:321 extensions/admin/models/domain.py:144 #: extensions/admin/models/domain_alias.py:39 #: extensions/postfix_relay_domains/models.py:134 #: extensions/postfix_relay_domains/models.py:190 @@ -336,17 +362,17 @@ msgstr "Verkeerde regel" msgid "You can't import an account with a role greater than yours" msgstr "U kunt geen accounts importeren met hogere rechten dan die van uzelf." -#: core/models.py:331 +#: core/models.py:337 #, python-format msgid "The simple user '%s' must have a valid email address" msgstr "De gebruiker '%s' moet een geldig email adres hebben" -#: core/models.py:335 +#: core/models.py:341 #, python-format msgid "username and email fields must not differ for '%s'" msgstr "gebruikersnaam en email velden moeten niet verschillen van '%s'" -#: core/models.py:404 extensions/admin/models/alias.py:33 +#: core/models.py:410 extensions/admin/models/alias.py:35 #: extensions/admin/models/domain.py:32 #: extensions/admin/models/domain_alias.py:17 #: extensions/postfix_autoreply/models.py:28 @@ -355,29 +381,29 @@ msgstr "gebruikersnaam en email velden moeten niet verschillen van '%s'" msgid "enabled" msgstr "actief" -#: core/models.py:405 +#: core/models.py:411 msgid "Check to enable this extension" msgstr "Aanvinken om deze extensie te activeren" -#: core/models.py:475 +#: core/models.py:491 msgid "added" msgstr "toegevoegd" -#: core/models.py:478 +#: core/models.py:494 msgid "modified" msgstr "veranderd" -#: core/models.py:480 core/models.py:504 +#: core/models.py:496 core/models.py:521 #, python-format msgid "%(object)s '%(name)s' %(action)s by user %(user)s" msgstr "%(object)s '%(name)s' %(action)s door gebruiker %(user)s" -#: core/models.py:506 +#: core/models.py:523 msgid "deleted" msgstr "verwijderd" #: core/tables.py:8 core/templates/core/information.html:8 -#: extensions/admin/tables.py:9 extensions/admin/forms/domain.py:182 +#: extensions/admin/tables.py:9 extensions/admin/forms/domain.py:187 #: extensions/admin/templates/admin/domains_table.html:5 #: extensions/admin/templates/admin/editdomainform.html:13 #: extensions/admin/templates/admin/identities_table.html:5 @@ -439,8 +465,9 @@ msgstr "Logs" msgid "Previously on Modoboa..." msgstr "Vorige gebeurtenissen op Modoboa..." -#: core/templates/core/logs.html:6 extensions/amavis/sql_listing.py:46 -#: extensions/webmail/lib.py:48 extensions/webmail/lib.py:425 +#: core/templates/core/logs.html:6 extensions/amavis/sql_listing.py:44 +#: extensions/webmail/lib/imapemail.py:290 +#: extensions/webmail/lib/listing.py:35 extensions/webmail/lib/tables.py:34 msgid "Date" msgstr "Datum" @@ -491,12 +518,12 @@ msgstr "Persoonlijke informatie aanpassen" #: core/templates/core/user_profile.html:8 #: extensions/admin/templates/admin/forward.html:8 -#: extensions/admin/views/alias.py:107 extensions/admin/views/domain.py:165 -#: extensions/admin/views/identity.py:197 +#: extensions/admin/views/alias.py:112 extensions/admin/views/domain.py:168 +#: extensions/admin/views/identity.py:200 #: extensions/postfix_autoreply/templates/postfix_autoreply/autoreply.html:9 -#: extensions/postfix_relay_domains/views.py:63 -#: extensions/sievefilters/views.py:163 extensions/webmail/views.py:170 -#: extensions/webmail/views.py:205 +#: extensions/postfix_relay_domains/views.py:66 +#: extensions/sievefilters/views.py:166 extensions/webmail/views.py:172 +#: extensions/webmail/views.py:207 msgid "Update" msgstr "Toepassen" @@ -523,9 +550,11 @@ msgstr "Gebruiker '%s' successvol aangemeld" #: core/views/auth.py:43 msgid "Your username and password didn't match. Please try again." -msgstr "Uw gebruikersnaam en wachtwoord komen niet overeen. Probeer het alstublief opnieuw." +msgstr "" +"Uw gebruikersnaam en wachtwoord komen niet overeen. Probeer het alstublief " +"opnieuw." -#: core/views/auth.py:66 +#: core/views/auth.py:69 #, python-format msgid "User '%s' logged out" msgstr "Gebruiker '%s' heeft afgemeld" @@ -559,15 +588,32 @@ msgid "" "\n" "

        Welcome to the online demo!

        \n" "

        Warning: the demo's concent is resetted every two hours.

        \n" -"

        To try the demo, the following users are available (username/password):

        \n" +"

        To try the demo, the following users are available (username/password):

        \n" "
          \n" "
        • A super administrator : admin/password
        • \n" "
        • A domain administrator : admin@demo.local/admin
        • \n" "
        • A simple user : user@demo.local/user
        • \n" "
        \n" "

        Please report any issue or give any suggestion to \n" -" the mailing list.

        \n" -msgstr "\n

        Welkom in de online demo!

        \n

        Waarschuwing: de content van de demo word elke 2 uur gewist.

        \n

        Om de demo te proberen, zijn de volgende gebruikers beschikbaar (gebruikersnaam/wachtwoord):

        \n
          \n
        • De hoofdbeheerder : admin/password
        • \n
        • De domein administrator : admin@demo.local/admin
        • \n
        • Een gewone gebruiker : user@demo.local/user
        • \n
        \n

        Aarzel niet om problemen of suggesties door te geven aan \nde maillijst.

        \n

        Fouten gevonden in de Nederlandse vertaling? Geef uw opmerkingen of suggesties door aan: foss at waut punt nl

        \n" +" the " +"mailing list.

        \n" +msgstr "" +"\n" +"

        Welkom in de online demo!

        \n" +"

        Waarschuwing: de content van de demo word elke 2 uur gewist.

        \n" +"

        Om de demo te proberen, zijn de volgende gebruikers beschikbaar " +"(gebruikersnaam/wachtwoord):

        \n" +"
          \n" +"
        • De hoofdbeheerder : admin/password
        • \n" +"
        • De domein administrator : admin@demo.local/admin
        • \n" +"
        • Een gewone gebruiker : user@demo.local/user
        • \n" +"
        \n" +"

        Aarzel niet om problemen of suggesties door te geven aan \n" +"de " +"maillijst.

        \n" +"

        Fouten gevonden in de Nederlandse vertaling? Geef uw opmerkingen of " +"suggesties door aan: foss at waut punt nl

        \n" #: extensions/admin/__init__.py:48 msgid "Administration console" @@ -603,7 +649,17 @@ msgstr "Doorsturen" msgid "Account import failed (%s): domain does not exist" msgstr "Accounts importeren mislukt (%s): domein bestaat niet" -#: extensions/admin/app_settings.py:11 +#: extensions/admin/__init__.py:172 extensions/admin/forms/account.py:196 +#, python-format +msgid "Mailbox %s already exists" +msgstr "Mailbox %s bestaat al" + +#: extensions/admin/__init__.py:180 +#, fuzzy, python-format +msgid "Account import failed (%s): wrong quota value" +msgstr "Accounts importeren mislukt (%s): domein bestaat niet" + +#: extensions/admin/app_settings.py:13 #: extensions/admin/templates/admin/editdomainform.html:25 #: extensions/limits/app_settings.py:31 extensions/limits/models.py:23 #: extensions/webmail/app_settings.py:107 @@ -611,43 +667,49 @@ msgstr "Accounts importeren mislukt (%s): domein bestaat niet" msgid "Mailboxes" msgstr "Mailboxen" -#: extensions/admin/app_settings.py:14 +#: extensions/admin/app_settings.py:16 msgid "Handle mailboxes on filesystem" msgstr "Pas mailboxen op het bestandssysteem aan" -#: extensions/admin/app_settings.py:16 +#: extensions/admin/app_settings.py:18 msgid "" "Rename or remove mailboxes on the filesystem when they get renamed or " "removed within Modoboa" -msgstr "Hernoem of verwijder mailboxen op het bestandssysteem wanner ze hernoemd of verwijderd worden in Modoboa." +msgstr "" +"Hernoem of verwijder mailboxen op het bestandssysteem wanner ze hernoemd of " +"verwijderd worden in Modoboa." -#: extensions/admin/app_settings.py:20 +#: extensions/admin/app_settings.py:22 msgid "Mailboxes owner" msgstr "Eigenaar van mailboxen" -#: extensions/admin/app_settings.py:22 +#: extensions/admin/app_settings.py:24 msgid "The UNIX account who owns mailboxes on the filesystem" -msgstr "De UNIX account die de rechten heeft tot de mailboxen op het bestandssysteem" +msgstr "" +"De UNIX account die de rechten heeft tot de mailboxen op het bestandssysteem" -#: extensions/admin/app_settings.py:26 +#: extensions/admin/app_settings.py:28 msgid "Default domain quota" msgstr "Standaard domein quota" -#: extensions/admin/app_settings.py:29 +#: extensions/admin/app_settings.py:31 msgid "" "Default quota (in MB) applied to freshly created domains with no value " "specified. A value of 0 means no quota." -msgstr "Standaard quota (in MB) om op nieuw aangemaakte domeinen zonder waarde toe te passen. Een waarde van 0 betekend geen quota." +msgstr "" +"Standaard quota (in MB) om op nieuw aangemaakte domeinen zonder waarde toe " +"te passen. Een waarde van 0 betekend geen quota." -#: extensions/admin/app_settings.py:36 +#: extensions/admin/app_settings.py:38 msgid "Automatic account removal" msgstr "Automatish een account verwijderen" -#: extensions/admin/app_settings.py:38 +#: extensions/admin/app_settings.py:40 msgid "When a mailbox is removed, also remove the associated account" -msgstr "Als een mailbox word verwijderd, verwijder dan ook de bijbehorende account" +msgstr "" +"Als een mailbox word verwijderd, verwijder dan ook de bijbehorende account" -#: extensions/admin/app_settings.py:69 extensions/admin/forms/account.py:178 +#: extensions/admin/app_settings.py:81 extensions/admin/forms/account.py:178 #: extensions/admin/forms/domain.py:56 msgid "Must be a positive integer" msgstr "Dit moet een positive integer zijn." @@ -660,7 +722,9 @@ msgstr "Een mailbox is benodigd" msgid "" "The user's name. Must be a valid e-mail address for simple users or " "administrators with a mailbox." -msgstr "De naam van de gebruiker. Moet een geldig e-mail adres zijn voor gebruikers of administrators met een mailbox." +msgstr "" +"De naam van de gebruiker. Moet een geldig e-mail adres zijn voor gebruikers " +"of administrators met een mailbox." #: extensions/admin/forms/account.py:26 msgid "Role" @@ -703,7 +767,10 @@ 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 "Quota in MB voor deze mailbox. Geef een aangepaste waarde of gebruik de stanaard waarde van het domein. Laat leeg om een ongelimiteerde waarde te definieren (niet toegestaan voor domein administrators)." +msgstr "" +"Quota in MB voor deze mailbox. Geef een aangepaste waarde of gebruik de " +"stanaard waarde van het domein. Laat leeg om een ongelimiteerde waarde te " +"definieren (niet toegestaan voor domein administrators)." #: extensions/admin/forms/account.py:123 extensions/admin/forms/domain.py:26 #: extensions/admin/templates/admin/domains_table.html:6 @@ -716,18 +783,16 @@ msgid "" "Alias(es) of this mailbox. Indicate only one address per input, press ENTER " "to add a new input. Use the '*' character to create a 'catchall' alias (ex: " "*@domain.tld)." -msgstr "Alias(en) van deze mailbox. Geef slechts een adres per regel op, en toets ENTER om een nieuwe regel te krijgen. Gebruik een wildcard '*' om een 'catch-all' adres te maken (bijvoorbeeld: *@domein.tld)." +msgstr "" +"Alias(en) van deze mailbox. Geef slechts een adres per regel op, en toets " +"ENTER om een nieuwe regel te krijgen. Gebruik een wildcard '*' om een 'catch-" +"all' adres te maken (bijvoorbeeld: *@domein.tld)." #: extensions/admin/forms/account.py:187 extensions/admin/forms/account.py:217 #: extensions/admin/forms/alias.py:65 msgid "Domain does not exist" msgstr "Domein bestaat niet" -#: extensions/admin/forms/account.py:196 -#, python-format -msgid "Mailbox %s already exists" -msgstr "Mailbox %s bestaat al" - #: extensions/admin/forms/account.py:284 msgid "Domain(s)" msgstr "Domein(en)" @@ -737,7 +802,7 @@ msgid "Domain(s) that user administrates" msgstr "Domein(en) die gebruiker mag beheren" #: extensions/admin/forms/account.py:328 -#: extensions/admin/views/identity.py:130 +#: extensions/admin/views/identity.py:132 msgid "Mail" msgstr "Mail" @@ -753,7 +818,9 @@ msgstr "Email adres" msgid "" "The distribution list address. Use the '*' character to create a 'catchall' " "address (ex: *@domain.tld)." -msgstr "Het adres van de distributielijst . Gebruik een wildcard '*' om een 'catch-all' adres te maken (bijvoorbeeld: *@domein.tld)" +msgstr "" +"Het adres van de distributielijst . Gebruik een wildcard '*' om een 'catch-" +"all' adres te maken (bijvoorbeeld: *@domein.tld)" #: extensions/admin/forms/alias.py:23 msgid "Recipients" @@ -763,7 +830,9 @@ msgstr "Ontvangers" msgid "" "Mailbox(es) this alias will point to. Indicate only one address per input, " "press ENTER to add a new input." -msgstr "Mailbox(en) waarnaar deze alias zal verwijzen. Geef slechts een adres per regel op, en toets ENTER om een nieuwe regel te krijgen." +msgstr "" +"Mailbox(en) waarnaar deze alias zal verwijzen. Geef slechts een adres per " +"regel op, en toets ENTER om een nieuwe regel te krijgen." #: extensions/admin/forms/alias.py:68 msgid "You don't have access to this domain" @@ -773,7 +842,7 @@ msgstr "U heeft geen toegang tot dit domein" msgid "Invalid mailbox" msgstr "Verkeerde mailbox" -#: extensions/admin/forms/alias.py:108 extensions/admin/models/alias.py:182 +#: extensions/admin/forms/alias.py:108 extensions/admin/models/alias.py:194 #, python-format msgid "Local recipient %s not found" msgstr "Lokale ontvanger %s niet gevonden" @@ -791,13 +860,17 @@ msgstr "Geen ontvanger opgegeven" msgid "" "Default quota in MB applied to mailboxes. Leave empty to use the default " "value." -msgstr "Standaard quota in MB toegepast op mailboxen. Laat leeg om de standaard waarde te gebruiken." +msgstr "" +"Standaard quota in MB toegepast op mailboxen. Laat leeg om de standaard " +"waarde te gebruiken." #: extensions/admin/forms/domain.py:29 msgid "" "Alias(es) of this domain. Indicate only one name per input, press ENTER to " "add a new input." -msgstr "Alias(sen) van dit domein. Geef slechts een adres per regel op, en toets ENTER om een nieuwe regel te krijgen." +msgstr "" +"Alias(sen) van dit domein. Geef slechts een adres per regel op, en toets " +"ENTER om een nieuwe regel te krijgen." #: extensions/admin/forms/domain.py:75 #: extensions/postfix_relay_domains/forms.py:50 @@ -818,33 +891,34 @@ msgstr "Een %s met deze naam bestaat al" msgid "domain" msgstr "domein" -#: extensions/admin/forms/domain.py:176 +#: extensions/admin/forms/domain.py:181 msgid "Create a domain administrator" msgstr "Maak een domein administrator aan" -#: extensions/admin/forms/domain.py:178 +#: extensions/admin/forms/domain.py:183 msgid "Automatically create an administrator for this domain" msgstr "Automatisch een administrator aanmaken voor dit domein" -#: extensions/admin/forms/domain.py:185 +#: extensions/admin/forms/domain.py:190 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." +msgstr "" +"De naam van de administrator. De domeinnaam word automatisch toegevoegd." -#: extensions/admin/forms/domain.py:193 +#: extensions/admin/forms/domain.py:198 msgid "Create aliases" msgstr "Aliassen aanmaken" -#: extensions/admin/forms/domain.py:195 +#: extensions/admin/forms/domain.py:200 msgid "Automatically create standard aliases for this domain" msgstr "Automatisch een standaard alias voor dit domein aanmaken" -#: extensions/admin/forms/domain.py:211 +#: extensions/admin/forms/domain.py:216 msgid "Invalid format" msgstr "Verkeerd formaat" -#: extensions/admin/forms/domain.py:225 +#: extensions/admin/forms/domain.py:230 #, python-format msgid "User '%s' already exists" msgstr "Gebruiker '%s' bestaat al" @@ -877,9 +951,11 @@ msgstr "Stuur berichten door en sla een kopie op in uw mailbox" msgid "" "You can't define a forward to a local destination. Please ask your " "administrator to create an alias instead." -msgstr "U kunt mail niet doorsturen naar een lokaal adres. Vraag uw systeembeheerder om een alias voor u aan te maken." +msgstr "" +"U kunt mail niet doorsturen naar een lokaal adres. Vraag uw systeembeheerder " +"om een alias voor u aan te maken." -#: extensions/admin/forms/import_.py:6 extensions/webmail/forms.py:26 +#: extensions/admin/forms/import_.py:6 extensions/webmail/forms.py:198 msgid "Select a file" msgstr "Bestand selecteren" @@ -897,54 +973,57 @@ msgstr "Versleutel wachtwoorden" #: extensions/admin/forms/import_.py:28 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" +msgstr "" +"Vink deze optie aan als wachtwoorden in uw bestand niet versleuteld zijn" -#: extensions/admin/models/alias.py:16 extensions/admin/models/mailbox.py:51 +#: extensions/admin/models/alias.py:18 extensions/admin/models/mailbox.py:62 msgid "address" msgstr "adres" -#: extensions/admin/models/alias.py:18 +#: extensions/admin/models/alias.py:20 msgid "" -"The alias address (without the domain part). For a 'catch-all' address, just" -" enter an * character." -msgstr "Het alias adres (zonder het domein deel). Voor een 'catch-all' adres, vul een * in." +"The alias address (without the domain part). For a 'catch-all' address, just " +"enter an * character." +msgstr "" +"Het alias adres (zonder het domein deel). Voor een 'catch-all' adres, vul " +"een * in." -#: extensions/admin/models/alias.py:24 +#: extensions/admin/models/alias.py:26 msgid "mailboxes" msgstr "mailboxen" -#: extensions/admin/models/alias.py:25 +#: extensions/admin/models/alias.py:27 msgid "The mailboxes this alias points to" msgstr "De mailbox waarnaar deze alias verwijst" -#: extensions/admin/models/alias.py:29 +#: extensions/admin/models/alias.py:31 msgid "The aliases this alias points to" msgstr "Deze aliassen waarnaar deze alias verwijst" -#: extensions/admin/models/alias.py:34 +#: extensions/admin/models/alias.py:36 #: extensions/admin/models/domain_alias.py:18 #: extensions/postfix_relay_domains/models.py:168 msgid "Check to activate this alias" msgstr "Aanvinken om deze alias te activeren" -#: extensions/admin/models/alias.py:79 +#: extensions/admin/models/alias.py:81 msgid "distribution list" msgstr "distributie lijst" -#: extensions/admin/models/alias.py:80 +#: extensions/admin/models/alias.py:82 msgid "forward" msgstr "doorsturen" -#: extensions/admin/models/alias.py:81 +#: extensions/admin/models/alias.py:83 msgid "alias" msgstr "alias" -#: extensions/admin/models/alias.py:150 +#: extensions/admin/models/alias.py:152 #, python-format msgid "Invalid line: %s" msgstr "Ongeldige regel: %s" -#: extensions/admin/models/alias.py:155 +#: extensions/admin/models/alias.py:157 #, python-format msgid "Domain '%s' does not exist" msgstr "Domein '%s' bestaat niet" @@ -971,7 +1050,7 @@ msgstr "Aanvinken om dit domein te activeren" msgid "Domain" msgstr "Domein" -#: extensions/admin/models/domain.py:140 +#: extensions/admin/models/domain.py:155 #, python-format msgid "Invalid quota value for domain '%s'" msgstr "Verkeerde quota waarde voor domein '%s'" @@ -990,31 +1069,26 @@ msgstr "doel" msgid "The domain this alias points to" msgstr "De domein alias verwijst naar" -#: extensions/admin/models/domain_alias.py:46 -#, python-format -msgid "A domain %s already exists" -msgstr "Een domein %s bestaat al" - -#: extensions/admin/models/domain_alias.py:51 +#: extensions/admin/models/domain_alias.py:52 #, python-format msgid "Unknown domain %s" msgstr "Onbekend domein %s" -#: extensions/admin/models/mailbox.py:52 +#: extensions/admin/models/mailbox.py:63 msgid "Mailbox address (without the @domain.tld part)" msgstr "Mailbox adres (zonder het @domein.naam deel)" -#: extensions/admin/models/mailbox.py:113 +#: extensions/admin/models/mailbox.py:125 #, python-format msgid "Failed to retrieve mailbox location (%s)" msgstr "Mislukt om de mailbox locatie te verkijgen (%s)" -#: extensions/admin/models/mailbox.py:173 +#: extensions/admin/models/mailbox.py:194 #, python-format msgid "Quota is greater than the allowed domain's limit (%dM)" msgstr "Quota is groter dan de maximaal toegestane domein limiet (%dM)" -#: extensions/admin/models/mailbox.py:178 +#: extensions/admin/models/mailbox.py:199 msgid "A quota is required" msgstr "Een quota is vereist" @@ -1036,7 +1110,7 @@ msgstr "Labels" #: extensions/admin/templates/admin/domains_table.html:8 #: extensions/admin/templates/admin/identities_table.html:8 #: extensions/admin/templates/admin/listing.html:17 -#: extensions/sievefilters/views.py:93 +#: extensions/sievefilters/views.py:95 #: extensions/sievefilters/templates/sievefilters/filter.html:17 #: extensions/sievefilters/templates/sievefilters/guieditor.html:5 #: extensions/webmail/templatetags/webmail_tags.py:101 @@ -1133,7 +1207,7 @@ msgstr "Domein toevoegen" #: extensions/admin/templatetags/admin_tags.py:42 #: extensions/admin/templatetags/admin_tags.py:106 -#: extensions/admin/views/import.py:51 extensions/admin/views/import.py:166 +#: extensions/admin/views/import.py:52 extensions/admin/views/import.py:168 msgid "Import" msgstr "Importeren" @@ -1183,84 +1257,84 @@ msgstr "Verwijder %s?" msgid "Remove this permission" msgstr "Deze bevoegdheid verwijderen" -#: extensions/admin/views/alias.py:25 +#: extensions/admin/views/alias.py:26 msgid "Alias with this name already exists" msgstr "Een alias met deze naam bestaat al" -#: extensions/admin/views/alias.py:49 extensions/admin/views/domain.py:100 -#: extensions/admin/views/domain.py:129 extensions/admin/views/identity.py:131 -#: extensions/admin/views/identity.py:158 -#: extensions/postfix_relay_domains/views.py:32 -#: extensions/sievefilters/views.py:141 extensions/sievefilters/views.py:230 -#: extensions/webmail/views.py:151 +#: extensions/admin/views/alias.py:50 extensions/admin/views/domain.py:102 +#: extensions/admin/views/domain.py:131 extensions/admin/views/identity.py:133 +#: extensions/admin/views/identity.py:160 +#: extensions/postfix_relay_domains/views.py:34 +#: extensions/sievefilters/views.py:144 extensions/sievefilters/views.py:233 +#: extensions/webmail/views.py:153 msgid "Create" msgstr "Aanmaken" -#: extensions/admin/views/alias.py:61 +#: extensions/admin/views/alias.py:63 msgid "New distribution list" msgstr "Nieuwe distributie lijst" -#: extensions/admin/views/alias.py:62 +#: extensions/admin/views/alias.py:64 msgid "Distribution list created" msgstr "Distributielijst aangemaakt" -#: extensions/admin/views/alias.py:71 +#: extensions/admin/views/alias.py:74 msgid "New alias" msgstr "Nieuwe alias" -#: extensions/admin/views/alias.py:72 +#: extensions/admin/views/alias.py:75 msgid "Alias created" msgstr "Alias aangemaakt" -#: extensions/admin/views/alias.py:81 +#: extensions/admin/views/alias.py:85 msgid "New forward" msgstr "Nieuwe doorstuurregel" -#: extensions/admin/views/alias.py:82 +#: extensions/admin/views/alias.py:86 msgid "Forward created" msgstr "Doorstuurregel aangemaakt" -#: extensions/admin/views/alias.py:95 +#: extensions/admin/views/alias.py:100 msgid "Distribution list modified" msgstr "Distributielijst aangepast" -#: extensions/admin/views/alias.py:97 +#: extensions/admin/views/alias.py:102 msgid "Forward modified" msgstr "Doorstuurregel aangepast" -#: extensions/admin/views/alias.py:99 +#: extensions/admin/views/alias.py:104 msgid "Alias modified" msgstr "Alias aangepast" -#: extensions/admin/views/domain.py:96 extensions/admin/views/identity.py:128 +#: extensions/admin/views/domain.py:98 extensions/admin/views/identity.py:130 msgid "Next" msgstr "Volgende" -#: extensions/admin/views/domain.py:99 +#: extensions/admin/views/domain.py:101 msgid "Options" msgstr "Opties" -#: extensions/admin/views/domain.py:101 extensions/admin/views/identity.py:132 +#: extensions/admin/views/domain.py:103 extensions/admin/views/identity.py:134 msgid "Previous" msgstr "Vorige" -#: extensions/admin/views/domain.py:123 +#: extensions/admin/views/domain.py:125 msgid "Domain created" msgstr "Domein aangemaakt" -#: extensions/admin/views/domain.py:128 +#: extensions/admin/views/domain.py:130 msgid "New domain" msgstr "Nieuw domein" -#: extensions/admin/views/domain.py:155 +#: extensions/admin/views/domain.py:158 msgid "Domain modified" msgstr "Domein gewijzigd" -#: extensions/admin/views/domain.py:189 +#: extensions/admin/views/domain.py:192 msgid "You can't delete your own domain" msgstr "U kunt uw eigen domein niet verwijderen" -#: extensions/admin/views/domain.py:192 +#: extensions/admin/views/domain.py:195 msgid "Domain deleted" msgid_plural "Domains deleted" msgstr[0] "Domeinen verwijderd" @@ -1274,40 +1348,40 @@ msgstr "Identiteiten exporteren" msgid "Export domains" msgstr "Exporteer domeinen" -#: extensions/admin/views/identity.py:103 -#: extensions/admin/views/identity.py:224 -#: extensions/admin/views/identity.py:229 extensions/amavis/views.py:179 -#: extensions/amavis/views.py:185 extensions/amavis/views.py:220 -#: extensions/amavis/views.py:224 extensions/amavis/views.py:226 -#: extensions/webmail/views.py:47 extensions/webmail/views.py:65 -#: extensions/webmail/views.py:79 extensions/webmail/views.py:97 -#: extensions/webmail/views.py:114 extensions/webmail/views.py:200 -#: extensions/webmail/views.py:223 extensions/webmail/views.py:396 -#: extensions/webmail/views.py:430 extensions/webmail/views.py:443 -#: extensions/webmail/views.py:472 extensions/webmail/views.py:512 +#: extensions/admin/views/identity.py:104 +#: extensions/admin/views/identity.py:227 +#: extensions/admin/views/identity.py:232 extensions/amavis/views.py:144 +#: extensions/amavis/views.py:148 extensions/amavis/views.py:181 +#: extensions/amavis/views.py:186 extensions/amavis/views.py:188 +#: extensions/webmail/views.py:49 extensions/webmail/views.py:67 +#: extensions/webmail/views.py:81 extensions/webmail/views.py:99 +#: extensions/webmail/views.py:116 extensions/webmail/views.py:202 +#: extensions/webmail/views.py:225 extensions/webmail/views.py:401 +#: extensions/webmail/views.py:451 extensions/webmail/views.py:467 +#: extensions/webmail/views.py:496 extensions/webmail/views.py:536 #: lib/formutils.py:44 lib/formutils.py:49 msgid "Invalid request" msgstr "Ongeldig verzoek" -#: extensions/admin/views/identity.py:149 +#: extensions/admin/views/identity.py:151 msgid "Account created" msgstr "Account aangemaakt" -#: extensions/admin/views/identity.py:155 +#: extensions/admin/views/identity.py:157 msgid "New account" msgstr "Nieuwe account" -#: extensions/admin/views/identity.py:190 +#: extensions/admin/views/identity.py:193 msgid "Account updated" msgstr "Account aangepast" -#: extensions/admin/views/identity.py:214 +#: extensions/admin/views/identity.py:217 msgid "Account deleted" msgid_plural "Accounts deleted" msgstr[0] "Account verwijderd" msgstr[1] "Accounts verwijderd" -#: extensions/admin/views/import.py:39 +#: extensions/admin/views/import.py:40 #, python-format msgid "" "Provide a CSV file where lines respect one of the following formats:\n" @@ -1316,43 +1390,73 @@ msgid "" "
      • domainalias; name; targeted domain; enabled
      • \n" " %s\n" "
      \n" -"

      The first element of each line is mandatory and must be equal to one of the previous values.

      \n" +"

      The first element of each line is mandatory and must be equal to one of " +"the previous values.

      \n" "

      You can use a different character as separator.

      \n" -msgstr "Lever een CSV bestand en zorg dat de regels voldoen aan een van de volgende formaten:\n
        \n
      • domain; name; quota; enabled
      • \n
      • domainalias; name; targeted domain; enabled
      • \n%s\n
      \n

      Het eerste element van elke regel is verplicht en moet gelijk zijn aan een van de vorige waarden.

      \n

      U kunt een eigen scheidingsteken gebruiken.

      \n

      Let op! Zorg dat het 'line-encoding format' Unix is - anders gaat het importeren mis

      \n\n" +msgstr "" +"Lever een CSV bestand en zorg dat de regels voldoen aan een van de volgende " +"formaten:\n" +"
        \n" +"
      • domain; name; quota; enabled
      • \n" +"
      • domainalias; name; targeted domain; enabled
      • \n" +"%s\n" +"
      \n" +"

      Het eerste element van elke regel is verplicht en moet gelijk zijn aan " +"een van de vorige waarden.

      \n" +"

      U kunt een eigen scheidingsteken gebruiken.

      \n" +"

      Let op! Zorg dat het 'line-encoding format' Unix is - anders gaat het " +"importeren mis

      \n" +"\n" -#: extensions/admin/views/import.py:50 +#: extensions/admin/views/import.py:51 msgid "Import domains" msgstr "Importeer domeinen" -#: extensions/admin/views/import.py:129 +#: extensions/admin/views/import.py:131 #, python-format msgid "Object already exists: %s" msgstr "Object bestaat al: %s" -#: extensions/admin/views/import.py:133 +#: extensions/admin/views/import.py:135 #, python-format msgid "%d objects imported successfully" msgstr "%d objecten successvol geimporteerd" -#: extensions/admin/views/import.py:153 +#: extensions/admin/views/import.py:155 msgid "" "Provide a CSV file where lines respect one of the following formats:\n" "
        \n" -"
      • account; loginname; password; first name; last name; enabled; group; address; quota; [, domain, ...]
      • \n" +"
      • account; loginname; password; first name; last name; enabled; group; " +"address; quota; [, domain, ...]
      • \n" "
      • alias; address; enabled; internal recipient
      • \n" "
      • forward; address; enabled; external recipient
      • \n" "
      • dlist; address; enabled; recipient; recipient; ...
      • \n" "
      \n" -"

      The first element of each line is mandatory and must be equal to one of the previous values.

      \n" +"

      The first element of each line is mandatory and must be equal to one of " +"the previous values.

      \n" "\n" "

      You can use a different character as separator.

      \n" -msgstr "Lever een CSV bestand en zorg dat de regels voldoen aan een van de volgende formaten:\n
        \n
      • account; loginname; password; first name; last name; enabled; group; address; quota; [, domain, ...]
      • \n
      • alias; address; enabled; internal recipient
      • \n
      • forward; address; enabled; external recipient
      • \n
      • dlist; address; enabled; recipient; recipient; ...
      • \n
      \n

      Het eerste element van elke regel is verplicht en moet gelijk zijn aan een van de vorige waarden.

      \n

      U kunt een eigen scheidingsteken gebruiken.

      \n

      Let op! Zorg dat het 'line-encoding format' Unix is - anders gaat het importeren mis

      \n" +msgstr "" +"Lever een CSV bestand en zorg dat de regels voldoen aan een van de volgende " +"formaten:\n" +"
        \n" +"
      • account; loginname; password; first name; last name; enabled; group; " +"address; quota; [, domain, ...]
      • \n" +"
      • alias; address; enabled; internal recipient
      • \n" +"
      • forward; address; enabled; external recipient
      • \n" +"
      • dlist; address; enabled; recipient; recipient; ...
      • \n" +"
      \n" +"

      Het eerste element van elke regel is verplicht en moet gelijk zijn aan " +"een van de vorige waarden.

      \n" +"

      U kunt een eigen scheidingsteken gebruiken.

      \n" +"

      Let op! Zorg dat het 'line-encoding format' Unix is - anders gaat het " +"importeren mis

      \n" -#: extensions/admin/views/import.py:165 +#: extensions/admin/views/import.py:167 msgid "Import identities" msgstr "Identiteiten importeren" -#: extensions/admin/views/user.py:37 +#: extensions/admin/views/user.py:38 msgid "Forward updated" msgstr "Doorstuuradres aangepast" @@ -1360,7 +1464,7 @@ msgstr "Doorstuuradres aangepast" msgid "Simple amavis management frontend" msgstr "Gemakkelijke amavis beheertool" -#: extensions/amavis/__init__.py:52 extensions/amavis/general_callbacks.py:17 +#: extensions/amavis/__init__.py:52 extensions/amavis/general_callbacks.py:18 msgid "Quarantine" msgstr "Quarantaine" @@ -1374,7 +1478,9 @@ msgstr "Maximum bericht bewaartijd" #: extensions/amavis/app_settings.py:16 msgid "Quarantine messages maximum age (in days) before deletion" -msgstr "Maximum bewaartijd quarantaine berichten (in dagen) voordat ze verwijderd worden" +msgstr "" +"Maximum bewaartijd quarantaine berichten (in dagen) voordat ze verwijderd " +"worden" #: extensions/amavis/app_settings.py:19 msgid "Messages releasing" @@ -1386,7 +1492,9 @@ msgstr "Verwijderde vrijgegeven berichten" #: extensions/amavis/app_settings.py:24 msgid "Remove messages marked as released while cleaning up the database" -msgstr "Verwijder berichten gemarkeerd als vrijgegeven tijdens het opruimen van de database" +msgstr "" +"Verwijder berichten gemarkeerd als vrijgegeven tijdens het opruimen van de " +"database" #: extensions/amavis/app_settings.py:28 msgid "Amavis connection mode" @@ -1418,7 +1526,8 @@ msgstr "PDP server socket" #: extensions/amavis/app_settings.py:50 msgid "Path to the PDP server socket (if unix mode)" -msgstr "Locatie naar de PDP server socket (indien unix socket mode gebruikt word)" +msgstr "" +"Locatie naar de PDP server socket (indien unix socket mode gebruikt word)" #: extensions/amavis/app_settings.py:54 msgid "Check requests interval" @@ -1460,19 +1569,19 @@ msgstr "Aantal weergegeven emails per pagina" msgid "Set the maximum number of messages displayed in a page" msgstr "Stelt het maximum aantal weergegeven berichten per pagina in" -#: extensions/amavis/general_callbacks.py:81 +#: extensions/amavis/general_callbacks.py:82 msgid "pending requests" msgstr "openstaande verzoeken" -#: extensions/amavis/general_callbacks.py:124 +#: extensions/amavis/general_callbacks.py:125 msgid "Pending requests" msgstr "Openstaande verzoeken" -#: extensions/amavis/general_callbacks.py:134 +#: extensions/amavis/general_callbacks.py:135 msgid "Content filter" msgstr "Content filter" -#: extensions/amavis/lib.py:57 +#: extensions/amavis/lib.py:56 #, python-format msgid "Connection to amavis failed: %s" msgstr "Verbinding met amavis mislukt: %s" @@ -1482,12 +1591,12 @@ msgid "Virus filter" msgstr "Virus filter" #: extensions/amavis/models.py:94 extensions/amavis/models.py:102 -#: extensions/amavis/models.py:110 extensions/sievefilters/views.py:290 +#: extensions/amavis/models.py:110 extensions/sievefilters/views.py:293 msgid "yes" msgstr "ja" #: extensions/amavis/models.py:95 extensions/amavis/models.py:103 -#: extensions/amavis/models.py:111 extensions/sievefilters/views.py:294 +#: extensions/amavis/models.py:111 extensions/sievefilters/views.py:297 msgid "no" msgstr "nee" @@ -1499,7 +1608,9 @@ msgstr "standaard" #: extensions/amavis/models.py:98 msgid "Bypass virus checks or not. Choose 'default' to use global settings." -msgstr "Optie om virusscans over te slaan. Kies 'default' om de systeeminstelling te gebruiken." +msgstr "" +"Optie om virusscans over te slaan. Kies 'default' om de systeeminstelling te " +"gebruiken." #: extensions/amavis/models.py:101 msgid "Spam filter" @@ -1507,7 +1618,9 @@ msgstr "Spam filter" #: extensions/amavis/models.py:106 msgid "Bypass spam checks or not. Choose 'default' to use global settings." -msgstr "Optie om spamfilter over te slaan. Kies 'default' om de systeeminstelling te gebruiken." +msgstr "" +"Optie om spamfilter over te slaan. Kies 'default' om de systeeminstelling te " +"gebruiken." #: extensions/amavis/models.py:109 msgid "Banned filter" @@ -1515,7 +1628,9 @@ msgstr "Zwarte lijst" #: extensions/amavis/models.py:114 msgid "Bypass banned checks or not. Choose 'default' to use global settings." -msgstr "Optie om zwarte lijst over te slaan. Kies 'default' om de systeeminstelling te gebruiken." +msgstr "" +"Optie om zwarte lijst over te slaan. Kies 'default' om de systeeminstelling " +"te gebruiken." #: extensions/amavis/models.py:144 msgid "Spam marker" @@ -1523,28 +1638,32 @@ msgstr "Spam indicator" #: extensions/amavis/models.py:146 msgid "" -"Modify spam subject using the specified text. Choose 'default' to use global" -" settings." -msgstr "Wijzig standaard spam voorvoegsel met de opgegeven text. Kies 'default' om de systeeminstelling te gebruiken. Geef niets op als u geen voorvoegsel wilt." +"Modify spam subject using the specified text. Choose 'default' to use global " +"settings." +msgstr "" +"Wijzig standaard spam voorvoegsel met de opgegeven text. Kies 'default' om " +"de systeeminstelling te gebruiken. Geef niets op als u geen voorvoegsel wilt." -#: extensions/amavis/sql_listing.py:31 +#: extensions/amavis/sql_listing.py:29 msgid "Score" msgstr "Score" -#: extensions/amavis/sql_listing.py:35 +#: extensions/amavis/sql_listing.py:33 #: extensions/amavis/templatetags/amavis_tags.py:75 -#: extensions/webmail/forms.py:7 +#: extensions/webmail/forms.py:82 msgid "To" msgstr "Naar" -#: extensions/amavis/sql_listing.py:38 -#: extensions/postfix_autoreply/forms.py:11 extensions/webmail/lib.py:44 +#: extensions/amavis/sql_listing.py:36 +#: extensions/postfix_autoreply/forms.py:10 +#: extensions/webmail/lib/listing.py:31 extensions/webmail/lib/tables.py:30 msgid "From" msgstr "Van" -#: extensions/amavis/sql_listing.py:42 extensions/sievefilters/forms.py:77 -#: extensions/webmail/forms.py:11 extensions/webmail/lib.py:40 -#: extensions/webmail/lib.py:423 templates/common/email_searchbar.html:6 +#: extensions/amavis/sql_listing.py:40 extensions/sievefilters/forms.py:77 +#: extensions/webmail/forms.py:86 extensions/webmail/lib/imapemail.py:288 +#: extensions/webmail/lib/listing.py:27 extensions/webmail/lib/tables.py:26 +#: templates/common/email_searchbar.html:6 msgid "Subject" msgstr "Onderwerp" @@ -1552,40 +1671,40 @@ msgstr "Onderwerp" msgid "Empty quarantine" msgstr "Niets in quarantaine" -#: extensions/amavis/views.py:186 +#: extensions/amavis/views.py:149 msgid "Message deleted" msgstr "Bericht verwijderd" -#: extensions/amavis/views.py:207 +#: extensions/amavis/views.py:168 #, python-format msgid "%(count)d message deleted successfully" msgid_plural "%(count)d messages deleted successfully" msgstr[0] "%(count)d berichten successvol verwijderd" msgstr[1] "%(count)d berichten successvol verwijderd" -#: extensions/amavis/views.py:229 +#: extensions/amavis/views.py:191 msgid "Request sent" msgstr "Verzoek ingediend" -#: extensions/amavis/views.py:235 +#: extensions/amavis/views.py:197 msgid "Message released" msgstr "Bericht vrijgegeven" -#: extensions/amavis/views.py:268 +#: extensions/amavis/views.py:225 #, python-format msgid "%(count)d request sent" msgid_plural "%(count)d requests sent" msgstr[0] "%(count)d verzoek ingediend" msgstr[1] "%(count)d verzoeken ingediend" -#: extensions/amavis/views.py:288 +#: extensions/amavis/views.py:246 #, python-format msgid "%(count)d message released successfully" msgid_plural "%(count)d messages released successfully" msgstr[0] "%(count)d berichten successvol vrijgegeven" msgstr[1] "%(count)d berichten successvol vrijgegeven" -#: extensions/amavis/management/commands/amnotify.py:57 +#: extensions/amavis/management/commands/amnotify.py:61 msgid "[modoboa] Pending release requests" msgstr "[modoboa] Openstaand quarantaine vrijgeef verzoek" @@ -1679,8 +1798,12 @@ msgid "" msgid_plural "" "\n" "%(counter)s release requests are pending for action.\n" -msgstr[0] "\n%(counter)s vrijgeef verzoek ingediend.\n" -msgstr[1] "\n%(counter)s vrijgeef verzoeken ingediend.\n" +msgstr[0] "" +"\n" +"%(counter)s vrijgeef verzoek ingediend.\n" +msgstr[1] "" +"\n" +"%(counter)s vrijgeef verzoeken ingediend.\n" #: extensions/amavis/templates/amavis/notifications/pending_requests.html:6 msgid "Sketch:" @@ -1718,7 +1841,8 @@ msgstr "Volledige headers weergeven" #: extensions/limits/__init__.py:25 msgid "" "Per administrator resources to limit the number of objects they can create" -msgstr "Administrators limiteren in de hoeveelheid objecten die ze kunnen aanmaken" +msgstr "" +"Administrators limiteren in de hoeveelheid objecten die ze kunnen aanmaken" #: extensions/limits/__init__.py:56 msgid "Limits" @@ -1733,9 +1857,9 @@ msgid "Domain admins" msgstr "Domein administrators" #: extensions/limits/app_settings.py:15 -msgid "" -"Maximum number of allowed domain administrators for a new administrator" -msgstr "Maximum aantal toegestane domein administrators voor een nieuwe administrator" +msgid "Maximum number of allowed domain administrators for a new administrator" +msgstr "" +"Maximum aantal toegestane domein administrators voor een nieuwe administrator" #: extensions/limits/app_settings.py:21 msgid "Maximum number of allowed domains for a new administrator" @@ -1818,7 +1942,7 @@ msgstr "Capaciteit gebruik" msgid "Auto-reply (vacation) functionality using Postfix" msgstr "Auto-antwoord (vakantiebericht) functionaliteit dmv. Postfix" -#: extensions/postfix_autoreply/__init__.py:47 +#: extensions/postfix_autoreply/__init__.py:49 msgid "Automatic replies" msgstr "Automatisch antwoorden" @@ -1841,7 +1965,9 @@ msgstr "Ik ben niet aanwezig" #: extensions/postfix_autoreply/app_settings.py:23 msgid "" "Default subject used when an auto-reply message is created automatically" -msgstr "Standaard onderwerp gebruikt wanneer een automatisch antwoord automatisch is aangemaakt" +msgstr "" +"Standaard onderwerp gebruikt wanneer een automatisch antwoord automatisch is " +"aangemaakt" #: extensions/postfix_autoreply/app_settings.py:28 msgid "Default content" @@ -1854,33 +1980,40 @@ msgid "" "\n" "Best regards,\n" "%(name)s\n" -msgstr "Momenteel ben ik niet aanwezig. Ik zal antwoorden zodra ik terug kom.\n\nMet vriendelijke groet,\n%(name)s\n" +msgstr "" +"Momenteel ben ik niet aanwezig. Ik zal antwoorden zodra ik terug kom.\n" +"\n" +"Met vriendelijke groet,\n" +"%(name)s\n" #: extensions/postfix_autoreply/app_settings.py:36 #, python-format msgid "" "Default content used when an auto-reply message is created automatically. " "The '%(name)s' macro will be replaced by the user's full name." -msgstr "Standaard inhoud gebruikt wanneer een automatisch antwoord bericht automatisch is aangemaakt. De '%(name)s' macro zal vervangen worden door de naam van de gebruiker." +msgstr "" +"Standaard inhoud gebruikt wanneer een automatisch antwoord bericht " +"automatisch is aangemaakt. De '%(name)s' macro zal vervangen worden door de " +"naam van de gebruiker." -#: extensions/postfix_autoreply/forms.py:13 +#: extensions/postfix_autoreply/forms.py:12 msgid "Activate your auto reply from this date" msgstr "Activeer uw auto-antwoord vanaf deze datum" -#: extensions/postfix_autoreply/forms.py:19 +#: extensions/postfix_autoreply/forms.py:18 msgid "Until" msgstr "Tot" -#: extensions/postfix_autoreply/forms.py:21 +#: extensions/postfix_autoreply/forms.py:20 msgid "Activate your auto reply until this date" msgstr "Activeer uw auto-antwoord tot deze datum" -#: extensions/postfix_autoreply/forms.py:49 #: extensions/postfix_autoreply/forms.py:55 +#: extensions/postfix_autoreply/forms.py:62 msgid "This date is over" msgstr "Deze datum is over" -#: extensions/postfix_autoreply/forms.py:59 +#: extensions/postfix_autoreply/forms.py:67 msgid "Must be greater than start date" msgstr "De datum moet in de toekomst vanaf de startdatum liggen" @@ -1923,7 +2056,8 @@ msgstr "Auto antwoord bericht successvol aangepast." #: extensions/postfix_autoreply/templates/postfix_autoreply/autoreply.html:2 msgid "Define a message to automatically send when you are off" -msgstr "Maak een bericht dat automatisch verstuurd word wanneer u niet aanwezig bent" +msgstr "" +"Maak een bericht dat automatisch verstuurd word wanneer u niet aanwezig bent" #: extensions/postfix_relay_domains/__init__.py:72 msgid "Relay domains support for Postfix" @@ -1947,7 +2081,9 @@ msgstr "Locatie van Postfix's master.cf" msgid "" "Alias(es) of this relay domain. Indicate only one name per input, press " "ENTER to add a new input." -msgstr "Alias(sen) van dit doorstuur domein. Geef slechts een adres per regel op, en toets ENTER om een nieuwe regel te krijgen." +msgstr "" +"Alias(sen) van dit doorstuur domein. Geef slechts een adres per regel op, en " +"toets ENTER om een nieuwe regel te krijgen." #: extensions/postfix_relay_domains/forms.py:51 #: extensions/postfix_relay_domains/general_callbacks.py:93 @@ -1979,13 +2115,19 @@ msgstr "Maximum aantal van doorstuur domeinen die deze gebruiker aan kan maken" #: extensions/postfix_relay_domains/general_callbacks.py:111 msgid "" "\n" -"
    • relaydomain; name; target host; service; enabled; verify recipients
    • \n" +"
    • relaydomain; name; target host; service; enabled; verify recipients
    • \n" +"
    • relaydomainalias; name; target; enabled
    • \n" +msgstr "" +"\n" +"
    • relaydomain; name; target host; service; enabled; verify recipients
    • \n" "
    • relaydomainalias; name; target; enabled
    • \n" -msgstr "\n
    • relaydomain; name; target host; service; enabled; verify recipients
    • \n
    • relaydomainalias; name; target; enabled
    • \n" #: extensions/postfix_relay_domains/limits_callbacks.py:19 msgid "Maximum number of allowed relay domains for a new administrator" -msgstr "Maximum aantal toegestane doorstuur domeinen voor een nieuwe administrator" +msgstr "" +"Maximum aantal toegestane doorstuur domeinen voor een nieuwe administrator" #: extensions/postfix_relay_domains/limits_callbacks.py:27 msgid "Maximum number of allowed relay domain aliases for a new administrator" @@ -2024,19 +2166,19 @@ msgstr "Het doorstuur domein verwijst naar" msgid "Relay domain %s does not exist" msgstr "Doorstuur domein %s bestaat niet" -#: extensions/postfix_relay_domains/views.py:26 +#: extensions/postfix_relay_domains/views.py:28 msgid "Relay domain created" msgstr "Doorstuur domein aangemaakt" -#: extensions/postfix_relay_domains/views.py:31 +#: extensions/postfix_relay_domains/views.py:33 msgid "New relay domain" msgstr "Nieuw doorstuur domein" -#: extensions/postfix_relay_domains/views.py:54 +#: extensions/postfix_relay_domains/views.py:57 msgid "Relay domain modified" msgstr "Doorstuur domein aangepast" -#: extensions/postfix_relay_domains/views.py:77 +#: extensions/postfix_relay_domains/views.py:80 msgid "Relay domain deleted" msgstr "Doorstuur domein verwijderd" @@ -2046,7 +2188,9 @@ msgstr "Scan" #: extensions/sievefilters/__init__.py:12 msgid "Plugin to easily create server-side filters" -msgstr "Plugin om gemakkelijk filters op de server in te stellen (bijvoorbeeld om uw mail te sorteren)" +msgstr "" +"Plugin om gemakkelijk filters op de server in te stellen (bijvoorbeeld om uw " +"mail te sorteren)" #: extensions/sievefilters/__init__.py:18 msgid "Sieve filters" @@ -2130,7 +2274,7 @@ msgstr "Afzender" msgid "Recipient" msgstr "Ontvanger" -#: extensions/sievefilters/forms.py:80 extensions/webmail/forms.py:8 +#: extensions/sievefilters/forms.py:80 extensions/webmail/forms.py:83 msgid "Cc" msgstr "CC" @@ -2154,6 +2298,11 @@ msgstr "Verplaats bericht naar" msgid "Redirect message to" msgstr "Bericht doorsturen naar" +#: extensions/sievefilters/forms.py:104 +#, fuzzy +msgid "Wrong filter name" +msgstr "Bestandsnaam" + #: extensions/sievefilters/lib.py:40 msgid "Connection to MANAGESIEVE server failed, check your configuration" msgstr "Verbinding naar MANAGESIEVE server mislukt, controleer uw configuratie" @@ -2162,53 +2311,53 @@ msgstr "Verbinding naar MANAGESIEVE server mislukt, controleer uw configuratie" msgid "Not enough space on server" msgstr "Niet genoeg ruimte beschikbaar op de server" -#: extensions/sievefilters/views.py:78 +#: extensions/sievefilters/views.py:80 msgid "Failed to retrieve filters set" msgstr "Mislukt om de filterset te te laden" -#: extensions/sievefilters/views.py:138 +#: extensions/sievefilters/views.py:141 #: extensions/sievefilters/templatetags/sfilters_tags.py:33 msgid "New filter" msgstr "Nieuw filter" -#: extensions/sievefilters/views.py:146 +#: extensions/sievefilters/views.py:149 msgid "Filter created" msgstr "Filter aangemaakt" -#: extensions/sievefilters/views.py:160 +#: extensions/sievefilters/views.py:163 #: extensions/sievefilters/templatetags/sfilters_tags.py:78 msgid "Edit filter" msgstr "Filter bewerken" -#: extensions/sievefilters/views.py:169 +#: extensions/sievefilters/views.py:172 msgid "Filter modified" msgstr "Filter aangepast" -#: extensions/sievefilters/views.py:192 +#: extensions/sievefilters/views.py:195 msgid "Filter removed" msgstr "Filter verwijderd" -#: extensions/sievefilters/views.py:193 +#: extensions/sievefilters/views.py:196 msgid "Failed to remove filter" msgstr "Mislukt om het filter te verwijderen" -#: extensions/sievefilters/views.py:208 +#: extensions/sievefilters/views.py:211 msgid "Filters set saved" msgstr "Filterset opgeslagen" -#: extensions/sievefilters/views.py:224 +#: extensions/sievefilters/views.py:227 msgid "Filters set created" msgstr "Filterset aangemaakt" -#: extensions/sievefilters/views.py:228 +#: extensions/sievefilters/views.py:231 msgid "Create a new filters set" msgstr "Maak een nieuwe filterset aan" -#: extensions/sievefilters/views.py:247 +#: extensions/sievefilters/views.py:250 msgid "Filters set deleted" msgstr "Filterset verwijderd" -#: extensions/sievefilters/views.py:260 +#: extensions/sievefilters/views.py:263 msgid "Filters set activated" msgstr "Filterset geactiveerd" @@ -2235,7 +2384,9 @@ msgstr "actief" #: extensions/sievefilters/templates/sievefilters/index.html:94 msgid "" "No filters set defined yet. You must create one in order to define filters." -msgstr "Nog geen filterset gedefinieerd. U moet een filterset aanmaken om filters in te kunnen stellen." +msgstr "" +"Nog geen filterset gedefinieerd. U moet een filterset aanmaken om filters in " +"te kunnen stellen." #: extensions/sievefilters/templatetags/sfilters_tags.py:15 msgid "New filters set" @@ -2294,14 +2445,6 @@ msgstr "Map om RRD bestanden op te slaan" msgid "Path to directory where RRD files are stored" msgstr "Locatie van map waar RRD bestanden staan" -#: extensions/stats/app_settings.py:26 -msgid "Directory to store PNG files" -msgstr "Map om PNG bestanden op te slaan" - -#: extensions/stats/app_settings.py:28 -msgid "Path to directory where PNG files are stored" -msgstr "Locatie van map waar de PNG bestanden staan" - #: extensions/stats/general_callbacks.py:12 msgid "Statistics" msgstr "Statistieken" @@ -2355,23 +2498,23 @@ msgstr "verstuurde grootte" msgid "Mail traffic" msgstr "Mailverkeer" -#: extensions/stats/grapher.py:8 +#: extensions/stats/grapher.py:9 msgid "Day" msgstr "Dag" -#: extensions/stats/grapher.py:9 +#: extensions/stats/grapher.py:10 msgid "Week" msgstr "Week" -#: extensions/stats/grapher.py:10 +#: extensions/stats/grapher.py:11 msgid "Month" msgstr "Maand" -#: extensions/stats/grapher.py:11 +#: extensions/stats/grapher.py:12 msgid "Year" msgstr "Jaar" -#: extensions/stats/grapher.py:60 +#: extensions/stats/grapher.py:61 msgid "Total" msgstr "Totaal" @@ -2555,7 +2698,7 @@ msgstr "Antwoord van server" msgid "Unknown action" msgstr "Onbekende actie" -#: extensions/webmail/forms.py:9 +#: extensions/webmail/forms.py:84 msgid "Cci" msgstr "BCc" @@ -2563,78 +2706,79 @@ msgstr "BCc" msgid "Webmail" msgstr "Webmail" -#: extensions/webmail/imaputils.py:242 -msgid "Failed to retrieve hierarchy delimiter" -msgstr "Mislukt om de hiërarchische scheiding te verkrijgen" - -#: extensions/webmail/imaputils.py:283 -#, python-format -msgid "Connection to IMAP server failed: %s" -msgstr "Verbinding met de IMAP server mislukt: %s" - -#: extensions/webmail/lib.py:371 -msgid "wrote:" -msgstr "schreef:" - -#: extensions/webmail/lib.py:437 extensions/webmail/lib.py:441 -msgid "Original message" -msgstr "Oorspronkelijk bericht" - -#: extensions/webmail/views.py:85 +#: extensions/webmail/views.py:87 #, python-format msgid "%(count)d message deleted" msgid_plural "%(count)d messages deleted" msgstr[0] "%(count)d bericht verwijderd" msgstr[1] "%(count)d berichten verwijderd" -#: extensions/webmail/views.py:116 lib/email_listing.py:138 +#: extensions/webmail/views.py:118 lib/email_listing.py:128 msgid "Empty mailbox" msgstr "Mailbox leegmaken" -#: extensions/webmail/views.py:142 +#: extensions/webmail/views.py:144 msgid "Mailbox created" msgstr "Mailbox aangemaakt" -#: extensions/webmail/views.py:148 -#: extensions/webmail/templatetags/webmail_tags.py:175 +#: extensions/webmail/views.py:150 +#: extensions/webmail/templatetags/webmail_tags.py:177 msgid "Create a new mailbox" msgstr "Nieuwe mailbox aanmaken" -#: extensions/webmail/views.py:167 extensions/webmail/views.py:202 +#: extensions/webmail/views.py:169 extensions/webmail/views.py:204 msgid "Edit mailbox" msgstr "Wijzing mailbox" -#: extensions/webmail/views.py:183 +#: extensions/webmail/views.py:185 msgid "Mailbox updated" msgstr "Mailbox aangepast" -#: extensions/webmail/views.py:255 +#: extensions/webmail/views.py:257 msgid "Failed to save attachment: " msgstr "Mislukt om deze bijlage(s) op te slaan:" -#: extensions/webmail/views.py:258 +#: extensions/webmail/views.py:260 #, python-format msgid "Attachment is too big (limit: %s)" msgstr "Bijlage is te groot (maximaal toegestane grootte: %s)" -#: extensions/webmail/views.py:264 +#: extensions/webmail/views.py:266 #: extensions/webmail/templates/webmail/compose.html:15 #: extensions/webmail/templates/webmail/headers.html:4 msgid "Attachments" msgstr "Bijlagen" -#: extensions/webmail/views.py:281 +#: extensions/webmail/views.py:283 msgid "Bad query" msgstr "Verkeerde query" -#: extensions/webmail/views.py:293 +#: extensions/webmail/views.py:295 msgid "Failed to remove attachment: " msgstr "Mislukt om bijlage te verwijderen:" -#: extensions/webmail/views.py:298 +#: extensions/webmail/views.py:300 msgid "Unknown attachment" msgstr "Onbekende bijlage" +#: extensions/webmail/lib/imapemail.py:235 +msgid "wrote:" +msgstr "schreef:" + +#: extensions/webmail/lib/imapemail.py:302 +#: extensions/webmail/lib/imapemail.py:305 +msgid "Original message" +msgstr "Oorspronkelijk bericht" + +#: extensions/webmail/lib/imaputils.py:242 +msgid "Failed to retrieve hierarchy delimiter" +msgstr "Mislukt om de hiërarchische scheiding te verkrijgen" + +#: extensions/webmail/lib/imaputils.py:283 +#, python-format +msgid "Connection to IMAP server failed: %s" +msgstr "Verbinding met de IMAP server mislukt: %s" + #: extensions/webmail/templates/webmail/attachments.html:6 msgid "Attach" msgstr "Bijvoegen" @@ -2662,7 +2806,7 @@ msgstr[1] "%(counter)s bestanden" msgid "Parent mailbox" msgstr "Hoofd mailbox" -#: extensions/webmail/templates/webmail/index.html:40 +#: extensions/webmail/templates/webmail/index.html:42 msgid "Mailbox quota" msgstr "Mailbox limiet" @@ -2722,11 +2866,11 @@ msgstr "Comprimeer map" msgid "Empty folder" msgstr "Lege map" -#: extensions/webmail/templatetags/webmail_tags.py:183 +#: extensions/webmail/templatetags/webmail_tags.py:185 msgid "Edit the selected mailbox" msgstr "Bewerk geselecteerde mailbox" -#: extensions/webmail/templatetags/webmail_tags.py:188 +#: extensions/webmail/templatetags/webmail_tags.py:190 msgid "Remove the selected mailbox" msgstr "Verwijder geselecteerde mailbox" @@ -2773,11 +2917,6 @@ msgstr "Hoofdbeheerder" msgid "Domain administrator" msgstr "Domein administrator" -#: lib/permissions.py:73 -#, python-format -msgid "Failed to grant access (%s)" -msgstr "Mislukt om toegang te verkrijgen (%s)" - #: lib/tables.py:251 msgid "No entries to display" msgstr "Niets om weer te geven" @@ -2839,3 +2978,15 @@ msgstr "Onthoud mij" #: templates/registration/login.html:36 msgid "Log in" msgstr "Inloggen" + +#~ msgid "A domain %s already exists" +#~ msgstr "Een domein %s bestaat al" + +#~ msgid "Directory to store PNG files" +#~ msgstr "Map om PNG bestanden op te slaan" + +#~ msgid "Path to directory where PNG files are stored" +#~ msgstr "Locatie van map waar de PNG bestanden staan" + +#~ msgid "Failed to grant access (%s)" +#~ msgstr "Mislukt om toegang te verkrijgen (%s)" diff --git a/modoboa/locale/nl_NL/LC_MESSAGES/djangojs.po b/modoboa/locale/nl_NL/LC_MESSAGES/djangojs.po index ef85e1053..bccd4c6fc 100644 --- a/modoboa/locale/nl_NL/LC_MESSAGES/djangojs.po +++ b/modoboa/locale/nl_NL/LC_MESSAGES/djangojs.po @@ -1,21 +1,22 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # TuxBrother , 2014 msgid "" msgstr "" "Project-Id-Version: Modoboa\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-12-15 10:16+0100\n" +"POT-Creation-Date: 2014-08-24 12:33+0200\n" "PO-Revision-Date: 2014-04-16 12:58+0000\n" "Last-Translator: TuxBrother \n" -"Language-Team: Dutch (Netherlands) (http://www.transifex.com/projects/p/modoboa/language/nl_NL/)\n" +"Language-Team: Dutch (Netherlands) (http://www.transifex.com/projects/p/" +"modoboa/language/nl_NL/)\n" +"Language: nl_NL\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: nl_NL\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: extensions/admin/static/admin/js/admin.js:32 @@ -28,13 +29,17 @@ msgstr "De map van dit domein niet verwijderen (Zal de data ervan behouden)" #: extensions/admin/static/admin/js/admin.js:173 msgid "This operation will remove ALL data associated to this domain." -msgstr "Deze actie zal ALLE data verwijderen die bij dit domein hoort. Wilt u doorgaan?" +msgstr "" +"Deze actie zal ALLE data verwijderen die bij dit domein hoort. Wilt u " +"doorgaan?" #: extensions/admin/static/admin/js/admin.js:174 msgid "" "This operation will remove all data associated to this domain, excepting " "accounts." -msgstr "Deze actie zal alle data die bij dit domein hoort verwijderen, behalve de gebruikers." +msgstr "" +"Deze actie zal alle data die bij dit domein hoort verwijderen, behalve de " +"gebruikers." #: extensions/admin/static/admin/js/admin.js:222 msgid "No domain administrator defined" @@ -107,18 +112,18 @@ msgstr "Geselecteerde mailbox verwijderen?" msgid "Mailbox removed" msgstr "Mailbox verwijderd" -#: extensions/webmail/static/webmail/js/webmail.js:746 +#: extensions/webmail/static/webmail/js/webmail.js:752 msgid "Message sent" msgstr "Bericht verstuurd" -#: extensions/webmail/static/webmail/js/webmail.js:997 +#: extensions/webmail/static/webmail/js/webmail.js:1003 #, c-format msgid "%s file" msgid_plural "%s files" msgstr[0] "%s bestanden" msgstr[1] "%s bestanden" -#: extensions/webmail/static/webmail/js/webmail.js:1031 +#: extensions/webmail/static/webmail/js/webmail.js:1037 #, c-format msgid "Moving %s message" msgid_plural "Moving %s messages" diff --git a/modoboa/locale/pt_PT/LC_MESSAGES/django.po b/modoboa/locale/pt_PT/LC_MESSAGES/django.po index c31e9f87f..535e422f6 100644 --- a/modoboa/locale/pt_PT/LC_MESSAGES/django.po +++ b/modoboa/locale/pt_PT/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: # ddu17 , 2013 # lusitan , 2013 @@ -13,19 +13,20 @@ msgid "" msgstr "" "Project-Id-Version: Modoboa\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-12-15 10:21+0100\n" +"POT-Creation-Date: 2014-08-24 12:29+0200\n" "PO-Revision-Date: 2013-12-23 11:25+0000\n" "Last-Translator: lusitan \n" -"Language-Team: Portuguese (Portugal) (http://www.transifex.com/projects/p/modoboa/language/pt_PT/)\n" +"Language-Team: Portuguese (Portugal) (http://www.transifex.com/projects/p/" +"modoboa/language/pt_PT/)\n" +"Language: pt_PT\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_PT\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: core/__init__.py:52 core/__init__.py:53 -#: extensions/admin/forms/account.py:326 extensions/admin/forms/domain.py:251 -#: extensions/admin/views/domain.py:95 extensions/admin/views/identity.py:127 +#: extensions/admin/forms/account.py:326 extensions/admin/forms/domain.py:256 +#: extensions/admin/views/domain.py:97 extensions/admin/views/identity.py:129 #: extensions/postfix_autoreply/app_settings.py:11 #: extensions/postfix_relay_domains/forms.py:138 #: extensions/sievefilters/app_settings.py:50 @@ -33,251 +34,271 @@ msgstr "" msgid "General" msgstr "Geral" -#: core/app_settings.py:36 +#: core/app_settings.py:39 msgid "Authentication" msgstr "Autenticação" -#: core/app_settings.py:39 +#: core/app_settings.py:42 msgid "Authentication type" msgstr "Tipo de autenticação" -#: core/app_settings.py:40 +#: core/app_settings.py:43 msgid "Local" msgstr "Local" -#: core/app_settings.py:43 +#: core/app_settings.py:46 msgid "The backend used for authentication" msgstr "Backend usado para autenticação" -#: core/app_settings.py:48 +#: core/app_settings.py:51 msgid "Default password scheme" msgstr "Esquema pré-definido para passwords" -#: core/app_settings.py:51 +#: core/app_settings.py:54 msgid "md5crypt (weak)" msgstr "md5crypt (fraco)" -#: core/app_settings.py:52 +#: core/app_settings.py:55 msgid "sha256 (weak)" msgstr "sha256 (fraco)" -#: core/app_settings.py:53 +#: core/app_settings.py:56 msgid "md5 (weak)" msgstr "md5 (fraco)" -#: core/app_settings.py:54 +#: core/app_settings.py:57 msgid "crypt (weak)" msgstr "crypt (fraco)" -#: core/app_settings.py:55 +#: core/app_settings.py:58 msgid "plain (weak)" msgstr "plain (fraco)" -#: core/app_settings.py:57 +#: core/app_settings.py:60 msgid "Scheme used to crypt mailbox passwords" msgstr "Esquema usado para encriptar as passwords das caixas de correio" -#: core/app_settings.py:61 +#: core/app_settings.py:64 msgid "Rounds" msgstr "" -#: core/app_settings.py:64 +#: core/app_settings.py:67 msgid "" "Number of rounds to use (only used by sha256crypt and sha512crypt). Must be " "between 1000 and 999999999, inclusive." msgstr "" -#: core/app_settings.py:70 +#: core/app_settings.py:73 msgid "Secret key" msgstr "Chave secreta" -#: core/app_settings.py:72 +#: core/app_settings.py:75 msgid "Key used to encrypt/decrypt passwords" msgstr "Chave usada para encriptar/desencriptar passwords" -#: core/app_settings.py:76 +#: core/app_settings.py:79 msgid "LDAP settings" msgstr "Definições do serviço de directório" -#: core/app_settings.py:79 extensions/sievefilters/app_settings.py:22 +#: core/app_settings.py:82 extensions/sievefilters/app_settings.py:22 #: extensions/webmail/app_settings.py:22 extensions/webmail/app_settings.py:42 msgid "Server address" msgstr "Endereço do Servidor" -#: core/app_settings.py:81 +#: core/app_settings.py:85 msgid "The IP address of the DNS name of the LDAP server" msgstr "O endereço IP do servidor de DNS do servidor LDAP" -#: core/app_settings.py:85 extensions/sievefilters/app_settings.py:28 +#: core/app_settings.py:89 extensions/sievefilters/app_settings.py:28 #: extensions/webmail/app_settings.py:34 extensions/webmail/app_settings.py:58 msgid "Server port" msgstr "Porta do Servidor" -#: core/app_settings.py:87 +#: core/app_settings.py:91 msgid "The TCP port number used by the LDAP server" msgstr " A porta TCP usada pelo servidor LDAP" -#: core/app_settings.py:91 extensions/webmail/app_settings.py:28 +#: core/app_settings.py:95 extensions/webmail/app_settings.py:28 msgid "Use a secured connection" msgstr "Utilizar uma ligação segura" -#: core/app_settings.py:93 +#: core/app_settings.py:98 msgid "Use an SSL/TLS connection to access the LDAP server" msgstr "Usar SSL/TLS na ligaçao de acesso ao servidor LDAP" -#: core/app_settings.py:97 +#: core/app_settings.py:102 msgid "Authentication method" msgstr "Método de autenticação" -#: core/app_settings.py:98 +#: core/app_settings.py:103 msgid "Search and bind" msgstr "Procurar e vincular (bind)" -#: core/app_settings.py:99 +#: core/app_settings.py:104 msgid "Direct bind" msgstr "\"Direct bind\"" -#: core/app_settings.py:101 +#: core/app_settings.py:106 msgid "Choose the authentication method to use" msgstr "Escolher o método de autenticação" -#: core/app_settings.py:106 +#: core/app_settings.py:111 msgid "Bind DN" msgstr "\"Bind DN\"" -#: core/app_settings.py:108 +#: core/app_settings.py:114 msgid "" "The distinguished name to use when binding to the LDAP server. Leave empty " "for an anonymous bind" -msgstr "O nome único usado para fazer o \"bind\" ao servidor LDAP. Deixar vario para \"bind\" anónimo" +msgstr "" +"O nome único usado para fazer o \"bind\" ao servidor LDAP. Deixar vario " +"para \"bind\" anónimo" -#: core/app_settings.py:113 +#: core/app_settings.py:121 msgid "Bind password" msgstr "Password para bind" -#: core/app_settings.py:115 +#: core/app_settings.py:124 msgid "The password to use when binding to the LDAP server (with 'Bind DN')" -msgstr "A password usada para fazer o \"bind\" ao servidor LDAP (com 'Bind DN')" +msgstr "" +"A password usada para fazer o \"bind\" ao servidor LDAP (com 'Bind DN')" -#: core/app_settings.py:121 +#: core/app_settings.py:132 msgid "Users search base" msgstr "" -#: core/app_settings.py:123 +#: core/app_settings.py:135 msgid "The distinguished name of the search base used to find users" msgstr "" -#: core/app_settings.py:128 +#: core/app_settings.py:141 msgid "Search filter" msgstr "Filtro de pesquisa" -#: core/app_settings.py:130 +#: core/app_settings.py:144 msgid "" "An optional filter string (e.g. '(objectClass=person)'). In order to be " "valid, it must be enclosed in parentheses." -msgstr "Um filtro opcional (ex: '(objetClass=person)'). Tem de estar entre parênteses para ser válido" +msgstr "" +"Um filtro opcional (ex: '(objetClass=person)'). Tem de estar entre " +"parênteses para ser válido" -#: core/app_settings.py:135 +#: core/app_settings.py:151 msgid "User DN template" msgstr "Template DN de utilizador" -#: core/app_settings.py:137 +#: core/app_settings.py:154 #, python-format msgid "" "The template used to construct a user's DN. It should contain one " "placeholder (ie. %(user)s)" -msgstr "O template usado para construir o DN (nome único). Deve apenas conter um 'placeholder' (ex: %(user)s) " +msgstr "" +"O template usado para construir o DN (nome único). Deve apenas conter um " +"'placeholder' (ex: %(user)s) " -#: core/app_settings.py:142 +#: core/app_settings.py:161 msgid "Password attribute" msgstr "Atributo de palavra-passe" -#: core/app_settings.py:144 +#: core/app_settings.py:163 msgid "The attribute used to store user passwords" msgstr "O atributo utilizado para armazenar palavras-passe" -#: core/app_settings.py:148 +#: core/app_settings.py:167 msgid "Active Directory" msgstr "Active Directory" -#: core/app_settings.py:150 +#: core/app_settings.py:170 msgid "Tell if the LDAP server is an Active Directory one" msgstr "Especificar se o servidor LDAP e um Active Directory" -#: core/app_settings.py:154 +#: core/app_settings.py:174 msgid "Administrator groups" msgstr "" -#: core/app_settings.py:157 +#: core/app_settings.py:177 msgid "" -"Members of those LDAP Posix groups will be created as domain administrators." -" Use ';' characters to separate groups." +"Members of those LDAP Posix groups will be created as domain administrators. " +"Use ';' characters to separate groups." msgstr "" -#: core/app_settings.py:164 +#: core/app_settings.py:184 msgid "Groups search base" msgstr "" -#: core/app_settings.py:167 +#: core/app_settings.py:187 msgid "The distinguished name of the search base used to find groups" msgstr "" -#: core/app_settings.py:172 +#: core/app_settings.py:193 +#, fuzzy +msgid "Domain/mailbox creation" +msgstr "Domínio criado" + +#: core/app_settings.py:196 +msgid "" +"Automatically create a domain and a mailbox when a new user is created just " +"after the first successful authentication." +msgstr "" + +#: core/app_settings.py:201 #: extensions/admin/templates/admin/editdomainform.html:7 msgid "Miscellaneous" msgstr "Vários" -#: core/app_settings.py:175 +#: core/app_settings.py:204 msgid "Maximum log record age" msgstr "Idade máxima do registo no log" -#: core/app_settings.py:177 +#: core/app_settings.py:206 msgid "The maximum age in days of a log record" msgstr "A idade maxima do registo de um log, em dias, e de" -#: core/app_settings.py:181 +#: core/app_settings.py:210 msgid "Items per page" msgstr "Itens por página" -#: core/app_settings.py:183 +#: core/app_settings.py:212 msgid "Number of displayed items per page" msgstr "Número de itens apresentados por página" -#: core/app_settings.py:187 +#: core/app_settings.py:216 msgid "Default top redirection" msgstr "Redirecionamento pré-definido" -#: core/app_settings.py:190 +#: core/app_settings.py:220 msgid "The default redirection used when no application is specified" -msgstr "O redirecionamento padrão usado quando nenhuma aplicação se encontra especificada" +msgstr "" +"O redirecionamento padrão usado quando nenhuma aplicação se encontra " +"especificada" -#: core/app_settings.py:218 +#: core/app_settings.py:249 msgid "Key must be either 16, 24, or 32 bytes long" msgstr "A chave deve ter tamanho de 16, 24, ou 32 bytes" -#: core/app_settings.py:227 extensions/postfix_autoreply/app_settings.py:53 +#: core/app_settings.py:258 extensions/postfix_autoreply/app_settings.py:53 msgid "Invalid syntax" msgstr "Sintax inválida" -#: core/app_settings.py:233 +#: core/app_settings.py:264 msgid "Invalid rounds number" msgstr "" -#: core/app_settings.py:256 +#: core/app_settings.py:287 msgid "This field is required" msgstr "Este campo é obrigatório" -#: core/app_settings.py:317 extensions/amavis/app_settings.py:87 +#: core/app_settings.py:349 extensions/amavis/app_settings.py:87 #: extensions/amavis/templates/amavis/main_action_bar.html:29 #: extensions/webmail/app_settings.py:73 msgid "Display" msgstr "Exibir" -#: core/app_settings.py:321 +#: core/app_settings.py:353 msgid "Prefered language" msgstr "Idioma preferido" -#: core/app_settings.py:327 +#: core/app_settings.py:359 msgid "Prefered language to display pages" msgstr "Idioma preferido para exibir páginas" @@ -330,7 +351,7 @@ msgstr "Falha ao actualizar password: Modulo LDAP não instalado" msgid "account" msgstr "conta" -#: core/models.py:321 extensions/admin/models/domain.py:135 +#: core/models.py:321 extensions/admin/models/domain.py:144 #: extensions/admin/models/domain_alias.py:39 #: extensions/postfix_relay_domains/models.py:134 #: extensions/postfix_relay_domains/models.py:190 @@ -341,17 +362,19 @@ msgstr "Linha inválida" msgid "You can't import an account with a role greater than yours" msgstr "Não é possível importa uma conta com permissões superiores" -#: core/models.py:331 +#: core/models.py:337 #, python-format msgid "The simple user '%s' must have a valid email address" msgstr "O simple utilizador '%s' deve ter endereço de e-mail válido" -#: core/models.py:335 +#: core/models.py:341 #, python-format msgid "username and email fields must not differ for '%s'" -msgstr "Os campos nome de utilizador e endereço de email não deve ser diferente para '%s'" +msgstr "" +"Os campos nome de utilizador e endereço de email não deve ser diferente para " +"'%s'" -#: core/models.py:404 extensions/admin/models/alias.py:33 +#: core/models.py:410 extensions/admin/models/alias.py:35 #: extensions/admin/models/domain.py:32 #: extensions/admin/models/domain_alias.py:17 #: extensions/postfix_autoreply/models.py:28 @@ -360,29 +383,29 @@ msgstr "Os campos nome de utilizador e endereço de email não deve ser diferent msgid "enabled" msgstr "ativo" -#: core/models.py:405 +#: core/models.py:411 msgid "Check to enable this extension" msgstr "Marque para ativar esta extensão" -#: core/models.py:475 +#: core/models.py:491 msgid "added" msgstr "acrescentado" -#: core/models.py:478 +#: core/models.py:494 msgid "modified" msgstr "modificado" -#: core/models.py:480 core/models.py:504 +#: core/models.py:496 core/models.py:521 #, python-format msgid "%(object)s '%(name)s' %(action)s by user %(user)s" msgstr "%(object)s '%(name)s' %(action)s pelo utilizador %(user)s" -#: core/models.py:506 +#: core/models.py:523 msgid "deleted" msgstr "apagado" #: core/tables.py:8 core/templates/core/information.html:8 -#: extensions/admin/tables.py:9 extensions/admin/forms/domain.py:182 +#: extensions/admin/tables.py:9 extensions/admin/forms/domain.py:187 #: extensions/admin/templates/admin/domains_table.html:5 #: extensions/admin/templates/admin/editdomainform.html:13 #: extensions/admin/templates/admin/identities_table.html:5 @@ -444,8 +467,9 @@ msgstr "Logs" msgid "Previously on Modoboa..." msgstr "Anteriormente no Modoboa..." -#: core/templates/core/logs.html:6 extensions/amavis/sql_listing.py:46 -#: extensions/webmail/lib.py:48 extensions/webmail/lib.py:425 +#: core/templates/core/logs.html:6 extensions/amavis/sql_listing.py:44 +#: extensions/webmail/lib/imapemail.py:290 +#: extensions/webmail/lib/listing.py:35 extensions/webmail/lib/tables.py:34 msgid "Date" msgstr "Data" @@ -496,12 +520,12 @@ msgstr "Atualizar o sua informação pessoal" #: core/templates/core/user_profile.html:8 #: extensions/admin/templates/admin/forward.html:8 -#: extensions/admin/views/alias.py:107 extensions/admin/views/domain.py:165 -#: extensions/admin/views/identity.py:197 +#: extensions/admin/views/alias.py:112 extensions/admin/views/domain.py:168 +#: extensions/admin/views/identity.py:200 #: extensions/postfix_autoreply/templates/postfix_autoreply/autoreply.html:9 -#: extensions/postfix_relay_domains/views.py:63 -#: extensions/sievefilters/views.py:163 extensions/webmail/views.py:170 -#: extensions/webmail/views.py:205 +#: extensions/postfix_relay_domains/views.py:66 +#: extensions/sievefilters/views.py:166 extensions/webmail/views.py:172 +#: extensions/webmail/views.py:207 msgid "Update" msgstr "Actualizar" @@ -530,7 +554,7 @@ msgstr "O utilizador '%s' fez login com sucesso" msgid "Your username and password didn't match. Please try again." msgstr "O seu nome de utilizador" -#: core/views/auth.py:66 +#: core/views/auth.py:69 #, python-format msgid "User '%s' logged out" msgstr "O utilizador '%s' fez logout" @@ -564,15 +588,31 @@ msgid "" "\n" "

      Welcome to the online demo!

      \n" "

      Warning: the demo's concent is resetted every two hours.

      \n" -"

      To try the demo, the following users are available (username/password):

      \n" +"

      To try the demo, the following users are available (username/password):

      \n" "
        \n" "
      • A super administrator : admin/password
      • \n" "
      • A domain administrator : admin@demo.local/admin
      • \n" "
      • A simple user : user@demo.local/user
      • \n" "
      \n" "

      Please report any issue or give any suggestion to \n" -" the mailing list.

      \n" -msgstr "\n

      Bem-vindo à demo online!

      \n

      Aviso: os conteúdos desta demo são limpos a cada duas horas.

      \n

      Para experimentar a demo, estão disponíveis os seguintes utilizadores (username/password):

      \n
        \n
      • Super administrador: admin/password
      • \n
      • Administrador de domínio: admin@demo.local/admin
      • \n
      • Utilizador básico: user@demo.local/user
      • \n
      \n

      Para reportar qualquer problema ou apresentar uma sugestão, utilize o seguinte link \n mailing list.

      \n" +" the " +"mailing list.

      \n" +msgstr "" +"\n" +"

      Bem-vindo à demo online!

      \n" +"

      Aviso: os conteúdos desta demo são limpos a cada duas horas.

      \n" +"

      Para experimentar a demo, estão disponíveis os seguintes utilizadores " +"(username/password):

      \n" +"
        \n" +"
      • Super administrador: admin/password
      • \n" +"
      • Administrador de domínio: admin@demo.local/admin
      • \n" +"
      • Utilizador básico: user@demo.local/user
      • \n" +"
      \n" +"

      Para reportar qualquer problema ou apresentar uma sugestão, utilize o " +"seguinte link \n" +" mailing " +"list.

      \n" #: extensions/admin/__init__.py:48 msgid "Administration console" @@ -608,7 +648,17 @@ msgstr "Reencaminhar" msgid "Account import failed (%s): domain does not exist" msgstr "Importação da conta falhou (%s): domínio não existe" -#: extensions/admin/app_settings.py:11 +#: extensions/admin/__init__.py:172 extensions/admin/forms/account.py:196 +#, python-format +msgid "Mailbox %s already exists" +msgstr "Caixa de correio %s já existe" + +#: extensions/admin/__init__.py:180 +#, fuzzy, python-format +msgid "Account import failed (%s): wrong quota value" +msgstr "Importação da conta falhou (%s): domínio não existe" + +#: extensions/admin/app_settings.py:13 #: extensions/admin/templates/admin/editdomainform.html:25 #: extensions/limits/app_settings.py:31 extensions/limits/models.py:23 #: extensions/webmail/app_settings.py:107 @@ -616,43 +666,46 @@ msgstr "Importação da conta falhou (%s): domínio não existe" msgid "Mailboxes" msgstr "Caixas de Correio" -#: extensions/admin/app_settings.py:14 +#: extensions/admin/app_settings.py:16 msgid "Handle mailboxes on filesystem" msgstr "Lidar com caixas de correio no sistema de ficheiros" -#: extensions/admin/app_settings.py:16 +#: extensions/admin/app_settings.py:18 msgid "" "Rename or remove mailboxes on the filesystem when they get renamed or " "removed within Modoboa" -msgstr "Renomear ou remover as caixas de correio no sistema de ficheiros quando estas são renomeadas no Modoboa" +msgstr "" +"Renomear ou remover as caixas de correio no sistema de ficheiros quando " +"estas são renomeadas no Modoboa" -#: extensions/admin/app_settings.py:20 +#: extensions/admin/app_settings.py:22 msgid "Mailboxes owner" msgstr "Detentor das Caixas de Correio (Owner)" -#: extensions/admin/app_settings.py:22 +#: extensions/admin/app_settings.py:24 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" -#: extensions/admin/app_settings.py:26 +#: extensions/admin/app_settings.py:28 msgid "Default domain quota" msgstr "" -#: extensions/admin/app_settings.py:29 +#: extensions/admin/app_settings.py:31 msgid "" "Default quota (in MB) applied to freshly created domains with no value " "specified. A value of 0 means no quota." msgstr "" -#: extensions/admin/app_settings.py:36 +#: extensions/admin/app_settings.py:38 msgid "Automatic account removal" msgstr "Remoção automática de conta" -#: extensions/admin/app_settings.py:38 +#: extensions/admin/app_settings.py:40 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" +msgstr "" +"Ao remover uma caixa de correio estará também a remover a conta associada" -#: extensions/admin/app_settings.py:69 extensions/admin/forms/account.py:178 +#: extensions/admin/app_settings.py:81 extensions/admin/forms/account.py:178 #: extensions/admin/forms/domain.py:56 msgid "Must be a positive integer" msgstr "" @@ -708,7 +761,10 @@ 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 "Quota em MB para esta caixa de correio. Definir uma valor personalizado ou usar o valor predefinido pelo domínio. Deixar em branco para definir uma valor ilimitado (não permitido para administradores do domínio)." +msgstr "" +"Quota em MB para esta caixa de correio. Definir uma valor personalizado ou " +"usar o valor predefinido pelo domínio. Deixar em branco para definir uma " +"valor ilimitado (não permitido para administradores do domínio)." #: extensions/admin/forms/account.py:123 extensions/admin/forms/domain.py:26 #: extensions/admin/templates/admin/domains_table.html:6 @@ -721,18 +777,16 @@ msgid "" "Alias(es) of this mailbox. Indicate only one address per input, press ENTER " "to add a new input. Use the '*' character to create a 'catchall' alias (ex: " "*@domain.tld)." -msgstr "Alias(es) desta caixa de correio. Indique apenas um endereço por entrada, clique ENTER para adicionar uma nova entrada. Use o '*' para criar um alias 'catchall' (ex: *@domain.tld)." +msgstr "" +"Alias(es) desta caixa de correio. Indique apenas um endereço por entrada, " +"clique ENTER para adicionar uma nova entrada. Use o '*' para criar um alias " +"'catchall' (ex: *@domain.tld)." #: extensions/admin/forms/account.py:187 extensions/admin/forms/account.py:217 #: extensions/admin/forms/alias.py:65 msgid "Domain does not exist" msgstr "O domínio não existe" -#: extensions/admin/forms/account.py:196 -#, python-format -msgid "Mailbox %s already exists" -msgstr "Caixa de correio %s já existe" - #: extensions/admin/forms/account.py:284 msgid "Domain(s)" msgstr "Domínio(s)" @@ -742,7 +796,7 @@ msgid "Domain(s) that user administrates" msgstr "Domínio(s) administrado pelo utilizador" #: extensions/admin/forms/account.py:328 -#: extensions/admin/views/identity.py:130 +#: extensions/admin/views/identity.py:132 msgid "Mail" msgstr "Correio" @@ -758,7 +812,9 @@ msgstr "Endereço de e-mail" msgid "" "The distribution list address. Use the '*' character to create a 'catchall' " "address (ex: *@domain.tld)." -msgstr "Os endereços da lista de distribuição. Use o '*' para criar um endereço 'catchall' (Ex: *@domain.tld)." +msgstr "" +"Os endereços da lista de distribuição. Use o '*' para criar um endereço " +"'catchall' (Ex: *@domain.tld)." #: extensions/admin/forms/alias.py:23 msgid "Recipients" @@ -768,7 +824,9 @@ msgstr "Destinatários" msgid "" "Mailbox(es) this alias will point to. Indicate only one address per input, " "press ENTER to add a new input." -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." +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." #: extensions/admin/forms/alias.py:68 msgid "You don't have access to this domain" @@ -778,7 +836,7 @@ msgstr "Não tem acesso a este domínio" msgid "Invalid mailbox" msgstr "Caixa de correio inválida" -#: extensions/admin/forms/alias.py:108 extensions/admin/models/alias.py:182 +#: extensions/admin/forms/alias.py:108 extensions/admin/models/alias.py:194 #, python-format msgid "Local recipient %s not found" msgstr "O destinatário local %s não foi encontrado" @@ -802,7 +860,9 @@ msgstr "" msgid "" "Alias(es) of this domain. Indicate only one name per input, press ENTER to " "add a new input." -msgstr "Alias(es) deste domínio. Indicar apenas um nome por entrada, pressionar ENTER para acrescentar uma nova entrada." +msgstr "" +"Alias(es) deste domínio. Indicar apenas um nome por entrada, pressionar " +"ENTER para acrescentar uma nova entrada." #: extensions/admin/forms/domain.py:75 #: extensions/postfix_relay_domains/forms.py:50 @@ -823,33 +883,35 @@ msgstr "" msgid "domain" msgstr "" -#: extensions/admin/forms/domain.py:176 +#: extensions/admin/forms/domain.py:181 msgid "Create a domain administrator" msgstr "Criar um administrador de domínio" -#: extensions/admin/forms/domain.py:178 +#: extensions/admin/forms/domain.py:183 msgid "Automatically create an administrator for this domain" msgstr "Criar automaticamente um administrador para este domínio" -#: extensions/admin/forms/domain.py:185 +#: extensions/admin/forms/domain.py:190 msgid "" "The administrator's name. Don't include the domain's name here, it will be " "automatically appended." -msgstr "O nome do administrador. Não inclua o nome do domínio já que este será automaticamente anexado." +msgstr "" +"O nome do administrador. Não inclua o nome do domínio já que este será " +"automaticamente anexado." -#: extensions/admin/forms/domain.py:193 +#: extensions/admin/forms/domain.py:198 msgid "Create aliases" msgstr " Criar aliases" -#: extensions/admin/forms/domain.py:195 +#: extensions/admin/forms/domain.py:200 msgid "Automatically create standard aliases for this domain" msgstr "Criar automaticamente aliases para este domínio" -#: extensions/admin/forms/domain.py:211 +#: extensions/admin/forms/domain.py:216 msgid "Invalid format" msgstr "Formato inválido" -#: extensions/admin/forms/domain.py:225 +#: extensions/admin/forms/domain.py:230 #, python-format msgid "User '%s' already exists" msgstr "O utilizador '%s' já existe" @@ -876,15 +938,18 @@ msgstr "Conservar cópias locais" #: extensions/admin/forms/forward.py:20 msgid "Forward messages and store copies into your local mailbox" -msgstr "Reencaminhar mensagens e armazenar cópias na sua caixa de correio local" +msgstr "" +"Reencaminhar mensagens e armazenar cópias na sua caixa de correio local" #: extensions/admin/forms/forward.py:38 msgid "" "You can't define a forward to a local destination. Please ask your " "administrator to create an alias instead." -msgstr "Não é possível definir um reencaminhamento para um destino local. Por favor informe-se junto de um administrador para criar um alias." +msgstr "" +"Não é possível definir um reencaminhamento para um destino local. Por favor " +"informe-se junto de um administrador para criar um alias." -#: extensions/admin/forms/import_.py:6 extensions/webmail/forms.py:26 +#: extensions/admin/forms/import_.py:6 extensions/webmail/forms.py:198 msgid "Select a file" msgstr "Escolha um ficheiro" @@ -904,52 +969,54 @@ msgstr "Passwords encriptadas" 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" -#: extensions/admin/models/alias.py:16 extensions/admin/models/mailbox.py:51 +#: extensions/admin/models/alias.py:18 extensions/admin/models/mailbox.py:62 msgid "address" msgstr "endereços" -#: extensions/admin/models/alias.py:18 +#: extensions/admin/models/alias.py:20 msgid "" -"The alias address (without the domain part). For a 'catch-all' address, just" -" enter an * character." -msgstr "O endereço do alias (sem a parte do domínio). Para um endereço 'cath-all', digite apenas o caractere *" +"The alias address (without the domain part). For a 'catch-all' address, just " +"enter an * character." +msgstr "" +"O endereço do alias (sem a parte do domínio). Para um endereço 'cath-all', " +"digite apenas o caractere *" -#: extensions/admin/models/alias.py:24 +#: extensions/admin/models/alias.py:26 msgid "mailboxes" msgstr "caixas de correio" -#: extensions/admin/models/alias.py:25 +#: extensions/admin/models/alias.py:27 msgid "The mailboxes this alias points to" msgstr "As caixas de correio para onde este alias irá apontar" -#: extensions/admin/models/alias.py:29 +#: extensions/admin/models/alias.py:31 msgid "The aliases this alias points to" msgstr "Este 'aliases' aponta para" -#: extensions/admin/models/alias.py:34 +#: extensions/admin/models/alias.py:36 #: extensions/admin/models/domain_alias.py:18 #: extensions/postfix_relay_domains/models.py:168 msgid "Check to activate this alias" msgstr "Marcar para ativar este alias" -#: extensions/admin/models/alias.py:79 +#: extensions/admin/models/alias.py:81 msgid "distribution list" msgstr "lista de distribuição" -#: extensions/admin/models/alias.py:80 +#: extensions/admin/models/alias.py:82 msgid "forward" msgstr "reencaminhar" -#: extensions/admin/models/alias.py:81 +#: extensions/admin/models/alias.py:83 msgid "alias" msgstr "alias" -#: extensions/admin/models/alias.py:150 +#: extensions/admin/models/alias.py:152 #, python-format msgid "Invalid line: %s" msgstr "Linha inválida: %s" -#: extensions/admin/models/alias.py:155 +#: extensions/admin/models/alias.py:157 #, python-format msgid "Domain '%s' does not exist" msgstr "O domínio '%s' não existe" @@ -976,7 +1043,7 @@ msgstr "Marcar para ativar este domínio" msgid "Domain" msgstr "" -#: extensions/admin/models/domain.py:140 +#: extensions/admin/models/domain.py:155 #, python-format msgid "Invalid quota value for domain '%s'" msgstr "" @@ -995,31 +1062,26 @@ msgstr "alvo" msgid "The domain this alias points to" msgstr "O domínio para o qual este alias irá apontar" -#: extensions/admin/models/domain_alias.py:46 -#, python-format -msgid "A domain %s already exists" -msgstr "" - -#: extensions/admin/models/domain_alias.py:51 +#: extensions/admin/models/domain_alias.py:52 #, python-format msgid "Unknown domain %s" msgstr "Domínio desconhecido: %s" -#: extensions/admin/models/mailbox.py:52 +#: extensions/admin/models/mailbox.py:63 msgid "Mailbox address (without the @domain.tld part)" msgstr "Endereços das caixas de correio (sem a parte @domain.tld)" -#: extensions/admin/models/mailbox.py:113 +#: extensions/admin/models/mailbox.py:125 #, python-format msgid "Failed to retrieve mailbox location (%s)" msgstr "Falha ao recuperar a localização da caixa de correio (%s)" -#: extensions/admin/models/mailbox.py:173 +#: extensions/admin/models/mailbox.py:194 #, python-format msgid "Quota is greater than the allowed domain's limit (%dM)" msgstr "A quota excede o limite permitido pelo domínio (%dM)" -#: extensions/admin/models/mailbox.py:178 +#: extensions/admin/models/mailbox.py:199 msgid "A quota is required" msgstr "É necessário uma quota" @@ -1041,7 +1103,7 @@ msgstr "Tags" #: extensions/admin/templates/admin/domains_table.html:8 #: extensions/admin/templates/admin/identities_table.html:8 #: extensions/admin/templates/admin/listing.html:17 -#: extensions/sievefilters/views.py:93 +#: extensions/sievefilters/views.py:95 #: extensions/sievefilters/templates/sievefilters/filter.html:17 #: extensions/sievefilters/templates/sievefilters/guieditor.html:5 #: extensions/webmail/templatetags/webmail_tags.py:101 @@ -1138,7 +1200,7 @@ msgstr "Adicionar domínio" #: extensions/admin/templatetags/admin_tags.py:42 #: extensions/admin/templatetags/admin_tags.py:106 -#: extensions/admin/views/import.py:51 extensions/admin/views/import.py:166 +#: extensions/admin/views/import.py:52 extensions/admin/views/import.py:168 msgid "Import" msgstr "Importar" @@ -1188,84 +1250,84 @@ msgstr "Eliminar %s?" msgid "Remove this permission" msgstr "Remover esta permissão" -#: extensions/admin/views/alias.py:25 +#: extensions/admin/views/alias.py:26 msgid "Alias with this name already exists" msgstr "Já existe um 'alias' com este nome" -#: extensions/admin/views/alias.py:49 extensions/admin/views/domain.py:100 -#: extensions/admin/views/domain.py:129 extensions/admin/views/identity.py:131 -#: extensions/admin/views/identity.py:158 -#: extensions/postfix_relay_domains/views.py:32 -#: extensions/sievefilters/views.py:141 extensions/sievefilters/views.py:230 -#: extensions/webmail/views.py:151 +#: extensions/admin/views/alias.py:50 extensions/admin/views/domain.py:102 +#: extensions/admin/views/domain.py:131 extensions/admin/views/identity.py:133 +#: extensions/admin/views/identity.py:160 +#: extensions/postfix_relay_domains/views.py:34 +#: extensions/sievefilters/views.py:144 extensions/sievefilters/views.py:233 +#: extensions/webmail/views.py:153 msgid "Create" msgstr "Criar" -#: extensions/admin/views/alias.py:61 +#: extensions/admin/views/alias.py:63 msgid "New distribution list" msgstr "Nova lista de distribuição" -#: extensions/admin/views/alias.py:62 +#: extensions/admin/views/alias.py:64 msgid "Distribution list created" msgstr "A lista de distribuição foi criada" -#: extensions/admin/views/alias.py:71 +#: extensions/admin/views/alias.py:74 msgid "New alias" msgstr "Novo 'alias'" -#: extensions/admin/views/alias.py:72 +#: extensions/admin/views/alias.py:75 msgid "Alias created" msgstr "Alias criado" -#: extensions/admin/views/alias.py:81 +#: extensions/admin/views/alias.py:85 msgid "New forward" msgstr "Novo reencaminhamento" -#: extensions/admin/views/alias.py:82 +#: extensions/admin/views/alias.py:86 msgid "Forward created" msgstr "Reencaminhamento criado" -#: extensions/admin/views/alias.py:95 +#: extensions/admin/views/alias.py:100 msgid "Distribution list modified" msgstr "Lista de distribuição modificada" -#: extensions/admin/views/alias.py:97 +#: extensions/admin/views/alias.py:102 msgid "Forward modified" msgstr "Reencaminhamento modificado" -#: extensions/admin/views/alias.py:99 +#: extensions/admin/views/alias.py:104 msgid "Alias modified" msgstr "'Alias' modificado" -#: extensions/admin/views/domain.py:96 extensions/admin/views/identity.py:128 +#: extensions/admin/views/domain.py:98 extensions/admin/views/identity.py:130 msgid "Next" msgstr "Seguinte" -#: extensions/admin/views/domain.py:99 +#: extensions/admin/views/domain.py:101 msgid "Options" msgstr "Opções" -#: extensions/admin/views/domain.py:101 extensions/admin/views/identity.py:132 +#: extensions/admin/views/domain.py:103 extensions/admin/views/identity.py:134 msgid "Previous" msgstr "Anterior" -#: extensions/admin/views/domain.py:123 +#: extensions/admin/views/domain.py:125 msgid "Domain created" msgstr "Domínio criado" -#: extensions/admin/views/domain.py:128 +#: extensions/admin/views/domain.py:130 msgid "New domain" msgstr "Novo domínio" -#: extensions/admin/views/domain.py:155 +#: extensions/admin/views/domain.py:158 msgid "Domain modified" msgstr "Domínio alterado" -#: extensions/admin/views/domain.py:189 +#: extensions/admin/views/domain.py:192 msgid "You can't delete your own domain" msgstr "Não é possível eliminar o seu próprio domínio" -#: extensions/admin/views/domain.py:192 +#: extensions/admin/views/domain.py:195 msgid "Domain deleted" msgid_plural "Domains deleted" msgstr[0] "Domínio criado" @@ -1279,40 +1341,40 @@ msgstr "Exportar identidades" msgid "Export domains" msgstr "Exportar domínios" -#: extensions/admin/views/identity.py:103 -#: extensions/admin/views/identity.py:224 -#: extensions/admin/views/identity.py:229 extensions/amavis/views.py:179 -#: extensions/amavis/views.py:185 extensions/amavis/views.py:220 -#: extensions/amavis/views.py:224 extensions/amavis/views.py:226 -#: extensions/webmail/views.py:47 extensions/webmail/views.py:65 -#: extensions/webmail/views.py:79 extensions/webmail/views.py:97 -#: extensions/webmail/views.py:114 extensions/webmail/views.py:200 -#: extensions/webmail/views.py:223 extensions/webmail/views.py:396 -#: extensions/webmail/views.py:430 extensions/webmail/views.py:443 -#: extensions/webmail/views.py:472 extensions/webmail/views.py:512 +#: extensions/admin/views/identity.py:104 +#: extensions/admin/views/identity.py:227 +#: extensions/admin/views/identity.py:232 extensions/amavis/views.py:144 +#: extensions/amavis/views.py:148 extensions/amavis/views.py:181 +#: extensions/amavis/views.py:186 extensions/amavis/views.py:188 +#: extensions/webmail/views.py:49 extensions/webmail/views.py:67 +#: extensions/webmail/views.py:81 extensions/webmail/views.py:99 +#: extensions/webmail/views.py:116 extensions/webmail/views.py:202 +#: extensions/webmail/views.py:225 extensions/webmail/views.py:401 +#: extensions/webmail/views.py:451 extensions/webmail/views.py:467 +#: extensions/webmail/views.py:496 extensions/webmail/views.py:536 #: lib/formutils.py:44 lib/formutils.py:49 msgid "Invalid request" msgstr "Pedido inválido" -#: extensions/admin/views/identity.py:149 +#: extensions/admin/views/identity.py:151 msgid "Account created" msgstr "Conta criada" -#: extensions/admin/views/identity.py:155 +#: extensions/admin/views/identity.py:157 msgid "New account" msgstr "Nova conta" -#: extensions/admin/views/identity.py:190 +#: extensions/admin/views/identity.py:193 msgid "Account updated" msgstr "Conta actualizada" -#: extensions/admin/views/identity.py:214 +#: extensions/admin/views/identity.py:217 msgid "Account deleted" msgid_plural "Accounts deleted" msgstr[0] "Conta eliminada" msgstr[1] "Contas eliminadas" -#: extensions/admin/views/import.py:39 +#: extensions/admin/views/import.py:40 #, python-format msgid "" "Provide a CSV file where lines respect one of the following formats:\n" @@ -1321,43 +1383,46 @@ msgid "" "
    • domainalias; name; targeted domain; enabled
    • \n" " %s\n" "
    \n" -"

    The first element of each line is mandatory and must be equal to one of the previous values.

    \n" +"

    The first element of each line is mandatory and must be equal to one of " +"the previous values.

    \n" "

    You can use a different character as separator.

    \n" msgstr "" -#: extensions/admin/views/import.py:50 +#: extensions/admin/views/import.py:51 msgid "Import domains" msgstr "Importar domínios" -#: extensions/admin/views/import.py:129 +#: extensions/admin/views/import.py:131 #, python-format msgid "Object already exists: %s" msgstr "Este objeto já existe: %s" -#: extensions/admin/views/import.py:133 +#: extensions/admin/views/import.py:135 #, python-format msgid "%d objects imported successfully" msgstr "%d objetos importados com sucesso" -#: extensions/admin/views/import.py:153 +#: extensions/admin/views/import.py:155 msgid "" "Provide a CSV file where lines respect one of the following formats:\n" "
      \n" -"
    • account; loginname; password; first name; last name; enabled; group; address; quota; [, domain, ...]
    • \n" +"
    • account; loginname; password; first name; last name; enabled; group; " +"address; quota; [, domain, ...]
    • \n" "
    • alias; address; enabled; internal recipient
    • \n" "
    • forward; address; enabled; external recipient
    • \n" "
    • dlist; address; enabled; recipient; recipient; ...
    • \n" "
    \n" -"

    The first element of each line is mandatory and must be equal to one of the previous values.

    \n" +"

    The first element of each line is mandatory and must be equal to one of " +"the previous values.

    \n" "\n" "

    You can use a different character as separator.

    \n" msgstr "" -#: extensions/admin/views/import.py:165 +#: extensions/admin/views/import.py:167 msgid "Import identities" msgstr "Importar identidades" -#: extensions/admin/views/user.py:37 +#: extensions/admin/views/user.py:38 msgid "Forward updated" msgstr "Reencaminhamento atualizado" @@ -1365,7 +1430,7 @@ msgstr "Reencaminhamento atualizado" msgid "Simple amavis management frontend" msgstr "Interface de gestão básica do amavis" -#: extensions/amavis/__init__.py:52 extensions/amavis/general_callbacks.py:17 +#: extensions/amavis/__init__.py:52 extensions/amavis/general_callbacks.py:18 msgid "Quarantine" msgstr "Quarentena" @@ -1379,7 +1444,9 @@ msgstr "Idade maxima da messagem" #: extensions/amavis/app_settings.py:16 msgid "Quarantine messages maximum age (in days) before deletion" -msgstr "Tempo máximo que as mensagens ficam na quarentena (em dias) até serem eliminadas" +msgstr "" +"Tempo máximo que as mensagens ficam na quarentena (em dias) até serem " +"eliminadas" #: extensions/amavis/app_settings.py:19 msgid "Messages releasing" @@ -1391,7 +1458,9 @@ msgstr "Remover mensagens libertadas" #: extensions/amavis/app_settings.py:24 msgid "Remove messages marked as released while cleaning up the database" -msgstr "Remova as mensagens, marcadas como enviadas, durante a limpeza da base de dados" +msgstr "" +"Remova as mensagens, marcadas como enviadas, durante a limpeza da base de " +"dados" #: extensions/amavis/app_settings.py:28 msgid "Amavis connection mode" @@ -1465,19 +1534,19 @@ msgstr "Número de e-mails a visíveis por página" msgid "Set the maximum number of messages displayed in a page" msgstr "Definir o número máximo de mensagens apresentadas por página" -#: extensions/amavis/general_callbacks.py:81 +#: extensions/amavis/general_callbacks.py:82 msgid "pending requests" msgstr "pedidos pendentes" -#: extensions/amavis/general_callbacks.py:124 +#: extensions/amavis/general_callbacks.py:125 msgid "Pending requests" msgstr "" -#: extensions/amavis/general_callbacks.py:134 +#: extensions/amavis/general_callbacks.py:135 msgid "Content filter" msgstr "Filtro de conteúdo" -#: extensions/amavis/lib.py:57 +#: extensions/amavis/lib.py:56 #, python-format msgid "Connection to amavis failed: %s" msgstr "Não foi possível estabelecer ligação com o amavis: %s" @@ -1487,12 +1556,12 @@ msgid "Virus filter" msgstr "Filtro de vírus" #: extensions/amavis/models.py:94 extensions/amavis/models.py:102 -#: extensions/amavis/models.py:110 extensions/sievefilters/views.py:290 +#: extensions/amavis/models.py:110 extensions/sievefilters/views.py:293 msgid "yes" msgstr "sim" #: extensions/amavis/models.py:95 extensions/amavis/models.py:103 -#: extensions/amavis/models.py:111 extensions/sievefilters/views.py:294 +#: extensions/amavis/models.py:111 extensions/sievefilters/views.py:297 msgid "no" msgstr "não" @@ -1504,7 +1573,9 @@ msgstr "predifinido" #: extensions/amavis/models.py:98 msgid "Bypass virus checks or not. Choose 'default' to use global settings." -msgstr "Ignorar a verificação de vírus ou não. Escolher 'predefinido' para utilizar as definições gerais." +msgstr "" +"Ignorar a verificação de vírus ou não. Escolher 'predefinido' para utilizar " +"as definições gerais." #: extensions/amavis/models.py:101 msgid "Spam filter" @@ -1512,7 +1583,9 @@ msgstr "Filtro de spam" #: extensions/amavis/models.py:106 msgid "Bypass spam checks or not. Choose 'default' to use global settings." -msgstr "Ignorar filtros de spam ou não. Escolher 'predefinido' para utilizar as definições gerais." +msgstr "" +"Ignorar filtros de spam ou não. Escolher 'predefinido' para utilizar as " +"definições gerais." #: extensions/amavis/models.py:109 msgid "Banned filter" @@ -1520,7 +1593,9 @@ msgstr "Ficheiros proibidos" #: extensions/amavis/models.py:114 msgid "Bypass banned checks or not. Choose 'default' to use global settings." -msgstr "Ignorar a verificação de ficheiros proibidos. Escolher 'predefinido' para utilizar as definições gerais." +msgstr "" +"Ignorar a verificação de ficheiros proibidos. Escolher 'predefinido' para " +"utilizar as definições gerais." #: extensions/amavis/models.py:144 msgid "Spam marker" @@ -1528,28 +1603,32 @@ msgstr "Marcador spam" #: extensions/amavis/models.py:146 msgid "" -"Modify spam subject using the specified text. Choose 'default' to use global" -" settings." -msgstr "Modifique o assunto de spam usando o texto especificado. Escolha 'default' para usar as configurações globais." +"Modify spam subject using the specified text. Choose 'default' to use global " +"settings." +msgstr "" +"Modifique o assunto de spam usando o texto especificado. Escolha 'default' " +"para usar as configurações globais." -#: extensions/amavis/sql_listing.py:31 +#: extensions/amavis/sql_listing.py:29 msgid "Score" msgstr "" -#: extensions/amavis/sql_listing.py:35 +#: extensions/amavis/sql_listing.py:33 #: extensions/amavis/templatetags/amavis_tags.py:75 -#: extensions/webmail/forms.py:7 +#: extensions/webmail/forms.py:82 msgid "To" msgstr "Para" -#: extensions/amavis/sql_listing.py:38 -#: extensions/postfix_autoreply/forms.py:11 extensions/webmail/lib.py:44 +#: extensions/amavis/sql_listing.py:36 +#: extensions/postfix_autoreply/forms.py:10 +#: extensions/webmail/lib/listing.py:31 extensions/webmail/lib/tables.py:30 msgid "From" msgstr "De" -#: extensions/amavis/sql_listing.py:42 extensions/sievefilters/forms.py:77 -#: extensions/webmail/forms.py:11 extensions/webmail/lib.py:40 -#: extensions/webmail/lib.py:423 templates/common/email_searchbar.html:6 +#: extensions/amavis/sql_listing.py:40 extensions/sievefilters/forms.py:77 +#: extensions/webmail/forms.py:86 extensions/webmail/lib/imapemail.py:288 +#: extensions/webmail/lib/listing.py:27 extensions/webmail/lib/tables.py:26 +#: templates/common/email_searchbar.html:6 msgid "Subject" msgstr "Assunto" @@ -1557,40 +1636,40 @@ msgstr "Assunto" msgid "Empty quarantine" msgstr "Quarentena vazia" -#: extensions/amavis/views.py:186 +#: extensions/amavis/views.py:149 msgid "Message deleted" msgstr "Mensagem apagada" -#: extensions/amavis/views.py:207 +#: extensions/amavis/views.py:168 #, python-format msgid "%(count)d message deleted successfully" msgid_plural "%(count)d messages deleted successfully" msgstr[0] "%(count)d mensagem eliminada com sucesso" msgstr[1] "%(count)d mensagens eliminadas com sucesso" -#: extensions/amavis/views.py:229 +#: extensions/amavis/views.py:191 msgid "Request sent" msgstr "Pedido enviado" -#: extensions/amavis/views.py:235 +#: extensions/amavis/views.py:197 msgid "Message released" msgstr "Mensagem libertada" -#: extensions/amavis/views.py:268 +#: extensions/amavis/views.py:225 #, python-format msgid "%(count)d request sent" msgid_plural "%(count)d requests sent" msgstr[0] "%(count)d pedido enviado" msgstr[1] "%(count)d pedidos enviados" -#: extensions/amavis/views.py:288 +#: extensions/amavis/views.py:246 #, python-format msgid "%(count)d message released successfully" msgid_plural "%(count)d messages released successfully" msgstr[0] "%(count)d mensagem libertada com sucesso" msgstr[1] "%(count)d mensagens libertadas com sucesso" -#: extensions/amavis/management/commands/amnotify.py:57 +#: extensions/amavis/management/commands/amnotify.py:61 msgid "[modoboa] Pending release requests" msgstr "[modoboa] Pedidos de laçamento pendentes" @@ -1684,8 +1763,12 @@ msgid "" msgid_plural "" "\n" "%(counter)s release requests are pending for action.\n" -msgstr[0] "\n%(counter)s pedido de libertação pendente\n" -msgstr[1] "\n%(counter)s pedidos de libertação pendentes\n" +msgstr[0] "" +"\n" +"%(counter)s pedido de libertação pendente\n" +msgstr[1] "" +"\n" +"%(counter)s pedidos de libertação pendentes\n" #: extensions/amavis/templates/amavis/notifications/pending_requests.html:6 msgid "Sketch:" @@ -1738,9 +1821,10 @@ msgid "Domain admins" msgstr "Administradores de domínio" #: extensions/limits/app_settings.py:15 -msgid "" -"Maximum number of allowed domain administrators for a new administrator" -msgstr "Número máximo permitido de administradores de domínio para um novo administrador" +msgid "Maximum number of allowed domain administrators for a new administrator" +msgstr "" +"Número máximo permitido de administradores de domínio para um novo " +"administrador" #: extensions/limits/app_settings.py:21 msgid "Maximum number of allowed domains for a new administrator" @@ -1748,7 +1832,8 @@ msgstr "Número máximo permitido de domínios para novo administrador" #: extensions/limits/app_settings.py:27 msgid "Maximum number of allowed domain aliases for a new administrator" -msgstr "Número máximo permitido de aliases de domínio para um novo administrador" +msgstr "" +"Número máximo permitido de aliases de domínio para um novo administrador" #: extensions/limits/app_settings.py:33 msgid "Maximum number of allowed mailboxes for a new administrator" @@ -1789,7 +1874,8 @@ msgstr "Recursos insuficientes" #: extensions/limits/models.py:15 msgid "Maximum number of domain administrators this user can create" -msgstr "Número máximo de administradores de domínio que este utilizador pode criar" +msgstr "" +"Número máximo de administradores de domínio que este utilizador pode criar" #: extensions/limits/models.py:18 msgid "Maximum number of domains this user can create" @@ -1805,7 +1891,8 @@ msgstr "Número máximo de caixas de correio que este utilizador por criar" #: extensions/limits/models.py:26 msgid "Maximum number of mailbox aliases this user can create" -msgstr "Número máximo de aliases para caixas de correio que este utilizador por criar" +msgstr "" +"Número máximo de aliases para caixas de correio que este utilizador por criar" #: extensions/limits/models.py:136 msgid "undefined" @@ -1823,7 +1910,7 @@ msgstr "Utilização de recursos" msgid "Auto-reply (vacation) functionality using Postfix" msgstr "Funcionalidade de resposta automática (férias) usando Postfix" -#: extensions/postfix_autoreply/__init__.py:47 +#: extensions/postfix_autoreply/__init__.py:49 msgid "Automatic replies" msgstr "Respostas automáticas" @@ -1833,7 +1920,9 @@ msgstr "Tempo limite de resposta automática" #: extensions/postfix_autoreply/app_settings.py:16 msgid "Timeout in seconds between two auto-replies to the same recipient" -msgstr "Tempo limite em segundos entre duas respostas automáticas para o mesmo destinatário" +msgstr "" +"Tempo limite em segundos entre duas respostas automáticas para o mesmo " +"destinatário" #: extensions/postfix_autoreply/app_settings.py:20 msgid "Default subject" @@ -1868,24 +1957,24 @@ msgid "" "The '%(name)s' macro will be replaced by the user's full name." msgstr "" -#: extensions/postfix_autoreply/forms.py:13 +#: extensions/postfix_autoreply/forms.py:12 msgid "Activate your auto reply from this date" msgstr "" -#: extensions/postfix_autoreply/forms.py:19 +#: extensions/postfix_autoreply/forms.py:18 msgid "Until" msgstr "Até" -#: extensions/postfix_autoreply/forms.py:21 +#: extensions/postfix_autoreply/forms.py:20 msgid "Activate your auto reply until this date" msgstr "Ativar o seu aviso de ausência até esta data" -#: extensions/postfix_autoreply/forms.py:49 #: extensions/postfix_autoreply/forms.py:55 +#: extensions/postfix_autoreply/forms.py:62 msgid "This date is over" msgstr "Esta data ultrapassa" -#: extensions/postfix_autoreply/forms.py:59 +#: extensions/postfix_autoreply/forms.py:67 msgid "Must be greater than start date" msgstr "" @@ -1984,7 +2073,8 @@ msgstr "" #: extensions/postfix_relay_domains/general_callbacks.py:111 msgid "" "\n" -"
  • relaydomain; name; target host; service; enabled; verify recipients
  • \n" +"
  • relaydomain; name; target host; service; enabled; verify recipients
  • \n" "
  • relaydomainalias; name; target; enabled
  • \n" msgstr "" @@ -2029,19 +2119,19 @@ msgstr "" msgid "Relay domain %s does not exist" msgstr "" -#: extensions/postfix_relay_domains/views.py:26 +#: extensions/postfix_relay_domains/views.py:28 msgid "Relay domain created" msgstr "" -#: extensions/postfix_relay_domains/views.py:31 +#: extensions/postfix_relay_domains/views.py:33 msgid "New relay domain" msgstr "" -#: extensions/postfix_relay_domains/views.py:54 +#: extensions/postfix_relay_domains/views.py:57 msgid "Relay domain modified" msgstr "" -#: extensions/postfix_relay_domains/views.py:77 +#: extensions/postfix_relay_domains/views.py:80 msgid "Relay domain deleted" msgstr "" @@ -2135,7 +2225,7 @@ msgstr "Remetente" msgid "Recipient" msgstr "Destinatário" -#: extensions/sievefilters/forms.py:80 extensions/webmail/forms.py:8 +#: extensions/sievefilters/forms.py:80 extensions/webmail/forms.py:83 msgid "Cc" msgstr "Cc" @@ -2159,6 +2249,11 @@ msgstr "Mover mensagens para" msgid "Redirect message to" msgstr "Reencaminhar mensagens para" +#: extensions/sievefilters/forms.py:104 +#, fuzzy +msgid "Wrong filter name" +msgstr "Nome do ficheiro" + #: extensions/sievefilters/lib.py:40 msgid "Connection to MANAGESIEVE server failed, check your configuration" msgstr "Ligação ao servidor MANAGESIEVE falhou, valide a configuração" @@ -2167,53 +2262,53 @@ msgstr "Ligação ao servidor MANAGESIEVE falhou, valide a configuração" msgid "Not enough space on server" msgstr "Espaço insuficiente no servidor" -#: extensions/sievefilters/views.py:78 +#: extensions/sievefilters/views.py:80 msgid "Failed to retrieve filters set" msgstr "Falha ao recuperar os filtros definidos" -#: extensions/sievefilters/views.py:138 +#: extensions/sievefilters/views.py:141 #: extensions/sievefilters/templatetags/sfilters_tags.py:33 msgid "New filter" msgstr "Novo filtro" -#: extensions/sievefilters/views.py:146 +#: extensions/sievefilters/views.py:149 msgid "Filter created" msgstr "Filtro criado" -#: extensions/sievefilters/views.py:160 +#: extensions/sievefilters/views.py:163 #: extensions/sievefilters/templatetags/sfilters_tags.py:78 msgid "Edit filter" msgstr "Editar filtro" -#: extensions/sievefilters/views.py:169 +#: extensions/sievefilters/views.py:172 msgid "Filter modified" msgstr "Filtro modificado" -#: extensions/sievefilters/views.py:192 +#: extensions/sievefilters/views.py:195 msgid "Filter removed" msgstr "Filtro removido" -#: extensions/sievefilters/views.py:193 +#: extensions/sievefilters/views.py:196 msgid "Failed to remove filter" msgstr "Falha ao remover filtro" -#: extensions/sievefilters/views.py:208 +#: extensions/sievefilters/views.py:211 msgid "Filters set saved" msgstr "Grupo de filtros guardado" -#: extensions/sievefilters/views.py:224 +#: extensions/sievefilters/views.py:227 msgid "Filters set created" msgstr "Grupo de filtros criado" -#: extensions/sievefilters/views.py:228 +#: extensions/sievefilters/views.py:231 msgid "Create a new filters set" msgstr "Criar novo grupo de filtros" -#: extensions/sievefilters/views.py:247 +#: extensions/sievefilters/views.py:250 msgid "Filters set deleted" msgstr "Grupo de filtros eliminado" -#: extensions/sievefilters/views.py:260 +#: extensions/sievefilters/views.py:263 msgid "Filters set activated" msgstr "Grupo de filtros ativado" @@ -2240,7 +2335,8 @@ msgstr "ativo" #: extensions/sievefilters/templates/sievefilters/index.html:94 msgid "" "No filters set defined yet. You must create one in order to define filters." -msgstr "Não existem grupos de filtros. Terá de criar um para poder definir filtros." +msgstr "" +"Não existem grupos de filtros. Terá de criar um para poder definir filtros." #: extensions/sievefilters/templatetags/sfilters_tags.py:15 msgid "New filters set" @@ -2299,14 +2395,6 @@ msgstr "Diretório para armazenar os ficheiros RRD" msgid "Path to directory where RRD files are stored" msgstr "Caminho para o diretório onde os ficheiros RRD são guardados" -#: extensions/stats/app_settings.py:26 -msgid "Directory to store PNG files" -msgstr "Diretório para armazenar os ficheiros PNG" - -#: extensions/stats/app_settings.py:28 -msgid "Path to directory where PNG files are stored" -msgstr "Caminho para o diretório PNG onde os ficheiros são guardados" - #: extensions/stats/general_callbacks.py:12 msgid "Statistics" msgstr "Estatísticas" @@ -2360,23 +2448,23 @@ msgstr "tamanho enviado" msgid "Mail traffic" msgstr "Tráfego de correio" -#: extensions/stats/grapher.py:8 +#: extensions/stats/grapher.py:9 msgid "Day" msgstr "Dia" -#: extensions/stats/grapher.py:9 +#: extensions/stats/grapher.py:10 msgid "Week" msgstr "Semana" -#: extensions/stats/grapher.py:10 +#: extensions/stats/grapher.py:11 msgid "Month" msgstr "Mês" -#: extensions/stats/grapher.py:11 +#: extensions/stats/grapher.py:12 msgid "Year" msgstr "Ano" -#: extensions/stats/grapher.py:60 +#: extensions/stats/grapher.py:61 msgid "Total" msgstr "Total" @@ -2560,7 +2648,7 @@ msgstr "Resposta do servidor" msgid "Unknown action" msgstr "Acção desconhecida" -#: extensions/webmail/forms.py:9 +#: extensions/webmail/forms.py:84 msgid "Cci" msgstr "Cci" @@ -2568,78 +2656,79 @@ msgstr "Cci" msgid "Webmail" msgstr "Webmail" -#: extensions/webmail/imaputils.py:242 -msgid "Failed to retrieve hierarchy delimiter" -msgstr "Falha ao recuperar hierarquia delimitador" - -#: extensions/webmail/imaputils.py:283 -#, python-format -msgid "Connection to IMAP server failed: %s" -msgstr "A ligação ao servidor IMAP falhou: %s" - -#: extensions/webmail/lib.py:371 -msgid "wrote:" -msgstr "escreveu:" - -#: extensions/webmail/lib.py:437 extensions/webmail/lib.py:441 -msgid "Original message" -msgstr "Mensagem original" - -#: extensions/webmail/views.py:85 +#: extensions/webmail/views.py:87 #, python-format msgid "%(count)d message deleted" msgid_plural "%(count)d messages deleted" msgstr[0] "%(count)d mensagens eliminadas" msgstr[1] "%(count)d mensagens eliminadas" -#: extensions/webmail/views.py:116 lib/email_listing.py:138 +#: extensions/webmail/views.py:118 lib/email_listing.py:128 msgid "Empty mailbox" msgstr "Caixa de correio vazia" -#: extensions/webmail/views.py:142 +#: extensions/webmail/views.py:144 msgid "Mailbox created" msgstr "Caixa de correio criada" -#: extensions/webmail/views.py:148 -#: extensions/webmail/templatetags/webmail_tags.py:175 +#: extensions/webmail/views.py:150 +#: extensions/webmail/templatetags/webmail_tags.py:177 msgid "Create a new mailbox" msgstr "Criar nova caixa de correio" -#: extensions/webmail/views.py:167 extensions/webmail/views.py:202 +#: extensions/webmail/views.py:169 extensions/webmail/views.py:204 msgid "Edit mailbox" msgstr "Editar caixa de correio" -#: extensions/webmail/views.py:183 +#: extensions/webmail/views.py:185 msgid "Mailbox updated" msgstr "Caixa de correio actualizada" -#: extensions/webmail/views.py:255 +#: extensions/webmail/views.py:257 msgid "Failed to save attachment: " msgstr "Falha ao salvar o anexo:" -#: extensions/webmail/views.py:258 +#: extensions/webmail/views.py:260 #, python-format msgid "Attachment is too big (limit: %s)" msgstr "Anexo demasiado grande (limite %s)" -#: extensions/webmail/views.py:264 +#: extensions/webmail/views.py:266 #: extensions/webmail/templates/webmail/compose.html:15 #: extensions/webmail/templates/webmail/headers.html:4 msgid "Attachments" msgstr "Anexos" -#: extensions/webmail/views.py:281 +#: extensions/webmail/views.py:283 msgid "Bad query" msgstr "Pesquisa inválida" -#: extensions/webmail/views.py:293 +#: extensions/webmail/views.py:295 msgid "Failed to remove attachment: " msgstr "Falha ao remover os anexos:" -#: extensions/webmail/views.py:298 +#: extensions/webmail/views.py:300 msgid "Unknown attachment" msgstr "Anexo desconhecido" +#: extensions/webmail/lib/imapemail.py:235 +msgid "wrote:" +msgstr "escreveu:" + +#: extensions/webmail/lib/imapemail.py:302 +#: extensions/webmail/lib/imapemail.py:305 +msgid "Original message" +msgstr "Mensagem original" + +#: extensions/webmail/lib/imaputils.py:242 +msgid "Failed to retrieve hierarchy delimiter" +msgstr "Falha ao recuperar hierarquia delimitador" + +#: extensions/webmail/lib/imaputils.py:283 +#, python-format +msgid "Connection to IMAP server failed: %s" +msgstr "A ligação ao servidor IMAP falhou: %s" + #: extensions/webmail/templates/webmail/attachments.html:6 msgid "Attach" msgstr "Anexar" @@ -2667,7 +2756,7 @@ msgstr[1] "%(counter)s ficheiros" msgid "Parent mailbox" msgstr "Caixa de correio principal" -#: extensions/webmail/templates/webmail/index.html:40 +#: extensions/webmail/templates/webmail/index.html:42 msgid "Mailbox quota" msgstr "Quota da caixa de correio" @@ -2727,11 +2816,11 @@ msgstr "Comprimir pasta" msgid "Empty folder" msgstr "Esvaziar pasta" -#: extensions/webmail/templatetags/webmail_tags.py:183 +#: extensions/webmail/templatetags/webmail_tags.py:185 msgid "Edit the selected mailbox" msgstr "Editar caixa de correio selecionada" -#: extensions/webmail/templatetags/webmail_tags.py:188 +#: extensions/webmail/templatetags/webmail_tags.py:190 msgid "Remove the selected mailbox" msgstr "Eliminar caixa de correio selecionada" @@ -2778,11 +2867,6 @@ msgstr "Super Administrador" msgid "Domain administrator" msgstr "Administrador de domínio" -#: lib/permissions.py:73 -#, python-format -msgid "Failed to grant access (%s)" -msgstr "Falha ao conceder acesso (%s)" - #: lib/tables.py:251 msgid "No entries to display" msgstr "Não há dados para apresentar" @@ -2844,3 +2928,12 @@ msgstr "Lembrar-me" #: templates/registration/login.html:36 msgid "Log in" msgstr "Entrar" + +#~ msgid "Directory to store PNG files" +#~ msgstr "Diretório para armazenar os ficheiros PNG" + +#~ msgid "Path to directory where PNG files are stored" +#~ msgstr "Caminho para o diretório PNG onde os ficheiros são guardados" + +#~ msgid "Failed to grant access (%s)" +#~ msgstr "Falha ao conceder acesso (%s)" diff --git a/modoboa/locale/pt_PT/LC_MESSAGES/djangojs.po b/modoboa/locale/pt_PT/LC_MESSAGES/djangojs.po index 9e2768f05..b89b1754d 100644 --- a/modoboa/locale/pt_PT/LC_MESSAGES/djangojs.po +++ b/modoboa/locale/pt_PT/LC_MESSAGES/djangojs.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # lusitan , 2013 # mikec , 2012 @@ -10,14 +10,15 @@ msgid "" msgstr "" "Project-Id-Version: Modoboa\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-12-15 10:16+0100\n" +"POT-Creation-Date: 2014-08-24 12:33+0200\n" "PO-Revision-Date: 2013-12-23 11:22+0000\n" "Last-Translator: lusitan \n" -"Language-Team: Portuguese (Portugal) (http://www.transifex.com/projects/p/modoboa/language/pt_PT/)\n" +"Language-Team: Portuguese (Portugal) (http://www.transifex.com/projects/p/" +"modoboa/language/pt_PT/)\n" +"Language: pt_PT\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_PT\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: extensions/admin/static/admin/js/admin.js:32 @@ -36,7 +37,9 @@ msgstr "Esta operação irá remover TODOS os dados associados a este domínio." msgid "" "This operation will remove all data associated to this domain, excepting " "accounts." -msgstr "Esta operação irá remover TODOS os dados associados a este domínio, excepto as contas." +msgstr "" +"Esta operação irá remover TODOS os dados associados a este domínio, excepto " +"as contas." #: extensions/admin/static/admin/js/admin.js:222 msgid "No domain administrator defined" @@ -109,18 +112,18 @@ msgstr "Remover a caixa de correio seleccionada" msgid "Mailbox removed" msgstr "Caixa removida" -#: extensions/webmail/static/webmail/js/webmail.js:746 +#: extensions/webmail/static/webmail/js/webmail.js:752 msgid "Message sent" msgstr "Mensagem enviada" -#: extensions/webmail/static/webmail/js/webmail.js:997 +#: extensions/webmail/static/webmail/js/webmail.js:1003 #, c-format msgid "%s file" msgid_plural "%s files" msgstr[0] "%s ficheiro" msgstr[1] "%s ficheiros" -#: extensions/webmail/static/webmail/js/webmail.js:1031 +#: extensions/webmail/static/webmail/js/webmail.js:1037 #, c-format msgid "Moving %s message" msgid_plural "Moving %s messages" diff --git a/modoboa/locale/ru/LC_MESSAGES/django.po b/modoboa/locale/ru/LC_MESSAGES/django.po index f1d8082af..4f04c2f31 100644 --- a/modoboa/locale/ru/LC_MESSAGES/django.po +++ b/modoboa/locale/ru/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Modoboa\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-12-15 10:20+0100\n" +"POT-Creation-Date: 2014-08-24 12:28+0200\n" "PO-Revision-Date: 2013-12-03 09:35+0000\n" "Last-Translator: Antoine Nguyen \n" "Language-Team: Russian (http://www.transifex.com/projects/p/modoboa/language/" @@ -20,8 +20,8 @@ msgstr "" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" #: core/__init__.py:52 core/__init__.py:53 -#: extensions/admin/forms/account.py:326 extensions/admin/forms/domain.py:251 -#: extensions/admin/views/domain.py:95 extensions/admin/views/identity.py:127 +#: extensions/admin/forms/account.py:326 extensions/admin/forms/domain.py:256 +#: extensions/admin/views/domain.py:97 extensions/admin/views/identity.py:129 #: extensions/postfix_autoreply/app_settings.py:11 #: extensions/postfix_relay_domains/forms.py:138 #: extensions/sievefilters/app_settings.py:50 @@ -29,119 +29,119 @@ msgstr "" msgid "General" msgstr "Основные" -#: core/app_settings.py:36 +#: core/app_settings.py:39 msgid "Authentication" msgstr "Аутентификация" -#: core/app_settings.py:39 +#: core/app_settings.py:42 msgid "Authentication type" msgstr "Тип аутентификации" -#: core/app_settings.py:40 +#: core/app_settings.py:43 msgid "Local" msgstr "Локальный" -#: core/app_settings.py:43 +#: core/app_settings.py:46 msgid "The backend used for authentication" msgstr "Базовая программа для проверки подлинности" -#: core/app_settings.py:48 +#: core/app_settings.py:51 msgid "Default password scheme" msgstr "Схема пароля по умолчанию" -#: core/app_settings.py:51 +#: core/app_settings.py:54 msgid "md5crypt (weak)" msgstr "" -#: core/app_settings.py:52 +#: core/app_settings.py:55 msgid "sha256 (weak)" msgstr "" -#: core/app_settings.py:53 +#: core/app_settings.py:56 msgid "md5 (weak)" msgstr "" -#: core/app_settings.py:54 +#: core/app_settings.py:57 msgid "crypt (weak)" msgstr "" -#: core/app_settings.py:55 +#: core/app_settings.py:58 msgid "plain (weak)" msgstr "" -#: core/app_settings.py:57 +#: core/app_settings.py:60 msgid "Scheme used to crypt mailbox passwords" msgstr "Схема используемая для шифровании пароля почтового ящика." -#: core/app_settings.py:61 +#: core/app_settings.py:64 msgid "Rounds" msgstr "" -#: core/app_settings.py:64 +#: core/app_settings.py:67 msgid "" "Number of rounds to use (only used by sha256crypt and sha512crypt). Must be " "between 1000 and 999999999, inclusive." msgstr "" -#: core/app_settings.py:70 +#: core/app_settings.py:73 msgid "Secret key" msgstr "Секретный ключ" -#: core/app_settings.py:72 +#: core/app_settings.py:75 msgid "Key used to encrypt/decrypt passwords" msgstr "Ключ для шифрования паролей" -#: core/app_settings.py:76 +#: core/app_settings.py:79 msgid "LDAP settings" msgstr "Параметры LDAP" -#: core/app_settings.py:79 extensions/sievefilters/app_settings.py:22 +#: core/app_settings.py:82 extensions/sievefilters/app_settings.py:22 #: extensions/webmail/app_settings.py:22 extensions/webmail/app_settings.py:42 msgid "Server address" msgstr "Адрес сервера" -#: core/app_settings.py:81 +#: core/app_settings.py:85 msgid "The IP address of the DNS name of the LDAP server" msgstr "IP адрес или DNS имя сервера LDAP" -#: core/app_settings.py:85 extensions/sievefilters/app_settings.py:28 +#: core/app_settings.py:89 extensions/sievefilters/app_settings.py:28 #: extensions/webmail/app_settings.py:34 extensions/webmail/app_settings.py:58 msgid "Server port" msgstr "Порт сервера" -#: core/app_settings.py:87 +#: core/app_settings.py:91 msgid "The TCP port number used by the LDAP server" msgstr "Номер TCP порта LDAP сервера" -#: core/app_settings.py:91 extensions/webmail/app_settings.py:28 +#: core/app_settings.py:95 extensions/webmail/app_settings.py:28 msgid "Use a secured connection" msgstr "Использовать безопасное соединение" -#: core/app_settings.py:93 +#: core/app_settings.py:98 msgid "Use an SSL/TLS connection to access the LDAP server" msgstr "Использовать SSL/TLS соединение с LDAP сервером" -#: core/app_settings.py:97 +#: core/app_settings.py:102 msgid "Authentication method" msgstr "Метод аутентификации" -#: core/app_settings.py:98 +#: core/app_settings.py:103 msgid "Search and bind" msgstr "Найти и соединиться" -#: core/app_settings.py:99 +#: core/app_settings.py:104 msgid "Direct bind" msgstr "Прямое соединение" -#: core/app_settings.py:101 +#: core/app_settings.py:106 msgid "Choose the authentication method to use" msgstr "Выберите метод аутентификации " -#: core/app_settings.py:106 +#: core/app_settings.py:111 msgid "Bind DN" msgstr "Соединится с DN " -#: core/app_settings.py:108 +#: core/app_settings.py:114 msgid "" "The distinguished name to use when binding to the LDAP server. Leave empty " "for an anonymous bind" @@ -149,27 +149,27 @@ msgstr "" "Отличительное имя используемое для соединения с LDAP сервером. Оставьте " "пустым для анонимного соединения" -#: core/app_settings.py:113 +#: core/app_settings.py:121 msgid "Bind password" msgstr "Пароль для соединения" -#: core/app_settings.py:115 +#: core/app_settings.py:124 msgid "The password to use when binding to the LDAP server (with 'Bind DN')" msgstr "Пароль для соединения с LDAP сервером" -#: core/app_settings.py:121 +#: core/app_settings.py:132 msgid "Users search base" msgstr "" -#: core/app_settings.py:123 +#: core/app_settings.py:135 msgid "The distinguished name of the search base used to find users" msgstr "" -#: core/app_settings.py:128 +#: core/app_settings.py:141 msgid "Search filter" msgstr "Фильтр поиска" -#: core/app_settings.py:130 +#: core/app_settings.py:144 msgid "" "An optional filter string (e.g. '(objectClass=person)'). In order to be " "valid, it must be enclosed in parentheses." @@ -177,11 +177,11 @@ msgstr "" "Необязательная срока поиска (например '(objectClass=person)') Значение нужно " "заключить в скобки" -#: core/app_settings.py:135 +#: core/app_settings.py:151 msgid "User DN template" msgstr "Шаблон пользователя DN" -#: core/app_settings.py:137 +#: core/app_settings.py:154 #, python-format msgid "" "The template used to construct a user's DN. It should contain one " @@ -190,96 +190,107 @@ msgstr "" "Шаблон используется для построения запросов к DN Он должен содержать атрибут " "например (%(user)s)" -#: core/app_settings.py:142 +#: core/app_settings.py:161 msgid "Password attribute" msgstr "Свойства пароля" -#: core/app_settings.py:144 +#: core/app_settings.py:163 msgid "The attribute used to store user passwords" msgstr "Свойства используемые для сохранения пользовательских паролей" -#: core/app_settings.py:148 +#: core/app_settings.py:167 msgid "Active Directory" msgstr "Active Directory" -#: core/app_settings.py:150 +#: core/app_settings.py:170 msgid "Tell if the LDAP server is an Active Directory one" msgstr "Укажите, если LDAP сервер в Active Directory" -#: core/app_settings.py:154 +#: core/app_settings.py:174 msgid "Administrator groups" msgstr "" -#: core/app_settings.py:157 +#: core/app_settings.py:177 msgid "" "Members of those LDAP Posix groups will be created as domain administrators. " "Use ';' characters to separate groups." msgstr "" -#: core/app_settings.py:164 +#: core/app_settings.py:184 msgid "Groups search base" msgstr "" -#: core/app_settings.py:167 +#: core/app_settings.py:187 msgid "The distinguished name of the search base used to find groups" msgstr "" -#: core/app_settings.py:172 +#: core/app_settings.py:193 +#, fuzzy +msgid "Domain/mailbox creation" +msgstr "Домен создан" + +#: core/app_settings.py:196 +msgid "" +"Automatically create a domain and a mailbox when a new user is created just " +"after the first successful authentication." +msgstr "" + +#: core/app_settings.py:201 #: extensions/admin/templates/admin/editdomainform.html:7 msgid "Miscellaneous" msgstr "Прочее" -#: core/app_settings.py:175 +#: core/app_settings.py:204 msgid "Maximum log record age" msgstr "Максимальный срок хранения лог записей" -#: core/app_settings.py:177 +#: core/app_settings.py:206 msgid "The maximum age in days of a log record" msgstr "Срок хранения лог записей в днях " -#: core/app_settings.py:181 +#: core/app_settings.py:210 msgid "Items per page" msgstr "Элементов на странице" -#: core/app_settings.py:183 +#: core/app_settings.py:212 msgid "Number of displayed items per page" msgstr "Количество элементов на странице" -#: core/app_settings.py:187 +#: core/app_settings.py:216 msgid "Default top redirection" msgstr "Порог перенаправления по умолчанию" -#: core/app_settings.py:190 +#: core/app_settings.py:220 msgid "The default redirection used when no application is specified" msgstr "Если приложение не указано. Используется перенаправление по умолчанию." -#: core/app_settings.py:218 +#: core/app_settings.py:249 msgid "Key must be either 16, 24, or 32 bytes long" msgstr "Ключ должен быть 16, 24 или 32 байта длинной" -#: core/app_settings.py:227 extensions/postfix_autoreply/app_settings.py:53 +#: core/app_settings.py:258 extensions/postfix_autoreply/app_settings.py:53 msgid "Invalid syntax" msgstr "Ошибка в написании" -#: core/app_settings.py:233 +#: core/app_settings.py:264 msgid "Invalid rounds number" msgstr "" -#: core/app_settings.py:256 +#: core/app_settings.py:287 msgid "This field is required" msgstr "Это поле обязательно для заполнеия" -#: core/app_settings.py:317 extensions/amavis/app_settings.py:87 +#: core/app_settings.py:349 extensions/amavis/app_settings.py:87 #: extensions/amavis/templates/amavis/main_action_bar.html:29 #: extensions/webmail/app_settings.py:73 msgid "Display" msgstr "Отображение" -#: core/app_settings.py:321 +#: core/app_settings.py:353 msgid "Prefered language" msgstr "Предпочитаемый язык" -#: core/app_settings.py:327 +#: core/app_settings.py:359 msgid "Prefered language to display pages" msgstr "Предпочитаемый язык для отображения страниц" @@ -332,7 +343,7 @@ msgstr "Ошибка обновления пароля: модуль LDAP не msgid "account" msgstr "Аккаунт" -#: core/models.py:321 extensions/admin/models/domain.py:135 +#: core/models.py:321 extensions/admin/models/domain.py:144 #: extensions/admin/models/domain_alias.py:39 #: extensions/postfix_relay_domains/models.py:134 #: extensions/postfix_relay_domains/models.py:190 @@ -343,17 +354,17 @@ msgstr "Ошибочная строка" msgid "You can't import an account with a role greater than yours" msgstr "Вы не можете импортировать аккаунт с ролью старше чем у вас" -#: core/models.py:331 +#: core/models.py:337 #, python-format msgid "The simple user '%s' must have a valid email address" msgstr "Пользователь '%s' должен иметь действительный почтовый адрес" -#: core/models.py:335 +#: core/models.py:341 #, python-format msgid "username and email fields must not differ for '%s'" msgstr "Имя пользователя и адрес не должны отличатся для пользователя '%s'" -#: core/models.py:404 extensions/admin/models/alias.py:33 +#: core/models.py:410 extensions/admin/models/alias.py:35 #: extensions/admin/models/domain.py:32 #: extensions/admin/models/domain_alias.py:17 #: extensions/postfix_autoreply/models.py:28 @@ -362,29 +373,29 @@ msgstr "Имя пользователя и адрес не должны отли msgid "enabled" msgstr "Разрешен" -#: core/models.py:405 +#: core/models.py:411 msgid "Check to enable this extension" msgstr "Отметить для разрешения этого расширения" -#: core/models.py:475 +#: core/models.py:491 msgid "added" msgstr "добавлено" -#: core/models.py:478 +#: core/models.py:494 msgid "modified" msgstr "изменено" -#: core/models.py:480 core/models.py:504 +#: core/models.py:496 core/models.py:521 #, python-format msgid "%(object)s '%(name)s' %(action)s by user %(user)s" msgstr "%(object)s '%(name)s' %(action)s пользователем %(user)s" -#: core/models.py:506 +#: core/models.py:523 msgid "deleted" msgstr "удалено" #: core/tables.py:8 core/templates/core/information.html:8 -#: extensions/admin/tables.py:9 extensions/admin/forms/domain.py:182 +#: extensions/admin/tables.py:9 extensions/admin/forms/domain.py:187 #: extensions/admin/templates/admin/domains_table.html:5 #: extensions/admin/templates/admin/editdomainform.html:13 #: extensions/admin/templates/admin/identities_table.html:5 @@ -446,8 +457,9 @@ msgstr "Логи" msgid "Previously on Modoboa..." msgstr "Ранее в Modoboa ..." -#: core/templates/core/logs.html:6 extensions/amavis/sql_listing.py:46 -#: extensions/webmail/lib.py:48 extensions/webmail/lib.py:425 +#: core/templates/core/logs.html:6 extensions/amavis/sql_listing.py:44 +#: extensions/webmail/lib/imapemail.py:290 +#: extensions/webmail/lib/listing.py:35 extensions/webmail/lib/tables.py:34 msgid "Date" msgstr "Дата" @@ -498,12 +510,12 @@ msgstr "Обновить личную информацию" #: core/templates/core/user_profile.html:8 #: extensions/admin/templates/admin/forward.html:8 -#: extensions/admin/views/alias.py:107 extensions/admin/views/domain.py:165 -#: extensions/admin/views/identity.py:197 +#: extensions/admin/views/alias.py:112 extensions/admin/views/domain.py:168 +#: extensions/admin/views/identity.py:200 #: extensions/postfix_autoreply/templates/postfix_autoreply/autoreply.html:9 -#: extensions/postfix_relay_domains/views.py:63 -#: extensions/sievefilters/views.py:163 extensions/webmail/views.py:170 -#: extensions/webmail/views.py:205 +#: extensions/postfix_relay_domains/views.py:66 +#: extensions/sievefilters/views.py:166 extensions/webmail/views.py:172 +#: extensions/webmail/views.py:207 msgid "Update" msgstr "Обновление" @@ -532,7 +544,7 @@ msgstr "Пользователь '%s' успешно вошел в систем msgid "Your username and password didn't match. Please try again." msgstr "Не правильное имя или пароль. Попробуйте еще раз." -#: core/views/auth.py:66 +#: core/views/auth.py:69 #, python-format msgid "User '%s' logged out" msgstr "Пользователь '%s' вышел из системы" @@ -625,7 +637,17 @@ msgstr "Перенаправленые" msgid "Account import failed (%s): domain does not exist" msgstr "Ошибка импорта аккаунта (%s): домен должен существовать " -#: extensions/admin/app_settings.py:11 +#: extensions/admin/__init__.py:172 extensions/admin/forms/account.py:196 +#, python-format +msgid "Mailbox %s already exists" +msgstr "Почтовый ящик %s существует" + +#: extensions/admin/__init__.py:180 +#, fuzzy, python-format +msgid "Account import failed (%s): wrong quota value" +msgstr "Ошибка импорта аккаунта (%s): домен должен существовать " + +#: extensions/admin/app_settings.py:13 #: extensions/admin/templates/admin/editdomainform.html:25 #: extensions/limits/app_settings.py:31 extensions/limits/models.py:23 #: extensions/webmail/app_settings.py:107 @@ -633,11 +655,11 @@ msgstr "Ошибка импорта аккаунта (%s): домен долже msgid "Mailboxes" msgstr "Почтовые ящики" -#: extensions/admin/app_settings.py:14 +#: extensions/admin/app_settings.py:16 msgid "Handle mailboxes on filesystem" msgstr "Обрабатывать почтовые ящики на диске" -#: extensions/admin/app_settings.py:16 +#: extensions/admin/app_settings.py:18 msgid "" "Rename or remove mailboxes on the filesystem when they get renamed or " "removed within Modoboa" @@ -645,33 +667,33 @@ msgstr "" "Удалять или переименовывать почтовые ящики на диске, если они удалены или " "переименованы в Modoboa" -#: extensions/admin/app_settings.py:20 +#: extensions/admin/app_settings.py:22 msgid "Mailboxes owner" msgstr "Почтовые ящики закончились" -#: extensions/admin/app_settings.py:22 +#: extensions/admin/app_settings.py:24 msgid "The UNIX account who owns mailboxes on the filesystem" msgstr "UNIX аккаунт владельца почтового ящика на диске" -#: extensions/admin/app_settings.py:26 +#: extensions/admin/app_settings.py:28 msgid "Default domain quota" msgstr "" -#: extensions/admin/app_settings.py:29 +#: extensions/admin/app_settings.py:31 msgid "" "Default quota (in MB) applied to freshly created domains with no value " "specified. A value of 0 means no quota." msgstr "" -#: extensions/admin/app_settings.py:36 +#: extensions/admin/app_settings.py:38 msgid "Automatic account removal" msgstr "Автоматическое удаление аккаунта" -#: extensions/admin/app_settings.py:38 +#: extensions/admin/app_settings.py:40 msgid "When a mailbox is removed, also remove the associated account" msgstr "При удалении почтового ящика, так же удалять и аккаунт владельца" -#: extensions/admin/app_settings.py:69 extensions/admin/forms/account.py:178 +#: extensions/admin/app_settings.py:81 extensions/admin/forms/account.py:178 #: extensions/admin/forms/domain.py:56 msgid "Must be a positive integer" msgstr "" @@ -753,11 +775,6 @@ msgstr "" msgid "Domain does not exist" msgstr "Домен не существует" -#: extensions/admin/forms/account.py:196 -#, python-format -msgid "Mailbox %s already exists" -msgstr "Почтовый ящик %s существует" - #: extensions/admin/forms/account.py:284 msgid "Domain(s)" msgstr "Домен(ы)" @@ -767,7 +784,7 @@ msgid "Domain(s) that user administrates" msgstr "Домен(ы) администрируемые пользователем" #: extensions/admin/forms/account.py:328 -#: extensions/admin/views/identity.py:130 +#: extensions/admin/views/identity.py:132 msgid "Mail" msgstr "Почта" @@ -807,7 +824,7 @@ msgstr "Вы не имеете права доступа к этому доме msgid "Invalid mailbox" msgstr "Неверный почтовый ящик" -#: extensions/admin/forms/alias.py:108 extensions/admin/models/alias.py:182 +#: extensions/admin/forms/alias.py:108 extensions/admin/models/alias.py:194 #, python-format msgid "Local recipient %s not found" msgstr "Локальный получатель %s не найден" @@ -854,15 +871,15 @@ msgstr "" msgid "domain" msgstr "" -#: extensions/admin/forms/domain.py:176 +#: extensions/admin/forms/domain.py:181 msgid "Create a domain administrator" msgstr "Создание администратора домена" -#: extensions/admin/forms/domain.py:178 +#: extensions/admin/forms/domain.py:183 msgid "Automatically create an administrator for this domain" msgstr "Автоматически создаст администратора для этого домена" -#: extensions/admin/forms/domain.py:185 +#: extensions/admin/forms/domain.py:190 msgid "" "The administrator's name. Don't include the domain's name here, it will be " "automatically appended." @@ -870,19 +887,19 @@ msgstr "" "Имя администратора. Не включайте имя домена оно будет добавлено " "автоматически." -#: extensions/admin/forms/domain.py:193 +#: extensions/admin/forms/domain.py:198 msgid "Create aliases" msgstr "Создание синонимов" -#: extensions/admin/forms/domain.py:195 +#: extensions/admin/forms/domain.py:200 msgid "Automatically create standard aliases for this domain" msgstr "Автоматически создает стандартные синонимы для этого домена" -#: extensions/admin/forms/domain.py:211 +#: extensions/admin/forms/domain.py:216 msgid "Invalid format" msgstr "Неверный формат" -#: extensions/admin/forms/domain.py:225 +#: extensions/admin/forms/domain.py:230 #, python-format msgid "User '%s' already exists" msgstr "Пользователь '%s' уже существует" @@ -921,7 +938,7 @@ msgstr "" "Вы не можете определить перенаправление на локальный адрес. Пожалуйста, " "попросите администратора создать синоним" -#: extensions/admin/forms/import_.py:6 extensions/webmail/forms.py:26 +#: extensions/admin/forms/import_.py:6 extensions/webmail/forms.py:198 msgid "Select a file" msgstr "Выберите файл" @@ -941,11 +958,11 @@ msgstr "Шифровать пароль" msgid "Check this option if passwords contained in your file are not crypted" msgstr "Выберите эту опцию если пароль в вашем файле не зашифрован " -#: extensions/admin/models/alias.py:16 extensions/admin/models/mailbox.py:51 +#: extensions/admin/models/alias.py:18 extensions/admin/models/mailbox.py:62 msgid "address" msgstr "адрес" -#: extensions/admin/models/alias.py:18 +#: extensions/admin/models/alias.py:20 msgid "" "The alias address (without the domain part). For a 'catch-all' address, just " "enter an * character." @@ -953,42 +970,42 @@ msgstr "" "Адреса синонимов (без доменной части). Для указания адреса 'для всех' " "введите символ *" -#: extensions/admin/models/alias.py:24 +#: extensions/admin/models/alias.py:26 msgid "mailboxes" msgstr "Почтовые ящики" -#: extensions/admin/models/alias.py:25 +#: extensions/admin/models/alias.py:27 msgid "The mailboxes this alias points to" msgstr "Это синоним почтового ящика" -#: extensions/admin/models/alias.py:29 +#: extensions/admin/models/alias.py:31 msgid "The aliases this alias points to" msgstr "Синонимы этого синонима указывают на" -#: extensions/admin/models/alias.py:34 +#: extensions/admin/models/alias.py:36 #: extensions/admin/models/domain_alias.py:18 #: extensions/postfix_relay_domains/models.py:168 msgid "Check to activate this alias" msgstr "Отметить для активации синонима" -#: extensions/admin/models/alias.py:79 +#: extensions/admin/models/alias.py:81 msgid "distribution list" msgstr "Список рассылки" -#: extensions/admin/models/alias.py:80 +#: extensions/admin/models/alias.py:82 msgid "forward" msgstr "Перенаправление" -#: extensions/admin/models/alias.py:81 +#: extensions/admin/models/alias.py:83 msgid "alias" msgstr "Синоним" -#: extensions/admin/models/alias.py:150 +#: extensions/admin/models/alias.py:152 #, python-format msgid "Invalid line: %s" msgstr "Неверная строка %s" -#: extensions/admin/models/alias.py:155 +#: extensions/admin/models/alias.py:157 #, python-format msgid "Domain '%s' does not exist" msgstr "Домен '%s' не существует" @@ -1015,7 +1032,7 @@ msgstr "Отметить для активации этого домена" msgid "Domain" msgstr "" -#: extensions/admin/models/domain.py:140 +#: extensions/admin/models/domain.py:155 #, python-format msgid "Invalid quota value for domain '%s'" msgstr "" @@ -1034,31 +1051,26 @@ msgstr "адресат" msgid "The domain this alias points to" msgstr "Домен этого синонима указывает на" -#: extensions/admin/models/domain_alias.py:46 -#, python-format -msgid "A domain %s already exists" -msgstr "" - -#: extensions/admin/models/domain_alias.py:51 +#: extensions/admin/models/domain_alias.py:52 #, python-format msgid "Unknown domain %s" msgstr "Неизвестный домен %s" -#: extensions/admin/models/mailbox.py:52 +#: extensions/admin/models/mailbox.py:63 msgid "Mailbox address (without the @domain.tld part)" msgstr "Адрес почтового ящика (без @domain.tld)" -#: extensions/admin/models/mailbox.py:113 +#: extensions/admin/models/mailbox.py:125 #, python-format msgid "Failed to retrieve mailbox location (%s)" msgstr "Ошибка получения места находжения почтового ящика (%s)" -#: extensions/admin/models/mailbox.py:173 +#: extensions/admin/models/mailbox.py:194 #, python-format msgid "Quota is greater than the allowed domain's limit (%dM)" msgstr "Квота больше чем разрешено на уровне домена (%dM)" -#: extensions/admin/models/mailbox.py:178 +#: extensions/admin/models/mailbox.py:199 msgid "A quota is required" msgstr "Требуется квота" @@ -1080,7 +1092,7 @@ msgstr "Теги" #: extensions/admin/templates/admin/domains_table.html:8 #: extensions/admin/templates/admin/identities_table.html:8 #: extensions/admin/templates/admin/listing.html:17 -#: extensions/sievefilters/views.py:93 +#: extensions/sievefilters/views.py:95 #: extensions/sievefilters/templates/sievefilters/filter.html:17 #: extensions/sievefilters/templates/sievefilters/guieditor.html:5 #: extensions/webmail/templatetags/webmail_tags.py:101 @@ -1177,7 +1189,7 @@ msgstr "Добавить домен" #: extensions/admin/templatetags/admin_tags.py:42 #: extensions/admin/templatetags/admin_tags.py:106 -#: extensions/admin/views/import.py:51 extensions/admin/views/import.py:166 +#: extensions/admin/views/import.py:52 extensions/admin/views/import.py:168 msgid "Import" msgstr "Импорт" @@ -1227,84 +1239,84 @@ msgstr "Удалить %s?" msgid "Remove this permission" msgstr "Удалить это разрешение" -#: extensions/admin/views/alias.py:25 +#: extensions/admin/views/alias.py:26 msgid "Alias with this name already exists" msgstr "Синоним с таким именем уже есть" -#: extensions/admin/views/alias.py:49 extensions/admin/views/domain.py:100 -#: extensions/admin/views/domain.py:129 extensions/admin/views/identity.py:131 -#: extensions/admin/views/identity.py:158 -#: extensions/postfix_relay_domains/views.py:32 -#: extensions/sievefilters/views.py:141 extensions/sievefilters/views.py:230 -#: extensions/webmail/views.py:151 +#: extensions/admin/views/alias.py:50 extensions/admin/views/domain.py:102 +#: extensions/admin/views/domain.py:131 extensions/admin/views/identity.py:133 +#: extensions/admin/views/identity.py:160 +#: extensions/postfix_relay_domains/views.py:34 +#: extensions/sievefilters/views.py:144 extensions/sievefilters/views.py:233 +#: extensions/webmail/views.py:153 msgid "Create" msgstr "Создать" -#: extensions/admin/views/alias.py:61 +#: extensions/admin/views/alias.py:63 msgid "New distribution list" msgstr "Новый список рассылки" -#: extensions/admin/views/alias.py:62 +#: extensions/admin/views/alias.py:64 msgid "Distribution list created" msgstr "Список рассылки создан" -#: extensions/admin/views/alias.py:71 +#: extensions/admin/views/alias.py:74 msgid "New alias" msgstr "Новый синоним" -#: extensions/admin/views/alias.py:72 +#: extensions/admin/views/alias.py:75 msgid "Alias created" msgstr "Синоним создан" -#: extensions/admin/views/alias.py:81 +#: extensions/admin/views/alias.py:85 msgid "New forward" msgstr "Новая пересылка" -#: extensions/admin/views/alias.py:82 +#: extensions/admin/views/alias.py:86 msgid "Forward created" msgstr "Пересылка создана" -#: extensions/admin/views/alias.py:95 +#: extensions/admin/views/alias.py:100 msgid "Distribution list modified" msgstr "Список рассылки изменен" -#: extensions/admin/views/alias.py:97 +#: extensions/admin/views/alias.py:102 msgid "Forward modified" msgstr "Пересылка изменена" -#: extensions/admin/views/alias.py:99 +#: extensions/admin/views/alias.py:104 msgid "Alias modified" msgstr "Синоним изменен" -#: extensions/admin/views/domain.py:96 extensions/admin/views/identity.py:128 +#: extensions/admin/views/domain.py:98 extensions/admin/views/identity.py:130 msgid "Next" msgstr "Следующая" -#: extensions/admin/views/domain.py:99 +#: extensions/admin/views/domain.py:101 msgid "Options" msgstr "Опции" -#: extensions/admin/views/domain.py:101 extensions/admin/views/identity.py:132 +#: extensions/admin/views/domain.py:103 extensions/admin/views/identity.py:134 msgid "Previous" msgstr "Предыдущая" -#: extensions/admin/views/domain.py:123 +#: extensions/admin/views/domain.py:125 msgid "Domain created" msgstr "Домен создан" -#: extensions/admin/views/domain.py:128 +#: extensions/admin/views/domain.py:130 msgid "New domain" msgstr "Новый домен" -#: extensions/admin/views/domain.py:155 +#: extensions/admin/views/domain.py:158 msgid "Domain modified" msgstr "Домен изменен" -#: extensions/admin/views/domain.py:189 +#: extensions/admin/views/domain.py:192 msgid "You can't delete your own domain" msgstr "Вы не можете удалить собственный домен" -#: extensions/admin/views/domain.py:192 +#: extensions/admin/views/domain.py:195 msgid "Domain deleted" msgid_plural "Domains deleted" msgstr[0] "Домен удален" @@ -1319,41 +1331,41 @@ msgstr "Экспорт пользователя" msgid "Export domains" msgstr "Экспорт доменов" -#: extensions/admin/views/identity.py:103 -#: extensions/admin/views/identity.py:224 -#: extensions/admin/views/identity.py:229 extensions/amavis/views.py:179 -#: extensions/amavis/views.py:185 extensions/amavis/views.py:220 -#: extensions/amavis/views.py:224 extensions/amavis/views.py:226 -#: extensions/webmail/views.py:47 extensions/webmail/views.py:65 -#: extensions/webmail/views.py:79 extensions/webmail/views.py:97 -#: extensions/webmail/views.py:114 extensions/webmail/views.py:200 -#: extensions/webmail/views.py:223 extensions/webmail/views.py:396 -#: extensions/webmail/views.py:430 extensions/webmail/views.py:443 -#: extensions/webmail/views.py:472 extensions/webmail/views.py:512 +#: extensions/admin/views/identity.py:104 +#: extensions/admin/views/identity.py:227 +#: extensions/admin/views/identity.py:232 extensions/amavis/views.py:144 +#: extensions/amavis/views.py:148 extensions/amavis/views.py:181 +#: extensions/amavis/views.py:186 extensions/amavis/views.py:188 +#: extensions/webmail/views.py:49 extensions/webmail/views.py:67 +#: extensions/webmail/views.py:81 extensions/webmail/views.py:99 +#: extensions/webmail/views.py:116 extensions/webmail/views.py:202 +#: extensions/webmail/views.py:225 extensions/webmail/views.py:401 +#: extensions/webmail/views.py:451 extensions/webmail/views.py:467 +#: extensions/webmail/views.py:496 extensions/webmail/views.py:536 #: lib/formutils.py:44 lib/formutils.py:49 msgid "Invalid request" msgstr "Ошибочный запрос" -#: extensions/admin/views/identity.py:149 +#: extensions/admin/views/identity.py:151 msgid "Account created" msgstr "Аккаунт создан" -#: extensions/admin/views/identity.py:155 +#: extensions/admin/views/identity.py:157 msgid "New account" msgstr "Новый аккаунт" -#: extensions/admin/views/identity.py:190 +#: extensions/admin/views/identity.py:193 msgid "Account updated" msgstr "аккаунт изменен" -#: extensions/admin/views/identity.py:214 +#: extensions/admin/views/identity.py:217 msgid "Account deleted" msgid_plural "Accounts deleted" msgstr[0] "Аккаунт удален" msgstr[1] "Аккаунта удалено" msgstr[2] "Аккаунтов удалено" -#: extensions/admin/views/import.py:39 +#: extensions/admin/views/import.py:40 #, python-format msgid "" "Provide a CSV file where lines respect one of the following formats:\n" @@ -1367,21 +1379,21 @@ msgid "" "

    You can use a different character as separator.

    \n" msgstr "" -#: extensions/admin/views/import.py:50 +#: extensions/admin/views/import.py:51 msgid "Import domains" msgstr "Импорт доменов" -#: extensions/admin/views/import.py:129 +#: extensions/admin/views/import.py:131 #, python-format msgid "Object already exists: %s" msgstr "Объект уже существует: %s" -#: extensions/admin/views/import.py:133 +#: extensions/admin/views/import.py:135 #, python-format msgid "%d objects imported successfully" msgstr "%d объектов импортировано" -#: extensions/admin/views/import.py:153 +#: extensions/admin/views/import.py:155 msgid "" "Provide a CSV file where lines respect one of the following formats:\n" "
      \n" @@ -1397,11 +1409,11 @@ msgid "" "

      You can use a different character as separator.

      \n" msgstr "" -#: extensions/admin/views/import.py:165 +#: extensions/admin/views/import.py:167 msgid "Import identities" msgstr "Импорт информации о пользователях" -#: extensions/admin/views/user.py:37 +#: extensions/admin/views/user.py:38 msgid "Forward updated" msgstr "Перенаправление обновлено" @@ -1409,7 +1421,7 @@ msgstr "Перенаправление обновлено" msgid "Simple amavis management frontend" msgstr "Простой интерфейс управления AMaViS" -#: extensions/amavis/__init__.py:52 extensions/amavis/general_callbacks.py:17 +#: extensions/amavis/__init__.py:52 extensions/amavis/general_callbacks.py:18 msgid "Quarantine" msgstr "Карантин" @@ -1511,19 +1523,19 @@ msgstr "Количество отображаемых сообщений на с msgid "Set the maximum number of messages displayed in a page" msgstr "Установить максимальное количество сообщений показываемых на странице" -#: extensions/amavis/general_callbacks.py:81 +#: extensions/amavis/general_callbacks.py:82 msgid "pending requests" msgstr "ожидающие запросы" -#: extensions/amavis/general_callbacks.py:124 +#: extensions/amavis/general_callbacks.py:125 msgid "Pending requests" msgstr "" -#: extensions/amavis/general_callbacks.py:134 +#: extensions/amavis/general_callbacks.py:135 msgid "Content filter" msgstr "Фильтр содержания" -#: extensions/amavis/lib.py:57 +#: extensions/amavis/lib.py:56 #, python-format msgid "Connection to amavis failed: %s" msgstr "Ошибка соединания с Amavis %s" @@ -1533,12 +1545,12 @@ msgid "Virus filter" msgstr "Фильтр вирусов" #: extensions/amavis/models.py:94 extensions/amavis/models.py:102 -#: extensions/amavis/models.py:110 extensions/sievefilters/views.py:290 +#: extensions/amavis/models.py:110 extensions/sievefilters/views.py:293 msgid "yes" msgstr "Да" #: extensions/amavis/models.py:95 extensions/amavis/models.py:103 -#: extensions/amavis/models.py:111 extensions/sievefilters/views.py:294 +#: extensions/amavis/models.py:111 extensions/sievefilters/views.py:297 msgid "no" msgstr "Нет" @@ -1586,24 +1598,26 @@ msgstr "" "Изменить тему спам сообщения используя специальный текст. Выберите 'по " "умолчанию' для использования глобальных настроек" -#: extensions/amavis/sql_listing.py:31 +#: extensions/amavis/sql_listing.py:29 msgid "Score" msgstr "" -#: extensions/amavis/sql_listing.py:35 +#: extensions/amavis/sql_listing.py:33 #: extensions/amavis/templatetags/amavis_tags.py:75 -#: extensions/webmail/forms.py:7 +#: extensions/webmail/forms.py:82 msgid "To" msgstr "Кому" -#: extensions/amavis/sql_listing.py:38 -#: extensions/postfix_autoreply/forms.py:11 extensions/webmail/lib.py:44 +#: extensions/amavis/sql_listing.py:36 +#: extensions/postfix_autoreply/forms.py:10 +#: extensions/webmail/lib/listing.py:31 extensions/webmail/lib/tables.py:30 msgid "From" msgstr "От кого" -#: extensions/amavis/sql_listing.py:42 extensions/sievefilters/forms.py:77 -#: extensions/webmail/forms.py:11 extensions/webmail/lib.py:40 -#: extensions/webmail/lib.py:423 templates/common/email_searchbar.html:6 +#: extensions/amavis/sql_listing.py:40 extensions/sievefilters/forms.py:77 +#: extensions/webmail/forms.py:86 extensions/webmail/lib/imapemail.py:288 +#: extensions/webmail/lib/listing.py:27 extensions/webmail/lib/tables.py:26 +#: templates/common/email_searchbar.html:6 msgid "Subject" msgstr "Тема" @@ -1611,11 +1625,11 @@ msgstr "Тема" msgid "Empty quarantine" msgstr "очистить карантин" -#: extensions/amavis/views.py:186 +#: extensions/amavis/views.py:149 msgid "Message deleted" msgstr "Сообщение удалено" -#: extensions/amavis/views.py:207 +#: extensions/amavis/views.py:168 #, python-format msgid "%(count)d message deleted successfully" msgid_plural "%(count)d messages deleted successfully" @@ -1623,15 +1637,15 @@ msgstr[0] "%(count)d сообщение успешно удалено" msgstr[1] "%(count)d сообщения успешно удалено" msgstr[2] "%(count)d сообщений успешно удалено" -#: extensions/amavis/views.py:229 +#: extensions/amavis/views.py:191 msgid "Request sent" msgstr "Запрос послан" -#: extensions/amavis/views.py:235 +#: extensions/amavis/views.py:197 msgid "Message released" msgstr "Сообщение деблокировано" -#: extensions/amavis/views.py:268 +#: extensions/amavis/views.py:225 #, python-format msgid "%(count)d request sent" msgid_plural "%(count)d requests sent" @@ -1639,7 +1653,7 @@ msgstr[0] "%(count)d запрос послан" msgstr[1] "%(count)d запроса полано" msgstr[2] "%(count)d запросов послано" -#: extensions/amavis/views.py:288 +#: extensions/amavis/views.py:246 #, python-format msgid "%(count)d message released successfully" msgid_plural "%(count)d messages released successfully" @@ -1647,7 +1661,7 @@ msgstr[0] "%(count)d сообщение успешно деблокирован msgstr[1] "%(count)d сообщения успешно деблокировано" msgstr[2] "%(count)d сообщений успешно деблокировано" -#: extensions/amavis/management/commands/amnotify.py:57 +#: extensions/amavis/management/commands/amnotify.py:61 msgid "[modoboa] Pending release requests" msgstr "[modoboa] Заявки для включения в следующий релиз" @@ -1894,7 +1908,7 @@ msgstr "Использование ресурсов" msgid "Auto-reply (vacation) functionality using Postfix" msgstr "Автоответчик (отпуск) использует возможности PostFix" -#: extensions/postfix_autoreply/__init__.py:47 +#: extensions/postfix_autoreply/__init__.py:49 msgid "Automatic replies" msgstr "Автоматические ответы" @@ -1939,24 +1953,24 @@ msgid "" "The '%(name)s' macro will be replaced by the user's full name." msgstr "" -#: extensions/postfix_autoreply/forms.py:13 +#: extensions/postfix_autoreply/forms.py:12 msgid "Activate your auto reply from this date" msgstr "" -#: extensions/postfix_autoreply/forms.py:19 +#: extensions/postfix_autoreply/forms.py:18 msgid "Until" msgstr "Утилиты" -#: extensions/postfix_autoreply/forms.py:21 +#: extensions/postfix_autoreply/forms.py:20 msgid "Activate your auto reply until this date" msgstr "Активировать автоответчик после даты" -#: extensions/postfix_autoreply/forms.py:49 #: extensions/postfix_autoreply/forms.py:55 +#: extensions/postfix_autoreply/forms.py:62 msgid "This date is over" msgstr "Эта дата позже" -#: extensions/postfix_autoreply/forms.py:59 +#: extensions/postfix_autoreply/forms.py:67 msgid "Must be greater than start date" msgstr "" @@ -2101,19 +2115,19 @@ msgstr "" msgid "Relay domain %s does not exist" msgstr "" -#: extensions/postfix_relay_domains/views.py:26 +#: extensions/postfix_relay_domains/views.py:28 msgid "Relay domain created" msgstr "" -#: extensions/postfix_relay_domains/views.py:31 +#: extensions/postfix_relay_domains/views.py:33 msgid "New relay domain" msgstr "" -#: extensions/postfix_relay_domains/views.py:54 +#: extensions/postfix_relay_domains/views.py:57 msgid "Relay domain modified" msgstr "" -#: extensions/postfix_relay_domains/views.py:77 +#: extensions/postfix_relay_domains/views.py:80 msgid "Relay domain deleted" msgstr "" @@ -2207,7 +2221,7 @@ msgstr "Отправитель" msgid "Recipient" msgstr "Получатель" -#: extensions/sievefilters/forms.py:80 extensions/webmail/forms.py:8 +#: extensions/sievefilters/forms.py:80 extensions/webmail/forms.py:83 msgid "Cc" msgstr "Копия" @@ -2231,6 +2245,11 @@ msgstr "Переместить сообщение" msgid "Redirect message to" msgstr "Перенаправление сообщение для" +#: extensions/sievefilters/forms.py:104 +#, fuzzy +msgid "Wrong filter name" +msgstr "Имя файла" + #: extensions/sievefilters/lib.py:40 msgid "Connection to MANAGESIEVE server failed, check your configuration" msgstr "Соединение с сервером MANAGESIEVE не удалось, проверьте конфигурацию" @@ -2239,53 +2258,53 @@ msgstr "Соединение с сервером MANAGESIEVE не удалось msgid "Not enough space on server" msgstr "Нет свободного места на сервере" -#: extensions/sievefilters/views.py:78 +#: extensions/sievefilters/views.py:80 msgid "Failed to retrieve filters set" msgstr "Не удалось получить набор фильтров" -#: extensions/sievefilters/views.py:138 +#: extensions/sievefilters/views.py:141 #: extensions/sievefilters/templatetags/sfilters_tags.py:33 msgid "New filter" msgstr "Новый фильтр" -#: extensions/sievefilters/views.py:146 +#: extensions/sievefilters/views.py:149 msgid "Filter created" msgstr "Фильтр создан" -#: extensions/sievefilters/views.py:160 +#: extensions/sievefilters/views.py:163 #: extensions/sievefilters/templatetags/sfilters_tags.py:78 msgid "Edit filter" msgstr "Редактировать фильтр" -#: extensions/sievefilters/views.py:169 +#: extensions/sievefilters/views.py:172 msgid "Filter modified" msgstr "Фильтр модифицирован" -#: extensions/sievefilters/views.py:192 +#: extensions/sievefilters/views.py:195 msgid "Filter removed" msgstr "Фильтр удален" -#: extensions/sievefilters/views.py:193 +#: extensions/sievefilters/views.py:196 msgid "Failed to remove filter" msgstr "Ошибка удаления фильтра" -#: extensions/sievefilters/views.py:208 +#: extensions/sievefilters/views.py:211 msgid "Filters set saved" msgstr "Набор фильтров сохранен" -#: extensions/sievefilters/views.py:224 +#: extensions/sievefilters/views.py:227 msgid "Filters set created" msgstr "Набор фильтров создан" -#: extensions/sievefilters/views.py:228 +#: extensions/sievefilters/views.py:231 msgid "Create a new filters set" msgstr "Создание нового набора фильтров" -#: extensions/sievefilters/views.py:247 +#: extensions/sievefilters/views.py:250 msgid "Filters set deleted" msgstr "Набор фильтров удален" -#: extensions/sievefilters/views.py:260 +#: extensions/sievefilters/views.py:263 msgid "Filters set activated" msgstr "Набор фильтров активирован" @@ -2371,14 +2390,6 @@ msgstr "Папка для сохранения RRD файлов" msgid "Path to directory where RRD files are stored" msgstr "Путь к директории для сохранения RRD файлов" -#: extensions/stats/app_settings.py:26 -msgid "Directory to store PNG files" -msgstr "Папка для сохранения PNG файлов" - -#: extensions/stats/app_settings.py:28 -msgid "Path to directory where PNG files are stored" -msgstr "Путь к директории для сохранения png файлов" - #: extensions/stats/general_callbacks.py:12 msgid "Statistics" msgstr "Статистика" @@ -2432,23 +2443,23 @@ msgstr "Отправлено" msgid "Mail traffic" msgstr "Почтовый траффик" -#: extensions/stats/grapher.py:8 +#: extensions/stats/grapher.py:9 msgid "Day" msgstr "День" -#: extensions/stats/grapher.py:9 +#: extensions/stats/grapher.py:10 msgid "Week" msgstr "Неделя" -#: extensions/stats/grapher.py:10 +#: extensions/stats/grapher.py:11 msgid "Month" msgstr "Месяц" -#: extensions/stats/grapher.py:11 +#: extensions/stats/grapher.py:12 msgid "Year" msgstr "Год" -#: extensions/stats/grapher.py:60 +#: extensions/stats/grapher.py:61 msgid "Total" msgstr "Итого" @@ -2633,7 +2644,7 @@ msgstr "Ответ сервера" msgid "Unknown action" msgstr "Неизвестное действие" -#: extensions/webmail/forms.py:9 +#: extensions/webmail/forms.py:84 msgid "Cci" msgstr "Скрытая копия" @@ -2641,24 +2652,7 @@ msgstr "Скрытая копия" msgid "Webmail" msgstr "Веб-почта" -#: extensions/webmail/imaputils.py:242 -msgid "Failed to retrieve hierarchy delimiter" -msgstr "Не удалось получить разделитель уровней иерархии" - -#: extensions/webmail/imaputils.py:283 -#, python-format -msgid "Connection to IMAP server failed: %s" -msgstr "Подключение к IMAP серверу не удалось: %s" - -#: extensions/webmail/lib.py:371 -msgid "wrote:" -msgstr "Пишет:" - -#: extensions/webmail/lib.py:437 extensions/webmail/lib.py:441 -msgid "Original message" -msgstr "исходное сообщение" - -#: extensions/webmail/views.py:85 +#: extensions/webmail/views.py:87 #, python-format msgid "%(count)d message deleted" msgid_plural "%(count)d messages deleted" @@ -2666,54 +2660,72 @@ msgstr[0] "%(count)d сообщение удалено" msgstr[1] "%(count)d сообщения удалено" msgstr[2] "%(count)d сообщений удалено" -#: extensions/webmail/views.py:116 lib/email_listing.py:138 +#: extensions/webmail/views.py:118 lib/email_listing.py:128 msgid "Empty mailbox" msgstr "Очистить почтовый ящик" -#: extensions/webmail/views.py:142 +#: extensions/webmail/views.py:144 msgid "Mailbox created" msgstr "Почтовый ящик создан" -#: extensions/webmail/views.py:148 -#: extensions/webmail/templatetags/webmail_tags.py:175 +#: extensions/webmail/views.py:150 +#: extensions/webmail/templatetags/webmail_tags.py:177 msgid "Create a new mailbox" msgstr "Создать новый почтовый ящик" -#: extensions/webmail/views.py:167 extensions/webmail/views.py:202 +#: extensions/webmail/views.py:169 extensions/webmail/views.py:204 msgid "Edit mailbox" msgstr "Изменить почтовый ящик" -#: extensions/webmail/views.py:183 +#: extensions/webmail/views.py:185 msgid "Mailbox updated" msgstr "Почтовый ящик обновлен" -#: extensions/webmail/views.py:255 +#: extensions/webmail/views.py:257 msgid "Failed to save attachment: " msgstr "Ошибка записи вложения:" -#: extensions/webmail/views.py:258 +#: extensions/webmail/views.py:260 #, python-format msgid "Attachment is too big (limit: %s)" msgstr "Вложения слишком велики (лимит: %s)" -#: extensions/webmail/views.py:264 +#: extensions/webmail/views.py:266 #: extensions/webmail/templates/webmail/compose.html:15 #: extensions/webmail/templates/webmail/headers.html:4 msgid "Attachments" msgstr "Вложения" -#: extensions/webmail/views.py:281 +#: extensions/webmail/views.py:283 msgid "Bad query" msgstr "Ошибочный запрос" -#: extensions/webmail/views.py:293 +#: extensions/webmail/views.py:295 msgid "Failed to remove attachment: " msgstr "Не удалось удалить вложение" -#: extensions/webmail/views.py:298 +#: extensions/webmail/views.py:300 msgid "Unknown attachment" msgstr "Неизвестное вложение" +#: extensions/webmail/lib/imapemail.py:235 +msgid "wrote:" +msgstr "Пишет:" + +#: extensions/webmail/lib/imapemail.py:302 +#: extensions/webmail/lib/imapemail.py:305 +msgid "Original message" +msgstr "исходное сообщение" + +#: extensions/webmail/lib/imaputils.py:242 +msgid "Failed to retrieve hierarchy delimiter" +msgstr "Не удалось получить разделитель уровней иерархии" + +#: extensions/webmail/lib/imaputils.py:283 +#, python-format +msgid "Connection to IMAP server failed: %s" +msgstr "Подключение к IMAP серверу не удалось: %s" + #: extensions/webmail/templates/webmail/attachments.html:6 msgid "Attach" msgstr "Вложить" @@ -2742,7 +2754,7 @@ msgstr[2] "%(counter)s файлов" msgid "Parent mailbox" msgstr "Родительский почтовый ящик" -#: extensions/webmail/templates/webmail/index.html:40 +#: extensions/webmail/templates/webmail/index.html:42 msgid "Mailbox quota" msgstr "Квота для почтового ящика" @@ -2802,11 +2814,11 @@ msgstr "Сжать папку" msgid "Empty folder" msgstr "Очистить папку" -#: extensions/webmail/templatetags/webmail_tags.py:183 +#: extensions/webmail/templatetags/webmail_tags.py:185 msgid "Edit the selected mailbox" msgstr "Изменить выбранный почтовый ящик" -#: extensions/webmail/templatetags/webmail_tags.py:188 +#: extensions/webmail/templatetags/webmail_tags.py:190 msgid "Remove the selected mailbox" msgstr "Удалить выбранный почтовый ящик" @@ -2853,11 +2865,6 @@ msgstr "Супер администратор" msgid "Domain administrator" msgstr "Администратор домена" -#: lib/permissions.py:73 -#, python-format -msgid "Failed to grant access (%s)" -msgstr "Не удалось предоставить доступ (%s)" - #: lib/tables.py:251 msgid "No entries to display" msgstr "Нет данных для отображения" @@ -2919,3 +2926,12 @@ msgstr "Запомнить меня" #: templates/registration/login.html:36 msgid "Log in" msgstr "Войти" + +#~ msgid "Directory to store PNG files" +#~ msgstr "Папка для сохранения PNG файлов" + +#~ msgid "Path to directory where PNG files are stored" +#~ msgstr "Путь к директории для сохранения png файлов" + +#~ msgid "Failed to grant access (%s)" +#~ msgstr "Не удалось предоставить доступ (%s)" diff --git a/modoboa/locale/ru/LC_MESSAGES/djangojs.po b/modoboa/locale/ru/LC_MESSAGES/djangojs.po index b167bd14c..90547c2ab 100644 --- a/modoboa/locale/ru/LC_MESSAGES/djangojs.po +++ b/modoboa/locale/ru/LC_MESSAGES/djangojs.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Modoboa\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-12-15 10:16+0100\n" +"POT-Creation-Date: 2014-08-24 12:32+0200\n" "PO-Revision-Date: 2013-12-03 09:35+0000\n" "Last-Translator: Antoine Nguyen \n" "Language-Team: Russian (http://www.transifex.com/projects/p/modoboa/language/" @@ -110,11 +110,11 @@ msgstr "Удалить выбранные почтовые ящики?" msgid "Mailbox removed" msgstr "Почтовый ящик удален" -#: extensions/webmail/static/webmail/js/webmail.js:746 +#: extensions/webmail/static/webmail/js/webmail.js:752 msgid "Message sent" msgstr "Сообщение послано" -#: extensions/webmail/static/webmail/js/webmail.js:997 +#: extensions/webmail/static/webmail/js/webmail.js:1003 #, c-format msgid "%s file" msgid_plural "%s files" @@ -122,7 +122,7 @@ msgstr[0] "%s файл" msgstr[1] "%s файла" msgstr[2] "%s файлов" -#: extensions/webmail/static/webmail/js/webmail.js:1031 +#: extensions/webmail/static/webmail/js/webmail.js:1037 #, c-format msgid "Moving %s message" msgid_plural "Moving %s messages" diff --git a/modoboa/locale/sv/LC_MESSAGES/django.po b/modoboa/locale/sv/LC_MESSAGES/django.po index fa777cc99..a78510bb3 100644 --- a/modoboa/locale/sv/LC_MESSAGES/django.po +++ b/modoboa/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: 2013-12-15 10:21+0100\n" +"POT-Creation-Date: 2014-08-24 12:28+0200\n" "PO-Revision-Date: 2013-09-27 08:19+0000\n" "Last-Translator: ogg1980 \n" "Language-Team: Swedish (http://www.transifex.com/projects/p/modoboa/language/" @@ -21,8 +21,8 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: core/__init__.py:52 core/__init__.py:53 -#: extensions/admin/forms/account.py:326 extensions/admin/forms/domain.py:251 -#: extensions/admin/views/domain.py:95 extensions/admin/views/identity.py:127 +#: extensions/admin/forms/account.py:326 extensions/admin/forms/domain.py:256 +#: extensions/admin/views/domain.py:97 extensions/admin/views/identity.py:129 #: extensions/postfix_autoreply/app_settings.py:11 #: extensions/postfix_relay_domains/forms.py:138 #: extensions/sievefilters/app_settings.py:50 @@ -30,119 +30,119 @@ msgstr "" msgid "General" msgstr "Generellt" -#: core/app_settings.py:36 +#: core/app_settings.py:39 msgid "Authentication" msgstr "Autentisering" -#: core/app_settings.py:39 +#: core/app_settings.py:42 msgid "Authentication type" msgstr "Autentiseringstyp" -#: core/app_settings.py:40 +#: core/app_settings.py:43 msgid "Local" msgstr "Lokal" -#: core/app_settings.py:43 +#: core/app_settings.py:46 msgid "The backend used for authentication" msgstr "Autentiserings backend" -#: core/app_settings.py:48 +#: core/app_settings.py:51 msgid "Default password scheme" msgstr "Standard lösenords schema" -#: core/app_settings.py:51 +#: core/app_settings.py:54 msgid "md5crypt (weak)" msgstr "" -#: core/app_settings.py:52 +#: core/app_settings.py:55 msgid "sha256 (weak)" msgstr "" -#: core/app_settings.py:53 +#: core/app_settings.py:56 msgid "md5 (weak)" msgstr "" -#: core/app_settings.py:54 +#: core/app_settings.py:57 msgid "crypt (weak)" msgstr "" -#: core/app_settings.py:55 +#: core/app_settings.py:58 msgid "plain (weak)" msgstr "" -#: core/app_settings.py:57 +#: core/app_settings.py:60 msgid "Scheme used to crypt mailbox passwords" msgstr "Krypteringsschema för brevlåde lösenord" -#: core/app_settings.py:61 +#: core/app_settings.py:64 msgid "Rounds" msgstr "" -#: core/app_settings.py:64 +#: core/app_settings.py:67 msgid "" "Number of rounds to use (only used by sha256crypt and sha512crypt). Must be " "between 1000 and 999999999, inclusive." msgstr "" -#: core/app_settings.py:70 +#: core/app_settings.py:73 msgid "Secret key" msgstr "Hemlig nyckel" -#: core/app_settings.py:72 +#: core/app_settings.py:75 msgid "Key used to encrypt/decrypt passwords" msgstr "Nyckel som används för att kryptera / dekryptera lösenord" -#: core/app_settings.py:76 +#: core/app_settings.py:79 msgid "LDAP settings" msgstr "LDAP inställningar" -#: core/app_settings.py:79 extensions/sievefilters/app_settings.py:22 +#: core/app_settings.py:82 extensions/sievefilters/app_settings.py:22 #: extensions/webmail/app_settings.py:22 extensions/webmail/app_settings.py:42 msgid "Server address" msgstr "Server adress" -#: core/app_settings.py:81 +#: core/app_settings.py:85 msgid "The IP address of the DNS name of the LDAP server" msgstr "IP adressen eller DNS namn för LDAP server" -#: core/app_settings.py:85 extensions/sievefilters/app_settings.py:28 +#: core/app_settings.py:89 extensions/sievefilters/app_settings.py:28 #: extensions/webmail/app_settings.py:34 extensions/webmail/app_settings.py:58 msgid "Server port" msgstr "Server port" -#: core/app_settings.py:87 +#: core/app_settings.py:91 msgid "The TCP port number used by the LDAP server" msgstr "TCP port som används av LDAP servern" -#: core/app_settings.py:91 extensions/webmail/app_settings.py:28 +#: core/app_settings.py:95 extensions/webmail/app_settings.py:28 msgid "Use a secured connection" msgstr "Använd en säker anslutning" -#: core/app_settings.py:93 +#: core/app_settings.py:98 msgid "Use an SSL/TLS connection to access the LDAP server" msgstr "Använd SSL/TLS anslutning för åtkomst till LDAP servern" -#: core/app_settings.py:97 +#: core/app_settings.py:102 msgid "Authentication method" msgstr "Autentiseringsmetod" -#: core/app_settings.py:98 +#: core/app_settings.py:103 msgid "Search and bind" msgstr "Sök och bind" -#: core/app_settings.py:99 +#: core/app_settings.py:104 msgid "Direct bind" msgstr "Direkt bindning" -#: core/app_settings.py:101 +#: core/app_settings.py:106 msgid "Choose the authentication method to use" msgstr "Välj autentiseringsmetod att använda" -#: core/app_settings.py:106 +#: core/app_settings.py:111 msgid "Bind DN" msgstr "Bind DN" -#: core/app_settings.py:108 +#: core/app_settings.py:114 msgid "" "The distinguished name to use when binding to the LDAP server. Leave empty " "for an anonymous bind" @@ -150,30 +150,30 @@ msgstr "" "Det unika namnet för att använda vid bindningar till LDAP-servern. Lämna " "tomt för en anonym bindning" -#: core/app_settings.py:113 +#: core/app_settings.py:121 msgid "Bind password" msgstr "Bind lösenord" -#: core/app_settings.py:115 +#: core/app_settings.py:124 msgid "The password to use when binding to the LDAP server (with 'Bind DN')" msgstr "" "Lösenordet ska användas vid bindning till LDAP-servern (med \"Bind DN ')" -#: core/app_settings.py:121 +#: core/app_settings.py:132 #, fuzzy msgid "Users search base" msgstr "Sök bas" -#: core/app_settings.py:123 +#: core/app_settings.py:135 #, fuzzy msgid "The distinguished name of the search base used to find users" msgstr "Den unika namn sökbasen" -#: core/app_settings.py:128 +#: core/app_settings.py:141 msgid "Search filter" msgstr "Sökfilter" -#: core/app_settings.py:130 +#: core/app_settings.py:144 msgid "" "An optional filter string (e.g. '(objectClass=person)'). In order to be " "valid, it must be enclosed in parentheses." @@ -181,11 +181,11 @@ msgstr "" "En valfri filtersträng (t.ex. \"(objectClass = personer) '). För att vara " "giltigt måste det omges av parenteser." -#: core/app_settings.py:135 +#: core/app_settings.py:151 msgid "User DN template" msgstr "Anvädar DN mall" -#: core/app_settings.py:137 +#: core/app_settings.py:154 #, python-format msgid "" "The template used to construct a user's DN. It should contain one " @@ -194,100 +194,111 @@ msgstr "" "Mallen som används för att konstruera en användares DN. Den bör innehålla en " "platshållare (dvs. %(user)s)" -#: core/app_settings.py:142 +#: core/app_settings.py:161 msgid "Password attribute" msgstr "Lösenordsattribut" -#: core/app_settings.py:144 +#: core/app_settings.py:163 msgid "The attribute used to store user passwords" msgstr "Attribut som används för att lagra användarlösenord" -#: core/app_settings.py:148 +#: core/app_settings.py:167 msgid "Active Directory" msgstr "Active Directory" -#: core/app_settings.py:150 +#: core/app_settings.py:170 msgid "Tell if the LDAP server is an Active Directory one" msgstr "Berätta om LDAP-servern är en Active Directory" -#: core/app_settings.py:154 +#: core/app_settings.py:174 #, fuzzy msgid "Administrator groups" msgstr "Administratörer" -#: core/app_settings.py:157 +#: core/app_settings.py:177 msgid "" "Members of those LDAP Posix groups will be created as domain administrators. " "Use ';' characters to separate groups." msgstr "" -#: core/app_settings.py:164 +#: core/app_settings.py:184 #, fuzzy msgid "Groups search base" msgstr "Sök bas" -#: core/app_settings.py:167 +#: core/app_settings.py:187 #, fuzzy msgid "The distinguished name of the search base used to find groups" msgstr "Den unika namn sökbasen" -#: core/app_settings.py:172 +#: core/app_settings.py:193 +#, fuzzy +msgid "Domain/mailbox creation" +msgstr "Domän skapad" + +#: core/app_settings.py:196 +msgid "" +"Automatically create a domain and a mailbox when a new user is created just " +"after the first successful authentication." +msgstr "" + +#: core/app_settings.py:201 #: extensions/admin/templates/admin/editdomainform.html:7 msgid "Miscellaneous" msgstr "Övrigt" -#: core/app_settings.py:175 +#: core/app_settings.py:204 msgid "Maximum log record age" msgstr "Maximal ålder för loggpost" -#: core/app_settings.py:177 +#: core/app_settings.py:206 msgid "The maximum age in days of a log record" msgstr "Maximal ålder i dagar för en logg post" -#: core/app_settings.py:181 +#: core/app_settings.py:210 msgid "Items per page" msgstr "Artiklar per sida" -#: core/app_settings.py:183 +#: core/app_settings.py:212 msgid "Number of displayed items per page" msgstr "Antal poster som visas per sida" -#: core/app_settings.py:187 +#: core/app_settings.py:216 msgid "Default top redirection" msgstr "Standard topp omdirigering" -#: core/app_settings.py:190 +#: core/app_settings.py:220 msgid "The default redirection used when no application is specified" msgstr "Standard omdirigering när ingen applikation angetts" -#: core/app_settings.py:218 +#: core/app_settings.py:249 msgid "Key must be either 16, 24, or 32 bytes long" msgstr "Nyckel måste vara endera 16, 24 eller 32 bytes lång" -#: core/app_settings.py:227 extensions/postfix_autoreply/app_settings.py:53 +#: core/app_settings.py:258 extensions/postfix_autoreply/app_settings.py:53 msgid "Invalid syntax" msgstr "Ogiltig syntax" -#: core/app_settings.py:233 +#: core/app_settings.py:264 #, fuzzy msgid "Invalid rounds number" msgstr "Ogiltig förfrågan" -#: core/app_settings.py:256 +#: core/app_settings.py:287 msgid "This field is required" msgstr "Detta fält är obligatoriskt" -#: core/app_settings.py:317 extensions/amavis/app_settings.py:87 +#: core/app_settings.py:349 extensions/amavis/app_settings.py:87 #: extensions/amavis/templates/amavis/main_action_bar.html:29 #: extensions/webmail/app_settings.py:73 msgid "Display" msgstr "Visning" -#: core/app_settings.py:321 +#: core/app_settings.py:353 msgid "Prefered language" msgstr "Önskat språk" -#: core/app_settings.py:327 +#: core/app_settings.py:359 msgid "Prefered language to display pages" msgstr "Önskat språk för att visa sidor" @@ -342,7 +353,7 @@ msgstr "Misslyckades med att uppdatera lösenord: LDAP modul ej installerad" msgid "account" msgstr "konto" -#: core/models.py:321 extensions/admin/models/domain.py:135 +#: core/models.py:321 extensions/admin/models/domain.py:144 #: extensions/admin/models/domain_alias.py:39 #: extensions/postfix_relay_domains/models.py:134 #: extensions/postfix_relay_domains/models.py:190 @@ -353,17 +364,17 @@ msgstr "Ogiltig rad" msgid "You can't import an account with a role greater than yours" msgstr "Du kan inte importera konto med en roll större än din" -#: core/models.py:331 +#: core/models.py:337 #, python-format msgid "The simple user '%s' must have a valid email address" msgstr "Den enkla användaren '%s' måste ha en gällande e-postadress" -#: core/models.py:335 +#: core/models.py:341 #, python-format msgid "username and email fields must not differ for '%s'" msgstr "användarnamn och e-post fält får inte avvika för '%s'" -#: core/models.py:404 extensions/admin/models/alias.py:33 +#: core/models.py:410 extensions/admin/models/alias.py:35 #: extensions/admin/models/domain.py:32 #: extensions/admin/models/domain_alias.py:17 #: extensions/postfix_autoreply/models.py:28 @@ -372,29 +383,29 @@ msgstr "användarnamn och e-post fält får inte avvika för '%s'" msgid "enabled" msgstr "aktiverad" -#: core/models.py:405 +#: core/models.py:411 msgid "Check to enable this extension" msgstr "Markera för att aktivera detta tillägg" -#: core/models.py:475 +#: core/models.py:491 msgid "added" msgstr "tillagd" -#: core/models.py:478 +#: core/models.py:494 msgid "modified" msgstr "ändrad" -#: core/models.py:480 core/models.py:504 +#: core/models.py:496 core/models.py:521 #, python-format msgid "%(object)s '%(name)s' %(action)s by user %(user)s" msgstr "%(object)s '%(name)s' %(action)s av användare %(user)s" -#: core/models.py:506 +#: core/models.py:523 msgid "deleted" msgstr "raderad" #: core/tables.py:8 core/templates/core/information.html:8 -#: extensions/admin/tables.py:9 extensions/admin/forms/domain.py:182 +#: extensions/admin/tables.py:9 extensions/admin/forms/domain.py:187 #: extensions/admin/templates/admin/domains_table.html:5 #: extensions/admin/templates/admin/editdomainform.html:13 #: extensions/admin/templates/admin/identities_table.html:5 @@ -456,8 +467,9 @@ msgstr "Loggar" msgid "Previously on Modoboa..." msgstr "Tidigare på Modoboa..." -#: core/templates/core/logs.html:6 extensions/amavis/sql_listing.py:46 -#: extensions/webmail/lib.py:48 extensions/webmail/lib.py:425 +#: core/templates/core/logs.html:6 extensions/amavis/sql_listing.py:44 +#: extensions/webmail/lib/imapemail.py:290 +#: extensions/webmail/lib/listing.py:35 extensions/webmail/lib/tables.py:34 msgid "Date" msgstr "Datum" @@ -508,12 +520,12 @@ msgstr "Uppdatera personlig information" #: core/templates/core/user_profile.html:8 #: extensions/admin/templates/admin/forward.html:8 -#: extensions/admin/views/alias.py:107 extensions/admin/views/domain.py:165 -#: extensions/admin/views/identity.py:197 +#: extensions/admin/views/alias.py:112 extensions/admin/views/domain.py:168 +#: extensions/admin/views/identity.py:200 #: extensions/postfix_autoreply/templates/postfix_autoreply/autoreply.html:9 -#: extensions/postfix_relay_domains/views.py:63 -#: extensions/sievefilters/views.py:163 extensions/webmail/views.py:170 -#: extensions/webmail/views.py:205 +#: extensions/postfix_relay_domains/views.py:66 +#: extensions/sievefilters/views.py:166 extensions/webmail/views.py:172 +#: extensions/webmail/views.py:207 msgid "Update" msgstr "Uppdatera" @@ -542,7 +554,7 @@ msgstr "Användare '%s' har loggat in" msgid "Your username and password didn't match. Please try again." msgstr "Ditt användarnamn och lösenord matchar inte. Var vänlig försök igen." -#: core/views/auth.py:66 +#: core/views/auth.py:69 #, python-format msgid "User '%s' logged out" msgstr "Användare '%s' har loggat ut" @@ -636,7 +648,17 @@ msgstr "Vidarebefordra" msgid "Account import failed (%s): domain does not exist" msgstr "Konto import misslyckades (%s): domänen existerar inte" -#: extensions/admin/app_settings.py:11 +#: extensions/admin/__init__.py:172 extensions/admin/forms/account.py:196 +#, python-format +msgid "Mailbox %s already exists" +msgstr "Brevlåda %s finns redan" + +#: extensions/admin/__init__.py:180 +#, fuzzy, python-format +msgid "Account import failed (%s): wrong quota value" +msgstr "Konto import misslyckades (%s): domänen existerar inte" + +#: extensions/admin/app_settings.py:13 #: extensions/admin/templates/admin/editdomainform.html:25 #: extensions/limits/app_settings.py:31 extensions/limits/models.py:23 #: extensions/webmail/app_settings.py:107 @@ -644,11 +666,11 @@ msgstr "Konto import misslyckades (%s): domänen existerar inte" msgid "Mailboxes" msgstr "Brevlådor" -#: extensions/admin/app_settings.py:14 +#: extensions/admin/app_settings.py:16 msgid "Handle mailboxes on filesystem" msgstr "Hantera brevlådor på filsystem" -#: extensions/admin/app_settings.py:16 +#: extensions/admin/app_settings.py:18 msgid "" "Rename or remove mailboxes on the filesystem when they get renamed or " "removed within Modoboa" @@ -656,34 +678,34 @@ msgstr "" "Byt namn på eller ta bort brevlådor på filsystemet när de kommer byta namn " "eller tas bort inom Modoboa" -#: extensions/admin/app_settings.py:20 +#: extensions/admin/app_settings.py:22 msgid "Mailboxes owner" msgstr "Brevlådors ägare" -#: extensions/admin/app_settings.py:22 +#: extensions/admin/app_settings.py:24 msgid "The UNIX account who owns mailboxes on the filesystem" msgstr "Den UNIX-konto som äger brevlådor på filsystemet" -#: extensions/admin/app_settings.py:26 +#: extensions/admin/app_settings.py:28 #, fuzzy msgid "Default domain quota" msgstr "Standard gränser" -#: extensions/admin/app_settings.py:29 +#: extensions/admin/app_settings.py:31 msgid "" "Default quota (in MB) applied to freshly created domains with no value " "specified. A value of 0 means no quota." msgstr "" -#: extensions/admin/app_settings.py:36 +#: extensions/admin/app_settings.py:38 msgid "Automatic account removal" msgstr "Automatisk konto borttagning" -#: extensions/admin/app_settings.py:38 +#: extensions/admin/app_settings.py:40 msgid "When a mailbox is removed, also remove the associated account" msgstr "När en brevlåda raderas, radera också tillhörande konto" -#: extensions/admin/app_settings.py:69 extensions/admin/forms/account.py:178 +#: extensions/admin/app_settings.py:81 extensions/admin/forms/account.py:178 #: extensions/admin/forms/domain.py:56 msgid "Must be a positive integer" msgstr "" @@ -767,11 +789,6 @@ msgstr "" msgid "Domain does not exist" msgstr "Domän existerar inte" -#: extensions/admin/forms/account.py:196 -#, python-format -msgid "Mailbox %s already exists" -msgstr "Brevlåda %s finns redan" - #: extensions/admin/forms/account.py:284 msgid "Domain(s)" msgstr "Domän(er)" @@ -781,7 +798,7 @@ msgid "Domain(s) that user administrates" msgstr "Domän(er) användaren administrerar" #: extensions/admin/forms/account.py:328 -#: extensions/admin/views/identity.py:130 +#: extensions/admin/views/identity.py:132 msgid "Mail" msgstr "Post" @@ -821,7 +838,7 @@ msgstr "Du har inte åtkomst till denna domän" msgid "Invalid mailbox" msgstr "Ogiltig brevlåda" -#: extensions/admin/forms/alias.py:108 extensions/admin/models/alias.py:182 +#: extensions/admin/forms/alias.py:108 extensions/admin/models/alias.py:194 #, python-format msgid "Local recipient %s not found" msgstr "Lokal mottagare %s kunde inte hittas" @@ -871,15 +888,15 @@ msgstr "Alias med detta namn existerar redan" msgid "domain" msgstr "Domäner" -#: extensions/admin/forms/domain.py:176 +#: extensions/admin/forms/domain.py:181 msgid "Create a domain administrator" msgstr "Skapa en domän administratör" -#: extensions/admin/forms/domain.py:178 +#: extensions/admin/forms/domain.py:183 msgid "Automatically create an administrator for this domain" msgstr "Skapa en domän administratör automatiskt för denna domän" -#: extensions/admin/forms/domain.py:185 +#: extensions/admin/forms/domain.py:190 msgid "" "The administrator's name. Don't include the domain's name here, it will be " "automatically appended." @@ -887,19 +904,19 @@ msgstr "" "Administratörens namn. Inkludera inte domänens namn här, den kommer att " "läggas till automatiskt." -#: extensions/admin/forms/domain.py:193 +#: extensions/admin/forms/domain.py:198 msgid "Create aliases" msgstr "Skapa alias." -#: extensions/admin/forms/domain.py:195 +#: extensions/admin/forms/domain.py:200 msgid "Automatically create standard aliases for this domain" msgstr "Skapa automatiskt standard alias för den här domänen" -#: extensions/admin/forms/domain.py:211 +#: extensions/admin/forms/domain.py:216 msgid "Invalid format" msgstr "Ogiltigt format" -#: extensions/admin/forms/domain.py:225 +#: extensions/admin/forms/domain.py:230 #, python-format msgid "User '%s' already exists" msgstr "Användare '%s' finns redan" @@ -936,7 +953,7 @@ msgstr "" "Du kan inte definiera en vidarebefordring till en lokal destination. Be din " "administratör att skapa ett alias istället." -#: extensions/admin/forms/import_.py:6 extensions/webmail/forms.py:26 +#: extensions/admin/forms/import_.py:6 extensions/webmail/forms.py:198 msgid "Select a file" msgstr "Välj en fil" @@ -956,11 +973,11 @@ msgstr "Krypterade lösenord" 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" -#: extensions/admin/models/alias.py:16 extensions/admin/models/mailbox.py:51 +#: extensions/admin/models/alias.py:18 extensions/admin/models/mailbox.py:62 msgid "address" msgstr "adress" -#: extensions/admin/models/alias.py:18 +#: extensions/admin/models/alias.py:20 msgid "" "The alias address (without the domain part). For a 'catch-all' address, just " "enter an * character." @@ -968,42 +985,42 @@ msgstr "" "Alias adress (utan domän delen). För en \"catch-all\"-adress, ange bara " "asterisk *." -#: extensions/admin/models/alias.py:24 +#: extensions/admin/models/alias.py:26 msgid "mailboxes" msgstr "brevlådor" -#: extensions/admin/models/alias.py:25 +#: extensions/admin/models/alias.py:27 msgid "The mailboxes this alias points to" msgstr "Brevlådorna detta alias pekar till" -#: extensions/admin/models/alias.py:29 +#: extensions/admin/models/alias.py:31 msgid "The aliases this alias points to" msgstr "Det alias detta alias pekar till" -#: extensions/admin/models/alias.py:34 +#: extensions/admin/models/alias.py:36 #: extensions/admin/models/domain_alias.py:18 #: extensions/postfix_relay_domains/models.py:168 msgid "Check to activate this alias" msgstr "Markera för aktivera detta alias" -#: extensions/admin/models/alias.py:79 +#: extensions/admin/models/alias.py:81 msgid "distribution list" msgstr "distributionslista" -#: extensions/admin/models/alias.py:80 +#: extensions/admin/models/alias.py:82 msgid "forward" msgstr "vidarebefordra" -#: extensions/admin/models/alias.py:81 +#: extensions/admin/models/alias.py:83 msgid "alias" msgstr "alias" -#: extensions/admin/models/alias.py:150 +#: extensions/admin/models/alias.py:152 #, python-format msgid "Invalid line: %s" msgstr "Ogiltig rad: %s" -#: extensions/admin/models/alias.py:155 +#: extensions/admin/models/alias.py:157 #, python-format msgid "Domain '%s' does not exist" msgstr "Domänen '%s' existerar inte" @@ -1031,7 +1048,7 @@ msgstr "Markera för att aktivera denna domän" msgid "Domain" msgstr "Domäner" -#: extensions/admin/models/domain.py:140 +#: extensions/admin/models/domain.py:155 #, python-format msgid "Invalid quota value for domain '%s'" msgstr "" @@ -1050,31 +1067,26 @@ msgstr "mål" msgid "The domain this alias points to" msgstr "Domän dit detta alias pekar mot" -#: extensions/admin/models/domain_alias.py:46 -#, fuzzy, python-format -msgid "A domain %s already exists" -msgstr "Brevlåda %s finns redan" - -#: extensions/admin/models/domain_alias.py:51 +#: extensions/admin/models/domain_alias.py:52 #, python-format msgid "Unknown domain %s" msgstr "Okänt kommando %s" -#: extensions/admin/models/mailbox.py:52 +#: extensions/admin/models/mailbox.py:63 msgid "Mailbox address (without the @domain.tld part)" msgstr "Brevlåde adress (utan @domain.tld)" -#: extensions/admin/models/mailbox.py:113 +#: extensions/admin/models/mailbox.py:125 #, python-format msgid "Failed to retrieve mailbox location (%s)" msgstr "Kunde inte hitta brevlådans sökväg (%s)" -#: extensions/admin/models/mailbox.py:173 +#: extensions/admin/models/mailbox.py:194 #, python-format msgid "Quota is greater than the allowed domain's limit (%dM)" msgstr "Kvotan är större än domänens gräns (%dM)" -#: extensions/admin/models/mailbox.py:178 +#: extensions/admin/models/mailbox.py:199 msgid "A quota is required" msgstr "En kvota krävs" @@ -1097,7 +1109,7 @@ msgstr "Tagg" #: extensions/admin/templates/admin/domains_table.html:8 #: extensions/admin/templates/admin/identities_table.html:8 #: extensions/admin/templates/admin/listing.html:17 -#: extensions/sievefilters/views.py:93 +#: extensions/sievefilters/views.py:95 #: extensions/sievefilters/templates/sievefilters/filter.html:17 #: extensions/sievefilters/templates/sievefilters/guieditor.html:5 #: extensions/webmail/templatetags/webmail_tags.py:101 @@ -1194,7 +1206,7 @@ msgstr "Lägg till domän" #: extensions/admin/templatetags/admin_tags.py:42 #: extensions/admin/templatetags/admin_tags.py:106 -#: extensions/admin/views/import.py:51 extensions/admin/views/import.py:166 +#: extensions/admin/views/import.py:52 extensions/admin/views/import.py:168 msgid "Import" msgstr "Importera" @@ -1244,84 +1256,84 @@ msgstr "Radera %s?" msgid "Remove this permission" msgstr "Radera detta tillstånd" -#: extensions/admin/views/alias.py:25 +#: extensions/admin/views/alias.py:26 msgid "Alias with this name already exists" msgstr "Alias med detta namn existerar redan" -#: extensions/admin/views/alias.py:49 extensions/admin/views/domain.py:100 -#: extensions/admin/views/domain.py:129 extensions/admin/views/identity.py:131 -#: extensions/admin/views/identity.py:158 -#: extensions/postfix_relay_domains/views.py:32 -#: extensions/sievefilters/views.py:141 extensions/sievefilters/views.py:230 -#: extensions/webmail/views.py:151 +#: extensions/admin/views/alias.py:50 extensions/admin/views/domain.py:102 +#: extensions/admin/views/domain.py:131 extensions/admin/views/identity.py:133 +#: extensions/admin/views/identity.py:160 +#: extensions/postfix_relay_domains/views.py:34 +#: extensions/sievefilters/views.py:144 extensions/sievefilters/views.py:233 +#: extensions/webmail/views.py:153 msgid "Create" msgstr "Skapa" -#: extensions/admin/views/alias.py:61 +#: extensions/admin/views/alias.py:63 msgid "New distribution list" msgstr "Ny distributionslista" -#: extensions/admin/views/alias.py:62 +#: extensions/admin/views/alias.py:64 msgid "Distribution list created" msgstr "Distributionslista skapad" -#: extensions/admin/views/alias.py:71 +#: extensions/admin/views/alias.py:74 msgid "New alias" msgstr "Nytt alias" -#: extensions/admin/views/alias.py:72 +#: extensions/admin/views/alias.py:75 msgid "Alias created" msgstr "Alias skapat" -#: extensions/admin/views/alias.py:81 +#: extensions/admin/views/alias.py:85 msgid "New forward" msgstr "Ny vidarebefodring" -#: extensions/admin/views/alias.py:82 +#: extensions/admin/views/alias.py:86 msgid "Forward created" msgstr "Vidarebefodring skapad" -#: extensions/admin/views/alias.py:95 +#: extensions/admin/views/alias.py:100 msgid "Distribution list modified" msgstr "Distributionslista ändrad" -#: extensions/admin/views/alias.py:97 +#: extensions/admin/views/alias.py:102 msgid "Forward modified" msgstr "Vidarebefodring ändrad" -#: extensions/admin/views/alias.py:99 +#: extensions/admin/views/alias.py:104 msgid "Alias modified" msgstr "Alias ändrat" -#: extensions/admin/views/domain.py:96 extensions/admin/views/identity.py:128 +#: extensions/admin/views/domain.py:98 extensions/admin/views/identity.py:130 msgid "Next" msgstr "Nästa" -#: extensions/admin/views/domain.py:99 +#: extensions/admin/views/domain.py:101 msgid "Options" msgstr "Inställningar" -#: extensions/admin/views/domain.py:101 extensions/admin/views/identity.py:132 +#: extensions/admin/views/domain.py:103 extensions/admin/views/identity.py:134 msgid "Previous" msgstr "Föregående" -#: extensions/admin/views/domain.py:123 +#: extensions/admin/views/domain.py:125 msgid "Domain created" msgstr "Domän skapad" -#: extensions/admin/views/domain.py:128 +#: extensions/admin/views/domain.py:130 msgid "New domain" msgstr "Ny domän" -#: extensions/admin/views/domain.py:155 +#: extensions/admin/views/domain.py:158 msgid "Domain modified" msgstr "Domän ändrad" -#: extensions/admin/views/domain.py:189 +#: extensions/admin/views/domain.py:192 msgid "You can't delete your own domain" msgstr "Du kan inte radera din egen domän" -#: extensions/admin/views/domain.py:192 +#: extensions/admin/views/domain.py:195 msgid "Domain deleted" msgid_plural "Domains deleted" msgstr[0] "Domän raderad" @@ -1335,40 +1347,40 @@ msgstr "Exportera konton" msgid "Export domains" msgstr "Exportera domäner" -#: extensions/admin/views/identity.py:103 -#: extensions/admin/views/identity.py:224 -#: extensions/admin/views/identity.py:229 extensions/amavis/views.py:179 -#: extensions/amavis/views.py:185 extensions/amavis/views.py:220 -#: extensions/amavis/views.py:224 extensions/amavis/views.py:226 -#: extensions/webmail/views.py:47 extensions/webmail/views.py:65 -#: extensions/webmail/views.py:79 extensions/webmail/views.py:97 -#: extensions/webmail/views.py:114 extensions/webmail/views.py:200 -#: extensions/webmail/views.py:223 extensions/webmail/views.py:396 -#: extensions/webmail/views.py:430 extensions/webmail/views.py:443 -#: extensions/webmail/views.py:472 extensions/webmail/views.py:512 +#: extensions/admin/views/identity.py:104 +#: extensions/admin/views/identity.py:227 +#: extensions/admin/views/identity.py:232 extensions/amavis/views.py:144 +#: extensions/amavis/views.py:148 extensions/amavis/views.py:181 +#: extensions/amavis/views.py:186 extensions/amavis/views.py:188 +#: extensions/webmail/views.py:49 extensions/webmail/views.py:67 +#: extensions/webmail/views.py:81 extensions/webmail/views.py:99 +#: extensions/webmail/views.py:116 extensions/webmail/views.py:202 +#: extensions/webmail/views.py:225 extensions/webmail/views.py:401 +#: extensions/webmail/views.py:451 extensions/webmail/views.py:467 +#: extensions/webmail/views.py:496 extensions/webmail/views.py:536 #: lib/formutils.py:44 lib/formutils.py:49 msgid "Invalid request" msgstr "Ogiltig förfrågan" -#: extensions/admin/views/identity.py:149 +#: extensions/admin/views/identity.py:151 msgid "Account created" msgstr "Konto skapat" -#: extensions/admin/views/identity.py:155 +#: extensions/admin/views/identity.py:157 msgid "New account" msgstr "Nytt konto" -#: extensions/admin/views/identity.py:190 +#: extensions/admin/views/identity.py:193 msgid "Account updated" msgstr "Konto uppdaterat" -#: extensions/admin/views/identity.py:214 +#: extensions/admin/views/identity.py:217 msgid "Account deleted" msgid_plural "Accounts deleted" msgstr[0] "Konto raderat" msgstr[1] "Konton raderade" -#: extensions/admin/views/import.py:39 +#: extensions/admin/views/import.py:40 #, fuzzy, python-format msgid "" "Provide a CSV file where lines respect one of the following formats:\n" @@ -1390,21 +1402,21 @@ msgstr "" "en av de tidigare värdena.\n" "

      Du kan använda ett annat tecken som separator.\n" -#: extensions/admin/views/import.py:50 +#: extensions/admin/views/import.py:51 msgid "Import domains" msgstr "Importera domäner" -#: extensions/admin/views/import.py:129 +#: extensions/admin/views/import.py:131 #, python-format msgid "Object already exists: %s" msgstr "Objektet existerar redan: %s" -#: extensions/admin/views/import.py:133 +#: extensions/admin/views/import.py:135 #, python-format msgid "%d objects imported successfully" msgstr "%d objekt importerade" -#: extensions/admin/views/import.py:153 +#: extensions/admin/views/import.py:155 #, fuzzy msgid "" "Provide a CSV file where lines respect one of the following formats:\n" @@ -1433,11 +1445,11 @@ msgstr "" "⏎\n" "

      Du kan använda ett annat tecken separator.

      ⏎\n" -#: extensions/admin/views/import.py:165 +#: extensions/admin/views/import.py:167 msgid "Import identities" msgstr "Importera konton" -#: extensions/admin/views/user.py:37 +#: extensions/admin/views/user.py:38 msgid "Forward updated" msgstr "Vidarebefordring uppdaterad" @@ -1445,7 +1457,7 @@ msgstr "Vidarebefordring uppdaterad" msgid "Simple amavis management frontend" msgstr "Enkel amavis hantering frontend" -#: extensions/amavis/__init__.py:52 extensions/amavis/general_callbacks.py:17 +#: extensions/amavis/__init__.py:52 extensions/amavis/general_callbacks.py:18 msgid "Quarantine" msgstr "Karantän" @@ -1545,20 +1557,20 @@ msgstr "Antalet visade e-postmeddelanden per sida" msgid "Set the maximum number of messages displayed in a page" msgstr "Anger det maximala antalet meddelanden som visas på en sida" -#: extensions/amavis/general_callbacks.py:81 +#: extensions/amavis/general_callbacks.py:82 msgid "pending requests" msgstr "väntande förfrågningar" -#: extensions/amavis/general_callbacks.py:124 +#: extensions/amavis/general_callbacks.py:125 #, fuzzy msgid "Pending requests" msgstr "väntande förfrågningar" -#: extensions/amavis/general_callbacks.py:134 +#: extensions/amavis/general_callbacks.py:135 msgid "Content filter" msgstr "Innehålls filter" -#: extensions/amavis/lib.py:57 +#: extensions/amavis/lib.py:56 #, python-format msgid "Connection to amavis failed: %s" msgstr "Anslutning till amavis misslyckades: %s" @@ -1568,12 +1580,12 @@ msgid "Virus filter" msgstr "Virus filter" #: extensions/amavis/models.py:94 extensions/amavis/models.py:102 -#: extensions/amavis/models.py:110 extensions/sievefilters/views.py:290 +#: extensions/amavis/models.py:110 extensions/sievefilters/views.py:293 msgid "yes" msgstr "ja" #: extensions/amavis/models.py:95 extensions/amavis/models.py:103 -#: extensions/amavis/models.py:111 extensions/sievefilters/views.py:294 +#: extensions/amavis/models.py:111 extensions/sievefilters/views.py:297 msgid "no" msgstr "nej" @@ -1621,24 +1633,26 @@ msgstr "" "Ändra skräppost ämnesrad med vald text. Välj 'standard' för att använd " "globala inställningar." -#: extensions/amavis/sql_listing.py:31 +#: extensions/amavis/sql_listing.py:29 msgid "Score" msgstr "" -#: extensions/amavis/sql_listing.py:35 +#: extensions/amavis/sql_listing.py:33 #: extensions/amavis/templatetags/amavis_tags.py:75 -#: extensions/webmail/forms.py:7 +#: extensions/webmail/forms.py:82 msgid "To" msgstr "Till" -#: extensions/amavis/sql_listing.py:38 -#: extensions/postfix_autoreply/forms.py:11 extensions/webmail/lib.py:44 +#: extensions/amavis/sql_listing.py:36 +#: extensions/postfix_autoreply/forms.py:10 +#: extensions/webmail/lib/listing.py:31 extensions/webmail/lib/tables.py:30 msgid "From" msgstr "Från" -#: extensions/amavis/sql_listing.py:42 extensions/sievefilters/forms.py:77 -#: extensions/webmail/forms.py:11 extensions/webmail/lib.py:40 -#: extensions/webmail/lib.py:423 templates/common/email_searchbar.html:6 +#: extensions/amavis/sql_listing.py:40 extensions/sievefilters/forms.py:77 +#: extensions/webmail/forms.py:86 extensions/webmail/lib/imapemail.py:288 +#: extensions/webmail/lib/listing.py:27 extensions/webmail/lib/tables.py:26 +#: templates/common/email_searchbar.html:6 msgid "Subject" msgstr "Ämne" @@ -1646,40 +1660,40 @@ msgstr "Ämne" msgid "Empty quarantine" msgstr "Karantän tom" -#: extensions/amavis/views.py:186 +#: extensions/amavis/views.py:149 msgid "Message deleted" msgstr "Meddelande raderat" -#: extensions/amavis/views.py:207 +#: extensions/amavis/views.py:168 #, python-format msgid "%(count)d message deleted successfully" msgid_plural "%(count)d messages deleted successfully" msgstr[0] "%(count)d meddelande raderadat" msgstr[1] "%(count)d meddelanden raderade" -#: extensions/amavis/views.py:229 +#: extensions/amavis/views.py:191 msgid "Request sent" msgstr "Begäran skickad" -#: extensions/amavis/views.py:235 +#: extensions/amavis/views.py:197 msgid "Message released" msgstr "Meddelande släppt" -#: extensions/amavis/views.py:268 +#: extensions/amavis/views.py:225 #, python-format msgid "%(count)d request sent" msgid_plural "%(count)d requests sent" msgstr[0] "%(count)d förfrågning skickad" msgstr[1] "%(count)d förfrågningar skickadade" -#: extensions/amavis/views.py:288 +#: extensions/amavis/views.py:246 #, python-format msgid "%(count)d message released successfully" msgid_plural "%(count)d messages released successfully" msgstr[0] "%(count)d meddelande frisläppt" msgstr[1] "%(count)d meddelanden frisläppta" -#: extensions/amavis/management/commands/amnotify.py:57 +#: extensions/amavis/management/commands/amnotify.py:61 msgid "[modoboa] Pending release requests" msgstr "[modoboa] Väntande release förfrågningar" @@ -1924,7 +1938,7 @@ msgstr "Resurs användande" msgid "Auto-reply (vacation) functionality using Postfix" msgstr "Automatiskt svar (semester) funktionalitet med Postfix" -#: extensions/postfix_autoreply/__init__.py:47 +#: extensions/postfix_autoreply/__init__.py:49 msgid "Automatic replies" msgstr "Automatiska svar" @@ -1971,25 +1985,25 @@ msgid "" "The '%(name)s' macro will be replaced by the user's full name." msgstr "" -#: extensions/postfix_autoreply/forms.py:13 +#: extensions/postfix_autoreply/forms.py:12 #, fuzzy msgid "Activate your auto reply from this date" msgstr "Aktivera auto-svar fram till detta datum" -#: extensions/postfix_autoreply/forms.py:19 +#: extensions/postfix_autoreply/forms.py:18 msgid "Until" msgstr "Tills" -#: extensions/postfix_autoreply/forms.py:21 +#: extensions/postfix_autoreply/forms.py:20 msgid "Activate your auto reply until this date" msgstr "Aktivera auto-svar fram till detta datum" -#: extensions/postfix_autoreply/forms.py:49 #: extensions/postfix_autoreply/forms.py:55 +#: extensions/postfix_autoreply/forms.py:62 msgid "This date is over" msgstr "Detta datum har varit" -#: extensions/postfix_autoreply/forms.py:59 +#: extensions/postfix_autoreply/forms.py:67 #, fuzzy msgid "Must be greater than start date" msgstr "är större än" @@ -2154,22 +2168,22 @@ msgstr "Domän dit detta alias pekar mot" msgid "Relay domain %s does not exist" msgstr "Domänen '%s' existerar inte" -#: extensions/postfix_relay_domains/views.py:26 +#: extensions/postfix_relay_domains/views.py:28 #, fuzzy msgid "Relay domain created" msgstr "Domän skapad" -#: extensions/postfix_relay_domains/views.py:31 +#: extensions/postfix_relay_domains/views.py:33 #, fuzzy msgid "New relay domain" msgstr "Ny domän" -#: extensions/postfix_relay_domains/views.py:54 +#: extensions/postfix_relay_domains/views.py:57 #, fuzzy msgid "Relay domain modified" msgstr "Domän ändrad" -#: extensions/postfix_relay_domains/views.py:77 +#: extensions/postfix_relay_domains/views.py:80 #, fuzzy msgid "Relay domain deleted" msgstr "Domän raderad" @@ -2264,7 +2278,7 @@ msgstr "Avsändare" msgid "Recipient" msgstr "Mottagare" -#: extensions/sievefilters/forms.py:80 extensions/webmail/forms.py:8 +#: extensions/sievefilters/forms.py:80 extensions/webmail/forms.py:83 msgid "Cc" msgstr "Cc" @@ -2288,6 +2302,11 @@ msgstr "Flytta meddelande till" msgid "Redirect message to" msgstr "Omdirigera meddelande till" +#: extensions/sievefilters/forms.py:104 +#, fuzzy +msgid "Wrong filter name" +msgstr "Filnamn" + #: extensions/sievefilters/lib.py:40 msgid "Connection to MANAGESIEVE server failed, check your configuration" msgstr "" @@ -2298,53 +2317,53 @@ msgstr "" msgid "Not enough space on server" msgstr "Inte tillräckligt med utrymme på servern" -#: extensions/sievefilters/views.py:78 +#: extensions/sievefilters/views.py:80 msgid "Failed to retrieve filters set" msgstr "Det gick inte att hämta filteruppsättning" -#: extensions/sievefilters/views.py:138 +#: extensions/sievefilters/views.py:141 #: extensions/sievefilters/templatetags/sfilters_tags.py:33 msgid "New filter" msgstr "Nytt filter" -#: extensions/sievefilters/views.py:146 +#: extensions/sievefilters/views.py:149 msgid "Filter created" msgstr "Filter krashade" -#: extensions/sievefilters/views.py:160 +#: extensions/sievefilters/views.py:163 #: extensions/sievefilters/templatetags/sfilters_tags.py:78 msgid "Edit filter" msgstr "Redigera filter" -#: extensions/sievefilters/views.py:169 +#: extensions/sievefilters/views.py:172 msgid "Filter modified" msgstr "Filter modifierat" -#: extensions/sievefilters/views.py:192 +#: extensions/sievefilters/views.py:195 msgid "Filter removed" msgstr "Filter raderat" -#: extensions/sievefilters/views.py:193 +#: extensions/sievefilters/views.py:196 msgid "Failed to remove filter" msgstr "Det gick inte att radera filtret" -#: extensions/sievefilters/views.py:208 +#: extensions/sievefilters/views.py:211 msgid "Filters set saved" msgstr "Filter uppsättning sparat" -#: extensions/sievefilters/views.py:224 +#: extensions/sievefilters/views.py:227 msgid "Filters set created" msgstr "Filter uppsättning skapat" -#: extensions/sievefilters/views.py:228 +#: extensions/sievefilters/views.py:231 msgid "Create a new filters set" msgstr "Skapa ny filteruppsättning" -#: extensions/sievefilters/views.py:247 +#: extensions/sievefilters/views.py:250 msgid "Filters set deleted" msgstr "Filter uppsättning raderad" -#: extensions/sievefilters/views.py:260 +#: extensions/sievefilters/views.py:263 msgid "Filters set activated" msgstr "Filter uppsättning aktiverad" @@ -2432,14 +2451,6 @@ msgstr "Katalog för lagring av RRD filer" msgid "Path to directory where RRD files are stored" msgstr "Sökväg till katalog där RRD filer lagras" -#: extensions/stats/app_settings.py:26 -msgid "Directory to store PNG files" -msgstr "Katalog för lagring av PNG filer" - -#: extensions/stats/app_settings.py:28 -msgid "Path to directory where PNG files are stored" -msgstr "Sökväg till katalog där PNG-filer lagras" - #: extensions/stats/general_callbacks.py:12 msgid "Statistics" msgstr "Statistik" @@ -2493,23 +2504,23 @@ msgstr "sänd storlek" msgid "Mail traffic" msgstr "Mail trafik" -#: extensions/stats/grapher.py:8 +#: extensions/stats/grapher.py:9 msgid "Day" msgstr "Dag" -#: extensions/stats/grapher.py:9 +#: extensions/stats/grapher.py:10 msgid "Week" msgstr "Vecka" -#: extensions/stats/grapher.py:10 +#: extensions/stats/grapher.py:11 msgid "Month" msgstr "Månad" -#: extensions/stats/grapher.py:11 +#: extensions/stats/grapher.py:12 msgid "Year" msgstr "År" -#: extensions/stats/grapher.py:60 +#: extensions/stats/grapher.py:61 msgid "Total" msgstr "Totalt" @@ -2694,7 +2705,7 @@ msgstr "Server svar" msgid "Unknown action" msgstr "Okänd åtgärd" -#: extensions/webmail/forms.py:9 +#: extensions/webmail/forms.py:84 msgid "Cci" msgstr "BCC" @@ -2702,78 +2713,79 @@ msgstr "BCC" msgid "Webmail" msgstr "Webmail" -#: extensions/webmail/imaputils.py:242 -msgid "Failed to retrieve hierarchy delimiter" -msgstr "Det gick inte att hämta hierarki avgränsare" - -#: extensions/webmail/imaputils.py:283 -#, python-format -msgid "Connection to IMAP server failed: %s" -msgstr "Anslutning till IMAP servern misslyckades: %s" - -#: extensions/webmail/lib.py:371 -msgid "wrote:" -msgstr "skrev:" - -#: extensions/webmail/lib.py:437 extensions/webmail/lib.py:441 -msgid "Original message" -msgstr "Orginalmeddelande" - -#: extensions/webmail/views.py:85 +#: extensions/webmail/views.py:87 #, python-format msgid "%(count)d message deleted" msgid_plural "%(count)d messages deleted" msgstr[0] "%(count)d meddelande raderat" msgstr[1] "%(count)d meddelanden raderade" -#: extensions/webmail/views.py:116 lib/email_listing.py:138 +#: extensions/webmail/views.py:118 lib/email_listing.py:128 msgid "Empty mailbox" msgstr "Tom brevlåda" -#: extensions/webmail/views.py:142 +#: extensions/webmail/views.py:144 msgid "Mailbox created" msgstr "Brevlåda skapad" -#: extensions/webmail/views.py:148 -#: extensions/webmail/templatetags/webmail_tags.py:175 +#: extensions/webmail/views.py:150 +#: extensions/webmail/templatetags/webmail_tags.py:177 msgid "Create a new mailbox" msgstr "Skapa en ny brevlåda" -#: extensions/webmail/views.py:167 extensions/webmail/views.py:202 +#: extensions/webmail/views.py:169 extensions/webmail/views.py:204 msgid "Edit mailbox" msgstr "Redigera brevlåda" -#: extensions/webmail/views.py:183 +#: extensions/webmail/views.py:185 msgid "Mailbox updated" msgstr "Brevlåda uppdaterad" -#: extensions/webmail/views.py:255 +#: extensions/webmail/views.py:257 msgid "Failed to save attachment: " msgstr "Det gick inte att spara bilaga:" -#: extensions/webmail/views.py:258 +#: extensions/webmail/views.py:260 #, python-format msgid "Attachment is too big (limit: %s)" msgstr "Bilagan är för stor (max:% s)" -#: extensions/webmail/views.py:264 +#: extensions/webmail/views.py:266 #: extensions/webmail/templates/webmail/compose.html:15 #: extensions/webmail/templates/webmail/headers.html:4 msgid "Attachments" msgstr "Bilagor" -#: extensions/webmail/views.py:281 +#: extensions/webmail/views.py:283 msgid "Bad query" msgstr "Dålig fråga" -#: extensions/webmail/views.py:293 +#: extensions/webmail/views.py:295 msgid "Failed to remove attachment: " msgstr "Misslyckades med att radera bilaga:" -#: extensions/webmail/views.py:298 +#: extensions/webmail/views.py:300 msgid "Unknown attachment" msgstr "Okänd bilaa" +#: extensions/webmail/lib/imapemail.py:235 +msgid "wrote:" +msgstr "skrev:" + +#: extensions/webmail/lib/imapemail.py:302 +#: extensions/webmail/lib/imapemail.py:305 +msgid "Original message" +msgstr "Orginalmeddelande" + +#: extensions/webmail/lib/imaputils.py:242 +msgid "Failed to retrieve hierarchy delimiter" +msgstr "Det gick inte att hämta hierarki avgränsare" + +#: extensions/webmail/lib/imaputils.py:283 +#, python-format +msgid "Connection to IMAP server failed: %s" +msgstr "Anslutning till IMAP servern misslyckades: %s" + #: extensions/webmail/templates/webmail/attachments.html:6 msgid "Attach" msgstr "Bifoga" @@ -2801,7 +2813,7 @@ msgstr[1] " %(counter)s filer" msgid "Parent mailbox" msgstr "Brevlådas förälder" -#: extensions/webmail/templates/webmail/index.html:40 +#: extensions/webmail/templates/webmail/index.html:42 msgid "Mailbox quota" msgstr "Brevlåde kvota" @@ -2861,11 +2873,11 @@ msgstr "Komprimera katalog" msgid "Empty folder" msgstr "Töm katalog" -#: extensions/webmail/templatetags/webmail_tags.py:183 +#: extensions/webmail/templatetags/webmail_tags.py:185 msgid "Edit the selected mailbox" msgstr "Redigera vald brevlåda" -#: extensions/webmail/templatetags/webmail_tags.py:188 +#: extensions/webmail/templatetags/webmail_tags.py:190 msgid "Remove the selected mailbox" msgstr "Radera vald brevlåda" @@ -2912,11 +2924,6 @@ msgstr "Super administratör" msgid "Domain administrator" msgstr "Domän administratör" -#: lib/permissions.py:73 -#, python-format -msgid "Failed to grant access (%s)" -msgstr "Det gick inte att bevilja åtkomst (%s)" - #: lib/tables.py:251 msgid "No entries to display" msgstr "Inga poster att visa" @@ -2979,6 +2986,19 @@ msgstr "Kom ihåg mig" msgid "Log in" msgstr "Logga in" +#, fuzzy +#~ msgid "A domain %s already exists" +#~ msgstr "Brevlåda %s finns redan" + +#~ msgid "Directory to store PNG files" +#~ msgstr "Katalog för lagring av PNG filer" + +#~ msgid "Path to directory where PNG files are stored" +#~ msgstr "Sökväg till katalog där PNG-filer lagras" + +#~ msgid "Failed to grant access (%s)" +#~ msgstr "Det gick inte att bevilja åtkomst (%s)" + #~ msgid "An alias with this name already exists" #~ msgstr "Ett alias med detta namn finns redan" diff --git a/modoboa/locale/sv/LC_MESSAGES/djangojs.po b/modoboa/locale/sv/LC_MESSAGES/djangojs.po index 2411e0c89..006d844cd 100644 --- a/modoboa/locale/sv/LC_MESSAGES/djangojs.po +++ b/modoboa/locale/sv/LC_MESSAGES/djangojs.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Modoboa\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-12-15 10:16+0100\n" +"POT-Creation-Date: 2014-08-24 12:32+0200\n" "PO-Revision-Date: 2013-05-23 08:22+0000\n" "Last-Translator: ogg1980 \n" "Language-Team: Swedish (http://www.transifex.com/projects/p/modoboa/language/" @@ -110,18 +110,18 @@ msgstr "Radera markerad brevlåda?" msgid "Mailbox removed" msgstr "Brevlåda raderad" -#: extensions/webmail/static/webmail/js/webmail.js:746 +#: extensions/webmail/static/webmail/js/webmail.js:752 msgid "Message sent" msgstr "Meddelande sänt" -#: extensions/webmail/static/webmail/js/webmail.js:997 +#: extensions/webmail/static/webmail/js/webmail.js:1003 #, c-format msgid "%s file" msgid_plural "%s files" msgstr[0] "%s fil" msgstr[1] "%s filer" -#: extensions/webmail/static/webmail/js/webmail.js:1031 +#: extensions/webmail/static/webmail/js/webmail.js:1037 #, c-format msgid "Moving %s message" msgid_plural "Moving %s messages" diff --git a/modoboa/tools/pfxadmin_migrate/management/__init__.py b/modoboa/tools/pfxadmin_migrate/management/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/modoboa/tools/pfxadmin_migrate/management/commands/__init__.py b/modoboa/tools/pfxadmin_migrate/management/commands/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/modoboa/tools/pfxadmin_migrate/management/commands/migrate_from_postfixadmin.py b/modoboa/tools/pfxadmin_migrate/management/commands/migrate_from_postfixadmin.py new file mode 100644 index 000000000..757d1a9ba --- /dev/null +++ b/modoboa/tools/pfxadmin_migrate/management/commands/migrate_from_postfixadmin.py @@ -0,0 +1,296 @@ +# coding: utf-8 + +"""Automatic postfixadmin to Modoboa migration +=========================================== + +This script provides an easy way to migrate an existing postfixadmin +database to a Modoboa one. + +As the two products do not share the same schema, some information +will be lost on the new database. Here is the list: + * Description, transport and backup MX for domains + * Logs + * Fetchmail table + +Mailboxes organisation on the filesystem will change. PostfixAdmin +uses the following layout:: + + /domain.tld/user@domain.tld/ + +Whereas Modoboa uses the following:: + + /domain.tld/user/ + +To rename directories, you'll need the appropriate permissions. + +Domain administrators that manage more than one domain will not be +completly restored. They will only be administrator of the domain that +corresponds to their username. + +Vacation messages will not be migrated by this script. Users will have +to define new messages by using Modoboa's autoreply plugin. (if +activated) + +One last point about passwords. PostfixAdmin uses different hash +algorithms to store passwords so this script does not modify +them. They are copied "as is" in the new database. In order to use +them, use the ``--passwords-scheme`` to tell Modoboa which scheme was +used by PostfixAdmin. + +.. note:: + + Actually, it appears that the ``crypt`` scheme is compatible with + PostfixAdmin ``md5crypt`` algorithm... + +""" +from optparse import make_option +import os +import sys + +from django.contrib.auth.models import Group +from django.core.management.base import BaseCommand +from django.db import transaction +from django.db.models import Q + +import modoboa.core.models as core_models +import modoboa.extensions.admin.models as admin_models +from modoboa.lib.emailutils import split_mailbox + +from modoboa.tools.pfxadmin_migrate import models as pf_models + + +class Command(BaseCommand): + + """Migration from postfixadmin.""" + + help = "This command eases the migration from a postfixadmin database." + option_list = BaseCommand.option_list + ( + make_option( + "-f", "--from", dest="_from", default="pfxadmin", + help="Name of postfixadmin db connection declared in settings.py" + "(default is pfxadmin)" + ), + make_option( + "-t", "--to", dest="_to", default="default", + help="Name of the Modoboa db connection declared in settings.py" + " (default is default)" + ), + make_option( + "-r", "--rename-dirs", action="store_true", default=False, + help="Rename mailbox directories (default is no)" + ), + make_option( + "-p", "--mboxes-path", default=None, + help="Path where directories are stored on the filesystem" + "(used only if --rename-dirs)" + ), + make_option( + "-s", "--passwords-scheme", default="crypt", + help="Scheme used to crypt user passwords" + ) + ) + + def _migrate_dates(self, oldobj): + """Creates a new ObjectDates instance. + + Due to Django limitations, we only retrieve the creation date. The + modification date will be set to 'now' because the corresponding + field in Modoboa's schema has the 'auto_now' attribute to True. + (see https://docs.djangoproject.com/en/dev/ref/models/fields/#django.db.models.DateField). + + :param oldobj: the PostfixAdmin record which is beeing migrated. + """ + dates = admin_models.base.ObjectDates() + dates.save() + + dates.creation = oldobj.created + dates.save() + return dates + + def _migrate_domain_aliases(self, domain, options, creator): + """Migrate aliases of a single domain.""" + print "\tMigrating domain aliases" + old_domain_aliases = pf_models.AliasDomain.objects.using( + options["_from"] + ).filter(target_domain=domain.name) + for old_da in old_domain_aliases: + try: + target_domain = admin_models.Domain.objects \ + .using(options["_to"]).get(name=old_da.target_domain) + new_da = admin_models.DomainAlias() + new_da.name = old_da.alias_domain + new_da.target = target_domain + new_da.enabled = old_da.active + new_da.dates = self._migrate_dates(old_da) + new_da.save(using=options["_to"]) + new_da.post_create(creator) + except core_models.Domain.DoesNotExist: + print ("Warning: target domain %s does not exists, " + "not creating alias domain %s" + % old_da.target_domain, old_da.alias_domain) + continue + + def _migrate_mailbox_aliases(self, domain, options, creator): + """Migrate mailbox aliases of a single domain.""" + print "\tMigrating mailbox aliases" + old_aliases = pf_models.Alias.objects \ + .using(options["_from"]).filter(domain=domain.name) + for old_al in old_aliases: + if old_al.address == old_al.goto: + continue + new_al = admin_models.Alias() + local_part, tmp = split_mailbox(old_al.address) + if local_part is None or not len(local_part): + if tmp is None or not len(tmp): + print ( + "Warning: skipping alias %s (cannot retrieve local " + "part). You will need to recreate it manually." + % old_al.address + ) + continue + new_al.address = "*" + else: + new_al.address = local_part + new_al.domain = domain + new_al.enabled = old_al.active + extmboxes = [] + intmboxes = [] + for goto in old_al.goto.split(","): + try: + mb = admin_models.Mailbox.objects \ + .using(options["_to"]).get(user__username=goto) + except admin_models.Mailbox.DoesNotExist: + extmboxes += [goto] + else: + intmboxes += [mb] + new_al.dates = self._migrate_dates(old_al) + new_al.save( + int_rcpts=intmboxes, ext_rcpts=extmboxes, creator=creator, + using=options["_to"] + ) + + def _migrate_mailboxes(self, domain, options, creator): + """Migrate mailboxes of a single domain. + + .. note:: + + Mailboxes rename will be done later by the + handle_mailboxes_operation script. + + """ + print "\tMigrating mailboxes" + old_mboxes = pf_models.Mailbox.objects \ + .using(options["_from"]).filter(domain=domain.name) + for old_mb in old_mboxes: + new_user = core_models.User() + new_user.username = old_mb.username + new_user.first_name = old_mb.name.partition(' ')[0] + new_user.last_name = old_mb.name.partition(' ')[2] + new_user.email = old_mb.username + new_user.is_active = old_mb.active + new_user.date_joined = old_mb.created + new_user.password = "{%s}%s" % \ + (options["passwords_scheme"].upper(), old_mb.password) + new_user.dates = self._migrate_dates(old_mb) + new_user.save(creator=creator, using=options["_to"]) + new_user.set_role("SimpleUsers") + + new_mb = admin_models.Mailbox() + new_mb.user = new_user + new_mb.address = old_mb.local_part + new_mb.domain = domain + new_mb.dates = self._migrate_dates(old_mb) + new_mb.set_quota(old_mb.quota / 1024000, override_rules=True) + new_mb.save(creator=creator, using=options["_to"]) + + if options["rename_dirs"]: + oldpath = os.path.join( + options["mboxes_path"], domain.name, old_mb.maildir) + new_mb.rename_dir(oldpath) + + def _migrate_domain(self, old_dom, options, creator): + """Single domain migration.""" + print "Migrating domain %s" % old_dom.domain + newdom = admin_models.Domain() + newdom.name = old_dom.domain + newdom.enabled = old_dom.active + newdom.quota = old_dom.maxquota + newdom.dates = self._migrate_dates(old_dom) + newdom.save(creator=creator, using=options["_to"]) + self._migrate_mailboxes(newdom, options, creator) + self._migrate_mailbox_aliases(newdom, options, creator) + self._migrate_domain_aliases(newdom, options, creator) + + def _migrate_admins(self, options, creator): + """Administrators migration.""" + print "Migrating administrators" + + dagroup = Group.objects.using(options["_to"]).get(name="DomainAdmins") + for old_admin in pf_models.Admin.objects.using(options["_from"]).all(): + local_part, domname = split_mailbox(old_admin.username) + try: + query = Q(username=old_admin.username) & \ + (Q(domain="ALL") | Q(domain=domname)) + creds = pf_models.DomainAdmins.objects \ + .using(options["_from"]).get(query) + except pf_models.DomainAdmins.DoesNotExist: + print ( + "Warning: skipping useless admin %s" % (old_admin.username) + ) + continue + try: + domain = admin_models.Domain.objects \ + .using(options["_to"]).get(name=domname) + except admin_models.Domain.DoesNotExist: + print ( + "Warning: skipping domain admin %s, domain not found" + % old_admin.username + ) + continue + try: + user = core_models.User.objects \ + .using(options["_to"]).get(username=old_admin.username) + except core_models.User.DoesNotExist: + user = core_models.User() + user.username = old_admin.username + user.email = old_admin.username + user.password = old_admin.password + user.is_active = old_admin.active + user.save(creator=creator, using=options["_to"]) + + user.date_joined = old_admin.modified + if creds.domain == "ALL": + user.is_superuser = True + else: + user.groups.add(dagroup) + domain.add_admin(user) + user.save(using=options["_to"]) + + def _do_migration(self, options, creator_username='admin'): + """Run the complete migration.""" + pf_domains = pf_models.Domain.objects.using(options["_from"]).all() + creator = core_models.User.objects.using(options["_to"]).get( + username=creator_username) + for pf_domain in pf_domains: + + if pf_domain.domain == "ALL": + continue + + try: + # Skip this domain if it's an alias + is_domain_alias = pf_models.AliasDomain.objects \ + .using(options["_from"]).get(alias_domain=pf_domain.domain) + print "Info: %s looks like an alias domain, skipping it" \ + % pf_domain.domain + continue + except pf_models.AliasDomain.DoesNotExist: + self._migrate_domain(pf_domain, options, creator) + self._migrate_admins(options, creator) + + def handle(self, *args, **options): + """Command entry point.""" + if options["rename_dirs"] and options["mboxes_path"] is None: + print "Error: you must provide the --mboxes-path option" + sys.exit(1) + with transaction.commit_on_success(): + self._do_migration(options) diff --git a/modoboa/tools/pfxadmin_migrate/migrate.py b/modoboa/tools/pfxadmin_migrate/migrate.py deleted file mode 100755 index b78e33d87..000000000 --- a/modoboa/tools/pfxadmin_migrate/migrate.py +++ /dev/null @@ -1,214 +0,0 @@ -#!/usr/bin/env python -# coding: utf-8 - -""" -Automatic postfixadmin to Modoboa migration -=========================================== - -This script provides an easy way to migrate an existing postfixadmin -database to a Modoboa one. - -As the two products do not share the same schema, some informations -will be lost on the new database. Here is the list: - * Description, transport and backup MX for domains - * Logs - * Fetchmail table - -Mailboxes organisation on the filesystem will change. PostfixAdmin -uses the following layout:: - - /domain.tld/user@domain.tld/ - -Whereas Modoboa uses the following:: - - /domain.tld/user/ - -To rename directories, you'll need the appropriate permissions. - -Domain administrators that manage more than one domain will not be -completly restored. They will only be administrator of the domain that -corresponds to their username. - -Vacation messages will not be migrated by this script. Users will have -to define new messages by using Modoboa's autoreply plugin. (if -activated) - -One last point about passwords. PostfixAdmin uses different hash -algorithms to store passwords so this script does not modify -them. They are copied "as is" is the new database. In order to use -them, you'll have to adapt the ``PASSWORD_SCHEME`` parameter in the -admin. panel. Currently, it appears that the ``crypt`` scheme is -compatible with PostfixAdmin ``md5crypt`` algorithm... - -""" -import os -import sys -from django.db.utils import ConnectionDoesNotExist -from django.db.models import Q -from django.contrib.auth.models import Group -import modoboa.admin.models as md_models -import models as pf_models -from modoboa.lib.sysutils import exec_cmd -from modoboa.lib.emailutils import split_mailbox - -def migrate_dates(oldobj): - """Creates a new ObjectDates instance - - Due to Django limitations, we only retrieve the creation date. The - modification date will be set to 'now' because the corresponding - field in Modoboa's schema has the 'auto_now' attribute to True. - (see https://docs.djangoproject.com/en/dev/ref/models/fields/#django.db.models.DateField). - - :param oldobj: the PostfixAdmin record which is beeing migrated. - """ - dates = md_models.ObjectDates() - dates.save() - - dates.creation = oldobj.created - dates.save() - return dates - -def migrate_domain_aliases(domain, options): - print "\tMigrating domain aliases" - old_domain_aliases = pf_models.AliasDomain.objects.using(options._from).filter(target_domain=domain.name) - for old_da in old_domain_aliases: - new_da = md_models.DomainAlias() - new_da.name = old_da.alias_domain - new_da.target = old_da.target_domain - new_da.enabled = new_da.active - new_da.dates = migrate_dates(old_da) - new_da.save(using=options.to) - -def migrate_mailbox_aliases(domain, options): - print "\tMigrating mailbox aliases" - old_aliases = pf_models.Alias.objects.using(options._from).filter(domain=domain.name) - for old_al in old_aliases: - if old_al.address == old_al.goto: - continue - new_al = md_models.Alias() - local_part, tmp = split_mailbox(old_al.address) - if local_part is None or not len(local_part): - if tmp is None or not len(tmp): - print """Warning: skipping alias %s (cannot retrieve local part). -You will need to recreate it manually. -""" % old_al.address - continue - new_al.address = "*" - else: - new_al.address = local_part - new_al.domain = domain - new_al.enabled = old_al.active - extmboxes = [] - intmboxes = [] - for goto in old_al.goto.split(","): - try: - mb = md_models.Mailbox.objects.using(options.to).get(user__username=goto) - except md_models.Mailbox.DoesNotExist: - extmboxes += [goto] - else: - intmboxes += [mb] - new_al.dates = migrate_dates(old_al) - new_al.save(intmboxes, extmboxes, using=options.to) - -def migrate_mailboxes(domain, options): - print "\tMigrating mailboxes" - old_mboxes = pf_models.Mailbox.objects.using(options._from).filter(domain=domain.name) - for old_mb in old_mboxes: - new_mb = md_models.Mailbox() - new_mb.address = old_mb.local_part - new_mb.domain = domain - new_mb.dates = migrate_dates(old_mb) - if old_mb.quota: - new_mb.quota = old_mb.quota / 1024000 - - new_mb.path = "%s/" % old_mb.local_part - if options.rename_dirs: - oldpath = os.path.join(options.mboxes_path, domain.name, old_mb.maildir) - newpath = os.path.join(options.mboxes_path, domain.name, new_mb.path) - code, output = exec_cmd("mv %s %s" % (oldpath, newpath)) - if code: - print "Error: cannot rename mailbox directory\n%s" % output - sys.exit(1) - - new_mb.save(name=old_mb.name, password=old_mb.password, using=options.to) - - -def migrate_domain(old_dom, options): - print "Migrating domain %s" % old_dom.domain - newdom = md_models.Domain() - newdom.name = old_dom.domain - newdom.enabled = old_dom.active - newdom.quota = old_dom.maxquota - newdom.dates = migrate_dates(old_dom) - newdom.save(using=options.to) - migrate_mailboxes(newdom, options) - migrate_mailbox_aliases(newdom, options) - migrate_domain_aliases(newdom, options) - -def migrate_admins(options): - print "Migrating administrators" - - dagroup = Group.objects.using(options.to).get(name="DomainAdmins") - for old_admin in pf_models.Admin.objects.using(options._from).all(): - local_part, domname = split_mailbox(old_admin.username) - try: - query = Q(username=old_admin.username) & \ - (Q(domain="ALL") | Q(domain=domname)) - creds = pf_models.DomainAdmins.objects.using(options._from).get(query) - except pf_models.DomainAdmins.DoesNotExist: - print "Warning: skipping useless admin %s" % (old_admin.username) - continue - try: - user = md_models.User.objects.using(options.to).get(username=old_admin.username) - except md_models.User.DoesNotExist: - try: - domain = md_models.Domain.objects.using(options.to).get(name=domname) - except md_models.Domain.DoesNotExist: - print "Warning: skipping domain admin %s, domain not found" \ - % old_admin.username - continue - user = md_models.User() - user.username = old_admin.username - user.email = old_admin.username - user.password = old_admin.password - user.is_active = old_admin.active - user.save(using=options.to) - - user.date_joined = old_admin.modified - if creds.domain == "ALL": - user.is_superuser = True - else: - user.groups.add(dagroup) - user.save(using=options.to) - -def do_migration(options): - pf_domains = pf_models.Domain.objects.using(options._from).all() - for olddom in pf_domains: - if olddom.domain == "ALL": - continue - migrate_domain(olddom, options) - migrate_admins(options) - -if __name__ == "__main__": - from optparse import OptionParser - - parser = OptionParser() - parser.add_option("-f", "--from", dest="_from", default="pfxadmin", - help="Name of postfixadmin db connection declared in settings.py") - parser.add_option("-t", "--to", default="default", - help="Name of the Modoboa db connection declared in settings.py") - parser.add_option("-r", "--rename-dirs", action="store_true", - help="Rename mailbox directories (default is no)") - parser.add_option("-p", "--mboxes-path", default=None, - help="Path where directories are stored on the filesystem (used only if --rename-dirs)") - - options, args = parser.parse_args() - - if options.rename_dirs and options.mboxes_path is None: - print "Error: you must provide the --mboxes-path option" - sys.exit(1) - - try: - do_migration(options) - except ConnectionDoesNotExist, e: - print e