diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst index c763f91d..bc1e7ee9 100644 --- a/CONTRIBUTING.rst +++ b/CONTRIBUTING.rst @@ -155,7 +155,7 @@ collaborative translation. If you want to help translate django-helpdesk into languages other than English, we encourage you to make use of our Transifex project: -http://www.transifex.net/projects/p/django-helpdesk/resource/core/ +http://www.transifex.com/projects/p/django-helpdesk/resource/core/ Once you have translated content via Transifex, please raise an issue on the project Github page and tag it as "translations" to let us know it's ready to diff --git a/README.rst b/README.rst index e4f4b47d..d7499fa6 100644 --- a/README.rst +++ b/README.rst @@ -80,6 +80,11 @@ Django project. For further installation information see `docs/install.html` and `docs/configuration.html` +Testing +------- + +See quicktest.py for usage details + Upgrading from previous versions -------------------------------- @@ -111,3 +116,4 @@ We're happy to include any type of contribution! This can be: For more information on contributing, please see the `CONTRIBUTING.rst` file. .. _note: http://docs.djangoproject.com/en/dev/ref/databases/#sqlite-string-matching + diff --git a/demo/demodesk/config/settings.py b/demo/demodesk/config/settings.py index 1f50a463..4ade80d6 100644 --- a/demo/demodesk/config/settings.py +++ b/demo/demodesk/config/settings.py @@ -108,8 +108,8 @@ HELPDESK_SHOW_CHANGE_PASSWORD = True # Instead of showing the public web portal first, # we can instead redirect users straight to the login page. HELPDESK_REDIRECT_TO_LOGIN_BY_DEFAULT = False -LOGIN_URL = '/login/' -LOGIN_REDIRECT_URL = '/login/' +LOGIN_URL = 'helpdesk:login' +LOGIN_REDIRECT_URL = 'helpdesk:home' # Database # - by default, we use SQLite3 for the demo, but you can also diff --git a/demo/setup.py b/demo/setup.py index 4109b86d..5361d9ed 100644 --- a/demo/setup.py +++ b/demo/setup.py @@ -13,7 +13,7 @@ project_root = os.path.dirname(here) NAME = 'django-helpdesk-demodesk' DESCRIPTION = 'A demo Django project using django-helpdesk' README = open(os.path.join(here, 'README.rst')).read() -VERSION = '0.3.0b2' +VERSION = '0.3.0b3' #VERSION = open(os.path.join(project_root, 'VERSION')).read().strip() AUTHOR = 'django-helpdesk team' URL = 'https://github.com/django-helpdesk/django-helpdesk' diff --git a/helpdesk/email.py b/helpdesk/email.py index 5fd68a86..ea0316f1 100644 --- a/helpdesk/email.py +++ b/helpdesk/email.py @@ -4,42 +4,35 @@ Django Helpdesk - A Django powered ticket tracker for small enterprise. (c) Copyright 2008 Jutda. Copyright 2018 Timothy Hobbs. All Rights Reserved. See LICENSE for details. """ -from django.core.exceptions import ValidationError -from django.core.files.base import ContentFile -from django.core.files.uploadedfile import SimpleUploadedFile -from django.core.management.base import BaseCommand -from django.db.models import Q -from django.utils.translation import ugettext as _ -from django.utils import encoding, timezone -from django.contrib.auth import get_user_model - -from helpdesk import settings -from helpdesk.lib import safe_template_context, process_attachments -from helpdesk.models import Queue, Ticket, TicketCC, FollowUp, IgnoreEmail - -from datetime import timedelta -import base64 -import binascii +# import base64 import email -from email.header import decode_header -from email.utils import getaddresses, parseaddr, collapse_rfc2231_value import imaplib +import logging import mimetypes -from os import listdir, unlink -from os.path import isfile, join +import os import poplib import re import socket import ssl import sys +from datetime import timedelta +from email.utils import getaddresses +from os.path import isfile, join from time import ctime -from optparse import make_option from bs4 import BeautifulSoup - +from django.contrib.auth import get_user_model +from django.core.exceptions import ValidationError +from django.core.files.uploadedfile import SimpleUploadedFile +from django.db.models import Q +from django.utils import encoding, timezone +from django.utils.translation import ugettext as _ from email_reply_parser import EmailReplyParser -import logging +from helpdesk import settings +from helpdesk.lib import safe_template_context, process_attachments +from helpdesk.models import Queue, Ticket, TicketCC, FollowUp, IgnoreEmail + # import User model, which may be a custom model User = get_user_model() @@ -70,37 +63,48 @@ def process_email(quiet=False): if q.logging_type in logging_types: logger.setLevel(logging_types[q.logging_type]) elif not q.logging_type or q.logging_type == 'none': - logging.disable(logging.CRITICAL) # disable all messages + # disable all handlers so messages go to nowhere + logger.handlers = [] + logger.propagate = False if quiet: logger.propagate = False # do not propagate to root logger that would log to console - logdir = q.logging_dir or '/var/log/helpdesk/' + + # Log messages to specific file only if the queue has it configured + if (q.logging_type in logging_types) and q.logging_dir: # if it's enabled and the dir is set + log_file_handler = logging.FileHandler(join(q.logging_dir, q.slug + '_get_email.log')) + logger.addHandler(log_file_handler) + else: + log_file_handler = None try: - handler = logging.FileHandler(join(logdir, q.slug + '_get_email.log')) - logger.addHandler(handler) - if not q.email_box_last_check: q.email_box_last_check = timezone.now() - timedelta(minutes=30) queue_time_delta = timedelta(minutes=q.email_box_interval or 0) - if (q.email_box_last_check + queue_time_delta) < timezone.now(): process_queue(q, logger=logger) q.email_box_last_check = timezone.now() q.save() finally: + # we must close the file handler correctly if it's created try: - handler.close() + if log_file_handler: + log_file_handler.close() except Exception as e: logging.exception(e) try: - logger.removeHandler(handler) + if log_file_handler: + logger.removeHandler(log_file_handler) except Exception as e: logging.exception(e) def pop3_sync(q, logger, server): server.getwelcome() + try: + server.stls() + except Exception: + logger.warning("POP3 StartTLS failed or unsupported. Connection will be unencrypted.") server.user(q.email_box_user or settings.QUEUE_EMAIL_BOX_USER) server.pass_(q.email_box_pass or settings.QUEUE_EMAIL_BOX_PASSWORD) @@ -138,17 +142,27 @@ def pop3_sync(q, logger, server): def imap_sync(q, logger, server): try: + try: + server.starttl() + except Exception: + logger.warning("IMAP4 StartTLS unsupported or failed. Connection will be unencrypted.") server.login(q.email_box_user or settings.QUEUE_EMAIL_BOX_USER, q.email_box_pass or settings.QUEUE_EMAIL_BOX_PASSWORD) server.select(q.email_box_imap_folder) except imaplib.IMAP4.abort: - logger.error("IMAP login failed. Check that the server is accessible and that the username and password are correct.") + logger.error( + "IMAP login failed. Check that the server is accessible and that " + "the username and password are correct." + ) server.logout() sys.exit() except ssl.SSLError: - logger.error("IMAP login failed due to SSL error. This is often due to a timeout. Please check your connection and try again.") + logger.error( + "IMAP login failed due to SSL error. This is often due to a timeout. " + "Please check your connection and try again." + ) server.logout() sys.exit() @@ -171,7 +185,10 @@ def imap_sync(q, logger, server): else: logger.warn("Message %s was not successfully processed, and will be left on IMAP server" % num) except imaplib.IMAP4.error: - logger.error("IMAP retrieve failed. Is the folder '%s' spelled correctly, and does it exist on the server?" % q.email_box_imap_folder) + logger.error( + "IMAP retrieve failed. Is the folder '%s' spelled correctly, and does it exist on the server?", + q.email_box_imap_folder + ) server.expunge() server.close() @@ -243,7 +260,7 @@ def process_queue(q, logger): elif email_box_type == 'local': mail_dir = q.email_box_local_dir or '/var/lib/mail/helpdesk/' - mail = [join(mail_dir, f) for f in listdir(mail_dir) if isfile(join(mail_dir, f))] + mail = [join(mail_dir, f) for f in os.listdir(mail_dir) if isfile(join(mail_dir, f))] logger.info("Found %d messages in local mailbox directory" % len(mail)) logger.info("Found %d messages in local mailbox directory" % len(mail)) @@ -253,15 +270,15 @@ def process_queue(q, logger): full_message = encoding.force_text(f.read(), errors='replace') ticket = object_from_message(message=full_message, queue=q, logger=logger) if ticket: - logger.info("Successfully processed message %d, ticket/comment created." % i) + logger.info("Successfully processed message %d, ticket/comment created.", i) try: - unlink(m) # delete message file if ticket was successful - except OSError: - logger.error("Unable to delete message %d." % i) + os.unlink(m) # delete message file if ticket was successful + except OSError as e: + logger.error("Unable to delete message %d (%s).", i, str(e)) else: - logger.info("Successfully deleted message %d." % i) + logger.info("Successfully deleted message %d.", i) else: - logger.warn("Message %d was not successfully processed, and will be left in local directory" % i) + logger.warn("Message %d was not successfully processed, and will be left in local directory", i) def decodeUnknown(charset, string): @@ -277,7 +294,11 @@ def decodeUnknown(charset, string): def decode_mail_headers(string): decoded = email.header.decode_header(string) - return u' '.join([str(msg, encoding=charset, errors='replace') if charset else str(msg) for msg, charset in decoded]) + return u' '.join([ + str(msg, encoding=charset, errors='replace') if charset else str(msg) + for msg, charset + in decoded + ]) def create_ticket_cc(ticket, cc_list): @@ -305,7 +326,7 @@ def create_ticket_cc(ticket, cc_list): try: ticket_cc = subscribe_to_ticket_updates(ticket=ticket, user=user, email=cced_email) new_ticket_ccs.append(ticket_cc) - except ValidationError as err: + except ValidationError: pass return new_ticket_ccs @@ -362,7 +383,6 @@ def create_object_from_email_message(message, ticket_id, payload, files, logger) logger.debug("Created new ticket %s-%s" % (ticket.queue.slug, ticket.id)) new = True - update = '' # Old issue being re-opened elif ticket.status == Ticket.CLOSED_STATUS: @@ -389,7 +409,10 @@ def create_object_from_email_message(message, ticket_id, payload, files, logger) attached = process_attachments(f, files) for att_file in attached: - logger.info("Attachment '%s' (with size %s) successfully added to ticket from email." % (att_file[0], att_file[1].size)) + logger.info( + "Attachment '%s' (with size %s) successfully added to ticket from email.", + att_file[0], att_file[1].size + ) context = safe_template_context(ticket) @@ -402,8 +425,8 @@ def create_object_from_email_message(message, ticket_id, payload, files, logger) ticket_cc_list = TicketCC.objects.filter(ticket=ticket).all().values_list('email', flat=True) - for email in ticket_cc_list: - notifications_to_be_sent.append(email) + for email_address in ticket_cc_list: + notifications_to_be_sent.append(email_address) # send mail to appropriate people now depending on what objects # were created and who was CC'd @@ -453,8 +476,6 @@ def object_from_message(message, queue, logger): # correctly. Not ideal, but this seems to work for now. sender_email = email.utils.getaddresses(['\"' + sender.replace('<', '\" <')])[0][1] - body_plain, body_html = '', '' - cc = message.get_all('cc', None) if cc: # first, fixup the encoding if necessary @@ -530,18 +551,23 @@ def object_from_message(message, queue, logger): if not name: ext = mimetypes.guess_extension(part.get_content_type()) name = "part-%i%s" % (counter, ext) + + # FIXME: this code gets the paylods, then does something with it and then completely ignores it + # writing the part.get_payload(decode=True) instead; and then the payload variable is + # replaced by some dict later. + # the `payloadToWrite` has been also ignored so was commented payload = part.get_payload() if isinstance(payload, list): payload = payload.pop().as_string() - payloadToWrite = payload + # payloadToWrite = payload # check version of python to ensure use of only the correct error type non_b64_err = TypeError try: logger.debug("Try to base64 decode the attachment payload") - payloadToWrite = base64.decodebytes(payload) + # payloadToWrite = base64.decodebytes(payload) except non_b64_err: logger.debug("Payload was not base64 encoded, using raw bytes") - payloadToWrite = payload + # payloadToWrite = payload files.append(SimpleUploadedFile(name, part.get_payload(decode=True), mimetypes.guess_type(name)[0])) logger.debug("Found MIME attachment %s" % name) diff --git a/helpdesk/fixtures/emailtemplate.json b/helpdesk/fixtures/emailtemplate.json index c048795b..2249d5e9 100644 --- a/helpdesk/fixtures/emailtemplate.json +++ b/helpdesk/fixtures/emailtemplate.json @@ -739,7 +739,7 @@ "heading" : "Ticket mis à jour", "subject" : "(Mis à jour)", "template_name" : "updated_cc", - "html" : "
Bonjour,
\r\n\r\nCe courriel indicatif permet de vous prévenir que le ticket {{ ticket.ticket }} (\"{{ ticket.title }}\") par {{ ticket.submitter_email }} a été mis à jour.
\r\n\r\n\r\nFile d'attente : {{ ticket.ticket }}
\r\nQueue : {{ queue.title }}
\r\nTitre : {{ ticket.title }}
\r\nOuvert le : {{ ticket.created|date:\"l j F Y à H:i\" }}
\r\nSoumis par : {{ ticket.submitter_email|default:\"Inconnu\" }}
\r\nPriorité : {{ ticket.get_priority_display }}
\r\nStatut : {{ ticket.get_status }}
\r\nAssigné à : {{ ticket.get_assigned_to }}
\r\nVoir le ticket en ligne pour le mettre à jour (après authentification)
Pour mémoire, la description originelle était :
\r\n\r\n{{ ticket.description|linebreaksbr }}\r\n\r\n
Le commentaire suivant a été ajouté :
\r\n\r\n{{ comment }}\r\n\r\n
Cette information{% if private %}n' a pas{% else %}a{% endif %}été envoyé par mail à l'émetteur.
" + "html" : "Bonjour,
\r\n\r\nCe courriel indicatif permet de vous prévenir que le ticket {{ ticket.ticket }} (\"{{ ticket.title }}\") par {{ ticket.submitter_email }} a été mis à jour.
\r\n\r\n\r\nFile d'attente : {{ ticket.ticket }}
\r\nQueue : {{ queue.title }}
\r\nTitre : {{ ticket.title }}
\r\nOuvert le : {{ ticket.created|date:\"l j F Y à H:i\" }}
\r\nSoumis par : {{ ticket.submitter_email|default:\"Inconnu\" }}
\r\nPriorité : {{ ticket.get_priority_display }}
\r\nStatut : {{ ticket.get_status }}
\r\nAssigné à : {{ ticket.get_assigned_to }}
\r\nVoir le ticket en ligne pour le mettre à jour (après authentification)
Pour mémoire, la description originelle était :
\r\n\r\n{{ ticket.description|linebreaksbr }}\r\n\r\n
Le commentaire suivant a été ajouté :
\r\n\r\n{{ comment }}\r\n\r\n
Cette information {% if private %}n' a pas{% else %}a{% endif %} été envoyé par mail à l'émetteur.
" }, "pk" : 62 }, @@ -750,8 +750,8 @@ "heading" : "Ticket mis à jour", "template_name" : "updated_owner", "subject" : "(Mis à jour - à vous)", - "html" : "Bonjour,
\r\n\r\nCe courriel indicatif permet de vous prévenir que le ticket {{ ticket.ticket }} (\"{{ ticket.title }}\") par {{ ticket.submitter_email }}, qui vous est assigné, a été mis à jour.
\r\n\r\n\r\nFile d'attente : {{ ticket.ticket }}
\r\nQueue : {{ queue.title }}
\r\nTitre : {{ ticket.title }}
\r\nOuvert le : {{ ticket.created|date:\"l j F Y à H:i\" }}
\r\nSoumis par : {{ ticket.submitter_email|default:\"Inconnu\" }}
\r\nPriorité : {{ ticket.get_priority_display }}
\r\nStatut : {{ ticket.get_status }}
\r\nAssigné à : {{ ticket.get_assigned_to }}
\r\nVoir le ticket en ligne pour le mettre à jour (après authentification)
Pour mémoire, la description originelle était :
\r\n\r\n{{ ticket.description|linebreaksbr }}\r\n\r\n
Le commentaire suivant a été ajouté :
\r\n\r\n{{ comment }}\r\n\r\n
Cette information{% if private %}n' a pas{% else %}a{% endif %}été envoyé par mail à l'émetteur.
", - "plain_text" : "Hello,\r\n\r\nCe courriel indicatif permet de vous prévenir que le ticket {{ ticket.ticket }} (\"{{ ticket.title }}\") par {{ ticket.submitter_email }}, qui vous est assigné, a été mis à jour.\r\n\r\nIdentifiant : {{ ticket.ticket }}\r\nFile d'attente : {{ queue.title }}\r\nTitre : {{ ticket.title }}\r\nOuvert le : {{ ticket.created|date:\"l j F Y à H:i\" }}\r\nSoumis par : {{ ticket.submitter_email|default:\"Inconnu\" }}\r\nPriorité : {{ ticket.get_priority_display }}\r\nStatut : {{ ticket.get_status }}\r\nAssigné à : {{ ticket.get_assigned_to }}\r\nAdresse : {{ ticket.staff_url }}\r\n\r\nDescription originelle :\r\n\r\n{{ ticket.description }}\r\n\r\nLe commentaire suivant a été ajouté :\r\n\r\n{{ comment }}\r\n\r\nCette information{% if private %}n' a pas{% else %}a{% endif %}été envoyé par mail à l'émetteur.\r\n\r\n", + "html" : "Bonjour,
\r\n\r\nCe courriel indicatif permet de vous prévenir que le ticket {{ ticket.ticket }} (\"{{ ticket.title }}\") par {{ ticket.submitter_email }}, qui vous est assigné, a été mis à jour.
\r\n\r\n\r\nFile d'attente : {{ ticket.ticket }}
\r\nQueue : {{ queue.title }}
\r\nTitre : {{ ticket.title }}
\r\nOuvert le : {{ ticket.created|date:\"l j F Y à H:i\" }}
\r\nSoumis par : {{ ticket.submitter_email|default:\"Inconnu\" }}
\r\nPriorité : {{ ticket.get_priority_display }}
\r\nStatut : {{ ticket.get_status }}
\r\nAssigné à : {{ ticket.get_assigned_to }}
\r\nVoir le ticket en ligne pour le mettre à jour (après authentification)
Pour mémoire, la description originelle était :
\r\n\r\n{{ ticket.description|linebreaksbr }}\r\n\r\n
Le commentaire suivant a été ajouté :
\r\n\r\n{{ comment }}\r\n\r\n
Cette information {% if private %}n' a pas{% else %}a{% endif %} été envoyé par mail à l'émetteur.
", + "plain_text" : "Hello,\r\n\r\nCe courriel indicatif permet de vous prévenir que le ticket {{ ticket.ticket }} (\"{{ ticket.title }}\") par {{ ticket.submitter_email }}, qui vous est assigné, a été mis à jour.\r\n\r\nIdentifiant : {{ ticket.ticket }}\r\nFile d'attente : {{ queue.title }}\r\nTitre : {{ ticket.title }}\r\nOuvert le : {{ ticket.created|date:\"l j F Y à H:i\" }}\r\nSoumis par : {{ ticket.submitter_email|default:\"Inconnu\" }}\r\nPriorité : {{ ticket.get_priority_display }}\r\nStatut : {{ ticket.get_status }}\r\nAssigné à : {{ ticket.get_assigned_to }}\r\nAdresse : {{ ticket.staff_url }}\r\n\r\nDescription originelle :\r\n\r\n{{ ticket.description }}\r\n\r\nLe commentaire suivant a été ajouté :\r\n\r\n{{ comment }}\r\n\r\nCette information {% if private %}n' a pas{% else %}a{% endif %} été envoyé par mail à l'émetteur.\r\n\r\n", "locale" : "fr" } }, diff --git a/helpdesk/forms.py b/helpdesk/forms.py index d6779c69..92594fca 100644 --- a/helpdesk/forms.py +++ b/helpdesk/forms.py @@ -98,6 +98,9 @@ class EditTicketForm(CustomFieldMixin, forms.ModelForm): try: current_value = TicketCustomFieldValue.objects.get(ticket=self.instance, field=field) initial_value = current_value.value + # If it is boolean field, transform the value to a real boolean instead of a string + if current_value.field.data_type == 'boolean': + initial_value = initial_value == 'True' except TicketCustomFieldValue.DoesNotExist: initial_value = None instanceargs = { diff --git a/helpdesk/locale/cs/LC_MESSAGES/django.po b/helpdesk/locale/cs/LC_MESSAGES/django.po index 657c55df..4a601d3d 100644 --- a/helpdesk/locale/cs/LC_MESSAGES/django.po +++ b/helpdesk/locale/cs/LC_MESSAGES/django.po @@ -502,7 +502,7 @@ msgstr "Složka pro log soubory" #: third_party/django-helpdesk/helpdesk/models.py:306 msgid "" "If logging is enabled, what directory should we use to store log files for " -"this queue? If no directory is set, default to /var/log/helpdesk/" +"this queue? The standard logging mechanims are used if no directory is set" msgstr "" #: third_party/django-helpdesk/helpdesk/models.py:317 diff --git a/helpdesk/locale/de/LC_MESSAGES/django.mo b/helpdesk/locale/de/LC_MESSAGES/django.mo index 1eb489d0..e268d5e4 100644 Binary files a/helpdesk/locale/de/LC_MESSAGES/django.mo and b/helpdesk/locale/de/LC_MESSAGES/django.mo differ diff --git a/helpdesk/locale/de/LC_MESSAGES/django.po b/helpdesk/locale/de/LC_MESSAGES/django.po index 4cd08e31..65872500 100644 --- a/helpdesk/locale/de/LC_MESSAGES/django.po +++ b/helpdesk/locale/de/LC_MESSAGES/django.po @@ -1,9 +1,9 @@ -# django-helpdesk English language translation +# django-helpdesk German language translation # Copyright (C) 2011 Ross Poulton # This file is distributed under the same license as the django-helpdesk package. -# -# Translators: +# # Translators: +# Michael P. JungThe following e-mail addresses are currently being ignored by the incoming e-mail processor. You can add a new e-mail address to the list or delete any of the items below as required.
" +"The following e-mail addresses are currently being ignored by the " +"incoming e-mail processor. You can add a new item or delete any of the items " +"below as required.
" msgstr "" +"\n" +"Die nachfolgenden E-Mail-Adressen werden zur Zeit beim verarbeiten von " +"eingehenden E-Mails ignoriert. Sie können je nach Bedarf neue Einträge " +"hinzufügen oder Einträge aus der untenstehenden Liste löschen.\"" -#: templates/helpdesk/email_ignore_list.html:13 +#: templates/helpdesk/email_ignore_list.html:19 +msgid "Add an Email" +msgstr "E-Mail hinzufügen" + +#: templates/helpdesk/email_ignore_list.html:26 msgid "Date Added" -msgstr "" +msgstr "Datum der Eintragung" -#: templates/helpdesk/email_ignore_list.html:13 +#: templates/helpdesk/email_ignore_list.html:28 msgid "Keep in mailbox?" -msgstr "" +msgstr "In Postfach behalten?" -#: templates/helpdesk/email_ignore_list.html:21 -#: templates/helpdesk/ticket_list.html:260 +#: templates/helpdesk/email_ignore_list.html:29 +#: templates/helpdesk/email_ignore_list.html:40 +#: templates/helpdesk/include/unassigned.html:29 +#: templates/helpdesk/include/unassigned.html:69 +#: templates/helpdesk/ticket_cc_list.html:40 +#: templates/helpdesk/ticket_cc_list.html:64 +#: templates/helpdesk/ticket_desc_table.html:16 +#: templates/helpdesk/ticket_list.html:103 +msgid "Delete" +msgstr "Löschen" + +#: templates/helpdesk/email_ignore_list.html:38 +#: templates/helpdesk/ticket_list.html:87 msgid "All" msgstr "Alle" -#: templates/helpdesk/email_ignore_list.html:22 +#: templates/helpdesk/email_ignore_list.html:39 msgid "Keep" msgstr "Behalten" -#: templates/helpdesk/email_ignore_list.html:29 +#: templates/helpdesk/email_ignore_list.html:56 msgid "" "Note: If the 'Keep' option is not selected, emails sent " "from that address will be deleted permanently." msgstr "" +"Note: Wenn die 'Behalten' Option nicht gesetzt ist, dann " +"werden E-Mails, welche an diese Adresse geschickt werden dauerhaft gelöscht." + +#: templates/helpdesk/filters/date.html:4 +msgid "Date (From)" +msgstr "Datum (von)" + +#: templates/helpdesk/filters/date.html:10 +msgid "Date (To)" +msgstr "Datum (bis)" + +#: templates/helpdesk/filters/date.html:19 +msgid "Use YYYY-MM-DD date format, eg 2018-01-30" +msgstr "Benutzen Sie das Format YYYY-MM-DD, z.B. 2011-05-29" + +#: templates/helpdesk/filters/kbitems.html:6 +msgid "Knowledge base item(s)" +msgstr "Einträge der Wissensdatenbank" + +#: templates/helpdesk/filters/kbitems.html:12 +msgid "Uncategorized" +msgstr "Nicht kategorisiert" + +#: templates/helpdesk/filters/kbitems.html:23 +#: templates/helpdesk/filters/queue.html:18 +#: templates/helpdesk/filters/status.html:14 +msgid "Ctrl-click to select multiple options" +msgstr "Strg-Click um mehrere Optionen auszuwählen" + +#: templates/helpdesk/filters/keywords.html:4 +#: templates/helpdesk/ticket_list.html:179 +msgid "Keywords" +msgstr "Schlagwort" + +#: templates/helpdesk/filters/keywords.html:12 +msgid "" +"Keywords are case-insensitive, and will be looked for pretty much everywhere " +"possible. Prepend with 'queue:' or 'priority:' to search by queue or " +"priority. You can also use the keyword OR to combine multiple searches." +msgstr "" +"Schlagworte unterscheiden nicht zwischen Groß- und Kleinschreibung. Nach " +"ihnen wirt praktisch überall gesucht. Stellen Sie 'queue:' oder 'priority:' " +"voran um nach Warteschlange oder Priorität zu suchen. Sie können auch das " +"Schlüsselwort 'OR' verwenden um mehrere Abfragen zu kombinieren." + +#: templates/helpdesk/filters/owner.html:6 +msgid "Owner(s)" +msgstr "Besitzer" + +#: templates/helpdesk/filters/owner.html:17 +msgid "(ME)" +msgstr "(Ich)" + +#: templates/helpdesk/filters/owner.html:25 +msgid "Ctrl-Click to select multiple options" +msgstr "Strg-Click um mehrere Optionen auszuwählen" + +#: templates/helpdesk/filters/queue.html:6 +msgid "Queue(s)" +msgstr "Warteschlange(n)" + +#: templates/helpdesk/filters/sorting.html:5 +#: templates/helpdesk/ticket_list.html:167 +msgid "Sorting" +msgstr "Sortierung" + +#: templates/helpdesk/filters/sorting.html:25 +#: templates/helpdesk/ticket.html:176 templates/helpdesk/ticket_list.html:75 +#: templates/helpdesk/ticket_list.html:170 views/staff.py:635 +#: views/staff.py:869 +msgid "Owner" +msgstr "Eigentümer" + +#: templates/helpdesk/filters/sorting.html:30 +msgid "Reverse" +msgstr "Rückwärts" + +#: templates/helpdesk/filters/sorting.html:38 +msgid "Ordering applied to tickets" +msgstr "Sortierreihenfolge der Tickets" + +#: templates/helpdesk/filters/status.html:6 +msgid "Status(es)" +msgstr "Status" #: templates/helpdesk/followup_edit.html:2 msgid "Edit followup" -msgstr "" +msgstr "Follow-up bearbeiten" -#: templates/helpdesk/followup_edit.html:9 +#: templates/helpdesk/followup_edit.html:20 +#: templates/helpdesk/followup_edit.html:30 msgid "Edit FollowUp" -msgstr "" +msgstr "Follow-up bearbeiten" -#: templates/helpdesk/followup_edit.html:14 +#: templates/helpdesk/followup_edit.html:37 msgid "Reassign ticket:" -msgstr "" +msgstr "Ticket zuweisen:" -#: templates/helpdesk/followup_edit.html:16 +#: templates/helpdesk/followup_edit.html:39 msgid "Title:" -msgstr "" +msgstr "Titel:" -#: templates/helpdesk/followup_edit.html:18 +#: templates/helpdesk/followup_edit.html:41 msgid "Comment:" msgstr "Kommentar:" -#: templates/helpdesk/kb_category.html:4 -#: templates/helpdesk/kb_category.html:12 +#: templates/helpdesk/include/alert_form_errors.html:4 +msgid "There are errors in the form" +msgstr "Es gibt Fehler in den Formulareingaben" + +#: templates/helpdesk/include/stats.html:15 +msgid "View Tickets" +msgstr "Tickets anzeigen" + +#: templates/helpdesk/include/stats.html:15 +msgid "No tickets in this range" +msgstr "Keine Tickets in diesem Zeitraum" + +#: templates/helpdesk/include/tickets.html:7 +msgid "Your Tickets" +msgstr "Ihre Tickets" + +#: templates/helpdesk/include/tickets.html:18 +msgid "Last Update" +msgstr "Letzte Änderung" + +#: templates/helpdesk/include/tickets.html:31 +msgid "You do not have any pending tickets." +msgstr "Sie haben keine aussehende Tickets." + +#: templates/helpdesk/include/unassigned.html:6 +#: templates/helpdesk/include/unassigned.html:46 +msgid "(pick up a ticket if you start to work on it)" +msgstr "(nehmen Sie ein Ticket an dem Sie arbeiten wollen)" + +#: templates/helpdesk/include/unassigned.html:17 +#: templates/helpdesk/include/unassigned.html:57 +msgid "Actions" +msgstr "Aktionen" + +#: templates/helpdesk/include/unassigned.html:28 +#: templates/helpdesk/include/unassigned.html:68 +msgid "Take" +msgstr "Nehmen" + +#: templates/helpdesk/include/unassigned.html:33 +#: templates/helpdesk/include/unassigned.html:73 +#: templates/helpdesk/report_index.html:61 +msgid "There are no unassigned tickets." +msgstr "Es existieren derzeit keine unzugewiesenen Tickets." + +#: templates/helpdesk/include/unassigned.html:46 +msgid "KBItem:" +msgstr "WDBEintrag:" + +#: templates/helpdesk/include/unassigned.html:46 +msgid "Team:" +msgstr "Team:" + +#: templates/helpdesk/kb_category.html:4 templates/helpdesk/kb_category.html:10 +#: templates/helpdesk/kb_category_base.html:3 #, python-format -msgid "Knowledgebase Category: %(kbcat)s" -msgstr "" +msgid "%(kbcat)s" +msgstr "%(kbcat)s" -#: templates/helpdesk/kb_category.html:6 -#, python-format -msgid "You are viewing all items in the %(kbcat)s category." -msgstr "" - -#: templates/helpdesk/kb_category.html:13 -msgid "Article" -msgstr "Artikel" - -#: templates/helpdesk/kb_index.html:4 templates/helpdesk/navigation.html:21 -#: templates/helpdesk/navigation.html:71 +#: templates/helpdesk/kb_category.html:8 templates/helpdesk/kb_index.html:3 +#: templates/helpdesk/kb_index.html:7 templates/helpdesk/kb_index.html:13 +#: templates/helpdesk/navigation-sidebar.html:53 +#: templates/helpdesk/navigation-sidebar.html:75 msgid "Knowledgebase" msgstr "Wissensdatenbank" -#: templates/helpdesk/kb_index.html:6 +#: templates/helpdesk/kb_category_base.html:34 +msgid "open tickets" +msgstr "Offene Tickets" + +#: templates/helpdesk/kb_category_base.html:39 +#: templates/helpdesk/kb_category_base.html:60 +msgid "Contact a human" +msgstr "Einen Menschen kontaktieren" + +#: templates/helpdesk/kb_category_base.html:44 +#, python-format +msgid "%(recommendations)s people found this answer useful of %(votes)s" +msgstr "" +"%(recommendations)s von %(votes)s Menschen fanden diese Antwort nützlich" + +#: templates/helpdesk/kb_index.html:15 msgid "" -"We have listed a number of knowledgebase articles for your perusal in the " +"We have listed a number of Knowledgebase articles for your perusal in the " "following categories. Please check to see if any of these articles address " "your problem prior to opening a support ticket." msgstr "" +"Wir haben einige Artikel bezüglich dieser Kategorie in der Wissensdatenbank " +"hinterlegt. Bitte prüfen Sie erst ob es bereits einen Artikel gibt der ihr " +"Problem löst, bevor Sie ein neues Ticket erstellen." -#: templates/helpdesk/kb_index.html:10 -#: templates/helpdesk/public_homepage.html:10 -msgid "Knowledgebase Categories" -msgstr "Wissendatenbank-Kategorien" +#: templates/helpdesk/kb_index.html:26 +#: templates/helpdesk/public_homepage.html:27 +msgid "View articles" +msgstr "Artikel anzeigen" -#: templates/helpdesk/kb_item.html:4 -#, python-format -msgid "Knowledgebase: %(item)s" -msgstr "Wissensdatenbank: %(item)s" +#: templates/helpdesk/navigation-header.html:7 +msgid "Helpdesk" +msgstr "Helpdesk" -#: templates/helpdesk/kb_item.html:16 -#, python-format -msgid "" -"View other %(category_title)s " -"articles, or continue viewing other knowledgebase " -"articles." -msgstr "" - -#: templates/helpdesk/kb_item.html:18 -msgid "Feedback" -msgstr "Feedback" - -#: templates/helpdesk/kb_item.html:20 -msgid "" -"We give our users an opportunity to vote for items that they believe have " -"helped them out, in order for us to better serve future customers. We would " -"appreciate your feedback on this article. Did you find it useful?" -msgstr "" - -#: templates/helpdesk/kb_item.html:23 -msgid "This article was useful to me" -msgstr "Dieser Artikel war hilfreich." - -#: templates/helpdesk/kb_item.html:24 -msgid "This article was not useful to me" -msgstr "Dieser Artikel war nicht hilfreich." - -#: templates/helpdesk/kb_item.html:27 -msgid "The results of voting by other readers of this article are below:" -msgstr "" - -#: templates/helpdesk/kb_item.html:30 -#, python-format -msgid "Recommendations: %(recommendations)s" -msgstr "Empfehlungen: %(recommendations)s" - -#: templates/helpdesk/kb_item.html:31 -#, python-format -msgid "Votes: %(votes)s" -msgstr "" - -#: templates/helpdesk/kb_item.html:32 -#, python-format -msgid "Overall Rating: %(score)s" -msgstr "" - -#: templates/helpdesk/navigation.html:16 templates/helpdesk/navigation.html:64 -msgid "Dashboard" -msgstr "Dashboard" - -#: templates/helpdesk/navigation.html:18 -msgid "New Ticket" -msgstr "Neues Ticket" - -#: templates/helpdesk/navigation.html:19 -msgid "Stats" -msgstr "Statistiken" - -#: templates/helpdesk/navigation.html:24 -msgid "Saved Query" -msgstr "" - -#: templates/helpdesk/navigation.html:39 -msgid "Change password" -msgstr "" - -#: templates/helpdesk/navigation.html:50 +#: templates/helpdesk/navigation-header.html:17 msgid "Search..." msgstr "Suchen..." -#: templates/helpdesk/navigation.html:50 +#: templates/helpdesk/navigation-header.html:17 msgid "Enter a keyword, or a ticket number to jump straight to that ticket." msgstr "" +"Geben Sie ein Schlagwort ein oder eine Ticketnummer ein um direkt zum Ticket " +"zu springen." -#: templates/helpdesk/navigation.html:73 +#: templates/helpdesk/navigation-header.html:21 +#: templates/helpdesk/ticket_list.html:123 +msgid "Go" +msgstr "Los" + +#: templates/helpdesk/navigation-header.html:52 +#: templates/helpdesk/rss_list.html:4 templates/helpdesk/rss_list.html:16 +msgid "RSS Feeds" +msgstr "RSS-Feeds" + +#: templates/helpdesk/navigation-header.html:54 +#: templates/helpdesk/registration/change_password.html:2 +#: templates/helpdesk/registration/change_password_done.html:2 +msgid "Change password" +msgstr "Passwort ändern" + +#: templates/helpdesk/navigation-header.html:58 +#: templates/helpdesk/system_settings.html:15 +msgid "System Settings" +msgstr "Systemeinstellungen" + +#: templates/helpdesk/navigation-header.html:61 +#: templates/helpdesk/navigation-header.html:80 msgid "Logout" msgstr "Abmelden" -#: templates/helpdesk/navigation.html:73 +#: templates/helpdesk/navigation-header.html:68 +#: templates/helpdesk/navigation-sidebar.html:9 +msgid "Dashboard" +msgstr "Dashboard" + +#: templates/helpdesk/navigation-header.html:82 msgid "Log In" msgstr "Anmelden" -#: templates/helpdesk/public_change_language.html:2 -#: templates/helpdesk/public_homepage.html:73 -#: templates/helpdesk/public_view_form.html:4 -#: templates/helpdesk/public_view_ticket.html:2 -msgid "View a Ticket" +#: templates/helpdesk/navigation-sidebar.html:15 +msgid "All Tickets" +msgstr "Alle Tickets" + +#: templates/helpdesk/navigation-sidebar.html:21 +#: templates/helpdesk/report_output.html:23 +msgid "Saved Queries" +msgstr "Gespeicherte Abfragen" + +#: templates/helpdesk/navigation-sidebar.html:33 +msgid "" +"No saved queries currently available. You can create one in the All Tickets " +"page." msgstr "" +"Keine gespeicherten Abfragen verfügbar. Sie können neue auf der Alle Tickets " +"Seite erstellen" + +#: templates/helpdesk/navigation-sidebar.html:40 +#: templates/helpdesk/navigation-sidebar.html:68 +msgid "New Ticket" +msgstr "Neues Ticket" + +#: templates/helpdesk/navigation-sidebar.html:46 +msgid "Reports" +msgstr "Berichte" + +#: templates/helpdesk/navigation-sidebar.html:62 +msgid "Homepage" +msgstr "Startseite" + +#: templates/helpdesk/public_change_language.html:2 +#: templates/helpdesk/public_homepage.html:54 +#: templates/helpdesk/public_view_form.html:4 +#: templates/helpdesk/public_view_ticket.html:3 +msgid "View a Ticket" +msgstr "Ticket anzeigen" #: templates/helpdesk/public_change_language.html:5 msgid "Change the display language" msgstr "Anzeigesprache ändern" -#: templates/helpdesk/public_homepage.html:6 +#: templates/helpdesk/public_create_ticket_base.html:22 +msgid "" +"Public ticket submission is disabled. Please contact the administrator for " +"assistance." +msgstr "" +"Öffentliche Einreichung von Tickets ist deaktiert. Bitte kontakieren Sie den " +"Administrator für Unterstütztung." + +#: templates/helpdesk/public_homepage.html:4 +msgid "Welcome to Helpdesk" +msgstr "Willkommen zum Helpdesk" + +#: templates/helpdesk/public_homepage.html:18 msgid "Knowledgebase Articles" msgstr "Wissensdatenbank-Artikel" -#: templates/helpdesk/public_homepage.html:28 -msgid "All fields are required." -msgstr "" - -#: templates/helpdesk/public_homepage.html:66 +#: templates/helpdesk/public_homepage.html:47 msgid "Please use button at upper right to login first." -msgstr "" +msgstr "Bitten benutzen Sie zuerst den Button oben rechts um sich anzumelden." -#: templates/helpdesk/public_homepage.html:82 +#: templates/helpdesk/public_homepage.html:64 #: templates/helpdesk/public_view_form.html:15 msgid "Your E-mail Address" msgstr "Ihre E-Mail-Adresse" -#: templates/helpdesk/public_homepage.html:86 +#: templates/helpdesk/public_homepage.html:70 #: templates/helpdesk/public_view_form.html:19 msgid "View Ticket" msgstr "Ticket betrachten" #: templates/helpdesk/public_spam.html:4 msgid "Unable To Open Ticket" -msgstr "" +msgstr "Ticket konnte nicht geöffnet werden" #: templates/helpdesk/public_spam.html:5 msgid "Sorry, but there has been an error trying to submit your ticket." -msgstr "" +msgstr "Entschuldigung, es gab einen Fehler beim Speichern Ihres Tickets." #: templates/helpdesk/public_spam.html:6 msgid "" @@ -1595,804 +2056,1155 @@ msgid "" "message. Be careful to avoid sounding 'spammy', and if you have heaps of " "links please try removing them if possible." msgstr "" +"Unser System hat ihren Eintrag als Spam klassifiziert, " +"daher sind wir nicht in der Lage ihn zu speichern. Wenn das kein Spam ist, " +"dann navigieren sie zurück und geben ihre Nachricht erneut ein. Passen Sie " +"bitte auf keinen Text zu verpassen der wie ein 'Spamnachricht'. Falls ihr " +"Text viele Links enthält versuchen Sie diese wenn möglich zu entfernen." #: templates/helpdesk/public_spam.html:7 msgid "" "We are sorry for any inconvenience, however this check is required to avoid " "our helpdesk resources being overloaded by spammers." msgstr "" +"Es tut uns leid für diese Unannehmlichkeit. Diese Prüfung ist leider " +"notwendig um unseren Helpdesk vor Spam zu schützen." #: templates/helpdesk/public_view_form.html:8 msgid "Error:" msgstr "Fehler:" -#: templates/helpdesk/public_view_ticket.html:9 +#: templates/helpdesk/public_view_ticket.html:10 #, python-format msgid "Queue: %(queue_name)s" msgstr "Ticketsammlung: %(queue_name)s" -#: templates/helpdesk/public_view_ticket.html:13 -#: templates/helpdesk/ticket_desc_table.html:32 +#: templates/helpdesk/public_view_ticket.html:14 +#: templates/helpdesk/ticket_desc_table.html:30 msgid "Submitted On" -msgstr "" +msgstr "Erstellt am" -#: templates/helpdesk/public_view_ticket.html:35 +#: templates/helpdesk/public_view_ticket.html:20 +msgid "Due On" +msgstr "Fällig am" + +#: templates/helpdesk/public_view_ticket.html:44 msgid "Tags" msgstr "Tags" -#: templates/helpdesk/public_view_ticket.html:48 -#: templates/helpdesk/ticket_desc_table.html:26 -msgid "Accept" -msgstr "Akzeptieren" - -#: templates/helpdesk/public_view_ticket.html:48 -#: templates/helpdesk/ticket_desc_table.html:26 +#: templates/helpdesk/public_view_ticket.html:57 +#: templates/helpdesk/ticket_desc_table.html:100 msgid "Accept and Close" msgstr "Akzeptieren und schließen" -#: templates/helpdesk/public_view_ticket.html:57 -#: templates/helpdesk/ticket.html:66 +#: templates/helpdesk/public_view_ticket.html:66 +#: templates/helpdesk/ticket.html:42 msgid "Follow-Ups" -msgstr "" +msgstr "Follow-ups" -#: templates/helpdesk/public_view_ticket.html:65 -#: templates/helpdesk/ticket.html:100 +#: templates/helpdesk/public_view_ticket.html:74 +#: templates/helpdesk/ticket.html:57 #, python-format msgid "Changed %(field)s from %(old_value)s to %(new_value)s." +msgstr "%(field)s geändert von %(old_value)s nach %(new_value)s." + +#: templates/helpdesk/public_view_ticket.html:92 +#: templates/helpdesk/ticket.html:104 +msgid "Use a Pre-set Reply" +msgstr "Eine vorgefertigte Antwort verwenden" + +#: templates/helpdesk/public_view_ticket.html:92 +#: templates/helpdesk/ticket.html:104 templates/helpdesk/ticket.html:153 +#: templates/helpdesk/ticket.html:161 +msgid "(Optional)" +msgstr "(Optional)" + +#: templates/helpdesk/public_view_ticket.html:94 +#: templates/helpdesk/ticket.html:106 +msgid "" +"Selecting a pre-set reply will over-write your comment below. You can then " +"modify the pre-set reply to your liking before saving this update." msgstr "" +"Die Auswahl einer vorgefertigten Antwort überschreibt den untenstehenden " +"Kommentar. Sie können anschließend den Text nach ihrer Vorstellung " +"bearbeiten bevor Sie die Antwort speichern." + +#: templates/helpdesk/public_view_ticket.html:97 +#: templates/helpdesk/ticket.html:109 +msgid "Comment / Resolution" +msgstr "Kommentar / Lösung" + +#: templates/helpdesk/public_view_ticket.html:99 +#: templates/helpdesk/ticket.html:111 +msgid "" +"You can insert ticket and queue details in your message. For more " +"information, see the context help page." +msgstr "" +"Sie können Ticket- und Warteschlangendetails in ihrer Nachricht einfügen. " +"Für mehr Informationen, siehe Ersetzungen " +"Hilfeseite." + +#: templates/helpdesk/public_view_ticket.html:101 +#: templates/helpdesk/ticket.html:114 +msgid "" +"This ticket cannot be resolved or closed until the tickets it depends on are " +"resolved." +msgstr "" +"Das Ticket kann nicht gelöst oder geschlossen werden bis das Ticket von dem " +"es abhängt auch gelöst wurde." + +#: templates/helpdesk/public_view_ticket.html:136 +#: templates/helpdesk/ticket.html:189 +msgid "Attach File(s) »" +msgstr "Datei(en) anhängen »" + +#: templates/helpdesk/public_view_ticket.html:141 +#: templates/helpdesk/ticket.html:194 +msgid "Attach a File" +msgstr "Datei anhängen" + +#: templates/helpdesk/public_view_ticket.html:146 +#: templates/helpdesk/ticket.html:200 templates/helpdesk/ticket.html:263 +msgid "No files selected." +msgstr "Keine Dateien ausgewählt." + +#: templates/helpdesk/public_view_ticket.html:155 +#: templates/helpdesk/ticket.html:209 +msgid "Update This Ticket" +msgstr "Ticket aktualisieren" + +#: templates/helpdesk/registration/change_password.html:6 +msgid "Change Password" +msgstr "Passwort ändern" + +#: templates/helpdesk/registration/change_password.html:12 +msgid "Please correct the error below." +msgstr "Bitte korrigieren Sie den Fehler unten." + +#: templates/helpdesk/registration/change_password.html:12 +msgid "Please correct the errors below." +msgstr "Bitte korrigieren Sie die Fehler unten." + +#: templates/helpdesk/registration/change_password.html:17 +msgid "" +"Please enter your old password, for security's sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"Bitte geben Sie aus Sicherheitsgründen ihr altes Passwort ein und zwei mal " +"ihr neues Passwort um Tippfehler zu vermeiden." + +#: templates/helpdesk/registration/change_password.html:45 +msgid "Change my password" +msgstr "Mein Passwort ändern" + +#: templates/helpdesk/registration/change_password_done.html:6 +msgid "Success!" +msgstr "Erfolg!" + +#: templates/helpdesk/registration/change_password_done.html:8 +msgid "Your password was changed." +msgstr "Ihr Passwort wurde geändert." + +#: templates/helpdesk/registration/logged_out.html:2 +msgid "Logged Out" +msgstr "Abgemeldet" + +#: templates/helpdesk/registration/logged_out.html:4 +msgid "" +"\n" +"\n" +"
Thanks for being here. Hopefully you've helped resolve a few " +"tickets and made the world a better place.
\n" +"Vielen Dank, dass Sie da waren. Hoffentlich konnten Sie ein paar " +"Tickets lösen und die Welt zu einem besseren Platz machen.
\n" +"To automatically send an email to a user or e-mail address when this ticket is updated, select the user or enter an e-mail address below.
" +"Are you sure you wish to delete the attachment %(filename)s from " +"this ticket? The attachment data will be permanently deleted from the " +"database, but the attachment itself will still exist on the server.
\n" msgstr "" +"\n" +"Sind Sie sicher, dass Sie den Anhang %(filename)s von diesem " +"Ticket löschen möchten? Die Daten des Anhangs werden permantent permanent " +"aus der Datenbank gelöscht, aber der Anhang selbst wird weiterhin auf dem " +"Server existent bleiben.
\n" +#: templates/helpdesk/ticket_attachment_del.html:11 +#: templates/helpdesk/ticket_cc_del.html:25 +#: templates/helpdesk/ticket_dependency_del.html:21 +msgid "Don't Delete" +msgstr "Nicht löschen" + +#: templates/helpdesk/ticket_attachment_del.html:14 +#: templates/helpdesk/ticket_dependency_del.html:24 +msgid "Yes, I Understand - Delete" +msgstr "Ja, Verstanden - Löschen" + +#: templates/helpdesk/ticket_cc_add.html:5 #: templates/helpdesk/ticket_cc_add.html:21 +msgid "Add Ticket CC" +msgstr "Ticket CC hinzufügen" + +#: templates/helpdesk/ticket_cc_add.html:15 +#: templates/helpdesk/ticket_cc_del.html:13 +#: templates/helpdesk/ticket_cc_list.html:14 +msgid "CC Settings" +msgstr "CC Einstellungen" + +#: templates/helpdesk/ticket_cc_add.html:17 +msgid "Add CC" +msgstr "CC hinzufügen" + +#: templates/helpdesk/ticket_cc_add.html:26 +msgid "" +"To automatically send an email to a user or e-mail address when this ticket " +"is updated, select the user or enter an e-mail address below." +msgstr "" +"Um automatisch eine E-Mail an einen Benutzer oder E-Mail-Adresse zu senden, " +"wenn das Ticket aktualisiert wird, wählen Sie den Benutzer aus oder geben " +"sie eine E-Mail-Adresse ein." + +#: templates/helpdesk/ticket_cc_add.html:33 +msgid "Email" +msgstr "E-Mail" + +#: templates/helpdesk/ticket_cc_add.html:52 +msgid "Add Email" +msgstr "E-Mail hinzufügen" + +#: templates/helpdesk/ticket_cc_add.html:69 +#: templates/helpdesk/ticket_cc_add.html:93 msgid "Save Ticket CC" msgstr "Ticket CC speichern" +#: templates/helpdesk/ticket_cc_add.html:71 +#: templates/helpdesk/ticket_cc_add.html:95 +msgid "Cancel" +msgstr "Abbrechen" + +#: templates/helpdesk/ticket_cc_add.html:76 +msgid "Add User" +msgstr "Benutzer hinzufügen" + #: templates/helpdesk/ticket_cc_del.html:3 msgid "Delete Ticket CC" msgstr "Ticket CC löschen" -#: templates/helpdesk/ticket_cc_del.html:5 +#: templates/helpdesk/ticket_cc_del.html:15 +msgid "Delete CC" +msgstr "CC löschen" + +#: templates/helpdesk/ticket_cc_del.html:18 #, python-format msgid "" "\n" "Are you sure you wish to delete this email address (%(email_address)s) from the CC list for this ticket? They will stop receiving updates.
\n" +"Are you sure you wish to delete this email address (" +"%(email_address)s) from the CC list for this ticket? They will stop " +"receiving updates.
\n" msgstr "" +"\n" +"Sind Sie sicher, dass Sie die E-Mail-Adresse (%(email_address)s) " +"von der CC Liste für dieses Ticket entfernen möchten? Sie wird keine " +"Aktualisierungen mehr empfangen.
\n" -#: templates/helpdesk/ticket_cc_del.html:11 -#: templates/helpdesk/ticket_dependency_del.html:11 -msgid "Don't Delete" -msgstr "Nicht löschen" - -#: templates/helpdesk/ticket_cc_del.html:13 -#: templates/helpdesk/ticket_dependency_del.html:13 -msgid "Yes, Delete" -msgstr "Ja, löschen" - -#: templates/helpdesk/ticket_cc_list.html:3 -msgid "Ticket CC Settings" -msgstr "" +#: templates/helpdesk/ticket_cc_del.html:28 +msgid "Yes I Understand - Delete" +msgstr "Ja Versanden - Löschen" #: templates/helpdesk/ticket_cc_list.html:5 +msgid "Ticket CC Settings" +msgstr "Ticket CC Einstellungen" + +#: templates/helpdesk/ticket_cc_list.html:17 #, python-format msgid "" "\n" "The following people will receive an e-mail whenever %(ticket_title)s is updated. Some people can also view or edit the ticket via the public ticket views.
\n" +"The following people will receive an e-mail whenever " +"%(ticket_title)s is updated. Some people can also view or edit the " +"ticket via the public ticket views.
\n" "\n" -"You can add a new e-mail address to the list or delete any of the items below as required.
" +"You can add a new recipient to the list or delete any of the items below " +"as required.
" msgstr "" +"\n" +"Die nachfolgenden personen empfangen E-Mails, wenn " +"%(ticket_title)s aktualisiert wird. Manche Personen können " +"ausserdem das Ticket anzeigen oder bearbeiten.
\n" +"\n" +"Sie können der Liste neue Empfänger hinzufügen oder bestehende Empfänger " +"entfernen.
" -#: templates/helpdesk/ticket_cc_list.html:14 +#: templates/helpdesk/ticket_cc_list.html:28 msgid "Ticket CC List" -msgstr "" +msgstr "Ticket CC Liste" -#: templates/helpdesk/ticket_cc_list.html:15 +#: templates/helpdesk/ticket_cc_list.html:32 +msgid "Add an Email or Helpdesk User" +msgstr "E-Mail-Adresse oder Helpdesk-Benutzer hinzufügen" + +#: templates/helpdesk/ticket_cc_list.html:37 +msgid "E-Mail Address or Helpdesk User" +msgstr "E-Mail-Adresse oder Helpdesk-Benutzer" + +#: templates/helpdesk/ticket_cc_list.html:38 msgid "View?" msgstr "Ansehen?" -#: templates/helpdesk/ticket_cc_list.html:15 +#: templates/helpdesk/ticket_cc_list.html:39 msgid "Update?" msgstr "Aktualisieren?" -#: templates/helpdesk/ticket_cc_list.html:29 +#: templates/helpdesk/ticket_cc_list.html:86 #, python-format msgid "Return to %(ticket_title)s" -msgstr "" +msgstr "Zurück zu %(ticket_title)s" #: templates/helpdesk/ticket_dependency_add.html:3 +#: templates/helpdesk/ticket_dependency_add.html:12 msgid "Add Ticket Dependency" -msgstr "" +msgstr "Ticketabhängigkeit hinzufügen" -#: templates/helpdesk/ticket_dependency_add.html:5 +#: templates/helpdesk/ticket_dependency_add.html:15 msgid "" "\n" "Adding a dependency will stop you resolving this ticket until the dependent ticket has been resolved or closed.
" +"Adding a dependency will stop you resolving this ticket until the " +"dependent ticket has been resolved or closed.
" msgstr "" +"\n" +"Eine Abhängigkeit verhindert, dass das Ticket gelöst werden kann, bevor " +"die Abhängigkeit gelöst oder geschlossen wurde.
" -#: templates/helpdesk/ticket_dependency_add.html:21 +#: templates/helpdesk/ticket_dependency_add.html:31 msgid "Save Ticket Dependency" -msgstr "" +msgstr "Ticketabhängigkeit speichern" #: templates/helpdesk/ticket_dependency_del.html:3 +#: templates/helpdesk/ticket_dependency_del.html:12 msgid "Delete Ticket Dependency" -msgstr "" +msgstr "Ticketabhängigkeit löschen" -#: templates/helpdesk/ticket_dependency_del.html:5 +#: templates/helpdesk/ticket_dependency_del.html:15 msgid "" "\n" "Are you sure you wish to remove the dependency on this ticket?
\n" msgstr "" +"\n" +"Sind Sie sicher, dass sie die Abhängigkeit von diesem Ticket löschen " +"wollen?
\n" -#: templates/helpdesk/ticket_desc_table.html:7 -msgid "Unhold" -msgstr "" - -#: templates/helpdesk/ticket_desc_table.html:7 -msgid "Hold" -msgstr "" - -#: templates/helpdesk/ticket_desc_table.html:9 +#: templates/helpdesk/ticket_desc_table.html:13 #, python-format msgid "Queue: %(queue)s" -msgstr "" +msgstr "Warteschlange: %(queue)s" -#: templates/helpdesk/ticket_desc_table.html:37 +#: templates/helpdesk/ticket_desc_table.html:15 +msgid "Edit" +msgstr "Bearbeiten" + +#: templates/helpdesk/ticket_desc_table.html:17 +msgid "Unhold" +msgstr "Weiter" + +#: templates/helpdesk/ticket_desc_table.html:17 +msgid "Hold" +msgstr "Zurückhalten" + +#: templates/helpdesk/ticket_desc_table.html:27 +#: templates/helpdesk/ticket_list.html:74 +msgid "Due Date" +msgstr "Fälligkeitsdatum" + +#: templates/helpdesk/ticket_desc_table.html:34 msgid "Assigned To" -msgstr "" - -#: templates/helpdesk/ticket_desc_table.html:43 -msgid "Ignore" -msgstr "" +msgstr "Zugewiesen an" #: templates/helpdesk/ticket_desc_table.html:52 msgid "Copies To" -msgstr "" - -#: templates/helpdesk/ticket_desc_table.html:53 -msgid "Manage" -msgstr "" +msgstr "Kopien an" #: templates/helpdesk/ticket_desc_table.html:53 msgid "" -"Click here to add / remove people who should receive an e-mail whenever this" -" ticket is updated." -msgstr "" - -#: templates/helpdesk/ticket_desc_table.html:53 -msgid "Subscribe" +"Click here to add / remove people who should receive an e-mail whenever this " +"ticket is updated." msgstr "" +"Klicken Sie hier um Personen hinzuzufügen oder zu entfernen, die per E-Mails " +"über Aktualisierungen dieses Tickets informiert werden sollen." #: templates/helpdesk/ticket_desc_table.html:53 msgid "" -"Click here to subscribe yourself to this ticket, if you want to receive an " -"e-mail whenever this ticket is updated." +"Click here to subscribe yourself to this ticket, if you want to receive an e-" +"mail whenever this ticket is updated." msgstr "" +"Klicken Sie hier um Aktualisierungen dieses Tickets per E-Mail zu abonnieren." #: templates/helpdesk/ticket_desc_table.html:57 msgid "Dependencies" -msgstr "" +msgstr "Abhängigkeiten" #: templates/helpdesk/ticket_desc_table.html:59 msgid "" -"This ticket cannot be resolved until the following ticket(s) are resolved" -msgstr "" - -#: templates/helpdesk/ticket_desc_table.html:60 -msgid "Remove Dependency" -msgstr "" - -#: templates/helpdesk/ticket_desc_table.html:63 -msgid "This ticket has no dependencies." -msgstr "" - -#: templates/helpdesk/ticket_desc_table.html:65 -msgid "Add Dependency" -msgstr "" - -#: templates/helpdesk/ticket_desc_table.html:65 -msgid "" "Click on 'Add Dependency', if you want to make this ticket dependent on " "another ticket. A ticket may not be closed until all tickets it depends on " "are closed." msgstr "" +"Klicken sie auf \"Abhängigkeit hinzufügen\", wenn Sie dieses Ticket von " +"einem anderen Ticket abhängig machen möchten. Ein Ticket kann nicht " +"geschlossen werden, solange es von einem anderen Ticket abhängt, das noch " +"nicht geschlossen wurde." -#: templates/helpdesk/ticket_list.html:59 -msgid "Change Query" +#: templates/helpdesk/ticket_desc_table.html:61 +msgid "" +"This ticket cannot be resolved until the following ticket(s) are resolved" msgstr "" +"Dieses Ticket kann erst gelöst werden, wenn das/die folgende(n) Ticket(s) " +"gelöst wurden:" -#: templates/helpdesk/ticket_list.html:67 -#: templates/helpdesk/ticket_list.html:79 -msgid "Sorting" -msgstr "" +#: templates/helpdesk/ticket_desc_table.html:65 +msgid "This ticket has no dependencies." +msgstr "Dieses Ticket hat keine Abhängkeiten" -#: templates/helpdesk/ticket_list.html:71 -#: templates/helpdesk/ticket_list.html:139 -msgid "Keywords" -msgstr "" +#: templates/helpdesk/ticket_desc_table.html:68 +msgid "Total time spent" +msgstr "Gesamter Zeitaufwand" -#: templates/helpdesk/ticket_list.html:72 -msgid "Date Range" -msgstr "" +#: templates/helpdesk/ticket_desc_table.html:73 +msgid "Knowlegebase item" +msgstr "Eintrag der Wissensdatenbank" + +#: templates/helpdesk/ticket_desc_table.html:107 +msgid "Edit details" +msgstr "Details bearbeiten" + +#: templates/helpdesk/ticket_list.html:26 +msgid "Saved Query" +msgstr "Gespeicherte Abfrage" + +#: templates/helpdesk/ticket_list.html:39 +msgid "Query Results" +msgstr "Ergebnis der Abfrage" + +#: templates/helpdesk/ticket_list.html:45 +msgid "Table" +msgstr "Tabelle" + +#: templates/helpdesk/ticket_list.html:52 +msgid "Timeline" +msgstr "Zeitleiste" + +#: templates/helpdesk/ticket_list.html:76 +msgid "Submitter" +msgstr "Ersteller" + +#: templates/helpdesk/ticket_list.html:77 +msgid "Time Spent" +msgstr "Zeitaufwand" + +#: templates/helpdesk/ticket_list.html:78 +msgid "KB item" +msgstr "WDB Eintrag" + +#: templates/helpdesk/ticket_list.html:84 +msgid "Select:" +msgstr "Auswählen:" + +#: templates/helpdesk/ticket_list.html:95 +msgid "Invert" +msgstr "Auswahl invertieren" #: templates/helpdesk/ticket_list.html:100 -msgid "Reverse" -msgstr "" +msgid "With Selected Tickets:" +msgstr "Mit ausgefwählten Tickets:" #: templates/helpdesk/ticket_list.html:102 -msgid "Ordering applied to tickets" -msgstr "" +msgid "Take (Assign to me)" +msgstr "Nehmen (Mir zuweisen)" + +#: templates/helpdesk/ticket_list.html:104 +msgid "Merge" +msgstr "Zusammenführen" + +#: templates/helpdesk/ticket_list.html:105 +msgid "Close" +msgstr "Schließen" + +#: templates/helpdesk/ticket_list.html:106 +msgid "Close (Don't Send E-Mail)" +msgstr "Schließen (Keine E-Mails versenden)" #: templates/helpdesk/ticket_list.html:107 -msgid "Owner(s)" -msgstr "" +msgid "Close (Send E-Mail)" +msgstr "Schließen (E-Mails versenden)" -#: templates/helpdesk/ticket_list.html:111 -msgid "(ME)" -msgstr "" +#: templates/helpdesk/ticket_list.html:109 +msgid "Assign To" +msgstr "Zuweisen zu" + +#: templates/helpdesk/ticket_list.html:110 +msgid "Nobody (Unassign)" +msgstr "Niemand (Zuweisung aufheben)" #: templates/helpdesk/ticket_list.html:115 -msgid "Ctrl-Click to select multiple options" -msgstr "" +msgid "Set KB Item" +msgstr "WDB Eintrag setzen" -#: templates/helpdesk/ticket_list.html:120 -msgid "Queue(s)" -msgstr "" - -#: templates/helpdesk/ticket_list.html:121 -#: templates/helpdesk/ticket_list.html:127 -msgid "Ctrl-click to select multiple options" -msgstr "" - -#: templates/helpdesk/ticket_list.html:126 -msgid "Status(es)" -msgstr "" - -#: templates/helpdesk/ticket_list.html:132 -msgid "Date (From)" -msgstr "Datum (von)" - -#: templates/helpdesk/ticket_list.html:133 -msgid "Date (To)" -msgstr "Datum (bis)" - -#: templates/helpdesk/ticket_list.html:134 -msgid "Use YYYY-MM-DD date format, eg 2011-05-29" -msgstr "" +#: templates/helpdesk/ticket_list.html:116 +msgid "No KB Item" +msgstr "Kein WDB Eintrag" #: templates/helpdesk/ticket_list.html:140 -msgid "" -"Keywords are case-insensitive, and will be looked for in the title, body and" -" submitter fields." -msgstr "" +msgid "Query Selection" +msgstr "Abfrage ausführen" -#: templates/helpdesk/ticket_list.html:144 -msgid "Apply Filter" -msgstr "" +#: templates/helpdesk/ticket_list.html:151 +msgid "Filters" +msgstr "Filter" -#: templates/helpdesk/ticket_list.html:146 +#: templates/helpdesk/ticket_list.html:161 +msgid "Add filter" +msgstr "Filter hinzufügen" + +#: templates/helpdesk/ticket_list.html:182 +msgid "Date Range" +msgstr "Zeitraum" + +#: templates/helpdesk/ticket_list.html:224 +msgid "Apply Filters" +msgstr "Filter anwenden" + +#: templates/helpdesk/ticket_list.html:228 #, python-format -msgid "You are currently viewing saved query \"%(query_name)s\"." +msgid "" +"You are currently viewing saved query \"%(query_name)s\"." msgstr "" +"Sie betrachten die gespeicherte Abfrage \"%(query_name)s\"." -#: templates/helpdesk/ticket_list.html:149 +#: templates/helpdesk/ticket_list.html:236 #, python-format msgid "" "Run a report on this " "query to see stats and charts for the data listed below." msgstr "" +"Sie können für die Abfage einen Bericht erstellen um Statistiken und Diagramme für die " +"unten stehenden Daten zu erzeugen." -#: templates/helpdesk/ticket_list.html:162 -#: templates/helpdesk/ticket_list.html:181 +#: templates/helpdesk/ticket_list.html:250 +#: templates/helpdesk/ticket_list.html:272 msgid "Save Query" -msgstr "" +msgstr "Abfrage speichern" -#: templates/helpdesk/ticket_list.html:172 +#: templates/helpdesk/ticket_list.html:262 msgid "" "This name appears in the drop-down list of saved queries. If you share your " "query, other users will see this name, so choose something clear and " "descriptive!" msgstr "" +"Dieser Name erscheint im Drop-Down der gespeicherten Abfragen. Wenn Sie die " +"Abfrage mit anderen Benutzern teilen, dann sehen auch andere Benuzter diesen " +"Titel. Wählen Sie daher bitte einen verständlichen Titel." -#: templates/helpdesk/ticket_list.html:174 +#: templates/helpdesk/ticket_list.html:264 msgid "Shared?" -msgstr "" +msgstr "Geteilt?" -#: templates/helpdesk/ticket_list.html:175 +#: templates/helpdesk/ticket_list.html:266 msgid "Yes, share this query with other users." -msgstr "" +msgstr "Ja, teile diese Anfrage mit anderen Benutzern." -#: templates/helpdesk/ticket_list.html:176 +#: templates/helpdesk/ticket_list.html:268 msgid "" "If you share this query, it will be visible by all other logged-in " "users." msgstr "" +"Wenn Sie die Anfrage teilen, dann wird sie für alle angemeldeten " +"Benutzer sichtbar." -#: templates/helpdesk/ticket_list.html:195 +#: templates/helpdesk/ticket_list.html:286 msgid "Use Saved Query" -msgstr "" +msgstr "Gespeicherte Abfrage verwenden" -#: templates/helpdesk/ticket_list.html:202 +#: templates/helpdesk/ticket_list.html:295 msgid "Query" -msgstr "" +msgstr "Abfrage" -#: templates/helpdesk/ticket_list.html:207 +#: templates/helpdesk/ticket_list.html:305 msgid "Run Query" -msgstr "" +msgstr "Abfrage starten" -#: templates/helpdesk/ticket_list.html:240 +#: templates/helpdesk/ticket_list.html:338 msgid "No Tickets Match Your Selection" +msgstr "Keine Tickets entsprechen ihrer Abfrage" + +#: templates/helpdesk/ticket_merge.html:5 +#: templates/helpdesk/ticket_merge.html:16 +#: templates/helpdesk/ticket_merge.html:24 +msgid "Merge Tickets" +msgstr "Tickets zusammenführen" + +#: templates/helpdesk/ticket_merge.html:34 +msgid "OK" +msgstr "OK" + +#: templates/helpdesk/ticket_merge.html:43 +msgid "" +"\n" +" Choose the ticket which will be conserved and then, " +"for each information, you can decide to use\n" +" a data from another ticket to merge. I you don't " +"select a data on a row, the information\n" +" from the main ticket will stay unchanged.\n" +" " msgstr "" -#: templates/helpdesk/ticket_list.html:247 -msgid "Previous" +#: templates/helpdesk/ticket_merge.html:50 +msgid "" +"\n" +" The follow-ups and attachments from " +"the merged tickets will be moved to\n" +" the main ticket.Thanks for being here. Hopefully you've helped resolve a few tickets and make the world a better place.
\n" -"\n" -msgstr "" - -#: templates/helpdesk/registration/login.html:2 -msgid "Helpdesk Login" -msgstr "" - -#: templates/helpdesk/registration/login.html:14 -msgid "To log in simply enter your username and password below." -msgstr "" - -#: templates/helpdesk/registration/login.html:17 -msgid "Your username and password didn't match. Please try again." -msgstr "" - -#: templates/helpdesk/registration/login.html:20 -msgid "Login" -msgstr "" - -#: views/feeds.py:39 +#: views/feeds.py:37 #, python-format msgid "Helpdesk: Open Tickets in queue %(queue)s for %(username)s" msgstr "Helpdesk: Offene Tickets in Ticketsammlung %(queue)s für %(username)s" -#: views/feeds.py:44 +#: views/feeds.py:42 #, python-format msgid "Helpdesk: Open Tickets for %(username)s" msgstr "Helpdesk : Offene Tickets für %(username)s" -#: views/feeds.py:50 +#: views/feeds.py:48 #, python-format msgid "Open and Reopened Tickets in queue %(queue)s for %(username)s" -msgstr "Offene und wiedergeöffnete Tickets in Ticketsammlung %(queue)s für %(username)s" +msgstr "" +"Offene und wiedergeöffnete Tickets in Ticketsammlung %(queue)s für " +"%(username)s" -#: views/feeds.py:55 +#: views/feeds.py:53 #, python-format msgid "Open and Reopened Tickets for %(username)s" msgstr "Offene und wiedergeöffnete Tickets für %(username)s" -#: views/feeds.py:102 +#: views/feeds.py:100 msgid "Helpdesk: Unassigned Tickets" msgstr "Helpdesk: Nicht zugeordnete Tickets" -#: views/feeds.py:103 +#: views/feeds.py:101 msgid "Unassigned Open and Reopened tickets" msgstr "Nicht zugeordnete offene und wiedergeöffnete Tickets" -#: views/feeds.py:128 +#: views/feeds.py:125 msgid "Helpdesk: Recent Followups" -msgstr "Helpdesk: kürzliche Weiterbearbeitungen" +msgstr "Helpdesk: kürzliche Follow-ups" -#: views/feeds.py:129 +#: views/feeds.py:126 msgid "" "Recent FollowUps, such as e-mail replies, comments, attachments and " "resolutions" -msgstr "Kürzliche Weiterbearbeitungen wie E-Mail-Antworten, Kommentare, Anhänge oder Lösungen" +msgstr "" +"Kürzliche Follow-ups wie E-Mail-Antworten, Kommentare, Anhänge oder Lösungen" -#: views/feeds.py:144 +#: views/feeds.py:141 #, python-format msgid "Helpdesk: Open Tickets in queue %(queue)s" -msgstr "Helpdesk: Offene Tickets in Ticketsammlung %(queue)s" +msgstr "Helpdesk: Offene Tickets in Warteschlange %(queue)s" -#: views/feeds.py:149 +#: views/feeds.py:146 #, python-format msgid "Open and Reopened Tickets in queue %(queue)s" -msgstr "Offene und wiedergeöffnete Tickets in Ticketsammlung %(queue)s" +msgstr "Offene und wiedergeöffnete Tickets in Warteschlange %(queue)s" -#: views/public.py:89 +#: views/public.py:179 +msgid "Missing ticket ID or e-mail address. Please try again." +msgstr "Fehlende Ticket-ID oder E-Mail-Adresse. Bitte versuchen Sie es erneut." + +#: views/public.py:188 msgid "Invalid ticket ID or e-mail address. Please try again." -msgstr "Ungültige Ticket-ID oder E-Mail-Adresse. Bitte versuchen Sie es erneut." +msgstr "" +"Ungültige Ticket-ID oder E-Mail-Adresse. Bitte versuchen Sie es erneut." -#: views/public.py:107 +#: views/public.py:204 msgid "Submitter accepted resolution and closed ticket" -msgstr "Ersteller akzeptiert die Lösung und hat das Ticket geschlossen." +msgstr "Ersteller akzeptiert die Lösung und hat das Ticket geschlossen" -#: views/staff.py:235 +#: views/staff.py:357 msgid "Accepted resolution and closed ticket" msgstr "Lösung akzeptiert und Ticket geschlossen" -#: views/staff.py:369 +#: views/staff.py:445 +#, python-format +msgid "" +"When you add somebody on Cc, you must provide either a User or a valid " +"email. Email: %s" +msgstr "" +"Wenn Sie jemanden als CC hinzufügen möchten, müssen Sie entweder einen " +"Benutzer oder eine gültige E-Mail-Adresse angeben. E-Mail-Adresse: %s" + +#: views/staff.py:579 #, python-format msgid "Assigned to %(username)s" msgstr "%(username)s zugeordnet" -#: views/staff.py:392 +#: views/staff.py:605 msgid "Updated" msgstr "Aktualisiert" -#: views/staff.py:577 +#: views/staff.py:786 #, python-format msgid "Assigned to %(username)s in bulk update" msgstr "%(username)s zugeordnet in Massenaktualisierung" -#: views/staff.py:582 +#: views/staff.py:797 msgid "Unassigned in bulk update" msgstr "Zuordnung in Massenaktualisierung aufgehoben" -#: views/staff.py:587 views/staff.py:592 +#: views/staff.py:806 +msgid "KBItem set in bulk update" +msgstr "WDBEintrag durch Massenaktualisierung geändert" + +#: views/staff.py:815 views/staff.py:825 msgid "Closed in bulk update" msgstr "In Massenaktualisierung geschlossen" -#: views/staff.py:806 +#: views/staff.py:865 +msgid "Created date" +msgstr "Erstellungsdatum" + +#: views/staff.py:868 +msgid "Submitter email" +msgstr "E-Mail-Adresse des Erstellers" + +#: views/staff.py:889 +msgid "Not defined" +msgstr "Nicht definiert" + +#: views/staff.py:921 +msgid "Please choose a ticket in which the others will be merged into." +msgstr "" +"Bitte wählen Sie ein Ticket aus in welches die anderen zusammengeführt " +"werden sollen." + +#: views/staff.py:989 +#, python-format +msgid "[Merged from #%(id)d] %(title)s" +msgstr "[Zusammengeführt von #%(id)d] %(title)s" + +#: views/staff.py:1134 msgid "" "Note: Your keyword search is case sensitive because of " "your database. This means the search will not be accurate. " "By switching to a different database system you will gain better searching! " -"For more information, read the Django Documentation on string matching in SQLite." -msgstr "
Achtung: Ihre Schlagwortsuche achtet wegen Ihrer Datenbank auf Groß- und Kleinschreibung. Das bedeutet, dass die Suche nicht genau ist. Durch den Wechsel auf eine andere Datenbank werden Sie eine bessere Suche erhalten. Weitere Informationen finden Sie in der Django Dokumentation zur Stringerkennung in SQLite." +"For more information, read the Django Documentation on string " +"matching in SQLite." +msgstr "" +"
Achtung: Ihre Schlagwortsuche achtet wegen Ihrer " +"Datenbank auf Groß- und Kleinschreibung. Das bedeutet, dass die Suche " +"nicht genau ist. Durch den Wechsel auf eine andere " +"Datenbank werden Sie eine bessere Suche erhalten. Weitere Informationen " +"finden Sie in der Django Dokumentation zur Stringerkennung " +"in SQLite." -#: views/staff.py:910 +#: views/staff.py:1285 msgid "Ticket taken off hold" msgstr "Ticket wieder freigegeben" -#: views/staff.py:913 +#: views/staff.py:1288 msgid "Ticket placed on hold" msgstr "Ticket zurückgehalten" -#: views/staff.py:1007 +#: views/staff.py:1410 msgid "User by Priority" msgstr "Benutzer je Priorität" -#: views/staff.py:1013 +#: views/staff.py:1416 msgid "User by Queue" msgstr "Benutzer je Sammlung" -#: views/staff.py:1019 +#: views/staff.py:1423 msgid "User by Status" msgstr "Benutzer je Status" -#: views/staff.py:1025 +#: views/staff.py:1429 msgid "User by Month" msgstr "Benutzer je Monat" -#: views/staff.py:1031 +#: views/staff.py:1435 msgid "Queue by Priority" msgstr "Sammlung je Priorität" -#: views/staff.py:1037 +#: views/staff.py:1441 msgid "Queue by Status" msgstr "Sammlung je Status" -#: views/staff.py:1043 +#: views/staff.py:1447 msgid "Queue by Month" msgstr "Sammlung je Monat" + +#: views/staff.py:1669 +msgid "Impossible to add twice the same user" +msgstr "Unmöglich zweimal den gleichen Benutzer hinzuzufügen" + +#: views/staff.py:1671 +msgid "Impossible to add twice the same email address" +msgstr "Unmöglich zweimal die gleiche E-Mail-Adresse hinzuzufügen" diff --git a/helpdesk/locale/fr/LC_MESSAGES/django.po b/helpdesk/locale/fr/LC_MESSAGES/django.po index 6ea0de00..bf5b8a21 100644 --- a/helpdesk/locale/fr/LC_MESSAGES/django.po +++ b/helpdesk/locale/fr/LC_MESSAGES/django.po @@ -522,11 +522,10 @@ msgstr "Dossier de logs" #: .\models.py:308 msgid "" "If logging is enabled, what directory should we use to store log files for " -"this queue? If no directory is set, default to /var/log/helpdesk/" +"this queue? The standard logging mechanims are used if no directory is set" msgstr "" "Si les logs sont activés, quel dossier doit être utilisé pour stocker les " -"fichiers de logs pour cette file ? Si aucun dossier n'est défini, cela sera /" -"var/log/helpdesk/ par défaut" +"fichiers de logs pour cette file?" #: .\models.py:319 msgid "Default owner" diff --git a/helpdesk/locale/ru/LC_MESSAGES/django.po b/helpdesk/locale/ru/LC_MESSAGES/django.po index c1d484a1..62e2a5d2 100644 --- a/helpdesk/locale/ru/LC_MESSAGES/django.po +++ b/helpdesk/locale/ru/LC_MESSAGES/django.po @@ -531,13 +531,15 @@ msgstr "" #: models.py:247 msgid "Logging Directory" -msgstr "" +msgstr "Директория логов" #: models.py:251 msgid "" "If logging is enabled, what directory should we use to store log files for " -"this queue? If no directory is set, default to /var/log/helpdesk/" +"this queue? The standard logging mechanims are used if no directory is set" msgstr "" +"Директория в которую будут сохраняться файлы с логами; стандартная конфигурация " +"используется если ничего не указано" #: models.py:261 msgid "Default owner" diff --git a/helpdesk/locale/zh_CN/LC_MESSAGES/django.po b/helpdesk/locale/zh_CN/LC_MESSAGES/django.po index dfd3c151..7261c9a0 100644 --- a/helpdesk/locale/zh_CN/LC_MESSAGES/django.po +++ b/helpdesk/locale/zh_CN/LC_MESSAGES/django.po @@ -470,7 +470,7 @@ msgstr "" #: models.py:308 msgid "" "If logging is enabled, what directory should we use to store log files for " -"this queue? If no directory is set, default to /var/log/helpdesk/" +"this queue? The standard logging mechanims are used if no directory is set" msgstr "" #: models.py:319 diff --git a/helpdesk/migrations/0013_email_box_local_dir_and_logging.py b/helpdesk/migrations/0013_email_box_local_dir_and_logging.py index 6fc936ca..58e383e5 100644 --- a/helpdesk/migrations/0013_email_box_local_dir_and_logging.py +++ b/helpdesk/migrations/0013_email_box_local_dir_and_logging.py @@ -18,7 +18,7 @@ class Migration(migrations.Migration): migrations.AddField( model_name='queue', name='logging_dir', - field=models.CharField(blank=True, help_text='If logging is enabled, what directory should we use to store log files for this queue? If no directory is set, default to /var/log/helpdesk/', max_length=200, null=True, verbose_name='Logging Directory'), + field=models.CharField(blank=True, help_text='If logging is enabled, what directory should we use to store log files for this queue? The standard logging mechanims are used if no directory is set', max_length=200, null=True, verbose_name='Logging Directory'), ), migrations.AddField( model_name='queue', diff --git a/helpdesk/models.py b/helpdesk/models.py index 90945ddc..71f3a721 100644 --- a/helpdesk/models.py +++ b/helpdesk/models.py @@ -307,7 +307,7 @@ class Queue(models.Model): null=True, help_text=_('If logging is enabled, what directory should we use to ' 'store log files for this queue? ' - 'If no directory is set, default to /var/log/helpdesk/'), + 'The standard logging mechanims are used if no directory is set'), ) default_owner = models.ForeignKey( diff --git a/helpdesk/templates/helpdesk/create_ticket.html b/helpdesk/templates/helpdesk/create_ticket.html index ccb33d20..8034b4ab 100644 --- a/helpdesk/templates/helpdesk/create_ticket.html +++ b/helpdesk/templates/helpdesk/create_ticket.html @@ -34,7 +34,7 @@ {% else %}