From 9213a40219bbc66abcc1bbde30c261fffc9cbf6b Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Sat, 28 Oct 2017 23:00:28 +0200 Subject: [PATCH] Widget: docs and i18n --- doc/screens/event/widget_form.png | Bin 0 -> 89130 bytes doc/user/events/widget.rst | 104 +++ doc/user/index.rst | 1 + src/Makefile | 2 +- .../templates/pretixcontrol/event/widget.html | 8 +- src/pretix/locale/de/LC_MESSAGES/django.po | 844 ++++++++++-------- src/pretix/locale/de/LC_MESSAGES/djangojs.po | 152 +++- .../locale/de_Informal/LC_MESSAGES/django.po | 842 +++++++++-------- .../de_Informal/LC_MESSAGES/djangojs.po | 140 ++- .../static/pretixpresale/js/widget/widget.js | 5 +- 10 files changed, 1332 insertions(+), 766 deletions(-) create mode 100644 doc/screens/event/widget_form.png create mode 100644 doc/user/events/widget.rst diff --git a/doc/screens/event/widget_form.png b/doc/screens/event/widget_form.png new file mode 100644 index 0000000000000000000000000000000000000000..16c229013ee927a88d552fcb6646996fca8562ce GIT binary patch literal 89130 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 literal 0 HcmV?d00001 diff --git a/doc/user/events/widget.rst b/doc/user/events/widget.rst new file mode 100644 index 000000000..02707e43e --- /dev/null +++ b/doc/user/events/widget.rst @@ -0,0 +1,104 @@ +Embeddable Widget +================= + +If you want to show your ticket shop on your event website or blog, you can use our JavaScript widget. This way, +users will not need to leave your site to buy their ticket in most cases. The widget will still open a new tab +for the checkout if the user is on a mobile device. + +To obtain the correct HTML code for embedding your event into your website, we recommend that you go to the "Widget" +tab of your event's settings. You can specify some optional settings there (for example the language of the widget) +and then click "Generate widget code". + +.. thumbnail:: ../../screens/event/widget_form.png + :align: center + :class: screenshot + +You will obtain two code snippets that look *roughly* like the following. The first should be embedded into the +```` part of your website, if possible. If this inconvenient, you can put it in the ```` part as well:: + + + + +The second snippet should be embedded at the position where the widget should show up:: + + + + +.. note:: + + You can of course embed multiple widgets of multiple events on your page. In this case, please add the first + snippet only *once* and the second snippets once *for each event*. + +Example +------- + +Your embedded widget could look like the following: + +.. raw:: html + + + + + + + +Styling +------- + +If you want, you can customize the appearance of the widget to fit your website with CSS. If you inspect the rendered +HTML of the widget with your browser's developer tools, you will see that nearly every element has a custom class +and all classes are prefixed with ``pretix-widget``. You can override the styles as much as you want to and if +you want to go all custom, you don't even need to use the stylesheet provided by us at all. + +SSL +--- + +Since buying a ticket normally involves entering sensitive data, we strongly suggest that you use SSL/HTTPS for the page +that includes the widget. Initiatives like `Let's Encrypt`_ allow you to obtain a SSL certificat free of charge. + +All data transferred to pretix will be made over SSL, even if using the widget on a non-SSL site. However, without +using SSL for your site, a man-in-the-middle attacker could potentially alter the widget in dangerous ways. Moreover, +using SSL is becoming standard practice and your customers might want expect see the secure lock icon in their browser +granted to SSL-enabled web pages. + +By default, the checkout process will open in a new tab in your customer's browsers if you don't use SSL for your +website. If you confident to have a good reason for not using SSL, you can override this behaviour with the +``skip-ssl-check`` attribute:: + + + +Pre-selecting a voucher +----------------------- + +You can pre-select a voucher for the widget with the ``voucher`` attribute:: + + + +This way, the widget will only show products that can be bought with the voucher and prices according to the +voucher's settings. + +.. raw:: html + + + + +.. _Let's Encrypt: https://letsencrypt.org/ diff --git a/doc/user/index.rst b/doc/user/index.rst index 2d2a823c0..c5d16fe4d 100644 --- a/doc/user/index.rst +++ b/doc/user/index.rst @@ -11,3 +11,4 @@ wanting to use pretix to sell tickets. events/create events/taxes payments/index + events/widget diff --git a/src/Makefile b/src/Makefile index 508958b16..d0b8e11ba 100644 --- a/src/Makefile +++ b/src/Makefile @@ -6,7 +6,7 @@ localecompile: localegen: ./manage.py makemessages --all --ignore "pretix/helpers/*" - ./manage.py makemessages --all -d djangojs --ignore "pretix/helpers/*" --ignore "pretix/static/jsi18n/*" --ignore "pretix/static/jsi18n/*" --ignore "pretix/static.dist/*" --ignore "build/*" + ./manage.py makemessages --all -d djangojs --ignore "pretix/helpers/*" --ignore "pretix/static/jsi18n/*" --ignore "pretix/static/jsi18n/*" --ignore "pretix/static.dist/*" --ignore "data/*" --ignore "build/*" staticfiles: jsi18n ./manage.py collectstatic --noinput diff --git a/src/pretix/control/templates/pretixcontrol/event/widget.html b/src/pretix/control/templates/pretixcontrol/event/widget.html index f2eb8c5ba..b834649cd 100644 --- a/src/pretix/control/templates/pretixcontrol/event/widget.html +++ b/src/pretix/control/templates/pretixcontrol/event/widget.html @@ -35,13 +35,19 @@ <div class="pretix-widget"> <div class="pretix-widget-info-message"> {% blocktrans trimmed with a_attr='target="_blank" href="'|add:indexurl|add:'"'|safe %} - JavaScript is disabled in your browser. To access our ticket shop without javascript, + JavaScript is disabled in your browser. To access our ticket shop without JavaScript, please <a {{ a_attr }}>click here</a>. {% endblocktrans %} </div> </div> </noscript> +

+ + + {% trans "Read our documentation for more information" %} + +

{% else %}

{% blocktrans trimmed %} diff --git a/src/pretix/locale/de/LC_MESSAGES/django.po b/src/pretix/locale/de/LC_MESSAGES/django.po index 69bfb3759..7c32d8775 100644 --- a/src/pretix/locale/de/LC_MESSAGES/django.po +++ b/src/pretix/locale/de/LC_MESSAGES/django.po @@ -4,8 +4,8 @@ msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-10-26 22:52+0000\n" -"PO-Revision-Date: 2017-10-27 00:54+0200\n" +"POT-Creation-Date: 2017-10-28 20:58+0000\n" +"PO-Revision-Date: 2017-10-28 22:53+0200\n" "Last-Translator: Raphael Michel \n" "Language-Team: Raphael Michel \n" "Language: de\n" @@ -13,9 +13,36 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Poedit 2.0.4\n" +"X-Generator: Poedit 2.0.2\n" "X-Poedit-Bookmarks: -1,-1,904,-1,-1,-1,-1,-1,-1,-1\n" +#: htmlcov/pretix_control_views_dashboards_py.html:898 +#: pretix/control/templates/pretixcontrol/events/index.html:122 +#: pretix/control/views/dashboards.py:346 +msgid "Shop disabled" +msgstr "Shop deaktiviert" + +#: htmlcov/pretix_control_views_dashboards_py.html:900 +#: pretix/control/forms/filter.py:236 pretix/control/forms/filter.py:298 +#: pretix/control/templates/pretixcontrol/events/index.html:124 +#: pretix/control/templates/pretixcontrol/subevents/index.html:91 +msgid "Presale over" +msgstr "Verkauf vorüber" + +#: htmlcov/pretix_control_views_dashboards_py.html:902 +#: pretix/control/forms/filter.py:235 pretix/control/forms/filter.py:297 +#: pretix/control/templates/pretixcontrol/events/index.html:126 +#: pretix/control/templates/pretixcontrol/subevents/index.html:93 +msgid "Presale not started" +msgstr "noch nicht gestartet" + +#: htmlcov/pretix_control_views_dashboards_py.html:904 +#: pretix/control/templates/pretixcontrol/events/index.html:128 +#: pretix/control/templates/pretixcontrol/subevents/index.html:95 +#: pretix/control/views/dashboards.py:352 +msgid "On sale" +msgstr "Aktiv" + #: pretix/base/exporters/answers.py:18 msgid "Answers to file upload questions" msgstr "Antworten zu Fragen mit Dateiupload" @@ -99,8 +126,8 @@ msgstr "Bestelldatum" #: pretix/base/exporters/orderlist.py:65 #: pretix/control/templates/pretixcontrol/order/index.html:369 -#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:79 -#: pretix/presale/templates/pretixpresale/event/order.html:177 +#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:87 +#: pretix/presale/templates/pretixpresale/event/order.html:182 msgid "Company" msgstr "Firma" @@ -113,16 +140,16 @@ msgstr "Firma" #: pretix/control/templates/pretixcontrol/order/index.html:371 #: pretix/control/templates/pretixcontrol/organizers/team_members.html:91 #: pretix/control/templates/pretixcontrol/subevents/index.html:47 -#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:81 -#: pretix/presale/templates/pretixpresale/event/order.html:179 -#: pretix/presale/templates/pretixpresale/organizers/index.html:45 +#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:89 +#: pretix/presale/templates/pretixpresale/event/order.html:184 +#: pretix/presale/templates/pretixpresale/organizers/index.html:46 msgid "Name" msgstr "Name" #: pretix/base/exporters/orderlist.py:65 pretix/base/models/orders.py:876 #: pretix/control/templates/pretixcontrol/order/index.html:373 -#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:83 -#: pretix/presale/templates/pretixpresale/event/order.html:181 +#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:91 +#: pretix/presale/templates/pretixpresale/event/order.html:186 msgid "Address" msgstr "Adresse" @@ -137,15 +164,15 @@ msgstr "Ort" #: pretix/base/exporters/orderlist.py:65 pretix/base/models/orders.py:879 #: pretix/base/models/orders.py:880 #: pretix/control/templates/pretixcontrol/order/index.html:377 -#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:87 -#: pretix/presale/templates/pretixpresale/event/order.html:185 +#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:95 +#: pretix/presale/templates/pretixpresale/event/order.html:190 msgid "Country" msgstr "Land" #: pretix/base/exporters/orderlist.py:65 pretix/base/models/orders.py:881 #: pretix/control/templates/pretixcontrol/order/index.html:380 -#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:90 -#: pretix/presale/templates/pretixpresale/event/order.html:188 +#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:98 +#: pretix/presale/templates/pretixpresale/event/order.html:193 msgid "VAT ID" msgstr "USt-ID" @@ -530,7 +557,7 @@ msgstr "Ist Systemadministrator" msgid "Date joined" msgstr "Registrierungsdatum" -#: pretix/base/models/auth.py:79 +#: pretix/base/models/auth.py:79 pretix/control/forms/event.py:909 msgid "Language" msgstr "Sprache" @@ -706,7 +733,7 @@ msgid "Dates in event series" msgstr "Termine in Veranstaltungsreihe" #: pretix/base/models/event.py:670 -msgid "Can not contain spaces or special characters execpt underscores" +msgid "Can not contain spaces or special characters except underscores" msgstr "Darf keine Leerzeichen und Sonderzeichen außer Unterstrichen enthalten" #: pretix/base/models/event.py:675 @@ -1073,7 +1100,8 @@ msgstr "Antwort" #: pretix/base/models/items.py:705 pretix/base/models/orders.py:537 #: pretix/base/models/vouchers.py:91 pretix/base/models/waitinglist.py:33 -#: pretix/control/forms/filter.py:158 pretix/control/forms/orders.py:120 +#: pretix/control/forms/event.py:904 pretix/control/forms/filter.py:158 +#: pretix/control/forms/orders.py:120 #: pretix/control/templates/pretixcontrol/checkin/index.html:60 #: pretix/control/templates/pretixcontrol/items/quotas.html:60 #: pretix/control/templates/pretixcontrol/subevents/detail.html:6 @@ -1190,7 +1218,7 @@ msgstr "Sprache" #: pretix/base/models/orders.py:132 pretix/base/models/orders.py:835 #: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/import_assign.html:17 #: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/transaction_list.html:10 -#: pretix/presale/templates/pretixpresale/organizers/index.html:46 +#: pretix/presale/templates/pretixpresale/organizers/index.html:47 msgid "Date" msgstr "Datum" @@ -1272,7 +1300,7 @@ msgstr "Das Produkt \"{item}\" ist nicht mehr verfügbar." #: pretix/plugins/checkinlists/exporters.py:128 #: pretix/plugins/pretixdroid/templates/pretixplugins/pretixdroid/configuration.html:77 #: pretix/plugins/pretixdroid/templates/pretixplugins/pretixdroid/configuration.html:78 -#: pretix/presale/checkoutflow.py:495 +#: pretix/presale/checkoutflow.py:504 msgid "Yes" msgstr "Ja" @@ -1284,7 +1312,7 @@ msgstr "Ja" #: pretix/plugins/pretixdroid/templates/pretixplugins/pretixdroid/configuration.html:77 #: pretix/plugins/pretixdroid/templates/pretixplugins/pretixdroid/configuration.html:78 #: pretix/plugins/stripe/templates/pretixplugins/stripe/action_refund.html:14 -#: pretix/presale/checkoutflow.py:497 +#: pretix/presale/checkoutflow.py:506 msgid "No" msgstr "Nein" @@ -1385,7 +1413,7 @@ msgstr "Nur für Firmenkunden mit Sitz in der EU." #: pretix/base/models/orders.py:885 #: pretix/control/templates/pretixcontrol/order/index.html:396 -#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:93 +#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:101 msgid "Internal reference" msgstr "Interne Referenz" @@ -1573,7 +1601,7 @@ msgstr "Produktpreis reduzieren um (%)" #: pretix/base/models/vouchers.py:94 #: pretix/control/templates/pretixcontrol/vouchers/index.html:67 #: pretix/control/views/vouchers.py:64 -#: pretix/presale/templates/pretixpresale/event/index.html:401 +#: pretix/presale/templates/pretixpresale/event/index.html:423 msgid "Voucher code" msgstr "Gutscheincode" @@ -1755,7 +1783,7 @@ msgid "On waiting list since" msgstr "Auf der Liste seit" #: pretix/base/models/waitinglist.py:40 -#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:115 +#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:123 msgid "E-mail address" msgstr "E-Mail-Adresse" @@ -1946,7 +1974,7 @@ msgstr "Relativ:" msgid "Not set" msgstr "Nicht gesetzt" -#: pretix/base/services/cart.py:35 pretix/base/services/orders.py:55 +#: pretix/base/services/cart.py:35 pretix/base/services/orders.py:56 msgid "" "We were not able to process your request completely as the server was too " "busy. Please try again." @@ -1954,7 +1982,7 @@ msgstr "" "Wir konnten Ihre Bestellung nicht durchführen, da der Server zu beschäftigt " "war. Bitte versuchen Sie es erneut." -#: pretix/base/services/cart.py:37 pretix/presale/views/cart.py:127 +#: pretix/base/services/cart.py:37 pretix/presale/views/cart.py:137 msgid "You did not select any products." msgstr "Sie haben keine Produkte ausgewählt." @@ -2013,7 +2041,7 @@ msgstr "" "Wir haben das Produkt %(product)s aus Ihrem Warenkorb entfernt, da es nicht " "weniger als %(min)s mal gekauft werden kann." -#: pretix/base/services/cart.py:50 pretix/base/services/orders.py:57 +#: pretix/base/services/cart.py:50 pretix/base/services/orders.py:58 msgid "The presale period for this event has not yet started." msgstr "Der Vorverkauf für diese Veranstaltung hat noch nicht begonnen." @@ -2029,7 +2057,7 @@ msgstr "" "Der Vorverkauf für diese Veranstaltung hat noch nicht begonnen. Die " "betroffenen Positionen wurden aus dem Warenkorb entfernt." -#: pretix/base/services/cart.py:54 pretix/base/services/orders.py:70 +#: pretix/base/services/cart.py:54 pretix/base/services/orders.py:71 msgid "" "The presale period for one of the events in your cart has ended. The " "affected positions have been removed from your cart." @@ -2187,7 +2215,7 @@ msgstr "" "Sie können Ihre Bestellung unter folgender Adresse einsehen:\n" "{orderurl}." -#: pretix/base/services/orders.py:45 +#: pretix/base/services/orders.py:46 msgid "" "Some of the products you selected were no longer available. Please see below " "for details." @@ -2195,7 +2223,7 @@ msgstr "" "Einige der ausgewählten Produkte sind zwischenzeitlich nicht mehr verfügbar, " "bitte überprüfen Sie Ihren Warenkorb." -#: pretix/base/services/orders.py:47 +#: pretix/base/services/orders.py:48 msgid "" "Some of the products you selected were no longer available in the quantity " "you selected. Please see below for details." @@ -2203,7 +2231,7 @@ msgstr "" "Einige der ausgewählten Produkte sind zwischenzeitlich nicht mehr in der " "gewünschten Anzahl verfügbar, bitte überprüfen Sie Ihren Warenkorb." -#: pretix/base/services/orders.py:49 +#: pretix/base/services/orders.py:50 msgid "" "The price of some of the items in your cart has changed in the meantime. " "Please see below for details." @@ -2211,15 +2239,15 @@ msgstr "" "Der Preis einiger Produkte in Ihrem Warenkorb hat sich zwischenzeitlich " "geändert." -#: pretix/base/services/orders.py:51 +#: pretix/base/services/orders.py:52 msgid "An internal error occured, please try again." msgstr "Ein interner Fehler ist aufgetreten, bitte erneut versuchen." -#: pretix/base/services/orders.py:52 +#: pretix/base/services/orders.py:53 msgid "Your cart is empty." msgstr "Ihr Warenkorb ist leer." -#: pretix/base/services/orders.py:53 +#: pretix/base/services/orders.py:54 #, python-format msgid "" "You cannot select more than %(max)s items of the product %(product)s. We " @@ -2229,11 +2257,11 @@ msgstr "" "auswählen. Wir haben die überschüssigen Produkte aus Ihrem Warenkorb " "entfernt." -#: pretix/base/services/orders.py:58 +#: pretix/base/services/orders.py:59 msgid "The presale period has ended." msgstr "Der Vorverkaufszeitraum ist vorüber." -#: pretix/base/services/orders.py:59 +#: pretix/base/services/orders.py:60 msgid "" "The voucher code used for one of the items in your cart is not known in our " "database." @@ -2241,7 +2269,7 @@ msgstr "" "Der Gutscheincode, der für eins der Produkte in Ihrem Warenkorb benutzt " "wurde, wurde nicht gefunden." -#: pretix/base/services/orders.py:60 +#: pretix/base/services/orders.py:61 msgid "" "The voucher code used for one of the items in your cart has already been " "used the maximum number of times allowed. We removed this item from your " @@ -2251,7 +2279,7 @@ msgstr "" "wurde, wurde bereits zu oft verwendet. Wir haben das entsprechende Produkt " "aus dem Warenkorb entfernt." -#: pretix/base/services/orders.py:62 +#: pretix/base/services/orders.py:63 msgid "" "The voucher code used for one of the items in your cart is expired. We " "removed this item from your cart." @@ -2260,7 +2288,7 @@ msgstr "" "wurde, ist abgelaufen. Wir haben das entsprechende Produkt aus dem Warenkorb " "entfernt." -#: pretix/base/services/orders.py:64 +#: pretix/base/services/orders.py:65 msgid "" "The voucher code used for one of the items in your cart is not valid for " "this item. We removed this item from your cart." @@ -2269,7 +2297,7 @@ msgstr "" "wurde, ist nicht für dieses Produkt gültig. Wir haben das entsprechende " "Produkt aus dem Warenkorb entfernt." -#: pretix/base/services/orders.py:66 +#: pretix/base/services/orders.py:67 msgid "" "You need a valid voucher code to order one of the products in your cart. We " "removed this item from your cart." @@ -2278,7 +2306,7 @@ msgstr "" "gekauft werden zu können. Wir haben das entsprechende Produkt aus dem " "Warenkorb entfernt." -#: pretix/base/services/orders.py:68 +#: pretix/base/services/orders.py:69 msgid "" "The presale period for one of the events in your cart has not yet started. " "The affected positions have been removed from your cart." @@ -2287,61 +2315,65 @@ msgstr "" "wurde, ist nicht für dieses Produkt gültig. Wir haben die betroffenen " "Produkte aus dem Warenkorb entfernt." -#: pretix/base/services/orders.py:149 +#: pretix/base/services/orders.py:150 #, python-format msgid "Payment received for your order: %(code)s" msgstr "Zahlung erhalten für die Bestellung: %(code)s" -#: pretix/base/services/orders.py:197 pretix/presale/views/order.py:483 -#: pretix/presale/views/order.py:510 +#: pretix/base/services/orders.py:169 pretix/control/forms/orders.py:44 +msgid "The new expiry date needs to be in the future." +msgstr "Die neue Frist muss in der Zukunft liegen." + +#: pretix/base/services/orders.py:240 pretix/presale/views/order.py:499 +#: pretix/presale/views/order.py:527 msgid "You cannot cancel this order." msgstr "Sie können diese Bestellung nicht stornieren." -#: pretix/base/services/orders.py:220 +#: pretix/base/services/orders.py:263 #, python-format msgid "Order canceled: %(code)s" msgstr "Bestellung storniert: %(code)s" -#: pretix/base/services/orders.py:488 pretix/control/views/orders.py:401 -#: pretix/presale/templates/pretixpresale/event/order.html:33 +#: pretix/base/services/orders.py:531 pretix/control/views/orders.py:402 +#: pretix/presale/templates/pretixpresale/event/order.html:38 #, python-format msgid "Your order: %(code)s" msgstr "Ihre Bestellung: %(code)s" -#: pretix/base/services/orders.py:548 +#: pretix/base/services/orders.py:591 #, python-format msgid "Your order is about to expire: %(code)s" msgstr "Ihre Bestellung läuft bald ab: %(code)s" -#: pretix/base/services/orders.py:585 +#: pretix/base/services/orders.py:628 #, python-format msgid "Your ticket is ready for download: %(code)s" msgstr "Ihr Ticket ist zum Download verfügbar: %(code)s" -#: pretix/base/services/orders.py:597 +#: pretix/base/services/orders.py:640 msgid "You cannot change a free order to a paid order." msgstr "Sie können eine kostenlose Bestellung nicht kostenpflichtig machen." -#: pretix/base/services/orders.py:598 +#: pretix/base/services/orders.py:641 msgid "You need to select a variation of the product." msgstr "Sie müssen eine Produktvariante auswählen." -#: pretix/base/services/orders.py:599 +#: pretix/base/services/orders.py:642 #, python-brace-format msgid "" "The quota {name} does not have enough capacity left to perform the operation." msgstr "" "Das Kontingent {name} hat nicht genug freie Kapazität für diese Änderung." -#: pretix/base/services/orders.py:600 +#: pretix/base/services/orders.py:643 msgid "There is no quota defined that allows this operation." msgstr "Es ist kein Kontingent definiert, das diese Operation erlaubt." -#: pretix/base/services/orders.py:601 +#: pretix/base/services/orders.py:644 msgid "The selected product is not active or has no price set." msgstr "Das ausgewählte Produkt ist nicht aktiv oder hat keinen Preis." -#: pretix/base/services/orders.py:602 +#: pretix/base/services/orders.py:645 msgid "" "This operation would leave the order empty. Please cancel the order itself " "instead." @@ -2349,11 +2381,11 @@ msgstr "" "Diese Änderung würde die Bestellung leer hinterlassen. Bitte stornieren Sie " "die Bestellung stattdessen." -#: pretix/base/services/orders.py:603 +#: pretix/base/services/orders.py:646 msgid "Only pending or paid orders can be changed." msgstr "Nur ausstehende oder bezahlte Bestellungen können verändert werden." -#: pretix/base/services/orders.py:604 +#: pretix/base/services/orders.py:647 msgid "" "This operation would make the order free and therefore immediately paid, " "however no quota is available." @@ -2361,7 +2393,7 @@ msgstr "" "Diese Änderung würde die Bestellung kostenlos machen und damit sofort als " "bezahlt markieren, es ist jedoch kein Kontingent verfügbar." -#: pretix/base/services/orders.py:606 +#: pretix/base/services/orders.py:649 msgid "" "Currently, paid orders can only be changed in a way that does not change the " "total price of the order as partial payments or refunds are not yet " @@ -2371,7 +2403,7 @@ msgstr "" "Gesamtsumme der Bestellung dabei gleich bleibt, da Teil-Erstattungen und " "Teil-Nachzahlungen noch nicht unterstützt werden." -#: pretix/base/services/orders.py:608 +#: pretix/base/services/orders.py:651 msgid "" "This is an addon product, please select the base position it should be added " "to." @@ -2379,18 +2411,18 @@ msgstr "" "Dieses Produkt ist nur als Zusatzprodukt verfügbar, bitte wählen Sie das die " "Basisposition zu der es hinzugefügt werden soll." -#: pretix/base/services/orders.py:609 +#: pretix/base/services/orders.py:652 msgid "" "The selected base position does not allow you to add this product as an add-" "on." msgstr "" "Dieses Zusatzprodukt kann nicht zu diesem Basisprodukt hinzugefügt werden." -#: pretix/base/services/orders.py:610 +#: pretix/base/services/orders.py:653 msgid "You need to choose a subevent for the new position." msgstr "Sie müssen einen Termin auswählen." -#: pretix/base/services/orders.py:905 +#: pretix/base/services/orders.py:948 #, python-format msgid "Your order has been changed: %(code)s" msgstr "Ihre Bestellung wurde geändert: %(code)s" @@ -2405,7 +2437,7 @@ msgstr "Unkategorisiert" msgid "Sample product" msgstr "Beispielprodukt" -#: pretix/base/services/tickets.py:82 pretix/control/views/event.py:541 +#: pretix/base/services/tickets.py:82 pretix/control/views/event.py:544 #: pretix/plugins/sendmail/views.py:93 #: pretix/plugins/ticketoutputpdf/ticketoutput.py:78 #: pretix/plugins/ticketoutputpdf/ticketoutput.py:129 @@ -2916,11 +2948,11 @@ msgstr "Ticket herunterladen" msgid "This slug has an invalid value: %(value)s." msgstr "Diese Kurzform hat einen ungültigen Wert: %(value)s." -#: pretix/base/views/async.py:132 +#: pretix/base/views/async.py:136 msgid "An unexpected error has occured." msgstr "Ein unerwarteter Fehler ist aufgetreten." -#: pretix/base/views/async.py:135 +#: pretix/base/views/async.py:139 msgid "The task has been completed." msgstr "Die Aufgabe wurde fertiggestellt." @@ -3846,6 +3878,26 @@ msgstr "Biete Ticket-Download für Zusatz-Produkte an" msgid "Generate tickets for non-admission products" msgstr "Tickets für Produkte generieren, die keinen Zutritt enthalten" +#: pretix/control/forms/event.py:914 +msgid "Pre-selected voucher" +msgstr "Vorausgewählter Gutschein" + +#: pretix/control/forms/event.py:916 +msgid "" +"If set, the widget will show products as if this voucher has been entered " +"and when a product is bought via the widget, this voucher will be used. This " +"can for example be used to provide widgets that give discounts or unlock " +"secret products." +msgstr "" +"Wenn diese Option gesetzt ist, verhält sich diese Anzeige als wäre dieser " +"Gutscheincode eingegeben und wenn ein Produkt erworben wird, wird dieser " +"Gutscheincode dafür genutzt. Dies kann beispielsweise für einen Rabatt " +"verwendet werden oder um nur versteckte Produkte im Widget anzuzeigen." + +#: pretix/control/forms/event.py:938 +msgid "The given voucher code does not exist." +msgstr "Der ausgewählte Gutschein existiert nicht." + #: pretix/control/forms/filter.py:67 pretix/control/forms/filter.py:69 msgid "Search for…" msgstr "Suchen nach …" @@ -3959,18 +4011,6 @@ msgstr "Shop live und Vorverkauf läuft" msgid "Inactive" msgstr "inaktiv" -#: pretix/control/forms/filter.py:235 pretix/control/forms/filter.py:297 -#: pretix/control/templates/pretixcontrol/events/index.html:126 -#: pretix/control/templates/pretixcontrol/subevents/index.html:93 -msgid "Presale not started" -msgstr "noch nicht gestartet" - -#: pretix/control/forms/filter.py:236 pretix/control/forms/filter.py:298 -#: pretix/control/templates/pretixcontrol/events/index.html:124 -#: pretix/control/templates/pretixcontrol/subevents/index.html:91 -msgid "Presale over" -msgstr "Verkauf vorüber" - #: pretix/control/forms/filter.py:293 msgid "All events" msgstr "Alle Veranstaltungen" @@ -4142,10 +4182,6 @@ msgstr "" "wenn sie zu einem überbuchten Kontingent führt und Sie dadurch mehr Tickets " "verkauft haben als geplant!" -#: pretix/control/forms/orders.py:44 -msgid "The new expiry date needs to be in the future." -msgstr "Die neue Frist muss in der Zukunft liegen." - #: pretix/control/forms/orders.py:85 msgid "Re-calculate taxes" msgstr "Steuern neu berechnen" @@ -4281,14 +4317,14 @@ msgid "Default overview style" msgstr "Standard-Anzeige" #: pretix/control/forms/organizer.py:154 -#: pretix/presale/templates/pretixpresale/organizers/calendar.html:20 -#: pretix/presale/templates/pretixpresale/organizers/index.html:22 +#: pretix/presale/templates/pretixpresale/organizers/calendar.html:25 +#: pretix/presale/templates/pretixpresale/organizers/index.html:23 msgid "List" msgstr "Liste" #: pretix/control/forms/organizer.py:155 -#: pretix/presale/templates/pretixpresale/organizers/calendar.html:25 -#: pretix/presale/templates/pretixpresale/organizers/index.html:27 +#: pretix/presale/templates/pretixpresale/organizers/calendar.html:31 +#: pretix/presale/templates/pretixpresale/organizers/index.html:28 msgid "Calendar" msgstr "Kalender" @@ -4408,11 +4444,11 @@ msgstr "Die Ticket-Codes und der Link zur Bestell-Seite wurde geändert." msgid "The order's expiry date has been changed." msgstr "Die Zahlungsfrist wurde geändert." -#: pretix/control/logdisplay.py:95 pretix/control/views/orders.py:234 +#: pretix/control/logdisplay.py:95 pretix/control/views/orders.py:235 msgid "The order has been marked as expired." msgstr "Die Bestellung wurde als abgelaufen markiert." -#: pretix/control/logdisplay.py:96 pretix/control/views/orders.py:220 +#: pretix/control/logdisplay.py:96 pretix/control/views/orders.py:221 msgid "The order has been marked as paid." msgstr "Die Bestellung wurde als bezahlt markiert." @@ -4420,8 +4456,8 @@ msgstr "Die Bestellung wurde als bezahlt markiert." msgid "The order has been refunded." msgstr "Die Bestellung wurde zurückerstattet." -#: pretix/control/logdisplay.py:98 pretix/control/views/orders.py:223 -#: pretix/presale/views/order.py:520 +#: pretix/control/logdisplay.py:98 pretix/control/views/orders.py:224 +#: pretix/presale/views/order.py:537 msgid "The order has been canceled." msgstr "Die Bestellung wurde storniert." @@ -4436,16 +4472,16 @@ msgid "" msgstr "" "Die E-Mail-Adresse wurde von \"{old_email}\" auf \"{new_email}\" geändert." -#: pretix/control/logdisplay.py:102 pretix/control/views/orders.py:274 -#: pretix/presale/views/order.py:405 +#: pretix/control/logdisplay.py:102 pretix/control/views/orders.py:275 +#: pretix/presale/views/order.py:419 msgid "The invoice has been generated." msgstr "Die Rechnung wurde erstellt." -#: pretix/control/logdisplay.py:103 pretix/control/views/orders.py:345 +#: pretix/control/logdisplay.py:103 pretix/control/views/orders.py:346 msgid "The invoice has been regenerated." msgstr "Die Rechnung wurde neu generiert." -#: pretix/control/logdisplay.py:104 pretix/control/views/orders.py:372 +#: pretix/control/logdisplay.py:104 pretix/control/views/orders.py:373 msgid "The invoice has been reissued." msgstr "Die Rechnung wurde neu ausgestellt." @@ -4918,10 +4954,10 @@ msgstr "" #: pretix/control/templates/pretixcontrol/user/2fa_confirm_totp.html:79 #: pretix/control/templates/pretixcontrol/user/reauth.html:22 #: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/import_assign.html:11 -#: pretix/presale/templates/pretixpresale/event/checkout_addons.html:72 -#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:51 -#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:116 -#: pretix/presale/templates/pretixpresale/event/index.html:45 +#: pretix/presale/templates/pretixpresale/event/checkout_addons.html:70 +#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:49 +#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:114 +#: pretix/presale/templates/pretixpresale/event/index.html:63 #: pretix/presale/templates/pretixpresale/event/order_pay.html:27 #: pretix/presale/templates/pretixpresale/event/order_pay_change.html:57 msgid "Continue" @@ -5480,10 +5516,10 @@ msgid "Installed plugins" msgstr "Installierte Erweiterungen" #: pretix/control/templates/pretixcontrol/event/plugins.html:11 -#: pretix/control/views/event.py:136 pretix/control/views/event.py:222 -#: pretix/control/views/event.py:304 pretix/control/views/event.py:356 -#: pretix/control/views/event.py:467 pretix/control/views/event.py:686 -#: pretix/control/views/event.py:936 pretix/control/views/global_settings.py:20 +#: pretix/control/views/event.py:139 pretix/control/views/event.py:225 +#: pretix/control/views/event.py:307 pretix/control/views/event.py:359 +#: pretix/control/views/event.py:470 pretix/control/views/event.py:689 +#: pretix/control/views/event.py:939 pretix/control/views/global_settings.py:20 #: pretix/control/views/global_settings.py:43 pretix/control/views/item.py:147 #: pretix/control/views/item.py:491 pretix/control/views/item.py:678 #: pretix/control/views/item.py:788 pretix/control/views/item.py:827 @@ -5599,9 +5635,9 @@ msgid "General" msgstr "Allgemeines" #: pretix/control/templates/pretixcontrol/event/settings_base.html:40 -#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:54 -#: pretix/presale/templates/pretixpresale/event/order.html:51 -#: pretix/presale/templates/pretixpresale/event/order.html:217 +#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:62 +#: pretix/presale/templates/pretixpresale/event/order.html:56 +#: pretix/presale/templates/pretixpresale/event/order.html:222 msgid "Payment" msgstr "Zahlung" @@ -5624,6 +5660,11 @@ msgstr "Steuer-Regeln" msgid "Permissions" msgstr "Berechtigungen" +#: pretix/control/templates/pretixcontrol/event/settings_base.html:80 +#: pretix/control/templates/pretixcontrol/event/widget.html:7 +msgid "Widget" +msgstr "Widget" + #: pretix/control/templates/pretixcontrol/event/tax_delete.html:4 #: pretix/control/templates/pretixcontrol/event/tax_delete.html:6 msgid "Delete tax rule" @@ -5748,6 +5789,53 @@ msgstr "" "Einstellungen und aktivieren Sie eins oder mehrere Ticketausgabe-" "Erweiterungen." +#: pretix/control/templates/pretixcontrol/event/widget.html:9 +msgid "" +"The pretix widget is a way to embed your ticket shop into your event " +"website. This way, your visitors can buy their ticket right away without " +"leaving your website." +msgstr "" +"Das pretix-Widget ist ein Weg, den Ticket-Shop in Ihre Event-Website " +"einzubetten. Auf diese Weise können Besucher Ihrer Website ein Ticket " +"erwerben, ohne die Website verlassen zu müssen." + +#: pretix/control/templates/pretixcontrol/event/widget.html:16 +msgid "" +"To embed the widget onto your website, simply copy the following code to the " +"<head> section of your website:" +msgstr "" +"Um das Widget in Ihre Website einzubinden, kopieren Sie einfach den " +"folgenden Code in den <head>-Abschnitt Ihrer Website:" + +#: pretix/control/templates/pretixcontrol/event/widget.html:24 +msgid "" +"Then, copy the following code to the place of your website where you want " +"the widget to show up:" +msgstr "" +"Dann kopieren Sie den folgenden Code an den Ort auf Ihrer Website, an dem " +"das Widget auftauchen soll:" + +#: pretix/control/templates/pretixcontrol/event/widget.html:37 +#, python-format +msgid "" +"JavaScript is disabled in your browser. To access our ticket shop without " +"JavaScript, please <a %(a_attr)s>click here</a>." +msgstr "" +"JavaScript ist in Ihrem Browser deaktiviert. Um unseren Ticket-Shop ohne " +"JavaScript aufzurufen, klicken Sie bitte <a %(a_attr)s>hier</a>." + +#: pretix/control/templates/pretixcontrol/event/widget.html:47 +msgid "" +"Using this form, you can generate a code to copy and paste to your website " +"source." +msgstr "" +"Mit diesem Formular können Sie einen Code-Schnippsel zum kopieren in den " +"Quellcode Ihrer Website generieren." + +#: pretix/control/templates/pretixcontrol/event/widget.html:57 +msgid "Generate widget code" +msgstr "Widget-Coder generieren" + #: pretix/control/templates/pretixcontrol/events/create_base.html:4 #: pretix/control/templates/pretixcontrol/events/create_base.html:6 #: pretix/control/templates/pretixcontrol/events/index.html:19 @@ -5864,17 +5952,6 @@ msgstr "Reihe" msgid "More quotas" msgstr "Mehr Kontingente" -#: pretix/control/templates/pretixcontrol/events/index.html:122 -#: pretix/control/views/dashboards.py:346 -msgid "Shop disabled" -msgstr "Shop deaktiviert" - -#: pretix/control/templates/pretixcontrol/events/index.html:128 -#: pretix/control/templates/pretixcontrol/subevents/index.html:95 -#: pretix/control/views/dashboards.py:352 -msgid "On sale" -msgstr "Aktiv" - #: pretix/control/templates/pretixcontrol/fragment_quota_box.html:3 #: pretix/control/templates/pretixcontrol/fragment_quota_box_paid.html:3 msgid "Quota:" @@ -6358,7 +6435,7 @@ msgstr "Verbleibende Kapazität" #: pretix/control/templates/pretixcontrol/order/cancel.html:4 #: pretix/control/templates/pretixcontrol/order/cancel.html:8 #: pretix/control/templates/pretixcontrol/order/index.html:35 -#: pretix/presale/templates/pretixpresale/event/order.html:207 +#: pretix/presale/templates/pretixpresale/event/order.html:212 #: pretix/presale/templates/pretixpresale/event/order_cancel.html:4 msgid "Cancel order" msgstr "Stornieren" @@ -6469,8 +6546,8 @@ msgid "Change price to" msgstr "Preis ändern auf" #: pretix/control/templates/pretixcontrol/order/change.html:108 -#: pretix/presale/templates/pretixpresale/event/index.html:254 -#: pretix/presale/templates/pretixpresale/event/index.html:341 +#: pretix/presale/templates/pretixpresale/event/index.html:276 +#: pretix/presale/templates/pretixpresale/event/index.html:363 #: pretix/presale/templates/pretixpresale/event/voucher.html:171 #, python-format msgid "plus %(rate)s%% %(name)s" @@ -6584,18 +6661,18 @@ msgstr "Ablaufdatum" #: pretix/control/templates/pretixcontrol/order/index.html:116 #: pretix/control/templates/pretixcontrol/order/index.html:150 -#: pretix/presale/templates/pretixpresale/event/order.html:123 -#: pretix/presale/templates/pretixpresale/event/order.html:144 +#: pretix/presale/templates/pretixpresale/event/order.html:128 +#: pretix/presale/templates/pretixpresale/event/order.html:149 msgid "Invoices" msgstr "Rechnungen" #: pretix/control/templates/pretixcontrol/order/index.html:120 -#: pretix/presale/templates/pretixpresale/event/order.html:131 +#: pretix/presale/templates/pretixpresale/event/order.html:136 msgid "Cancellation" msgstr "Rechnungskorrektur" #: pretix/control/templates/pretixcontrol/order/index.html:120 -#: pretix/presale/templates/pretixpresale/event/order.html:131 +#: pretix/presale/templates/pretixpresale/event/order.html:136 msgid "Invoice" msgstr "Rechnung" @@ -6621,7 +6698,7 @@ msgid "Change products" msgstr "Produkte bearbeiten" #: pretix/control/templates/pretixcontrol/order/index.html:175 -#: pretix/presale/templates/pretixpresale/event/order.html:109 +#: pretix/presale/templates/pretixpresale/event/order.html:114 msgid "Ordered items" msgstr "Bestellte Produkte" @@ -6704,16 +6781,16 @@ msgid "The payment has to be completed before %(date)s." msgstr "Die Zahlung muss bis zum %(date)s abgeschlossen sein." #: pretix/control/templates/pretixcontrol/order/index.html:364 -#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:74 -#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:36 -#: pretix/presale/templates/pretixpresale/event/order.html:172 +#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:82 +#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:34 +#: pretix/presale/templates/pretixpresale/event/order.html:177 #: pretix/presale/templates/pretixpresale/event/order_modify.html:25 msgid "Invoice information" msgstr "Rechnungsinformationen" #: pretix/control/templates/pretixcontrol/order/index.html:375 -#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:85 -#: pretix/presale/templates/pretixpresale/event/order.html:183 +#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:93 +#: pretix/presale/templates/pretixpresale/event/order.html:188 msgid "ZIP code and city" msgstr "PLZ und Ort" @@ -7654,7 +7731,7 @@ msgid "We already sent you an email in the last 24 hours." msgstr "" "Wir haben Ihnen in den letzten 24 Stunden bereits eine E-Mail geschickt." -#: pretix/control/views/auth.py:213 pretix/control/views/orders.py:407 +#: pretix/control/views/auth.py:213 pretix/control/views/orders.py:408 msgid "There was an error sending the mail. Please try again later." msgstr "" "Es gab ein Fehler beim Senden der E-Mail. Bitte probieren Sie es später " @@ -7796,10 +7873,10 @@ msgid_plural "{num} orders" msgstr[0] "{num} Bestellung" msgstr[1] "{num} Bestellungen" -#: pretix/control/views/event.py:157 pretix/control/views/event.py:307 -#: pretix/control/views/event.py:359 pretix/control/views/event.py:424 -#: pretix/control/views/event.py:470 pretix/control/views/event.py:650 -#: pretix/control/views/event.py:915 pretix/control/views/event.py:952 +#: pretix/control/views/event.py:160 pretix/control/views/event.py:310 +#: pretix/control/views/event.py:362 pretix/control/views/event.py:427 +#: pretix/control/views/event.py:473 pretix/control/views/event.py:653 +#: pretix/control/views/event.py:918 pretix/control/views/event.py:955 #: pretix/control/views/item.py:163 pretix/control/views/item.py:189 #: pretix/control/views/item.py:501 pretix/control/views/item.py:527 #: pretix/control/views/item.py:584 pretix/control/views/item.py:712 @@ -7811,7 +7888,7 @@ msgstr "" "Die Änderungen konnten nicht gespeichert werden, siehe weiter unten für " "Details." -#: pretix/control/views/event.py:419 pretix/control/views/organizer.py:145 +#: pretix/control/views/event.py:422 pretix/control/views/organizer.py:145 msgid "" "Your changes have been saved. Please note that it can take a short period of " "time until your changes become active." @@ -7819,12 +7896,12 @@ msgstr "" "Ihre Änderungen wurden gespeichert. Beachten Sie, dass es einen Moment " "dauern kann, bis diese wirksam werden." -#: pretix/control/views/event.py:457 +#: pretix/control/views/event.py:460 #, python-format msgid "An error occured while contacting the SMTP server: %s" msgstr "Ein Fehler trat auf beim Versuch, den SMTP-Server zu erreichen: %s" -#: pretix/control/views/event.py:460 +#: pretix/control/views/event.py:463 msgid "" "Your changes have been saved and the connection attempt to your SMTP server " "was successful." @@ -7832,7 +7909,7 @@ msgstr "" "Ihre Änderungen wurden gespeichert und die Verbindung zum SMTP-Server war " "erfolgreich." -#: pretix/control/views/event.py:463 +#: pretix/control/views/event.py:466 msgid "" "We've been able to contact the SMTP server you configured. Remember to check " "the \"use custom SMTP server\" checkbox, otherwise your SMTP server will not " @@ -7842,32 +7919,32 @@ msgstr "" "\"Eigenen SMTP-Server verwenden\" zu setzen, damit der Server auch benutzt " "wird." -#: pretix/control/views/event.py:491 +#: pretix/control/views/event.py:494 msgid "{} {} has been transferred to account <9999-9999-9999-9999> at {}" msgstr "{} {} wurden am {} auf das Bankkonto <9999-9999-9999-9999> eingezahlt" -#: pretix/control/views/event.py:539 +#: pretix/control/views/event.py:542 msgid "Sample Admission Ticket" msgstr "Beispiel-Ticket" -#: pretix/control/views/event.py:542 +#: pretix/control/views/event.py:545 msgid "Sample Corporation" msgstr "Musterfirma" -#: pretix/control/views/event.py:543 +#: pretix/control/views/event.py:546 msgid "Please transfer money to this bank account: 9999-9999-9999-9999" msgstr "" "Bitte überweisen Sie den vollen Betrag auf das Bankkonto 9999-9999-9999-" -#: pretix/control/views/event.py:565 +#: pretix/control/views/event.py:568 msgid "invalid item" msgstr "Ungültiges Produkt" -#: pretix/control/views/event.py:597 pretix/presale/views/order.py:582 +#: pretix/control/views/event.py:600 pretix/presale/views/order.py:601 msgid "You requested an invalid ticket output type." msgstr "Sie haben einen ungültigen Ausgabetyp gewählt." -#: pretix/control/views/event.py:750 +#: pretix/control/views/event.py:753 msgid "" "You have configured at least one paid product but have not enabled any " "payment methods." @@ -7875,49 +7952,49 @@ msgstr "" "Sie haben mindestens ein kostenpflichtiges Produkt konfiguriert, aber noch " "keine Zahlungsmethoden aktiviert." -#: pretix/control/views/event.py:753 +#: pretix/control/views/event.py:756 msgid "You need to configure at least one quota to sell anything." msgstr "Sie müssen mindestens ein Kontingent anlegen, um etwas zu verkaufen." -#: pretix/control/views/event.py:769 +#: pretix/control/views/event.py:772 msgid "Your shop is live now!" msgstr "Ihr Shop ist nun online!" -#: pretix/control/views/event.py:776 +#: pretix/control/views/event.py:779 msgid "We've taken your shop down. You can re-enable it whenever you want!" msgstr "" "Wir haben Ihren Shop ausgeschaltet. Sie können ihn hier jederzeit wieder " "einschalten." -#: pretix/control/views/event.py:841 +#: pretix/control/views/event.py:844 msgid "The issue has been marked as resolved!" msgstr "Das Problem wurde als gelöst markiert." -#: pretix/control/views/event.py:862 pretix/control/views/orders.py:197 +#: pretix/control/views/event.py:865 pretix/control/views/orders.py:198 msgid "The comment has been updated." msgstr "Der Kommentar wurde aktualisiert." -#: pretix/control/views/event.py:864 pretix/control/views/orders.py:199 +#: pretix/control/views/event.py:867 pretix/control/views/orders.py:200 msgid "Could not update the comment." msgstr "Kommentar konnte nicht gespeichert werden." -#: pretix/control/views/event.py:903 pretix/control/views/main.py:172 +#: pretix/control/views/event.py:906 pretix/control/views/main.py:172 msgid "VAT" msgstr "MwSt." -#: pretix/control/views/event.py:909 +#: pretix/control/views/event.py:912 msgid "The new tax rule has been created." msgstr "Die neue Steuer-Regel wurde erstellt." -#: pretix/control/views/event.py:932 pretix/control/views/event.py:968 +#: pretix/control/views/event.py:935 pretix/control/views/event.py:971 msgid "The requested tax rule does not exist." msgstr "Diese Steuer-Regel existiert nicht." -#: pretix/control/views/event.py:977 +#: pretix/control/views/event.py:980 msgid "The selected tax rule has been deleted." msgstr "Die ausgewählte Steuer-Regel wurde gelöscht." -#: pretix/control/views/event.py:979 +#: pretix/control/views/event.py:982 msgid "The selected tax rule can not be deleted." msgstr "Die ausgewählte Steuer-Regel kann nicht gelöscht werden." @@ -8014,7 +8091,7 @@ msgstr "Das ausgewählte Produkt wurde deaktiviert." msgid "Team {event}" msgstr "Team {event}" -#: pretix/control/views/orders.py:218 +#: pretix/control/views/orders.py:219 msgid "" "The order has been marked as paid, but we were unable to send a confirmation " "mail." @@ -8022,41 +8099,41 @@ msgstr "" "Die Bestellung wurde als bezahlt markiert, aber die Bestätigungsmail konnte " "nicht verschickt werden." -#: pretix/control/views/orders.py:229 +#: pretix/control/views/orders.py:230 msgid "The order has been marked as not paid." msgstr "Die Bestellung wurde als nicht bezahlt markiert." -#: pretix/control/views/orders.py:266 pretix/presale/views/order.py:397 +#: pretix/control/views/orders.py:267 pretix/presale/views/order.py:411 msgid "You cannot generate an invoice for this order." msgstr "Sie können für diese Bestellung keine Rechnung erzeugen." -#: pretix/control/views/orders.py:268 pretix/presale/views/order.py:399 +#: pretix/control/views/orders.py:269 pretix/presale/views/order.py:413 msgid "An invoice for this order already exists." msgstr "Zu dieser Bestellung gibt es bereits eine Rechnung." -#: pretix/control/views/orders.py:288 pretix/control/views/orders.py:292 +#: pretix/control/views/orders.py:289 pretix/control/views/orders.py:293 msgid "No VAT ID specified." msgstr "Es wurde keine USt-ID-Nr. angegeben." -#: pretix/control/views/orders.py:296 +#: pretix/control/views/orders.py:297 msgid "No country specified." msgstr "Es wurde kein Land angegeben," -#: pretix/control/views/orders.py:300 +#: pretix/control/views/orders.py:301 msgid "VAT ID could not be checked since a non-EU country has been specified." msgstr "" "Die USt-ID-Nr. konnte nicht geprüft werden, da ein Nicht-EU-Land angegeben " "wurde." -#: pretix/control/views/orders.py:305 pretix/presale/forms/checkout.py:135 +#: pretix/control/views/orders.py:306 pretix/presale/forms/checkout.py:135 msgid "Your VAT ID does not match the selected country." msgstr "Die eingegebene USt-ID-Nr. passt nicht zum ausgewählten Land." -#: pretix/control/views/orders.py:316 +#: pretix/control/views/orders.py:317 msgid "This VAT ID is not valid." msgstr "Die USt-ID-Nr. ist ungültig." -#: pretix/control/views/orders.py:319 +#: pretix/control/views/orders.py:320 msgid "" "The VAT ID could not be checked, as the VAT checking service of the country " "is currently not available." @@ -8064,27 +8141,27 @@ msgstr "" "Die USt-ID-Nr. konnte nicht geprüft werden, da der Prüfdienst des Landes im " "Moment nicht verfügbar ist." -#: pretix/control/views/orders.py:322 +#: pretix/control/views/orders.py:323 msgid "This VAT ID is valid." msgstr "Die USt-ID-Nr. ist gültig." -#: pretix/control/views/orders.py:336 pretix/control/views/orders.py:359 +#: pretix/control/views/orders.py:337 pretix/control/views/orders.py:360 msgid "Unknown invoice." msgstr "Unbekannte Rechnung" -#: pretix/control/views/orders.py:339 pretix/control/views/orders.py:362 +#: pretix/control/views/orders.py:340 pretix/control/views/orders.py:363 msgid "The invoice has already been canceled." msgstr "Die Rechnung wurde bereits storniert." -#: pretix/control/views/orders.py:410 +#: pretix/control/views/orders.py:411 msgid "The email has been queued to be sent." msgstr "Die E-Mail wurde zum Versenden gespeichert." -#: pretix/control/views/orders.py:434 pretix/presale/views/order.py:652 +#: pretix/control/views/orders.py:435 pretix/presale/views/order.py:672 msgid "This invoice has not been found" msgstr "Diese Rechnung wurde nicht gefunden" -#: pretix/control/views/orders.py:442 pretix/presale/views/order.py:660 +#: pretix/control/views/orders.py:443 pretix/presale/views/order.py:680 msgid "" "The invoice file has not yet been generated, we will generate it for you " "now. Please try again in a few seconds." @@ -8092,11 +8169,11 @@ msgstr "" "Diese Rechnung wurde bisher noch nicht fertig erstellt, wir werden die PDF-" "Datei jetzt erstellen. Bitte probieren Sie es in wenigen Sekunden erneut." -#: pretix/control/views/orders.py:457 pretix/control/views/orders.py:475 +#: pretix/control/views/orders.py:464 msgid "The payment term has been changed." msgstr "Die Zahlungsfrist wurde geändert." -#: pretix/control/views/orders.py:480 +#: pretix/control/views/orders.py:469 msgid "" "We were not able to process the request completely as the server was too " "busy." @@ -8104,52 +8181,52 @@ msgstr "" "Wir konnten Ihre Bestellung nicht durchführen, da der Server zu beschäftigt " "war." -#: pretix/control/views/orders.py:488 +#: pretix/control/views/orders.py:477 msgid "This action is only allowed for pending orders." msgstr "Diese Aktion ist nur für unbezahlte Bestellungen möglich." -#: pretix/control/views/orders.py:516 +#: pretix/control/views/orders.py:505 msgid "This action is only allowed for pending or paid orders." msgstr "" "Dieser Aktion ist nur für ausstehende und bezahlte Bestellungen möglich." -#: pretix/control/views/orders.py:618 +#: pretix/control/views/orders.py:607 msgid "An error occured. Please see the details below." msgstr "" "Ein Fehler ist aufgetreten, bitte schauen Sie weiter unten für Details." -#: pretix/control/views/orders.py:625 +#: pretix/control/views/orders.py:614 msgid "The order has been changed and the user has been notified." msgstr "Die Bestellung wurde geändert und der Kunde benachrichtigt." -#: pretix/control/views/orders.py:674 pretix/control/views/orders.py:710 +#: pretix/control/views/orders.py:663 pretix/control/views/orders.py:699 msgid "The order has been changed." msgstr "Die Bestellung wurde geändert." -#: pretix/control/views/orders.py:676 +#: pretix/control/views/orders.py:665 msgid "Nothing about the order had to be changed." msgstr "Es wurde keine Änderung vorgenommen." -#: pretix/control/views/orders.py:749 pretix/plugins/sendmail/views.py:59 +#: pretix/control/views/orders.py:738 pretix/plugins/sendmail/views.py:59 msgid "We could not send the email. See below for details." msgstr "" "Wir könnten die E-Mail nicht senden, siehe weiter unten für weitere " "Informationen." -#: pretix/control/views/orders.py:783 pretix/plugins/sendmail/views.py:102 +#: pretix/control/views/orders.py:772 pretix/plugins/sendmail/views.py:102 #, python-brace-format msgid "Subject: {subject}" msgstr "Betreff: {subject}" -#: pretix/control/views/orders.py:793 +#: pretix/control/views/orders.py:782 msgid "Your message has been queued and will be sent to {}." msgstr "Die Nachricht wurde gespeichert und wird an {} versendet." -#: pretix/control/views/orders.py:797 +#: pretix/control/views/orders.py:786 msgid "Failed to send mail to the following user: {}" msgstr "Die Mail an den folgenden Benutzer konnte nicht versendet werden: {}" -#: pretix/control/views/orders.py:844 pretix/presale/views/order.py:532 +#: pretix/control/views/orders.py:833 pretix/presale/views/order.py:550 msgid "" "This link is no longer valid. Please go back, refresh the page, and try " "again." @@ -8157,15 +8234,15 @@ msgstr "" "Dieser Link ist nicht mehr gültig. Bitte gehen Sie einen Schritt zurück, " "laden Sie die Seite neu und versuchen es erneut." -#: pretix/control/views/orders.py:898 +#: pretix/control/views/orders.py:887 msgid "There is no order with the given order code." msgstr "Es existiert keine Bestellung mit der eingegebenen Bestellnummer." -#: pretix/control/views/orders.py:943 +#: pretix/control/views/orders.py:932 msgid "The selected exporter was not found." msgstr "Das ausgewählte Exportformat wurde nicht gefunden." -#: pretix/control/views/orders.py:950 +#: pretix/control/views/orders.py:939 msgid "There was a problem processing your input. See below for error details." msgstr "Die Eingabe konnte nicht verarbeitet werden." @@ -8853,12 +8930,12 @@ msgid "Include questions" msgstr "Fragen anzeigen" #: pretix/plugins/checkinlists/exporters.py:107 -#: pretix/plugins/paypal/payment.py:63 +#: pretix/plugins/paypal/payment.py:65 msgid "Secret" msgstr "Secret" #: pretix/plugins/paypal/__init__.py:10 pretix/plugins/paypal/__init__.py:13 -#: pretix/plugins/paypal/payment.py:36 +#: pretix/plugins/paypal/payment.py:38 msgid "PayPal" msgstr "PayPal" @@ -8866,39 +8943,39 @@ msgstr "PayPal" msgid "This plugin allows you to receive payments via PayPal" msgstr "Dieses Plugin erlaubt, Zahlungen über PayPal anzunehmen" -#: pretix/plugins/paypal/payment.py:25 pretix/plugins/stripe/payment.py:27 +#: pretix/plugins/paypal/payment.py:27 pretix/plugins/stripe/payment.py:27 msgid "Refund automatically?" msgstr "Geld zurückbuchen?" -#: pretix/plugins/paypal/payment.py:27 +#: pretix/plugins/paypal/payment.py:29 msgid "Automatically refund charge with PayPal" msgstr "Automatisch über PayPal zurückbuchen" -#: pretix/plugins/paypal/payment.py:28 +#: pretix/plugins/paypal/payment.py:30 msgid "" "Do not send refund instruction to PayPal, only mark as refunded in pretix" msgstr "" "Buche das Geld nicht automatisch per PayPal zurück, nur in pretix als " "erstattet markieren" -#: pretix/plugins/paypal/payment.py:46 +#: pretix/plugins/paypal/payment.py:48 msgid "Endpoint" msgstr "API-Endpunkt" -#: pretix/plugins/paypal/payment.py:55 +#: pretix/plugins/paypal/payment.py:57 msgid "Client ID" msgstr "Client-ID" -#: pretix/plugins/paypal/payment.py:56 pretix/plugins/stripe/payment.py:79 +#: pretix/plugins/paypal/payment.py:58 pretix/plugins/stripe/payment.py:79 #, python-brace-format msgid "{text}" msgstr "{text}" -#: pretix/plugins/paypal/payment.py:57 pretix/plugins/stripe/payment.py:80 +#: pretix/plugins/paypal/payment.py:59 pretix/plugins/stripe/payment.py:80 msgid "Click here for a tutorial on how to obtain the required keys" msgstr "Hier klicken für eine Anleitung" -#: pretix/plugins/paypal/payment.py:70 +#: pretix/plugins/paypal/payment.py:72 msgid "" "Please configure a PayPal Webhook to the following endpoint in order to " "automatically cancel orders when payments are refunded externally." @@ -8907,13 +8984,13 @@ msgstr "" "Bestellungen automatisch als storniert markiert werden, wenn die Zahlung " "zurückerstattet wird." -#: pretix/plugins/paypal/payment.py:128 pretix/plugins/paypal/payment.py:136 -#: pretix/plugins/paypal/payment.py:139 +#: pretix/plugins/paypal/payment.py:134 pretix/plugins/paypal/payment.py:149 +#: pretix/plugins/paypal/payment.py:152 msgid "We had trouble communicating with PayPal" msgstr "Die Kommunikation mit PayPal ist fehlgeschlagen" -#: pretix/plugins/paypal/payment.py:166 pretix/plugins/paypal/payment.py:175 -#: pretix/plugins/paypal/payment.py:218 +#: pretix/plugins/paypal/payment.py:179 pretix/plugins/paypal/payment.py:188 +#: pretix/plugins/paypal/payment.py:231 msgid "" "We were unable to process your payment. See below for details on how to " "proceed." @@ -8921,7 +8998,7 @@ msgstr "" "Der Bezahlvorgang ist fehlgeschlagen. Unten finden Sie Details zum weiteren " "Vorgehen." -#: pretix/plugins/paypal/payment.py:210 +#: pretix/plugins/paypal/payment.py:223 msgid "" "PayPal has not yet approved the payment. We will inform you as soon as the " "payment completed." @@ -8929,15 +9006,15 @@ msgstr "" "PayPal hat die Bezahlung noch nicht bestätigt. Wir informieren Sie, sobald " "die Bezahlung abgeschlossen ist." -#: pretix/plugins/paypal/payment.py:238 pretix/plugins/stripe/payment.py:238 +#: pretix/plugins/paypal/payment.py:251 pretix/plugins/stripe/payment.py:238 msgid "There was an error sending the confirmation mail." msgstr "Es gab einen Fehler beim Versenden der Bestätigungs-E-Mail." -#: pretix/plugins/paypal/payment.py:277 pretix/plugins/stripe/payment.py:303 +#: pretix/plugins/paypal/payment.py:290 pretix/plugins/stripe/payment.py:303 msgid "Your input was invalid, please try again." msgstr "Die Eingabe war nicht korrekt, bitte erneut versuchen." -#: pretix/plugins/paypal/payment.py:294 pretix/plugins/paypal/payment.py:307 +#: pretix/plugins/paypal/payment.py:307 pretix/plugins/paypal/payment.py:320 #: pretix/plugins/stripe/payment.py:318 pretix/plugins/stripe/payment.py:339 msgid "" "We were unable to transfer the money back automatically. Please get in touch " @@ -9073,21 +9150,35 @@ msgstr "" "Wir warten auf eine Antwort von PayPal bezüglich Ihrer Zahlung. Bitte " "kontaktieren Sie uns, falls dies mehr als ein paar Stunden dauert." -#: pretix/plugins/paypal/views.py:45 +#: pretix/plugins/paypal/templates/pretixplugins/paypal/redirect.html:17 +msgid "The payment process has started in a new window." +msgstr "Der Zahlungsvorgang wird in einem neuen Fenster fortgesetzt." + +#: pretix/plugins/paypal/templates/pretixplugins/paypal/redirect.html:20 +msgid "The window to enter your payment data was not opened or was closed?" +msgstr "" +"Das Fenster zur Eingabe der Zahlungsdaten wurde geschlossen oder nie " +"geöffnet?" + +#: pretix/plugins/paypal/templates/pretixplugins/paypal/redirect.html:24 +msgid "Click here in order to open the window." +msgstr "Hier klicken um das Fenster zu öffnen." + +#: pretix/plugins/paypal/views.py:64 msgid "Invalid response from PayPal received." msgstr "PayPal hat uns eine ungültige Antwort geschickt." -#: pretix/plugins/paypal/views.py:59 +#: pretix/plugins/paypal/views.py:80 msgid "It looks like you canceled the PayPal payment" msgstr "Die PayPal-Zahlung wurde abgebrochen" -#: pretix/plugins/paypal/views.py:165 pretix/plugins/stripe/views.py:163 +#: pretix/plugins/paypal/views.py:186 pretix/plugins/stripe/views.py:165 msgid "The order cannot be marked as refunded as it is not marked as paid!" msgstr "" "Die Bestellung kann nicht als erstattet markiert werden, da sie nicht als " "bezahlt markiert ist." -#: pretix/plugins/paypal/views.py:169 pretix/plugins/stripe/views.py:167 +#: pretix/plugins/paypal/views.py:190 pretix/plugins/stripe/views.py:169 msgid "" "The order has been marked as refunded and the issue has been marked as " "resolved!" @@ -9835,7 +9926,7 @@ msgstr "Die Zahlung konnte aus folgendem Grund nicht abgeschlossen werden:" msgid "Unknown reason" msgstr "Unbekannter Grund" -#: pretix/plugins/stripe/views.py:203 pretix/plugins/stripe/views.py:231 +#: pretix/plugins/stripe/views.py:206 pretix/plugins/stripe/views.py:234 msgid "" "Sorry, there was an error in the payment process. Please check the link in " "your emails to continue." @@ -9843,7 +9934,7 @@ msgstr "" "Es gab einen Fehler im Zahlungsablauf. Bitte nutzen Sie den Link aus der an " "Sie verschickten E-Mail, um fortzufahren." -#: pretix/plugins/stripe/views.py:224 +#: pretix/plugins/stripe/views.py:227 msgid "" "We had trouble authorizing your card payment. Please try again and get in " "touch with us if this problem persists." @@ -10214,42 +10305,42 @@ msgstr "Bitte nur PDF-Dateien hochladen." msgid "Sample workshop" msgstr "Beispielworkshop" -#: pretix/presale/checkoutflow.py:313 pretix/presale/views/order.py:441 +#: pretix/presale/checkoutflow.py:320 pretix/presale/views/order.py:456 msgid "" "We had difficulties processing your input. Please review the errors below." msgstr "Wir hatten Schwierigkeiten, Ihre Eingabe zu verarbeiten." -#: pretix/presale/checkoutflow.py:335 pretix/presale/checkoutflow.py:340 +#: pretix/presale/checkoutflow.py:342 pretix/presale/checkoutflow.py:347 msgid "Please enter a valid email address." msgstr "Bitte geben Sie eine gültige E-Mail-Adresse ein." -#: pretix/presale/checkoutflow.py:344 +#: pretix/presale/checkoutflow.py:351 msgid "Please enter your invoicing address." msgstr "Bitte geben Sie Ihre Rechnungsadresse ein." -#: pretix/presale/checkoutflow.py:348 +#: pretix/presale/checkoutflow.py:355 msgid "Please enter your name." msgstr "Bitte geben Sie Ihren Namen ein." -#: pretix/presale/checkoutflow.py:358 pretix/presale/checkoutflow.py:363 -#: pretix/presale/checkoutflow.py:368 +#: pretix/presale/checkoutflow.py:365 pretix/presale/checkoutflow.py:370 +#: pretix/presale/checkoutflow.py:375 msgid "Please fill in answers to all required questions." msgstr "Bitte füllen Sie Antworten zu allen benötigten Fragen ein." -#: pretix/presale/checkoutflow.py:429 pretix/presale/views/order.py:371 +#: pretix/presale/checkoutflow.py:437 pretix/presale/views/order.py:384 msgid "Please select a payment method." msgstr "Bitte wählen Sie eine Zahlungsmethode aus." -#: pretix/presale/checkoutflow.py:449 pretix/presale/checkoutflow.py:455 -#: pretix/presale/views/order.py:207 pretix/presale/views/order.py:247 +#: pretix/presale/checkoutflow.py:458 pretix/presale/checkoutflow.py:464 +#: pretix/presale/views/order.py:218 pretix/presale/views/order.py:259 msgid "The payment information you entered was incomplete." msgstr "Die eingegebenen Zahlungsinformationen sind unvollständig." -#: pretix/presale/checkoutflow.py:526 +#: pretix/presale/checkoutflow.py:535 msgid "You need to check all checkboxes on the bottom of the page." msgstr "Sie müssen alle Kontrollkästchen auf dieser Seite auswählen." -#: pretix/presale/checkoutflow.py:556 +#: pretix/presale/checkoutflow.py:565 msgid "" "There was an error sending the confirmation mail. Please try again later." msgstr "" @@ -10349,32 +10440,23 @@ msgstr "Tickets: {url}" msgid "Admission: {datetime}" msgstr "Einlass: {datetime}" -#: pretix/presale/templates/pretixpresale/event/base.html:15 +#: pretix/presale/templates/pretixpresale/event/base.html:16 msgid "This shop is currently only visible to you and your team." msgstr "Dieser Shop ist aktuell nur für Sie und Ihr Team sichtbar." -#: pretix/presale/templates/pretixpresale/event/base.html:17 +#: pretix/presale/templates/pretixpresale/event/base.html:18 msgid "Take it live now" msgstr "Jetzt veröffentlichen" -#: pretix/presale/templates/pretixpresale/event/base.html:64 +#: pretix/presale/templates/pretixpresale/event/base.html:66 msgid "Contact event organizer" msgstr "Veranstalter kontaktieren" -#: pretix/presale/templates/pretixpresale/event/base.html:67 +#: pretix/presale/templates/pretixpresale/event/base.html:69 msgid "Imprint" msgstr "Impressum" -#: pretix/presale/templates/pretixpresale/event/checkout_addons.html:4 #: pretix/presale/templates/pretixpresale/event/checkout_addons.html:6 -#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:4 -#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:6 -#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:4 -#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:6 -msgid "Checkout" -msgstr "Bestellung fortsetzen" - -#: pretix/presale/templates/pretixpresale/event/checkout_addons.html:8 msgid "" "For some of the products in your cart, you can choose additional options " "before you continue." @@ -10382,7 +10464,7 @@ msgstr "" "Für manche Produkte in Ihrem Warenkorb können Sie Zusatzprodukte auswählen, " "bevor Sie fortfahren." -#: pretix/presale/templates/pretixpresale/event/checkout_addons.html:33 +#: pretix/presale/templates/pretixpresale/event/checkout_addons.html:31 #, python-format msgid "You need to choose exactly one option from this category." msgid_plural "You need to choose %(min_count)s options from this category." @@ -10390,7 +10472,7 @@ msgstr[0] "Sie müssen genau eine Option aus dieser Kategorie auswählen." msgstr[1] "" "Sie müssen genau %(min_count)s Optionen aus dieser Kategorie auswählen." -#: pretix/presale/templates/pretixpresale/event/checkout_addons.html:39 +#: pretix/presale/templates/pretixpresale/event/checkout_addons.html:37 #, python-format msgid "You can choose at most one option from this category." msgid_plural "You can choose up to %(max_count)s options from this category." @@ -10398,7 +10480,7 @@ msgstr[0] "Sie können höchstens eine Optionen aus dieser Kategorie auswählen. msgstr[1] "" "Sie können höchstens %(max_count)s Optionen aus dieser Kategorie auswählen." -#: pretix/presale/templates/pretixpresale/event/checkout_addons.html:45 +#: pretix/presale/templates/pretixpresale/event/checkout_addons.html:43 #, python-format msgid "" "You can choose between %(min_count)s and %(max_count)s options from this " @@ -10407,17 +10489,51 @@ msgstr "" "Sie können zwischen %(min_count)s und %(max_count)s Optionen aus dieser " "Kategorie auswählen." -#: pretix/presale/templates/pretixpresale/event/checkout_addons.html:55 +#: pretix/presale/templates/pretixpresale/event/checkout_addons.html:53 msgid "There are no add-ons available for this product." msgstr "Es sind keine Zusatzprodukte für dieses Produkt verfügbar." -#: pretix/presale/templates/pretixpresale/event/checkout_addons.html:67 -#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:151 -#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:46 -#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:111 +#: pretix/presale/templates/pretixpresale/event/checkout_addons.html:65 +#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:159 +#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:44 +#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:109 msgid "Go back" msgstr "Zurück" +#: pretix/presale/templates/pretixpresale/event/checkout_base.html:4 +#: pretix/presale/templates/pretixpresale/event/checkout_base.html:42 +msgid "Checkout" +msgstr "Bestellung fortsetzen" + +#: pretix/presale/templates/pretixpresale/event/checkout_base.html:12 +#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:30 +#: pretix/presale/templates/pretixpresale/event/index.html:24 +msgid "Your cart" +msgstr "Ihr Warenkorb" + +#: pretix/presale/templates/pretixpresale/event/checkout_base.html:19 +#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:25 +#: pretix/presale/templates/pretixpresale/event/index.html:31 +#, fuzzy +#| msgid "expired" +msgid "Cart expired" +msgstr "abgelaufen" + +#: pretix/presale/templates/pretixpresale/event/checkout_base.html:32 +#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:39 +#: pretix/presale/templates/pretixpresale/event/index.html:44 +#, python-format +msgid "The items in your cart are reserved for you for %(minutes)s minutes." +msgstr "" +"Die Produkte in Ihrem Warenkorb sind noch %(minutes)s Minuten für Sie " +"reserviert." + +#: pretix/presale/templates/pretixpresale/event/checkout_base.html:36 +#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:43 +#: pretix/presale/templates/pretixpresale/event/index.html:48 +msgid "The items in your cart are no longer reserved for you." +msgstr "Die Produkte in Ihrem Warenkorb sind nicht mehr für Sie reserviert." + #: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:6 #: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:8 msgid "Confirm order" @@ -10429,93 +10545,75 @@ msgstr "" "Bitte überprüfen Sie die untenstehenden Details und bestätigen Sie Ihre " "Bestellung." -#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:18 -#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:49 -#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:70 -#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:106 +#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:17 +#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:57 +#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:78 +#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:114 msgid "Modify" msgstr "Bearbeiten" -#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:22 -#: pretix/presale/templates/pretixpresale/event/index.html:20 -msgid "Your cart" -msgstr "Ihr Warenkorb" - -#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:31 -#: pretix/presale/templates/pretixpresale/event/index.html:26 -#, python-format -msgid "The items in your cart are reserved for you for %(minutes)s minutes." -msgstr "" -"Die Produkte in Ihrem Warenkorb sind noch %(minutes)s Minuten für Sie " -"reserviert." - -#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:35 -#: pretix/presale/templates/pretixpresale/event/index.html:30 -msgid "The items in your cart are no longer reserved for you." -msgstr "Die Produkte in Ihrem Warenkorb sind nicht mehr für Sie reserviert." - -#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:110 -#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:20 +#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:118 +#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:18 msgid "Contact information" msgstr "Kontaktinformationen" -#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:132 +#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:140 msgid "Confirmations" msgstr "Bestätigungen" -#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:157 +#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:165 msgid "Place binding order" msgstr "Zahlungspflichtig bestellen" -#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:159 +#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:167 msgid "Submit registration" msgstr "Anmeldung abschicken" -#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:7 +#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:5 msgid "Please select how you want to pay." msgstr "Bitte wählen Sie die gewünschte Zahlungsmethode aus." -#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:36 +#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:34 msgid "There are no payment providers enabled." msgstr "Es sind keine Zahlungsmethoden aktiviert." -#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:38 +#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:36 msgid "" "Please go to the payment settings and activate one or more payment providers." msgstr "" "Bitte gehen Sie in die Zahlungs-Einstellungen und aktivieren Sie eine oder " "mehrere Zahlungsmethoden." -#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:7 +#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:5 msgid "Before we continue, we need you to answer some questions." msgstr "" "Bitte antworten Sie auf die untenstehenden Fragen, bevor wir mit der " "Bestellung fortfahren." -#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:9 +#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:7 msgid "" "You need to fill all fields that are marked with * to continue." msgstr "" "Alle mit einem * markierten Felder müssen ausgefüllt werden." -#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:37 +#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:35 #: pretix/presale/templates/pretixpresale/event/order_modify.html:26 msgid "(optional)" msgstr "(optional)" -#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:63 +#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:61 msgid "Copy answers from above" msgstr "Antworten von oben kopieren" -#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:78 +#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:76 msgid "Selected add-ons" msgstr "Gewählte Zusatzprodukte" -#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:102 +#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:100 msgid "Are you sure your email address is correct?" msgstr "Sind Sie sicher, dass Ihre E-Mail-Adresse korrekt ist?" -#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:103 +#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:101 #, python-format msgid "You entered \"%(entered)s\". Did you mean \"%(suggestion)s\"?" msgstr "Sie haben \"%(entered)s\" eingegeben. Meinten Sie \"%(suggestion)s\"?" @@ -10540,7 +10638,7 @@ msgid "%(num)s currently available" msgstr "Aktuell verfügbar: %(num)s" #: pretix/presale/templates/pretixpresale/event/fragment_subevent_calendar.html:23 -#: pretix/presale/templates/pretixpresale/organizers/calendar.html:46 +#: pretix/presale/templates/pretixpresale/organizers/calendar.html:52 msgid "Go" msgstr "Los!" @@ -10562,76 +10660,76 @@ msgstr "Noch nicht im Verkauf" msgid "Presale" msgstr "Vorverkauf" -#: pretix/presale/templates/pretixpresale/event/index.html:38 +#: pretix/presale/templates/pretixpresale/event/index.html:56 msgid "Empty cart" msgstr "Warenkorb leeren" -#: pretix/presale/templates/pretixpresale/event/index.html:48 +#: pretix/presale/templates/pretixpresale/event/index.html:66 msgid "Proceed with checkout" msgstr "Zur Kasse" -#: pretix/presale/templates/pretixpresale/event/index.html:61 +#: pretix/presale/templates/pretixpresale/event/index.html:80 msgid "View other date" msgstr "Zu anderem Termin wechseln" -#: pretix/presale/templates/pretixpresale/event/index.html:64 +#: pretix/presale/templates/pretixpresale/event/index.html:83 msgid "Choose date to buy a ticket" msgstr "Wählen Sie einen Termin aus" -#: pretix/presale/templates/pretixpresale/event/index.html:88 +#: pretix/presale/templates/pretixpresale/event/index.html:107 msgid "The presale period for this event is over." msgstr "Der Vorverkaufszeitraum für diese Veranstaltung ist vorüber." -#: pretix/presale/templates/pretixpresale/event/index.html:92 +#: pretix/presale/templates/pretixpresale/event/index.html:111 #, python-format msgid "The presale for this event will start on %(date)s at %(time)s." msgstr "" "Der Vorverkauf für diese Veranstaltung wird am %(date)s um %(time)s Uhr " "beginnen." -#: pretix/presale/templates/pretixpresale/event/index.html:96 +#: pretix/presale/templates/pretixpresale/event/index.html:115 msgid "The presale for this event has not yet started." msgstr "Der Vorverkauf für diese Veranstaltung hat noch nicht begonnen." -#: pretix/presale/templates/pretixpresale/event/index.html:117 +#: pretix/presale/templates/pretixpresale/event/index.html:137 #, python-format msgid "Begin: %(time)s" msgstr "Beginn: %(time)s" -#: pretix/presale/templates/pretixpresale/event/index.html:122 +#: pretix/presale/templates/pretixpresale/event/index.html:142 #, python-format msgid "End: %(time)s" msgstr "Ende: %(time)s" -#: pretix/presale/templates/pretixpresale/event/index.html:130 +#: pretix/presale/templates/pretixpresale/event/index.html:150 #, python-format msgid "Admission: %(time)s" msgstr "Einlass: %(time)s" -#: pretix/presale/templates/pretixpresale/event/index.html:134 +#: pretix/presale/templates/pretixpresale/event/index.html:154 #, python-format msgid "Admission: %(datetime)s" msgstr "Einlass: %(datetime)s" -#: pretix/presale/templates/pretixpresale/event/index.html:145 +#: pretix/presale/templates/pretixpresale/event/index.html:165 msgid "Add to Calendar" msgstr "Zum Kalender hinzufügen" -#: pretix/presale/templates/pretixpresale/event/index.html:192 -#: pretix/presale/templates/pretixpresale/event/index.html:315 +#: pretix/presale/templates/pretixpresale/event/index.html:214 +#: pretix/presale/templates/pretixpresale/event/index.html:337 #, python-format msgid "minimum amount to order: %(num)s" msgstr "minimale Bestellmenge: %(num)s" -#: pretix/presale/templates/pretixpresale/event/index.html:202 +#: pretix/presale/templates/pretixpresale/event/index.html:224 #: pretix/presale/templates/pretixpresale/event/voucher.html:59 #, python-format msgid "from %(currency)s %(minprice)s" msgstr "ab %(currency)s %(minprice)s" -#: pretix/presale/templates/pretixpresale/event/index.html:206 -#: pretix/presale/templates/pretixpresale/event/index.html:247 -#: pretix/presale/templates/pretixpresale/event/index.html:334 +#: pretix/presale/templates/pretixpresale/event/index.html:228 +#: pretix/presale/templates/pretixpresale/event/index.html:269 +#: pretix/presale/templates/pretixpresale/event/index.html:356 #: pretix/presale/templates/pretixpresale/event/voucher.html:63 #: pretix/presale/templates/pretixpresale/event/voucher.html:95 #: pretix/presale/templates/pretixpresale/event/voucher.html:164 @@ -10639,41 +10737,41 @@ msgctxt "price" msgid "FREE" msgstr "GRATIS" -#: pretix/presale/templates/pretixpresale/event/index.html:214 +#: pretix/presale/templates/pretixpresale/event/index.html:236 msgid "Show variants" msgstr "Varianten zeigen" -#: pretix/presale/templates/pretixpresale/event/index.html:258 -#: pretix/presale/templates/pretixpresale/event/index.html:345 +#: pretix/presale/templates/pretixpresale/event/index.html:280 +#: pretix/presale/templates/pretixpresale/event/index.html:367 #: pretix/presale/templates/pretixpresale/event/voucher.html:175 #, python-format msgid "incl. %(rate)s%% %(name)s" msgstr "inkl. %(rate)s%% %(name)s" -#: pretix/presale/templates/pretixpresale/event/index.html:266 -#: pretix/presale/templates/pretixpresale/event/index.html:353 +#: pretix/presale/templates/pretixpresale/event/index.html:288 +#: pretix/presale/templates/pretixpresale/event/index.html:375 msgid "Enter a voucher code below to buy this ticket." msgstr "" "Geben Sie unten einen Gutscheincode ein, um dieses Produkt zu bestellen." -#: pretix/presale/templates/pretixpresale/event/index.html:382 +#: pretix/presale/templates/pretixpresale/event/index.html:404 #: pretix/presale/templates/pretixpresale/event/voucher.html:207 msgid "Add to cart" msgstr "Zum Warenkorb hinzufügen" -#: pretix/presale/templates/pretixpresale/event/index.html:394 +#: pretix/presale/templates/pretixpresale/event/index.html:416 msgid "Redeem a voucher" msgstr "Gutschein einlösen" -#: pretix/presale/templates/pretixpresale/event/index.html:407 +#: pretix/presale/templates/pretixpresale/event/index.html:429 msgid "Redeem voucher" msgstr "Gutschein einlösen" -#: pretix/presale/templates/pretixpresale/event/index.html:417 +#: pretix/presale/templates/pretixpresale/event/index.html:440 msgid "If you already ordered a ticket" msgstr "Wenn Sie bereits ein Ticket bestellt haben" -#: pretix/presale/templates/pretixpresale/event/index.html:421 +#: pretix/presale/templates/pretixpresale/event/index.html:444 msgid "" "If you want to see or change the status and details of your order, click on " "the link in one of the emails we sent you during the order process. If you " @@ -10686,7 +10784,7 @@ msgstr "" "klicken Sie auf den folgenden Button, um ein erneutes Zusenden des Links " "anzufordern." -#: pretix/presale/templates/pretixpresale/event/index.html:430 +#: pretix/presale/templates/pretixpresale/event/index.html:453 #: pretix/presale/templates/pretixpresale/event/resend_link.html:4 #: pretix/presale/templates/pretixpresale/event/resend_link.html:7 msgid "Resend order links" @@ -10725,20 +10823,30 @@ msgstr "" "außerdem soeben einen Link mit dieser Adresse an Ihre E-Mail-Adresse " "geschickt." -#: pretix/presale/templates/pretixpresale/event/order.html:46 +#: pretix/presale/templates/pretixpresale/event/order.html:29 +msgid "" +"Please save the following link if you want to download your ticket or change " +"your details later. We also sent you an email containing the link to the " +"address you specified." +msgstr "" +"Bitte speichern Sie folgenden Link ab, wenn Sie Ihr Ticket später " +"herunterladen oder Ihre Angaben ändern wollen. Wir haben Ihnen außerdem " +"soeben einen Link mit dieser Adresse an Ihre E-Mail-Adresse geschickt." + +#: pretix/presale/templates/pretixpresale/event/order.html:51 msgid "Use different payment method" msgstr "Andere Zahlungsmethode wählen" -#: pretix/presale/templates/pretixpresale/event/order.html:57 +#: pretix/presale/templates/pretixpresale/event/order.html:62 msgid "Complete payment" msgstr "Zahlung abschließen" -#: pretix/presale/templates/pretixpresale/event/order.html:61 +#: pretix/presale/templates/pretixpresale/event/order.html:66 #, python-format msgid "Please complete your payment before %(date)s" msgstr "Bitte schließen Sie Ihre Zahlung bis zum %(date)s ab." -#: pretix/presale/templates/pretixpresale/event/order.html:72 +#: pretix/presale/templates/pretixpresale/event/order.html:77 msgid "" "You can download your tickets using the buttons below. Please have your " "ticket ready when entering the event." @@ -10746,25 +10854,25 @@ msgstr "" "Bitte laden Sie Ihr Ticket mit Hilfe der Buttons weiter unten herunter. " "Bitte halten Sie das Ticket am Einlass bereit." -#: pretix/presale/templates/pretixpresale/event/order.html:78 +#: pretix/presale/templates/pretixpresale/event/order.html:83 msgid "Download all tickets at once:" msgstr "Alle Tickets auf einmal herunterladen:" -#: pretix/presale/templates/pretixpresale/event/order.html:92 +#: pretix/presale/templates/pretixpresale/event/order.html:97 #, python-format msgid "You will be able to download your tickets here starting on %(date)s." msgstr "Sie können Ihre Tickets hier ab %(date)s herunterladen." -#: pretix/presale/templates/pretixpresale/event/order.html:104 -#: pretix/presale/templates/pretixpresale/event/order.html:167 +#: pretix/presale/templates/pretixpresale/event/order.html:109 +#: pretix/presale/templates/pretixpresale/event/order.html:172 msgid "Change details" msgstr "Details bearbeiten" -#: pretix/presale/templates/pretixpresale/event/order.html:152 +#: pretix/presale/templates/pretixpresale/event/order.html:157 msgid "Request invoice" msgstr "Rechnung anfragen" -#: pretix/presale/templates/pretixpresale/event/order.html:191 +#: pretix/presale/templates/pretixpresale/event/order.html:196 msgid "Internal Reference" msgstr "Interne Referenz" @@ -10925,54 +11033,54 @@ msgstr "Dieser Vorverkauf läuft mit pretix." msgid "There is nothing to see here yet." msgstr "Hier gibt es zur Zeit nichts zu sehen." -#: pretix/presale/templates/pretixpresale/organizers/calendar.html:5 +#: pretix/presale/templates/pretixpresale/organizers/calendar.html:6 msgid "Event overview" msgstr "Überblick" -#: pretix/presale/templates/pretixpresale/organizers/calendar.html:31 -#: pretix/presale/templates/pretixpresale/organizers/index.html:33 +#: pretix/presale/templates/pretixpresale/organizers/calendar.html:37 +#: pretix/presale/templates/pretixpresale/organizers/index.html:34 msgid "iCal" msgstr "iCal" -#: pretix/presale/templates/pretixpresale/organizers/calendar.html:67 +#: pretix/presale/templates/pretixpresale/organizers/calendar.html:71 msgid "Note that the events in this view are in different timezones." msgstr "" "Achtung: Die angezeigten Veranstaltungen liegen in unterschiedlichen " "Zeitzonen." -#: pretix/presale/templates/pretixpresale/organizers/index.html:5 +#: pretix/presale/templates/pretixpresale/organizers/index.html:6 msgid "Event list" msgstr "Veranstaltungs-Liste" -#: pretix/presale/templates/pretixpresale/organizers/index.html:13 +#: pretix/presale/templates/pretixpresale/organizers/index.html:14 msgid "Past events" msgstr "Vergangene Veranstaltungen" -#: pretix/presale/templates/pretixpresale/organizers/index.html:15 +#: pretix/presale/templates/pretixpresale/organizers/index.html:16 msgid "Upcoming events" msgstr "Nächste Veranstaltungen" -#: pretix/presale/templates/pretixpresale/organizers/index.html:36 +#: pretix/presale/templates/pretixpresale/organizers/index.html:37 msgid "Show upcoming" msgstr "Zukünftige Veranstaltungen zeigen" -#: pretix/presale/templates/pretixpresale/organizers/index.html:38 +#: pretix/presale/templates/pretixpresale/organizers/index.html:39 msgid "Show past events" msgstr "Vergangene Veranstaltungen zeigen" -#: pretix/presale/templates/pretixpresale/organizers/index.html:59 +#: pretix/presale/templates/pretixpresale/organizers/index.html:60 msgid "Buy tickets" msgstr "Tickets kaufen" -#: pretix/presale/templates/pretixpresale/organizers/index.html:60 +#: pretix/presale/templates/pretixpresale/organizers/index.html:61 msgid "More info" msgstr "Mehr Infos" -#: pretix/presale/templates/pretixpresale/organizers/index.html:69 +#: pretix/presale/templates/pretixpresale/organizers/index.html:70 msgid "No archived events found." msgstr "Keine archivierten Veranstaltungen gefunden." -#: pretix/presale/templates/pretixpresale/organizers/index.html:75 +#: pretix/presale/templates/pretixpresale/organizers/index.html:76 msgid "No public upcoming events found." msgstr "Keine öffentlichen Veranstaltungen geplant." @@ -10997,98 +11105,98 @@ msgstr "Diese Funktion ist nicht aktiviert." msgid "The selected organizer was not found." msgstr "Der ausgewählte Veranstalter wurde nicht gefunden." -#: pretix/presale/views/cart.py:69 pretix/presale/views/cart.py:87 -#: pretix/presale/views/cart.py:99 +#: pretix/presale/views/cart.py:79 pretix/presale/views/cart.py:97 +#: pretix/presale/views/cart.py:109 msgid "Please enter numbers only." msgstr "Bitte nur Zahlen eingeben." -#: pretix/presale/views/cart.py:71 +#: pretix/presale/views/cart.py:81 msgid "Please enter positive numbers only." msgstr "Bitte nur positive Zahlen eingeben." -#: pretix/presale/views/cart.py:185 +#: pretix/presale/views/cart.py:226 msgid "Your cart has been updated." msgstr "Ihr Warenkorb wurde aktualisiert." -#: pretix/presale/views/cart.py:187 pretix/presale/views/cart.py:206 +#: pretix/presale/views/cart.py:228 pretix/presale/views/cart.py:248 msgid "Your cart is now empty." msgstr "Ihr Warenkorb ist nun leer." -#: pretix/presale/views/cart.py:217 +#: pretix/presale/views/cart.py:262 msgid "The products have been successfully added to your cart." msgstr "Die gewählten Produkte wurden Ihrem Warenkorb hinzugefügt." -#: pretix/presale/views/checkout.py:20 +#: pretix/presale/views/checkout.py:31 msgid "Your cart is empty" msgstr "Ihr Warenkorb ist leer." -#: pretix/presale/views/checkout.py:24 +#: pretix/presale/views/checkout.py:35 msgid "The presale for this event is over or has not yet started." msgstr "" "Der Vorverkauf für diese Veranstaltung ist vorüber oder hat noch nicht " "begonnen." -#: pretix/presale/views/event.py:223 +#: pretix/presale/views/event.py:275 msgid "Unknown event code or not authorized to access this event." msgstr "" "Unbekannte Veranstaltung oder Sie haben keine Berechtigung, auf diese " "Veranstaltung zuzugreifen." -#: pretix/presale/views/event.py:230 +#: pretix/presale/views/event.py:282 msgctxt "subevent" msgid "No date selected." msgstr "Kein Termin ausgewählt." -#: pretix/presale/views/event.py:233 +#: pretix/presale/views/event.py:285 msgctxt "subevent" msgid "Unknown date selected." msgstr "Ungültiger Termin ausgewählt." -#: pretix/presale/views/event.py:256 pretix/presale/views/event.py:264 -#: pretix/presale/views/event.py:267 +#: pretix/presale/views/event.py:308 pretix/presale/views/event.py:316 +#: pretix/presale/views/event.py:319 msgid "Please go back and try again." msgstr "Bitte gehen Sie einen Schritt zurück und versuchen es erneut." -#: pretix/presale/views/order.py:68 pretix/presale/views/order.py:147 -#: pretix/presale/views/order.py:200 pretix/presale/views/order.py:244 -#: pretix/presale/views/order.py:282 pretix/presale/views/order.py:392 -#: pretix/presale/views/order.py:460 pretix/presale/views/order.py:481 -#: pretix/presale/views/order.py:508 pretix/presale/views/order.py:584 -#: pretix/presale/views/order.py:643 +#: pretix/presale/views/order.py:71 pretix/presale/views/order.py:157 +#: pretix/presale/views/order.py:211 pretix/presale/views/order.py:256 +#: pretix/presale/views/order.py:295 pretix/presale/views/order.py:406 +#: pretix/presale/views/order.py:475 pretix/presale/views/order.py:497 +#: pretix/presale/views/order.py:525 pretix/presale/views/order.py:603 +#: pretix/presale/views/order.py:663 msgid "Unknown order code or not authorized to access this order." msgstr "" "Unbekannte Bestellnummer oder Bestellung gehört einem anderen Benutzer." -#: pretix/presale/views/order.py:151 pretix/presale/views/order.py:203 +#: pretix/presale/views/order.py:161 pretix/presale/views/order.py:214 msgid "The payment for this order cannot be continued." msgstr "Diese Bestellung kann nicht mehr bezahlt werden." -#: pretix/presale/views/order.py:156 pretix/presale/views/order.py:252 -#: pretix/presale/views/order.py:289 +#: pretix/presale/views/order.py:166 pretix/presale/views/order.py:264 +#: pretix/presale/views/order.py:302 msgid "The payment is too late to be accepted." msgstr "Die Zahlung kommt zu spät, um akzeptiert werden zu können." -#: pretix/presale/views/order.py:284 +#: pretix/presale/views/order.py:297 msgid "The payment method for this order cannot be changed." msgstr "Die Zahlungsmethode für diese Bestellung kann nicht geändert werden." -#: pretix/presale/views/order.py:462 +#: pretix/presale/views/order.py:477 msgid "You cannot modify this order" msgstr "Sie können diese Bestellung nicht bearbeiten" -#: pretix/presale/views/order.py:586 +#: pretix/presale/views/order.py:605 msgid "Order is not paid." msgstr "Die Bestellung ist nicht bezahlt." -#: pretix/presale/views/order.py:590 +#: pretix/presale/views/order.py:609 msgid "Ticket download is not (yet) enabled." msgstr "Der Ticket-Download ist (noch) nicht freigeschaltet." -#: pretix/presale/views/order.py:592 +#: pretix/presale/views/order.py:611 msgid "Ticket download is not enabled for add-on products." msgstr "Der Ticket-Download ist für Zusatzprodukte nicht freigeschaltet." -#: pretix/presale/views/order.py:594 +#: pretix/presale/views/order.py:613 msgid "Ticket download is not enabled for non-admission products." msgstr "Der Ticket-Download ist nur für Zutrittsprodukte freigeschaltet." @@ -11114,20 +11222,20 @@ msgstr "" "Wenn mit dieser E-Mail-Adresse Bestellungen gefunden wurden, erhalten Sie " "nun eine E-Mail mit den entsprechenden Links." -#: pretix/presale/views/waiting.py:54 +#: pretix/presale/views/waiting.py:57 msgid "Waiting lists are disabled for this event." msgstr "Wartelisten sind für diese Veranstaltung nicht aktiviert." -#: pretix/presale/views/waiting.py:58 +#: pretix/presale/views/waiting.py:61 msgid "We could not identify the product you selected." msgstr "Wir konnten das ausgewählte Produkt nicht finden." -#: pretix/presale/views/waiting.py:67 +#: pretix/presale/views/waiting.py:70 msgctxt "subevent" msgid "You need to select a date." msgstr "Sie müssen einen Termin auswählen." -#: pretix/presale/views/waiting.py:79 +#: pretix/presale/views/waiting.py:82 msgid "" "You cannot add yourself to the waiting list as this product is currently " "available." @@ -11135,7 +11243,7 @@ msgstr "" "Sie können Sich nicht zur Liste hinzufügen, da das Produkt gerade verfügbar " "ist." -#: pretix/presale/views/waiting.py:84 +#: pretix/presale/views/waiting.py:87 msgid "" "We've added you to the waiting list. You will receive an email as soon as " "tickets get available again." @@ -11143,15 +11251,15 @@ msgstr "" "Wir haben Sie zur Warteliste hinzugefügt. Sie erhalten eine E-Mail, sobald " "wieder Tickets verfügbar sind." -#: pretix/settings.py:322 +#: pretix/settings.py:323 msgid "English" msgstr "Englisch" -#: pretix/settings.py:323 +#: pretix/settings.py:324 msgid "German" msgstr "Deutsch" -#: pretix/settings.py:324 +#: pretix/settings.py:325 msgid "German (informal)" msgstr "Deutsch (Du)" diff --git a/src/pretix/locale/de/LC_MESSAGES/djangojs.po b/src/pretix/locale/de/LC_MESSAGES/djangojs.po index 6897afce7..daa387f29 100644 --- a/src/pretix/locale/de/LC_MESSAGES/djangojs.po +++ b/src/pretix/locale/de/LC_MESSAGES/djangojs.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-10-18 11:11+0000\n" -"PO-Revision-Date: 2017-08-27 09:35+0200\n" +"POT-Creation-Date: 2017-10-28 20:59+0000\n" +"PO-Revision-Date: 2017-10-28 22:59+0200\n" "Last-Translator: Raphael Michel \n" "Language-Team: \n" "Language: de\n" @@ -16,7 +16,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Poedit 2.0.3\n" +"X-Generator: Poedit 2.0.2\n" #: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:56 #: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:62 @@ -188,12 +188,12 @@ msgid "Unknown error." msgstr "Unbekannter Fehler." #: pretix/static/pretixcontrol/js/ui/main.js:329 -msgid "Alle" -msgstr "" +msgid "All" +msgstr "Alle" #: pretix/static/pretixcontrol/js/ui/main.js:330 -msgid "Keine" -msgstr "" +msgid "None" +msgstr "Keine" #: pretix/static/pretixcontrol/js/ui/question.js:41 msgid "Others" @@ -203,11 +203,15 @@ msgstr "Sonstige" msgid "Count" msgstr "Anzahl" -#: pretix/static/pretixpresale/js/ui/cart.js:16 +#: pretix/static/pretixpresale/js/ui/cart.js:22 msgid "The items in your cart are no longer reserved for you." msgstr "Die Produkte in Ihrem Warenkorb sind nicht mehr für Sie reserviert." -#: pretix/static/pretixpresale/js/ui/cart.js:20 +#: pretix/static/pretixpresale/js/ui/cart.js:24 +msgid "Cart expired" +msgstr "Warenkorb abgelaufen" + +#: pretix/static/pretixpresale/js/ui/cart.js:29 msgid "The items in your cart are reserved for you for one minute." msgid_plural "The items in your cart are reserved for you for {num} minutes." msgstr[0] "" @@ -215,20 +219,132 @@ msgstr[0] "" msgstr[1] "" "Die Produkte in Ihrem Warenkorb sind noch {num} Minuten für Sie reserviert." -#: pretix/static/pretixcontrol/js/ui/main.js:329 -msgid "All" -msgstr "Alle" +#: pretix/static/pretixpresale/js/widget/widget.js:9 +msgctxt "widget" +msgid "Sold out" +msgstr "Ausverkauft" -#: pretix/static/pretixcontrol/js/ui/main.js:330 -msgid "None" -msgstr "Keine" +#: pretix/static/pretixpresale/js/widget/widget.js:10 +msgctxt "widget" +msgid "Buy" +msgstr "In den Warenkorb" + +#: pretix/static/pretixpresale/js/widget/widget.js:11 +msgctxt "widget" +msgid "Reserved" +msgstr "Reserviert" + +#: pretix/static/pretixpresale/js/widget/widget.js:12 +msgctxt "widget" +msgid "FREE" +msgstr "GRATIS" + +#: pretix/static/pretixpresale/js/widget/widget.js:13 +msgctxt "widget" +msgid "from %(currency)s %(price)s" +msgstr "ab %(currency)s %(price)s" + +#: pretix/static/pretixpresale/js/widget/widget.js:14 +msgctxt "widget" +msgid "incl. %(rate)s% %(taxname)s" +msgstr "inkl. %(rate)s% %(taxname)s" + +#: pretix/static/pretixpresale/js/widget/widget.js:15 +msgctxt "widget" +msgid "plus %(rate)s% %(taxname)s" +msgstr "zzgl. %(rate)s% %(taxname)s" + +#: pretix/static/pretixpresale/js/widget/widget.js:16 +#, javascript-format +msgctxt "widget" +msgid "currently available: %s" +msgstr "aktuell verfügbar: %s" + +#: pretix/static/pretixpresale/js/widget/widget.js:17 +msgctxt "widget" +msgid "Only available with a voucher" +msgstr "Nur mit Gutschein verfügbar" + +#: pretix/static/pretixpresale/js/widget/widget.js:18 +#, javascript-format +msgctxt "widget" +msgid "minimum amount to order: %s" +msgstr "minimale Bestellmenge: %s" + +#: pretix/static/pretixpresale/js/widget/widget.js:19 +msgctxt "widget" +msgid "Close ticket shop" +msgstr "Ticket-Shop schließen" + +#: pretix/static/pretixpresale/js/widget/widget.js:20 +msgctxt "widget" +msgid "The ticket shop could not be loaded." +msgstr "Der Ticket-Shop konnte nicht geladen werden." + +#: pretix/static/pretixpresale/js/widget/widget.js:21 +msgctxt "widget" +msgid "The cart could not be created. Please try again later" +msgstr "Der Warenkorb konnte nicht erstellt werden. Bitte erneut versuchen." + +#: pretix/static/pretixpresale/js/widget/widget.js:22 +msgctxt "widget" +msgid "Waiting list" +msgstr "Warteliste" + +#: pretix/static/pretixpresale/js/widget/widget.js:23 +msgctxt "widget" +msgid "" +"You currently have an active cart for this event. If you select more " +"products, they will be added to your existing cart. Click on this message to " +"continue checkout with your cart." +msgstr "" +"Sie haben einen aktiven Warenkorb für diese Veranstaltung. Wenn Sie mehr " +"Produkte auswählen, werden diese zu Ihrem Warenkorb hinzugefügt. Klicken Sie " +"auf diese Meldung um den Kauf des bestehenden Warenkorbs fortzusetzen oder " +"den Warenkorb zu verändern." + +#: pretix/static/pretixpresale/js/widget/widget.js:26 +msgctxt "widget" +msgid "" +"ticketing powered by pretix" +msgstr "" +"ticketing powered by pretix" + +#: pretix/static/pretixpresale/js/widget/widget.js:27 +msgctxt "widget" +msgid "Redeem a voucher" +msgstr "Gutschein einlösen" + +#: pretix/static/pretixpresale/js/widget/widget.js:28 +msgctxt "widget" +msgid "Redeem" +msgstr "Einlösen" + +#: pretix/static/pretixpresale/js/widget/widget.js:29 +msgctxt "widget" +msgid "Voucher code" +msgstr "Gutscheincode" + +#: pretix/static/pretixpresale/js/widget/widget.js:30 +msgctxt "widget" +msgid "Close" +msgstr "Schließen" + +#: pretix/static/pretixpresale/js/widget/widget.js:31 +msgctxt "widget" +msgid "Continue" +msgstr "Weiter" + +#: pretix/static/pretixpresale/js/widget/widget.js:32 +msgctxt "widget" +msgid "See variations" +msgstr "Varianten zeigen" #~ msgid "Sample product" #~ msgstr "Beispielprodukt" -#~ msgid "Sample variation" -#~ msgstr "Beispielvariante" - #~ msgid "Sample product – sample variation" #~ msgstr "Beispielprodukt – Beispielvariante" diff --git a/src/pretix/locale/de_Informal/LC_MESSAGES/django.po b/src/pretix/locale/de_Informal/LC_MESSAGES/django.po index d85e04458..94e1dd17d 100644 --- a/src/pretix/locale/de_Informal/LC_MESSAGES/django.po +++ b/src/pretix/locale/de_Informal/LC_MESSAGES/django.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-10-26 22:52+0000\n" -"PO-Revision-Date: 2017-10-27 00:55+0200\n" +"POT-Creation-Date: 2017-10-28 20:58+0000\n" +"PO-Revision-Date: 2017-10-28 22:57+0200\n" "Last-Translator: Raphael Michel \n" "Language-Team: Raphael Michel \n" "Language: de\n" @@ -16,7 +16,34 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Poedit 2.0.4\n" +"X-Generator: Poedit 2.0.2\n" + +#: htmlcov/pretix_control_views_dashboards_py.html:898 +#: pretix/control/templates/pretixcontrol/events/index.html:122 +#: pretix/control/views/dashboards.py:346 +msgid "Shop disabled" +msgstr "Shop deaktiviert" + +#: htmlcov/pretix_control_views_dashboards_py.html:900 +#: pretix/control/forms/filter.py:236 pretix/control/forms/filter.py:298 +#: pretix/control/templates/pretixcontrol/events/index.html:124 +#: pretix/control/templates/pretixcontrol/subevents/index.html:91 +msgid "Presale over" +msgstr "Verkauf vorüber" + +#: htmlcov/pretix_control_views_dashboards_py.html:902 +#: pretix/control/forms/filter.py:235 pretix/control/forms/filter.py:297 +#: pretix/control/templates/pretixcontrol/events/index.html:126 +#: pretix/control/templates/pretixcontrol/subevents/index.html:93 +msgid "Presale not started" +msgstr "noch nicht gestartet" + +#: htmlcov/pretix_control_views_dashboards_py.html:904 +#: pretix/control/templates/pretixcontrol/events/index.html:128 +#: pretix/control/templates/pretixcontrol/subevents/index.html:95 +#: pretix/control/views/dashboards.py:352 +msgid "On sale" +msgstr "Aktiv" #: pretix/base/exporters/answers.py:18 msgid "Answers to file upload questions" @@ -101,8 +128,8 @@ msgstr "Bestelldatum" #: pretix/base/exporters/orderlist.py:65 #: pretix/control/templates/pretixcontrol/order/index.html:369 -#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:79 -#: pretix/presale/templates/pretixpresale/event/order.html:177 +#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:87 +#: pretix/presale/templates/pretixpresale/event/order.html:182 msgid "Company" msgstr "Firma" @@ -115,16 +142,16 @@ msgstr "Firma" #: pretix/control/templates/pretixcontrol/order/index.html:371 #: pretix/control/templates/pretixcontrol/organizers/team_members.html:91 #: pretix/control/templates/pretixcontrol/subevents/index.html:47 -#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:81 -#: pretix/presale/templates/pretixpresale/event/order.html:179 -#: pretix/presale/templates/pretixpresale/organizers/index.html:45 +#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:89 +#: pretix/presale/templates/pretixpresale/event/order.html:184 +#: pretix/presale/templates/pretixpresale/organizers/index.html:46 msgid "Name" msgstr "Name" #: pretix/base/exporters/orderlist.py:65 pretix/base/models/orders.py:876 #: pretix/control/templates/pretixcontrol/order/index.html:373 -#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:83 -#: pretix/presale/templates/pretixpresale/event/order.html:181 +#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:91 +#: pretix/presale/templates/pretixpresale/event/order.html:186 msgid "Address" msgstr "Adresse" @@ -139,15 +166,15 @@ msgstr "Ort" #: pretix/base/exporters/orderlist.py:65 pretix/base/models/orders.py:879 #: pretix/base/models/orders.py:880 #: pretix/control/templates/pretixcontrol/order/index.html:377 -#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:87 -#: pretix/presale/templates/pretixpresale/event/order.html:185 +#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:95 +#: pretix/presale/templates/pretixpresale/event/order.html:190 msgid "Country" msgstr "Land" #: pretix/base/exporters/orderlist.py:65 pretix/base/models/orders.py:881 #: pretix/control/templates/pretixcontrol/order/index.html:380 -#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:90 -#: pretix/presale/templates/pretixpresale/event/order.html:188 +#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:98 +#: pretix/presale/templates/pretixpresale/event/order.html:193 msgid "VAT ID" msgstr "USt-ID" @@ -532,7 +559,7 @@ msgstr "Ist Systemadministrator" msgid "Date joined" msgstr "Registrierungsdatum" -#: pretix/base/models/auth.py:79 +#: pretix/base/models/auth.py:79 pretix/control/forms/event.py:909 msgid "Language" msgstr "Sprache" @@ -708,7 +735,7 @@ msgid "Dates in event series" msgstr "Termine in Veranstaltungsreihe" #: pretix/base/models/event.py:670 -msgid "Can not contain spaces or special characters execpt underscores" +msgid "Can not contain spaces or special characters except underscores" msgstr "Darf keine Leerzeichen und Sonderzeichen außer Unterstrichen enthalten" #: pretix/base/models/event.py:675 @@ -1075,7 +1102,8 @@ msgstr "Antwort" #: pretix/base/models/items.py:705 pretix/base/models/orders.py:537 #: pretix/base/models/vouchers.py:91 pretix/base/models/waitinglist.py:33 -#: pretix/control/forms/filter.py:158 pretix/control/forms/orders.py:120 +#: pretix/control/forms/event.py:904 pretix/control/forms/filter.py:158 +#: pretix/control/forms/orders.py:120 #: pretix/control/templates/pretixcontrol/checkin/index.html:60 #: pretix/control/templates/pretixcontrol/items/quotas.html:60 #: pretix/control/templates/pretixcontrol/subevents/detail.html:6 @@ -1192,7 +1220,7 @@ msgstr "Sprache" #: pretix/base/models/orders.py:132 pretix/base/models/orders.py:835 #: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/import_assign.html:17 #: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/transaction_list.html:10 -#: pretix/presale/templates/pretixpresale/organizers/index.html:46 +#: pretix/presale/templates/pretixpresale/organizers/index.html:47 msgid "Date" msgstr "Datum" @@ -1274,7 +1302,7 @@ msgstr "Das Produkt \"{item}\" ist nicht mehr verfügbar." #: pretix/plugins/checkinlists/exporters.py:128 #: pretix/plugins/pretixdroid/templates/pretixplugins/pretixdroid/configuration.html:77 #: pretix/plugins/pretixdroid/templates/pretixplugins/pretixdroid/configuration.html:78 -#: pretix/presale/checkoutflow.py:495 +#: pretix/presale/checkoutflow.py:504 msgid "Yes" msgstr "Ja" @@ -1286,7 +1314,7 @@ msgstr "Ja" #: pretix/plugins/pretixdroid/templates/pretixplugins/pretixdroid/configuration.html:77 #: pretix/plugins/pretixdroid/templates/pretixplugins/pretixdroid/configuration.html:78 #: pretix/plugins/stripe/templates/pretixplugins/stripe/action_refund.html:14 -#: pretix/presale/checkoutflow.py:497 +#: pretix/presale/checkoutflow.py:506 msgid "No" msgstr "Nein" @@ -1387,7 +1415,7 @@ msgstr "Nur für Firmenkunden mit Sitz in der EU." #: pretix/base/models/orders.py:885 #: pretix/control/templates/pretixcontrol/order/index.html:396 -#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:93 +#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:101 msgid "Internal reference" msgstr "Interne Referenz" @@ -1575,7 +1603,7 @@ msgstr "Produktpreis reduzieren um (%)" #: pretix/base/models/vouchers.py:94 #: pretix/control/templates/pretixcontrol/vouchers/index.html:67 #: pretix/control/views/vouchers.py:64 -#: pretix/presale/templates/pretixpresale/event/index.html:401 +#: pretix/presale/templates/pretixpresale/event/index.html:423 msgid "Voucher code" msgstr "Gutscheincode" @@ -1754,7 +1782,7 @@ msgid "On waiting list since" msgstr "Auf der Liste seit" #: pretix/base/models/waitinglist.py:40 -#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:115 +#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:123 msgid "E-mail address" msgstr "E-Mail-Adresse" @@ -1944,7 +1972,7 @@ msgstr "Relativ:" msgid "Not set" msgstr "Nicht gesetzt" -#: pretix/base/services/cart.py:35 pretix/base/services/orders.py:55 +#: pretix/base/services/cart.py:35 pretix/base/services/orders.py:56 msgid "" "We were not able to process your request completely as the server was too " "busy. Please try again." @@ -1952,7 +1980,7 @@ msgstr "" "Wir konnten deine Bestellung nicht durchführen, da der Server zu beschäftigt " "war. Bitte versuche es erneut." -#: pretix/base/services/cart.py:37 pretix/presale/views/cart.py:127 +#: pretix/base/services/cart.py:37 pretix/presale/views/cart.py:137 msgid "You did not select any products." msgstr "Du hast keine Produkte ausgewählt." @@ -2011,7 +2039,7 @@ msgstr "" "Wir haben das Produkt %(product)s aus deinem Warenkorb entfernt, da es nicht " "weniger als %(min)s mal gekauft werden kann." -#: pretix/base/services/cart.py:50 pretix/base/services/orders.py:57 +#: pretix/base/services/cart.py:50 pretix/base/services/orders.py:58 msgid "The presale period for this event has not yet started." msgstr "Der Vorverkauf für diese Veranstaltung hat noch nicht begonnen." @@ -2027,7 +2055,7 @@ msgstr "" "Der Vorverkauf für diese Veranstaltung hat noch nicht begonnen. Die " "betroffenen Positionen wurden aus dem Warenkorb entfernt." -#: pretix/base/services/cart.py:54 pretix/base/services/orders.py:70 +#: pretix/base/services/cart.py:54 pretix/base/services/orders.py:71 msgid "" "The presale period for one of the events in your cart has ended. The " "affected positions have been removed from your cart." @@ -2185,7 +2213,7 @@ msgstr "" "Du kannst deine Bestellung unter folgender Adresse einsehen:\n" "{orderurl}." -#: pretix/base/services/orders.py:45 +#: pretix/base/services/orders.py:46 msgid "" "Some of the products you selected were no longer available. Please see below " "for details." @@ -2193,7 +2221,7 @@ msgstr "" "Einige der ausgewählten Produkte waren zwischenzeitlich nicht mehr " "verfügbar, bitte überprüfe deinen Warenkorb." -#: pretix/base/services/orders.py:47 +#: pretix/base/services/orders.py:48 msgid "" "Some of the products you selected were no longer available in the quantity " "you selected. Please see below for details." @@ -2201,7 +2229,7 @@ msgstr "" "Einige der ausgewählten Produkte waren zwischenzeitlich nicht mehr in der " "gewünschten Anzahl verfügbar, bitte überprüfe deinen Warenkorb." -#: pretix/base/services/orders.py:49 +#: pretix/base/services/orders.py:50 msgid "" "The price of some of the items in your cart has changed in the meantime. " "Please see below for details." @@ -2209,15 +2237,15 @@ msgstr "" "Der Preis einiger Produkte in deinem Warenkorb hat sich zwischenzeitlich " "geändert." -#: pretix/base/services/orders.py:51 +#: pretix/base/services/orders.py:52 msgid "An internal error occured, please try again." msgstr "Ein interner Fehler ist aufgetreten, bitte erneut versuchen." -#: pretix/base/services/orders.py:52 +#: pretix/base/services/orders.py:53 msgid "Your cart is empty." msgstr "Dein Warenkorb ist leer." -#: pretix/base/services/orders.py:53 +#: pretix/base/services/orders.py:54 #, python-format msgid "" "You cannot select more than %(max)s items of the product %(product)s. We " @@ -2227,11 +2255,11 @@ msgstr "" "auswählen. Wir haben die überschüssigen Produkte aus deinem Warenkorb " "entfernt." -#: pretix/base/services/orders.py:58 +#: pretix/base/services/orders.py:59 msgid "The presale period has ended." msgstr "Der Vorverkaufszeitraum ist vorüber." -#: pretix/base/services/orders.py:59 +#: pretix/base/services/orders.py:60 msgid "" "The voucher code used for one of the items in your cart is not known in our " "database." @@ -2239,7 +2267,7 @@ msgstr "" "Der Gutscheincode, der für eins der Produkte in deinem Warenkorb benutzt " "wurde, wurde nicht gefunden." -#: pretix/base/services/orders.py:60 +#: pretix/base/services/orders.py:61 msgid "" "The voucher code used for one of the items in your cart has already been " "used the maximum number of times allowed. We removed this item from your " @@ -2249,7 +2277,7 @@ msgstr "" "wurde, wurde bereits zu oft verwendet. Wir haben das entsprechende Produkt " "aus dem Warenkorb entfernt." -#: pretix/base/services/orders.py:62 +#: pretix/base/services/orders.py:63 msgid "" "The voucher code used for one of the items in your cart is expired. We " "removed this item from your cart." @@ -2258,7 +2286,7 @@ msgstr "" "wurde, ist abgelaufen. Wir haben das entsprechende Produkt aus dem Warenkorb " "entfernt." -#: pretix/base/services/orders.py:64 +#: pretix/base/services/orders.py:65 msgid "" "The voucher code used for one of the items in your cart is not valid for " "this item. We removed this item from your cart." @@ -2267,7 +2295,7 @@ msgstr "" "wurde, ist nicht für dieses Produkt gültig. Wir haben das entsprechende " "Produkt aus dem Warenkorb entfernt." -#: pretix/base/services/orders.py:66 +#: pretix/base/services/orders.py:67 msgid "" "You need a valid voucher code to order one of the products in your cart. We " "removed this item from your cart." @@ -2276,7 +2304,7 @@ msgstr "" "gekauft werden zu können. Wir haben das entsprechende Produkt aus dem " "Warenkorb entfernt." -#: pretix/base/services/orders.py:68 +#: pretix/base/services/orders.py:69 msgid "" "The presale period for one of the events in your cart has not yet started. " "The affected positions have been removed from your cart." @@ -2285,61 +2313,65 @@ msgstr "" "wurde, ist nicht für dieses Produkt gültig. Wir haben die betroffenen " "Produkte aus dem Warenkorb entfernt." -#: pretix/base/services/orders.py:149 +#: pretix/base/services/orders.py:150 #, python-format msgid "Payment received for your order: %(code)s" msgstr "Zahlung erhalten für die Bestellung: %(code)s" -#: pretix/base/services/orders.py:197 pretix/presale/views/order.py:483 -#: pretix/presale/views/order.py:510 +#: pretix/base/services/orders.py:169 pretix/control/forms/orders.py:44 +msgid "The new expiry date needs to be in the future." +msgstr "Die neue Frist muss in der Zukunft liegen." + +#: pretix/base/services/orders.py:240 pretix/presale/views/order.py:499 +#: pretix/presale/views/order.py:527 msgid "You cannot cancel this order." msgstr "Du kannst diese Bestellung nicht stornieren." -#: pretix/base/services/orders.py:220 +#: pretix/base/services/orders.py:263 #, python-format msgid "Order canceled: %(code)s" msgstr "Bestellung storniert: %(code)s" -#: pretix/base/services/orders.py:488 pretix/control/views/orders.py:401 -#: pretix/presale/templates/pretixpresale/event/order.html:33 +#: pretix/base/services/orders.py:531 pretix/control/views/orders.py:402 +#: pretix/presale/templates/pretixpresale/event/order.html:38 #, python-format msgid "Your order: %(code)s" msgstr "Deine Bestellung: %(code)s" -#: pretix/base/services/orders.py:548 +#: pretix/base/services/orders.py:591 #, python-format msgid "Your order is about to expire: %(code)s" msgstr "Deine Bestellung läuft bald ab: %(code)s" -#: pretix/base/services/orders.py:585 +#: pretix/base/services/orders.py:628 #, python-format msgid "Your ticket is ready for download: %(code)s" msgstr "Dein Ticket ist zum Download verfügbar: %(code)s" -#: pretix/base/services/orders.py:597 +#: pretix/base/services/orders.py:640 msgid "You cannot change a free order to a paid order." msgstr "Du kannst eine kostenlose Bestellung nicht kostenpflichtig machen." -#: pretix/base/services/orders.py:598 +#: pretix/base/services/orders.py:641 msgid "You need to select a variation of the product." msgstr "Du musst eine Produktvariante auswählen." -#: pretix/base/services/orders.py:599 +#: pretix/base/services/orders.py:642 #, python-brace-format msgid "" "The quota {name} does not have enough capacity left to perform the operation." msgstr "" "Das Kontingent {name} hat nicht genug freie Kapazität für diese Änderung." -#: pretix/base/services/orders.py:600 +#: pretix/base/services/orders.py:643 msgid "There is no quota defined that allows this operation." msgstr "Es ist kein Kontingent definiert, das diese Operation erlaubt." -#: pretix/base/services/orders.py:601 +#: pretix/base/services/orders.py:644 msgid "The selected product is not active or has no price set." msgstr "Das ausgewählte Produkt ist nicht aktiv oder hat keinen Preis." -#: pretix/base/services/orders.py:602 +#: pretix/base/services/orders.py:645 msgid "" "This operation would leave the order empty. Please cancel the order itself " "instead." @@ -2347,11 +2379,11 @@ msgstr "" "Diese Änderung würde die Bestellung leer hinterlassen. Bitte storniere die " "Bestellung stattdessen." -#: pretix/base/services/orders.py:603 +#: pretix/base/services/orders.py:646 msgid "Only pending or paid orders can be changed." msgstr "Nur ausstehende oder bezahlte Bestellungen können verändert werden." -#: pretix/base/services/orders.py:604 +#: pretix/base/services/orders.py:647 msgid "" "This operation would make the order free and therefore immediately paid, " "however no quota is available." @@ -2359,7 +2391,7 @@ msgstr "" "Diese Änderung würde die Bestellung kostenlos machen und damit sofort als " "bezahlt markieren, es ist jedoch kein Kontingent verfügbar." -#: pretix/base/services/orders.py:606 +#: pretix/base/services/orders.py:649 msgid "" "Currently, paid orders can only be changed in a way that does not change the " "total price of the order as partial payments or refunds are not yet " @@ -2369,7 +2401,7 @@ msgstr "" "Gesamtsumme der Bestellung dabei gleich bleibt, da Teil-Erstattungen und " "Teil-Nachzahlungen noch nicht unterstützt werden." -#: pretix/base/services/orders.py:608 +#: pretix/base/services/orders.py:651 msgid "" "This is an addon product, please select the base position it should be added " "to." @@ -2377,18 +2409,18 @@ msgstr "" "Dieses Produkt ist nur als Zusatzprodukt verfügbar, bitte wähle die " "Basisposition aus, zu der es hinzugefügt werden soll." -#: pretix/base/services/orders.py:609 +#: pretix/base/services/orders.py:652 msgid "" "The selected base position does not allow you to add this product as an add-" "on." msgstr "" "Dieses Zusatzprodukt kann nicht zu diesem Basisprodukt hinzugefügt werden." -#: pretix/base/services/orders.py:610 +#: pretix/base/services/orders.py:653 msgid "You need to choose a subevent for the new position." msgstr "Du musst einen Termin auswählen." -#: pretix/base/services/orders.py:905 +#: pretix/base/services/orders.py:948 #, python-format msgid "Your order has been changed: %(code)s" msgstr "Deine Bestellung wurde geändert: %(code)s" @@ -2403,7 +2435,7 @@ msgstr "Unkategorisiert" msgid "Sample product" msgstr "Beispielprodukt" -#: pretix/base/services/tickets.py:82 pretix/control/views/event.py:541 +#: pretix/base/services/tickets.py:82 pretix/control/views/event.py:544 #: pretix/plugins/sendmail/views.py:93 #: pretix/plugins/ticketoutputpdf/ticketoutput.py:78 #: pretix/plugins/ticketoutputpdf/ticketoutput.py:129 @@ -2912,11 +2944,11 @@ msgstr "Ticket herunterladen" msgid "This slug has an invalid value: %(value)s." msgstr "Diese Kurzform hat einen ungültigen Wert: %(value)s." -#: pretix/base/views/async.py:132 +#: pretix/base/views/async.py:136 msgid "An unexpected error has occured." msgstr "Ein unerwarteter Fehler ist aufgetreten." -#: pretix/base/views/async.py:135 +#: pretix/base/views/async.py:139 msgid "The task has been completed." msgstr "Die Aufgabe wurde fertiggestellt." @@ -3841,6 +3873,26 @@ msgstr "Biete Ticket-Download für Zusatz-Produkte an" msgid "Generate tickets for non-admission products" msgstr "Tickets für Produkte generieren, die keinen Zutritt enthalten" +#: pretix/control/forms/event.py:914 +msgid "Pre-selected voucher" +msgstr "Vorausgewählter Gutschein" + +#: pretix/control/forms/event.py:916 +msgid "" +"If set, the widget will show products as if this voucher has been entered " +"and when a product is bought via the widget, this voucher will be used. This " +"can for example be used to provide widgets that give discounts or unlock " +"secret products." +msgstr "" +"Wenn diese Option gesetzt ist, verhält sich diese Anzeige als wäre dieser " +"Gutscheincode eingegeben und wenn ein Produkt erworben wird, wird dieser " +"Gutscheincode dafür genutzt. Dies kann beispielsweise für einen Rabatt " +"verwendet werden oder um nur versteckte Produkte im Widget anzuzeigen." + +#: pretix/control/forms/event.py:938 +msgid "The given voucher code does not exist." +msgstr "Der ausgewählte Gutschein existiert nicht." + #: pretix/control/forms/filter.py:67 pretix/control/forms/filter.py:69 msgid "Search for…" msgstr "Suchen nach …" @@ -3954,18 +4006,6 @@ msgstr "Shop live und Vorverkauf läuft" msgid "Inactive" msgstr "inaktiv" -#: pretix/control/forms/filter.py:235 pretix/control/forms/filter.py:297 -#: pretix/control/templates/pretixcontrol/events/index.html:126 -#: pretix/control/templates/pretixcontrol/subevents/index.html:93 -msgid "Presale not started" -msgstr "noch nicht gestartet" - -#: pretix/control/forms/filter.py:236 pretix/control/forms/filter.py:298 -#: pretix/control/templates/pretixcontrol/events/index.html:124 -#: pretix/control/templates/pretixcontrol/subevents/index.html:91 -msgid "Presale over" -msgstr "Verkauf vorüber" - #: pretix/control/forms/filter.py:293 msgid "All events" msgstr "Alle Veranstaltungen" @@ -4137,10 +4177,6 @@ msgstr "" "wenn sie zu einem überbuchten Kontingent führt und du dadurch mehr Tickets " "verkauft hast als geplant!" -#: pretix/control/forms/orders.py:44 -msgid "The new expiry date needs to be in the future." -msgstr "Die neue Frist muss in der Zukunft liegen." - #: pretix/control/forms/orders.py:85 msgid "Re-calculate taxes" msgstr "Steuern neu berechnen" @@ -4275,14 +4311,14 @@ msgid "Default overview style" msgstr "Standard-Anzeige" #: pretix/control/forms/organizer.py:154 -#: pretix/presale/templates/pretixpresale/organizers/calendar.html:20 -#: pretix/presale/templates/pretixpresale/organizers/index.html:22 +#: pretix/presale/templates/pretixpresale/organizers/calendar.html:25 +#: pretix/presale/templates/pretixpresale/organizers/index.html:23 msgid "List" msgstr "Liste" #: pretix/control/forms/organizer.py:155 -#: pretix/presale/templates/pretixpresale/organizers/calendar.html:25 -#: pretix/presale/templates/pretixpresale/organizers/index.html:27 +#: pretix/presale/templates/pretixpresale/organizers/calendar.html:31 +#: pretix/presale/templates/pretixpresale/organizers/index.html:28 msgid "Calendar" msgstr "Kalender" @@ -4401,11 +4437,11 @@ msgstr "Die Ticket-Codes und der Link zur Bestell-Seite wurde geändert." msgid "The order's expiry date has been changed." msgstr "Die Zahlungsfrist wurde geändert." -#: pretix/control/logdisplay.py:95 pretix/control/views/orders.py:234 +#: pretix/control/logdisplay.py:95 pretix/control/views/orders.py:235 msgid "The order has been marked as expired." msgstr "Die Bestellung wurde als abgelaufen markiert." -#: pretix/control/logdisplay.py:96 pretix/control/views/orders.py:220 +#: pretix/control/logdisplay.py:96 pretix/control/views/orders.py:221 msgid "The order has been marked as paid." msgstr "Die Bestellung wurde als bezahlt markiert." @@ -4413,8 +4449,8 @@ msgstr "Die Bestellung wurde als bezahlt markiert." msgid "The order has been refunded." msgstr "Die Bestellung wurde zurückerstattet." -#: pretix/control/logdisplay.py:98 pretix/control/views/orders.py:223 -#: pretix/presale/views/order.py:520 +#: pretix/control/logdisplay.py:98 pretix/control/views/orders.py:224 +#: pretix/presale/views/order.py:537 msgid "The order has been canceled." msgstr "Die Bestellung wurde storniert." @@ -4429,16 +4465,16 @@ msgid "" msgstr "" "Die E-Mail-Adresse wurde von \"{old_email}\" auf \"{new_email}\" geändert." -#: pretix/control/logdisplay.py:102 pretix/control/views/orders.py:274 -#: pretix/presale/views/order.py:405 +#: pretix/control/logdisplay.py:102 pretix/control/views/orders.py:275 +#: pretix/presale/views/order.py:419 msgid "The invoice has been generated." msgstr "Die Rechnung wurde erstellt." -#: pretix/control/logdisplay.py:103 pretix/control/views/orders.py:345 +#: pretix/control/logdisplay.py:103 pretix/control/views/orders.py:346 msgid "The invoice has been regenerated." msgstr "Die Rechnung wurde neu generiert." -#: pretix/control/logdisplay.py:104 pretix/control/views/orders.py:372 +#: pretix/control/logdisplay.py:104 pretix/control/views/orders.py:373 msgid "The invoice has been reissued." msgstr "Die Rechnung wurde neu ausgestellt." @@ -4909,10 +4945,10 @@ msgstr "" #: pretix/control/templates/pretixcontrol/user/2fa_confirm_totp.html:79 #: pretix/control/templates/pretixcontrol/user/reauth.html:22 #: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/import_assign.html:11 -#: pretix/presale/templates/pretixpresale/event/checkout_addons.html:72 -#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:51 -#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:116 -#: pretix/presale/templates/pretixpresale/event/index.html:45 +#: pretix/presale/templates/pretixpresale/event/checkout_addons.html:70 +#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:49 +#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:114 +#: pretix/presale/templates/pretixpresale/event/index.html:63 #: pretix/presale/templates/pretixpresale/event/order_pay.html:27 #: pretix/presale/templates/pretixpresale/event/order_pay_change.html:57 msgid "Continue" @@ -5468,10 +5504,10 @@ msgid "Installed plugins" msgstr "Installierte Erweiterungen" #: pretix/control/templates/pretixcontrol/event/plugins.html:11 -#: pretix/control/views/event.py:136 pretix/control/views/event.py:222 -#: pretix/control/views/event.py:304 pretix/control/views/event.py:356 -#: pretix/control/views/event.py:467 pretix/control/views/event.py:686 -#: pretix/control/views/event.py:936 pretix/control/views/global_settings.py:20 +#: pretix/control/views/event.py:139 pretix/control/views/event.py:225 +#: pretix/control/views/event.py:307 pretix/control/views/event.py:359 +#: pretix/control/views/event.py:470 pretix/control/views/event.py:689 +#: pretix/control/views/event.py:939 pretix/control/views/global_settings.py:20 #: pretix/control/views/global_settings.py:43 pretix/control/views/item.py:147 #: pretix/control/views/item.py:491 pretix/control/views/item.py:678 #: pretix/control/views/item.py:788 pretix/control/views/item.py:827 @@ -5587,9 +5623,9 @@ msgid "General" msgstr "Allgemeines" #: pretix/control/templates/pretixcontrol/event/settings_base.html:40 -#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:54 -#: pretix/presale/templates/pretixpresale/event/order.html:51 -#: pretix/presale/templates/pretixpresale/event/order.html:217 +#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:62 +#: pretix/presale/templates/pretixpresale/event/order.html:56 +#: pretix/presale/templates/pretixpresale/event/order.html:222 msgid "Payment" msgstr "Zahlung" @@ -5612,6 +5648,11 @@ msgstr "Steuer-Regeln" msgid "Permissions" msgstr "Berechtigungen" +#: pretix/control/templates/pretixcontrol/event/settings_base.html:80 +#: pretix/control/templates/pretixcontrol/event/widget.html:7 +msgid "Widget" +msgstr "Widget" + #: pretix/control/templates/pretixcontrol/event/tax_delete.html:4 #: pretix/control/templates/pretixcontrol/event/tax_delete.html:6 msgid "Delete tax rule" @@ -5735,6 +5776,53 @@ msgstr "" "Es sind keine Ausgabemethoden verfügbar. Bitte gehe in die Erweiterungs-" "Einstellungen und aktiviere ein oder mehrere Ticketausgabe-Erweiterungen." +#: pretix/control/templates/pretixcontrol/event/widget.html:9 +msgid "" +"The pretix widget is a way to embed your ticket shop into your event " +"website. This way, your visitors can buy their ticket right away without " +"leaving your website." +msgstr "" +"Das pretix-Widget ist ein Weg, den Ticket-Shop in deine Event-Website " +"einzubetten. Auf diese Weise können Besucher deiner Website ein Ticket " +"erwerben, ohne die Website verlassen zu müssen." + +#: pretix/control/templates/pretixcontrol/event/widget.html:16 +msgid "" +"To embed the widget onto your website, simply copy the following code to the " +"<head> section of your website:" +msgstr "" +"Um das Widget in deine Website einzubinden, kopiere einfach den folgenden " +"Code in den <head>-Abschnitt deiner Website:" + +#: pretix/control/templates/pretixcontrol/event/widget.html:24 +msgid "" +"Then, copy the following code to the place of your website where you want " +"the widget to show up:" +msgstr "" +"Dann kopiere den folgenden Code an den Ort auf deiner Website, an dem das " +"Widget auftauchen soll:" + +#: pretix/control/templates/pretixcontrol/event/widget.html:37 +#, python-format +msgid "" +"JavaScript is disabled in your browser. To access our ticket shop without " +"JavaScript, please <a %(a_attr)s>click here</a>." +msgstr "" +"JavaScript ist in deinem Browser deaktiviert. Um unseren Ticket-Shop ohne " +"JavaScript aufzurufen, klicke bitte <a %(a_attr)s>hier</a>." + +#: pretix/control/templates/pretixcontrol/event/widget.html:47 +msgid "" +"Using this form, you can generate a code to copy and paste to your website " +"source." +msgstr "" +"Mit diesem Formular kannst du einen Code-Schnippsel zum kopieren in den " +"Quellcode deiner Website generieren." + +#: pretix/control/templates/pretixcontrol/event/widget.html:57 +msgid "Generate widget code" +msgstr "Widget-Coder generieren" + #: pretix/control/templates/pretixcontrol/events/create_base.html:4 #: pretix/control/templates/pretixcontrol/events/create_base.html:6 #: pretix/control/templates/pretixcontrol/events/index.html:19 @@ -5851,17 +5939,6 @@ msgstr "Reihe" msgid "More quotas" msgstr "Mehr Kontingente" -#: pretix/control/templates/pretixcontrol/events/index.html:122 -#: pretix/control/views/dashboards.py:346 -msgid "Shop disabled" -msgstr "Shop deaktiviert" - -#: pretix/control/templates/pretixcontrol/events/index.html:128 -#: pretix/control/templates/pretixcontrol/subevents/index.html:95 -#: pretix/control/views/dashboards.py:352 -msgid "On sale" -msgstr "Aktiv" - #: pretix/control/templates/pretixcontrol/fragment_quota_box.html:3 #: pretix/control/templates/pretixcontrol/fragment_quota_box_paid.html:3 msgid "Quota:" @@ -6345,7 +6422,7 @@ msgstr "Verbleibende Kapazität" #: pretix/control/templates/pretixcontrol/order/cancel.html:4 #: pretix/control/templates/pretixcontrol/order/cancel.html:8 #: pretix/control/templates/pretixcontrol/order/index.html:35 -#: pretix/presale/templates/pretixpresale/event/order.html:207 +#: pretix/presale/templates/pretixpresale/event/order.html:212 #: pretix/presale/templates/pretixpresale/event/order_cancel.html:4 msgid "Cancel order" msgstr "Stornieren" @@ -6456,8 +6533,8 @@ msgid "Change price to" msgstr "Preis ändern auf" #: pretix/control/templates/pretixcontrol/order/change.html:108 -#: pretix/presale/templates/pretixpresale/event/index.html:254 -#: pretix/presale/templates/pretixpresale/event/index.html:341 +#: pretix/presale/templates/pretixpresale/event/index.html:276 +#: pretix/presale/templates/pretixpresale/event/index.html:363 #: pretix/presale/templates/pretixpresale/event/voucher.html:171 #, python-format msgid "plus %(rate)s%% %(name)s" @@ -6570,18 +6647,18 @@ msgstr "Ablaufdatum" #: pretix/control/templates/pretixcontrol/order/index.html:116 #: pretix/control/templates/pretixcontrol/order/index.html:150 -#: pretix/presale/templates/pretixpresale/event/order.html:123 -#: pretix/presale/templates/pretixpresale/event/order.html:144 +#: pretix/presale/templates/pretixpresale/event/order.html:128 +#: pretix/presale/templates/pretixpresale/event/order.html:149 msgid "Invoices" msgstr "Rechnungen" #: pretix/control/templates/pretixcontrol/order/index.html:120 -#: pretix/presale/templates/pretixpresale/event/order.html:131 +#: pretix/presale/templates/pretixpresale/event/order.html:136 msgid "Cancellation" msgstr "Rechnungskorrektur" #: pretix/control/templates/pretixcontrol/order/index.html:120 -#: pretix/presale/templates/pretixpresale/event/order.html:131 +#: pretix/presale/templates/pretixpresale/event/order.html:136 msgid "Invoice" msgstr "Rechnung" @@ -6607,7 +6684,7 @@ msgid "Change products" msgstr "Produkte bearbeiten" #: pretix/control/templates/pretixcontrol/order/index.html:175 -#: pretix/presale/templates/pretixpresale/event/order.html:109 +#: pretix/presale/templates/pretixpresale/event/order.html:114 msgid "Ordered items" msgstr "Bestellte Produkte" @@ -6690,16 +6767,16 @@ msgid "The payment has to be completed before %(date)s." msgstr "Die Zahlung muss bis zum %(date)s abgeschlossen sein." #: pretix/control/templates/pretixcontrol/order/index.html:364 -#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:74 -#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:36 -#: pretix/presale/templates/pretixpresale/event/order.html:172 +#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:82 +#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:34 +#: pretix/presale/templates/pretixpresale/event/order.html:177 #: pretix/presale/templates/pretixpresale/event/order_modify.html:25 msgid "Invoice information" msgstr "Rechnungsinformationen" #: pretix/control/templates/pretixcontrol/order/index.html:375 -#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:85 -#: pretix/presale/templates/pretixpresale/event/order.html:183 +#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:93 +#: pretix/presale/templates/pretixpresale/event/order.html:188 msgid "ZIP code and city" msgstr "PLZ und Ort" @@ -7636,7 +7713,7 @@ msgstr "Willkommen bei pretix! Du hast jetzt Zugriff auf das Team \"{}\"." msgid "We already sent you an email in the last 24 hours." msgstr "Wir haben dir in den letzten 24 Stunden bereits eine E-Mail geschickt." -#: pretix/control/views/auth.py:213 pretix/control/views/orders.py:407 +#: pretix/control/views/auth.py:213 pretix/control/views/orders.py:408 msgid "There was an error sending the mail. Please try again later." msgstr "" "Es gab ein Fehler beim Senden der E-Mail. Bitte probiere es später erneut." @@ -7778,10 +7855,10 @@ msgid_plural "{num} orders" msgstr[0] "{num} Bestellung" msgstr[1] "{num} Bestellungen" -#: pretix/control/views/event.py:157 pretix/control/views/event.py:307 -#: pretix/control/views/event.py:359 pretix/control/views/event.py:424 -#: pretix/control/views/event.py:470 pretix/control/views/event.py:650 -#: pretix/control/views/event.py:915 pretix/control/views/event.py:952 +#: pretix/control/views/event.py:160 pretix/control/views/event.py:310 +#: pretix/control/views/event.py:362 pretix/control/views/event.py:427 +#: pretix/control/views/event.py:473 pretix/control/views/event.py:653 +#: pretix/control/views/event.py:918 pretix/control/views/event.py:955 #: pretix/control/views/item.py:163 pretix/control/views/item.py:189 #: pretix/control/views/item.py:501 pretix/control/views/item.py:527 #: pretix/control/views/item.py:584 pretix/control/views/item.py:712 @@ -7793,7 +7870,7 @@ msgstr "" "Die Änderungen konnten nicht gespeichert werden, siehe weiter unten für " "Details." -#: pretix/control/views/event.py:419 pretix/control/views/organizer.py:145 +#: pretix/control/views/event.py:422 pretix/control/views/organizer.py:145 msgid "" "Your changes have been saved. Please note that it can take a short period of " "time until your changes become active." @@ -7801,12 +7878,12 @@ msgstr "" "Deine Änderungen wurden gespeichert. Beachte, dass es einen Moment dauern " "kann, bis diese wirksam werden." -#: pretix/control/views/event.py:457 +#: pretix/control/views/event.py:460 #, python-format msgid "An error occured while contacting the SMTP server: %s" msgstr "Ein Fehler trat auf beim Versuch, den SMTP-Server zu erreichen: %s" -#: pretix/control/views/event.py:460 +#: pretix/control/views/event.py:463 msgid "" "Your changes have been saved and the connection attempt to your SMTP server " "was successful." @@ -7814,7 +7891,7 @@ msgstr "" "Deine Änderungen wurden gespeichert und die Verbindung zum SMTP-Server war " "erfolgreich." -#: pretix/control/views/event.py:463 +#: pretix/control/views/event.py:466 msgid "" "We've been able to contact the SMTP server you configured. Remember to check " "the \"use custom SMTP server\" checkbox, otherwise your SMTP server will not " @@ -7824,32 +7901,32 @@ msgstr "" "\"Eigenen SMTP-Server verwenden\" zu setzen, damit der Server auch benutzt " "wird." -#: pretix/control/views/event.py:491 +#: pretix/control/views/event.py:494 msgid "{} {} has been transferred to account <9999-9999-9999-9999> at {}" msgstr "{} {} wurden am {} auf das Bankkonto <9999-9999-9999-9999> eingezahlt" -#: pretix/control/views/event.py:539 +#: pretix/control/views/event.py:542 msgid "Sample Admission Ticket" msgstr "Beispiel-Ticket" -#: pretix/control/views/event.py:542 +#: pretix/control/views/event.py:545 msgid "Sample Corporation" msgstr "Musterfirma" -#: pretix/control/views/event.py:543 +#: pretix/control/views/event.py:546 msgid "Please transfer money to this bank account: 9999-9999-9999-9999" msgstr "" "Bitte überweise den vollen Betrag auf das Bankkonto 9999-9999-9999-9999" -#: pretix/control/views/event.py:565 +#: pretix/control/views/event.py:568 msgid "invalid item" msgstr "Ungültiges Produkt" -#: pretix/control/views/event.py:597 pretix/presale/views/order.py:582 +#: pretix/control/views/event.py:600 pretix/presale/views/order.py:601 msgid "You requested an invalid ticket output type." msgstr "Du hast einen ungültigen Ausgabetyp gewählt." -#: pretix/control/views/event.py:750 +#: pretix/control/views/event.py:753 msgid "" "You have configured at least one paid product but have not enabled any " "payment methods." @@ -7857,49 +7934,49 @@ msgstr "" "Du hast mindestens ein kostenpflichtiges Produkt konfiguriert, aber noch " "keine Zahlungsmethoden aktiviert." -#: pretix/control/views/event.py:753 +#: pretix/control/views/event.py:756 msgid "You need to configure at least one quota to sell anything." msgstr "Du musst mindestens ein Kontingent anlegen, um etwas zu verkaufen." -#: pretix/control/views/event.py:769 +#: pretix/control/views/event.py:772 msgid "Your shop is live now!" msgstr "Dein Shop ist nun online!" -#: pretix/control/views/event.py:776 +#: pretix/control/views/event.py:779 msgid "We've taken your shop down. You can re-enable it whenever you want!" msgstr "" "Wir haben deinen Shop ausgeschaltet. Du kannst ihn hier jederzeit wieder " "einschalten." -#: pretix/control/views/event.py:841 +#: pretix/control/views/event.py:844 msgid "The issue has been marked as resolved!" msgstr "Das Problem wurde als gelöst markiert." -#: pretix/control/views/event.py:862 pretix/control/views/orders.py:197 +#: pretix/control/views/event.py:865 pretix/control/views/orders.py:198 msgid "The comment has been updated." msgstr "Der Kommentar wurde aktualisiert." -#: pretix/control/views/event.py:864 pretix/control/views/orders.py:199 +#: pretix/control/views/event.py:867 pretix/control/views/orders.py:200 msgid "Could not update the comment." msgstr "Kommentar konnte nicht gespeichert werden." -#: pretix/control/views/event.py:903 pretix/control/views/main.py:172 +#: pretix/control/views/event.py:906 pretix/control/views/main.py:172 msgid "VAT" msgstr "MwSt." -#: pretix/control/views/event.py:909 +#: pretix/control/views/event.py:912 msgid "The new tax rule has been created." msgstr "Die neue Steuer-Regel wurde erstellt." -#: pretix/control/views/event.py:932 pretix/control/views/event.py:968 +#: pretix/control/views/event.py:935 pretix/control/views/event.py:971 msgid "The requested tax rule does not exist." msgstr "Diese Steuer-Regel existiert nicht." -#: pretix/control/views/event.py:977 +#: pretix/control/views/event.py:980 msgid "The selected tax rule has been deleted." msgstr "Die ausgewählte Steuer-Regel wurde gelöscht." -#: pretix/control/views/event.py:979 +#: pretix/control/views/event.py:982 msgid "The selected tax rule can not be deleted." msgstr "Die ausgewählte Steuer-Regel kann nicht gelöscht werden." @@ -7996,7 +8073,7 @@ msgstr "Das ausgewählte Produkt wurde deaktiviert." msgid "Team {event}" msgstr "Team {event}" -#: pretix/control/views/orders.py:218 +#: pretix/control/views/orders.py:219 msgid "" "The order has been marked as paid, but we were unable to send a confirmation " "mail." @@ -8004,41 +8081,41 @@ msgstr "" "Die Bestellung wurde als bezahlt markiert, aber die Bestätigungsmail konnte " "nicht verschickt werden." -#: pretix/control/views/orders.py:229 +#: pretix/control/views/orders.py:230 msgid "The order has been marked as not paid." msgstr "Die Bestellung wurde als unbezahlt markiert." -#: pretix/control/views/orders.py:266 pretix/presale/views/order.py:397 +#: pretix/control/views/orders.py:267 pretix/presale/views/order.py:411 msgid "You cannot generate an invoice for this order." msgstr "Du kannst für diese Bestellung keine Rechnung erzeugen." -#: pretix/control/views/orders.py:268 pretix/presale/views/order.py:399 +#: pretix/control/views/orders.py:269 pretix/presale/views/order.py:413 msgid "An invoice for this order already exists." msgstr "Zu dieser Bestellung gibt es bereits eine Rechnung." -#: pretix/control/views/orders.py:288 pretix/control/views/orders.py:292 +#: pretix/control/views/orders.py:289 pretix/control/views/orders.py:293 msgid "No VAT ID specified." msgstr "Es wurde keine USt-ID-Nr. angegeben." -#: pretix/control/views/orders.py:296 +#: pretix/control/views/orders.py:297 msgid "No country specified." msgstr "Es wurde kein Land angegeben," -#: pretix/control/views/orders.py:300 +#: pretix/control/views/orders.py:301 msgid "VAT ID could not be checked since a non-EU country has been specified." msgstr "" "Die USt-ID-Nr. konnte nicht geprüft werden, da ein Nicht-EU-Land angegeben " "wurde." -#: pretix/control/views/orders.py:305 pretix/presale/forms/checkout.py:135 +#: pretix/control/views/orders.py:306 pretix/presale/forms/checkout.py:135 msgid "Your VAT ID does not match the selected country." msgstr "Die eingegebene USt-ID-Nr. passt nicht zum ausgewählten Land." -#: pretix/control/views/orders.py:316 +#: pretix/control/views/orders.py:317 msgid "This VAT ID is not valid." msgstr "Die USt-ID-Nr. ist ungültig." -#: pretix/control/views/orders.py:319 +#: pretix/control/views/orders.py:320 msgid "" "The VAT ID could not be checked, as the VAT checking service of the country " "is currently not available." @@ -8046,27 +8123,27 @@ msgstr "" "Die USt-ID-Nr. konnte nicht geprüft werden, da der Prüfdienst des Landes im " "Moment nicht verfügbar ist." -#: pretix/control/views/orders.py:322 +#: pretix/control/views/orders.py:323 msgid "This VAT ID is valid." msgstr "Die USt-ID-Nr. ist gültig." -#: pretix/control/views/orders.py:336 pretix/control/views/orders.py:359 +#: pretix/control/views/orders.py:337 pretix/control/views/orders.py:360 msgid "Unknown invoice." msgstr "Unbekannte Rechnung" -#: pretix/control/views/orders.py:339 pretix/control/views/orders.py:362 +#: pretix/control/views/orders.py:340 pretix/control/views/orders.py:363 msgid "The invoice has already been canceled." msgstr "Die Rechnung wurde bereits storniert." -#: pretix/control/views/orders.py:410 +#: pretix/control/views/orders.py:411 msgid "The email has been queued to be sent." msgstr "Die E-Mail wurde zum Versenden gespeichert." -#: pretix/control/views/orders.py:434 pretix/presale/views/order.py:652 +#: pretix/control/views/orders.py:435 pretix/presale/views/order.py:672 msgid "This invoice has not been found" msgstr "Diese Rechnung wurde nicht gefunden" -#: pretix/control/views/orders.py:442 pretix/presale/views/order.py:660 +#: pretix/control/views/orders.py:443 pretix/presale/views/order.py:680 msgid "" "The invoice file has not yet been generated, we will generate it for you " "now. Please try again in a few seconds." @@ -8074,11 +8151,11 @@ msgstr "" "Diese Rechnung wurde bisher noch nicht fertig erstellt, wir werden die PDF-" "Datei jetzt erstellen. Bitte probiere es in wenigen Sekunden erneut." -#: pretix/control/views/orders.py:457 pretix/control/views/orders.py:475 +#: pretix/control/views/orders.py:464 msgid "The payment term has been changed." msgstr "Die Zahlungsfrist wurde geändert." -#: pretix/control/views/orders.py:480 +#: pretix/control/views/orders.py:469 msgid "" "We were not able to process the request completely as the server was too " "busy." @@ -8086,51 +8163,51 @@ msgstr "" "Wir konnten deine Bestellung nicht durchführen, da der Server zu beschäftigt " "war." -#: pretix/control/views/orders.py:488 +#: pretix/control/views/orders.py:477 msgid "This action is only allowed for pending orders." msgstr "Diese Aktion ist nur für unbezahlte Bestellungen möglich." -#: pretix/control/views/orders.py:516 +#: pretix/control/views/orders.py:505 msgid "This action is only allowed for pending or paid orders." msgstr "" "Dieser Aktion ist nur für ausstehende und bezahlte Bestellungen möglich." -#: pretix/control/views/orders.py:618 +#: pretix/control/views/orders.py:607 msgid "An error occured. Please see the details below." msgstr "Ein Fehler ist aufgetreten, bitte schaue weiter unten für Details." -#: pretix/control/views/orders.py:625 +#: pretix/control/views/orders.py:614 msgid "The order has been changed and the user has been notified." msgstr "Die Bestellung wurde geändert und der Kunde benachrichtigt." -#: pretix/control/views/orders.py:674 pretix/control/views/orders.py:710 +#: pretix/control/views/orders.py:663 pretix/control/views/orders.py:699 msgid "The order has been changed." msgstr "Die Bestellung wurde geändert." -#: pretix/control/views/orders.py:676 +#: pretix/control/views/orders.py:665 msgid "Nothing about the order had to be changed." msgstr "Es wurde keine Änderung vorgenommen." -#: pretix/control/views/orders.py:749 pretix/plugins/sendmail/views.py:59 +#: pretix/control/views/orders.py:738 pretix/plugins/sendmail/views.py:59 msgid "We could not send the email. See below for details." msgstr "" "Wir könnten die E-Mail nicht senden, siehe weiter unten für weitere " "Informationen." -#: pretix/control/views/orders.py:783 pretix/plugins/sendmail/views.py:102 +#: pretix/control/views/orders.py:772 pretix/plugins/sendmail/views.py:102 #, python-brace-format msgid "Subject: {subject}" msgstr "Betreff: {subject}" -#: pretix/control/views/orders.py:793 +#: pretix/control/views/orders.py:782 msgid "Your message has been queued and will be sent to {}." msgstr "Die Nachricht wurde gespeichert und wird an {} versendet." -#: pretix/control/views/orders.py:797 +#: pretix/control/views/orders.py:786 msgid "Failed to send mail to the following user: {}" msgstr "Die Mail an den folgenden Benutzer konnte nicht versendet werden: {}" -#: pretix/control/views/orders.py:844 pretix/presale/views/order.py:532 +#: pretix/control/views/orders.py:833 pretix/presale/views/order.py:550 msgid "" "This link is no longer valid. Please go back, refresh the page, and try " "again." @@ -8138,15 +8215,15 @@ msgstr "" "Dieser Link ist nicht mehr gültig. Bitte gehe einen Schritt zurück, lade die " "Seite neu und versuche es erneut." -#: pretix/control/views/orders.py:898 +#: pretix/control/views/orders.py:887 msgid "There is no order with the given order code." msgstr "Es existiert keine Bestellung mit der eingegebenen Bestellnummer." -#: pretix/control/views/orders.py:943 +#: pretix/control/views/orders.py:932 msgid "The selected exporter was not found." msgstr "Das ausgewählte Exportformat wurde nicht gefunden." -#: pretix/control/views/orders.py:950 +#: pretix/control/views/orders.py:939 msgid "There was a problem processing your input. See below for error details." msgstr "Die Eingabe konnte nicht verarbeitet werden." @@ -8832,12 +8909,12 @@ msgid "Include questions" msgstr "Fragen anzeigen" #: pretix/plugins/checkinlists/exporters.py:107 -#: pretix/plugins/paypal/payment.py:63 +#: pretix/plugins/paypal/payment.py:65 msgid "Secret" msgstr "Secret" #: pretix/plugins/paypal/__init__.py:10 pretix/plugins/paypal/__init__.py:13 -#: pretix/plugins/paypal/payment.py:36 +#: pretix/plugins/paypal/payment.py:38 msgid "PayPal" msgstr "PayPal" @@ -8845,39 +8922,39 @@ msgstr "PayPal" msgid "This plugin allows you to receive payments via PayPal" msgstr "Dieses Plugin erlaubt, Zahlungen über PayPal anzunehmen" -#: pretix/plugins/paypal/payment.py:25 pretix/plugins/stripe/payment.py:27 +#: pretix/plugins/paypal/payment.py:27 pretix/plugins/stripe/payment.py:27 msgid "Refund automatically?" msgstr "Geld zurückbuchen?" -#: pretix/plugins/paypal/payment.py:27 +#: pretix/plugins/paypal/payment.py:29 msgid "Automatically refund charge with PayPal" msgstr "Automatisch über PayPal zurückbuchen" -#: pretix/plugins/paypal/payment.py:28 +#: pretix/plugins/paypal/payment.py:30 msgid "" "Do not send refund instruction to PayPal, only mark as refunded in pretix" msgstr "" "Buche das Geld nicht automatisch per PayPal zurück, nur in pretix als " "erstattet markieren" -#: pretix/plugins/paypal/payment.py:46 +#: pretix/plugins/paypal/payment.py:48 msgid "Endpoint" msgstr "API-Endpunkt" -#: pretix/plugins/paypal/payment.py:55 +#: pretix/plugins/paypal/payment.py:57 msgid "Client ID" msgstr "Client-ID" -#: pretix/plugins/paypal/payment.py:56 pretix/plugins/stripe/payment.py:79 +#: pretix/plugins/paypal/payment.py:58 pretix/plugins/stripe/payment.py:79 #, python-brace-format msgid "{text}" msgstr "{text}" -#: pretix/plugins/paypal/payment.py:57 pretix/plugins/stripe/payment.py:80 +#: pretix/plugins/paypal/payment.py:59 pretix/plugins/stripe/payment.py:80 msgid "Click here for a tutorial on how to obtain the required keys" msgstr "Hier klicken für eine Anleitung" -#: pretix/plugins/paypal/payment.py:70 +#: pretix/plugins/paypal/payment.py:72 msgid "" "Please configure a PayPal Webhook to the following endpoint in order to " "automatically cancel orders when payments are refunded externally." @@ -8886,13 +8963,13 @@ msgstr "" "Bestellungen automatisch als storniert markiert werden, wenn die Zahlung " "zurückerstattet wird." -#: pretix/plugins/paypal/payment.py:128 pretix/plugins/paypal/payment.py:136 -#: pretix/plugins/paypal/payment.py:139 +#: pretix/plugins/paypal/payment.py:134 pretix/plugins/paypal/payment.py:149 +#: pretix/plugins/paypal/payment.py:152 msgid "We had trouble communicating with PayPal" msgstr "Die Kommunikation mit PayPal ist fehlgeschlagen" -#: pretix/plugins/paypal/payment.py:166 pretix/plugins/paypal/payment.py:175 -#: pretix/plugins/paypal/payment.py:218 +#: pretix/plugins/paypal/payment.py:179 pretix/plugins/paypal/payment.py:188 +#: pretix/plugins/paypal/payment.py:231 msgid "" "We were unable to process your payment. See below for details on how to " "proceed." @@ -8900,7 +8977,7 @@ msgstr "" "Der Bezahlvorgang ist fehlgeschlagen. Unten findest du Details zum weiteren " "Vorgehen." -#: pretix/plugins/paypal/payment.py:210 +#: pretix/plugins/paypal/payment.py:223 msgid "" "PayPal has not yet approved the payment. We will inform you as soon as the " "payment completed." @@ -8908,15 +8985,15 @@ msgstr "" "PayPal hat die Bezahlung noch nicht bestätigt. Wir informieren dich, sobald " "die Bezahlung abgeschlossen ist." -#: pretix/plugins/paypal/payment.py:238 pretix/plugins/stripe/payment.py:238 +#: pretix/plugins/paypal/payment.py:251 pretix/plugins/stripe/payment.py:238 msgid "There was an error sending the confirmation mail." msgstr "Es gab einen Fehler beim Versenden der Bestätigungs-E-Mail." -#: pretix/plugins/paypal/payment.py:277 pretix/plugins/stripe/payment.py:303 +#: pretix/plugins/paypal/payment.py:290 pretix/plugins/stripe/payment.py:303 msgid "Your input was invalid, please try again." msgstr "Die Eingabe war nicht korrekt, bitte erneut versuchen." -#: pretix/plugins/paypal/payment.py:294 pretix/plugins/paypal/payment.py:307 +#: pretix/plugins/paypal/payment.py:307 pretix/plugins/paypal/payment.py:320 #: pretix/plugins/stripe/payment.py:318 pretix/plugins/stripe/payment.py:339 msgid "" "We were unable to transfer the money back automatically. Please get in touch " @@ -9051,21 +9128,35 @@ msgstr "" "Wir warten auf eine Antwort von PayPal bezüglich deiner Zahlung. Bitte " "kontaktiere uns, falls dies mehr als ein paar Stunden dauert." -#: pretix/plugins/paypal/views.py:45 +#: pretix/plugins/paypal/templates/pretixplugins/paypal/redirect.html:17 +msgid "The payment process has started in a new window." +msgstr "Der Zahlungsvorgang wird in einem neuen Fenster fortgesetzt." + +#: pretix/plugins/paypal/templates/pretixplugins/paypal/redirect.html:20 +msgid "The window to enter your payment data was not opened or was closed?" +msgstr "" +"Das Fenster zur Eingabe der Zahlungsdaten wurde geschlossen oder nie " +"geöffnet?" + +#: pretix/plugins/paypal/templates/pretixplugins/paypal/redirect.html:24 +msgid "Click here in order to open the window." +msgstr "Hier klicken um das Fenster zu öffnen." + +#: pretix/plugins/paypal/views.py:64 msgid "Invalid response from PayPal received." msgstr "Paypal hat uns eine ungültige Antwort geschickt." -#: pretix/plugins/paypal/views.py:59 +#: pretix/plugins/paypal/views.py:80 msgid "It looks like you canceled the PayPal payment" msgstr "Die PayPal-Zahlung wurde abgebrochen" -#: pretix/plugins/paypal/views.py:165 pretix/plugins/stripe/views.py:163 +#: pretix/plugins/paypal/views.py:186 pretix/plugins/stripe/views.py:165 msgid "The order cannot be marked as refunded as it is not marked as paid!" msgstr "" "Die Bestellung kann nicht als erstattet markiert werden, da sie nicht als " "bezahlt markiert ist." -#: pretix/plugins/paypal/views.py:169 pretix/plugins/stripe/views.py:167 +#: pretix/plugins/paypal/views.py:190 pretix/plugins/stripe/views.py:169 msgid "" "The order has been marked as refunded and the issue has been marked as " "resolved!" @@ -9811,7 +9902,7 @@ msgstr "Die Zahlung konnte aus folgendem Grund nicht abgeschlossen werden:" msgid "Unknown reason" msgstr "Unbekannter Grund" -#: pretix/plugins/stripe/views.py:203 pretix/plugins/stripe/views.py:231 +#: pretix/plugins/stripe/views.py:206 pretix/plugins/stripe/views.py:234 msgid "" "Sorry, there was an error in the payment process. Please check the link in " "your emails to continue." @@ -9819,7 +9910,7 @@ msgstr "" "Es gab einen Fehler im Zahlungsablauf. Bitte nutze den Link aus der an dich " "verschickten E-Mail, um fortzufahren." -#: pretix/plugins/stripe/views.py:224 +#: pretix/plugins/stripe/views.py:227 msgid "" "We had trouble authorizing your card payment. Please try again and get in " "touch with us if this problem persists." @@ -10190,42 +10281,42 @@ msgstr "Bitte nur PDF-Dateien hochladen." msgid "Sample workshop" msgstr "Beispielworkshop" -#: pretix/presale/checkoutflow.py:313 pretix/presale/views/order.py:441 +#: pretix/presale/checkoutflow.py:320 pretix/presale/views/order.py:456 msgid "" "We had difficulties processing your input. Please review the errors below." msgstr "Wir hatten Schwierigkeiten, deine Eingabe zu verarbeiten." -#: pretix/presale/checkoutflow.py:335 pretix/presale/checkoutflow.py:340 +#: pretix/presale/checkoutflow.py:342 pretix/presale/checkoutflow.py:347 msgid "Please enter a valid email address." msgstr "Bitte gib eine gültige E-Mail-Adresse ein." -#: pretix/presale/checkoutflow.py:344 +#: pretix/presale/checkoutflow.py:351 msgid "Please enter your invoicing address." msgstr "Bitte gib deine Rechnungsadresse ein." -#: pretix/presale/checkoutflow.py:348 +#: pretix/presale/checkoutflow.py:355 msgid "Please enter your name." msgstr "Bitte gib deinen Namen ein." -#: pretix/presale/checkoutflow.py:358 pretix/presale/checkoutflow.py:363 -#: pretix/presale/checkoutflow.py:368 +#: pretix/presale/checkoutflow.py:365 pretix/presale/checkoutflow.py:370 +#: pretix/presale/checkoutflow.py:375 msgid "Please fill in answers to all required questions." msgstr "Bitte fülle Antworten zu allen benötigten Fragen ein." -#: pretix/presale/checkoutflow.py:429 pretix/presale/views/order.py:371 +#: pretix/presale/checkoutflow.py:437 pretix/presale/views/order.py:384 msgid "Please select a payment method." msgstr "Bitte wähle eine Zahlungsmethode aus." -#: pretix/presale/checkoutflow.py:449 pretix/presale/checkoutflow.py:455 -#: pretix/presale/views/order.py:207 pretix/presale/views/order.py:247 +#: pretix/presale/checkoutflow.py:458 pretix/presale/checkoutflow.py:464 +#: pretix/presale/views/order.py:218 pretix/presale/views/order.py:259 msgid "The payment information you entered was incomplete." msgstr "Die eingegebenen Zahlungsinformationen sind unvollständig." -#: pretix/presale/checkoutflow.py:526 +#: pretix/presale/checkoutflow.py:535 msgid "You need to check all checkboxes on the bottom of the page." msgstr "Du musst alle Kontrollkästchen auf dieser Seite auswählen." -#: pretix/presale/checkoutflow.py:556 +#: pretix/presale/checkoutflow.py:565 msgid "" "There was an error sending the confirmation mail. Please try again later." msgstr "" @@ -10325,32 +10416,23 @@ msgstr "Tickets: {url}" msgid "Admission: {datetime}" msgstr "Einlass: {datetime}" -#: pretix/presale/templates/pretixpresale/event/base.html:15 +#: pretix/presale/templates/pretixpresale/event/base.html:16 msgid "This shop is currently only visible to you and your team." msgstr "Dieser Shop ist aktuell nur für dich und dein Team sichtbar." -#: pretix/presale/templates/pretixpresale/event/base.html:17 +#: pretix/presale/templates/pretixpresale/event/base.html:18 msgid "Take it live now" msgstr "Jetzt veröffentlichen" -#: pretix/presale/templates/pretixpresale/event/base.html:64 +#: pretix/presale/templates/pretixpresale/event/base.html:66 msgid "Contact event organizer" msgstr "Veranstalter kontaktieren" -#: pretix/presale/templates/pretixpresale/event/base.html:67 +#: pretix/presale/templates/pretixpresale/event/base.html:69 msgid "Imprint" msgstr "Impressum" -#: pretix/presale/templates/pretixpresale/event/checkout_addons.html:4 #: pretix/presale/templates/pretixpresale/event/checkout_addons.html:6 -#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:4 -#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:6 -#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:4 -#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:6 -msgid "Checkout" -msgstr "Bestellung fortsetzen" - -#: pretix/presale/templates/pretixpresale/event/checkout_addons.html:8 msgid "" "For some of the products in your cart, you can choose additional options " "before you continue." @@ -10358,7 +10440,7 @@ msgstr "" "Für manche Produkte in deinem Warenkorb kannst du Zusatzprodukte auswählen, " "bevor du fortfährst." -#: pretix/presale/templates/pretixpresale/event/checkout_addons.html:33 +#: pretix/presale/templates/pretixpresale/event/checkout_addons.html:31 #, python-format msgid "You need to choose exactly one option from this category." msgid_plural "You need to choose %(min_count)s options from this category." @@ -10366,7 +10448,7 @@ msgstr[0] "Du musst genau eine Option aus dieser Kategorie auswählen." msgstr[1] "" "Du musst genau %(min_count)s Optionen aus dieser Kategorie auswählen." -#: pretix/presale/templates/pretixpresale/event/checkout_addons.html:39 +#: pretix/presale/templates/pretixpresale/event/checkout_addons.html:37 #, python-format msgid "You can choose at most one option from this category." msgid_plural "You can choose up to %(max_count)s options from this category." @@ -10374,7 +10456,7 @@ msgstr[0] "Du kannst höchstens eine Option aus dieser Kategorie auswählen." msgstr[1] "" "Du kannst höchstens %(max_count)s Optionen aus dieser Kategorie auswählen." -#: pretix/presale/templates/pretixpresale/event/checkout_addons.html:45 +#: pretix/presale/templates/pretixpresale/event/checkout_addons.html:43 #, python-format msgid "" "You can choose between %(min_count)s and %(max_count)s options from this " @@ -10383,17 +10465,49 @@ msgstr "" "Du kannst zwischen %(min_count)s und %(max_count)s Optionen aus dieser " "Kategorie auswählen." -#: pretix/presale/templates/pretixpresale/event/checkout_addons.html:55 +#: pretix/presale/templates/pretixpresale/event/checkout_addons.html:53 msgid "There are no add-ons available for this product." msgstr "Es sind keine Zusatzprodukte für dieses Produkt verfügbar." -#: pretix/presale/templates/pretixpresale/event/checkout_addons.html:67 -#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:151 -#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:46 -#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:111 +#: pretix/presale/templates/pretixpresale/event/checkout_addons.html:65 +#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:159 +#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:44 +#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:109 msgid "Go back" msgstr "Zurück" +#: pretix/presale/templates/pretixpresale/event/checkout_base.html:4 +#: pretix/presale/templates/pretixpresale/event/checkout_base.html:42 +msgid "Checkout" +msgstr "Bestellung fortsetzen" + +#: pretix/presale/templates/pretixpresale/event/checkout_base.html:12 +#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:30 +#: pretix/presale/templates/pretixpresale/event/index.html:24 +msgid "Your cart" +msgstr "Dein Warenkorb" + +#: pretix/presale/templates/pretixpresale/event/checkout_base.html:19 +#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:25 +#: pretix/presale/templates/pretixpresale/event/index.html:31 +msgid "Cart expired" +msgstr "Warenkorb abgelaufen" + +#: pretix/presale/templates/pretixpresale/event/checkout_base.html:32 +#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:39 +#: pretix/presale/templates/pretixpresale/event/index.html:44 +#, python-format +msgid "The items in your cart are reserved for you for %(minutes)s minutes." +msgstr "" +"Die Produkte in deinem Warenkorb sind noch %(minutes)s Minuten für dich " +"reserviert." + +#: pretix/presale/templates/pretixpresale/event/checkout_base.html:36 +#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:43 +#: pretix/presale/templates/pretixpresale/event/index.html:48 +msgid "The items in your cart are no longer reserved for you." +msgstr "Die Produkte in deinem Warenkorb sind nicht mehr für dich reserviert." + #: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:6 #: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:8 msgid "Confirm order" @@ -10404,93 +10518,75 @@ msgid "Please review the details below and confirm your order." msgstr "" "Bitte überprüfe die untenstehenden Details und bestätige deine Bestellung." -#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:18 -#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:49 -#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:70 -#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:106 +#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:17 +#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:57 +#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:78 +#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:114 msgid "Modify" msgstr "Bearbeiten" -#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:22 -#: pretix/presale/templates/pretixpresale/event/index.html:20 -msgid "Your cart" -msgstr "Dein Warenkorb" - -#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:31 -#: pretix/presale/templates/pretixpresale/event/index.html:26 -#, python-format -msgid "The items in your cart are reserved for you for %(minutes)s minutes." -msgstr "" -"Die Produkte in deinem Warenkorb sind noch %(minutes)s Minuten für dich " -"reserviert." - -#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:35 -#: pretix/presale/templates/pretixpresale/event/index.html:30 -msgid "The items in your cart are no longer reserved for you." -msgstr "Die Produkte in deinem Warenkorb sind nicht mehr für dich reserviert." - -#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:110 -#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:20 +#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:118 +#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:18 msgid "Contact information" msgstr "Kontaktinformationen" -#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:132 +#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:140 msgid "Confirmations" msgstr "Bestätigungen" -#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:157 +#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:165 msgid "Place binding order" msgstr "Zahlungspflichtig bestellen" -#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:159 +#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:167 msgid "Submit registration" msgstr "Anmeldung abschicken" -#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:7 +#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:5 msgid "Please select how you want to pay." msgstr "Bitte wähle die gewünschte Zahlungsmethode aus." -#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:36 +#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:34 msgid "There are no payment providers enabled." msgstr "Es sind keine Zahlungsmethoden aktiviert." -#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:38 +#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:36 msgid "" "Please go to the payment settings and activate one or more payment providers." msgstr "" "Bitte gehe in die Zahlungs-Einstellungen und aktiviere eine oder mehrere " "Zahlungsmethoden." -#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:7 +#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:5 msgid "Before we continue, we need you to answer some questions." msgstr "" "Bitte antworte auf die untenstehenden Fragen, bevor wir mit der Bestellung " "fortfahren." -#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:9 +#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:7 msgid "" "You need to fill all fields that are marked with * to continue." msgstr "" "Alle mit einem * markierten Felder müssen ausgefüllt werden." -#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:37 +#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:35 #: pretix/presale/templates/pretixpresale/event/order_modify.html:26 msgid "(optional)" msgstr "(optional)" -#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:63 +#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:61 msgid "Copy answers from above" msgstr "Antworten von oben kopieren" -#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:78 +#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:76 msgid "Selected add-ons" msgstr "Gewählte Zusatzprodukte" -#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:102 +#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:100 msgid "Are you sure your email address is correct?" msgstr "Bist du sicher, dass deine E-Mail-Adresse korrekt ist?" -#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:103 +#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:101 #, python-format msgid "You entered \"%(entered)s\". Did you mean \"%(suggestion)s\"?" msgstr "Du hast \"%(entered)s\" eingegeben. Meintest du \"%(suggestion)s\"?" @@ -10515,7 +10611,7 @@ msgid "%(num)s currently available" msgstr "Aktuell verfügbar: %(num)s" #: pretix/presale/templates/pretixpresale/event/fragment_subevent_calendar.html:23 -#: pretix/presale/templates/pretixpresale/organizers/calendar.html:46 +#: pretix/presale/templates/pretixpresale/organizers/calendar.html:52 msgid "Go" msgstr "Los!" @@ -10537,76 +10633,76 @@ msgstr "Noch nicht im Verkauf" msgid "Presale" msgstr "Vorverkauf" -#: pretix/presale/templates/pretixpresale/event/index.html:38 +#: pretix/presale/templates/pretixpresale/event/index.html:56 msgid "Empty cart" msgstr "Warenkorb leeren" -#: pretix/presale/templates/pretixpresale/event/index.html:48 +#: pretix/presale/templates/pretixpresale/event/index.html:66 msgid "Proceed with checkout" msgstr "Zur Kasse" -#: pretix/presale/templates/pretixpresale/event/index.html:61 +#: pretix/presale/templates/pretixpresale/event/index.html:80 msgid "View other date" msgstr "Zu anderem Termin wechseln" -#: pretix/presale/templates/pretixpresale/event/index.html:64 +#: pretix/presale/templates/pretixpresale/event/index.html:83 msgid "Choose date to buy a ticket" msgstr "Wähle einen Termin aus" -#: pretix/presale/templates/pretixpresale/event/index.html:88 +#: pretix/presale/templates/pretixpresale/event/index.html:107 msgid "The presale period for this event is over." msgstr "Der Vorverkaufszeitraum für diese Veranstaltung ist vorüber." -#: pretix/presale/templates/pretixpresale/event/index.html:92 +#: pretix/presale/templates/pretixpresale/event/index.html:111 #, python-format msgid "The presale for this event will start on %(date)s at %(time)s." msgstr "" "Der Vorverkauf für diese Veranstaltung wird am %(date)s um %(time)s Uhr " "beginnen." -#: pretix/presale/templates/pretixpresale/event/index.html:96 +#: pretix/presale/templates/pretixpresale/event/index.html:115 msgid "The presale for this event has not yet started." msgstr "Der Vorverkauf für diese Veranstaltung hat noch nicht begonnen." -#: pretix/presale/templates/pretixpresale/event/index.html:117 +#: pretix/presale/templates/pretixpresale/event/index.html:137 #, python-format msgid "Begin: %(time)s" msgstr "Beginn: %(time)s" -#: pretix/presale/templates/pretixpresale/event/index.html:122 +#: pretix/presale/templates/pretixpresale/event/index.html:142 #, python-format msgid "End: %(time)s" msgstr "Ende: %(time)s" -#: pretix/presale/templates/pretixpresale/event/index.html:130 +#: pretix/presale/templates/pretixpresale/event/index.html:150 #, python-format msgid "Admission: %(time)s" msgstr "Einlass: %(time)s" -#: pretix/presale/templates/pretixpresale/event/index.html:134 +#: pretix/presale/templates/pretixpresale/event/index.html:154 #, python-format msgid "Admission: %(datetime)s" msgstr "Einlass: %(datetime)s" -#: pretix/presale/templates/pretixpresale/event/index.html:145 +#: pretix/presale/templates/pretixpresale/event/index.html:165 msgid "Add to Calendar" msgstr "Zum Kalender hinzufügen" -#: pretix/presale/templates/pretixpresale/event/index.html:192 -#: pretix/presale/templates/pretixpresale/event/index.html:315 +#: pretix/presale/templates/pretixpresale/event/index.html:214 +#: pretix/presale/templates/pretixpresale/event/index.html:337 #, python-format msgid "minimum amount to order: %(num)s" msgstr "Minimale Bestellmenge: %(num)s" -#: pretix/presale/templates/pretixpresale/event/index.html:202 +#: pretix/presale/templates/pretixpresale/event/index.html:224 #: pretix/presale/templates/pretixpresale/event/voucher.html:59 #, python-format msgid "from %(currency)s %(minprice)s" msgstr "ab %(currency)s %(minprice)s" -#: pretix/presale/templates/pretixpresale/event/index.html:206 -#: pretix/presale/templates/pretixpresale/event/index.html:247 -#: pretix/presale/templates/pretixpresale/event/index.html:334 +#: pretix/presale/templates/pretixpresale/event/index.html:228 +#: pretix/presale/templates/pretixpresale/event/index.html:269 +#: pretix/presale/templates/pretixpresale/event/index.html:356 #: pretix/presale/templates/pretixpresale/event/voucher.html:63 #: pretix/presale/templates/pretixpresale/event/voucher.html:95 #: pretix/presale/templates/pretixpresale/event/voucher.html:164 @@ -10614,40 +10710,40 @@ msgctxt "price" msgid "FREE" msgstr "GRATIS" -#: pretix/presale/templates/pretixpresale/event/index.html:214 +#: pretix/presale/templates/pretixpresale/event/index.html:236 msgid "Show variants" msgstr "Varianten zeigen" -#: pretix/presale/templates/pretixpresale/event/index.html:258 -#: pretix/presale/templates/pretixpresale/event/index.html:345 +#: pretix/presale/templates/pretixpresale/event/index.html:280 +#: pretix/presale/templates/pretixpresale/event/index.html:367 #: pretix/presale/templates/pretixpresale/event/voucher.html:175 #, python-format msgid "incl. %(rate)s%% %(name)s" msgstr "inkl. %(rate)s%% %(name)s" -#: pretix/presale/templates/pretixpresale/event/index.html:266 -#: pretix/presale/templates/pretixpresale/event/index.html:353 +#: pretix/presale/templates/pretixpresale/event/index.html:288 +#: pretix/presale/templates/pretixpresale/event/index.html:375 msgid "Enter a voucher code below to buy this ticket." msgstr "Gib unten einen Gutscheincode ein, um dieses Produkt zu bestellen." -#: pretix/presale/templates/pretixpresale/event/index.html:382 +#: pretix/presale/templates/pretixpresale/event/index.html:404 #: pretix/presale/templates/pretixpresale/event/voucher.html:207 msgid "Add to cart" msgstr "Zum Warenkorb hinzufügen" -#: pretix/presale/templates/pretixpresale/event/index.html:394 +#: pretix/presale/templates/pretixpresale/event/index.html:416 msgid "Redeem a voucher" msgstr "Gutschein einlösen" -#: pretix/presale/templates/pretixpresale/event/index.html:407 +#: pretix/presale/templates/pretixpresale/event/index.html:429 msgid "Redeem voucher" msgstr "Gutschein einlösen" -#: pretix/presale/templates/pretixpresale/event/index.html:417 +#: pretix/presale/templates/pretixpresale/event/index.html:440 msgid "If you already ordered a ticket" msgstr "Wenn du bereits ein Ticket bestellt hast" -#: pretix/presale/templates/pretixpresale/event/index.html:421 +#: pretix/presale/templates/pretixpresale/event/index.html:444 msgid "" "If you want to see or change the status and details of your order, click on " "the link in one of the emails we sent you during the order process. If you " @@ -10659,7 +10755,7 @@ msgstr "" "Bestellvorgang geschickt haben. Wenn du den Link nicht finden kannst, klicke " "auf den folgenden Button, um ein erneutes Zusenden des Links anzufordern." -#: pretix/presale/templates/pretixpresale/event/index.html:430 +#: pretix/presale/templates/pretixpresale/event/index.html:453 #: pretix/presale/templates/pretixpresale/event/resend_link.html:4 #: pretix/presale/templates/pretixpresale/event/resend_link.html:7 msgid "Resend order links" @@ -10699,20 +10795,30 @@ msgstr "" "herunterladen oder deine Angaben ändern willst. Wir haben dir außerdem " "soeben einen Link mit dieser Adresse an deine E-Mail-Adresse geschickt." -#: pretix/presale/templates/pretixpresale/event/order.html:46 +#: pretix/presale/templates/pretixpresale/event/order.html:29 +msgid "" +"Please save the following link if you want to download your ticket or change " +"your details later. We also sent you an email containing the link to the " +"address you specified." +msgstr "" +"Bitte speichere folgenden Link ab, wenn du dein Ticket später herunterladen " +"oder deine Angaben ändern möchtest. Wir haben dir außerdem soeben einen Link " +"mit dieser Adresse an deine E-Mail-Adresse geschickt." + +#: pretix/presale/templates/pretixpresale/event/order.html:51 msgid "Use different payment method" msgstr "Andere Zahlungsmethode wählen" -#: pretix/presale/templates/pretixpresale/event/order.html:57 +#: pretix/presale/templates/pretixpresale/event/order.html:62 msgid "Complete payment" msgstr "Zahlung abschließen" -#: pretix/presale/templates/pretixpresale/event/order.html:61 +#: pretix/presale/templates/pretixpresale/event/order.html:66 #, python-format msgid "Please complete your payment before %(date)s" msgstr "Bitte schließe deine Zahlung bis zum %(date)s ab." -#: pretix/presale/templates/pretixpresale/event/order.html:72 +#: pretix/presale/templates/pretixpresale/event/order.html:77 msgid "" "You can download your tickets using the buttons below. Please have your " "ticket ready when entering the event." @@ -10720,25 +10826,25 @@ msgstr "" "Bitte lade dein Ticket mit den Buttons weiter unten herunter und halte es am " "Einlass der Veranstaltung bereit." -#: pretix/presale/templates/pretixpresale/event/order.html:78 +#: pretix/presale/templates/pretixpresale/event/order.html:83 msgid "Download all tickets at once:" msgstr "Alle Tickets auf einmal herunterladen:" -#: pretix/presale/templates/pretixpresale/event/order.html:92 +#: pretix/presale/templates/pretixpresale/event/order.html:97 #, python-format msgid "You will be able to download your tickets here starting on %(date)s." msgstr "Du kannst deine Tickets hier ab %(date)s herunterladen." -#: pretix/presale/templates/pretixpresale/event/order.html:104 -#: pretix/presale/templates/pretixpresale/event/order.html:167 +#: pretix/presale/templates/pretixpresale/event/order.html:109 +#: pretix/presale/templates/pretixpresale/event/order.html:172 msgid "Change details" msgstr "Details bearbeiten" -#: pretix/presale/templates/pretixpresale/event/order.html:152 +#: pretix/presale/templates/pretixpresale/event/order.html:157 msgid "Request invoice" msgstr "Rechnung anfragen" -#: pretix/presale/templates/pretixpresale/event/order.html:191 +#: pretix/presale/templates/pretixpresale/event/order.html:196 msgid "Internal Reference" msgstr "Interne Referenz" @@ -10898,54 +11004,54 @@ msgstr "Dieser Vorverkauf läuft mit pretix." msgid "There is nothing to see here yet." msgstr "Hier gibt es zur Zeit nichts zu sehen." -#: pretix/presale/templates/pretixpresale/organizers/calendar.html:5 +#: pretix/presale/templates/pretixpresale/organizers/calendar.html:6 msgid "Event overview" msgstr "Überblick" -#: pretix/presale/templates/pretixpresale/organizers/calendar.html:31 -#: pretix/presale/templates/pretixpresale/organizers/index.html:33 +#: pretix/presale/templates/pretixpresale/organizers/calendar.html:37 +#: pretix/presale/templates/pretixpresale/organizers/index.html:34 msgid "iCal" msgstr "iCal" -#: pretix/presale/templates/pretixpresale/organizers/calendar.html:67 +#: pretix/presale/templates/pretixpresale/organizers/calendar.html:71 msgid "Note that the events in this view are in different timezones." msgstr "" "Achtung: Die angezeigten Veranstaltungen liegen in unterschiedlichen " "Zeitzonen." -#: pretix/presale/templates/pretixpresale/organizers/index.html:5 +#: pretix/presale/templates/pretixpresale/organizers/index.html:6 msgid "Event list" msgstr "Veranstaltungs-Liste" -#: pretix/presale/templates/pretixpresale/organizers/index.html:13 +#: pretix/presale/templates/pretixpresale/organizers/index.html:14 msgid "Past events" msgstr "Vergangene Veranstaltungen" -#: pretix/presale/templates/pretixpresale/organizers/index.html:15 +#: pretix/presale/templates/pretixpresale/organizers/index.html:16 msgid "Upcoming events" msgstr "Nächste Veranstaltungen" -#: pretix/presale/templates/pretixpresale/organizers/index.html:36 +#: pretix/presale/templates/pretixpresale/organizers/index.html:37 msgid "Show upcoming" msgstr "Zukünftige Veranstaltungen zeigen" -#: pretix/presale/templates/pretixpresale/organizers/index.html:38 +#: pretix/presale/templates/pretixpresale/organizers/index.html:39 msgid "Show past events" msgstr "Vergangene Veranstaltungen zeigen" -#: pretix/presale/templates/pretixpresale/organizers/index.html:59 +#: pretix/presale/templates/pretixpresale/organizers/index.html:60 msgid "Buy tickets" msgstr "Tickets kaufen" -#: pretix/presale/templates/pretixpresale/organizers/index.html:60 +#: pretix/presale/templates/pretixpresale/organizers/index.html:61 msgid "More info" msgstr "Mehr Infos" -#: pretix/presale/templates/pretixpresale/organizers/index.html:69 +#: pretix/presale/templates/pretixpresale/organizers/index.html:70 msgid "No archived events found." msgstr "Keine archivierten Veranstaltungen gefunden." -#: pretix/presale/templates/pretixpresale/organizers/index.html:75 +#: pretix/presale/templates/pretixpresale/organizers/index.html:76 msgid "No public upcoming events found." msgstr "Keine öffentlichen Veranstaltungen geplant." @@ -10970,96 +11076,96 @@ msgstr "Diese Funktion ist nicht aktiviert." msgid "The selected organizer was not found." msgstr "Der ausgewählte Veranstalter wurde nicht gefunden." -#: pretix/presale/views/cart.py:69 pretix/presale/views/cart.py:87 -#: pretix/presale/views/cart.py:99 +#: pretix/presale/views/cart.py:79 pretix/presale/views/cart.py:97 +#: pretix/presale/views/cart.py:109 msgid "Please enter numbers only." msgstr "Bitte nur Zahlen eingeben." -#: pretix/presale/views/cart.py:71 +#: pretix/presale/views/cart.py:81 msgid "Please enter positive numbers only." msgstr "Bitte nur positive Zahlen eingeben." -#: pretix/presale/views/cart.py:185 +#: pretix/presale/views/cart.py:226 msgid "Your cart has been updated." msgstr "Dein Warenkorb wurde aktualisiert." -#: pretix/presale/views/cart.py:187 pretix/presale/views/cart.py:206 +#: pretix/presale/views/cart.py:228 pretix/presale/views/cart.py:248 msgid "Your cart is now empty." msgstr "Dein Warenkorb ist nun leer." -#: pretix/presale/views/cart.py:217 +#: pretix/presale/views/cart.py:262 msgid "The products have been successfully added to your cart." msgstr "Die gewählten Produkte wurden deinem Warenkorb hinzugefügt." -#: pretix/presale/views/checkout.py:20 +#: pretix/presale/views/checkout.py:31 msgid "Your cart is empty" msgstr "Dein Warenkorb ist leer." -#: pretix/presale/views/checkout.py:24 +#: pretix/presale/views/checkout.py:35 msgid "The presale for this event is over or has not yet started." msgstr "Der Vorverkauf für diese Veranstaltung hat noch nicht begonnen." -#: pretix/presale/views/event.py:223 +#: pretix/presale/views/event.py:275 msgid "Unknown event code or not authorized to access this event." msgstr "" "Unbekannte Veranstaltung oder du hast keine Berechtigung, auf diese " "Veranstaltung zuzugreifen." -#: pretix/presale/views/event.py:230 +#: pretix/presale/views/event.py:282 msgctxt "subevent" msgid "No date selected." msgstr "Kein Termin ausgewählt." -#: pretix/presale/views/event.py:233 +#: pretix/presale/views/event.py:285 msgctxt "subevent" msgid "Unknown date selected." msgstr "Ungültiger Termin ausgewählt." -#: pretix/presale/views/event.py:256 pretix/presale/views/event.py:264 -#: pretix/presale/views/event.py:267 +#: pretix/presale/views/event.py:308 pretix/presale/views/event.py:316 +#: pretix/presale/views/event.py:319 msgid "Please go back and try again." msgstr "Bitte gehe einen Schritt zurück und versuche es erneut." -#: pretix/presale/views/order.py:68 pretix/presale/views/order.py:147 -#: pretix/presale/views/order.py:200 pretix/presale/views/order.py:244 -#: pretix/presale/views/order.py:282 pretix/presale/views/order.py:392 -#: pretix/presale/views/order.py:460 pretix/presale/views/order.py:481 -#: pretix/presale/views/order.py:508 pretix/presale/views/order.py:584 -#: pretix/presale/views/order.py:643 +#: pretix/presale/views/order.py:71 pretix/presale/views/order.py:157 +#: pretix/presale/views/order.py:211 pretix/presale/views/order.py:256 +#: pretix/presale/views/order.py:295 pretix/presale/views/order.py:406 +#: pretix/presale/views/order.py:475 pretix/presale/views/order.py:497 +#: pretix/presale/views/order.py:525 pretix/presale/views/order.py:603 +#: pretix/presale/views/order.py:663 msgid "Unknown order code or not authorized to access this order." msgstr "" "Unbekannte Bestellnummer oder Bestellung gehört einem anderen Benutzer." -#: pretix/presale/views/order.py:151 pretix/presale/views/order.py:203 +#: pretix/presale/views/order.py:161 pretix/presale/views/order.py:214 msgid "The payment for this order cannot be continued." msgstr "Diese Bestellung kann nicht mehr bezahlt werden." -#: pretix/presale/views/order.py:156 pretix/presale/views/order.py:252 -#: pretix/presale/views/order.py:289 +#: pretix/presale/views/order.py:166 pretix/presale/views/order.py:264 +#: pretix/presale/views/order.py:302 msgid "The payment is too late to be accepted." msgstr "Die Zahlung kommt zu spät, um akzeptiert werden zu können." -#: pretix/presale/views/order.py:284 +#: pretix/presale/views/order.py:297 msgid "The payment method for this order cannot be changed." msgstr "Die Zahlungsmethode für diese Bestellung kann nicht geändert werden." -#: pretix/presale/views/order.py:462 +#: pretix/presale/views/order.py:477 msgid "You cannot modify this order" msgstr "Du kannst diese Bestellung nicht bearbeiten" -#: pretix/presale/views/order.py:586 +#: pretix/presale/views/order.py:605 msgid "Order is not paid." msgstr "Die Bestellung ist nicht bezahlt." -#: pretix/presale/views/order.py:590 +#: pretix/presale/views/order.py:609 msgid "Ticket download is not (yet) enabled." msgstr "Der Ticket-Download ist (noch) nicht freigeschaltet." -#: pretix/presale/views/order.py:592 +#: pretix/presale/views/order.py:611 msgid "Ticket download is not enabled for add-on products." msgstr "Der Ticket-Download ist für Zusatzprodukte nicht freigeschaltet." -#: pretix/presale/views/order.py:594 +#: pretix/presale/views/order.py:613 msgid "Ticket download is not enabled for non-admission products." msgstr "Der Ticket-Download ist nur für Zutrittsprodukte freigeschaltet." @@ -11084,20 +11190,20 @@ msgstr "" "Wenn mit dieser E-Mail-Adresse Bestellungen gefunden wurden, erhältst du nun " "eine E-Mail mit den entsprechenden Links." -#: pretix/presale/views/waiting.py:54 +#: pretix/presale/views/waiting.py:57 msgid "Waiting lists are disabled for this event." msgstr "Wartelisten sind für diese Veranstaltung nicht aktiviert." -#: pretix/presale/views/waiting.py:58 +#: pretix/presale/views/waiting.py:61 msgid "We could not identify the product you selected." msgstr "Wir konnten das ausgewählte Produkt nicht finden." -#: pretix/presale/views/waiting.py:67 +#: pretix/presale/views/waiting.py:70 msgctxt "subevent" msgid "You need to select a date." msgstr "Du musst einen Termin auswählen." -#: pretix/presale/views/waiting.py:79 +#: pretix/presale/views/waiting.py:82 msgid "" "You cannot add yourself to the waiting list as this product is currently " "available." @@ -11105,7 +11211,7 @@ msgstr "" "Du kannst dich nicht zur Liste hinzufügen, da das Produkt gerade verfügbar " "ist." -#: pretix/presale/views/waiting.py:84 +#: pretix/presale/views/waiting.py:87 msgid "" "We've added you to the waiting list. You will receive an email as soon as " "tickets get available again." @@ -11113,15 +11219,15 @@ msgstr "" "Wir haben dich zur Warteliste hinzugefügt. Du erhälst eine E-Mail, sobald " "wieder Tickets verfügbar sind." -#: pretix/settings.py:322 +#: pretix/settings.py:323 msgid "English" msgstr "Englisch" -#: pretix/settings.py:323 +#: pretix/settings.py:324 msgid "German" msgstr "Deutsch" -#: pretix/settings.py:324 +#: pretix/settings.py:325 msgid "German (informal)" msgstr "Deutsch (Du)" diff --git a/src/pretix/locale/de_Informal/LC_MESSAGES/djangojs.po b/src/pretix/locale/de_Informal/LC_MESSAGES/djangojs.po index df7233548..d75d0402f 100644 --- a/src/pretix/locale/de_Informal/LC_MESSAGES/djangojs.po +++ b/src/pretix/locale/de_Informal/LC_MESSAGES/djangojs.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-10-18 11:11+0000\n" -"PO-Revision-Date: 2017-08-27 09:35+0200\n" +"POT-Creation-Date: 2017-10-28 20:59+0000\n" +"PO-Revision-Date: 2017-10-28 22:59+0200\n" "Last-Translator: Raphael Michel \n" "Language-Team: \n" "Language: de\n" @@ -16,7 +16,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Poedit 2.0.3\n" +"X-Generator: Poedit 2.0.2\n" #: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:56 #: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:62 @@ -203,11 +203,15 @@ msgstr "Sonstige" msgid "Count" msgstr "Anzahl" -#: pretix/static/pretixpresale/js/ui/cart.js:16 +#: pretix/static/pretixpresale/js/ui/cart.js:22 msgid "The items in your cart are no longer reserved for you." msgstr "Die Produkte in deinem Warenkorb sind nicht mehr für dich reserviert." -#: pretix/static/pretixpresale/js/ui/cart.js:20 +#: pretix/static/pretixpresale/js/ui/cart.js:24 +msgid "Cart expired" +msgstr "Warenkorb abgelaufen" + +#: pretix/static/pretixpresale/js/ui/cart.js:29 msgid "The items in your cart are reserved for you for one minute." msgid_plural "The items in your cart are reserved for you for {num} minutes." msgstr[0] "" @@ -215,12 +219,132 @@ msgstr[0] "" msgstr[1] "" "Die Produkte in deinem Warenkorb sind noch {num} Minuten für dich reserviert." +#: pretix/static/pretixpresale/js/widget/widget.js:9 +msgctxt "widget" +msgid "Sold out" +msgstr "Ausverkauft" + +#: pretix/static/pretixpresale/js/widget/widget.js:10 +msgctxt "widget" +msgid "Buy" +msgstr "In den Warenkorb" + +#: pretix/static/pretixpresale/js/widget/widget.js:11 +msgctxt "widget" +msgid "Reserved" +msgstr "Reserviert" + +#: pretix/static/pretixpresale/js/widget/widget.js:12 +msgctxt "widget" +msgid "FREE" +msgstr "GRATIS" + +#: pretix/static/pretixpresale/js/widget/widget.js:13 +msgctxt "widget" +msgid "from %(currency)s %(price)s" +msgstr "ab %(currency)s %(price)s" + +#: pretix/static/pretixpresale/js/widget/widget.js:14 +msgctxt "widget" +msgid "incl. %(rate)s% %(taxname)s" +msgstr "inkl. %(rate)s% %(taxname)s" + +#: pretix/static/pretixpresale/js/widget/widget.js:15 +msgctxt "widget" +msgid "plus %(rate)s% %(taxname)s" +msgstr "zzgl. %(rate)s% %(taxname)s" + +#: pretix/static/pretixpresale/js/widget/widget.js:16 +#, javascript-format +msgctxt "widget" +msgid "currently available: %s" +msgstr "aktuell verfügbar: %s" + +#: pretix/static/pretixpresale/js/widget/widget.js:17 +msgctxt "widget" +msgid "Only available with a voucher" +msgstr "Nur mit Gutschein verfügbar" + +#: pretix/static/pretixpresale/js/widget/widget.js:18 +#, javascript-format +msgctxt "widget" +msgid "minimum amount to order: %s" +msgstr "minimale Bestellmenge: %s" + +#: pretix/static/pretixpresale/js/widget/widget.js:19 +msgctxt "widget" +msgid "Close ticket shop" +msgstr "Ticket-Shop schließen" + +#: pretix/static/pretixpresale/js/widget/widget.js:20 +msgctxt "widget" +msgid "The ticket shop could not be loaded." +msgstr "Der Ticket-Shop konnte nicht geladen werden." + +#: pretix/static/pretixpresale/js/widget/widget.js:21 +msgctxt "widget" +msgid "The cart could not be created. Please try again later" +msgstr "Der Warenkorb konnte nicht erstellt werden. Bitte erneut versuchen." + +#: pretix/static/pretixpresale/js/widget/widget.js:22 +msgctxt "widget" +msgid "Waiting list" +msgstr "Warteliste" + +#: pretix/static/pretixpresale/js/widget/widget.js:23 +msgctxt "widget" +msgid "" +"You currently have an active cart for this event. If you select more " +"products, they will be added to your existing cart. Click on this message to " +"continue checkout with your cart." +msgstr "" +"Du hast einen aktiven Warenkorb für diese Veranstaltung. Wenn du mehr " +"Produkte auswählst, werden diese zu deinem Warenkorb hinzugefügt. Klicke auf " +"diese Meldung um den Kauf des bestehenden Warenkorbs fortzusetzen oder den " +"Warenkorb zu verändern." + +#: pretix/static/pretixpresale/js/widget/widget.js:26 +msgctxt "widget" +msgid "" +"ticketing powered by pretix" +msgstr "" +"ticketing powered by pretix" + +#: pretix/static/pretixpresale/js/widget/widget.js:27 +msgctxt "widget" +msgid "Redeem a voucher" +msgstr "Gutschein einlösen" + +#: pretix/static/pretixpresale/js/widget/widget.js:28 +msgctxt "widget" +msgid "Redeem" +msgstr "Einlösen" + +#: pretix/static/pretixpresale/js/widget/widget.js:29 +msgctxt "widget" +msgid "Voucher code" +msgstr "Gutscheincode" + +#: pretix/static/pretixpresale/js/widget/widget.js:30 +msgctxt "widget" +msgid "Close" +msgstr "Schließen" + +#: pretix/static/pretixpresale/js/widget/widget.js:31 +msgctxt "widget" +msgid "Continue" +msgstr "Fortfahren" + +#: pretix/static/pretixpresale/js/widget/widget.js:32 +msgctxt "widget" +msgid "See variations" +msgstr "Varianten zeigen" + #~ msgid "Sample product" #~ msgstr "Beispielprodukt" -#~ msgid "Sample variation" -#~ msgstr "Beispielvariante" - #~ msgid "Sample product – sample variation" #~ msgstr "Beispielprodukt – Beispielvariante" diff --git a/src/pretix/static/pretixpresale/js/widget/widget.js b/src/pretix/static/pretixpresale/js/widget/widget.js index 94f82ac57..573137590 100644 --- a/src/pretix/static/pretixpresale/js/widget/widget.js +++ b/src/pretix/static/pretixpresale/js/widget/widget.js @@ -29,6 +29,7 @@ var strings = { 'voucher_code': django.pgettext('widget', 'Voucher code'), 'close': django.pgettext('widget', 'Close'), 'continue': django.pgettext('widget', 'Continue'), + 'variations': django.pgettext('widget', 'See variations'), }; var setCookie = function (cname, cvalue, exdays) { @@ -296,7 +297,7 @@ Vue.component('item', { + '

' + '' + '' @@ -349,7 +350,7 @@ Vue.component('item', { if (this.item.min_price !== this.item.max_price || this.item.free_price) { return django.interpolate(strings.price_from, { 'currency': this.$root.currency, - 'price': floatformat(this.$root.price, 2) + 'price': floatformat(this.item.min_price, 2) }, true); } else if (this.item.min_price === "0.00" && this.item.max_price === "0.00") { return strings.free;