mirror of
https://github.com/pretix/pretix.git
synced 2026-09-18 17:04:41 +00:00
Compare commits
5
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2ba1439a19 | ||
|
|
6496fbedfd | ||
|
|
bd80bd169a | ||
|
|
f1074ac1c7 | ||
|
|
31de823bc8 |
@@ -864,6 +864,9 @@ Generating new secrets
|
||||
|
||||
Triggers generation of new ``secret`` and ``web_secret`` attributes for both the order and all order positions.
|
||||
|
||||
Ticket secrets of order positions that have been used to issue a gift card can not
|
||||
be changed. Only the link (``web_secret``) will be changed in this case.
|
||||
|
||||
**Example request**:
|
||||
|
||||
.. sourcecode:: http
|
||||
@@ -895,6 +898,9 @@ Generating new secrets
|
||||
|
||||
Triggers generation of a new ``secret`` and ``web_secret`` attribute for a single order position.
|
||||
|
||||
Ticket secrets of order positions that have been used to issue a gift card can not
|
||||
be changed. Only the link (``web_secret``) will be changed in this case.
|
||||
|
||||
**Example request**:
|
||||
|
||||
.. sourcecode:: http
|
||||
|
||||
@@ -53,7 +53,7 @@ Working with the code
|
||||
---------------------
|
||||
If you do not have a recent installation of ``nodejs``, install it now::
|
||||
|
||||
curl -sL https://deb.nodesource.com/setup_24.x | sudo -E bash -
|
||||
curl -sL https://deb.nodesource.com/setup_17.x | sudo -E bash -
|
||||
sudo apt install nodejs
|
||||
|
||||
To make sure it is on your path variable, close and reopen your terminal. Now, install the Python-level dependencies of pretix::
|
||||
|
||||
+2
-2
@@ -43,7 +43,7 @@ dependencies = [
|
||||
"django-countries==8.2.*",
|
||||
"django-filter==25.1",
|
||||
"django-formset-js-improved==0.5.0.5",
|
||||
"django-formtools==2.7",
|
||||
"django-formtools==2.6.1",
|
||||
"django-hierarkey==2.0.*,>=2.0.1",
|
||||
"django-hijack==3.7.*",
|
||||
"django-i18nfield==1.11.*",
|
||||
@@ -102,7 +102,7 @@ dependencies = [
|
||||
"tqdm==4.*",
|
||||
"ua-parser==1.0.*",
|
||||
"vobject==0.9.*",
|
||||
"webauthn==3.0.*",
|
||||
"webauthn==2.8.*",
|
||||
"zeep==4.3.*"
|
||||
]
|
||||
|
||||
|
||||
@@ -53,7 +53,6 @@ from django.db.models import QuerySet
|
||||
from django.forms import Select, widgets
|
||||
from django.forms.widgets import FILE_INPUT_CONTRADICTION
|
||||
from django.utils.formats import date_format
|
||||
from django.utils.functional import lazy
|
||||
from django.utils.html import escape
|
||||
from django.utils.safestring import mark_safe
|
||||
from django.utils.text import format_lazy
|
||||
@@ -325,21 +324,16 @@ class WrappedPhonePrefixSelect(Select):
|
||||
initial = None
|
||||
|
||||
def __init__(self, initial=None):
|
||||
def _get_choices():
|
||||
choices = [("", "---------")]
|
||||
|
||||
if initial:
|
||||
for prefix, values in COUNTRY_CODE_TO_REGION_CODE.items():
|
||||
if all(v == REGION_CODE_FOR_NON_GEO_ENTITY for v in values):
|
||||
continue
|
||||
if initial in values:
|
||||
self.initial = "+%d" % prefix
|
||||
break
|
||||
choices += get_phone_prefixes_sorted_and_localized()
|
||||
return choices
|
||||
|
||||
choices = lazy(_get_choices, list)()
|
||||
choices = [("", "---------")]
|
||||
|
||||
if initial:
|
||||
for prefix, values in COUNTRY_CODE_TO_REGION_CODE.items():
|
||||
if all(v == REGION_CODE_FOR_NON_GEO_ENTITY for v in values):
|
||||
continue
|
||||
if initial in values:
|
||||
self.initial = "+%d" % prefix
|
||||
break
|
||||
choices += get_phone_prefixes_sorted_and_localized()
|
||||
super().__init__(choices=choices, attrs={
|
||||
'aria-label': pgettext_lazy('phonenumber', 'International area code'),
|
||||
'autocomplete': 'tel-country-code',
|
||||
@@ -1116,13 +1110,6 @@ class BaseQuestionsForm(forms.Form):
|
||||
if q.dependency_question_id and not question_is_visible(q.dependency_question_id, q.dependency_values) and answer is not None:
|
||||
d['question_%d' % q.pk] = None
|
||||
|
||||
# Strip False answers to required yes/no questions even if all_optional is set, as our data model assumes that
|
||||
# required yes/no questions can only be answered with yes
|
||||
for q in question_cache.values():
|
||||
if q.required and q.type == Question.TYPE_BOOLEAN:
|
||||
if 'question_%d' % q.pk in d and d['question_%d' % q.pk] is False:
|
||||
del d['question_%d' % q.pk]
|
||||
|
||||
return d
|
||||
|
||||
|
||||
|
||||
@@ -1,29 +0,0 @@
|
||||
#
|
||||
# This file is part of pretix (Community Edition).
|
||||
#
|
||||
# Copyright (C) 2014-2020 Raphael Michel and contributors
|
||||
# Copyright (C) 2020-today pretix 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/>.
|
||||
#
|
||||
from django.core.management.base import BaseCommand
|
||||
|
||||
|
||||
class Command(BaseCommand):
|
||||
help = "Do nothing. Useful for startup performance testing."
|
||||
|
||||
def handle(self, *args, **options):
|
||||
pass
|
||||
@@ -40,7 +40,6 @@ from django.core.cache import cache
|
||||
from django.core.management.base import BaseCommand
|
||||
from django.db import close_old_connections
|
||||
from django.dispatch.dispatcher import NO_RECEIVERS
|
||||
from django_querytagger.tagging import with_tag
|
||||
|
||||
from pretix.helpers.periodic import SKIPPED
|
||||
|
||||
@@ -83,8 +82,7 @@ class Command(BaseCommand):
|
||||
try:
|
||||
# Check if the DB connection is still good, it might be closed if the previous task took too long.
|
||||
close_old_connections()
|
||||
with with_tag(f"periodictask={name}"):
|
||||
r = receiver(signal=periodic_task, sender=self)
|
||||
r = receiver(signal=periodic_task, sender=self)
|
||||
except Exception as err:
|
||||
if isinstance(err, KeyboardInterrupt):
|
||||
raise err
|
||||
|
||||
@@ -1,58 +0,0 @@
|
||||
# Generated by Django 4.2.8 on 2024-07-01 09:27
|
||||
import logging
|
||||
|
||||
from django.db import migrations
|
||||
from django.db.models import Count
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
def clean_duplicate_secrets(apps, schema_editor):
|
||||
# This will autofix all possible duplicate Order.code and OrderPosition.secret values,
|
||||
# unless Order.code is already too long to append something. This would need to be fixed by
|
||||
# sysadmins manually.
|
||||
OrderPosition = apps.get_model("pretixbase", "OrderPosition")
|
||||
Order = apps.get_model("pretixbase", "Order")
|
||||
|
||||
qs = OrderPosition.all.values("secret", "order__event__organizer_id").order_by().annotate(c=Count("*")).filter(c__gt=1)
|
||||
for row in qs:
|
||||
affected = OrderPosition.all.filter(
|
||||
**{k: v for k, v in row.items() if k != "c"}
|
||||
).order_by("pk")
|
||||
logger.error(f"Found {row['c']} tickets with with the same secret \"{row['secret']}\" in organizer {row['order__event__organizer_id']}, all except one will be changed")
|
||||
for i, a in enumerate(affected):
|
||||
if i > 0:
|
||||
a.secret = a.secret + "__dupl__" + str(a.pk)
|
||||
logger.info(
|
||||
f"Ticket {a.pk} has new secret {a.secret}"
|
||||
)
|
||||
a.save(update_fields=["organizer_id", "secret"])
|
||||
|
||||
qs = Order.objects.values("code", "event__organizer_id").order_by().annotate(c=Count("*")).filter(c__gt=1)
|
||||
for row in qs:
|
||||
affected = Order.objects.filter(
|
||||
**{k: v for k, v in row.items() if k != "c"}
|
||||
).order_by("pk")
|
||||
logger.error(f"Found {row['c']} orders with with the same code \"{row['code']}\" in organizer {row['event__organizer_id']}, all except one will be changed")
|
||||
for i, a in enumerate(affected):
|
||||
if i > 0:
|
||||
if len(a.code) > 16 - len(str(a.pk)):
|
||||
raise ValueError(f"Cannot auto-fix order with duplicate code {a.code}, order code is too long already")
|
||||
a.code = a.code + str(a.pk).zfill(16 - len(a.code))
|
||||
logger.info(
|
||||
f"Order {a.pk} has new code {a.code}"
|
||||
)
|
||||
a.save(update_fields=["organizer_id", "code"])
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
dependencies = [
|
||||
(
|
||||
"pretixbase",
|
||||
"0301_reusablemedium_remove_orderposition",
|
||||
),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RunPython(clean_duplicate_secrets, migrations.RunPython.noop),
|
||||
]
|
||||
-46
@@ -1,46 +0,0 @@
|
||||
# Generated by Django 4.2.8 on 2024-07-01 09:27
|
||||
|
||||
import django.db.models.deletion
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
dependencies = [
|
||||
(
|
||||
"pretixbase",
|
||||
"0302_resolve_duplicate_codes_and_secrets",
|
||||
),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RunSQL(
|
||||
"UPDATE pretixbase_order "
|
||||
"SET organizer_id = (SELECT e.organizer_id FROM pretixbase_event e WHERE e.id = pretixbase_order.event_id) "
|
||||
"WHERE pretixbase_order.organizer_id IS NULL;",
|
||||
migrations.RunSQL.noop,
|
||||
),
|
||||
migrations.RunSQL(
|
||||
"UPDATE pretixbase_orderposition "
|
||||
"SET organizer_id = (SELECT e.organizer_id FROM pretixbase_order o LEFT JOIN pretixbase_event e ON e.id = o.event_id WHERE o.id = pretixbase_orderposition.order_id) "
|
||||
"WHERE pretixbase_orderposition.organizer_id IS NULL;",
|
||||
migrations.RunSQL.noop,
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="order",
|
||||
name="organizer",
|
||||
field=models.ForeignKey(
|
||||
on_delete=django.db.models.deletion.CASCADE,
|
||||
related_name="orders",
|
||||
to="pretixbase.organizer",
|
||||
),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="orderposition",
|
||||
name="organizer",
|
||||
field=models.ForeignKey(
|
||||
on_delete=django.db.models.deletion.CASCADE,
|
||||
related_name="order_positions",
|
||||
to="pretixbase.organizer",
|
||||
),
|
||||
),
|
||||
]
|
||||
@@ -1403,12 +1403,15 @@ class Event(EventMixin, LoggedModel):
|
||||
|
||||
for mp in self.organizer.meta_properties.all():
|
||||
if mp.required and not self.meta_data.get(mp.name):
|
||||
issues.append(format_html(
|
||||
'<a href="{href}{href_hash}">{text}</a>',
|
||||
text=gettext('You need to fill the meta parameter "{property}".').format(property=mp.name),
|
||||
href=reverse('control:event.settings', kwargs={'organizer': self.organizer.slug, 'event': self.slug}),
|
||||
href_hash=f'#id_prop-{mp.pk}-value',
|
||||
))
|
||||
issues.append(
|
||||
('<a {a_attr}>' + gettext('You need to fill the meta parameter "{property}".') + '</a>').format(
|
||||
property=mp.name,
|
||||
a_attr='href="%s#id_prop-%d-value"' % (
|
||||
reverse('control:event.settings', kwargs={'organizer': self.organizer.slug, 'event': self.slug}),
|
||||
mp.pk
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
responses = event_live_issues.send(self)
|
||||
for receiver, response in sorted(responses, key=lambda r: str(r[0])):
|
||||
|
||||
@@ -224,6 +224,8 @@ class Order(LockModel, LoggedModel):
|
||||
"Organizer",
|
||||
related_name="orders",
|
||||
on_delete=models.CASCADE,
|
||||
null=True,
|
||||
blank=True,
|
||||
)
|
||||
event = models.ForeignKey(
|
||||
Event,
|
||||
@@ -327,7 +329,7 @@ class Order(LockModel, LoggedModel):
|
||||
default="line",
|
||||
)
|
||||
|
||||
objects = ScopedManager(OrderQuerySet.as_manager().__class__, organizer='organizer')
|
||||
objects = ScopedManager(OrderQuerySet.as_manager().__class__, organizer='event__organizer')
|
||||
|
||||
class Meta:
|
||||
verbose_name = _("Order")
|
||||
@@ -2539,6 +2541,8 @@ class OrderPosition(AbstractPosition):
|
||||
"Organizer",
|
||||
related_name="order_positions",
|
||||
on_delete=models.CASCADE,
|
||||
null=True,
|
||||
blank=True,
|
||||
)
|
||||
order = models.ForeignKey(
|
||||
Order,
|
||||
@@ -2595,7 +2599,7 @@ class OrderPosition(AbstractPosition):
|
||||
blank=True,
|
||||
)
|
||||
|
||||
all = ScopedManager(organizer='organizer')
|
||||
all = ScopedManager(organizer='order__event__organizer')
|
||||
objects = ActivePositionManager()
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
|
||||
@@ -32,10 +32,8 @@
|
||||
# Unless required by applicable law or agreed to in writing, software distributed under the Apache License 2.0 is
|
||||
# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations under the License.
|
||||
import datetime
|
||||
from dataclasses import dataclass
|
||||
|
||||
from decimal import ROUND_HALF_UP, Decimal
|
||||
from typing import Union
|
||||
|
||||
from django.conf import settings
|
||||
from django.core.exceptions import ValidationError
|
||||
@@ -423,33 +421,27 @@ class Voucher(LoggedModel):
|
||||
return False
|
||||
|
||||
@staticmethod
|
||||
def get_affected_quotas(quota, item, variation, subevent):
|
||||
if quota:
|
||||
return {quota}
|
||||
elif item and variation:
|
||||
return set(variation.quotas.filter(subevent=subevent))
|
||||
elif item and not item.has_variations:
|
||||
return set(item.quotas.filter(subevent=subevent))
|
||||
elif item and item.has_variations:
|
||||
return set(
|
||||
Quota.objects.filter(
|
||||
pk__in=Quota.variations.through.objects.filter(
|
||||
itemvariation__item=item,
|
||||
quota__subevent=subevent,
|
||||
).values('quota_id')
|
||||
)
|
||||
)
|
||||
else:
|
||||
return set()
|
||||
|
||||
@staticmethod
|
||||
def clean_quota_get_ignored(voucher_data: Union["VoucherBulkData", "Voucher"]):
|
||||
if voucher_data:
|
||||
valid = voucher_data.valid_until is None or voucher_data.valid_until >= now()
|
||||
if valid and voucher_data.block_quota and voucher_data.max_usages > voucher_data.redeemed:
|
||||
return Voucher.get_affected_quotas(voucher_data.quota, voucher_data.item, voucher_data.variation, voucher_data.subevent)
|
||||
|
||||
return set()
|
||||
def clean_quota_get_ignored(old_instance):
|
||||
quotas = set()
|
||||
was_valid = old_instance and (
|
||||
old_instance.valid_until is None or old_instance.valid_until >= now()
|
||||
)
|
||||
if old_instance and old_instance.block_quota and was_valid:
|
||||
if old_instance.quota:
|
||||
quotas.add(old_instance.quota)
|
||||
elif old_instance.variation:
|
||||
quotas |= set(old_instance.variation.quotas.filter(subevent=old_instance.subevent))
|
||||
elif old_instance.item:
|
||||
if old_instance.item.has_variations:
|
||||
quotas |= set(
|
||||
Quota.objects.filter(pk__in=Quota.variations.through.objects.filter(
|
||||
itemvariation__item=old_instance.item,
|
||||
quota__subevent=old_instance.subevent,
|
||||
).values('quota_id'))
|
||||
)
|
||||
else:
|
||||
quotas |= set(old_instance.item.quotas.filter(subevent=old_instance.subevent))
|
||||
return quotas
|
||||
|
||||
@staticmethod
|
||||
def clean_quota_check(data, cnt, old_instance, event, quota, item, variation):
|
||||
@@ -461,8 +453,22 @@ class Voucher(LoggedModel):
|
||||
if event.has_subevents and data.get('block_quota') and not data.get('subevent'):
|
||||
raise ValidationError(_('If you want this voucher to block quota, you need to select a specific date.'))
|
||||
|
||||
new_quotas = Voucher.get_affected_quotas(quota, item, variation, data.get('subevent'))
|
||||
if not new_quotas:
|
||||
if quota:
|
||||
new_quotas = {quota}
|
||||
elif item and variation:
|
||||
new_quotas = set(variation.quotas.filter(subevent=data.get('subevent')))
|
||||
elif item and not item.has_variations:
|
||||
new_quotas = set(item.quotas.filter(subevent=data.get('subevent')))
|
||||
elif item and item.has_variations:
|
||||
new_quotas = set(
|
||||
Quota.objects.filter(
|
||||
pk__in=Quota.variations.through.objects.filter(
|
||||
itemvariation__item=item,
|
||||
quota__subevent=data.get('subevent'),
|
||||
).values('quota_id')
|
||||
)
|
||||
)
|
||||
else:
|
||||
raise ValidationError(_('You need to select a specific product or quota if this voucher should reserve '
|
||||
'tickets.'))
|
||||
|
||||
@@ -638,16 +644,3 @@ class Voucher(LoggedModel):
|
||||
]
|
||||
).aggregate(s=Sum('voucher_budget_use'))['s'] or Decimal('0.00')
|
||||
return ops
|
||||
|
||||
|
||||
@dataclass
|
||||
class VoucherBulkData:
|
||||
item: object
|
||||
variation: object
|
||||
quota: object
|
||||
block_quota: bool
|
||||
valid_until: datetime.datetime
|
||||
subevent: object
|
||||
redeemed: int
|
||||
max_usages: int
|
||||
allow_ignore_quota: bool
|
||||
|
||||
@@ -1706,58 +1706,6 @@ class GiftCardPayment(BasePaymentProvider):
|
||||
)
|
||||
|
||||
|
||||
class BaseHistoricalPaymentProvider(BasePaymentProvider):
|
||||
"""
|
||||
Base class for payment providers that no longer exist but can't be deleted to make sure historical
|
||||
payments are shown correctly.
|
||||
|
||||
Subclasses are recommended to only implement:
|
||||
- identifier
|
||||
- verbose_name
|
||||
- public_name
|
||||
- payment_control_render
|
||||
- payment_control_render_short
|
||||
- refund_control_render
|
||||
- refund_control_render_short
|
||||
- render_invoice_text
|
||||
- render_invoice_stamp
|
||||
- api_payment_details
|
||||
- api_refund_details
|
||||
- shred_payment_info
|
||||
- matching_id
|
||||
- refund_matching_id
|
||||
"""
|
||||
|
||||
@property
|
||||
def is_enabled(self) -> bool:
|
||||
return False
|
||||
|
||||
@property
|
||||
def settings_form_fields(self) -> dict:
|
||||
return {}
|
||||
|
||||
def is_allowed(self, request: HttpRequest, total: Decimal=None) -> bool:
|
||||
return False
|
||||
|
||||
def payment_is_valid_session(self, request: HttpRequest, payment: OrderPayment):
|
||||
return False
|
||||
|
||||
def order_change_allowed(self, order: Order, request: HttpRequest=None) -> bool:
|
||||
return False
|
||||
|
||||
def payment_refund_supported(self, payment: OrderPayment) -> bool:
|
||||
return False
|
||||
|
||||
def payment_partial_refund_supported(self, payment: OrderPayment) -> bool:
|
||||
return False
|
||||
|
||||
def execute_payment(self, request: HttpRequest, payment: OrderPayment):
|
||||
raise PaymentException(_("This payment provider exists for historical purposes only and is no longer usable."))
|
||||
|
||||
def execute_refund(self, refund: OrderRefund):
|
||||
raise PaymentException(_("This payment provider exists for historical purposes only and is no longer usable."))
|
||||
|
||||
|
||||
@receiver(register_payment_providers, dispatch_uid="payment_free")
|
||||
def register_payment_provider(sender, **kwargs):
|
||||
return [FreeOrderProvider, BoxOfficeProvider, OffsettingProvider, ManualPayment, GiftCardPayment]
|
||||
|
||||
@@ -245,6 +245,9 @@ def recv_classic(sender, **kwargs):
|
||||
|
||||
|
||||
def assign_ticket_secret(event, position, force_invalidate_if_revokation_list_used=False, force_invalidate=False, save=True):
|
||||
if position.pk and position.issued_gift_cards.exists():
|
||||
return
|
||||
|
||||
gen = event.ticket_secret_generator
|
||||
if gen.use_revocation_list and force_invalidate_if_revokation_list_used:
|
||||
force_invalidate = True
|
||||
|
||||
@@ -1599,6 +1599,7 @@ class OrderChangeManager:
|
||||
'seat_forbidden': gettext_lazy('The selected product does not allow to select a seat.'),
|
||||
'tax_rule_country_blocked': gettext_lazy('The selected country is blocked by your tax rule.'),
|
||||
'gift_card_change': gettext_lazy('You cannot change the price of a position that has been used to issue a gift card.'),
|
||||
'gift_card_secret': gettext_lazy('You cannot change the ticket secret of a position that has been used to issue a gift card.'),
|
||||
'max_items_per_product': ngettext_lazy(
|
||||
"You cannot select more than %(max)s item of the product %(product)s.",
|
||||
"You cannot select more than %(max)s items of the product %(product)s.",
|
||||
@@ -1756,6 +1757,9 @@ class OrderChangeManager:
|
||||
self._operations.append(self.RegenerateSecretOperation(position))
|
||||
|
||||
def change_ticket_secret(self, position: OrderPosition, new_secret: str):
|
||||
if position.issued_gift_cards.exists():
|
||||
raise OrderError(self.error_messages['gift_card_secret'])
|
||||
|
||||
self._operations.append(self.ChangeSecretOperation(position, new_secret))
|
||||
|
||||
def change_valid_from(self, position: OrderPosition, new_value: datetime):
|
||||
|
||||
@@ -535,9 +535,8 @@ EventPluginRegistry = PluginAwareRegistry # for backwards compatibility
|
||||
event_live_issues = EventPluginSignal()
|
||||
"""
|
||||
This signal is sent out to determine whether an event can be taken live. If you want to
|
||||
prevent the event from going live, return an error message to display to the user (either
|
||||
as a SafeString containing HTML, or a string that will be HTML-escaped). If you don't,
|
||||
your receiver should return ``None``.
|
||||
prevent the event from going live, return a string that will be displayed to the user
|
||||
as the error message. If you don't, your receiver should return ``None``.
|
||||
|
||||
As with all event-plugin signals, the ``sender`` keyword argument will contain the event.
|
||||
"""
|
||||
|
||||
@@ -22,7 +22,6 @@
|
||||
import importlib
|
||||
|
||||
from django import template
|
||||
from django.utils.html import conditional_escape
|
||||
from django.utils.safestring import mark_safe
|
||||
|
||||
from pretix.base.models import Event
|
||||
@@ -45,7 +44,7 @@ def eventsignal(event: Event, signame: str, **kwargs):
|
||||
_html = []
|
||||
for receiver, response in signal.send(event, **kwargs):
|
||||
if response:
|
||||
_html.append(conditional_escape(response))
|
||||
_html.append(response)
|
||||
return mark_safe("".join(_html))
|
||||
|
||||
|
||||
@@ -64,5 +63,5 @@ def signal(signame: str, request, **kwargs):
|
||||
_html = []
|
||||
for receiver, response in signal.send(request, **kwargs):
|
||||
if response:
|
||||
_html.append(conditional_escape(response))
|
||||
_html.append(response)
|
||||
return mark_safe("".join(_html))
|
||||
|
||||
@@ -27,11 +27,11 @@ from django.template import TemplateDoesNotExist, loader
|
||||
from django.template.loader import get_template
|
||||
from django.utils.functional import Promise
|
||||
from django.utils.translation import gettext as _
|
||||
from django.views.decorators.csrf import requires_csrf_token
|
||||
from sentry_sdk import last_event_id
|
||||
|
||||
from pretix.base.i18n import language
|
||||
from pretix.base.middleware import get_language_from_request
|
||||
from pretix.multidomain.middlewares import requires_csrf_token
|
||||
|
||||
|
||||
def csrf_failure(request, reason=""):
|
||||
|
||||
@@ -19,56 +19,14 @@
|
||||
# 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
|
||||
import os
|
||||
|
||||
from celery import Celery, signals
|
||||
from django.dispatch import receiver
|
||||
from celery import Celery
|
||||
|
||||
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "pretix.settings")
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
from django.conf import settings
|
||||
|
||||
app = Celery('pretix')
|
||||
app.config_from_object('django.conf:settings', namespace='CELERY')
|
||||
app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)
|
||||
|
||||
|
||||
@receiver(signals.before_task_publish)
|
||||
def on_before_task_publish(sender, body, exchange, routing_key, headers, properties, declare, retry_policy, **kwargs):
|
||||
from pretix.helpers.logs import local
|
||||
|
||||
trace = getattr(local, 'trace', [])
|
||||
request_id = getattr(local, 'request_id', None)
|
||||
if request_id:
|
||||
trace.append(request_id)
|
||||
|
||||
headers["X-Pretix-Trace"] = " ".join(trace)
|
||||
|
||||
|
||||
@receiver(signals.task_received)
|
||||
def on_task_received(sender, request, **kwargs):
|
||||
trace = request._request_dict.get("X-Pretix-Trace")
|
||||
if trace:
|
||||
logger.info(f"Task {request.id} has trace {trace}")
|
||||
|
||||
|
||||
@receiver(signals.task_prerun)
|
||||
def on_task_prerun(sender, task_id, task, **kwargs):
|
||||
from pretix.helpers.logs import local
|
||||
|
||||
local.request_id = task_id
|
||||
if task.request.headers and "X-Pretix-Trace" in task.request.headers:
|
||||
local.trace = task.request.headers["X-Pretix-Trace"].split(" ")
|
||||
else:
|
||||
local.trace = []
|
||||
local.trace.append(task_id)
|
||||
|
||||
|
||||
@receiver(signals.task_postrun)
|
||||
def on_task_postrun(sender, task_id, task, **kwargs):
|
||||
from pretix.helpers.logs import local
|
||||
|
||||
local.request_id = None
|
||||
local.trace = []
|
||||
|
||||
@@ -1679,7 +1679,7 @@ class CountriesAndEUAndStates(CountriesAndEU):
|
||||
|
||||
class TaxRuleLineForm(I18nForm):
|
||||
country = LazyTypedChoiceField(
|
||||
choices=lazy(lambda: CountriesAndEUAndStates(), CountriesAndEUAndStates),
|
||||
choices=CountriesAndEUAndStates(),
|
||||
required=False
|
||||
)
|
||||
address_type = forms.ChoiceField(
|
||||
@@ -1905,6 +1905,12 @@ class QuickSetupForm(I18nForm):
|
||||
required=False,
|
||||
help_text=_("We'll show this publicly to allow attendees to contact you.")
|
||||
)
|
||||
contact_url = forms.URLField(
|
||||
label=_("Contact URL"),
|
||||
required=False,
|
||||
help_text=_("If you set this, the footer contact link will point here instead of using the email address above. "
|
||||
"Please note that you still need to add a contact email address that will be shared with all emails you send.")
|
||||
)
|
||||
total_quota = forms.IntegerField(
|
||||
label=_("Total capacity"),
|
||||
min_value=0,
|
||||
|
||||
@@ -32,20 +32,16 @@
|
||||
# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations under the License.
|
||||
|
||||
import copy
|
||||
import csv
|
||||
from collections import Counter, namedtuple
|
||||
from collections import namedtuple
|
||||
from io import StringIO
|
||||
|
||||
from django import forms
|
||||
from django.core.exceptions import ObjectDoesNotExist, ValidationError
|
||||
from django.core.validators import EmailValidator
|
||||
from django.db.models import Count, F, Max
|
||||
from django.db.models.functions import Upper
|
||||
from django.forms.utils import ErrorDict
|
||||
from django.urls import reverse
|
||||
from django.utils.timezone import now
|
||||
from django.utils.translation import gettext_lazy as _, pgettext_lazy
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
from django_scopes.forms import SafeModelChoiceField
|
||||
|
||||
from pretix.base.email import get_available_placeholders
|
||||
@@ -54,10 +50,7 @@ from pretix.base.forms import (
|
||||
)
|
||||
from pretix.base.forms.widgets import format_placeholders_help_text
|
||||
from pretix.base.i18n import language
|
||||
from pretix.base.models import Item, ItemVariation, Quota, SubEvent, Voucher
|
||||
from pretix.base.models.vouchers import VoucherBulkData
|
||||
from pretix.base.services.locking import lock_objects
|
||||
from pretix.base.services.quotas import QuotaAvailability
|
||||
from pretix.base.models import Item, Voucher
|
||||
from pretix.control.forms import SplitDateTimeField, SplitDateTimePickerWidget
|
||||
from pretix.control.forms.widgets import Select2, Select2ItemVarQuota
|
||||
from pretix.control.signals import voucher_form_validation
|
||||
@@ -112,22 +105,20 @@ class VoucherForm(I18nModelForm):
|
||||
except Item.DoesNotExist:
|
||||
pass
|
||||
super().__init__(*args, **kwargs)
|
||||
if not self.event and self.instance:
|
||||
self.event = self.instance.event
|
||||
|
||||
self.fields['tag'].widget.attrs['data-typeahead-url'] = reverse('control:event.vouchers.tags.typeahead', kwargs={
|
||||
'event': self.event.slug,
|
||||
'organizer': self.event.organizer.slug,
|
||||
'event': instance.event.slug,
|
||||
'organizer': instance.event.organizer.slug,
|
||||
})
|
||||
|
||||
if self.event.has_subevents:
|
||||
self.fields['subevent'].queryset = self.event.subevents.all()
|
||||
if instance.event.has_subevents:
|
||||
self.fields['subevent'].queryset = instance.event.subevents.all()
|
||||
self.fields['subevent'].widget = Select2(
|
||||
attrs={
|
||||
'data-model-select2': 'event',
|
||||
'data-select2-url': reverse('control:event.subevents.select2', kwargs={
|
||||
'event': self.event.slug,
|
||||
'organizer': self.event.organizer.slug,
|
||||
'event': instance.event.slug,
|
||||
'organizer': instance.event.organizer.slug,
|
||||
}),
|
||||
}
|
||||
)
|
||||
@@ -137,19 +128,18 @@ class VoucherForm(I18nModelForm):
|
||||
del self.fields['subevent']
|
||||
|
||||
choices = []
|
||||
prefix = (self.prefix + '-') if self.prefix else ''
|
||||
if 'itemvar' in initial or (self.data and prefix + 'itemvar' in self.data):
|
||||
iv = self.data.get(prefix + 'itemvar', '') or initial.get('itemvar', '') or ''
|
||||
if 'itemvar' in initial or (self.data and 'itemvar' in self.data):
|
||||
iv = self.data.get('itemvar') or initial.get('itemvar', '')
|
||||
if iv.startswith('q-'):
|
||||
q = self.event.quotas.get(pk=iv[2:])
|
||||
q = self.instance.event.quotas.get(pk=iv[2:])
|
||||
choices.append(('q-%d' % q.pk, _('Any product in quota "{quota}"').format(quota=q)))
|
||||
elif '-' in iv:
|
||||
itemid, varid = iv.split('-')
|
||||
i = self.event.items.get(pk=itemid)
|
||||
i = self.instance.event.items.get(pk=itemid)
|
||||
v = i.variations.get(pk=varid)
|
||||
choices.append(('%d-%d' % (i.pk, v.pk), '%s – %s' % (str(i), v.value)))
|
||||
elif iv:
|
||||
i = self.event.items.get(pk=iv)
|
||||
i = self.instance.event.items.get(pk=iv)
|
||||
if i.variations.exists():
|
||||
choices.append((str(i.pk), _('{product} – Any variation').format(product=i)))
|
||||
else:
|
||||
@@ -160,8 +150,8 @@ class VoucherForm(I18nModelForm):
|
||||
attrs={
|
||||
'data-model-select2': 'generic',
|
||||
'data-select2-url': reverse('control:event.vouchers.itemselect2', kwargs={
|
||||
'event': self.event.slug,
|
||||
'organizer': self.event.organizer.slug,
|
||||
'event': instance.event.slug,
|
||||
'organizer': instance.event.organizer.slug,
|
||||
}),
|
||||
'data-placeholder': _('All products')
|
||||
}
|
||||
@@ -169,7 +159,7 @@ class VoucherForm(I18nModelForm):
|
||||
self.fields['itemvar'].required = False
|
||||
self.fields['itemvar'].widget.choices = self.fields['itemvar'].choices
|
||||
|
||||
if self.event.seating_plan or self.event.subevents.filter(seating_plan__isnull=False).exists():
|
||||
if self.instance.event.seating_plan or self.instance.event.subevents.filter(seating_plan__isnull=False).exists():
|
||||
self.fields['seat'] = forms.CharField(
|
||||
label=_("Specific seat ID"),
|
||||
max_length=255,
|
||||
@@ -179,45 +169,40 @@ class VoucherForm(I18nModelForm):
|
||||
help_text=str(self.instance.seat) if self.instance.seat else '',
|
||||
)
|
||||
|
||||
def parse_itemvar(self, data):
|
||||
try:
|
||||
itemid = quotaid = None
|
||||
iv = data.get('itemvar', '')
|
||||
if iv.startswith('q-'):
|
||||
quotaid = iv[2:]
|
||||
elif '-' in iv:
|
||||
itemid, varid = iv.split('-')
|
||||
elif iv:
|
||||
itemid, varid = iv, None
|
||||
else:
|
||||
itemid, varid = None, None
|
||||
|
||||
if itemid:
|
||||
item = self.event.items.get(pk=itemid)
|
||||
if varid:
|
||||
variation = item.variations.get(pk=varid)
|
||||
else:
|
||||
variation = None
|
||||
quota = None
|
||||
elif quotaid:
|
||||
quota = self.event.quotas.get(pk=quotaid)
|
||||
item = None
|
||||
variation = None
|
||||
else:
|
||||
quota = None
|
||||
item = None
|
||||
variation = None
|
||||
|
||||
return (item, variation, quota)
|
||||
|
||||
except ObjectDoesNotExist:
|
||||
raise ValidationError(_("Invalid product selected."))
|
||||
|
||||
def clean(self):
|
||||
data = super().clean()
|
||||
|
||||
if not self._errors:
|
||||
self.instance.item, self.instance.variation, self.instance.quota = self.parse_itemvar(self.data)
|
||||
try:
|
||||
itemid = quotaid = None
|
||||
iv = self.data.get('itemvar', '')
|
||||
if iv.startswith('q-'):
|
||||
quotaid = iv[2:]
|
||||
elif '-' in iv:
|
||||
itemid, varid = iv.split('-')
|
||||
elif iv:
|
||||
itemid, varid = iv, None
|
||||
else:
|
||||
itemid, varid = None, None
|
||||
|
||||
if itemid:
|
||||
self.instance.item = self.instance.event.items.get(pk=itemid)
|
||||
if varid:
|
||||
self.instance.variation = self.instance.item.variations.get(pk=varid)
|
||||
else:
|
||||
self.instance.variation = None
|
||||
self.instance.quota = None
|
||||
elif quotaid:
|
||||
self.instance.quota = self.instance.event.quotas.get(pk=quotaid)
|
||||
self.instance.item = None
|
||||
self.instance.variation = None
|
||||
else:
|
||||
self.instance.quota = None
|
||||
self.instance.item = None
|
||||
self.instance.variation = None
|
||||
|
||||
except ObjectDoesNotExist:
|
||||
raise ValidationError(_("Invalid product selected."))
|
||||
|
||||
if 'codes' in data:
|
||||
data['codes'] = [a.strip() for a in data.get('codes', '').strip().split("\n") if a]
|
||||
@@ -229,7 +214,7 @@ class VoucherForm(I18nModelForm):
|
||||
|
||||
try:
|
||||
Voucher.clean_item_properties(
|
||||
data, self.event,
|
||||
data, self.instance.event,
|
||||
self.instance.quota, self.instance.item, self.instance.variation,
|
||||
seats_given=data.get('seat') or data.get('seats'),
|
||||
block_quota=data.get('block_quota')
|
||||
@@ -249,7 +234,7 @@ class VoucherForm(I18nModelForm):
|
||||
|
||||
try:
|
||||
Voucher.clean_subevent(
|
||||
data, self.event
|
||||
data, self.instance.event
|
||||
)
|
||||
except ValidationError as e:
|
||||
raise ValidationError({"subevent": e.message})
|
||||
@@ -265,19 +250,19 @@ class VoucherForm(I18nModelForm):
|
||||
if check_quota:
|
||||
Voucher.clean_quota_check(
|
||||
data, cnt, self.initial_instance_data,
|
||||
self.event, self.instance.quota, self.instance.item, self.instance.variation
|
||||
self.instance.event, self.instance.quota, self.instance.item, self.instance.variation
|
||||
)
|
||||
Voucher.clean_voucher_code(data, self.event, self.instance.pk)
|
||||
Voucher.clean_voucher_code(data, self.instance.event, self.instance.pk)
|
||||
if 'seat' in self.fields:
|
||||
if data.get('seat'):
|
||||
self.instance.seat = Voucher.clean_seat_id(
|
||||
data, self.instance.item, self.instance.quota, self.event, self.instance.pk
|
||||
data, self.instance.item, self.instance.quota, self.instance.event, self.instance.pk
|
||||
)
|
||||
self.instance.item = self.instance.seat.product
|
||||
else:
|
||||
self.instance.seat = None
|
||||
|
||||
voucher_form_validation.send(sender=self.event, form=self, data=data)
|
||||
voucher_form_validation.send(sender=self.instance.event, form=self, data=data)
|
||||
|
||||
return data
|
||||
|
||||
@@ -285,215 +270,6 @@ class VoucherForm(I18nModelForm):
|
||||
return super().save(commit)
|
||||
|
||||
|
||||
class VoucherBulkEditForm(VoucherForm):
|
||||
def __init__(self, *args, **kwargs):
|
||||
self.mixed_values = kwargs.pop('mixed_values')
|
||||
self.queryset = kwargs.pop('queryset')
|
||||
super().__init__(**kwargs)
|
||||
del self.fields["code"]
|
||||
self.fields.pop("seat", None)
|
||||
|
||||
def is_bulk_checked(self, fieldname):
|
||||
return self.prefix + fieldname in self.data.getlist('_bulk')
|
||||
|
||||
def clean(self):
|
||||
# We skip the parent class because it's not suited for bulk editing and implement custom validation here.
|
||||
# This does not validate *everything* we validate in VoucherForm. For example, we skip validation that one does
|
||||
# not create a voucher for an add-on product or that the seat matches the product to save on complexity.
|
||||
# This is a UX validation only anyway, since one could first create the voucher and then make the product an
|
||||
# add-on product. However, we need to validate everything that we don't want violated in the database.
|
||||
data = super(VoucherForm, self).clean()
|
||||
|
||||
if self.is_bulk_checked("itemvar"):
|
||||
data["item"], data["variation"], data["quota"] = self.parse_itemvar(data)
|
||||
|
||||
if self.is_bulk_checked("max_usages") and "max_usages" in data:
|
||||
max_redeemed = self.queryset.aggregate(m=Max("redeemed"))["m"]
|
||||
if data["max_usages"] < max_redeemed:
|
||||
raise ValidationError(_(
|
||||
"You cannot reduce the maximum number of redemptions to %(max_usages)s, because at least one "
|
||||
"of the selected vouchers has already been redeemed %(max_redeemed)s times."
|
||||
) % {"max_usages": data["max_usages"], "max_redeemed": max_redeemed})
|
||||
|
||||
# Check diff on product and quota usage based on old groups of vouchers
|
||||
if any(self.is_bulk_checked(k) for k in ("max_usages", "itemvar", "block_quota", "valid_until", "subevent")):
|
||||
quota_diff = Counter()
|
||||
|
||||
current_vouchers = self.queryset.order_by().values(
|
||||
"item", "variation", "quota", "block_quota", "valid_until", "subevent", "redeemed", "max_usages",
|
||||
"allow_ignore_quota",
|
||||
).annotate(c=Count("*"))
|
||||
item_cache = {i.pk: i for i in Item.objects.filter(pk__in=[c["item"] for c in current_vouchers])}
|
||||
var_cache = {v.pk: v for v in ItemVariation.objects.filter(pk__in=[c["variation"] for c in current_vouchers])}
|
||||
quota_cache = {q.pk: q for q in Quota.objects.filter(pk__in=[c["quota"] for c in current_vouchers])}
|
||||
subevent_cache = {s.pk: s for s in SubEvent.objects.filter(pk__in=[c["subevent"] for c in current_vouchers])}
|
||||
|
||||
for current in current_vouchers:
|
||||
bulk_count = current.pop('c')
|
||||
current = VoucherBulkData(**current)
|
||||
# Get quotas that are currently used
|
||||
if current.item:
|
||||
current.item = item_cache[current.item]
|
||||
if current.variation:
|
||||
current.variation = var_cache[current.variation]
|
||||
if current.quota:
|
||||
current.quota = quota_cache[current.quota]
|
||||
if current.subevent:
|
||||
current.subevent = subevent_cache[current.subevent]
|
||||
|
||||
old_quotas = Voucher.clean_quota_get_ignored(current)
|
||||
old_amount = max(current.max_usages - current.redeemed, 0) * bulk_count
|
||||
|
||||
# Predict state after change
|
||||
after_change = copy.copy(current)
|
||||
if self.is_bulk_checked("itemvar") and "itemvar" in data:
|
||||
after_change.item = data["item"]
|
||||
after_change.variation = data["variation"]
|
||||
after_change.quota = data["quota"]
|
||||
if self.is_bulk_checked("subevent") and "subevent" in data:
|
||||
after_change.subevent = data["subevent"]
|
||||
if self.is_bulk_checked("max_usages") and "max_usages" in data:
|
||||
after_change.max_usages = data["max_usages"]
|
||||
if self.is_bulk_checked("block_quota") and "block_quota" in data:
|
||||
after_change.block_quota = data["block_quota"]
|
||||
if self.is_bulk_checked("valid_until") and "valid_until" in data:
|
||||
after_change.valid_until = data["valid_until"]
|
||||
if self.is_bulk_checked("allow_ignore_quota") and "allow_ignore_quota" in data:
|
||||
after_change.allow_ignore_quota = data["allow_ignore_quota"]
|
||||
|
||||
if after_change.quota and self.event.has_subevents and not after_change.subevent:
|
||||
raise ValidationError(_("You cannot create a voucher that allows selection of a quota but has no date selected."))
|
||||
|
||||
if after_change.quota and after_change.subevent and after_change.quota.subevent_id != after_change.subevent.pk:
|
||||
raise ValidationError(_("The selected quota does not match the selected subevent."))
|
||||
|
||||
if after_change.block_quota and self.event.has_subevents and not after_change.subevent:
|
||||
raise ValidationError(
|
||||
_('If you want this voucher to block quota, you need to select a specific date.'))
|
||||
|
||||
if after_change.block_quota and not after_change.item and not after_change.quota:
|
||||
raise ValidationError(
|
||||
_('You need to select a specific product or quota if this voucher should reserve '
|
||||
'tickets.')
|
||||
)
|
||||
|
||||
if after_change.allow_ignore_quota:
|
||||
# todo: is this the most useful way to do this?
|
||||
continue
|
||||
|
||||
new_quotas = Voucher.clean_quota_get_ignored(after_change)
|
||||
new_amount = max(after_change.max_usages - after_change.redeemed, 0) * bulk_count
|
||||
|
||||
if new_quotas != old_quotas or new_amount != old_amount:
|
||||
for q in old_quotas:
|
||||
quota_diff[q] -= old_amount
|
||||
for q in new_quotas:
|
||||
quota_diff[q] += new_amount
|
||||
|
||||
if any(v > 0 for q, v in quota_diff.items()):
|
||||
lock_objects([q for q, v in quota_diff.items() if q.size is not None and v > 0], shared_lock_objects=[self.event])
|
||||
qa = QuotaAvailability(count_waitinglist=False)
|
||||
qa.queue(*(q for q, v in quota_diff.items() if v > 0))
|
||||
qa.compute()
|
||||
|
||||
if any(qa.results[q][0] != Quota.AVAILABILITY_OK or (qa.results[q][1] is not None and qa.results[q][1] < required)
|
||||
for q, required in quota_diff.items() if required > 0):
|
||||
raise ValidationError(_(
|
||||
'There is no sufficient quota available to perform this change.'
|
||||
))
|
||||
|
||||
has_seat = self.queryset.filter(seat__isnull=False).exists()
|
||||
if has_seat:
|
||||
if self.is_bulk_checked("max_usages"):
|
||||
raise ValidationError(_(
|
||||
'Changing the maximum number of usages in bulk is not supported if any of the selected vouchers '
|
||||
'is assigned a seat.'
|
||||
))
|
||||
if self.is_bulk_checked("subevent"):
|
||||
raise ValidationError(pgettext_lazy(
|
||||
'subevent',
|
||||
'Changing the date in bulk is not supported if any of the selected vouchers '
|
||||
'is assigned a seat.'
|
||||
))
|
||||
if self.is_bulk_checked("itemvar") and data["quota"]:
|
||||
raise ValidationError(_(
|
||||
'Changing the product to a quota is not supported if any of the selected vouchers '
|
||||
'is assigned a seat.'
|
||||
))
|
||||
|
||||
if self.is_bulk_checked("valid_until"):
|
||||
if data["valid_until"] is None or data["valid_until"] >= now():
|
||||
currently_not_blocked_seats = self.queryset.filter(
|
||||
seat__isnull=False,
|
||||
max_usages__gt=F("redeemed"),
|
||||
valid_until__lt=now(),
|
||||
)
|
||||
if self.event.has_subevents:
|
||||
subevents = self.event.subevents.filter(pk__in=currently_not_blocked_seats.values_list("subevent"))
|
||||
for se in subevents:
|
||||
conflicts = currently_not_blocked_seats.filter(
|
||||
subevent=se
|
||||
).exclude(
|
||||
seat_id__in=se.free_seats().values("pk")
|
||||
)
|
||||
if conflicts:
|
||||
raise ValidationError(_(
|
||||
'This change cannot be completed because not all assigned seats of the vouchers are '
|
||||
'still available'
|
||||
))
|
||||
else:
|
||||
conflicts = currently_not_blocked_seats.exclude(
|
||||
seat_id__in=self.event.free_seats().values("pk")
|
||||
)
|
||||
if conflicts:
|
||||
raise ValidationError(_(
|
||||
'This change cannot be completed because not all assigned seats of the vouchers are '
|
||||
'still available'
|
||||
))
|
||||
|
||||
return data
|
||||
|
||||
def save(self, commit=True):
|
||||
objs = list(self.queryset)
|
||||
fields = set()
|
||||
|
||||
check_map = {
|
||||
'price_mode': '__price',
|
||||
'value': '__price',
|
||||
}
|
||||
for k in self.fields:
|
||||
if not self.is_bulk_checked(check_map.get(k, k)):
|
||||
continue
|
||||
|
||||
if k == 'itemvar':
|
||||
fields.add("item")
|
||||
fields.add("variation")
|
||||
fields.add("quota")
|
||||
else:
|
||||
fields.add(k)
|
||||
for obj in objs:
|
||||
if k == 'itemvar':
|
||||
obj.item = self.cleaned_data["item"]
|
||||
obj.variation = self.cleaned_data["variation"]
|
||||
obj.quota = self.cleaned_data["quota"]
|
||||
else:
|
||||
setattr(obj, k, self.cleaned_data[k])
|
||||
|
||||
fields = [f for f in fields if f != 'itemvars']
|
||||
if fields:
|
||||
Voucher.objects.bulk_update(objs, fields, 200)
|
||||
|
||||
def full_clean(self):
|
||||
if len(self.data) == 0:
|
||||
# form wasn't submitted
|
||||
self._errors = ErrorDict()
|
||||
return
|
||||
super().full_clean()
|
||||
|
||||
def _post_clean(self):
|
||||
pass # skip model-level clean
|
||||
|
||||
|
||||
class VoucherBulkForm(VoucherForm):
|
||||
codes = forms.CharField(
|
||||
widget=forms.Textarea,
|
||||
|
||||
@@ -37,7 +37,7 @@ from urllib.parse import quote, urljoin, urlparse
|
||||
from django.conf import settings
|
||||
from django.contrib.auth import REDIRECT_FIELD_NAME, logout
|
||||
from django.contrib.auth.views import redirect_to_login
|
||||
from django.http import Http404, HttpResponse
|
||||
from django.http import Http404
|
||||
from django.shortcuts import get_object_or_404, resolve_url
|
||||
from django.template.response import TemplateResponse
|
||||
from django.urls import get_script_prefix, resolve, reverse
|
||||
@@ -98,8 +98,6 @@ class PermissionMiddleware:
|
||||
super().__init__()
|
||||
|
||||
def _login_redirect(self, request):
|
||||
from django.contrib.auth.views import redirect_to_login
|
||||
|
||||
# Taken from django/contrib/auth/decorators.py
|
||||
path = request.build_absolute_uri()
|
||||
# urlparse chokes on lazy objects in Python 3, force to str
|
||||
@@ -112,21 +110,10 @@ class PermissionMiddleware:
|
||||
if ((not login_scheme or login_scheme == current_scheme) and
|
||||
(not login_netloc or login_netloc == current_netloc)):
|
||||
path = request.get_full_path()
|
||||
from django.contrib.auth.views import redirect_to_login
|
||||
|
||||
if request.headers.get("X-Requested-With") == "XMLHttpRequest":
|
||||
# It's not useful to return a 302 redirect on a XMLHttpRequest request, because
|
||||
# the XMLHttpRequest is unable to detect redirects.
|
||||
return HttpResponse(
|
||||
"Authentication required",
|
||||
status=401,
|
||||
headers={
|
||||
# Appending ?next= is handled by client, because it should be the top-level context url,
|
||||
# not the URL called in the background
|
||||
"X-Login-Url": resolved_login_url,
|
||||
}
|
||||
)
|
||||
|
||||
return redirect_to_login(path, resolved_login_url, REDIRECT_FIELD_NAME)
|
||||
return redirect_to_login(
|
||||
path, resolved_login_url, REDIRECT_FIELD_NAME)
|
||||
|
||||
def __call__(self, request):
|
||||
url = resolve(request.path_info)
|
||||
|
||||
@@ -39,8 +39,7 @@ from pretix.base.signals import (
|
||||
html_page_start = GlobalSignal()
|
||||
"""
|
||||
This signal allows you to put code in the beginning of the main page for every
|
||||
page in the backend. You are expected to return a SafeString containing HTML, or
|
||||
a string that will be HTML-escaped.
|
||||
page in the backend. You are expected to return HTML.
|
||||
|
||||
The ``sender`` keyword argument will contain the request.
|
||||
"""
|
||||
@@ -130,7 +129,7 @@ event_dashboard_top = EventPluginSignal()
|
||||
Arguments: 'request'
|
||||
|
||||
This signal is sent out to include custom HTML in the top part of the the event dashboard.
|
||||
Receivers should return a SafeString containing HTML, or a string that will be HTML-escaped.
|
||||
Receivers should return HTML.
|
||||
|
||||
As with all event plugin signals, the ``sender`` keyword argument will contain the event.
|
||||
An additional keyword argument ``subevent`` *can* contain a sub-event.
|
||||
@@ -173,7 +172,6 @@ Arguments: 'form'
|
||||
|
||||
This signal allows you to add additional HTML to the form that is used for modifying vouchers.
|
||||
You receive the form object in the ``form`` keyword argument.
|
||||
Receivers should return a SafeString containing HTML, or a string that will be HTML-escaped.
|
||||
|
||||
As with all event plugin signals, the ``sender`` keyword argument will contain the event.
|
||||
"""
|
||||
@@ -211,7 +209,6 @@ Arguments: 'quota'
|
||||
|
||||
This signal allows you to append HTML to a Quota's detail view. You receive the
|
||||
quota as argument in the ``quota`` keyword argument.
|
||||
Receivers should return a SafeString containing HTML, or a string that will be HTML-escaped.
|
||||
|
||||
As with all event plugin signals, the ``sender`` keyword argument will contain the event.
|
||||
"""
|
||||
@@ -222,7 +219,6 @@ Arguments: 'subevent'
|
||||
|
||||
This signal allows you to append HTML to a SubEvent's detail view. You receive the
|
||||
subevent as argument in the ``subevent`` keyword argument.
|
||||
Receivers should return a SafeString containing HTML, or a string that will be HTML-escaped.
|
||||
|
||||
As with all event plugin signals, the ``sender`` keyword argument will contain the event.
|
||||
"""
|
||||
@@ -269,8 +265,7 @@ order_info = EventPluginSignal()
|
||||
"""
|
||||
Arguments: ``order``, ``request``
|
||||
|
||||
This signal is sent out to display additional information on the order detail page.
|
||||
Receivers should return a SafeString containing HTML, or a string that will be HTML-escaped.
|
||||
This signal is sent out to display additional information on the order detail page
|
||||
|
||||
As with all event plugin signals, the ``sender`` keyword argument will contain the event.
|
||||
Additionally, the argument ``order`` and ``request`` are available.
|
||||
@@ -280,8 +275,7 @@ order_approve_info = EventPluginSignal()
|
||||
"""
|
||||
Arguments: ``order``, ``request``
|
||||
|
||||
This signal is sent out to display additional information on the order approve page.
|
||||
Receivers should return a SafeString containing HTML, or a string that will be HTML-escaped.
|
||||
This signal is sent out to display additional information on the order approve page
|
||||
|
||||
As with all event plugin signals, the ``sender`` keyword argument will contain the event.
|
||||
Additionally, the argument ``order`` and ``request`` are available.
|
||||
@@ -292,7 +286,6 @@ order_position_buttons = EventPluginSignal()
|
||||
Arguments: ``order``, ``position``, ``request``
|
||||
|
||||
This signal is sent out to display additional buttons for a single position of an order.
|
||||
Receivers should return a SafeString containing HTML, or a string that will be HTML-escaped.
|
||||
|
||||
As with all event plugin signals, the ``sender`` keyword argument will contain the event.
|
||||
Additionally, the argument ``order`` and ``request`` are available.
|
||||
@@ -322,7 +315,6 @@ Arguments: 'request'
|
||||
|
||||
This signal is sent out to include template snippets on the settings page of an event
|
||||
that allows generating a pretix Widget code.
|
||||
Receivers should return a SafeString containing HTML, or a string that will be HTML-escaped.
|
||||
|
||||
As with all event plugin signals, the ``sender`` keyword argument will contain the event.
|
||||
A second keyword argument ``request`` will contain the request object.
|
||||
|
||||
@@ -56,4 +56,5 @@
|
||||
</form>
|
||||
<script type="text/plain" id="good_origin">{{ good_origin }}</script>
|
||||
<script type="text/plain" id="bad_origin_report_url">{{ bad_origin_report_url }}</script>
|
||||
<!-- pretix-login-marker -->{# marker required for ajax calls to detect that user session is over #}
|
||||
{% endblock %}
|
||||
|
||||
@@ -6,7 +6,7 @@ If this was you, enter the following code in the setup form:
|
||||
|
||||
{{ code }}
|
||||
|
||||
Don't share this code with anyone unless you want to authorize them to use this address for this purpose. The {{ instance }} team will never ask you for it.
|
||||
Don't share this code with anyone. The {{ instance }} team will never ask you for it.
|
||||
|
||||
If you didn't request this, you can safely ignore this email.
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ We noticed a new sign-in to your {{ instance }} account:
|
||||
{% endif %}
|
||||
{% blocktrans with url=url|safe %}If it was you, no action is needed.
|
||||
|
||||
If you don't recognize this sign-in, please change your password immediately:
|
||||
If you don't recognise this sign-in, please change your password immediately:
|
||||
|
||||
{{ url }}
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
</p>
|
||||
<ul>
|
||||
{% for issue in issues %}
|
||||
<li>{{ issue }}</li>
|
||||
<li>{{ issue|safe }}</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
@@ -42,7 +42,7 @@
|
||||
</p>
|
||||
<ul>
|
||||
{% for issue in issues %}
|
||||
<li>{{ issue }}</li>
|
||||
<li>{{ issue|safe }}</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@@ -193,6 +193,7 @@
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
{% bootstrap_field form.contact_mail layout="control" %}
|
||||
{% bootstrap_field form.contact_url layout="control" %}
|
||||
{% bootstrap_field form.imprint_url layout="control" %}
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
@@ -284,6 +284,14 @@
|
||||
</div>
|
||||
<div class="col-sm-4">
|
||||
{% bootstrap_field position.form.operation_secret layout='inline' %}
|
||||
{% if position.issued_gift_cards.exists %}
|
||||
<div class="alert alert-info">
|
||||
{% blocktrans trimmed %}
|
||||
Ticket secrets of order positions that have been used to issue a gift card can not
|
||||
be changed. Only the link will be changed in this case.
|
||||
{% endblocktrans %}
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -1,83 +0,0 @@
|
||||
{% extends "pretixcontrol/items/base.html" %}
|
||||
{% load i18n %}
|
||||
{% load bootstrap3 %}
|
||||
{% load eventsignal %}
|
||||
{% load eventurl %}
|
||||
{% block title %}{% trans "Change multiple vouchers" %}{% endblock %}
|
||||
{% block inside %}
|
||||
<h1>
|
||||
{% trans "Change multiple vouchers" %}
|
||||
<small>
|
||||
{% blocktrans trimmed with number=vouchers.count %}
|
||||
{{ number }} selected
|
||||
{% endblocktrans %}
|
||||
</small>
|
||||
</h1>
|
||||
<form action="" method="post" class="form-horizontal">
|
||||
{% csrf_token %}
|
||||
<div class="hidden">
|
||||
{% for v in vouchers %}
|
||||
<input type="hidden" name="voucher" value="{{ v.pk }}">
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% bootstrap_form_errors form %}
|
||||
<fieldset>
|
||||
<legend>{% trans "Voucher details" %}</legend>
|
||||
{% bootstrap_field form.max_usages layout="bulkedit" %}
|
||||
{% bootstrap_field form.valid_until layout="bulkedit" %}
|
||||
{% bootstrap_field form.itemvar layout="bulkedit" %}
|
||||
|
||||
<div class="bulk-edit-field-group">
|
||||
<label class="field-toggle">
|
||||
<input type="checkbox" name="_bulk" value="{{ form.prefix }}__price" {% if form.prefix|add:"__price" in bulk_selected %}checked{% endif %}>
|
||||
{% trans "change" context "form_bulk" %}
|
||||
</label>
|
||||
<div class="field-content">
|
||||
<div class="form-group">
|
||||
<label class="col-md-3 control-label" for="id_tag">{% trans "Price effect" %}</label>
|
||||
<div class="col-md-5">
|
||||
{% bootstrap_field form.price_mode show_label=False form_group_class="" %}
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
{% bootstrap_field form.value show_label=False form_group_class="" %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<div class="col-md-9 col-md-offset-3">
|
||||
<div class="controls">
|
||||
<div class="alert alert-info">
|
||||
{% blocktrans trimmed %}
|
||||
If you choose "any product" for a specific quota and choose to reserve quota for this
|
||||
voucher above, the product can still be unavailable to the voucher holder if another quota
|
||||
associated with the product is sold out!
|
||||
{% endblocktrans %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% if form.subevent %}
|
||||
{% bootstrap_field form.subevent layout="bulkedit" %}
|
||||
{% endif %}
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<legend>{% trans "Advanced settings" %}</legend>
|
||||
{% bootstrap_field form.block_quota layout="bulkedit" %}
|
||||
{% bootstrap_field form.allow_ignore_quota layout="bulkedit" %}
|
||||
{% bootstrap_field form.min_usages layout="bulkedit" %}
|
||||
{% bootstrap_field form.budget addon_after=request.event.currency layout="bulkedit" %}
|
||||
{% bootstrap_field form.tag layout="bulkedit" %}
|
||||
{% bootstrap_field form.comment layout="bulkedit" %}
|
||||
{% bootstrap_field form.show_hidden_items layout="bulkedit" %}
|
||||
{% bootstrap_field form.all_addons_included layout="bulkedit" %}
|
||||
{% bootstrap_field form.all_bundles_included layout="bulkedit" %}
|
||||
</fieldset>
|
||||
<div class="form-group submit-group">
|
||||
<button type="submit" class="btn btn-primary btn-save">
|
||||
{% trans "Save" %}
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
{% endblock %}
|
||||
@@ -99,9 +99,6 @@
|
||||
</p>
|
||||
<form action="{% url "control:event.vouchers.bulkaction" organizer=request.event.organizer.slug event=request.event.slug %}" method="post">
|
||||
{% csrf_token %}
|
||||
{% for field in filter_form %}
|
||||
{{ field.as_hidden }}
|
||||
{% endfor %}
|
||||
<div class="table-responsive">
|
||||
<table class="table table-hover table-quotas">
|
||||
<thead>
|
||||
@@ -147,18 +144,6 @@
|
||||
{% endif %}
|
||||
<th></th>
|
||||
</tr>
|
||||
{% if "event.vouchers:write" in request.eventpermset and page_obj.paginator.num_pages > 1 %}
|
||||
<tr class="table-select-all warning hidden">
|
||||
<td>
|
||||
<input type="checkbox" name="__ALL" id="__all" data-results-total="{{ page_obj.paginator.count }}">
|
||||
</td>
|
||||
<td colspan="5">
|
||||
<label for="__all">
|
||||
{% trans "Select all results on other pages as well" %}
|
||||
</label>
|
||||
</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for v in vouchers %}
|
||||
@@ -226,10 +211,6 @@
|
||||
<i class="fa fa-trash" aria-hidden="true"></i>
|
||||
{% trans "Delete selected" %}
|
||||
</button>
|
||||
<button type="submit" class="btn btn-primary btn-save" name="action" value="edit"
|
||||
formaction="{% url "control:event.vouchers.bulkedit" organizer=request.event.organizer.slug event=request.event.slug %}">
|
||||
<i class="fa fa-edit"></i>{% trans "Edit selected" %}
|
||||
</button>
|
||||
</div>
|
||||
{% endif %}
|
||||
</form>
|
||||
|
||||
@@ -49,11 +49,11 @@
|
||||
<td>
|
||||
<strong>
|
||||
{% if t.tag %}
|
||||
<a href="{% url "control:event.vouchers" organizer=request.event.organizer.slug event=request.event.slug %}?filter-tag={{ '"'|add:t.tag|add:'"'|urlencode }}">
|
||||
<a href="{% url "control:event.vouchers" organizer=request.event.organizer.slug event=request.event.slug %}?tag={{ '"'|add:t.tag|add:'"'|urlencode }}">
|
||||
{{ t.tag }}
|
||||
</a>
|
||||
{% else %}
|
||||
<a href="{% url "control:event.vouchers" organizer=request.event.organizer.slug event=request.event.slug %}?filter-tag={{ '<>'|urlencode }}">
|
||||
<a href="{% url "control:event.vouchers" organizer=request.event.organizer.slug event=request.event.slug %}?tag={{ '<>'|urlencode }}">
|
||||
{% trans "Empty tag" %}
|
||||
</a>
|
||||
{% endif %}
|
||||
|
||||
@@ -383,7 +383,6 @@ urlpatterns = [
|
||||
re_path(r'^vouchers/bulk_add$', vouchers.VoucherBulkCreate.as_view(), name='event.vouchers.bulk'),
|
||||
re_path(r'^vouchers/bulk_add/mail_preview$', vouchers.VoucherBulkMailPreview.as_view(), name='event.vouchers.bulk.mail_preview'),
|
||||
re_path(r'^vouchers/bulk_action$', vouchers.VoucherBulkAction.as_view(), name='event.vouchers.bulkaction'),
|
||||
re_path(r'^vouchers/bulk_edit$', vouchers.VoucherBulkUpdateView.as_view(), name='event.vouchers.bulkedit'),
|
||||
re_path(r'^vouchers/import/$', modelimport.VoucherImportView.as_view(), name='event.vouchers.import'),
|
||||
re_path(r'^vouchers/import/(?P<file>[^/]+)/$', modelimport.VoucherProcessView.as_view(), name='event.vouchers.import.process'),
|
||||
re_path(r'^orders/(?P<code>[0-9A-Z]+)/transition$', orders.OrderTransition.as_view(),
|
||||
|
||||
@@ -243,8 +243,7 @@ def invite(request, token):
|
||||
if request.user.is_authenticated:
|
||||
if inv.team.members.filter(pk=request.user.pk).exists():
|
||||
messages.error(request, _('You cannot accept the invitation for "{}" as you already are part of '
|
||||
'this team. If you want to add a different user or create a new account, '
|
||||
'log out and click the invitation link again.').format(inv.team.name))
|
||||
'this team.').format(inv.team.name))
|
||||
return redirect('control:index')
|
||||
else:
|
||||
with transaction.atomic():
|
||||
|
||||
@@ -1428,16 +1428,11 @@ class TaxUpdate(EventSettingsViewMixin, EventPermissionRequiredMixin, UpdateView
|
||||
form.instance.custom_rules = json.dumps([
|
||||
f.cleaned_data for f in self.formset.ordered_forms if f not in self.formset.deleted_forms
|
||||
], cls=I18nJSONEncoder)
|
||||
if form.has_changed() or self.formset.has_changed():
|
||||
change_data = {
|
||||
k: form.cleaned_data.get(k) for k in form.changed_data
|
||||
}
|
||||
if self.formset.has_changed():
|
||||
change_data["custom_rules"] = [
|
||||
f.cleaned_data for f in self.formset.ordered_forms if f not in self.formset.deleted_forms
|
||||
]
|
||||
if form.has_changed():
|
||||
self.object.log_action(
|
||||
'pretix.event.taxrule.changed', user=self.request.user, data=change_data
|
||||
'pretix.event.taxrule.changed', user=self.request.user, data={
|
||||
k: form.cleaned_data.get(k) for k in form.changed_data
|
||||
}
|
||||
)
|
||||
return super().form_valid(form)
|
||||
|
||||
|
||||
@@ -64,7 +64,7 @@ from django.urls import reverse
|
||||
from django.utils import formats
|
||||
from django.utils.formats import date_format, get_format
|
||||
from django.utils.functional import cached_property
|
||||
from django.utils.html import conditional_escape, escape
|
||||
from django.utils.html import conditional_escape, escape, format_html
|
||||
from django.utils.http import url_has_allowed_host_and_scheme
|
||||
from django.utils.safestring import mark_safe
|
||||
from django.utils.timezone import make_aware, now
|
||||
@@ -79,7 +79,7 @@ from pretix.base.email import get_email_context
|
||||
from pretix.base.exporter import MultiSheetListExporter
|
||||
from pretix.base.i18n import language
|
||||
from pretix.base.models import (
|
||||
CachedFile, CachedTicket, Checkin, Invoice, InvoiceAddress, Item,
|
||||
CachedFile, CachedTicket, Checkin, GiftCard, Invoice, InvoiceAddress, Item,
|
||||
ItemVariation, LogEntry, Order, QuestionAnswer, Quota,
|
||||
ScheduledEventExport, generate_secret,
|
||||
)
|
||||
@@ -1994,7 +1994,7 @@ class OrderChange(OrderView):
|
||||
positions = list(self.order.positions.select_related(
|
||||
'item', 'item__tax_rule', 'used_membership', 'used_membership__membership_type', 'tax_rule',
|
||||
'seat', 'subevent',
|
||||
).prefetch_related('granted_memberships'))
|
||||
).prefetch_related('granted_memberships', 'issued_gift_cards'))
|
||||
for p in positions:
|
||||
p.form = OrderPositionChangeForm(prefix='op-{}'.format(p.pk), instance=p, items=self.items,
|
||||
initial={'seat': p.seat.seat_guid if p.seat else None},
|
||||
@@ -2261,6 +2261,12 @@ class OrderContactChange(OrderView):
|
||||
def get_context_data(self, **kwargs):
|
||||
ctx = super().get_context_data()
|
||||
ctx['form'] = self.form
|
||||
if self.order.all_positions.filter(Exists(GiftCard.objects.filter(issued_in=OuterRef('pk')))).exists():
|
||||
self.form.fields['regenerate_secrets'].help_text = format_html(
|
||||
'{}<br><br><strong><span class="fa fa-warning"></span> {}</strong>',
|
||||
self.form.fields['regenerate_secrets'].help_text,
|
||||
_("Ticket secrets of order positions that have been used to issue a gift card can not be changed. Only the link will be changed in this case."),
|
||||
)
|
||||
return ctx
|
||||
|
||||
@cached_property
|
||||
|
||||
@@ -40,11 +40,9 @@ import bleach
|
||||
from defusedcsv import csv
|
||||
from django.conf import settings
|
||||
from django.contrib import messages
|
||||
from django.core.exceptions import (
|
||||
BadRequest, PermissionDenied, ValidationError,
|
||||
)
|
||||
from django.core.exceptions import PermissionDenied, ValidationError
|
||||
from django.db import connection, transaction
|
||||
from django.db.models import Count, Exists, OuterRef, Sum
|
||||
from django.db.models import Exists, OuterRef, Sum
|
||||
from django.http import (
|
||||
Http404, HttpResponse, HttpResponseBadRequest, HttpResponseRedirect,
|
||||
JsonResponse,
|
||||
@@ -57,7 +55,7 @@ from django.utils.safestring import mark_safe
|
||||
from django.utils.timezone import now
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
from django.views.generic import (
|
||||
CreateView, FormView, ListView, TemplateView, UpdateView, View,
|
||||
CreateView, ListView, TemplateView, UpdateView, View,
|
||||
)
|
||||
from django_scopes import scopes_disabled
|
||||
|
||||
@@ -72,9 +70,7 @@ from pretix.base.services.vouchers import vouchers_send
|
||||
from pretix.base.templatetags.rich_text import markdown_compile_email
|
||||
from pretix.base.views.tasks import AsyncFormView
|
||||
from pretix.control.forms.filter import VoucherFilterForm, VoucherTagFilterForm
|
||||
from pretix.control.forms.vouchers import (
|
||||
VoucherBulkEditForm, VoucherBulkForm, VoucherForm,
|
||||
)
|
||||
from pretix.control.forms.vouchers import VoucherBulkForm, VoucherForm
|
||||
from pretix.control.permissions import EventPermissionRequiredMixin
|
||||
from pretix.control.signals import voucher_form_class
|
||||
from pretix.control.views import PaginationMixin
|
||||
@@ -84,37 +80,7 @@ from pretix.helpers.models import modelcopy
|
||||
from pretix.multidomain.urlreverse import eventreverse_absolute
|
||||
|
||||
|
||||
class VoucherQueryMixin:
|
||||
|
||||
@cached_property
|
||||
def request_data(self):
|
||||
if self.request.method == "POST":
|
||||
return self.request.POST
|
||||
return self.request.GET
|
||||
|
||||
@scopes_disabled() # we have an event check here, and we can save some performance on subqueries
|
||||
def get_queryset(self):
|
||||
qs = self.request.event.vouchers.exclude(
|
||||
Exists(WaitingListEntry.objects.filter(voucher_id=OuterRef('pk')))
|
||||
)
|
||||
if 'voucher' in self.request_data and '__ALL' not in self.request_data:
|
||||
qs = qs.filter(
|
||||
id__in=self.request_data.getlist('voucher')
|
||||
)
|
||||
elif self.request.method == 'GET' or '__ALL' in self.request_data:
|
||||
if self.filter_form.is_valid():
|
||||
qs = self.filter_form.filter_qs(qs)
|
||||
else:
|
||||
raise BadRequest("No vouchers selected")
|
||||
|
||||
return qs
|
||||
|
||||
@cached_property
|
||||
def filter_form(self):
|
||||
return VoucherFilterForm(data=self.request_data, prefix='filter', event=self.request.event)
|
||||
|
||||
|
||||
class VoucherList(VoucherQueryMixin, PaginationMixin, EventPermissionRequiredMixin, ListView):
|
||||
class VoucherList(PaginationMixin, EventPermissionRequiredMixin, ListView):
|
||||
model = Voucher
|
||||
context_object_name = 'vouchers'
|
||||
template_name = 'pretixcontrol/vouchers/index.html'
|
||||
@@ -122,15 +88,25 @@ class VoucherList(VoucherQueryMixin, PaginationMixin, EventPermissionRequiredMix
|
||||
|
||||
@scopes_disabled() # we have an event check here, and we can save some performance on subqueries
|
||||
def get_queryset(self):
|
||||
return Voucher.annotate_budget_used(super().get_queryset().select_related(
|
||||
qs = Voucher.annotate_budget_used(self.request.event.vouchers.exclude(
|
||||
Exists(WaitingListEntry.objects.filter(voucher_id=OuterRef('pk')))
|
||||
).select_related(
|
||||
'item', 'variation', 'seat'
|
||||
))
|
||||
if self.filter_form.is_valid():
|
||||
qs = self.filter_form.filter_qs(qs)
|
||||
|
||||
return qs
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
ctx = super().get_context_data(**kwargs)
|
||||
ctx['filter_form'] = self.filter_form
|
||||
return ctx
|
||||
|
||||
@cached_property
|
||||
def filter_form(self):
|
||||
return VoucherFilterForm(data=self.request.GET, event=self.request.event)
|
||||
|
||||
def get(self, request, *args, **kwargs):
|
||||
if request.GET.get("download", "") == "yes":
|
||||
return self._download_csv()
|
||||
@@ -317,12 +293,6 @@ class VoucherUpdate(EventPermissionRequiredMixin, UpdateView):
|
||||
f.disabled = True
|
||||
return form
|
||||
|
||||
def get_form_kwargs(self):
|
||||
return {
|
||||
**super().get_form_kwargs(),
|
||||
"event": self.request.event,
|
||||
}
|
||||
|
||||
def get_object(self, queryset=None) -> VoucherForm:
|
||||
url = resolve(self.request.path_info)
|
||||
try:
|
||||
@@ -633,21 +603,26 @@ class VoucherRNG(EventPermissionRequiredMixin, View):
|
||||
})
|
||||
|
||||
|
||||
class VoucherBulkAction(VoucherQueryMixin, EventPermissionRequiredMixin, View):
|
||||
class VoucherBulkAction(EventPermissionRequiredMixin, View):
|
||||
permission = 'event.vouchers:write'
|
||||
|
||||
@cached_property
|
||||
def objects(self):
|
||||
return self.request.event.vouchers.filter(
|
||||
id__in=self.request.POST.getlist('voucher')
|
||||
)
|
||||
|
||||
@transaction.atomic
|
||||
def post(self, request, *args, **kwargs):
|
||||
if request.POST.get('action') == 'delete':
|
||||
return render(request, 'pretixcontrol/vouchers/delete_bulk.html', {
|
||||
'allowed': self.get_queryset().filter(redeemed=0),
|
||||
'forbidden': self.get_queryset().exclude(redeemed=0),
|
||||
'allowed': self.objects.filter(redeemed=0),
|
||||
'forbidden': self.objects.exclude(redeemed=0),
|
||||
})
|
||||
elif request.POST.get('action') == 'delete_confirm':
|
||||
log_entries = []
|
||||
to_delete = []
|
||||
to_update = []
|
||||
for obj in self.get_queryset():
|
||||
for obj in self.objects:
|
||||
if obj.allow_delete():
|
||||
log_entries.append(obj.log_action('pretix.voucher.deleted', user=self.request.user, save=False))
|
||||
to_delete.append(obj.pk)
|
||||
@@ -657,14 +632,12 @@ class VoucherBulkAction(VoucherQueryMixin, EventPermissionRequiredMixin, View):
|
||||
'bulk': True
|
||||
}, save=False))
|
||||
obj.max_usages = min(obj.redeemed, obj.max_usages)
|
||||
to_update.append(obj)
|
||||
obj.save(update_fields=['max_usages'])
|
||||
|
||||
if to_delete:
|
||||
CartPosition.objects.filter(addon_to__voucher_id__in=to_delete).delete()
|
||||
CartPosition.objects.filter(voucher_id__in=to_delete).delete()
|
||||
Voucher.objects.filter(pk__in=to_delete).delete()
|
||||
if to_update:
|
||||
Voucher.objects.bulk_update(to_update, ['max_usages'])
|
||||
|
||||
LogEntry.bulk_create_and_postprocess(log_entries)
|
||||
messages.success(request, _('The selected vouchers have been deleted or disabled.'))
|
||||
@@ -675,117 +648,3 @@ class VoucherBulkAction(VoucherQueryMixin, EventPermissionRequiredMixin, View):
|
||||
'organizer': self.request.event.organizer.slug,
|
||||
'event': self.request.event.slug,
|
||||
})
|
||||
|
||||
|
||||
class VoucherBulkUpdateView(VoucherQueryMixin, EventPermissionRequiredMixin, FormView):
|
||||
template_name = 'pretixcontrol/vouchers/bulk_edit.html'
|
||||
permission = 'event.vouchers:write'
|
||||
context_object_name = 'vouchers'
|
||||
form_class = VoucherBulkEditForm
|
||||
|
||||
def get_queryset(self):
|
||||
return super().get_queryset().prefetch_related(None).order_by()
|
||||
|
||||
def get(self, request, *args, **kwargs):
|
||||
return HttpResponse(status=405)
|
||||
|
||||
@cached_property
|
||||
def is_submitted(self):
|
||||
# Usually, django considers a form "bound" / "submitted" on every POST request. However, this view is always
|
||||
# called with POST method, even if just to pass the selection of objects to work on, so we want to modify
|
||||
# that behavior
|
||||
return '_bulk' in self.request.POST
|
||||
|
||||
def get_form_kwargs(self):
|
||||
initial = {}
|
||||
mixed_values = set()
|
||||
qs = self.get_queryset().annotate()
|
||||
|
||||
fields = (
|
||||
'valid_until', 'block_quota', 'allow_ignore_quota', 'value', 'tag', 'comment', 'max_usages',
|
||||
'min_usages', 'price_mode', 'subevent', 'show_hidden_items', 'all_addons_included', 'all_bundles_included',
|
||||
'budget',
|
||||
)
|
||||
for f in fields:
|
||||
existing_values = list(qs.order_by(f).values(f).annotate(c=Count('*')))
|
||||
if len(existing_values) == 1:
|
||||
initial[f] = existing_values[0][f]
|
||||
elif len(existing_values) > 1:
|
||||
mixed_values.add(f)
|
||||
if f == "max_usages":
|
||||
initial[f] = 1
|
||||
else:
|
||||
initial[f] = None
|
||||
|
||||
existing_values = list(qs.order_by("item", "variation", "quota").values("item", "variation", "quota").annotate(c=Count('*')))
|
||||
if len(existing_values) == 1:
|
||||
i = existing_values[0]
|
||||
if i["quota"]:
|
||||
initial["itemvar"] = f'q-{i["quota"]}'
|
||||
elif i["variation"]:
|
||||
initial["itemvar"] = f'{i["item"]}-{i["variation"]}'
|
||||
elif i["item"]:
|
||||
initial["itemvar"] = f'{i["item"]}'
|
||||
else:
|
||||
initial["itemvar"] = None
|
||||
elif len(existing_values) > 1:
|
||||
mixed_values.add("itemvar")
|
||||
initial["itemvar"] = None
|
||||
|
||||
kwargs = super().get_form_kwargs()
|
||||
kwargs['event'] = self.request.event
|
||||
kwargs['prefix'] = 'bulkedit'
|
||||
kwargs['initial'] = initial
|
||||
kwargs['queryset'] = self.get_queryset()
|
||||
kwargs['mixed_values'] = mixed_values
|
||||
if not self.is_submitted:
|
||||
kwargs['data'] = None
|
||||
kwargs['files'] = None
|
||||
return kwargs
|
||||
|
||||
def get_success_url(self):
|
||||
return reverse('control:event.vouchers', kwargs={
|
||||
'organizer': self.request.event.organizer.slug,
|
||||
'event': self.request.event.slug,
|
||||
})
|
||||
|
||||
def form_valid(self, form):
|
||||
log_entries = []
|
||||
|
||||
# Main form
|
||||
form.save()
|
||||
data = {
|
||||
k: v
|
||||
for k, v in form.cleaned_data.items()
|
||||
if k in form.changed_data
|
||||
}
|
||||
data['_raw_bulk_data'] = self.request.POST.dict()
|
||||
for obj in self.get_queryset():
|
||||
log_entries.append(
|
||||
obj.log_action('pretix.voucher.changed', data=data, user=self.request.user, save=False)
|
||||
)
|
||||
|
||||
LogEntry.bulk_create_and_postprocess(log_entries)
|
||||
|
||||
messages.success(self.request, _('Your changes have been saved.'))
|
||||
return super().form_valid(form)
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
ctx = super().get_context_data(**kwargs)
|
||||
ctx['vouchers'] = self.get_queryset()
|
||||
ctx['bulk_selected'] = self.request.POST.getlist("_bulk")
|
||||
return ctx
|
||||
|
||||
@transaction.atomic
|
||||
def post(self, request, *args, **kwargs):
|
||||
form = self.get_form()
|
||||
is_valid = (
|
||||
self.is_submitted and
|
||||
form.is_valid()
|
||||
)
|
||||
if is_valid:
|
||||
return self.form_valid(form)
|
||||
else:
|
||||
if self.is_submitted:
|
||||
messages.error(self.request, _('We could not save your changes. See below for details.'))
|
||||
return self.form_invalid(form)
|
||||
|
||||
@@ -19,9 +19,7 @@
|
||||
# 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 itertools
|
||||
import re
|
||||
from http.cookies import Morsel
|
||||
|
||||
from django.conf import settings
|
||||
|
||||
@@ -50,41 +48,6 @@ def set_cookie_without_samesite(request, response, key, *args, **kwargs):
|
||||
response.cookies[key]['Partitioned'] = True
|
||||
|
||||
|
||||
def thoroughly_delete_cookie(response, cookie_name, **kwargs):
|
||||
""" Deletes different possible versions of a cookie (SameSite, Partitioned) """
|
||||
properties = {"SameSite": ["", 'None'], "Partitioned": ["", True]}
|
||||
for i, values in enumerate(itertools.product(*properties.values())):
|
||||
m = Morsel()
|
||||
m.set(cookie_name, '', '')
|
||||
m.update(kwargs)
|
||||
m.update(zip(properties.keys(), values))
|
||||
m['expires'] = "Thu, 01 Jan 1970 00:00:00 GMT"
|
||||
|
||||
response.cookies[f'___DELETECOOKIE__{i}___{cookie_name}'] = m
|
||||
|
||||
# Make sure settings a cookie afterwards will add a new item in the dictionary, placing
|
||||
# it below our deletion headers.
|
||||
response.cookies.pop(cookie_name, None)
|
||||
|
||||
|
||||
def get_all_values_of_cookie(cookie_header, cookie_name):
|
||||
# like django.http.cookie.parse_cookie, but returns all values of duplicated cookies instead of only the last
|
||||
values = list()
|
||||
if not cookie_header:
|
||||
return values
|
||||
for chunk in cookie_header.split(";"):
|
||||
if "=" in chunk:
|
||||
key, val = chunk.split("=", 1)
|
||||
else:
|
||||
# Assume an empty name per
|
||||
# https://bugzilla.mozilla.org/show_bug.cgi?id=169091
|
||||
key, val = "", chunk
|
||||
key, val = key.strip(), val.strip()
|
||||
if key == cookie_name:
|
||||
values.append(val)
|
||||
return values
|
||||
|
||||
|
||||
# Based on https://www.chromium.org/updates/same-site/incompatible-clients
|
||||
# Copyright 2019 Google LLC.
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
@@ -20,7 +20,6 @@
|
||||
# <https://www.gnu.org/licenses/>.
|
||||
#
|
||||
import logging
|
||||
import uuid
|
||||
|
||||
from django.core.signals import request_finished
|
||||
from django.dispatch import receiver
|
||||
@@ -66,9 +65,7 @@ class RequestIdMiddleware:
|
||||
import sentry_sdk
|
||||
sentry_sdk.set_tag("request_id", request.request_id)
|
||||
else:
|
||||
# Web server did not pass a request ID, we still generate one to correlate between django logs and
|
||||
# celery logs
|
||||
local.request_id = request.request_id = str(uuid.uuid4())
|
||||
local.request_id = request.request_id = None
|
||||
|
||||
return self.get_response(request)
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-07 09:30+0000\n"
|
||||
"POT-Creation-Date: 2026-07-06 15:48+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: Automatically generated\n"
|
||||
"Language-Team: none\n"
|
||||
@@ -10195,17 +10195,6 @@ msgstr ""
|
||||
msgid "We'll show this publicly to allow attendees to contact you."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid "Contact URL"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid ""
|
||||
"If you set this, the footer contact link will point here instead of using "
|
||||
"the email address above. Please note that you still need to add a contact "
|
||||
"email address that will be shared with all emails you send."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid "Imprint URL"
|
||||
msgstr ""
|
||||
@@ -17557,9 +17546,8 @@ msgid ""
|
||||
"\n"
|
||||
" %(code)s\n"
|
||||
"\n"
|
||||
"Don't share this code with anyone unless you want to authorize them to use "
|
||||
"this address for this purpose. The %(instance)s team will never ask you for "
|
||||
"it.\n"
|
||||
"Don't share this code with anyone. The %(instance)s team will never ask you "
|
||||
"for it.\n"
|
||||
"\n"
|
||||
"If you didn't request this, you can safely ignore this email.\n"
|
||||
"\n"
|
||||
@@ -17626,7 +17614,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"If it was you, no action is needed.\n"
|
||||
"\n"
|
||||
"If you don't recognize this sign-in, please change your password "
|
||||
"If you don't recognise this sign-in, please change your password "
|
||||
"immediately:\n"
|
||||
"\n"
|
||||
"%(url)s\n"
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-07 09:30+0000\n"
|
||||
"POT-Creation-Date: 2026-07-06 15:48+0000\n"
|
||||
"PO-Revision-Date: 2026-05-19 04:16+0000\n"
|
||||
"Last-Translator: Khalid Shaheen <khalid.shaheen@gmail.com>\n"
|
||||
"Language-Team: Arabic <https://translate.pretix.eu/projects/pretix/pretix/ar/"
|
||||
@@ -11709,19 +11709,6 @@ msgstr "عنوان الإتصال"
|
||||
msgid "We'll show this publicly to allow attendees to contact you."
|
||||
msgstr "سيظهر هذا علنا للسماح للحاضرين بالاتصال بك."
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "Contact:"
|
||||
msgid "Contact URL"
|
||||
msgstr "جهة اتصال:"
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid ""
|
||||
"If you set this, the footer contact link will point here instead of using "
|
||||
"the email address above. Please note that you still need to add a contact "
|
||||
"email address that will be shared with all emails you send."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid "Imprint URL"
|
||||
msgstr "رابط موقع مقدم الخدمة"
|
||||
@@ -20489,9 +20476,8 @@ msgid ""
|
||||
"\n"
|
||||
" %(code)s\n"
|
||||
"\n"
|
||||
"Don't share this code with anyone unless you want to authorize them to use "
|
||||
"this address for this purpose. The %(instance)s team will never ask you for "
|
||||
"it.\n"
|
||||
"Don't share this code with anyone. The %(instance)s team will never ask you "
|
||||
"for it.\n"
|
||||
"\n"
|
||||
"If you didn't request this, you can safely ignore this email.\n"
|
||||
"\n"
|
||||
@@ -20591,7 +20577,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"If it was you, no action is needed.\n"
|
||||
"\n"
|
||||
"If you don't recognize this sign-in, please change your password "
|
||||
"If you don't recognise this sign-in, please change your password "
|
||||
"immediately:\n"
|
||||
"\n"
|
||||
"%(url)s\n"
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-07 09:30+0000\n"
|
||||
"POT-Creation-Date: 2026-07-06 15:48+0000\n"
|
||||
"PO-Revision-Date: 2024-12-11 01:00+0000\n"
|
||||
"Last-Translator: Neriman Memmedli <nerim4n@pm.me>\n"
|
||||
"Language-Team: Azerbaijani <https://translate.pretix.eu/projects/pretix/"
|
||||
@@ -10197,17 +10197,6 @@ msgstr ""
|
||||
msgid "We'll show this publicly to allow attendees to contact you."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid "Contact URL"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid ""
|
||||
"If you set this, the footer contact link will point here instead of using "
|
||||
"the email address above. Please note that you still need to add a contact "
|
||||
"email address that will be shared with all emails you send."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid "Imprint URL"
|
||||
msgstr ""
|
||||
@@ -17559,9 +17548,8 @@ msgid ""
|
||||
"\n"
|
||||
" %(code)s\n"
|
||||
"\n"
|
||||
"Don't share this code with anyone unless you want to authorize them to use "
|
||||
"this address for this purpose. The %(instance)s team will never ask you for "
|
||||
"it.\n"
|
||||
"Don't share this code with anyone. The %(instance)s team will never ask you "
|
||||
"for it.\n"
|
||||
"\n"
|
||||
"If you didn't request this, you can safely ignore this email.\n"
|
||||
"\n"
|
||||
@@ -17628,7 +17616,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"If it was you, no action is needed.\n"
|
||||
"\n"
|
||||
"If you don't recognize this sign-in, please change your password "
|
||||
"If you don't recognise this sign-in, please change your password "
|
||||
"immediately:\n"
|
||||
"\n"
|
||||
"%(url)s\n"
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-07 09:30+0000\n"
|
||||
"POT-Creation-Date: 2026-07-06 15:48+0000\n"
|
||||
"PO-Revision-Date: 2026-06-25 14:00+0000\n"
|
||||
"Last-Translator: Kim Lozano <joaquim.lozano@upc.edu>\n"
|
||||
"Language-Team: Catalan <https://translate.pretix.eu/projects/pretix/pretix/"
|
||||
@@ -11822,19 +11822,6 @@ msgid "We'll show this publicly to allow attendees to contact you."
|
||||
msgstr ""
|
||||
"Això es mostrarà públicament per permetre que els assistents us contactin."
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "Contact address"
|
||||
msgid "Contact URL"
|
||||
msgstr "Adreça de contacte"
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid ""
|
||||
"If you set this, the footer contact link will point here instead of using "
|
||||
"the email address above. Please note that you still need to add a contact "
|
||||
"email address that will be shared with all emails you send."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid "Imprint URL"
|
||||
msgstr "Imprimeix l'URL"
|
||||
@@ -20607,9 +20594,8 @@ msgid ""
|
||||
"\n"
|
||||
" %(code)s\n"
|
||||
"\n"
|
||||
"Don't share this code with anyone unless you want to authorize them to use "
|
||||
"this address for this purpose. The %(instance)s team will never ask you for "
|
||||
"it.\n"
|
||||
"Don't share this code with anyone. The %(instance)s team will never ask you "
|
||||
"for it.\n"
|
||||
"\n"
|
||||
"If you didn't request this, you can safely ignore this email.\n"
|
||||
"\n"
|
||||
@@ -20710,7 +20696,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"If it was you, no action is needed.\n"
|
||||
"\n"
|
||||
"If you don't recognize this sign-in, please change your password "
|
||||
"If you don't recognise this sign-in, please change your password "
|
||||
"immediately:\n"
|
||||
"\n"
|
||||
"%(url)s\n"
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-07 09:30+0000\n"
|
||||
"POT-Creation-Date: 2026-07-06 15:48+0000\n"
|
||||
"PO-Revision-Date: 2026-01-29 19:42+0000\n"
|
||||
"Last-Translator: Jiří Pastrňák <jiri@pastrnak.email>\n"
|
||||
"Language-Team: Czech <https://translate.pretix.eu/projects/pretix/pretix/cs/"
|
||||
@@ -11288,19 +11288,6 @@ msgstr "Kontaktní e-mail"
|
||||
msgid "We'll show this publicly to allow attendees to contact you."
|
||||
msgstr "Tento údaj zobrazíme veřejně, aby vás účastníci mohli kontaktovat."
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "Contact"
|
||||
msgid "Contact URL"
|
||||
msgstr "Kontakt"
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid ""
|
||||
"If you set this, the footer contact link will point here instead of using "
|
||||
"the email address above. Please note that you still need to add a contact "
|
||||
"email address that will be shared with all emails you send."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid "Imprint URL"
|
||||
msgstr "Impressum (adresa URL)"
|
||||
@@ -19745,9 +19732,8 @@ msgid ""
|
||||
"\n"
|
||||
" %(code)s\n"
|
||||
"\n"
|
||||
"Don't share this code with anyone unless you want to authorize them to use "
|
||||
"this address for this purpose. The %(instance)s team will never ask you for "
|
||||
"it.\n"
|
||||
"Don't share this code with anyone. The %(instance)s team will never ask you "
|
||||
"for it.\n"
|
||||
"\n"
|
||||
"If you didn't request this, you can safely ignore this email.\n"
|
||||
"\n"
|
||||
@@ -19865,7 +19851,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"If it was you, no action is needed.\n"
|
||||
"\n"
|
||||
"If you don't recognize this sign-in, please change your password "
|
||||
"If you don't recognise this sign-in, please change your password "
|
||||
"immediately:\n"
|
||||
"\n"
|
||||
"%(url)s\n"
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-07 09:30+0000\n"
|
||||
"POT-Creation-Date: 2026-07-06 15:48+0000\n"
|
||||
"PO-Revision-Date: 2023-11-14 11:00+0000\n"
|
||||
"Last-Translator: Charliecoleg <DM229135@colegsirgar.ac.uk>\n"
|
||||
"Language-Team: Welsh <https://translate.pretix.eu/projects/pretix/pretix/cy/"
|
||||
@@ -10258,19 +10258,6 @@ msgstr ""
|
||||
msgid "We'll show this publicly to allow attendees to contact you."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "Content"
|
||||
msgid "Contact URL"
|
||||
msgstr "Cynnwys"
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid ""
|
||||
"If you set this, the footer contact link will point here instead of using "
|
||||
"the email address above. Please note that you still need to add a contact "
|
||||
"email address that will be shared with all emails you send."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid "Imprint URL"
|
||||
msgstr ""
|
||||
@@ -17662,9 +17649,8 @@ msgid ""
|
||||
"\n"
|
||||
" %(code)s\n"
|
||||
"\n"
|
||||
"Don't share this code with anyone unless you want to authorize them to use "
|
||||
"this address for this purpose. The %(instance)s team will never ask you for "
|
||||
"it.\n"
|
||||
"Don't share this code with anyone. The %(instance)s team will never ask you "
|
||||
"for it.\n"
|
||||
"\n"
|
||||
"If you didn't request this, you can safely ignore this email.\n"
|
||||
"\n"
|
||||
@@ -17731,7 +17717,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"If it was you, no action is needed.\n"
|
||||
"\n"
|
||||
"If you don't recognize this sign-in, please change your password "
|
||||
"If you don't recognise this sign-in, please change your password "
|
||||
"immediately:\n"
|
||||
"\n"
|
||||
"%(url)s\n"
|
||||
|
||||
@@ -3,7 +3,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: 1\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-07 09:30+0000\n"
|
||||
"POT-Creation-Date: 2026-07-06 15:48+0000\n"
|
||||
"PO-Revision-Date: 2026-06-20 17:00+0000\n"
|
||||
"Last-Translator: Nikolai <nikolai@lengefeldt.de>\n"
|
||||
"Language-Team: Danish <https://translate.pretix.eu/projects/pretix/pretix/da/"
|
||||
@@ -11339,19 +11339,6 @@ msgstr "Kontaktadresse"
|
||||
msgid "We'll show this publicly to allow attendees to contact you."
|
||||
msgstr "Vi vil vise dette offentligt, så deltagerne kan kontakte dig."
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "Contact"
|
||||
msgid "Contact URL"
|
||||
msgstr "Kontakt"
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid ""
|
||||
"If you set this, the footer contact link will point here instead of using "
|
||||
"the email address above. Please note that you still need to add a contact "
|
||||
"email address that will be shared with all emails you send."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid "Imprint URL"
|
||||
msgstr "URL til kolofon"
|
||||
@@ -19824,9 +19811,8 @@ msgid ""
|
||||
"\n"
|
||||
" %(code)s\n"
|
||||
"\n"
|
||||
"Don't share this code with anyone unless you want to authorize them to use "
|
||||
"this address for this purpose. The %(instance)s team will never ask you for "
|
||||
"it.\n"
|
||||
"Don't share this code with anyone. The %(instance)s team will never ask you "
|
||||
"for it.\n"
|
||||
"\n"
|
||||
"If you didn't request this, you can safely ignore this email.\n"
|
||||
"\n"
|
||||
@@ -19893,7 +19879,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"If it was you, no action is needed.\n"
|
||||
"\n"
|
||||
"If you don't recognize this sign-in, please change your password "
|
||||
"If you don't recognise this sign-in, please change your password "
|
||||
"immediately:\n"
|
||||
"\n"
|
||||
"%(url)s\n"
|
||||
|
||||
@@ -4,11 +4,11 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: 1\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-07 09:30+0000\n"
|
||||
"PO-Revision-Date: 2026-07-07 09:55+0000\n"
|
||||
"Last-Translator: Raphael Michel <michel@rami.io>\n"
|
||||
"Language-Team: German <https://translate.pretix.eu/projects/pretix/pretix/"
|
||||
"de/>\n"
|
||||
"POT-Creation-Date: 2026-07-06 15:48+0000\n"
|
||||
"PO-Revision-Date: 2026-06-29 17:00+0000\n"
|
||||
"Last-Translator: CVZ-es <damien.bremont@casadevelazquez.org>\n"
|
||||
"Language-Team: German <https://translate.pretix.eu/projects/pretix/pretix/de/"
|
||||
">\n"
|
||||
"Language: de\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
@@ -179,7 +179,7 @@ msgstr "Spanisch (Lateinamerika)"
|
||||
|
||||
#: pretix/_base_settings.py
|
||||
msgid "Thai"
|
||||
msgstr "Thailändisch"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/_base_settings.py
|
||||
msgid "Turkish"
|
||||
@@ -436,7 +436,7 @@ msgstr ""
|
||||
#: pretix/api/serializers/organizer.py pretix/control/views/organizer.py
|
||||
#, python-format
|
||||
msgid "You've been invited to join %(organizer)s"
|
||||
msgstr "Sie wurden eingeladen, %(organizer)s beizutreten"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/api/serializers/organizer.py pretix/control/views/organizer.py
|
||||
msgid "This user already has been invited for this team."
|
||||
@@ -4072,31 +4072,43 @@ msgid "Users"
|
||||
msgstr "Benutzer"
|
||||
|
||||
#: pretix/base/models/auth.py
|
||||
#, fuzzy
|
||||
#| msgid "Changes to your account at {organizer}"
|
||||
msgid "Changes to your account"
|
||||
msgstr "Änderungen an Ihrem Konto"
|
||||
msgstr "Änderungen an Ihrem Kundenkonto bei {organizer}"
|
||||
|
||||
#: pretix/base/models/auth.py
|
||||
#, python-brace-format
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid ""
|
||||
#| "to confirm changing your email address from {old_email}\n"
|
||||
#| "to {new_email}, use the following code:"
|
||||
msgid ""
|
||||
"To change your email address from {old_email} to {new_email}, use the "
|
||||
"following code:"
|
||||
msgstr ""
|
||||
"um Ihre E-Mail-Adresse von {old_email} zu {new_email} zu ändern, verwenden "
|
||||
"Sie den folgenden Code:"
|
||||
"um zu bestätigen, dass Sie Ihre E-Mail-Adresse von {old_email}\n"
|
||||
"zu {new_email} ändern möchten, verwenden Sie den folgenden Code:"
|
||||
|
||||
#: pretix/base/models/auth.py
|
||||
#, python-brace-format
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid ""
|
||||
#| "to confirm changing your email address from {old_email}\n"
|
||||
#| "to {new_email}, use the following code:"
|
||||
msgid ""
|
||||
"To verify your email address {email} on {instance}, use the following code:"
|
||||
msgstr ""
|
||||
"um Ihre Absenderadresse {email} für {instance} zu bestätigen, verwenden Sie "
|
||||
"den folgenden Code:"
|
||||
"um zu bestätigen, dass Sie Ihre E-Mail-Adresse von {old_email}\n"
|
||||
"zu {new_email} ändern möchten, verwenden Sie den folgenden Code:"
|
||||
|
||||
#: pretix/base/models/auth.py
|
||||
#, fuzzy
|
||||
#| msgid "Enter confirmation code"
|
||||
msgid "Your confirmation code"
|
||||
msgstr "Ihr Bestätigungscode"
|
||||
msgstr "Bestätigungs-Code eingeben"
|
||||
|
||||
#: pretix/base/models/auth.py
|
||||
#, fuzzy
|
||||
#| msgid "Reset password"
|
||||
msgid "Reset your password"
|
||||
msgstr "Passwort zurücksetzen"
|
||||
|
||||
@@ -8312,7 +8324,7 @@ msgstr "Veranstaltung abgesagt"
|
||||
|
||||
#: pretix/base/services/cancelevent.py
|
||||
msgid "Confirm event cancellation and bulk refund"
|
||||
msgstr "Event-Absage und Rückerstattung bestätigen"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/services/cart.py pretix/base/services/modelimport.py
|
||||
#: pretix/base/services/orders.py
|
||||
@@ -8893,8 +8905,10 @@ msgid "Your export did not contain any data."
|
||||
msgstr "Der Export enthielt keine Daten."
|
||||
|
||||
#: pretix/base/services/export.py
|
||||
#, fuzzy
|
||||
#| msgid "Scheduled exports"
|
||||
msgid "Scheduled export failed"
|
||||
msgstr "Geplanter Export fehlgeschlagen"
|
||||
msgstr "Geplante Exporte"
|
||||
|
||||
#: pretix/base/services/export.py
|
||||
msgid "Permission denied."
|
||||
@@ -9230,8 +9244,6 @@ msgstr "Ein Gutschein kann ohne Code nicht erzeugt werden."
|
||||
msgid ""
|
||||
"Voucher codes must be unique. Code \"{code}\" already exists in this import."
|
||||
msgstr ""
|
||||
"Gutscheincodes müssen einmalig sein. Code \"{code}\" existiert bereits in "
|
||||
"diesem Import."
|
||||
|
||||
#: pretix/base/services/modelimport.py
|
||||
#, python-brace-format
|
||||
@@ -9240,19 +9252,13 @@ msgid ""
|
||||
msgid_plural ""
|
||||
"Voucher codes must be unique. Import contains existing voucher codes {code}."
|
||||
msgstr[0] ""
|
||||
"Gutscheincodes müssen eindeutig sein. Der Import enthält den existierenden "
|
||||
"Gutscheincode {code}."
|
||||
msgstr[1] ""
|
||||
"Gutscheincodes müssen eindeutig sein. Der Import enthält die existierenden "
|
||||
"Gutscheincodes {code}."
|
||||
|
||||
#: pretix/base/services/modelimport.py
|
||||
msgid ""
|
||||
"Vouchers could not be imported, probably due to a voucher code already being "
|
||||
"in use."
|
||||
msgstr ""
|
||||
"Die Gutscheine konnten nicht importiert werden, vermutlich weil ein "
|
||||
"Gutscheincode bereits in Verwendung ist."
|
||||
|
||||
#: pretix/base/services/orders.py
|
||||
msgid ""
|
||||
@@ -9632,9 +9638,10 @@ msgstr ""
|
||||
"Bitte erneut versuchen."
|
||||
|
||||
#: pretix/base/services/shredder.py
|
||||
#, python-format
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Data shredding completed"
|
||||
msgid "Data shredding completed for %(event)s"
|
||||
msgstr "Löschen personenbezogener Daten abgeschlossen für %(event)s"
|
||||
msgstr "Löschen personenbezogener Daten abgeschlossen"
|
||||
|
||||
#: pretix/base/services/stats.py
|
||||
msgid "Uncategorized"
|
||||
@@ -11446,21 +11453,6 @@ msgstr ""
|
||||
"Wir werden diese Adresse veröffentlichen um Teilnehmern zu ermöglichen, Sie "
|
||||
"zu kontaktieren."
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid "Contact URL"
|
||||
msgstr "Kontakt-URL"
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid ""
|
||||
"If you set this, the footer contact link will point here instead of using "
|
||||
"the email address above. Please note that you still need to add a contact "
|
||||
"email address that will be shared with all emails you send."
|
||||
msgstr ""
|
||||
"Wenn Sie diese Option setzen, wird der Kontakt-Link in der Fußzeile auf "
|
||||
"diese Adresse verweisen statt auf die obige E-Mail-Adresse. Bitte beachten "
|
||||
"Sie, dass die Kontakt-E-Mail-Adresse trotzdem z.B. mit allen Empfängern von "
|
||||
"E-Mails geteilt wird."
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid "Imprint URL"
|
||||
msgstr "Impressum (URL)"
|
||||
@@ -13341,16 +13333,26 @@ msgstr ""
|
||||
"oder kontaktieren Sie uns."
|
||||
|
||||
#: pretix/base/templates/pretixbase/email/cancel_confirm.txt
|
||||
#, fuzzy
|
||||
#| msgid ""
|
||||
#| "You have requested us to cancel an event which includes a larger bulk-"
|
||||
#| "refund:"
|
||||
msgid "You requested to cancel an event that involves a large bulk refund:"
|
||||
msgstr ""
|
||||
"Sie haben angefordert, dass eine Veranstaltung abgesagt wird, wodurch eine "
|
||||
"größere Erstattung vorgenommen wird:"
|
||||
|
||||
#: pretix/base/templates/pretixbase/email/cancel_confirm.txt
|
||||
#, fuzzy
|
||||
#| msgid "Estimated refund amount"
|
||||
msgid "Estimated refund"
|
||||
msgstr "Voraussichtliche Erstattung"
|
||||
msgstr "Voraussichtlicher Erstattungsbetrag"
|
||||
|
||||
#: pretix/base/templates/pretixbase/email/cancel_confirm.txt
|
||||
#, fuzzy
|
||||
#| msgid ""
|
||||
#| "Please confirm that you want to proceed by coping the following "
|
||||
#| "confirmation code into the cancellation form:"
|
||||
msgid "To confirm, paste the following code into the cancellation form:"
|
||||
msgstr ""
|
||||
"Bitte bestätigen Sie, dass Sie fortfahren wollen, indem Sie den folgenden "
|
||||
@@ -13362,8 +13364,6 @@ msgid ""
|
||||
"Don't share this code with anyone. The %(instance)s team will never ask you "
|
||||
"for it."
|
||||
msgstr ""
|
||||
"Teilen Sie den Code mit niemandem. Das Team von %(instance)s wird nie danach "
|
||||
"fragen."
|
||||
|
||||
#: pretix/base/templates/pretixbase/email/cancel_confirm.txt
|
||||
#: pretix/base/templates/pretixbase/email/export_failed.txt
|
||||
@@ -13372,8 +13372,6 @@ msgid ""
|
||||
"Thanks, \n"
|
||||
"The %(instance)s Team"
|
||||
msgstr ""
|
||||
"Danke, \n"
|
||||
"Das Team von %(instance)s"
|
||||
|
||||
#: pretix/base/templates/pretixbase/email/email_footer.html
|
||||
#, python-format
|
||||
@@ -13381,8 +13379,10 @@ msgid "powered by <a %(a_attr)s>pretix</a>"
|
||||
msgstr "powered by <a %(a_attr)s>pretix</a>"
|
||||
|
||||
#: pretix/base/templates/pretixbase/email/export_failed.txt
|
||||
#, fuzzy
|
||||
#| msgid "Your export failed."
|
||||
msgid "Your scheduled export failed."
|
||||
msgstr "Ihr geplanter Export ist fehlgeschlagen."
|
||||
msgstr "Der Export ist fehlgeschlagen."
|
||||
|
||||
#: pretix/base/templates/pretixbase/email/export_failed.txt
|
||||
#: pretix/control/templates/pretixcontrol/event/tax_edit.html
|
||||
@@ -13390,29 +13390,39 @@ msgid "Reason"
|
||||
msgstr "Grund"
|
||||
|
||||
#: pretix/base/templates/pretixbase/email/export_failed.txt
|
||||
#, fuzzy
|
||||
#| msgid "If your export fails five times in a row, it will no longer be sent."
|
||||
msgid "If an export fails five times in a row, we'll stop sending it."
|
||||
msgstr ""
|
||||
"Wenn der Export fünf mal in Folge fehlschlägt, wird er nicht mehr verschickt."
|
||||
|
||||
#: pretix/base/templates/pretixbase/email/export_failed.txt
|
||||
#, fuzzy
|
||||
#| msgid "You can request to cancel this order."
|
||||
msgid "You can adjust or remove this export here:"
|
||||
msgstr "Sie können diesen Export hier anpassen oder löschen:"
|
||||
msgstr "Sie können eine Stornierung dieser Bestellung anfragen."
|
||||
|
||||
#: pretix/base/templates/pretixbase/email/notification.html
|
||||
#: pretix/base/templates/pretixbase/email/notification.txt
|
||||
#, fuzzy
|
||||
#| msgid "You receive these emails based on your notification settings."
|
||||
msgid "You're receiving this email based on your notification settings."
|
||||
msgstr ""
|
||||
"Sie erhalten diese E-Mail auf Basis Ihrer Benachrichtigungs-Einstellungen."
|
||||
"Sie erhalten diese E-Mail aufgrund Ihrer Benachrichtigungseinstellungen."
|
||||
|
||||
#: pretix/base/templates/pretixbase/email/notification.html
|
||||
#: pretix/base/templates/pretixbase/email/notification.txt
|
||||
#, fuzzy
|
||||
#| msgid "Change settings"
|
||||
msgid "Manage settings"
|
||||
msgstr "Einstellungen bearbeiten"
|
||||
|
||||
#: pretix/base/templates/pretixbase/email/notification.html
|
||||
#: pretix/base/templates/pretixbase/email/notification.txt
|
||||
#, fuzzy
|
||||
#| msgid "Disable notifications"
|
||||
msgid "Disable all notifications"
|
||||
msgstr "Alle Benachrichtigungen deaktivieren"
|
||||
msgstr "Benachrichtigungen deaktivieren"
|
||||
|
||||
#: pretix/base/templates/pretixbase/email/order_details.html
|
||||
msgid ""
|
||||
@@ -13470,7 +13480,25 @@ msgid "Contact"
|
||||
msgstr "Kontakt"
|
||||
|
||||
#: pretix/base/templates/pretixbase/email/shred_completed.txt
|
||||
#, python-format
|
||||
#, fuzzy, python-format
|
||||
#| msgid ""
|
||||
#| "Hello,\n"
|
||||
#| "\n"
|
||||
#| "we hereby confirm that the following data shredding job has been "
|
||||
#| "completed:\n"
|
||||
#| "\n"
|
||||
#| "Organizer: %(organizer)s\n"
|
||||
#| "\n"
|
||||
#| "Event: %(event)s\n"
|
||||
#| "\n"
|
||||
#| "Data selection: %(shredders)s\n"
|
||||
#| "\n"
|
||||
#| "Start time: %(start_time)s (new data added after this time might not have "
|
||||
#| "been deleted)\n"
|
||||
#| "\n"
|
||||
#| "Best regards,\n"
|
||||
#| "\n"
|
||||
#| "Your %(instance)s team\n"
|
||||
msgid ""
|
||||
"Hello,\n"
|
||||
"\n"
|
||||
@@ -13488,17 +13516,21 @@ msgid ""
|
||||
msgstr ""
|
||||
"Hallo,\n"
|
||||
"\n"
|
||||
"der folgende Lösch-Auftrag wurde abgeschlossen:\n"
|
||||
"wir bestätigen hiermit, dass der folgende Lösch-Auftrag abgeschlossen "
|
||||
"wurde:\n"
|
||||
"\n"
|
||||
"- Veranstalter: %(organizer)s\n"
|
||||
"- Veranstaltung: %(event)s\n"
|
||||
"- Datenauswahl: %(shredders)s\n"
|
||||
"- Startzeit: %(start_time)s\n"
|
||||
"Veranstalter: %(organizer)s\n"
|
||||
"\n"
|
||||
"Daten, die nach dieser Startzeit entstanden sind, sind ggf. nicht gelöscht.\n"
|
||||
"Veranstaltung: %(event)s\n"
|
||||
"\n"
|
||||
"Danke, \n"
|
||||
"Das Team von %(instance)s\n"
|
||||
"Datenauswahl: %(shredders)s\n"
|
||||
"\n"
|
||||
"Startzeit: %(start_time)s (Daten, die nach diesem Zeitpunkt entstanden sind, "
|
||||
"sind ggf. nicht gelöscht)\n"
|
||||
"\n"
|
||||
"Freundliche Grüße\n"
|
||||
"\n"
|
||||
"Das %(instance)s-Team\n"
|
||||
|
||||
#: pretix/base/templates/pretixbase/forms/widgets/checkbox_sales_channel_option.html
|
||||
msgid ""
|
||||
@@ -13535,15 +13567,11 @@ msgstr "Bitte in neuem Tab fortfahren"
|
||||
#: pretix/base/templates/pretixbase/framebreak.html
|
||||
msgid "For security reasons, the following step is only possible in a new tab."
|
||||
msgstr ""
|
||||
"Aus Sicherheitsgründen ist der folgende Schritt nur in einem neuen Tab "
|
||||
"möglich."
|
||||
|
||||
#: pretix/base/templates/pretixbase/framebreak.html
|
||||
msgid ""
|
||||
"If the new tab did not open automatically, please click the following button:"
|
||||
msgstr ""
|
||||
"Wenn der neue Tab sich nicht automatisch geöffnet hat, klicken Sie bitte den "
|
||||
"folgenden Button:"
|
||||
|
||||
#: pretix/base/templates/pretixbase/framebreak.html
|
||||
#: pretix/presale/templates/pretixpresale/event/cookies.html
|
||||
@@ -19915,7 +19943,21 @@ msgid "Add property"
|
||||
msgstr "Eigenschaft hinzufügen"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/email/confirmation_code.txt
|
||||
#, python-format
|
||||
#, fuzzy, python-format
|
||||
#| msgid ""
|
||||
#| "Hello,\n"
|
||||
#| "\n"
|
||||
#| "%(reason)s\n"
|
||||
#| "\n"
|
||||
#| " %(code)s\n"
|
||||
#| "\n"
|
||||
#| "Please do never give this code to another person. Our support team will "
|
||||
#| "never ask for this code.\n"
|
||||
#| "\n"
|
||||
#| "If this code was not requested by you, please contact us immediately.\n"
|
||||
#| "\n"
|
||||
#| "Best regards,\n"
|
||||
#| "Your %(instance)s team\n"
|
||||
msgid ""
|
||||
"Hello,\n"
|
||||
"\n"
|
||||
@@ -19937,17 +19979,33 @@ msgstr ""
|
||||
"\n"
|
||||
" %(code)s\n"
|
||||
"\n"
|
||||
"Bitte geben Sie diesen Code an niemanden weiter. Das Team von %(instance)s "
|
||||
"wird nie danach fragen.\n"
|
||||
"Bitte geben Sie diesen Code nie an eine andere Person weiter. Unser Support-"
|
||||
"Team wird nie nach diesem Code fragen.\n"
|
||||
"\n"
|
||||
"Wenn Sie diesen Code nicht angefragt haben, kontaktieren Sie uns bitte "
|
||||
"sofort.\n"
|
||||
"\n"
|
||||
"Danke, \n"
|
||||
"Das Team von %(instance)s\n"
|
||||
"Viele Grüße,\n"
|
||||
"Ihr %(instance)s-Team\n"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/email/email_setup.txt
|
||||
#, python-format
|
||||
#, fuzzy, python-format
|
||||
#| msgid ""
|
||||
#| "Hello,\n"
|
||||
#| "\n"
|
||||
#| "someone requested to use %(address)s as a sender address on "
|
||||
#| "%(instance)s.\n"
|
||||
#| "This will allow them to send emails that are shown to originate from this "
|
||||
#| "email address.\n"
|
||||
#| "If that was you, please enter the following confirmation code:\n"
|
||||
#| "\n"
|
||||
#| "%(code)s\n"
|
||||
#| "\n"
|
||||
#| "If this was not requested by you, you can safely ignore this email.\n"
|
||||
#| "\n"
|
||||
#| "Best regards, \n"
|
||||
#| "\n"
|
||||
#| "Your %(instance)s team\n"
|
||||
msgid ""
|
||||
"Hello,\n"
|
||||
"\n"
|
||||
@@ -19959,9 +20017,8 @@ msgid ""
|
||||
"\n"
|
||||
" %(code)s\n"
|
||||
"\n"
|
||||
"Don't share this code with anyone unless you want to authorize them to use "
|
||||
"this address for this purpose. The %(instance)s team will never ask you for "
|
||||
"it.\n"
|
||||
"Don't share this code with anyone. The %(instance)s team will never ask you "
|
||||
"for it.\n"
|
||||
"\n"
|
||||
"If you didn't request this, you can safely ignore this email.\n"
|
||||
"\n"
|
||||
@@ -19970,21 +20027,19 @@ msgid ""
|
||||
msgstr ""
|
||||
"Hallo,\n"
|
||||
"\n"
|
||||
"jemand hat angefragt, die Adresse %(address)s als Absenderadresse auf %"
|
||||
"(instance)s zu nutzen. Hierdurch könnten dann E-Mails über %(instance)s "
|
||||
"verschickt werden, die diese Adresse als Absender tragen. Wenn Sie das "
|
||||
"waren, geben Sie bitte folgenden Bestätigungscode im Formular ein:\n"
|
||||
"jemand hat angefragt, die Adresse %(address)s als Absenderadresse auf "
|
||||
"%(instance)s zu nutzen.\n"
|
||||
"Hierdurch könnten dann E-Mails verschickt werden, die diese Adresse als "
|
||||
"Absender tragen.\n"
|
||||
"Wenn Sie das waren, geben Sie bitte folgenden Bestätigungscode ein:\n"
|
||||
"\n"
|
||||
"%(code)s\n"
|
||||
"\n"
|
||||
"Teilen Sie diesen Code mit niemandem, außer Sie möchten die Person dazu "
|
||||
"berechtigen, diese E-Mail-Adresse zu diesem Zweck zu nutzen. Das Team von %"
|
||||
"(instance)s wird nie nach diesem Code fragen.\n"
|
||||
"\n"
|
||||
"Wenn Sie das nicht waren, können Sie diese E-Mail gefahrlos ignorieren.\n"
|
||||
"\n"
|
||||
"Danke, \n"
|
||||
"Das Team von %(instance)s\n"
|
||||
"Viele Grüße, \n"
|
||||
"\n"
|
||||
"Ihr Team von %(instance)s\n"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/email/forgot.txt
|
||||
#, python-format
|
||||
@@ -20002,22 +20057,27 @@ msgid ""
|
||||
"Thanks, \n"
|
||||
"The %(instance)s Team\n"
|
||||
msgstr ""
|
||||
"Hallo,\n"
|
||||
"\n"
|
||||
"wir haben eine Anfrage erhalten, das Passwort für Ihren Account bei "
|
||||
"%(instance)s zurückzusetzen. Um ein neues Passwort zu wählen, klicken Sie "
|
||||
"auf den folgenden Link:\n"
|
||||
"\n"
|
||||
"%(url)s\n"
|
||||
"\n"
|
||||
"Wenn Sie dies nicht angefordert haben, können Sie diese E-Mail ignorieren – "
|
||||
"Ihr Passwort wird nicht geändert.\n"
|
||||
"\n"
|
||||
"Danke, \n"
|
||||
"Das Team von %(instance)s\n"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/email/invitation.txt
|
||||
#, python-format
|
||||
#, fuzzy, python-format
|
||||
#| msgid ""
|
||||
#| "Hello,\n"
|
||||
#| "\n"
|
||||
#| "you have been invited to a team on %(instance)s, a platform to perform "
|
||||
#| "event\n"
|
||||
#| "ticket sales.\n"
|
||||
#| "\n"
|
||||
#| "Organizer: %(organizer)s\n"
|
||||
#| "Team: %(team)s\n"
|
||||
#| "\n"
|
||||
#| "If you want to join that team, just click on the following link:\n"
|
||||
#| "%(url)s\n"
|
||||
#| "\n"
|
||||
#| "If you do not want to join, you can safely ignore or delete this email.\n"
|
||||
#| "\n"
|
||||
#| "Best regards, \n"
|
||||
#| "\n"
|
||||
#| "Your %(instance)s team\n"
|
||||
msgid ""
|
||||
"Hello,\n"
|
||||
"\n"
|
||||
@@ -20039,18 +20099,23 @@ msgstr ""
|
||||
"Hallo,\n"
|
||||
"\n"
|
||||
"Sie wurden in das Team eines Veranstalters auf %(instance)s eingeladen, "
|
||||
"einer Plattform zum Verkaufen von Veranstaltungstickets.\n"
|
||||
"einer Plattform zum\n"
|
||||
"Verkaufen von Veranstaltungstickets.\n"
|
||||
"\n"
|
||||
"- Veranstalter: %(organizer)s\n"
|
||||
"- Team: %(team)s\n"
|
||||
"Veranstalter: %(organizer)s\n"
|
||||
"\n"
|
||||
"Zum Akzeptieren klicken Sie auf den folgenden Link:\n"
|
||||
"Team: %(team)s\n"
|
||||
"\n"
|
||||
"Wenn Sie dem Team beitreten möchten, klicken Sie einfach auf den folgenden "
|
||||
"Link:\n"
|
||||
"%(url)s\n"
|
||||
"\n"
|
||||
"Wenn Sie dies nicht möchten, können Sie diese Mail ignorieren.\n"
|
||||
"Wenn Sie dies nicht möchten, können Sie diese Mail problemlos ignorieren\n"
|
||||
"oder löschen.\n"
|
||||
"\n"
|
||||
"Danke, \n"
|
||||
"Das Team von %(instance)s\n"
|
||||
"Viele Grüße\n"
|
||||
"\n"
|
||||
"Das %(instance)s-Team\n"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/email/login_notice.txt
|
||||
#, python-format
|
||||
@@ -20059,24 +20124,21 @@ msgid ""
|
||||
"\n"
|
||||
"We noticed a new sign-in to your %(instance)s account:\n"
|
||||
msgstr ""
|
||||
"Hallo,\n"
|
||||
"\n"
|
||||
"wir haben einen neuen Login in Ihren Account bei %(instance)s festgestellt:\n"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/email/login_notice.txt
|
||||
msgid "Browser"
|
||||
msgstr "Browser"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/email/login_notice.txt
|
||||
msgid "Operating system"
|
||||
msgstr "Betriebssystem"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/email/login_notice.txt
|
||||
#, python-format
|
||||
msgid ""
|
||||
"If it was you, no action is needed.\n"
|
||||
"\n"
|
||||
"If you don't recognize this sign-in, please change your password "
|
||||
"If you don't recognise this sign-in, please change your password "
|
||||
"immediately:\n"
|
||||
"\n"
|
||||
"%(url)s\n"
|
||||
@@ -20084,18 +20146,26 @@ msgid ""
|
||||
"Thanks, \n"
|
||||
"The %(instance)s Team\n"
|
||||
msgstr ""
|
||||
"Wenn Sie dies waren, ist keine Aktion erforderlich.\n"
|
||||
"\n"
|
||||
"Wenn Sie diesen Login nicht wiedererkennen, ändern Sie bitte sofort Ihr "
|
||||
"Passwort:\n"
|
||||
"\n"
|
||||
"%(url)s\n"
|
||||
"\n"
|
||||
"Danke, \n"
|
||||
"Das Team von %(instance)s\n"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/email/security_notice.txt
|
||||
#, python-format
|
||||
#, fuzzy, python-format
|
||||
#| msgid ""
|
||||
#| "Hello,\n"
|
||||
#| "\n"
|
||||
#| "this is to inform you that the account information of your %(instance)s "
|
||||
#| "account has been\n"
|
||||
#| "changed. In particular, the following changes have been performed:\n"
|
||||
#| "\n"
|
||||
#| "%(messages)s\n"
|
||||
#| "\n"
|
||||
#| "If this change was not performed by you, please contact us immediately.\n"
|
||||
#| "\n"
|
||||
#| "You can review and change your account settings here:\n"
|
||||
#| "\n"
|
||||
#| "%(url)s\n"
|
||||
#| "\n"
|
||||
#| "Best regards, \n"
|
||||
#| "Your %(instance)s team\n"
|
||||
msgid ""
|
||||
"Hello,\n"
|
||||
"\n"
|
||||
@@ -20115,19 +20185,21 @@ msgid ""
|
||||
msgstr ""
|
||||
"Hallo,\n"
|
||||
"\n"
|
||||
"die folgenden Einstellungen Ihres Kontos bei %(instance)s wurden verändert:\n"
|
||||
"die Einstellungen Ihres %(instance)s-Kontos wurden verändert. Es wurden die "
|
||||
"folgenden Änderungen\n"
|
||||
"vorgenommen:\n"
|
||||
"\n"
|
||||
"%(messages)s\n"
|
||||
"\n"
|
||||
"Wenn diese Änderung nicht von Ihnen vorgenommen wurde, kontaktieren Sie das "
|
||||
"Team von %(instance)s bitte unverzüglich.\n"
|
||||
"Wenn diese Änderung nicht von Ihnen vorgenommen wurde, kontaktieren Sie uns "
|
||||
"bitte unverzüglich.\n"
|
||||
"\n"
|
||||
"Sie können Ihre Kontoeinstellungen hier einsehen und verändern:\n"
|
||||
"\n"
|
||||
"%(url)s\n"
|
||||
"\n"
|
||||
"Danke, \n"
|
||||
"Das Team von %(instance)s\n"
|
||||
"Viele Grüße\n"
|
||||
"Ihr %(instance)s-Team\n"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/email_setup.html
|
||||
#: pretix/control/templates/pretixcontrol/email_setup_simple.html
|
||||
@@ -28745,7 +28817,7 @@ msgstr "Der Bestätigungscode war falsch, bitte erneut versuchen."
|
||||
#: pretix/control/views/mailsetup.py
|
||||
#, python-format
|
||||
msgid "Confirm %(address)s as a sender address"
|
||||
msgstr "Bestätigen Sie %(address)s als Absenderadresse"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/views/mailsetup.py
|
||||
#, python-format
|
||||
@@ -29970,8 +30042,10 @@ msgid "Open BezahlCode in your banking app to start the payment process."
|
||||
msgstr "BezahlCode in Banking-App öffnen um den Zahlungsvorgang zu starten."
|
||||
|
||||
#: pretix/helpers/security.py
|
||||
#, fuzzy
|
||||
#| msgid "Sign in to your account at %(org)s"
|
||||
msgid "New sign-in to your account"
|
||||
msgstr "Neue Anmeldung in Ihrem Konto"
|
||||
msgstr "Log-in in Ihr Kundenkonto bei %(org)s"
|
||||
|
||||
#: pretix/multidomain/models.py
|
||||
msgid "Organizer domain"
|
||||
@@ -36093,8 +36167,10 @@ msgstr[0] "%(count)s Veranstaltung"
|
||||
msgstr[1] "%(count)s Veranstaltungen"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/fragment_calendar.html
|
||||
#, fuzzy
|
||||
#| msgid "No event"
|
||||
msgid "No events"
|
||||
msgstr "Keine Veranstaltungen"
|
||||
msgstr "Keine Veranstaltung"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/fragment_calendar.html
|
||||
#: pretix/presale/templates/pretixpresale/fragment_day_calendar.html
|
||||
@@ -36440,8 +36516,10 @@ msgid "Create account"
|
||||
msgstr "Konto erstellen"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/organizers/customer_login_interrupted_message.html
|
||||
#, fuzzy
|
||||
#| msgid "The invoice could not be generated."
|
||||
msgid "Login could not be completed"
|
||||
msgstr "Login konnte nicht durchgeführt werden"
|
||||
msgstr "Die Rechnung konnte nicht erstellt werden."
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/organizers/customer_login_interrupted_message.html
|
||||
msgid ""
|
||||
@@ -36450,54 +36528,43 @@ msgid ""
|
||||
"process.\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"\n"
|
||||
" Wir konnten Ihren Login nicht durchführen, da der Prozess "
|
||||
"unterbrochen wurde.\n"
|
||||
" "
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/organizers/customer_login_interrupted_message.html
|
||||
msgid "Possible reasons for this:"
|
||||
msgstr "Mögliche Gründe:"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/organizers/customer_login_interrupted_message.html
|
||||
msgid ""
|
||||
"You started logging in from a link opened inside an app (such as Instagram "
|
||||
"or an email app), and then continued the login in your main browser."
|
||||
msgstr ""
|
||||
"Sie haben den Login von einem Link in einer App (wie z.B. Instagram oder "
|
||||
"einer E-Mail-App) gestartet und dann in Ihrem normalen Browser fortgesetzt."
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/organizers/customer_login_interrupted_message.html
|
||||
msgid "You refreshed the page or used the back button during login."
|
||||
msgstr ""
|
||||
"Sie haben während des Logins die Seite neu geladen oder den Zurück-Button "
|
||||
"betätigt."
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/organizers/customer_login_interrupted_message.html
|
||||
msgid "The site was opened in more than one tab or window at the same time."
|
||||
msgstr ""
|
||||
"Die Seite war in mehr als einem Tab oder Fenster gleichzeitig geöffnet."
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/organizers/customer_login_interrupted_message.html
|
||||
msgid ""
|
||||
"There was a long delay between starting and completing the login process."
|
||||
msgstr "Es gab eine lange Pause zwischen Start und Ende des Loginvorgangs."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/organizers/customer_login_interrupted_message.html
|
||||
msgid "How to fix this:"
|
||||
msgstr "Wie Sie dies beheben können:"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/organizers/customer_login_interrupted_message.html
|
||||
msgid "Close this page."
|
||||
msgstr "Schließen Sie diese Seite."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/organizers/customer_login_interrupted_message.html
|
||||
msgid ""
|
||||
"Open this website again directly in your main browser (for example Safari or "
|
||||
"Chrome)."
|
||||
msgstr ""
|
||||
"Öffnen Sie die Website erneut direkt mit Ihrem bevorzugten Browser (z.B. "
|
||||
"Safari oder Chrome)."
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/organizers/customer_login_interrupted_message.html
|
||||
msgid ""
|
||||
@@ -36505,9 +36572,6 @@ msgid ""
|
||||
"browser window, without refreshing the page, opening new tabs, or switching "
|
||||
"apps part-way through."
|
||||
msgstr ""
|
||||
"Beginnen Sie den Kauf- oder Login-Vorgang erneut und führen Sie ihn im "
|
||||
"selben Browserfenster durch, ohne die Seite neu zu laden, neue Tabs zu "
|
||||
"öffnen oder zwischendurch Apps zu wechseln."
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/organizers/customer_login_interrupted_message.html
|
||||
msgid ""
|
||||
@@ -36515,10 +36579,6 @@ msgid ""
|
||||
"before retrying can help. As a last step, try using a different browser or "
|
||||
"another device (for example, a desktop or laptop computer)."
|
||||
msgstr ""
|
||||
"Wenn das Problem fortbesteht, kann es helfen, alle Browser-Fenster zu "
|
||||
"schließen und Cookies zu löschen. Als letzten Schritt können Sie einen "
|
||||
"anderen Browser oder ein andres Gerät (z.B. ein Laptop oder Desktop-"
|
||||
"Computer) verwenden."
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/organizers/customer_membership.html
|
||||
msgid "Your membership"
|
||||
|
||||
@@ -74,7 +74,6 @@ Bokmål
|
||||
Boleto
|
||||
Branding-Informationen
|
||||
Browsereinstellungen
|
||||
Browserfenster
|
||||
BSD-Lizenz
|
||||
bspw
|
||||
Bundles
|
||||
@@ -135,7 +134,6 @@ Einlasskontrolle
|
||||
Einmalpasswörter
|
||||
einzuchecken
|
||||
email
|
||||
E-Mail-App
|
||||
E-Mail-Renderer
|
||||
Enterprise-Lizenz
|
||||
Enterprise-Lizenzen
|
||||
@@ -154,7 +152,6 @@ erstmalig
|
||||
etc
|
||||
EU-USt-ID-Nr
|
||||
Event
|
||||
Event-Absage
|
||||
Event-Eigenschaft
|
||||
Eventeingang
|
||||
Event-Erstellung
|
||||
@@ -209,7 +206,6 @@ innenname
|
||||
innennamen
|
||||
innergemeinschaftliche
|
||||
Innergemeinschaftlicher
|
||||
Instagram
|
||||
Installations-ID
|
||||
Integrationen
|
||||
invalidieren
|
||||
@@ -231,7 +227,6 @@ Linktext
|
||||
lit
|
||||
Log-ID
|
||||
Logindaten
|
||||
Loginvorgangs
|
||||
Macau
|
||||
MapQuest-API-Key
|
||||
max
|
||||
@@ -455,7 +450,6 @@ Strong
|
||||
Swish
|
||||
systemweiten
|
||||
Tab
|
||||
Tabs
|
||||
tag
|
||||
Teammitglied
|
||||
Teamname
|
||||
|
||||
@@ -7,8 +7,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: 1\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-07 09:30+0000\n"
|
||||
"PO-Revision-Date: 2026-07-07 09:55+0000\n"
|
||||
"POT-Creation-Date: 2026-07-06 15:48+0000\n"
|
||||
"PO-Revision-Date: 2026-06-28 15:19+0000\n"
|
||||
"Last-Translator: Raphael Michel <michel@rami.io>\n"
|
||||
"Language-Team: German (informal) <https://translate.pretix.eu/projects/"
|
||||
"pretix/pretix/de_Informal/>\n"
|
||||
@@ -181,7 +181,7 @@ msgstr "Spanisch (Lateinamerika)"
|
||||
|
||||
#: pretix/_base_settings.py
|
||||
msgid "Thai"
|
||||
msgstr "Thailändisch"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/_base_settings.py
|
||||
msgid "Turkish"
|
||||
@@ -438,7 +438,7 @@ msgstr ""
|
||||
#: pretix/api/serializers/organizer.py pretix/control/views/organizer.py
|
||||
#, python-format
|
||||
msgid "You've been invited to join %(organizer)s"
|
||||
msgstr "Du wurdest eingeladen, %(organizer)s beizutreten"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/api/serializers/organizer.py pretix/control/views/organizer.py
|
||||
msgid "This user already has been invited for this team."
|
||||
@@ -4072,31 +4072,43 @@ msgid "Users"
|
||||
msgstr "Benutzer"
|
||||
|
||||
#: pretix/base/models/auth.py
|
||||
#, fuzzy
|
||||
#| msgid "Changes to your account at {organizer}"
|
||||
msgid "Changes to your account"
|
||||
msgstr "Änderungen an deinem Konto"
|
||||
msgstr "Änderungen an deinem Kundenkonto bei {organizer}"
|
||||
|
||||
#: pretix/base/models/auth.py
|
||||
#, python-brace-format
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid ""
|
||||
#| "to confirm changing your email address from {old_email}\n"
|
||||
#| "to {new_email}, use the following code:"
|
||||
msgid ""
|
||||
"To change your email address from {old_email} to {new_email}, use the "
|
||||
"following code:"
|
||||
msgstr ""
|
||||
"um deine E-Mail-Adresse von {old_email} zu {new_email} zu ändern, verwende "
|
||||
"den folgenden Code:"
|
||||
"um zu bestätigen, dass du deine E-Mail-Adresse von {old_email}\n"
|
||||
"zu {new_email} ändern möchtest, verwende den folgenden Code:"
|
||||
|
||||
#: pretix/base/models/auth.py
|
||||
#, python-brace-format
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid ""
|
||||
#| "to confirm changing your email address from {old_email}\n"
|
||||
#| "to {new_email}, use the following code:"
|
||||
msgid ""
|
||||
"To verify your email address {email} on {instance}, use the following code:"
|
||||
msgstr ""
|
||||
"um deine Absenderadresse {email} für {instance} zu bestätigen, verwende den "
|
||||
"folgenden Code:"
|
||||
"um zu bestätigen, dass du deine E-Mail-Adresse von {old_email}\n"
|
||||
"zu {new_email} ändern möchtest, verwende den folgenden Code:"
|
||||
|
||||
#: pretix/base/models/auth.py
|
||||
#, fuzzy
|
||||
#| msgid "Enter confirmation code"
|
||||
msgid "Your confirmation code"
|
||||
msgstr "Dein Bestätigungscode"
|
||||
msgstr "Bestätigungs-Code eingeben"
|
||||
|
||||
#: pretix/base/models/auth.py
|
||||
#, fuzzy
|
||||
#| msgid "Reset password"
|
||||
msgid "Reset your password"
|
||||
msgstr "Passwort zurücksetzen"
|
||||
|
||||
@@ -8305,7 +8317,7 @@ msgstr "Veranstaltung abgesagt"
|
||||
|
||||
#: pretix/base/services/cancelevent.py
|
||||
msgid "Confirm event cancellation and bulk refund"
|
||||
msgstr "Event-Absage und Rückerstattung bestätigen"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/services/cart.py pretix/base/services/modelimport.py
|
||||
#: pretix/base/services/orders.py
|
||||
@@ -8883,8 +8895,10 @@ msgid "Your export did not contain any data."
|
||||
msgstr "Der Export enthielt keine Daten."
|
||||
|
||||
#: pretix/base/services/export.py
|
||||
#, fuzzy
|
||||
#| msgid "Scheduled exports"
|
||||
msgid "Scheduled export failed"
|
||||
msgstr "Geplanter Export fehlgeschlagen"
|
||||
msgstr "Geplante Exporte"
|
||||
|
||||
#: pretix/base/services/export.py
|
||||
msgid "Permission denied."
|
||||
@@ -9219,8 +9233,6 @@ msgstr "Ein Gutschein kann ohne Code nicht erzeugt werden."
|
||||
msgid ""
|
||||
"Voucher codes must be unique. Code \"{code}\" already exists in this import."
|
||||
msgstr ""
|
||||
"Gutscheincodes müssen einmalig sein. Code \"{code}\" existiert bereits in "
|
||||
"diesem Import."
|
||||
|
||||
#: pretix/base/services/modelimport.py
|
||||
#, python-brace-format
|
||||
@@ -9229,19 +9241,13 @@ msgid ""
|
||||
msgid_plural ""
|
||||
"Voucher codes must be unique. Import contains existing voucher codes {code}."
|
||||
msgstr[0] ""
|
||||
"Gutscheincodes müssen eindeutig sein. Der Import enthält den existierenden "
|
||||
"Gutscheincode {code}."
|
||||
msgstr[1] ""
|
||||
"Gutscheincodes müssen eindeutig sein. Der Import enthält die existierenden "
|
||||
"Gutscheincodes {code}."
|
||||
|
||||
#: pretix/base/services/modelimport.py
|
||||
msgid ""
|
||||
"Vouchers could not be imported, probably due to a voucher code already being "
|
||||
"in use."
|
||||
msgstr ""
|
||||
"Die Gutscheine konnten nicht importiert werden, vermutlich weil ein "
|
||||
"Gutscheincode bereits in Verwendung ist."
|
||||
|
||||
#: pretix/base/services/orders.py
|
||||
msgid ""
|
||||
@@ -9620,9 +9626,10 @@ msgstr ""
|
||||
"bitte erneut versuchen."
|
||||
|
||||
#: pretix/base/services/shredder.py
|
||||
#, python-format
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Data shredding completed"
|
||||
msgid "Data shredding completed for %(event)s"
|
||||
msgstr "Löschen personenbezogener Daten abgeschlossen für %(event)s"
|
||||
msgstr "Löschen personenbezogener Daten abgeschlossen"
|
||||
|
||||
#: pretix/base/services/stats.py
|
||||
msgid "Uncategorized"
|
||||
@@ -11432,21 +11439,6 @@ msgstr ""
|
||||
"Wir werden diese Adresse veröffentlichen um Teilnehmer*innen zu ermöglichen, "
|
||||
"dich zu kontaktieren."
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid "Contact URL"
|
||||
msgstr "Kontakt-URL"
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid ""
|
||||
"If you set this, the footer contact link will point here instead of using "
|
||||
"the email address above. Please note that you still need to add a contact "
|
||||
"email address that will be shared with all emails you send."
|
||||
msgstr ""
|
||||
"Wenn du diese Option setzt, wird der Kontakt-Link in der Fußzeile auf diese "
|
||||
"Adresse verweisen statt auf die obige E-Mail-Adresse. Bitte beachte, dass "
|
||||
"die Kontakt-E-Mail-Adresse trotzdem z.B. mit allen Empfängern von E-Mails "
|
||||
"geteilt wird."
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid "Imprint URL"
|
||||
msgstr "Impressum (URL)"
|
||||
@@ -13319,16 +13311,26 @@ msgstr ""
|
||||
"kontaktiere uns."
|
||||
|
||||
#: pretix/base/templates/pretixbase/email/cancel_confirm.txt
|
||||
#, fuzzy
|
||||
#| msgid ""
|
||||
#| "You have requested us to cancel an event which includes a larger bulk-"
|
||||
#| "refund:"
|
||||
msgid "You requested to cancel an event that involves a large bulk refund:"
|
||||
msgstr ""
|
||||
"Du hast angefordert, dass eine Veranstaltung abgesagt wird, wodurch eine "
|
||||
"größere Erstattung vorgenommen wird:"
|
||||
|
||||
#: pretix/base/templates/pretixbase/email/cancel_confirm.txt
|
||||
#, fuzzy
|
||||
#| msgid "Estimated refund amount"
|
||||
msgid "Estimated refund"
|
||||
msgstr "Voraussichtliche Erstattung"
|
||||
msgstr "Voraussichtlicher Erstattungsbetrag"
|
||||
|
||||
#: pretix/base/templates/pretixbase/email/cancel_confirm.txt
|
||||
#, fuzzy
|
||||
#| msgid ""
|
||||
#| "Please confirm that you want to proceed by coping the following "
|
||||
#| "confirmation code into the cancellation form:"
|
||||
msgid "To confirm, paste the following code into the cancellation form:"
|
||||
msgstr ""
|
||||
"Bitte bestätige, dass du fortfahren willst, indem du den folgenden "
|
||||
@@ -13340,8 +13342,6 @@ msgid ""
|
||||
"Don't share this code with anyone. The %(instance)s team will never ask you "
|
||||
"for it."
|
||||
msgstr ""
|
||||
"Teilen den Code mit niemandem. Das Team von %(instance)s wird nie danach "
|
||||
"fragen."
|
||||
|
||||
#: pretix/base/templates/pretixbase/email/cancel_confirm.txt
|
||||
#: pretix/base/templates/pretixbase/email/export_failed.txt
|
||||
@@ -13350,8 +13350,6 @@ msgid ""
|
||||
"Thanks, \n"
|
||||
"The %(instance)s Team"
|
||||
msgstr ""
|
||||
"Danke, \n"
|
||||
"Das Team von %(instance)s"
|
||||
|
||||
#: pretix/base/templates/pretixbase/email/email_footer.html
|
||||
#, python-format
|
||||
@@ -13359,8 +13357,10 @@ msgid "powered by <a %(a_attr)s>pretix</a>"
|
||||
msgstr "powered by <a %(a_attr)s>pretix</a>"
|
||||
|
||||
#: pretix/base/templates/pretixbase/email/export_failed.txt
|
||||
#, fuzzy
|
||||
#| msgid "Your export failed."
|
||||
msgid "Your scheduled export failed."
|
||||
msgstr "Dein geplanter Export ist fehlgeschlagen."
|
||||
msgstr "Der Export ist fehlgeschlagen."
|
||||
|
||||
#: pretix/base/templates/pretixbase/email/export_failed.txt
|
||||
#: pretix/control/templates/pretixcontrol/event/tax_edit.html
|
||||
@@ -13368,29 +13368,39 @@ msgid "Reason"
|
||||
msgstr "Grund"
|
||||
|
||||
#: pretix/base/templates/pretixbase/email/export_failed.txt
|
||||
#, fuzzy
|
||||
#| msgid "If your export fails five times in a row, it will no longer be sent."
|
||||
msgid "If an export fails five times in a row, we'll stop sending it."
|
||||
msgstr ""
|
||||
"Wenn der Export fünf mal in Folge fehlschlägt, wird er nicht mehr verschickt."
|
||||
|
||||
#: pretix/base/templates/pretixbase/email/export_failed.txt
|
||||
#, fuzzy
|
||||
#| msgid "You can request to cancel this order."
|
||||
msgid "You can adjust or remove this export here:"
|
||||
msgstr "Du kannst diesen Export hier anpassen oder löschen:"
|
||||
msgstr "Du kannst eine Stornierung dieser Bestellung anfragen."
|
||||
|
||||
#: pretix/base/templates/pretixbase/email/notification.html
|
||||
#: pretix/base/templates/pretixbase/email/notification.txt
|
||||
#, fuzzy
|
||||
#| msgid "You receive these emails based on your notification settings."
|
||||
msgid "You're receiving this email based on your notification settings."
|
||||
msgstr ""
|
||||
"Du erhältst diese E-Mail auf Basis deiner Benachrichtigungs-Einstellungen."
|
||||
"Du erhältst diese E-Mail aufgrund deiner Benachrichtigungseinstellungen."
|
||||
|
||||
#: pretix/base/templates/pretixbase/email/notification.html
|
||||
#: pretix/base/templates/pretixbase/email/notification.txt
|
||||
#, fuzzy
|
||||
#| msgid "Change settings"
|
||||
msgid "Manage settings"
|
||||
msgstr "Einstellungen bearbeiten"
|
||||
|
||||
#: pretix/base/templates/pretixbase/email/notification.html
|
||||
#: pretix/base/templates/pretixbase/email/notification.txt
|
||||
#, fuzzy
|
||||
#| msgid "Disable notifications"
|
||||
msgid "Disable all notifications"
|
||||
msgstr "Alle Benachrichtigungen deaktivieren"
|
||||
msgstr "Benachrichtigungen deaktivieren"
|
||||
|
||||
#: pretix/base/templates/pretixbase/email/order_details.html
|
||||
msgid ""
|
||||
@@ -13448,7 +13458,25 @@ msgid "Contact"
|
||||
msgstr "Kontakt"
|
||||
|
||||
#: pretix/base/templates/pretixbase/email/shred_completed.txt
|
||||
#, python-format
|
||||
#, fuzzy, python-format
|
||||
#| msgid ""
|
||||
#| "Hello,\n"
|
||||
#| "\n"
|
||||
#| "we hereby confirm that the following data shredding job has been "
|
||||
#| "completed:\n"
|
||||
#| "\n"
|
||||
#| "Organizer: %(organizer)s\n"
|
||||
#| "\n"
|
||||
#| "Event: %(event)s\n"
|
||||
#| "\n"
|
||||
#| "Data selection: %(shredders)s\n"
|
||||
#| "\n"
|
||||
#| "Start time: %(start_time)s (new data added after this time might not have "
|
||||
#| "been deleted)\n"
|
||||
#| "\n"
|
||||
#| "Best regards,\n"
|
||||
#| "\n"
|
||||
#| "Your %(instance)s team\n"
|
||||
msgid ""
|
||||
"Hello,\n"
|
||||
"\n"
|
||||
@@ -13466,17 +13494,21 @@ msgid ""
|
||||
msgstr ""
|
||||
"Hallo,\n"
|
||||
"\n"
|
||||
"der folgende Lösch-Auftrag wurde abgeschlossen:\n"
|
||||
"wir bestätigen hiermit, dass der folgende Lösch-Auftrag abgeschlossen "
|
||||
"wurde:\n"
|
||||
"\n"
|
||||
"- Veranstalter: %(organizer)s\n"
|
||||
"- Veranstaltung: %(event)s\n"
|
||||
"- Datenauswahl: %(shredders)s\n"
|
||||
"- Startzeit: %(start_time)s\n"
|
||||
"Veranstalter: %(organizer)s\n"
|
||||
"\n"
|
||||
"Daten, die nach dieser Startzeit entstanden sind, sind ggf. nicht gelöscht.\n"
|
||||
"Veranstaltung: %(event)s\n"
|
||||
"\n"
|
||||
"Danke, \n"
|
||||
"Das Team von %(instance)s\n"
|
||||
"Datenauswahl: %(shredders)s\n"
|
||||
"\n"
|
||||
"Startzeit: %(start_time)s (Daten, die nach diesem Zeitpunkt entstanden sind, "
|
||||
"sind ggf. nicht gelöscht)\n"
|
||||
"\n"
|
||||
"Freundliche Grüße\n"
|
||||
"\n"
|
||||
"Das %(instance)s-Team\n"
|
||||
|
||||
#: pretix/base/templates/pretixbase/forms/widgets/checkbox_sales_channel_option.html
|
||||
msgid ""
|
||||
@@ -13513,15 +13545,11 @@ msgstr "Bitte in neuem Tab fortfahren"
|
||||
#: pretix/base/templates/pretixbase/framebreak.html
|
||||
msgid "For security reasons, the following step is only possible in a new tab."
|
||||
msgstr ""
|
||||
"Aus Sicherheitsgründen ist der folgende Schritt nur in einem neuen Tab "
|
||||
"möglich."
|
||||
|
||||
#: pretix/base/templates/pretixbase/framebreak.html
|
||||
msgid ""
|
||||
"If the new tab did not open automatically, please click the following button:"
|
||||
msgstr ""
|
||||
"Wenn der neue Tab sich nicht automatisch geöffnet hat, klicke bitte den "
|
||||
"folgenden Button:"
|
||||
|
||||
#: pretix/base/templates/pretixbase/framebreak.html
|
||||
#: pretix/presale/templates/pretixpresale/event/cookies.html
|
||||
@@ -19889,7 +19917,21 @@ msgid "Add property"
|
||||
msgstr "Eigenschaft hinzufügen"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/email/confirmation_code.txt
|
||||
#, python-format
|
||||
#, fuzzy, python-format
|
||||
#| msgid ""
|
||||
#| "Hello,\n"
|
||||
#| "\n"
|
||||
#| "%(reason)s\n"
|
||||
#| "\n"
|
||||
#| " %(code)s\n"
|
||||
#| "\n"
|
||||
#| "Please do never give this code to another person. Our support team will "
|
||||
#| "never ask for this code.\n"
|
||||
#| "\n"
|
||||
#| "If this code was not requested by you, please contact us immediately.\n"
|
||||
#| "\n"
|
||||
#| "Best regards,\n"
|
||||
#| "Your %(instance)s team\n"
|
||||
msgid ""
|
||||
"Hello,\n"
|
||||
"\n"
|
||||
@@ -19911,16 +19953,32 @@ msgstr ""
|
||||
"\n"
|
||||
" %(code)s\n"
|
||||
"\n"
|
||||
"Bitte gib diesen Code an niemanden weiter. Das Team von %(instance)s wird "
|
||||
"nie danach fragen.\n"
|
||||
"Bitte gib diesen Code nie an eine andere Person weiter. Unser Support-Team "
|
||||
"wird nie nach diesem Code fragen.\n"
|
||||
"\n"
|
||||
"Wenn du diesen Code nicht angefragt hast, kontaktiere uns bitte sofort.\n"
|
||||
"\n"
|
||||
"Danke, \n"
|
||||
"Das Team von %(instance)s\n"
|
||||
"Viele Grüße,\n"
|
||||
"Dein %(instance)s-Team\n"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/email/email_setup.txt
|
||||
#, python-format
|
||||
#, fuzzy, python-format
|
||||
#| msgid ""
|
||||
#| "Hello,\n"
|
||||
#| "\n"
|
||||
#| "someone requested to use %(address)s as a sender address on "
|
||||
#| "%(instance)s.\n"
|
||||
#| "This will allow them to send emails that are shown to originate from this "
|
||||
#| "email address.\n"
|
||||
#| "If that was you, please enter the following confirmation code:\n"
|
||||
#| "\n"
|
||||
#| "%(code)s\n"
|
||||
#| "\n"
|
||||
#| "If this was not requested by you, you can safely ignore this email.\n"
|
||||
#| "\n"
|
||||
#| "Best regards, \n"
|
||||
#| "\n"
|
||||
#| "Your %(instance)s team\n"
|
||||
msgid ""
|
||||
"Hello,\n"
|
||||
"\n"
|
||||
@@ -19932,9 +19990,8 @@ msgid ""
|
||||
"\n"
|
||||
" %(code)s\n"
|
||||
"\n"
|
||||
"Don't share this code with anyone unless you want to authorize them to use "
|
||||
"this address for this purpose. The %(instance)s team will never ask you for "
|
||||
"it.\n"
|
||||
"Don't share this code with anyone. The %(instance)s team will never ask you "
|
||||
"for it.\n"
|
||||
"\n"
|
||||
"If you didn't request this, you can safely ignore this email.\n"
|
||||
"\n"
|
||||
@@ -19943,21 +20000,19 @@ msgid ""
|
||||
msgstr ""
|
||||
"Hallo,\n"
|
||||
"\n"
|
||||
"jemand hat angefragt, die Adresse %(address)s als Absenderadresse auf %"
|
||||
"(instance)s zu nutzen. Hierdurch könnten dann E-Mails über %(instance)s "
|
||||
"verschickt werden, die diese Adresse als Absender tragen. Wenn du das warst, "
|
||||
"gib bitte folgenden Bestätigungscode im Formular ein:\n"
|
||||
"jemand hat angefragt, die Adresse %(address)s als Absenderadresse auf "
|
||||
"%(instance)s zu nutzen.\n"
|
||||
"Hierdurch könnten dann E-Mails verschickt werden, die diese Adresse als "
|
||||
"Absender tragen.\n"
|
||||
"Wenn du das warst, gib bitte folgenden Bestätigungscode ein:\n"
|
||||
"\n"
|
||||
"%(code)s\n"
|
||||
"\n"
|
||||
"Teile diesen Code mit niemandem, außer du möchtest die Person dazu "
|
||||
"berechtigen, diese E-Mail-Adresse zu diesem Zweck zu nutzen. Das Team von %"
|
||||
"(instance)s wird nie nach diesem Code fragen.\n"
|
||||
"\n"
|
||||
"Wenn du das nicht warst, kannst du diese E-Mail gefahrlos ignorieren.\n"
|
||||
"\n"
|
||||
"Danke, \n"
|
||||
"Das Team von %(instance)s\n"
|
||||
"Viele Grüße, \n"
|
||||
"\n"
|
||||
"Dein Team von %(instance)s\n"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/email/forgot.txt
|
||||
#, python-format
|
||||
@@ -19975,22 +20030,27 @@ msgid ""
|
||||
"Thanks, \n"
|
||||
"The %(instance)s Team\n"
|
||||
msgstr ""
|
||||
"Hallo,\n"
|
||||
"\n"
|
||||
"wir haben eine Anfrage erhalten, das Passwort für deinen Account bei "
|
||||
"%(instance)s zurückzusetzen. Um ein neues Passwort zu wählen, klicke auf den "
|
||||
"folgenden Link:\n"
|
||||
"\n"
|
||||
"%(url)s\n"
|
||||
"\n"
|
||||
"Wenn du dies nicht angefordert hast, kannst du diese E-Mail ignorieren – "
|
||||
"dein Passwort wird nicht geändert.\n"
|
||||
"\n"
|
||||
"Danke, \n"
|
||||
"Das Team von %(instance)s\n"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/email/invitation.txt
|
||||
#, python-format
|
||||
#, fuzzy, python-format
|
||||
#| msgid ""
|
||||
#| "Hello,\n"
|
||||
#| "\n"
|
||||
#| "you have been invited to a team on %(instance)s, a platform to perform "
|
||||
#| "event\n"
|
||||
#| "ticket sales.\n"
|
||||
#| "\n"
|
||||
#| "Organizer: %(organizer)s\n"
|
||||
#| "Team: %(team)s\n"
|
||||
#| "\n"
|
||||
#| "If you want to join that team, just click on the following link:\n"
|
||||
#| "%(url)s\n"
|
||||
#| "\n"
|
||||
#| "If you do not want to join, you can safely ignore or delete this email.\n"
|
||||
#| "\n"
|
||||
#| "Best regards, \n"
|
||||
#| "\n"
|
||||
#| "Your %(instance)s team\n"
|
||||
msgid ""
|
||||
"Hello,\n"
|
||||
"\n"
|
||||
@@ -20012,18 +20072,22 @@ msgstr ""
|
||||
"Hallo,\n"
|
||||
"\n"
|
||||
"du wurdest in das Team eines Veranstalters auf %(instance)s eingeladen, "
|
||||
"einer Plattform zum Verkaufen von Veranstaltungstickets.\n"
|
||||
"einer Plattform zum\n"
|
||||
"Verkaufen von Veranstaltungstickets.\n"
|
||||
"\n"
|
||||
"- Veranstalter: %(organizer)s\n"
|
||||
"- Team: %(team)s\n"
|
||||
"Veranstalter: %(organizer)s\n"
|
||||
"\n"
|
||||
"Zum Akzeptieren klicke auf den folgenden Link:\n"
|
||||
"Team: %(team)s\n"
|
||||
"\n"
|
||||
"Wenn du dem Team beitreten möchtest, klicke einfach auf den folgenden Link:\n"
|
||||
"%(url)s\n"
|
||||
"\n"
|
||||
"Wenn du dies nicht möchtest, kannst du diese Mail ignorieren.\n"
|
||||
"Wenn du dies nicht möchtest, kannst du diese Mail problemlos ignorieren\n"
|
||||
"oder löschen.\n"
|
||||
"\n"
|
||||
"Danke, \n"
|
||||
"Das Team von %(instance)s\n"
|
||||
"Viele Grüße\n"
|
||||
"\n"
|
||||
"Das %(instance)s-Team\n"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/email/login_notice.txt
|
||||
#, python-format
|
||||
@@ -20032,25 +20096,21 @@ msgid ""
|
||||
"\n"
|
||||
"We noticed a new sign-in to your %(instance)s account:\n"
|
||||
msgstr ""
|
||||
"Hallo,\n"
|
||||
"\n"
|
||||
"wir haben einen neuen Login in deinen Account bei %(instance)s "
|
||||
"festgestellt:\n"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/email/login_notice.txt
|
||||
msgid "Browser"
|
||||
msgstr "Browser"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/email/login_notice.txt
|
||||
msgid "Operating system"
|
||||
msgstr "Betriebssystem"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/email/login_notice.txt
|
||||
#, python-format
|
||||
msgid ""
|
||||
"If it was you, no action is needed.\n"
|
||||
"\n"
|
||||
"If you don't recognize this sign-in, please change your password "
|
||||
"If you don't recognise this sign-in, please change your password "
|
||||
"immediately:\n"
|
||||
"\n"
|
||||
"%(url)s\n"
|
||||
@@ -20058,18 +20118,26 @@ msgid ""
|
||||
"Thanks, \n"
|
||||
"The %(instance)s Team\n"
|
||||
msgstr ""
|
||||
"Wenn du dies warst, ist keine Aktion erforderlich.\n"
|
||||
"\n"
|
||||
"Wenn du diesen Login nicht wiedererkennst, ändere bitte sofort dein "
|
||||
"Passwort:\n"
|
||||
"\n"
|
||||
"%(url)s\n"
|
||||
"\n"
|
||||
"Danke, \n"
|
||||
"Das Team von %(instance)s\n"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/email/security_notice.txt
|
||||
#, python-format
|
||||
#, fuzzy, python-format
|
||||
#| msgid ""
|
||||
#| "Hello,\n"
|
||||
#| "\n"
|
||||
#| "this is to inform you that the account information of your %(instance)s "
|
||||
#| "account has been\n"
|
||||
#| "changed. In particular, the following changes have been performed:\n"
|
||||
#| "\n"
|
||||
#| "%(messages)s\n"
|
||||
#| "\n"
|
||||
#| "If this change was not performed by you, please contact us immediately.\n"
|
||||
#| "\n"
|
||||
#| "You can review and change your account settings here:\n"
|
||||
#| "\n"
|
||||
#| "%(url)s\n"
|
||||
#| "\n"
|
||||
#| "Best regards, \n"
|
||||
#| "Your %(instance)s team\n"
|
||||
msgid ""
|
||||
"Hello,\n"
|
||||
"\n"
|
||||
@@ -20089,20 +20157,21 @@ msgid ""
|
||||
msgstr ""
|
||||
"Hallo,\n"
|
||||
"\n"
|
||||
"die folgenden Einstellungen deines Kontos bei %(instance)s wurden "
|
||||
"verändert:\n"
|
||||
"die Einstellungen deines %(instance)s-Kontos wurden verändert. Es wurden die "
|
||||
"folgenden Änderungen\n"
|
||||
"vorgenommen:\n"
|
||||
"\n"
|
||||
"%(messages)s\n"
|
||||
"\n"
|
||||
"Wenn diese Änderung nicht von dir vorgenommen wurden, kontaktiere das Team "
|
||||
"von %(instance)s bitte unverzüglich.\n"
|
||||
"Wenn diese Änderung nicht von dir vorgenommen wurden, kontaktiere uns bitte "
|
||||
"unverzüglich.\n"
|
||||
"\n"
|
||||
"Du kannst deine Kontoeinstellungen hier einsehen und verändern:\n"
|
||||
"\n"
|
||||
"%(url)s\n"
|
||||
"\n"
|
||||
"Danke, \n"
|
||||
"Das Team von %(instance)s\n"
|
||||
"Viele Grüße\n"
|
||||
"Dein %(instance)s-Team\n"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/email_setup.html
|
||||
#: pretix/control/templates/pretixcontrol/email_setup_simple.html
|
||||
@@ -28704,7 +28773,7 @@ msgstr "Der Bestätigungscode war falsch, bitte erneut versuchen."
|
||||
#: pretix/control/views/mailsetup.py
|
||||
#, python-format
|
||||
msgid "Confirm %(address)s as a sender address"
|
||||
msgstr "Bestätige %(address)s als Absenderadresse"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/views/mailsetup.py
|
||||
#, python-format
|
||||
@@ -29926,8 +29995,10 @@ msgid "Open BezahlCode in your banking app to start the payment process."
|
||||
msgstr "BezahlCode in Banking-App öffnen um den Zahlungsvorgang zu starten."
|
||||
|
||||
#: pretix/helpers/security.py
|
||||
#, fuzzy
|
||||
#| msgid "Sign in to your account at %(org)s"
|
||||
msgid "New sign-in to your account"
|
||||
msgstr "Neue Anmeldung in deinem Konto"
|
||||
msgstr "Log-in in dein Kundenkonto bei %(org)s"
|
||||
|
||||
#: pretix/multidomain/models.py
|
||||
msgid "Organizer domain"
|
||||
@@ -36038,8 +36109,10 @@ msgstr[0] "%(count)s Veranstaltung"
|
||||
msgstr[1] "%(count)s Veranstaltungen"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/fragment_calendar.html
|
||||
#, fuzzy
|
||||
#| msgid "No event"
|
||||
msgid "No events"
|
||||
msgstr "Keine Veranstaltungen"
|
||||
msgstr "Veranstaltung aufrufen"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/fragment_calendar.html
|
||||
#: pretix/presale/templates/pretixpresale/fragment_day_calendar.html
|
||||
@@ -36385,8 +36458,10 @@ msgid "Create account"
|
||||
msgstr "Konto erstellen"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/organizers/customer_login_interrupted_message.html
|
||||
#, fuzzy
|
||||
#| msgid "The invoice could not be generated."
|
||||
msgid "Login could not be completed"
|
||||
msgstr "Login konnte nicht durchgeführt werden"
|
||||
msgstr "Die Rechnung konnte nicht erstellt werden."
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/organizers/customer_login_interrupted_message.html
|
||||
msgid ""
|
||||
@@ -36395,54 +36470,43 @@ msgid ""
|
||||
"process.\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"\n"
|
||||
" Wir konnten deinen Login nicht durchführen, da der Prozess "
|
||||
"unterbrochen wurde.\n"
|
||||
" "
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/organizers/customer_login_interrupted_message.html
|
||||
msgid "Possible reasons for this:"
|
||||
msgstr "Mögliche Gründe:"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/organizers/customer_login_interrupted_message.html
|
||||
msgid ""
|
||||
"You started logging in from a link opened inside an app (such as Instagram "
|
||||
"or an email app), and then continued the login in your main browser."
|
||||
msgstr ""
|
||||
"Du hast den Login von einem Link in einer App (wie z.B. Instagram oder einer "
|
||||
"E-Mail-App) gestartet und dann in Ihrem normalen Browser fortgesetzt."
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/organizers/customer_login_interrupted_message.html
|
||||
msgid "You refreshed the page or used the back button during login."
|
||||
msgstr ""
|
||||
"Du hast während des Logins die Seite neu geladen oder den Zurück-Button "
|
||||
"betätigt."
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/organizers/customer_login_interrupted_message.html
|
||||
msgid "The site was opened in more than one tab or window at the same time."
|
||||
msgstr ""
|
||||
"Die Seite war in mehr als einem Tab oder Fenster gleichzeitig geöffnet."
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/organizers/customer_login_interrupted_message.html
|
||||
msgid ""
|
||||
"There was a long delay between starting and completing the login process."
|
||||
msgstr "Es gab eine lange Pause zwischen Start und Ende des Loginvorgangs."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/organizers/customer_login_interrupted_message.html
|
||||
msgid "How to fix this:"
|
||||
msgstr "Wie du dies beheben kannst:"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/organizers/customer_login_interrupted_message.html
|
||||
msgid "Close this page."
|
||||
msgstr "Schließe diese Seite."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/organizers/customer_login_interrupted_message.html
|
||||
msgid ""
|
||||
"Open this website again directly in your main browser (for example Safari or "
|
||||
"Chrome)."
|
||||
msgstr ""
|
||||
"Öffne die Website erneut direkt mit deinem bevorzugten Browser (z.B. Safari "
|
||||
"oder Chrome)."
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/organizers/customer_login_interrupted_message.html
|
||||
msgid ""
|
||||
@@ -36450,9 +36514,6 @@ msgid ""
|
||||
"browser window, without refreshing the page, opening new tabs, or switching "
|
||||
"apps part-way through."
|
||||
msgstr ""
|
||||
"Beginne den Kauf- oder Login-Vorgang erneut und führe ihn im selben "
|
||||
"Browserfenster durch, ohne die Seite neu zu laden, neue Tabs zu öffnen oder "
|
||||
"zwischendurch Apps zu wechseln."
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/organizers/customer_login_interrupted_message.html
|
||||
msgid ""
|
||||
@@ -36460,10 +36521,6 @@ msgid ""
|
||||
"before retrying can help. As a last step, try using a different browser or "
|
||||
"another device (for example, a desktop or laptop computer)."
|
||||
msgstr ""
|
||||
"Wenn das Problem fortbesteht, kann es helfen, alle Browser-Fenster zu "
|
||||
"schließen und Cookies zu löschen. Als letzten Schritt kannst du einen "
|
||||
"anderen Browser oder ein andres Gerät (z.B. ein Laptop oder Desktop-"
|
||||
"Computer) verwenden."
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/organizers/customer_membership.html
|
||||
msgid "Your membership"
|
||||
|
||||
@@ -74,7 +74,6 @@ Bokmål
|
||||
Boleto
|
||||
Branding-Informationen
|
||||
Browsereinstellungen
|
||||
Browserfenster
|
||||
BSD-Lizenz
|
||||
bspw
|
||||
Bundles
|
||||
@@ -135,7 +134,6 @@ Einlasskontrolle
|
||||
Einmalpasswörter
|
||||
einzuchecken
|
||||
email
|
||||
E-Mail-App
|
||||
E-Mail-Renderer
|
||||
Enterprise-Lizenz
|
||||
Enterprise-Lizenzen
|
||||
@@ -154,7 +152,6 @@ erstmalig
|
||||
etc
|
||||
EU-USt-ID-Nr
|
||||
Event
|
||||
Event-Absage
|
||||
Event-Eigenschaft
|
||||
Eventeingang
|
||||
Event-Erstellung
|
||||
@@ -209,7 +206,6 @@ innenname
|
||||
innennamen
|
||||
innergemeinschaftliche
|
||||
Innergemeinschaftlicher
|
||||
Instagram
|
||||
Installations-ID
|
||||
Integrationen
|
||||
invalidieren
|
||||
@@ -231,7 +227,6 @@ Linktext
|
||||
lit
|
||||
Log-ID
|
||||
Logindaten
|
||||
Loginvorgangs
|
||||
Macau
|
||||
MapQuest-API-Key
|
||||
max
|
||||
@@ -455,7 +450,6 @@ Strong
|
||||
Swish
|
||||
systemweiten
|
||||
Tab
|
||||
Tabs
|
||||
tag
|
||||
Teammitglied
|
||||
Teamname
|
||||
|
||||
@@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-07 09:30+0000\n"
|
||||
"POT-Creation-Date: 2026-07-06 15:48+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"
|
||||
@@ -10196,17 +10196,6 @@ msgstr ""
|
||||
msgid "We'll show this publicly to allow attendees to contact you."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid "Contact URL"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid ""
|
||||
"If you set this, the footer contact link will point here instead of using "
|
||||
"the email address above. Please note that you still need to add a contact "
|
||||
"email address that will be shared with all emails you send."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid "Imprint URL"
|
||||
msgstr ""
|
||||
@@ -17558,9 +17547,8 @@ msgid ""
|
||||
"\n"
|
||||
" %(code)s\n"
|
||||
"\n"
|
||||
"Don't share this code with anyone unless you want to authorize them to use "
|
||||
"this address for this purpose. The %(instance)s team will never ask you for "
|
||||
"it.\n"
|
||||
"Don't share this code with anyone. The %(instance)s team will never ask you "
|
||||
"for it.\n"
|
||||
"\n"
|
||||
"If you didn't request this, you can safely ignore this email.\n"
|
||||
"\n"
|
||||
@@ -17627,7 +17615,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"If it was you, no action is needed.\n"
|
||||
"\n"
|
||||
"If you don't recognize this sign-in, please change your password "
|
||||
"If you don't recognise this sign-in, please change your password "
|
||||
"immediately:\n"
|
||||
"\n"
|
||||
"%(url)s\n"
|
||||
|
||||
@@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-07 09:33+0000\n"
|
||||
"POT-Creation-Date: 2026-07-06 15:52+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"
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-07 09:30+0000\n"
|
||||
"POT-Creation-Date: 2026-07-06 15:48+0000\n"
|
||||
"PO-Revision-Date: 2026-02-25 23:00+0000\n"
|
||||
"Last-Translator: David Ibáñez Cerdeira <dibanez@gmail.com>\n"
|
||||
"Language-Team: Greek <https://translate.pretix.eu/projects/pretix/pretix/el/"
|
||||
@@ -12225,19 +12225,6 @@ msgstr ""
|
||||
"Θα το δείξουμε δημοσίως για να επιτρέψουμε στους συμμετέχοντες να "
|
||||
"επικοινωνήσουν μαζί σας."
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "Bancontact"
|
||||
msgid "Contact URL"
|
||||
msgstr "Bancontact"
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid ""
|
||||
"If you set this, the footer contact link will point here instead of using "
|
||||
"the email address above. Please note that you still need to add a contact "
|
||||
"email address that will be shared with all emails you send."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid "Imprint URL"
|
||||
msgstr "Διεύθυνση URL αποτύπωσης"
|
||||
@@ -21428,9 +21415,8 @@ msgid ""
|
||||
"\n"
|
||||
" %(code)s\n"
|
||||
"\n"
|
||||
"Don't share this code with anyone unless you want to authorize them to use "
|
||||
"this address for this purpose. The %(instance)s team will never ask you for "
|
||||
"it.\n"
|
||||
"Don't share this code with anyone. The %(instance)s team will never ask you "
|
||||
"for it.\n"
|
||||
"\n"
|
||||
"If you didn't request this, you can safely ignore this email.\n"
|
||||
"\n"
|
||||
@@ -21532,7 +21518,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"If it was you, no action is needed.\n"
|
||||
"\n"
|
||||
"If you don't recognize this sign-in, please change your password "
|
||||
"If you don't recognise this sign-in, please change your password "
|
||||
"immediately:\n"
|
||||
"\n"
|
||||
"%(url)s\n"
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-07 09:30+0000\n"
|
||||
"POT-Creation-Date: 2026-07-06 15:48+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: Automatically generated\n"
|
||||
"Language-Team: none\n"
|
||||
@@ -10195,17 +10195,6 @@ msgstr ""
|
||||
msgid "We'll show this publicly to allow attendees to contact you."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid "Contact URL"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid ""
|
||||
"If you set this, the footer contact link will point here instead of using "
|
||||
"the email address above. Please note that you still need to add a contact "
|
||||
"email address that will be shared with all emails you send."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid "Imprint URL"
|
||||
msgstr ""
|
||||
@@ -17557,9 +17546,8 @@ msgid ""
|
||||
"\n"
|
||||
" %(code)s\n"
|
||||
"\n"
|
||||
"Don't share this code with anyone unless you want to authorize them to use "
|
||||
"this address for this purpose. The %(instance)s team will never ask you for "
|
||||
"it.\n"
|
||||
"Don't share this code with anyone. The %(instance)s team will never ask you "
|
||||
"for it.\n"
|
||||
"\n"
|
||||
"If you didn't request this, you can safely ignore this email.\n"
|
||||
"\n"
|
||||
@@ -17626,7 +17614,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"If it was you, no action is needed.\n"
|
||||
"\n"
|
||||
"If you don't recognize this sign-in, please change your password "
|
||||
"If you don't recognise this sign-in, please change your password "
|
||||
"immediately:\n"
|
||||
"\n"
|
||||
"%(url)s\n"
|
||||
|
||||
@@ -7,8 +7,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-07 09:30+0000\n"
|
||||
"PO-Revision-Date: 2026-07-07 09:22+0000\n"
|
||||
"POT-Creation-Date: 2026-07-06 15:48+0000\n"
|
||||
"PO-Revision-Date: 2026-06-29 17:00+0000\n"
|
||||
"Last-Translator: CVZ-es <damien.bremont@casadevelazquez.org>\n"
|
||||
"Language-Team: Spanish <https://translate.pretix.eu/projects/pretix/pretix/"
|
||||
"es/>\n"
|
||||
@@ -181,7 +181,7 @@ msgstr "Español (Latinoamérica)"
|
||||
|
||||
#: pretix/_base_settings.py
|
||||
msgid "Thai"
|
||||
msgstr "Tailandés"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/_base_settings.py
|
||||
msgid "Turkish"
|
||||
@@ -441,7 +441,7 @@ msgstr ""
|
||||
#: pretix/api/serializers/organizer.py pretix/control/views/organizer.py
|
||||
#, python-format
|
||||
msgid "You've been invited to join %(organizer)s"
|
||||
msgstr "Ha sido invitado a unirse a %(organizer)s"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/api/serializers/organizer.py pretix/control/views/organizer.py
|
||||
msgid "This user already has been invited for this team."
|
||||
@@ -4088,31 +4088,45 @@ msgid "Users"
|
||||
msgstr "Usuarios"
|
||||
|
||||
#: pretix/base/models/auth.py
|
||||
#, fuzzy
|
||||
#| msgid "Changes to your account at {organizer}"
|
||||
msgid "Changes to your account"
|
||||
msgstr "Cambios en su cuenta"
|
||||
msgstr "Cambios en su cuenta en {organizer}"
|
||||
|
||||
#: pretix/base/models/auth.py
|
||||
#, python-brace-format
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid ""
|
||||
#| "to confirm changing your email address from {old_email}\n"
|
||||
#| "to {new_email}, use the following code:"
|
||||
msgid ""
|
||||
"To change your email address from {old_email} to {new_email}, use the "
|
||||
"following code:"
|
||||
msgstr ""
|
||||
"Para cambiar su dirección de correo electrónico de {old_email} a "
|
||||
"{new_email}, utilice el siguiente código:"
|
||||
"para confirmar el cambio de tu dirección de correo electrónico de "
|
||||
"{old_email}\n"
|
||||
"a {new_email}, utiliza el siguiente código:"
|
||||
|
||||
#: pretix/base/models/auth.py
|
||||
#, python-brace-format
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid ""
|
||||
#| "to confirm changing your email address from {old_email}\n"
|
||||
#| "to {new_email}, use the following code:"
|
||||
msgid ""
|
||||
"To verify your email address {email} on {instance}, use the following code:"
|
||||
msgstr ""
|
||||
"Para verificar su dirección de correo electrónico {email} en {instance}, "
|
||||
"utilice el siguiente código:"
|
||||
"para confirmar el cambio de tu dirección de correo electrónico de "
|
||||
"{old_email}\n"
|
||||
"a {new_email}, utiliza el siguiente código:"
|
||||
|
||||
#: pretix/base/models/auth.py
|
||||
#, fuzzy
|
||||
#| msgid "Enter confirmation code"
|
||||
msgid "Your confirmation code"
|
||||
msgstr "Su código de confirmación"
|
||||
msgstr "Introduzca el código de confirmación"
|
||||
|
||||
#: pretix/base/models/auth.py
|
||||
#, fuzzy
|
||||
#| msgid "Reset password"
|
||||
msgid "Reset your password"
|
||||
msgstr "Restablecer contraseña"
|
||||
|
||||
@@ -8315,7 +8329,7 @@ msgstr "Evento cancelado"
|
||||
|
||||
#: pretix/base/services/cancelevent.py
|
||||
msgid "Confirm event cancellation and bulk refund"
|
||||
msgstr "Confirmar la cancelación del evento y el reembolso masivo"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/services/cart.py pretix/base/services/modelimport.py
|
||||
#: pretix/base/services/orders.py
|
||||
@@ -8896,8 +8910,10 @@ msgid "Your export did not contain any data."
|
||||
msgstr "Su exportación no contenía ningún dato."
|
||||
|
||||
#: pretix/base/services/export.py
|
||||
#, fuzzy
|
||||
#| msgid "Scheduled exports"
|
||||
msgid "Scheduled export failed"
|
||||
msgstr "La exportación programada ha fallado"
|
||||
msgstr "Exportaciones programadas"
|
||||
|
||||
#: pretix/base/services/export.py
|
||||
msgid "Permission denied."
|
||||
@@ -9233,8 +9249,6 @@ msgstr "No se puede crear un vale de compra sin un código."
|
||||
msgid ""
|
||||
"Voucher codes must be unique. Code \"{code}\" already exists in this import."
|
||||
msgstr ""
|
||||
"Los códigos promocionales deben ser únicos. El código «{code}» ya existe en "
|
||||
"esta importación."
|
||||
|
||||
#: pretix/base/services/modelimport.py
|
||||
#, python-brace-format
|
||||
@@ -9243,19 +9257,13 @@ msgid ""
|
||||
msgid_plural ""
|
||||
"Voucher codes must be unique. Import contains existing voucher codes {code}."
|
||||
msgstr[0] ""
|
||||
"Los códigos promocionales deben ser únicos. La importación incluye el código "
|
||||
"promocional ya existente {code}."
|
||||
msgstr[1] ""
|
||||
"Los códigos promocionales deben ser únicos. La importación incluye códigos "
|
||||
"promocionales ya existentes {code}."
|
||||
|
||||
#: pretix/base/services/modelimport.py
|
||||
msgid ""
|
||||
"Vouchers could not be imported, probably due to a voucher code already being "
|
||||
"in use."
|
||||
msgstr ""
|
||||
"No se han podido importar los vales, probablemente porque ya se estaba "
|
||||
"utilizando un código de vale."
|
||||
|
||||
#: pretix/base/services/orders.py
|
||||
msgid ""
|
||||
@@ -9622,9 +9630,10 @@ msgstr ""
|
||||
"nuevo."
|
||||
|
||||
#: pretix/base/services/shredder.py
|
||||
#, python-format
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Data shredding completed"
|
||||
msgid "Data shredding completed for %(event)s"
|
||||
msgstr "Se ha completado la destrucción de datos de %(event)s"
|
||||
msgstr "Destrucción de datos completada"
|
||||
|
||||
#: pretix/base/services/stats.py
|
||||
msgid "Uncategorized"
|
||||
@@ -11452,19 +11461,6 @@ msgstr ""
|
||||
"Lo mostraremos públicamente para que los asistentes puedan ponerse en "
|
||||
"contacto con usted."
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "Contact"
|
||||
msgid "Contact URL"
|
||||
msgstr "Contacto"
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid ""
|
||||
"If you set this, the footer contact link will point here instead of using "
|
||||
"the email address above. Please note that you still need to add a contact "
|
||||
"email address that will be shared with all emails you send."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid "Imprint URL"
|
||||
msgstr "Pie de imprenta URL"
|
||||
@@ -13328,18 +13324,30 @@ msgstr ""
|
||||
"póngase en contacto con nosotros."
|
||||
|
||||
#: pretix/base/templates/pretixbase/email/cancel_confirm.txt
|
||||
#, fuzzy
|
||||
#| msgid ""
|
||||
#| "You have requested us to cancel an event which includes a larger bulk-"
|
||||
#| "refund:"
|
||||
msgid "You requested to cancel an event that involves a large bulk refund:"
|
||||
msgstr ""
|
||||
"Has solicitado cancelar un evento que conlleva un reembolso a gran escala:"
|
||||
"Nos ha solicitado cancelar un evento que incluye un reembolso masivo de "
|
||||
"mayor importe:"
|
||||
|
||||
#: pretix/base/templates/pretixbase/email/cancel_confirm.txt
|
||||
#, fuzzy
|
||||
#| msgid "Estimated refund amount"
|
||||
msgid "Estimated refund"
|
||||
msgstr "Reembolso estimado"
|
||||
msgstr "Importe estimado del reembolso"
|
||||
|
||||
#: pretix/base/templates/pretixbase/email/cancel_confirm.txt
|
||||
#, fuzzy
|
||||
#| msgid ""
|
||||
#| "Please confirm that you want to proceed by coping the following "
|
||||
#| "confirmation code into the cancellation form:"
|
||||
msgid "To confirm, paste the following code into the cancellation form:"
|
||||
msgstr ""
|
||||
"Para confirmarlo, pegue el siguiente código en el formulario de cancelación:"
|
||||
"Confirme que desea continuar copiando el siguiente código de confirmación en "
|
||||
"el formulario de cancelación:"
|
||||
|
||||
#: pretix/base/templates/pretixbase/email/cancel_confirm.txt
|
||||
#, python-format
|
||||
@@ -13347,8 +13355,6 @@ msgid ""
|
||||
"Don't share this code with anyone. The %(instance)s team will never ask you "
|
||||
"for it."
|
||||
msgstr ""
|
||||
"No comparta este código con nadie. El equipo de %(instance)s nunca se lo "
|
||||
"pedirá."
|
||||
|
||||
#: pretix/base/templates/pretixbase/email/cancel_confirm.txt
|
||||
#: pretix/base/templates/pretixbase/email/export_failed.txt
|
||||
@@ -13357,8 +13363,6 @@ msgid ""
|
||||
"Thanks, \n"
|
||||
"The %(instance)s Team"
|
||||
msgstr ""
|
||||
"Gracias, \n"
|
||||
"El equipo de %(instance)s"
|
||||
|
||||
#: pretix/base/templates/pretixbase/email/email_footer.html
|
||||
#, python-format
|
||||
@@ -13366,8 +13370,10 @@ msgid "powered by <a %(a_attr)s>pretix</a>"
|
||||
msgstr "creado por <a %(a_attr)s>pretix</a>"
|
||||
|
||||
#: pretix/base/templates/pretixbase/email/export_failed.txt
|
||||
#, fuzzy
|
||||
#| msgid "Your export failed."
|
||||
msgid "Your scheduled export failed."
|
||||
msgstr "La exportación programada ha fallado."
|
||||
msgstr "Su exportación falló."
|
||||
|
||||
#: pretix/base/templates/pretixbase/email/export_failed.txt
|
||||
#: pretix/control/templates/pretixcontrol/event/tax_edit.html
|
||||
@@ -13375,29 +13381,39 @@ msgid "Reason"
|
||||
msgstr "Razón"
|
||||
|
||||
#: pretix/base/templates/pretixbase/email/export_failed.txt
|
||||
#, fuzzy
|
||||
#| msgid "If your export fails five times in a row, it will no longer be sent."
|
||||
msgid "If an export fails five times in a row, we'll stop sending it."
|
||||
msgstr "Si una exportación falla cinco veces seguidas, dejaremos de enviarla."
|
||||
msgstr "Si su exportación falla cinco veces seguidas, ya no se enviará."
|
||||
|
||||
#: pretix/base/templates/pretixbase/email/export_failed.txt
|
||||
#, fuzzy
|
||||
#| msgid "You can request to cancel this order."
|
||||
msgid "You can adjust or remove this export here:"
|
||||
msgstr "Puede ajustar o eliminar esta exportación aquí:"
|
||||
msgstr "Puede solicitar cancelar este pedido."
|
||||
|
||||
#: pretix/base/templates/pretixbase/email/notification.html
|
||||
#: pretix/base/templates/pretixbase/email/notification.txt
|
||||
#, fuzzy
|
||||
#| msgid "You receive these emails based on your notification settings."
|
||||
msgid "You're receiving this email based on your notification settings."
|
||||
msgstr ""
|
||||
"Está recibiendo este correo electrónico según su configuración de "
|
||||
"notificaciones."
|
||||
"Recibirá estos mensajes de correo electrónico en función de su configuración "
|
||||
"de notificación."
|
||||
|
||||
#: pretix/base/templates/pretixbase/email/notification.html
|
||||
#: pretix/base/templates/pretixbase/email/notification.txt
|
||||
#, fuzzy
|
||||
#| msgid "Change settings"
|
||||
msgid "Manage settings"
|
||||
msgstr "Gestionar la configuración"
|
||||
msgstr "Modificar la configuración"
|
||||
|
||||
#: pretix/base/templates/pretixbase/email/notification.html
|
||||
#: pretix/base/templates/pretixbase/email/notification.txt
|
||||
#, fuzzy
|
||||
#| msgid "Disable notifications"
|
||||
msgid "Disable all notifications"
|
||||
msgstr "Desactivar todas las notificaciones"
|
||||
msgstr "Desactivar notificaciones"
|
||||
|
||||
#: pretix/base/templates/pretixbase/email/order_details.html
|
||||
msgid ""
|
||||
@@ -13455,7 +13471,25 @@ msgid "Contact"
|
||||
msgstr "Contacto"
|
||||
|
||||
#: pretix/base/templates/pretixbase/email/shred_completed.txt
|
||||
#, python-format
|
||||
#, fuzzy, python-format
|
||||
#| msgid ""
|
||||
#| "Hello,\n"
|
||||
#| "\n"
|
||||
#| "we hereby confirm that the following data shredding job has been "
|
||||
#| "completed:\n"
|
||||
#| "\n"
|
||||
#| "Organizer: %(organizer)s\n"
|
||||
#| "\n"
|
||||
#| "Event: %(event)s\n"
|
||||
#| "\n"
|
||||
#| "Data selection: %(shredders)s\n"
|
||||
#| "\n"
|
||||
#| "Start time: %(start_time)s (new data added after this time might not have "
|
||||
#| "been deleted)\n"
|
||||
#| "\n"
|
||||
#| "Best regards,\n"
|
||||
#| "\n"
|
||||
#| "Your %(instance)s team\n"
|
||||
msgid ""
|
||||
"Hello,\n"
|
||||
"\n"
|
||||
@@ -13473,17 +13507,20 @@ msgid ""
|
||||
msgstr ""
|
||||
"Hola,\n"
|
||||
"\n"
|
||||
"Se ha completado la siguiente tarea de eliminación de datos:\n"
|
||||
"Por la presente confirmamos que se ha completado el siguiente trabajo de "
|
||||
"destrucción de datos:\n"
|
||||
"\n"
|
||||
"- Organizador: %(organizer)s\n"
|
||||
"- Evento: %(event)s\n"
|
||||
"- Selección de datos: %(shredders)s\n"
|
||||
"- Hora de inicio: %(start_time)s\n"
|
||||
"Organizador: %(organizer)s\n"
|
||||
"\n"
|
||||
"Es posible que los datos añadidos al evento después de la hora de inicio no "
|
||||
"se hayan eliminado.\n"
|
||||
"Evento: %(event)s\n"
|
||||
"\n"
|
||||
"Selección de datos: %(shredders)s\n"
|
||||
"\n"
|
||||
"Hora de inicio: %(start_time)s (es posible que los nuevos datos agregados "
|
||||
"después de esta hora no se hayan eliminado)\n"
|
||||
"\n"
|
||||
"Atentamente,\n"
|
||||
"\n"
|
||||
"Gracias, \n"
|
||||
"El equipo de %(instance)s\n"
|
||||
|
||||
#: pretix/base/templates/pretixbase/forms/widgets/checkbox_sales_channel_option.html
|
||||
@@ -13521,15 +13558,11 @@ msgstr "Por favor, continúe en una nueva pestaña"
|
||||
#: pretix/base/templates/pretixbase/framebreak.html
|
||||
msgid "For security reasons, the following step is only possible in a new tab."
|
||||
msgstr ""
|
||||
"Por motivos de seguridad, el siguiente paso solo se puede realizar en una "
|
||||
"nueva pestaña."
|
||||
|
||||
#: pretix/base/templates/pretixbase/framebreak.html
|
||||
msgid ""
|
||||
"If the new tab did not open automatically, please click the following button:"
|
||||
msgstr ""
|
||||
"Si la nueva pestaña no se ha abierto automáticamente, haga clic en el "
|
||||
"siguiente botón:"
|
||||
|
||||
#: pretix/base/templates/pretixbase/framebreak.html
|
||||
#: pretix/presale/templates/pretixpresale/event/cookies.html
|
||||
@@ -19914,7 +19947,21 @@ msgid "Add property"
|
||||
msgstr "Añadir propiedad"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/email/confirmation_code.txt
|
||||
#, python-format
|
||||
#, fuzzy, python-format
|
||||
#| msgid ""
|
||||
#| "Hello,\n"
|
||||
#| "\n"
|
||||
#| "%(reason)s\n"
|
||||
#| "\n"
|
||||
#| " %(code)s\n"
|
||||
#| "\n"
|
||||
#| "Please do never give this code to another person. Our support team will "
|
||||
#| "never ask for this code.\n"
|
||||
#| "\n"
|
||||
#| "If this code was not requested by you, please contact us immediately.\n"
|
||||
#| "\n"
|
||||
#| "Best regards,\n"
|
||||
#| "Your %(instance)s team\n"
|
||||
msgid ""
|
||||
"Hello,\n"
|
||||
"\n"
|
||||
@@ -19934,15 +19981,15 @@ msgstr ""
|
||||
"\n"
|
||||
"%(reason)s\n"
|
||||
"\n"
|
||||
" %(code)s\n"
|
||||
" \t%(code)s\n"
|
||||
"\n"
|
||||
"No comparta este código con nadie. El equipo de %(instance)s nunca se lo "
|
||||
"pedirá.\n"
|
||||
"Por favor, nunca compartas este código con otra persona. Nuestro equipo de "
|
||||
"asistencia nunca te pedirá este código.\n"
|
||||
"\n"
|
||||
"Si no ha solicitado este código, póngase en contacto con nosotros "
|
||||
"inmediatamente.\n"
|
||||
"Si no fuiste tú quien solicitó este código, contacta con nosotros de "
|
||||
"inmediato.\n"
|
||||
"\n"
|
||||
"Gracias, \n"
|
||||
"Atentamente,\n"
|
||||
"El equipo de %(instance)s\n"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/email/email_setup.txt
|
||||
@@ -19950,21 +19997,19 @@ msgstr ""
|
||||
#| msgid ""
|
||||
#| "Hello,\n"
|
||||
#| "\n"
|
||||
#| "Someone requested to use %(address)s as a sender address on %(instance)s. "
|
||||
#| "Once verified, emails sent from %(instance)s can show this address as the "
|
||||
#| "sender.\n"
|
||||
#| "someone requested to use %(address)s as a sender address on "
|
||||
#| "%(instance)s.\n"
|
||||
#| "This will allow them to send emails that are shown to originate from this "
|
||||
#| "email address.\n"
|
||||
#| "If that was you, please enter the following confirmation code:\n"
|
||||
#| "\n"
|
||||
#| "If this was you, enter the following code in the setup form:\n"
|
||||
#| "%(code)s\n"
|
||||
#| "\n"
|
||||
#| " %(code)s\n"
|
||||
#| "If this was not requested by you, you can safely ignore this email.\n"
|
||||
#| "\n"
|
||||
#| "Don't share this code with anyone. The %(instance)s team will never ask "
|
||||
#| "you for it.\n"
|
||||
#| "Best regards, \n"
|
||||
#| "\n"
|
||||
#| "If you didn't request this, you can safely ignore this email.\n"
|
||||
#| "\n"
|
||||
#| "Thanks, \n"
|
||||
#| "The %(instance)s Team\n"
|
||||
#| "Your %(instance)s team\n"
|
||||
msgid ""
|
||||
"Hello,\n"
|
||||
"\n"
|
||||
@@ -19976,9 +20021,8 @@ msgid ""
|
||||
"\n"
|
||||
" %(code)s\n"
|
||||
"\n"
|
||||
"Don't share this code with anyone unless you want to authorize them to use "
|
||||
"this address for this purpose. The %(instance)s team will never ask you for "
|
||||
"it.\n"
|
||||
"Don't share this code with anyone. The %(instance)s team will never ask you "
|
||||
"for it.\n"
|
||||
"\n"
|
||||
"If you didn't request this, you can safely ignore this email.\n"
|
||||
"\n"
|
||||
@@ -19987,23 +20031,20 @@ msgid ""
|
||||
msgstr ""
|
||||
"Hola,\n"
|
||||
"\n"
|
||||
"Alguien ha solicitado utilizar %(address)s como dirección de remitente en "
|
||||
"%(instance)s. Una vez verificado, los correos electrónicos enviados desde "
|
||||
"%(instance)s podrán mostrar esta dirección como remitente.\n"
|
||||
"alguien solicitó usar %(address)s como dirección de remitente en "
|
||||
"%(instance)s.\n"
|
||||
"Esto les permitirá enviar correos electrónicos que se muestren originados en "
|
||||
"esta dirección de correo electrónico.\n"
|
||||
"Si ese era usted, ingrese el siguiente código de confirmación:\n"
|
||||
"\n"
|
||||
"Si has sido tú, introduce el siguiente código en el formulario de "
|
||||
"configuración:\n"
|
||||
"%(code)s\n"
|
||||
"\n"
|
||||
" %(code)s\n"
|
||||
"Si usted no lo solicitó, puede ignorar este correo electrónico con "
|
||||
"seguridad.\n"
|
||||
"\n"
|
||||
"No compartas este código con nadie. El equipo de %(instance)s nunca te lo "
|
||||
"pedirá.\n"
|
||||
"Atentamente,\n"
|
||||
"\n"
|
||||
"Si no has solicitado esto, puedes ignorar este correo electrónico sin ningún "
|
||||
"problema.\n"
|
||||
"\n"
|
||||
"Gracias, \n"
|
||||
"El equipo de %(instance)s\n"
|
||||
"Tu equipo de %(instance)s\n"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/email/forgot.txt
|
||||
#, python-format
|
||||
@@ -20021,22 +20062,27 @@ msgid ""
|
||||
"Thanks, \n"
|
||||
"The %(instance)s Team\n"
|
||||
msgstr ""
|
||||
"Hola,\n"
|
||||
"\n"
|
||||
"Hemos recibido una solicitud para restablecer la contraseña de su cuenta de "
|
||||
"%(instance)s. Para elegir una nueva contraseña, siga el enlace que aparece a "
|
||||
"continuación:\n"
|
||||
"\n"
|
||||
"%(url)s\n"
|
||||
"\n"
|
||||
"Si no ha solicitado este restablecimiento, puede ignorar este correo "
|
||||
"electrónico sin ningún problema: su contraseña no cambiará.\n"
|
||||
"\n"
|
||||
"Gracias, \n"
|
||||
"El equipo de %(instance)s\n"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/email/invitation.txt
|
||||
#, python-format
|
||||
#, fuzzy, python-format
|
||||
#| msgid ""
|
||||
#| "Hello,\n"
|
||||
#| "\n"
|
||||
#| "you have been invited to a team on %(instance)s, a platform to perform "
|
||||
#| "event\n"
|
||||
#| "ticket sales.\n"
|
||||
#| "\n"
|
||||
#| "Organizer: %(organizer)s\n"
|
||||
#| "Team: %(team)s\n"
|
||||
#| "\n"
|
||||
#| "If you want to join that team, just click on the following link:\n"
|
||||
#| "%(url)s\n"
|
||||
#| "\n"
|
||||
#| "If you do not want to join, you can safely ignore or delete this email.\n"
|
||||
#| "\n"
|
||||
#| "Best regards, \n"
|
||||
#| "\n"
|
||||
#| "Your %(instance)s team\n"
|
||||
msgid ""
|
||||
"Hello,\n"
|
||||
"\n"
|
||||
@@ -20055,22 +20101,22 @@ msgid ""
|
||||
"Thanks, \n"
|
||||
"The %(instance)s Team\n"
|
||||
msgstr ""
|
||||
"Hola,\n"
|
||||
"Hola, \n"
|
||||
"\n"
|
||||
"Ha sido invitado a unirse a un equipo en %(instance)s, una plataforma de "
|
||||
"venta de entradas para eventos.\n"
|
||||
"usted ha sido invitado a un equipo de %(instance)s, una plataforma para "
|
||||
"realizar \n"
|
||||
"ventas de entradas de eventos. \n"
|
||||
"\n"
|
||||
"- Organizador: %(organizer)s\n"
|
||||
"- Equipo: %(team)s\n"
|
||||
"Organizador: %(organizer)s\n"
|
||||
"Team : %(team)s \n"
|
||||
"\n"
|
||||
"Para aceptar, siga el enlace que aparece a continuación:\n"
|
||||
"Si quieres formar parte de este equipo, haz clic en el siguiente enlace :\n"
|
||||
"%(url)s \n"
|
||||
"\n"
|
||||
"%(url)s\n"
|
||||
"Si no quieres unirte, puedes ignorar o eliminar este correo electrónico. \n"
|
||||
"\n"
|
||||
"Si no desea unirse, puede ignorar este correo electrónico sin ningún "
|
||||
"problema.\n"
|
||||
"Saludos cordiales, \n"
|
||||
"\n"
|
||||
"Gracias, \n"
|
||||
"El equipo de %(instance)s\n"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/email/login_notice.txt
|
||||
@@ -20080,24 +20126,21 @@ msgid ""
|
||||
"\n"
|
||||
"We noticed a new sign-in to your %(instance)s account:\n"
|
||||
msgstr ""
|
||||
"Hola,\n"
|
||||
"\n"
|
||||
"Hemos detectado un nuevo inicio de sesión en su cuenta de %(instance)s:\n"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/email/login_notice.txt
|
||||
msgid "Browser"
|
||||
msgstr "Navegador"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/email/login_notice.txt
|
||||
msgid "Operating system"
|
||||
msgstr "Sistema operativo"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/email/login_notice.txt
|
||||
#, python-format
|
||||
msgid ""
|
||||
"If it was you, no action is needed.\n"
|
||||
"\n"
|
||||
"If you don't recognize this sign-in, please change your password "
|
||||
"If you don't recognise this sign-in, please change your password "
|
||||
"immediately:\n"
|
||||
"\n"
|
||||
"%(url)s\n"
|
||||
@@ -20105,17 +20148,26 @@ msgid ""
|
||||
"Thanks, \n"
|
||||
"The %(instance)s Team\n"
|
||||
msgstr ""
|
||||
"Si no ha sido usted, no es necesario que haga nada.\n"
|
||||
"\n"
|
||||
"Si no reconoce este inicio de sesión, cambie su contraseña inmediatamente:\n"
|
||||
"\n"
|
||||
"%(url)s\n"
|
||||
"\n"
|
||||
"Gracias, \n"
|
||||
"El equipo de %(instance)s\n"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/email/security_notice.txt
|
||||
#, python-format
|
||||
#, fuzzy, python-format
|
||||
#| msgid ""
|
||||
#| "Hello,\n"
|
||||
#| "\n"
|
||||
#| "this is to inform you that the account information of your %(instance)s "
|
||||
#| "account has been\n"
|
||||
#| "changed. In particular, the following changes have been performed:\n"
|
||||
#| "\n"
|
||||
#| "%(messages)s\n"
|
||||
#| "\n"
|
||||
#| "If this change was not performed by you, please contact us immediately.\n"
|
||||
#| "\n"
|
||||
#| "You can review and change your account settings here:\n"
|
||||
#| "\n"
|
||||
#| "%(url)s\n"
|
||||
#| "\n"
|
||||
#| "Best regards, \n"
|
||||
#| "Your %(instance)s team\n"
|
||||
msgid ""
|
||||
"Hello,\n"
|
||||
"\n"
|
||||
@@ -20133,20 +20185,22 @@ msgid ""
|
||||
"Thanks, \n"
|
||||
"The %(instance)s Team\n"
|
||||
msgstr ""
|
||||
"Hola,\n"
|
||||
"Hola, \n"
|
||||
"\n"
|
||||
"Se han realizado los siguientes cambios en su cuenta de %(instance)s:\n"
|
||||
"esto es para informarle que la información de su cuenta del equipo de "
|
||||
"%(instance)s ha sido cambiada. \n"
|
||||
"En particular, se han realizado las siguientes modificaciones: \n"
|
||||
"\n"
|
||||
"%(messages)s\n"
|
||||
"\n"
|
||||
"Si usted no ha realizado estos cambios, póngase en contacto con el equipo de "
|
||||
"asistencia de %(instance)s inmediatamente.\n"
|
||||
"Si este cambio no fue realizado por usted, por favor contáctenos "
|
||||
"inmediatamente.\n"
|
||||
"\n"
|
||||
"Puede consultar la configuración de su cuenta aquí:\n"
|
||||
"Puede revisar y cambiar la configuración de su cuenta aquí: \n"
|
||||
"\n"
|
||||
"%(url)s\n"
|
||||
"%(url)s \n"
|
||||
"\n"
|
||||
"Gracias, \n"
|
||||
"Saludos cordiales, \n"
|
||||
"El equipo de %(instance)s\n"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/email_setup.html
|
||||
@@ -28773,7 +28827,7 @@ msgstr "El código de verificación es incorrecto, por favor inténtelo de nuevo
|
||||
#: pretix/control/views/mailsetup.py
|
||||
#, python-format
|
||||
msgid "Confirm %(address)s as a sender address"
|
||||
msgstr "Confirmar %(address)s como dirección de remitente"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/views/mailsetup.py
|
||||
#, python-format
|
||||
@@ -29994,8 +30048,10 @@ msgstr ""
|
||||
"Abra BezahlCode en su aplicación bancaria para iniciar el proceso de pago."
|
||||
|
||||
#: pretix/helpers/security.py
|
||||
#, fuzzy
|
||||
#| msgid "Sign in to your account at %(org)s"
|
||||
msgid "New sign-in to your account"
|
||||
msgstr "Nuevo inicio de sesión en su cuenta"
|
||||
msgstr "Inicie sesión en su cuenta en %(org)s"
|
||||
|
||||
#: pretix/multidomain/models.py
|
||||
msgid "Organizer domain"
|
||||
@@ -36114,6 +36170,8 @@ msgstr[0] "%(count)s elemento"
|
||||
msgstr[1] "%(count)s elementos"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/fragment_calendar.html
|
||||
#, fuzzy
|
||||
#| msgid "No event"
|
||||
msgid "No events"
|
||||
msgstr "No hay eventos"
|
||||
|
||||
@@ -36457,8 +36515,10 @@ msgid "Create account"
|
||||
msgstr "Crear una cuenta"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/organizers/customer_login_interrupted_message.html
|
||||
#, fuzzy
|
||||
#| msgid "The invoice could not be generated."
|
||||
msgid "Login could not be completed"
|
||||
msgstr "No se ha podido realizar el inicio de sesión"
|
||||
msgstr "No se ha podido generar la factura."
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/organizers/customer_login_interrupted_message.html
|
||||
msgid ""
|
||||
@@ -36467,56 +36527,43 @@ msgid ""
|
||||
"process.\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"\n"
|
||||
" No hemos podido completar el inicio de sesión porque se ha producido "
|
||||
"una interrupción en el proceso.\n"
|
||||
" "
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/organizers/customer_login_interrupted_message.html
|
||||
msgid "Possible reasons for this:"
|
||||
msgstr "Posibles razones para ello:"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/organizers/customer_login_interrupted_message.html
|
||||
msgid ""
|
||||
"You started logging in from a link opened inside an app (such as Instagram "
|
||||
"or an email app), and then continued the login in your main browser."
|
||||
msgstr ""
|
||||
"Ha iniciado sesión a través de un enlace abierto dentro de una aplicación "
|
||||
"(como Instagram o una aplicación de correo electrónico) y, a continuación, "
|
||||
"ha continuado el proceso de inicio de sesión en su navegador principal."
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/organizers/customer_login_interrupted_message.html
|
||||
msgid "You refreshed the page or used the back button during login."
|
||||
msgstr ""
|
||||
"Ha actualizado la página o ha utilizado el botón «Atrás» durante el proceso "
|
||||
"de inicio de sesión."
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/organizers/customer_login_interrupted_message.html
|
||||
msgid "The site was opened in more than one tab or window at the same time."
|
||||
msgstr "La página estaba abierta en más de una pestaña o ventana a la vez."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/organizers/customer_login_interrupted_message.html
|
||||
msgid ""
|
||||
"There was a long delay between starting and completing the login process."
|
||||
msgstr ""
|
||||
"Hubo un tiempo importante entre el inicio y la finalización del proceso de "
|
||||
"inicio de sesión."
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/organizers/customer_login_interrupted_message.html
|
||||
msgid "How to fix this:"
|
||||
msgstr "Cómo solucionarlo:"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/organizers/customer_login_interrupted_message.html
|
||||
msgid "Close this page."
|
||||
msgstr "Cerrar esta página."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/organizers/customer_login_interrupted_message.html
|
||||
msgid ""
|
||||
"Open this website again directly in your main browser (for example Safari or "
|
||||
"Chrome)."
|
||||
msgstr ""
|
||||
"Vuelva a abrir esta página web directamente en su navegador principal (por "
|
||||
"ejemplo, Safari o Chrome)."
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/organizers/customer_login_interrupted_message.html
|
||||
msgid ""
|
||||
@@ -36524,9 +36571,6 @@ msgid ""
|
||||
"browser window, without refreshing the page, opening new tabs, or switching "
|
||||
"apps part-way through."
|
||||
msgstr ""
|
||||
"Vuelva a iniciar el proceso de pago o de inicio de sesión y complételo en la "
|
||||
"misma ventana del navegador, sin actualizar la página, sin abrir nuevas "
|
||||
"pestañas ni cambiar de aplicación mientras lo realiza."
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/organizers/customer_login_interrupted_message.html
|
||||
msgid ""
|
||||
@@ -36534,10 +36578,6 @@ msgid ""
|
||||
"before retrying can help. As a last step, try using a different browser or "
|
||||
"another device (for example, a desktop or laptop computer)."
|
||||
msgstr ""
|
||||
"Si el problema persiste, puede ser útil cerrar todas las ventanas del "
|
||||
"navegador y borrar las cookies antes de volver a intentarlo. Como último "
|
||||
"recurso, prueba a utilizar otro navegador u otro dispositivo (por ejemplo, "
|
||||
"un ordenador de sobremesa o portátil)."
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/organizers/customer_membership.html
|
||||
msgid "Your membership"
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-07 09:30+0000\n"
|
||||
"POT-Creation-Date: 2026-07-06 15:48+0000\n"
|
||||
"PO-Revision-Date: 2025-07-18 01:00+0000\n"
|
||||
"Last-Translator: Zona Vip <contacto@zonavip.mx>\n"
|
||||
"Language-Team: Spanish (Latin America) <https://translate.pretix.eu/projects/"
|
||||
@@ -10382,17 +10382,6 @@ msgstr ""
|
||||
msgid "We'll show this publicly to allow attendees to contact you."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid "Contact URL"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid ""
|
||||
"If you set this, the footer contact link will point here instead of using "
|
||||
"the email address above. Please note that you still need to add a contact "
|
||||
"email address that will be shared with all emails you send."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid "Imprint URL"
|
||||
msgstr ""
|
||||
@@ -17773,9 +17762,8 @@ msgid ""
|
||||
"\n"
|
||||
" %(code)s\n"
|
||||
"\n"
|
||||
"Don't share this code with anyone unless you want to authorize them to use "
|
||||
"this address for this purpose. The %(instance)s team will never ask you for "
|
||||
"it.\n"
|
||||
"Don't share this code with anyone. The %(instance)s team will never ask you "
|
||||
"for it.\n"
|
||||
"\n"
|
||||
"If you didn't request this, you can safely ignore this email.\n"
|
||||
"\n"
|
||||
@@ -17842,7 +17830,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"If it was you, no action is needed.\n"
|
||||
"\n"
|
||||
"If you don't recognize this sign-in, please change your password "
|
||||
"If you don't recognise this sign-in, please change your password "
|
||||
"immediately:\n"
|
||||
"\n"
|
||||
"%(url)s\n"
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-07 09:30+0000\n"
|
||||
"POT-Creation-Date: 2026-07-06 15:48+0000\n"
|
||||
"PO-Revision-Date: 2025-12-24 00:00+0000\n"
|
||||
"Last-Translator: Hijiri Umemoto <hijiri@umemoto.org>\n"
|
||||
"Language-Team: Estonian <https://translate.pretix.eu/projects/pretix/pretix/"
|
||||
@@ -10197,17 +10197,6 @@ msgstr ""
|
||||
msgid "We'll show this publicly to allow attendees to contact you."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid "Contact URL"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid ""
|
||||
"If you set this, the footer contact link will point here instead of using "
|
||||
"the email address above. Please note that you still need to add a contact "
|
||||
"email address that will be shared with all emails you send."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid "Imprint URL"
|
||||
msgstr ""
|
||||
@@ -17559,9 +17548,8 @@ msgid ""
|
||||
"\n"
|
||||
" %(code)s\n"
|
||||
"\n"
|
||||
"Don't share this code with anyone unless you want to authorize them to use "
|
||||
"this address for this purpose. The %(instance)s team will never ask you for "
|
||||
"it.\n"
|
||||
"Don't share this code with anyone. The %(instance)s team will never ask you "
|
||||
"for it.\n"
|
||||
"\n"
|
||||
"If you didn't request this, you can safely ignore this email.\n"
|
||||
"\n"
|
||||
@@ -17628,7 +17616,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"If it was you, no action is needed.\n"
|
||||
"\n"
|
||||
"If you don't recognize this sign-in, please change your password "
|
||||
"If you don't recognise this sign-in, please change your password "
|
||||
"immediately:\n"
|
||||
"\n"
|
||||
"%(url)s\n"
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-07 09:30+0000\n"
|
||||
"POT-Creation-Date: 2026-07-06 15:48+0000\n"
|
||||
"PO-Revision-Date: 2024-09-23 18:00+0000\n"
|
||||
"Last-Translator: Albizuri <oier@puntu.eus>\n"
|
||||
"Language-Team: Basque <https://translate.pretix.eu/projects/pretix/pretix/eu/"
|
||||
@@ -11536,19 +11536,6 @@ msgstr ""
|
||||
"Publikoki erakutsiko dugu, bertaratzen direnak zurekin harremanetan jar "
|
||||
"daitezen."
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "Contact:"
|
||||
msgid "Contact URL"
|
||||
msgstr "Kontaktua:"
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid ""
|
||||
"If you set this, the footer contact link will point here instead of using "
|
||||
"the email address above. Please note that you still need to add a contact "
|
||||
"email address that will be shared with all emails you send."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid "Imprint URL"
|
||||
msgstr "Inprimatze-oinaren URLa"
|
||||
@@ -19631,9 +19618,8 @@ msgid ""
|
||||
"\n"
|
||||
" %(code)s\n"
|
||||
"\n"
|
||||
"Don't share this code with anyone unless you want to authorize them to use "
|
||||
"this address for this purpose. The %(instance)s team will never ask you for "
|
||||
"it.\n"
|
||||
"Don't share this code with anyone. The %(instance)s team will never ask you "
|
||||
"for it.\n"
|
||||
"\n"
|
||||
"If you didn't request this, you can safely ignore this email.\n"
|
||||
"\n"
|
||||
@@ -19700,7 +19686,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"If it was you, no action is needed.\n"
|
||||
"\n"
|
||||
"If you don't recognize this sign-in, please change your password "
|
||||
"If you don't recognise this sign-in, please change your password "
|
||||
"immediately:\n"
|
||||
"\n"
|
||||
"%(url)s\n"
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-07 09:30+0000\n"
|
||||
"POT-Creation-Date: 2026-07-06 15:48+0000\n"
|
||||
"PO-Revision-Date: 2025-10-04 10:10+0000\n"
|
||||
"Last-Translator: Sebastian Bożek <sebastian@log-mar.pl>\n"
|
||||
"Language-Team: Finnish <https://translate.pretix.eu/projects/pretix/pretix/"
|
||||
@@ -11450,19 +11450,6 @@ msgid "We'll show this publicly to allow attendees to contact you."
|
||||
msgstr ""
|
||||
"Näytämme tämän julkisesti, jotta osallistujat voivat ottaa sinuun yhteyttä."
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "Contact:"
|
||||
msgid "Contact URL"
|
||||
msgstr "Kontakti:"
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid ""
|
||||
"If you set this, the footer contact link will point here instead of using "
|
||||
"the email address above. Please note that you still need to add a contact "
|
||||
"email address that will be shared with all emails you send."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid "Imprint URL"
|
||||
msgstr "URL jälki"
|
||||
@@ -19560,9 +19547,8 @@ msgid ""
|
||||
"\n"
|
||||
" %(code)s\n"
|
||||
"\n"
|
||||
"Don't share this code with anyone unless you want to authorize them to use "
|
||||
"this address for this purpose. The %(instance)s team will never ask you for "
|
||||
"it.\n"
|
||||
"Don't share this code with anyone. The %(instance)s team will never ask you "
|
||||
"for it.\n"
|
||||
"\n"
|
||||
"If you didn't request this, you can safely ignore this email.\n"
|
||||
"\n"
|
||||
@@ -19629,7 +19615,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"If it was you, no action is needed.\n"
|
||||
"\n"
|
||||
"If you don't recognize this sign-in, please change your password "
|
||||
"If you don't recognise this sign-in, please change your password "
|
||||
"immediately:\n"
|
||||
"\n"
|
||||
"%(url)s\n"
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-07 09:30+0000\n"
|
||||
"POT-Creation-Date: 2026-07-06 15:48+0000\n"
|
||||
"PO-Revision-Date: 2025-02-13 22:00+0000\n"
|
||||
"Last-Translator: Andrias Magnussen <andrias.magnussen@om.org>\n"
|
||||
"Language-Team: Faroese <https://translate.pretix.eu/projects/pretix/pretix/"
|
||||
@@ -10265,17 +10265,6 @@ msgstr ""
|
||||
msgid "We'll show this publicly to allow attendees to contact you."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid "Contact URL"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid ""
|
||||
"If you set this, the footer contact link will point here instead of using "
|
||||
"the email address above. Please note that you still need to add a contact "
|
||||
"email address that will be shared with all emails you send."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid "Imprint URL"
|
||||
msgstr ""
|
||||
@@ -17643,9 +17632,8 @@ msgid ""
|
||||
"\n"
|
||||
" %(code)s\n"
|
||||
"\n"
|
||||
"Don't share this code with anyone unless you want to authorize them to use "
|
||||
"this address for this purpose. The %(instance)s team will never ask you for "
|
||||
"it.\n"
|
||||
"Don't share this code with anyone. The %(instance)s team will never ask you "
|
||||
"for it.\n"
|
||||
"\n"
|
||||
"If you didn't request this, you can safely ignore this email.\n"
|
||||
"\n"
|
||||
@@ -17712,7 +17700,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"If it was you, no action is needed.\n"
|
||||
"\n"
|
||||
"If you don't recognize this sign-in, please change your password "
|
||||
"If you don't recognise this sign-in, please change your password "
|
||||
"immediately:\n"
|
||||
"\n"
|
||||
"%(url)s\n"
|
||||
|
||||
@@ -3,8 +3,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: 1\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-07 09:30+0000\n"
|
||||
"PO-Revision-Date: 2026-07-07 09:22+0000\n"
|
||||
"POT-Creation-Date: 2026-07-06 15:48+0000\n"
|
||||
"PO-Revision-Date: 2026-06-29 17:00+0000\n"
|
||||
"Last-Translator: CVZ-es <damien.bremont@casadevelazquez.org>\n"
|
||||
"Language-Team: French <https://translate.pretix.eu/projects/pretix/pretix/fr/"
|
||||
">\n"
|
||||
@@ -177,7 +177,7 @@ msgstr "Espagnol (Amérique latine)"
|
||||
|
||||
#: pretix/_base_settings.py
|
||||
msgid "Thai"
|
||||
msgstr "Thaï"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/_base_settings.py
|
||||
msgid "Turkish"
|
||||
@@ -442,7 +442,7 @@ msgstr ""
|
||||
#: pretix/api/serializers/organizer.py pretix/control/views/organizer.py
|
||||
#, python-format
|
||||
msgid "You've been invited to join %(organizer)s"
|
||||
msgstr "Vous avez été invité(e) à rejoindre %(organizer)s"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/api/serializers/organizer.py pretix/control/views/organizer.py
|
||||
msgid "This user already has been invited for this team."
|
||||
@@ -4092,33 +4092,45 @@ msgid "Users"
|
||||
msgstr "Utilisateurs"
|
||||
|
||||
#: pretix/base/models/auth.py
|
||||
#, fuzzy
|
||||
#| msgid "Changes to your account at {organizer}"
|
||||
msgid "Changes to your account"
|
||||
msgstr "Modifications apportées à votre compte"
|
||||
msgstr "Modifications apportées à votre compte {organizer}"
|
||||
|
||||
#: pretix/base/models/auth.py
|
||||
#, python-brace-format
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid ""
|
||||
#| "to confirm changing your email address from {old_email}\n"
|
||||
#| "to {new_email}, use the following code:"
|
||||
msgid ""
|
||||
"To change your email address from {old_email} to {new_email}, use the "
|
||||
"following code:"
|
||||
msgstr ""
|
||||
"Pour modifier votre adresse e-mail et passer de {old_email} à {new_email}, "
|
||||
"utilisez le code suivant :"
|
||||
"Pour confirmer le changement de votre adresse e-mail de {old_email}\n"
|
||||
"à {new_email}, utiliser le code suivant :"
|
||||
|
||||
#: pretix/base/models/auth.py
|
||||
#, python-brace-format
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid ""
|
||||
#| "to confirm changing your email address from {old_email}\n"
|
||||
#| "to {new_email}, use the following code:"
|
||||
msgid ""
|
||||
"To verify your email address {email} on {instance}, use the following code:"
|
||||
msgstr ""
|
||||
"Pour valider votre adresse e-mail {email} sur\n"
|
||||
"{instance}, utilisez le code suivant :"
|
||||
"Pour confirmer le changement de votre adresse e-mail de {old_email}\n"
|
||||
"à {new_email}, utiliser le code suivant :"
|
||||
|
||||
#: pretix/base/models/auth.py
|
||||
#, fuzzy
|
||||
#| msgid "Enter confirmation code"
|
||||
msgid "Your confirmation code"
|
||||
msgstr "Votre code de confirmation"
|
||||
msgstr "Entrez le code de confirmation"
|
||||
|
||||
#: pretix/base/models/auth.py
|
||||
#, fuzzy
|
||||
#| msgid "Reset password"
|
||||
msgid "Reset your password"
|
||||
msgstr "Réinitialiser mon mot de passe"
|
||||
msgstr "Réinitialiser le mot de passe"
|
||||
|
||||
#: pretix/base/models/checkin.py
|
||||
msgid "All products (including newly created ones)"
|
||||
@@ -8366,7 +8378,6 @@ msgstr "Événement annulé"
|
||||
#: pretix/base/services/cancelevent.py
|
||||
msgid "Confirm event cancellation and bulk refund"
|
||||
msgstr ""
|
||||
"Confirmer l'annulation de l'événement et procéder à un remboursement groupé"
|
||||
|
||||
#: pretix/base/services/cart.py pretix/base/services/modelimport.py
|
||||
#: pretix/base/services/orders.py
|
||||
@@ -8953,8 +8964,10 @@ msgid "Your export did not contain any data."
|
||||
msgstr "Votre exportation ne contenait aucune donnée."
|
||||
|
||||
#: pretix/base/services/export.py
|
||||
#, fuzzy
|
||||
#| msgid "Scheduled exports"
|
||||
msgid "Scheduled export failed"
|
||||
msgstr "Échec de l'exportation planifiée"
|
||||
msgstr "Exportations planifiées"
|
||||
|
||||
#: pretix/base/services/export.py
|
||||
msgid "Permission denied."
|
||||
@@ -9289,8 +9302,6 @@ msgstr "Un bon ne peut être créé sans code."
|
||||
msgid ""
|
||||
"Voucher codes must be unique. Code \"{code}\" already exists in this import."
|
||||
msgstr ""
|
||||
"Les codes promotionnels doivent être uniques. Le code « {code} » existe déjà "
|
||||
"dans cette importation."
|
||||
|
||||
#: pretix/base/services/modelimport.py
|
||||
#, python-brace-format
|
||||
@@ -9299,19 +9310,13 @@ msgid ""
|
||||
msgid_plural ""
|
||||
"Voucher codes must be unique. Import contains existing voucher codes {code}."
|
||||
msgstr[0] ""
|
||||
"Les codes promotionnels doivent être uniques. L'importation contient un code "
|
||||
"promotionnel existant : {code}."
|
||||
msgstr[1] ""
|
||||
"Les codes promotionnels doivent être uniques. L'importation contient des "
|
||||
"codes promotionnels existants {code}."
|
||||
|
||||
#: pretix/base/services/modelimport.py
|
||||
msgid ""
|
||||
"Vouchers could not be imported, probably due to a voucher code already being "
|
||||
"in use."
|
||||
msgstr ""
|
||||
"Les coupons n'ont pas pu être importés, probablement parce qu'un code de "
|
||||
"coupon était déjà utilisé."
|
||||
|
||||
#: pretix/base/services/orders.py
|
||||
msgid ""
|
||||
@@ -9683,9 +9688,10 @@ msgstr ""
|
||||
"réessayer."
|
||||
|
||||
#: pretix/base/services/shredder.py
|
||||
#, python-format
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Data shredding completed"
|
||||
msgid "Data shredding completed for %(event)s"
|
||||
msgstr "La destruction des données est terminée pour %(event)s"
|
||||
msgstr "Déchiquetage de données terminé"
|
||||
|
||||
#: pretix/base/services/stats.py
|
||||
msgid "Uncategorized"
|
||||
@@ -11541,19 +11547,6 @@ msgstr ""
|
||||
"Nous le montrerons publiquement pour permettre aux participants de vous "
|
||||
"contacter."
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "Contact"
|
||||
msgid "Contact URL"
|
||||
msgstr "Contact"
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid ""
|
||||
"If you set this, the footer contact link will point here instead of using "
|
||||
"the email address above. Please note that you still need to add a contact "
|
||||
"email address that will be shared with all emails you send."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid "Imprint URL"
|
||||
msgstr "URL des Mentions légales"
|
||||
@@ -13452,19 +13445,30 @@ msgstr ""
|
||||
"nous contacter."
|
||||
|
||||
#: pretix/base/templates/pretixbase/email/cancel_confirm.txt
|
||||
#, fuzzy
|
||||
#| msgid ""
|
||||
#| "You have requested us to cancel an event which includes a larger bulk-"
|
||||
#| "refund:"
|
||||
msgid "You requested to cancel an event that involves a large bulk refund:"
|
||||
msgstr ""
|
||||
"Vous avez demandé l'annulation d'un événement donnant lieu à un "
|
||||
"remboursement groupé important :"
|
||||
"Vous nous avez demandé d'annuler un événement qui implique un remboursement "
|
||||
"groupé important :"
|
||||
|
||||
#: pretix/base/templates/pretixbase/email/cancel_confirm.txt
|
||||
#, fuzzy
|
||||
#| msgid "Estimated refund amount"
|
||||
msgid "Estimated refund"
|
||||
msgstr "Montant estimé du remboursement"
|
||||
|
||||
#: pretix/base/templates/pretixbase/email/cancel_confirm.txt
|
||||
#, fuzzy
|
||||
#| msgid ""
|
||||
#| "Please confirm that you want to proceed by coping the following "
|
||||
#| "confirmation code into the cancellation form:"
|
||||
msgid "To confirm, paste the following code into the cancellation form:"
|
||||
msgstr ""
|
||||
"Pour confirmer, collez le code suivant dans le formulaire d'annulation :"
|
||||
"Veuillez confirmer que vous souhaitez poursuivre en copiant le code de "
|
||||
"confirmation suivant dans le formulaire d'annulation :"
|
||||
|
||||
#: pretix/base/templates/pretixbase/email/cancel_confirm.txt
|
||||
#, python-format
|
||||
@@ -13472,8 +13476,6 @@ msgid ""
|
||||
"Don't share this code with anyone. The %(instance)s team will never ask you "
|
||||
"for it."
|
||||
msgstr ""
|
||||
"Ne communiquez ce code à personne. L'équipe %(instance)s ne vous le "
|
||||
"demandera jamais."
|
||||
|
||||
#: pretix/base/templates/pretixbase/email/cancel_confirm.txt
|
||||
#: pretix/base/templates/pretixbase/email/export_failed.txt
|
||||
@@ -13482,8 +13484,6 @@ msgid ""
|
||||
"Thanks, \n"
|
||||
"The %(instance)s Team"
|
||||
msgstr ""
|
||||
"Merci, \n"
|
||||
"L'équipe %(instance)s"
|
||||
|
||||
#: pretix/base/templates/pretixbase/email/email_footer.html
|
||||
#, python-format
|
||||
@@ -13491,8 +13491,10 @@ msgid "powered by <a %(a_attr)s>pretix</a>"
|
||||
msgstr "propulsé par <a %(a_attr)s>pretix</a>"
|
||||
|
||||
#: pretix/base/templates/pretixbase/email/export_failed.txt
|
||||
#, fuzzy
|
||||
#| msgid "Your export failed."
|
||||
msgid "Your scheduled export failed."
|
||||
msgstr "Votre exportation planifiée a échoué."
|
||||
msgstr "Votre exportation a échoué."
|
||||
|
||||
#: pretix/base/templates/pretixbase/email/export_failed.txt
|
||||
#: pretix/control/templates/pretixcontrol/event/tax_edit.html
|
||||
@@ -13500,28 +13502,39 @@ msgid "Reason"
|
||||
msgstr "Raison"
|
||||
|
||||
#: pretix/base/templates/pretixbase/email/export_failed.txt
|
||||
#, fuzzy
|
||||
#| msgid "If your export fails five times in a row, it will no longer be sent."
|
||||
msgid "If an export fails five times in a row, we'll stop sending it."
|
||||
msgstr ""
|
||||
"Si une exportation échoue cinq fois d'affilée, nous cesserons de l'envoyer."
|
||||
"Si votre exportation échoue cinq fois de suite, elle ne sera plus envoyée."
|
||||
|
||||
#: pretix/base/templates/pretixbase/email/export_failed.txt
|
||||
#, fuzzy
|
||||
#| msgid "You can request to cancel this order."
|
||||
msgid "You can adjust or remove this export here:"
|
||||
msgstr "Vous pouvez modifier ou supprimer cette exportation ici :"
|
||||
msgstr "Vous pouvez demander l’annulation de cette commande."
|
||||
|
||||
#: pretix/base/templates/pretixbase/email/notification.html
|
||||
#: pretix/base/templates/pretixbase/email/notification.txt
|
||||
#, fuzzy
|
||||
#| msgid "You receive these emails based on your notification settings."
|
||||
msgid "You're receiving this email based on your notification settings."
|
||||
msgstr "Vous recevez cet e-mail conformément à vos paramètres de notification."
|
||||
msgstr ""
|
||||
"Vous recevez ces e-mails en fonction de vos paramètres de notification."
|
||||
|
||||
#: pretix/base/templates/pretixbase/email/notification.html
|
||||
#: pretix/base/templates/pretixbase/email/notification.txt
|
||||
#, fuzzy
|
||||
#| msgid "Change settings"
|
||||
msgid "Manage settings"
|
||||
msgstr "Gérer les paramètres"
|
||||
msgstr "Changer les réglages"
|
||||
|
||||
#: pretix/base/templates/pretixbase/email/notification.html
|
||||
#: pretix/base/templates/pretixbase/email/notification.txt
|
||||
#, fuzzy
|
||||
#| msgid "Disable notifications"
|
||||
msgid "Disable all notifications"
|
||||
msgstr "Désactiver toutes les notifications"
|
||||
msgstr "Désactiver les notifications"
|
||||
|
||||
#: pretix/base/templates/pretixbase/email/order_details.html
|
||||
msgid ""
|
||||
@@ -13579,7 +13592,25 @@ msgid "Contact"
|
||||
msgstr "Contact"
|
||||
|
||||
#: pretix/base/templates/pretixbase/email/shred_completed.txt
|
||||
#, python-format
|
||||
#, fuzzy, python-format
|
||||
#| msgid ""
|
||||
#| "Hello,\n"
|
||||
#| "\n"
|
||||
#| "we hereby confirm that the following data shredding job has been "
|
||||
#| "completed:\n"
|
||||
#| "\n"
|
||||
#| "Organizer: %(organizer)s\n"
|
||||
#| "\n"
|
||||
#| "Event: %(event)s\n"
|
||||
#| "\n"
|
||||
#| "Data selection: %(shredders)s\n"
|
||||
#| "\n"
|
||||
#| "Start time: %(start_time)s (new data added after this time might not have "
|
||||
#| "been deleted)\n"
|
||||
#| "\n"
|
||||
#| "Best regards,\n"
|
||||
#| "\n"
|
||||
#| "Your %(instance)s team\n"
|
||||
msgid ""
|
||||
"Hello,\n"
|
||||
"\n"
|
||||
@@ -13595,20 +13626,23 @@ msgid ""
|
||||
"Thanks, \n"
|
||||
"The %(instance)s Team\n"
|
||||
msgstr ""
|
||||
"Bonjour,\n"
|
||||
"Bonjour\n"
|
||||
"\n"
|
||||
"La tâche de suppression des données suivante a été effectuée :\n"
|
||||
"Nous confirmons par la présente que le travail de déchiquetage de données "
|
||||
"suivant a été effectué :\n"
|
||||
"\n"
|
||||
"- Organisateur : %(organizer)s\n"
|
||||
"- Événement : %(event)s\n"
|
||||
"- Sélection des données : %(shredders)s\n"
|
||||
"- Heure de début : %(start_time)s\n"
|
||||
"Organisateur : %(organizer)s\n"
|
||||
"\n"
|
||||
"Il est possible que les données ajoutées à l'événement après l'heure de "
|
||||
"début n'aient pas été supprimées.\n"
|
||||
"Evénement : %(event)s\n"
|
||||
"\n"
|
||||
"Merci, \n"
|
||||
"L'équipe %(instance)s\n"
|
||||
"Sélection des données : %(shredders)s\n"
|
||||
"\n"
|
||||
"Heure de début : %(start_time)s (les nouvelles données ajoutées après cette "
|
||||
"heure n’ont peut-être pas été supprimées)\n"
|
||||
"\n"
|
||||
"Sinceres salutations\n"
|
||||
"\n"
|
||||
"Votre équipe pretix%(instance)s\n"
|
||||
|
||||
#: pretix/base/templates/pretixbase/forms/widgets/checkbox_sales_channel_option.html
|
||||
msgid ""
|
||||
@@ -13645,15 +13679,11 @@ msgstr "Veuillez continuer dans un nouvel onglet"
|
||||
#: pretix/base/templates/pretixbase/framebreak.html
|
||||
msgid "For security reasons, the following step is only possible in a new tab."
|
||||
msgstr ""
|
||||
"Pour des raisons de sécurité, l'étape suivante ne peut être effectuée que "
|
||||
"dans un nouvel onglet."
|
||||
|
||||
#: pretix/base/templates/pretixbase/framebreak.html
|
||||
msgid ""
|
||||
"If the new tab did not open automatically, please click the following button:"
|
||||
msgstr ""
|
||||
"Si le nouvel onglet ne s'est pas ouvert automatiquement, veuillez cliquer "
|
||||
"sur le bouton ci-dessous :"
|
||||
|
||||
#: pretix/base/templates/pretixbase/framebreak.html
|
||||
#: pretix/presale/templates/pretixpresale/event/cookies.html
|
||||
@@ -20063,7 +20093,21 @@ msgid "Add property"
|
||||
msgstr "Ajouter une propriété"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/email/confirmation_code.txt
|
||||
#, python-format
|
||||
#, fuzzy, python-format
|
||||
#| msgid ""
|
||||
#| "Hello,\n"
|
||||
#| "\n"
|
||||
#| "%(reason)s\n"
|
||||
#| "\n"
|
||||
#| " %(code)s\n"
|
||||
#| "\n"
|
||||
#| "Please do never give this code to another person. Our support team will "
|
||||
#| "never ask for this code.\n"
|
||||
#| "\n"
|
||||
#| "If this code was not requested by you, please contact us immediately.\n"
|
||||
#| "\n"
|
||||
#| "Best regards,\n"
|
||||
#| "Your %(instance)s team\n"
|
||||
msgid ""
|
||||
"Hello,\n"
|
||||
"\n"
|
||||
@@ -20079,40 +20123,39 @@ msgid ""
|
||||
"Thanks, \n"
|
||||
"The %(instance)s Team\n"
|
||||
msgstr ""
|
||||
"Bonjour,\n"
|
||||
"Hello,\n"
|
||||
"\n"
|
||||
"%(reason)s\n"
|
||||
"\n"
|
||||
" %(code)s\n"
|
||||
"\n"
|
||||
"Ne communiquez ce code à personne. L'équipe %(instance)s ne vous le "
|
||||
"demandera jamais.\n"
|
||||
"Veuillez ne jamais communiquer ce code à une autre personne. Notre équipe "
|
||||
"d’assistance ne vous demandera jamais ce code.\n"
|
||||
"\n"
|
||||
"Si vous n'avez pas demandé ce code, veuillez nous contacter immédiatement.\n"
|
||||
"Si vous n’êtes pas à l’origine de cette demande, contactez-nous "
|
||||
"immédiatement.\n"
|
||||
"\n"
|
||||
"Merci, \n"
|
||||
"L'équipe %(instance)s\n"
|
||||
"Cordialement,\n"
|
||||
"Votre équipe pretix%(instance)s\n"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/email/email_setup.txt
|
||||
#, fuzzy, python-format
|
||||
#| msgid ""
|
||||
#| "Hello,\n"
|
||||
#| "\n"
|
||||
#| "Someone requested to use %(address)s as a sender address on %(instance)s. "
|
||||
#| "Once verified, emails sent from %(instance)s can show this address as the "
|
||||
#| "sender.\n"
|
||||
#| "someone requested to use %(address)s as a sender address on "
|
||||
#| "%(instance)s.\n"
|
||||
#| "This will allow them to send emails that are shown to originate from this "
|
||||
#| "email address.\n"
|
||||
#| "If that was you, please enter the following confirmation code:\n"
|
||||
#| "\n"
|
||||
#| "If this was you, enter the following code in the setup form:\n"
|
||||
#| "%(code)s\n"
|
||||
#| "\n"
|
||||
#| " %(code)s\n"
|
||||
#| "If this was not requested by you, you can safely ignore this email.\n"
|
||||
#| "\n"
|
||||
#| "Don't share this code with anyone. The %(instance)s team will never ask "
|
||||
#| "you for it.\n"
|
||||
#| "Best regards, \n"
|
||||
#| "\n"
|
||||
#| "If you didn't request this, you can safely ignore this email.\n"
|
||||
#| "\n"
|
||||
#| "Thanks, \n"
|
||||
#| "The %(instance)s Team\n"
|
||||
#| "Your %(instance)s team\n"
|
||||
msgid ""
|
||||
"Hello,\n"
|
||||
"\n"
|
||||
@@ -20124,34 +20167,30 @@ msgid ""
|
||||
"\n"
|
||||
" %(code)s\n"
|
||||
"\n"
|
||||
"Don't share this code with anyone unless you want to authorize them to use "
|
||||
"this address for this purpose. The %(instance)s team will never ask you for "
|
||||
"it.\n"
|
||||
"Don't share this code with anyone. The %(instance)s team will never ask you "
|
||||
"for it.\n"
|
||||
"\n"
|
||||
"If you didn't request this, you can safely ignore this email.\n"
|
||||
"\n"
|
||||
"Thanks, \n"
|
||||
"The %(instance)s Team\n"
|
||||
msgstr ""
|
||||
"Bonjour,\n"
|
||||
"Bonjour\n"
|
||||
"\n"
|
||||
"Une personne a demandé à utiliser %(address)s comme adresse d'expéditeur sur "
|
||||
"%(instance)s. Une fois cette demande validée, les e-mails envoyés depuis "
|
||||
"%(instance)s pourront afficher cette adresse comme expéditeur.\n"
|
||||
"quelqu’un a demandé à utiliser %(address)s comme adresse d’expéditeur sur "
|
||||
"%(instance)s.\n"
|
||||
"Cela leur permettra d’envoyer des e-mails dont il est démontré qu’ils "
|
||||
"proviennent de cette adresse e-mail.\n"
|
||||
"Si c’était vous, veuillez entrer le code de confirmation suivant :\n"
|
||||
"\n"
|
||||
"Si c'est vous qui avez fait cette demande, veuillez saisir le code suivant "
|
||||
"dans le formulaire de configuration :\n"
|
||||
"%(code)s\n"
|
||||
"\n"
|
||||
" %(code)s\n"
|
||||
"Si vous ne l’avez pas demandé, vous pouvez ignorer cet e-mail en toute "
|
||||
"sécurité.\n"
|
||||
"\n"
|
||||
"Ne communiquez ce code à personne. L'équipe de %(instance)s ne vous le "
|
||||
"demandera jamais.\n"
|
||||
"Sinceres salutations \n"
|
||||
"\n"
|
||||
"Si vous n’en avez pas fait la demande, vous pouvez ignorer cet e-mail en "
|
||||
"toute sécurité.\n"
|
||||
"\n"
|
||||
"Merci, \n"
|
||||
"L’équipe %(instance)s\n"
|
||||
"Votre équipe %(instance)s\n"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/email/forgot.txt
|
||||
#, python-format
|
||||
@@ -20169,22 +20208,27 @@ msgid ""
|
||||
"Thanks, \n"
|
||||
"The %(instance)s Team\n"
|
||||
msgstr ""
|
||||
"Bonjour,\n"
|
||||
"\n"
|
||||
"Nous avons reçu une demande de réinitialisation du mot de passe de votre "
|
||||
"compte %(instance)s. Pour choisir un nouveau mot de passe, cliquez sur le "
|
||||
"lien ci-dessous :\n"
|
||||
"\n"
|
||||
"%(url)s\n"
|
||||
"\n"
|
||||
"Si vous n'avez pas effectué cette demande, vous pouvez ignorer cet e-mail en "
|
||||
"toute sécurité : votre mot de passe ne changera pas.\n"
|
||||
"\n"
|
||||
"Merci, \n"
|
||||
"L'équipe %(instance)s\n"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/email/invitation.txt
|
||||
#, python-format
|
||||
#, fuzzy, python-format
|
||||
#| msgid ""
|
||||
#| "Hello,\n"
|
||||
#| "\n"
|
||||
#| "you have been invited to a team on %(instance)s, a platform to perform "
|
||||
#| "event\n"
|
||||
#| "ticket sales.\n"
|
||||
#| "\n"
|
||||
#| "Organizer: %(organizer)s\n"
|
||||
#| "Team: %(team)s\n"
|
||||
#| "\n"
|
||||
#| "If you want to join that team, just click on the following link:\n"
|
||||
#| "%(url)s\n"
|
||||
#| "\n"
|
||||
#| "If you do not want to join, you can safely ignore or delete this email.\n"
|
||||
#| "\n"
|
||||
#| "Best regards, \n"
|
||||
#| "\n"
|
||||
#| "Your %(instance)s team\n"
|
||||
msgid ""
|
||||
"Hello,\n"
|
||||
"\n"
|
||||
@@ -20206,12 +20250,13 @@ msgstr ""
|
||||
"Bonjour,\n"
|
||||
"\n"
|
||||
"vous avez été invité à faire partie de l'équipe pretix%(instance)s, une "
|
||||
"plateforme pour réaliser un événement de vente de billets.\n"
|
||||
"plateforme pour réaliser un événement\n"
|
||||
"de vente de billets.\n"
|
||||
"\n"
|
||||
"Organisateur : %(organizer)s\n"
|
||||
"Équipe : %(team)s\n"
|
||||
"Organisateur : %(organizer)s\n"
|
||||
"Équipe : %(team)s\n"
|
||||
"\n"
|
||||
"Si vous souhaitez rejoindre cette équipe, cliquez sur le lien suivant :\n"
|
||||
"Si vous souhaitez rejoindre cette équipe, cliquez sur le lien suivant :\n"
|
||||
"%(url)s\n"
|
||||
"\n"
|
||||
"Si vous ne souhaitez pas adhérer, vous pouvez ignorer ou supprimer cet e-"
|
||||
@@ -20228,24 +20273,21 @@ msgid ""
|
||||
"\n"
|
||||
"We noticed a new sign-in to your %(instance)s account:\n"
|
||||
msgstr ""
|
||||
"Bonjour,\n"
|
||||
"\n"
|
||||
"Nous avons détecté une nouvelle connexion à votre compte %(instance)s :\n"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/email/login_notice.txt
|
||||
msgid "Browser"
|
||||
msgstr "Navigateur"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/email/login_notice.txt
|
||||
msgid "Operating system"
|
||||
msgstr "Système d'exploitation"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/email/login_notice.txt
|
||||
#, python-format
|
||||
msgid ""
|
||||
"If it was you, no action is needed.\n"
|
||||
"\n"
|
||||
"If you don't recognize this sign-in, please change your password "
|
||||
"If you don't recognise this sign-in, please change your password "
|
||||
"immediately:\n"
|
||||
"\n"
|
||||
"%(url)s\n"
|
||||
@@ -20253,18 +20295,26 @@ msgid ""
|
||||
"Thanks, \n"
|
||||
"The %(instance)s Team\n"
|
||||
msgstr ""
|
||||
"Si c'est vous, aucune action n'est nécessaire.\n"
|
||||
"\n"
|
||||
"Si vous ne reconnaissez pas cette connexion, veuillez changer votre mot de "
|
||||
"passe immédiatement :\n"
|
||||
"\n"
|
||||
"%(url)s\n"
|
||||
"\n"
|
||||
"Merci, \n"
|
||||
"L'équipe %(instance)s\n"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/email/security_notice.txt
|
||||
#, python-format
|
||||
#, fuzzy, python-format
|
||||
#| msgid ""
|
||||
#| "Hello,\n"
|
||||
#| "\n"
|
||||
#| "this is to inform you that the account information of your %(instance)s "
|
||||
#| "account has been\n"
|
||||
#| "changed. In particular, the following changes have been performed:\n"
|
||||
#| "\n"
|
||||
#| "%(messages)s\n"
|
||||
#| "\n"
|
||||
#| "If this change was not performed by you, please contact us immediately.\n"
|
||||
#| "\n"
|
||||
#| "You can review and change your account settings here:\n"
|
||||
#| "\n"
|
||||
#| "%(url)s\n"
|
||||
#| "\n"
|
||||
#| "Best regards, \n"
|
||||
#| "Your %(instance)s team\n"
|
||||
msgid ""
|
||||
"Hello,\n"
|
||||
"\n"
|
||||
@@ -20284,19 +20334,21 @@ msgid ""
|
||||
msgstr ""
|
||||
"Bonjour,\n"
|
||||
"\n"
|
||||
"Les modifications suivantes ont été apportées à votre compte %(instance)s :\n"
|
||||
"Ceci est pour vous informer que les informations de votre compte "
|
||||
"%(instance)s ont été\n"
|
||||
"modifié. Les modifications suivantes ont été apportées :\n"
|
||||
"\n"
|
||||
"%(messages)s\n"
|
||||
"\n"
|
||||
"Si vous n'êtes pas à l'origine de ces modifications, veuillez contacter "
|
||||
"immédiatement l'équipe d'assistance de %(instance)s.\n"
|
||||
"Si vous n'avez pas effectué ce changement, veuillez nous contacter "
|
||||
"immédiatement.\n"
|
||||
"\n"
|
||||
"Vous pouvez consulter les paramètres de votre compte ici :\n"
|
||||
"Vous pouvez consulter et modifier les paramètres de votre compte ici :\n"
|
||||
"\n"
|
||||
"%(url)s\n"
|
||||
"\n"
|
||||
"Merci, \n"
|
||||
"L'équipe %(instance)s\n"
|
||||
"Sincères salutations, \n"
|
||||
"Votre équipe pretix%(instance)s\n"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/email_setup.html
|
||||
#: pretix/control/templates/pretixcontrol/email_setup_simple.html
|
||||
@@ -28994,7 +29046,7 @@ msgstr "Le code de vérification était incorrect, veuillez réessayer."
|
||||
#: pretix/control/views/mailsetup.py
|
||||
#, python-format
|
||||
msgid "Confirm %(address)s as a sender address"
|
||||
msgstr "Confirmer %(address)s comme adresse d'expéditeur"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/views/mailsetup.py
|
||||
#, python-format
|
||||
@@ -30230,8 +30282,10 @@ msgstr ""
|
||||
"de paiement."
|
||||
|
||||
#: pretix/helpers/security.py
|
||||
#, fuzzy
|
||||
#| msgid "Sign in to your account at %(org)s"
|
||||
msgid "New sign-in to your account"
|
||||
msgstr "Nouvelle connexion à votre compte"
|
||||
msgstr "Connectez-vous à votre compte à l’adresse %(org)s"
|
||||
|
||||
#: pretix/multidomain/models.py
|
||||
msgid "Organizer domain"
|
||||
@@ -36435,6 +36489,8 @@ msgstr[0] "%(count)s élement"
|
||||
msgstr[1] "%(count)s élements"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/fragment_calendar.html
|
||||
#, fuzzy
|
||||
#| msgid "No event"
|
||||
msgid "No events"
|
||||
msgstr "Aucun événement"
|
||||
|
||||
@@ -36783,8 +36839,10 @@ msgid "Create account"
|
||||
msgstr "Créer un compte"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/organizers/customer_login_interrupted_message.html
|
||||
#, fuzzy
|
||||
#| msgid "The invoice could not be generated."
|
||||
msgid "Login could not be completed"
|
||||
msgstr "La connexion n'a pas pu être établie"
|
||||
msgstr "La facture n'a pas pu être générée."
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/organizers/customer_login_interrupted_message.html
|
||||
msgid ""
|
||||
@@ -36793,40 +36851,29 @@ msgid ""
|
||||
"process.\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"\n"
|
||||
" Nous n'avons pas pu finaliser votre connexion car une interruption "
|
||||
"est survenue au cours du processus.\n"
|
||||
" "
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/organizers/customer_login_interrupted_message.html
|
||||
msgid "Possible reasons for this:"
|
||||
msgstr "Raisons possibles :"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/organizers/customer_login_interrupted_message.html
|
||||
msgid ""
|
||||
"You started logging in from a link opened inside an app (such as Instagram "
|
||||
"or an email app), and then continued the login in your main browser."
|
||||
msgstr ""
|
||||
"Vous avez commencé à vous connecter à partir d'un lien ouvert dans une "
|
||||
"application (comme Instagram ou une application de messagerie), puis vous "
|
||||
"avez poursuivi la procédure de connexion dans votre navigateur principal."
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/organizers/customer_login_interrupted_message.html
|
||||
msgid "You refreshed the page or used the back button during login."
|
||||
msgstr ""
|
||||
"Vous avez actualisé la page ou utilisé le bouton « Retour » pendant la "
|
||||
"procédure de connexion."
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/organizers/customer_login_interrupted_message.html
|
||||
msgid "The site was opened in more than one tab or window at the same time."
|
||||
msgstr "Le site a été ouvert dans plusieurs onglets ou fenêtres en même temps."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/organizers/customer_login_interrupted_message.html
|
||||
msgid ""
|
||||
"There was a long delay between starting and completing the login process."
|
||||
msgstr ""
|
||||
"Il y a eu un long délai entre le début et la fin de la procédure de "
|
||||
"connexion."
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/organizers/customer_login_interrupted_message.html
|
||||
msgid "How to fix this:"
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-07 09:30+0000\n"
|
||||
"POT-Creation-Date: 2026-07-06 15:48+0000\n"
|
||||
"PO-Revision-Date: 2026-04-21 11:05+0000\n"
|
||||
"Last-Translator: Sandra Rial Pérez <sandrarial@gestiontickets.online>\n"
|
||||
"Language-Team: Galician <https://translate.pretix.eu/projects/pretix/pretix/"
|
||||
@@ -11723,18 +11723,6 @@ msgstr ""
|
||||
"Lo mostraremos públicamente para que los asistentes puedan ponerse en "
|
||||
"contacto con usted."
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
msgid "Contact URL"
|
||||
msgstr "Bancontact"
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid ""
|
||||
"If you set this, the footer contact link will point here instead of using "
|
||||
"the email address above. Please note that you still need to add a contact "
|
||||
"email address that will be shared with all emails you send."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
msgid "Imprint URL"
|
||||
@@ -20750,9 +20738,8 @@ msgid ""
|
||||
"\n"
|
||||
" %(code)s\n"
|
||||
"\n"
|
||||
"Don't share this code with anyone unless you want to authorize them to use "
|
||||
"this address for this purpose. The %(instance)s team will never ask you for "
|
||||
"it.\n"
|
||||
"Don't share this code with anyone. The %(instance)s team will never ask you "
|
||||
"for it.\n"
|
||||
"\n"
|
||||
"If you didn't request this, you can safely ignore this email.\n"
|
||||
"\n"
|
||||
@@ -20835,7 +20822,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"If it was you, no action is needed.\n"
|
||||
"\n"
|
||||
"If you don't recognize this sign-in, please change your password "
|
||||
"If you don't recognise this sign-in, please change your password "
|
||||
"immediately:\n"
|
||||
"\n"
|
||||
"%(url)s\n"
|
||||
|
||||
@@ -2,7 +2,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: HE PRETIX\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-07 09:30+0000\n"
|
||||
"POT-Creation-Date: 2026-07-06 15:48+0000\n"
|
||||
"PO-Revision-Date: 2026-02-09 21:00+0000\n"
|
||||
"Last-Translator: roi belotsercovsky <rbelotsercovsky@gmail.com>\n"
|
||||
"Language-Team: Hebrew <https://translate.pretix.eu/projects/pretix/pretix/he/"
|
||||
@@ -11041,19 +11041,6 @@ msgstr "כתובת ליצירת קשר"
|
||||
msgid "We'll show this publicly to allow attendees to contact you."
|
||||
msgstr "נציג זאת בפומבי כדי לאפשר למשתתפים ליצור איתך קשר."
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "Contact:"
|
||||
msgid "Contact URL"
|
||||
msgstr "איש קשר:"
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid ""
|
||||
"If you set this, the footer contact link will point here instead of using "
|
||||
"the email address above. Please note that you still need to add a contact "
|
||||
"email address that will be shared with all emails you send."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid "Imprint URL"
|
||||
msgstr "קישור לעמוד פרטי יצירת קשר/ח.פ."
|
||||
@@ -19351,9 +19338,8 @@ msgid ""
|
||||
"\n"
|
||||
" %(code)s\n"
|
||||
"\n"
|
||||
"Don't share this code with anyone unless you want to authorize them to use "
|
||||
"this address for this purpose. The %(instance)s team will never ask you for "
|
||||
"it.\n"
|
||||
"Don't share this code with anyone. The %(instance)s team will never ask you "
|
||||
"for it.\n"
|
||||
"\n"
|
||||
"If you didn't request this, you can safely ignore this email.\n"
|
||||
"\n"
|
||||
@@ -19463,7 +19449,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"If it was you, no action is needed.\n"
|
||||
"\n"
|
||||
"If you don't recognize this sign-in, please change your password "
|
||||
"If you don't recognise this sign-in, please change your password "
|
||||
"immediately:\n"
|
||||
"\n"
|
||||
"%(url)s\n"
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-07 09:30+0000\n"
|
||||
"POT-Creation-Date: 2026-07-06 15:48+0000\n"
|
||||
"PO-Revision-Date: 2025-03-04 16:16+0000\n"
|
||||
"Last-Translator: Martin Gross <gross@rami.io>\n"
|
||||
"Language-Team: Croatian <https://translate.pretix.eu/projects/pretix/pretix/"
|
||||
@@ -11033,19 +11033,6 @@ msgstr "Kontakt adresa"
|
||||
msgid "We'll show this publicly to allow attendees to contact you."
|
||||
msgstr "Prikazat ćemo ovo javno kako bi sudionici mogli kontaktirati vas."
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "Contact:"
|
||||
msgid "Contact URL"
|
||||
msgstr "Kontakt:"
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid ""
|
||||
"If you set this, the footer contact link will point here instead of using "
|
||||
"the email address above. Please note that you still need to add a contact "
|
||||
"email address that will be shared with all emails you send."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid "Imprint URL"
|
||||
msgstr "URL impresuma"
|
||||
@@ -18635,9 +18622,8 @@ msgid ""
|
||||
"\n"
|
||||
" %(code)s\n"
|
||||
"\n"
|
||||
"Don't share this code with anyone unless you want to authorize them to use "
|
||||
"this address for this purpose. The %(instance)s team will never ask you for "
|
||||
"it.\n"
|
||||
"Don't share this code with anyone. The %(instance)s team will never ask you "
|
||||
"for it.\n"
|
||||
"\n"
|
||||
"If you didn't request this, you can safely ignore this email.\n"
|
||||
"\n"
|
||||
@@ -18704,7 +18690,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"If it was you, no action is needed.\n"
|
||||
"\n"
|
||||
"If you don't recognize this sign-in, please change your password "
|
||||
"If you don't recognise this sign-in, please change your password "
|
||||
"immediately:\n"
|
||||
"\n"
|
||||
"%(url)s\n"
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-07 09:30+0000\n"
|
||||
"POT-Creation-Date: 2026-07-06 15:48+0000\n"
|
||||
"PO-Revision-Date: 2026-01-23 15:00+0000\n"
|
||||
"Last-Translator: Vajda Tamás <vajda.tamas@szwg.hu>\n"
|
||||
"Language-Team: Hungarian <https://translate.pretix.eu/projects/pretix/pretix/"
|
||||
@@ -10584,19 +10584,6 @@ msgstr ""
|
||||
msgid "We'll show this publicly to allow attendees to contact you."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "Contact:"
|
||||
msgid "Contact URL"
|
||||
msgstr "Kapcsolattartó:"
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid ""
|
||||
"If you set this, the footer contact link will point here instead of using "
|
||||
"the email address above. Please note that you still need to add a contact "
|
||||
"email address that will be shared with all emails you send."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid "Imprint URL"
|
||||
msgstr ""
|
||||
@@ -18661,9 +18648,8 @@ msgid ""
|
||||
"\n"
|
||||
" %(code)s\n"
|
||||
"\n"
|
||||
"Don't share this code with anyone unless you want to authorize them to use "
|
||||
"this address for this purpose. The %(instance)s team will never ask you for "
|
||||
"it.\n"
|
||||
"Don't share this code with anyone. The %(instance)s team will never ask you "
|
||||
"for it.\n"
|
||||
"\n"
|
||||
"If you didn't request this, you can safely ignore this email.\n"
|
||||
"\n"
|
||||
@@ -18730,7 +18716,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"If it was you, no action is needed.\n"
|
||||
"\n"
|
||||
"If you don't recognize this sign-in, please change your password "
|
||||
"If you don't recognise this sign-in, please change your password "
|
||||
"immediately:\n"
|
||||
"\n"
|
||||
"%(url)s\n"
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-07 09:30+0000\n"
|
||||
"POT-Creation-Date: 2026-07-06 15:48+0000\n"
|
||||
"PO-Revision-Date: 2023-11-18 15:00+0000\n"
|
||||
"Last-Translator: liimee <git.taaa@fedora.email>\n"
|
||||
"Language-Team: Indonesian <https://translate.pretix.eu/projects/pretix/"
|
||||
@@ -11625,19 +11625,6 @@ msgid "We'll show this publicly to allow attendees to contact you."
|
||||
msgstr ""
|
||||
"Kami akan menampilkannya secara publik agar peserta dapat menghubungi kamu."
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "Contact:"
|
||||
msgid "Contact URL"
|
||||
msgstr "Kontak:"
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid ""
|
||||
"If you set this, the footer contact link will point here instead of using "
|
||||
"the email address above. Please note that you still need to add a contact "
|
||||
"email address that will be shared with all emails you send."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid "Imprint URL"
|
||||
msgstr "URL cetak"
|
||||
@@ -20278,9 +20265,8 @@ msgid ""
|
||||
"\n"
|
||||
" %(code)s\n"
|
||||
"\n"
|
||||
"Don't share this code with anyone unless you want to authorize them to use "
|
||||
"this address for this purpose. The %(instance)s team will never ask you for "
|
||||
"it.\n"
|
||||
"Don't share this code with anyone. The %(instance)s team will never ask you "
|
||||
"for it.\n"
|
||||
"\n"
|
||||
"If you didn't request this, you can safely ignore this email.\n"
|
||||
"\n"
|
||||
@@ -20397,7 +20383,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"If it was you, no action is needed.\n"
|
||||
"\n"
|
||||
"If you don't recognize this sign-in, please change your password "
|
||||
"If you don't recognise this sign-in, please change your password "
|
||||
"immediately:\n"
|
||||
"\n"
|
||||
"%(url)s\n"
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-07 09:30+0000\n"
|
||||
"POT-Creation-Date: 2026-07-06 15:48+0000\n"
|
||||
"PO-Revision-Date: 2026-05-12 04:00+0000\n"
|
||||
"Last-Translator: Stefano Campus <stefano.campus@regione.piemonte.it>\n"
|
||||
"Language-Team: Italian <https://translate.pretix.eu/projects/pretix/pretix/"
|
||||
@@ -11516,18 +11516,6 @@ msgstr ""
|
||||
msgid "We'll show this publicly to allow attendees to contact you."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
msgid "Contact URL"
|
||||
msgstr "Continua"
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid ""
|
||||
"If you set this, the footer contact link will point here instead of using "
|
||||
"the email address above. Please note that you still need to add a contact "
|
||||
"email address that will be shared with all emails you send."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid "Imprint URL"
|
||||
msgstr ""
|
||||
@@ -19531,9 +19519,8 @@ msgid ""
|
||||
"\n"
|
||||
" %(code)s\n"
|
||||
"\n"
|
||||
"Don't share this code with anyone unless you want to authorize them to use "
|
||||
"this address for this purpose. The %(instance)s team will never ask you for "
|
||||
"it.\n"
|
||||
"Don't share this code with anyone. The %(instance)s team will never ask you "
|
||||
"for it.\n"
|
||||
"\n"
|
||||
"If you didn't request this, you can safely ignore this email.\n"
|
||||
"\n"
|
||||
@@ -19600,7 +19587,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"If it was you, no action is needed.\n"
|
||||
"\n"
|
||||
"If you don't recognize this sign-in, please change your password "
|
||||
"If you don't recognise this sign-in, please change your password "
|
||||
"immediately:\n"
|
||||
"\n"
|
||||
"%(url)s\n"
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -8,8 +8,8 @@ msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-06 15:52+0000\n"
|
||||
"PO-Revision-Date: 2026-07-07 09:17+0000\n"
|
||||
"Last-Translator: Hijiri Umemoto <hijiri@umemoto.org>\n"
|
||||
"PO-Revision-Date: 2026-05-12 06:34+0000\n"
|
||||
"Last-Translator: Yasunobu YesNo Kawaguchi <kawaguti@gmail.com>\n"
|
||||
"Language-Team: Japanese <https://translate.pretix.eu/projects/pretix/pretix-"
|
||||
"js/ja/>\n"
|
||||
"Language: ja\n"
|
||||
@@ -17,7 +17,7 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
"X-Generator: Weblate 2026.6.1\n"
|
||||
"X-Generator: Weblate 5.17.1\n"
|
||||
|
||||
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js
|
||||
msgid "Marked as paid"
|
||||
@@ -426,11 +426,11 @@ msgstr "Ctrl-Cを押してコピー!"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/checkinrules/App.vue
|
||||
msgid "Edit"
|
||||
msgstr "編集"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/checkinrules/App.vue
|
||||
msgid "Visualize"
|
||||
msgstr "ビジュアライズ"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/checkinrules/App.vue
|
||||
msgid ""
|
||||
@@ -438,13 +438,10 @@ msgid ""
|
||||
"or variations are not contained in any of your rule parts so people with "
|
||||
"these tickets will not get in:"
|
||||
msgstr ""
|
||||
"あなたのルールは常に製品またはバリエーションでフィルタリングされますが、以下"
|
||||
"の製品やバリエーションはいずれのルール部分にも含まれていないため、これらの"
|
||||
"チケットをお持ちの方は入れません。"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/checkinrules/App.vue
|
||||
msgid "Please double-check if this was intentional."
|
||||
msgstr "意図的かどうか、再度ご確認ください。"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/checkinrules/constants.ts
|
||||
msgid "All of the conditions below (AND)"
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-07 09:30+0000\n"
|
||||
"POT-Creation-Date: 2026-07-06 15:48+0000\n"
|
||||
"PO-Revision-Date: 2026-06-01 09:00+0000\n"
|
||||
"Last-Translator: Hijiri Umemoto <hijiri@umemoto.org>\n"
|
||||
"Language-Team: Korean <https://translate.pretix.eu/projects/pretix/pretix/ko/"
|
||||
@@ -11126,19 +11126,6 @@ msgstr "연락처 주소"
|
||||
msgid "We'll show this publicly to allow attendees to contact you."
|
||||
msgstr "참석자들이 연락할 수 있도록 공개적으로 보여드리겠습니다."
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "Contact:"
|
||||
msgid "Contact URL"
|
||||
msgstr "연락처:"
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid ""
|
||||
"If you set this, the footer contact link will point here instead of using "
|
||||
"the email address above. Please note that you still need to add a contact "
|
||||
"email address that will be shared with all emails you send."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid "Imprint URL"
|
||||
msgstr "URL 각인"
|
||||
@@ -19508,9 +19495,8 @@ msgid ""
|
||||
"\n"
|
||||
" %(code)s\n"
|
||||
"\n"
|
||||
"Don't share this code with anyone unless you want to authorize them to use "
|
||||
"this address for this purpose. The %(instance)s team will never ask you for "
|
||||
"it.\n"
|
||||
"Don't share this code with anyone. The %(instance)s team will never ask you "
|
||||
"for it.\n"
|
||||
"\n"
|
||||
"If you didn't request this, you can safely ignore this email.\n"
|
||||
"\n"
|
||||
@@ -19596,7 +19582,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"If it was you, no action is needed.\n"
|
||||
"\n"
|
||||
"If you don't recognize this sign-in, please change your password "
|
||||
"If you don't recognise this sign-in, please change your password "
|
||||
"immediately:\n"
|
||||
"\n"
|
||||
"%(url)s\n"
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-07 09:30+0000\n"
|
||||
"POT-Creation-Date: 2026-07-06 15:48+0000\n"
|
||||
"PO-Revision-Date: 2025-10-28 17:00+0000\n"
|
||||
"Last-Translator: Sven Muhlen <sven.muhlen@bnl.etat.lu>\n"
|
||||
"Language-Team: Luxembourgish <https://translate.pretix.eu/projects/pretix/"
|
||||
@@ -10486,19 +10486,6 @@ msgstr "Kontakt-E-Mail"
|
||||
msgid "We'll show this publicly to allow attendees to contact you."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "Contact"
|
||||
msgid "Contact URL"
|
||||
msgstr "Kontakt"
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid ""
|
||||
"If you set this, the footer contact link will point here instead of using "
|
||||
"the email address above. Please note that you still need to add a contact "
|
||||
"email address that will be shared with all emails you send."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid "Imprint URL"
|
||||
msgstr "Impressum (URL)"
|
||||
@@ -17879,9 +17866,8 @@ msgid ""
|
||||
"\n"
|
||||
" %(code)s\n"
|
||||
"\n"
|
||||
"Don't share this code with anyone unless you want to authorize them to use "
|
||||
"this address for this purpose. The %(instance)s team will never ask you for "
|
||||
"it.\n"
|
||||
"Don't share this code with anyone. The %(instance)s team will never ask you "
|
||||
"for it.\n"
|
||||
"\n"
|
||||
"If you didn't request this, you can safely ignore this email.\n"
|
||||
"\n"
|
||||
@@ -17948,7 +17934,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"If it was you, no action is needed.\n"
|
||||
"\n"
|
||||
"If you don't recognize this sign-in, please change your password "
|
||||
"If you don't recognise this sign-in, please change your password "
|
||||
"immediately:\n"
|
||||
"\n"
|
||||
"%(url)s\n"
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-07 09:30+0000\n"
|
||||
"POT-Creation-Date: 2026-07-06 15:48+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: Automatically generated\n"
|
||||
"Language-Team: none\n"
|
||||
@@ -10201,17 +10201,6 @@ msgstr ""
|
||||
msgid "We'll show this publicly to allow attendees to contact you."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid "Contact URL"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid ""
|
||||
"If you set this, the footer contact link will point here instead of using "
|
||||
"the email address above. Please note that you still need to add a contact "
|
||||
"email address that will be shared with all emails you send."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid "Imprint URL"
|
||||
msgstr ""
|
||||
@@ -17566,9 +17555,8 @@ msgid ""
|
||||
"\n"
|
||||
" %(code)s\n"
|
||||
"\n"
|
||||
"Don't share this code with anyone unless you want to authorize them to use "
|
||||
"this address for this purpose. The %(instance)s team will never ask you for "
|
||||
"it.\n"
|
||||
"Don't share this code with anyone. The %(instance)s team will never ask you "
|
||||
"for it.\n"
|
||||
"\n"
|
||||
"If you didn't request this, you can safely ignore this email.\n"
|
||||
"\n"
|
||||
@@ -17635,7 +17623,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"If it was you, no action is needed.\n"
|
||||
"\n"
|
||||
"If you don't recognize this sign-in, please change your password "
|
||||
"If you don't recognise this sign-in, please change your password "
|
||||
"immediately:\n"
|
||||
"\n"
|
||||
"%(url)s\n"
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-07 09:30+0000\n"
|
||||
"POT-Creation-Date: 2026-07-06 15:48+0000\n"
|
||||
"PO-Revision-Date: 2025-02-21 19:00+0000\n"
|
||||
"Last-Translator: anonymous <noreply@weblate.org>\n"
|
||||
"Language-Team: Latvian <https://translate.pretix.eu/projects/pretix/pretix/"
|
||||
@@ -11282,19 +11282,6 @@ msgstr ""
|
||||
msgid "We'll show this publicly to allow attendees to contact you."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "Contact:"
|
||||
msgid "Contact URL"
|
||||
msgstr "Kontaktpersona:"
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid ""
|
||||
"If you set this, the footer contact link will point here instead of using "
|
||||
"the email address above. Please note that you still need to add a contact "
|
||||
"email address that will be shared with all emails you send."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid "Imprint URL"
|
||||
msgstr ""
|
||||
@@ -19276,9 +19263,8 @@ msgid ""
|
||||
"\n"
|
||||
" %(code)s\n"
|
||||
"\n"
|
||||
"Don't share this code with anyone unless you want to authorize them to use "
|
||||
"this address for this purpose. The %(instance)s team will never ask you for "
|
||||
"it.\n"
|
||||
"Don't share this code with anyone. The %(instance)s team will never ask you "
|
||||
"for it.\n"
|
||||
"\n"
|
||||
"If you didn't request this, you can safely ignore this email.\n"
|
||||
"\n"
|
||||
@@ -19345,7 +19331,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"If it was you, no action is needed.\n"
|
||||
"\n"
|
||||
"If you don't recognize this sign-in, please change your password "
|
||||
"If you don't recognise this sign-in, please change your password "
|
||||
"immediately:\n"
|
||||
"\n"
|
||||
"%(url)s\n"
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-07 09:30+0000\n"
|
||||
"POT-Creation-Date: 2026-07-06 15:48+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: Automatically generated\n"
|
||||
"Language-Team: none\n"
|
||||
@@ -10195,17 +10195,6 @@ msgstr ""
|
||||
msgid "We'll show this publicly to allow attendees to contact you."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid "Contact URL"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid ""
|
||||
"If you set this, the footer contact link will point here instead of using "
|
||||
"the email address above. Please note that you still need to add a contact "
|
||||
"email address that will be shared with all emails you send."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid "Imprint URL"
|
||||
msgstr ""
|
||||
@@ -17557,9 +17546,8 @@ msgid ""
|
||||
"\n"
|
||||
" %(code)s\n"
|
||||
"\n"
|
||||
"Don't share this code with anyone unless you want to authorize them to use "
|
||||
"this address for this purpose. The %(instance)s team will never ask you for "
|
||||
"it.\n"
|
||||
"Don't share this code with anyone. The %(instance)s team will never ask you "
|
||||
"for it.\n"
|
||||
"\n"
|
||||
"If you didn't request this, you can safely ignore this email.\n"
|
||||
"\n"
|
||||
@@ -17626,7 +17614,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"If it was you, no action is needed.\n"
|
||||
"\n"
|
||||
"If you don't recognize this sign-in, please change your password "
|
||||
"If you don't recognise this sign-in, please change your password "
|
||||
"immediately:\n"
|
||||
"\n"
|
||||
"%(url)s\n"
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-07 09:30+0000\n"
|
||||
"POT-Creation-Date: 2026-07-06 15:48+0000\n"
|
||||
"PO-Revision-Date: 2026-05-02 23:00+0000\n"
|
||||
"Last-Translator: Daniel Musketa <daniel@musketa.de>\n"
|
||||
"Language-Team: Norwegian Bokmål <https://translate.pretix.eu/projects/pretix/"
|
||||
@@ -11676,19 +11676,6 @@ msgstr ""
|
||||
"Vi vil vise dette offentlig for å gi deltakerne muligheten til å kontakte "
|
||||
"deg."
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "Contact:"
|
||||
msgid "Contact URL"
|
||||
msgstr "Kontakt:"
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid ""
|
||||
"If you set this, the footer contact link will point here instead of using "
|
||||
"the email address above. Please note that you still need to add a contact "
|
||||
"email address that will be shared with all emails you send."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid "Imprint URL"
|
||||
msgstr "URL for imprint: URL for imprint:"
|
||||
@@ -20356,9 +20343,8 @@ msgid ""
|
||||
"\n"
|
||||
" %(code)s\n"
|
||||
"\n"
|
||||
"Don't share this code with anyone unless you want to authorize them to use "
|
||||
"this address for this purpose. The %(instance)s team will never ask you for "
|
||||
"it.\n"
|
||||
"Don't share this code with anyone. The %(instance)s team will never ask you "
|
||||
"for it.\n"
|
||||
"\n"
|
||||
"If you didn't request this, you can safely ignore this email.\n"
|
||||
"\n"
|
||||
@@ -20474,7 +20460,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"If it was you, no action is needed.\n"
|
||||
"\n"
|
||||
"If you don't recognize this sign-in, please change your password "
|
||||
"If you don't recognise this sign-in, please change your password "
|
||||
"immediately:\n"
|
||||
"\n"
|
||||
"%(url)s\n"
|
||||
|
||||
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: 1\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-07 09:30+0000\n"
|
||||
"POT-Creation-Date: 2026-07-06 15:48+0000\n"
|
||||
"PO-Revision-Date: 2026-05-05 13:26+0000\n"
|
||||
"Last-Translator: Ruud Hendrickx <ruud@leckxicon.eu>\n"
|
||||
"Language-Team: Dutch <https://translate.pretix.eu/projects/pretix/pretix/nl/"
|
||||
@@ -11466,19 +11466,6 @@ msgid "We'll show this publicly to allow attendees to contact you."
|
||||
msgstr ""
|
||||
"We zullen dit openbaar tonen zodat deelnemers contact met u kunnen opnemen."
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "Contact"
|
||||
msgid "Contact URL"
|
||||
msgstr "Contact"
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid ""
|
||||
"If you set this, the footer contact link will point here instead of using "
|
||||
"the email address above. Please note that you still need to add a contact "
|
||||
"email address that will be shared with all emails you send."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid "Imprint URL"
|
||||
msgstr "Link naar colofon"
|
||||
@@ -20014,9 +20001,8 @@ msgid ""
|
||||
"\n"
|
||||
" %(code)s\n"
|
||||
"\n"
|
||||
"Don't share this code with anyone unless you want to authorize them to use "
|
||||
"this address for this purpose. The %(instance)s team will never ask you for "
|
||||
"it.\n"
|
||||
"Don't share this code with anyone. The %(instance)s team will never ask you "
|
||||
"for it.\n"
|
||||
"\n"
|
||||
"If you didn't request this, you can safely ignore this email.\n"
|
||||
"\n"
|
||||
@@ -20131,7 +20117,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"If it was you, no action is needed.\n"
|
||||
"\n"
|
||||
"If you don't recognize this sign-in, please change your password "
|
||||
"If you don't recognise this sign-in, please change your password "
|
||||
"immediately:\n"
|
||||
"\n"
|
||||
"%(url)s\n"
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-07 09:30+0000\n"
|
||||
"POT-Creation-Date: 2026-07-06 15:48+0000\n"
|
||||
"PO-Revision-Date: 2026-05-05 13:26+0000\n"
|
||||
"Last-Translator: Ruud Hendrickx <ruud@leckxicon.eu>\n"
|
||||
"Language-Team: Dutch (Belgium) <https://translate.pretix.eu/projects/pretix/"
|
||||
@@ -11460,19 +11460,6 @@ msgstr "Contactadres"
|
||||
msgid "We'll show this publicly to allow attendees to contact you."
|
||||
msgstr "We tonen dit, zodat deelnemers contact met u kunnen opnemen."
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "Contact"
|
||||
msgid "Contact URL"
|
||||
msgstr "Contact"
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid ""
|
||||
"If you set this, the footer contact link will point here instead of using "
|
||||
"the email address above. Please note that you still need to add a contact "
|
||||
"email address that will be shared with all emails you send."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid "Imprint URL"
|
||||
msgstr "Link naar colofon"
|
||||
@@ -20008,9 +19995,8 @@ msgid ""
|
||||
"\n"
|
||||
" %(code)s\n"
|
||||
"\n"
|
||||
"Don't share this code with anyone unless you want to authorize them to use "
|
||||
"this address for this purpose. The %(instance)s team will never ask you for "
|
||||
"it.\n"
|
||||
"Don't share this code with anyone. The %(instance)s team will never ask you "
|
||||
"for it.\n"
|
||||
"\n"
|
||||
"If you didn't request this, you can safely ignore this email.\n"
|
||||
"\n"
|
||||
@@ -20125,7 +20111,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"If it was you, no action is needed.\n"
|
||||
"\n"
|
||||
"If you don't recognize this sign-in, please change your password "
|
||||
"If you don't recognise this sign-in, please change your password "
|
||||
"immediately:\n"
|
||||
"\n"
|
||||
"%(url)s\n"
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-07 09:30+0000\n"
|
||||
"POT-Creation-Date: 2026-07-06 15:48+0000\n"
|
||||
"PO-Revision-Date: 2026-03-31 17:00+0000\n"
|
||||
"Last-Translator: Ruud Hendrickx <ruud@leckxicon.eu>\n"
|
||||
"Language-Team: Dutch (informal) <https://translate.pretix.eu/projects/pretix/"
|
||||
@@ -11495,19 +11495,6 @@ msgstr ""
|
||||
"We zullen dit publiek tonen om gasten toe te staan contact met je op te "
|
||||
"nemen."
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "Contact"
|
||||
msgid "Contact URL"
|
||||
msgstr "Contact"
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid ""
|
||||
"If you set this, the footer contact link will point here instead of using "
|
||||
"the email address above. Please note that you still need to add a contact "
|
||||
"email address that will be shared with all emails you send."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid "Imprint URL"
|
||||
msgstr "Imprint-URL"
|
||||
@@ -20055,9 +20042,8 @@ msgid ""
|
||||
"\n"
|
||||
" %(code)s\n"
|
||||
"\n"
|
||||
"Don't share this code with anyone unless you want to authorize them to use "
|
||||
"this address for this purpose. The %(instance)s team will never ask you for "
|
||||
"it.\n"
|
||||
"Don't share this code with anyone. The %(instance)s team will never ask you "
|
||||
"for it.\n"
|
||||
"\n"
|
||||
"If you didn't request this, you can safely ignore this email.\n"
|
||||
"\n"
|
||||
@@ -20173,7 +20159,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"If it was you, no action is needed.\n"
|
||||
"\n"
|
||||
"If you don't recognize this sign-in, please change your password "
|
||||
"If you don't recognise this sign-in, please change your password "
|
||||
"immediately:\n"
|
||||
"\n"
|
||||
"%(url)s\n"
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-07 09:30+0000\n"
|
||||
"POT-Creation-Date: 2026-07-06 15:48+0000\n"
|
||||
"PO-Revision-Date: 2025-10-04 19:00+0000\n"
|
||||
"Last-Translator: Sebastian Bożek <sebastian@log-mar.pl>\n"
|
||||
"Language-Team: Polish <https://translate.pretix.eu/projects/pretix/pretix/pl/"
|
||||
@@ -11560,19 +11560,6 @@ msgid "We'll show this publicly to allow attendees to contact you."
|
||||
msgstr ""
|
||||
"Pokażmy to jawnie, aby umożliwić uczestnikom skontaktowanie się z Tobą."
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "Contact:"
|
||||
msgid "Contact URL"
|
||||
msgstr "Kontakt:"
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid ""
|
||||
"If you set this, the footer contact link will point here instead of using "
|
||||
"the email address above. Please note that you still need to add a contact "
|
||||
"email address that will be shared with all emails you send."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid "Imprint URL"
|
||||
msgstr "Adres URL nadruku"
|
||||
@@ -20164,9 +20151,8 @@ msgid ""
|
||||
"\n"
|
||||
" %(code)s\n"
|
||||
"\n"
|
||||
"Don't share this code with anyone unless you want to authorize them to use "
|
||||
"this address for this purpose. The %(instance)s team will never ask you for "
|
||||
"it.\n"
|
||||
"Don't share this code with anyone. The %(instance)s team will never ask you "
|
||||
"for it.\n"
|
||||
"\n"
|
||||
"If you didn't request this, you can safely ignore this email.\n"
|
||||
"\n"
|
||||
@@ -20282,7 +20268,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"If it was you, no action is needed.\n"
|
||||
"\n"
|
||||
"If you don't recognize this sign-in, please change your password "
|
||||
"If you don't recognise this sign-in, please change your password "
|
||||
"immediately:\n"
|
||||
"\n"
|
||||
"%(url)s\n"
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-07 09:30+0000\n"
|
||||
"POT-Creation-Date: 2026-07-06 15:48+0000\n"
|
||||
"PO-Revision-Date: 2025-01-20 01:00+0000\n"
|
||||
"Last-Translator: Serge Bazanski <sergiusz@q3k.org>\n"
|
||||
"Language-Team: Polish (informal) <https://translate.pretix.eu/projects/"
|
||||
@@ -10576,17 +10576,6 @@ msgstr ""
|
||||
msgid "We'll show this publicly to allow attendees to contact you."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid "Contact URL"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid ""
|
||||
"If you set this, the footer contact link will point here instead of using "
|
||||
"the email address above. Please note that you still need to add a contact "
|
||||
"email address that will be shared with all emails you send."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid "Imprint URL"
|
||||
msgstr ""
|
||||
@@ -17997,9 +17986,8 @@ msgid ""
|
||||
"\n"
|
||||
" %(code)s\n"
|
||||
"\n"
|
||||
"Don't share this code with anyone unless you want to authorize them to use "
|
||||
"this address for this purpose. The %(instance)s team will never ask you for "
|
||||
"it.\n"
|
||||
"Don't share this code with anyone. The %(instance)s team will never ask you "
|
||||
"for it.\n"
|
||||
"\n"
|
||||
"If you didn't request this, you can safely ignore this email.\n"
|
||||
"\n"
|
||||
@@ -18066,7 +18054,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"If it was you, no action is needed.\n"
|
||||
"\n"
|
||||
"If you don't recognize this sign-in, please change your password "
|
||||
"If you don't recognise this sign-in, please change your password "
|
||||
"immediately:\n"
|
||||
"\n"
|
||||
"%(url)s\n"
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-07 09:30+0000\n"
|
||||
"POT-Creation-Date: 2026-07-06 15:48+0000\n"
|
||||
"PO-Revision-Date: 2025-06-05 04:00+0000\n"
|
||||
"Last-Translator: Francisco Rosa <francisco@comm7.net>\n"
|
||||
"Language-Team: Portuguese <https://translate.pretix.eu/projects/pretix/"
|
||||
@@ -10493,19 +10493,6 @@ msgstr ""
|
||||
msgid "We'll show this publicly to allow attendees to contact you."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "Bancontact"
|
||||
msgid "Contact URL"
|
||||
msgstr "Contato bancário"
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid ""
|
||||
"If you set this, the footer contact link will point here instead of using "
|
||||
"the email address above. Please note that you still need to add a contact "
|
||||
"email address that will be shared with all emails you send."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid "Imprint URL"
|
||||
msgstr ""
|
||||
@@ -18024,9 +18011,8 @@ msgid ""
|
||||
"\n"
|
||||
" %(code)s\n"
|
||||
"\n"
|
||||
"Don't share this code with anyone unless you want to authorize them to use "
|
||||
"this address for this purpose. The %(instance)s team will never ask you for "
|
||||
"it.\n"
|
||||
"Don't share this code with anyone. The %(instance)s team will never ask you "
|
||||
"for it.\n"
|
||||
"\n"
|
||||
"If you didn't request this, you can safely ignore this email.\n"
|
||||
"\n"
|
||||
@@ -18093,7 +18079,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"If it was you, no action is needed.\n"
|
||||
"\n"
|
||||
"If you don't recognize this sign-in, please change your password "
|
||||
"If you don't recognise this sign-in, please change your password "
|
||||
"immediately:\n"
|
||||
"\n"
|
||||
"%(url)s\n"
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-07 09:30+0000\n"
|
||||
"POT-Creation-Date: 2026-07-06 15:48+0000\n"
|
||||
"PO-Revision-Date: 2026-03-30 21:00+0000\n"
|
||||
"Last-Translator: Renne Rocha <renne@rocha.dev.br>\n"
|
||||
"Language-Team: Portuguese (Brazil) <https://translate.pretix.eu/projects/"
|
||||
@@ -11411,19 +11411,6 @@ msgstr ""
|
||||
"Exibido publicamente para que participantes possam entrar em contato com "
|
||||
"você."
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "Contact"
|
||||
msgid "Contact URL"
|
||||
msgstr "Contato"
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid ""
|
||||
"If you set this, the footer contact link will point here instead of using "
|
||||
"the email address above. Please note that you still need to add a contact "
|
||||
"email address that will be shared with all emails you send."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid "Imprint URL"
|
||||
msgstr "URL de impressão"
|
||||
@@ -19956,9 +19943,8 @@ msgid ""
|
||||
"\n"
|
||||
" %(code)s\n"
|
||||
"\n"
|
||||
"Don't share this code with anyone unless you want to authorize them to use "
|
||||
"this address for this purpose. The %(instance)s team will never ask you for "
|
||||
"it.\n"
|
||||
"Don't share this code with anyone. The %(instance)s team will never ask you "
|
||||
"for it.\n"
|
||||
"\n"
|
||||
"If you didn't request this, you can safely ignore this email.\n"
|
||||
"\n"
|
||||
@@ -20075,7 +20061,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"If it was you, no action is needed.\n"
|
||||
"\n"
|
||||
"If you don't recognize this sign-in, please change your password "
|
||||
"If you don't recognise this sign-in, please change your password "
|
||||
"immediately:\n"
|
||||
"\n"
|
||||
"%(url)s\n"
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-07 09:30+0000\n"
|
||||
"POT-Creation-Date: 2026-07-06 15:48+0000\n"
|
||||
"PO-Revision-Date: 2025-12-11 01:00+0000\n"
|
||||
"Last-Translator: Ana Rute Pacheco Vivas <rute.vivas@om.org>\n"
|
||||
"Language-Team: Portuguese (Portugal) <https://translate.pretix.eu/projects/"
|
||||
@@ -11532,19 +11532,6 @@ msgstr ""
|
||||
"Vamos mostrar publicamente para permitir que os participantes entrem em "
|
||||
"contato consigo."
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "Contact:"
|
||||
msgid "Contact URL"
|
||||
msgstr "Contacto:"
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid ""
|
||||
"If you set this, the footer contact link will point here instead of using "
|
||||
"the email address above. Please note that you still need to add a contact "
|
||||
"email address that will be shared with all emails you send."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid "Imprint URL"
|
||||
msgstr "URL de impressão"
|
||||
@@ -20239,9 +20226,8 @@ msgid ""
|
||||
"\n"
|
||||
" %(code)s\n"
|
||||
"\n"
|
||||
"Don't share this code with anyone unless you want to authorize them to use "
|
||||
"this address for this purpose. The %(instance)s team will never ask you for "
|
||||
"it.\n"
|
||||
"Don't share this code with anyone. The %(instance)s team will never ask you "
|
||||
"for it.\n"
|
||||
"\n"
|
||||
"If you didn't request this, you can safely ignore this email.\n"
|
||||
"\n"
|
||||
@@ -20356,7 +20342,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"If it was you, no action is needed.\n"
|
||||
"\n"
|
||||
"If you don't recognize this sign-in, please change your password "
|
||||
"If you don't recognise this sign-in, please change your password "
|
||||
"immediately:\n"
|
||||
"\n"
|
||||
"%(url)s\n"
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-07 09:30+0000\n"
|
||||
"POT-Creation-Date: 2026-07-06 15:48+0000\n"
|
||||
"PO-Revision-Date: 2025-10-09 16:00+0000\n"
|
||||
"Last-Translator: Edd28 <chitu_edy@yahoo.com>\n"
|
||||
"Language-Team: Romanian <https://translate.pretix.eu/projects/pretix/pretix/"
|
||||
@@ -11912,19 +11912,6 @@ msgstr ""
|
||||
"Vom afișa acest lucru în mod public pentru a permite participanților să vă "
|
||||
"contacteze."
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "Contact:"
|
||||
msgid "Contact URL"
|
||||
msgstr "Contact:"
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid ""
|
||||
"If you set this, the footer contact link will point here instead of using "
|
||||
"the email address above. Please note that you still need to add a contact "
|
||||
"email address that will be shared with all emails you send."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid "Imprint URL"
|
||||
msgstr "URL Imprint"
|
||||
@@ -20875,9 +20862,8 @@ msgid ""
|
||||
"\n"
|
||||
" %(code)s\n"
|
||||
"\n"
|
||||
"Don't share this code with anyone unless you want to authorize them to use "
|
||||
"this address for this purpose. The %(instance)s team will never ask you for "
|
||||
"it.\n"
|
||||
"Don't share this code with anyone. The %(instance)s team will never ask you "
|
||||
"for it.\n"
|
||||
"\n"
|
||||
"If you didn't request this, you can safely ignore this email.\n"
|
||||
"\n"
|
||||
@@ -20995,7 +20981,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"If it was you, no action is needed.\n"
|
||||
"\n"
|
||||
"If you don't recognize this sign-in, please change your password "
|
||||
"If you don't recognise this sign-in, please change your password "
|
||||
"immediately:\n"
|
||||
"\n"
|
||||
"%(url)s\n"
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-07 09:30+0000\n"
|
||||
"POT-Creation-Date: 2026-07-06 15:48+0000\n"
|
||||
"PO-Revision-Date: 2026-06-30 16:52+0000\n"
|
||||
"Last-Translator: Nikita Mitasov <me@ch4og.com>\n"
|
||||
"Language-Team: Russian <https://translate.pretix.eu/projects/pretix/pretix/"
|
||||
@@ -11693,19 +11693,6 @@ msgstr ""
|
||||
msgid "We'll show this publicly to allow attendees to contact you."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "Contact"
|
||||
msgid "Contact URL"
|
||||
msgstr "Связаться"
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid ""
|
||||
"If you set this, the footer contact link will point here instead of using "
|
||||
"the email address above. Please note that you still need to add a contact "
|
||||
"email address that will be shared with all emails you send."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid "Imprint URL"
|
||||
msgstr ""
|
||||
@@ -19877,9 +19864,8 @@ msgid ""
|
||||
"\n"
|
||||
" %(code)s\n"
|
||||
"\n"
|
||||
"Don't share this code with anyone unless you want to authorize them to use "
|
||||
"this address for this purpose. The %(instance)s team will never ask you for "
|
||||
"it.\n"
|
||||
"Don't share this code with anyone. The %(instance)s team will never ask you "
|
||||
"for it.\n"
|
||||
"\n"
|
||||
"If you didn't request this, you can safely ignore this email.\n"
|
||||
"\n"
|
||||
@@ -19946,7 +19932,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"If it was you, no action is needed.\n"
|
||||
"\n"
|
||||
"If you don't recognize this sign-in, please change your password "
|
||||
"If you don't recognise this sign-in, please change your password "
|
||||
"immediately:\n"
|
||||
"\n"
|
||||
"%(url)s\n"
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-07 09:30+0000\n"
|
||||
"POT-Creation-Date: 2026-07-06 15:48+0000\n"
|
||||
"PO-Revision-Date: 2021-03-03 06:00+0000\n"
|
||||
"Last-Translator: helabasa <R45XvezA@pm.me>\n"
|
||||
"Language-Team: Sinhala <https://translate.pretix.eu/projects/pretix/pretix/"
|
||||
@@ -10268,17 +10268,6 @@ msgstr ""
|
||||
msgid "We'll show this publicly to allow attendees to contact you."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid "Contact URL"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid ""
|
||||
"If you set this, the footer contact link will point here instead of using "
|
||||
"the email address above. Please note that you still need to add a contact "
|
||||
"email address that will be shared with all emails you send."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid "Imprint URL"
|
||||
msgstr ""
|
||||
@@ -17669,9 +17658,8 @@ msgid ""
|
||||
"\n"
|
||||
" %(code)s\n"
|
||||
"\n"
|
||||
"Don't share this code with anyone unless you want to authorize them to use "
|
||||
"this address for this purpose. The %(instance)s team will never ask you for "
|
||||
"it.\n"
|
||||
"Don't share this code with anyone. The %(instance)s team will never ask you "
|
||||
"for it.\n"
|
||||
"\n"
|
||||
"If you didn't request this, you can safely ignore this email.\n"
|
||||
"\n"
|
||||
@@ -17738,7 +17726,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"If it was you, no action is needed.\n"
|
||||
"\n"
|
||||
"If you don't recognize this sign-in, please change your password "
|
||||
"If you don't recognise this sign-in, please change your password "
|
||||
"immediately:\n"
|
||||
"\n"
|
||||
"%(url)s\n"
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-07 09:30+0000\n"
|
||||
"POT-Creation-Date: 2026-07-06 15:48+0000\n"
|
||||
"PO-Revision-Date: 2025-03-15 20:49+0000\n"
|
||||
"Last-Translator: Kristian Feldsam <feldsam@gmail.com>\n"
|
||||
"Language-Team: Slovak <https://translate.pretix.eu/projects/pretix/pretix/sk/"
|
||||
@@ -11407,19 +11407,6 @@ msgid "We'll show this publicly to allow attendees to contact you."
|
||||
msgstr ""
|
||||
"Túto informáciu zobrazíme verejne, aby vás účastníci mohli kontaktovať."
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "Contact:"
|
||||
msgid "Contact URL"
|
||||
msgstr "Kontakt:"
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid ""
|
||||
"If you set this, the footer contact link will point here instead of using "
|
||||
"the email address above. Please note that you still need to add a contact "
|
||||
"email address that will be shared with all emails you send."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid "Imprint URL"
|
||||
msgstr "Právne informácie"
|
||||
@@ -19947,9 +19934,8 @@ msgid ""
|
||||
"\n"
|
||||
" %(code)s\n"
|
||||
"\n"
|
||||
"Don't share this code with anyone unless you want to authorize them to use "
|
||||
"this address for this purpose. The %(instance)s team will never ask you for "
|
||||
"it.\n"
|
||||
"Don't share this code with anyone. The %(instance)s team will never ask you "
|
||||
"for it.\n"
|
||||
"\n"
|
||||
"If you didn't request this, you can safely ignore this email.\n"
|
||||
"\n"
|
||||
@@ -20064,7 +20050,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"If it was you, no action is needed.\n"
|
||||
"\n"
|
||||
"If you don't recognize this sign-in, please change your password "
|
||||
"If you don't recognise this sign-in, please change your password "
|
||||
"immediately:\n"
|
||||
"\n"
|
||||
"%(url)s\n"
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-07 09:30+0000\n"
|
||||
"POT-Creation-Date: 2026-07-06 15:48+0000\n"
|
||||
"PO-Revision-Date: 2024-11-18 16:09+0100\n"
|
||||
"Last-Translator: Lovro <lovrogrilc@gmail.com>\n"
|
||||
"Language-Team: Slovenian <https://translate.pretix.eu/projects/pretix/pretix/"
|
||||
@@ -11680,17 +11680,6 @@ msgstr ""
|
||||
msgid "We'll show this publicly to allow attendees to contact you."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid "Contact URL"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid ""
|
||||
"If you set this, the footer contact link will point here instead of using "
|
||||
"the email address above. Please note that you still need to add a contact "
|
||||
"email address that will be shared with all emails you send."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid "Imprint URL"
|
||||
msgstr ""
|
||||
@@ -19678,9 +19667,8 @@ msgid ""
|
||||
"\n"
|
||||
" %(code)s\n"
|
||||
"\n"
|
||||
"Don't share this code with anyone unless you want to authorize them to use "
|
||||
"this address for this purpose. The %(instance)s team will never ask you for "
|
||||
"it.\n"
|
||||
"Don't share this code with anyone. The %(instance)s team will never ask you "
|
||||
"for it.\n"
|
||||
"\n"
|
||||
"If you didn't request this, you can safely ignore this email.\n"
|
||||
"\n"
|
||||
@@ -19747,7 +19735,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"If it was you, no action is needed.\n"
|
||||
"\n"
|
||||
"If you don't recognize this sign-in, please change your password "
|
||||
"If you don't recognise this sign-in, please change your password "
|
||||
"immediately:\n"
|
||||
"\n"
|
||||
"%(url)s\n"
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-07 09:30+0000\n"
|
||||
"POT-Creation-Date: 2026-07-06 15:48+0000\n"
|
||||
"PO-Revision-Date: 2026-02-19 22:00+0000\n"
|
||||
"Last-Translator: Ruud Hendrickx <ruud@leckxicon.eu>\n"
|
||||
"Language-Team: Albanian <https://translate.pretix.eu/projects/pretix/pretix/"
|
||||
@@ -10205,17 +10205,6 @@ msgstr ""
|
||||
msgid "We'll show this publicly to allow attendees to contact you."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid "Contact URL"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid ""
|
||||
"If you set this, the footer contact link will point here instead of using "
|
||||
"the email address above. Please note that you still need to add a contact "
|
||||
"email address that will be shared with all emails you send."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid "Imprint URL"
|
||||
msgstr ""
|
||||
@@ -17567,9 +17556,8 @@ msgid ""
|
||||
"\n"
|
||||
" %(code)s\n"
|
||||
"\n"
|
||||
"Don't share this code with anyone unless you want to authorize them to use "
|
||||
"this address for this purpose. The %(instance)s team will never ask you for "
|
||||
"it.\n"
|
||||
"Don't share this code with anyone. The %(instance)s team will never ask you "
|
||||
"for it.\n"
|
||||
"\n"
|
||||
"If you didn't request this, you can safely ignore this email.\n"
|
||||
"\n"
|
||||
@@ -17636,7 +17624,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"If it was you, no action is needed.\n"
|
||||
"\n"
|
||||
"If you don't recognize this sign-in, please change your password "
|
||||
"If you don't recognise this sign-in, please change your password "
|
||||
"immediately:\n"
|
||||
"\n"
|
||||
"%(url)s\n"
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-07 09:30+0000\n"
|
||||
"POT-Creation-Date: 2026-07-06 15:48+0000\n"
|
||||
"PO-Revision-Date: 2026-03-27 09:03+0000\n"
|
||||
"Last-Translator: Linnea Thelander <linnea@coeo.events>\n"
|
||||
"Language-Team: Swedish <https://translate.pretix.eu/projects/pretix/pretix/"
|
||||
@@ -11518,19 +11518,6 @@ msgstr "Kontaktadress"
|
||||
msgid "We'll show this publicly to allow attendees to contact you."
|
||||
msgstr "Vi kommer att visa detta offentligt så att deltagare kan kontakta dig."
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "Contact:"
|
||||
msgid "Contact URL"
|
||||
msgstr "Kontakt:"
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid ""
|
||||
"If you set this, the footer contact link will point here instead of using "
|
||||
"the email address above. Please note that you still need to add a contact "
|
||||
"email address that will be shared with all emails you send."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid "Imprint URL"
|
||||
msgstr "Länk till sidan med upphovsrättsinformation"
|
||||
@@ -20150,9 +20137,8 @@ msgid ""
|
||||
"\n"
|
||||
" %(code)s\n"
|
||||
"\n"
|
||||
"Don't share this code with anyone unless you want to authorize them to use "
|
||||
"this address for this purpose. The %(instance)s team will never ask you for "
|
||||
"it.\n"
|
||||
"Don't share this code with anyone. The %(instance)s team will never ask you "
|
||||
"for it.\n"
|
||||
"\n"
|
||||
"If you didn't request this, you can safely ignore this email.\n"
|
||||
"\n"
|
||||
@@ -20269,7 +20255,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"If it was you, no action is needed.\n"
|
||||
"\n"
|
||||
"If you don't recognize this sign-in, please change your password "
|
||||
"If you don't recognise this sign-in, please change your password "
|
||||
"immediately:\n"
|
||||
"\n"
|
||||
"%(url)s\n"
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-07 09:30+0000\n"
|
||||
"POT-Creation-Date: 2026-07-06 15:48+0000\n"
|
||||
"PO-Revision-Date: 2026-05-20 10:58+0000\n"
|
||||
"Last-Translator: Phumraphee Sae-tang <phumraphee@gmail.com>\n"
|
||||
"Language-Team: Thai <https://translate.pretix.eu/projects/pretix/pretix/th/"
|
||||
@@ -10844,19 +10844,6 @@ msgstr "ข้อมูลติดต่อ"
|
||||
msgid "We'll show this publicly to allow attendees to contact you."
|
||||
msgstr "เราจะแสดงข้อมูลนี้ต่อสาธารณะเพื่อให้ผู้เข้างานสามารถติดต่อคุณได้"
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "Contact"
|
||||
msgid "Contact URL"
|
||||
msgstr "ติดต่อ"
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid ""
|
||||
"If you set this, the footer contact link will point here instead of using "
|
||||
"the email address above. Please note that you still need to add a contact "
|
||||
"email address that will be shared with all emails you send."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid "Imprint URL"
|
||||
msgstr "URL ข้อมูลทางกฎหมายและผู้จัดงาน (Imprint)"
|
||||
@@ -18404,9 +18391,8 @@ msgid ""
|
||||
"\n"
|
||||
" %(code)s\n"
|
||||
"\n"
|
||||
"Don't share this code with anyone unless you want to authorize them to use "
|
||||
"this address for this purpose. The %(instance)s team will never ask you for "
|
||||
"it.\n"
|
||||
"Don't share this code with anyone. The %(instance)s team will never ask you "
|
||||
"for it.\n"
|
||||
"\n"
|
||||
"If you didn't request this, you can safely ignore this email.\n"
|
||||
"\n"
|
||||
@@ -18473,7 +18459,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"If it was you, no action is needed.\n"
|
||||
"\n"
|
||||
"If you don't recognize this sign-in, please change your password "
|
||||
"If you don't recognise this sign-in, please change your password "
|
||||
"immediately:\n"
|
||||
"\n"
|
||||
"%(url)s\n"
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-07 09:30+0000\n"
|
||||
"POT-Creation-Date: 2026-07-06 15:48+0000\n"
|
||||
"PO-Revision-Date: 2026-03-11 00:00+0000\n"
|
||||
"Last-Translator: Demir Kaya <demir@indieturk.org>\n"
|
||||
"Language-Team: Turkish <https://translate.pretix.eu/projects/pretix/pretix/"
|
||||
@@ -12151,19 +12151,6 @@ msgstr ""
|
||||
"Katılımcıların sizinle iletişim kurmasına izin vermek için bunu herkese açık "
|
||||
"olarak gösteririz."
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "Contact:"
|
||||
msgid "Contact URL"
|
||||
msgstr "İletişim:"
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid ""
|
||||
"If you set this, the footer contact link will point here instead of using "
|
||||
"the email address above. Please note that you still need to add a contact "
|
||||
"email address that will be shared with all emails you send."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid "Imprint URL"
|
||||
msgstr "Künye URL'si"
|
||||
@@ -21359,9 +21346,8 @@ msgid ""
|
||||
"\n"
|
||||
" %(code)s\n"
|
||||
"\n"
|
||||
"Don't share this code with anyone unless you want to authorize them to use "
|
||||
"this address for this purpose. The %(instance)s team will never ask you for "
|
||||
"it.\n"
|
||||
"Don't share this code with anyone. The %(instance)s team will never ask you "
|
||||
"for it.\n"
|
||||
"\n"
|
||||
"If you didn't request this, you can safely ignore this email.\n"
|
||||
"\n"
|
||||
@@ -21462,7 +21448,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"If it was you, no action is needed.\n"
|
||||
"\n"
|
||||
"If you don't recognize this sign-in, please change your password "
|
||||
"If you don't recognise this sign-in, please change your password "
|
||||
"immediately:\n"
|
||||
"\n"
|
||||
"%(url)s\n"
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-07 09:30+0000\n"
|
||||
"POT-Creation-Date: 2026-07-06 15:48+0000\n"
|
||||
"PO-Revision-Date: 2025-11-14 06:00+0000\n"
|
||||
"Last-Translator: Andrii Andriiashyn <andr_andrey@ukr.net>\n"
|
||||
"Language-Team: Ukrainian <https://translate.pretix.eu/projects/pretix/pretix/"
|
||||
@@ -11732,19 +11732,6 @@ msgstr ""
|
||||
"Це буде відображатись для всіх для того, щоб учасники могли з вами "
|
||||
"сконтактувати."
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "Contact:"
|
||||
msgid "Contact URL"
|
||||
msgstr "Контакт:"
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid ""
|
||||
"If you set this, the footer contact link will point here instead of using "
|
||||
"the email address above. Please note that you still need to add a contact "
|
||||
"email address that will be shared with all emails you send."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid "Imprint URL"
|
||||
msgstr "Вставити URL"
|
||||
@@ -20506,9 +20493,8 @@ msgid ""
|
||||
"\n"
|
||||
" %(code)s\n"
|
||||
"\n"
|
||||
"Don't share this code with anyone unless you want to authorize them to use "
|
||||
"this address for this purpose. The %(instance)s team will never ask you for "
|
||||
"it.\n"
|
||||
"Don't share this code with anyone. The %(instance)s team will never ask you "
|
||||
"for it.\n"
|
||||
"\n"
|
||||
"If you didn't request this, you can safely ignore this email.\n"
|
||||
"\n"
|
||||
@@ -20625,7 +20611,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"If it was you, no action is needed.\n"
|
||||
"\n"
|
||||
"If you don't recognize this sign-in, please change your password "
|
||||
"If you don't recognise this sign-in, please change your password "
|
||||
"immediately:\n"
|
||||
"\n"
|
||||
"%(url)s\n"
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-07 09:30+0000\n"
|
||||
"POT-Creation-Date: 2026-07-06 15:48+0000\n"
|
||||
"PO-Revision-Date: 2025-06-11 02:00+0000\n"
|
||||
"Last-Translator: Michael Dao <garudong89@gmail.com>\n"
|
||||
"Language-Team: Vietnamese <https://translate.pretix.eu/projects/pretix/"
|
||||
@@ -11075,19 +11075,6 @@ msgstr ""
|
||||
"Chúng tôi sẽ hiển thị công khai này để cho phép người tham dự liên hệ với "
|
||||
"bạn."
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "Contact:"
|
||||
msgid "Contact URL"
|
||||
msgstr "Liên hệ:"
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid ""
|
||||
"If you set this, the footer contact link will point here instead of using "
|
||||
"the email address above. Please note that you still need to add a contact "
|
||||
"email address that will be shared with all emails you send."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid "Imprint URL"
|
||||
msgstr "Url in dấu"
|
||||
@@ -18994,9 +18981,8 @@ msgid ""
|
||||
"\n"
|
||||
" %(code)s\n"
|
||||
"\n"
|
||||
"Don't share this code with anyone unless you want to authorize them to use "
|
||||
"this address for this purpose. The %(instance)s team will never ask you for "
|
||||
"it.\n"
|
||||
"Don't share this code with anyone. The %(instance)s team will never ask you "
|
||||
"for it.\n"
|
||||
"\n"
|
||||
"If you didn't request this, you can safely ignore this email.\n"
|
||||
"\n"
|
||||
@@ -19068,7 +19054,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"If it was you, no action is needed.\n"
|
||||
"\n"
|
||||
"If you don't recognize this sign-in, please change your password "
|
||||
"If you don't recognise this sign-in, please change your password "
|
||||
"immediately:\n"
|
||||
"\n"
|
||||
"%(url)s\n"
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-07 09:30+0000\n"
|
||||
"POT-Creation-Date: 2026-07-06 15:48+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: Automatically generated\n"
|
||||
"Language-Team: none\n"
|
||||
@@ -10195,17 +10195,6 @@ msgstr ""
|
||||
msgid "We'll show this publicly to allow attendees to contact you."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid "Contact URL"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid ""
|
||||
"If you set this, the footer contact link will point here instead of using "
|
||||
"the email address above. Please note that you still need to add a contact "
|
||||
"email address that will be shared with all emails you send."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid "Imprint URL"
|
||||
msgstr ""
|
||||
@@ -17557,9 +17546,8 @@ msgid ""
|
||||
"\n"
|
||||
" %(code)s\n"
|
||||
"\n"
|
||||
"Don't share this code with anyone unless you want to authorize them to use "
|
||||
"this address for this purpose. The %(instance)s team will never ask you for "
|
||||
"it.\n"
|
||||
"Don't share this code with anyone. The %(instance)s team will never ask you "
|
||||
"for it.\n"
|
||||
"\n"
|
||||
"If you didn't request this, you can safely ignore this email.\n"
|
||||
"\n"
|
||||
@@ -17626,7 +17614,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"If it was you, no action is needed.\n"
|
||||
"\n"
|
||||
"If you don't recognize this sign-in, please change your password "
|
||||
"If you don't recognise this sign-in, please change your password "
|
||||
"immediately:\n"
|
||||
"\n"
|
||||
"%(url)s\n"
|
||||
|
||||
@@ -78,7 +78,6 @@ IBANs
|
||||
iCal
|
||||
ics
|
||||
iDEAL
|
||||
Instagram
|
||||
Itaú
|
||||
integrations
|
||||
intra
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-07 09:30+0000\n"
|
||||
"POT-Creation-Date: 2026-07-06 15:48+0000\n"
|
||||
"PO-Revision-Date: 2024-12-25 23:27+0000\n"
|
||||
"Last-Translator: Aarni Heinonen <vamoosev@gmail.com>\n"
|
||||
"Language-Team: Chinese (Simplified Han script) <https://translate.pretix.eu/"
|
||||
@@ -11700,19 +11700,6 @@ msgstr "联系地址"
|
||||
msgid "We'll show this publicly to allow attendees to contact you."
|
||||
msgstr "我们将公开展示此内容,以便观众与您联系。"
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "Bancontact"
|
||||
msgid "Contact URL"
|
||||
msgstr "Bancontact"
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid ""
|
||||
"If you set this, the footer contact link will point here instead of using "
|
||||
"the email address above. Please note that you still need to add a contact "
|
||||
"email address that will be shared with all emails you send."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid "Imprint URL"
|
||||
msgstr "版本说明网址"
|
||||
@@ -20587,9 +20574,8 @@ msgid ""
|
||||
"\n"
|
||||
" %(code)s\n"
|
||||
"\n"
|
||||
"Don't share this code with anyone unless you want to authorize them to use "
|
||||
"this address for this purpose. The %(instance)s team will never ask you for "
|
||||
"it.\n"
|
||||
"Don't share this code with anyone. The %(instance)s team will never ask you "
|
||||
"for it.\n"
|
||||
"\n"
|
||||
"If you didn't request this, you can safely ignore this email.\n"
|
||||
"\n"
|
||||
@@ -20687,7 +20673,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"If it was you, no action is needed.\n"
|
||||
"\n"
|
||||
"If you don't recognize this sign-in, please change your password "
|
||||
"If you don't recognise this sign-in, please change your password "
|
||||
"immediately:\n"
|
||||
"\n"
|
||||
"%(url)s\n"
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-07 09:30+0000\n"
|
||||
"POT-Creation-Date: 2026-07-06 15:48+0000\n"
|
||||
"PO-Revision-Date: 2026-06-01 09:00+0000\n"
|
||||
"Last-Translator: Hijiri Umemoto <hijiri@umemoto.org>\n"
|
||||
"Language-Team: Chinese (Traditional Han script) <https://translate.pretix.eu/"
|
||||
@@ -10856,19 +10856,6 @@ msgstr "聯絡地址"
|
||||
msgid "We'll show this publicly to allow attendees to contact you."
|
||||
msgstr "我們將公開顯示此資訊,以便出席者與你聯繫。"
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
#, fuzzy
|
||||
#| msgid "Contact:"
|
||||
msgid "Contact URL"
|
||||
msgstr "聯絡:"
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid ""
|
||||
"If you set this, the footer contact link will point here instead of using "
|
||||
"the email address above. Please note that you still need to add a contact "
|
||||
"email address that will be shared with all emails you send."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/base/settings.py pretix/control/forms/event.py
|
||||
msgid "Imprint URL"
|
||||
msgstr "版本說明網址"
|
||||
@@ -19011,9 +18998,8 @@ msgid ""
|
||||
"\n"
|
||||
" %(code)s\n"
|
||||
"\n"
|
||||
"Don't share this code with anyone unless you want to authorize them to use "
|
||||
"this address for this purpose. The %(instance)s team will never ask you for "
|
||||
"it.\n"
|
||||
"Don't share this code with anyone. The %(instance)s team will never ask you "
|
||||
"for it.\n"
|
||||
"\n"
|
||||
"If you didn't request this, you can safely ignore this email.\n"
|
||||
"\n"
|
||||
@@ -19126,7 +19112,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"If it was you, no action is needed.\n"
|
||||
"\n"
|
||||
"If you don't recognize this sign-in, please change your password "
|
||||
"If you don't recognise this sign-in, please change your password "
|
||||
"immediately:\n"
|
||||
"\n"
|
||||
"%(url)s\n"
|
||||
|
||||
@@ -34,6 +34,8 @@
|
||||
|
||||
import logging
|
||||
import time
|
||||
from datetime import datetime
|
||||
from http.cookies import Morsel
|
||||
from urllib.parse import urlparse
|
||||
|
||||
from django.conf import settings
|
||||
@@ -51,16 +53,12 @@ from django.middleware.csrf import (
|
||||
from django.shortcuts import render
|
||||
from django.urls import set_urlconf
|
||||
from django.utils.cache import patch_vary_headers
|
||||
from django.utils.decorators import decorator_from_middleware
|
||||
from django.utils.deprecation import MiddlewareMixin
|
||||
from django.utils.http import http_date
|
||||
from django_scopes import scopes_disabled
|
||||
|
||||
from pretix.base.models import Event, Organizer
|
||||
from pretix.helpers.cookies import (
|
||||
get_all_values_of_cookie, set_cookie_without_samesite,
|
||||
thoroughly_delete_cookie,
|
||||
)
|
||||
from pretix.helpers.cookies import set_cookie_without_samesite
|
||||
from pretix.multidomain.models import KnownDomain
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
@@ -183,23 +181,9 @@ class SessionMiddleware(BaseSessionMiddleware):
|
||||
# The session should be deleted only if the session is entirely empty
|
||||
is_secure = request.scheme == 'https'
|
||||
if '__Host-' + settings.SESSION_COOKIE_NAME in request.COOKIES and empty:
|
||||
# response.delete_cookie does not work as we might have set a partitioned cookie
|
||||
thoroughly_delete_cookie(
|
||||
response,
|
||||
'__Host-' + settings.SESSION_COOKIE_NAME,
|
||||
path=settings.SESSION_COOKIE_PATH,
|
||||
secure=is_secure,
|
||||
httponly=settings.SESSION_COOKIE_HTTPONLY or None
|
||||
)
|
||||
response.delete_cookie('__Host-' + settings.SESSION_COOKIE_NAME)
|
||||
elif settings.SESSION_COOKIE_NAME in request.COOKIES and empty:
|
||||
# response.delete_cookie does not work as we might have set a partitioned cookie
|
||||
thoroughly_delete_cookie(
|
||||
response,
|
||||
settings.SESSION_COOKIE_NAME,
|
||||
path=settings.SESSION_COOKIE_PATH,
|
||||
secure=is_secure,
|
||||
httponly=settings.SESSION_COOKIE_HTTPONLY or None
|
||||
)
|
||||
response.delete_cookie(settings.SESSION_COOKIE_NAME)
|
||||
else:
|
||||
if accessed:
|
||||
patch_vary_headers(response, ('Cookie',))
|
||||
@@ -216,21 +200,15 @@ class SessionMiddleware(BaseSessionMiddleware):
|
||||
if response.status_code != 500:
|
||||
request.session.save()
|
||||
if is_secure and settings.SESSION_COOKIE_NAME in request.COOKIES: # remove legacy cookie
|
||||
# response.delete_cookie does not work as we might have set a partitioned cookie
|
||||
thoroughly_delete_cookie(
|
||||
response,
|
||||
settings.SESSION_COOKIE_NAME,
|
||||
path=settings.SESSION_COOKIE_PATH,
|
||||
secure=is_secure,
|
||||
httponly=settings.SESSION_COOKIE_HTTPONLY or None
|
||||
)
|
||||
response.delete_cookie(settings.SESSION_COOKIE_NAME)
|
||||
response.delete_cookie(settings.SESSION_COOKIE_NAME, samesite="None")
|
||||
set_cookie_without_samesite(
|
||||
request, response,
|
||||
'__Host-' + settings.SESSION_COOKIE_NAME if is_secure else settings.SESSION_COOKIE_NAME,
|
||||
request.session.session_key, max_age=max_age,
|
||||
expires=expires,
|
||||
path=settings.SESSION_COOKIE_PATH,
|
||||
secure=is_secure,
|
||||
secure=request.scheme == 'https',
|
||||
httponly=settings.SESSION_COOKIE_HTTPONLY or None
|
||||
)
|
||||
return response
|
||||
@@ -275,74 +253,75 @@ class CsrfViewMiddleware(BaseCsrfMiddleware):
|
||||
if request.session.get(CSRF_SESSION_KEY) != request.META["CSRF_COOKIE"]:
|
||||
request.session[CSRF_SESSION_KEY] = request.META["CSRF_COOKIE"]
|
||||
else:
|
||||
is_secure = request.scheme == 'https'
|
||||
# Set the CSRF cookie even if it's already set, so we renew
|
||||
# the expiry timer.
|
||||
|
||||
# remove legacy cookie
|
||||
if request.is_secure() and settings.CSRF_COOKIE_NAME in request.COOKIES:
|
||||
thoroughly_delete_cookie(
|
||||
response,
|
||||
settings.CSRF_COOKIE_NAME,
|
||||
path=settings.CSRF_COOKIE_PATH,
|
||||
secure=request.is_secure(),
|
||||
httponly=settings.CSRF_COOKIE_HTTPONLY
|
||||
)
|
||||
if is_secure and settings.CSRF_COOKIE_NAME in request.COOKIES: # remove legacy cookie
|
||||
response.delete_cookie(settings.CSRF_COOKIE_NAME)
|
||||
response.delete_cookie(settings.CSRF_COOKIE_NAME, samesite="None")
|
||||
|
||||
handle_duplicated_csrftoken(request, response)
|
||||
|
||||
set_cookie_without_samesite(
|
||||
request, response,
|
||||
'__Host-' + settings.CSRF_COOKIE_NAME if request.is_secure() else settings.CSRF_COOKIE_NAME,
|
||||
'__Host-' + settings.CSRF_COOKIE_NAME if is_secure else settings.CSRF_COOKIE_NAME,
|
||||
request.META["CSRF_COOKIE"],
|
||||
max_age=settings.CSRF_COOKIE_AGE,
|
||||
path=settings.CSRF_COOKIE_PATH,
|
||||
secure=request.is_secure(),
|
||||
secure=is_secure,
|
||||
httponly=settings.CSRF_COOKIE_HTTPONLY
|
||||
)
|
||||
# Content varies with the CSRF cookie, so set the Vary header.
|
||||
patch_vary_headers(response, ('Cookie',))
|
||||
|
||||
def process_response(self, request, response):
|
||||
if (
|
||||
not settings.CSRF_USE_SESSIONS
|
||||
and request.is_secure()
|
||||
and settings.CSRF_COOKIE_NAME in response.cookies
|
||||
and response.cookies[settings.CSRF_COOKIE_NAME].value
|
||||
):
|
||||
logger.warning("Usage of djangos CsrfViewMiddleware detected (legacy cookie found in response). "
|
||||
"This may be caused by using csrf_project or requires_csrf_token from django.views.decorators.csrf. "
|
||||
"Use the pretix.multidomain.middlewares equivalent instead.")
|
||||
|
||||
return super().process_response(request, response)
|
||||
|
||||
|
||||
def handle_duplicated_csrftoken(request, response):
|
||||
# Due to a Safari bug, in some browser, two csrftoken cookies can exist:
|
||||
# one unpartitioned, one partitioned. This function generates an additional
|
||||
# Due to a Safari bug, in some browser, two csrftoken cookies with different values
|
||||
# exist: one unpartitioned, one partitioned. This function generates an additional
|
||||
# Set-Cookie header to get rid of the unpartitioned one.
|
||||
|
||||
cookie_name = '__Host-' + settings.CSRF_COOKIE_NAME
|
||||
|
||||
if request.is_secure() and cookie_name in request.COOKIES:
|
||||
if request.scheme == 'https' and cookie_name in request.COOKIES:
|
||||
values = get_all_values_of_cookie(request.headers.get('Cookie'), cookie_name)
|
||||
if len(values) > 1:
|
||||
logger.info('Trying to remove duplicated %s cookies: %r', cookie_name, values)
|
||||
thoroughly_delete_cookie(
|
||||
response,
|
||||
cookie_name,
|
||||
secure=request.is_secure(),
|
||||
path=settings.CSRF_COOKIE_PATH,
|
||||
httponly=settings.CSRF_COOKIE_HTTPONLY
|
||||
)
|
||||
|
||||
# Make sure the set_cookie_without_samesite below will add a new item in the dictionary, placing
|
||||
# it below our deletion header.
|
||||
response.cookies.pop(cookie_name, None)
|
||||
|
||||
# Add the deletion Set-Cookie header to the cookie dict under a wrong name, so it doesn't get
|
||||
# overwritten by the set_cookie_without_samesite call below. This works because the code in
|
||||
# django.core.handlers.wsgi/asgi, that generates the actual Set-Cookie headers, only iterates
|
||||
# over cookie.values(), ignoring the keys.
|
||||
response.cookies['___DELETECOOKIE___' + cookie_name] = make_delete_morsel(cookie_name)
|
||||
|
||||
|
||||
csrf_protect = decorator_from_middleware(CsrfViewMiddleware)
|
||||
def get_all_values_of_cookie(cookie_header, cookie_name):
|
||||
# like django.http.cookie.parse_cookie, but returns all values of duplicated cookies instead of only the last
|
||||
values = list()
|
||||
if not cookie_header:
|
||||
return values
|
||||
for chunk in cookie_header.split(";"):
|
||||
if "=" in chunk:
|
||||
key, val = chunk.split("=", 1)
|
||||
else:
|
||||
# Assume an empty name per
|
||||
# https://bugzilla.mozilla.org/show_bug.cgi?id=169091
|
||||
key, val = "", chunk
|
||||
key, val = key.strip(), val.strip()
|
||||
if key == cookie_name:
|
||||
values.append(val)
|
||||
return values
|
||||
|
||||
|
||||
class _EnsureCsrfToken(CsrfViewMiddleware):
|
||||
# Behave like CsrfViewMiddleware but don't reject requests or log warnings.
|
||||
def _reject(self, request, reason):
|
||||
return None
|
||||
|
||||
|
||||
requires_csrf_token = decorator_from_middleware(_EnsureCsrfToken)
|
||||
def make_delete_morsel(name):
|
||||
m = Morsel()
|
||||
m.set(name, '', '')
|
||||
m['expires'] = datetime.utcfromtimestamp(0).strftime("%a, %d %b %Y %H:%M:%S GMT")
|
||||
m['samesite'] = 'None'
|
||||
m['secure'] = True
|
||||
m['path'] = settings.CSRF_COOKIE_PATH
|
||||
m['httponly'] = settings.CSRF_COOKIE_HTTPONLY
|
||||
return m
|
||||
|
||||
@@ -26,7 +26,6 @@ from collections import defaultdict
|
||||
from django.dispatch import receiver
|
||||
from django.template.loader import get_template
|
||||
from django.urls import resolve, reverse
|
||||
from django.utils.safestring import mark_safe
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
from pretix.base.logentrytypes import EventLogEntryType, log_entry_types
|
||||
@@ -154,7 +153,7 @@ def control_order_position_info(sender: Event, position, request, order: Order,
|
||||
'event': sender,
|
||||
'position': position
|
||||
}
|
||||
return mark_safe(template.render(ctx, request=request).strip())
|
||||
return template.render(ctx, request=request).strip()
|
||||
|
||||
|
||||
@receiver(order_info, dispatch_uid="badges_control_order_info")
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
from collections import OrderedDict
|
||||
from datetime import timezone
|
||||
|
||||
import bleach
|
||||
import dateutil.parser
|
||||
from django import forms
|
||||
from django.db.models import (
|
||||
@@ -43,7 +44,6 @@ from django.db.models import (
|
||||
from django.db.models.functions import Coalesce, NullIf
|
||||
from django.urls import reverse
|
||||
from django.utils.formats import date_format
|
||||
from django.utils.html import escape
|
||||
from django.utils.timezone import is_aware, make_aware, now
|
||||
from django.utils.translation import (
|
||||
gettext as _, gettext_lazy, pgettext, pgettext_lazy,
|
||||
@@ -64,9 +64,7 @@ from pretix.base.timeframes import (
|
||||
from pretix.control.forms.widgets import Select2
|
||||
from pretix.helpers.filenames import safe_for_filename
|
||||
from pretix.helpers.iter import chunked_iterable
|
||||
from pretix.helpers.reportlab import (
|
||||
FontFallbackParagraph, PlainTextParagraph, normalize_text,
|
||||
)
|
||||
from pretix.helpers.reportlab import PlainTextParagraph
|
||||
from pretix.helpers.templatetags.jsonfield import JSONExtract
|
||||
from pretix.plugins.reports.exporters import ReportlabExportMixin
|
||||
|
||||
@@ -411,7 +409,7 @@ class PDFCheckinList(ReportlabExportMixin, CheckInListMixin, BaseExporter):
|
||||
company = op.company or (op.addon_to.company if op.addon_to else '') or iac
|
||||
if company:
|
||||
if name:
|
||||
name += "\n"
|
||||
name += "<br/>"
|
||||
name += company
|
||||
|
||||
item = "{} ({})".format(
|
||||
@@ -419,17 +417,13 @@ class PDFCheckinList(ReportlabExportMixin, CheckInListMixin, BaseExporter):
|
||||
money_filter(op.price, self.event.currency),
|
||||
)
|
||||
if self.event.has_subevents and not cl.subevent:
|
||||
item += '\n{} ({})'.format(
|
||||
item += '<br/>{} ({})'.format(
|
||||
op.subevent.name,
|
||||
date_format(op.subevent.date_from.astimezone(self.event.timezone), 'SHORT_DATETIME_FORMAT')
|
||||
)
|
||||
if op.seat:
|
||||
item += '\n' + str(op.seat)
|
||||
|
||||
name = normalize_text(name)
|
||||
name = escape(name)
|
||||
name = name.replace("\n", "<br/>")
|
||||
|
||||
item += '<br/>' + str(op.seat)
|
||||
name = bleach.clean(str(name), tags={'br'}).strip().replace('<br>', '<br/>')
|
||||
if op.blocked:
|
||||
name = '<font face="OpenSansBd">[' + _('Blocked') + ']</font> ' + name
|
||||
row = [
|
||||
@@ -437,8 +431,8 @@ class PDFCheckinList(ReportlabExportMixin, CheckInListMixin, BaseExporter):
|
||||
CBFlowable(bool(op.last_checked_in)) if not op.blocked else '—',
|
||||
'✘' if op.order.status != Order.STATUS_PAID else '✔',
|
||||
op.order.code,
|
||||
FontFallbackParagraph(name, self.get_style()),
|
||||
PlainTextParagraph(item, self.get_style()),
|
||||
PlainTextParagraph(name, self.get_style()),
|
||||
PlainTextParagraph(bleach.clean(str(item), tags={'br'}).strip().replace('<br>', '<br/>'), self.get_style()),
|
||||
]
|
||||
acache = {}
|
||||
if op.addon_to:
|
||||
@@ -448,6 +442,7 @@ class PDFCheckinList(ReportlabExportMixin, CheckInListMixin, BaseExporter):
|
||||
acache[a.question_id] = format_answer_for_export(a)
|
||||
for q in questions:
|
||||
txt = acache.get(q.pk, '')
|
||||
txt = bleach.clean(txt, tags={'br'}).strip().replace('<br>', '<br/>')
|
||||
p = PlainTextParagraph(txt, self.get_style())
|
||||
while p.wrap(colwidths[len(row)], 5000)[1] > 50 * mm:
|
||||
txt = txt[:len(txt) - 50] + "..."
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user