mirror of
https://github.com/jwinterm/modoboa.git
synced 2026-10-17 05:41:25 +02:00
German translation + minor fix about plural forms
This commit is contained in:
@@ -2,41 +2,29 @@
|
||||
|
||||
"""
|
||||
"""
|
||||
from datetime import datetime
|
||||
import time
|
||||
import email
|
||||
import re
|
||||
import os
|
||||
from django.http import HttpResponseRedirect, HttpResponse
|
||||
from django.shortcuts import get_object_or_404, render_to_response
|
||||
from django.template.loader import render_to_string
|
||||
from django.template import Template
|
||||
from django.utils import simplejson
|
||||
from django.conf.urls.defaults import *
|
||||
from django.utils.translation import ugettext as _
|
||||
from django.utils.translation import ugettext as _, ungettext
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.core.paginator import Paginator
|
||||
from django.contrib.auth.decorators \
|
||||
import login_required
|
||||
from mailng.lib import events
|
||||
from mailng.lib import events, parameters
|
||||
from mailng.lib import _render, _ctx_ok, _ctx_ko, decode
|
||||
from mailng.lib import db
|
||||
from mailng.admin.models import Mailbox
|
||||
from lib import AMrelease
|
||||
from datetime import datetime
|
||||
import email
|
||||
import re
|
||||
import os
|
||||
import lxml.html
|
||||
from lxml.html.clean import Cleaner
|
||||
from sql_listing import *
|
||||
|
||||
attached_map = {}
|
||||
|
||||
def map_cid(url):
|
||||
map = globals()["attached_map"]
|
||||
m = re.match(".*cid:([^\"]+)", url)
|
||||
if m:
|
||||
if map.has_key(m.group(1)):
|
||||
return map[m.group(1)]
|
||||
return url
|
||||
|
||||
def init():
|
||||
events.register("UserMenuDisplay", menu)
|
||||
parameters.register("amavis_quarantine", "MAX_MESSAGES_AGE", "int", 14,
|
||||
help=_("Quarantine messages maximum age (in days) before deletion"))
|
||||
|
||||
def urls():
|
||||
return (r'^mailng/quarantine/',
|
||||
@@ -51,82 +39,27 @@ def menu(**kwargs):
|
||||
]
|
||||
return []
|
||||
|
||||
def lookup(*args):
|
||||
filter = ""
|
||||
for a in args:
|
||||
if not a:
|
||||
continue
|
||||
if a[0] == "&":
|
||||
filter += " AND "
|
||||
else:
|
||||
filter += " OR "
|
||||
filter += a[1:]
|
||||
conn = db.getconnection("amavis_quarantine")
|
||||
status, cursor = db.execute(conn, """
|
||||
SELECT msgs.from_addr, maddr.email, msgs.subject, msgs.content, quarantine.mail_id,
|
||||
msgs.time_num, msgs.content
|
||||
FROM quarantine, maddr, msgrcpt, msgs
|
||||
WHERE quarantine.mail_id=msgrcpt.mail_id
|
||||
AND msgrcpt.rid=maddr.id
|
||||
AND msgrcpt.mail_id=msgs.mail_id
|
||||
AND quarantine.chunk_ind=1
|
||||
%s
|
||||
ORDER BY msgs.time_num DESC
|
||||
""" % filter)
|
||||
return cursor
|
||||
|
||||
def render_listing(request, cursor):
|
||||
emails = []
|
||||
rows = cursor.fetchall()
|
||||
for row in rows:
|
||||
emails.append({"from" : row[0], "to" : row[1],
|
||||
"subject" : row[2], "content" : row[3],
|
||||
"mailid" : row[4], "time" : datetime.fromtimestamp(row[5]),
|
||||
"type" : row[6]})
|
||||
paginator = Paginator(emails, 10)
|
||||
try:
|
||||
pagenum = int(request.GET.get('page', '1'))
|
||||
except ValueError:
|
||||
pagenum = 1
|
||||
page = paginator.page(pagenum)
|
||||
return render_to_string("amavis_quarantine/listing.html", {
|
||||
"count" : len(rows),
|
||||
"emails" : page, "current_page" : pagenum,
|
||||
"last_page" : paginator._get_num_pages()
|
||||
})
|
||||
|
||||
@login_required
|
||||
def index(request, message=None):
|
||||
start = time.time()
|
||||
if not request.user.is_superuser:
|
||||
mb = Mailbox.objects.get(user=request.user.id)
|
||||
filter = "&maddr.email='%s'" % mb.full_address
|
||||
filter = ["&maddr.email='%s'" % mb.full_address]
|
||||
else:
|
||||
filter = None
|
||||
cursor = lookup(filter)
|
||||
|
||||
return _render(request, 'amavis_quarantine/index.html', {
|
||||
"content" : render_listing(request, cursor)
|
||||
})
|
||||
|
||||
@login_required
|
||||
def viewmail_plain(request, content):
|
||||
body = decode(content)
|
||||
return (True, body)
|
||||
|
||||
@login_required
|
||||
def viewmail_html(request, content):
|
||||
links = request.GET.has_key("links") and request.GET["links"] or "0"
|
||||
html = lxml.html.fromstring(content)
|
||||
if links == "0":
|
||||
html.rewrite_links(lambda x: None)
|
||||
else:
|
||||
html.rewrite_links(map_cid)
|
||||
body = lxml.html.tostring(html)
|
||||
body = Template(decode(body)).render({})
|
||||
return (False, body)
|
||||
try:
|
||||
pageid = request.GET["page"]
|
||||
if pageid == "":
|
||||
pageid = 1
|
||||
except KeyError:
|
||||
pageid = 1
|
||||
lst = SQLlisting(filter)
|
||||
return lst.render(request, pageid=int(pageid), start=start)
|
||||
|
||||
@login_required
|
||||
def getmailcontent(request, mail_id):
|
||||
from mailng.lib.email_listing import Email
|
||||
|
||||
conn = db.getconnection("amavis_quarantine")
|
||||
status, cursor = db.execute(conn, """
|
||||
SELECT mail_text
|
||||
@@ -139,41 +72,8 @@ WHERE quarantine.mail_id='%s'
|
||||
msg = email.message_from_string(content)
|
||||
links = request.GET.has_key("links") and request.GET["links"] or "0"
|
||||
mode = request.GET.has_key("mode") and request.GET["mode"] or "plain"
|
||||
contents = {"html" : "", "plain" : ""}
|
||||
for part in msg.walk():
|
||||
#print part.get_content_type()
|
||||
if part.get_content_maintype() == 'multipart':
|
||||
continue
|
||||
if part.get_content_type() in ("text/html", "text/plain"):
|
||||
contents[part.get_content_subtype()] += part.get_payload(decode=True)
|
||||
if mode != "html" or links == "0":
|
||||
continue
|
||||
|
||||
if part.get_content_maintype() == "image":
|
||||
if part.has_key("Content-Location"):
|
||||
fname = part["Content-Location"]
|
||||
if re.match("^http:", fname):
|
||||
path = fname
|
||||
else:
|
||||
path = "/%s" % os.path.join("static/tmp", fname)
|
||||
fp = open(path, "wb")
|
||||
fp.write(part.get_payload(decode=True))
|
||||
fp.close()
|
||||
m = re.match("<(.+)>", part["Content-ID"])
|
||||
if m:
|
||||
attached_map[m.group(1)] = path
|
||||
else:
|
||||
attached_map[part["Content-ID"]] = path
|
||||
|
||||
if not contents.has_key(mode) or contents[mode] == "":
|
||||
if mode == "html":
|
||||
mode = "plain"
|
||||
else:
|
||||
mode = "html"
|
||||
(pre, body) = globals()["viewmail_%s" % mode](request, contents[mode])
|
||||
return _render(request, 'amavis_quarantine/getmailcontent.html', {
|
||||
"body" : body, "pre" : pre
|
||||
})
|
||||
mail = Email(msg, mode, links)
|
||||
return mail.render(request)
|
||||
|
||||
@login_required
|
||||
def viewmail(request, mail_id):
|
||||
@@ -224,8 +124,9 @@ def delete(request, mail_id, count=1):
|
||||
status, error = db.execute(conn,
|
||||
"DELETE FROM msgs WHERE mail_id IN (%s)" % mail_id)
|
||||
if status:
|
||||
message = _("%(count)d message%(plural)s deleted successfully" \
|
||||
% ({"count" : count, "plural" : count > 1 and "s" or ""}))
|
||||
message = ungettext("%(count)d message deleted successfully",
|
||||
"%(count)d messages deleted successfully",
|
||||
count) % {"count" : count}
|
||||
else:
|
||||
message = error
|
||||
return _redirect_to_index(request, message, count)
|
||||
@@ -264,8 +165,9 @@ WHERE msgrcpt.mail_id=msgs.mail_id AND msgrcpt.rid=maddr.id AND msgs.mail_id IN
|
||||
error = result
|
||||
break
|
||||
if not error:
|
||||
message = _("%(count)d message%(plural)s released successfully" \
|
||||
% {"count" : count, "plural" : count > 1 and "s" or ""})
|
||||
message = ungettext("%(count)d message released successfully",
|
||||
"%(count)d messages released successfully",
|
||||
count) % {"count" : count}
|
||||
else:
|
||||
message = error
|
||||
return _redirect_to_index(request, message, count)
|
||||
@@ -309,7 +211,19 @@ def search(request):
|
||||
filter += " OR "
|
||||
filter += "msgs.%s LIKE '%%%s%%'" % (c, pattern)
|
||||
filter = "&(%s)" % filter
|
||||
cursor = lookup(filter)
|
||||
ctx = {"status" : "ok", "content" : render_listing(request, cursor)}
|
||||
return HttpResponse(simplejson.dumps(ctx),
|
||||
mimetype="application/json")
|
||||
lst = SQLlisting([filter])
|
||||
try:
|
||||
pageid = request.GET["page"]
|
||||
if pageid == "":
|
||||
pageid = 1
|
||||
except KeyError:
|
||||
pageid = 1
|
||||
page = lst.paginator.getpage(pageid)
|
||||
if page:
|
||||
content = lst.fetch(page.id_start, page.id_stop).render(request)
|
||||
navbar = lst.render_navbar(page)
|
||||
else:
|
||||
content = "Empty quarantine"
|
||||
navbar = ""
|
||||
ctx = {"status" : "ok", "listing" : content, "navbar" : navbar}
|
||||
return HttpResponse(simplejson.dumps(ctx), mimetype="application/json")
|
||||
|
||||
@@ -0,0 +1,638 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2010-03-02 15:01+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: Patrick Ben Koetter <p@state-of-mind.de>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: admin/forms.py:16 templates/admin/domains.html:17
|
||||
#: templates/admin/mailboxes.html:17
|
||||
msgid "Quota"
|
||||
msgstr "Quota"
|
||||
|
||||
#: admin/forms.py:17
|
||||
msgid "Mailbox quota in MB (default to domain quota if blank)"
|
||||
msgstr "Mailbox-Quota in MB (standardmäßig Domain-Quota wenn leer)"
|
||||
|
||||
#: admin/forms.py:18
|
||||
msgid "Password"
|
||||
msgstr "Passwort"
|
||||
|
||||
#: admin/forms.py:19
|
||||
msgid "Password used to log in"
|
||||
msgstr "Login-Passwort"
|
||||
|
||||
#: admin/forms.py:20 main/forms.py:21
|
||||
msgid "Confirmation"
|
||||
msgstr "Bestätigung"
|
||||
|
||||
#: admin/forms.py:21
|
||||
msgid "Password confirmation"
|
||||
msgstr "Passwort Bestätigung"
|
||||
|
||||
#: admin/forms.py:24
|
||||
msgid "Check to activate this mailbox"
|
||||
msgstr "Markieren, um die Mailbox zu aktivieren"
|
||||
|
||||
#: admin/forms.py:37 main/forms.py:36
|
||||
msgid "Passwords mismatch"
|
||||
msgstr "Passwörter stimmen nicht überein"
|
||||
|
||||
#: admin/forms.py:56 templates/admin/domain_header.html:6
|
||||
#: templates/admin/editdomain.html:7 templates/admin/permissions.html:42
|
||||
msgid "Domain"
|
||||
msgstr "Domäne"
|
||||
|
||||
#: admin/forms.py:58
|
||||
msgid "Select a domain in the list"
|
||||
msgstr "Wählen Sie eine Domäne aus der Liste"
|
||||
|
||||
#: admin/forms.py:59
|
||||
msgid "User"
|
||||
msgstr "Nutzer"
|
||||
|
||||
#: admin/forms.py:60
|
||||
msgid "Select a user in the list"
|
||||
msgstr "Wählen Sie einen Nutzer aus der Liste"
|
||||
|
||||
#: admin/forms.py:61
|
||||
msgid "Role"
|
||||
msgstr "Rolle"
|
||||
|
||||
#: admin/forms.py:62
|
||||
msgid "Super administrator"
|
||||
msgstr "Administrator"
|
||||
|
||||
#: admin/forms.py:63
|
||||
msgid "Domain administrator"
|
||||
msgstr "Domänen-Administrator"
|
||||
|
||||
#: admin/forms.py:64
|
||||
msgid "Select the role you want this user to have"
|
||||
msgstr "Wählen Sie die Rolle für diesen Nutzer"
|
||||
|
||||
#: admin/models.py:9 admin/models.py:38
|
||||
msgid "name"
|
||||
msgstr "Name"
|
||||
|
||||
#: admin/models.py:10
|
||||
msgid "The domain name"
|
||||
msgstr "Name der Domäne"
|
||||
|
||||
#: admin/models.py:11
|
||||
msgid "Default quota in MB applied to mailboxes"
|
||||
msgstr "Standard-Quota für Mailboxen (in MB)"
|
||||
|
||||
#: admin/models.py:12 admin/models.py:111 main/models.py:9
|
||||
msgid "enabled"
|
||||
msgstr "aktiviert"
|
||||
|
||||
#: admin/models.py:13
|
||||
msgid "Check to activate this domain"
|
||||
msgstr "Auswählen, um diese Domäne zu aktivieren"
|
||||
|
||||
#: admin/models.py:39
|
||||
msgid "First name and last name of mailbox owner"
|
||||
msgstr "Vor- und Nachname des Mailbox-Besitzers"
|
||||
|
||||
#: admin/models.py:40 admin/models.py:106
|
||||
msgid "address"
|
||||
msgstr "Adresse"
|
||||
|
||||
#: admin/models.py:41
|
||||
msgid "Mailbox address (without the @domain.tld part)"
|
||||
msgstr "Mailbox addresse (ohne den @domain.tld-Anteil)"
|
||||
|
||||
#: admin/models.py:43
|
||||
msgid "password"
|
||||
msgstr "Passwort"
|
||||
|
||||
#: admin/models.py:107
|
||||
msgid "The alias address (without the domain part)"
|
||||
msgstr "Die Alias-Adresse (ohne den @domain.tld-Anteil)"
|
||||
|
||||
#: admin/models.py:109
|
||||
msgid "mailbox"
|
||||
msgstr "Mailbox"
|
||||
|
||||
#: admin/models.py:110
|
||||
msgid "The mailbox this alias points to"
|
||||
msgstr "Mailbox auf den dieser Alias verweist"
|
||||
|
||||
#: admin/models.py:112
|
||||
msgid "Check to activate this alias"
|
||||
msgstr "Auswählen um den Alias zu aktivieren"
|
||||
|
||||
#: admin/views.py:24
|
||||
msgid "Permission denied."
|
||||
msgstr "Zugriff verweigert."
|
||||
|
||||
#: admin/views.py:69 admin/views.py:99
|
||||
msgid "Domain with this name already defined"
|
||||
msgstr "Es existiert bereits eine Domain mit diesem Namen"
|
||||
|
||||
#: admin/views.py:78
|
||||
msgid "Failed to initialise domain, check permissions"
|
||||
msgstr ""
|
||||
"Domäne konnte nicht initialisiert werden. Prüfen Sie die Berechtigungen."
|
||||
|
||||
#: admin/views.py:102
|
||||
msgid "Failed to rename domain, check permissions"
|
||||
msgstr "Domäne konnte nicht umbenannt werden. Prüfen Sie die Berechtigungen."
|
||||
|
||||
#: admin/views.py:156 admin/views.py:215
|
||||
msgid "Mailbox with this address already exists"
|
||||
msgstr "Eine Mailbox mit diesem Namen existiert bereits."
|
||||
|
||||
#: admin/views.py:187
|
||||
msgid "Mailbox created."
|
||||
msgstr "Mailbox erstellt."
|
||||
|
||||
#: admin/views.py:191
|
||||
msgid "Failed to initialise mailbox, check permissions"
|
||||
msgstr ""
|
||||
"Mailbox konnte nicht initialisiert werden. Prüfen Sie die Berechtigungen."
|
||||
|
||||
#: admin/views.py:218
|
||||
msgid "Failed to rename mailbox, check permissions"
|
||||
msgstr "Mailbox konnte nicht umbenannt werden. Prüfen Sie die Berechtigungen."
|
||||
|
||||
#: admin/views.py:294 admin/views.py:324
|
||||
msgid "Alias with this address already exists"
|
||||
msgstr "Ein Alias mit dieser Adresse existiert bereits"
|
||||
|
||||
#: admin/views.py:397
|
||||
msgid "admin is intouchable!!"
|
||||
msgstr "admin ist unantastbar!!"
|
||||
|
||||
#: admin/templatetags/admin_extras.py:11
|
||||
msgid "enabled_m"
|
||||
msgstr "aktiviert_m"
|
||||
|
||||
#: admin/templatetags/admin_extras.py:11
|
||||
msgid "enabled_f"
|
||||
msgstr "aktiviert_f"
|
||||
|
||||
#: admin/templatetags/admin_extras.py:19 templates/admin/newmailbox.html:7
|
||||
msgid "New mailbox"
|
||||
msgstr "Neue Mailbox"
|
||||
|
||||
#: admin/templatetags/admin_extras.py:26 templates/admin/domains.html:16
|
||||
msgid "Mailboxes"
|
||||
msgstr "Mailboxen"
|
||||
|
||||
#: admin/templatetags/admin_extras.py:30
|
||||
msgid "Aliases"
|
||||
msgstr "Aliase"
|
||||
|
||||
#: admin/templatetags/admin_extras.py:37
|
||||
msgid "Properties"
|
||||
msgstr "Eigenschaften"
|
||||
|
||||
#: extensions/amavis_quarantine/main.py:27
|
||||
msgid "Quarantine messages maximum age (in days) before deletion"
|
||||
msgstr ""
|
||||
|
||||
#: extensions/amavis_quarantine/main.py:36
|
||||
#: extensions/amavis_quarantine/templates/index.html:152
|
||||
msgid "Quarantine"
|
||||
msgstr "Quarantäne"
|
||||
|
||||
#: extensions/amavis_quarantine/main.py:127
|
||||
#, python-format
|
||||
msgid "%(count)d message deleted successfully"
|
||||
msgid_plural "%(count)d messages deleted successfully"
|
||||
msgstr[0] "%(count)d Nachricht erfolgreich gelöscht"
|
||||
msgstr[1] "%(count)d Nachrichten erfolgreich gelöscht"
|
||||
|
||||
#: extensions/amavis_quarantine/main.py:168
|
||||
#, fuzzy, python-format
|
||||
msgid "%(count)d message released successfully"
|
||||
msgid_plural "%(count)d messages released successfully"
|
||||
msgstr[0] "%(count)d Nachicht erfolgreich freigegeben"
|
||||
msgstr[1] "%(count)d Nachichten erfolgreich freigegeben"
|
||||
|
||||
#: extensions/amavis_quarantine/templates/index.html:94
|
||||
msgid "Delete this selection?"
|
||||
msgstr "Auswahl löschen?"
|
||||
|
||||
#: extensions/amavis_quarantine/templates/index.html:101
|
||||
msgid "Release this selection?"
|
||||
msgstr "Auswahl freigeben?"
|
||||
|
||||
#: extensions/amavis_quarantine/templates/index.html:135
|
||||
#: extensions/amavis_quarantine/templates/index.html:157
|
||||
msgid "Search..."
|
||||
msgstr "Suchen..."
|
||||
|
||||
#: extensions/amavis_quarantine/templates/index.html:159
|
||||
msgid "From address"
|
||||
msgstr "Absender"
|
||||
|
||||
#: extensions/amavis_quarantine/templates/index.html:160
|
||||
#: extensions/amavis_quarantine/templates/listing.html:35
|
||||
msgid "Subject"
|
||||
msgstr "Betreff"
|
||||
|
||||
#: extensions/amavis_quarantine/templates/index.html:161
|
||||
msgid "Both"
|
||||
msgstr "Beide"
|
||||
|
||||
#: extensions/amavis_quarantine/templates/listing.html:4
|
||||
msgid "No messages in quarantine"
|
||||
msgstr "Keine Nachrichten in Quarantäne"
|
||||
|
||||
#: extensions/amavis_quarantine/templates/listing.html:13
|
||||
msgid "First"
|
||||
msgstr "Erstes"
|
||||
|
||||
#: extensions/amavis_quarantine/templates/listing.html:16
|
||||
msgid "Previous"
|
||||
msgstr "Vorheriges"
|
||||
|
||||
#: extensions/amavis_quarantine/templates/listing.html:21
|
||||
msgid "Next"
|
||||
msgstr "Nächstes"
|
||||
|
||||
#: extensions/amavis_quarantine/templates/listing.html:24
|
||||
msgid "Last"
|
||||
msgstr "Letztes"
|
||||
|
||||
#: extensions/amavis_quarantine/templates/listing.html:33
|
||||
msgid "Type"
|
||||
msgstr "Typ"
|
||||
|
||||
#: extensions/amavis_quarantine/templates/listing.html:34
|
||||
msgid "From"
|
||||
msgstr "Von"
|
||||
|
||||
#: extensions/amavis_quarantine/templates/listing.html:36
|
||||
msgid "Date"
|
||||
msgstr "Datum"
|
||||
|
||||
#: extensions/amavis_quarantine/templates/viewheader.html:36
|
||||
msgid "Message headers"
|
||||
msgstr "Nachrichten-Header"
|
||||
|
||||
#: extensions/amavis_quarantine/templates/viewmail.html:22
|
||||
msgid "Mail content"
|
||||
msgstr "Inhalt der Mail"
|
||||
|
||||
#: extensions/amavis_quarantine/templates/viewmail.html:31
|
||||
msgid "Message"
|
||||
msgstr "Nachricht"
|
||||
|
||||
#: extensions/amavis_quarantine/templatetags/amextras.py:13
|
||||
msgid "View as plain text"
|
||||
msgstr "In Text-Format betrachten"
|
||||
|
||||
#: extensions/amavis_quarantine/templatetags/amextras.py:17
|
||||
msgid "View as HTML"
|
||||
msgstr "In HTML-Format betrachten"
|
||||
|
||||
#: extensions/amavis_quarantine/templatetags/amextras.py:21
|
||||
msgid "Activate links"
|
||||
msgstr "Links aktivieren"
|
||||
|
||||
#: extensions/amavis_quarantine/templatetags/amextras.py:30
|
||||
msgid "Back to list"
|
||||
msgstr "Zurück zur Liste"
|
||||
|
||||
#: extensions/amavis_quarantine/templatetags/amextras.py:34
|
||||
msgid "View full headers"
|
||||
msgstr "Alle Header ansehen"
|
||||
|
||||
#: extensions/amavis_quarantine/templatetags/amextras.py:41
|
||||
#: extensions/amavis_quarantine/templatetags/amextras.py:65
|
||||
msgid "Release"
|
||||
msgstr "Freigeben"
|
||||
|
||||
#: extensions/amavis_quarantine/templatetags/amextras.py:42
|
||||
msgid "Release this message?"
|
||||
msgstr "Diese Nachricht freigeben?"
|
||||
|
||||
#: extensions/amavis_quarantine/templatetags/amextras.py:47
|
||||
#: extensions/amavis_quarantine/templatetags/amextras.py:69
|
||||
msgid "Delete"
|
||||
msgstr "Löschen"
|
||||
|
||||
#: extensions/amavis_quarantine/templatetags/amextras.py:48
|
||||
msgid "Delete this message?"
|
||||
msgstr "Diese Nachricht löschen?"
|
||||
|
||||
#: extensions/amavis_quarantine/templatetags/amextras.py:50
|
||||
msgid "Options"
|
||||
msgstr "Optionen"
|
||||
|
||||
#: extensions/postfix_autoreply/main.py:35
|
||||
msgid "Auto-reply message"
|
||||
msgstr "Automatische Antwort"
|
||||
|
||||
#: extensions/stats/grapher.py:18
|
||||
msgid "sent messages"
|
||||
msgstr "Gesendete Nachrichten"
|
||||
|
||||
#: extensions/stats/grapher.py:20
|
||||
msgid "received messages"
|
||||
msgstr "Empfangene Nachrichten"
|
||||
|
||||
#: extensions/stats/grapher.py:28
|
||||
msgid "msgs/min"
|
||||
msgstr ""
|
||||
|
||||
#: extensions/stats/grapher.py:32
|
||||
msgid "bounced messages"
|
||||
msgstr "Zurückgeworfene Nachrichten"
|
||||
|
||||
#: extensions/stats/grapher.py:34
|
||||
msgid "rejected messages"
|
||||
msgstr "Abgewiesene Nachrichten"
|
||||
|
||||
#: extensions/stats/grapher.py:42
|
||||
msgid "bytes/min"
|
||||
msgstr "Bytes/min"
|
||||
|
||||
#: extensions/stats/grapher.py:46
|
||||
msgid "received size"
|
||||
msgstr "Empfangsgrösse"
|
||||
|
||||
#: extensions/stats/grapher.py:48
|
||||
msgid "sent size"
|
||||
msgstr "Versendegrösse"
|
||||
|
||||
#: extensions/stats/main.py:32 extensions/stats/main.py:39
|
||||
msgid "Statistics"
|
||||
msgstr "Statistiken"
|
||||
|
||||
#: extensions/stats/main.py:68
|
||||
msgid "No Domain defined"
|
||||
msgstr "Keine Domäne definiert."
|
||||
|
||||
#: extensions/stats/main.py:94 extensions/stats/main.py:112
|
||||
msgid "Average normal traffic"
|
||||
msgstr "Durchschnittlicher normaler Datenverkehr"
|
||||
|
||||
#: extensions/stats/main.py:95 extensions/stats/main.py:113
|
||||
msgid "Average bad traffic"
|
||||
msgstr "Durchschnittlicher schlechter Datenverkehr"
|
||||
|
||||
#: extensions/stats/main.py:96 extensions/stats/main.py:114
|
||||
msgid "Average normal traffic size"
|
||||
msgstr "Durchschnittliche Grösse normaler Datenverkehr"
|
||||
|
||||
#: extensions/stats/templates/adminindex.html:31
|
||||
msgid "Global statistics"
|
||||
msgstr "Globale Statistiken"
|
||||
|
||||
#: extensions/stats/templates/adminindex.html:35
|
||||
msgid "Domain:"
|
||||
msgstr "Domäne:"
|
||||
|
||||
#: extensions/stats/templates/adminindex.html:37
|
||||
msgid "Global"
|
||||
msgstr "Global"
|
||||
|
||||
#: extensions/stats/templates/adminindex.html:43
|
||||
#: extensions/stats/templates/index.html:30
|
||||
msgid "Period:"
|
||||
msgstr "Zeitraum:"
|
||||
|
||||
#: extensions/stats/templates/graphs.html:5
|
||||
msgid "No statistics available"
|
||||
msgstr "Keine Statistiken verfügbar"
|
||||
|
||||
#: extensions/stats/templatetags/stats_extra.py:9
|
||||
msgid "Day"
|
||||
msgstr "Tag"
|
||||
|
||||
#: extensions/stats/templatetags/stats_extra.py:10
|
||||
msgid "Week"
|
||||
msgstr "Woche"
|
||||
|
||||
#: extensions/stats/templatetags/stats_extra.py:11
|
||||
msgid "Month"
|
||||
msgstr "Monat"
|
||||
|
||||
#: extensions/stats/templatetags/stats_extra.py:12
|
||||
msgid "Year"
|
||||
msgstr "Jahr"
|
||||
|
||||
#: main/forms.py:17
|
||||
msgid "Old password"
|
||||
msgstr "Altes Passwort"
|
||||
|
||||
#: main/forms.py:19
|
||||
msgid "New password"
|
||||
msgstr "Neues Passwort"
|
||||
|
||||
#: main/forms.py:31
|
||||
msgid "Old password mismatchs"
|
||||
msgstr "Altes Passwort stimmt nicht überein"
|
||||
|
||||
#: main/models.py:7
|
||||
msgid "subject"
|
||||
msgstr "Betreff"
|
||||
|
||||
#: main/models.py:8
|
||||
msgid "content"
|
||||
msgstr "Inhalt"
|
||||
|
||||
#: main/views.py:45
|
||||
msgid "Auto reply message updated successfully."
|
||||
msgstr "Automatische Antwort erfolgreich aktualisiert."
|
||||
|
||||
#: main/templatetags/main_extras.py:16 templates/main/chpassword.html:7
|
||||
msgid "Change password"
|
||||
msgstr "Passwort ändern"
|
||||
|
||||
#: templates/layout.html:45
|
||||
msgid "Admin"
|
||||
msgstr "Admin"
|
||||
|
||||
#: templates/layout.html:52
|
||||
msgid "Preferences"
|
||||
msgstr "Einstellungen"
|
||||
|
||||
#: templates/layout.html:59
|
||||
msgid "Logout"
|
||||
msgstr "Logout"
|
||||
|
||||
#: templates/layout.html:73 templates/admin/newdomain.html:7
|
||||
msgid "New domain"
|
||||
msgstr "Neue Domäne"
|
||||
|
||||
#: templates/layout.html:80
|
||||
msgid "Domains"
|
||||
msgstr "Domäne"
|
||||
|
||||
#: templates/layout.html:87 templates/admin/settings_header.html:6
|
||||
msgid "Settings"
|
||||
msgstr "Einstellungen"
|
||||
|
||||
#: templates/admin/addpermission.html:24 templates/admin/settings_menu.html:15
|
||||
msgid "Add permission"
|
||||
msgstr "Berechtigung hinzufügen"
|
||||
|
||||
#: templates/admin/addpermission.html:33 templates/admin/newalias.html:14
|
||||
#: templates/admin/newdomain.html:15 templates/admin/newmailbox.html:16
|
||||
msgid "Create"
|
||||
msgstr "Erstellen"
|
||||
|
||||
#: templates/admin/aliases.html:9
|
||||
msgid "No alias defined."
|
||||
msgstr "Kein Alias definiert."
|
||||
|
||||
#: templates/admin/aliases.html:13 templates/admin/domains.html:14
|
||||
#: templates/admin/mailboxes.html:14 templates/admin/permissions.html:14
|
||||
#: templates/admin/permissions.html:41
|
||||
msgid "Actions"
|
||||
msgstr "Aktionen"
|
||||
|
||||
#: templates/admin/aliases.html:14 templates/admin/mailboxes.html:16
|
||||
msgid "Address"
|
||||
msgstr "Adresse"
|
||||
|
||||
#: templates/admin/aliases.html:15 templates/admin/editmailbox.html:7
|
||||
msgid "Mailbox"
|
||||
msgstr "Mailbox"
|
||||
|
||||
#: templates/admin/aliases.html:16 templates/admin/domains.html:18
|
||||
#: templates/admin/permissions.html:17 templates/admin/permissions.html:44
|
||||
msgid "Enabled"
|
||||
msgstr "Aktiviert"
|
||||
|
||||
#: templates/admin/aliases.html:24
|
||||
msgid "Edit alias"
|
||||
msgstr "Alias bearbeiten"
|
||||
|
||||
#: templates/admin/aliases.html:28
|
||||
msgid "Delete alias"
|
||||
msgstr "Alias löschen"
|
||||
|
||||
#: templates/admin/domains.html:6
|
||||
msgid "Available domains"
|
||||
msgstr "Verfügbare Domänen"
|
||||
|
||||
#: templates/admin/domains.html:10
|
||||
msgid "No domain defined."
|
||||
msgstr "Keine Domäne definiert."
|
||||
|
||||
#: templates/admin/domains.html:15 templates/admin/mailboxes.html:15
|
||||
#: templates/admin/permissions.html:43
|
||||
msgid "Name"
|
||||
msgstr "Name"
|
||||
|
||||
#: templates/admin/domains.html:26
|
||||
msgid "Edit domain"
|
||||
msgstr "Domäne bearbeiten"
|
||||
|
||||
#: templates/admin/domains.html:30
|
||||
msgid "Delete domain"
|
||||
msgstr "Domäne löschen"
|
||||
|
||||
#: templates/admin/domains.html:36 templates/admin/mailboxes.html:45
|
||||
msgid "MB"
|
||||
msgstr "MB"
|
||||
|
||||
#: templates/admin/domains.html:37 templates/admin/mailboxes.html:46
|
||||
msgid "yes,no"
|
||||
msgstr "Ja,Nein"
|
||||
|
||||
#: templates/admin/editalias.html:14 templates/admin/editdomain.html:15
|
||||
#: templates/admin/editmailbox.html:16 templates/main/autoreply.html:17
|
||||
#: templates/main/chpassword.html:15
|
||||
msgid "Update"
|
||||
msgstr "Aktualisieren"
|
||||
|
||||
#: templates/admin/mailboxes.html:10
|
||||
msgid "No mailbox defined."
|
||||
msgstr "Keine Mailbox definiert."
|
||||
|
||||
#: templates/admin/mailboxes.html:26
|
||||
msgid "Edit mailbox"
|
||||
msgstr "Mailbox bearbeiten"
|
||||
|
||||
#: templates/admin/mailboxes.html:31
|
||||
msgid "Delete mailbox"
|
||||
msgstr "Mailbox löschen"
|
||||
|
||||
#: templates/admin/mailboxes.html:36
|
||||
msgid "Add new alias"
|
||||
msgstr "Alias hinzufügen"
|
||||
|
||||
#: templates/admin/mailboxes.html:40
|
||||
msgid "Mailbox aliases"
|
||||
msgstr "Mailbox-Alias"
|
||||
|
||||
#: templates/admin/newalias.html:7
|
||||
msgid "New alias"
|
||||
msgstr "Neuer Alias"
|
||||
|
||||
#: templates/admin/permissions.html:9
|
||||
msgid "No superuser defined?!"
|
||||
msgstr "Kein Administrator definiert?!"
|
||||
|
||||
#: templates/admin/permissions.html:11
|
||||
msgid "Super administrators"
|
||||
msgstr "Administrator"
|
||||
|
||||
#: templates/admin/permissions.html:15
|
||||
msgid "Full name"
|
||||
msgstr "Voller Name"
|
||||
|
||||
#: templates/admin/permissions.html:16
|
||||
msgid "User name"
|
||||
msgstr "Benutzername"
|
||||
|
||||
#: templates/admin/permissions.html:24 templates/admin/permissions.html:52
|
||||
msgid "Remove permission"
|
||||
msgstr "Berechtigung entziehen"
|
||||
|
||||
#: templates/admin/permissions.html:35
|
||||
msgid "Domain administrators"
|
||||
msgstr "Domänen-Administrator"
|
||||
|
||||
#: templates/admin/permissions.html:37
|
||||
msgid "No domain admin defined."
|
||||
msgstr "Kein Domänen-Administrator definiert."
|
||||
|
||||
#: templates/admin/settings_menu.html:7
|
||||
msgid "Permissions"
|
||||
msgstr "Berechtigungen"
|
||||
|
||||
#: templates/main/confirm.html:25
|
||||
msgid "Do not delete mailbox directory"
|
||||
msgstr "Mailbox-Verzeichnis nicht löschen"
|
||||
|
||||
#: templates/main/header.html:6
|
||||
msgid "General"
|
||||
msgstr "Allgemein"
|
||||
|
||||
#: templates/main/index.html:11
|
||||
msgid "Your auto-reply message is activated."
|
||||
msgstr "Automatische Benachrichtigung ist aktiviert."
|
||||
|
||||
#: templates/main/index.html:13
|
||||
msgid "Your auto-reply message is not activated."
|
||||
msgstr "Automatische Benachrichtigung ist nicht aktiviert."
|
||||
|
||||
#: templates/registration/login.html:8
|
||||
msgid "Welcome"
|
||||
msgstr "Willkommen"
|
||||
|
||||
#: templates/registration/login.html:11
|
||||
msgid "Your username and password didn't match. Please try again."
|
||||
msgstr ""
|
||||
"Ihr Benutzername und Passwort stimmen nicht überein. Bitte versuchen Sie es "
|
||||
"noch einmal."
|
||||
@@ -0,0 +1,37 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2009-10-30 11:11+0100\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"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: static/js/domains.js:15
|
||||
msgid "Delete this domain?"
|
||||
msgstr "Diese Domäne löschen?"
|
||||
|
||||
#: static/js/domains.js:22
|
||||
msgid "Delete this mailbox?"
|
||||
msgstr "Diese Mailbox löschen?"
|
||||
|
||||
#: static/js/domains.js:36
|
||||
msgid "Delete this alias?"
|
||||
msgstr "Diesen Alias löschen?"
|
||||
|
||||
#: static/js/form.js:55
|
||||
msgid "Help"
|
||||
msgstr "Hilfe"
|
||||
|
||||
#: static/js/settings.js:9
|
||||
msgid "Remove this permission?"
|
||||
msgstr "Diese Berechtigung entziehen?"
|
||||
@@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2009-11-04 15:47+0100\n"
|
||||
"POT-Creation-Date: 2010-03-02 15:01+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: Antoine Nguyen <tonio@ngyn.org>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@@ -200,20 +200,28 @@ msgstr "Alias"
|
||||
msgid "Properties"
|
||||
msgstr "Propriétés"
|
||||
|
||||
#: extensions/amavis_quarantine/main.py:48
|
||||
#: extensions/amavis_quarantine/main.py:27
|
||||
msgid "Quarantine messages maximum age (in days) before deletion"
|
||||
msgstr ""
|
||||
|
||||
#: extensions/amavis_quarantine/main.py:36
|
||||
#: extensions/amavis_quarantine/templates/index.html:152
|
||||
msgid "Quarantine"
|
||||
msgstr "Quarantaine"
|
||||
|
||||
#: extensions/amavis_quarantine/main.py:227
|
||||
#: extensions/amavis_quarantine/main.py:127
|
||||
#, python-format
|
||||
msgid "%(count)d message%(plural)s deleted successfully"
|
||||
msgstr "%(count)d message%(plural)s supprimé correctement"
|
||||
msgid "%(count)d message deleted successfully"
|
||||
msgid_plural "%(count)d messages deleted successfully"
|
||||
msgstr[0] "%(count)d message supprimé correctement"
|
||||
msgstr[1] "%(count)d messages supprimés correctement"
|
||||
|
||||
#: extensions/amavis_quarantine/main.py:267
|
||||
#, fuzzy, python-format
|
||||
msgid "%(count)d message%(plural)s released successfully"
|
||||
msgstr "%(count)d messages relâché correctement"
|
||||
#: extensions/amavis_quarantine/main.py:168
|
||||
#, python-format
|
||||
msgid "%(count)d message released successfully"
|
||||
msgid_plural "%(count)d messages released successfully"
|
||||
msgstr[0] "%(count)d message relâché correctement"
|
||||
msgstr[1] "%(count)d messages relâchés correctement"
|
||||
|
||||
#: extensions/amavis_quarantine/templates/index.html:94
|
||||
msgid "Delete this selection?"
|
||||
@@ -448,27 +456,27 @@ msgstr "Message de réponse auto. mis à jour."
|
||||
msgid "Change password"
|
||||
msgstr "Changer de mot de passe"
|
||||
|
||||
#: templates/layout.html:44
|
||||
#: templates/layout.html:45
|
||||
msgid "Admin"
|
||||
msgstr ""
|
||||
|
||||
#: templates/layout.html:51
|
||||
#: templates/layout.html:52
|
||||
msgid "Preferences"
|
||||
msgstr "Préférences"
|
||||
|
||||
#: templates/layout.html:58
|
||||
#: templates/layout.html:59
|
||||
msgid "Logout"
|
||||
msgstr "Déconnexion"
|
||||
|
||||
#: templates/layout.html:72 templates/admin/newdomain.html:7
|
||||
#: templates/layout.html:73 templates/admin/newdomain.html:7
|
||||
msgid "New domain"
|
||||
msgstr "Nouveau domaine"
|
||||
|
||||
#: templates/layout.html:79
|
||||
#: templates/layout.html:80
|
||||
msgid "Domains"
|
||||
msgstr "Domaines"
|
||||
|
||||
#: templates/layout.html:86 templates/admin/settings_header.html:6
|
||||
#: templates/layout.html:87 templates/admin/settings_header.html:6
|
||||
msgid "Settings"
|
||||
msgstr "Paramètres"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user