mirror of
https://github.com/jwinterm/modoboa.git
synced 2026-10-18 05:51:26 +02:00
wip: UI refactoring
* translation files update * various fixes see #204
This commit is contained in:
+12
-12
@@ -1,34 +1,34 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
from modoboa.lib import parameters, events
|
||||
from django.utils.translation import ugettext as _
|
||||
from django.utils.translation import ugettext as _, ugettext_lazy
|
||||
from django.db.utils import DatabaseError
|
||||
from models import Extension
|
||||
|
||||
parameters.register_admin("AUTHENTICATION_TYPE", type="list", deflt="local",
|
||||
values=[('local', _("Local")),
|
||||
values=[('local', ugettext_lazy("Local")),
|
||||
('ldap', "LDAP")],
|
||||
help=_("The backend used for authentication"))
|
||||
help=ugettext_lazy("The backend used for authentication"))
|
||||
parameters.register_admin("CREATE_DIRECTORIES", type="list_yesno", deflt="yes",
|
||||
help=_("Modoboa will handle mailbox creation on filesystem"))
|
||||
help=ugettext_lazy("Modoboa will handle mailbox creation on filesystem"))
|
||||
parameters.register_admin("STORAGE_PATH", type="string", deflt="/var/vmail",
|
||||
help=_("Path to the root directory where messages are stored"))
|
||||
help=ugettext_lazy("Path to the root directory where messages are stored"))
|
||||
parameters.register_admin("VIRTUAL_UID", type="string", deflt="vmail",
|
||||
help=_("UID of the virtual user which owns domains/mailboxes/messages on the filesystem"))
|
||||
help=ugettext_lazy("UID of the virtual user which owns domains/mailboxes/messages on the filesystem"))
|
||||
parameters.register_admin("VIRTUAL_GID", type="string", deflt="vmail",
|
||||
help=_("GID of the virtual user which owns domains/mailboxes/messages on the filesystem"))
|
||||
help=ugettext_lazy("GID of the virtual user which owns domains/mailboxes/messages on the filesystem"))
|
||||
parameters.register_admin("MAILBOX_TYPE", type="list", deflt="maildir",
|
||||
values=[("maildir", "maildir"), ("mbox", "mbox")],
|
||||
help=_("Mailboxes storage format"))
|
||||
help=ugettext_lazy("Mailboxes storage format"))
|
||||
parameters.register_admin("MAILDIR_ROOT", type="string", deflt=".maildir",
|
||||
help=_("Sub-directory (inside the mailbox) where messages are stored when using the maildir format"))
|
||||
help=ugettext_lazy("Sub-directory (inside the mailbox) where messages are stored when using the maildir format"))
|
||||
parameters.register_admin(
|
||||
"PASSWORD_SCHEME", type="list", deflt="crypt",
|
||||
values=[("crypt", "crypt"), ("md5", "md5"), ("sha256", "sha256"), ("clear", "clear")],
|
||||
help=_("Scheme used to crypt mailbox passwords")
|
||||
help=ugettext_lazy("Scheme used to crypt mailbox passwords")
|
||||
)
|
||||
parameters.register_admin("ITEMS_PER_PAGE", type="int", deflt=30,
|
||||
help=_("Number of displayed items per page"))
|
||||
help=ugettext_lazy("Number of displayed items per page"))
|
||||
|
||||
def enabled_applications():
|
||||
"""Return the list of currently enabled extensions
|
||||
@@ -51,7 +51,7 @@ def enabled_applications():
|
||||
parameters.register_admin("DEFAULT_TOP_REDIRECTION", type="list", deflt="admin",
|
||||
app="general",
|
||||
values=enabled_applications(),
|
||||
help=_("The default redirection used when no application is specified"))
|
||||
help=ugettext_lazy("The default redirection used when no application is specified"))
|
||||
|
||||
@events.observe("ExtDisabled")
|
||||
def unset_default_topredirection(extension):
|
||||
|
||||
+17
-17
@@ -2,7 +2,7 @@
|
||||
from django import forms
|
||||
from django.contrib.auth.models import Group
|
||||
from modoboa.admin.models import *
|
||||
from django.utils.translation import ugettext as _, ugettext_noop
|
||||
from django.utils.translation import ugettext as _, ugettext_lazy
|
||||
from django.http import QueryDict
|
||||
from modoboa.admin.templatetags.admin_extras import gender
|
||||
from modoboa.lib.emailutils import split_mailbox
|
||||
@@ -12,9 +12,9 @@ from modoboa.lib.permissions import *
|
||||
|
||||
class DomainForm(forms.ModelForm, DynamicForm):
|
||||
aliases = DomainNameField(
|
||||
label=ugettext_noop("Alias(es)"),
|
||||
label=ugettext_lazy("Alias(es)"),
|
||||
required=False,
|
||||
help_text=ugettext_noop("Alias(es) of this domain")
|
||||
help_text=ugettext_lazy("Alias(es) of this domain")
|
||||
)
|
||||
|
||||
class Meta:
|
||||
@@ -102,12 +102,12 @@ class DomainForm(forms.ModelForm, DynamicForm):
|
||||
|
||||
class DlistForm(forms.ModelForm, DynamicForm):
|
||||
email = forms.EmailField(
|
||||
label=ugettext_noop("Email address"),
|
||||
help_text=ugettext_noop("")
|
||||
label=ugettext_lazy("Email address"),
|
||||
help_text=ugettext_lazy("The distribution list address")
|
||||
)
|
||||
recipients = forms.EmailField(
|
||||
label=ugettext_noop("Recipients"), required=False,
|
||||
help_text=ugettext_noop("Mailbox(es) this alias will point to")
|
||||
label=ugettext_lazy("Recipients"), required=False,
|
||||
help_text=ugettext_lazy("Mailbox(es) this alias will point to")
|
||||
)
|
||||
|
||||
class Meta:
|
||||
@@ -209,10 +209,10 @@ class ImportDataForm(forms.Form):
|
||||
return str(self.cleaned_data["sepcar"])
|
||||
|
||||
class AccountFormGeneral(forms.ModelForm):
|
||||
username = forms.CharField(max_length=254)
|
||||
username = forms.CharField(label=ugettext_lazy("Username"), max_length=254)
|
||||
role = forms.ChoiceField(
|
||||
choices=[('', ugettext_noop("Choose"))],
|
||||
help_text=ugettext_noop("What level of permission this user will have")
|
||||
choices=[('', ugettext_lazy("Choose"))],
|
||||
help_text=ugettext_lazy("What level of permission this user will have")
|
||||
)
|
||||
|
||||
class Meta:
|
||||
@@ -229,7 +229,7 @@ class AccountFormGeneral(forms.ModelForm):
|
||||
return
|
||||
|
||||
self.fields["role"].choices = \
|
||||
[('', ugettext_noop("Choose"))] + get_account_roles(user)
|
||||
[('', ugettext_lazy("Choose"))] + get_account_roles(user)
|
||||
if kwargs.has_key("instance"):
|
||||
u = kwargs["instance"]
|
||||
if u.is_superuser:
|
||||
@@ -263,9 +263,9 @@ class AccountFormGeneral(forms.ModelForm):
|
||||
class AccountFormGeneralPwd(AccountFormGeneral):
|
||||
password1 = forms.CharField(label=_("Password"), widget=forms.PasswordInput)
|
||||
password2 = forms.CharField(
|
||||
label=ugettext_noop("Confirmation"),
|
||||
label=ugettext_lazy("Confirmation"),
|
||||
widget=forms.PasswordInput,
|
||||
help_text=ugettext_noop("Enter the same password as above, for verification.")
|
||||
help_text=ugettext_lazy("Enter the same password as above, for verification.")
|
||||
)
|
||||
|
||||
class Meta:
|
||||
@@ -295,9 +295,9 @@ class AccountFormMail(forms.Form, DynamicForm):
|
||||
email = forms.EmailField(label=_("E-mail"), required=False)
|
||||
quota = forms.IntegerField(label=_("Quota"), required=False)
|
||||
aliases = forms.EmailField(
|
||||
label=ugettext_noop("Alias(es)"),
|
||||
label=ugettext_lazy("Alias(es)"),
|
||||
required=False,
|
||||
help_text=ugettext_noop("Alias(es) of this mailbox")
|
||||
help_text=ugettext_lazy("Alias(es) of this mailbox")
|
||||
)
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
@@ -385,9 +385,9 @@ class AccountFormMail(forms.Form, DynamicForm):
|
||||
|
||||
class AccountPermissionsForm(forms.Form, DynamicForm):
|
||||
domains = DomainNameField(
|
||||
label=ugettext_noop("Domain(s)"),
|
||||
label=ugettext_lazy("Domain(s)"),
|
||||
required=False,
|
||||
help_text=ugettext_noop("Domain(s) that user administrates")
|
||||
help_text=ugettext_lazy("Domain(s) that user administrates")
|
||||
)
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
|
||||
+22
-22
@@ -3,7 +3,7 @@ from django.db import models, IntegrityError
|
||||
from django.contrib.contenttypes.models import ContentType
|
||||
from django.contrib.contenttypes import generic
|
||||
from django.contrib.auth.models import User as DUser, UserManager, Group
|
||||
from django.utils.translation import ugettext as _, ugettext_noop
|
||||
from django.utils.translation import ugettext as _, ugettext_lazy
|
||||
from django.utils.crypto import constant_time_compare
|
||||
from django.conf import settings
|
||||
from modoboa.lib import parameters, events
|
||||
@@ -375,11 +375,11 @@ class DatesAware(models.Model):
|
||||
return self.dates.last_modification
|
||||
|
||||
class Domain(DatesAware):
|
||||
name = models.CharField(ugettext_noop('name'), max_length=100, unique=True,
|
||||
help_text=ugettext_noop("The domain name"))
|
||||
quota = models.IntegerField(help_text=ugettext_noop("Default quota in MB applied to mailboxes"))
|
||||
enabled = models.BooleanField(ugettext_noop('enabled'),
|
||||
help_text=ugettext_noop("Check to activate this domain"))
|
||||
name = models.CharField(ugettext_lazy('name'), max_length=100, unique=True,
|
||||
help_text=ugettext_lazy("The domain name"))
|
||||
quota = models.IntegerField(help_text=ugettext_lazy("Default quota in MB applied to mailboxes"))
|
||||
enabled = models.BooleanField(ugettext_lazy('enabled'),
|
||||
help_text=ugettext_lazy("Check to activate this domain"))
|
||||
owners = generic.GenericRelation(ObjectAccess)
|
||||
|
||||
class Meta:
|
||||
@@ -452,13 +452,13 @@ class Domain(DatesAware):
|
||||
self.save()
|
||||
|
||||
class DomainAlias(DatesAware):
|
||||
name = models.CharField(ugettext_noop("name"), max_length=100, unique=True,
|
||||
help_text=ugettext_noop("The alias name"))
|
||||
target = models.ForeignKey(Domain, verbose_name=ugettext_noop('target'),
|
||||
help_text=ugettext_noop("The domain this alias points to"))
|
||||
name = models.CharField(ugettext_lazy("name"), max_length=100, unique=True,
|
||||
help_text=ugettext_lazy("The alias name"))
|
||||
target = models.ForeignKey(Domain, verbose_name=ugettext_lazy('target'),
|
||||
help_text=ugettext_lazy("The domain this alias points to"))
|
||||
enabled = models.BooleanField(
|
||||
ugettext_noop('enabled'),
|
||||
help_text=ugettext_noop("Check to activate this alias")
|
||||
ugettext_lazy('enabled'),
|
||||
help_text=ugettext_lazy("Check to activate this alias")
|
||||
)
|
||||
|
||||
class Meta:
|
||||
@@ -471,8 +471,8 @@ class DomainAlias(DatesAware):
|
||||
|
||||
class Mailbox(DatesAware):
|
||||
address = models.CharField(
|
||||
ugettext_noop('address'), max_length=100,
|
||||
help_text=ugettext_noop("Mailbox address (without the @domain.tld part)")
|
||||
ugettext_lazy('address'), max_length=100,
|
||||
help_text=ugettext_lazy("Mailbox address (without the @domain.tld part)")
|
||||
)
|
||||
quota = models.IntegerField()
|
||||
uid = models.IntegerField()
|
||||
@@ -684,17 +684,17 @@ class Mailbox(DatesAware):
|
||||
|
||||
class Alias(DatesAware):
|
||||
address = models.CharField(
|
||||
ugettext_noop('address'), max_length=254,
|
||||
help_text=ugettext_noop("The alias address (without the domain part). For a 'catch-all' address, just enter an * character.")
|
||||
ugettext_lazy('address'), max_length=254,
|
||||
help_text=ugettext_lazy("The alias address (without the domain part). For a 'catch-all' address, just enter an * character.")
|
||||
)
|
||||
domain = models.ForeignKey(Domain)
|
||||
mboxes = models.ManyToManyField(
|
||||
Mailbox, verbose_name=ugettext_noop('mailboxes'),
|
||||
help_text=ugettext_noop("The mailboxes this alias points to")
|
||||
Mailbox, verbose_name=ugettext_lazy('mailboxes'),
|
||||
help_text=ugettext_lazy("The mailboxes this alias points to")
|
||||
)
|
||||
extmboxes = models.TextField(blank=True)
|
||||
enabled = models.BooleanField(ugettext_noop('enabled'),
|
||||
help_text=ugettext_noop("Check to activate this alias"))
|
||||
enabled = models.BooleanField(ugettext_lazy('enabled'),
|
||||
help_text=ugettext_lazy("Check to activate this alias"))
|
||||
|
||||
class Meta:
|
||||
permissions = (
|
||||
@@ -779,8 +779,8 @@ class Alias(DatesAware):
|
||||
class Extension(models.Model):
|
||||
name = models.CharField(max_length=150)
|
||||
enabled = models.BooleanField(
|
||||
ugettext_noop('enabled'),
|
||||
help_text=ugettext_noop("Check to enable this extension")
|
||||
ugettext_lazy('enabled'),
|
||||
help_text=ugettext_lazy("Check to enable this extension")
|
||||
)
|
||||
|
||||
def init(self):
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
from django import template
|
||||
from django.template.loader import render_to_string
|
||||
from django.utils.translation import ugettext as _, ugettext_noop
|
||||
from django.utils.translation import ugettext as _, ugettext_lazy
|
||||
from django.core.urlresolvers import reverse
|
||||
from modoboa import admin
|
||||
from modoboa.lib import events
|
||||
@@ -9,7 +9,7 @@ from modoboa.lib.webutils import static_url, render_actions
|
||||
register = template.Library()
|
||||
|
||||
genders = {
|
||||
"Enabled" : (ugettext_noop("enabled_m"), ugettext_noop("enabled_f"))
|
||||
"Enabled" : (ugettext_lazy("enabled_m"), ugettext_lazy("enabled_f"))
|
||||
}
|
||||
|
||||
@register.simple_tag
|
||||
@@ -166,7 +166,7 @@ def param(app, definition):
|
||||
result = """<div class='control-group'>
|
||||
<label class="param-label" for="%s">%s</label>
|
||||
<div class="param-controls">""" \
|
||||
% (name, definition.has_key("label") and _(definition["label"])
|
||||
% (name, definition.has_key("label") and _(definition["label"])
|
||||
or definition["name"])
|
||||
if definition["type"] in ["string", "int"]:
|
||||
result += """
|
||||
@@ -197,7 +197,7 @@ def param(app, definition):
|
||||
if definition.has_key("help"):
|
||||
result += """
|
||||
<p class="help-block">%s</p>
|
||||
""" % definition["help"]
|
||||
""" % _(definition["help"])
|
||||
result += """
|
||||
</div>
|
||||
</div>
|
||||
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
# coding: utf-8
|
||||
from modoboa.lib import parameters
|
||||
from django.utils.translation import ugettext as _
|
||||
from django.utils.translation import ugettext_lazy
|
||||
|
||||
parameters.register_admin("SECRET_KEY", type="string", deflt="abcdefghijklmnop",
|
||||
help=_("Key used to encrypt/decrypt passwords"))
|
||||
help=ugettext_lazy("Key used to encrypt/decrypt passwords"))
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
# coding: utf-8
|
||||
from django.conf import settings
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.utils.translation import ugettext_noop as _
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from django.template.loader import render_to_string
|
||||
from modoboa.lib import events
|
||||
from modoboa.lib.webutils import static_url
|
||||
|
||||
@@ -2,9 +2,8 @@
|
||||
"""
|
||||
Amavis quarantine manager (SQL based)
|
||||
|
||||
|
||||
"""
|
||||
from django.utils.translation import ugettext_noop as _, ugettext
|
||||
from django.utils.translation import ugettext as _, ugettext_lazy
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.template import Template, Context
|
||||
from modoboa.lib import events, parameters
|
||||
@@ -15,7 +14,7 @@ def infos():
|
||||
return {
|
||||
"name" : "Amavis quarantine",
|
||||
"version" : "1.0",
|
||||
"description" : ugettext("Simple amavis quarantine management tool"),
|
||||
"description" : _("Simple amavis quarantine management tool"),
|
||||
"url" : "quarantine"
|
||||
}
|
||||
|
||||
@@ -53,28 +52,28 @@ def load():
|
||||
parameters.register_admin("AM_PDP_MODE", type="list",
|
||||
deflt="unix",
|
||||
values=[("inet", "inet"), ("unix", "unix")],
|
||||
help=_("Mode used to access the PDP server"))
|
||||
help=ugettext_lazy("Mode used to access the PDP server"))
|
||||
parameters.register_admin("AM_PDP_HOST", type="string",
|
||||
deflt="localhost",
|
||||
help=_("PDP server address (if inet mode)"))
|
||||
help=ugettext_lazy("PDP server address (if inet mode)"))
|
||||
parameters.register_admin("AM_PDP_PORT", type="int",
|
||||
deflt=9998,
|
||||
help=_("PDP server port (if inet mode)"))
|
||||
help=ugettext_lazy("PDP server port (if inet mode)"))
|
||||
parameters.register_admin("AM_PDP_SOCKET", type="string",
|
||||
deflt=_("/var/amavis/amavisd.sock"),
|
||||
help=_("Path to the PDP server socket (if unix mode)"))
|
||||
deflt="/var/amavis/amavisd.sock",
|
||||
help=ugettext_lazy("Path to the PDP server socket (if unix mode)"))
|
||||
parameters.register_admin("CHECK_REQUESTS_INTERVAL", type="int",
|
||||
deflt=30,
|
||||
help=_("Interval between two release requests checks"))
|
||||
help=ugettext_lazy("Interval between two release requests checks"))
|
||||
parameters.register_admin("USER_CAN_RELEASE", type="list_yesno", deflt="no",
|
||||
help=_("Allow users to directly release their messages"))
|
||||
help=ugettext_lazy("Allow users to directly release their messages"))
|
||||
parameters.register_admin("SELF_SERVICE", type="list_yesno", deflt="no",
|
||||
help=_("Activate the 'self-service' mode"))
|
||||
help=ugettext_lazy("Activate the 'self-service' mode"))
|
||||
|
||||
parameters.register_user(
|
||||
"MESSAGES_PER_PAGE", type="int", deflt=40,
|
||||
label="Number of displayed emails per page",
|
||||
help=_("Sets the maximum number of messages displayed in a page")
|
||||
help=ugettext_lazy("Sets the maximum number of messages displayed in a page")
|
||||
)
|
||||
|
||||
def destroy():
|
||||
@@ -88,9 +87,8 @@ def menu(target, user):
|
||||
if target == "top_menu":
|
||||
return [
|
||||
{"name" : "quarantine",
|
||||
"label" : ugettext("Quarantine"),
|
||||
"url" : reverse('modoboa.extensions.amavis_quarantine.views.index'),
|
||||
"img" : static_url("pics/quarantine.png")}
|
||||
"label" : _("Quarantine"),
|
||||
"url" : reverse('modoboa.extensions.amavis_quarantine.views.index')}
|
||||
]
|
||||
return []
|
||||
|
||||
@@ -133,7 +131,7 @@ $(document).ready(function() {
|
||||
success_cb: function(data) {
|
||||
var $link = $("#nbrequests");
|
||||
if (data.requests > 0) {
|
||||
$link.html(data.requests + " " + gettext("pending requests"));
|
||||
$link.html(data.requests + " " + "{{ text }}");
|
||||
$link.parent().removeClass('hidden');
|
||||
} else {
|
||||
$link.parent().addClass('hidden');
|
||||
@@ -144,7 +142,7 @@ $(document).ready(function() {
|
||||
</script>""")
|
||||
url = reverse("modoboa.extensions.amavis_quarantine.views.nbrequests")
|
||||
interval = int(parameters.get_admin("CHECK_REQUESTS_INTERVAL")) * 1000
|
||||
return [tpl.render(Context(dict(url=url, interval=interval)))]
|
||||
return [tpl.render(Context(dict(url=url, interval=interval, text=_("pending requests"))))]
|
||||
|
||||
@events.observe("TopNotifications")
|
||||
def display_requests(user):
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# coding: utf-8
|
||||
|
||||
from datetime import datetime
|
||||
from django.utils.translation import ugettext as _, ugettext_noop
|
||||
from django.utils.translation import ugettext as _, ugettext_lazy
|
||||
from django.db.models import Q
|
||||
from modoboa.lib import tables
|
||||
from modoboa.lib.webutils import static_url
|
||||
@@ -20,10 +20,10 @@ class Qtable(tables.Table):
|
||||
sortable=False
|
||||
)
|
||||
rstatus = tables.ImgColumn("rstatus", width='25px')
|
||||
from_ = tables.Column("from", label=ugettext_noop("From"), limit=30)
|
||||
subject = tables.Column("subject", label=ugettext_noop("Subject"), limit=40)
|
||||
time = tables.Column("date", label=ugettext_noop("Date"))
|
||||
to = tables.Column("to", label=ugettext_noop("To"), sortable=False)
|
||||
from_ = tables.Column("from", label=ugettext_lazy("From"), limit=30)
|
||||
subject = tables.Column("subject", label=ugettext_lazy("Subject"), limit=40)
|
||||
time = tables.Column("date", label=ugettext_lazy("Date"))
|
||||
to = tables.Column("to", label=ugettext_lazy("To"), sortable=False)
|
||||
|
||||
cols_order = []
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ The *limits* extension
|
||||
from django.contrib.auth.models import Permission, Group
|
||||
from django.db import IntegrityError
|
||||
from django.contrib.contenttypes.models import ContentType
|
||||
from django.utils.translation import ugettext_noop as _, ugettext
|
||||
from django.utils.translation import ugettext as _
|
||||
from django.core.urlresolvers import reverse
|
||||
from modoboa.lib import events
|
||||
from modoboa.lib.webutils import static_url
|
||||
@@ -52,7 +52,7 @@ def infos():
|
||||
return {
|
||||
"name" : "Limits",
|
||||
"version" : "1.0",
|
||||
"description" : ugettext("Limits for objects creation"),
|
||||
"description" : _("Per administrator resources to limit the number of objects they can create"),
|
||||
"url" : baseurl
|
||||
}
|
||||
|
||||
|
||||
+13
-12
@@ -1,24 +1,24 @@
|
||||
# coding: utf-8
|
||||
|
||||
from django import forms
|
||||
from django.utils.translation import ugettext_noop as _
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from django.contrib.auth.models import User, Group
|
||||
from models import *
|
||||
from lib import *
|
||||
|
||||
class ResourcePoolForm(forms.Form):
|
||||
domain_admins_limit = forms.IntegerField(
|
||||
ugettext_noop("Max domain admins"),
|
||||
help_text=ugettext_noop("Maximum number of domain administrators that can be created by this user")
|
||||
label=ugettext_lazy("Domain admins"),
|
||||
help_text=ugettext_lazy("Maximum number of domain administrators this user can create")
|
||||
)
|
||||
domains_limit = forms.IntegerField(ugettext_noop("Max domains"),
|
||||
help_text=ugettext_noop("Maximum number of domains that can be created by this user"))
|
||||
domain_aliases_limit = forms.IntegerField(ugettext_noop("Max domain aliases"),
|
||||
help_text=ugettext_noop("Maximum number of domain aliases that can be created by this user"))
|
||||
mailboxes_limit = forms.IntegerField(ugettext_noop("Max mailboxes"),
|
||||
help_text=ugettext_noop("Maximum number of mailboxes that can be created by this user"))
|
||||
mailbox_aliases_limit = forms.IntegerField(ugettext_noop("Max mailbox aliases"),
|
||||
help_text=ugettext_noop("Maximum number of mailbox aliases that can be created by this user"))
|
||||
domains_limit = forms.IntegerField(label=ugettext_lazy("Domains"),
|
||||
help_text=ugettext_lazy("Maximum number of domains this user can create"))
|
||||
domain_aliases_limit = forms.IntegerField(label=ugettext_lazy("Domain aliases"),
|
||||
help_text=ugettext_lazy("Maximum number of domain aliases this user can create"))
|
||||
mailboxes_limit = forms.IntegerField(label=ugettext_lazy("Mailboxes"),
|
||||
help_text=ugettext_lazy("Maximum number of mailboxes this user can create"))
|
||||
mailbox_aliases_limit = forms.IntegerField(label=ugettext_lazy("Mailbox aliases"),
|
||||
help_text=ugettext_lazy("Maximum number of mailbox aliases this user can create"))
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
if kwargs.has_key("instance"):
|
||||
@@ -29,6 +29,7 @@ class ResourcePoolForm(forms.Form):
|
||||
if self.account.group != "Resellers":
|
||||
del self.fields["domain_admins_limit"]
|
||||
del self.fields["domains_limit"]
|
||||
del self.fields["domain_aliases_limit"]
|
||||
self.load_from_user(self.account)
|
||||
|
||||
def check_limit_value(self, lname):
|
||||
@@ -57,7 +58,7 @@ class ResourcePoolForm(forms.Form):
|
||||
def allocate_from_pool(self, limit, pool):
|
||||
ol = pool.get_limit(limit.name)
|
||||
if ol.maxvalue == -2:
|
||||
raise BadLimitValue(_("Your pool is not initialized yet"))
|
||||
raise BadLimitValue(_("Your resources are not initialized yet"))
|
||||
newvalue = self.cleaned_data[limit.name]
|
||||
if newvalue == -1 and ol.maxvalue != -1:
|
||||
raise BadLimitValue(_("You're not allowed to define unlimited values"))
|
||||
|
||||
@@ -20,7 +20,7 @@ class UnsifficientResource(ModoboaException):
|
||||
self.limit = limit
|
||||
|
||||
def __str__(self):
|
||||
return _("Not enough resource into your pool")
|
||||
return _("Not enough resources")
|
||||
|
||||
class BadLimitValue(ModoboaException):
|
||||
pass
|
||||
|
||||
@@ -2,15 +2,15 @@
|
||||
|
||||
from django.db import models
|
||||
from django.contrib.contenttypes import generic
|
||||
from django.utils.translation import ugettext as _, ugettext_noop
|
||||
from django.utils.translation import ugettext as _, ugettext_lazy
|
||||
from modoboa.admin.models import User
|
||||
|
||||
limits_tpl = [
|
||||
("domain_admins_limit", ugettext_noop("Domain admins")),
|
||||
("domains_limit", ugettext_noop("Domains")),
|
||||
("domain_aliases_limit", ugettext_noop("Domain aliases")),
|
||||
("mailboxes_limit", ugettext_noop("Mailboxes")),
|
||||
("mailbox_aliases_limit", ugettext_noop("Mailbox aliases"))
|
||||
("domain_admins_limit", ugettext_lazy("Domain admins")),
|
||||
("domains_limit", ugettext_lazy("Domains")),
|
||||
("domain_aliases_limit", ugettext_lazy("Domain aliases")),
|
||||
("mailboxes_limit", ugettext_lazy("Mailboxes")),
|
||||
("mailbox_aliases_limit", ugettext_lazy("Mailbox aliases"))
|
||||
]
|
||||
|
||||
class LimitsPool(models.Model):
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{% load i18n libextras %}
|
||||
<div class="well">
|
||||
<h6>{% trans "Resource usage" %}</h6>{% for l in limits %}
|
||||
<h6>{% trans "Resources usage" %}</h6>{% for l in limits %}
|
||||
<div class="resource">
|
||||
{{ l.label }} ({{ l }})
|
||||
<div rel="tooltip" title="{{ l.curvalue }}/{{ l.maxvalue }}" class="progress {% progress_color l.usage %}"><div class="bar" style="width: {{ l }}"></div></div>
|
||||
|
||||
@@ -8,7 +8,7 @@ functionality into Postfix.
|
||||
"""
|
||||
from django.conf.urls.defaults import include
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.utils.translation import ugettext_noop as _, ugettext
|
||||
from django.utils.translation import ugettext as _, ugettext_lazy
|
||||
from modoboa.lib import events, parameters
|
||||
from modoboa.lib.webutils import static_url
|
||||
from models import *
|
||||
@@ -17,7 +17,7 @@ def infos():
|
||||
return {
|
||||
"name" : "Postfix autoreply",
|
||||
"version" : "1.0",
|
||||
"description" : ugettext("Auto-reply (vacation) functionality using Postfix"),
|
||||
"description" : _("Auto-reply (vacation) functionality using Postfix"),
|
||||
"url" : "postfix_autoreply"
|
||||
}
|
||||
|
||||
@@ -42,7 +42,7 @@ def load():
|
||||
parameters.register_admin(
|
||||
"AUTOREPLIES_TIMEOUT",
|
||||
type="int", deflt=86400,
|
||||
help=_("Timeout in seconds between two auto-replies to the same recipient")
|
||||
help=ugettext_lazy("Timeout in seconds between two auto-replies to the same recipient")
|
||||
)
|
||||
|
||||
def destroy():
|
||||
@@ -65,7 +65,7 @@ def menu(target, user):
|
||||
return [
|
||||
{"name" : "autoreply",
|
||||
"url" : reverse(views.autoreply),
|
||||
"label" : ugettext("Auto-reply message"),
|
||||
"label" : ugettext_lazy("Auto-reply message"),
|
||||
"modal": True,
|
||||
"modalcb" : "arform_cb"}
|
||||
]
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# coding: utf-8
|
||||
from django.utils.translation import ugettext_noop as _, ugettext
|
||||
from django.utils.translation import ugettext as _, ugettext_lazy
|
||||
from django.core.urlresolvers import reverse
|
||||
from modoboa.lib import events, parameters
|
||||
from modoboa.lib.webutils import static_url
|
||||
@@ -12,24 +12,24 @@ def load():
|
||||
|
||||
parameters.register_admin("SERVER", type="string",
|
||||
deflt="127.0.0.1",
|
||||
help=_("Address of your MANAGESIEVE server"))
|
||||
help=ugettext_lazy("Address of your MANAGESIEVE server"))
|
||||
parameters.register_admin("PORT", type="int", deflt="2000",
|
||||
help=_("Listening port of your MANAGESIEVE server"))
|
||||
help=ugettext_lazy("Listening port of your MANAGESIEVE server"))
|
||||
parameters.register_admin("STARTTLS", type="list_yesno", deflt="no",
|
||||
help=_("Use the STARTTLS extension"))
|
||||
help=ugettext_lazy("Use the STARTTLS extension"))
|
||||
|
||||
values = [('AUTO', 'auto')]
|
||||
for m in SUPPORTED_AUTH_MECHS:
|
||||
values += [(m, m.lower())]
|
||||
parameters.register_admin("AUTHENTICATION_MECH", type="list", deflt="auto",
|
||||
values=values,
|
||||
help=_("Prefered authentication mechanism"))
|
||||
help=ugettext_lazy("Prefered authentication mechanism"))
|
||||
|
||||
# User parameters
|
||||
parameters.register_user("EDITOR_MODE", type="list", deflt="raw",
|
||||
label=_("Editor mode"),
|
||||
label=ugettext_lazy("Editor mode"),
|
||||
values=[("raw", "raw"), ("gui", "simplified")],
|
||||
help=_("Select the mode you want the editor to work in"))
|
||||
help=ugettext_lazy("Select the mode you want the editor to work in"))
|
||||
|
||||
def destroy():
|
||||
events.unregister("UserMenuDisplay", menu)
|
||||
@@ -39,7 +39,7 @@ def infos():
|
||||
return {
|
||||
"name" : "Sieve filters",
|
||||
"version" : "1.0",
|
||||
"description" : ugettext("Plugin to easily create server-side filters"),
|
||||
"description" : _("Plugin to easily create server-side filters"),
|
||||
"url" : "sfilters"
|
||||
}
|
||||
|
||||
@@ -53,7 +53,7 @@ def menu(target, user):
|
||||
return []
|
||||
return [
|
||||
{"name" : "sievefilters",
|
||||
"label" : ugettext("Message filters"),
|
||||
"label" : _("Message filters"),
|
||||
"url" : reverse(views.index),
|
||||
"img" : "icon-check"}
|
||||
]
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
from django import forms
|
||||
from django.http import QueryDict
|
||||
from django.utils.translation import ugettext as _, ugettext_noop
|
||||
from django.utils.translation import ugettext as _, ugettext_lazy
|
||||
from django.forms.widgets import RadioFieldRenderer, RadioSelect, RadioInput
|
||||
from django.utils.safestring import mark_safe
|
||||
from django.utils.html import conditional_escape
|
||||
@@ -11,7 +11,7 @@ class FiltersSetForm(forms.Form):
|
||||
name = forms.CharField()
|
||||
active = forms.BooleanField(label=gender("Active", "m"), required=False,
|
||||
initial=False,
|
||||
help_text=ugettext_noop("Check to activate this filters set"))
|
||||
help_text=ugettext_lazy("Check to activate this filters set"))
|
||||
|
||||
class CustomRadioInput(RadioInput):
|
||||
def __unicode__(self):
|
||||
|
||||
@@ -8,7 +8,7 @@ sent, received, bounced, rejected
|
||||
|
||||
"""
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.utils.translation import ugettext_noop as _, ugettext
|
||||
from django.utils.translation import ugettext as _, ugettext_lazy
|
||||
from django.conf.urls.defaults import *
|
||||
from modoboa.lib import events, parameters
|
||||
from modoboa.lib.webutils import static_url
|
||||
@@ -17,23 +17,23 @@ def infos():
|
||||
return {
|
||||
"name" : "Statistics",
|
||||
"version" : "1.0",
|
||||
"description" : ugettext("Graphical statistics about emails traffic using RRDtool"),
|
||||
"description" : _("Graphical statistics about emails traffic using RRDtool"),
|
||||
"url" : "stats"
|
||||
}
|
||||
|
||||
def load():
|
||||
parameters.register_admin("LOGFILE", type="string",
|
||||
deflt="/var/log/mail.log",
|
||||
help=_("Path to log file used to collect statistics"))
|
||||
help=ugettext_lazy("Path to log file used to collect statistics"))
|
||||
parameters.register_admin("RRD_ROOTDIR", type="string",
|
||||
deflt="/tmp/modoboa",
|
||||
help=_("Path to directory where RRD files are stored"))
|
||||
help=ugettext_lazy("Path to directory where RRD files are stored"))
|
||||
parameters.register_admin("IMG_ROOTDIR", type="string",
|
||||
deflt="/tmp/modoboa",
|
||||
help=_("Path to directory where PNG files are stored"))
|
||||
help=ugettext_lazy("Path to directory where PNG files are stored"))
|
||||
parameters.register_admin("GRAPHS_LOCATION", type="string",
|
||||
deflt="graphs",
|
||||
help=_("Graphics location (to build URLs)"))
|
||||
help=ugettext_lazy("Graphics location (to build URLs)"))
|
||||
|
||||
def destroy():
|
||||
events.unregister("AdminMenuDisplay", menu)
|
||||
@@ -44,6 +44,6 @@ def menu(target, user):
|
||||
return []
|
||||
return [
|
||||
{"name" : "stats",
|
||||
"label" : ugettext("Statistics"),
|
||||
"label" : _("Statistics"),
|
||||
"url" : reverse('fullindex')}
|
||||
]
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# coding: utf-8
|
||||
from django.utils.translation import ugettext as _, ugettext_noop
|
||||
from django.utils.translation import ugettext as _, ugettext_lazy
|
||||
from modoboa.lib.webutils import _render, _render_to_string, ajax_simple_response
|
||||
from modoboa.admin.models import Domain, Mailbox
|
||||
from django.contrib.auth.decorators \
|
||||
@@ -8,14 +8,14 @@ from modoboa.extensions.stats.grapher import *
|
||||
from modoboa.lib.exceptions import *
|
||||
|
||||
graph_types = ['AVERAGE', 'MAX']
|
||||
graph_list = [{"name" : "traffic", "label" : ugettext_noop("Average normal traffic")},
|
||||
{"name" : "badtraffic", "label" : ugettext_noop("Average bad traffic")},
|
||||
{"name" : "size", "label" : ugettext_noop("Average normal traffic size")}]
|
||||
periods = [{"name" : "day", "label" : ugettext_noop("Day")},
|
||||
{"name" : "week", "label" : ugettext_noop("Week")},
|
||||
{"name" : "month", "label" : ugettext_noop("Month")},
|
||||
{"name" : "year", "label" : ugettext_noop("Year")},
|
||||
{"name" : "custom", "label" : ugettext_noop("Custom")}]
|
||||
graph_list = [{"name" : "traffic", "label" : ugettext_lazy("Average normal traffic")},
|
||||
{"name" : "badtraffic", "label" : ugettext_lazy("Average bad traffic")},
|
||||
{"name" : "size", "label" : ugettext_lazy("Average normal traffic size")}]
|
||||
periods = [{"name" : "day", "label" : ugettext_lazy("Day")},
|
||||
{"name" : "week", "label" : ugettext_lazy("Week")},
|
||||
{"name" : "month", "label" : ugettext_lazy("Month")},
|
||||
{"name" : "year", "label" : ugettext_lazy("Year")},
|
||||
{"name" : "custom", "label" : ugettext_lazy("Custom")}]
|
||||
|
||||
@login_required
|
||||
@permission_required("admin.view_mailboxes")
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# coding: utf-8
|
||||
from django.utils.translation import ugettext_noop as _, ugettext
|
||||
from django.utils.translation import ugettext as _, ugettext_lazy
|
||||
from django.core.urlresolvers import reverse
|
||||
from modoboa.lib import events, parameters
|
||||
from modoboa.lib.webutils import static_url
|
||||
@@ -9,58 +9,58 @@ def load():
|
||||
|
||||
parameters.register_admin("IMAP_SERVER", type="string",
|
||||
deflt="127.0.0.1",
|
||||
help=_("Address of your IMAP server"))
|
||||
help=ugettext_lazy("Address of your IMAP server"))
|
||||
parameters.register_admin("IMAP_SECURED", type="list_yesno",
|
||||
deflt="no",
|
||||
help=_("Use a secured connection to access IMAP server"))
|
||||
help=ugettext_lazy("Use a secured connection to access IMAP server"))
|
||||
parameters.register_admin("IMAP_PORT", type="int", deflt="143",
|
||||
help=_("Listening port of your IMAP server"))
|
||||
help=ugettext_lazy("Listening port of your IMAP server"))
|
||||
parameters.register_admin("SMTP_SERVER", type="string",
|
||||
deflt="127.0.0.1",
|
||||
help=_("Address of your SMTP server"))
|
||||
help=ugettext_lazy("Address of your SMTP server"))
|
||||
parameters.register_admin("SMTP_SECURED_MODE", type="list",
|
||||
values=[("none", _("None")),
|
||||
values=[("none", ugettext_lazy("None")),
|
||||
("starttls", "STARTTLS"),
|
||||
("ssl", "SSL/TLS")],
|
||||
deflt="none",
|
||||
help=_("Use a secured connection to access SMTP server"))
|
||||
help=ugettext_lazy("Use a secured connection to access SMTP server"))
|
||||
parameters.register_admin("SMTP_PORT", type="int", deflt="25",
|
||||
help=_("Listening port of your SMTP server"))
|
||||
help=ugettext_lazy("Listening port of your SMTP server"))
|
||||
parameters.register_admin("SMTP_AUTHENTICATION", type="list_yesno",
|
||||
deflt="no",
|
||||
help=_("Server needs authentication"))
|
||||
help=ugettext_lazy("Server needs authentication"))
|
||||
parameters.register_admin("MAX_ATTACHMENT_SIZE", type="int", deflt=2048,
|
||||
help=_("Maximum attachment size in bytes (or KB, MB, GB if specified)"))
|
||||
help=ugettext_lazy("Maximum attachment size in bytes (or KB, MB, GB if specified)"))
|
||||
|
||||
parameters.register_user("MESSAGES_PER_PAGE", type="int", deflt=40,
|
||||
label=_("Number of displayed emails per page"),
|
||||
help=_("Sets the maximum number of messages displayed in a page"))
|
||||
label=ugettext_lazy("Number of displayed emails per page"),
|
||||
help=ugettext_lazy("Sets the maximum number of messages displayed in a page"))
|
||||
parameters.register_user("REFRESH_INTERVAL", type="int", deflt=300,
|
||||
label=_("Listing refresh rate"),
|
||||
help=_("Automatic folder refresh rate (in seconds)"))
|
||||
label=ugettext_lazy("Listing refresh rate"),
|
||||
help=ugettext_lazy("Automatic folder refresh rate (in seconds)"))
|
||||
parameters.register_user("TRASH_FOLDER", type="string", deflt="Trash",
|
||||
label=_("Trash folder"),
|
||||
help=_("Folder where deleted messages go"))
|
||||
label=ugettext_lazy("Trash folder"),
|
||||
help=ugettext_lazy("Folder where deleted messages go"))
|
||||
parameters.register_user("SENT_FOLDER", type="string", deflt="Sent",
|
||||
label=_("Sent folder"),
|
||||
help=_("Folder where copies of sent messages go"))
|
||||
label=ugettext_lazy("Sent folder"),
|
||||
help=ugettext_lazy("Folder where copies of sent messages go"))
|
||||
parameters.register_user("DRAFTS_FOLDER", type="string", deflt="Drafts",
|
||||
label=_("Drafts folder"),
|
||||
help=_("Folder where drafts go"))
|
||||
label=ugettext_lazy("Drafts folder"),
|
||||
help=ugettext_lazy("Folder where drafts go"))
|
||||
parameters.register_user("SIGNATURE", type="text", deflt="",
|
||||
label=_("Signature text"),
|
||||
help=_("User defined email signature"))
|
||||
label=ugettext_lazy("Signature text"),
|
||||
help=ugettext_lazy("User defined email signature"))
|
||||
parameters.register_user("EDITOR", type="list", deflt="plain",
|
||||
label=_("Default editor"),
|
||||
label=ugettext_lazy("Default editor"),
|
||||
values=[("html", "html"), ("plain", "text")],
|
||||
help=_("The default editor to use when composing a message"))
|
||||
help=ugettext_lazy("The default editor to use when composing a message"))
|
||||
parameters.register_user("DISPLAYMODE", type="list", deflt="plain",
|
||||
label=_("Default message display mode"),
|
||||
label=ugettext_lazy("Default message display mode"),
|
||||
values=[("html", "html"), ("plain", "text")],
|
||||
help=_("The default mode used when displaying a message"))
|
||||
help=ugettext_lazy("The default mode used when displaying a message"))
|
||||
parameters.register_user("ENABLE_LINKS", type="list_yesno", deflt="no",
|
||||
label=_("Enable HTML links display"),
|
||||
help=_("Enable/Disable HTML links display"))
|
||||
label=ugettext_lazy("Enable HTML links display"),
|
||||
help=ugettext_lazy("Enable/Disable HTML links display"))
|
||||
|
||||
def destroy():
|
||||
events.unregister("UserMenuDisplay", menu)
|
||||
@@ -70,7 +70,7 @@ def infos():
|
||||
return {
|
||||
"name" : "Webmail",
|
||||
"version" : "1.0",
|
||||
"description" : ugettext("Simple IMAP webmail"),
|
||||
"description" : _("Simple IMAP webmail"),
|
||||
"url" : "webmail"
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
from django import forms
|
||||
from django.utils.translation import ugettext_noop as _
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
class ComposeMailForm(forms.Form):
|
||||
from_ = forms.CharField(label=_("From"))
|
||||
|
||||
@@ -8,7 +8,7 @@ import email
|
||||
import lxml
|
||||
from django.core.files.uploadhandler import FileUploadHandler, StopUpload, SkipFile
|
||||
from django.http import HttpResponse
|
||||
from django.utils.translation import ugettext as _, ugettext_noop as __
|
||||
from django.utils.translation import ugettext as _, ugettext_lazy
|
||||
from django.conf import settings
|
||||
from modoboa.lib import u2u_decode, tables, imap_utf7, parameters
|
||||
from modoboa.lib.webutils import static_url, size2integer
|
||||
@@ -30,9 +30,9 @@ class WMtable(tables.Table):
|
||||
)
|
||||
flags = tables.ImgColumn("flags", width="4%")
|
||||
withatts = tables.ImgColumn("withatts", width="2%")
|
||||
subject = tables.Column("subject", label=__("Subject"), width="50%", limit=60)
|
||||
from_ = tables.Column("from", width="20%", label=__("From"), limit=30)
|
||||
date = tables.Column("date", width="10%", label=__("Date"))
|
||||
subject = tables.Column("subject", label=ugettext_lazy("Subject"), width="50%", limit=60)
|
||||
from_ = tables.Column("from", width="20%", label=ugettext_lazy("From"), limit=30)
|
||||
date = tables.Column("date", width="10%", label=ugettext_lazy("Date"))
|
||||
|
||||
cols_order = ["select", "withatts", "flags", "subject", "from_", "date"]
|
||||
|
||||
|
||||
+1
-2
@@ -32,5 +32,4 @@ class CommonExceptionCatcher(object):
|
||||
if not request.is_ajax():
|
||||
return _render_error(request, user_context=dict(error=str(exception)))
|
||||
|
||||
return ajax_response(request, status="ko", respmsg=str(exception),
|
||||
norefresh=True)
|
||||
return ajax_response(request, status="ko", respmsg=unicode(exception), norefresh=True)
|
||||
|
||||
+1336
-925
File diff suppressed because it is too large
Load Diff
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Modoboa-0.8.8\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2012-01-10 11:09+0100\n"
|
||||
"POT-Creation-Date: 2012-04-25 14:47+0200\n"
|
||||
"PO-Revision-Date: 2012-01-10 22:49+0100\n"
|
||||
"Last-Translator: Patrick Ben Koetter <p@state-of-mind.de>\n"
|
||||
"Language-Team: DE <p@state-of-mind.fr>\n"
|
||||
@@ -17,31 +17,41 @@ msgstr ""
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
|
||||
|
||||
#: extensions/amavis_quarantine/static/js/quarantine.js:41
|
||||
msgid "Delete this message?"
|
||||
msgstr "Diese Nachricht löschen?"
|
||||
|
||||
#: extensions/amavis_quarantine/static/js/quarantine.js:49
|
||||
msgid "Release this message?"
|
||||
msgstr "Diese Nachricht freilassen?"
|
||||
|
||||
#: extensions/amavis_quarantine/static/js/quarantine.js:107
|
||||
#: extensions/amavis_quarantine/static/js/quarantine.js:126
|
||||
msgid "Release this selection?"
|
||||
msgstr "Diese Auswahl freilassen?"
|
||||
|
||||
#: extensions/amavis_quarantine/static/js/quarantine.js:114
|
||||
#: extensions/amavis_quarantine/static/js/quarantine.js:130
|
||||
msgid "Delete this selection?"
|
||||
msgstr "Diese Auswahl löschen?"
|
||||
|
||||
#: extensions/amavis_quarantine/static/js/quarantine.js:148
|
||||
#: extensions/amavis_quarantine/static/js/selfservice.js:22
|
||||
msgid "Release this message?"
|
||||
msgstr "Diese Nachricht freilassen?"
|
||||
|
||||
#: extensions/amavis_quarantine/static/js/quarantine.js:152
|
||||
#: extensions/amavis_quarantine/static/js/selfservice.js:26
|
||||
msgid "Delete this message?"
|
||||
msgstr "Diese Nachricht löschen?"
|
||||
|
||||
#: extensions/amavis_quarantine/static/js/quarantine.js:169
|
||||
msgid "View full headers"
|
||||
msgstr ""
|
||||
|
||||
#: extensions/amavis_quarantine/static/js/quarantine.js:174
|
||||
msgid "Hide full headers"
|
||||
msgstr ""
|
||||
|
||||
#: extensions/sievefilters/static/js/lib.js:14
|
||||
msgid "Remove this filter?"
|
||||
msgstr "Diesen Filter entfernen?"
|
||||
|
||||
#: extensions/sievefilters/static/js/lib.js:116
|
||||
#: extensions/sievefilters/static/js/lib.js:117
|
||||
msgid "Save changes?"
|
||||
msgstr "Änderungen speichern?"
|
||||
|
||||
#: extensions/sievefilters/static/js/lib.js:143
|
||||
#: extensions/sievefilters/static/js/lib.js:144
|
||||
msgid "Remove filters set?"
|
||||
msgstr "Diesen Filter entfernen?"
|
||||
|
||||
@@ -50,52 +60,63 @@ msgid "Activate this filters set?"
|
||||
msgstr "Diesen Filter aktivieren?"
|
||||
|
||||
#: extensions/sievefilters/static/js/lib.js:169
|
||||
#: extensions/sievefilters/static/js/lib.js:224
|
||||
msgid "active"
|
||||
msgstr "aktiv"
|
||||
|
||||
#: extensions/webmail/static/js/fdmenu.js:31
|
||||
msgid "Edit folder"
|
||||
msgstr "Ordner bearbeiten"
|
||||
#: extensions/stats/static/js/stats.js:28
|
||||
msgid "Search a domain"
|
||||
msgstr ""
|
||||
|
||||
#: extensions/webmail/static/js/fdmenu.js:63
|
||||
msgid "Folder deleted"
|
||||
msgstr "Ordner gelöscht"
|
||||
#: extensions/webmail/static/js/webmail.js:499
|
||||
#, fuzzy
|
||||
msgid "Remove the selected mailbox?"
|
||||
msgstr "Diese Auswahl entfernen?"
|
||||
|
||||
#: extensions/webmail/static/js/webmail.js:95
|
||||
msgid "Sending..."
|
||||
msgstr "Sende …"
|
||||
#: extensions/webmail/static/js/webmail.js:513
|
||||
msgid "Mailbox removed"
|
||||
msgstr ""
|
||||
|
||||
#: extensions/webmail/static/js/webmail.js:229
|
||||
#: extensions/webmail/static/js/webmail.js:254
|
||||
#: static/js/anchor_nav.js:215
|
||||
msgid "Done"
|
||||
msgstr "Abgeschlossen"
|
||||
#: static/js/admin.js:17
|
||||
msgid "No domain administrator defined"
|
||||
msgstr ""
|
||||
|
||||
#: extensions/webmail/static/js/webmail.js:243
|
||||
msgid "Waiting..."
|
||||
msgstr "Warte..."
|
||||
#: static/js/confirmation.js:45
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#: static/js/anchor_nav.js:10
|
||||
#: static/js/confirmation.js:84 static/js/history.js:229
|
||||
msgid "Internal Error"
|
||||
msgstr ""
|
||||
|
||||
#: static/js/history.js:10
|
||||
msgid "Loading..."
|
||||
msgstr "Lade..."
|
||||
|
||||
#: static/js/common.js:17
|
||||
msgid "Message sent"
|
||||
msgstr "Nachrichten gesendet"
|
||||
|
||||
#: static/js/common.js:188
|
||||
#: static/js/searchbar.js:20
|
||||
msgid "Search..."
|
||||
msgstr "Suchen..."
|
||||
|
||||
#: static/js/domains.js:61
|
||||
msgid "Remove this selection?"
|
||||
msgstr "Diese Auswahl entfernen?"
|
||||
#~ msgid "Edit folder"
|
||||
#~ msgstr "Ordner bearbeiten"
|
||||
|
||||
#: static/js/preferences.js:14
|
||||
msgid "Preferences saved"
|
||||
msgstr "Einstellungen gespeichert"
|
||||
#~ msgid "Folder deleted"
|
||||
#~ msgstr "Ordner gelöscht"
|
||||
|
||||
#: static/js/settings.js:14
|
||||
msgid "Parameters saved"
|
||||
msgstr "Parameter gespeichert"
|
||||
#~ msgid "Sending..."
|
||||
#~ msgstr "Sende …"
|
||||
|
||||
#~ msgid "Done"
|
||||
#~ msgstr "Abgeschlossen"
|
||||
|
||||
#~ msgid "Waiting..."
|
||||
#~ msgstr "Warte..."
|
||||
|
||||
#~ msgid "Message sent"
|
||||
#~ msgstr "Nachrichten gesendet"
|
||||
|
||||
#~ msgid "Preferences saved"
|
||||
#~ msgstr "Einstellungen gespeichert"
|
||||
|
||||
#~ msgid "Parameters saved"
|
||||
#~ msgstr "Parameter gespeichert"
|
||||
|
||||
+874
-762
File diff suppressed because it is too large
Load Diff
@@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2012-01-10 11:09+0100\n"
|
||||
"POT-Creation-Date: 2012-04-25 14:47+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@@ -17,31 +17,41 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: extensions/amavis_quarantine/static/js/quarantine.js:41
|
||||
msgid "Delete this message?"
|
||||
msgstr ""
|
||||
|
||||
#: extensions/amavis_quarantine/static/js/quarantine.js:49
|
||||
msgid "Release this message?"
|
||||
msgstr ""
|
||||
|
||||
#: extensions/amavis_quarantine/static/js/quarantine.js:107
|
||||
#: extensions/amavis_quarantine/static/js/quarantine.js:126
|
||||
msgid "Release this selection?"
|
||||
msgstr ""
|
||||
|
||||
#: extensions/amavis_quarantine/static/js/quarantine.js:114
|
||||
#: extensions/amavis_quarantine/static/js/quarantine.js:130
|
||||
msgid "Delete this selection?"
|
||||
msgstr ""
|
||||
|
||||
#: extensions/amavis_quarantine/static/js/quarantine.js:148
|
||||
#: extensions/amavis_quarantine/static/js/selfservice.js:22
|
||||
msgid "Release this message?"
|
||||
msgstr ""
|
||||
|
||||
#: extensions/amavis_quarantine/static/js/quarantine.js:152
|
||||
#: extensions/amavis_quarantine/static/js/selfservice.js:26
|
||||
msgid "Delete this message?"
|
||||
msgstr ""
|
||||
|
||||
#: extensions/amavis_quarantine/static/js/quarantine.js:169
|
||||
msgid "View full headers"
|
||||
msgstr ""
|
||||
|
||||
#: extensions/amavis_quarantine/static/js/quarantine.js:174
|
||||
msgid "Hide full headers"
|
||||
msgstr ""
|
||||
|
||||
#: extensions/sievefilters/static/js/lib.js:14
|
||||
msgid "Remove this filter?"
|
||||
msgstr ""
|
||||
|
||||
#: extensions/sievefilters/static/js/lib.js:116
|
||||
#: extensions/sievefilters/static/js/lib.js:117
|
||||
msgid "Save changes?"
|
||||
msgstr ""
|
||||
|
||||
#: extensions/sievefilters/static/js/lib.js:143
|
||||
#: extensions/sievefilters/static/js/lib.js:144
|
||||
msgid "Remove filters set?"
|
||||
msgstr ""
|
||||
|
||||
@@ -50,50 +60,38 @@ msgid "Activate this filters set?"
|
||||
msgstr ""
|
||||
|
||||
#: extensions/sievefilters/static/js/lib.js:169
|
||||
#: extensions/sievefilters/static/js/lib.js:224
|
||||
msgid "active"
|
||||
msgstr ""
|
||||
|
||||
#: extensions/webmail/static/js/fdmenu.js:31
|
||||
msgid "Edit folder"
|
||||
#: extensions/stats/static/js/stats.js:28
|
||||
msgid "Search a domain"
|
||||
msgstr ""
|
||||
|
||||
#: extensions/webmail/static/js/fdmenu.js:63
|
||||
msgid "Folder deleted"
|
||||
#: extensions/webmail/static/js/webmail.js:499
|
||||
msgid "Remove the selected mailbox?"
|
||||
msgstr ""
|
||||
|
||||
#: extensions/webmail/static/js/webmail.js:95
|
||||
msgid "Sending..."
|
||||
#: extensions/webmail/static/js/webmail.js:513
|
||||
msgid "Mailbox removed"
|
||||
msgstr ""
|
||||
|
||||
#: extensions/webmail/static/js/webmail.js:229
|
||||
#: extensions/webmail/static/js/webmail.js:254 static/js/anchor_nav.js:215
|
||||
msgid "Done"
|
||||
#: static/js/admin.js:17
|
||||
msgid "No domain administrator defined"
|
||||
msgstr ""
|
||||
|
||||
#: extensions/webmail/static/js/webmail.js:243
|
||||
msgid "Waiting..."
|
||||
#: static/js/confirmation.js:45
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#: static/js/anchor_nav.js:10
|
||||
#: static/js/confirmation.js:84 static/js/history.js:229
|
||||
msgid "Internal Error"
|
||||
msgstr ""
|
||||
|
||||
#: static/js/history.js:10
|
||||
msgid "Loading..."
|
||||
msgstr ""
|
||||
|
||||
#: static/js/common.js:17
|
||||
msgid "Message sent"
|
||||
msgstr ""
|
||||
|
||||
#: static/js/common.js:188
|
||||
#: static/js/searchbar.js:20
|
||||
msgid "Search..."
|
||||
msgstr ""
|
||||
|
||||
#: static/js/domains.js:61
|
||||
msgid "Remove this selection?"
|
||||
msgstr ""
|
||||
|
||||
#: static/js/preferences.js:14
|
||||
msgid "Preferences saved"
|
||||
msgstr ""
|
||||
|
||||
#: static/js/settings.js:14
|
||||
msgid "Parameters saved"
|
||||
msgstr ""
|
||||
|
||||
+1294
-847
File diff suppressed because it is too large
Load Diff
@@ -1,49 +1,59 @@
|
||||
# Modoboa spanish translation.
|
||||
# Copyright (C) 2012
|
||||
# This file is distributed under the same license as the Modoboa package.
|
||||
#
|
||||
#
|
||||
# Translators:
|
||||
# Pedro Gracia <lasarux@neuroomante.com>, 2011.
|
||||
# Pedro Gracia <pedro.gracia@impulzia.com>, 2010, 2011.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Modoboa-0.8.8\n"
|
||||
"Report-Msgid-Bugs-To: http://dev.modoboa.org/\n"
|
||||
"POT-Creation-Date: 2012-01-10 11:09+0100\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2012-04-25 14:47+0200\n"
|
||||
"PO-Revision-Date: 2012-01-10 10:34+0000\n"
|
||||
"Last-Translator: Antoine Nguyen <tonio@ngyn.org>\n"
|
||||
"Language-Team: ES <LL@li.org>\n"
|
||||
"Language: es\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: es\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
|
||||
|
||||
#: extensions/amavis_quarantine/static/js/quarantine.js:41
|
||||
msgid "Delete this message?"
|
||||
msgstr "¿Eliminar este mensaje?"
|
||||
|
||||
#: extensions/amavis_quarantine/static/js/quarantine.js:49
|
||||
msgid "Release this message?"
|
||||
msgstr "¿Publicar este mensaje?"
|
||||
|
||||
#: extensions/amavis_quarantine/static/js/quarantine.js:107
|
||||
#: extensions/amavis_quarantine/static/js/quarantine.js:126
|
||||
msgid "Release this selection?"
|
||||
msgstr "¿Publicar esta selección?"
|
||||
|
||||
#: extensions/amavis_quarantine/static/js/quarantine.js:114
|
||||
#: extensions/amavis_quarantine/static/js/quarantine.js:130
|
||||
msgid "Delete this selection?"
|
||||
msgstr "¿Eliminar esta selección?"
|
||||
|
||||
#: extensions/amavis_quarantine/static/js/quarantine.js:148
|
||||
#: extensions/amavis_quarantine/static/js/selfservice.js:22
|
||||
msgid "Release this message?"
|
||||
msgstr "¿Publicar este mensaje?"
|
||||
|
||||
#: extensions/amavis_quarantine/static/js/quarantine.js:152
|
||||
#: extensions/amavis_quarantine/static/js/selfservice.js:26
|
||||
msgid "Delete this message?"
|
||||
msgstr "¿Eliminar este mensaje?"
|
||||
|
||||
#: extensions/amavis_quarantine/static/js/quarantine.js:169
|
||||
msgid "View full headers"
|
||||
msgstr ""
|
||||
|
||||
#: extensions/amavis_quarantine/static/js/quarantine.js:174
|
||||
msgid "Hide full headers"
|
||||
msgstr ""
|
||||
|
||||
#: extensions/sievefilters/static/js/lib.js:14
|
||||
msgid "Remove this filter?"
|
||||
msgstr "¿Eliminar este filtro?"
|
||||
|
||||
#: extensions/sievefilters/static/js/lib.js:116
|
||||
#: extensions/sievefilters/static/js/lib.js:117
|
||||
msgid "Save changes?"
|
||||
msgstr "¿Guardar cambios?"
|
||||
|
||||
#: extensions/sievefilters/static/js/lib.js:143
|
||||
#: extensions/sievefilters/static/js/lib.js:144
|
||||
msgid "Remove filters set?"
|
||||
msgstr "¿Eliminar este conjunto de filtros?"
|
||||
|
||||
@@ -52,52 +62,60 @@ msgid "Activate this filters set?"
|
||||
msgstr "¿Activar este conjunto de filtros?"
|
||||
|
||||
#: extensions/sievefilters/static/js/lib.js:169
|
||||
#: extensions/sievefilters/static/js/lib.js:224
|
||||
msgid "active"
|
||||
msgstr "Activar"
|
||||
|
||||
#: extensions/webmail/static/js/fdmenu.js:31
|
||||
msgid "Edit folder"
|
||||
msgstr "Editar carpeta"
|
||||
#: extensions/stats/static/js/stats.js:28
|
||||
msgid "Search a domain"
|
||||
msgstr ""
|
||||
|
||||
#: extensions/webmail/static/js/fdmenu.js:63
|
||||
msgid "Folder deleted"
|
||||
msgstr "Carpeta eliminada"
|
||||
#: extensions/webmail/static/js/webmail.js:499
|
||||
#, fuzzy
|
||||
msgid "Remove the selected mailbox?"
|
||||
msgstr "¿Publicar esta selección?"
|
||||
|
||||
#: extensions/webmail/static/js/webmail.js:95
|
||||
msgid "Sending..."
|
||||
msgstr "Enviando..."
|
||||
#: extensions/webmail/static/js/webmail.js:513
|
||||
msgid "Mailbox removed"
|
||||
msgstr ""
|
||||
|
||||
#: extensions/webmail/static/js/webmail.js:229
|
||||
#: extensions/webmail/static/js/webmail.js:254 static/js/anchor_nav.js:215
|
||||
msgid "Done"
|
||||
msgstr "Hecho"
|
||||
#: static/js/admin.js:17
|
||||
msgid "No domain administrator defined"
|
||||
msgstr ""
|
||||
|
||||
#: extensions/webmail/static/js/webmail.js:243
|
||||
msgid "Waiting..."
|
||||
msgstr "Esperando..."
|
||||
#: static/js/confirmation.js:45
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#: static/js/anchor_nav.js:10
|
||||
#: static/js/confirmation.js:84 static/js/history.js:229
|
||||
msgid "Internal Error"
|
||||
msgstr ""
|
||||
|
||||
#: static/js/history.js:10
|
||||
msgid "Loading..."
|
||||
msgstr "Cargando..."
|
||||
|
||||
#: static/js/common.js:17
|
||||
msgid "Message sent"
|
||||
msgstr ""
|
||||
|
||||
#: static/js/common.js:188
|
||||
#: static/js/searchbar.js:20
|
||||
msgid "Search..."
|
||||
msgstr "Buscar..."
|
||||
|
||||
#: static/js/domains.js:61
|
||||
msgid "Remove this selection?"
|
||||
msgstr ""
|
||||
#~ msgid "Edit folder"
|
||||
#~ msgstr "Editar carpeta"
|
||||
|
||||
#: static/js/preferences.js:14
|
||||
msgid "Preferences saved"
|
||||
msgstr "Preferencias guardas"
|
||||
#~ msgid "Folder deleted"
|
||||
#~ msgstr "Carpeta eliminada"
|
||||
|
||||
#: static/js/settings.js:14
|
||||
msgid "Parameters saved"
|
||||
msgstr "Parámetros guardados"
|
||||
#~ msgid "Sending..."
|
||||
#~ msgstr "Enviando..."
|
||||
|
||||
#~ msgid "Done"
|
||||
#~ msgstr "Hecho"
|
||||
|
||||
#~ msgid "Waiting..."
|
||||
#~ msgstr "Esperando..."
|
||||
|
||||
#~ msgid "Preferences saved"
|
||||
#~ msgstr "Preferencias guardas"
|
||||
|
||||
#~ msgid "Parameters saved"
|
||||
#~ msgstr "Parámetros guardados"
|
||||
|
||||
+973
-850
File diff suppressed because it is too large
Load Diff
@@ -1,13 +1,13 @@
|
||||
# Modoboa french translation
|
||||
# Copyright (C) 2009-2011
|
||||
# Copyright (C) 2009-2012
|
||||
# This file is distributed under the same license as the Modoboa package.
|
||||
# Antoine Nguyen <tonio@ngyn.org>, 2009-2011.
|
||||
# Antoine Nguyen <tonio@ngyn.org>, 2009-2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: modoboa-0.8.8\n"
|
||||
"Project-Id-Version: modoboa-0.9\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2012-01-10 11:09+0100\n"
|
||||
"POT-Creation-Date: 2012-04-25 14:47+0200\n"
|
||||
"PO-Revision-Date: 2011-01-07 10:00+0100\n"
|
||||
"Last-Translator: Antoine Nguyen <tonio@ngyn.org>\n"
|
||||
"Language-Team: FR <tonio@ngyn.org>\n"
|
||||
@@ -16,31 +16,41 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: extensions/amavis_quarantine/static/js/quarantine.js:41
|
||||
msgid "Delete this message?"
|
||||
msgstr "Supprimer ce message?"
|
||||
|
||||
#: extensions/amavis_quarantine/static/js/quarantine.js:49
|
||||
msgid "Release this message?"
|
||||
msgstr "Relâcher cette message?"
|
||||
|
||||
#: extensions/amavis_quarantine/static/js/quarantine.js:107
|
||||
#: extensions/amavis_quarantine/static/js/quarantine.js:126
|
||||
msgid "Release this selection?"
|
||||
msgstr "Relâcher cette sélection?"
|
||||
|
||||
#: extensions/amavis_quarantine/static/js/quarantine.js:114
|
||||
#: extensions/amavis_quarantine/static/js/quarantine.js:130
|
||||
msgid "Delete this selection?"
|
||||
msgstr "Supprimer cette sélection?"
|
||||
|
||||
#: extensions/amavis_quarantine/static/js/quarantine.js:148
|
||||
#: extensions/amavis_quarantine/static/js/selfservice.js:22
|
||||
msgid "Release this message?"
|
||||
msgstr "Relâcher cette message?"
|
||||
|
||||
#: extensions/amavis_quarantine/static/js/quarantine.js:152
|
||||
#: extensions/amavis_quarantine/static/js/selfservice.js:26
|
||||
msgid "Delete this message?"
|
||||
msgstr "Supprimer ce message?"
|
||||
|
||||
#: extensions/amavis_quarantine/static/js/quarantine.js:169
|
||||
msgid "View full headers"
|
||||
msgstr "Voir les entêtes complets"
|
||||
|
||||
#: extensions/amavis_quarantine/static/js/quarantine.js:174
|
||||
msgid "Hide full headers"
|
||||
msgstr "Cacher les entêtes complets"
|
||||
|
||||
#: extensions/sievefilters/static/js/lib.js:14
|
||||
msgid "Remove this filter?"
|
||||
msgstr "Supprimer ce filtre?"
|
||||
|
||||
#: extensions/sievefilters/static/js/lib.js:116
|
||||
#: extensions/sievefilters/static/js/lib.js:117
|
||||
msgid "Save changes?"
|
||||
msgstr "Sauvegarder les changements?"
|
||||
msgstr "Enregistrer les changements?"
|
||||
|
||||
#: extensions/sievefilters/static/js/lib.js:143
|
||||
#: extensions/sievefilters/static/js/lib.js:144
|
||||
msgid "Remove filters set?"
|
||||
msgstr "Supprimer ce jeu de filtres?"
|
||||
|
||||
@@ -49,50 +59,38 @@ msgid "Activate this filters set?"
|
||||
msgstr "Activer ce jeu de filtres?"
|
||||
|
||||
#: extensions/sievefilters/static/js/lib.js:169
|
||||
#: extensions/sievefilters/static/js/lib.js:224
|
||||
msgid "active"
|
||||
msgstr "actif"
|
||||
|
||||
#: extensions/webmail/static/js/fdmenu.js:31
|
||||
msgid "Edit folder"
|
||||
msgstr "Editer le dossier"
|
||||
#: extensions/stats/static/js/stats.js:28
|
||||
msgid "Search a domain"
|
||||
msgstr "Checher un domaine"
|
||||
|
||||
#: extensions/webmail/static/js/fdmenu.js:63
|
||||
msgid "Folder deleted"
|
||||
msgstr "Dossier supprimé"
|
||||
#: extensions/webmail/static/js/webmail.js:499
|
||||
msgid "Remove the selected mailbox?"
|
||||
msgstr "Supprimer la boite sélectionnée?"
|
||||
|
||||
#: extensions/webmail/static/js/webmail.js:95
|
||||
msgid "Sending..."
|
||||
msgstr "Envoi..."
|
||||
#: extensions/webmail/static/js/webmail.js:513
|
||||
msgid "Mailbox removed"
|
||||
msgstr "Boite aux lettres supprimées"
|
||||
|
||||
#: extensions/webmail/static/js/webmail.js:229
|
||||
#: extensions/webmail/static/js/webmail.js:254 static/js/anchor_nav.js:215
|
||||
msgid "Done"
|
||||
msgstr "Effectué"
|
||||
#: static/js/admin.js:17
|
||||
msgid "No domain administrator defined"
|
||||
msgstr "Aucun administrateur de domaine défini"
|
||||
|
||||
#: extensions/webmail/static/js/webmail.js:243
|
||||
msgid "Waiting..."
|
||||
msgstr "En attente..."
|
||||
#: static/js/confirmation.js:45
|
||||
msgid "Cancel"
|
||||
msgstr "Annuler"
|
||||
|
||||
#: static/js/anchor_nav.js:10
|
||||
#: static/js/confirmation.js:84 static/js/history.js:229
|
||||
msgid "Internal Error"
|
||||
msgstr "Erreur interne"
|
||||
|
||||
#: static/js/history.js:10
|
||||
msgid "Loading..."
|
||||
msgstr "Chargement..."
|
||||
|
||||
#: static/js/common.js:17
|
||||
msgid "Message sent"
|
||||
msgstr "Message envoyé"
|
||||
|
||||
#: static/js/common.js:188
|
||||
#: static/js/searchbar.js:20
|
||||
msgid "Search..."
|
||||
msgstr "Chercher..."
|
||||
|
||||
#: static/js/domains.js:61
|
||||
msgid "Remove this selection?"
|
||||
msgstr "Supprimer cette sélection?"
|
||||
|
||||
#: static/js/preferences.js:14
|
||||
msgid "Preferences saved"
|
||||
msgstr "Préférences enregistrées"
|
||||
|
||||
#: static/js/settings.js:14
|
||||
msgid "Parameters saved"
|
||||
msgstr "Paramètres enregistrés"
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
{% extends "admin/header.html" %}
|
||||
{% load admin_extras libextras %}
|
||||
{% extends "admin/header.html" %}{% load i18n admin_extras libextras %}
|
||||
{% block html_head %}
|
||||
{{ block.super }}
|
||||
<script type="text/javascript" src="{{ MEDIA_URL }}js/dynamic_input.js"></script>
|
||||
@@ -10,7 +9,7 @@ $(document).ready(function() {
|
||||
}).blur(function() {
|
||||
var $this = $(this);
|
||||
if ($this.attr("value") == "") {
|
||||
$this.attr("value", {% if squery %}"{{ squery }}"{% else %}gettext("Search"){% endif %});
|
||||
$this.attr("value", {% if squery %}"{{ squery }}"{% else %}"{% trans 'Search' %}"{% endif %});
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
# coding: utf-8
|
||||
|
||||
from modoboa.lib import parameters, events
|
||||
from django.utils.translation import ugettext_noop as _
|
||||
from django.utils.translation import ugettext_lazy
|
||||
|
||||
parameters.register_user("LANG", type="list", deflt="en",
|
||||
label=_("Prefered language"),
|
||||
label=ugettext_lazy("Prefered language"),
|
||||
values=[("de", "deutsch"), ("en", "english"),
|
||||
("es", "español"), ("fr", "français")],
|
||||
help=_("Prefered language to display pages"),
|
||||
help=ugettext_lazy("Prefered language to display pages"),
|
||||
app="general")
|
||||
|
||||
@events.observe("GetStaticContent")
|
||||
|
||||
+4
-2
@@ -22,8 +22,10 @@ def index(request):
|
||||
def changepassword(request, tplname="common/generic_modal_form.html"):
|
||||
res = events.raiseQueryEvent("PasswordChange", request.user)
|
||||
if True in res:
|
||||
ctx = dict(error=_("Password change is disabled for this user"))
|
||||
return _render_error(request, user_context=ctx)
|
||||
from modoboa.lib.exceptions import ModoboaException
|
||||
raise ModoboaException(_("Password change is disabled for this user"))
|
||||
# ctx = dict(error=_("Password change is disabled for this user"))
|
||||
# return _render_error(request, user_context=ctx)
|
||||
|
||||
ctx = dict(
|
||||
title=_("Change password"),
|
||||
|
||||
Reference in New Issue
Block a user