German translation + minor fix about plural forms

This commit is contained in:
tonio
2010-03-02 16:24:39 +01:00
parent 6e69bab730
commit a533fcd920
4 changed files with 744 additions and 147 deletions
+46 -132
View File
@@ -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")
+638
View File
@@ -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."
+37
View File
@@ -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?"
+23 -15
View File
@@ -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"