diff --git a/admin/forms.py b/admin/forms.py index 4086da76d..e90dfff14 100644 --- a/admin/forms.py +++ b/admin/forms.py @@ -196,28 +196,22 @@ class DlistForm(forms.ModelForm, DynamicForm): self.save_m2m() return dlist -class ForwardForm(forms.ModelForm): +class GenericAliasForm(forms.ModelForm): email = forms.EmailField( - label=ugettext_lazy("Email address"), - help_text=ugettext_lazy("The forwarded address") + label=ugettext_lazy("Address"), + help_text=ugettext_lazy("A valid e-mail address") ) - recipient = forms.EmailField( - label=ugettext_lazy("Recipient"), - help_text=ugettext_lazy("The address to forward messages to") - ) - + class Meta: model = Alias fields = ("enabled",) def __init__(self, user, *args, **kwargs): self.user = user - super(ForwardForm, self).__init__(*args, **kwargs) - self.fields.keyOrder = ['email', 'recipient', 'enabled'] + super(GenericAliasForm, self).__init__(*args, **kwargs) if kwargs.has_key("instance"): - forward = kwargs["instance"] - self.fields["email"].initial = forward.full_address - self.fields["recipient"].initial = forward.extmboxes + alias = kwargs["instance"] + self.fields["email"].initial = alias.full_address def clean_email(self): localpart, domname = split_mailbox(self.cleaned_data["email"]) @@ -229,27 +223,73 @@ class ForwardForm(forms.ModelForm): raise forms.ValidationError(_("You don't have access to this domain")) return self.cleaned_data["email"] - def clean_recipient(self): - local_part, domname = split_mailbox(self.cleaned_data["recipient"]) + def set_recipients(self): + pass + + def _save(self): + alias = super(GenericAliasForm, self).save(commit=False) + localpart, domname = split_mailbox(self.cleaned_data["email"]) + alias.address = localpart + alias.domain = Domain.objects.get(name=domname) + return alias + +class AliasForm(GenericAliasForm): + int_recipient = forms.EmailField( + label=ugettext_lazy("Recipient"), + help_text=ugettext_lazy("A local recipient address") + ) + + def __init__(self, *args, **kwargs): + super(AliasForm, self).__init__(*args, **kwargs) + self.fields.keyOrder = ['email', 'int_recipient', 'enabled'] + if kwargs.has_key("instance"): + alias = kwargs["instance"] + self.fields["int_recipient"].initial = alias.mboxes.all()[0].full_address + + def clean_int_recipient(self): + localpart, domname = split_mailbox(self.cleaned_data["int_recipient"]) + try: + self.rcpt_mb = Mailbox.objects.get(address=localpart, domain__name=domname) + except Mailbox.DoesNotExist: + raise forms.ValidationError(_("Mailbox does not exist")) + if not self.user.can_access(self.rcpt_mb): + raise forms.ValidationError(_("You can't access this mailbox")) + return self.cleaned_data["int_recipient"] + + def save(self, commit=True): + alias = self._save() + if commit: + alias.save([self.rcpt_mb], []) + return alias + +class ForwardForm(GenericAliasForm): + ext_recipient = forms.EmailField( + label=ugettext_lazy("Recipient"), + help_text=ugettext_lazy("An external recipient address") + ) + + def __init__(self, *args, **kwargs): + super(ForwardForm, self).__init__(*args, **kwargs) + self.fields.keyOrder = ['email', 'ext_recipient', 'enabled'] + if kwargs.has_key("instance"): + alias = kwargs["instance"] + self.fields["ext_recipient"].initial = alias.extmboxes + + def clean_ext_recipient(self): + local_part, domname = split_mailbox(self.cleaned_data["ext_recipient"]) try: domain = Domain.objects.get(name=domname) except Domain.DoesNotExist: pass else: - raise forms.ValidationError(_("Local addresses are forbidden")) - return self.cleaned_data["recipient"] - - def set_recipients(self): - pass + raise forms.ValidationError(_("Local recipients are forbidden")) + return self.cleaned_data["ext_recipient"] def save(self, commit=True): - forward = super(ForwardForm, self).save(commit=False) - localpart, domname = split_mailbox(self.cleaned_data["email"]) - forward.address = localpart - forward.domain = Domain.objects.get(name=domname) + alias = self._save() if commit: - forward.save([], [self.cleaned_data["recipient"]]) - return forward + alias.save([], [self.cleaned_data["ext_recipient"]]) + return alias class ImportDataForm(forms.Form): sourcefile = forms.FileField(label=ugettext_lazy("Select a file")) @@ -389,7 +429,7 @@ class AccountFormMail(forms.Form, DynamicForm): raise AdminError(_("Domain does not exist")) if not user.can_access(domain): - raise PermDeniedException(_("You don't have access to this domain")) + raise PermDeniedException if not hasattr(self, "mb") or self.mb is None: try: diff --git a/admin/migrations/0019_set_default_group.py b/admin/migrations/0019_set_default_group.py index 44099dc30..323f7ce3a 100644 --- a/admin/migrations/0019_set_default_group.py +++ b/admin/migrations/0019_set_default_group.py @@ -11,7 +11,8 @@ class Migration(DataMigration): try: sugroup = orm["auth.Group"].objects.get(name="SimpleUsers") except orm["auth.Group"].DoesNotExist: - return + sugroup = orm["auth.Group"](name="SimpleUsers") + sugroup.save() for account in orm["auth.User"].objects.all(): if not len(account.groups.all()): account.groups.add(sugroup) diff --git a/admin/models.py b/admin/models.py index 5c0a98c51..cc96d923a 100644 --- a/admin/models.py +++ b/admin/models.py @@ -35,6 +35,7 @@ class User(DUser): """ class Meta: proxy = True + ordering = ["username"] password_expr = re.compile(r'\{(\w+)\}(.+)') @@ -70,12 +71,12 @@ class User(DUser): raise AdminError(_("You can't delete your own account")) if not fromuser.can_access(self): - raise PermDeniedException("You don't have access to this account") + raise PermDeniedException if self.has_mailbox: mb = self.mailbox_set.all()[0] if not fromuser.can_access(mb): - raise PermDeniedException(_("You don't have access to this mailbox")) + raise PermDeniedException mb.delete(keepdir=keep_mb_dir) owner = get_object_owner(self) @@ -383,6 +384,7 @@ class Domain(DatesAware): ("view_domain", "View domain"), ("view_domains", "View domains"), ) + ordering = ["name"] @property def domainalias_count(self): @@ -672,7 +674,7 @@ class Mailbox(DatesAware): except Domain.DoesNotExist: raise AdminError(_("Cannot import this mailbox because the associated domain does not exist")) if not user.can_access(self.domain): - raise PermDeniedException(_("You don't have access to this domain")) + raise PermDeniedException name = "%s %s" % (line[3].strip(), line[4].strip()) self.save(username=line[1].strip(), name=name, @@ -711,6 +713,7 @@ class Alias(DatesAware): ("view_aliases", "View aliases"), ) unique_together = (("address", "domain"),) + ordering = ["domain__name", "address"] @property def full_address(self): @@ -775,7 +778,7 @@ class Alias(DatesAware): except Domain.DoesNotExist: raise AdminError(_("Domain does not exist")) if not user.can_access(domain): - raise PermDeniedException(_("You can't access this domain")) + raise PermDeniedException self.address = localpart self.domain = domain self.enabled = True diff --git a/admin/tables.py b/admin/tables.py index 24fce9c38..46be0df35 100644 --- a/admin/tables.py +++ b/admin/tables.py @@ -54,7 +54,7 @@ class IdentitiesTable(tables.Table): "identity", label=ugettext_lazy("Email/Username"), modal=True, urlpattern={"User" : "modoboa.admin.views.editaccount", - "Alias" : "modoboa.admin.views.editalias"}, + "Alias" : "modoboa.admin.views.editalias_dispatcher"}, modalcb={"User" : "editaccount_cb", "Alias" : "aliasform_cb"} ) name_or_rcpt = tables.Column("name_or_rcpt", label=ugettext_lazy("Fullname/Recipient")) diff --git a/admin/templatetags/admin_extras.py b/admin/templatetags/admin_extras.py index de2bd07c4..c8deece6a 100644 --- a/admin/templatetags/admin_extras.py +++ b/admin/templatetags/admin_extras.py @@ -92,6 +92,12 @@ def identities_menu(user): "modal" : True, "modalcb" : "newaccount_cb", "url" : reverse(admin.views.newaccount)}, + {"name" : "newalias", + "label" : _("Add alias"), + "img" : "icon-plus", + "modal" : True, + "modalcb" : "aliasform_cb", + "url" : reverse(admin.views.newalias)}, {"name" : "newforward", "label" : _("Add forward"), "img" : "icon-plus", @@ -148,13 +154,20 @@ def identity_actions(user, iid): "img" : "icon-trash", "title" : _("Delete this distribution list")}, ] - else: + elif alias.extmboxes != "": actions = [ {"name" : "delforward", "url" : reverse(admin.views.delforward) + "?selection=%s" % objid, "img" : "icon-trash", "title" : _("Delete this forward")}, ] + else: + actions = [ + {"name" : "delalias", + "url" : reverse(admin.views.delalias) + "?selection=%s" % objid, + "img" : "icon-trash", + "title" : _("Delete this alias")}, + ] return render_actions(actions) @register.simple_tag diff --git a/admin/urls.py b/admin/urls.py index 55a0e3ae7..231f7c321 100644 --- a/admin/urls.py +++ b/admin/urls.py @@ -26,11 +26,15 @@ urlpatterns = patterns( (r'^accounts/edit/(?P\d+)/$', 'editaccount'), (r'^accounts/delete/$', 'delaccount'), + (r'^mailboxes/list/$', 'mboxes_list'), + (r'^distriblists/new/$', 'newdlist'), (r'^distriblists/delete/$', 'deldlist'), (r'^forwards/new/$', 'newforward'), (r'^forwards/delete/$', 'delforward'), - (r'^aliases/edit/(?P\d+)/$', 'editalias') + (r'^aliases/new/$', 'newalias'), + (r'^aliases/edit/(?P\d+)/$', 'editalias_dispatcher'), + (r'^aliases/delete/$', 'delalias'), ) diff --git a/admin/views.py b/admin/views.py index d79b0e38c..2877d6c72 100644 --- a/admin/views.py +++ b/admin/views.py @@ -95,7 +95,7 @@ def newdomain(request, tplname="admin/newdomainform.html"): def editdomain(request, dom_id, tplname="admin/editdomainform.html"): domain = Domain.objects.get(pk=dom_id) if not request.user.can_access(domain): - raise PermDeniedException(_("You can't edit this domain")) + raise PermDeniedException domadmins = filter( lambda u: request.user.can_access(u) and not u.is_superuser, @@ -133,7 +133,7 @@ def deldomain(request): for dom in Domain.objects.filter(id__in=selection): if not request.user.can_access(dom): - raise PermDeniedException(_("You can't delete this domain")) + raise PermDeniedException if mb and mb.domain == dom: raise AdminError(_("You can't delete your own domain")) dom.delete(keepdir=keepdir) @@ -197,6 +197,16 @@ def newdlist(request): return _new_alias(request, "common/generic_modal_form.html", DlistForm, ctx, _("Distribution list created")) +@login_required +@permission_required("admin.add_alias") +@transaction.commit_on_success +def newalias(request): + ctx = dict(title=_("New alias"), + action=reverse(newalias), + formid="aliasform") + return _new_alias(request, "common/generic_modal_form.html", + AliasForm, ctx, _("Alias created")) + @login_required @permission_required("admin.add_alias") @transaction.commit_on_success @@ -209,7 +219,7 @@ def newforward(request): def _edit_alias(request, alias, tplname, formclass, ctx, successmsg): if not request.user.can_access(alias): - raise PermDeniedException(_("You do not have access to this alias")) + raise PermDeniedException ctx.update(title=alias.full_address, action_label=_("Update"), action_classes="submit") if request.method == "POST": @@ -220,6 +230,10 @@ def _edit_alias(request, alias, tplname, formclass, ctx, successmsg): ctx["form"] = form return _render(request, tplname, ctx) +def editalias(request, alias, ctx): + return _edit_alias(request, alias, "common/generic_modal_form.html", + AliasForm, ctx, _("Alias modified")) + def editdlist(request, alias, ctx): return _edit_alias(request, alias, "admin/dlistform.html", DlistForm, ctx, _("Distribution list modified")) @@ -230,25 +244,33 @@ def editforward(request, alias, ctx): @login_required @permission_required("admin.change_alias") -def editalias(request, alid): +def editalias_dispatcher(request, alid): alias = Alias.objects.get(pk=alid) - ctx = dict(action=reverse(editalias, args=[alias.id]), formid="aliasform") + ctx = dict(action=reverse(editalias_dispatcher, args=[alias.id]), formid="aliasform") if len(alias.get_recipients()) >= 2: return editdlist(request, alias, ctx) - return editforward(request, alias, ctx) + if alias.extmboxes != "": + return editforward(request, alias, ctx) + return editalias(request, alias, ctx) def _del_alias(request, msg, msgs): selection = request.GET["selection"].split(",") for alid in selection: alias = Alias.objects.get(pk=alid) if not request.user.can_access(alias): - raise PermDeniedException(_("!")) + raise PermDeniedException alias.delete() msg = ungettext(msg, msgs, len(selection)) messages.info(request, msg) return ajax_response(request) +@login_required +@permission_required("admin.delete_alias") +@transaction.commit_on_success +def delalias(request): + return _del_alias(request, "Alias deleted", "Aliases deleted") + @login_required @permission_required("admin.delete_alias") @transaction.commit_on_success @@ -285,6 +307,7 @@ def identities(request, tplname='admin/identities.html'): for oa in idents_list: if oa.content_object: objects.append(oa.content_object) + objects = sorted(objects, key=lambda o: o.identity) return render_listing(request, "identities", tplname, objects=objects, squery=squery) @@ -295,6 +318,12 @@ def accounts_list(request): res = map(lambda a: a.username, accs.all()) return ajax_simple_response(res) +@login_required +@permission_required("admin.add_mailbox") +def mboxes_list(request): + mboxes = request.user.get_mailboxes() + return ajax_simple_response([mb.full_address for mb in mboxes]) + @login_required @permission_required("auth.add_user") @transaction.commit_on_success @@ -359,7 +388,7 @@ def newaccount(request, tplname='admin/newaccount.html'): def editaccount(request, accountid, tplname="common/tabforms.html"): account = User.objects.get(pk=accountid) if not request.user.can_access(account): - raise PermDeniedException(_("You can't access this account")) + raise PermDeniedException mb = None if account.has_mailbox: mb = account.mailbox_set.all()[0] @@ -422,7 +451,7 @@ def remove_permission(request): except (User.DoesNotExist, Domain.DoesNotExist): raise AdminError(_("Invalid request")) if not request.user.can_access(account) or not request.user.can_access(domain): - raise AdminError(_("Permission denied")) + raise PermDeniedException ungrant_access_to_object(domain, account) return ajax_simple_response(dict(status="ok")) diff --git a/extensions/stats/views.py b/extensions/stats/views.py index 7748da891..741a6f0af 100644 --- a/extensions/stats/views.py +++ b/extensions/stats/views.py @@ -49,7 +49,7 @@ def graphs(request): graphs_loc=parameters.get_admin("GRAPHS_LOCATION")) if view == "global": if not request.user.is_superuser: - raise PermDeniedException(_("you're not allowed to see those statistics")) + raise PermDeniedException tplvars.update(domain=view) else: try: @@ -57,7 +57,7 @@ def graphs(request): except Domain.DoesNotExist: raise ModoboaException(_("Domain not found. Please enter a full name")) if not request.user.can_access(domain): - raise PermDeniedException(_("You don't have access to this domain")) + raise PermDeniedException tplvars.update(domain=domain.name) if period == "custom": diff --git a/extensions/webmail/fetch_parser.py b/extensions/webmail/fetch_parser.py index 40c590280..d5f5ecad7 100644 --- a/extensions/webmail/fetch_parser.py +++ b/extensions/webmail/fetch_parser.py @@ -102,6 +102,9 @@ def parse_fetch_response(data): while cpt < len(data): content = () while cpt < len(data) and data[cpt] != ')': + if type(data[cpt]) == str: + # FIXME : probably an unsolicited response + continue content += data[cpt] cpt += 1 cpt += 1 diff --git a/lib/exceptions.py b/lib/exceptions.py index d2d4bd1b4..39505abf0 100644 --- a/lib/exceptions.py +++ b/lib/exceptions.py @@ -10,11 +10,13 @@ class ModoboaException(Exception): pass class PermDeniedException(ModoboaException): - def __init__(self, msg): + def __init__(self, msg=None): self.msg = msg def __str__(self): - return _("Permission denied: %s" % self.msg) + if self.msg: + return _("Permission denied: %s" % self.msg) + return _("Permission denied") class NeedsMailboxException(ModoboaException): pass diff --git a/lib/permissions.py b/lib/permissions.py index 92f45f324..d82201ca1 100644 --- a/lib/permissions.py +++ b/lib/permissions.py @@ -2,8 +2,9 @@ from functools import wraps from django.contrib.contenttypes.models import ContentType from django.utils.translation import ugettext as _ -from modoboa.admin.models import ObjectAccess +from modoboa.admin.models import ObjectAccess, IntegrityError import events +from exceptions import ModoboaException def get_content_type(obj): """Simple function that use the right method to retrieve a content type @@ -58,7 +59,7 @@ def grant_access_to_object(user, obj, is_owner=False): object_id=obj.id, is_owner=is_owner) objaccess.save() except IntegrityError, e: - raise AdminError(_("Failed to grant access (%s)" % str(e))) + raise ModoboaException(_("Failed to grant access (%s)" % str(e))) def ungrant_access_to_object(obj, user=None): """Ungrant access to an object for a specific user diff --git a/locale/de/LC_MESSAGES/django.po b/locale/de/LC_MESSAGES/django.po index 1bc8a8d2f..e7c467223 100644 --- a/locale/de/LC_MESSAGES/django.po +++ b/locale/de/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Modoboa-0.8.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-04-25 16:51+0200\n" +"POT-Creation-Date: 2012-05-03 10:59+0200\n" "PO-Revision-Date: 2012-01-17 14:28+0100\n" "Last-Translator: Patrick Ben Koetter \n" "Language-Team: DE \n" @@ -73,7 +73,7 @@ msgstr "Anzahl dargestellter Einträge pro Seite" msgid "The default redirection used when no application is specified" msgstr "Die Standardumleitung wenn kein Programm angegeben wurde" -#: admin/forms.py:15 admin/forms.py:299 +#: admin/forms.py:15 admin/forms.py:396 admin/tables.py:17 #, fuzzy msgid "Alias(es)" msgstr "Aliases" @@ -83,7 +83,7 @@ msgstr "Aliases" msgid "Alias(es) of this domain" msgstr "Aliase dieser Domäne ansehen" -#: admin/forms.py:51 admin/views.py:58 +#: admin/forms.py:51 admin/views.py:60 #, fuzzy msgid "An alias with this name already exists" msgstr "Ein Alias mit diesem Namen existiert bereits" @@ -96,137 +96,174 @@ msgstr "Eine Domäne mit diesem Namen existiert bereits" msgid "Failed to rename domain, check permissions" msgstr "Domäne konnte nicht umbenannt werden. Prüfen Sie die Berechtigungen." -#: admin/forms.py:105 +#: admin/forms.py:103 #, fuzzy msgid "Email address" msgstr "From:-Adresse" -#: admin/forms.py:106 +#: admin/forms.py:104 msgid "The distribution list address" msgstr "" -#: admin/forms.py:109 +#: admin/forms.py:107 #, fuzzy msgid "Recipients" msgstr "Empfänger" -#: admin/forms.py:110 +#: admin/forms.py:108 msgid "Mailbox(es) this alias will point to" msgstr "Mailbox(en) auf den der Alias verweisen wird" -#: admin/forms.py:143 admin/forms.py:330 admin/models.py:756 +#: admin/forms.py:142 admin/forms.py:221 admin/forms.py:429 +#: admin/models.py:779 #, fuzzy msgid "Domain does not exist" msgstr "Domäne gelöscht" -#: admin/forms.py:163 -msgid "Invalid mailbox" -msgstr "Ungültige Mailbox" - -#: admin/forms.py:174 admin/models.py:776 -#, fuzzy, python-format -msgid "Mailbox %s does not exist" -msgstr "Eine Mailbox mit dieser Adresse existiert bereits." - -#: admin/forms.py:183 -#, fuzzy -msgid "No recipient defined" -msgstr "Kein Ziel angegeben" - -#: admin/forms.py:186 -msgid "A distribution list must contain at least two recipients" -msgstr "" - -#: admin/forms.py:199 extensions/webmail/forms.py:18 -msgid "Select a file" -msgstr "Wählen Sie eine Datei" - -#: admin/forms.py:200 -msgid "Separator" -msgstr "Separator" - -#: admin/forms.py:212 auth/forms.py:6 templates/admin/editdomainform.html:20 -msgid "Username" -msgstr "Benutzername" - -#: admin/forms.py:214 -msgid "Role" -msgstr "" - -#: admin/forms.py:215 admin/forms.py:233 -#, fuzzy -msgid "Choose" -msgstr "Wert auswählen" - -#: admin/forms.py:216 -msgid "What level of permission this user will have" -msgstr "" - -#: admin/forms.py:226 -#, fuzzy -msgid "Enabled" -msgstr "aktiviert" - -#: admin/forms.py:265 auth/forms.py:10 -msgid "Password" -msgstr "Passwort" - -#: admin/forms.py:267 userprefs/forms.py:15 -msgid "Confirmation" -msgstr "Bestätigung" - -#: admin/forms.py:269 -msgid "Enter the same password as above, for verification." -msgstr "" - -#: admin/forms.py:281 -msgid "The two password fields didn't match." -msgstr "" - -#: admin/forms.py:296 -#, fuzzy -msgid "E-mail" -msgstr "Webmail" - -#: admin/forms.py:297 admin/tables.py:21 -msgid "Quota" -msgstr "Quota" - -#: admin/forms.py:301 -#, fuzzy -msgid "Alias(es) of this mailbox" -msgstr "Aliase dieser Domäne ansehen" - -#: admin/forms.py:333 admin/models.py:75 admin/models.py:665 -#: admin/views.py:359 extensions/stats/views.py:60 +#: admin/forms.py:144 admin/forms.py:223 #, fuzzy msgid "You don't have access to this domain" msgstr "Aliase dieser Domäne ansehen" -#: admin/forms.py:351 +#: admin/forms.py:164 +msgid "Invalid mailbox" +msgstr "Ungültige Mailbox" + +#: admin/forms.py:175 admin/models.py:799 +#, fuzzy, python-format +msgid "Mailbox %s does not exist" +msgstr "Eine Mailbox mit dieser Adresse existiert bereits." + +#: admin/forms.py:184 +#, fuzzy +msgid "No recipient defined" +msgstr "Kein Ziel angegeben" + +#: admin/forms.py:187 +msgid "A distribution list must contain at least two recipients" +msgstr "" + +#: admin/forms.py:201 +msgid "Address" +msgstr "Adresse" + +#: admin/forms.py:202 +#, fuzzy +msgid "A valid e-mail address" +msgstr "From:-Adresse" + +#: admin/forms.py:238 admin/forms.py:267 extensions/sievefilters/forms.py:70 +msgid "Recipient" +msgstr "Empfänger" + +#: admin/forms.py:239 +#, fuzzy +msgid "A local recipient address" +msgstr "Kein Ziel angegeben" + +#: admin/forms.py:254 +#, fuzzy +msgid "Mailbox does not exist" +msgstr "Eine Mailbox mit dieser Adresse existiert bereits." + +#: admin/forms.py:256 +#, fuzzy +msgid "You can't access this mailbox" +msgstr "Sie können Ihre eigene Domäne nicht löschen" + +#: admin/forms.py:268 +msgid "An external recipient address" +msgstr "" + +#: admin/forms.py:285 +#, fuzzy +msgid "Local recipients are forbidden" +msgstr "Kein Ziel angegeben" + +#: admin/forms.py:295 extensions/webmail/forms.py:18 +msgid "Select a file" +msgstr "Wählen Sie eine Datei" + +#: admin/forms.py:296 +msgid "Separator" +msgstr "Separator" + +#: admin/forms.py:308 auth/forms.py:6 templates/admin/editdomainform.html:20 +msgid "Username" +msgstr "Benutzername" + +#: admin/forms.py:310 +msgid "Role" +msgstr "" + +#: admin/forms.py:311 admin/forms.py:335 +#, fuzzy +msgid "Choose" +msgstr "Wert auswählen" + +#: admin/forms.py:312 +msgid "What level of permission this user will have" +msgstr "" + +#: admin/forms.py:314 auth/forms.py:10 +msgid "Password" +msgstr "Passwort" + +#: admin/forms.py:316 userprefs/forms.py:15 +msgid "Confirmation" +msgstr "Bestätigung" + +#: admin/forms.py:318 +msgid "Enter the same password as above, for verification." +msgstr "" + +#: admin/forms.py:329 +#, fuzzy +msgid "Enabled" +msgstr "aktiviert" + +#: admin/forms.py:367 +msgid "The two password fields didn't match." +msgstr "" + +#: admin/forms.py:393 +#, fuzzy +msgid "E-mail" +msgstr "Webmail" + +#: admin/forms.py:394 +msgid "Quota" +msgstr "Quota" + +#: admin/forms.py:398 +#, fuzzy +msgid "Alias(es) of this mailbox" +msgstr "Aliase dieser Domäne ansehen" + +#: admin/forms.py:454 msgid "Failed to rename mailbox, check permissions" msgstr "Mailbox konnte nicht umbenannt werden. Prüfen Sie die Berechtigungen." -#: admin/forms.py:389 +#: admin/forms.py:495 #, fuzzy msgid "Domain(s)" msgstr "Domänen" -#: admin/forms.py:391 +#: admin/forms.py:497 #, fuzzy msgid "Domain(s) that user administrates" msgstr "Domänen-Administratoren" -#: admin/forms.py:430 admin/views.py:322 templates/admin/editdomainform.html:4 +#: admin/forms.py:546 admin/views.py:356 templates/admin/editdomainform.html:4 msgid "General" msgstr "" -#: admin/forms.py:432 admin/views.py:325 +#: admin/forms.py:548 admin/views.py:359 #, fuzzy msgid "Mail" msgstr "Mailboxen" -#: admin/forms.py:434 +#: admin/forms.py:550 msgid "Permissions" msgstr "Berechtigungen" @@ -234,104 +271,100 @@ msgstr "Berechtigungen" msgid "Unknown object type" msgstr "Unbekannter Objekt-Typ" -#: admin/models.py:70 +#: admin/models.py:71 #, fuzzy msgid "You can't delete your own account" msgstr "Sie können Ihre eigene Domäne nicht löschen" -#: admin/models.py:80 -msgid "You don't have access to this account" -msgstr "" - -#: admin/models.py:141 +#: admin/models.py:137 msgid "Failed to update password: LDAP module not installed" msgstr "Konnte Kennwort nicht aktualisieren: LDAP-Modul nicht installiert" -#: admin/models.py:147 +#: admin/models.py:143 #, python-format msgid "Failed to update password: %s" msgstr "Konnte Kennwort nicht aktualisieren: %s" -#: admin/models.py:378 admin/models.py:455 +#: admin/models.py:375 admin/models.py:461 msgid "name" msgstr "Name" -#: admin/models.py:379 +#: admin/models.py:376 msgid "The domain name" msgstr "Name der Domäne" -#: admin/models.py:380 +#: admin/models.py:377 msgid "Default quota in MB applied to mailboxes" msgstr "Standard-Quota für Mailboxen (in MB)" -#: admin/models.py:381 admin/models.py:460 admin/models.py:696 -#: admin/models.py:782 extensions/postfix_autoreply/models.py:19 +#: admin/models.py:378 admin/models.py:466 admin/models.py:708 +#: admin/models.py:805 extensions/postfix_autoreply/models.py:19 msgid "enabled" msgstr "aktiviert" -#: admin/models.py:382 +#: admin/models.py:379 msgid "Check to activate this domain" msgstr "Auswählen, um diese Domäne zu aktivieren" -#: admin/models.py:440 +#: admin/models.py:446 msgid "Failed to initialise domain, check permissions" msgstr "" "Domäne konnte nicht initialisiert werden. Prüfen Sie die Berechtigungen." -#: admin/models.py:448 admin/models.py:657 admin/models.py:751 +#: admin/models.py:454 admin/models.py:669 admin/models.py:774 msgid "Invalid line" msgstr "Ungültige Zeile" -#: admin/models.py:456 +#: admin/models.py:462 msgid "The alias name" msgstr "Der Alias-Name" -#: admin/models.py:457 +#: admin/models.py:463 msgid "target" msgstr "Ziel" -#: admin/models.py:458 +#: admin/models.py:464 msgid "The domain this alias points to" msgstr "Domäne auf die dieser Alias verweist" -#: admin/models.py:461 admin/models.py:697 +#: admin/models.py:467 admin/models.py:709 msgid "Check to activate this alias" msgstr "Auswählen um den Alias zu aktivieren" -#: admin/models.py:474 admin/models.py:687 +#: admin/models.py:486 admin/models.py:699 msgid "address" msgstr "Adresse" -#: admin/models.py:475 +#: admin/models.py:487 msgid "Mailbox address (without the @domain.tld part)" msgstr "Mailbox-Adresse (ohne den @domain.tld-Anteil)" -#: admin/models.py:572 +#: admin/models.py:584 #, python-format msgid "%s is not a valid uid/username" msgstr "" -#: admin/models.py:581 +#: admin/models.py:593 #, python-format msgid "%s is not a valid gid/groupname" msgstr "" -#: admin/models.py:585 admin/models.py:642 +#: admin/models.py:597 admin/models.py:654 msgid "Failed to initialise mailbox, check permissions" msgstr "" "Mailbox konnte nicht initialisiert werden. Prüfen Sie die Berechtigungen." -#: admin/models.py:610 +#: admin/models.py:622 #, fuzzy, python-format msgid "Account '%s' already exists" msgstr "Eine Domäne mit diesem Namen existiert bereits" -#: admin/models.py:663 +#: admin/models.py:675 msgid "Cannot import this mailbox because the associated domain does not exist" msgstr "" "Kann Mailbox nicht importieren, weil die dazugehörende Domain nicht existiert" -#: admin/models.py:688 +#: admin/models.py:700 msgid "" "The alias address (without the domain part). For a 'catch-all' address, just " "enter an * character." @@ -339,194 +372,166 @@ msgstr "" "Die Alias-Adresse (ohne den Domain-Anteil). Geben sie für eine Adresse an, " "die alles annimmt, * an." -#: admin/models.py:692 +#: admin/models.py:704 msgid "mailboxes" msgstr "Mailboxen" -#: admin/models.py:693 +#: admin/models.py:705 msgid "The mailboxes this alias points to" msgstr "Mailbox auf den dieser Alias verweist" -#: admin/models.py:758 lib/permissions.py:115 -#, fuzzy -msgid "You can't access this domain" -msgstr "Sie können Ihre eigene Domäne nicht löschen" - -#: admin/models.py:783 +#: admin/models.py:806 msgid "Check to enable this extension" msgstr "Auswählen, um diese Erweiterung zu aktivieren" -#: admin/tables.py:11 admin/tables.py:49 extensions/sievefilters/forms.py:53 +#: admin/tables.py:12 admin/tables.py:44 extensions/sievefilters/forms.py:53 #: extensions/sievefilters/templates/sievefilters/guieditor.html:6 #: templates/admin/editdomainform.html:20 msgid "Name" msgstr "Name" -#: admin/tables.py:13 +#: admin/tables.py:14 msgid "Edit domain" msgstr "Domäne bearbeiten" -#: admin/tables.py:15 extensions/limits/forms.py:16 -#: extensions/limits/models.py:11 -msgid "Domain aliases" -msgstr "Domänen-Aliase" - -#: admin/tables.py:17 extensions/limits/forms.py:18 -#: extensions/limits/models.py:12 -#: extensions/webmail/templates/webmail/folders.html:4 -msgid "Mailboxes" -msgstr "Mailboxen" - -#: admin/tables.py:19 extensions/limits/forms.py:20 -#: extensions/limits/models.py:13 -msgid "Mailbox aliases" -msgstr "Mailboxen-Aliase" - -#: admin/tables.py:25 admin/tables.py:65 extensions/sievefilters/views.py:79 +#: admin/tables.py:18 admin/tables.py:61 extensions/sievefilters/views.py:79 #: extensions/sievefilters/templates/sievefilters/filter.html:17 #: extensions/sievefilters/templates/sievefilters/guieditor.html:5 #: extensions/webmail/templatetags/webextras.py:93 msgid "Actions" msgstr "Aktionen" -#: admin/tables.py:36 -msgid "MB" -msgstr "MB" - -#: admin/tables.py:39 extensions/sievefilters/views.py:265 -msgid "yes" -msgstr "Ja" - -#: admin/tables.py:39 extensions/sievefilters/views.py:269 -msgid "no" -msgstr "Nein" - -#: admin/tables.py:50 +#: admin/tables.py:45 msgid "Version" msgstr "Version" -#: admin/tables.py:51 +#: admin/tables.py:46 msgid "Description" msgstr "Beschreibung" -#: admin/tables.py:58 +#: admin/tables.py:54 #, fuzzy msgid "Email/Username" msgstr "Benutzername" -#: admin/tables.py:64 +#: admin/tables.py:60 #, fuzzy msgid "Fullname/Recipient" msgstr "Empfänger" -#: admin/views.py:78 admin/templatetags/admin_extras.py:67 +#: admin/views.py:80 msgid "New domain" msgstr "Neue Domäne" -#: admin/views.py:79 admin/views.py:202 admin/views.py:319 admin/views.py:326 +#: admin/views.py:81 admin/views.py:174 admin/views.py:353 admin/views.py:360 #: extensions/sievefilters/views.py:120 extensions/sievefilters/views.py:187 #: extensions/webmail/views.py:118 msgid "Create" msgstr "Erstellen" -#: admin/views.py:85 +#: admin/views.py:87 msgid "Domain created" msgstr "Domäne erstellt." -#: admin/views.py:96 -#, fuzzy -msgid "You can't edit this domain" -msgstr "Sie können Ihre eigene Domäne nicht löschen" - -#: admin/views.py:107 admin/views.py:227 admin/views.py:372 +#: admin/views.py:108 admin/views.py:223 admin/views.py:403 #: extensions/postfix_autoreply/views.py:22 #: extensions/sievefilters/views.py:139 extensions/webmail/views.py:149 #: userprefs/views.py:34 userprefs/views.py:66 msgid "Update" msgstr "Aktualisieren" -#: admin/views.py:114 +#: admin/views.py:115 msgid "Domain modified" msgstr "Domäne verändert" -#: admin/views.py:135 -#, fuzzy -msgid "You can't delete this domain" -msgstr "Sie können Ihre eigene Domäne nicht löschen" - -#: admin/views.py:137 +#: admin/views.py:138 msgid "You can't delete your own domain" msgstr "Sie können Ihre eigene Domäne nicht löschen" -#: admin/views.py:147 +#: admin/views.py:141 msgid "Domain deleted" msgid_plural "Domains deleted" msgstr[0] "Domäne gelöscht" msgstr[1] "Domänen gelöscht" -#: admin/views.py:180 +#: admin/views.py:156 msgid "Alias with this name already exists" msgstr "Ein Alias mit diesem Namen existiert bereits" -#: admin/views.py:201 admin/templatetags/admin_extras.py:96 +#: admin/views.py:194 msgid "New distribution list" msgstr "" -#: admin/views.py:213 +#: admin/views.py:198 #, fuzzy msgid "Distribution list created" msgstr "Domänen-Alias erstellt" -#: admin/views.py:225 admin/views.py:248 -msgid "You do not have access to this domain" -msgstr "" +#: admin/views.py:204 +#, fuzzy +msgid "New alias" +msgstr "Neuer Domänen-Alias" -#: admin/views.py:233 +#: admin/views.py:208 +#, fuzzy +msgid "Alias created" +msgstr "Alias gelöscht" + +#: admin/views.py:214 +#, fuzzy +msgid "New forward" +msgstr "Weiterleitung definieren" + +#: admin/views.py:218 +#, fuzzy +msgid "Forward created" +msgstr "Weiterleitung aktualisiert" + +#: admin/views.py:235 +#, fuzzy +msgid "Alias modified" +msgstr "Domäne verändert" + +#: admin/views.py:239 #, fuzzy msgid "Distribution list modified" msgstr "Mailbox-Alias verändert" -#: admin/views.py:253 +#: admin/views.py:243 #, fuzzy -msgid "Distribution list deleted" -msgid_plural "Distribution lists deleted" -msgstr[0] "Domänen-Alias gelöscht" -msgstr[1] "Domänen-Aliase gelöscht" +msgid "Forward modified" +msgstr "Ordner verändert" -#: admin/views.py:316 admin/templatetags/admin_extras.py:90 +#: admin/views.py:350 msgid "New account" msgstr "" -#: admin/views.py:323 +#: admin/views.py:357 msgid "Next" msgstr "Nächstes" -#: admin/views.py:327 +#: admin/views.py:361 msgid "Previous" msgstr "Vorheriges" -#: admin/views.py:338 +#: admin/views.py:372 #, fuzzy msgid "Account created" msgstr "Domäne erstellt." -#: admin/views.py:362 -msgid "You can't access this account" -msgstr "" - -#: admin/views.py:389 +#: admin/views.py:417 #, fuzzy msgid "Account updated" msgstr "Konto ist deaktiviert" -#: admin/views.py:409 +#: admin/views.py:437 #, fuzzy msgid "Account deleted" msgid_plural "Accounts deleted" msgstr[0] "Domäne gelöscht" msgstr[1] "Domänen gelöscht" -#: admin/views.py:438 admin/views.py:443 +#: admin/views.py:447 admin/views.py:452 #: extensions/amavis_quarantine/views.py:196 #: extensions/amavis_quarantine/views.py:202 #: extensions/amavis_quarantine/views.py:229 @@ -541,26 +546,21 @@ msgstr[1] "Domänen gelöscht" msgid "Invalid request" msgstr "Ungültige Zeile" -#: admin/views.py:445 -#, fuzzy -msgid "Permission denied" -msgstr "Berechtigung verweigert!" - -#: admin/views.py:483 +#: admin/views.py:492 #, fuzzy msgid "Parameters saved" msgstr "Parameter" -#: admin/views.py:529 +#: admin/views.py:538 msgid "Modifications applied." msgstr "Änderungen übernommen." -#: admin/views.py:586 +#: admin/views.py:595 #, fuzzy, python-format msgid "%d objects imported successfully" msgstr "%d Mailboxen erfolgreich importiert" -#: admin/views.py:605 +#: admin/views.py:614 msgid "" "Provide a CSV file where lines respect one of the following format:\n" "
    \n" @@ -571,17 +571,17 @@ msgid "" "You can use a different character as separator.\n" msgstr "" -#: admin/views.py:613 +#: admin/views.py:622 #, fuzzy msgid "Import identities" msgstr "Daten importieren" -#: admin/views.py:614 admin/views.py:640 admin/templatetags/admin_extras.py:73 -#: admin/templatetags/admin_extras.py:102 +#: admin/views.py:623 admin/views.py:649 admin/templatetags/admin_extras.py:73 +#: admin/templatetags/admin_extras.py:114 msgid "Import" msgstr "Importiere" -#: admin/views.py:632 +#: admin/views.py:641 msgid "" "Provide a CSV file where lines respect the following format:
    \n" "domain; name; quota
    \n" @@ -589,7 +589,7 @@ msgid "" "You can use a different character as separator.\n" msgstr "" -#: admin/views.py:639 +#: admin/views.py:648 #, fuzzy msgid "Import domains" msgstr "Daten importieren" @@ -623,24 +623,58 @@ msgstr "Erweiterungen" msgid "Parameters" msgstr "Parameter" -#: admin/templatetags/admin_extras.py:133 +#: admin/templatetags/admin_extras.py:67 +#, fuzzy +msgid "Add domain" +msgstr "Domäne bearbeiten" + +#: admin/templatetags/admin_extras.py:90 +msgid "Add account" +msgstr "" + +#: admin/templatetags/admin_extras.py:96 +#, fuzzy +msgid "Add alias" +msgstr "Alias bearbeiten" + +#: admin/templatetags/admin_extras.py:102 +#, fuzzy +msgid "Add forward" +msgstr "Weiterleiten" + +#: admin/templatetags/admin_extras.py:108 +#, fuzzy +msgid "Add distribution list" +msgstr "Domänen-Alias erstellt" + +#: admin/templatetags/admin_extras.py:145 msgid "Delete this account" msgstr "" -#: admin/templatetags/admin_extras.py:140 +#: admin/templatetags/admin_extras.py:155 msgid "Delete this distribution list" msgstr "" -#: admin/templatetags/admin_extras.py:150 +#: admin/templatetags/admin_extras.py:162 +#, fuzzy +msgid "Delete this forward" +msgstr "Weiterleitung definieren" + +#: admin/templatetags/admin_extras.py:169 +#, fuzzy +msgid "Delete this alias" +msgstr "Auswählen um den Alias zu aktivieren" + +#: admin/templatetags/admin_extras.py:179 #, fuzzy msgid "Remove this permission" msgstr "Berechtigung entziehen" -#: admin/templatetags/admin_extras.py:184 +#: admin/templatetags/admin_extras.py:213 msgid "Yes" msgstr "Ja" -#: admin/templatetags/admin_extras.py:184 +#: admin/templatetags/admin_extras.py:213 msgid "No" msgstr "Nein" @@ -750,12 +784,12 @@ msgstr "" msgid "Quarantine" msgstr "Quarantäne" -#: extensions/amavis_quarantine/__init__.py:145 +#: extensions/amavis_quarantine/__init__.py:152 #, fuzzy msgid "pending requests" msgstr "Fehlerhafte Anfrage" -#: extensions/amavis_quarantine/__init__.py:161 +#: extensions/amavis_quarantine/__init__.py:168 #, python-format msgid "%d pending requests" msgstr "" @@ -895,14 +929,30 @@ msgstr "" msgid "Maximum number of domains this user can create" msgstr "" +#: extensions/limits/forms.py:16 extensions/limits/models.py:11 +#: templates/admin/editdomainform.html:29 +msgid "Domain aliases" +msgstr "Domänen-Aliase" + #: extensions/limits/forms.py:17 msgid "Maximum number of domain aliases this user can create" msgstr "" +#: extensions/limits/forms.py:18 extensions/limits/models.py:12 +#: extensions/webmail/templates/webmail/folders.html:4 +#: templates/admin/editdomainform.html:30 +msgid "Mailboxes" +msgstr "Mailboxen" + #: extensions/limits/forms.py:19 msgid "Maximum number of mailboxes this user can create" msgstr "" +#: extensions/limits/forms.py:20 extensions/limits/models.py:13 +#: templates/admin/editdomainform.html:31 +msgid "Mailbox aliases" +msgstr "Mailboxen-Aliase" + #: extensions/limits/forms.py:21 msgid "Maximum number of mailbox aliases this user can create" msgstr "" @@ -960,15 +1010,15 @@ msgstr "" msgid "Auto-reply message" msgstr "Automatische Antwort" -#: extensions/postfix_autoreply/forms.py:8 +#: extensions/postfix_autoreply/forms.py:9 msgid "Until" msgstr "Bis" -#: extensions/postfix_autoreply/forms.py:9 +#: extensions/postfix_autoreply/forms.py:11 msgid "Activate your auto reply until this date" msgstr "Aktivieren Sie ihre automatisierte Antwort bis zu diesem Datum" -#: extensions/postfix_autoreply/forms.py:23 +#: extensions/postfix_autoreply/forms.py:25 msgid "This date is over" msgstr "Das Datum ist vorbei" @@ -1065,10 +1115,6 @@ msgstr "ist nicht" msgid "Sender" msgstr "Sender" -#: extensions/sievefilters/forms.py:70 -msgid "Recipient" -msgstr "Empfänger" - #: extensions/sievefilters/forms.py:71 extensions/webmail/forms.py:7 msgid "Cc" msgstr "Cc" @@ -1153,6 +1199,14 @@ msgstr "Filter entfernt" msgid "Filters set activated" msgstr "Filter-Satz aktiviert" +#: extensions/sievefilters/views.py:265 +msgid "yes" +msgstr "Ja" + +#: extensions/sievefilters/views.py:269 +msgid "no" +msgstr "Nein" + #: extensions/sievefilters/templates/sievefilters/filter.html:6 msgid "Conditions" msgstr "Bedingungen" @@ -1305,10 +1359,6 @@ msgstr "Individuell" msgid "No statistics available" msgstr "Keine Statistik-Daten verfügbar" -#: extensions/stats/views.py:52 -msgid "you're not allowed to see those statistics" -msgstr "" - #: extensions/stats/views.py:58 msgid "Domain not found. Please enter a full name" msgstr "" @@ -1647,32 +1697,37 @@ msgstr "Mailbox bearbeiten" msgid "Remove the selected mailbox" msgstr "" -#: lib/exceptions.py:17 +#: lib/exceptions.py:18 #, fuzzy, python-format msgid "Permission denied: %s" msgstr "Erlaubnis verweigert für" +#: lib/exceptions.py:19 +#, fuzzy +msgid "Permission denied" +msgstr "Berechtigung verweigert!" + #: lib/formutils.py:154 lib/formutils.py:161 #, fuzzy msgid "Enter a valid domain name" msgstr "Name der Domäne" -#: lib/permissions.py:25 +#: lib/permissions.py:26 #, fuzzy msgid "Simple user" msgstr "Wählen Sie einen Nutzer" -#: lib/permissions.py:27 +#: lib/permissions.py:28 #, fuzzy msgid "Super administrator" msgstr "Super-Administratoren" -#: lib/permissions.py:29 +#: lib/permissions.py:30 #, fuzzy msgid "Domain administrator" msgstr "Domänen-Administratoren" -#: lib/permissions.py:61 +#: lib/permissions.py:62 #, fuzzy, python-format msgid "Failed to grant access (%s)" msgstr "Konnte Kennwort nicht aktualisieren: %s" @@ -1848,6 +1903,23 @@ msgstr "Einstellungen" msgid "Logout" msgstr "Logout" +#~ msgid "MB" +#~ msgstr "MB" + +#, fuzzy +#~ msgid "You can't edit this domain" +#~ msgstr "Sie können Ihre eigene Domäne nicht löschen" + +#, fuzzy +#~ msgid "You can't delete this domain" +#~ msgstr "Sie können Ihre eigene Domäne nicht löschen" + +#, fuzzy +#~ msgid "Distribution list deleted" +#~ msgid_plural "Distribution lists deleted" +#~ msgstr[0] "Domänen-Alias gelöscht" +#~ msgstr[1] "Domänen-Aliase gelöscht" + #, fuzzy #~ msgid "Domain administrators" #~ msgstr "Domänen-Administratoren" @@ -1938,9 +2010,6 @@ msgstr "Logout" #~ msgid "Targeted domain" #~ msgstr "Ziel-Domäne" -#~ msgid "Address" -#~ msgstr "Adresse" - #~ msgid "User name" #~ msgstr "Benutzername" @@ -1959,9 +2028,6 @@ msgstr "Logout" #~ msgid "Domain editing" #~ msgstr "Domäne Bearbeitung" -#~ msgid "New domain alias" -#~ msgstr "Neuer Domänen-Alias" - #~ msgid "Domain alias editing" #~ msgstr "Domänen-Alias Bearbeitung" @@ -1997,11 +2063,6 @@ msgstr "Logout" #~ msgid "Mailbox alias editing" #~ msgstr "Mailbox-Alias Bearbeitung" -#~ msgid "Alias deleted" -#~ msgid_plural "Aliases deleted" -#~ msgstr[0] "Alias gelöscht" -#~ msgstr[1] "Aliase gelöscht" - #~ msgid "Permission added." #~ msgstr "Berechtigung hinzugefügt." @@ -2020,9 +2081,6 @@ msgstr "Logout" #~ msgid "Add permission" #~ msgstr "Berechtigung hinzufügen" -#~ msgid "Edit alias" -#~ msgstr "Alias bearbeiten" - #~ msgid "View this mailbox aliases" #~ msgstr "Aliase dieser Mailbox ansehen" @@ -2080,9 +2138,6 @@ msgstr "Logout" #~ msgid "Edit folder" #~ msgstr "Ordner bearbeiten" -#~ msgid "Folder modified" -#~ msgstr "Ordner verändert" - #~ msgid "Done" #~ msgstr "Abgeschlossen" diff --git a/locale/de/LC_MESSAGES/djangojs.po b/locale/de/LC_MESSAGES/djangojs.po index 62ac5a934..bc2c7e8ed 100644 --- a/locale/de/LC_MESSAGES/djangojs.po +++ b/locale/de/LC_MESSAGES/djangojs.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Modoboa-0.8.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-04-25 14:47+0200\n" +"POT-Creation-Date: 2012-05-03 11:05+0200\n" "PO-Revision-Date: 2012-01-10 22:49+0100\n" "Last-Translator: Patrick Ben Koetter \n" "Language-Team: DE \n" @@ -85,7 +85,7 @@ msgstr "" msgid "Cancel" msgstr "" -#: static/js/confirmation.js:84 static/js/history.js:229 +#: static/js/confirmation.js:84 static/js/history.js:230 msgid "Internal Error" msgstr "" diff --git a/locale/en/LC_MESSAGES/django.po b/locale/en/LC_MESSAGES/django.po index d8525a38b..ea8416d69 100644 --- a/locale/en/LC_MESSAGES/django.po +++ b/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: 2012-04-25 16:51+0200\n" +"POT-Creation-Date: 2012-05-03 10:59+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -67,7 +67,7 @@ msgstr "" msgid "The default redirection used when no application is specified" msgstr "" -#: admin/forms.py:15 admin/forms.py:299 +#: admin/forms.py:15 admin/forms.py:396 admin/tables.py:17 msgid "Alias(es)" msgstr "" @@ -75,7 +75,7 @@ msgstr "" msgid "Alias(es) of this domain" msgstr "" -#: admin/forms.py:51 admin/views.py:58 +#: admin/forms.py:51 admin/views.py:60 msgid "An alias with this name already exists" msgstr "" @@ -87,125 +87,157 @@ msgstr "" msgid "Failed to rename domain, check permissions" msgstr "" -#: admin/forms.py:105 +#: admin/forms.py:103 msgid "Email address" msgstr "" -#: admin/forms.py:106 +#: admin/forms.py:104 msgid "The distribution list address" msgstr "" -#: admin/forms.py:109 +#: admin/forms.py:107 msgid "Recipients" msgstr "" -#: admin/forms.py:110 +#: admin/forms.py:108 msgid "Mailbox(es) this alias will point to" msgstr "" -#: admin/forms.py:143 admin/forms.py:330 admin/models.py:756 +#: admin/forms.py:142 admin/forms.py:221 admin/forms.py:429 +#: admin/models.py:779 msgid "Domain does not exist" msgstr "" -#: admin/forms.py:163 +#: admin/forms.py:144 admin/forms.py:223 +msgid "You don't have access to this domain" +msgstr "" + +#: admin/forms.py:164 msgid "Invalid mailbox" msgstr "" -#: admin/forms.py:174 admin/models.py:776 +#: admin/forms.py:175 admin/models.py:799 #, python-format msgid "Mailbox %s does not exist" msgstr "" -#: admin/forms.py:183 +#: admin/forms.py:184 msgid "No recipient defined" msgstr "" -#: admin/forms.py:186 +#: admin/forms.py:187 msgid "A distribution list must contain at least two recipients" msgstr "" -#: admin/forms.py:199 extensions/webmail/forms.py:18 +#: admin/forms.py:201 +msgid "Address" +msgstr "" + +#: admin/forms.py:202 +msgid "A valid e-mail address" +msgstr "" + +#: admin/forms.py:238 admin/forms.py:267 extensions/sievefilters/forms.py:70 +msgid "Recipient" +msgstr "" + +#: admin/forms.py:239 +msgid "A local recipient address" +msgstr "" + +#: admin/forms.py:254 +msgid "Mailbox does not exist" +msgstr "" + +#: admin/forms.py:256 +msgid "You can't access this mailbox" +msgstr "" + +#: admin/forms.py:268 +msgid "An external recipient address" +msgstr "" + +#: admin/forms.py:285 +msgid "Local recipients are forbidden" +msgstr "" + +#: admin/forms.py:295 extensions/webmail/forms.py:18 msgid "Select a file" msgstr "" -#: admin/forms.py:200 +#: admin/forms.py:296 msgid "Separator" msgstr "" -#: admin/forms.py:212 auth/forms.py:6 templates/admin/editdomainform.html:20 +#: admin/forms.py:308 auth/forms.py:6 templates/admin/editdomainform.html:20 msgid "Username" msgstr "" -#: admin/forms.py:214 +#: admin/forms.py:310 msgid "Role" msgstr "" -#: admin/forms.py:215 admin/forms.py:233 +#: admin/forms.py:311 admin/forms.py:335 msgid "Choose" msgstr "" -#: admin/forms.py:216 +#: admin/forms.py:312 msgid "What level of permission this user will have" msgstr "" -#: admin/forms.py:226 -msgid "Enabled" -msgstr "" - -#: admin/forms.py:265 auth/forms.py:10 +#: admin/forms.py:314 auth/forms.py:10 msgid "Password" msgstr "" -#: admin/forms.py:267 userprefs/forms.py:15 +#: admin/forms.py:316 userprefs/forms.py:15 msgid "Confirmation" msgstr "" -#: admin/forms.py:269 +#: admin/forms.py:318 msgid "Enter the same password as above, for verification." msgstr "" -#: admin/forms.py:281 +#: admin/forms.py:329 +msgid "Enabled" +msgstr "" + +#: admin/forms.py:367 msgid "The two password fields didn't match." msgstr "" -#: admin/forms.py:296 +#: admin/forms.py:393 msgid "E-mail" msgstr "" -#: admin/forms.py:297 admin/tables.py:21 +#: admin/forms.py:394 msgid "Quota" msgstr "" -#: admin/forms.py:301 +#: admin/forms.py:398 msgid "Alias(es) of this mailbox" msgstr "" -#: admin/forms.py:333 admin/models.py:75 admin/models.py:665 -#: admin/views.py:359 extensions/stats/views.py:60 -msgid "You don't have access to this domain" -msgstr "" - -#: admin/forms.py:351 +#: admin/forms.py:454 msgid "Failed to rename mailbox, check permissions" msgstr "" -#: admin/forms.py:389 +#: admin/forms.py:495 msgid "Domain(s)" msgstr "" -#: admin/forms.py:391 +#: admin/forms.py:497 msgid "Domain(s) that user administrates" msgstr "" -#: admin/forms.py:430 admin/views.py:322 templates/admin/editdomainform.html:4 +#: admin/forms.py:546 admin/views.py:356 templates/admin/editdomainform.html:4 msgid "General" msgstr "" -#: admin/forms.py:432 admin/views.py:325 +#: admin/forms.py:548 admin/views.py:359 msgid "Mail" msgstr "" -#: admin/forms.py:434 +#: admin/forms.py:550 msgid "Permissions" msgstr "" @@ -213,282 +245,248 @@ msgstr "" msgid "Unknown object type" msgstr "" -#: admin/models.py:70 +#: admin/models.py:71 msgid "You can't delete your own account" msgstr "" -#: admin/models.py:80 -msgid "You don't have access to this account" -msgstr "" - -#: admin/models.py:141 +#: admin/models.py:137 msgid "Failed to update password: LDAP module not installed" msgstr "" -#: admin/models.py:147 +#: admin/models.py:143 #, python-format msgid "Failed to update password: %s" msgstr "" -#: admin/models.py:378 admin/models.py:455 +#: admin/models.py:375 admin/models.py:461 msgid "name" msgstr "" -#: admin/models.py:379 +#: admin/models.py:376 msgid "The domain name" msgstr "" -#: admin/models.py:380 +#: admin/models.py:377 msgid "Default quota in MB applied to mailboxes" msgstr "" -#: admin/models.py:381 admin/models.py:460 admin/models.py:696 -#: admin/models.py:782 extensions/postfix_autoreply/models.py:19 +#: admin/models.py:378 admin/models.py:466 admin/models.py:708 +#: admin/models.py:805 extensions/postfix_autoreply/models.py:19 msgid "enabled" msgstr "" -#: admin/models.py:382 +#: admin/models.py:379 msgid "Check to activate this domain" msgstr "" -#: admin/models.py:440 +#: admin/models.py:446 msgid "Failed to initialise domain, check permissions" msgstr "" -#: admin/models.py:448 admin/models.py:657 admin/models.py:751 +#: admin/models.py:454 admin/models.py:669 admin/models.py:774 msgid "Invalid line" msgstr "" -#: admin/models.py:456 +#: admin/models.py:462 msgid "The alias name" msgstr "" -#: admin/models.py:457 +#: admin/models.py:463 msgid "target" msgstr "" -#: admin/models.py:458 +#: admin/models.py:464 msgid "The domain this alias points to" msgstr "" -#: admin/models.py:461 admin/models.py:697 +#: admin/models.py:467 admin/models.py:709 msgid "Check to activate this alias" msgstr "" -#: admin/models.py:474 admin/models.py:687 +#: admin/models.py:486 admin/models.py:699 msgid "address" msgstr "" -#: admin/models.py:475 +#: admin/models.py:487 msgid "Mailbox address (without the @domain.tld part)" msgstr "" -#: admin/models.py:572 +#: admin/models.py:584 #, python-format msgid "%s is not a valid uid/username" msgstr "" -#: admin/models.py:581 +#: admin/models.py:593 #, python-format msgid "%s is not a valid gid/groupname" msgstr "" -#: admin/models.py:585 admin/models.py:642 +#: admin/models.py:597 admin/models.py:654 msgid "Failed to initialise mailbox, check permissions" msgstr "" -#: admin/models.py:610 +#: admin/models.py:622 #, python-format msgid "Account '%s' already exists" msgstr "" -#: admin/models.py:663 +#: admin/models.py:675 msgid "Cannot import this mailbox because the associated domain does not exist" msgstr "" -#: admin/models.py:688 +#: admin/models.py:700 msgid "" "The alias address (without the domain part). For a 'catch-all' address, just " "enter an * character." msgstr "" -#: admin/models.py:692 +#: admin/models.py:704 msgid "mailboxes" msgstr "" -#: admin/models.py:693 +#: admin/models.py:705 msgid "The mailboxes this alias points to" msgstr "" -#: admin/models.py:758 lib/permissions.py:115 -msgid "You can't access this domain" -msgstr "" - -#: admin/models.py:783 +#: admin/models.py:806 msgid "Check to enable this extension" msgstr "" -#: admin/tables.py:11 admin/tables.py:49 extensions/sievefilters/forms.py:53 +#: admin/tables.py:12 admin/tables.py:44 extensions/sievefilters/forms.py:53 #: extensions/sievefilters/templates/sievefilters/guieditor.html:6 #: templates/admin/editdomainform.html:20 msgid "Name" msgstr "" -#: admin/tables.py:13 +#: admin/tables.py:14 msgid "Edit domain" msgstr "" -#: admin/tables.py:15 extensions/limits/forms.py:16 -#: extensions/limits/models.py:11 -msgid "Domain aliases" -msgstr "" - -#: admin/tables.py:17 extensions/limits/forms.py:18 -#: extensions/limits/models.py:12 -#: extensions/webmail/templates/webmail/folders.html:4 -msgid "Mailboxes" -msgstr "" - -#: admin/tables.py:19 extensions/limits/forms.py:20 -#: extensions/limits/models.py:13 -msgid "Mailbox aliases" -msgstr "" - -#: admin/tables.py:25 admin/tables.py:65 extensions/sievefilters/views.py:79 +#: admin/tables.py:18 admin/tables.py:61 extensions/sievefilters/views.py:79 #: extensions/sievefilters/templates/sievefilters/filter.html:17 #: extensions/sievefilters/templates/sievefilters/guieditor.html:5 #: extensions/webmail/templatetags/webextras.py:93 msgid "Actions" msgstr "" -#: admin/tables.py:36 -msgid "MB" -msgstr "" - -#: admin/tables.py:39 extensions/sievefilters/views.py:265 -msgid "yes" -msgstr "" - -#: admin/tables.py:39 extensions/sievefilters/views.py:269 -msgid "no" -msgstr "" - -#: admin/tables.py:50 +#: admin/tables.py:45 msgid "Version" msgstr "" -#: admin/tables.py:51 +#: admin/tables.py:46 msgid "Description" msgstr "" -#: admin/tables.py:58 +#: admin/tables.py:54 msgid "Email/Username" msgstr "" -#: admin/tables.py:64 +#: admin/tables.py:60 msgid "Fullname/Recipient" msgstr "" -#: admin/views.py:78 admin/templatetags/admin_extras.py:67 +#: admin/views.py:80 msgid "New domain" msgstr "" -#: admin/views.py:79 admin/views.py:202 admin/views.py:319 admin/views.py:326 +#: admin/views.py:81 admin/views.py:174 admin/views.py:353 admin/views.py:360 #: extensions/sievefilters/views.py:120 extensions/sievefilters/views.py:187 #: extensions/webmail/views.py:118 msgid "Create" msgstr "" -#: admin/views.py:85 +#: admin/views.py:87 msgid "Domain created" msgstr "" -#: admin/views.py:96 -msgid "You can't edit this domain" -msgstr "" - -#: admin/views.py:107 admin/views.py:227 admin/views.py:372 +#: admin/views.py:108 admin/views.py:223 admin/views.py:403 #: extensions/postfix_autoreply/views.py:22 #: extensions/sievefilters/views.py:139 extensions/webmail/views.py:149 #: userprefs/views.py:34 userprefs/views.py:66 msgid "Update" msgstr "" -#: admin/views.py:114 +#: admin/views.py:115 msgid "Domain modified" msgstr "" -#: admin/views.py:135 -msgid "You can't delete this domain" -msgstr "" - -#: admin/views.py:137 +#: admin/views.py:138 msgid "You can't delete your own domain" msgstr "" -#: admin/views.py:147 +#: admin/views.py:141 msgid "Domain deleted" msgid_plural "Domains deleted" msgstr[0] "" msgstr[1] "" -#: admin/views.py:180 +#: admin/views.py:156 msgid "Alias with this name already exists" msgstr "" -#: admin/views.py:201 admin/templatetags/admin_extras.py:96 +#: admin/views.py:194 msgid "New distribution list" msgstr "" -#: admin/views.py:213 +#: admin/views.py:198 msgid "Distribution list created" msgstr "" -#: admin/views.py:225 admin/views.py:248 -msgid "You do not have access to this domain" +#: admin/views.py:204 +msgid "New alias" msgstr "" -#: admin/views.py:233 +#: admin/views.py:208 +msgid "Alias created" +msgstr "" + +#: admin/views.py:214 +msgid "New forward" +msgstr "" + +#: admin/views.py:218 +msgid "Forward created" +msgstr "" + +#: admin/views.py:235 +msgid "Alias modified" +msgstr "" + +#: admin/views.py:239 msgid "Distribution list modified" msgstr "" -#: admin/views.py:253 -msgid "Distribution list deleted" -msgid_plural "Distribution lists deleted" -msgstr[0] "" -msgstr[1] "" +#: admin/views.py:243 +msgid "Forward modified" +msgstr "" -#: admin/views.py:316 admin/templatetags/admin_extras.py:90 +#: admin/views.py:350 msgid "New account" msgstr "" -#: admin/views.py:323 +#: admin/views.py:357 msgid "Next" msgstr "" -#: admin/views.py:327 +#: admin/views.py:361 msgid "Previous" msgstr "" -#: admin/views.py:338 +#: admin/views.py:372 msgid "Account created" msgstr "" -#: admin/views.py:362 -msgid "You can't access this account" -msgstr "" - -#: admin/views.py:389 +#: admin/views.py:417 msgid "Account updated" msgstr "" -#: admin/views.py:409 +#: admin/views.py:437 msgid "Account deleted" msgid_plural "Accounts deleted" msgstr[0] "" msgstr[1] "" -#: admin/views.py:438 admin/views.py:443 +#: admin/views.py:447 admin/views.py:452 #: extensions/amavis_quarantine/views.py:196 #: extensions/amavis_quarantine/views.py:202 #: extensions/amavis_quarantine/views.py:229 @@ -502,24 +500,20 @@ msgstr[1] "" msgid "Invalid request" msgstr "" -#: admin/views.py:445 -msgid "Permission denied" -msgstr "" - -#: admin/views.py:483 +#: admin/views.py:492 msgid "Parameters saved" msgstr "" -#: admin/views.py:529 +#: admin/views.py:538 msgid "Modifications applied." msgstr "" -#: admin/views.py:586 +#: admin/views.py:595 #, python-format msgid "%d objects imported successfully" msgstr "" -#: admin/views.py:605 +#: admin/views.py:614 msgid "" "Provide a CSV file where lines respect one of the following format:\n" "
      \n" @@ -530,16 +524,16 @@ msgid "" "You can use a different character as separator.\n" msgstr "" -#: admin/views.py:613 +#: admin/views.py:622 msgid "Import identities" msgstr "" -#: admin/views.py:614 admin/views.py:640 admin/templatetags/admin_extras.py:73 -#: admin/templatetags/admin_extras.py:102 +#: admin/views.py:623 admin/views.py:649 admin/templatetags/admin_extras.py:73 +#: admin/templatetags/admin_extras.py:114 msgid "Import" msgstr "" -#: admin/views.py:632 +#: admin/views.py:641 msgid "" "Provide a CSV file where lines respect the following format:
      \n" "domain; name; quota
      \n" @@ -547,7 +541,7 @@ msgid "" "You can use a different character as separator.\n" msgstr "" -#: admin/views.py:639 +#: admin/views.py:648 msgid "Import domains" msgstr "" @@ -580,23 +574,51 @@ msgstr "" msgid "Parameters" msgstr "" -#: admin/templatetags/admin_extras.py:133 +#: admin/templatetags/admin_extras.py:67 +msgid "Add domain" +msgstr "" + +#: admin/templatetags/admin_extras.py:90 +msgid "Add account" +msgstr "" + +#: admin/templatetags/admin_extras.py:96 +msgid "Add alias" +msgstr "" + +#: admin/templatetags/admin_extras.py:102 +msgid "Add forward" +msgstr "" + +#: admin/templatetags/admin_extras.py:108 +msgid "Add distribution list" +msgstr "" + +#: admin/templatetags/admin_extras.py:145 msgid "Delete this account" msgstr "" -#: admin/templatetags/admin_extras.py:140 +#: admin/templatetags/admin_extras.py:155 msgid "Delete this distribution list" msgstr "" -#: admin/templatetags/admin_extras.py:150 +#: admin/templatetags/admin_extras.py:162 +msgid "Delete this forward" +msgstr "" + +#: admin/templatetags/admin_extras.py:169 +msgid "Delete this alias" +msgstr "" + +#: admin/templatetags/admin_extras.py:179 msgid "Remove this permission" msgstr "" -#: admin/templatetags/admin_extras.py:184 +#: admin/templatetags/admin_extras.py:213 msgid "Yes" msgstr "" -#: admin/templatetags/admin_extras.py:184 +#: admin/templatetags/admin_extras.py:213 msgid "No" msgstr "" @@ -694,11 +716,11 @@ msgstr "" msgid "Quarantine" msgstr "" -#: extensions/amavis_quarantine/__init__.py:145 +#: extensions/amavis_quarantine/__init__.py:152 msgid "pending requests" msgstr "" -#: extensions/amavis_quarantine/__init__.py:161 +#: extensions/amavis_quarantine/__init__.py:168 #, python-format msgid "%d pending requests" msgstr "" @@ -833,14 +855,30 @@ msgstr "" msgid "Maximum number of domains this user can create" msgstr "" +#: extensions/limits/forms.py:16 extensions/limits/models.py:11 +#: templates/admin/editdomainform.html:29 +msgid "Domain aliases" +msgstr "" + #: extensions/limits/forms.py:17 msgid "Maximum number of domain aliases this user can create" msgstr "" +#: extensions/limits/forms.py:18 extensions/limits/models.py:12 +#: extensions/webmail/templates/webmail/folders.html:4 +#: templates/admin/editdomainform.html:30 +msgid "Mailboxes" +msgstr "" + #: extensions/limits/forms.py:19 msgid "Maximum number of mailboxes this user can create" msgstr "" +#: extensions/limits/forms.py:20 extensions/limits/models.py:13 +#: templates/admin/editdomainform.html:31 +msgid "Mailbox aliases" +msgstr "" + #: extensions/limits/forms.py:21 msgid "Maximum number of mailbox aliases this user can create" msgstr "" @@ -891,15 +929,15 @@ msgstr "" msgid "Auto-reply message" msgstr "" -#: extensions/postfix_autoreply/forms.py:8 +#: extensions/postfix_autoreply/forms.py:9 msgid "Until" msgstr "" -#: extensions/postfix_autoreply/forms.py:9 +#: extensions/postfix_autoreply/forms.py:11 msgid "Activate your auto reply until this date" msgstr "" -#: extensions/postfix_autoreply/forms.py:23 +#: extensions/postfix_autoreply/forms.py:25 msgid "This date is over" msgstr "" @@ -996,10 +1034,6 @@ msgstr "" msgid "Sender" msgstr "" -#: extensions/sievefilters/forms.py:70 -msgid "Recipient" -msgstr "" - #: extensions/sievefilters/forms.py:71 extensions/webmail/forms.py:7 msgid "Cc" msgstr "" @@ -1082,6 +1116,14 @@ msgstr "" msgid "Filters set activated" msgstr "" +#: extensions/sievefilters/views.py:265 +msgid "yes" +msgstr "" + +#: extensions/sievefilters/views.py:269 +msgid "no" +msgstr "" + #: extensions/sievefilters/templates/sievefilters/filter.html:6 msgid "Conditions" msgstr "" @@ -1231,10 +1273,6 @@ msgstr "" msgid "No statistics available" msgstr "" -#: extensions/stats/views.py:52 -msgid "you're not allowed to see those statistics" -msgstr "" - #: extensions/stats/views.py:58 msgid "Domain not found. Please enter a full name" msgstr "" @@ -1561,28 +1599,32 @@ msgstr "" msgid "Remove the selected mailbox" msgstr "" -#: lib/exceptions.py:17 +#: lib/exceptions.py:18 #, python-format msgid "Permission denied: %s" msgstr "" +#: lib/exceptions.py:19 +msgid "Permission denied" +msgstr "" + #: lib/formutils.py:154 lib/formutils.py:161 msgid "Enter a valid domain name" msgstr "" -#: lib/permissions.py:25 +#: lib/permissions.py:26 msgid "Simple user" msgstr "" -#: lib/permissions.py:27 +#: lib/permissions.py:28 msgid "Super administrator" msgstr "" -#: lib/permissions.py:29 +#: lib/permissions.py:30 msgid "Domain administrator" msgstr "" -#: lib/permissions.py:61 +#: lib/permissions.py:62 #, python-format msgid "Failed to grant access (%s)" msgstr "" diff --git a/locale/en/LC_MESSAGES/djangojs.po b/locale/en/LC_MESSAGES/djangojs.po index 626074943..6e714568e 100644 --- a/locale/en/LC_MESSAGES/djangojs.po +++ b/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: 2012-04-25 14:47+0200\n" +"POT-Creation-Date: 2012-05-03 11:05+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -84,7 +84,7 @@ msgstr "" msgid "Cancel" msgstr "" -#: static/js/confirmation.js:84 static/js/history.js:229 +#: static/js/confirmation.js:84 static/js/history.js:230 msgid "Internal Error" msgstr "" diff --git a/locale/es/LC_MESSAGES/django.po b/locale/es/LC_MESSAGES/django.po index a3e774312..5116b561f 100644 --- a/locale/es/LC_MESSAGES/django.po +++ b/locale/es/LC_MESSAGES/django.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Modoboa-0.8.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-04-25 16:51+0200\n" +"POT-Creation-Date: 2012-05-03 10:59+0200\n" "PO-Revision-Date: 2012-01-23 08:44+0000\n" "Last-Translator: Pedro Gracia \n" "Language-Team: ES \n" @@ -77,7 +77,7 @@ msgid "The default redirection used when no application is specified" msgstr "" "La redirección que será usada cuando ninguna aplicación sea especificada." -#: admin/forms.py:15 admin/forms.py:299 +#: admin/forms.py:15 admin/forms.py:396 admin/tables.py:17 #, fuzzy msgid "Alias(es)" msgstr "Alias" @@ -87,7 +87,7 @@ msgstr "Alias" msgid "Alias(es) of this domain" msgstr "Activar los alias este dominio" -#: admin/forms.py:51 admin/views.py:58 +#: admin/forms.py:51 admin/views.py:60 #, fuzzy msgid "An alias with this name already exists" msgstr "Ya existe un alias con este nombre" @@ -100,137 +100,174 @@ msgstr "Ya existe un alias de dominio con este nombre" msgid "Failed to rename domain, check permissions" msgstr "Ha fallado el cambio de nombre de este dominio, compruebe permisos" -#: admin/forms.py:105 +#: admin/forms.py:103 #, fuzzy msgid "Email address" msgstr "De la dirección" -#: admin/forms.py:106 +#: admin/forms.py:104 msgid "The distribution list address" msgstr "" -#: admin/forms.py:109 +#: admin/forms.py:107 #, fuzzy msgid "Recipients" msgstr "Receptor" -#: admin/forms.py:110 +#: admin/forms.py:108 msgid "Mailbox(es) this alias will point to" msgstr "Los 'mailbox'(es) a los que el alias apunta" -#: admin/forms.py:143 admin/forms.py:330 admin/models.py:756 +#: admin/forms.py:142 admin/forms.py:221 admin/forms.py:429 +#: admin/models.py:779 #, fuzzy msgid "Domain does not exist" msgstr "Dominio eliminado" -#: admin/forms.py:163 -msgid "Invalid mailbox" -msgstr "'mailbox' inválido" - -#: admin/forms.py:174 admin/models.py:776 -#, fuzzy, python-format -msgid "Mailbox %s does not exist" -msgstr "Ya existe un \"Mailbox\" con esta dirección" - -#: admin/forms.py:183 -#, fuzzy -msgid "No recipient defined" -msgstr "No hay destino definido" - -#: admin/forms.py:186 -msgid "A distribution list must contain at least two recipients" -msgstr "" - -#: admin/forms.py:199 extensions/webmail/forms.py:18 -msgid "Select a file" -msgstr "Seleccione un fichero" - -#: admin/forms.py:200 -msgid "Separator" -msgstr "Separador" - -#: admin/forms.py:212 auth/forms.py:6 templates/admin/editdomainform.html:20 -msgid "Username" -msgstr "Nombre de usuario" - -#: admin/forms.py:214 -msgid "Role" -msgstr "" - -#: admin/forms.py:215 admin/forms.py:233 -#, fuzzy -msgid "Choose" -msgstr "Elija un valor" - -#: admin/forms.py:216 -msgid "What level of permission this user will have" -msgstr "" - -#: admin/forms.py:226 -#, fuzzy -msgid "Enabled" -msgstr "activado" - -#: admin/forms.py:265 auth/forms.py:10 -msgid "Password" -msgstr "Contraseña" - -#: admin/forms.py:267 userprefs/forms.py:15 -msgid "Confirmation" -msgstr "Confirmación" - -#: admin/forms.py:269 -msgid "Enter the same password as above, for verification." -msgstr "" - -#: admin/forms.py:281 -msgid "The two password fields didn't match." -msgstr "" - -#: admin/forms.py:296 -#, fuzzy -msgid "E-mail" -msgstr "Correo web" - -#: admin/forms.py:297 admin/tables.py:21 -msgid "Quota" -msgstr "Cuota" - -#: admin/forms.py:301 -#, fuzzy -msgid "Alias(es) of this mailbox" -msgstr "Activar los alias este dominio" - -#: admin/forms.py:333 admin/models.py:75 admin/models.py:665 -#: admin/views.py:359 extensions/stats/views.py:60 +#: admin/forms.py:144 admin/forms.py:223 #, fuzzy msgid "You don't have access to this domain" msgstr "Activar los alias este dominio" -#: admin/forms.py:351 +#: admin/forms.py:164 +msgid "Invalid mailbox" +msgstr "'mailbox' inválido" + +#: admin/forms.py:175 admin/models.py:799 +#, fuzzy, python-format +msgid "Mailbox %s does not exist" +msgstr "Ya existe un \"Mailbox\" con esta dirección" + +#: admin/forms.py:184 +#, fuzzy +msgid "No recipient defined" +msgstr "No hay destino definido" + +#: admin/forms.py:187 +msgid "A distribution list must contain at least two recipients" +msgstr "" + +#: admin/forms.py:201 +msgid "Address" +msgstr "Dirección" + +#: admin/forms.py:202 +#, fuzzy +msgid "A valid e-mail address" +msgstr "De la dirección" + +#: admin/forms.py:238 admin/forms.py:267 extensions/sievefilters/forms.py:70 +msgid "Recipient" +msgstr "Receptor" + +#: admin/forms.py:239 +#, fuzzy +msgid "A local recipient address" +msgstr "No hay destino definido" + +#: admin/forms.py:254 +#, fuzzy +msgid "Mailbox does not exist" +msgstr "Ya existe un \"Mailbox\" con esta dirección" + +#: admin/forms.py:256 +#, fuzzy +msgid "You can't access this mailbox" +msgstr "No puedo eliminar su propio dominio" + +#: admin/forms.py:268 +msgid "An external recipient address" +msgstr "" + +#: admin/forms.py:285 +#, fuzzy +msgid "Local recipients are forbidden" +msgstr "No hay destino definido" + +#: admin/forms.py:295 extensions/webmail/forms.py:18 +msgid "Select a file" +msgstr "Seleccione un fichero" + +#: admin/forms.py:296 +msgid "Separator" +msgstr "Separador" + +#: admin/forms.py:308 auth/forms.py:6 templates/admin/editdomainform.html:20 +msgid "Username" +msgstr "Nombre de usuario" + +#: admin/forms.py:310 +msgid "Role" +msgstr "" + +#: admin/forms.py:311 admin/forms.py:335 +#, fuzzy +msgid "Choose" +msgstr "Elija un valor" + +#: admin/forms.py:312 +msgid "What level of permission this user will have" +msgstr "" + +#: admin/forms.py:314 auth/forms.py:10 +msgid "Password" +msgstr "Contraseña" + +#: admin/forms.py:316 userprefs/forms.py:15 +msgid "Confirmation" +msgstr "Confirmación" + +#: admin/forms.py:318 +msgid "Enter the same password as above, for verification." +msgstr "" + +#: admin/forms.py:329 +#, fuzzy +msgid "Enabled" +msgstr "activado" + +#: admin/forms.py:367 +msgid "The two password fields didn't match." +msgstr "" + +#: admin/forms.py:393 +#, fuzzy +msgid "E-mail" +msgstr "Correo web" + +#: admin/forms.py:394 +msgid "Quota" +msgstr "Cuota" + +#: admin/forms.py:398 +#, fuzzy +msgid "Alias(es) of this mailbox" +msgstr "Activar los alias este dominio" + +#: admin/forms.py:454 msgid "Failed to rename mailbox, check permissions" msgstr "Ha fallado el cambio de nombre del \"mailbox\", compruebe permisos" -#: admin/forms.py:389 +#: admin/forms.py:495 #, fuzzy msgid "Domain(s)" msgstr "Dominios" -#: admin/forms.py:391 +#: admin/forms.py:497 #, fuzzy msgid "Domain(s) that user administrates" msgstr "Administradores del dominio" -#: admin/forms.py:430 admin/views.py:322 templates/admin/editdomainform.html:4 +#: admin/forms.py:546 admin/views.py:356 templates/admin/editdomainform.html:4 msgid "General" msgstr "" -#: admin/forms.py:432 admin/views.py:325 +#: admin/forms.py:548 admin/views.py:359 #, fuzzy msgid "Mail" msgstr "'Mailboxes'" -#: admin/forms.py:434 +#: admin/forms.py:550 msgid "Permissions" msgstr "Permisos" @@ -238,104 +275,100 @@ msgstr "Permisos" msgid "Unknown object type" msgstr "Tipo de objeto desconocido" -#: admin/models.py:70 +#: admin/models.py:71 #, fuzzy msgid "You can't delete your own account" msgstr "No puedo eliminar su propio dominio" -#: admin/models.py:80 -msgid "You don't have access to this account" -msgstr "" - -#: admin/models.py:141 +#: admin/models.py:137 #, fuzzy msgid "Failed to update password: LDAP module not installed" msgstr "Falló en la actualización del password: %s" -#: admin/models.py:147 +#: admin/models.py:143 #, python-format msgid "Failed to update password: %s" msgstr "Falló en la actualización del password: %s" -#: admin/models.py:378 admin/models.py:455 +#: admin/models.py:375 admin/models.py:461 msgid "name" msgstr "nombre" -#: admin/models.py:379 +#: admin/models.py:376 msgid "The domain name" msgstr "Nombre del dominio" -#: admin/models.py:380 +#: admin/models.py:377 msgid "Default quota in MB applied to mailboxes" msgstr "Cuota por defecto en MB que se aplicarán a los \"mailboxes\"" -#: admin/models.py:381 admin/models.py:460 admin/models.py:696 -#: admin/models.py:782 extensions/postfix_autoreply/models.py:19 +#: admin/models.py:378 admin/models.py:466 admin/models.py:708 +#: admin/models.py:805 extensions/postfix_autoreply/models.py:19 msgid "enabled" msgstr "activado" -#: admin/models.py:382 +#: admin/models.py:379 msgid "Check to activate this domain" msgstr "Activar este dominio" -#: admin/models.py:440 +#: admin/models.py:446 msgid "Failed to initialise domain, check permissions" msgstr "Ha fallado la inicialización del dominio, compruebe permisos" -#: admin/models.py:448 admin/models.py:657 admin/models.py:751 +#: admin/models.py:454 admin/models.py:669 admin/models.py:774 msgid "Invalid line" msgstr "Línea inválida" -#: admin/models.py:456 +#: admin/models.py:462 msgid "The alias name" msgstr "Nombre del alias" -#: admin/models.py:457 +#: admin/models.py:463 msgid "target" msgstr "objetivo" -#: admin/models.py:458 +#: admin/models.py:464 msgid "The domain this alias points to" msgstr "El dominio de este alias apuntan a" -#: admin/models.py:461 admin/models.py:697 +#: admin/models.py:467 admin/models.py:709 msgid "Check to activate this alias" msgstr "Activar este alias" -#: admin/models.py:474 admin/models.py:687 +#: admin/models.py:486 admin/models.py:699 msgid "address" msgstr "dirección" -#: admin/models.py:475 +#: admin/models.py:487 msgid "Mailbox address (without the @domain.tld part)" msgstr "Dirección del \"mailbox\" (sin la parte @dominio.tld)" -#: admin/models.py:572 +#: admin/models.py:584 #, python-format msgid "%s is not a valid uid/username" msgstr "" -#: admin/models.py:581 +#: admin/models.py:593 #, python-format msgid "%s is not a valid gid/groupname" msgstr "" -#: admin/models.py:585 admin/models.py:642 +#: admin/models.py:597 admin/models.py:654 msgid "Failed to initialise mailbox, check permissions" msgstr "Ha fallado la inicialización del \"mailbox\", compruebe permisos" -#: admin/models.py:610 +#: admin/models.py:622 #, fuzzy, python-format msgid "Account '%s' already exists" msgstr "Ya existe un alias de dominio con este nombre" -#: admin/models.py:663 +#: admin/models.py:675 msgid "Cannot import this mailbox because the associated domain does not exist" msgstr "" "No ha sido posible importar este 'mailbox' ya que el dominio asociado no " "existe" -#: admin/models.py:688 +#: admin/models.py:700 msgid "" "The alias address (without the domain part). For a 'catch-all' address, just " "enter an * character." @@ -343,194 +376,166 @@ msgstr "" "La dirección del alias (sin la parte del dominio). Para una dirección que lo " "recoja todo, ponga un asterisco (*)." -#: admin/models.py:692 +#: admin/models.py:704 msgid "mailboxes" msgstr "'mailboxes'" -#: admin/models.py:693 +#: admin/models.py:705 msgid "The mailboxes this alias points to" msgstr "Los 'mailboxes' de este alias apuntan a" -#: admin/models.py:758 lib/permissions.py:115 -#, fuzzy -msgid "You can't access this domain" -msgstr "No puedo eliminar su propio dominio" - -#: admin/models.py:783 +#: admin/models.py:806 msgid "Check to enable this extension" msgstr "Activar esta extensión" -#: admin/tables.py:11 admin/tables.py:49 extensions/sievefilters/forms.py:53 +#: admin/tables.py:12 admin/tables.py:44 extensions/sievefilters/forms.py:53 #: extensions/sievefilters/templates/sievefilters/guieditor.html:6 #: templates/admin/editdomainform.html:20 msgid "Name" msgstr "Nombre" -#: admin/tables.py:13 +#: admin/tables.py:14 msgid "Edit domain" msgstr "Editar el dominio" -#: admin/tables.py:15 extensions/limits/forms.py:16 -#: extensions/limits/models.py:11 -msgid "Domain aliases" -msgstr "Alias del dominio" - -#: admin/tables.py:17 extensions/limits/forms.py:18 -#: extensions/limits/models.py:12 -#: extensions/webmail/templates/webmail/folders.html:4 -msgid "Mailboxes" -msgstr "'Mailboxes'" - -#: admin/tables.py:19 extensions/limits/forms.py:20 -#: extensions/limits/models.py:13 -msgid "Mailbox aliases" -msgstr "Alias del \"mailbox\"" - -#: admin/tables.py:25 admin/tables.py:65 extensions/sievefilters/views.py:79 +#: admin/tables.py:18 admin/tables.py:61 extensions/sievefilters/views.py:79 #: extensions/sievefilters/templates/sievefilters/filter.html:17 #: extensions/sievefilters/templates/sievefilters/guieditor.html:5 #: extensions/webmail/templatetags/webextras.py:93 msgid "Actions" msgstr "Acciones" -#: admin/tables.py:36 -msgid "MB" -msgstr "MB" - -#: admin/tables.py:39 extensions/sievefilters/views.py:265 -msgid "yes" -msgstr "sí" - -#: admin/tables.py:39 extensions/sievefilters/views.py:269 -msgid "no" -msgstr "no" - -#: admin/tables.py:50 +#: admin/tables.py:45 msgid "Version" msgstr "Versión" -#: admin/tables.py:51 +#: admin/tables.py:46 msgid "Description" msgstr "Descripción" -#: admin/tables.py:58 +#: admin/tables.py:54 #, fuzzy msgid "Email/Username" msgstr "Nombre de usuario" -#: admin/tables.py:64 +#: admin/tables.py:60 #, fuzzy msgid "Fullname/Recipient" msgstr "Receptor" -#: admin/views.py:78 admin/templatetags/admin_extras.py:67 +#: admin/views.py:80 msgid "New domain" msgstr "Nuevo dominio" -#: admin/views.py:79 admin/views.py:202 admin/views.py:319 admin/views.py:326 +#: admin/views.py:81 admin/views.py:174 admin/views.py:353 admin/views.py:360 #: extensions/sievefilters/views.py:120 extensions/sievefilters/views.py:187 #: extensions/webmail/views.py:118 msgid "Create" msgstr "Crear" -#: admin/views.py:85 +#: admin/views.py:87 msgid "Domain created" msgstr "Dominio creado" -#: admin/views.py:96 -#, fuzzy -msgid "You can't edit this domain" -msgstr "No puedo eliminar su propio dominio" - -#: admin/views.py:107 admin/views.py:227 admin/views.py:372 +#: admin/views.py:108 admin/views.py:223 admin/views.py:403 #: extensions/postfix_autoreply/views.py:22 #: extensions/sievefilters/views.py:139 extensions/webmail/views.py:149 #: userprefs/views.py:34 userprefs/views.py:66 msgid "Update" msgstr "Actualizar" -#: admin/views.py:114 +#: admin/views.py:115 msgid "Domain modified" msgstr "Dominio modificado" -#: admin/views.py:135 -#, fuzzy -msgid "You can't delete this domain" -msgstr "No puedo eliminar su propio dominio" - -#: admin/views.py:137 +#: admin/views.py:138 msgid "You can't delete your own domain" msgstr "No puedo eliminar su propio dominio" -#: admin/views.py:147 +#: admin/views.py:141 msgid "Domain deleted" msgid_plural "Domains deleted" msgstr[0] "Dominio eliminado" msgstr[1] "Dominios eliminados" -#: admin/views.py:180 +#: admin/views.py:156 msgid "Alias with this name already exists" msgstr "Ya existe un alias con este nombre" -#: admin/views.py:201 admin/templatetags/admin_extras.py:96 +#: admin/views.py:194 msgid "New distribution list" msgstr "" -#: admin/views.py:213 +#: admin/views.py:198 #, fuzzy msgid "Distribution list created" msgstr "Alias de dominio creado" -#: admin/views.py:225 admin/views.py:248 -msgid "You do not have access to this domain" -msgstr "" +#: admin/views.py:204 +#, fuzzy +msgid "New alias" +msgstr "Nuevo alias de dominio" -#: admin/views.py:233 +#: admin/views.py:208 +#, fuzzy +msgid "Alias created" +msgstr "Alias eliminado" + +#: admin/views.py:214 +#, fuzzy +msgid "New forward" +msgstr "Defina su reenvío" + +#: admin/views.py:218 +#, fuzzy +msgid "Forward created" +msgstr "Reenvío actualizado" + +#: admin/views.py:235 +#, fuzzy +msgid "Alias modified" +msgstr "Dominio modificado" + +#: admin/views.py:239 #, fuzzy msgid "Distribution list modified" msgstr "Alias del \"mailbox\" modificado" -#: admin/views.py:253 +#: admin/views.py:243 #, fuzzy -msgid "Distribution list deleted" -msgid_plural "Distribution lists deleted" -msgstr[0] "Alias de dominio eliminado" -msgstr[1] "Alias de dominio eliminados" +msgid "Forward modified" +msgstr "Carpeta modificada" -#: admin/views.py:316 admin/templatetags/admin_extras.py:90 +#: admin/views.py:350 msgid "New account" msgstr "" -#: admin/views.py:323 +#: admin/views.py:357 msgid "Next" msgstr "Siguiente" -#: admin/views.py:327 +#: admin/views.py:361 msgid "Previous" msgstr "Anterior" -#: admin/views.py:338 +#: admin/views.py:372 #, fuzzy msgid "Account created" msgstr "Dominio creado" -#: admin/views.py:362 -msgid "You can't access this account" -msgstr "" - -#: admin/views.py:389 +#: admin/views.py:417 #, fuzzy msgid "Account updated" msgstr "La cuenta está desactivada." -#: admin/views.py:409 +#: admin/views.py:437 #, fuzzy msgid "Account deleted" msgid_plural "Accounts deleted" msgstr[0] "Dominio eliminado" msgstr[1] "Dominios eliminados" -#: admin/views.py:438 admin/views.py:443 +#: admin/views.py:447 admin/views.py:452 #: extensions/amavis_quarantine/views.py:196 #: extensions/amavis_quarantine/views.py:202 #: extensions/amavis_quarantine/views.py:229 @@ -545,26 +550,21 @@ msgstr[1] "Dominios eliminados" msgid "Invalid request" msgstr "Línea inválida" -#: admin/views.py:445 -#, fuzzy -msgid "Permission denied" -msgstr "¡Permiso denegado!" - -#: admin/views.py:483 +#: admin/views.py:492 #, fuzzy msgid "Parameters saved" msgstr "Parámetros" -#: admin/views.py:529 +#: admin/views.py:538 msgid "Modifications applied." msgstr "Modificaciones aplicadas." -#: admin/views.py:586 +#: admin/views.py:595 #, fuzzy, python-format msgid "%d objects imported successfully" msgstr "%d 'mailboxes' importadas con éxito" -#: admin/views.py:605 +#: admin/views.py:614 msgid "" "Provide a CSV file where lines respect one of the following format:\n" "
        \n" @@ -575,17 +575,17 @@ msgid "" "You can use a different character as separator.\n" msgstr "" -#: admin/views.py:613 +#: admin/views.py:622 #, fuzzy msgid "Import identities" msgstr "Importar datos" -#: admin/views.py:614 admin/views.py:640 admin/templatetags/admin_extras.py:73 -#: admin/templatetags/admin_extras.py:102 +#: admin/views.py:623 admin/views.py:649 admin/templatetags/admin_extras.py:73 +#: admin/templatetags/admin_extras.py:114 msgid "Import" msgstr "Importar" -#: admin/views.py:632 +#: admin/views.py:641 msgid "" "Provide a CSV file where lines respect the following format:
        \n" "domain; name; quota
        \n" @@ -593,7 +593,7 @@ msgid "" "You can use a different character as separator.\n" msgstr "" -#: admin/views.py:639 +#: admin/views.py:648 #, fuzzy msgid "Import domains" msgstr "Importar datos" @@ -627,24 +627,58 @@ msgstr "Extensiones" msgid "Parameters" msgstr "Parámetros" -#: admin/templatetags/admin_extras.py:133 +#: admin/templatetags/admin_extras.py:67 +#, fuzzy +msgid "Add domain" +msgstr "Editar el dominio" + +#: admin/templatetags/admin_extras.py:90 +msgid "Add account" +msgstr "" + +#: admin/templatetags/admin_extras.py:96 +#, fuzzy +msgid "Add alias" +msgstr "Editar el alias" + +#: admin/templatetags/admin_extras.py:102 +#, fuzzy +msgid "Add forward" +msgstr "Siguiente" + +#: admin/templatetags/admin_extras.py:108 +#, fuzzy +msgid "Add distribution list" +msgstr "Alias de dominio creado" + +#: admin/templatetags/admin_extras.py:145 msgid "Delete this account" msgstr "" -#: admin/templatetags/admin_extras.py:140 +#: admin/templatetags/admin_extras.py:155 msgid "Delete this distribution list" msgstr "" -#: admin/templatetags/admin_extras.py:150 +#: admin/templatetags/admin_extras.py:162 +#, fuzzy +msgid "Delete this forward" +msgstr "Defina su reenvío" + +#: admin/templatetags/admin_extras.py:169 +#, fuzzy +msgid "Delete this alias" +msgstr "Activar este alias" + +#: admin/templatetags/admin_extras.py:179 #, fuzzy msgid "Remove this permission" msgstr "Elminar permisos" -#: admin/templatetags/admin_extras.py:184 +#: admin/templatetags/admin_extras.py:213 msgid "Yes" msgstr "Sí" -#: admin/templatetags/admin_extras.py:184 +#: admin/templatetags/admin_extras.py:213 msgid "No" msgstr "No " @@ -763,12 +797,12 @@ msgstr "Fija el número máximo de mensajes mostrados en una página" msgid "Quarantine" msgstr "Cuarentena" -#: extensions/amavis_quarantine/__init__.py:145 +#: extensions/amavis_quarantine/__init__.py:152 #, fuzzy msgid "pending requests" msgstr "Consulta errónea" -#: extensions/amavis_quarantine/__init__.py:161 +#: extensions/amavis_quarantine/__init__.py:168 #, python-format msgid "%d pending requests" msgstr "" @@ -908,14 +942,30 @@ msgstr "" msgid "Maximum number of domains this user can create" msgstr "" +#: extensions/limits/forms.py:16 extensions/limits/models.py:11 +#: templates/admin/editdomainform.html:29 +msgid "Domain aliases" +msgstr "Alias del dominio" + #: extensions/limits/forms.py:17 msgid "Maximum number of domain aliases this user can create" msgstr "" +#: extensions/limits/forms.py:18 extensions/limits/models.py:12 +#: extensions/webmail/templates/webmail/folders.html:4 +#: templates/admin/editdomainform.html:30 +msgid "Mailboxes" +msgstr "'Mailboxes'" + #: extensions/limits/forms.py:19 msgid "Maximum number of mailboxes this user can create" msgstr "" +#: extensions/limits/forms.py:20 extensions/limits/models.py:13 +#: templates/admin/editdomainform.html:31 +msgid "Mailbox aliases" +msgstr "Alias del \"mailbox\"" + #: extensions/limits/forms.py:21 msgid "Maximum number of mailbox aliases this user can create" msgstr "" @@ -970,15 +1020,15 @@ msgstr "Tiempo en segundos entre dos autorespuestas para el mismo emisor" msgid "Auto-reply message" msgstr "Mensaje de autorespuesta" -#: extensions/postfix_autoreply/forms.py:8 +#: extensions/postfix_autoreply/forms.py:9 msgid "Until" msgstr "Hasta" -#: extensions/postfix_autoreply/forms.py:9 +#: extensions/postfix_autoreply/forms.py:11 msgid "Activate your auto reply until this date" msgstr "Activar su autorespuesta hasta esta fecha" -#: extensions/postfix_autoreply/forms.py:23 +#: extensions/postfix_autoreply/forms.py:25 msgid "This date is over" msgstr "Esta fecha ha pasado" @@ -1075,10 +1125,6 @@ msgstr "no es" msgid "Sender" msgstr "Remitente" -#: extensions/sievefilters/forms.py:70 -msgid "Recipient" -msgstr "Receptor" - #: extensions/sievefilters/forms.py:71 extensions/webmail/forms.py:7 msgid "Cc" msgstr "Cc" @@ -1161,6 +1207,14 @@ msgstr "Conjunto de filtros eliminado" msgid "Filters set activated" msgstr "Conjunto de filtros activado" +#: extensions/sievefilters/views.py:265 +msgid "yes" +msgstr "sí" + +#: extensions/sievefilters/views.py:269 +msgid "no" +msgstr "no" + #: extensions/sievefilters/templates/sievefilters/filter.html:6 msgid "Conditions" msgstr "Condiciones" @@ -1313,10 +1367,6 @@ msgstr "A medida" msgid "No statistics available" msgstr "No hay estadísticas disponibles" -#: extensions/stats/views.py:52 -msgid "you're not allowed to see those statistics" -msgstr "" - #: extensions/stats/views.py:58 msgid "Domain not found. Please enter a full name" msgstr "" @@ -1654,32 +1704,37 @@ msgstr "Editar el \"mailbox\"" msgid "Remove the selected mailbox" msgstr "" -#: lib/exceptions.py:17 +#: lib/exceptions.py:18 #, fuzzy, python-format msgid "Permission denied: %s" msgstr "Permiso denegado en" +#: lib/exceptions.py:19 +#, fuzzy +msgid "Permission denied" +msgstr "¡Permiso denegado!" + #: lib/formutils.py:154 lib/formutils.py:161 #, fuzzy msgid "Enter a valid domain name" msgstr "Nombre del dominio" -#: lib/permissions.py:25 +#: lib/permissions.py:26 #, fuzzy msgid "Simple user" msgstr "Seleccione un usuario" -#: lib/permissions.py:27 +#: lib/permissions.py:28 #, fuzzy msgid "Super administrator" msgstr "Super administradores" -#: lib/permissions.py:29 +#: lib/permissions.py:30 #, fuzzy msgid "Domain administrator" msgstr "Administradores del dominio" -#: lib/permissions.py:61 +#: lib/permissions.py:62 #, fuzzy, python-format msgid "Failed to grant access (%s)" msgstr "Falló en la actualización del password: %s" @@ -1855,6 +1910,23 @@ msgstr "Preferencias" msgid "Logout" msgstr "Salir" +#~ msgid "MB" +#~ msgstr "MB" + +#, fuzzy +#~ msgid "You can't edit this domain" +#~ msgstr "No puedo eliminar su propio dominio" + +#, fuzzy +#~ msgid "You can't delete this domain" +#~ msgstr "No puedo eliminar su propio dominio" + +#, fuzzy +#~ msgid "Distribution list deleted" +#~ msgid_plural "Distribution lists deleted" +#~ msgstr[0] "Alias de dominio eliminado" +#~ msgstr[1] "Alias de dominio eliminados" + #, fuzzy #~ msgid "Domain administrators" #~ msgstr "Administradores del dominio" @@ -1947,9 +2019,6 @@ msgstr "Salir" #~ msgid "Targeted domain" #~ msgstr "Dominio elegido" -#~ msgid "Address" -#~ msgstr "Dirección" - #~ msgid "User name" #~ msgstr "Nombre de usuario" @@ -1968,9 +2037,6 @@ msgstr "Salir" #~ msgid "Domain editing" #~ msgstr "Editando el dominio" -#~ msgid "New domain alias" -#~ msgstr "Nuevo alias de dominio" - #~ msgid "Domain alias editing" #~ msgstr "Editando alias de dominio" @@ -2006,11 +2072,6 @@ msgstr "Salir" #~ msgid "Mailbox alias editing" #~ msgstr "Editando el alias del \"mailbox\"" -#~ msgid "Alias deleted" -#~ msgid_plural "Aliases deleted" -#~ msgstr[0] "Alias eliminado" -#~ msgstr[1] "Alias eliminados" - #~ msgid "Permission added." #~ msgstr "Permiso añadido." @@ -2029,9 +2090,6 @@ msgstr "Salir" #~ msgid "Add permission" #~ msgstr "Añadir un permiso" -#~ msgid "Edit alias" -#~ msgstr "Editar el alias" - #~ msgid "View this mailbox aliases" #~ msgstr "Mostrar este alias del \"mailbox\"" @@ -2089,9 +2147,6 @@ msgstr "Salir" #~ msgid "Edit folder" #~ msgstr "Editar carpeta" -#~ msgid "Folder modified" -#~ msgstr "Carpeta modificada" - #~ msgid "Done" #~ msgstr "Hecho" diff --git a/locale/es/LC_MESSAGES/djangojs.po b/locale/es/LC_MESSAGES/djangojs.po index bda7182c8..6541b8c73 100644 --- a/locale/es/LC_MESSAGES/djangojs.po +++ b/locale/es/LC_MESSAGES/djangojs.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Modoboa-0.8.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-04-25 14:47+0200\n" +"POT-Creation-Date: 2012-05-03 11:05+0200\n" "PO-Revision-Date: 2012-01-10 10:34+0000\n" "Last-Translator: Antoine Nguyen \n" "Language-Team: ES \n" @@ -87,7 +87,7 @@ msgstr "" msgid "Cancel" msgstr "" -#: static/js/confirmation.js:84 static/js/history.js:229 +#: static/js/confirmation.js:84 static/js/history.js:230 msgid "Internal Error" msgstr "" diff --git a/locale/fr/LC_MESSAGES/django.po b/locale/fr/LC_MESSAGES/django.po index 627b58a62..07c4b9bf7 100644 --- a/locale/fr/LC_MESSAGES/django.po +++ b/locale/fr/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: 2012-04-25 16:51+0200\n" +"POT-Creation-Date: 2012-05-03 10:59+0200\n" "PO-Revision-Date: 2011-01-07 10:00+100\n" "Last-Translator: Antoine Nguyen \n" "Language-Team: FR \n" @@ -76,7 +76,7 @@ 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" -#: admin/forms.py:15 admin/forms.py:299 +#: admin/forms.py:15 admin/forms.py:396 admin/tables.py:17 msgid "Alias(es)" msgstr "Alias" @@ -84,7 +84,7 @@ msgstr "Alias" msgid "Alias(es) of this domain" msgstr "Alias de ce domaine" -#: admin/forms.py:51 admin/views.py:58 +#: admin/forms.py:51 admin/views.py:60 msgid "An alias with this name already exists" msgstr "Un alias de ce nom existe déjà" @@ -96,125 +96,157 @@ msgstr "Un domaine de ce nom existe déjà" msgid "Failed to rename domain, check permissions" msgstr "Impossible de renommer le domaine, vérifier les permissions" -#: admin/forms.py:105 +#: admin/forms.py:103 msgid "Email address" msgstr "Adresse email" -#: admin/forms.py:106 +#: admin/forms.py:104 msgid "The distribution list address" msgstr "L'adresse de liste de distribution" -#: admin/forms.py:109 +#: admin/forms.py:107 msgid "Recipients" msgstr "Destinataires" -#: admin/forms.py:110 +#: admin/forms.py:108 msgid "Mailbox(es) this alias will point to" msgstr "Les boites aux lettres sur lesquelles cet alias pointera" -#: admin/forms.py:143 admin/forms.py:330 admin/models.py:756 +#: admin/forms.py:142 admin/forms.py:221 admin/forms.py:429 +#: admin/models.py:779 msgid "Domain does not exist" msgstr "Domain inexistant" -#: admin/forms.py:163 +#: admin/forms.py:144 admin/forms.py:223 +msgid "You don't have access to this domain" +msgstr "Vous n'avez pas accès à ce domaine" + +#: admin/forms.py:164 msgid "Invalid mailbox" msgstr "Boite aux lettres invalide" -#: admin/forms.py:174 admin/models.py:776 +#: admin/forms.py:175 admin/models.py:799 #, python-format msgid "Mailbox %s does not exist" msgstr "La boite %s n'existe pas" -#: admin/forms.py:183 +#: admin/forms.py:184 msgid "No recipient defined" msgstr "Aucune destinataire défini" -#: admin/forms.py:186 +#: admin/forms.py:187 msgid "A distribution list must contain at least two recipients" msgstr "Une liste de distribution doit contenir au moins deux destinataires" -#: admin/forms.py:199 extensions/webmail/forms.py:18 +#: admin/forms.py:201 +msgid "Address" +msgstr "Adresse" + +#: admin/forms.py:202 +msgid "A valid e-mail address" +msgstr "Une adresse email valide" + +#: admin/forms.py:238 admin/forms.py:267 extensions/sievefilters/forms.py:70 +msgid "Recipient" +msgstr "Destinataire" + +#: admin/forms.py:239 +msgid "A local recipient address" +msgstr "Une adresse de destination locale" + +#: admin/forms.py:254 +msgid "Mailbox does not exist" +msgstr "La boite n'existe pas" + +#: admin/forms.py:256 +msgid "You can't access this mailbox" +msgstr "Vous n'avez pas accès à cette boite" + +#: admin/forms.py:268 +msgid "An external recipient address" +msgstr "Une adresse de destination externe" + +#: admin/forms.py:285 +msgid "Local recipients are forbidden" +msgstr "Les destinataires locaux sont interdits" + +#: admin/forms.py:295 extensions/webmail/forms.py:18 msgid "Select a file" msgstr "Sélectionner un fichier" -#: admin/forms.py:200 +#: admin/forms.py:296 msgid "Separator" msgstr "Séparateur" -#: admin/forms.py:212 auth/forms.py:6 templates/admin/editdomainform.html:20 +#: admin/forms.py:308 auth/forms.py:6 templates/admin/editdomainform.html:20 msgid "Username" msgstr "Nom d'utilisateur" -#: admin/forms.py:214 +#: admin/forms.py:310 msgid "Role" msgstr "Rôle" -#: admin/forms.py:215 admin/forms.py:233 +#: admin/forms.py:311 admin/forms.py:335 msgid "Choose" msgstr "Choisir" -#: admin/forms.py:216 +#: admin/forms.py:312 msgid "What level of permission this user will have" msgstr "Quel niveau de permission cet utilisateur aura" -#: admin/forms.py:226 -msgid "Enabled" -msgstr "Activé" - -#: admin/forms.py:265 auth/forms.py:10 +#: admin/forms.py:314 auth/forms.py:10 msgid "Password" msgstr "Mot de passe" -#: admin/forms.py:267 userprefs/forms.py:15 +#: admin/forms.py:316 userprefs/forms.py:15 msgid "Confirmation" msgstr "Confirmation" -#: admin/forms.py:269 +#: admin/forms.py:318 msgid "Enter the same password as above, for verification." msgstr "Entrer le même mot de passe, pour vérification." -#: admin/forms.py:281 +#: admin/forms.py:329 +msgid "Enabled" +msgstr "Activé" + +#: admin/forms.py:367 msgid "The two password fields didn't match." msgstr "Les deux mots de passe ne correspondent pas." -#: admin/forms.py:296 +#: admin/forms.py:393 msgid "E-mail" msgstr "E-mail" -#: admin/forms.py:297 admin/tables.py:21 +#: admin/forms.py:394 msgid "Quota" msgstr "Quota" -#: admin/forms.py:301 +#: admin/forms.py:398 msgid "Alias(es) of this mailbox" msgstr "Alias de cette boite" -#: admin/forms.py:333 admin/models.py:75 admin/models.py:665 -#: admin/views.py:359 extensions/stats/views.py:60 -msgid "You don't have access to this domain" -msgstr "Vous n'avez pas accès à ce domaine" - -#: admin/forms.py:351 +#: admin/forms.py:454 msgid "Failed to rename mailbox, check permissions" msgstr "Impossible de renommer la boite aux lettres, vérifier les permissions." -#: admin/forms.py:389 +#: admin/forms.py:495 msgid "Domain(s)" msgstr "Domaine(s)" -#: admin/forms.py:391 +#: admin/forms.py:497 msgid "Domain(s) that user administrates" msgstr "Domaine(s) que cet utilisateur administre" -#: admin/forms.py:430 admin/views.py:322 templates/admin/editdomainform.html:4 +#: admin/forms.py:546 admin/views.py:356 templates/admin/editdomainform.html:4 msgid "General" msgstr "Général" -#: admin/forms.py:432 admin/views.py:325 +#: admin/forms.py:548 admin/views.py:359 msgid "Mail" msgstr "Courrier" -#: admin/forms.py:434 +#: admin/forms.py:550 msgid "Permissions" msgstr "Permissions" @@ -222,102 +254,98 @@ msgstr "Permissions" msgid "Unknown object type" msgstr "Type d'objet inconnu" -#: admin/models.py:70 +#: admin/models.py:71 msgid "You can't delete your own account" msgstr "Vous ne pouvez pas supprimer votre propre compte" -#: admin/models.py:80 -msgid "You don't have access to this account" -msgstr "Vous n'avez pas accès à ce compte" - -#: admin/models.py:141 +#: admin/models.py:137 msgid "Failed to update password: LDAP module not installed" msgstr "" "Echec de la mise à jour du mot de passe : le module LDAP n'est pas installé" -#: admin/models.py:147 +#: admin/models.py:143 #, python-format msgid "Failed to update password: %s" msgstr "Echec de la mise à jour du mot de passe : %s" -#: admin/models.py:378 admin/models.py:455 +#: admin/models.py:375 admin/models.py:461 msgid "name" msgstr "Nom" -#: admin/models.py:379 +#: admin/models.py:376 msgid "The domain name" msgstr "Le nom du domaine" -#: admin/models.py:380 +#: admin/models.py:377 msgid "Default quota in MB applied to mailboxes" msgstr "Quota par défaut en Mo appliqué aux boites aux lettres" -#: admin/models.py:381 admin/models.py:460 admin/models.py:696 -#: admin/models.py:782 extensions/postfix_autoreply/models.py:19 +#: admin/models.py:378 admin/models.py:466 admin/models.py:708 +#: admin/models.py:805 extensions/postfix_autoreply/models.py:19 msgid "enabled" msgstr "Activé" -#: admin/models.py:382 +#: admin/models.py:379 msgid "Check to activate this domain" msgstr "Cocher pour activer ce domaine" -#: admin/models.py:440 +#: admin/models.py:446 msgid "Failed to initialise domain, check permissions" msgstr "Impossible d'initialiser le domaine, vérifier les permissions" -#: admin/models.py:448 admin/models.py:657 admin/models.py:751 +#: admin/models.py:454 admin/models.py:669 admin/models.py:774 msgid "Invalid line" msgstr "Ligne invalide" -#: admin/models.py:456 +#: admin/models.py:462 msgid "The alias name" msgstr "Le nom de l'alias" -#: admin/models.py:457 +#: admin/models.py:463 msgid "target" msgstr "cible" -#: admin/models.py:458 +#: admin/models.py:464 msgid "The domain this alias points to" msgstr "Le domaine vers lequel cet alias pointe" -#: admin/models.py:461 admin/models.py:697 +#: admin/models.py:467 admin/models.py:709 msgid "Check to activate this alias" msgstr "Cocher pour activer cet alias" -#: admin/models.py:474 admin/models.py:687 +#: admin/models.py:486 admin/models.py:699 msgid "address" msgstr "Adresse" -#: admin/models.py:475 +#: admin/models.py:487 msgid "Mailbox address (without the @domain.tld part)" msgstr "Adresse de la boite aux lettres (sans la partie @domain.tld)" -#: admin/models.py:572 +#: admin/models.py:584 #, python-format msgid "%s is not a valid uid/username" msgstr "%s n'est pas un uid/nom d'utilisateur valide" -#: admin/models.py:581 +#: admin/models.py:593 #, python-format msgid "%s is not a valid gid/groupname" msgstr "%s n'est pas un gid/nom de groupe valide" -#: admin/models.py:585 admin/models.py:642 +#: admin/models.py:597 admin/models.py:654 msgid "Failed to initialise mailbox, check permissions" msgstr "" "Impossible d'initialiser la boite aux lettres, vérifier les permissions" -#: admin/models.py:610 +#: admin/models.py:622 #, python-format msgid "Account '%s' already exists" msgstr "Le compte %s existe déjà" -#: admin/models.py:663 +#: admin/models.py:675 msgid "Cannot import this mailbox because the associated domain does not exist" msgstr "Impossible d'importer cette boite car le domaine associé n'existe pas" -#: admin/models.py:688 +#: admin/models.py:700 msgid "" "The alias address (without the domain part). For a 'catch-all' address, just " "enter an * character." @@ -325,183 +353,153 @@ msgstr "" "L'adresse de l'alias (sans la partie domaine). Pour une adresse 'attrape-" "tout', entrer juste un caractère *." -#: admin/models.py:692 +#: admin/models.py:704 msgid "mailboxes" msgstr "Boites aux lettres" -#: admin/models.py:693 +#: admin/models.py:705 msgid "The mailboxes this alias points to" msgstr "Les boites aux lettres sur lesquelles pointe cet alias" -#: admin/models.py:758 lib/permissions.py:115 -msgid "You can't access this domain" -msgstr "Vous ne pouvez pas accéder à ce domaine" - -#: admin/models.py:783 +#: admin/models.py:806 msgid "Check to enable this extension" msgstr "Cocher pour activer cette extension" -#: admin/tables.py:11 admin/tables.py:49 extensions/sievefilters/forms.py:53 +#: admin/tables.py:12 admin/tables.py:44 extensions/sievefilters/forms.py:53 #: extensions/sievefilters/templates/sievefilters/guieditor.html:6 #: templates/admin/editdomainform.html:20 msgid "Name" msgstr "Nom" -#: admin/tables.py:13 +#: admin/tables.py:14 msgid "Edit domain" msgstr "Editer le domaine" -#: admin/tables.py:15 extensions/limits/forms.py:16 -#: extensions/limits/models.py:11 -msgid "Domain aliases" -msgstr "Alias de domaine" - -#: admin/tables.py:17 extensions/limits/forms.py:18 -#: extensions/limits/models.py:12 -#: extensions/webmail/templates/webmail/folders.html:4 -msgid "Mailboxes" -msgstr "Boites" - -#: admin/tables.py:19 extensions/limits/forms.py:20 -#: extensions/limits/models.py:13 -msgid "Mailbox aliases" -msgstr "Alias de boite." - -#: admin/tables.py:25 admin/tables.py:65 extensions/sievefilters/views.py:79 +#: admin/tables.py:18 admin/tables.py:61 extensions/sievefilters/views.py:79 #: extensions/sievefilters/templates/sievefilters/filter.html:17 #: extensions/sievefilters/templates/sievefilters/guieditor.html:5 #: extensions/webmail/templatetags/webextras.py:93 msgid "Actions" msgstr "Actions" -#: admin/tables.py:36 -msgid "MB" -msgstr "Mo" - -#: admin/tables.py:39 extensions/sievefilters/views.py:265 -msgid "yes" -msgstr "oui" - -#: admin/tables.py:39 extensions/sievefilters/views.py:269 -msgid "no" -msgstr "non" - -#: admin/tables.py:50 +#: admin/tables.py:45 msgid "Version" msgstr "Version" -#: admin/tables.py:51 +#: admin/tables.py:46 msgid "Description" msgstr "Description" -#: admin/tables.py:58 +#: admin/tables.py:54 msgid "Email/Username" msgstr "Email/Nom d'utilisateur" -#: admin/tables.py:64 +#: admin/tables.py:60 msgid "Fullname/Recipient" msgstr "Nom complet/Destinataire" -#: admin/views.py:78 admin/templatetags/admin_extras.py:67 +#: admin/views.py:80 msgid "New domain" msgstr "Nouveau domaine" -#: admin/views.py:79 admin/views.py:202 admin/views.py:319 admin/views.py:326 +#: admin/views.py:81 admin/views.py:174 admin/views.py:353 admin/views.py:360 #: extensions/sievefilters/views.py:120 extensions/sievefilters/views.py:187 #: extensions/webmail/views.py:118 msgid "Create" msgstr "Créer" -#: admin/views.py:85 +#: admin/views.py:87 msgid "Domain created" msgstr "Domaine créé" -#: admin/views.py:96 -msgid "You can't edit this domain" -msgstr "Vous ne pouvez pas éditer ce domaine" - -#: admin/views.py:107 admin/views.py:227 admin/views.py:372 +#: admin/views.py:108 admin/views.py:223 admin/views.py:403 #: extensions/postfix_autoreply/views.py:22 #: extensions/sievefilters/views.py:139 extensions/webmail/views.py:149 #: userprefs/views.py:34 userprefs/views.py:66 msgid "Update" msgstr "Mettre à jour" -#: admin/views.py:114 +#: admin/views.py:115 msgid "Domain modified" msgstr "Domaine modifié" -#: admin/views.py:135 -msgid "You can't delete this domain" -msgstr "Vous ne pouvez pas supprimer ce domaine" - -#: admin/views.py:137 +#: admin/views.py:138 msgid "You can't delete your own domain" msgstr "Vous ne pouvez pas supprimer votre propre domaine" -#: admin/views.py:147 +#: admin/views.py:141 msgid "Domain deleted" msgid_plural "Domains deleted" msgstr[0] "Domaine supprimé" msgstr[1] "Domaines supprimés" -#: admin/views.py:180 +#: admin/views.py:156 msgid "Alias with this name already exists" msgstr "Un alias de ce nom existe déjà" -#: admin/views.py:201 admin/templatetags/admin_extras.py:96 +#: admin/views.py:194 msgid "New distribution list" msgstr "Nouvelle liste de distribution" -#: admin/views.py:213 +#: admin/views.py:198 msgid "Distribution list created" msgstr "Liste de distribution créée" -#: admin/views.py:225 admin/views.py:248 -msgid "You do not have access to this domain" -msgstr "Vous n'avez pas accès à ce domaine" +#: admin/views.py:204 +msgid "New alias" +msgstr "Nouvel alias" -#: admin/views.py:233 +#: admin/views.py:208 +msgid "Alias created" +msgstr "Alias créé" + +#: admin/views.py:214 +msgid "New forward" +msgstr "Nouveau transfert" + +#: admin/views.py:218 +msgid "Forward created" +msgstr "Transfert créé" + +#: admin/views.py:235 +msgid "Alias modified" +msgstr "Alias modifié" + +#: admin/views.py:239 msgid "Distribution list modified" msgstr "Liste de distribution modifiée" -#: admin/views.py:253 -msgid "Distribution list deleted" -msgid_plural "Distribution lists deleted" -msgstr[0] "Liste de distribution supprimée" -msgstr[1] "Listes de distribution supprimées" +#: admin/views.py:243 +msgid "Forward modified" +msgstr "Transfert modifié" -#: admin/views.py:316 admin/templatetags/admin_extras.py:90 +#: admin/views.py:350 msgid "New account" msgstr "Nouveau compte" -#: admin/views.py:323 +#: admin/views.py:357 msgid "Next" msgstr "Suivante" -#: admin/views.py:327 +#: admin/views.py:361 msgid "Previous" msgstr "Précédente" -#: admin/views.py:338 +#: admin/views.py:372 msgid "Account created" msgstr "Compte créé" -#: admin/views.py:362 -msgid "You can't access this account" -msgstr "Vous n'avez pas accès à ce compte" - -#: admin/views.py:389 +#: admin/views.py:417 msgid "Account updated" msgstr "Compte mis à jour" -#: admin/views.py:409 +#: admin/views.py:437 msgid "Account deleted" msgid_plural "Accounts deleted" msgstr[0] "Compte supprimé" msgstr[1] "Comptes supprimés" -#: admin/views.py:438 admin/views.py:443 +#: admin/views.py:447 admin/views.py:452 #: extensions/amavis_quarantine/views.py:196 #: extensions/amavis_quarantine/views.py:202 #: extensions/amavis_quarantine/views.py:229 @@ -515,24 +513,20 @@ msgstr[1] "Comptes supprimés" msgid "Invalid request" msgstr "Requête invalide" -#: admin/views.py:445 -msgid "Permission denied" -msgstr "Permission refusée" - -#: admin/views.py:483 +#: admin/views.py:492 msgid "Parameters saved" msgstr "Paramètres enregistrés" -#: admin/views.py:529 +#: admin/views.py:538 msgid "Modifications applied." msgstr "Modifications appliquées." -#: admin/views.py:586 +#: admin/views.py:595 #, python-format msgid "%d objects imported successfully" msgstr "%d objets importés avec succès" -#: admin/views.py:605 +#: admin/views.py:614 msgid "" "Provide a CSV file where lines respect one of the following format:\n" "
          \n" @@ -550,16 +544,16 @@ msgstr "" "
        \n" "Vous pouvez utiliser un caractère différent comme séparateur.\n" -#: admin/views.py:613 +#: admin/views.py:622 msgid "Import identities" msgstr "Importer des identités" -#: admin/views.py:614 admin/views.py:640 admin/templatetags/admin_extras.py:73 -#: admin/templatetags/admin_extras.py:102 +#: admin/views.py:623 admin/views.py:649 admin/templatetags/admin_extras.py:73 +#: admin/templatetags/admin_extras.py:114 msgid "Import" msgstr "Importer" -#: admin/views.py:632 +#: admin/views.py:641 msgid "" "Provide a CSV file where lines respect the following format:
        \n" "domain; name; quota
        \n" @@ -571,7 +565,7 @@ msgstr "" "\n" "Vous pouvez utiliser un caractère différent comme séparateur.\n" -#: admin/views.py:639 +#: admin/views.py:648 msgid "Import domains" msgstr "Importer des domaines" @@ -604,23 +598,51 @@ msgstr "Extensions" msgid "Parameters" msgstr "Paramètres" -#: admin/templatetags/admin_extras.py:133 +#: admin/templatetags/admin_extras.py:67 +msgid "Add domain" +msgstr "Ajouter un domaine" + +#: admin/templatetags/admin_extras.py:90 +msgid "Add account" +msgstr "Ajouter un compte" + +#: admin/templatetags/admin_extras.py:96 +msgid "Add alias" +msgstr "Ajouter un alias" + +#: admin/templatetags/admin_extras.py:102 +msgid "Add forward" +msgstr "Ajouter un transfert" + +#: admin/templatetags/admin_extras.py:108 +msgid "Add distribution list" +msgstr "Ajouter une liste de distribution" + +#: admin/templatetags/admin_extras.py:145 msgid "Delete this account" msgstr "Supprimer ce compte" -#: admin/templatetags/admin_extras.py:140 +#: admin/templatetags/admin_extras.py:155 msgid "Delete this distribution list" msgstr "Supprimer cette liste de distribution" -#: admin/templatetags/admin_extras.py:150 +#: admin/templatetags/admin_extras.py:162 +msgid "Delete this forward" +msgstr "Supprimer ce transfert" + +#: admin/templatetags/admin_extras.py:169 +msgid "Delete this alias" +msgstr "Supprimer cet alias" + +#: admin/templatetags/admin_extras.py:179 msgid "Remove this permission" msgstr "Supprimer cette permission" -#: admin/templatetags/admin_extras.py:184 +#: admin/templatetags/admin_extras.py:213 msgid "Yes" msgstr "Oui" -#: admin/templatetags/admin_extras.py:184 +#: admin/templatetags/admin_extras.py:213 msgid "No" msgstr "Non" @@ -736,11 +758,11 @@ msgstr "Définit le nombre maximal de messages affichés dans une page" msgid "Quarantine" msgstr "Quarantaine" -#: extensions/amavis_quarantine/__init__.py:145 +#: extensions/amavis_quarantine/__init__.py:152 msgid "pending requests" msgstr "requêtes en attente" -#: extensions/amavis_quarantine/__init__.py:161 +#: extensions/amavis_quarantine/__init__.py:168 #, python-format msgid "%d pending requests" msgstr "%d requêtes en attente" @@ -854,6 +876,7 @@ msgstr "Mauvais type MIME" msgid "" "Per administrator resources to limit the number of objects they can create" msgstr "" +"Ressources par administrateur pour limiter le nombre d'objets qu'ils peuvent créer" #: extensions/limits/__init__.py:62 msgid "Reseller" @@ -875,14 +898,30 @@ msgstr "Nombre maximal d'admins de domaine que cet utilisateur peut créer" msgid "Maximum number of domains this user can create" msgstr "Nombre maximal de domaines que cet utilisateur peut créer" +#: extensions/limits/forms.py:16 extensions/limits/models.py:11 +#: templates/admin/editdomainform.html:29 +msgid "Domain aliases" +msgstr "Alias de domaine" + #: extensions/limits/forms.py:17 msgid "Maximum number of domain aliases this user can create" msgstr "Nombre maximal d'alias de domain que cet utilisateur peut créer" +#: extensions/limits/forms.py:18 extensions/limits/models.py:12 +#: extensions/webmail/templates/webmail/folders.html:4 +#: templates/admin/editdomainform.html:30 +msgid "Mailboxes" +msgstr "Boites" + #: extensions/limits/forms.py:19 msgid "Maximum number of mailboxes this user can create" msgstr "Nombre maximal de boites que cet utilisateur peut créer" +#: extensions/limits/forms.py:20 extensions/limits/models.py:13 +#: templates/admin/editdomainform.html:31 +msgid "Mailbox aliases" +msgstr "Alias de boite." + #: extensions/limits/forms.py:21 msgid "Maximum number of mailbox aliases this user can create" msgstr "Nombre maximal d'alias de boite que cet utilisateur peut créer" @@ -935,15 +974,15 @@ msgstr "" msgid "Auto-reply message" msgstr "Message de réponse automatique" -#: extensions/postfix_autoreply/forms.py:8 +#: extensions/postfix_autoreply/forms.py:9 msgid "Until" msgstr "Jusqu'à" -#: extensions/postfix_autoreply/forms.py:9 +#: extensions/postfix_autoreply/forms.py:11 msgid "Activate your auto reply until this date" msgstr "Activer votre réponse automatique jusqu'à cette date" -#: extensions/postfix_autoreply/forms.py:23 +#: extensions/postfix_autoreply/forms.py:25 msgid "This date is over" msgstr "Cette date est dépassée" @@ -1040,10 +1079,6 @@ msgstr "n'est pas" msgid "Sender" msgstr "Expéditeur" -#: extensions/sievefilters/forms.py:70 -msgid "Recipient" -msgstr "Destinataire" - #: extensions/sievefilters/forms.py:71 extensions/webmail/forms.py:7 msgid "Cc" msgstr "Cc" @@ -1127,6 +1162,14 @@ msgstr "Jeu de filtres supprimé" msgid "Filters set activated" msgstr "Jeu de filtres activé" +#: extensions/sievefilters/views.py:265 +msgid "yes" +msgstr "oui" + +#: extensions/sievefilters/views.py:269 +msgid "no" +msgstr "non" + #: extensions/sievefilters/templates/sievefilters/filter.html:6 msgid "Conditions" msgstr "Conditions" @@ -1279,10 +1322,6 @@ msgstr "Personnalisée" msgid "No statistics available" msgstr "Aucune statistique disponible" -#: extensions/stats/views.py:52 -msgid "you're not allowed to see those statistics" -msgstr "vous n'êtes pas autorisé à voir ces statistiques" - #: extensions/stats/views.py:58 msgid "Domain not found. Please enter a full name" msgstr "Domaine non trouvé. Veuillez entrer un nom complet" @@ -1609,28 +1648,32 @@ msgstr "Editer la boite aux lettres sélectionnée" msgid "Remove the selected mailbox" msgstr "Supprimer la boite aux lettres sélectionnée" -#: lib/exceptions.py:17 +#: lib/exceptions.py:18 #, python-format msgid "Permission denied: %s" msgstr "Permission refusée : %s" +#: lib/exceptions.py:19 +msgid "Permission denied" +msgstr "Permission refusée" + #: lib/formutils.py:154 lib/formutils.py:161 msgid "Enter a valid domain name" msgstr "Entrer un nom de domaine valide" -#: lib/permissions.py:25 +#: lib/permissions.py:26 msgid "Simple user" msgstr "Utilisateur simple" -#: lib/permissions.py:27 +#: lib/permissions.py:28 msgid "Super administrator" msgstr "Super administrateur" -#: lib/permissions.py:29 +#: lib/permissions.py:30 msgid "Domain administrator" msgstr "Administrateur de domaine" -#: lib/permissions.py:61 +#: lib/permissions.py:62 #, python-format msgid "Failed to grant access (%s)" msgstr "Impossible de donner l'accès : %s" diff --git a/locale/fr/LC_MESSAGES/djangojs.po b/locale/fr/LC_MESSAGES/djangojs.po index 7d5f6bdba..700334440 100644 --- a/locale/fr/LC_MESSAGES/djangojs.po +++ b/locale/fr/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: 2012-04-25 14:47+0200\n" +"POT-Creation-Date: 2012-05-03 11:05+0200\n" "PO-Revision-Date: 2011-01-07 10:00+0100\n" "Last-Translator: Antoine Nguyen \n" "Language-Team: FR \n" @@ -83,7 +83,7 @@ msgstr "Aucun administrateur de domaine défini" msgid "Cancel" msgstr "Annuler" -#: static/js/confirmation.js:84 static/js/history.js:229 +#: static/js/confirmation.js:84 static/js/history.js:230 msgid "Internal Error" msgstr "Erreur interne" diff --git a/settings_sample.py b/settings_sample.py index b7ebc5898..c53f0087b 100644 --- a/settings_sample.py +++ b/settings_sample.py @@ -20,7 +20,11 @@ DATABASES = { "USER" : "", "PASSWORD" : "", "HOST" : "", - "PORT" : "" + "PORT" : "", + # MySQL users only + # "OPTIONS" : { + # "init_command" : "SET foreign_key_checks = 0;", + # }, }, # "pfxadmin" : { # "ENGINE" : "django.db.backends.", diff --git a/static/js/admin.js b/static/js/admin.js index df1b9db28..86a74db5f 100644 --- a/static/js/admin.js +++ b/static/js/admin.js @@ -95,6 +95,9 @@ function aliasform_cb() { choices: get_domains_list }); $("#id_recipients").dynamic_input(); + $("#id_int_recipient").autocompleter({ + choices: get_mboxes_list + }) $(".submit").one('click', function(e) { simple_ajax_form_post(e, { formid: "aliasform", diff --git a/static/js/history.js b/static/js/history.js index bbb6e3816..71d953b2f 100644 --- a/static/js/history.js +++ b/static/js/history.js @@ -99,7 +99,6 @@ History.prototype = { if (this.paramslength() != 0) { args += "?"; - console.log(this.params); $.each(this.params, function(key, value) { if (args != "?") { args += "&"; diff --git a/templates/admin/identities.html b/templates/admin/identities.html index ec2cdbe69..d5d7e427d 100644 --- a/templates/admin/identities.html +++ b/templates/admin/identities.html @@ -17,6 +17,12 @@ function get_account_list(container) { }); } +function get_mboxes_list(container) { + $.getJSON("{% url modoboa.admin.views.mboxes_list %}", function(data) { + container.value = data; + }); +} + $(document).ready(function() { $("a[name=delaccount]").confirm({ question: gettext("Delete this account?"), @@ -28,6 +34,9 @@ $(document).ready(function() { $("a[name=delforward]").confirm({ question: gettext("Delete this forward?") }); + $("a[name=delalias]").confirm({ + question: gettext("Delete this alias?") + }); $("#pagination_bar").find(".disabled").click(function(e) { e.preventDefault(); });