mirror of
https://github.com/pretix/pretix.git
synced 2026-09-26 18:24:42 +00:00
Compare commits
7
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1480a5cdc3 | ||
|
|
ccd922b7f0 | ||
|
|
2b5d659f64 | ||
|
|
1662c65b9b | ||
|
|
dabdac6ff2 | ||
|
|
50d724f9e3 | ||
|
|
ae5c0a5537 |
@@ -158,10 +158,10 @@ transmission_email_address string Optional. An em
|
||||
Business customers only.
|
||||
===================================== ========================== =======================================================
|
||||
|
||||
Peppol
|
||||
PEPPOL
|
||||
""""""
|
||||
|
||||
The identifier ``"peppol"`` represents the transmission of XML invoices through the `Peppol`_ network.
|
||||
The identifier ``"peppol"`` represents the transmission of XML invoices through the `PEPPOL`_ network.
|
||||
This is only available for business addresses.
|
||||
This is not supported by pretix out of the box and requires the use of a suitable plugin.
|
||||
The ``transmission_info`` object may contain the following properties:
|
||||
@@ -171,7 +171,7 @@ The ``transmission_info`` object may contain the following properties:
|
||||
===================================== ========================== =======================================================
|
||||
Field Type Description
|
||||
===================================== ========================== =======================================================
|
||||
transmission_peppol_participant_id string Required. The Peppol participant ID of the recipient.
|
||||
transmission_peppol_participant_id string Required. The PEPPOL participant ID of the recipient.
|
||||
===================================== ========================== =======================================================
|
||||
|
||||
Italian Exchange System
|
||||
@@ -604,5 +604,5 @@ but in other cases transmission may need to be triggered manually.
|
||||
:statuscode 409: The invoice is currently in transmission
|
||||
|
||||
|
||||
.. _Peppol: https://en.wikipedia.org/wiki/PEPPOL
|
||||
.. _PEPPOL: https://en.wikipedia.org/wiki/PEPPOL
|
||||
.. _Sistema di Interscambio: https://it.wikipedia.org/wiki/Fattura_elettronica_in_Italia
|
||||
@@ -418,7 +418,6 @@ List of all orders
|
||||
"seat": null,
|
||||
"checkins": [
|
||||
{
|
||||
"id": 1337,
|
||||
"list": 44,
|
||||
"type": "entry",
|
||||
"gate": null,
|
||||
@@ -663,7 +662,6 @@ Fetching individual orders
|
||||
"seat": null,
|
||||
"checkins": [
|
||||
{
|
||||
"id": 1337,
|
||||
"list": 44,
|
||||
"type": "entry",
|
||||
"gate": null,
|
||||
@@ -1634,7 +1632,6 @@ List of all order positions
|
||||
"blocked": null,
|
||||
"checkins": [
|
||||
{
|
||||
"id": 1337,
|
||||
"list": 44,
|
||||
"type": "entry",
|
||||
"gate": null,
|
||||
@@ -1763,7 +1760,6 @@ Fetching individual positions
|
||||
"seat": null,
|
||||
"checkins": [
|
||||
{
|
||||
"id": 1337,
|
||||
"list": 44,
|
||||
"type": "entry",
|
||||
"gate": null,
|
||||
|
||||
@@ -23,7 +23,7 @@ There are multiple signals that will be sent out in the ordering cycle:
|
||||
|
||||
.. automodule:: pretix.base.signals
|
||||
:no-index:
|
||||
:members: validate_cart, validate_cart_addons, validate_order, order_valid_if_pending, order_fee_calculation, order_paid, order_placed, order_canceled, order_reactivated, order_expired, order_expiry_changed, order_modified, order_changed, order_approved, order_denied, order_fee_type_name, allow_ticket_download, order_split, order_gracefully_delete, build_invoice_data, invoice_line_text
|
||||
:members: validate_cart, validate_cart_addons, validate_order, order_valid_if_pending, order_fee_calculation, order_paid, order_placed, order_canceled, order_reactivated, order_expired, order_expiry_changed, order_modified, order_changed, order_approved, order_denied, order_fee_type_name, allow_ticket_download, order_split, order_gracefully_delete, invoice_line_text
|
||||
|
||||
Check-ins
|
||||
"""""""""
|
||||
@@ -37,7 +37,7 @@ Frontend
|
||||
--------
|
||||
|
||||
.. automodule:: pretix.presale.signals
|
||||
:members: html_head, html_footer, footer_link, global_footer_link, front_page_top, front_page_bottom, front_page_bottom_widget, fee_calculation_for_cart, contact_form_fields, question_form_fields, contact_form_fields_overrides, question_form_fields_overrides, checkout_confirm_messages, checkout_confirm_page_content, checkout_all_optional, html_page_header, render_seating_plan, checkout_flow_steps, position_info, position_info_top, item_description, global_html_head, global_html_footer, global_html_page_header, seatingframe_html_head, filter_subevents
|
||||
:members: html_head, html_footer, footer_link, global_footer_link, front_page_top, front_page_bottom, front_page_bottom_widget, fee_calculation_for_cart, contact_form_fields, question_form_fields, contact_form_fields_overrides, question_form_fields_overrides, checkout_confirm_messages, checkout_confirm_page_content, checkout_all_optional, html_page_header, render_seating_plan, checkout_flow_steps, position_info, position_info_top, item_description, global_html_head, global_html_footer, global_html_page_header, seatingframe_html_head
|
||||
|
||||
|
||||
.. automodule:: pretix.presale.signals
|
||||
|
||||
@@ -6,4 +6,4 @@ sphinxcontrib-images
|
||||
sphinxcontrib-jquery
|
||||
sphinxcontrib-spelling==8.*
|
||||
sphinxemoji
|
||||
pyenchant==3.3.*
|
||||
pyenchant==3.2.*
|
||||
|
||||
@@ -7,4 +7,4 @@ sphinxcontrib-images
|
||||
sphinxcontrib-jquery
|
||||
sphinxcontrib-spelling==8.*
|
||||
sphinxemoji
|
||||
pyenchant==3.3.*
|
||||
pyenchant==3.2.*
|
||||
|
||||
+7
-7
@@ -28,19 +28,19 @@ classifiers = [
|
||||
dependencies = [
|
||||
"arabic-reshaper==3.0.0", # Support for Arabic in reportlab
|
||||
"babel",
|
||||
"BeautifulSoup4==4.14.*",
|
||||
"BeautifulSoup4==4.13.*",
|
||||
"bleach==6.2.*",
|
||||
"celery==5.5.*",
|
||||
"chardet==5.2.*",
|
||||
"cryptography>=44.0.0",
|
||||
"css-inline==0.17.*",
|
||||
"defusedcsv>=1.1.0",
|
||||
"Django[argon2]==4.2.*,>=4.2.24",
|
||||
"Django[argon2]==4.2.*,>=4.2.15",
|
||||
"django-bootstrap3==25.2",
|
||||
"django-compressor==4.5.1",
|
||||
"django-countries==7.6.*",
|
||||
"django-filter==25.1",
|
||||
"django-formset-js-improved==0.5.0.4",
|
||||
"django-formset-js-improved==0.5.0.3",
|
||||
"django-formtools==2.5.1",
|
||||
"django-hierarkey==2.0.*,>=2.0.1",
|
||||
"django-hijack==3.7.*",
|
||||
@@ -79,7 +79,7 @@ dependencies = [
|
||||
"protobuf==6.32.*",
|
||||
"psycopg2-binary",
|
||||
"pycountry",
|
||||
"pycparser==2.23",
|
||||
"pycparser==2.22",
|
||||
"pycryptodome==3.23.*",
|
||||
"pypdf==6.0.*",
|
||||
"python-bidi==0.6.*", # Support for Arabic in reportlab
|
||||
@@ -91,7 +91,7 @@ dependencies = [
|
||||
"redis==6.4.*",
|
||||
"reportlab==4.4.*",
|
||||
"requests==2.32.*",
|
||||
"sentry-sdk==2.40.*",
|
||||
"sentry-sdk==2.37.*",
|
||||
"sepaxml==2.6.*",
|
||||
"stripe==7.9.*",
|
||||
"text-unidecode==1.*",
|
||||
@@ -113,14 +113,14 @@ dev = [
|
||||
"fakeredis==2.31.*",
|
||||
"flake8==7.3.*",
|
||||
"freezegun",
|
||||
"isort==6.1.*",
|
||||
"isort==6.0.*",
|
||||
"pep8-naming==0.15.*",
|
||||
"potypo",
|
||||
"pytest-asyncio>=0.24",
|
||||
"pytest-cache",
|
||||
"pytest-cov",
|
||||
"pytest-django==4.*",
|
||||
"pytest-mock==3.15.*",
|
||||
"pytest-mock==3.14.*",
|
||||
"pytest-sugar",
|
||||
"pytest-xdist==3.8.*",
|
||||
"pytest==8.4.*",
|
||||
|
||||
+2
-2
@@ -25,8 +25,8 @@ coverage:
|
||||
coverage run -m py.test
|
||||
|
||||
npminstall:
|
||||
# keep this in sync with pretix/_build.py!
|
||||
# keep this in sync with setup.py!
|
||||
mkdir -p pretix/static.dist/node_prefix/
|
||||
cp -r pretix/static/npm_dir/* pretix/static.dist/node_prefix/
|
||||
npm ci --prefix=pretix/static.dist/node_prefix
|
||||
npm install --prefix=pretix/static.dist/node_prefix
|
||||
|
||||
|
||||
@@ -19,4 +19,4 @@
|
||||
# You should have received a copy of the GNU Affero General Public License along with this program. If not, see
|
||||
# <https://www.gnu.org/licenses/>.
|
||||
#
|
||||
__version__ = "2025.9.0.dev0"
|
||||
__version__ = "2025.8.0.dev0"
|
||||
|
||||
@@ -39,7 +39,7 @@ def npm_install():
|
||||
node_prefix = os.path.join(here, 'static.dist', 'node_prefix')
|
||||
os.makedirs(node_prefix, exist_ok=True)
|
||||
shutil.copytree(os.path.join(here, 'static', 'npm_dir'), node_prefix, dirs_exist_ok=True)
|
||||
subprocess.check_call('npm ci', shell=True, cwd=node_prefix)
|
||||
subprocess.check_call('npm install', shell=True, cwd=node_prefix)
|
||||
npm_installed = True
|
||||
|
||||
|
||||
|
||||
@@ -484,7 +484,6 @@ class OrganizerSettingsSerializer(SettingsSerializer):
|
||||
'reusable_media_type_nfc_mf0aes',
|
||||
'reusable_media_type_nfc_mf0aes_autocreate_giftcard',
|
||||
'reusable_media_type_nfc_mf0aes_autocreate_giftcard_currency',
|
||||
'reusable_media_type_nfc_mf0aes_random_uid',
|
||||
]
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
|
||||
@@ -743,7 +743,7 @@ class EventOrderViewSet(OrderViewSetMixin, viewsets.ModelViewSet):
|
||||
user=request.user if request.user.is_authenticated else None,
|
||||
auth=request.auth,
|
||||
)
|
||||
order_placed.send(self.request.event, order=order, bulk=False)
|
||||
order_placed.send(self.request.event, order=order)
|
||||
if order.status == Order.STATUS_PAID:
|
||||
order_paid.send(self.request.event, order=order)
|
||||
order.log_action(
|
||||
@@ -764,13 +764,7 @@ class EventOrderViewSet(OrderViewSetMixin, viewsets.ModelViewSet):
|
||||
) and not order.invoices.last()
|
||||
invoice = None
|
||||
if gen_invoice:
|
||||
try:
|
||||
invoice = generate_invoice(order, trigger_pdf=True)
|
||||
except Exception as e:
|
||||
logger.exception("Could not generate invoice.")
|
||||
order.log_action("pretix.event.order.invoice.failed", data={
|
||||
"exception": str(e)
|
||||
})
|
||||
invoice = generate_invoice(order, trigger_pdf=True)
|
||||
|
||||
# Refresh serializer only after running signals
|
||||
prefetch_related_objects([order], self._positions_prefetch(request))
|
||||
|
||||
@@ -546,8 +546,7 @@ class DeviceViewSet(mixins.CreateModelMixin,
|
||||
|
||||
|
||||
class OrganizerSettingsView(views.APIView):
|
||||
permission = None
|
||||
write_permission = 'can_change_organizer_settings'
|
||||
permission = 'can_change_organizer_settings'
|
||||
|
||||
def get(self, request, *args, **kwargs):
|
||||
s = OrganizerSettingsSerializer(instance=request.organizer.settings, organizer=request.organizer, context={
|
||||
|
||||
@@ -439,12 +439,8 @@ def register_default_webhook_events(sender, **kwargs):
|
||||
def notify_webhooks(logentry_ids: list):
|
||||
if not isinstance(logentry_ids, list):
|
||||
logentry_ids = [logentry_ids]
|
||||
qs = LogEntry.all.select_related(
|
||||
'event', 'event__organizer', 'organizer'
|
||||
).order_by(
|
||||
'action_type', 'organizer_id', 'event_id',
|
||||
).filter(id__in=logentry_ids)
|
||||
_org, _at, _ev, webhooks = None, None, None, None
|
||||
qs = LogEntry.all.select_related('event', 'event__organizer', 'organizer').filter(id__in=logentry_ids)
|
||||
_org, _at, webhooks = None, None, None
|
||||
for logentry in qs:
|
||||
if not logentry.organizer:
|
||||
break # We need to know the organizer
|
||||
@@ -454,7 +450,7 @@ def notify_webhooks(logentry_ids: list):
|
||||
if not notification_type:
|
||||
break # Ignore, no webhooks for this event type
|
||||
|
||||
if _org != logentry.organizer or _at != logentry.action_type or _ev != logentry.event_id or webhooks is None:
|
||||
if _org != logentry.organizer or _at != logentry.action_type or webhooks is None:
|
||||
_org = logentry.organizer
|
||||
_at = logentry.action_type
|
||||
|
||||
|
||||
@@ -106,7 +106,7 @@ class OutboundSyncProvider:
|
||||
return str(cls.identifier)
|
||||
|
||||
@classmethod
|
||||
def enqueue_order(cls, order, triggered_by, not_before=None, immediate=False):
|
||||
def enqueue_order(cls, order, triggered_by, not_before=None):
|
||||
"""
|
||||
Adds an order to the sync queue. May only be called on derived classes which define an ``identifier`` attribute.
|
||||
|
||||
@@ -119,14 +119,10 @@ class OutboundSyncProvider:
|
||||
:param order: the Order that should be synced
|
||||
:param triggered_by: the reason why the order should be synced, e.g. name of the signal
|
||||
(currently only used internally for logging)
|
||||
:param immediate: whether a new sync task should run immediately for this order, instead
|
||||
of waiting for the next periodic_task interval
|
||||
:return: Return a tuple (queue_item, created), where created is a boolean
|
||||
specifying whether a new queue item was created.
|
||||
"""
|
||||
if not hasattr(cls, 'identifier'):
|
||||
raise TypeError('Call this method on a derived class that defines an "identifier" attribute.')
|
||||
queue_item, created = OrderSyncQueue.objects.update_or_create(
|
||||
OrderSyncQueue.objects.update_or_create(
|
||||
order=order,
|
||||
sync_provider=cls.identifier,
|
||||
in_flight=False,
|
||||
@@ -137,10 +133,6 @@ class OutboundSyncProvider:
|
||||
"need_manual_retry": None,
|
||||
},
|
||||
)
|
||||
if immediate:
|
||||
from pretix.base.services.datasync import sync_single
|
||||
sync_single.apply_async(args=(queue_item.pk,))
|
||||
return queue_item, created
|
||||
|
||||
@classmethod
|
||||
def get_external_link_info(cls, event, external_link_href, external_link_display_name):
|
||||
@@ -391,7 +383,7 @@ class OutboundSyncProvider:
|
||||
def sync_order(self, order):
|
||||
if not self.should_sync_order(order):
|
||||
logger.debug("Skipping order %r", order)
|
||||
return {}
|
||||
return
|
||||
|
||||
logger.debug("Syncing order %r", order)
|
||||
positions = list(
|
||||
|
||||
@@ -105,18 +105,6 @@ class BaseExporter:
|
||||
"""
|
||||
return False
|
||||
|
||||
@property
|
||||
def repeatable_read(self) -> bool:
|
||||
"""
|
||||
If ``True``, this exporter will be run in a REPEATABLE READ transaction. This ensures consistent results for
|
||||
all queries performed by the exporter, but creates a performance burden on the database server. We recommend to
|
||||
disable this for exporters that take very long to run and do not rely on this behavior, such as export of lists
|
||||
to CSV files.
|
||||
|
||||
Defaults to ``True`` for now, but default may change in future versions.
|
||||
"""
|
||||
return True
|
||||
|
||||
@property
|
||||
def identifier(self) -> str:
|
||||
"""
|
||||
|
||||
@@ -125,7 +125,6 @@ class InvoiceExporter(InvoiceExporterMixin, BaseExporter):
|
||||
identifier = 'invoices'
|
||||
verbose_name = _('All invoices')
|
||||
description = _('Download all invoices created by the system as a ZIP file of PDF files.')
|
||||
repeatable_read = False
|
||||
|
||||
def render(self, form_data: dict, output_file=None):
|
||||
qs = self.invoices_queryset(form_data).filter(shredded=False)
|
||||
@@ -181,7 +180,6 @@ class InvoiceDataExporter(InvoiceExporterMixin, MultiSheetListExporter):
|
||||
'includes two sheets, one with a line for every invoice, and one with a line for every position of '
|
||||
'every invoice.')
|
||||
featured = True
|
||||
repeatable_read = False
|
||||
|
||||
@property
|
||||
def additional_form_fields(self):
|
||||
|
||||
@@ -90,7 +90,6 @@ class OrderListExporter(MultiSheetListExporter):
|
||||
'with a line for every order, one with a line for every order position, and one with '
|
||||
'a line for every additional fee charged in an order.')
|
||||
featured = True
|
||||
repeatable_read = False
|
||||
|
||||
@cached_property
|
||||
def providers(self):
|
||||
@@ -843,7 +842,6 @@ class TransactionListExporter(ListExporter):
|
||||
description = gettext_lazy('Download a spreadsheet of all substantial changes to orders, i.e. all changes to '
|
||||
'products, prices or tax rates. The information is only accurate for changes made with '
|
||||
'pretix versions released after October 2021.')
|
||||
repeatable_read = False
|
||||
|
||||
@cached_property
|
||||
def providers(self):
|
||||
@@ -1022,7 +1020,6 @@ class PaymentListExporter(ListExporter):
|
||||
category = pgettext_lazy('export_category', 'Order data')
|
||||
description = gettext_lazy('Download a spreadsheet of all payments or refunds of every order.')
|
||||
featured = True
|
||||
repeatable_read = False
|
||||
|
||||
@property
|
||||
def additional_form_fields(self):
|
||||
@@ -1162,7 +1159,7 @@ class QuotaListExporter(ListExporter):
|
||||
yield headers
|
||||
|
||||
quotas = list(self.event.quotas.select_related('subevent'))
|
||||
qa = QuotaAvailability(full_results=True, allow_repeatable_read=True)
|
||||
qa = QuotaAvailability(full_results=True)
|
||||
qa.queue(*quotas)
|
||||
qa.compute()
|
||||
|
||||
@@ -1203,7 +1200,6 @@ class GiftcardTransactionListExporter(OrganizerLevelExportMixin, ListExporter):
|
||||
organizer_required_permission = 'can_manage_gift_cards'
|
||||
category = pgettext_lazy('export_category', 'Gift cards')
|
||||
description = gettext_lazy('Download a spreadsheet of all gift card transactions.')
|
||||
repeatable_read = False
|
||||
|
||||
@property
|
||||
def additional_form_fields(self):
|
||||
@@ -1262,7 +1258,6 @@ class GiftcardRedemptionListExporter(ListExporter):
|
||||
verbose_name = gettext_lazy('Gift card redemptions')
|
||||
category = pgettext_lazy('export_category', 'Order data')
|
||||
description = gettext_lazy('Download a spreadsheet of all payments or refunds that involve gift cards.')
|
||||
repeatable_read = False
|
||||
|
||||
def iterate_list(self, form_data):
|
||||
payments = OrderPayment.objects.filter(
|
||||
|
||||
@@ -34,7 +34,6 @@ class ReusableMediaExporter(OrganizerLevelExportMixin, ListExporter):
|
||||
verbose_name = _('Reusable media')
|
||||
category = pgettext_lazy('export_category', 'Reusable media')
|
||||
description = _('Download a spread sheet with the data of all reusable medias on your account.')
|
||||
repeatable_read = False
|
||||
|
||||
def iterate_list(self, form_data):
|
||||
media = ReusableMedium.objects.filter(
|
||||
|
||||
@@ -41,7 +41,6 @@ class WaitingListExporter(ListExporter):
|
||||
verbose_name = _('Waiting list')
|
||||
category = pgettext_lazy('export_category', 'Waiting list')
|
||||
description = _('Download a spread sheet with all your waiting list data.')
|
||||
repeatable_read = False
|
||||
|
||||
# map selected status to label and queryset-filter
|
||||
status_filters = [
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
|
||||
from django import forms
|
||||
from django.core.validators import RegexValidator
|
||||
from django.utils.translation import pgettext, pgettext_lazy
|
||||
from django.utils.translation import pgettext_lazy
|
||||
from django_countries.fields import Country
|
||||
from localflavor.it.forms import ITSocialSecurityNumberField
|
||||
|
||||
@@ -73,12 +73,3 @@ class ItalianSdITransmissionType(TransmissionType):
|
||||
if is_business:
|
||||
return base | {"company", "vat_id", "transmission_it_sdi_pec", "transmission_it_sdi_recipient_code"}
|
||||
return base | {"transmission_it_sdi_codice_fiscale"}
|
||||
|
||||
def pdf_info_text(self) -> str:
|
||||
# Watermark is not necessary as this is a usual precaution in Italy
|
||||
return pgettext(
|
||||
"italian_invoice",
|
||||
"This PDF document is a visual copy of the invoice and does not constitute an invoice for VAT "
|
||||
"purposes. The invoice is issued in XML format, transmitted in accordance with the procedures and terms "
|
||||
"set forth in No. 89757/2018 of April 30, 2018, issued by the Director of the Revenue Agency."
|
||||
)
|
||||
|
||||
@@ -21,7 +21,6 @@
|
||||
#
|
||||
import datetime
|
||||
import logging
|
||||
import math
|
||||
import re
|
||||
import unicodedata
|
||||
from collections import defaultdict
|
||||
@@ -225,9 +224,6 @@ class BaseReportlabInvoiceRenderer(BaseInvoiceRenderer):
|
||||
stylesheet.add(ParagraphStyle(name='FineprintHeading', fontName=self.font_bold, fontSize=8, leading=12))
|
||||
stylesheet.add(ParagraphStyle(name='Fineprint', fontName=self.font_regular, fontSize=8, leading=10))
|
||||
stylesheet.add(ParagraphStyle(name='FineprintRight', fontName=self.font_regular, fontSize=8, leading=10, alignment=TA_RIGHT))
|
||||
stylesheet.add(ParagraphStyle(name='WarningBlock', fontName=self.font_bold, fontSize=10, leading=12,
|
||||
alignment=TA_LEFT, borderWidth=1 * mm, borderColor=colors.black,
|
||||
borderPadding=2 * mm, spaceBefore=5 * mm, spaceAfter=5 * mm))
|
||||
return stylesheet
|
||||
|
||||
def _register_fonts(self):
|
||||
@@ -587,28 +583,11 @@ class ClassicInvoiceRenderer(BaseReportlabInvoiceRenderer):
|
||||
canvas.drawRightString(self.pagesize[0] - 20 * mm, (297 - 100) * mm, self._normalize(gettext('TEST MODE')))
|
||||
canvas.restoreState()
|
||||
|
||||
def _draw_watermark(self, canvas):
|
||||
watermark = self.invoice.transmission_type_instance.pdf_watermark()
|
||||
if watermark:
|
||||
canvas.saveState()
|
||||
for font_size in range(200, 20, -10):
|
||||
width = stringWidth(watermark, self.font_bold, font_size)
|
||||
if width < self.pagesize[0]:
|
||||
break
|
||||
|
||||
canvas.translate(self.pagesize[0] / 2, self.pagesize[1] / 2)
|
||||
canvas.rotate(math.atan(self.pagesize[1] / self.pagesize[0]) / math.pi * 180)
|
||||
canvas.setFont(self.font_bold, font_size)
|
||||
canvas.setFillColorRGB(.92, .92, .92)
|
||||
canvas.drawCentredString(0, - font_size / 2, self._normalize(watermark))
|
||||
canvas.restoreState()
|
||||
|
||||
def _on_first_page(self, canvas: Canvas, doc):
|
||||
canvas.setCreator('pretix.eu')
|
||||
canvas.setTitle(pgettext('invoice', 'Invoice {num}').format(num=self.invoice.number))
|
||||
|
||||
canvas.saveState()
|
||||
self._draw_watermark(canvas)
|
||||
self._draw_footer(canvas)
|
||||
self._draw_testmode(canvas)
|
||||
self._draw_invoice_from_label(canvas)
|
||||
@@ -638,14 +617,6 @@ class ClassicInvoiceRenderer(BaseReportlabInvoiceRenderer):
|
||||
|
||||
def _get_intro(self):
|
||||
story = []
|
||||
|
||||
type_info_text = self.invoice.transmission_type_instance.pdf_info_text()
|
||||
if type_info_text:
|
||||
story.append(FontFallbackParagraph(
|
||||
type_info_text,
|
||||
self.stylesheet['WarningBlock']
|
||||
))
|
||||
|
||||
if self.invoice.custom_field:
|
||||
story.append(FontFallbackParagraph(
|
||||
'{}: {}'.format(
|
||||
@@ -692,12 +663,11 @@ class ClassicInvoiceRenderer(BaseReportlabInvoiceRenderer):
|
||||
return story
|
||||
|
||||
def _get_story(self, doc):
|
||||
all_lines = list(self.invoice.lines.all())
|
||||
has_taxes = any(il.tax_value for il in all_lines) or self.invoice.reverse_charge
|
||||
has_taxes = any(il.tax_value for il in self.invoice.lines.all()) or self.invoice.reverse_charge
|
||||
header_dates = self._date_range_in_header()
|
||||
tz = self.invoice.event.timezone
|
||||
has_multiple_service_dates = len(set(
|
||||
(il.period_start, il.period_end) for il in all_lines
|
||||
(il.period_start, il.period_end) for il in self.invoice.lines.all()
|
||||
)) > 1
|
||||
request_show_service_date = False
|
||||
|
||||
@@ -753,7 +723,7 @@ class ClassicInvoiceRenderer(BaseReportlabInvoiceRenderer):
|
||||
|
||||
total = Decimal('0.00')
|
||||
for (description, tax_rate, tax_name, net_value, gross_value, subevent, period_start, period_end), lines in addon_aware_groupby(
|
||||
all_lines,
|
||||
self.invoice.lines.all(),
|
||||
key=_group_key,
|
||||
is_addon=lambda l: l.description.startswith(" +"),
|
||||
):
|
||||
@@ -762,28 +732,26 @@ class ClassicInvoiceRenderer(BaseReportlabInvoiceRenderer):
|
||||
# however this will cause confusion (a) due to useless repetition of the same date all over the invoice
|
||||
# (b) due to not respecting the show_date_to setting of events in cases where we could have respected it.
|
||||
# Still, we want to show the date explicitly if its different to the event or invoice date.
|
||||
period_start_day = day(period_start)
|
||||
period_end_day = day(period_end)
|
||||
if period_start and period_end and period_end_day != period_start_day:
|
||||
if period_start and period_end and day(period_end) != day(period_start):
|
||||
# It's a multi-day period, such as the validity of the ticket or an event date period
|
||||
|
||||
if period_start_day == header_dates[0] and period_end_day == header_dates[1]:
|
||||
if day(period_start) == header_dates[0] and day(period_end) == header_dates[1]:
|
||||
# This is the exact event period we already printed in the header, no need to repeat it.
|
||||
period_line = ""
|
||||
|
||||
elif (self.event.has_subevents and subevent and day(subevent.date_from) == period_start_day and
|
||||
day(subevent.date_to) == period_end_day):
|
||||
elif (self.event.has_subevents and subevent and day(subevent.date_from) == day(period_start) and
|
||||
day(subevent.date_to) == day(period_end)):
|
||||
# For subevents, build_invoice already includes the date in the description in the event-default format.
|
||||
period_line = ""
|
||||
|
||||
else:
|
||||
period_line = f"{date_format(period_start_day, 'SHORT_DATE_FORMAT')} – {date_format(period_end_day, 'SHORT_DATE_FORMAT')}"
|
||||
period_line = f"{date_format(day(period_start), 'SHORT_DATE_FORMAT')} – {date_format(day(period_end), 'SHORT_DATE_FORMAT')}"
|
||||
|
||||
elif period_start or period_end:
|
||||
# It's a single-day period
|
||||
|
||||
delivery_day = period_end_day or period_start_day
|
||||
if delivery_day in header_dates:
|
||||
delivery_day = day(period_end or period_start)
|
||||
if delivery_day in (header_dates[0], header_dates[1]):
|
||||
# This is the event date we already printed in the header, no need to repeat it.
|
||||
period_line = ""
|
||||
|
||||
@@ -809,7 +777,7 @@ class ClassicInvoiceRenderer(BaseReportlabInvoiceRenderer):
|
||||
if not has_multiple_service_dates and period_line:
|
||||
# Group together at the end of the invoice
|
||||
request_show_service_date = period_line
|
||||
elif period_line:
|
||||
else:
|
||||
description += "\n" + period_line
|
||||
|
||||
lines = list(lines)
|
||||
|
||||
@@ -23,7 +23,7 @@ import re
|
||||
|
||||
from django import forms
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.utils.translation import gettext_lazy as _, pgettext
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
from django_countries.fields import Country
|
||||
|
||||
from pretix.base.invoicing.transmission import (
|
||||
@@ -125,15 +125,15 @@ class PeppolIdValidator:
|
||||
|
||||
def __call__(self, value):
|
||||
if ":" not in value:
|
||||
raise ValidationError(_("A Peppol participant ID always starts with a prefix, followed by a colon (:)."))
|
||||
raise ValidationError(_("A PEPPOL participant ID always starts with a prefix, followed by a colon (:)."))
|
||||
|
||||
prefix, second = value.split(":", 1)
|
||||
if prefix not in self.regex_rules:
|
||||
raise ValidationError(_("The Peppol participant ID prefix %(number)s is not known to our system. Please "
|
||||
raise ValidationError(_("The PEPPOL participant ID prefix %(number)s is not known to our system. Please "
|
||||
"reach out to us if you are sure this ID is correct."), params={"number": prefix})
|
||||
|
||||
if not re.match(self.regex_rules[prefix], second):
|
||||
raise ValidationError(_("The Peppol participant ID does not match the validation rules for the prefix "
|
||||
raise ValidationError(_("The PEPPOL participant ID does not match the validation rules for the prefix "
|
||||
"%(number)s. Please reach out to us if you are sure this ID is correct."),
|
||||
params={"number": prefix})
|
||||
return value
|
||||
@@ -142,7 +142,7 @@ class PeppolIdValidator:
|
||||
@transmission_types.new()
|
||||
class PeppolTransmissionType(TransmissionType):
|
||||
identifier = "peppol"
|
||||
verbose_name = "Peppol"
|
||||
verbose_name = "PEPPOL"
|
||||
priority = 250
|
||||
enforce_transmission = True
|
||||
|
||||
@@ -153,7 +153,7 @@ class PeppolTransmissionType(TransmissionType):
|
||||
def invoice_address_form_fields(self) -> dict:
|
||||
return {
|
||||
"transmission_peppol_participant_id": forms.CharField(
|
||||
label=_("Peppol participant ID"),
|
||||
label=_("PEPPOL participant ID"),
|
||||
validators=[
|
||||
PeppolIdValidator(),
|
||||
]
|
||||
@@ -165,13 +165,3 @@ class PeppolTransmissionType(TransmissionType):
|
||||
"company", "street", "zipcode", "city", "country",
|
||||
}
|
||||
return base | {"transmission_peppol_participant_id"}
|
||||
|
||||
def pdf_watermark(self) -> str:
|
||||
return pgettext("peppol_invoice", "Visual copy")
|
||||
|
||||
def pdf_info_text(self) -> str:
|
||||
return pgettext(
|
||||
"peppol_invoice",
|
||||
"This PDF document is a visual copy of the invoice and does not constitute an invoice for VAT "
|
||||
"purposes. The original invoice is issued in XML format and transmitted through the Peppol network."
|
||||
)
|
||||
|
||||
@@ -104,18 +104,6 @@ class TransmissionType:
|
||||
def transmission_info_to_form_data(self, transmission_info: dict) -> dict:
|
||||
return transmission_info
|
||||
|
||||
def pdf_watermark(self) -> Optional[str]:
|
||||
"""
|
||||
Return a watermark that should be rendered across the PDF file.
|
||||
"""
|
||||
return None
|
||||
|
||||
def pdf_info_text(self) -> Optional[str]:
|
||||
"""
|
||||
Return an info text that should be rendered on the PDF file.
|
||||
"""
|
||||
return None
|
||||
|
||||
|
||||
class TransmissionProvider:
|
||||
"""
|
||||
|
||||
@@ -16,7 +16,8 @@ def set_invoice_period(apps, schema_editor):
|
||||
update_fields=["value"],
|
||||
unique_fields=["object", "key"],
|
||||
)
|
||||
cache.delete_many(flush_queue)
|
||||
for f in flush_queue:
|
||||
cache.delete(f)
|
||||
flush_queue.clear()
|
||||
insert_queue.clear()
|
||||
|
||||
@@ -48,6 +49,7 @@ def set_invoice_period(apps, schema_editor):
|
||||
value="auto_no_event",
|
||||
)
|
||||
)
|
||||
ev_seen.add(setting.object_id)
|
||||
|
||||
if len(insert_queue) > 1000:
|
||||
store()
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
# Generated by Django 4.2.17 on 2025-09-09 09:55
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
("pretixbase", "0289_invoiceline_period"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name="invoice",
|
||||
name="plugin_data",
|
||||
field=models.JSONField(default=dict),
|
||||
),
|
||||
]
|
||||
@@ -195,21 +195,20 @@ class GiftCardTransaction(models.Model):
|
||||
return response
|
||||
|
||||
if self.order_id:
|
||||
if not customer_facing:
|
||||
return format_html(
|
||||
'<a href="{}">{}</a> {}',
|
||||
reverse(
|
||||
"control:event.order",
|
||||
kwargs={
|
||||
"event": self.order.event.slug,
|
||||
"organizer": self.order.event.organizer.slug,
|
||||
"code": self.order.code,
|
||||
}
|
||||
),
|
||||
self.order.full_code,
|
||||
self.text or "",
|
||||
)
|
||||
elif not self.text:
|
||||
if not self.text:
|
||||
if not customer_facing:
|
||||
return format_html(
|
||||
'<a href="{}">{}</a>',
|
||||
reverse(
|
||||
"control:event.order",
|
||||
kwargs={
|
||||
"event": self.order.event.slug,
|
||||
"organizer": self.order.event.organizer.slug,
|
||||
"code": self.order.code,
|
||||
}
|
||||
),
|
||||
self.order.full_code
|
||||
)
|
||||
return self.order.full_code
|
||||
else:
|
||||
return self.text
|
||||
|
||||
@@ -43,7 +43,6 @@ from django.db.models.functions import Cast
|
||||
from django.utils import timezone
|
||||
from django.utils.crypto import get_random_string
|
||||
from django.utils.functional import cached_property
|
||||
from django.utils.timezone import now
|
||||
from django.utils.translation import gettext_lazy as _, pgettext
|
||||
from django_scopes import ScopedManager
|
||||
|
||||
@@ -202,7 +201,6 @@ class Invoice(models.Model):
|
||||
transmission_info = models.JSONField(null=True, blank=True)
|
||||
|
||||
file = models.FileField(null=True, blank=True, upload_to=invoice_filename, max_length=255)
|
||||
plugin_data = models.JSONField(default=dict)
|
||||
|
||||
objects = ScopedManager(organizer='event__organizer')
|
||||
|
||||
@@ -371,22 +369,6 @@ class Invoice(models.Model):
|
||||
from pretix.base.invoicing.transmission import transmission_types
|
||||
return transmission_types.get(identifier=self.transmission_type)[0]
|
||||
|
||||
def set_transmission_failed(self, provider, data):
|
||||
self.transmission_status = Invoice.TRANSMISSION_STATUS_FAILED
|
||||
self.transmission_date = now()
|
||||
if not self.transmission_provider and provider:
|
||||
self.transmission_provider = provider
|
||||
self.save(update_fields=["transmission_status", "transmission_date", "transmission_provider"])
|
||||
self.order.log_action(
|
||||
"pretix.event.order.invoice.sending_failed",
|
||||
data={
|
||||
"full_invoice_no": self.full_invoice_no,
|
||||
"transmission_provider": provider,
|
||||
"transmission_type": self.transmission_type,
|
||||
"data": data,
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
class InvoiceLine(models.Model):
|
||||
"""
|
||||
|
||||
@@ -1840,10 +1840,6 @@ class OrderPayment(models.Model):
|
||||
))
|
||||
return False
|
||||
|
||||
if locked_instance.state == OrderPayment.PAYMENT_STATE_CANCELED:
|
||||
# Never send mails when the payment was already canceled intentionally
|
||||
send_mail = False
|
||||
|
||||
if isinstance(info, str):
|
||||
locked_instance.info = info
|
||||
elif info:
|
||||
@@ -1859,10 +1855,6 @@ class OrderPayment(models.Model):
|
||||
'data': log_data,
|
||||
}, user=user, auth=auth)
|
||||
|
||||
if self.order.status in (Order.STATUS_PAID, Order.STATUS_CANCELED, Order.STATUS_EXPIRED):
|
||||
# No reason to send mail, as the payment is no longer really expected
|
||||
send_mail = False
|
||||
|
||||
if send_mail:
|
||||
with language(self.order.locale, self.order.event.settings.region):
|
||||
email_subject = self.order.event.settings.mail_subject_order_payment_failed
|
||||
@@ -1969,20 +1961,14 @@ class OrderPayment(models.Model):
|
||||
self.order.invoice_dirty
|
||||
)
|
||||
if gen_invoice:
|
||||
try:
|
||||
if invoices:
|
||||
last_i = self.order.invoices.filter(is_cancellation=False).last()
|
||||
if not last_i.canceled:
|
||||
generate_cancellation(last_i)
|
||||
invoice = generate_invoice(
|
||||
self.order,
|
||||
trigger_pdf=not send_mail or not self.order.event.settings.invoice_email_attachment
|
||||
)
|
||||
except Exception as e:
|
||||
logger.exception("Could not generate invoice.")
|
||||
self.order.log_action("pretix.event.order.invoice.failed", data={
|
||||
"exception": str(e)
|
||||
})
|
||||
if invoices:
|
||||
last_i = self.order.invoices.filter(is_cancellation=False).last()
|
||||
if not last_i.canceled:
|
||||
generate_cancellation(last_i)
|
||||
invoice = generate_invoice(
|
||||
self.order,
|
||||
trigger_pdf=not send_mail or not self.order.event.settings.invoice_email_attachment
|
||||
)
|
||||
|
||||
transmit_invoice_task = invoice_transmission_separately(invoice)
|
||||
transmit_invoice_mail = not transmit_invoice_task and self.order.event.settings.invoice_email_attachment and self.order.email
|
||||
|
||||
@@ -126,7 +126,7 @@ class Organizer(LoggedModel):
|
||||
self.settings.cookie_consent = True
|
||||
|
||||
plugins = [p for p in settings.PRETIX_PLUGINS_ORGANIZER_DEFAULT.split(",") if p]
|
||||
if plugins and not self.get_plugins():
|
||||
if plugins:
|
||||
self.set_active_plugins(plugins, allow_restricted=plugins)
|
||||
self.save()
|
||||
|
||||
|
||||
@@ -1627,7 +1627,6 @@ class GiftCardPayment(BasePaymentProvider):
|
||||
order=refund.order,
|
||||
refund=refund,
|
||||
acceptor=self.event.organizer,
|
||||
text=refund.comment,
|
||||
)
|
||||
refund.info_data = {
|
||||
'gift_card': gc.pk,
|
||||
|
||||
@@ -819,7 +819,7 @@ class Renderer:
|
||||
# and does not deal with our default value here properly
|
||||
content = op.secret
|
||||
else:
|
||||
content = self._get_text_content(op, order, o).strip()
|
||||
content = self._get_text_content(op, order, o)
|
||||
|
||||
if len(content) == 0:
|
||||
return
|
||||
|
||||
@@ -49,7 +49,7 @@ from pretix.base.signals import (
|
||||
periodic_task, register_data_exporters, register_multievent_data_exporters,
|
||||
)
|
||||
from pretix.celery_app import app
|
||||
from pretix.helpers import OF_SELF, repeatable_reads_transaction
|
||||
from pretix.helpers import OF_SELF
|
||||
from pretix.helpers.urls import build_absolute_uri
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
@@ -80,12 +80,7 @@ def export(self, event: Event, fileid: str, provider: str, form_data: Dict[str,
|
||||
continue
|
||||
ex = response(event, event.organizer, set_progress)
|
||||
if ex.identifier == provider:
|
||||
if ex.repeatable_read:
|
||||
with repeatable_reads_transaction():
|
||||
d = ex.render(form_data)
|
||||
else:
|
||||
d = ex.render(form_data)
|
||||
|
||||
d = ex.render(form_data)
|
||||
if d is None:
|
||||
raise ExportError(
|
||||
gettext('Your export did not contain any data.')
|
||||
@@ -156,11 +151,7 @@ def multiexport(self, organizer: Organizer, user: User, device: int, token: int,
|
||||
gettext('You do not have sufficient permission to perform this export.')
|
||||
)
|
||||
|
||||
if ex.repeatable_read:
|
||||
with repeatable_reads_transaction():
|
||||
d = ex.render(form_data)
|
||||
else:
|
||||
d = ex.render(form_data)
|
||||
d = ex.render(form_data)
|
||||
if d is None:
|
||||
raise ExportError(
|
||||
gettext('Your export did not contain any data.')
|
||||
@@ -218,11 +209,7 @@ def _run_scheduled_export(schedule, context: Union[Event, Organizer], exporter,
|
||||
try:
|
||||
if not exporter:
|
||||
raise ExportError("Export type not found.")
|
||||
if exporter.repeatable_read:
|
||||
with repeatable_reads_transaction():
|
||||
d = exporter.render(schedule.export_form_data)
|
||||
else:
|
||||
d = exporter.render(schedule.export_form_data)
|
||||
d = exporter.render(schedule.export_form_data)
|
||||
if d is None:
|
||||
raise ExportEmptyError(
|
||||
gettext('Your export did not contain any data.')
|
||||
|
||||
@@ -61,9 +61,7 @@ from pretix.base.models.tax import EU_CURRENCIES
|
||||
from pretix.base.services.tasks import (
|
||||
TransactionAwareProfiledEventTask, TransactionAwareTask,
|
||||
)
|
||||
from pretix.base.signals import (
|
||||
build_invoice_data, invoice_line_text, periodic_task,
|
||||
)
|
||||
from pretix.base.signals import invoice_line_text, periodic_task
|
||||
from pretix.celery_app import app
|
||||
from pretix.helpers.database import OF_SELF, rolledback_transaction
|
||||
from pretix.helpers.models import modelcopy
|
||||
@@ -364,7 +362,6 @@ def build_invoice(invoice: Invoice) -> Invoice:
|
||||
invoice.reverse_charge = reverse_charge
|
||||
invoice.save()
|
||||
|
||||
build_invoice_data.send(sender=invoice.event, invoice=invoice)
|
||||
return invoice
|
||||
|
||||
|
||||
@@ -382,14 +379,8 @@ def build_cancellation(invoice: Invoice):
|
||||
|
||||
def _service_period_for_position(invoice, position, invoice_dt):
|
||||
if invoice.event.settings.invoice_period in ("auto", "auto_no_event"):
|
||||
if position.valid_from and position.valid_until:
|
||||
period_start = position.valid_from
|
||||
period_end = position.valid_until
|
||||
elif position.valid_from:
|
||||
period_start = position.valid_from
|
||||
period_end = position.valid_from # weird, but we have nothing else to base this on
|
||||
elif position.valid_until:
|
||||
period_start = min(invoice.order.datetime, position.valid_until)
|
||||
if position.valid_from or position.valid_until:
|
||||
period_start = position.valid_from or now()
|
||||
period_end = position.valid_until
|
||||
elif memberships := list(position.granted_memberships.all()):
|
||||
period_start = min(m.date_start for m in memberships)
|
||||
@@ -671,7 +662,6 @@ def send_invoices_to_organizer(sender, **kwargs):
|
||||
event=i.event,
|
||||
invoices=[i],
|
||||
auto_email=True,
|
||||
plain_text_only=True,
|
||||
)
|
||||
i.sent_to_organizer = True
|
||||
else:
|
||||
@@ -749,7 +739,20 @@ def transmit_invoice(sender, invoice_id, allow_retransmission=True, **kwargs):
|
||||
break
|
||||
|
||||
if not provider:
|
||||
invoice.set_transmission_failed(provider=None, data={"reason": "no_provider"})
|
||||
invoice.transmission_status = Invoice.TRANSMISSION_STATUS_FAILED
|
||||
invoice.transmission_date = now()
|
||||
invoice.save(update_fields=["transmission_status", "transmission_date"])
|
||||
invoice.order.log_action(
|
||||
"pretix.event.order.invoice.sending_failed",
|
||||
data={
|
||||
"full_invoice_no": invoice.full_invoice_no,
|
||||
"transmission_provider": None,
|
||||
"transmission_type": invoice.transmission_type,
|
||||
"data": {
|
||||
"reason": "no_provider",
|
||||
},
|
||||
}
|
||||
)
|
||||
return
|
||||
|
||||
if invoice.order.testmode and not provider.testmode_supported:
|
||||
@@ -770,7 +773,18 @@ def transmit_invoice(sender, invoice_id, allow_retransmission=True, **kwargs):
|
||||
provider.transmit(invoice)
|
||||
except Exception as e:
|
||||
logger.exception(f"Transmission of invoice {invoice.pk} failed with exception.")
|
||||
invoice.set_transmission_failed(provider=provider.identifier, data={
|
||||
"reason": "exception",
|
||||
"exception": str(e),
|
||||
})
|
||||
invoice.transmission_status = Invoice.TRANSMISSION_STATUS_FAILED
|
||||
invoice.transmission_date = now()
|
||||
invoice.save(update_fields=["transmission_status", "transmission_date"])
|
||||
invoice.order.log_action(
|
||||
"pretix.event.order.invoice.sending_failed",
|
||||
data={
|
||||
"full_invoice_no": invoice.full_invoice_no,
|
||||
"transmission_provider": None,
|
||||
"transmission_type": invoice.transmission_type,
|
||||
"data": {
|
||||
"reason": "exception",
|
||||
"exception": str(e),
|
||||
},
|
||||
}
|
||||
)
|
||||
|
||||
@@ -495,7 +495,7 @@ def mail_send_task(self, *args, to: List[str], subject: str, body: str, html: st
|
||||
|
||||
email = email_filter.send_chained(event, 'message', message=email, order=order, user=user)
|
||||
|
||||
invoices_to_mark_transmitted = []
|
||||
invoices_sent = []
|
||||
if invoices:
|
||||
invoices = Invoice.objects.filter(pk__in=invoices)
|
||||
for inv in invoices:
|
||||
@@ -516,23 +516,7 @@ def mail_send_task(self, *args, to: List[str], subject: str, body: str, html: st
|
||||
inv.file.file.read(),
|
||||
'application/pdf'
|
||||
)
|
||||
|
||||
if inv.transmission_type == "email":
|
||||
# Mark invoice as sent when it was sent to the requested address *either* at the time of
|
||||
# invoice creation *or* as of right now.
|
||||
expected_recipients = [
|
||||
(inv.invoice_to_transmission_info or {}).get("transmission_email_address")
|
||||
or inv.order.email,
|
||||
]
|
||||
try:
|
||||
expected_recipients.append(
|
||||
(inv.order.invoice_address.transmission_info or {}).get("transmission_email_address")
|
||||
or inv.order.email
|
||||
)
|
||||
except InvoiceAddress.DoesNotExist:
|
||||
pass
|
||||
if any(t in expected_recipients for t in to):
|
||||
invoices_to_mark_transmitted.append(inv)
|
||||
invoices_sent.append(inv)
|
||||
except:
|
||||
logger.exception('Could not attach invoice to email')
|
||||
pass
|
||||
@@ -605,11 +589,6 @@ def mail_send_task(self, *args, to: List[str], subject: str, body: str, html: st
|
||||
'invoices': [],
|
||||
}
|
||||
)
|
||||
for i in invoices_to_mark_transmitted:
|
||||
i.set_transmission_failed(provider="email_pdf", data={
|
||||
"reason": "exception",
|
||||
"exception": "SMTP code {}, max retries exceeded".format(e.smtp_code),
|
||||
})
|
||||
raise e
|
||||
|
||||
logger.exception('Error sending email')
|
||||
@@ -623,11 +602,6 @@ def mail_send_task(self, *args, to: List[str], subject: str, body: str, html: st
|
||||
'invoices': [],
|
||||
}
|
||||
)
|
||||
for i in invoices_to_mark_transmitted:
|
||||
i.set_transmission_failed(provider="email_pdf", data={
|
||||
"reason": "exception",
|
||||
"exception": "SMTP code {}".format(e.smtp_code),
|
||||
})
|
||||
|
||||
raise SendMailException('Failed to send an email to {}.'.format(to))
|
||||
except smtplib.SMTPRecipientsRefused as e:
|
||||
@@ -659,11 +633,6 @@ def mail_send_task(self, *args, to: List[str], subject: str, body: str, html: st
|
||||
'invoices': [],
|
||||
}
|
||||
)
|
||||
for i in invoices_to_mark_transmitted:
|
||||
i.set_transmission_failed(provider="email_pdf", data={
|
||||
"reason": "exception",
|
||||
"exception": "SMTP error",
|
||||
})
|
||||
|
||||
raise SendMailException('Failed to send an email to {}.'.format(to))
|
||||
except Exception as e:
|
||||
@@ -681,11 +650,6 @@ def mail_send_task(self, *args, to: List[str], subject: str, body: str, html: st
|
||||
'invoices': [],
|
||||
}
|
||||
)
|
||||
for i in invoices_to_mark_transmitted:
|
||||
i.set_transmission_failed(provider="email_pdf", data={
|
||||
"reason": "exception",
|
||||
"exception": "Internal error",
|
||||
})
|
||||
raise e
|
||||
if log_target:
|
||||
log_target.log_action(
|
||||
@@ -697,52 +661,59 @@ def mail_send_task(self, *args, to: List[str], subject: str, body: str, html: st
|
||||
'invoices': [],
|
||||
}
|
||||
)
|
||||
for i in invoices_to_mark_transmitted:
|
||||
i.set_transmission_failed(provider="email_pdf", data={
|
||||
"reason": "exception",
|
||||
"exception": "Internal error",
|
||||
})
|
||||
logger.exception('Error sending email')
|
||||
raise SendMailException('Failed to send an email to {}.'.format(to))
|
||||
else:
|
||||
for i in invoices_to_mark_transmitted:
|
||||
if i.transmission_status != Invoice.TRANSMISSION_STATUS_COMPLETED:
|
||||
i.transmission_date = now()
|
||||
i.transmission_status = Invoice.TRANSMISSION_STATUS_COMPLETED
|
||||
i.transmission_provider = "email_pdf"
|
||||
i.transmission_info = {
|
||||
"sent": [
|
||||
for i in invoices_sent:
|
||||
if i.transmission_type == "email":
|
||||
# Mark invoice as sent when it was sent to the requested address *either* at the time of invoice
|
||||
# creation *or* as of right now.
|
||||
expected_recipients = [
|
||||
(i.invoice_to_transmission_info or {}).get("transmission_email_address") or i.order.email,
|
||||
]
|
||||
try:
|
||||
expected_recipients.append((i.order.invoice_address.transmission_info or {}).get("transmission_email_address") or i.order.email)
|
||||
except InvoiceAddress.DoesNotExist:
|
||||
pass
|
||||
if not any(t in expected_recipients for t in to):
|
||||
continue
|
||||
if i.transmission_status != Invoice.TRANSMISSION_STATUS_COMPLETED:
|
||||
i.transmission_date = now()
|
||||
i.transmission_status = Invoice.TRANSMISSION_STATUS_COMPLETED
|
||||
i.transmission_provider = "email_pdf"
|
||||
i.transmission_info = {
|
||||
"sent": [
|
||||
{
|
||||
"recipients": to,
|
||||
"datetime": now().isoformat(),
|
||||
}
|
||||
]
|
||||
}
|
||||
i.save(update_fields=[
|
||||
"transmission_date", "transmission_provider", "transmission_status",
|
||||
"transmission_info"
|
||||
])
|
||||
elif i.transmission_provider == "email_pdf":
|
||||
i.transmission_info["sent"].append(
|
||||
{
|
||||
"recipients": to,
|
||||
"datetime": now().isoformat(),
|
||||
}
|
||||
]
|
||||
}
|
||||
i.save(update_fields=[
|
||||
"transmission_date", "transmission_provider", "transmission_status",
|
||||
"transmission_info"
|
||||
])
|
||||
elif i.transmission_provider == "email_pdf":
|
||||
i.transmission_info["sent"].append(
|
||||
{
|
||||
"recipients": to,
|
||||
"datetime": now().isoformat(),
|
||||
)
|
||||
i.save(update_fields=[
|
||||
"transmission_info"
|
||||
])
|
||||
i.order.log_action(
|
||||
"pretix.event.order.invoice.sent",
|
||||
data={
|
||||
"full_invoice_no": i.full_invoice_no,
|
||||
"transmission_provider": "email_pdf",
|
||||
"transmission_type": "email",
|
||||
"data": {
|
||||
"recipients": [to],
|
||||
},
|
||||
}
|
||||
)
|
||||
i.save(update_fields=[
|
||||
"transmission_info"
|
||||
])
|
||||
i.order.log_action(
|
||||
"pretix.event.order.invoice.sent",
|
||||
data={
|
||||
"full_invoice_no": i.full_invoice_no,
|
||||
"transmission_provider": "email_pdf",
|
||||
"transmission_type": "email",
|
||||
"data": {
|
||||
"recipients": [to],
|
||||
},
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
def mail_send(*args, **kwargs):
|
||||
|
||||
@@ -19,7 +19,6 @@
|
||||
# You should have received a copy of the GNU Affero General Public License along with this program. If not, see
|
||||
# <https://www.gnu.org/licenses/>.
|
||||
#
|
||||
import logging
|
||||
from decimal import Decimal
|
||||
from typing import List
|
||||
|
||||
@@ -34,8 +33,8 @@ from pretix.base.modelimport import DataImportError, ImportColumn, parse_csv
|
||||
from pretix.base.modelimport_orders import get_order_import_columns
|
||||
from pretix.base.modelimport_vouchers import get_voucher_import_columns
|
||||
from pretix.base.models import (
|
||||
CachedFile, Event, InvoiceAddress, LogEntry, Order, OrderPayment,
|
||||
OrderPosition, User, Voucher,
|
||||
CachedFile, Event, InvoiceAddress, Order, OrderPayment, OrderPosition,
|
||||
User, Voucher,
|
||||
)
|
||||
from pretix.base.models.orders import Transaction
|
||||
from pretix.base.services.invoices import generate_invoice, invoice_qualified
|
||||
@@ -44,8 +43,6 @@ from pretix.base.services.tasks import ProfiledEventTask
|
||||
from pretix.base.signals import order_paid, order_placed
|
||||
from pretix.celery_app import app
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
def _validate(cf: CachedFile, charset: str, cols: List[ImportColumn], settings: dict):
|
||||
try:
|
||||
@@ -178,7 +175,6 @@ def import_orders(event: Event, fileid: str, settings: dict, locale: str, user,
|
||||
raise DataImportError(_('The seat you selected has already been taken. Please select a different seat.'))
|
||||
|
||||
save_transactions = []
|
||||
save_logentries = []
|
||||
for o in orders:
|
||||
o.total = sum([c.price for c in o._positions]) # currently no support for fees
|
||||
if o.total == Decimal('0.00'):
|
||||
@@ -215,19 +211,17 @@ def import_orders(event: Event, fileid: str, settings: dict, locale: str, user,
|
||||
o._address.save()
|
||||
for c in cols:
|
||||
c.save(o)
|
||||
save_logentries.append(o.log_action(
|
||||
o.log_action(
|
||||
'pretix.event.order.placed',
|
||||
user=user,
|
||||
data={'source': 'import'},
|
||||
save=False,
|
||||
))
|
||||
data={'source': 'import'}
|
||||
)
|
||||
save_transactions += o.create_transactions(is_new=True, fees=[], positions=o._positions, save=False)
|
||||
Transaction.objects.bulk_create(save_transactions)
|
||||
LogEntry.bulk_create_and_postprocess(save_logentries)
|
||||
|
||||
for o in orders:
|
||||
with language(o.locale, event.settings.region):
|
||||
order_placed.send(event, order=o, bulk=True)
|
||||
order_placed.send(event, order=o)
|
||||
if o.status == Order.STATUS_PAID:
|
||||
order_paid.send(event, order=o)
|
||||
|
||||
@@ -236,13 +230,7 @@ def import_orders(event: Event, fileid: str, settings: dict, locale: str, user,
|
||||
(event.settings.get('invoice_generate') == 'paid' and o.status == Order.STATUS_PAID)
|
||||
) and not o.invoices.last()
|
||||
if gen_invoice:
|
||||
try:
|
||||
generate_invoice(o, trigger_pdf=True)
|
||||
except Exception as e:
|
||||
logger.exception("Could not generate invoice.")
|
||||
o.log_action("pretix.event.order.invoice.failed", data={
|
||||
"exception": str(e)
|
||||
})
|
||||
generate_invoice(o, trigger_pdf=True)
|
||||
except DataImportError:
|
||||
raise ValidationError(_('We were not able to process your request completely as the server was too busy. '
|
||||
'Please try again.'))
|
||||
@@ -298,16 +286,13 @@ def import_vouchers(event: Event, fileid: str, settings: dict, locale: str, user
|
||||
raise DataImportError(
|
||||
_('The seat you selected has already been taken. Please select a different seat.'))
|
||||
|
||||
save_logentries = []
|
||||
for v in vouchers:
|
||||
v.save()
|
||||
save_logentries.append(v.log_action(
|
||||
v.log_action(
|
||||
'pretix.voucher.added',
|
||||
user=user,
|
||||
data={'source': 'import'},
|
||||
save=False,
|
||||
))
|
||||
data={'source': 'import'}
|
||||
)
|
||||
for c in cols:
|
||||
c.save(v)
|
||||
LogEntry.bulk_create_and_postprocess(save_logentries)
|
||||
cf.delete()
|
||||
|
||||
@@ -41,11 +41,7 @@ def notify(logentry_ids: list):
|
||||
if not isinstance(logentry_ids, list):
|
||||
logentry_ids = [logentry_ids]
|
||||
|
||||
qs = LogEntry.all.select_related(
|
||||
'event', 'event__organizer'
|
||||
).order_by(
|
||||
'action_type', 'event_id',
|
||||
).filter(id__in=logentry_ids)
|
||||
qs = LogEntry.all.select_related('event', 'event__organizer').filter(id__in=logentry_ids)
|
||||
|
||||
_event, _at, notify_specific, notify_global = None, None, None, None
|
||||
for logentry in qs:
|
||||
|
||||
@@ -264,13 +264,7 @@ def reactivate_order(order: Order, force: bool=False, user: User=None, auth=None
|
||||
|
||||
num_invoices = order.invoices.filter(is_cancellation=False).count()
|
||||
if num_invoices > 0 and order.invoices.filter(is_cancellation=True).count() >= num_invoices and invoice_qualified(order):
|
||||
try:
|
||||
generate_invoice(order)
|
||||
except Exception as e:
|
||||
logger.exception("Could not generate invoice.")
|
||||
order.log_action("pretix.event.order.invoice.failed", data={
|
||||
"exception": str(e)
|
||||
})
|
||||
generate_invoice(order)
|
||||
|
||||
|
||||
def extend_order(order: Order, new_date: datetime, force: bool=False, valid_if_pending: bool=None, user: User=None, auth=None):
|
||||
@@ -318,13 +312,7 @@ def extend_order(order: Order, new_date: datetime, force: bool=False, valid_if_p
|
||||
if was_expired:
|
||||
num_invoices = order.invoices.filter(is_cancellation=False).count()
|
||||
if num_invoices > 0 and order.invoices.filter(is_cancellation=True).count() >= num_invoices and invoice_qualified(order):
|
||||
try:
|
||||
generate_invoice(order)
|
||||
except Exception as e:
|
||||
logger.exception("Could not generate invoice.")
|
||||
order.log_action("pretix.event.order.invoice.failed", data={
|
||||
"exception": str(e)
|
||||
})
|
||||
generate_invoice(order)
|
||||
order.create_transactions()
|
||||
|
||||
with transaction.atomic():
|
||||
@@ -409,19 +397,13 @@ def approve_order(order, user=None, send_mail: bool=True, auth=None, force=False
|
||||
|
||||
if order.event.settings.get('invoice_generate') == 'True' and invoice_qualified(order):
|
||||
if not invoice:
|
||||
try:
|
||||
invoice = generate_invoice(
|
||||
order,
|
||||
# send_mail will trigger PDF generation later
|
||||
trigger_pdf=not transmit_invoice_mail
|
||||
)
|
||||
if transmit_invoice_task:
|
||||
transmit_invoice.apply_async(args=(order.event_id, invoice.pk, False))
|
||||
except Exception as e:
|
||||
logger.exception("Could not generate invoice.")
|
||||
order.log_action("pretix.event.order.invoice.failed", data={
|
||||
"exception": str(e)
|
||||
})
|
||||
invoice = generate_invoice(
|
||||
order,
|
||||
# send_mail will trigger PDF generation later
|
||||
trigger_pdf=not transmit_invoice_mail
|
||||
)
|
||||
if transmit_invoice_task:
|
||||
transmit_invoice.apply_async(args=(order.event_id, invoice.pk, False))
|
||||
|
||||
if send_mail:
|
||||
with language(order.locale, order.event.settings.region):
|
||||
@@ -626,13 +608,7 @@ def _cancel_order(order, user=None, send_mail: bool=True, api_token=None, device
|
||||
order.save(update_fields=['status', 'cancellation_date', 'total'])
|
||||
|
||||
if cancel_invoice and i:
|
||||
try:
|
||||
invoices.append(generate_invoice(order))
|
||||
except Exception as e:
|
||||
logger.exception("Could not generate invoice.")
|
||||
order.log_action("pretix.event.order.invoice.failed", data={
|
||||
"exception": str(e)
|
||||
})
|
||||
invoices.append(generate_invoice(order))
|
||||
else:
|
||||
order.status = Order.STATUS_CANCELED
|
||||
order.cancellation_date = now()
|
||||
@@ -1115,7 +1091,7 @@ def _create_order(event: Event, *, email: str, positions: List[CartPosition], no
|
||||
for msg in meta_info.get('confirm_messages', []):
|
||||
order.log_action('pretix.event.order.consent', data={'msg': msg})
|
||||
|
||||
order_placed.send(event, order=order, bulk=False)
|
||||
order_placed.send(event, order=order)
|
||||
return order, payments
|
||||
|
||||
|
||||
@@ -1330,19 +1306,13 @@ def _perform_order(event: Event, payment_requests: List[dict], position_ids: Lis
|
||||
)
|
||||
)
|
||||
if invoice_required:
|
||||
try:
|
||||
invoice = generate_invoice(
|
||||
order,
|
||||
# send_mail will trigger PDF generation later
|
||||
trigger_pdf=not transmit_invoice_mail
|
||||
)
|
||||
if transmit_invoice_task:
|
||||
transmit_invoice.apply_async(args=(event.pk, invoice.pk, False))
|
||||
except Exception as e:
|
||||
logger.exception("Could not generate invoice.")
|
||||
order.log_action("pretix.event.order.invoice.failed", data={
|
||||
"exception": str(e)
|
||||
})
|
||||
invoice = generate_invoice(
|
||||
order,
|
||||
# send_mail will trigger PDF generation later
|
||||
trigger_pdf=not transmit_invoice_mail
|
||||
)
|
||||
if transmit_invoice_task:
|
||||
transmit_invoice.apply_async(args=(event.pk, invoice.pk, False))
|
||||
|
||||
if order.email:
|
||||
if order.require_approval:
|
||||
@@ -2731,13 +2701,7 @@ class OrderChangeManager:
|
||||
)
|
||||
|
||||
if split_order.total != Decimal('0.00') and self.order.invoices.filter(is_cancellation=False).last():
|
||||
try:
|
||||
generate_invoice(split_order)
|
||||
except Exception as e:
|
||||
logger.exception("Could not generate invoice.")
|
||||
split_order.log_action("pretix.event.order.invoice.failed", data={
|
||||
"exception": str(e)
|
||||
})
|
||||
generate_invoice(split_order)
|
||||
|
||||
order_split.send(sender=self.order.event, original=self.order, split_order=split_order)
|
||||
return split_order
|
||||
@@ -2848,32 +2812,20 @@ class OrderChangeManager:
|
||||
|
||||
if order_now_qualified:
|
||||
if invoice_should_be_generated_now:
|
||||
try:
|
||||
if i and not i.canceled:
|
||||
self._invoices.append(generate_cancellation(i))
|
||||
self._invoices.append(generate_invoice(self.order))
|
||||
except Exception as e:
|
||||
logger.exception("Could not generate invoice.")
|
||||
self.order.log_action("pretix.event.order.invoice.failed", data={
|
||||
"exception": str(e)
|
||||
})
|
||||
if i and not i.canceled:
|
||||
self._invoices.append(generate_cancellation(i))
|
||||
self._invoices.append(generate_invoice(self.order))
|
||||
elif invoice_should_be_generated_later:
|
||||
self.order.invoice_dirty = True
|
||||
self.order.save(update_fields=["invoice_dirty"])
|
||||
else:
|
||||
try:
|
||||
if i and not i.canceled:
|
||||
self._invoices.append(generate_cancellation(i))
|
||||
except Exception as e:
|
||||
logger.exception("Could not generate invoice.")
|
||||
self.order.log_action("pretix.event.order.invoice.failed", data={
|
||||
"exception": str(e)
|
||||
})
|
||||
if i and not i.canceled:
|
||||
self._invoices.append(generate_cancellation(i))
|
||||
|
||||
def _check_complete_cancel(self):
|
||||
current = self.order.positions.count()
|
||||
cancels = sum([
|
||||
1 + o.position.addons.filter(canceled=False).count() for o in self._operations if isinstance(o, self.CancelOperation)
|
||||
1 + o.position.addons.count() for o in self._operations if isinstance(o, self.CancelOperation)
|
||||
]) + len([
|
||||
o for o in self._operations if isinstance(o, self.SplitOperation)
|
||||
])
|
||||
@@ -3294,14 +3246,8 @@ def change_payment_provider(order: Order, payment_provider, amount=None, new_pay
|
||||
has_active_invoice = i and not i.canceled
|
||||
|
||||
if has_active_invoice and order.total != oldtotal:
|
||||
try:
|
||||
generate_cancellation(i)
|
||||
generate_invoice(order)
|
||||
except Exception as e:
|
||||
logger.exception("Could not generate invoice.")
|
||||
order.log_action("pretix.event.order.invoice.failed", data={
|
||||
"exception": str(e)
|
||||
})
|
||||
generate_cancellation(i)
|
||||
generate_invoice(order)
|
||||
new_invoice_created = True
|
||||
|
||||
elif (not has_active_invoice or order.invoice_dirty) and invoice_qualified(order):
|
||||
@@ -3309,19 +3255,13 @@ def change_payment_provider(order: Order, payment_provider, amount=None, new_pay
|
||||
order.event.settings.get('invoice_generate') == 'paid' and
|
||||
new_payment.payment_provider.requires_invoice_immediately
|
||||
):
|
||||
try:
|
||||
if has_active_invoice:
|
||||
generate_cancellation(i)
|
||||
i = generate_invoice(order)
|
||||
new_invoice_created = True
|
||||
order.log_action('pretix.event.order.invoice.generated', data={
|
||||
'invoice': i.pk
|
||||
})
|
||||
except Exception as e:
|
||||
logger.exception("Could not generate invoice.")
|
||||
order.log_action("pretix.event.order.invoice.failed", data={
|
||||
"exception": str(e)
|
||||
})
|
||||
if has_active_invoice:
|
||||
generate_cancellation(i)
|
||||
i = generate_invoice(order)
|
||||
new_invoice_created = True
|
||||
order.log_action('pretix.event.order.invoice.generated', data={
|
||||
'invoice': i.pk
|
||||
})
|
||||
|
||||
order.create_transactions()
|
||||
return old_fee, new_fee, fee, new_payment, new_invoice_created
|
||||
|
||||
@@ -26,7 +26,7 @@ from itertools import zip_longest
|
||||
|
||||
import django_redis
|
||||
from django.conf import settings
|
||||
from django.db import connection, models
|
||||
from django.db import models
|
||||
from django.db.models import (
|
||||
Case, Count, F, Func, Max, OuterRef, Q, Subquery, Sum, Value, When,
|
||||
prefetch_related_objects,
|
||||
@@ -64,8 +64,7 @@ class QuotaAvailability:
|
||||
* count_cart (dict mapping quotas to ints)
|
||||
"""
|
||||
|
||||
def __init__(self, count_waitinglist=True, ignore_closed=False, full_results=False, early_out=True,
|
||||
allow_repeatable_read=False):
|
||||
def __init__(self, count_waitinglist=True, ignore_closed=False, full_results=False, early_out=True):
|
||||
"""
|
||||
Initialize a new quota availability calculator
|
||||
|
||||
@@ -87,8 +86,6 @@ class QuotaAvailability:
|
||||
keep the database-level quota cache up to date so backend overviews render quickly. If you
|
||||
do not care about keeping the cache up to date, you can set this to ``False`` for further
|
||||
performance improvements.
|
||||
|
||||
:param allow_repeatable_read: Allow to run this even in REPEATABLE READ mode, generally not advised.
|
||||
"""
|
||||
self._queue = []
|
||||
self._count_waitinglist = count_waitinglist
|
||||
@@ -98,7 +95,6 @@ class QuotaAvailability:
|
||||
self._var_to_quotas = defaultdict(set)
|
||||
self._early_out = early_out
|
||||
self._quota_objects = {}
|
||||
self._allow_repeatable_read = allow_repeatable_read
|
||||
self.results = {}
|
||||
self.count_paid_orders = defaultdict(int)
|
||||
self.count_pending_orders = defaultdict(int)
|
||||
@@ -123,10 +119,6 @@ class QuotaAvailability:
|
||||
Compute the queued quotas. If ``allow_cache`` is set, results may also be taken from a cache that might
|
||||
be a few minutes outdated. In this case, you may not rely on the results in the ``count_*`` properties.
|
||||
"""
|
||||
if not self._allow_repeatable_read and getattr(connection, "tx_in_repeatable_read", False):
|
||||
raise ValueError("You cannot compute quotas in REPEATABLE READ mode unless you explicitly opted in to "
|
||||
"do so.")
|
||||
|
||||
now_dt = now_dt or now()
|
||||
quota_ids_set = {q.id for q in self._queue}
|
||||
if not quota_ids_set:
|
||||
|
||||
@@ -69,6 +69,9 @@ def generate_order(order: int, provider: str):
|
||||
prov = response(order.event)
|
||||
if prov.identifier == provider:
|
||||
filename, ttype, data = prov.generate_order(order)
|
||||
if ttype == 'text/uri-list':
|
||||
continue
|
||||
|
||||
path, ext = os.path.splitext(filename)
|
||||
for ct in CachedCombinedTicket.objects.filter(order=order, provider=provider):
|
||||
ct.delete()
|
||||
|
||||
@@ -1105,7 +1105,7 @@ DEFAULTS = {
|
||||
'serializer_class': serializers.ChoiceField,
|
||||
'serializer_kwargs': dict(
|
||||
choices=(
|
||||
('auto', _('Automatic based on ticket-specific validity, membership validity, event series date, or event date')),
|
||||
('auto', _('Automatic based on ticket-specific validity, membership validity, event series date, or event date)')),
|
||||
('auto_no_event', _('Automatic, but prefer invoice date over event date')),
|
||||
('event_date', _('Event date')),
|
||||
('order_date', _('Order date')),
|
||||
@@ -1116,7 +1116,7 @@ DEFAULTS = {
|
||||
label=_("Date of service"),
|
||||
widget=forms.RadioSelect,
|
||||
choices=(
|
||||
('auto', _('Automatic based on ticket-specific validity, membership validity, event series date, or event date')),
|
||||
('auto', _('Automatic based on ticket-specific validity, membership validity, event series date, or event date)')),
|
||||
('auto_no_event', _('Automatic, but prefer invoice date over event date')),
|
||||
('event_date', _('Event date')),
|
||||
('order_date', _('Order date')),
|
||||
|
||||
@@ -596,18 +596,6 @@ multiple events. Receivers should return a subclass of pretix.base.exporter.Base
|
||||
The ``sender`` keyword argument will contain an organizer.
|
||||
"""
|
||||
|
||||
build_invoice_data = EventPluginSignal()
|
||||
"""
|
||||
Arguments: ``invoice``
|
||||
|
||||
This signal is sent out every time an invoice is built, after the invoice model was created
|
||||
and filled and before the PDF generation task is started. You can use this to make changes
|
||||
to the invoice, but we recommend to mostly use it to add content to ``Invoice.plugin_data``.
|
||||
You are responsible for saving any changes to the database.
|
||||
|
||||
As with all event-plugin signals, the ``sender`` keyword argument will contain the event.
|
||||
"""
|
||||
|
||||
validate_order = EventPluginSignal()
|
||||
"""
|
||||
Arguments: ``payments``, ``positions``, ``email``, ``locale``, ``invoice_address``,
|
||||
@@ -665,13 +653,12 @@ As with all event-plugin signals, the ``sender`` keyword argument will contain t
|
||||
|
||||
order_placed = EventPluginSignal()
|
||||
"""
|
||||
Arguments: ``order``, ``bulk``
|
||||
Arguments: ``order``
|
||||
|
||||
This signal is sent out every time an order is placed. The order object is given
|
||||
as the first argument. The ``bulk`` argument specifies whether the order was placed
|
||||
as part of a bulk action, e.g. an import from a file.
|
||||
This signal is *not* sent out if an order is created through splitting an existing order,
|
||||
so you can not expect to see all orders by listening to this signal.
|
||||
as the first argument. This signal is *not* sent out if an order is created through
|
||||
splitting an existing order, so you can not expect to see all orders by listening
|
||||
to this signal.
|
||||
|
||||
As with all event-plugin signals, the ``sender`` keyword argument will contain the event.
|
||||
"""
|
||||
|
||||
@@ -21,8 +21,6 @@
|
||||
#
|
||||
from django import forms
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.utils.functional import lazy
|
||||
from django.utils.html import format_html
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
from pretix.base.modelimport_orders import get_order_import_columns
|
||||
@@ -73,9 +71,6 @@ class ProcessForm(forms.Form):
|
||||
raise NotImplementedError() # noqa
|
||||
|
||||
|
||||
format_html_lazy = lazy(format_html, str)
|
||||
|
||||
|
||||
class OrdersProcessForm(ProcessForm):
|
||||
orders = forms.ChoiceField(
|
||||
label=_('Import mode'),
|
||||
@@ -96,11 +91,7 @@ class OrdersProcessForm(ProcessForm):
|
||||
)
|
||||
testmode = forms.BooleanField(
|
||||
label=_('Create orders as test mode orders'),
|
||||
required=False,
|
||||
help_text=format_html_lazy(
|
||||
'<div class="alert alert-warning" data-display-dependency="#id_testmode" data-inverse>{}</div>',
|
||||
_('Orders not created in test mode cannot be deleted again after import.')
|
||||
)
|
||||
required=False
|
||||
)
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
@@ -109,8 +100,6 @@ class OrdersProcessForm(ProcessForm):
|
||||
initital['testmode'] = self.event.testmode
|
||||
kwargs['initial'] = initital
|
||||
super().__init__(*args, **kwargs)
|
||||
if not self.event.testmode:
|
||||
self.fields["testmode"].help_text = ""
|
||||
|
||||
def get_columns(self):
|
||||
return get_order_import_columns(self.event)
|
||||
|
||||
@@ -67,8 +67,7 @@ class RRuleForm(forms.Form):
|
||||
)
|
||||
count = forms.IntegerField(
|
||||
label=_('Number of repetitions'),
|
||||
initial=10,
|
||||
min_value=1,
|
||||
initial=10
|
||||
)
|
||||
until = forms.DateField(
|
||||
widget=forms.DateInput(
|
||||
|
||||
@@ -236,7 +236,7 @@ class VoucherForm(I18nModelForm):
|
||||
try:
|
||||
Voucher.clean_max_usages(data, self.instance.redeemed)
|
||||
except ValidationError as e:
|
||||
raise ValidationError({"max_usages": e})
|
||||
raise ValidationError({"max_usages": e.message})
|
||||
check_quota = Voucher.clean_quota_needs_checking(
|
||||
data, self.initial_instance_data,
|
||||
item_changed=data.get('itemvar') != self.initial.get('itemvar'),
|
||||
|
||||
@@ -455,7 +455,7 @@ class OrderDataSyncSuccessLogEntryType(OrderDataSyncLogEntryType):
|
||||
links.append(", ".join(
|
||||
prov.get_external_link_html(logentry.event, obj['external_link_href'], obj['external_link_display_name'])
|
||||
for obj in objs
|
||||
if obj and obj.get('external_link_href') and obj.get('external_link_display_name')
|
||||
if obj and 'external_link_href' in obj and 'external_link_display_name' in obj
|
||||
))
|
||||
|
||||
return mark_safe(escape(super().display(logentry, data)) + "".join("<p>" + link + "</p>" for link in links))
|
||||
@@ -522,7 +522,6 @@ def pretixcontrol_orderposition_blocked_display(sender: Event, orderposition, bl
|
||||
'pretix.event.order.customer.changed': _('The customer account has been changed.'),
|
||||
'pretix.event.order.locale.changed': _('The order locale has been changed.'),
|
||||
'pretix.event.order.invoice.generated': _('The invoice has been generated.'),
|
||||
'pretix.event.order.invoice.failed': _('The invoice could not be generated.'),
|
||||
'pretix.event.order.invoice.regenerated': _('The invoice has been regenerated.'),
|
||||
'pretix.event.order.invoice.reissued': _('The invoice has been reissued.'),
|
||||
'pretix.event.order.invoice.sent': _('The invoice {full_invoice_no} has been sent.'),
|
||||
@@ -582,7 +581,7 @@ class CoreOrderLogEntryType(OrderLogEntryType):
|
||||
'The voucher has been set to expire because the recipient removed themselves from the waiting list.'),
|
||||
'pretix.voucher.changed': _('The voucher has been changed.'),
|
||||
'pretix.voucher.deleted': _('The voucher has been deleted.'),
|
||||
'pretix.voucher.added.waitinglist': _('The voucher has been assigned to {email} through the waiting list.'),
|
||||
'pretix.voucher.added.waitinglist': _('The voucher has been sent to {email} through the waiting list.'),
|
||||
})
|
||||
class CoreVoucherLogEntryType(VoucherLogEntryType):
|
||||
pass
|
||||
|
||||
@@ -310,13 +310,9 @@ an instance of a form class that you bind yourself when appropriate. Your form w
|
||||
as part of the standard validation and rendering cycle and rendered using default bootstrap
|
||||
styles. It is advisable to set a prefix for your form to avoid clashes with other plugins.
|
||||
|
||||
Your forms may also have special properties:
|
||||
|
||||
- ``template`` with a template that will be included to render the form. Your template will be passed a ``form``
|
||||
variable with your form.
|
||||
- ``title``, which will be used as a headline.
|
||||
- ``ìs_layouts = True``, if your form should be grouped with the ticket layout settings (mutually exclusive with setting ``title``).
|
||||
- ``group_with_formset = True``, if your form should be grouped with a formset of the same ``title``
|
||||
Your forms may also have two special properties: ``template`` with a template that will be
|
||||
included to render the form, and ``title``, which will be used as a headline. Your template
|
||||
will be passed a ``form`` variable with your form.
|
||||
|
||||
As with all event plugin signals, the ``sender`` keyword argument will contain the event.
|
||||
"""
|
||||
|
||||
@@ -177,18 +177,6 @@
|
||||
{% for v in formsets.values %}
|
||||
<fieldset>
|
||||
<legend>{{ v.title }}</legend>
|
||||
|
||||
{% for f in plugin_forms %}
|
||||
{% if f.group_with_formset and f.title == v.title %}
|
||||
{% if f.template and not "template" in f.fields %}
|
||||
{% include f.template with form=f %}
|
||||
{% else %}
|
||||
{% bootstrap_form f layout="control" %}
|
||||
{% endif %}
|
||||
<hr />
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
|
||||
{% include v.template with formset=v %}
|
||||
</fieldset>
|
||||
{% endfor %}
|
||||
@@ -288,7 +276,7 @@
|
||||
{% endfor %}
|
||||
</fieldset>
|
||||
{% for f in plugin_forms %}
|
||||
{% if not f.is_layouts and not f.group_with_formset and f.title %}
|
||||
{% if not f.is_layouts and f.title %}
|
||||
<fieldset>
|
||||
<legend>{{ f.title }}</legend>
|
||||
{% if f.template and not "template" in f.fields %}
|
||||
|
||||
@@ -238,7 +238,7 @@
|
||||
<div class="row control-group pdf-info">
|
||||
<div class="col-sm-12">
|
||||
<label for="pdf-info-name">{% trans "Layout name" %}</label><br>
|
||||
<input type="text" id="pdf-info-name" class="input-block-level form-control" name="name" value="{{ name }}" maxlength="190">
|
||||
<input type="text" id="pdf-info-name" class="input-block-level form-control" name="name" value="{{ name }}">
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
@@ -78,8 +78,8 @@ class ControlSyncJob(OrderView):
|
||||
prov, meta = datasync_providers.get(active_in=self.request.event, identifier=provider)
|
||||
|
||||
if self.request.POST.get("queue_sync") == "true":
|
||||
prov.enqueue_order(self.order, 'user', immediate=True)
|
||||
messages.success(self.request, _('The sync job has been set to run as soon as possible.'))
|
||||
prov.enqueue_order(self.order, 'user')
|
||||
messages.success(self.request, _('The sync job has been enqueued and will run in the next minutes.'))
|
||||
elif self.request.POST.get("cancel_job"):
|
||||
with transaction.atomic():
|
||||
try:
|
||||
|
||||
@@ -711,15 +711,11 @@ class OrderDownload(AsyncAction, OrderView):
|
||||
)
|
||||
return resp
|
||||
elif isinstance(value, CachedCombinedTicket):
|
||||
if value.type == 'text/uri-list':
|
||||
resp = HttpResponseRedirect(value.file.file.read())
|
||||
return resp
|
||||
else:
|
||||
resp = FileResponse(value.file.file, content_type=value.type)
|
||||
resp['Content-Disposition'] = 'attachment; filename="{}-{}-{}{}"'.format(
|
||||
self.request.event.slug.upper(), self.order.code, self.output.identifier, value.extension
|
||||
)
|
||||
return resp
|
||||
resp = FileResponse(value.file.file, content_type=value.type)
|
||||
resp['Content-Disposition'] = 'attachment; filename="{}-{}-{}{}"'.format(
|
||||
self.request.event.slug.upper(), self.order.code, self.output.identifier, value.extension
|
||||
)
|
||||
return resp
|
||||
else:
|
||||
return redirect(self.get_self_url())
|
||||
|
||||
@@ -2836,23 +2832,11 @@ class ExportView(EventPermissionRequiredMixin, ExportMixin, ListView):
|
||||
def get_queryset(self):
|
||||
return self.get_scheduled_queryset()
|
||||
|
||||
def has_permission(self):
|
||||
return self.request.user.has_event_permission(self.request.organizer, self.request.event, "can_view_orders")
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
ctx = super().get_context_data(**kwargs)
|
||||
if "schedule" in self.request.POST or self.scheduled:
|
||||
if "schedule" in self.request.POST and not self.has_permission():
|
||||
messages.error(
|
||||
self.request,
|
||||
_(
|
||||
"Your user account does not have sufficient permission to run this report, therefore "
|
||||
"you cannot schedule it."
|
||||
)
|
||||
)
|
||||
else:
|
||||
ctx['schedule_form'] = self.schedule_form
|
||||
ctx['rrule_form'] = self.rrule_form
|
||||
ctx['schedule_form'] = self.schedule_form
|
||||
ctx['rrule_form'] = self.rrule_form
|
||||
elif not self.exporter:
|
||||
for s in ctx['scheduled']:
|
||||
try:
|
||||
|
||||
@@ -2189,28 +2189,11 @@ class ExportView(OrganizerPermissionRequiredMixin, ExportMixin, ListView):
|
||||
def get_queryset(self):
|
||||
return self.get_scheduled_queryset()
|
||||
|
||||
def has_permission(self):
|
||||
if isinstance(self.exporter, OrganizerLevelExportMixin):
|
||||
if not self.request.user.has_organizer_permission(self.request.organizer, self.exporter.organizer_required_permission):
|
||||
return False
|
||||
if self.exporter and not self.exporter.available_for_user(self.request.user):
|
||||
return False
|
||||
return True
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
ctx = super().get_context_data(**kwargs)
|
||||
if "schedule" in self.request.POST or self.scheduled:
|
||||
if "schedule" in self.request.POST and not self.has_permission():
|
||||
messages.error(
|
||||
self.request,
|
||||
_(
|
||||
"Your user account does not have sufficient permission to run this report, therefore "
|
||||
"you cannot schedule it."
|
||||
)
|
||||
)
|
||||
else:
|
||||
ctx['schedule_form'] = self.schedule_form
|
||||
ctx['rrule_form'] = self.rrule_form
|
||||
ctx['schedule_form'] = self.schedule_form
|
||||
ctx['rrule_form'] = self.rrule_form
|
||||
elif not self.exporter:
|
||||
for s in ctx['scheduled']:
|
||||
try:
|
||||
|
||||
@@ -710,9 +710,9 @@ class UserNotificationsEditView(TemplateView):
|
||||
|
||||
messages.success(request, _('Your notification settings have been saved.'))
|
||||
if request.user.notifications_send:
|
||||
self.request.user.log_action('pretix.user.settings.notifications.enabled', user=self.request.user)
|
||||
else:
|
||||
self.request.user.log_action('pretix.user.settings.notifications.disabled', user=self.request.user)
|
||||
else:
|
||||
self.request.user.log_action('pretix.user.settings.notifications.enabled', user=self.request.user)
|
||||
return redirect(
|
||||
reverse('control:user.settings.notifications') +
|
||||
('?event={}'.format(self.event.pk) if self.event else '')
|
||||
|
||||
@@ -21,8 +21,7 @@
|
||||
#
|
||||
import contextlib
|
||||
|
||||
from django.conf import settings
|
||||
from django.core.exceptions import FieldDoesNotExist, ImproperlyConfigured
|
||||
from django.core.exceptions import FieldDoesNotExist
|
||||
from django.db import connection, transaction
|
||||
from django.db.models import (
|
||||
Aggregate, Expression, F, Field, Lookup, OrderBy, Value,
|
||||
@@ -63,43 +62,6 @@ def casual_reads():
|
||||
yield
|
||||
|
||||
|
||||
@contextlib.contextmanager
|
||||
def repeatable_reads_transaction():
|
||||
"""
|
||||
pretix, and Django, operate in the transaction isolation level READ COMMITTED by default. This is not a strong level
|
||||
of isolation, but we NEED to use it: Otherwise e.g. our quota logic breaks, because we need to be able to get the
|
||||
*current* number of tickets sold at any time in a transaction, not the number of tickets sold *before* our transaction
|
||||
started.
|
||||
|
||||
However, this isolation mode has drawbacks, for example during reporting. When a user retrieves a report from the
|
||||
system, it should return numbers that are consistent with each other. However, if the report makes multiple SQL
|
||||
queries in READ COMMITTED mode, the results might be different for each query, causing numbers to be inconsistent
|
||||
with each other.
|
||||
|
||||
This context manager creates a transaction that is running in REPEATABLE READ mode to avoid this problem.
|
||||
|
||||
**You should only make read-only queries during this transaction and not rely on quota calculations.**
|
||||
"""
|
||||
is_under_test = 'tests.testdummy' in settings.INSTALLED_APPS
|
||||
try:
|
||||
with transaction.atomic(durable=not is_under_test):
|
||||
if not is_under_test:
|
||||
# We're not running this in tests, where we can basically not use this since the test runner does its
|
||||
# own transaction logic for efficiency
|
||||
with connection.cursor() as cursor:
|
||||
if 'postgresql' in settings.DATABASES['default']['ENGINE']:
|
||||
cursor.execute('SET TRANSACTION ISOLATION LEVEL REPEATABLE READ;')
|
||||
elif 'sqlite' in settings.DATABASES['default']['ENGINE']:
|
||||
pass # noop
|
||||
else:
|
||||
raise ImproperlyConfigured("Cannot set transaction isolation mode on this database backend")
|
||||
|
||||
connection.tx_in_repeatable_read = True
|
||||
yield
|
||||
finally:
|
||||
connection.tx_in_repeatable_read = False
|
||||
|
||||
|
||||
class GroupConcat(Aggregate):
|
||||
function = 'group_concat'
|
||||
template = '%(function)s(%(distinct)s%(field)s, "%(separator)s")'
|
||||
|
||||
@@ -64,16 +64,6 @@ def daterange(df, dt, as_html=False):
|
||||
return format_html(base_format, _date(df, "j."), mark_safe(until.strip()), _date(dt, "j. F Y"))
|
||||
elif df.year == dt.year:
|
||||
return format_html(base_format, _date(df, "j. F"), until, _date(dt, "j. F Y"))
|
||||
elif lng == "en-nz":
|
||||
if df.year == dt.year and df.month == dt.month and df.day == dt.day:
|
||||
# Mon, 15 January 2024
|
||||
return format_html(base_format, _date(df, "D, j F Y"))
|
||||
elif df.year == dt.year and df.month == dt.month:
|
||||
# 1 – 3 January 2024
|
||||
return format_html(base_format, _date(df, "j"), until, _date(dt, "j F Y"))
|
||||
elif df.year == dt.year:
|
||||
# 1 January – 3 April 2024
|
||||
return format_html(base_format, _date(df, "j F"), until, _date(dt, "j F Y"))
|
||||
elif lng.startswith("en"):
|
||||
if df.year == dt.year and df.month == dt.month and df.day == dt.day:
|
||||
return format_html(base_format, _date(df, "D, N jS, Y"))
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
#
|
||||
# This file is part of pretix (Community Edition).
|
||||
#
|
||||
# Copyright (C) 2014-2020 Raphael Michel and contributors
|
||||
# Copyright (C) 2020-2021 rami.io GmbH and contributors
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
|
||||
# Public License as published by the Free Software Foundation in version 3 of the License.
|
||||
#
|
||||
# ADDITIONAL TERMS APPLY: Pursuant to Section 7 of the GNU Affero General Public License, additional terms are
|
||||
# applicable granting you additional permissions and placing additional restrictions on your usage of this software.
|
||||
# Please refer to the pretix LICENSE file to obtain the full terms applicable to this work. If you did not receive
|
||||
# this file, see <https://pretix.eu/about/en/license>.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
|
||||
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
|
||||
# details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License along with this program. If not, see
|
||||
# <https://www.gnu.org/licenses/>.
|
||||
#
|
||||
@@ -1,50 +0,0 @@
|
||||
#
|
||||
# This file is part of pretix (Community Edition).
|
||||
#
|
||||
# Copyright (C) 2014-2020 Raphael Michel and contributors
|
||||
# Copyright (C) 2020-2021 rami.io GmbH and contributors
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
|
||||
# Public License as published by the Free Software Foundation in version 3 of the License.
|
||||
#
|
||||
# ADDITIONAL TERMS APPLY: Pursuant to Section 7 of the GNU Affero General Public License, additional terms are
|
||||
# applicable granting you additional permissions and placing additional restrictions on your usage of this software.
|
||||
# Please refer to the pretix LICENSE file to obtain the full terms applicable to this work. If you did not receive
|
||||
# this file, see <https://pretix.eu/about/en/license>.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
|
||||
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
|
||||
# details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License along with this program. If not, see
|
||||
# <https://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
# Date according to https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
# Following NZ government guidance from https://www.digital.govt.nz/standards-and-guidance/design-and-ux/content-design-guidance/writing-style/numbers
|
||||
DATE_FORMAT = "j F Y" # 12 December 2015
|
||||
DATETIME_FORMAT = "j F Y, g:ia" # 12 December 2015, 5:30pm
|
||||
TIME_FORMAT = "g:ia" # 5:30pm
|
||||
YEAR_MONTH_FORMAT = "F Y" # December 2015
|
||||
MONTH_DAY_FORMAT = "j F" # 12 December
|
||||
SHORT_DATE_FORMAT = "j F Y" # same as DATE_FORMAT per guidance
|
||||
SHORT_DATETIME_FORMAT = "j F Y, g:ia"
|
||||
WEEKDAY_FORMAT = "l" # Monday
|
||||
WEEKDAY_DATE_FORMAT = "l, j F Y" # Friday, 23 November 2018
|
||||
WEEK_FORMAT = "\\W W, o" # ISO week: "W 52, 2024"
|
||||
WEEK_DAY_FORMAT = "D, j M" # Abbrev weekday and month: "Mon, 5 Feb"
|
||||
SHORT_MONTH_DAY_FORMAT = "j/n" # Numeric day/month: "5/2"
|
||||
|
||||
# Parsing inputs; keep d/m/Y and ISO
|
||||
DATE_INPUT_FORMATS = [
|
||||
"%d/%m/%Y",
|
||||
"%Y-%m-%d",
|
||||
"%d/%m/%y",
|
||||
]
|
||||
|
||||
TIME_INPUT_FORMATS = [
|
||||
"%I:%M%p", # 5:30pm
|
||||
"%H:%M:%S",
|
||||
"%H:%M:%S.%f",
|
||||
"%H:%M",
|
||||
]
|
||||
File diff suppressed because it is too large
Load Diff
@@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-09-26 11:16+0000\n"
|
||||
"POT-Creation-Date: 2025-08-19 16:02+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@@ -344,68 +344,68 @@ msgstr ""
|
||||
msgid "close"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/addressform.js:90
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:519
|
||||
#: pretix/static/pretixbase/js/addressform.js:105
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:509
|
||||
msgid "required"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:13
|
||||
#: pretix/static/pretixbase/js/asynctask.js:12
|
||||
msgid ""
|
||||
"Your request is currently being processed. Depending on the size of your "
|
||||
"event, this might take up to a few minutes."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:17
|
||||
#: pretix/static/pretixbase/js/asynctask.js:16
|
||||
msgid "Your request has been queued on the server and will soon be processed."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:21
|
||||
#: pretix/static/pretixbase/js/asynctask.js:20
|
||||
msgid ""
|
||||
"Your request arrived on the server but we still wait for it to be processed. "
|
||||
"If this takes longer than two minutes, please contact us or go back in your "
|
||||
"browser and try again."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:125
|
||||
#: pretix/static/pretixbase/js/asynctask.js:182
|
||||
#: pretix/static/pretixbase/js/asynctask.js:186
|
||||
#: pretix/static/pretixbase/js/asynctask.js:119
|
||||
#: pretix/static/pretixbase/js/asynctask.js:176
|
||||
#: pretix/static/pretixbase/js/asynctask.js:180
|
||||
#: pretix/static/pretixcontrol/js/ui/mail.js:24
|
||||
msgid "An error of type {code} occurred."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:128
|
||||
#: pretix/static/pretixbase/js/asynctask.js:122
|
||||
msgid ""
|
||||
"We currently cannot reach the server, but we keep trying. Last error code: "
|
||||
"{code}"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:162
|
||||
#: pretix/static/pretixbase/js/asynctask.js:156
|
||||
#: pretix/static/pretixcontrol/js/ui/mail.js:21
|
||||
msgid "The request took too long. Please try again."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:188
|
||||
#: pretix/static/pretixbase/js/asynctask.js:182
|
||||
#: pretix/static/pretixcontrol/js/ui/mail.js:26
|
||||
msgid ""
|
||||
"We currently cannot reach the server. Please try again. Error code: {code}"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:216
|
||||
#: pretix/static/pretixbase/js/asynctask.js:210
|
||||
msgid "We are processing your request …"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:219
|
||||
#: pretix/static/pretixbase/js/asynctask.js:213
|
||||
msgid ""
|
||||
"We are currently sending your request to the server. If this takes longer "
|
||||
"than one minute, please check your internet connection and then reload this "
|
||||
"page and try again."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:276
|
||||
#: pretix/static/pretixbase/js/asynctask.js:270
|
||||
msgid "If this takes longer than a few minutes, please contact us."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:331
|
||||
#: pretix/static/pretixbase/js/asynctask.js:325
|
||||
msgid "Close message"
|
||||
msgstr ""
|
||||
|
||||
@@ -740,7 +740,7 @@ msgstr ""
|
||||
msgid "Please enter the amount the organizer can keep."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:564
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:554
|
||||
msgid "Your local time:"
|
||||
msgstr ""
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-09-26 11:16+0000\n"
|
||||
"POT-Creation-Date: 2025-08-19 16:02+0000\n"
|
||||
"PO-Revision-Date: 2021-09-15 11:22+0000\n"
|
||||
"Last-Translator: Mohamed Tawfiq <mtawfiq@wafyapp.com>\n"
|
||||
"Language-Team: Arabic <https://translate.pretix.eu/projects/pretix/pretix-js/"
|
||||
@@ -359,12 +359,12 @@ msgstr "لا"
|
||||
msgid "close"
|
||||
msgstr "إغلاق"
|
||||
|
||||
#: pretix/static/pretixbase/js/addressform.js:90
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:519
|
||||
#: pretix/static/pretixbase/js/addressform.js:105
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:509
|
||||
msgid "required"
|
||||
msgstr "مطلوب"
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:13
|
||||
#: pretix/static/pretixbase/js/asynctask.js:12
|
||||
msgid ""
|
||||
"Your request is currently being processed. Depending on the size of your "
|
||||
"event, this might take up to a few minutes."
|
||||
@@ -372,11 +372,11 @@ msgstr ""
|
||||
"تتم معالجة طلبك حاليا. قد يستغرق الأمر بضع دقائق بناء على حجم الفعالية التي "
|
||||
"اخترت."
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:17
|
||||
#: pretix/static/pretixbase/js/asynctask.js:16
|
||||
msgid "Your request has been queued on the server and will soon be processed."
|
||||
msgstr "طلبك قيد الانتظار وستتم معالجته قريبا."
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:21
|
||||
#: pretix/static/pretixbase/js/asynctask.js:20
|
||||
msgid ""
|
||||
"Your request arrived on the server but we still wait for it to be processed. "
|
||||
"If this takes longer than two minutes, please contact us or go back in your "
|
||||
@@ -385,36 +385,36 @@ msgstr ""
|
||||
"وصل طلبك للخادم وننتظر تنفيذه. إذا استغرق الأمر أكثر من دقيقتين تواصل معنا "
|
||||
"أو عاود المحاولة مجددا."
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:125
|
||||
#: pretix/static/pretixbase/js/asynctask.js:182
|
||||
#: pretix/static/pretixbase/js/asynctask.js:186
|
||||
#: pretix/static/pretixbase/js/asynctask.js:119
|
||||
#: pretix/static/pretixbase/js/asynctask.js:176
|
||||
#: pretix/static/pretixbase/js/asynctask.js:180
|
||||
#: pretix/static/pretixcontrol/js/ui/mail.js:24
|
||||
msgid "An error of type {code} occurred."
|
||||
msgstr "حدث خطأ من نوع {code}."
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:128
|
||||
#: pretix/static/pretixbase/js/asynctask.js:122
|
||||
msgid ""
|
||||
"We currently cannot reach the server, but we keep trying. Last error code: "
|
||||
"{code}"
|
||||
msgstr "لم نتمكن من الاتصال بالخادم، لكن سنواصل المحاولة، رمز آخر خطأ: {code}"
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:162
|
||||
#: pretix/static/pretixbase/js/asynctask.js:156
|
||||
#: pretix/static/pretixcontrol/js/ui/mail.js:21
|
||||
msgid "The request took too long. Please try again."
|
||||
msgstr "استغرقت الطلب فترة طويلة، الرجاء المحاولة مرة أخرى."
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:188
|
||||
#: pretix/static/pretixbase/js/asynctask.js:182
|
||||
#: pretix/static/pretixcontrol/js/ui/mail.js:26
|
||||
msgid ""
|
||||
"We currently cannot reach the server. Please try again. Error code: {code}"
|
||||
msgstr ""
|
||||
"لا يمكننا الوصول إلى الخادم حاليا، حاول مرة أخرى من فضلك. رمز الخطأ : {code}"
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:216
|
||||
#: pretix/static/pretixbase/js/asynctask.js:210
|
||||
msgid "We are processing your request …"
|
||||
msgstr "جاري معالجة طلبك …"
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:219
|
||||
#: pretix/static/pretixbase/js/asynctask.js:213
|
||||
msgid ""
|
||||
"We are currently sending your request to the server. If this takes longer "
|
||||
"than one minute, please check your internet connection and then reload this "
|
||||
@@ -423,11 +423,11 @@ msgstr ""
|
||||
"نعمل الآن على ارسال طلبك إلى الخادم، إذا أستغرقت العملية أكثر من دقيقة، يرجى "
|
||||
"التحقق من اتصالك بالإنترنت ثم أعد تحميل الصفحة مرة أخرى."
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:276
|
||||
#: pretix/static/pretixbase/js/asynctask.js:270
|
||||
msgid "If this takes longer than a few minutes, please contact us."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:331
|
||||
#: pretix/static/pretixbase/js/asynctask.js:325
|
||||
msgid "Close message"
|
||||
msgstr "أغلق الرسالة"
|
||||
|
||||
@@ -798,7 +798,7 @@ msgstr "ستسترد %(currency)%(amount)"
|
||||
msgid "Please enter the amount the organizer can keep."
|
||||
msgstr "الرجاء إدخال المبلغ الذي يمكن للمنظم الاحتفاظ به."
|
||||
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:564
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:554
|
||||
msgid "Your local time:"
|
||||
msgstr "التوقيت المحلي:"
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-09-26 11:16+0000\n"
|
||||
"POT-Creation-Date: 2025-08-19 16:02+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@@ -344,68 +344,68 @@ msgstr ""
|
||||
msgid "close"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/addressform.js:90
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:519
|
||||
#: pretix/static/pretixbase/js/addressform.js:105
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:509
|
||||
msgid "required"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:13
|
||||
#: pretix/static/pretixbase/js/asynctask.js:12
|
||||
msgid ""
|
||||
"Your request is currently being processed. Depending on the size of your "
|
||||
"event, this might take up to a few minutes."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:17
|
||||
#: pretix/static/pretixbase/js/asynctask.js:16
|
||||
msgid "Your request has been queued on the server and will soon be processed."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:21
|
||||
#: pretix/static/pretixbase/js/asynctask.js:20
|
||||
msgid ""
|
||||
"Your request arrived on the server but we still wait for it to be processed. "
|
||||
"If this takes longer than two minutes, please contact us or go back in your "
|
||||
"browser and try again."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:125
|
||||
#: pretix/static/pretixbase/js/asynctask.js:182
|
||||
#: pretix/static/pretixbase/js/asynctask.js:186
|
||||
#: pretix/static/pretixbase/js/asynctask.js:119
|
||||
#: pretix/static/pretixbase/js/asynctask.js:176
|
||||
#: pretix/static/pretixbase/js/asynctask.js:180
|
||||
#: pretix/static/pretixcontrol/js/ui/mail.js:24
|
||||
msgid "An error of type {code} occurred."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:128
|
||||
#: pretix/static/pretixbase/js/asynctask.js:122
|
||||
msgid ""
|
||||
"We currently cannot reach the server, but we keep trying. Last error code: "
|
||||
"{code}"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:162
|
||||
#: pretix/static/pretixbase/js/asynctask.js:156
|
||||
#: pretix/static/pretixcontrol/js/ui/mail.js:21
|
||||
msgid "The request took too long. Please try again."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:188
|
||||
#: pretix/static/pretixbase/js/asynctask.js:182
|
||||
#: pretix/static/pretixcontrol/js/ui/mail.js:26
|
||||
msgid ""
|
||||
"We currently cannot reach the server. Please try again. Error code: {code}"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:216
|
||||
#: pretix/static/pretixbase/js/asynctask.js:210
|
||||
msgid "We are processing your request …"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:219
|
||||
#: pretix/static/pretixbase/js/asynctask.js:213
|
||||
msgid ""
|
||||
"We are currently sending your request to the server. If this takes longer "
|
||||
"than one minute, please check your internet connection and then reload this "
|
||||
"page and try again."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:276
|
||||
#: pretix/static/pretixbase/js/asynctask.js:270
|
||||
msgid "If this takes longer than a few minutes, please contact us."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:331
|
||||
#: pretix/static/pretixbase/js/asynctask.js:325
|
||||
msgid "Close message"
|
||||
msgstr ""
|
||||
|
||||
@@ -740,7 +740,7 @@ msgstr ""
|
||||
msgid "Please enter the amount the organizer can keep."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:564
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:554
|
||||
msgid "Your local time:"
|
||||
msgstr ""
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-09-26 11:16+0000\n"
|
||||
"POT-Creation-Date: 2025-08-19 16:02+0000\n"
|
||||
"PO-Revision-Date: 2020-12-19 07:00+0000\n"
|
||||
"Last-Translator: albert <albert.serra.monner@gmail.com>\n"
|
||||
"Language-Team: Catalan <https://translate.pretix.eu/projects/pretix/pretix-"
|
||||
@@ -345,70 +345,70 @@ msgstr ""
|
||||
msgid "close"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/addressform.js:90
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:519
|
||||
#: pretix/static/pretixbase/js/addressform.js:105
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:509
|
||||
#, fuzzy
|
||||
#| msgid "Cart expired"
|
||||
msgid "required"
|
||||
msgstr "Cistella expirada"
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:13
|
||||
#: pretix/static/pretixbase/js/asynctask.js:12
|
||||
msgid ""
|
||||
"Your request is currently being processed. Depending on the size of your "
|
||||
"event, this might take up to a few minutes."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:17
|
||||
#: pretix/static/pretixbase/js/asynctask.js:16
|
||||
msgid "Your request has been queued on the server and will soon be processed."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:21
|
||||
#: pretix/static/pretixbase/js/asynctask.js:20
|
||||
msgid ""
|
||||
"Your request arrived on the server but we still wait for it to be processed. "
|
||||
"If this takes longer than two minutes, please contact us or go back in your "
|
||||
"browser and try again."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:125
|
||||
#: pretix/static/pretixbase/js/asynctask.js:182
|
||||
#: pretix/static/pretixbase/js/asynctask.js:186
|
||||
#: pretix/static/pretixbase/js/asynctask.js:119
|
||||
#: pretix/static/pretixbase/js/asynctask.js:176
|
||||
#: pretix/static/pretixbase/js/asynctask.js:180
|
||||
#: pretix/static/pretixcontrol/js/ui/mail.js:24
|
||||
msgid "An error of type {code} occurred."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:128
|
||||
#: pretix/static/pretixbase/js/asynctask.js:122
|
||||
msgid ""
|
||||
"We currently cannot reach the server, but we keep trying. Last error code: "
|
||||
"{code}"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:162
|
||||
#: pretix/static/pretixbase/js/asynctask.js:156
|
||||
#: pretix/static/pretixcontrol/js/ui/mail.js:21
|
||||
msgid "The request took too long. Please try again."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:188
|
||||
#: pretix/static/pretixbase/js/asynctask.js:182
|
||||
#: pretix/static/pretixcontrol/js/ui/mail.js:26
|
||||
msgid ""
|
||||
"We currently cannot reach the server. Please try again. Error code: {code}"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:216
|
||||
#: pretix/static/pretixbase/js/asynctask.js:210
|
||||
msgid "We are processing your request …"
|
||||
msgstr "Estem processant la vostra sol·licitud …"
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:219
|
||||
#: pretix/static/pretixbase/js/asynctask.js:213
|
||||
msgid ""
|
||||
"We are currently sending your request to the server. If this takes longer "
|
||||
"than one minute, please check your internet connection and then reload this "
|
||||
"page and try again."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:276
|
||||
#: pretix/static/pretixbase/js/asynctask.js:270
|
||||
msgid "If this takes longer than a few minutes, please contact us."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:331
|
||||
#: pretix/static/pretixbase/js/asynctask.js:325
|
||||
msgid "Close message"
|
||||
msgstr ""
|
||||
|
||||
@@ -751,7 +751,7 @@ msgstr ""
|
||||
msgid "Please enter the amount the organizer can keep."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:564
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:554
|
||||
msgid "Your local time:"
|
||||
msgstr ""
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -7,9 +7,9 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-09-26 11:16+0000\n"
|
||||
"PO-Revision-Date: 2025-09-08 18:57+0000\n"
|
||||
"Last-Translator: Alois Pospíšil <alois.pospisil@gmail.com>\n"
|
||||
"POT-Creation-Date: 2025-08-19 16:02+0000\n"
|
||||
"PO-Revision-Date: 2025-05-16 17:00+0000\n"
|
||||
"Last-Translator: David <davemachala@gmail.com>\n"
|
||||
"Language-Team: Czech <https://translate.pretix.eu/projects/pretix/pretix-js/"
|
||||
"cs/>\n"
|
||||
"Language: cs\n"
|
||||
@@ -17,7 +17,7 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
|
||||
"X-Generator: Weblate 5.13\n"
|
||||
"X-Generator: Weblate 5.11.4\n"
|
||||
|
||||
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:56
|
||||
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:62
|
||||
@@ -345,12 +345,12 @@ msgstr "Ne"
|
||||
msgid "close"
|
||||
msgstr "zavřít"
|
||||
|
||||
#: pretix/static/pretixbase/js/addressform.js:90
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:519
|
||||
#: pretix/static/pretixbase/js/addressform.js:105
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:509
|
||||
msgid "required"
|
||||
msgstr "povinný"
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:13
|
||||
#: pretix/static/pretixbase/js/asynctask.js:12
|
||||
msgid ""
|
||||
"Your request is currently being processed. Depending on the size of your "
|
||||
"event, this might take up to a few minutes."
|
||||
@@ -358,11 +358,11 @@ msgstr ""
|
||||
"Váš požadavek je právě zpracováván. V závislosti na velikosti vaší udalosti, "
|
||||
"to může trvat několik minut."
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:17
|
||||
#: pretix/static/pretixbase/js/asynctask.js:16
|
||||
msgid "Your request has been queued on the server and will soon be processed."
|
||||
msgstr "Váš požadavek byl vložem do fronty serveru a brzy bude zpracován."
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:21
|
||||
#: pretix/static/pretixbase/js/asynctask.js:20
|
||||
msgid ""
|
||||
"Your request arrived on the server but we still wait for it to be processed. "
|
||||
"If this takes longer than two minutes, please contact us or go back in your "
|
||||
@@ -372,14 +372,14 @@ msgstr ""
|
||||
"Pokud to trvá více jak dvě minuty, prosím kontaktuje nás nebo se vraťte do "
|
||||
"vašeho prohlížeče a zkuste to znovu."
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:125
|
||||
#: pretix/static/pretixbase/js/asynctask.js:182
|
||||
#: pretix/static/pretixbase/js/asynctask.js:186
|
||||
#: pretix/static/pretixbase/js/asynctask.js:119
|
||||
#: pretix/static/pretixbase/js/asynctask.js:176
|
||||
#: pretix/static/pretixbase/js/asynctask.js:180
|
||||
#: pretix/static/pretixcontrol/js/ui/mail.js:24
|
||||
msgid "An error of type {code} occurred."
|
||||
msgstr "Vyskytla se chyba {code}."
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:128
|
||||
#: pretix/static/pretixbase/js/asynctask.js:122
|
||||
msgid ""
|
||||
"We currently cannot reach the server, but we keep trying. Last error code: "
|
||||
"{code}"
|
||||
@@ -387,12 +387,12 @@ msgstr ""
|
||||
"Momentálně nemůžeme kontaktovat server, ale stále se o to pokoušíme. "
|
||||
"Poslední chybový kód: {code}"
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:162
|
||||
#: pretix/static/pretixbase/js/asynctask.js:156
|
||||
#: pretix/static/pretixcontrol/js/ui/mail.js:21
|
||||
msgid "The request took too long. Please try again."
|
||||
msgstr "Zpracování požadavku trvá příliš dlouho. Prosím zkuste to znovu."
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:188
|
||||
#: pretix/static/pretixbase/js/asynctask.js:182
|
||||
#: pretix/static/pretixcontrol/js/ui/mail.js:26
|
||||
msgid ""
|
||||
"We currently cannot reach the server. Please try again. Error code: {code}"
|
||||
@@ -400,11 +400,11 @@ msgstr ""
|
||||
"Momentálně nemůžeme kontaktovat server. Prosím zkuste to znovu. Chybový kód: "
|
||||
"{code}"
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:216
|
||||
#: pretix/static/pretixbase/js/asynctask.js:210
|
||||
msgid "We are processing your request …"
|
||||
msgstr "Zpracováváme váš požadavek …"
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:219
|
||||
#: pretix/static/pretixbase/js/asynctask.js:213
|
||||
msgid ""
|
||||
"We are currently sending your request to the server. If this takes longer "
|
||||
"than one minute, please check your internet connection and then reload this "
|
||||
@@ -414,11 +414,11 @@ msgstr ""
|
||||
"prosím zkontrolujte své internetové připojení a znovu načtěte stránku a "
|
||||
"zkuste to znovu."
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:276
|
||||
#: pretix/static/pretixbase/js/asynctask.js:270
|
||||
msgid "If this takes longer than a few minutes, please contact us."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:331
|
||||
#: pretix/static/pretixbase/js/asynctask.js:325
|
||||
msgid "Close message"
|
||||
msgstr "Zavřít zprávu"
|
||||
|
||||
@@ -640,15 +640,19 @@ msgid "Unknown error."
|
||||
msgstr "Neznámá chyba."
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:292
|
||||
#, fuzzy
|
||||
#| msgid "Your color has great contrast and is very easy to read!"
|
||||
msgid "Your color has great contrast and will provide excellent accessibility."
|
||||
msgstr "Tato barva má velmi dobrý kontrast a je velmi dobře čitelná."
|
||||
msgstr "Tato barva má velmi dobrý kontrast a je velmi dobře čitelná!"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:296
|
||||
#, fuzzy
|
||||
#| msgid "Your color has decent contrast and is probably good-enough to read!"
|
||||
msgid ""
|
||||
"Your color has decent contrast and is sufficient for minimum accessibility "
|
||||
"requirements."
|
||||
msgstr ""
|
||||
"Tato barva má slušný kontrast a pravděpodobně je dostatečně dobře čitelná."
|
||||
"Tato barva má slušný kontrast a pravděpodobně je dostatečně dobře čitelná!"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:300
|
||||
msgid ""
|
||||
@@ -731,7 +735,7 @@ msgstr "Nákupní košík vypršel"
|
||||
#: pretix/static/pretixpresale/js/ui/cart.js:58
|
||||
#: pretix/static/pretixpresale/js/ui/cart.js:84
|
||||
msgid "Your cart is about to expire."
|
||||
msgstr "Nákupní košík brzy vyprší."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixpresale/js/ui/cart.js:62
|
||||
msgid "The items in your cart are reserved for you for one minute."
|
||||
@@ -744,8 +748,10 @@ msgstr[2] ""
|
||||
"Produkty v nákupním košíku jsou pro vás rezervovány na dalších {num} minut."
|
||||
|
||||
#: pretix/static/pretixpresale/js/ui/cart.js:83
|
||||
#, fuzzy
|
||||
#| msgid "Cart expired"
|
||||
msgid "Your cart has expired."
|
||||
msgstr "Nákupní košík vypršel."
|
||||
msgstr "Nákupní košík vypršel"
|
||||
|
||||
#: pretix/static/pretixpresale/js/ui/cart.js:86
|
||||
#, fuzzy
|
||||
@@ -779,7 +785,7 @@ msgstr "Dostanete %(currency)s %(amount)s zpět"
|
||||
msgid "Please enter the amount the organizer can keep."
|
||||
msgstr "Zadejte částku, kterou si organizátor může ponechat."
|
||||
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:564
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:554
|
||||
msgid "Your local time:"
|
||||
msgstr "Místní čas:"
|
||||
|
||||
@@ -805,12 +811,12 @@ msgstr "Zvýšit počet"
|
||||
#: pretix/static/pretixpresale/js/widget/widget.js:19
|
||||
msgctxt "widget"
|
||||
msgid "Filter events by"
|
||||
msgstr "Filtrovat události"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixpresale/js/widget/widget.js:20
|
||||
msgctxt "widget"
|
||||
msgid "Filter"
|
||||
msgstr "Filtrovat"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixpresale/js/widget/widget.js:21
|
||||
msgctxt "widget"
|
||||
@@ -927,7 +933,7 @@ msgstr "Již není k dispozici"
|
||||
#: pretix/static/pretixpresale/js/widget/widget.js:42
|
||||
msgctxt "widget"
|
||||
msgid "Currently not available"
|
||||
msgstr "Momentálně není k dispozici"
|
||||
msgstr "Momentálně není k dispozici."
|
||||
|
||||
#: pretix/static/pretixpresale/js/widget/widget.js:44
|
||||
#, javascript-format
|
||||
@@ -962,7 +968,7 @@ msgstr "Obchod vstupenek otevřit"
|
||||
#: pretix/static/pretixpresale/js/widget/widget.js:50
|
||||
msgctxt "widget"
|
||||
msgid "Checkout"
|
||||
msgstr "Přejít k platbě"
|
||||
msgstr "Checkout"
|
||||
|
||||
#: pretix/static/pretixpresale/js/widget/widget.js:51
|
||||
msgctxt "widget"
|
||||
@@ -1084,7 +1090,7 @@ msgstr "Předchozí týden"
|
||||
#: pretix/static/pretixpresale/js/widget/widget.js:74
|
||||
msgctxt "widget"
|
||||
msgid "Open seat selection"
|
||||
msgstr "Otevřete výběr míst"
|
||||
msgstr "Otevřete výběr sedadla"
|
||||
|
||||
#: pretix/static/pretixpresale/js/widget/widget.js:75
|
||||
msgctxt "widget"
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-09-26 11:16+0000\n"
|
||||
"POT-Creation-Date: 2025-08-19 16:02+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@@ -345,68 +345,68 @@ msgstr ""
|
||||
msgid "close"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/addressform.js:90
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:519
|
||||
#: pretix/static/pretixbase/js/addressform.js:105
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:509
|
||||
msgid "required"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:13
|
||||
#: pretix/static/pretixbase/js/asynctask.js:12
|
||||
msgid ""
|
||||
"Your request is currently being processed. Depending on the size of your "
|
||||
"event, this might take up to a few minutes."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:17
|
||||
#: pretix/static/pretixbase/js/asynctask.js:16
|
||||
msgid "Your request has been queued on the server and will soon be processed."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:21
|
||||
#: pretix/static/pretixbase/js/asynctask.js:20
|
||||
msgid ""
|
||||
"Your request arrived on the server but we still wait for it to be processed. "
|
||||
"If this takes longer than two minutes, please contact us or go back in your "
|
||||
"browser and try again."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:125
|
||||
#: pretix/static/pretixbase/js/asynctask.js:182
|
||||
#: pretix/static/pretixbase/js/asynctask.js:186
|
||||
#: pretix/static/pretixbase/js/asynctask.js:119
|
||||
#: pretix/static/pretixbase/js/asynctask.js:176
|
||||
#: pretix/static/pretixbase/js/asynctask.js:180
|
||||
#: pretix/static/pretixcontrol/js/ui/mail.js:24
|
||||
msgid "An error of type {code} occurred."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:128
|
||||
#: pretix/static/pretixbase/js/asynctask.js:122
|
||||
msgid ""
|
||||
"We currently cannot reach the server, but we keep trying. Last error code: "
|
||||
"{code}"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:162
|
||||
#: pretix/static/pretixbase/js/asynctask.js:156
|
||||
#: pretix/static/pretixcontrol/js/ui/mail.js:21
|
||||
msgid "The request took too long. Please try again."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:188
|
||||
#: pretix/static/pretixbase/js/asynctask.js:182
|
||||
#: pretix/static/pretixcontrol/js/ui/mail.js:26
|
||||
msgid ""
|
||||
"We currently cannot reach the server. Please try again. Error code: {code}"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:216
|
||||
#: pretix/static/pretixbase/js/asynctask.js:210
|
||||
msgid "We are processing your request …"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:219
|
||||
#: pretix/static/pretixbase/js/asynctask.js:213
|
||||
msgid ""
|
||||
"We are currently sending your request to the server. If this takes longer "
|
||||
"than one minute, please check your internet connection and then reload this "
|
||||
"page and try again."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:276
|
||||
#: pretix/static/pretixbase/js/asynctask.js:270
|
||||
msgid "If this takes longer than a few minutes, please contact us."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:331
|
||||
#: pretix/static/pretixbase/js/asynctask.js:325
|
||||
msgid "Close message"
|
||||
msgstr ""
|
||||
|
||||
@@ -741,7 +741,7 @@ msgstr ""
|
||||
msgid "Please enter the amount the organizer can keep."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:564
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:554
|
||||
msgid "Your local time:"
|
||||
msgstr ""
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-09-26 11:16+0000\n"
|
||||
"POT-Creation-Date: 2025-08-19 16:02+0000\n"
|
||||
"PO-Revision-Date: 2024-07-10 15:00+0000\n"
|
||||
"Last-Translator: Nikolai <nikolai@lengefeldt.de>\n"
|
||||
"Language-Team: Danish <https://translate.pretix.eu/projects/pretix/pretix-js/"
|
||||
@@ -357,14 +357,14 @@ msgstr "Nej"
|
||||
msgid "close"
|
||||
msgstr "Luk"
|
||||
|
||||
#: pretix/static/pretixbase/js/addressform.js:90
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:519
|
||||
#: pretix/static/pretixbase/js/addressform.js:105
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:509
|
||||
#, fuzzy
|
||||
#| msgid "Cart expired"
|
||||
msgid "required"
|
||||
msgstr "Kurv udløbet"
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:13
|
||||
#: pretix/static/pretixbase/js/asynctask.js:12
|
||||
#, fuzzy
|
||||
#| msgid ""
|
||||
#| "Your request has been queued on the server and will now be processed. "
|
||||
@@ -376,7 +376,7 @@ msgstr ""
|
||||
"Din forespørgsel er under behandling. Alt efter størrelsen af din event kan "
|
||||
"der gå op til et par minutter."
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:17
|
||||
#: pretix/static/pretixbase/js/asynctask.js:16
|
||||
#, fuzzy
|
||||
#| msgid ""
|
||||
#| "Your request has been queued on the server and will now be processed. "
|
||||
@@ -386,7 +386,7 @@ msgstr ""
|
||||
"Din forespørgsel er under behandling. Alt efter størrelsen af din event kan "
|
||||
"der gå op til et par minutter."
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:21
|
||||
#: pretix/static/pretixbase/js/asynctask.js:20
|
||||
msgid ""
|
||||
"Your request arrived on the server but we still wait for it to be processed. "
|
||||
"If this takes longer than two minutes, please contact us or go back in your "
|
||||
@@ -395,14 +395,14 @@ msgstr ""
|
||||
"Din forespørgsel er under behandling. Hvis der går mere end to minutter, så "
|
||||
"kontakt os eller gå tilbage og prøv igen."
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:125
|
||||
#: pretix/static/pretixbase/js/asynctask.js:182
|
||||
#: pretix/static/pretixbase/js/asynctask.js:186
|
||||
#: pretix/static/pretixbase/js/asynctask.js:119
|
||||
#: pretix/static/pretixbase/js/asynctask.js:176
|
||||
#: pretix/static/pretixbase/js/asynctask.js:180
|
||||
#: pretix/static/pretixcontrol/js/ui/mail.js:24
|
||||
msgid "An error of type {code} occurred."
|
||||
msgstr "Der er sket en fejl ({code})."
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:128
|
||||
#: pretix/static/pretixbase/js/asynctask.js:122
|
||||
msgid ""
|
||||
"We currently cannot reach the server, but we keep trying. Last error code: "
|
||||
"{code}"
|
||||
@@ -410,12 +410,12 @@ msgstr ""
|
||||
"Vi kan ikke komme i kontakt med serveren, men prøver igen. Seneste fejlkode: "
|
||||
"{code}"
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:162
|
||||
#: pretix/static/pretixbase/js/asynctask.js:156
|
||||
#: pretix/static/pretixcontrol/js/ui/mail.js:21
|
||||
msgid "The request took too long. Please try again."
|
||||
msgstr "Forespørgslen tog for lang tid. Prøv igen."
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:188
|
||||
#: pretix/static/pretixbase/js/asynctask.js:182
|
||||
#: pretix/static/pretixcontrol/js/ui/mail.js:26
|
||||
msgid ""
|
||||
"We currently cannot reach the server. Please try again. Error code: {code}"
|
||||
@@ -423,11 +423,11 @@ msgstr ""
|
||||
"Vi kan i øjeblikket ikke komme i kontakt med serveren. Prøv igen. Fejlkode: "
|
||||
"{code}"
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:216
|
||||
#: pretix/static/pretixbase/js/asynctask.js:210
|
||||
msgid "We are processing your request …"
|
||||
msgstr "Vi behandler din bestilling …"
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:219
|
||||
#: pretix/static/pretixbase/js/asynctask.js:213
|
||||
msgid ""
|
||||
"We are currently sending your request to the server. If this takes longer "
|
||||
"than one minute, please check your internet connection and then reload this "
|
||||
@@ -436,11 +436,11 @@ msgstr ""
|
||||
"Din forespørgsel bliver sendt til serveren. Hvis det tager mere end et "
|
||||
"minut, så tjek din internetforbindelse, genindlæs siden og prøv igen."
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:276
|
||||
#: pretix/static/pretixbase/js/asynctask.js:270
|
||||
msgid "If this takes longer than a few minutes, please contact us."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:331
|
||||
#: pretix/static/pretixbase/js/asynctask.js:325
|
||||
msgid "Close message"
|
||||
msgstr "Luk besked"
|
||||
|
||||
@@ -810,7 +810,7 @@ msgstr "fra %(currency)s %(price)s"
|
||||
msgid "Please enter the amount the organizer can keep."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:564
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:554
|
||||
msgid "Your local time:"
|
||||
msgstr "Din lokaltid:"
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-09-26 11:16+0000\n"
|
||||
"POT-Creation-Date: 2025-08-19 16:02+0000\n"
|
||||
"PO-Revision-Date: 2025-05-30 11:08+0000\n"
|
||||
"Last-Translator: Raphael Michel <michel@rami.io>\n"
|
||||
"Language-Team: German <https://translate.pretix.eu/projects/pretix/pretix-js/"
|
||||
@@ -345,12 +345,12 @@ msgstr "Nein"
|
||||
msgid "close"
|
||||
msgstr "schließen"
|
||||
|
||||
#: pretix/static/pretixbase/js/addressform.js:90
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:519
|
||||
#: pretix/static/pretixbase/js/addressform.js:105
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:509
|
||||
msgid "required"
|
||||
msgstr "erforderlich"
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:13
|
||||
#: pretix/static/pretixbase/js/asynctask.js:12
|
||||
msgid ""
|
||||
"Your request is currently being processed. Depending on the size of your "
|
||||
"event, this might take up to a few minutes."
|
||||
@@ -358,13 +358,13 @@ msgstr ""
|
||||
"Ihre Anfrage wird nun verarbeitet. Je nach Größe der Veranstaltung kann dies "
|
||||
"einige Minuten dauern."
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:17
|
||||
#: pretix/static/pretixbase/js/asynctask.js:16
|
||||
msgid "Your request has been queued on the server and will soon be processed."
|
||||
msgstr ""
|
||||
"Ihre Anfrage befindet sich beim Server in der Warteschlange und wird bald "
|
||||
"verarbeitet."
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:21
|
||||
#: pretix/static/pretixbase/js/asynctask.js:20
|
||||
msgid ""
|
||||
"Your request arrived on the server but we still wait for it to be processed. "
|
||||
"If this takes longer than two minutes, please contact us or go back in your "
|
||||
@@ -375,14 +375,14 @@ msgstr ""
|
||||
"bitte oder gehen Sie in Ihrem Browser einen Schritt zurück und versuchen es "
|
||||
"erneut."
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:125
|
||||
#: pretix/static/pretixbase/js/asynctask.js:182
|
||||
#: pretix/static/pretixbase/js/asynctask.js:186
|
||||
#: pretix/static/pretixbase/js/asynctask.js:119
|
||||
#: pretix/static/pretixbase/js/asynctask.js:176
|
||||
#: pretix/static/pretixbase/js/asynctask.js:180
|
||||
#: pretix/static/pretixcontrol/js/ui/mail.js:24
|
||||
msgid "An error of type {code} occurred."
|
||||
msgstr "Ein Fehler ist aufgetreten. Fehlercode: {code}"
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:128
|
||||
#: pretix/static/pretixbase/js/asynctask.js:122
|
||||
msgid ""
|
||||
"We currently cannot reach the server, but we keep trying. Last error code: "
|
||||
"{code}"
|
||||
@@ -390,12 +390,12 @@ msgstr ""
|
||||
"Wir können den Server aktuell nicht erreichen, versuchen es aber weiter. "
|
||||
"Letzter Fehlercode: {code}"
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:162
|
||||
#: pretix/static/pretixbase/js/asynctask.js:156
|
||||
#: pretix/static/pretixcontrol/js/ui/mail.js:21
|
||||
msgid "The request took too long. Please try again."
|
||||
msgstr "Diese Anfrage hat zu lange gedauert. Bitte erneut versuchen."
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:188
|
||||
#: pretix/static/pretixbase/js/asynctask.js:182
|
||||
#: pretix/static/pretixcontrol/js/ui/mail.js:26
|
||||
msgid ""
|
||||
"We currently cannot reach the server. Please try again. Error code: {code}"
|
||||
@@ -403,11 +403,11 @@ msgstr ""
|
||||
"Wir können den Server aktuell nicht erreichen. Bitte versuchen Sie es noch "
|
||||
"einmal. Fehlercode: {code}"
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:216
|
||||
#: pretix/static/pretixbase/js/asynctask.js:210
|
||||
msgid "We are processing your request …"
|
||||
msgstr "Wir verarbeiten Ihre Anfrage …"
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:219
|
||||
#: pretix/static/pretixbase/js/asynctask.js:213
|
||||
msgid ""
|
||||
"We are currently sending your request to the server. If this takes longer "
|
||||
"than one minute, please check your internet connection and then reload this "
|
||||
@@ -417,11 +417,11 @@ msgstr ""
|
||||
"dauert, prüfen Sie bitte Ihre Internetverbindung. Danach können Sie diese "
|
||||
"Seite neu laden und es erneut versuchen."
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:276
|
||||
#: pretix/static/pretixbase/js/asynctask.js:270
|
||||
msgid "If this takes longer than a few minutes, please contact us."
|
||||
msgstr "Wenn dies länger als einige Minuten dauert, kontaktiere uns bitte."
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:331
|
||||
#: pretix/static/pretixbase/js/asynctask.js:325
|
||||
msgid "Close message"
|
||||
msgstr "Schließen"
|
||||
|
||||
@@ -771,7 +771,7 @@ msgstr "Sie erhalten %(currency)s %(amount)s zurück"
|
||||
msgid "Please enter the amount the organizer can keep."
|
||||
msgstr "Bitte geben Sie den Betrag ein, den der Veranstalter einbehalten darf."
|
||||
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:564
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:554
|
||||
msgid "Your local time:"
|
||||
msgstr "Deine lokale Zeit:"
|
||||
|
||||
|
||||
+141
-257
@@ -1,143 +1,125 @@
|
||||
ABGEKÜNDIGT
|
||||
2FA
|
||||
ABN
|
||||
AES
|
||||
Absenderadresse
|
||||
Absenderinformation
|
||||
Absendername
|
||||
ABGEKÜNDIGT
|
||||
Admin
|
||||
Adminbereich
|
||||
Admin-Modus
|
||||
Admin-Sitzung
|
||||
Admin-Sitzungen
|
||||
AES
|
||||
Affirm
|
||||
AGPL
|
||||
AGPLv
|
||||
Alipay
|
||||
and
|
||||
API-Meta-Informationen
|
||||
APM
|
||||
App
|
||||
App-Gebühr
|
||||
ApplePay
|
||||
Apps
|
||||
APM
|
||||
as
|
||||
Aufbuchungen
|
||||
aufeinanderfolgenden
|
||||
Aufteilungsliste
|
||||
aufzubuchen
|
||||
auschecken
|
||||
Ausgangsscan
|
||||
Ausgangsscans
|
||||
ausgecheckt
|
||||
ausgeklappt
|
||||
ausgecheckt
|
||||
auswahl
|
||||
Auth
|
||||
Authentication
|
||||
Authenticator-App
|
||||
Authenticator
|
||||
Authentifizierungsmechanismus
|
||||
Autorisierungs
|
||||
Autorisierungscode
|
||||
Autorisierungs-Endpunktes
|
||||
Backend
|
||||
Badge
|
||||
Badge-Druck
|
||||
Badge-Layout
|
||||
Badge-Layouts
|
||||
Badges
|
||||
Bancontact
|
||||
Bank-App
|
||||
BankID
|
||||
Banking-App
|
||||
Banking
|
||||
barcodes
|
||||
Baskisch
|
||||
Bcc
|
||||
BCC-Adresse
|
||||
Bcc-Kopie
|
||||
BCC
|
||||
Beispielevent
|
||||
Beispielproduktvariantenbeschreibung
|
||||
Belarus
|
||||
Benachrichtigungs
|
||||
Benachrichtigungsart
|
||||
Benachrichtigungsarten
|
||||
Benachrichtigungseinstellungen
|
||||
Benachrichtigungs-Einstellungen
|
||||
Benachrichtigungs-E-Mail
|
||||
Benutzer-ID-Feld
|
||||
Benutzer-ID-Felds
|
||||
Bestätigungs-E-Mail
|
||||
Bestellbestätigungs-E-Mail
|
||||
Bestellbestätigungs-E-Mails
|
||||
Berechtigungs
|
||||
Bestätigungs
|
||||
Bestellbestätigungs
|
||||
Bestellungsänderungen
|
||||
Bestellungs-Synchronisation
|
||||
Bestellungs-Synchronisierung
|
||||
Bestellungsstatus
|
||||
Bestellungs
|
||||
bez
|
||||
BezahlCode
|
||||
Bezahlmethode
|
||||
Blackberry
|
||||
BLIK
|
||||
BN-Code
|
||||
Blogpost
|
||||
BN
|
||||
Branding
|
||||
Browsereinstellungen
|
||||
BSD
|
||||
bspw
|
||||
Bokmål
|
||||
Boleto
|
||||
Branding-Informationen
|
||||
Browsereinstellungen
|
||||
BSD-Lizenz
|
||||
bspw
|
||||
Buchhaltungs
|
||||
Bundles
|
||||
Butterfly-Badge
|
||||
Butterfly
|
||||
bzw
|
||||
ca
|
||||
Cc
|
||||
Ceuta
|
||||
Cc
|
||||
chardet
|
||||
charge
|
||||
Charge-ID
|
||||
Checkbox
|
||||
Check-in-App
|
||||
Check-in-Apps
|
||||
Check-in-QR-Code
|
||||
Checkout
|
||||
Chrome
|
||||
Client-ID
|
||||
Client-Secret
|
||||
CODE.txt
|
||||
Community-Übersetzungen
|
||||
Choice
|
||||
Community
|
||||
CONFIRM
|
||||
Connect
|
||||
Cookie-Consent-Management
|
||||
Cookie-Consent-Mechanismus
|
||||
Consent
|
||||
Copyleft
|
||||
Cronjob
|
||||
Cronjob-Komponente
|
||||
Cross-Selling-Bedingung
|
||||
Cross-Selling-Kategorie
|
||||
Cross-Selling-Kategorien
|
||||
Cross-Selling-Schritt
|
||||
Cross
|
||||
csv
|
||||
CSV
|
||||
CSV-Datei
|
||||
CSV-Dateien
|
||||
CSV-Eingabe
|
||||
CSV-Eingabedaten
|
||||
CSV-Import
|
||||
CSV-Input
|
||||
CSV-Lesen
|
||||
CSV-Spalte
|
||||
Customer
|
||||
CZK
|
||||
Debug-Modus
|
||||
Dashboard
|
||||
Datensynchronisation
|
||||
Debug
|
||||
dekodi
|
||||
Desktop-Apps
|
||||
deliverability
|
||||
DNS
|
||||
Di
|
||||
Do
|
||||
Doe
|
||||
Downloadformat
|
||||
Downloadseite
|
||||
Dr
|
||||
Drag-and-Drop-Interfaces
|
||||
Drag
|
||||
Droid
|
||||
Drop
|
||||
DSS
|
||||
Edge
|
||||
Eingangsscan
|
||||
Einlassbuchung
|
||||
Einlassdatum
|
||||
Einlasskontrolle
|
||||
Einlassuhrzeita
|
||||
einzuchecken
|
||||
email
|
||||
E-Mail-Renderer
|
||||
Enterprise-Lizenz
|
||||
Enterprise-Lizenzen
|
||||
Enterprise-Plugin
|
||||
Enterprise-Plugins
|
||||
eps
|
||||
Enterprise
|
||||
EPC
|
||||
EPS
|
||||
eps
|
||||
Erstattungsbetrag
|
||||
Erstattungsliste
|
||||
Erstattungsmethode
|
||||
@@ -145,231 +127,175 @@ Erstattungsoptionen
|
||||
Erstattungsstatus
|
||||
Erstattungsweg
|
||||
erstmalig
|
||||
Erweiterungs
|
||||
etc
|
||||
EU-USt-ID-Nr
|
||||
Event
|
||||
Event-Eigenschaft
|
||||
Eventeingang
|
||||
Event-Erstellung
|
||||
Event-Setup-Tool
|
||||
Event-Ticketing-Software
|
||||
Event-Ticketshop
|
||||
Event-Übersicht
|
||||
Event-Website
|
||||
Eventfirma
|
||||
evtl
|
||||
Explorer
|
||||
FA
|
||||
Favicon
|
||||
F-Droid
|
||||
Footer
|
||||
Footer-Link
|
||||
Footer-Text
|
||||
Galicisch
|
||||
Geocoding
|
||||
Geocoding-Daten
|
||||
Geo-Koordinaten
|
||||
Geräte-ID
|
||||
gehostete
|
||||
geht's
|
||||
GENEXAMPLE
|
||||
Geo
|
||||
geocoding
|
||||
gescannt
|
||||
ggf
|
||||
Ggf
|
||||
GiroCode
|
||||
giropay
|
||||
GPL
|
||||
Grants
|
||||
Gruppierungsspalte
|
||||
Gruppierungswert
|
||||
Gruppierungsspalte
|
||||
Guide
|
||||
Gutscheineinlöser
|
||||
Händler-ID
|
||||
Händler-PayPal-Konto
|
||||
Hardware-Tokengenerator
|
||||
herunterscrollen
|
||||
hochlädst
|
||||
HTML-E-Mail-Renderer
|
||||
HTTPS
|
||||
HTTPS-Verbindungen
|
||||
HTTPS-Website
|
||||
IBAN
|
||||
IBANs
|
||||
iCal
|
||||
ics-Kalenderdatei
|
||||
ics
|
||||
ID
|
||||
iDEAL
|
||||
IDs
|
||||
Inc
|
||||
inkl
|
||||
innen-Badges
|
||||
innenname
|
||||
innennamen
|
||||
innergemeinschaftliche
|
||||
Innergemeinschaftlicher
|
||||
Installations-ID
|
||||
Integrationen
|
||||
Input
|
||||
Installations
|
||||
integrationen
|
||||
intra
|
||||
INV
|
||||
invalidieren
|
||||
invalidiert
|
||||
iOS
|
||||
ISU
|
||||
iOS
|
||||
Itaú
|
||||
iTunes
|
||||
JavaScript
|
||||
JSON-Datei
|
||||
JSON
|
||||
Kategoriebeschreibung
|
||||
Key
|
||||
Klarna
|
||||
Kombitickets
|
||||
Kompatibilitätsmodus
|
||||
Konfigurations
|
||||
Kosovo
|
||||
land
|
||||
landesspezifische
|
||||
Lead-Scanning
|
||||
Leaflet-Kacheln
|
||||
Lead
|
||||
Leaflet
|
||||
Linktext
|
||||
lit
|
||||
Log-ID
|
||||
Logindaten
|
||||
Lösch
|
||||
loszulegen
|
||||
Ltd
|
||||
Macau
|
||||
MapQuest-API-Key
|
||||
max
|
||||
Medien-ID
|
||||
MariaDB
|
||||
MapQuest
|
||||
Melilla
|
||||
Mercado
|
||||
Merchandise
|
||||
Meta
|
||||
Metadaten
|
||||
Meta-Eigenschaft
|
||||
Meta-Eigenschaften
|
||||
Meta-Informationen
|
||||
Mi
|
||||
Mifare
|
||||
min
|
||||
Mitgliedschafts
|
||||
Mitgliedschaftsdauer
|
||||
Mitgliedschafts-Typ
|
||||
Mitgliedschafts-Typen
|
||||
min
|
||||
Mo
|
||||
MobilePay
|
||||
MOTO
|
||||
MOTO-Zahlungen
|
||||
Multibanco
|
||||
Multiple-Choice-Fragen
|
||||
MwSt
|
||||
MyBank
|
||||
name
|
||||
NFC
|
||||
NFC-basierte
|
||||
NFC-Chip
|
||||
NFC-Chips
|
||||
NFC-Medien
|
||||
NFC-Zahlungsmitteln
|
||||
Nr
|
||||
NREI
|
||||
number
|
||||
NXP
|
||||
Objekt-IDs
|
||||
Offline-Scan
|
||||
OK
|
||||
Online-Banking
|
||||
Onlinebanking-Zugangsdaten
|
||||
On
|
||||
Onlinebanking
|
||||
Open
|
||||
OpenCage-API-Key
|
||||
OpenCage
|
||||
OpenID
|
||||
OpenStreetMap
|
||||
Opera
|
||||
Output
|
||||
OXXO
|
||||
Pago
|
||||
parsen
|
||||
Pago
|
||||
Pay
|
||||
PayPal
|
||||
PayPal-Account
|
||||
PayPal-Accounts
|
||||
PayPal-Konto
|
||||
PayPal-Kontos
|
||||
PayPal-Sandbox
|
||||
PayPal-Sandbox-Account
|
||||
PayPal-Seite
|
||||
PayPal-Verkaufs-ID
|
||||
PayPal-Webhook
|
||||
PayPal-Zahlung
|
||||
PayPal-Zahlungen
|
||||
PayPal-Zahlungs-ID
|
||||
PayPals
|
||||
PayU
|
||||
PCI-DSS-Formulare
|
||||
Peppol-Netzwerk
|
||||
Peppol-Teilnehmer-ID
|
||||
Peppol-Teilnehmer-IDs
|
||||
PCI
|
||||
Personalisierung
|
||||
PKCE-Erweiterung
|
||||
PEPPOL
|
||||
PKCE
|
||||
Platzhalterzeichen
|
||||
Play
|
||||
Plugin
|
||||
Plugins
|
||||
POS
|
||||
Postfix
|
||||
PostgreSQL
|
||||
PPRO
|
||||
prefix
|
||||
Prefix
|
||||
pretix
|
||||
pretix-Apps
|
||||
pretix-Benutzerkennung
|
||||
pretixdesk-Apps
|
||||
pretixdesk
|
||||
pretixdroid
|
||||
pretix-Enterprise-Lizenz
|
||||
pretix-Enterprise-Plugins
|
||||
pretix-Entwickler
|
||||
pretix-Entwicklern
|
||||
pretix-Feld
|
||||
pretix-Installation
|
||||
pretix-Konto
|
||||
pretix-Kontos
|
||||
pretix-Logo
|
||||
pretix-Logos
|
||||
pretix-Plugins
|
||||
pretixPOS
|
||||
pretixPRINT
|
||||
pretixPRINT-Version
|
||||
pretixSCAN
|
||||
pretix-Support
|
||||
pretix-Team
|
||||
pretix-Update
|
||||
pretix-Version
|
||||
pretix-Versionen
|
||||
pretix-Widget
|
||||
Produkt-ID
|
||||
Produkt-Metadaten
|
||||
Professional
|
||||
Przelewy
|
||||
pt
|
||||
px
|
||||
QR-Code
|
||||
QR-Code-Bereich
|
||||
QR-Code-Geheimnis
|
||||
QR-Code-Inhalt
|
||||
QR-Code-Reader
|
||||
QR-Codes
|
||||
QR-Farbe
|
||||
Query-Parameter
|
||||
Query
|
||||
QR
|
||||
rabattiert
|
||||
Rabattiert
|
||||
Rabattierung
|
||||
Rechnungs-E-Mail
|
||||
Reader
|
||||
Rechnungs
|
||||
Rechungsdatei
|
||||
Reddit
|
||||
Referer
|
||||
Registrierungs
|
||||
Registrierungsdatum
|
||||
Registrierungs-Details
|
||||
Registrierungsnummer
|
||||
Registrierungsversuche
|
||||
remote
|
||||
Renderer
|
||||
Request
|
||||
Requests
|
||||
Request-URL
|
||||
Reservierungszeitraum
|
||||
reverse
|
||||
Reverse
|
||||
Reverse-Proxy
|
||||
Revisionssicherheit
|
||||
Revolut
|
||||
Revolut-App
|
||||
rückabgewickelt
|
||||
Rundungsdifferenzen
|
||||
Sa
|
||||
Saalplan
|
||||
Sammlungsstücken
|
||||
SAQ
|
||||
SCA
|
||||
Scan
|
||||
Scanning-Apps
|
||||
Scans
|
||||
Scan-Terminals
|
||||
Scan-Typ
|
||||
Scan-Zeitpunkt
|
||||
Scanergebnis
|
||||
Scanning
|
||||
schiefgeht
|
||||
schiefgelaufen
|
||||
Scope
|
||||
@@ -378,37 +304,23 @@ SdI
|
||||
sechsstelligen
|
||||
Secret
|
||||
Security
|
||||
selbst-gehostete
|
||||
SEPA-Bankeinzug
|
||||
SEPA-Bankkonto
|
||||
SEPA-Konten
|
||||
SEPA-Lastschrift
|
||||
SEPA-Lastschriften
|
||||
SEPA-Mandat
|
||||
SEPA-XML
|
||||
Session-ID
|
||||
Selling
|
||||
SEPA
|
||||
Shirts
|
||||
Signaturverfahren
|
||||
Single-Sign-On
|
||||
Single-Sign-On-Dienste
|
||||
Single-Sign-On-Methode
|
||||
Single-Sign-On-Provider
|
||||
Sign
|
||||
Sitzplanmoduls
|
||||
Sitzplatz-ID
|
||||
Sitzplatz-IDs
|
||||
Social-Media-Bild
|
||||
Social
|
||||
Sofort
|
||||
SOFORT
|
||||
Sorry
|
||||
Source
|
||||
Source-Codes
|
||||
SPF-Eintrag
|
||||
SPF
|
||||
SSL
|
||||
SSO
|
||||
SSO-Client
|
||||
SSO-Clients
|
||||
SSO-Provider
|
||||
STARTTLS
|
||||
Steuer-Aufteilungsliste
|
||||
Steuerregel-ID
|
||||
Steuerschuldnerschaft
|
||||
Store
|
||||
Stornierungsanfrage
|
||||
Stornobedingungen
|
||||
Stornobeleg
|
||||
@@ -418,75 +330,58 @@ Stornogebühren
|
||||
Stornos
|
||||
Strg
|
||||
Stripe
|
||||
Stripe-Account
|
||||
Stripe-App
|
||||
Stripe-Dashboard
|
||||
Stripe-Konto
|
||||
Stripe-Kontos
|
||||
Stripe-Modul
|
||||
Stripe-Support
|
||||
Stripe-Test-API
|
||||
Stripes
|
||||
Strong
|
||||
Swish
|
||||
Synchronisations
|
||||
systemweiten
|
||||
Tab
|
||||
tag
|
||||
Teammitglied
|
||||
Teamname
|
||||
Teilnehmer-Badges
|
||||
Telephone
|
||||
Terminal-ID
|
||||
Termin-ID
|
||||
Ticketing
|
||||
Ticketing-Firma
|
||||
Ticket-Output
|
||||
Ticket-QR-Code
|
||||
Timeout
|
||||
To
|
||||
Tokengenerator
|
||||
Toolbar
|
||||
TODO
|
||||
To-Do-Liste
|
||||
TOTP
|
||||
Trace-Nummer
|
||||
Trace
|
||||
Tracking
|
||||
transaktionale
|
||||
Trustly
|
||||
T-Shirts
|
||||
Turnover-Nummer
|
||||
Turnover
|
||||
TWINT
|
||||
txt
|
||||
überbuchen
|
||||
überbucht
|
||||
überbuchten
|
||||
überzahlt
|
||||
Überzahlt
|
||||
ÜBERZAHLT
|
||||
überzahlte
|
||||
Überzahlte
|
||||
Überzahlten
|
||||
uhrzeit
|
||||
UID
|
||||
UID-Basis
|
||||
UID-Schutzfunktion
|
||||
Ultralight
|
||||
umzubuchen
|
||||
ungespeicherte
|
||||
Unkategorisiert
|
||||
unkategorisiert
|
||||
Unkategorisierte
|
||||
unlöschbar
|
||||
unlöschbaren
|
||||
untenstehende
|
||||
untenstehenden
|
||||
Unterzahlt
|
||||
unterzahlt
|
||||
UNTERZAHLT
|
||||
unzugeordnete
|
||||
Unzugeordnete
|
||||
unzugeordneten
|
||||
umzubuchen
|
||||
URIs
|
||||
Ursprüngl
|
||||
USt
|
||||
USt-ID
|
||||
USt-ID-Nr
|
||||
USt-ID-Nummer
|
||||
Überweisungs
|
||||
Überzahlten
|
||||
Validierung
|
||||
Validierungsregeln
|
||||
Varianten-ID
|
||||
Venmo
|
||||
Veranstalterdomain
|
||||
Veranstaltereinstellungen
|
||||
@@ -499,50 +394,39 @@ Veranstalterseite
|
||||
Veranstalterübersicht
|
||||
veranstalterweiten
|
||||
Veranstaltungs
|
||||
Veranstaltungs-Metadaten
|
||||
Veranstalterdomain
|
||||
veranstaltungsweiten
|
||||
Verfügbarkeitsberechnung
|
||||
Verfügbarkeitsstatus
|
||||
Verkaufs-ID
|
||||
Verkkopankki
|
||||
Veröffentlichbarer
|
||||
Verwendungszweck-Postfix
|
||||
VIP-Bereiches
|
||||
Warenkorb-ID
|
||||
Warenkorb-Timeout
|
||||
VIP
|
||||
WebAuthn
|
||||
WebAuthn-Gerät
|
||||
WebAuthn-kompatibler
|
||||
WebAuthn-Token
|
||||
WebAuthn-Unterstützung
|
||||
Webhook
|
||||
Webhooks
|
||||
Webhook-Wiederholungsaufträge
|
||||
Weiterleitungs
|
||||
WeChat
|
||||
WeChat-Zahlung
|
||||
Weiterleitungs-URIs
|
||||
Weiterleitungs-URL
|
||||
Weiterleitungs-URLs
|
||||
WhatsApp
|
||||
Widget
|
||||
Widget-Code
|
||||
xlsx
|
||||
XXX
|
||||
XXXX
|
||||
XXXXX
|
||||
Yubikey
|
||||
Zahlungs
|
||||
Zahlungsbestätigungs-E-Mail
|
||||
Zahlungserinnerungs-E-Mail
|
||||
Zahlungs-ID
|
||||
Zahlungspflichtig
|
||||
Zahlungsbestätigungs
|
||||
Zahlungserinnerungs
|
||||
zahlungspflichtig
|
||||
Zahlungsplugins
|
||||
Zehnerkarten
|
||||
Zeitbasiert
|
||||
zeitbasiert
|
||||
Zeitslotbuchung
|
||||
Zimpler
|
||||
ZIP-Datei
|
||||
ZIP
|
||||
zubuchbaren
|
||||
zurückbuchen
|
||||
zurückgeleitet
|
||||
zurückwechseln
|
||||
zutrittsberechtigt
|
||||
ZVT-Terminal
|
||||
zzgl
|
||||
ZVT
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-09-26 11:16+0000\n"
|
||||
"POT-Creation-Date: 2025-08-19 16:02+0000\n"
|
||||
"PO-Revision-Date: 2025-05-30 11:07+0000\n"
|
||||
"Last-Translator: Raphael Michel <michel@rami.io>\n"
|
||||
"Language-Team: German (informal) <https://translate.pretix.eu/projects/"
|
||||
@@ -345,12 +345,12 @@ msgstr "Nein"
|
||||
msgid "close"
|
||||
msgstr "schließen"
|
||||
|
||||
#: pretix/static/pretixbase/js/addressform.js:90
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:519
|
||||
#: pretix/static/pretixbase/js/addressform.js:105
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:509
|
||||
msgid "required"
|
||||
msgstr "erforderlich"
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:13
|
||||
#: pretix/static/pretixbase/js/asynctask.js:12
|
||||
msgid ""
|
||||
"Your request is currently being processed. Depending on the size of your "
|
||||
"event, this might take up to a few minutes."
|
||||
@@ -358,13 +358,13 @@ msgstr ""
|
||||
"Deine Anfrage wird nun verarbeitet. Je nach Größe der Veranstaltung kann "
|
||||
"dies einige Minuten dauern."
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:17
|
||||
#: pretix/static/pretixbase/js/asynctask.js:16
|
||||
msgid "Your request has been queued on the server and will soon be processed."
|
||||
msgstr ""
|
||||
"Deine Anfrage befindet sich beim Server in der Warteschlange und wird bald "
|
||||
"verarbeitet."
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:21
|
||||
#: pretix/static/pretixbase/js/asynctask.js:20
|
||||
msgid ""
|
||||
"Your request arrived on the server but we still wait for it to be processed. "
|
||||
"If this takes longer than two minutes, please contact us or go back in your "
|
||||
@@ -374,14 +374,14 @@ msgstr ""
|
||||
"verarbeitet. Wenn dies länger als zwei Minuten dauert, kontaktiere uns bitte "
|
||||
"oder gehe in deinem Browser einen Schritt zurück und versuche es erneut."
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:125
|
||||
#: pretix/static/pretixbase/js/asynctask.js:182
|
||||
#: pretix/static/pretixbase/js/asynctask.js:186
|
||||
#: pretix/static/pretixbase/js/asynctask.js:119
|
||||
#: pretix/static/pretixbase/js/asynctask.js:176
|
||||
#: pretix/static/pretixbase/js/asynctask.js:180
|
||||
#: pretix/static/pretixcontrol/js/ui/mail.js:24
|
||||
msgid "An error of type {code} occurred."
|
||||
msgstr "Ein Fehler vom Typ {code} ist aufgetreten."
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:128
|
||||
#: pretix/static/pretixbase/js/asynctask.js:122
|
||||
msgid ""
|
||||
"We currently cannot reach the server, but we keep trying. Last error code: "
|
||||
"{code}"
|
||||
@@ -389,12 +389,12 @@ msgstr ""
|
||||
"Wir können den Server aktuell nicht erreichen, versuchen es aber weiter. "
|
||||
"Letzter Fehlercode: {code}"
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:162
|
||||
#: pretix/static/pretixbase/js/asynctask.js:156
|
||||
#: pretix/static/pretixcontrol/js/ui/mail.js:21
|
||||
msgid "The request took too long. Please try again."
|
||||
msgstr "Diese Anfrage hat zu lange gedauert. Bitte erneut versuchen."
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:188
|
||||
#: pretix/static/pretixbase/js/asynctask.js:182
|
||||
#: pretix/static/pretixcontrol/js/ui/mail.js:26
|
||||
msgid ""
|
||||
"We currently cannot reach the server. Please try again. Error code: {code}"
|
||||
@@ -402,11 +402,11 @@ msgstr ""
|
||||
"Wir können den Server aktuell nicht erreichen. Bitte versuche es noch "
|
||||
"einmal. Fehlercode: {code}"
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:216
|
||||
#: pretix/static/pretixbase/js/asynctask.js:210
|
||||
msgid "We are processing your request …"
|
||||
msgstr "Wir verarbeiten deine Anfrage …"
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:219
|
||||
#: pretix/static/pretixbase/js/asynctask.js:213
|
||||
msgid ""
|
||||
"We are currently sending your request to the server. If this takes longer "
|
||||
"than one minute, please check your internet connection and then reload this "
|
||||
@@ -416,12 +416,12 @@ msgstr ""
|
||||
"dauert, prüfe bitte deine Internetverbindung. Danach kannst du diese Seite "
|
||||
"neu laden und es erneut versuchen."
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:276
|
||||
#: pretix/static/pretixbase/js/asynctask.js:270
|
||||
msgid "If this takes longer than a few minutes, please contact us."
|
||||
msgstr ""
|
||||
"Wenn dies länger als einige Minuten dauert, kontaktieren Sie uns bitte."
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:331
|
||||
#: pretix/static/pretixbase/js/asynctask.js:325
|
||||
msgid "Close message"
|
||||
msgstr "Schließen"
|
||||
|
||||
@@ -771,7 +771,7 @@ msgstr "Du erhältst %(currency)s %(amount)s zurück"
|
||||
msgid "Please enter the amount the organizer can keep."
|
||||
msgstr "Bitte gib den Betrag ein, den der Veranstalter einbehalten darf."
|
||||
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:564
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:554
|
||||
msgid "Your local time:"
|
||||
msgstr "Deine lokale Zeit:"
|
||||
|
||||
|
||||
@@ -1,143 +1,125 @@
|
||||
ABGEKÜNDIGT
|
||||
2FA
|
||||
ABN
|
||||
AES
|
||||
Absenderadresse
|
||||
Absenderinformation
|
||||
Absendername
|
||||
ABGEKÜNDIGT
|
||||
Admin
|
||||
Adminbereich
|
||||
Admin-Modus
|
||||
Admin-Sitzung
|
||||
Admin-Sitzungen
|
||||
AES
|
||||
Affirm
|
||||
AGPL
|
||||
AGPLv
|
||||
Alipay
|
||||
and
|
||||
API-Meta-Informationen
|
||||
APM
|
||||
App
|
||||
App-Gebühr
|
||||
ApplePay
|
||||
Apps
|
||||
APM
|
||||
as
|
||||
Aufbuchungen
|
||||
aufeinanderfolgenden
|
||||
Aufteilungsliste
|
||||
aufzubuchen
|
||||
auschecken
|
||||
Ausgangsscan
|
||||
Ausgangsscans
|
||||
ausgecheckt
|
||||
ausgeklappt
|
||||
ausgecheckt
|
||||
auswahl
|
||||
Auth
|
||||
Authentication
|
||||
Authenticator-App
|
||||
Authenticator
|
||||
Authentifizierungsmechanismus
|
||||
Autorisierungs
|
||||
Autorisierungscode
|
||||
Autorisierungs-Endpunktes
|
||||
Backend
|
||||
Badge
|
||||
Badge-Druck
|
||||
Badge-Layout
|
||||
Badge-Layouts
|
||||
Badges
|
||||
Bancontact
|
||||
Bank-App
|
||||
BankID
|
||||
Banking-App
|
||||
Banking
|
||||
barcodes
|
||||
Baskisch
|
||||
Bcc
|
||||
BCC-Adresse
|
||||
Bcc-Kopie
|
||||
BCC
|
||||
Beispielevent
|
||||
Beispielproduktvariantenbeschreibung
|
||||
Belarus
|
||||
Benachrichtigungs
|
||||
Benachrichtigungsart
|
||||
Benachrichtigungsarten
|
||||
Benachrichtigungseinstellungen
|
||||
Benachrichtigungs-Einstellungen
|
||||
Benachrichtigungs-E-Mail
|
||||
Benutzer-ID-Feld
|
||||
Benutzer-ID-Felds
|
||||
Bestätigungs-E-Mail
|
||||
Bestellbestätigungs-E-Mail
|
||||
Bestellbestätigungs-E-Mails
|
||||
Berechtigungs
|
||||
Bestätigungs
|
||||
Bestellbestätigungs
|
||||
Bestellungsänderungen
|
||||
Bestellungs-Synchronisation
|
||||
Bestellungs-Synchronisierung
|
||||
Bestellungsstatus
|
||||
Bestellungs
|
||||
bez
|
||||
BezahlCode
|
||||
Bezahlmethode
|
||||
Blackberry
|
||||
BLIK
|
||||
BN-Code
|
||||
Blogpost
|
||||
BN
|
||||
Branding
|
||||
Browsereinstellungen
|
||||
BSD
|
||||
bspw
|
||||
Bokmål
|
||||
Boleto
|
||||
Branding-Informationen
|
||||
Browsereinstellungen
|
||||
BSD-Lizenz
|
||||
bspw
|
||||
Buchhaltungs
|
||||
Bundles
|
||||
Butterfly-Badge
|
||||
Butterfly
|
||||
bzw
|
||||
ca
|
||||
Cc
|
||||
Ceuta
|
||||
Cc
|
||||
chardet
|
||||
charge
|
||||
Charge-ID
|
||||
Checkbox
|
||||
Check-in-App
|
||||
Check-in-Apps
|
||||
Check-in-QR-Code
|
||||
Checkout
|
||||
Chrome
|
||||
Client-ID
|
||||
Client-Secret
|
||||
CODE.txt
|
||||
Community-Übersetzungen
|
||||
Choice
|
||||
Community
|
||||
CONFIRM
|
||||
Connect
|
||||
Cookie-Consent-Management
|
||||
Cookie-Consent-Mechanismus
|
||||
Consent
|
||||
Copyleft
|
||||
Cronjob
|
||||
Cronjob-Komponente
|
||||
Cross-Selling-Bedingung
|
||||
Cross-Selling-Kategorie
|
||||
Cross-Selling-Kategorien
|
||||
Cross-Selling-Schritt
|
||||
Cross
|
||||
csv
|
||||
CSV
|
||||
CSV-Datei
|
||||
CSV-Dateien
|
||||
CSV-Eingabe
|
||||
CSV-Eingabedaten
|
||||
CSV-Import
|
||||
CSV-Input
|
||||
CSV-Lesen
|
||||
CSV-Spalte
|
||||
Customer
|
||||
CZK
|
||||
Debug-Modus
|
||||
Dashboard
|
||||
Datensynchronisation
|
||||
Debug
|
||||
dekodi
|
||||
Desktop-Apps
|
||||
deliverability
|
||||
DNS
|
||||
Di
|
||||
Do
|
||||
Doe
|
||||
Downloadformat
|
||||
Downloadseite
|
||||
Dr
|
||||
Drag-and-Drop-Interfaces
|
||||
Drag
|
||||
Droid
|
||||
Drop
|
||||
DSS
|
||||
Edge
|
||||
Eingangsscan
|
||||
Einlassbuchung
|
||||
Einlassdatum
|
||||
Einlasskontrolle
|
||||
Einlassuhrzeita
|
||||
einzuchecken
|
||||
email
|
||||
E-Mail-Renderer
|
||||
Enterprise-Lizenz
|
||||
Enterprise-Lizenzen
|
||||
Enterprise-Plugin
|
||||
Enterprise-Plugins
|
||||
eps
|
||||
Enterprise
|
||||
EPC
|
||||
EPS
|
||||
eps
|
||||
Erstattungsbetrag
|
||||
Erstattungsliste
|
||||
Erstattungsmethode
|
||||
@@ -145,231 +127,175 @@ Erstattungsoptionen
|
||||
Erstattungsstatus
|
||||
Erstattungsweg
|
||||
erstmalig
|
||||
Erweiterungs
|
||||
etc
|
||||
EU-USt-ID-Nr
|
||||
Event
|
||||
Event-Eigenschaft
|
||||
Eventeingang
|
||||
Event-Erstellung
|
||||
Event-Setup-Tool
|
||||
Event-Ticketing-Software
|
||||
Event-Ticketshop
|
||||
Event-Übersicht
|
||||
Event-Website
|
||||
Eventfirma
|
||||
evtl
|
||||
Explorer
|
||||
FA
|
||||
Favicon
|
||||
F-Droid
|
||||
Footer
|
||||
Footer-Link
|
||||
Footer-Text
|
||||
Galicisch
|
||||
Geocoding
|
||||
Geocoding-Daten
|
||||
Geo-Koordinaten
|
||||
Geräte-ID
|
||||
gehostete
|
||||
geht's
|
||||
GENEXAMPLE
|
||||
Geo
|
||||
geocoding
|
||||
gescannt
|
||||
ggf
|
||||
Ggf
|
||||
GiroCode
|
||||
giropay
|
||||
GPL
|
||||
Grants
|
||||
Gruppierungsspalte
|
||||
Gruppierungswert
|
||||
Gruppierungsspalte
|
||||
Guide
|
||||
Gutscheineinlöser
|
||||
Händler-ID
|
||||
Händler-PayPal-Konto
|
||||
Hardware-Tokengenerator
|
||||
herunterscrollen
|
||||
hochlädst
|
||||
HTML-E-Mail-Renderer
|
||||
HTTPS
|
||||
HTTPS-Verbindungen
|
||||
HTTPS-Website
|
||||
IBAN
|
||||
IBANs
|
||||
iCal
|
||||
ics-Kalenderdatei
|
||||
ics
|
||||
ID
|
||||
iDEAL
|
||||
IDs
|
||||
Inc
|
||||
inkl
|
||||
innen-Badges
|
||||
innenname
|
||||
innennamen
|
||||
innergemeinschaftliche
|
||||
Innergemeinschaftlicher
|
||||
Installations-ID
|
||||
Integrationen
|
||||
Input
|
||||
Installations
|
||||
integrationen
|
||||
intra
|
||||
INV
|
||||
invalidieren
|
||||
invalidiert
|
||||
iOS
|
||||
ISU
|
||||
iOS
|
||||
Itaú
|
||||
iTunes
|
||||
JavaScript
|
||||
JSON-Datei
|
||||
JSON
|
||||
Kategoriebeschreibung
|
||||
Key
|
||||
Klarna
|
||||
Kombitickets
|
||||
Kompatibilitätsmodus
|
||||
Konfigurations
|
||||
Kosovo
|
||||
land
|
||||
landesspezifische
|
||||
Lead-Scanning
|
||||
Leaflet-Kacheln
|
||||
Lead
|
||||
Leaflet
|
||||
Linktext
|
||||
lit
|
||||
Log-ID
|
||||
Logindaten
|
||||
Lösch
|
||||
loszulegen
|
||||
Ltd
|
||||
Macau
|
||||
MapQuest-API-Key
|
||||
max
|
||||
Medien-ID
|
||||
MariaDB
|
||||
MapQuest
|
||||
Melilla
|
||||
Mercado
|
||||
Merchandise
|
||||
Meta
|
||||
Metadaten
|
||||
Meta-Eigenschaft
|
||||
Meta-Eigenschaften
|
||||
Meta-Informationen
|
||||
Mi
|
||||
Mifare
|
||||
min
|
||||
Mitgliedschafts
|
||||
Mitgliedschaftsdauer
|
||||
Mitgliedschafts-Typ
|
||||
Mitgliedschafts-Typen
|
||||
min
|
||||
Mo
|
||||
MobilePay
|
||||
MOTO
|
||||
MOTO-Zahlungen
|
||||
Multibanco
|
||||
Multiple-Choice-Fragen
|
||||
MwSt
|
||||
MyBank
|
||||
name
|
||||
NFC
|
||||
NFC-basierte
|
||||
NFC-Chip
|
||||
NFC-Chips
|
||||
NFC-Medien
|
||||
NFC-Zahlungsmitteln
|
||||
Nr
|
||||
NREI
|
||||
number
|
||||
NXP
|
||||
Objekt-IDs
|
||||
Offline-Scan
|
||||
OK
|
||||
Online-Banking
|
||||
Onlinebanking-Zugangsdaten
|
||||
On
|
||||
Onlinebanking
|
||||
Open
|
||||
OpenCage-API-Key
|
||||
OpenCage
|
||||
OpenID
|
||||
OpenStreetMap
|
||||
Opera
|
||||
Output
|
||||
OXXO
|
||||
Pago
|
||||
parsen
|
||||
Pago
|
||||
Pay
|
||||
PayPal
|
||||
PayPal-Account
|
||||
PayPal-Accounts
|
||||
PayPal-Konto
|
||||
PayPal-Kontos
|
||||
PayPal-Sandbox
|
||||
PayPal-Sandbox-Account
|
||||
PayPal-Seite
|
||||
PayPal-Verkaufs-ID
|
||||
PayPal-Webhook
|
||||
PayPal-Zahlung
|
||||
PayPal-Zahlungen
|
||||
PayPal-Zahlungs-ID
|
||||
PayPals
|
||||
PayU
|
||||
PCI-DSS-Formulare
|
||||
Peppol-Netzwerk
|
||||
Peppol-Teilnehmer-ID
|
||||
Peppol-Teilnehmer-IDs
|
||||
PCI
|
||||
Personalisierung
|
||||
PKCE-Erweiterung
|
||||
PEPPOL
|
||||
PKCE
|
||||
Platzhalterzeichen
|
||||
Play
|
||||
Plugin
|
||||
Plugins
|
||||
POS
|
||||
Postfix
|
||||
PostgreSQL
|
||||
PPRO
|
||||
prefix
|
||||
Prefix
|
||||
pretix
|
||||
pretix-Apps
|
||||
pretix-Benutzerkennung
|
||||
pretixdesk-Apps
|
||||
pretixdesk
|
||||
pretixdroid
|
||||
pretix-Enterprise-Lizenz
|
||||
pretix-Enterprise-Plugins
|
||||
pretix-Entwickler
|
||||
pretix-Entwicklern
|
||||
pretix-Feld
|
||||
pretix-Installation
|
||||
pretix-Konto
|
||||
pretix-Kontos
|
||||
pretix-Logo
|
||||
pretix-Logos
|
||||
pretix-Plugins
|
||||
pretixPOS
|
||||
pretixPRINT
|
||||
pretixPRINT-Version
|
||||
pretixSCAN
|
||||
pretix-Support
|
||||
pretix-Team
|
||||
pretix-Update
|
||||
pretix-Version
|
||||
pretix-Versionen
|
||||
pretix-Widget
|
||||
Produkt-ID
|
||||
Produkt-Metadaten
|
||||
Professional
|
||||
Przelewy
|
||||
pt
|
||||
px
|
||||
QR-Code
|
||||
QR-Code-Bereich
|
||||
QR-Code-Geheimnis
|
||||
QR-Code-Inhalt
|
||||
QR-Code-Reader
|
||||
QR-Codes
|
||||
QR-Farbe
|
||||
Query-Parameter
|
||||
Query
|
||||
QR
|
||||
rabattiert
|
||||
Rabattiert
|
||||
Rabattierung
|
||||
Rechnungs-E-Mail
|
||||
Reader
|
||||
Rechnungs
|
||||
Rechungsdatei
|
||||
Reddit
|
||||
Referer
|
||||
Registrierungs
|
||||
Registrierungsdatum
|
||||
Registrierungs-Details
|
||||
Registrierungsnummer
|
||||
Registrierungsversuche
|
||||
remote
|
||||
Renderer
|
||||
Request
|
||||
Requests
|
||||
Request-URL
|
||||
Reservierungszeitraum
|
||||
reverse
|
||||
Reverse
|
||||
Reverse-Proxy
|
||||
Revisionssicherheit
|
||||
Revolut
|
||||
Revolut-App
|
||||
rückabgewickelt
|
||||
Rundungsdifferenzen
|
||||
Sa
|
||||
Saalplan
|
||||
Sammlungsstücken
|
||||
SAQ
|
||||
SCA
|
||||
Scan
|
||||
Scanning-Apps
|
||||
Scans
|
||||
Scan-Terminals
|
||||
Scan-Typ
|
||||
Scan-Zeitpunkt
|
||||
Scanergebnis
|
||||
Scanning
|
||||
schiefgeht
|
||||
schiefgelaufen
|
||||
Scope
|
||||
@@ -378,37 +304,23 @@ SdI
|
||||
sechsstelligen
|
||||
Secret
|
||||
Security
|
||||
selbst-gehostete
|
||||
SEPA-Bankeinzug
|
||||
SEPA-Bankkonto
|
||||
SEPA-Konten
|
||||
SEPA-Lastschrift
|
||||
SEPA-Lastschriften
|
||||
SEPA-Mandat
|
||||
SEPA-XML
|
||||
Session-ID
|
||||
Selling
|
||||
SEPA
|
||||
Shirts
|
||||
Signaturverfahren
|
||||
Single-Sign-On
|
||||
Single-Sign-On-Dienste
|
||||
Single-Sign-On-Methode
|
||||
Single-Sign-On-Provider
|
||||
Sign
|
||||
Sitzplanmoduls
|
||||
Sitzplatz-ID
|
||||
Sitzplatz-IDs
|
||||
Social-Media-Bild
|
||||
Social
|
||||
Sofort
|
||||
SOFORT
|
||||
Sorry
|
||||
Source
|
||||
Source-Codes
|
||||
SPF-Eintrag
|
||||
SPF
|
||||
SSL
|
||||
SSO
|
||||
SSO-Client
|
||||
SSO-Clients
|
||||
SSO-Provider
|
||||
STARTTLS
|
||||
Steuer-Aufteilungsliste
|
||||
Steuerregel-ID
|
||||
Steuerschuldnerschaft
|
||||
Store
|
||||
Stornierungsanfrage
|
||||
Stornobedingungen
|
||||
Stornobeleg
|
||||
@@ -418,75 +330,58 @@ Stornogebühren
|
||||
Stornos
|
||||
Strg
|
||||
Stripe
|
||||
Stripe-Account
|
||||
Stripe-App
|
||||
Stripe-Dashboard
|
||||
Stripe-Konto
|
||||
Stripe-Kontos
|
||||
Stripe-Modul
|
||||
Stripe-Support
|
||||
Stripe-Test-API
|
||||
Stripes
|
||||
Strong
|
||||
Swish
|
||||
Synchronisations
|
||||
systemweiten
|
||||
Tab
|
||||
tag
|
||||
Teammitglied
|
||||
Teamname
|
||||
Teilnehmer-Badges
|
||||
Telephone
|
||||
Terminal-ID
|
||||
Termin-ID
|
||||
Ticketing
|
||||
Ticketing-Firma
|
||||
Ticket-Output
|
||||
Ticket-QR-Code
|
||||
Timeout
|
||||
To
|
||||
Tokengenerator
|
||||
Toolbar
|
||||
TODO
|
||||
To-Do-Liste
|
||||
TOTP
|
||||
Trace-Nummer
|
||||
Trace
|
||||
Tracking
|
||||
transaktionale
|
||||
Trustly
|
||||
T-Shirts
|
||||
Turnover-Nummer
|
||||
Turnover
|
||||
TWINT
|
||||
txt
|
||||
überbuchen
|
||||
überbucht
|
||||
überbuchten
|
||||
überzahlt
|
||||
Überzahlt
|
||||
ÜBERZAHLT
|
||||
überzahlte
|
||||
Überzahlte
|
||||
Überzahlten
|
||||
uhrzeit
|
||||
UID
|
||||
UID-Basis
|
||||
UID-Schutzfunktion
|
||||
Ultralight
|
||||
umzubuchen
|
||||
ungespeicherte
|
||||
Unkategorisiert
|
||||
unkategorisiert
|
||||
Unkategorisierte
|
||||
unlöschbar
|
||||
unlöschbaren
|
||||
untenstehende
|
||||
untenstehenden
|
||||
Unterzahlt
|
||||
unterzahlt
|
||||
UNTERZAHLT
|
||||
unzugeordnete
|
||||
Unzugeordnete
|
||||
unzugeordneten
|
||||
umzubuchen
|
||||
URIs
|
||||
Ursprüngl
|
||||
USt
|
||||
USt-ID
|
||||
USt-ID-Nr
|
||||
USt-ID-Nummer
|
||||
Überweisungs
|
||||
Überzahlten
|
||||
Validierung
|
||||
Validierungsregeln
|
||||
Varianten-ID
|
||||
Venmo
|
||||
Veranstalterdomain
|
||||
Veranstaltereinstellungen
|
||||
@@ -499,50 +394,39 @@ Veranstalterseite
|
||||
Veranstalterübersicht
|
||||
veranstalterweiten
|
||||
Veranstaltungs
|
||||
Veranstaltungs-Metadaten
|
||||
Veranstalterdomain
|
||||
veranstaltungsweiten
|
||||
Verfügbarkeitsberechnung
|
||||
Verfügbarkeitsstatus
|
||||
Verkaufs-ID
|
||||
Verkkopankki
|
||||
Veröffentlichbarer
|
||||
Verwendungszweck-Postfix
|
||||
VIP-Bereiches
|
||||
Warenkorb-ID
|
||||
Warenkorb-Timeout
|
||||
VIP
|
||||
WebAuthn
|
||||
WebAuthn-Gerät
|
||||
WebAuthn-kompatibler
|
||||
WebAuthn-Token
|
||||
WebAuthn-Unterstützung
|
||||
Webhook
|
||||
Webhooks
|
||||
Webhook-Wiederholungsaufträge
|
||||
Weiterleitungs
|
||||
WeChat
|
||||
WeChat-Zahlung
|
||||
Weiterleitungs-URIs
|
||||
Weiterleitungs-URL
|
||||
Weiterleitungs-URLs
|
||||
WhatsApp
|
||||
Widget
|
||||
Widget-Code
|
||||
xlsx
|
||||
XXX
|
||||
XXXX
|
||||
XXXXX
|
||||
Yubikey
|
||||
Zahlungs
|
||||
Zahlungsbestätigungs-E-Mail
|
||||
Zahlungserinnerungs-E-Mail
|
||||
Zahlungs-ID
|
||||
Zahlungspflichtig
|
||||
Zahlungsbestätigungs
|
||||
Zahlungserinnerungs
|
||||
zahlungspflichtig
|
||||
Zahlungsplugins
|
||||
Zehnerkarten
|
||||
Zeitbasiert
|
||||
zeitbasiert
|
||||
Zeitslotbuchung
|
||||
Zimpler
|
||||
ZIP-Datei
|
||||
ZIP
|
||||
zubuchbaren
|
||||
zurückbuchen
|
||||
zurückgeleitet
|
||||
zurückwechseln
|
||||
zutrittsberechtigt
|
||||
ZVT-Terminal
|
||||
zzgl
|
||||
ZVT
|
||||
|
||||
+894
-944
File diff suppressed because it is too large
Load Diff
@@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-09-26 11:16+0000\n"
|
||||
"POT-Creation-Date: 2025-08-19 16:36+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@@ -344,68 +344,68 @@ msgstr ""
|
||||
msgid "close"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/addressform.js:90
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:519
|
||||
#: pretix/static/pretixbase/js/addressform.js:105
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:509
|
||||
msgid "required"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:13
|
||||
#: pretix/static/pretixbase/js/asynctask.js:12
|
||||
msgid ""
|
||||
"Your request is currently being processed. Depending on the size of your "
|
||||
"event, this might take up to a few minutes."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:17
|
||||
#: pretix/static/pretixbase/js/asynctask.js:16
|
||||
msgid "Your request has been queued on the server and will soon be processed."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:21
|
||||
#: pretix/static/pretixbase/js/asynctask.js:20
|
||||
msgid ""
|
||||
"Your request arrived on the server but we still wait for it to be processed. "
|
||||
"If this takes longer than two minutes, please contact us or go back in your "
|
||||
"browser and try again."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:125
|
||||
#: pretix/static/pretixbase/js/asynctask.js:182
|
||||
#: pretix/static/pretixbase/js/asynctask.js:186
|
||||
#: pretix/static/pretixbase/js/asynctask.js:119
|
||||
#: pretix/static/pretixbase/js/asynctask.js:176
|
||||
#: pretix/static/pretixbase/js/asynctask.js:180
|
||||
#: pretix/static/pretixcontrol/js/ui/mail.js:24
|
||||
msgid "An error of type {code} occurred."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:128
|
||||
#: pretix/static/pretixbase/js/asynctask.js:122
|
||||
msgid ""
|
||||
"We currently cannot reach the server, but we keep trying. Last error code: "
|
||||
"{code}"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:162
|
||||
#: pretix/static/pretixbase/js/asynctask.js:156
|
||||
#: pretix/static/pretixcontrol/js/ui/mail.js:21
|
||||
msgid "The request took too long. Please try again."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:188
|
||||
#: pretix/static/pretixbase/js/asynctask.js:182
|
||||
#: pretix/static/pretixcontrol/js/ui/mail.js:26
|
||||
msgid ""
|
||||
"We currently cannot reach the server. Please try again. Error code: {code}"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:216
|
||||
#: pretix/static/pretixbase/js/asynctask.js:210
|
||||
msgid "We are processing your request …"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:219
|
||||
#: pretix/static/pretixbase/js/asynctask.js:213
|
||||
msgid ""
|
||||
"We are currently sending your request to the server. If this takes longer "
|
||||
"than one minute, please check your internet connection and then reload this "
|
||||
"page and try again."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:276
|
||||
#: pretix/static/pretixbase/js/asynctask.js:270
|
||||
msgid "If this takes longer than a few minutes, please contact us."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:331
|
||||
#: pretix/static/pretixbase/js/asynctask.js:325
|
||||
msgid "Close message"
|
||||
msgstr ""
|
||||
|
||||
@@ -740,7 +740,7 @@ msgstr ""
|
||||
msgid "Please enter the amount the organizer can keep."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:564
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:554
|
||||
msgid "Your local time:"
|
||||
msgstr ""
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-09-26 11:16+0000\n"
|
||||
"POT-Creation-Date: 2025-08-19 16:02+0000\n"
|
||||
"PO-Revision-Date: 2024-12-22 00:00+0000\n"
|
||||
"Last-Translator: Dimitris Tsimpidis <tsimpidisd@gmail.com>\n"
|
||||
"Language-Team: Greek <https://translate.pretix.eu/projects/pretix/pretix-js/"
|
||||
@@ -361,14 +361,14 @@ msgstr "Όχι"
|
||||
msgid "close"
|
||||
msgstr "Κλείσιμο"
|
||||
|
||||
#: pretix/static/pretixbase/js/addressform.js:90
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:519
|
||||
#: pretix/static/pretixbase/js/addressform.js:105
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:509
|
||||
#, fuzzy
|
||||
#| msgid "Cart expired"
|
||||
msgid "required"
|
||||
msgstr "Το καλάθι έληξε"
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:13
|
||||
#: pretix/static/pretixbase/js/asynctask.js:12
|
||||
#, fuzzy
|
||||
#| msgid ""
|
||||
#| "Your request has been queued on the server and will now be processed. "
|
||||
@@ -381,7 +381,7 @@ msgstr ""
|
||||
"επεξεργασία. Ανάλογα με το μέγεθος του συμβάντος σας, αυτό μπορεί να "
|
||||
"διαρκέσει μερικά λεπτά."
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:17
|
||||
#: pretix/static/pretixbase/js/asynctask.js:16
|
||||
#, fuzzy
|
||||
#| msgid ""
|
||||
#| "Your request has been queued on the server and will now be processed. "
|
||||
@@ -392,7 +392,7 @@ msgstr ""
|
||||
"επεξεργασία. Ανάλογα με το μέγεθος του συμβάντος σας, αυτό μπορεί να "
|
||||
"διαρκέσει μερικά λεπτά."
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:21
|
||||
#: pretix/static/pretixbase/js/asynctask.js:20
|
||||
msgid ""
|
||||
"Your request arrived on the server but we still wait for it to be processed. "
|
||||
"If this takes longer than two minutes, please contact us or go back in your "
|
||||
@@ -402,14 +402,14 @@ msgstr ""
|
||||
"του. Αν αυτό διαρκεί περισσότερο από δύο λεπτά, επικοινωνήστε μαζί μας ή "
|
||||
"επιστρέψτε στο πρόγραμμα περιήγησής σας και δοκιμάστε ξανά."
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:125
|
||||
#: pretix/static/pretixbase/js/asynctask.js:182
|
||||
#: pretix/static/pretixbase/js/asynctask.js:186
|
||||
#: pretix/static/pretixbase/js/asynctask.js:119
|
||||
#: pretix/static/pretixbase/js/asynctask.js:176
|
||||
#: pretix/static/pretixbase/js/asynctask.js:180
|
||||
#: pretix/static/pretixcontrol/js/ui/mail.js:24
|
||||
msgid "An error of type {code} occurred."
|
||||
msgstr "Παρουσιάστηκε σφάλμα τύπου {code}."
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:128
|
||||
#: pretix/static/pretixbase/js/asynctask.js:122
|
||||
msgid ""
|
||||
"We currently cannot reach the server, but we keep trying. Last error code: "
|
||||
"{code}"
|
||||
@@ -417,14 +417,14 @@ msgstr ""
|
||||
"Αυτήν τη στιγμή δεν μπορούμε να φτάσουμε στο διακομιστή, αλλά συνεχίζουμε να "
|
||||
"προσπαθούμε. Τελευταίος κωδικός σφάλματος: {code}"
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:162
|
||||
#: pretix/static/pretixbase/js/asynctask.js:156
|
||||
#: pretix/static/pretixcontrol/js/ui/mail.js:21
|
||||
#, fuzzy
|
||||
#| msgid "The request took to long. Please try again."
|
||||
msgid "The request took too long. Please try again."
|
||||
msgstr "Το αίτημα διήρκησε πολύ. Παρακαλώ προσπαθήστε ξανά."
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:188
|
||||
#: pretix/static/pretixbase/js/asynctask.js:182
|
||||
#: pretix/static/pretixcontrol/js/ui/mail.js:26
|
||||
msgid ""
|
||||
"We currently cannot reach the server. Please try again. Error code: {code}"
|
||||
@@ -432,11 +432,11 @@ msgstr ""
|
||||
"Αυτήν τη στιγμή δεν μπορούμε να συνδεθούμε με το διακομιστή. Παρακαλώ "
|
||||
"προσπαθήστε ξανά. Κωδικός σφάλματος: {code}"
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:216
|
||||
#: pretix/static/pretixbase/js/asynctask.js:210
|
||||
msgid "We are processing your request …"
|
||||
msgstr "Επεξεργαζόμαστε το αίτημά σας …"
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:219
|
||||
#: pretix/static/pretixbase/js/asynctask.js:213
|
||||
msgid ""
|
||||
"We are currently sending your request to the server. If this takes longer "
|
||||
"than one minute, please check your internet connection and then reload this "
|
||||
@@ -446,11 +446,11 @@ msgstr ""
|
||||
"περισσότερο από ένα λεπτό, ελέγξτε τη σύνδεσή σας στο διαδίκτυο και στη "
|
||||
"συνέχεια επαναλάβετε τη φόρτωση αυτής της σελίδας και δοκιμάστε ξανά."
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:276
|
||||
#: pretix/static/pretixbase/js/asynctask.js:270
|
||||
msgid "If this takes longer than a few minutes, please contact us."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:331
|
||||
#: pretix/static/pretixbase/js/asynctask.js:325
|
||||
msgid "Close message"
|
||||
msgstr "Κλείσιμο μηνύματος"
|
||||
|
||||
@@ -820,7 +820,7 @@ msgstr "απο %(currency)s %(price)s"
|
||||
msgid "Please enter the amount the organizer can keep."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:564
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:554
|
||||
msgid "Your local time:"
|
||||
msgstr ""
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-09-26 11:16+0000\n"
|
||||
"POT-Creation-Date: 2025-08-19 16:02+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@@ -344,68 +344,68 @@ msgstr ""
|
||||
msgid "close"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/addressform.js:90
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:519
|
||||
#: pretix/static/pretixbase/js/addressform.js:105
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:509
|
||||
msgid "required"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:13
|
||||
#: pretix/static/pretixbase/js/asynctask.js:12
|
||||
msgid ""
|
||||
"Your request is currently being processed. Depending on the size of your "
|
||||
"event, this might take up to a few minutes."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:17
|
||||
#: pretix/static/pretixbase/js/asynctask.js:16
|
||||
msgid "Your request has been queued on the server and will soon be processed."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:21
|
||||
#: pretix/static/pretixbase/js/asynctask.js:20
|
||||
msgid ""
|
||||
"Your request arrived on the server but we still wait for it to be processed. "
|
||||
"If this takes longer than two minutes, please contact us or go back in your "
|
||||
"browser and try again."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:125
|
||||
#: pretix/static/pretixbase/js/asynctask.js:182
|
||||
#: pretix/static/pretixbase/js/asynctask.js:186
|
||||
#: pretix/static/pretixbase/js/asynctask.js:119
|
||||
#: pretix/static/pretixbase/js/asynctask.js:176
|
||||
#: pretix/static/pretixbase/js/asynctask.js:180
|
||||
#: pretix/static/pretixcontrol/js/ui/mail.js:24
|
||||
msgid "An error of type {code} occurred."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:128
|
||||
#: pretix/static/pretixbase/js/asynctask.js:122
|
||||
msgid ""
|
||||
"We currently cannot reach the server, but we keep trying. Last error code: "
|
||||
"{code}"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:162
|
||||
#: pretix/static/pretixbase/js/asynctask.js:156
|
||||
#: pretix/static/pretixcontrol/js/ui/mail.js:21
|
||||
msgid "The request took too long. Please try again."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:188
|
||||
#: pretix/static/pretixbase/js/asynctask.js:182
|
||||
#: pretix/static/pretixcontrol/js/ui/mail.js:26
|
||||
msgid ""
|
||||
"We currently cannot reach the server. Please try again. Error code: {code}"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:216
|
||||
#: pretix/static/pretixbase/js/asynctask.js:210
|
||||
msgid "We are processing your request …"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:219
|
||||
#: pretix/static/pretixbase/js/asynctask.js:213
|
||||
msgid ""
|
||||
"We are currently sending your request to the server. If this takes longer "
|
||||
"than one minute, please check your internet connection and then reload this "
|
||||
"page and try again."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:276
|
||||
#: pretix/static/pretixbase/js/asynctask.js:270
|
||||
msgid "If this takes longer than a few minutes, please contact us."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:331
|
||||
#: pretix/static/pretixbase/js/asynctask.js:325
|
||||
msgid "Close message"
|
||||
msgstr ""
|
||||
|
||||
@@ -740,7 +740,7 @@ msgstr ""
|
||||
msgid "Please enter the amount the organizer can keep."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:564
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:554
|
||||
msgid "Your local time:"
|
||||
msgstr ""
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-09-26 11:16+0000\n"
|
||||
"POT-Creation-Date: 2025-08-19 16:02+0000\n"
|
||||
"PO-Revision-Date: 2025-05-30 11:15+0000\n"
|
||||
"Last-Translator: CVZ-es <damien.bremont@casadevelazquez.org>\n"
|
||||
"Language-Team: Spanish <https://translate.pretix.eu/projects/pretix/pretix-"
|
||||
@@ -345,12 +345,12 @@ msgstr "No"
|
||||
msgid "close"
|
||||
msgstr "cerrar"
|
||||
|
||||
#: pretix/static/pretixbase/js/addressform.js:90
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:519
|
||||
#: pretix/static/pretixbase/js/addressform.js:105
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:509
|
||||
msgid "required"
|
||||
msgstr "campo requerido"
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:13
|
||||
#: pretix/static/pretixbase/js/asynctask.js:12
|
||||
msgid ""
|
||||
"Your request is currently being processed. Depending on the size of your "
|
||||
"event, this might take up to a few minutes."
|
||||
@@ -358,11 +358,11 @@ msgstr ""
|
||||
"Su solicitud está siendo procesada. Esto puede tardar varios minutos, "
|
||||
"dependiendo del tamaño de su evento."
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:17
|
||||
#: pretix/static/pretixbase/js/asynctask.js:16
|
||||
msgid "Your request has been queued on the server and will soon be processed."
|
||||
msgstr "Su solicitud ha sido enviada al servidor y será procesada en breve."
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:21
|
||||
#: pretix/static/pretixbase/js/asynctask.js:20
|
||||
msgid ""
|
||||
"Your request arrived on the server but we still wait for it to be processed. "
|
||||
"If this takes longer than two minutes, please contact us or go back in your "
|
||||
@@ -372,14 +372,14 @@ msgstr ""
|
||||
"Si toma más de dos minutos, por favor contáctenos o regrese a la página "
|
||||
"anterior en su navegador e intente de nuevo."
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:125
|
||||
#: pretix/static/pretixbase/js/asynctask.js:182
|
||||
#: pretix/static/pretixbase/js/asynctask.js:186
|
||||
#: pretix/static/pretixbase/js/asynctask.js:119
|
||||
#: pretix/static/pretixbase/js/asynctask.js:176
|
||||
#: pretix/static/pretixbase/js/asynctask.js:180
|
||||
#: pretix/static/pretixcontrol/js/ui/mail.js:24
|
||||
msgid "An error of type {code} occurred."
|
||||
msgstr "Ha ocurrido un error de tipo {code}."
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:128
|
||||
#: pretix/static/pretixbase/js/asynctask.js:122
|
||||
msgid ""
|
||||
"We currently cannot reach the server, but we keep trying. Last error code: "
|
||||
"{code}"
|
||||
@@ -387,12 +387,12 @@ msgstr ""
|
||||
"Ahora mismo no podemos contactar con el servidor, pero lo seguimos "
|
||||
"intentando. El último código de error fue: {code}"
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:162
|
||||
#: pretix/static/pretixbase/js/asynctask.js:156
|
||||
#: pretix/static/pretixcontrol/js/ui/mail.js:21
|
||||
msgid "The request took too long. Please try again."
|
||||
msgstr "La solicitud ha tomado demasiado tiempo. Por favor, intente de nuevo."
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:188
|
||||
#: pretix/static/pretixbase/js/asynctask.js:182
|
||||
#: pretix/static/pretixcontrol/js/ui/mail.js:26
|
||||
msgid ""
|
||||
"We currently cannot reach the server. Please try again. Error code: {code}"
|
||||
@@ -400,11 +400,11 @@ msgstr ""
|
||||
"Ahora mismo no podemos contactar con el servidor. Por favor, intente de "
|
||||
"nuevo. Código de error: {code}"
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:216
|
||||
#: pretix/static/pretixbase/js/asynctask.js:210
|
||||
msgid "We are processing your request …"
|
||||
msgstr "Estamos procesando su solicitud…"
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:219
|
||||
#: pretix/static/pretixbase/js/asynctask.js:213
|
||||
msgid ""
|
||||
"We are currently sending your request to the server. If this takes longer "
|
||||
"than one minute, please check your internet connection and then reload this "
|
||||
@@ -414,11 +414,11 @@ msgstr ""
|
||||
"minuto, por favor, revise su conexión a Internet, recargue la página e "
|
||||
"intente nuevamente."
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:276
|
||||
#: pretix/static/pretixbase/js/asynctask.js:270
|
||||
msgid "If this takes longer than a few minutes, please contact us."
|
||||
msgstr "Si tarda más de unos minutos, póngase en contacto con nosotros."
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:331
|
||||
#: pretix/static/pretixbase/js/asynctask.js:325
|
||||
msgid "Close message"
|
||||
msgstr "Cerrar mensaje"
|
||||
|
||||
@@ -768,7 +768,7 @@ msgstr "Obtienes %(currency)s %(price)s de vuelta"
|
||||
msgid "Please enter the amount the organizer can keep."
|
||||
msgstr "Por favor, ingrese el importe que el organizador puede quedarse."
|
||||
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:564
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:554
|
||||
msgid "Your local time:"
|
||||
msgstr "Su hora local:"
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-09-26 11:16+0000\n"
|
||||
"POT-Creation-Date: 2025-08-19 16:02+0000\n"
|
||||
"PO-Revision-Date: 2025-08-04 14:16+0200\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
@@ -345,68 +345,68 @@ msgstr ""
|
||||
msgid "close"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/addressform.js:90
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:519
|
||||
#: pretix/static/pretixbase/js/addressform.js:105
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:509
|
||||
msgid "required"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:13
|
||||
#: pretix/static/pretixbase/js/asynctask.js:12
|
||||
msgid ""
|
||||
"Your request is currently being processed. Depending on the size of your "
|
||||
"event, this might take up to a few minutes."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:17
|
||||
#: pretix/static/pretixbase/js/asynctask.js:16
|
||||
msgid "Your request has been queued on the server and will soon be processed."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:21
|
||||
#: pretix/static/pretixbase/js/asynctask.js:20
|
||||
msgid ""
|
||||
"Your request arrived on the server but we still wait for it to be processed. "
|
||||
"If this takes longer than two minutes, please contact us or go back in your "
|
||||
"browser and try again."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:125
|
||||
#: pretix/static/pretixbase/js/asynctask.js:182
|
||||
#: pretix/static/pretixbase/js/asynctask.js:186
|
||||
#: pretix/static/pretixbase/js/asynctask.js:119
|
||||
#: pretix/static/pretixbase/js/asynctask.js:176
|
||||
#: pretix/static/pretixbase/js/asynctask.js:180
|
||||
#: pretix/static/pretixcontrol/js/ui/mail.js:24
|
||||
msgid "An error of type {code} occurred."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:128
|
||||
#: pretix/static/pretixbase/js/asynctask.js:122
|
||||
msgid ""
|
||||
"We currently cannot reach the server, but we keep trying. Last error code: "
|
||||
"{code}"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:162
|
||||
#: pretix/static/pretixbase/js/asynctask.js:156
|
||||
#: pretix/static/pretixcontrol/js/ui/mail.js:21
|
||||
msgid "The request took too long. Please try again."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:188
|
||||
#: pretix/static/pretixbase/js/asynctask.js:182
|
||||
#: pretix/static/pretixcontrol/js/ui/mail.js:26
|
||||
msgid ""
|
||||
"We currently cannot reach the server. Please try again. Error code: {code}"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:216
|
||||
#: pretix/static/pretixbase/js/asynctask.js:210
|
||||
msgid "We are processing your request …"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:219
|
||||
#: pretix/static/pretixbase/js/asynctask.js:213
|
||||
msgid ""
|
||||
"We are currently sending your request to the server. If this takes longer "
|
||||
"than one minute, please check your internet connection and then reload this "
|
||||
"page and try again."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:276
|
||||
#: pretix/static/pretixbase/js/asynctask.js:270
|
||||
msgid "If this takes longer than a few minutes, please contact us."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:331
|
||||
#: pretix/static/pretixbase/js/asynctask.js:325
|
||||
msgid "Close message"
|
||||
msgstr ""
|
||||
|
||||
@@ -741,7 +741,7 @@ msgstr ""
|
||||
msgid "Please enter the amount the organizer can keep."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:564
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:554
|
||||
msgid "Your local time:"
|
||||
msgstr ""
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-09-26 11:16+0000\n"
|
||||
"POT-Creation-Date: 2025-08-19 16:02+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@@ -344,68 +344,68 @@ msgstr ""
|
||||
msgid "close"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/addressform.js:90
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:519
|
||||
#: pretix/static/pretixbase/js/addressform.js:105
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:509
|
||||
msgid "required"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:13
|
||||
#: pretix/static/pretixbase/js/asynctask.js:12
|
||||
msgid ""
|
||||
"Your request is currently being processed. Depending on the size of your "
|
||||
"event, this might take up to a few minutes."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:17
|
||||
#: pretix/static/pretixbase/js/asynctask.js:16
|
||||
msgid "Your request has been queued on the server and will soon be processed."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:21
|
||||
#: pretix/static/pretixbase/js/asynctask.js:20
|
||||
msgid ""
|
||||
"Your request arrived on the server but we still wait for it to be processed. "
|
||||
"If this takes longer than two minutes, please contact us or go back in your "
|
||||
"browser and try again."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:125
|
||||
#: pretix/static/pretixbase/js/asynctask.js:182
|
||||
#: pretix/static/pretixbase/js/asynctask.js:186
|
||||
#: pretix/static/pretixbase/js/asynctask.js:119
|
||||
#: pretix/static/pretixbase/js/asynctask.js:176
|
||||
#: pretix/static/pretixbase/js/asynctask.js:180
|
||||
#: pretix/static/pretixcontrol/js/ui/mail.js:24
|
||||
msgid "An error of type {code} occurred."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:128
|
||||
#: pretix/static/pretixbase/js/asynctask.js:122
|
||||
msgid ""
|
||||
"We currently cannot reach the server, but we keep trying. Last error code: "
|
||||
"{code}"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:162
|
||||
#: pretix/static/pretixbase/js/asynctask.js:156
|
||||
#: pretix/static/pretixcontrol/js/ui/mail.js:21
|
||||
msgid "The request took too long. Please try again."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:188
|
||||
#: pretix/static/pretixbase/js/asynctask.js:182
|
||||
#: pretix/static/pretixcontrol/js/ui/mail.js:26
|
||||
msgid ""
|
||||
"We currently cannot reach the server. Please try again. Error code: {code}"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:216
|
||||
#: pretix/static/pretixbase/js/asynctask.js:210
|
||||
msgid "We are processing your request …"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:219
|
||||
#: pretix/static/pretixbase/js/asynctask.js:213
|
||||
msgid ""
|
||||
"We are currently sending your request to the server. If this takes longer "
|
||||
"than one minute, please check your internet connection and then reload this "
|
||||
"page and try again."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:276
|
||||
#: pretix/static/pretixbase/js/asynctask.js:270
|
||||
msgid "If this takes longer than a few minutes, please contact us."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:331
|
||||
#: pretix/static/pretixbase/js/asynctask.js:325
|
||||
msgid "Close message"
|
||||
msgstr ""
|
||||
|
||||
@@ -740,7 +740,7 @@ msgstr ""
|
||||
msgid "Please enter the amount the organizer can keep."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:564
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:554
|
||||
msgid "Your local time:"
|
||||
msgstr ""
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-09-26 11:16+0000\n"
|
||||
"POT-Creation-Date: 2025-08-19 16:02+0000\n"
|
||||
"PO-Revision-Date: 2024-09-06 08:47+0000\n"
|
||||
"Last-Translator: Albizuri <oier@puntu.eus>\n"
|
||||
"Language-Team: Basque <https://translate.pretix.eu/projects/pretix/pretix-js/"
|
||||
@@ -345,12 +345,12 @@ msgstr "Ez"
|
||||
msgid "close"
|
||||
msgstr "itxi"
|
||||
|
||||
#: pretix/static/pretixbase/js/addressform.js:90
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:519
|
||||
#: pretix/static/pretixbase/js/addressform.js:105
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:509
|
||||
msgid "required"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:13
|
||||
#: pretix/static/pretixbase/js/asynctask.js:12
|
||||
msgid ""
|
||||
"Your request is currently being processed. Depending on the size of your "
|
||||
"event, this might take up to a few minutes."
|
||||
@@ -358,11 +358,11 @@ msgstr ""
|
||||
"Zure eskaera prozesatzen ari dira. Gertaeraren tamainaren arabera, baliteke "
|
||||
"minutu batzuk behar izatea."
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:17
|
||||
#: pretix/static/pretixbase/js/asynctask.js:16
|
||||
msgid "Your request has been queued on the server and will soon be processed."
|
||||
msgstr "Zure eskaera zerbitzarian gorde da eta laster prozesatuko da."
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:21
|
||||
#: pretix/static/pretixbase/js/asynctask.js:20
|
||||
msgid ""
|
||||
"Your request arrived on the server but we still wait for it to be processed. "
|
||||
"If this takes longer than two minutes, please contact us or go back in your "
|
||||
@@ -372,14 +372,14 @@ msgstr ""
|
||||
"Bi minutu baino gehiago irauten badu, mesedez, jarri gurekin harremanetan "
|
||||
"edo itzuli zure nabigatzailera eta saiatu berriro."
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:125
|
||||
#: pretix/static/pretixbase/js/asynctask.js:182
|
||||
#: pretix/static/pretixbase/js/asynctask.js:186
|
||||
#: pretix/static/pretixbase/js/asynctask.js:119
|
||||
#: pretix/static/pretixbase/js/asynctask.js:176
|
||||
#: pretix/static/pretixbase/js/asynctask.js:180
|
||||
#: pretix/static/pretixcontrol/js/ui/mail.js:24
|
||||
msgid "An error of type {code} occurred."
|
||||
msgstr "{kode} motako errore bat gertatu da."
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:128
|
||||
#: pretix/static/pretixbase/js/asynctask.js:122
|
||||
msgid ""
|
||||
"We currently cannot reach the server, but we keep trying. Last error code: "
|
||||
"{code}"
|
||||
@@ -387,12 +387,12 @@ msgstr ""
|
||||
"Orain bertan ezin gara zerbitzarira iritsi, baina saiatzen jarraitzen dugu. "
|
||||
"Azken errore-kodea: {kodea}"
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:162
|
||||
#: pretix/static/pretixbase/js/asynctask.js:156
|
||||
#: pretix/static/pretixcontrol/js/ui/mail.js:21
|
||||
msgid "The request took too long. Please try again."
|
||||
msgstr "Gehiegi luzatu da eskaera. Mesedez, saiatu berriro."
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:188
|
||||
#: pretix/static/pretixbase/js/asynctask.js:182
|
||||
#: pretix/static/pretixcontrol/js/ui/mail.js:26
|
||||
msgid ""
|
||||
"We currently cannot reach the server. Please try again. Error code: {code}"
|
||||
@@ -400,11 +400,11 @@ msgstr ""
|
||||
"Une honetan ezin gara zerbitzarira iritsi. Mesedez, saiatu berriro. Errore-"
|
||||
"kodea: {kodea}"
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:216
|
||||
#: pretix/static/pretixbase/js/asynctask.js:210
|
||||
msgid "We are processing your request …"
|
||||
msgstr "Zure eskaera prozesatzen ari gara …"
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:219
|
||||
#: pretix/static/pretixbase/js/asynctask.js:213
|
||||
msgid ""
|
||||
"We are currently sending your request to the server. If this takes longer "
|
||||
"than one minute, please check your internet connection and then reload this "
|
||||
@@ -414,11 +414,11 @@ msgstr ""
|
||||
"baino gehiago irauten badu, mesedez, berrikusi zure Interneteko konexioa eta "
|
||||
"gero kargatu berriro orri hau eta saiatu berriro."
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:276
|
||||
#: pretix/static/pretixbase/js/asynctask.js:270
|
||||
msgid "If this takes longer than a few minutes, please contact us."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:331
|
||||
#: pretix/static/pretixbase/js/asynctask.js:325
|
||||
msgid "Close message"
|
||||
msgstr "Mezua itxi"
|
||||
|
||||
@@ -766,7 +766,7 @@ msgstr ""
|
||||
msgid "Please enter the amount the organizer can keep."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:564
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:554
|
||||
msgid "Your local time:"
|
||||
msgstr ""
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-09-26 11:16+0000\n"
|
||||
"POT-Creation-Date: 2025-08-19 16:02+0000\n"
|
||||
"PO-Revision-Date: 2021-11-10 05:00+0000\n"
|
||||
"Last-Translator: Jaakko Rinta-Filppula <jaakko@r-f.fi>\n"
|
||||
"Language-Team: Finnish <https://translate.pretix.eu/projects/pretix/pretix-"
|
||||
@@ -363,49 +363,49 @@ msgstr "Ei"
|
||||
msgid "close"
|
||||
msgstr "Sulje"
|
||||
|
||||
#: pretix/static/pretixbase/js/addressform.js:90
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:519
|
||||
#: pretix/static/pretixbase/js/addressform.js:105
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:509
|
||||
#, fuzzy
|
||||
#| msgid "Cart expired"
|
||||
msgid "required"
|
||||
msgstr "Ostoskori on vanhentunut"
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:13
|
||||
#: pretix/static/pretixbase/js/asynctask.js:12
|
||||
msgid ""
|
||||
"Your request is currently being processed. Depending on the size of your "
|
||||
"event, this might take up to a few minutes."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:17
|
||||
#: pretix/static/pretixbase/js/asynctask.js:16
|
||||
msgid "Your request has been queued on the server and will soon be processed."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:21
|
||||
#: pretix/static/pretixbase/js/asynctask.js:20
|
||||
msgid ""
|
||||
"Your request arrived on the server but we still wait for it to be processed. "
|
||||
"If this takes longer than two minutes, please contact us or go back in your "
|
||||
"browser and try again."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:125
|
||||
#: pretix/static/pretixbase/js/asynctask.js:182
|
||||
#: pretix/static/pretixbase/js/asynctask.js:186
|
||||
#: pretix/static/pretixbase/js/asynctask.js:119
|
||||
#: pretix/static/pretixbase/js/asynctask.js:176
|
||||
#: pretix/static/pretixbase/js/asynctask.js:180
|
||||
#: pretix/static/pretixcontrol/js/ui/mail.js:24
|
||||
msgid "An error of type {code} occurred."
|
||||
msgstr "Tapahtui virhe. Virhekoodi: {code}."
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:128
|
||||
#: pretix/static/pretixbase/js/asynctask.js:122
|
||||
msgid ""
|
||||
"We currently cannot reach the server, but we keep trying. Last error code: "
|
||||
"{code}"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:162
|
||||
#: pretix/static/pretixbase/js/asynctask.js:156
|
||||
#: pretix/static/pretixcontrol/js/ui/mail.js:21
|
||||
msgid "The request took too long. Please try again."
|
||||
msgstr "Pyyntö aikakatkaistiin. Ole hyvä ja yritä uudelleen."
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:188
|
||||
#: pretix/static/pretixbase/js/asynctask.js:182
|
||||
#: pretix/static/pretixcontrol/js/ui/mail.js:26
|
||||
msgid ""
|
||||
"We currently cannot reach the server. Please try again. Error code: {code}"
|
||||
@@ -413,22 +413,22 @@ msgstr ""
|
||||
"Palvelimeen ei juuri nyt saatu yhteyttä. Ole hyvä ja yritä uudelleen. "
|
||||
"Virhekoodi: {code}"
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:216
|
||||
#: pretix/static/pretixbase/js/asynctask.js:210
|
||||
msgid "We are processing your request …"
|
||||
msgstr "Pyyntöäsi käsitellään …"
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:219
|
||||
#: pretix/static/pretixbase/js/asynctask.js:213
|
||||
msgid ""
|
||||
"We are currently sending your request to the server. If this takes longer "
|
||||
"than one minute, please check your internet connection and then reload this "
|
||||
"page and try again."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:276
|
||||
#: pretix/static/pretixbase/js/asynctask.js:270
|
||||
msgid "If this takes longer than a few minutes, please contact us."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:331
|
||||
#: pretix/static/pretixbase/js/asynctask.js:325
|
||||
msgid "Close message"
|
||||
msgstr "Sulje viesti"
|
||||
|
||||
@@ -783,7 +783,7 @@ msgstr ""
|
||||
msgid "Please enter the amount the organizer can keep."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:564
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:554
|
||||
msgid "Your local time:"
|
||||
msgstr ""
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-09-26 11:16+0000\n"
|
||||
"POT-Creation-Date: 2025-08-19 16:02+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@@ -344,68 +344,68 @@ msgstr ""
|
||||
msgid "close"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/addressform.js:90
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:519
|
||||
#: pretix/static/pretixbase/js/addressform.js:105
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:509
|
||||
msgid "required"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:13
|
||||
#: pretix/static/pretixbase/js/asynctask.js:12
|
||||
msgid ""
|
||||
"Your request is currently being processed. Depending on the size of your "
|
||||
"event, this might take up to a few minutes."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:17
|
||||
#: pretix/static/pretixbase/js/asynctask.js:16
|
||||
msgid "Your request has been queued on the server and will soon be processed."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:21
|
||||
#: pretix/static/pretixbase/js/asynctask.js:20
|
||||
msgid ""
|
||||
"Your request arrived on the server but we still wait for it to be processed. "
|
||||
"If this takes longer than two minutes, please contact us or go back in your "
|
||||
"browser and try again."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:125
|
||||
#: pretix/static/pretixbase/js/asynctask.js:182
|
||||
#: pretix/static/pretixbase/js/asynctask.js:186
|
||||
#: pretix/static/pretixbase/js/asynctask.js:119
|
||||
#: pretix/static/pretixbase/js/asynctask.js:176
|
||||
#: pretix/static/pretixbase/js/asynctask.js:180
|
||||
#: pretix/static/pretixcontrol/js/ui/mail.js:24
|
||||
msgid "An error of type {code} occurred."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:128
|
||||
#: pretix/static/pretixbase/js/asynctask.js:122
|
||||
msgid ""
|
||||
"We currently cannot reach the server, but we keep trying. Last error code: "
|
||||
"{code}"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:162
|
||||
#: pretix/static/pretixbase/js/asynctask.js:156
|
||||
#: pretix/static/pretixcontrol/js/ui/mail.js:21
|
||||
msgid "The request took too long. Please try again."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:188
|
||||
#: pretix/static/pretixbase/js/asynctask.js:182
|
||||
#: pretix/static/pretixcontrol/js/ui/mail.js:26
|
||||
msgid ""
|
||||
"We currently cannot reach the server. Please try again. Error code: {code}"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:216
|
||||
#: pretix/static/pretixbase/js/asynctask.js:210
|
||||
msgid "We are processing your request …"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:219
|
||||
#: pretix/static/pretixbase/js/asynctask.js:213
|
||||
msgid ""
|
||||
"We are currently sending your request to the server. If this takes longer "
|
||||
"than one minute, please check your internet connection and then reload this "
|
||||
"page and try again."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:276
|
||||
#: pretix/static/pretixbase/js/asynctask.js:270
|
||||
msgid "If this takes longer than a few minutes, please contact us."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:331
|
||||
#: pretix/static/pretixbase/js/asynctask.js:325
|
||||
msgid "Close message"
|
||||
msgstr ""
|
||||
|
||||
@@ -740,7 +740,7 @@ msgstr ""
|
||||
msgid "Please enter the amount the organizer can keep."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:564
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:554
|
||||
msgid "Your local time:"
|
||||
msgstr ""
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: French\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-09-26 11:16+0000\n"
|
||||
"POT-Creation-Date: 2025-08-19 16:02+0000\n"
|
||||
"PO-Revision-Date: 2025-08-28 23:00+0000\n"
|
||||
"Last-Translator: CVZ-es <damien.bremont@casadevelazquez.org>\n"
|
||||
"Language-Team: French <https://translate.pretix.eu/projects/pretix/pretix-js/"
|
||||
@@ -344,12 +344,12 @@ msgstr "Non"
|
||||
msgid "close"
|
||||
msgstr "fermer"
|
||||
|
||||
#: pretix/static/pretixbase/js/addressform.js:90
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:519
|
||||
#: pretix/static/pretixbase/js/addressform.js:105
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:509
|
||||
msgid "required"
|
||||
msgstr "obligatoire"
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:13
|
||||
#: pretix/static/pretixbase/js/asynctask.js:12
|
||||
msgid ""
|
||||
"Your request is currently being processed. Depending on the size of your "
|
||||
"event, this might take up to a few minutes."
|
||||
@@ -357,13 +357,13 @@ msgstr ""
|
||||
"Votre demande est maintenant en cours de traitement. Selon la taille de "
|
||||
"votre événement, cela peut prendre jusqu' à quelques minutes."
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:17
|
||||
#: pretix/static/pretixbase/js/asynctask.js:16
|
||||
msgid "Your request has been queued on the server and will soon be processed."
|
||||
msgstr ""
|
||||
"Votre demande a été mise en attente sur le serveur et sera traitée "
|
||||
"prochainement."
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:21
|
||||
#: pretix/static/pretixbase/js/asynctask.js:20
|
||||
msgid ""
|
||||
"Your request arrived on the server but we still wait for it to be processed. "
|
||||
"If this takes longer than two minutes, please contact us or go back in your "
|
||||
@@ -373,14 +373,14 @@ msgstr ""
|
||||
"prend plus de deux minutes, veuillez nous contacter ou retourner dans votre "
|
||||
"navigateur et réessayer."
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:125
|
||||
#: pretix/static/pretixbase/js/asynctask.js:182
|
||||
#: pretix/static/pretixbase/js/asynctask.js:186
|
||||
#: pretix/static/pretixbase/js/asynctask.js:119
|
||||
#: pretix/static/pretixbase/js/asynctask.js:176
|
||||
#: pretix/static/pretixbase/js/asynctask.js:180
|
||||
#: pretix/static/pretixcontrol/js/ui/mail.js:24
|
||||
msgid "An error of type {code} occurred."
|
||||
msgstr "Une erreur de type {code} s'est produite."
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:128
|
||||
#: pretix/static/pretixbase/js/asynctask.js:122
|
||||
msgid ""
|
||||
"We currently cannot reach the server, but we keep trying. Last error code: "
|
||||
"{code}"
|
||||
@@ -388,12 +388,12 @@ msgstr ""
|
||||
"Nous ne pouvons actuellement pas atteindre le serveur, mais nous continuons "
|
||||
"d'essayer. Dernier code d'erreur : {code}"
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:162
|
||||
#: pretix/static/pretixbase/js/asynctask.js:156
|
||||
#: pretix/static/pretixcontrol/js/ui/mail.js:21
|
||||
msgid "The request took too long. Please try again."
|
||||
msgstr "La requête a prit trop de temps. Veuillez réessayer."
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:188
|
||||
#: pretix/static/pretixbase/js/asynctask.js:182
|
||||
#: pretix/static/pretixcontrol/js/ui/mail.js:26
|
||||
msgid ""
|
||||
"We currently cannot reach the server. Please try again. Error code: {code}"
|
||||
@@ -401,11 +401,11 @@ msgstr ""
|
||||
"Actuellement, nous ne pouvons pas atteindre le serveur. Veuillez réessayer. "
|
||||
"Code d'erreur : {code}"
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:216
|
||||
#: pretix/static/pretixbase/js/asynctask.js:210
|
||||
msgid "We are processing your request …"
|
||||
msgstr "Nous traitons votre demande …"
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:219
|
||||
#: pretix/static/pretixbase/js/asynctask.js:213
|
||||
msgid ""
|
||||
"We are currently sending your request to the server. If this takes longer "
|
||||
"than one minute, please check your internet connection and then reload this "
|
||||
@@ -415,11 +415,11 @@ msgstr ""
|
||||
"d'une minute, veuillez vérifier votre connexion Internet, puis recharger "
|
||||
"cette page et réessayer."
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:276
|
||||
#: pretix/static/pretixbase/js/asynctask.js:270
|
||||
msgid "If this takes longer than a few minutes, please contact us."
|
||||
msgstr "Si cela prend plus de quelques minutes, veuillez nous contacter."
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:331
|
||||
#: pretix/static/pretixbase/js/asynctask.js:325
|
||||
msgid "Close message"
|
||||
msgstr "Fermer le message"
|
||||
|
||||
@@ -768,7 +768,7 @@ msgid "Please enter the amount the organizer can keep."
|
||||
msgstr ""
|
||||
"Veuillez indiquer le montant que l'organisateur est autorisé à retenir."
|
||||
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:564
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:554
|
||||
msgid "Your local time:"
|
||||
msgstr "Votre heure locale :"
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-09-26 11:16+0000\n"
|
||||
"POT-Creation-Date: 2025-08-19 16:02+0000\n"
|
||||
"PO-Revision-Date: 2022-02-22 22:00+0000\n"
|
||||
"Last-Translator: Ismael Menéndez Fernández <ismael.menendez@balidea.com>\n"
|
||||
"Language-Team: Galician <https://translate.pretix.eu/projects/pretix/pretix-"
|
||||
@@ -351,12 +351,12 @@ msgstr "Non"
|
||||
msgid "close"
|
||||
msgstr "cerrar"
|
||||
|
||||
#: pretix/static/pretixbase/js/addressform.js:90
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:519
|
||||
#: pretix/static/pretixbase/js/addressform.js:105
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:509
|
||||
msgid "required"
|
||||
msgstr "campo requirido"
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:13
|
||||
#: pretix/static/pretixbase/js/asynctask.js:12
|
||||
msgid ""
|
||||
"Your request is currently being processed. Depending on the size of your "
|
||||
"event, this might take up to a few minutes."
|
||||
@@ -364,11 +364,11 @@ msgstr ""
|
||||
"A súa solicitude estase procesando. Isto pode tardar varios minutos, "
|
||||
"dependendo do tamaño do seu evento."
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:17
|
||||
#: pretix/static/pretixbase/js/asynctask.js:16
|
||||
msgid "Your request has been queued on the server and will soon be processed."
|
||||
msgstr "A súa solicitude foi enviada ao servidor e será procesada en breve."
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:21
|
||||
#: pretix/static/pretixbase/js/asynctask.js:20
|
||||
msgid ""
|
||||
"Your request arrived on the server but we still wait for it to be processed. "
|
||||
"If this takes longer than two minutes, please contact us or go back in your "
|
||||
@@ -378,14 +378,14 @@ msgstr ""
|
||||
"procesada. Se tarda máis de dous minutos, por favor, contacte con nós ou "
|
||||
"volva á páxina anterior no seu navegador e inténteo de novo."
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:125
|
||||
#: pretix/static/pretixbase/js/asynctask.js:182
|
||||
#: pretix/static/pretixbase/js/asynctask.js:186
|
||||
#: pretix/static/pretixbase/js/asynctask.js:119
|
||||
#: pretix/static/pretixbase/js/asynctask.js:176
|
||||
#: pretix/static/pretixbase/js/asynctask.js:180
|
||||
#: pretix/static/pretixcontrol/js/ui/mail.js:24
|
||||
msgid "An error of type {code} occurred."
|
||||
msgstr "Ocurreu un error de tipo {code}."
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:128
|
||||
#: pretix/static/pretixbase/js/asynctask.js:122
|
||||
msgid ""
|
||||
"We currently cannot reach the server, but we keep trying. Last error code: "
|
||||
"{code}"
|
||||
@@ -393,12 +393,12 @@ msgstr ""
|
||||
"Agora mesmo non podemos contactar co servidor, pero seguímolo intentando. O "
|
||||
"último código de erro foi: {code}"
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:162
|
||||
#: pretix/static/pretixbase/js/asynctask.js:156
|
||||
#: pretix/static/pretixcontrol/js/ui/mail.js:21
|
||||
msgid "The request took too long. Please try again."
|
||||
msgstr "A petición levou demasiado tempo. Inténteo de novo."
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:188
|
||||
#: pretix/static/pretixbase/js/asynctask.js:182
|
||||
#: pretix/static/pretixcontrol/js/ui/mail.js:26
|
||||
msgid ""
|
||||
"We currently cannot reach the server. Please try again. Error code: {code}"
|
||||
@@ -406,11 +406,11 @@ msgstr ""
|
||||
"Agora mesmo non podemos contactar co servidor. Por favor, inténteo de novo. "
|
||||
"Código de erro: {code}"
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:216
|
||||
#: pretix/static/pretixbase/js/asynctask.js:210
|
||||
msgid "We are processing your request …"
|
||||
msgstr "Estamos procesando a súa solicitude…"
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:219
|
||||
#: pretix/static/pretixbase/js/asynctask.js:213
|
||||
msgid ""
|
||||
"We are currently sending your request to the server. If this takes longer "
|
||||
"than one minute, please check your internet connection and then reload this "
|
||||
@@ -420,11 +420,11 @@ msgstr ""
|
||||
"dun minuto, por favor, revise a súa conexión a Internet, recargue a páxina e "
|
||||
"inténteo de novo."
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:276
|
||||
#: pretix/static/pretixbase/js/asynctask.js:270
|
||||
msgid "If this takes longer than a few minutes, please contact us."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:331
|
||||
#: pretix/static/pretixbase/js/asynctask.js:325
|
||||
msgid "Close message"
|
||||
msgstr "Cerrar mensaxe"
|
||||
|
||||
@@ -791,7 +791,7 @@ msgstr "Obtés %(currency)s %(price)s de volta"
|
||||
msgid "Please enter the amount the organizer can keep."
|
||||
msgstr "Por favor, ingrese a cantidade que pode conservar o organizador."
|
||||
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:564
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:554
|
||||
msgid "Your local time:"
|
||||
msgstr "A súa hora local:"
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-09-26 11:16+0000\n"
|
||||
"POT-Creation-Date: 2025-08-19 16:02+0000\n"
|
||||
"PO-Revision-Date: 2021-09-24 13:54+0000\n"
|
||||
"Last-Translator: ofirtro <ofir.tro@gmail.com>\n"
|
||||
"Language-Team: Hebrew <https://translate.pretix.eu/projects/pretix/pretix-js/"
|
||||
@@ -350,22 +350,22 @@ msgstr ""
|
||||
msgid "close"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/addressform.js:90
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:519
|
||||
#: pretix/static/pretixbase/js/addressform.js:105
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:509
|
||||
msgid "required"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:13
|
||||
#: pretix/static/pretixbase/js/asynctask.js:12
|
||||
msgid ""
|
||||
"Your request is currently being processed. Depending on the size of your "
|
||||
"event, this might take up to a few minutes."
|
||||
msgstr "הבקשה שלך מתבצעת ויכולה לקחת כמה דקות בהתאם לגודל האירוע."
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:17
|
||||
#: pretix/static/pretixbase/js/asynctask.js:16
|
||||
msgid "Your request has been queued on the server and will soon be processed."
|
||||
msgstr "הבקשה שלך תבוצע בהקדם."
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:21
|
||||
#: pretix/static/pretixbase/js/asynctask.js:20
|
||||
msgid ""
|
||||
"Your request arrived on the server but we still wait for it to be processed. "
|
||||
"If this takes longer than two minutes, please contact us or go back in your "
|
||||
@@ -374,46 +374,46 @@ msgstr ""
|
||||
"הבקשה שלך הגיעה לשרת אבל עדיין לא התחילה. אם זה לוקח יותר משתי דקות, אנא צור "
|
||||
"איתנו קשר או נסה שנית."
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:125
|
||||
#: pretix/static/pretixbase/js/asynctask.js:182
|
||||
#: pretix/static/pretixbase/js/asynctask.js:186
|
||||
#: pretix/static/pretixbase/js/asynctask.js:119
|
||||
#: pretix/static/pretixbase/js/asynctask.js:176
|
||||
#: pretix/static/pretixbase/js/asynctask.js:180
|
||||
#: pretix/static/pretixcontrol/js/ui/mail.js:24
|
||||
msgid "An error of type {code} occurred."
|
||||
msgstr "שגיאה {code} התרחשה."
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:128
|
||||
#: pretix/static/pretixbase/js/asynctask.js:122
|
||||
msgid ""
|
||||
"We currently cannot reach the server, but we keep trying. Last error code: "
|
||||
"{code}"
|
||||
msgstr "אנחנו לא מצליחים לגשת לשרת, אבל ממשיכים לנסות. שגיאה אחרונה: {code}"
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:162
|
||||
#: pretix/static/pretixbase/js/asynctask.js:156
|
||||
#: pretix/static/pretixcontrol/js/ui/mail.js:21
|
||||
msgid "The request took too long. Please try again."
|
||||
msgstr "הבקשה לקחה יותר מידי זמן. נסה שנית."
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:188
|
||||
#: pretix/static/pretixbase/js/asynctask.js:182
|
||||
#: pretix/static/pretixcontrol/js/ui/mail.js:26
|
||||
msgid ""
|
||||
"We currently cannot reach the server. Please try again. Error code: {code}"
|
||||
msgstr "אירעה שגיאה. אנא נסה שנית. שגיאה: {code}"
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:216
|
||||
#: pretix/static/pretixbase/js/asynctask.js:210
|
||||
msgid "We are processing your request …"
|
||||
msgstr "הבקשה שלך מתבצעת…"
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:219
|
||||
#: pretix/static/pretixbase/js/asynctask.js:213
|
||||
msgid ""
|
||||
"We are currently sending your request to the server. If this takes longer "
|
||||
"than one minute, please check your internet connection and then reload this "
|
||||
"page and try again."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:276
|
||||
#: pretix/static/pretixbase/js/asynctask.js:270
|
||||
msgid "If this takes longer than a few minutes, please contact us."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixbase/js/asynctask.js:331
|
||||
#: pretix/static/pretixbase/js/asynctask.js:325
|
||||
msgid "Close message"
|
||||
msgstr ""
|
||||
|
||||
@@ -754,7 +754,7 @@ msgstr ""
|
||||
msgid "Please enter the amount the organizer can keep."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:564
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:554
|
||||
msgid "Your local time:"
|
||||
msgstr ""
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user