Compare commits

..

4 Commits

Author SHA1 Message Date
Mira
2cb7160ed7 Add documentation 2025-04-29 15:28:33 +02:00
Mira
7575a6f0d1 Event list: fix parsing of date query parameter
Use the same localization formats as used when generating the value
2025-04-28 20:00:58 +02:00
Mira
4c6bd30437 Revert "Event list: Use standards-compliant date format for <input type="date">"
This reverts commit 6bd34c79ee.
2025-04-28 19:59:47 +02:00
luelista
6bd34c79ee Event list: Use standards-compliant date format for <input type="date"> 2025-04-28 17:24:28 +02:00
144 changed files with 3965 additions and 5097 deletions

View File

@@ -87,11 +87,11 @@ dependencies = [
"pytz",
"pytz-deprecation-shim==0.1.*",
"pyuca",
"qrcode==8.2",
"qrcode==8.1",
"redis==5.2.*",
"reportlab==4.4.*",
"reportlab==4.3.*",
"requests==2.31.*",
"sentry-sdk==2.27.*",
"sentry-sdk==2.25.*",
"sepaxml==2.6.*",
"stripe==7.9.*",
"text-unidecode==1.*",
@@ -114,7 +114,7 @@ dev = [
"flake8==7.2.*",
"freezegun",
"isort==6.0.*",
"pep8-naming==0.15.*",
"pep8-naming==0.14.*",
"potypo",
"pytest-asyncio>=0.24",
"pytest-cache",

View File

@@ -378,8 +378,6 @@ class EventSerializer(SalesChannelMigrationMixin, I18nAwareModelSerializer):
if prop.name not in meta_data:
current_object.delete()
instance._prefetched_objects_cache.clear()
# Item Meta properties
if item_meta_properties is not None:
current = list(event.item_meta_properties.all())
@@ -400,8 +398,6 @@ class EventSerializer(SalesChannelMigrationMixin, I18nAwareModelSerializer):
if prop.name not in list(item_meta_properties.keys()):
prop.delete()
instance._prefetched_objects_cache.clear()
# Seats
if seat_category_mapping is not None or ('seating_plan' in validated_data and validated_data['seating_plan'] is None):
current_mappings = {

View File

@@ -35,22 +35,19 @@ def get_powered_by(request, safelink=True):
d = gs.settings.license_check_input
if d.get('poweredby_name'):
if d.get('poweredby_url'):
msg = gettext('<a {a_name_attr}>powered by {name}</a> <a {a_attr}>based on pretix</a>').format(
name=d['poweredby_name'],
a_name_attr='href="{}" target="_blank" rel="noopener"'.format(
sl(d['poweredby_url']) if safelink else d['poweredby_url'],
),
a_attr='href="{}" target="_blank" rel="noopener"'.format(
sl('https://pretix.eu') if safelink else 'https://pretix.eu',
)
n = '<a href="{}" target="_blank" rel="noopener">{}</a>'.format(
sl(d['poweredby_url']) if safelink else d['poweredby_url'],
d['poweredby_name']
)
else:
msg = gettext('<a {a_attr}>powered by {name} based on pretix</a>').format(
name=d['poweredby_name'],
a_attr='href="{}" target="_blank" rel="noopener"'.format(
sl('https://pretix.eu') if safelink else 'https://pretix.eu',
)
n = d['poweredby_name']
msg = gettext('powered by {name} based on <a {a_attr}>pretix</a>').format(
name=n,
a_attr='href="{}" target="_blank" rel="noopener"'.format(
sl('https://pretix.eu') if safelink else 'https://pretix.eu',
)
)
else:
msg = gettext('<a %(a_attr)s>ticketing powered by pretix</a>') % {
'a_attr': 'href="{}" target="_blank" rel="noopener"'.format(

View File

@@ -712,7 +712,7 @@ class OrderListExporter(MultiSheetListExporter):
if name_scheme and len(name_scheme['fields']) > 1:
for k, label, w in name_scheme['fields']:
row.append(
get_name_parts_localized(op.attendee_name_parts, k) if op.attendee_name_parts else ''
get_name_parts_localized(op.attendee_name_parts, k)
)
row += [
op.attendee_email,

View File

@@ -58,7 +58,6 @@ from django.urls import reverse
from django.utils.formats import date_format
from django.utils.html import escape
from django.utils.safestring import mark_safe
from django.utils.text import format_lazy
from django.utils.timezone import get_current_timezone
from django.utils.translation import gettext_lazy as _, pgettext_lazy
from django_countries import countries
@@ -871,23 +870,6 @@ class BaseQuestionsForm(forms.Form):
attrs['data-min'] = q.valid_date_min.isoformat()
if q.valid_date_max:
attrs['data-max'] = q.valid_date_max.isoformat()
if not help_text:
if q.valid_date_min and q.valid_date_max:
help_text = format_lazy(
'Please enter a date between {min} and {max}.',
min=date_format(q.valid_date_min, "SHORT_DATE_FORMAT"),
max=date_format(q.valid_date_max, "SHORT_DATE_FORMAT"),
)
elif q.valid_date_min:
help_text = format_lazy(
'Please enter a date no earlier than {min}.',
min=date_format(q.valid_date_min, "SHORT_DATE_FORMAT"),
)
elif q.valid_date_max:
help_text = format_lazy(
'Please enter a date no later than {max}.',
max=date_format(q.valid_date_max, "SHORT_DATE_FORMAT"),
)
field = forms.DateField(
label=label, required=required,
help_text=help_text,
@@ -906,23 +888,6 @@ class BaseQuestionsForm(forms.Form):
widget=TimePickerWidget(time_format=get_format_without_seconds('TIME_INPUT_FORMATS')),
)
elif q.type == Question.TYPE_DATETIME:
if not help_text:
if q.valid_datetime_min and q.valid_datetime_max:
help_text = format_lazy(
'Please enter a date and time between {min} and {max}.',
min=date_format(q.valid_datetime_min, "SHORT_DATETIME_FORMAT"),
max=date_format(q.valid_datetime_max, "SHORT_DATETIME_FORMAT"),
)
elif q.valid_datetime_min:
help_text = format_lazy(
'Please enter a date and time no earlier than {min}.',
min=date_format(q.valid_datetime_min, "SHORT_DATETIME_FORMAT"),
)
elif q.valid_datetime_max:
help_text = format_lazy(
'Please enter a date and time no later than {max}.',
max=date_format(q.valid_datetime_max, "SHORT_DATETIME_FORMAT"),
)
field = SplitDateTimeField(
label=label, required=required,
help_text=help_text,

View File

@@ -1463,10 +1463,6 @@ class GiftCardPayment(BasePaymentProvider):
messages.error(request, _("You cannot pay with gift cards when buying a gift card."))
return
if not request.POST.get("giftcard"):
messages.error(request, _("Please enter the code of your gift card."))
return
try:
gc = self.event.organizer.accepted_gift_cards.get(
secret=request.POST.get("giftcard").strip()

View File

@@ -531,7 +531,7 @@ def send_invoices_to_organizer(sender, **kwargs):
if i.event.settings.invoice_email_organizer:
with language(i.event.settings.locale):
mail(
email=[e.strip() for e in i.event.settings.invoice_email_organizer.split(",")],
email=i.event.settings.invoice_email_organizer,
subject=_('New invoice: {number}').format(number=i.number),
template=LazyI18nString.from_gettext(_(
'Hello,\n\n'

View File

@@ -2221,79 +2221,73 @@ class OrderChangeManager:
nextposid = self.order.all_positions.aggregate(m=Max('positionid'))['m'] + 1
split_positions = []
secret_dirty = set()
position_cache = {}
fee_cache = {}
for op in self._operations:
if isinstance(op, self.ItemOperation):
position = position_cache.setdefault(op.position.pk, op.position)
self.order.log_action('pretix.event.order.changed.item', user=self.user, auth=self.auth, data={
'position': position.pk,
'positionid': position.positionid,
'old_item': position.item.pk,
'old_variation': position.variation.pk if position.variation else None,
'position': op.position.pk,
'positionid': op.position.positionid,
'old_item': op.position.item.pk,
'old_variation': op.position.variation.pk if op.position.variation else None,
'new_item': op.item.pk,
'new_variation': op.variation.pk if op.variation else None,
'old_price': position.price,
'addon_to': position.addon_to_id,
'new_price': position.price
'old_price': op.position.price,
'addon_to': op.position.addon_to_id,
'new_price': op.position.price
})
position.item = op.item
position.variation = op.variation
position._calculate_tax()
op.position.item = op.item
op.position.variation = op.variation
op.position._calculate_tax()
if position.voucher_budget_use is not None and position.voucher and not position.addon_to_id:
listed_price = get_listed_price(position.item, position.variation, position.subevent)
if not position.item.tax_rule or position.item.tax_rule.price_includes_tax:
price_after_voucher = max(position.price, position.voucher.calculate_price(listed_price))
if op.position.voucher_budget_use is not None and op.position.voucher and not op.position.addon_to_id:
listed_price = get_listed_price(op.position.item, op.position.variation, op.position.subevent)
if not op.position.item.tax_rule or op.position.item.tax_rule.price_includes_tax:
price_after_voucher = max(op.position.price, op.position.voucher.calculate_price(listed_price))
else:
price_after_voucher = max(position.price - position.tax_value, position.voucher.calculate_price(listed_price))
position.voucher_budget_use = max(listed_price - price_after_voucher, Decimal('0.00'))
secret_dirty.add(position)
position.save()
price_after_voucher = max(op.position.price - op.position.tax_value, op.position.voucher.calculate_price(listed_price))
op.position.voucher_budget_use = max(listed_price - price_after_voucher, Decimal('0.00'))
secret_dirty.add(op.position)
op.position.save()
elif isinstance(op, self.MembershipOperation):
position = position_cache.setdefault(op.position.pk, op.position)
self.order.log_action('pretix.event.order.changed.membership', user=self.user, auth=self.auth, data={
'position': position.pk,
'positionid': position.positionid,
'old_membership_id': position.used_membership_id,
'position': op.position.pk,
'positionid': op.position.positionid,
'old_membership_id': op.position.used_membership_id,
'new_membership_id': op.membership.pk if op.membership else None,
})
position.used_membership = op.membership
position.save()
op.position.used_membership = op.membership
op.position.save()
elif isinstance(op, self.SeatOperation):
position = position_cache.setdefault(op.position.pk, op.position)
self.order.log_action('pretix.event.order.changed.seat', user=self.user, auth=self.auth, data={
'position': position.pk,
'positionid': position.positionid,
'old_seat': position.seat.name if position.seat else "-",
'position': op.position.pk,
'positionid': op.position.positionid,
'old_seat': op.position.seat.name if op.position.seat else "-",
'new_seat': op.seat.name if op.seat else "-",
'old_seat_id': position.seat.pk if position.seat else None,
'old_seat_id': op.position.seat.pk if op.position.seat else None,
'new_seat_id': op.seat.pk if op.seat else None,
})
position.seat = op.seat
secret_dirty.add(position)
position.save()
op.position.seat = op.seat
secret_dirty.add(op.position)
op.position.save()
elif isinstance(op, self.SubeventOperation):
position = position_cache.setdefault(op.position.pk, op.position)
self.order.log_action('pretix.event.order.changed.subevent', user=self.user, auth=self.auth, data={
'position': position.pk,
'positionid': position.positionid,
'old_subevent': position.subevent.pk,
'position': op.position.pk,
'positionid': op.position.positionid,
'old_subevent': op.position.subevent.pk,
'new_subevent': op.subevent.pk,
'old_price': position.price,
'new_price': position.price
'old_price': op.position.price,
'new_price': op.position.price
})
position.subevent = op.subevent
secret_dirty.add(position)
if position.voucher_budget_use is not None and position.voucher and not position.addon_to_id:
listed_price = get_listed_price(position.item, position.variation, position.subevent)
if not position.item.tax_rule or position.item.tax_rule.price_includes_tax:
price_after_voucher = max(position.price, position.voucher.calculate_price(listed_price))
op.position.subevent = op.subevent
secret_dirty.add(op.position)
if op.position.voucher_budget_use is not None and op.position.voucher and not op.position.addon_to_id:
listed_price = get_listed_price(op.position.item, op.position.variation, op.position.subevent)
if not op.position.item.tax_rule or op.position.item.tax_rule.price_includes_tax:
price_after_voucher = max(op.position.price, op.position.voucher.calculate_price(listed_price))
else:
price_after_voucher = max(position.price - position.tax_value, position.voucher.calculate_price(listed_price))
position.voucher_budget_use = max(listed_price - price_after_voucher, Decimal('0.00'))
position.save()
price_after_voucher = max(op.position.price - op.position.tax_value, op.position.voucher.calculate_price(listed_price))
op.position.voucher_budget_use = max(listed_price - price_after_voucher, Decimal('0.00'))
op.position.save()
elif isinstance(op, self.AddFeeOperation):
self.order.log_action('pretix.event.order.changed.addfee', user=self.user, auth=self.auth, data={
'fee': op.fee.pk,
@@ -2302,79 +2296,70 @@ class OrderChangeManager:
op.fee._calculate_tax()
op.fee.save()
elif isinstance(op, self.FeeValueOperation):
fee = fee_cache.setdefault(op.fee.pk, op.fee)
self.order.log_action('pretix.event.order.changed.feevalue', user=self.user, auth=self.auth, data={
'fee': fee.pk,
'old_price': fee.value,
'fee': op.fee.pk,
'old_price': op.fee.value,
'new_price': op.value.gross
})
fee.value = op.value.gross
fee._calculate_tax()
fee.save()
op.fee.value = op.value.gross
op.fee._calculate_tax()
op.fee.save()
elif isinstance(op, self.PriceOperation):
position = position_cache.setdefault(op.position.pk, op.position)
self.order.log_action('pretix.event.order.changed.price', user=self.user, auth=self.auth, data={
'position': position.pk,
'positionid': position.positionid,
'old_price': position.price,
'addon_to': position.addon_to_id,
'position': op.position.pk,
'positionid': op.position.positionid,
'old_price': op.position.price,
'addon_to': op.position.addon_to_id,
'new_price': op.price.gross
})
position.price = op.price.gross
position.tax_rate = op.price.rate
position.tax_value = op.price.tax
position.tax_code = op.price.code
position.save(update_fields=['price', 'tax_rate', 'tax_value', 'tax_code'])
op.position.price = op.price.gross
op.position.tax_rate = op.price.rate
op.position.tax_value = op.price.tax
op.position.tax_code = op.price.code
op.position.save(update_fields=['price', 'tax_rate', 'tax_value', 'tax_code'])
elif isinstance(op, self.TaxRuleOperation):
if isinstance(op.position, OrderPosition):
position = position_cache.setdefault(op.position.pk, op.position)
self.order.log_action('pretix.event.order.changed.tax_rule', user=self.user, auth=self.auth, data={
'position': position.pk,
'positionid': position.positionid,
'addon_to': position.addon_to_id,
'old_taxrule': position.tax_rule.pk if position.tax_rule else None,
'position': op.position.pk,
'positionid': op.position.positionid,
'addon_to': op.position.addon_to_id,
'old_taxrule': op.position.tax_rule.pk if op.position.tax_rule else None,
'new_taxrule': op.tax_rule.pk
})
position._calculate_tax(op.tax_rule)
position.save()
elif isinstance(op.position, OrderFee):
fee = fee_cache.setdefault(op.position.pk, op.position)
self.order.log_action('pretix.event.order.changed.tax_rule', user=self.user, auth=self.auth, data={
'fee': fee.pk,
'fee_type': fee.fee_type,
'old_taxrule': fee.tax_rule.pk if fee.tax_rule else None,
'fee': op.position.pk,
'fee_type': op.position.fee_type,
'old_taxrule': op.position.tax_rule.pk if op.position.tax_rule else None,
'new_taxrule': op.tax_rule.pk
})
fee._calculate_tax(op.tax_rule)
fee.save()
op.position._calculate_tax(op.tax_rule)
op.position.save()
elif isinstance(op, self.CancelFeeOperation):
fee = fee_cache.setdefault(op.fee.pk, op.fee)
self.order.log_action('pretix.event.order.changed.cancelfee', user=self.user, auth=self.auth, data={
'fee': fee.pk,
'fee_type': fee.fee_type,
'old_price': fee.value,
'fee': op.fee.pk,
'fee_type': op.fee.fee_type,
'old_price': op.fee.value,
})
fee.canceled = True
fee.save(update_fields=['canceled'])
op.fee.canceled = True
op.fee.save(update_fields=['canceled'])
elif isinstance(op, self.CancelOperation):
position = position_cache.setdefault(op.position.pk, op.position)
for gc in position.issued_gift_cards.all():
for gc in op.position.issued_gift_cards.all():
gc = GiftCard.objects.select_for_update(of=OF_SELF).get(pk=gc.pk)
if gc.value < position.price:
if gc.value < op.position.price:
raise OrderError(_(
'A position can not be canceled since the gift card {card} purchased in this order has '
'already been redeemed.').format(
card=gc.secret
))
else:
gc.transactions.create(value=-position.price, order=self.order, acceptor=self.order.event.organizer)
gc.transactions.create(value=-op.position.price, order=self.order, acceptor=self.order.event.organizer)
for m in position.granted_memberships.with_usages().all():
for m in op.position.granted_memberships.with_usages().all():
m.canceled = True
m.save()
for opa in position.addons.all():
opa = position_cache.setdefault(opa.pk, opa)
for opa in op.position.addons.all():
for gc in opa.issued_gift_cards.all():
gc = GiftCard.objects.select_for_update(of=OF_SELF).get(pk=gc.pk)
if gc.value < opa.position.price:
@@ -2408,22 +2393,22 @@ class OrderChangeManager:
)
opa.save(update_fields=['canceled', 'secret'])
self.order.log_action('pretix.event.order.changed.cancel', user=self.user, auth=self.auth, data={
'position': position.pk,
'positionid': position.positionid,
'old_item': position.item.pk,
'old_variation': position.variation.pk if position.variation else None,
'old_price': position.price,
'position': op.position.pk,
'positionid': op.position.positionid,
'old_item': op.position.item.pk,
'old_variation': op.position.variation.pk if op.position.variation else None,
'old_price': op.position.price,
'addon_to': None,
})
position.canceled = True
if position.voucher:
Voucher.objects.filter(pk=position.voucher.pk).update(redeemed=Greatest(0, F('redeemed') - 1))
op.position.canceled = True
if op.position.voucher:
Voucher.objects.filter(pk=op.position.voucher.pk).update(redeemed=Greatest(0, F('redeemed') - 1))
assign_ticket_secret(
event=self.event, position=position, force_invalidate_if_revokation_list_used=True, force_invalidate=False, save=False
event=self.event, position=op.position, force_invalidate_if_revokation_list_used=True, force_invalidate=False, save=False
)
if position in secret_dirty:
secret_dirty.remove(position)
position.save(update_fields=['canceled', 'secret'])
if op.position in secret_dirty:
secret_dirty.remove(op.position)
op.position.save(update_fields=['canceled', 'secret'])
elif isinstance(op, self.AddOperation):
pos = OrderPosition.objects.create(
item=op.item, variation=op.variation, addon_to=op.addon_to,
@@ -2448,22 +2433,20 @@ class OrderChangeManager:
'valid_until': op.valid_until.isoformat() if op.valid_until else None,
})
elif isinstance(op, self.SplitOperation):
position = position_cache.setdefault(op.position.pk, op.position)
split_positions.append(position)
split_positions.append(op.position)
elif isinstance(op, self.RegenerateSecretOperation):
position = position_cache.setdefault(op.position.pk, op.position)
position.web_secret = generate_secret()
position.save(update_fields=["web_secret"])
op.position.web_secret = generate_secret()
op.position.save(update_fields=["web_secret"])
assign_ticket_secret(
event=self.event, position=position, force_invalidate=True, save=True
event=self.event, position=op.position, force_invalidate=True, save=True
)
if position in secret_dirty:
secret_dirty.remove(position)
if op.position in secret_dirty:
secret_dirty.remove(op.position)
tickets.invalidate_cache.apply_async(kwargs={'event': self.event.pk,
'order': self.order.pk})
self.order.log_action('pretix.event.order.changed.secret', user=self.user, auth=self.auth, data={
'position': position.pk,
'positionid': position.positionid,
'position': op.position.pk,
'positionid': op.position.positionid,
})
elif isinstance(op, self.ChangeSecretOperation):
if OrderPosition.all.filter(order__event=self.event, secret=op.new_secret).exists():
@@ -2479,68 +2462,64 @@ class OrderChangeManager:
'positionid': op.position.positionid,
})
elif isinstance(op, self.ChangeValidFromOperation):
position = position_cache.setdefault(op.position.pk, op.position)
self.order.log_action('pretix.event.order.changed.valid_from', user=self.user, auth=self.auth, data={
'position': position.pk,
'positionid': position.positionid,
'position': op.position.pk,
'positionid': op.position.positionid,
'new_value': op.valid_from.isoformat() if op.valid_from else None,
'old_value': position.valid_from.isoformat() if position.valid_from else None,
'old_value': op.position.valid_from.isoformat() if op.position.valid_from else None,
})
position.valid_from = op.valid_from
position.save(update_fields=['valid_from'])
secret_dirty.add(position)
op.position.valid_from = op.valid_from
op.position.save(update_fields=['valid_from'])
secret_dirty.add(op.position)
elif isinstance(op, self.ChangeValidUntilOperation):
position = position_cache.setdefault(op.position.pk, op.position)
self.order.log_action('pretix.event.order.changed.valid_until', user=self.user, auth=self.auth, data={
'position': position.pk,
'positionid': position.positionid,
'position': op.position.pk,
'positionid': op.position.positionid,
'new_value': op.valid_until.isoformat() if op.valid_until else None,
'old_value': position.valid_until.isoformat() if position.valid_until else None,
'old_value': op.position.valid_until.isoformat() if op.position.valid_until else None,
})
position.valid_until = op.valid_until
position.save(update_fields=['valid_until'])
secret_dirty.add(position)
op.position.valid_until = op.valid_until
op.position.save(update_fields=['valid_until'])
secret_dirty.add(op.position)
elif isinstance(op, self.AddBlockOperation):
position = position_cache.setdefault(op.position.pk, op.position)
self.order.log_action('pretix.event.order.changed.add_block', user=self.user, auth=self.auth, data={
'position': position.pk,
'positionid': position.positionid,
'position': op.position.pk,
'positionid': op.position.positionid,
'block_name': op.block_name,
})
if position.blocked:
if op.block_name not in position.blocked:
position.blocked = position.blocked + [op.block_name]
if op.position.blocked:
if op.block_name not in op.position.blocked:
op.position.blocked = op.position.blocked + [op.block_name]
else:
position.blocked = [op.block_name]
op.position.blocked = [op.block_name]
if op.ignore_from_quota_while_blocked is not None:
position.ignore_from_quota_while_blocked = op.ignore_from_quota_while_blocked
position.save(update_fields=['blocked', 'ignore_from_quota_while_blocked'])
if position.blocked:
position.blocked_secrets.update_or_create(
op.position.ignore_from_quota_while_blocked = op.ignore_from_quota_while_blocked
op.position.save(update_fields=['blocked', 'ignore_from_quota_while_blocked'])
if op.position.blocked:
op.position.blocked_secrets.update_or_create(
event=self.event,
secret=position.secret,
secret=op.position.secret,
defaults={
'blocked': True,
'updated': now(),
}
)
elif isinstance(op, self.RemoveBlockOperation):
position = position_cache.setdefault(op.position.pk, op.position)
self.order.log_action('pretix.event.order.changed.remove_block', user=self.user, auth=self.auth, data={
'position': position.pk,
'positionid': position.positionid,
'position': op.position.pk,
'positionid': op.position.positionid,
'block_name': op.block_name,
})
if position.blocked and op.block_name in position.blocked:
position.blocked = [b for b in position.blocked if b != op.block_name]
if not position.blocked:
position.blocked = None
if op.position.blocked and op.block_name in op.position.blocked:
op.position.blocked = [b for b in op.position.blocked if b != op.block_name]
if not op.position.blocked:
op.position.blocked = None
if op.ignore_from_quota_while_blocked is not None:
position.ignore_from_quota_while_blocked = op.ignore_from_quota_while_blocked
position.save(update_fields=['blocked', 'ignore_from_quota_while_blocked'])
if not position.blocked:
op.position.ignore_from_quota_while_blocked = op.ignore_from_quota_while_blocked
op.position.save(update_fields=['blocked', 'ignore_from_quota_while_blocked'])
if not op.position.blocked:
try:
bs = position.blocked_secrets.get(secret=position.secret)
bs = op.position.blocked_secrets.get(secret=op.position.secret)
bs.blocked = False
bs.save()
except BlockedTicketSecret.DoesNotExist:

View File

@@ -62,9 +62,6 @@ class VATIDTemporaryError(VATIDError):
def _validate_vat_id_NO(vat_id, country_code):
# Inspired by vat_moss library
if not vat_id.startswith("NO"):
# prefix is not usually used in Norway, but expected by vat_moss library
vat_id = "NO" + vat_id
try:
vat_id = vat_moss.id.normalize(vat_id)
except ValueError:

View File

@@ -71,7 +71,6 @@ from pretix.base.reldate import (
RelativeDateField, RelativeDateTimeField, RelativeDateWrapper,
SerializerRelativeDateField, SerializerRelativeDateTimeField,
)
from pretix.base.validators import multimail_validate
from pretix.control.forms import (
ExtFileField, FontSelect, MultipleLanguagesWidget, SingleLanguageWidget,
)
@@ -1234,18 +1233,14 @@ DEFAULTS = {
'invoice_email_organizer': {
'default': '',
'type': str,
'form_class': forms.CharField,
'serializer_class': serializers.CharField,
'form_class': forms.EmailField,
'serializer_class': serializers.EmailField,
'form_kwargs': dict(
label=_("Email address to receive a copy of each invoice"),
help_text=_("Each newly created invoice will be sent to this email address shortly after creation. You can "
"use this for an automated import of invoices to your accounting system. The invoice will be "
"the only attachment of the email."),
validators=[multimail_validate],
),
'serializer_kwargs': dict(
validators=[multimail_validate],
),
)
},
'show_items_outside_presale_period': {
'default': 'True',

View File

@@ -1,5 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="14" viewBox="0 0 18 14"
class="{{ cls }}">
<path d="M7.713 3.573c-.787-.124-1.677.472-1.511 1.529l.857 3.473c.116.579.578 1.086 1.317 1.086h3.166v3.504c0 1.108 1.556 1.113 1.556.019V8.682c0-.536-.376-1.116-1.099-1.116L9.52 7.563l-.752-2.936c-.147-.648-.583-.981-1.055-1.055v.001Z"></path>
<path d="M4.48 5.835a.6.6 0 0 0-.674.725l.71 3.441c.287 1.284 1.39 2.114 2.495 2.114h2.273c.807 0 .811-1.215-.01-1.215H7.188c-.753 0-1.375-.45-1.563-1.289l-.672-3.293c-.062-.3-.26-.452-.474-.483ZM7.433.102a1.468 1.468 0 1 0 0 2.937 1.469 1.469 0 1 0 0-2.937Z"></path>
</svg>

Before

Width:  |  Height:  |  Size: 636 B

View File

@@ -1,60 +0,0 @@
#
# This file is part of pretix (Community Edition).
#
# Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-2021 rami.io GmbH and contributors
#
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License.
#
# ADDITIONAL TERMS APPLY: Pursuant to Section 7 of the GNU Affero General Public License, additional terms are
# applicable granting you additional permissions and placing additional restrictions on your usage of this software.
# Please refer to the pretix LICENSE file to obtain the full terms applicable to this work. If you did not receive
# this file, see <https://pretix.eu/about/en/license>.
#
# This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
# details.
#
# You should have received a copy of the GNU Affero General Public License along with this program. If not, see
# <https://www.gnu.org/licenses/>.
#
from django import template
from django.utils.html import format_html
from django.utils.safestring import mark_safe
from django.utils.translation import gettext_lazy as _ # NOQA
register = template.Library()
@register.simple_tag
def dialog(html_id, label, description, *args, **kwargs):
format_kwargs = {
"id": html_id,
"label": label,
"description": description,
"icon": format_html('<div class="modal-card-icon"><span class="fa fa-{}" aria-hidden="true"></span></div>', kwargs["icon"]) if "icon" in kwargs else "",
"alert": mark_safe('role="alertdialog"') if kwargs.get("alert", "False") != "False" else "",
}
result = """
<dialog {alert}
id="{id}"
aria-labelledby="{id}-label"
aria-describedby="{id}-description">
<form method="dialog" class="modal-card form-horizontal">
{icon}
<div class="modal-card-content">
<h2 id="{id}-label">{label}</h2>
<p id="{id}-description">{description}</p>
"""
return format_html(result, **format_kwargs)
@register.simple_tag
def enddialog(*args, **kwargs):
return mark_safe("""
</div>
</form>
</dialog>
""")

View File

@@ -80,4 +80,4 @@ def serve_metrics(request):
content = "\n".join(output) + "\n"
return HttpResponse(content, content_type="text/plain;version=1.0.0;escaping=allow-utf-8")
return HttpResponse(content)

View File

@@ -85,7 +85,7 @@
<div class="checkbox">
<label>
<input type="checkbox" name="delete" value="yes" />
<strong>{% trans "Permanently delete all orders created in test mode" %}</strong>
<b>{% trans "Permanently delete all orders created in test mode" %}</b>
</label>
</div>
<div class="text-right">

View File

@@ -40,7 +40,6 @@
<th class="iconcol"></th>
<th class="iconcol"></th>
<th class="iconcol"></th>
<th class="iconcol"></th>
<th class="text-right flip">{% trans "Default price" %}</th>
<th class="action-col-2"><span class="sr-only">Edit</span></th>
</tr>
@@ -112,14 +111,6 @@
<span class="fa fa-bars fa-fw text-muted" data-toggle="tooltip" title="{% trans "Product with variations" %}"></span>
{% endif %}
</td>
<td>
{% if i.requires_seat %}
<span data-toggle="tooltip"
title="{% if request.event.has_subevents %}{% trans "Product assigned to seating plan for one or more dates" context "subevent" %}{% else %}{% trans "Product assigned to seating plan" %}{% endif %}">
{% include "icons/seat.svg" with cls="svg-icon text-muted" %}
</span>
{% endif %}
</td>
<td>
{% if i.category.is_addon %}
<span class="fa fa-plus-square fa-fw text-muted" data-toggle="tooltip"

View File

@@ -413,7 +413,10 @@
{% endif %}
{% if line.seat %}
<br />
{% include "icons/seat.svg" with cls="svg-icon" %}
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="14" viewBox="0 0 4.7624999 3.7041668" class="svg-icon">
<path
d="m 1.9592032,1.8522629e-4 c -0.21468,0 -0.38861,0.17394000371 -0.38861,0.38861000371 0,0.21466 0.17393,0.38861 0.38861,0.38861 0.21468,0 0.3886001,-0.17395 0.3886001,-0.38861 0,-0.21467 -0.1739201,-0.38861000371 -0.3886001,-0.38861000371 z m 0.1049,0.84543000371 c -0.20823,-0.0326 -0.44367,0.12499 -0.39998,0.40462997 l 0.20361,1.01854 c 0.0306,0.15316 0.15301,0.28732 0.3483,0.28732 h 0.8376701 v 0.92708 c 0,0.29313 0.41187,0.29447 0.41187,0.005 v -1.19115 c 0,-0.14168 -0.0995,-0.29507 -0.29094,-0.29507 l -0.65578,-10e-4 -0.1757,-0.87644 C 2.3042533,0.95300523 2.1890432,0.86500523 2.0641032,0.84547523 Z m -0.58549,0.44906997 c -0.0946,-0.0134 -0.20202,0.0625 -0.17829,0.19172 l 0.18759,0.91054 c 0.0763,0.33956 0.36802,0.55914 0.66042,0.55914 h 0.6015201 c 0.21356,0 0.21448,-0.32143 -0.003,-0.32143 H 2.1954632 c -0.19911,0 -0.36364,-0.11898 -0.41341,-0.34107 l -0.17777,-0.87126 c -0.0165,-0.0794 -0.0688,-0.11963 -0.12557,-0.12764 z"/>
</svg>
{{ line.seat }}
{% endif %}
{% if line.voucher %}

View File

@@ -65,7 +65,7 @@ from pretix.api.serializers.item import (
from pretix.base.forms import I18nFormSet
from pretix.base.models import (
CartPosition, Item, ItemCategory, ItemVariation, Order, Question,
QuestionAnswer, QuestionOption, Quota, SeatCategoryMapping, Voucher,
QuestionAnswer, QuestionOption, Quota, Voucher,
)
from pretix.base.models.event import SubEvent
from pretix.base.models.items import ItemAddOn, ItemBundle, ItemMetaValue
@@ -101,16 +101,10 @@ class ItemList(ListView):
template_name = 'pretixcontrol/items/index.html'
def get_queryset(self):
requires_seat = Exists(
SeatCategoryMapping.objects.filter(
product_id=OuterRef('pk'),
)
)
return Item.objects.filter(
event=self.request.event
).select_related("tax_rule").annotate(
var_count=Count('variations'),
requires_seat=requires_seat,
var_count=Count('variations')
).prefetch_related("category", "limit_sales_channels").order_by(
F('category__position').asc(nulls_first=True),
'category', 'position'

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="14" viewBox="0 0 18 14">
<path d="M7.713 3.573c-.787-.124-1.677.472-1.511 1.529l.857 3.473c.116.579.578 1.086 1.317 1.086h3.166v3.504c0 1.108 1.556 1.113 1.556.019V8.682c0-.536-.376-1.116-1.099-1.116L9.52 7.563l-.752-2.936c-.147-.648-.583-.981-1.055-1.055v.001Z"></path>
<path d="M4.48 5.835a.6.6 0 0 0-.674.725l.71 3.441c.287 1.284 1.39 2.114 2.495 2.114h2.273c.807 0 .811-1.215-.01-1.215H7.188c-.753 0-1.375-.45-1.563-1.289l-.672-3.293c-.062-.3-.26-.452-.474-.483ZM7.433.102a1.468 1.468 0 1 0 0 2.937 1.469 1.469 0 1 0 0-2.937Z"></path>
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="14" viewBox="0 0 4.7624999 3.7041668">
<path
d="m 1.9592032,1.8522629e-4 c -0.21468,0 -0.38861,0.17394000371 -0.38861,0.38861000371 0,0.21466 0.17393,0.38861 0.38861,0.38861 0.21468,0 0.3886001,-0.17395 0.3886001,-0.38861 0,-0.21467 -0.1739201,-0.38861000371 -0.3886001,-0.38861000371 z m 0.1049,0.84543000371 c -0.20823,-0.0326 -0.44367,0.12499 -0.39998,0.40462997 l 0.20361,1.01854 c 0.0306,0.15316 0.15301,0.28732 0.3483,0.28732 h 0.8376701 v 0.92708 c 0,0.29313 0.41187,0.29447 0.41187,0.005 v -1.19115 c 0,-0.14168 -0.0995,-0.29507 -0.29094,-0.29507 l -0.65578,-10e-4 -0.1757,-0.87644 C 2.3042533,0.95300523 2.1890432,0.86500523 2.0641032,0.84547523 Z m -0.58549,0.44906997 c -0.0946,-0.0134 -0.20202,0.0625 -0.17829,0.19172 l 0.18759,0.91054 c 0.0763,0.33956 0.36802,0.55914 0.66042,0.55914 h 0.6015201 c 0.21356,0 0.21448,-0.32143 -0.003,-0.32143 H 2.1954632 c -0.19911,0 -0.36364,-0.11898 -0.41341,-0.34107 l -0.17777,-0.87126 c -0.0165,-0.0794 -0.0688,-0.11963 -0.12557,-0.12764 z"/>
</svg>

Before

Width:  |  Height:  |  Size: 668 B

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -29857,7 +29857,7 @@ msgid "Add to cart"
msgstr ""
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you have already ordered a ticket"
msgid "If you already ordered a ticket"
msgstr ""
#: pretix/presale/templates/pretixpresale/event/index.html:257

View File

@@ -34519,7 +34519,7 @@ msgid "Add to cart"
msgstr "أضف إلى سلة التسوق"
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you have already ordered a ticket"
msgid "If you already ordered a ticket"
msgstr "إذا كنت قد طلبت تذكرة سابقا"
#: pretix/presale/templates/pretixpresale/event/index.html:257

View File

@@ -29859,7 +29859,7 @@ msgid "Add to cart"
msgstr ""
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you have already ordered a ticket"
msgid "If you already ordered a ticket"
msgstr ""
#: pretix/presale/templates/pretixpresale/event/index.html:257

View File

@@ -33955,7 +33955,7 @@ msgid "Add to cart"
msgstr "Afegir a la cistella"
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you have already ordered a ticket"
msgid "If you already ordered a ticket"
msgstr "Si ja teniu tiquets demanats"
#: pretix/presale/templates/pretixpresale/event/index.html:257

View File

@@ -32275,7 +32275,7 @@ msgid "Add to cart"
msgstr "Přidat do košíku"
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you have already ordered a ticket"
msgid "If you already ordered a ticket"
msgstr "Pokud jste si již vstupenku objednali"
#: pretix/presale/templates/pretixpresale/event/index.html:257

View File

@@ -29951,7 +29951,7 @@ msgid "Add to cart"
msgstr ""
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you have already ordered a ticket"
msgid "If you already ordered a ticket"
msgstr ""
#: pretix/presale/templates/pretixpresale/event/index.html:257

View File

@@ -32689,7 +32689,7 @@ msgid "Add to cart"
msgstr "Læg i kurv"
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you have already ordered a ticket"
msgid "If you already ordered a ticket"
msgstr "Hvis du allerede har bestilt en billet"
#: pretix/presale/templates/pretixpresale/event/index.html:257

View File

@@ -5,7 +5,7 @@ msgstr ""
"Project-Id-Version: 1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-04-28 11:06+0000\n"
"PO-Revision-Date: 2025-05-06 16:20+0000\n"
"PO-Revision-Date: 2025-04-28 11:32+0000\n"
"Last-Translator: Raphael Michel <michel@rami.io>\n"
"Language-Team: German <https://translate.pretix.eu/projects/pretix/pretix/de/"
">\n"
@@ -14,7 +14,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.11.1\n"
"X-Generator: Weblate 5.11\n"
"X-Poedit-Bookmarks: -1,-1,904,-1,-1,-1,-1,-1,-1,-1\n"
#: pretix/_base_settings.py:87
@@ -6103,7 +6103,7 @@ msgstr "Zertifikat"
#: pretix/base/models/orders.py:3468 pretix/control/views/event.py:390
#: pretix/control/views/event.py:395
msgid "Other"
msgstr "Sonstige"
msgstr "Sonstiges"
#: pretix/base/models/organizer.py:79
msgid ""
@@ -15355,7 +15355,7 @@ msgstr ""
#: pretix/control/forms/organizer.py:195
msgid "You need to choose an event."
msgstr "Sie müssen eine Veranstaltung wählen."
msgstr "Sie müssen eine Veranstaltung auswählen."
#: pretix/control/forms/organizer.py:227
msgid "You may set only one organizer domain."
@@ -28084,7 +28084,7 @@ msgstr "Alternative Veranstalterdomain für einzelne Veranstaltungen"
#: pretix/multidomain/models.py:38
msgid "Event domain"
msgstr "Veranstaltungs-Domain"
msgstr "Veranstaltungsdomain"
#: pretix/multidomain/models.py:44
msgid "Domain name"
@@ -33772,7 +33772,7 @@ msgid "Add to cart"
msgstr "Zum Warenkorb hinzufügen"
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you have already ordered a ticket"
msgid "If you already ordered a ticket"
msgstr "Wenn Sie bereits ein Ticket bestellt haben"
#: pretix/presale/templates/pretixpresale/event/index.html:257

View File

@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-04-28 11:08+0000\n"
"PO-Revision-Date: 2025-05-12 14:33+0000\n"
"PO-Revision-Date: 2025-04-28 11:32+0000\n"
"Last-Translator: Raphael Michel <michel@rami.io>\n"
"Language-Team: German <https://translate.pretix.eu/projects/pretix/pretix-js/"
"de/>\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.11.4\n"
"X-Generator: Weblate 5.11\n"
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:56
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:62
@@ -742,7 +742,7 @@ msgstr "Bitte tragen Sie eine Menge für eines der Produkte ein."
#: pretix/static/pretixpresale/js/ui/main.js:510
msgid "required"
msgstr "erforderlich"
msgstr "verpflichtend"
#: pretix/static/pretixpresale/js/ui/main.js:554
#: pretix/static/pretixpresale/js/ui/main.js:574

View File

@@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: 1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-04-28 11:06+0000\n"
"PO-Revision-Date: 2025-05-09 22:00+0000\n"
"Last-Translator: Luca Hammer <hammer@rami.io>\n"
"PO-Revision-Date: 2025-04-28 11:32+0000\n"
"Last-Translator: Raphael Michel <michel@rami.io>\n"
"Language-Team: German (informal) <https://translate.pretix.eu/projects/"
"pretix/pretix/de_Informal/>\n"
"Language: de_Informal\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.11.4\n"
"X-Generator: Weblate 5.11\n"
#: pretix/_base_settings.py:87
msgid "English"
@@ -6099,7 +6099,7 @@ msgstr "Zertifikat"
#: pretix/base/models/orders.py:3468 pretix/control/views/event.py:390
#: pretix/control/views/event.py:395
msgid "Other"
msgstr "Sonstige"
msgstr "Sonstiges"
#: pretix/base/models/organizer.py:79
msgid ""
@@ -9464,10 +9464,10 @@ msgstr ""
"die Kurzform der Veranstaltung verwendet, gefolgt von einem Bindestrich. "
"Achtung: Wenn mehrere Veranstaltungen des selben Veranstalters den selben "
"Wert in diesem Feld nutzen, teilen sie sich den Nummernkreis, d.h. jede "
"vollständige Rechnungsnummer wird pro Veranstalter nur einmal vergeben. "
"Diese Einstellung betrifft nur zukünftige Rechnungen. Du kannst die "
"Platzhalter %Y (mit Jahrhundert) oder %y (ohne Jahrhundert) verwenden um das "
"Jahr der Rechnung einzusetzen, oder %m bzw. %d für den Tag oder Monat."
"vollständige Rechnungsnummer wird pro Veranstalter nur einmal ergeben. Diese "
"Einstellung betrifft nur zukünftige Rechnungen. Du kannst die Platzhalter %Y "
"(mit Jahrhundert) oder %y (ohne Jahrhundert) verwenden um das Jahr der "
"Rechnung einzusetzen, oder %m bzw. %d für den Tag oder Monat."
#: pretix/base/settings.py:697 pretix/base/settings.py:719
#, python-brace-format
@@ -15329,7 +15329,7 @@ msgstr ""
#: pretix/control/forms/organizer.py:195
msgid "You need to choose an event."
msgstr "Du musst eine Veranstaltung wählen."
msgstr "Du musst eine Veranstaltung auswählen."
#: pretix/control/forms/organizer.py:227
msgid "You may set only one organizer domain."
@@ -28036,7 +28036,7 @@ msgstr "Alternative Veranstalterdomain für einzelne Veranstaltungen"
#: pretix/multidomain/models.py:38
msgid "Event domain"
msgstr "Veranstaltungs-Domain"
msgstr "Veranstaltungsdomain"
#: pretix/multidomain/models.py:44
msgid "Domain name"
@@ -33711,7 +33711,7 @@ msgid "Add to cart"
msgstr "Zum Warenkorb hinzufügen"
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you have already ordered a ticket"
msgid "If you already ordered a ticket"
msgstr "Wenn du bereits ein Ticket bestellt hast"
#: pretix/presale/templates/pretixpresale/event/index.html:257

View File

@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-04-28 11:08+0000\n"
"PO-Revision-Date: 2025-05-12 14:33+0000\n"
"PO-Revision-Date: 2025-04-28 12:21+0000\n"
"Last-Translator: Raphael Michel <michel@rami.io>\n"
"Language-Team: German (informal) <https://translate.pretix.eu/projects/"
"pretix/pretix-js/de_Informal/>\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.11.4\n"
"X-Generator: Weblate 5.11\n"
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:56
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:62
@@ -741,7 +741,7 @@ msgstr "Bitte trage eine Menge für eines der Produkte ein."
#: pretix/static/pretixpresale/js/ui/main.js:510
msgid "required"
msgstr "erforderlich"
msgstr "verpflichtend"
#: pretix/static/pretixpresale/js/ui/main.js:554
#: pretix/static/pretixpresale/js/ui/main.js:574

View File

@@ -29858,7 +29858,7 @@ msgid "Add to cart"
msgstr ""
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you have already ordered a ticket"
msgid "If you already ordered a ticket"
msgstr ""
#: pretix/presale/templates/pretixpresale/event/index.html:257

View File

@@ -36098,7 +36098,7 @@ msgid "Add to cart"
msgstr "Προσθήκη στο καλάθι"
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you have already ordered a ticket"
msgid "If you already ordered a ticket"
msgstr "Αν έχετε ήδη αγοράσει κάποιο εισιτήριο"
#: pretix/presale/templates/pretixpresale/event/index.html:257

View File

@@ -29857,7 +29857,7 @@ msgid "Add to cart"
msgstr ""
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you have already ordered a ticket"
msgid "If you already ordered a ticket"
msgstr ""
#: pretix/presale/templates/pretixpresale/event/index.html:257

View File

@@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-04-28 11:06+0000\n"
"PO-Revision-Date: 2025-05-14 02:00+0000\n"
"Last-Translator: Zona Vip <contacto@zonavip.mx>\n"
"PO-Revision-Date: 2025-03-27 00:00+0000\n"
"Last-Translator: CVZ-es <damien.bremont@casadevelazquez.org>\n"
"Language-Team: Spanish <https://translate.pretix.eu/projects/pretix/pretix/"
"es/>\n"
"Language: es\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.11.4\n"
"X-Generator: Weblate 5.10.4\n"
#: pretix/_base_settings.py:87
msgid "English"
@@ -2595,7 +2595,7 @@ msgstr "Vales de compra bloqueados"
#: pretix/base/exporters/orderlist.py:1135 pretix/control/views/item.py:982
msgid "Current user's carts"
msgstr "Carrito actual del usuario"
msgstr "Cesta actual del usuario"
#: pretix/base/exporters/orderlist.py:1135
msgid "Exited orders"
@@ -2996,9 +2996,11 @@ msgid "Repeat password"
msgstr "Repetir contraseña"
#: pretix/base/forms/questions.py:134 pretix/base/forms/questions.py:256
#, fuzzy
#| msgid "No country specified."
msgctxt "name_salutation"
msgid "not specified"
msgstr "sin especificar"
msgstr "No se especifica ningún país."
#: pretix/base/forms/questions.py:219
msgid "Please do not use special characters in names."
@@ -4244,13 +4246,12 @@ msgid ""
"discounted. If you want to grant the discount on all matching products, keep "
"this field empty."
msgstr ""
"Esta opción le permite crear descuentos del tipo "
"\"compre X y obtenga Y reducido/gratis\". Por ejemplo, si establece "
"\"Número mínimo de productos coincidentes\" en cuatro y este valor en dos, "
"el carrito del cliente se dividirá en grupos de cuatro entradas y se "
"descontarán las dos entradas más baratos dentro de cada grupo. Si desea "
"otorgar el descuento en todos los productos coincidentes, mantenga este "
"campo vacío."
"Esta opción le permite crear descuentos del tipo \"compre X y obtenga Y "
"reducido/gratis\". Por ejemplo, si establece \"Número mínimo de productos "
"coincidentes\" en cuatro y este valor en dos, la cesta del cliente se "
"dividirá en grupos de cuatro entradas y se descontarán las dos entradas más "
"baratos dentro de cada grupo. Si desea otorgar el descuento en todos los "
"productos coincidentes, mantenga este campo vacío."
#: pretix/base/models/discount.py:165
msgid "Apply to add-on products"
@@ -4269,14 +4270,20 @@ msgstr ""
"o acceder a una cuota agotada seguirá recibiendo el descuento."
#: pretix/base/models/discount.py:177
#, fuzzy
#| msgctxt "subevent"
#| msgid "All dates starting before"
msgctxt "subevent"
msgid "Available for dates starting from"
msgstr "Disponible para fechas a partir de"
msgstr "Todas las fechas empezando antes"
#: pretix/base/models/discount.py:182
#, fuzzy
#| msgctxt "subevent"
#| msgid "All dates starting before"
msgctxt "subevent"
msgid "Available for dates starting until"
msgstr "Disponible para fechas hasta el"
msgstr "Todas las fechas empezando antes"
#: pretix/base/models/discount.py:214
msgid ""
@@ -4720,7 +4727,7 @@ msgstr ""
#: pretix/base/models/items.py:126
msgid "Only show if the cart contains one of the following products"
msgstr "Sólo se muestra el carrito contiene uno de los siguientes productos"
msgstr "Sólo se muestra si la cesta contiene uno de los siguientes productos"
#: pretix/base/models/items.py:129
msgid "Cross-selling condition"
@@ -4990,7 +4997,7 @@ msgid ""
"many times. If you keep the field empty or set it to 0, there is no special "
"limit for this product."
msgstr ""
"Este producto sólo se puede comprar si se agrega al carrito por lo menos "
"Este producto sólo se puede comprar si se agrega a la cesta por lo menos "
"esta cantidad de veces. Si deja el campo vacío o lo fija en 0, no hay ningún "
"límite especial para este producto."
@@ -5592,12 +5599,19 @@ msgid "Unknown country code."
msgstr "Código de país desconocido."
#: pretix/base/models/items.py:1921 pretix/base/models/items.py:1923
#, fuzzy
#| msgid "The maximum count needs to be greater than the minimum count."
msgid "The maximum date must not be before the minimum value."
msgstr "La fecha máxima no debe ser anterior a la fecha mínima."
msgstr "El conteo máximo debe ser mayor que el conteo mínimo."
#: pretix/base/models/items.py:1925
#, fuzzy
#| msgid ""
#| "The maximum number of usages may not be lower than the minimum number of "
#| "usages."
msgid "The maximum value must not be lower than the minimum value."
msgstr "El valor máximo no debe ser inferior al mínimo."
msgstr ""
"El número máximo de usos no podrá ser inferior al número mínimo de usos."
#: pretix/base/models/items.py:1942
#: pretix/control/templates/pretixcontrol/items/question.html:90
@@ -6012,7 +6026,7 @@ msgstr ""
#: pretix/base/models/orders.py:2286
msgid "Service fee"
msgstr "Cargo por servicio"
msgstr "Gastos de gestión"
#: pretix/base/models/orders.py:2287
msgid "Payment fee"
@@ -6064,15 +6078,15 @@ msgstr "Posición del pedido"
#: pretix/base/models/orders.py:3091
msgid "Cart ID (e.g. session key)"
msgstr "ID de carrito (p. ej. clave de sesión)"
msgstr "ID de cesta (p. ej. clave de sesión)"
#: pretix/base/models/orders.py:3128
msgid "Cart position"
msgstr "Posición del carrito"
msgstr "Posición de la cesta"
#: pretix/base/models/orders.py:3129
msgid "Cart positions"
msgstr "Posiciones del carrito"
msgstr "Posiciones de la cesta"
#: pretix/base/models/orders.py:3265
msgid "Business customer"
@@ -6637,7 +6651,7 @@ msgid ""
"of a specific product, you can also select a quota. In this case, all "
"products assigned to this quota can be selected."
msgstr ""
"Este producto añadirá al carrito del usuario si está usado el vale de "
"Este producto añadirá a la cesta del usuario si está usado el vale de "
"compra. En vez de un producto específico, se puede seleccionar una cuota. En "
"este caso, todos los productos que están asignados al esta cuota se pueden "
"seleccionar."
@@ -7788,7 +7802,7 @@ msgstr "Usted no seleccionó ningún producto."
#: pretix/base/services/cart.py:105
msgid "Unknown cart position."
msgstr "Posición del carrito desconocida."
msgstr "Posición de la cesta desconocida."
#: pretix/base/services/cart.py:106
msgctxt "subevent"
@@ -7822,7 +7836,7 @@ msgid ""
"products are affected and have not been added to your cart: %s"
msgstr ""
"Algunos de los productos que seleccionó ya no están disponibles. Los "
"siguientes productos están afectados y no se han agregado a su carrito: %s"
"siguientes productos están afectados y no se han agregado a su cesta: %s"
#: pretix/base/services/cart.py:121
#, python-format
@@ -7833,7 +7847,7 @@ msgid ""
msgstr ""
"Algunos de los productos que seleccionó ya no están disponibles en la "
"cantidad que seleccionó. Los siguientes productos están afectados y no se "
"han agregado a su carrito: %s"
"han agregado a su cesta: %s"
#: pretix/base/services/cart.py:126
#, python-format
@@ -7871,11 +7885,11 @@ msgid_plural ""
"We removed %(product)s from your cart as you can not buy less than %(min)s "
"items of it."
msgstr[0] ""
"Eliminamos %(product)s de su carrito ya que no puede comprar menos de %(min)"
"s artículo del mismo."
"Eliminamos %(product)s de su cesta ya que no puede comprar menos de %(min)s "
"artículo del mismo."
msgstr[1] ""
"Eliminamos %(product)s de su carrito ya que no puede comprar menos de %(min)"
"s artículos del mismo."
"Eliminamos %(product)s de su cesta ya que no puede comprar menos de %(min)s "
"artículos del mismo."
#: pretix/base/services/cart.py:144 pretix/base/services/orders.py:154
#: pretix/presale/templates/pretixpresale/event/index.html:167
@@ -7901,7 +7915,7 @@ msgid ""
"positions have been removed from your cart."
msgstr ""
"El período de preventa de este evento aún no ha comenzado. Las posiciones "
"afectadas han sido eliminadas de su carrito."
"afectadas han sido eliminadas de su cesta."
#: pretix/base/services/cart.py:151 pretix/base/services/orders.py:182
msgid ""
@@ -7909,7 +7923,7 @@ msgid ""
"affected positions have been removed from your cart."
msgstr ""
"El período de preventa de uno de los eventos de su cesta ha finalizado. Las "
"posiciones afectadas han sido eliminadas de su carrito."
"posiciones afectadas han sido eliminadas de su cesta."
#: pretix/base/services/cart.py:153
msgid "The entered price is not a number."
@@ -7951,11 +7965,11 @@ msgid_plural ""
msgstr[0] ""
"El vale de compra \"%(voucher)s\" solo se puede utilizar si selecciona al "
"menos %(number)s productos coincidentes. Por lo tanto, hemos eliminado "
"algunas posiciones de su carrito que ya no se pueden comprar así."
"algunas posiciones de su cesta que ya no se pueden comprar así."
msgstr[1] ""
"Los vale de compra \"%(voucher)s\" solo se pueden utilizar si selecciona al "
"menos %(number)s productos coincidentes. Por lo tanto, hemos eliminado "
"algunas posiciones de su carrito que ya no se pueden comprar así."
"algunas posiciones de su cesta que ya no se pueden comprar así."
#: pretix/base/services/cart.py:168
msgid ""
@@ -7972,7 +7986,7 @@ msgid ""
"process. You can try to use it again in %d minutes."
msgstr ""
"Este vale de compra está actualmente bloqueado ya que está contenido en un "
"carrito de la compra. Esto puede significar que otra persona está canjeando "
"cesta de la compra. Esto puede significar que otra persona está canjeando "
"este vale de compra ahora mismo, o que usted intentó canjearlo antes pero no "
"completó el proceso de pago. Puede intentar utilizarlo de nuevo en %d "
"minutos."
@@ -7987,7 +8001,7 @@ msgid ""
"Applying a voucher to the whole cart should not be combined with other "
"operations."
msgstr ""
"La aplicación de un vale de compra a todo el carrito no debe combinarse con "
"La aplicación de un vale de compra a todo la cesta no debe combinarse con "
"otras operaciones."
#: pretix/base/services/cart.py:178
@@ -7995,7 +8009,7 @@ msgid ""
"You already used this voucher code. Remove the associated line from your "
"cart if you want to use it for a different product."
msgstr ""
"Ya ha utilizado este vale de compra. Elimine la línea asociada de su carrito "
"Ya ha utilizado este vale de compra. Elimine la línea asociada de su cesta "
"si desea utilizarlo para un producto diferente."
#: pretix/base/services/cart.py:181
@@ -8016,7 +8030,7 @@ msgid ""
"for. If you want to add something new to your cart using that voucher, you "
"can do so with the voucher redemption option on the bottom of the page."
msgstr ""
"No encontramos ninguna posición en su carrito para la que podamos usar este "
"No encontramos ninguna posición en su cesta para la que podamos usar este "
"vale de compra. Si desea agregar algo nuevo a su cesta usando ese vale de "
"compra, puede hacerlo con la opción de canje de vale de compra en la parte "
"inferior de la página."
@@ -8617,8 +8631,8 @@ msgid ""
"The price of some of the items in your cart has changed in the meantime. "
"Please see below for details."
msgstr ""
"El precio de algunos de los artículos en su carrito ha cambiado en el "
"durante este tiempo. Por favor vea abajo para más detalles."
"El precio de algunos de los artículos en su cesta ha cambiado en el durante "
"este tiempo. Por favor vea abajo para más detalles."
#: pretix/base/services/orders.py:141
msgid "An internal error occurred, please try again."
@@ -8634,7 +8648,7 @@ msgstr ""
#: pretix/base/services/orders.py:144
msgid "Your cart is empty."
msgstr "Su carrito está vacío."
msgstr "Su cesta está vacía."
#: pretix/base/services/orders.py:146
#, python-format
@@ -8646,10 +8660,10 @@ msgid_plural ""
"removed the surplus items from your cart."
msgstr[0] ""
"No puede seleccionar más de %(max)s artículos del producto %(product)s. "
"Eliminamos el artículo sobrante de su carrito."
"Eliminamos el artículo sobrante de su cesta."
msgstr[1] ""
"No puede seleccionar más de %(max)s artículos del producto %(product)s. "
"Eliminamos los artículos sobrantes de su carrito."
"Eliminamos los artículos sobrantes de su cesta."
#: pretix/base/services/orders.py:155
msgid "The booking period has ended."
@@ -8660,7 +8674,7 @@ msgid ""
"The voucher code used for one of the items in your cart is not known in our "
"database."
msgstr ""
"El vale de compra utilizado para uno de los artículos de su carrito no es "
"El vale de compra utilizado para uno de los artículos de su cesta no es "
"conocido en nuestra base de datos."
#: pretix/base/services/orders.py:163
@@ -8669,16 +8683,16 @@ msgid ""
"used the maximum number of times allowed. We removed this item from your "
"cart."
msgstr ""
"El vale de compra utilizado para uno de los artículos de su carrito ya ha "
"sido utilizado el máximo número de veces permitido. Hemos quitado este "
"artículo de su cesta."
"El vale de compra utilizado para uno de los artículos de su cesta ya ha sido "
"utilizado el máximo número de veces permitido. Hemos quitado este artículo "
"de su cesta."
#: pretix/base/services/orders.py:167
msgid ""
"The voucher code used for one of the items in your cart has already been too "
"often. We adjusted the price of the item in your cart."
msgstr ""
"El vale de compra utilizado para uno de los artículos de su carrito ya se ha "
"El vale de compra utilizado para uno de los artículos de su cesta ya se ha "
"utilizado con demasiada frecuencia. Ajustamos el precio del artículo en su "
"cesta."
@@ -8687,16 +8701,16 @@ msgid ""
"The voucher code used for one of the items in your cart is expired. We "
"removed this item from your cart."
msgstr ""
"El vale de compra utilizado para uno de los artículos de su carrito ha "
"caducado. Hemos quitado este artículo de su carrito."
"El vale de compra utilizado para uno de los artículos de su cesta ha "
"caducado. Hemos quitado este artículo de su cesta."
#: pretix/base/services/orders.py:174
msgid ""
"The voucher code used for one of the items in your cart is not valid for "
"this item. We removed this item from your cart."
msgstr ""
"El vale de compra utilizado para uno de los artículos de su carrito no es "
"válido para este artículo. Hemos quitado este artículo de su carrito."
"El vale de compra utilizado para uno de los artículos de su cesta no es "
"válido para este artículo. Hemos quitado este artículo de su cesta."
#: pretix/base/services/orders.py:176
msgid "You need a valid voucher code to order one of the products."
@@ -8707,22 +8721,22 @@ msgid ""
"The booking period for one of the events in your cart has not yet started. "
"The affected positions have been removed from your cart."
msgstr ""
"El período de preventa de uno de los eventos de su carrito aún no ha "
"comenzado. Las posiciones afectadas han sido eliminadas de su carrito."
"El período de preventa de uno de los eventos de su cesta aún no ha "
"comenzado. Las posiciones afectadas han sido eliminadas de su cesta."
#: pretix/base/services/orders.py:185
msgid ""
"One of the seats in your order was invalid, we removed the position from "
"your cart."
msgstr ""
"Uno de las butacas de su pedido no era válida, la eliminamos de su carrito."
"Uno de las butacas de su pedido no era válida, la eliminamos de su cesta."
#: pretix/base/services/orders.py:186
msgid ""
"One of the seats in your order has been taken in the meantime, we removed "
"the position from your cart."
msgstr ""
"Una de las butaca de su pedido ha sido ocupada. La eliminamos de su carrito."
"Una de las butaca de su pedido ha sido ocupada. La eliminamos de su cesta."
#: pretix/base/services/orders.py:202
#, python-format
@@ -9155,8 +9169,8 @@ msgid ""
"Independent of your choice, the cart will show gross prices as this is the "
"price that needs to be paid."
msgstr ""
"Independientemente de su elección, el carrito mostrará los precios brutos, "
"ya que este es el precio que debe pagarse."
"Independientemente de su elección, el cesta mostrará los precios brutos, ya "
"que este es el precio que debe pagarse."
#: pretix/base/settings.py:338
msgid "Hide prices on attendee ticket page"
@@ -9522,15 +9536,15 @@ msgstr "Período de reserva"
msgid ""
"The number of minutes the items in a user's cart are reserved for this user."
msgstr ""
"El número de minutos que los artículos en el carrito de un usuario "
"permanecen reservados para un usuario."
"El número de minutos que los artículos en la cesta de un usuario permanecen "
"reservados para un usuario."
#: pretix/base/settings.py:807
msgid ""
"Directly redirect to check-out after a product has been added to the cart."
msgstr ""
"Redirigir directamente a la compra después de que un producto se haya "
"agregado a la carrito."
"agregado a la cesta."
#: pretix/base/settings.py:816
msgid "End of presale text"
@@ -11685,6 +11699,13 @@ msgid "Header image"
msgstr "Imagen de cabecera"
#: pretix/base/settings.py:2885
#, fuzzy
#| msgid ""
#| "If you provide a logo image, we will by default not show your event name "
#| "and date in the page header. By default, we show your logo with a size of "
#| "up to 1140x120 pixels. You can increase the size with the setting below. "
#| "We recommend not using small details on the picture as it will be resized "
#| "on smaller screens."
msgid ""
"If you provide a logo image, we will by default not show your event name and "
"date in the page header. If you use a white background, we show your logo "
@@ -11692,13 +11713,12 @@ msgid ""
"pixels. You can increase the size with the setting below. We recommend not "
"using small details on the picture as it will be resized on smaller screens."
msgstr ""
"Si proporciona una imagen de logotipo, por defecto no mostraremos el nombre "
"de su evento ni la fecha en la cabecera de la página. Si utiliza un fondo "
"blanco, mostraremos su logotipo con un tamaño máximo de 1140x120 píxeles. En "
"caso contrario, el tamaño máximo es de 1120x120 píxeles. Puede aumentar el "
"tamaño con la configuración que aparece a continuación. Recomendamos no "
"utilizar detalles pequeños en la imagen, ya que se redimensionará en las "
"pantallas más pequeñas."
"Si proporciona una imagen de logotipo, de forma predeterminada no "
"mostraremos el nombre ni la fecha de su evento en el encabezado de la "
"página. De forma predeterminada, mostramos su logotipo con un tamaño de "
"hasta 1140x120 píxeles. Puede aumentar el tamaño con la configuración "
"siguiente. Recomendamos no utilizar pequeños detalles en la imagen, ya que "
"cambiará de tamaño en pantallas más pequeñas."
#: pretix/base/settings.py:2906 pretix/base/settings.py:2949
msgid "Use header image in its full size"
@@ -11725,6 +11745,13 @@ msgstr ""
"título del evento."
#: pretix/base/settings.py:2929 pretix/control/forms/organizer.py:524
#, fuzzy
#| msgid ""
#| "If you provide a logo image, we will by default not show your "
#| "organization name in the page header. By default, we show your logo with "
#| "a size of up to 1140x120 pixels. You can increase the size with the "
#| "setting below. We recommend not using small details on the picture as it "
#| "will be resized on smaller screens."
msgid ""
"If you provide a logo image, we will by default not show your organization "
"name in the page header. If you use a white background, we show your logo "
@@ -11732,13 +11759,12 @@ msgid ""
"pixels. You can increase the size with the setting below. We recommend not "
"using small details on the picture as it will be resized on smaller screens."
msgstr ""
"Si proporciona una imagen de logotipo, por defecto no mostraremos el nombre "
"de su organización en la cabecera de la página. Si utiliza un fondo blanco, "
"mostraremos su logotipo con un tamaño máximo de 1140x120 píxeles. En caso "
"contrario, el tamaño máximo es de 1120x120 píxeles. Puede aumentar el tamaño "
"con la configuración que aparece a continuación. Recomendamos no utilizar "
"detalles pequeños en la imagen, ya que se redimensionará en las pantallas "
"más pequeñas."
"Si proporciona una imagen de logotipo, de forma predeterminada no "
"mostraremos el nombre de su organización en el encabezado de la página. De "
"forma predeterminada, mostramos su logotipo con un tamaño de hasta 1140x120 "
"píxeles. Puede aumentar el tamaño con la configuración siguiente. "
"Recomendamos no utilizar pequeños detalles en la imagen, ya que cambiará de "
"tamaño en pantallas más pequeñas."
#: pretix/base/settings.py:2959
msgid "Use header image also for events without an individually uploaded logo"
@@ -14676,8 +14702,8 @@ msgid ""
"\"inactive\" instead."
msgstr ""
"La variación \"%s\" no se puede borrar porque ya ha sido pedida por un "
"usuario o está actualmente en el carrito de un usuario. En su lugar, "
"configure la variación como \"inactiva\"."
"usuario o está actualmente en la cesta de un usuario. En su lugar, configure "
"la variación como \"inactiva\"."
#: pretix/control/forms/item.py:994
msgid "Use value from product"
@@ -17905,8 +17931,8 @@ msgid_plural ""
"Are you sure you want to permanently delete the check-ins of "
"<strong>%(count)s tickets</strong>?"
msgstr[0] ""
"¿Está seguro de que desea eliminar permanentemente los registros de <strong"
">check-in</strong>?"
"¿Está seguro de que desea eliminar permanentemente los registros de "
"<strong>check-in</strong>?."
msgstr[1] ""
"¿Estás seguro de que deseas eliminar permanentemente los registros de "
"<strong>%(count)s check-in</strong>?"
@@ -19855,7 +19881,7 @@ msgstr "Añadir enlace"
#: pretix/control/templates/pretixcontrol/event/settings.html:345
msgid "Cart"
msgstr "Carrito"
msgstr "Cesta"
#: pretix/control/templates/pretixcontrol/event/settings.html:353
msgid ""
@@ -20285,7 +20311,7 @@ msgid ""
msgstr ""
"Ejemplos: múltiples presentaciones del mismo espectáculo, el mismo concierto "
"en múltiples ubicaciones, museos, bibliotecas o piscinas, eventos que deben "
"reservarse juntos en un solo carrito."
"reservarse juntos en una sola cesta."
#: pretix/control/templates/pretixcontrol/events/create_foundation.html:53
msgid ""
@@ -20875,7 +20901,7 @@ msgid ""
"as add-ons in the cart for this product."
msgstr ""
"Con los paquetes, puede especificar productos que siempre se agregan "
"automáticamente al carrito como complementos para este producto."
"automáticamente a la cesta como complementos para este producto."
#: pretix/control/templates/pretixcontrol/item/include_bundles.html:68
msgid "Add a new bundled product"
@@ -21061,7 +21087,7 @@ msgstr "Condición"
#: pretix/control/templates/pretixcontrol/items/discount.html:34
msgid "Minimum cart content"
msgstr "Contenido mínimo del carrito"
msgstr "Contenido mínimo de la cesta"
#: pretix/control/templates/pretixcontrol/items/discount.html:43
#: pretix/plugins/stripe/templates/pretixplugins/stripe/checkout_payment_form_card.html:53
@@ -21157,7 +21183,7 @@ msgid ""
"overlapping discounts, the first one in the order of the list below will "
"apply."
msgstr ""
"Un sólo desuento puede aplicarse a los productos del carrito. Si tiene "
"Un sólo desuento puede aplicarse a los productos de la cesta. Si tiene "
"descuentos superpuestos, se aplicará el primero en el pedido de la lista "
"siguiente."
@@ -24619,32 +24645,32 @@ msgstr "Idioma preferido"
#: pretix/control/templates/pretixcontrol/pdf/index.html:200
#: pretix/control/templates/pretixcontrol/pdf/index.html:210
#, fuzzy
#| msgid "Upload custom background"
msgid "Upload PDF as background"
msgstr "Subir PDF como fondo"
msgstr "Subir fondo personalizado"
#: pretix/control/templates/pretixcontrol/pdf/index.html:202
msgid ""
"You can upload a PDF to use as a custom background. The paper size will "
"match the PDF."
msgstr ""
"Puede cargar un PDF para utilizarlo como fondo personalizado. El tamaño del "
"papel coincidirá con el PDF."
#: pretix/control/templates/pretixcontrol/pdf/index.html:217
msgid "Download current background"
msgstr "Descargar fondo actual"
#: pretix/control/templates/pretixcontrol/pdf/index.html:224
#, fuzzy
#| msgid "Date chosen by customer"
msgid "Or choose custom paper size"
msgstr "O elija un tamaño de papel personalizado"
msgstr "Fecha elegida por el cliente"
#: pretix/control/templates/pretixcontrol/pdf/index.html:226
msgid ""
"To manually change the paper size, you need to create a new, empty "
"background."
msgstr ""
"Para cambiar manualmente el tamaño del papel, debe crear un nuevo fondo "
"vacío."
#: pretix/control/templates/pretixcontrol/pdf/index.html:234
#: pretix/control/templates/pretixcontrol/pdf/index.html:321
@@ -25823,7 +25849,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/vouchers/delete_carts.html:4
#: pretix/control/templates/pretixcontrol/vouchers/delete_carts.html:6
msgid "Delete carts"
msgstr "Eliminar carrito"
msgstr "Eliminar cestas"
#: pretix/control/templates/pretixcontrol/vouchers/delete_carts.html:9
#, python-format
@@ -25831,7 +25857,7 @@ msgid ""
"Are you sure you want to delete any cart positions with voucher "
"<strong>%(voucher)s</strong>?"
msgstr ""
"¿Está seguro de que desea eliminar alguna entrada del carrito con vale de "
"¿Está seguro de que desea eliminar alguna entrada de la cesta con vale de "
"compra <strong>%(voucher)s</strong>?"
#: pretix/control/templates/pretixcontrol/vouchers/delete_carts.html:10
@@ -25840,7 +25866,7 @@ msgid ""
"a purchase. This can be really confusing. Only use this if you know that the "
"session is no longer in use."
msgstr ""
"Esto eliminará silenciosamente productos del carrito de un usuario que "
"Esto eliminará silenciosamente productos de la cesta de un usuario que "
"actualmente realiza una compra. Esto puede resultar realmente confuso. "
"Utilice esto únicamente si sabe que la sesión ya no está en uso."
@@ -25860,13 +25886,13 @@ msgid ""
"This voucher is currently used in %(number)s cart sessions and might not be "
"free to use until the cart sessions expire."
msgstr ""
"Este vale de compra se utiliza actualmente en %(number)s sesiones del "
"carrito y es posible que no sea de uso gratuito hasta que caduque la sesión "
"de la cesta."
"Este vale de compra se utiliza actualmente en %(number)s sesiones de la "
"cesta y es posible que no sea de uso gratuito hasta que caduque la sesión de "
"la cesta."
#: pretix/control/templates/pretixcontrol/vouchers/detail.html:28
msgid "Remove cart positions"
msgstr "Eliminar elemento del carrito"
msgstr "Eliminar element de la cesta"
#: pretix/control/templates/pretixcontrol/vouchers/detail.html:43
msgid "Voucher link"
@@ -28040,9 +28066,10 @@ msgid "until"
msgstr "hasta"
#: pretix/helpers/daterange.py:106
#, python-brace-format
#, fuzzy, python-brace-format
#| msgid "{date_from} {date_to}"
msgid "{date_from}{until}{date_to}"
msgstr "{date_from}{until}{date_to}"
msgstr "{date_from} {date_to}"
#: pretix/helpers/images.py:61 pretix/helpers/images.py:67
#: pretix/helpers/images.py:85
@@ -31830,8 +31857,10 @@ msgid "Payer name"
msgstr "Nombre del pagador"
#: pretix/plugins/stripe/templates/pretixplugins/stripe/control.html:91
#, fuzzy
#| msgid "Payment fee"
msgid "Payment receipt"
msgstr "Recibo de pago"
msgstr "Tarifa de pago"
#: pretix/plugins/stripe/templates/pretixplugins/stripe/oauth_disconnect.html:12
msgid "Do you really want to disconnect your Stripe account?"
@@ -32152,7 +32181,7 @@ msgid ""
"Your cart includes a product that requires an active membership to be "
"selected."
msgstr ""
"Su carrito incluye un producto que requiere una suscripción activa para ser "
"Su cesta incluye un producto que requiere una suscripción activa para ser "
"seleccionado."
#: pretix/presale/checkoutflow.py:489
@@ -32188,8 +32217,8 @@ msgid ""
"accordingly."
msgstr ""
"Debido a la dirección de factura que ingresó, necesitamos aplicar una tasa "
"impositiva diferente a su compra y el precio de los productos en su carrito "
"ha cambiado en consecuencia."
"impositiva diferente a su compra y el precio de los productos en su cesta ha "
"cambiado en consecuencia."
#: pretix/presale/checkoutflow.py:1029
msgid "Please enter your invoicing address."
@@ -32547,7 +32576,7 @@ msgid ""
"For some of the products in your cart, you can choose additional options "
"before you continue."
msgstr ""
"Para algunos de los productos en su carrito, usted puede elegir opciones "
"Para algunos de los productos en su cesta, usted puede elegir opciones "
"adicionales antes de continuar."
#: pretix/presale/templates/pretixpresale/event/checkout_addons.html:16
@@ -32555,7 +32584,7 @@ msgid ""
"A product in your cart is only sold in combination with add-on products that "
"are not available. Please contact the event organizer."
msgstr ""
"Un producto de su carrito sólo se vende en combinación con productos "
"Un producto de su cesta sólo se vende en combinación con productos "
"complementarios que no están disponibles. Póngase en contacto con el "
"organizador del evento."
@@ -32603,17 +32632,17 @@ msgstr "Compra"
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:8
#: pretix/presale/templates/pretixpresale/event/fragment_cart_box.html:11
msgid "Your cart"
msgstr "Su carrito"
msgstr "Su cesta"
#: pretix/presale/templates/pretixpresale/event/checkout_base.html:28
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:31
#: pretix/presale/templates/pretixpresale/event/fragment_cart_box.html:18
msgid "Cart expired"
msgstr "El carrito de compra ha expirado"
msgstr "La cesta de compra ha expirado"
#: pretix/presale/templates/pretixpresale/event/checkout_base.html:36
msgid "Show full cart"
msgstr "Mostrar carrito completo"
msgstr "Mostrar cesta completa"
#: pretix/presale/templates/pretixpresale/event/checkout_base.html:48
#: pretix/presale/templates/pretixpresale/event/index.html:84
@@ -32759,7 +32788,7 @@ msgid ""
"Some of the products in your cart can only be purchased if there is an "
"active membership on your account."
msgstr ""
"Algunos productos del carrito sólo pueden comprarse si existe una "
"Algunos productos de la cesta sólo pueden comprarse si existe una "
"suscripción activa en su cuenta."
#: pretix/presale/templates/pretixpresale/event/checkout_membership.html:37
@@ -32892,7 +32921,7 @@ msgid ""
"browser settings accordingly."
msgstr ""
"Su navegador no acepta cookies de nuestra parte. Sin embargo, necesitamos "
"establecer una cookie para recordar quién es usted y qué hay en su carrito. "
"establecer una cookie para recordar quién es usted y qué hay en su cesta. "
"Por favor, cambie la configuración de su navegador en consecuencia."
#: pretix/presale/templates/pretixpresale/event/fragment_addon_choice.html:17
@@ -33054,7 +33083,7 @@ msgstr "incluido. %(rate)s%% %(name)s"
#: pretix/presale/templates/pretixpresale/event/voucher.html:252
#, python-format
msgid "Add %(item)s, %(var)s to cart"
msgstr "Cantidad de %(item)s - %(var)s en el carrito"
msgstr "Cantidad de %(item)s - %(var)s en la cesta"
#: pretix/presale/templates/pretixpresale/event/fragment_addon_choice.html:203
#: pretix/presale/templates/pretixpresale/event/fragment_addon_choice.html:349
@@ -33093,7 +33122,7 @@ msgstr "Aumentar cantidad"
#: pretix/presale/templates/pretixpresale/event/voucher.html:408
#, python-format
msgid "Add %(item)s to cart"
msgstr "Añadir %(item)s al carrito"
msgstr "Añadir %(item)s a la cesta"
#: pretix/presale/templates/pretixpresale/event/fragment_addon_choice.html:379
msgid "There are no add-ons available for this product."
@@ -33215,12 +33244,12 @@ msgstr "Entendido, estamos removiendo eso…"
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:289
#, python-format
msgid "Remove %(item)s from your cart"
msgstr "Eliminar %(item)s de su carrito"
msgstr "Eliminar %(item)s de su cesta"
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:292
#, python-format
msgid "Remove one %(item)s from your cart"
msgstr "Eliminar un %(item)s de tu carrito"
msgstr "Eliminar un %(item)s de tu cesta"
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:294
#, python-format
@@ -33228,7 +33257,7 @@ msgid ""
"Remove one %(item)s from your cart. You currently have %(count)s in your "
"cart."
msgstr ""
"Elimina un %(item)s de su carrito. Actualmente tiene %(count)s en su carrito."
"Elimina un %(item)s de su cesta. Actualmente tiene %(count)s en su cesta."
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:302
msgid "We're trying to reserve another one for you!"
@@ -33243,13 +33272,13 @@ msgid ""
"Once the items are in your cart, you will have %(time)s minutes to complete "
"your purchase."
msgstr ""
"Una vez los elementos están en su carrito, tendrá %(time)s minutos para "
"Una vez los elementos están en su cesta, tendrá %(time)s minutos para "
"completar la compra."
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:322
#, python-format
msgid "Add one more %(item)s to your cart"
msgstr "Añadir un %(item)s más a su carrito"
msgstr "Añadir un %(item)s más a su cesta"
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:324
#, python-format
@@ -33257,8 +33286,7 @@ msgid ""
"Add one more %(item)s to your cart. You currently have %(count)s in your "
"cart."
msgstr ""
"Agregar un %(item)s más a su carrito. Actualmente tiene %(count)s en su "
"carrito."
"Agregar un %(item)s más a su cesta. Actualmente tiene %(count)s en su cesta."
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:384
#: pretix/presale/templates/pretixpresale/event/order_giftcard.html:20
@@ -33282,15 +33310,15 @@ msgstr "incl. %(tax_sum)s impuestos"
#, python-format
msgid "The items in your cart are reserved for you for %(minutes)s minutes."
msgstr ""
"Los artículos de su carrito están reservados durante %(minutes)ss minutos."
"Los artículos de su cesta están reservados durante %(minutes)ss minutos."
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:493
msgid ""
"The items in your cart are no longer reserved for you. You can still "
"complete your order as long as theyre available."
msgstr ""
"Los elementos en su carrito de compras ya no se encuentran reservados. "
"Puedes seguir añadiendo más productos mientras estén disponibles."
"Los elementos en su cesta de compras ya no se encuentran reservados. Puedes "
"seguir añadiendo más productos mientras estén disponibles."
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:497
msgid "Overview of your ordered products."
@@ -33308,7 +33336,7 @@ msgstr "Proceder con la compra"
#: pretix/presale/templates/pretixpresale/event/fragment_cart_box.html:63
msgid "Empty cart"
msgstr "Vaciar carrito"
msgstr "Vaciar cesta"
#: pretix/presale/templates/pretixpresale/event/fragment_cart_box.html:68
#: pretix/presale/templates/pretixpresale/event/index.html:246
@@ -33318,7 +33346,7 @@ msgstr "Canjear vale de compra"
#: pretix/presale/templates/pretixpresale/event/fragment_cart_box.html:71
msgid "We're applying this voucher to your cart..."
msgstr "Estamos aplicando este vale de compra a su carrito..."
msgstr "Estamos aplicando este vale de compra a su cesta..."
#: pretix/presale/templates/pretixpresale/event/fragment_cart_box.html:79
#: pretix/presale/templates/pretixpresale/event/fragment_voucher_form.html:26
@@ -33694,11 +33722,11 @@ msgstr ""
#: pretix/presale/templates/pretixpresale/event/index.html:48
msgid "Your cart, general information, add products to your cart"
msgstr "Su carrito, información general, añadir productos a su carrito"
msgstr "Su cesta, información general, añadir productos a su cesta"
#: pretix/presale/templates/pretixpresale/event/index.html:48
msgid "General information, add products to your cart"
msgstr "Información general, añadir productos al carrito"
msgstr "Información general, añadir productos a la cesta"
#: pretix/presale/templates/pretixpresale/event/index.html:68
msgid "Please select a date to redeem your voucher."
@@ -33752,10 +33780,10 @@ msgstr "Registrarse"
#: pretix/presale/templates/pretixpresale/event/index.html:232
#: pretix/presale/templates/pretixpresale/event/voucher.html:443
msgid "Add to cart"
msgstr "Agregar al carrito"
msgstr "Agregar a la cesta"
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you have already ordered a ticket"
msgid "If you already ordered a ticket"
msgstr "Si ya ha pedido una entrada"
#: pretix/presale/templates/pretixpresale/event/index.html:257
@@ -34592,8 +34620,8 @@ msgid ""
"Functional cookies (e.g. shopping cart, login, payment, language preference) "
"and technical cookies (e.g. security purposes)"
msgstr ""
"Cookies funcionales (por ejemplo, carrito de compras, inicio de sesión, "
"pago, preferencia de idioma) y cookies técnicas (por ejemplo, con fines de "
"Cookies funcionales (por ejemplo, cesta de compras, inicio de sesión, pago, "
"preferencia de idioma) y cookies técnicas (por ejemplo, con fines de "
"seguridad)"
#: pretix/presale/templates/pretixpresale/fragment_modals.html:89
@@ -34885,26 +34913,26 @@ msgstr "Por favor, introduzca sólo números positivos."
#: pretix/presale/views/cart.py:441
msgid "We applied the voucher to as many products in your cart as we could."
msgstr ""
"Aplicamos el vale de compra a tantos productos en su carrito como pudimos."
"Aplicamos el vale de compra a tantos productos en su cesta como pudimos."
#: pretix/presale/views/cart.py:460 pretix/presale/views/cart.py:468
msgid ""
"The gift card has been saved to your cart. Please continue your checkout."
msgstr ""
"La tarjeta regalo se ha guardado en su carrito. Continúe con el proceso de "
"La tarjeta regalo se ha guardado en su cesta. Continúe con el proceso de "
"compra."
#: pretix/presale/views/cart.py:504
msgid "Your cart has been updated."
msgstr "Su carrito ha sido actualizada."
msgstr "Su cesta ha sido actualizada."
#: pretix/presale/views/cart.py:507 pretix/presale/views/cart.py:533
msgid "Your cart is now empty."
msgstr "Su carrito ha sido vaciada."
msgstr "Su cesta ha sido vaciada."
#: pretix/presale/views/cart.py:548
msgid "The products have been successfully added to your cart."
msgstr "Los productos se han añadido con éxito a su carrito."
msgstr "Los productos se han añadido con éxito a su cesta."
#: pretix/presale/views/cart.py:572 pretix/presale/views/event.py:540
#: pretix/presale/views/widget.py:377
@@ -34917,8 +34945,8 @@ msgid ""
"The gift card has been saved to your cart. Please now select the products "
"you want to purchase."
msgstr ""
"La tarjeta regalo se ha guardado en su carrito. Seleccione ahora los "
"productos que desea comprar."
"La tarjeta regalo se ha guardado en su cesta. Seleccione ahora los productos "
"que desea comprar."
#: pretix/presale/views/cart.py:739
msgctxt "subevent"
@@ -34927,7 +34955,7 @@ msgstr "No pudimos encontrar la fecha especificada."
#: pretix/presale/views/checkout.py:55
msgid "Your cart is empty"
msgstr "Su carito está vacío"
msgstr "Su cesta está vacía"
#: pretix/presale/views/checkout.py:59
msgid "The booking period for this event is over or has not yet started."

View File

@@ -8,16 +8,16 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-04-28 11:08+0000\n"
"PO-Revision-Date: 2025-05-14 02:00+0000\n"
"Last-Translator: Zona Vip <contacto@zonavip.mx>\n"
"Language-Team: Spanish <https://translate.pretix.eu/projects/pretix/"
"pretix-js/es/>\n"
"PO-Revision-Date: 2025-03-27 00:00+0000\n"
"Last-Translator: CVZ-es <damien.bremont@casadevelazquez.org>\n"
"Language-Team: Spanish <https://translate.pretix.eu/projects/pretix/pretix-"
"js/es/>\n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.11.4\n"
"X-Generator: Weblate 5.10.4\n"
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:56
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:62
@@ -706,12 +706,12 @@ msgid ""
"The items in your cart are no longer reserved for you. You can still "
"complete your order as long as theyre available."
msgstr ""
"Los elementos en su carrito de compras ya no se encuentran reservados. "
"Puedes seguir añadiendo más productos mientras estén disponibles."
"Los elementos en su cesta de compras ya no se encuentran reservados. Puedes "
"seguir añadiendo más productos mientras estén disponibles."
#: pretix/static/pretixpresale/js/ui/cart.js:45
msgid "Cart expired"
msgstr "El carrito de compra ha expirado"
msgstr "La cesta de compra ha expirado"
#: pretix/static/pretixpresale/js/ui/cart.js:50
msgid "The items in your cart are reserved for you for one minute."
@@ -918,9 +918,12 @@ msgid "Open ticket shop"
msgstr "Abrir tienda de tickets"
#: pretix/static/pretixpresale/js/widget/widget.js:48
#, fuzzy
#| msgctxt "widget"
#| msgid "Resume checkout"
msgctxt "widget"
msgid "Checkout"
msgstr "Pasar por caja"
msgstr "Continuar pago"
#: pretix/static/pretixpresale/js/widget/widget.js:49
msgctxt "widget"
@@ -1078,31 +1081,31 @@ msgstr "Dom"
#: pretix/static/pretixpresale/js/widget/widget.js:81
msgid "Monday"
msgstr "Lunes"
msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:82
msgid "Tuesday"
msgstr "Martes"
msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:83
msgid "Wednesday"
msgstr "Miércoles"
msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:84
msgid "Thursday"
msgstr "Jueves"
msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:85
msgid "Friday"
msgstr "Viernes"
msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:86
msgid "Saturday"
msgstr "Sábado"
msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:87
msgid "Sunday"
msgstr "Domingo"
msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:90
msgid "January"

View File

@@ -29859,7 +29859,7 @@ msgid "Add to cart"
msgstr ""
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you have already ordered a ticket"
msgid "If you already ordered a ticket"
msgstr ""
#: pretix/presale/templates/pretixpresale/event/index.html:257

View File

@@ -32099,7 +32099,7 @@ msgid "Add to cart"
msgstr "Saskira gehitu"
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you have already ordered a ticket"
msgid "If you already ordered a ticket"
msgstr "Dagoeneko sarrera bat eskatu baduzu"
#: pretix/presale/templates/pretixpresale/event/index.html:257

View File

@@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-04-28 11:06+0000\n"
"PO-Revision-Date: 2025-05-04 16:00+0000\n"
"Last-Translator: Pekka Sarkola <pekka.sarkola@gispo.fi>\n"
"PO-Revision-Date: 2025-02-12 15:27+0000\n"
"Last-Translator: Johanna Ketola <johanna.ketola@om.org>\n"
"Language-Team: Finnish <https://translate.pretix.eu/projects/pretix/pretix/"
"fi/>\n"
"Language: fi\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.11.1\n"
"X-Generator: Weblate 5.9.2\n"
#: pretix/_base_settings.py:87
msgid "English"
@@ -57,7 +57,7 @@ msgstr "tšekki"
#: pretix/_base_settings.py:96
msgid "Croatian"
msgstr "Kroatia"
msgstr ""
#: pretix/_base_settings.py:97
msgid "Danish"
@@ -2887,7 +2887,7 @@ msgstr "Odottaa lunastusta"
#: pretix/control/templates/pretixcontrol/waitinglist/index.html:223
#: pretix/control/views/waitinglist.py:329
msgid "Voucher redeemed"
msgstr "Kuponki lunastettu"
msgstr "Kuponi lunastettu"
#: pretix/base/exporters/waitinglist.py:80
#: pretix/control/templates/pretixcontrol/waitinglist/index.html:116
@@ -4245,7 +4245,7 @@ msgstr ""
#: pretix/base/models/discount.py:177
msgctxt "subevent"
msgid "Available for dates starting from"
msgstr "Saatavilla lähtien"
msgstr ""
#: pretix/base/models/discount.py:182
#, fuzzy
@@ -9794,7 +9794,7 @@ msgstr ""
#: pretix/base/settings.py:1311
msgid "This shop represents an event"
msgstr "Tämä kauppaa koskee tapahtumaa"
msgstr ""
#: pretix/base/settings.py:1313
msgid ""
@@ -12805,15 +12805,15 @@ msgstr "Tehtävä on suoritettu."
#: pretix/control/forms/__init__.py:205
#, python-brace-format
msgid "Please do not upload files larger than {size}!"
msgstr "Älä lataa tiedostoja, jotka ovat suurempia kuin {size}!"
msgstr ""
#: pretix/control/forms/__init__.py:227
msgid "Filetype not allowed!"
msgstr "Tiedostomuoto ei ole sallittu!"
msgstr ""
#: pretix/control/forms/__init__.py:330
msgid "Community translations"
msgstr "Yhteisön käännökset"
msgstr ""
#: pretix/control/forms/__init__.py:332
#, python-brace-format
@@ -12843,7 +12843,7 @@ msgstr ""
#: pretix/control/forms/checkin.py:176
msgid "Barcode"
msgstr "Viivakoodi"
msgstr ""
#: pretix/control/forms/checkin.py:179
msgid "Check-in time"
@@ -12869,11 +12869,11 @@ msgstr "Kaikki portit"
#: pretix/control/forms/event.py:91
msgid "Use languages"
msgstr "Käytä kieliä"
msgstr ""
#: pretix/control/forms/event.py:93
msgid "Choose all languages that your event should be available in."
msgstr "Valitse kaikki kielet, joita tapahtumasi käyttää."
msgstr ""
#: pretix/control/forms/event.py:96
msgid "This is an event series"
@@ -12886,19 +12886,19 @@ msgstr ""
#: pretix/control/forms/event.py:136 pretix/control/forms/event.py:518
msgid "Event timezone"
msgstr "Tapahtuman aikavyöhyke"
msgstr ""
#: pretix/control/forms/event.py:143
msgid "I don't want to specify taxes now"
msgstr "En halua määritellä veroja nyt"
msgstr ""
#: pretix/control/forms/event.py:144
msgid "You can always configure tax rates later."
msgstr "Voit aina määritellä verojen määrn myöhemmin."
msgstr ""
#: pretix/control/forms/event.py:148
msgid "Sales tax rate"
msgstr "Arvonlisävero"
msgstr ""
#: pretix/control/forms/event.py:149
msgid ""
@@ -12927,8 +12927,6 @@ msgid ""
"Sample Conference Center\n"
"Heidelberg, Germany"
msgstr ""
"Esimerkki konferenssikeskus\n"
"Helsinki, Finland"
#: pretix/control/forms/event.py:232
msgid "Your default locale must be specified."
@@ -12958,7 +12956,7 @@ msgstr "Oletus ({value})"
#: pretix/control/forms/event.py:384 pretix/control/forms/event.py:397
msgid "Domain"
msgstr "Verkkotunnus"
msgstr ""
#: pretix/control/forms/event.py:388
msgid "You can configure this in your organizer settings."
@@ -13011,7 +13009,7 @@ msgstr ""
#: pretix/control/forms/event.py:689
msgid "Do not ask"
msgstr "Älä kysy"
msgstr ""
#: pretix/control/forms/event.py:690
msgid "Ask, but do not require input"
@@ -13395,7 +13393,7 @@ msgstr ""
#: pretix/control/forms/event.py:1723
msgid "Payment via Stripe"
msgstr "Maksut Stripen kautta"
msgstr ""
#: pretix/control/forms/event.py:1724
msgid ""
@@ -13896,7 +13894,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/checkin/checkins.html:67
#: pretix/plugins/checkinlists/exporters.py:761
msgid "Device"
msgstr "Laite"
msgstr ""
#: pretix/control/forms/filter.py:2389 pretix/control/forms/filter.py:2424
#: pretix/control/forms/filter.py:2615
@@ -14231,7 +14229,7 @@ msgstr ""
#: pretix/control/forms/item.py:447
msgid "Size"
msgstr "Koko"
msgstr ""
#: pretix/control/forms/item.py:448
msgid "Number of tickets"
@@ -14334,7 +14332,7 @@ msgstr ""
#: pretix/control/forms/item.py:1079
msgid "Add-ons"
msgstr "Lisäosat"
msgstr ""
#: pretix/control/forms/item.py:1103
msgid "You added the same add-on category twice"
@@ -14363,7 +14361,7 @@ msgstr ""
#: pretix/control/forms/item.py:1236 pretix/control/forms/orders.py:367
#: pretix/control/forms/orders.py:557
msgid "inactive"
msgstr "Ei käytössä"
msgstr ""
#: pretix/control/forms/mailsetup.py:42
msgid "Hostname"
@@ -14590,7 +14588,7 @@ msgstr ""
#: pretix/presale/templates/pretixpresale/event/checkout_membership.html:23
#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:100
msgid "Seat"
msgstr "Istumapaikka"
msgstr ""
#: pretix/control/forms/orders.py:336
#: pretix/control/templates/pretixcontrol/order/change.html:182
@@ -14611,7 +14609,7 @@ msgstr ""
#: pretix/control/forms/orders.py:552 pretix/control/forms/orders.py:570
#: pretix/control/forms/orders.py:598
msgid "(Unchanged)"
msgstr "(Muuttumaton)"
msgstr ""
#: pretix/control/forms/orders.py:469 pretix/control/forms/orders.py:593
msgid "New price (gross)"
@@ -14696,7 +14694,7 @@ msgstr "Liitä laskut"
#: pretix/plugins/sendmail/templates/pretixplugins/sendmail/rule_inspect.html:20
#: pretix/plugins/sendmail/templates/pretixplugins/sendmail/rule_list.html:30
msgid "Recipient"
msgstr "Vastaanottaja"
msgstr ""
#: pretix/control/forms/orders.py:768
#, fuzzy, python-brace-format
@@ -15034,7 +15032,7 @@ msgstr "Myyntikanava samalla tunnuksella on jo olemassa."
#: pretix/control/templates/pretixcontrol/items/question_edit.html:139
msgctxt "form"
msgid "Optional"
msgstr "Valinnainen"
msgstr ""
#: pretix/control/forms/renderers.py:148
#: pretix/control/templates/pretixcontrol/organizers/device_bulk_edit.html:26
@@ -15047,23 +15045,23 @@ msgstr "muuta"
#: pretix/control/forms/rrule.py:35
msgid "year(s)"
msgstr "vuosi(a)"
msgstr ""
#: pretix/control/forms/rrule.py:36
msgid "month(s)"
msgstr "kuukausi(a)"
msgstr ""
#: pretix/control/forms/rrule.py:37
msgid "week(s)"
msgstr "viikko(ja)"
msgstr ""
#: pretix/control/forms/rrule.py:38
msgid "day(s)"
msgstr "päiviä"
msgstr ""
#: pretix/control/forms/rrule.py:43
msgid "Interval"
msgstr "Aikaväli"
msgstr ""
#: pretix/control/forms/rrule.py:69
msgid "Number of repetitions"
@@ -15076,27 +15074,27 @@ msgstr ""
#: pretix/control/forms/rrule.py:86 pretix/control/forms/rrule.py:133
msgctxt "rrule"
msgid "first"
msgstr "ensimmäinen"
msgstr ""
#: pretix/control/forms/rrule.py:87 pretix/control/forms/rrule.py:134
msgctxt "rrule"
msgid "second"
msgstr "toinen"
msgstr ""
#: pretix/control/forms/rrule.py:88 pretix/control/forms/rrule.py:135
msgctxt "rrule"
msgid "third"
msgstr "kolmas"
msgstr ""
#: pretix/control/forms/rrule.py:89 pretix/control/forms/rrule.py:136
msgctxt "rrule"
msgid "last"
msgstr "viimeinen"
msgstr ""
#: pretix/control/forms/rrule.py:110 pretix/control/forms/rrule.py:149
#: pretix/presale/templates/pretixpresale/fragment_calendar_nav.html:21
msgid "Day"
msgstr "Päivä"
msgstr ""
#: pretix/control/forms/rrule.py:112 pretix/control/forms/rrule.py:151
msgid "Weekend day"
@@ -15142,7 +15140,7 @@ msgstr ""
#: pretix/control/forms/vouchers.py:262
msgid "Codes"
msgstr "Koodit"
msgstr ""
#: pretix/control/forms/vouchers.py:264
msgid ""
@@ -15193,11 +15191,11 @@ msgstr ""
#: pretix/plugins/sendmail/templates/pretixplugins/sendmail/rule_update.html:42
#: pretix/plugins/sendmail/templates/pretixplugins/sendmail/send_form.html:25
msgid "Recipients"
msgstr "Vastaanottajaat"
msgstr ""
#: pretix/control/forms/vouchers.py:292
msgid "or"
msgstr "tai"
msgstr ""
#: pretix/control/forms/vouchers.py:296
msgid ""
@@ -15446,7 +15444,7 @@ msgstr ""
#: pretix/control/logdisplay.py:343 pretix/control/logdisplay.py:345
#: pretix/control/logdisplay.py:891 pretix/control/logdisplay.py:893
msgid "(unknown)"
msgstr "(tuntematon)"
msgstr ""
#: pretix/control/logdisplay.py:365
#, python-brace-format
@@ -16546,7 +16544,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/dashboard.html:3
#: pretix/control/templates/pretixcontrol/dashboard.html:5
msgid "Dashboard"
msgstr "Kojelauta"
msgstr ""
#: pretix/control/navigation.py:49 pretix/control/navigation.py:382
#: pretix/control/navigation.py:487
@@ -16561,7 +16559,7 @@ msgstr "Kojelauta"
#: pretix/control/templates/pretixcontrol/organizers/mail.html:19
#: pretix/control/templates/pretixcontrol/organizers/property_edit.html:15
msgid "General"
msgstr "Yleinen"
msgstr ""
#: pretix/control/navigation.py:57
#: pretix/control/templates/pretixcontrol/event/quick_setup.html:151
@@ -16573,7 +16571,7 @@ msgstr "Yleinen"
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:43
#: pretix/presale/templates/pretixpresale/event/order.html:86
msgid "Payment"
msgstr "Maksut"
msgstr ""
#: pretix/control/navigation.py:73 pretix/control/views/event.py:1516
#: pretix/control/views/event.py:1518 pretix/control/views/event.py:1550
@@ -16595,17 +16593,17 @@ msgstr ""
#: pretix/control/navigation.py:97
msgid "Invoicing"
msgstr "Laskutus"
msgstr ""
#: pretix/control/navigation.py:105
msgctxt "action"
msgid "Cancellation"
msgstr "Peruutus"
msgstr ""
#: pretix/control/navigation.py:113
#: pretix/control/templates/pretixcontrol/event/widget.html:8
msgid "Widget"
msgstr "Pienoisohjelma"
msgstr ""
#: pretix/control/navigation.py:126 pretix/control/navigation.py:435
#: pretix/control/navigation.py:480
@@ -16615,11 +16613,11 @@ msgstr "Pienoisohjelma"
#: pretix/plugins/returnurl/apps.py:40
#: pretix/plugins/ticketoutputpdf/apps.py:55
msgid "Settings"
msgstr "Asetukset"
msgstr ""
#: pretix/control/navigation.py:164
msgid "Categories"
msgstr "Kategoriat"
msgstr ""
#: pretix/control/navigation.py:180
msgid "Discounts"
@@ -16627,7 +16625,7 @@ msgstr "Alennukset"
#: pretix/control/navigation.py:213
msgid "Overview"
msgstr "Yleiskuva"
msgstr ""
#: pretix/control/navigation.py:221
#: pretix/control/templates/pretixcontrol/order/index.html:828
@@ -16637,11 +16635,11 @@ msgstr "Yleiskuva"
#: pretix/plugins/reports/accountingreport.py:684
#: pretix/presale/templates/pretixpresale/event/order.html:137
msgid "Refunds"
msgstr "Maksupalautukset"
msgstr ""
#: pretix/control/navigation.py:247
msgid "Import"
msgstr "Tuonti"
msgstr ""
#: pretix/control/navigation.py:276
msgid "All vouchers"
@@ -16649,12 +16647,12 @@ msgstr ""
#: pretix/control/navigation.py:284
msgid "Tags"
msgstr "Tagit"
msgstr ""
#: pretix/control/navigation.py:296
msgctxt "navigation"
msgid "Check-in"
msgstr "Ilmoittautumiset"
msgstr ""
#: pretix/control/navigation.py:313
#: pretix/control/templates/pretixcontrol/checkin/checkins.html:4
@@ -16674,20 +16672,20 @@ msgstr "Etsi"
#: pretix/plugins/reports/accountingreport.py:677
#: pretix/plugins/reports/accountingreport.py:871
msgid "Payments"
msgstr "Maksut"
msgstr ""
#: pretix/control/navigation.py:376
msgid "User settings"
msgstr "Käyttäjän asetukset"
msgstr ""
#: pretix/control/navigation.py:387
#: pretix/control/templates/pretixcontrol/user/settings.html:16
msgid "Notifications"
msgstr "Ilmoitukset"
msgstr ""
#: pretix/control/navigation.py:392
msgid "2FA"
msgstr "2FA"
msgstr ""
#: pretix/control/navigation.py:397
msgid "Authorized apps"
@@ -16715,7 +16713,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/global_settings_base.html:5
#: pretix/control/templates/pretixcontrol/global_settings_base.html:7
msgid "Global settings"
msgstr "Yleiset asetukset"
msgstr ""
#: pretix/control/navigation.py:440
msgid "Update check"
@@ -16763,7 +16761,7 @@ msgstr "SSO palveluntarjoajat"
#: pretix/control/navigation.py:626 pretix/control/navigation.py:633
msgid "Devices"
msgstr "Laitteet"
msgstr ""
#: pretix/control/permissions.py:72 pretix/control/permissions.py:109
#: pretix/control/permissions.py:140 pretix/control/permissions.py:157
@@ -16800,13 +16798,13 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/auth/invite.html:23
#: pretix/control/templates/pretixcontrol/auth/register.html:18
msgid "Login"
msgstr "Sisäänkirjautuminen"
msgstr ""
#: pretix/control/templates/pretixcontrol/auth/invite.html:27
#: pretix/control/templates/pretixcontrol/auth/login.html:43
#: pretix/control/templates/pretixcontrol/auth/register.html:22
msgid "Register"
msgstr "Rekisteröinti"
msgstr ""
#: pretix/control/templates/pretixcontrol/auth/login.html:27
#: pretix/presale/templates/pretixpresale/fragment_login_status.html:20
@@ -16832,7 +16830,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/auth/login_2fa.html:14
msgid "Token"
msgstr "Token"
msgstr ""
#: pretix/control/templates/pretixcontrol/auth/login_2fa.html:18
#: pretix/control/templates/pretixcontrol/user/reauth.html:22
@@ -16905,7 +16903,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/auth/oauth_authorization.html:54
msgid "Error:"
msgstr "Virhe:"
msgstr ""
#: pretix/control/templates/pretixcontrol/auth/recover.html:7
msgid "Set new password"
@@ -16981,7 +16979,7 @@ msgstr ""
#: pretix/presale/templates/pretixpresale/organizers/customer_password.html:20
#: pretix/presale/templates/pretixpresale/organizers/customer_setpassword.html:20
msgid "Save"
msgstr "Tallenna"
msgstr ""
#: pretix/control/templates/pretixcontrol/auth/register.html:7
msgid "Create a new account"
@@ -17131,7 +17129,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/boxoffice/payment.html:11
msgid "ID"
msgstr "ID"
msgstr ""
#: pretix/control/templates/pretixcontrol/boxoffice/payment.html:15
msgid "ZVT Terminal"
@@ -17352,7 +17350,7 @@ msgstr[1] ""
#: pretix/presale/templates/pretixpresale/event/position_change.html:24
#: pretix/presale/templates/pretixpresale/event/position_modify.html:44
msgid "Cancel"
msgstr "Peruuta"
msgstr ""
#: pretix/control/templates/pretixcontrol/checkin/bulk_revert_confirm.html:27
#: pretix/control/templates/pretixcontrol/checkin/list_delete.html:24
@@ -17398,7 +17396,7 @@ msgstr "Peruuta"
#: pretix/presale/templates/pretixpresale/organizers/customer_profile_delete.html:34
#: pretix/presale/templates/pretixpresale/organizers/customer_profiles.html:29
msgid "Delete"
msgstr "Poista"
msgstr ""
#: pretix/control/templates/pretixcontrol/checkin/checkins.html:9
#: pretix/control/templates/pretixcontrol/checkin/checkins.html:41
@@ -17447,7 +17445,7 @@ msgstr "Poista"
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/import_form.html:91
#: pretix/presale/templates/pretixpresale/fragment_event_list_filter.html:21
msgid "Filter"
msgstr "Suodatin"
msgstr ""
#: pretix/control/templates/pretixcontrol/checkin/checkins.html:50
msgid "Your search did not match any check-ins."
@@ -17466,7 +17464,7 @@ msgstr ""
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/transaction_list.html:14
#: pretix/plugins/checkinlists/exporters.py:766
msgid "Result"
msgstr "Tulos"
msgstr ""
#: pretix/control/templates/pretixcontrol/checkin/checkins.html:78
#: pretix/control/templates/pretixcontrol/order/index.html:392
@@ -17536,11 +17534,11 @@ msgstr "Ilmoittautumis-simulaattori"
#: pretix/control/templates/pretixcontrol/orders/overview.html:20
#: pretix/plugins/ticketoutputpdf/ticketoutput.py:64
msgid "PDF"
msgstr "PDF"
msgstr ""
#: pretix/control/templates/pretixcontrol/checkin/index.html:32
msgid "CSV"
msgstr "CSV"
msgstr ""
#: pretix/control/templates/pretixcontrol/checkin/index.html:73
msgid "No attendee record was found."
@@ -17558,7 +17556,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/checkin/index.html:114
#: pretix/control/templates/pretixcontrol/user/staff_session_edit.html:29
msgid "Timestamp"
msgstr "Aikaleima"
msgstr ""
#: pretix/control/templates/pretixcontrol/checkin/index.html:125
#: pretix/control/templates/pretixcontrol/orders/index.html:165
@@ -17624,7 +17622,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/event/tax_edit.html:33
#: pretix/control/templates/pretixcontrol/items/question_edit.html:128
msgid "Advanced"
msgstr "Edistynyt"
msgstr ""
#: pretix/control/templates/pretixcontrol/checkin/list_edit.html:50
msgid ""
@@ -17671,7 +17669,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/vouchers/bulk.html:117
#: pretix/plugins/sendmail/templates/pretixplugins/sendmail/send_form.html:85
msgid "Edit"
msgstr "Muokkaa"
msgstr ""
#: pretix/control/templates/pretixcontrol/checkin/list_edit.html:89
msgid "Visualize"
@@ -17742,7 +17740,7 @@ msgstr ""
#: pretix/plugins/badges/templates/pretixplugins/badges/index.html:72
#: pretix/plugins/ticketoutputpdf/templates/pretixplugins/ticketoutputpdf/index.html:69
msgid "Clone"
msgstr "Monista"
msgstr ""
#: pretix/control/templates/pretixcontrol/checkin/simulator.html:22
msgid ""
@@ -18213,7 +18211,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/subevents/bulk.html:271
#: pretix/control/templates/pretixcontrol/subevents/bulk.html:275
msgid "Optional"
msgstr "Valinnainen"
msgstr ""
#: pretix/control/templates/pretixcontrol/event/fragment_geodata.html:22
#: pretix/control/templates/pretixcontrol/subevents/bulk_edit.html:57
@@ -18539,7 +18537,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/vouchers/bulk.html:97
#: pretix/control/templates/pretixcontrol/vouchers/bulk.html:120
msgid "Preview"
msgstr "Esikatselu"
msgstr ""
#: pretix/control/templates/pretixcontrol/event/mail.html:87
#: pretix/control/templates/pretixcontrol/organizers/mail.html:58
@@ -18617,7 +18615,7 @@ msgstr "Ota jonotuslista käyttöön"
#: pretix/control/templates/pretixcontrol/event/payment.html:66
msgid "Deadlines"
msgstr "Määräpäivät"
msgstr ""
#: pretix/control/templates/pretixcontrol/event/payment.html:74
msgctxt "unit"
@@ -18631,7 +18629,7 @@ msgstr "päivää"
#: pretix/presale/templates/pretixpresale/event/position_change_confirm.html:25
#: pretix/presale/templates/pretixpresale/event/position_giftcard.html:16
msgid "Back"
msgstr "Takaisin"
msgstr ""
#: pretix/control/templates/pretixcontrol/event/payment_provider.html:15
msgid "Payment provider:"
@@ -18639,7 +18637,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/event/payment_provider.html:21
msgid "Warning:"
msgstr "Varoitus:"
msgstr ""
#: pretix/control/templates/pretixcontrol/event/payment_provider.html:22
msgid ""
@@ -18757,7 +18755,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/event/settings_base.html:10
#: pretix/presale/templates/pretixpresale/event/fragment_product_list.html:18
msgid "Congratulations!"
msgstr "Onnittelut!"
msgstr ""
#: pretix/control/templates/pretixcontrol/event/quick_setup.html:16
#: pretix/control/templates/pretixcontrol/event/settings_base.html:12
@@ -18808,7 +18806,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/event/quick_setup.html:132
#: pretix/control/views/event.py:378
msgid "Features"
msgstr "Ominaisuudet"
msgstr ""
#: pretix/control/templates/pretixcontrol/event/quick_setup.html:134
msgid ""
@@ -18850,7 +18848,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/event/settings.html:21
msgid "Basics"
msgstr "Perusteet"
msgstr ""
#: pretix/control/templates/pretixcontrol/event/settings.html:40
#: pretix/control/templates/pretixcontrol/item/create.html:144
@@ -18866,7 +18864,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/event/settings.html:59
#: pretix/control/templates/pretixcontrol/organizers/edit.html:126
msgid "Localization"
msgstr "Lokalisointi"
msgstr ""
#: pretix/control/templates/pretixcontrol/event/settings.html:66
msgid "Customer and attendee data"
@@ -18906,7 +18904,7 @@ msgstr "Muutoksia tehtyihin tilauksiin"
#: pretix/control/templates/pretixcontrol/event/settings.html:130
msgid "Texts"
msgstr "Tekstit"
msgstr ""
#: pretix/control/templates/pretixcontrol/event/settings.html:137
msgid "Confirmation text"
@@ -19828,7 +19826,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/item/include_addons.html:28
#: pretix/control/templates/pretixcontrol/item/include_addons.html:62
msgid "Add-On"
msgstr "Lisäosa"
msgstr ""
#: pretix/control/templates/pretixcontrol/item/include_addons.html:86
msgid "Add a new add-on"
@@ -19873,7 +19871,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/item/index.html:154
msgid "Availability"
msgstr "Saatavuus"
msgstr ""
#: pretix/control/templates/pretixcontrol/item/index.html:184
msgid "Tickets & Badges"
@@ -19891,7 +19889,7 @@ msgstr "Kesto"
#: pretix/control/templates/pretixcontrol/subevents/bulk.html:355
#: pretix/control/templates/pretixcontrol/subevents/bulk.html:364
msgid "minutes"
msgstr "minuuttia"
msgstr ""
#: pretix/control/templates/pretixcontrol/item/index.html:217
msgid "hours"
@@ -20015,7 +20013,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/items/discount.html:43
#: pretix/plugins/stripe/templates/pretixplugins/stripe/checkout_payment_form_card.html:53
msgid "OR"
msgstr "TAI"
msgstr ""
#: pretix/control/templates/pretixcontrol/items/discount.html:53
msgctxt "discount"
@@ -20114,7 +20112,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/items/fragment_quota_availability.html:3
msgid "Closed"
msgstr "Suljettu"
msgstr ""
#: pretix/control/templates/pretixcontrol/items/fragment_quota_availability.html:5
msgid "Sold out (pending orders)"
@@ -20127,7 +20125,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/items/fragment_quota_availability.html:11
msgid "Unlimited"
msgstr "Rajoittamaton"
msgstr ""
#: pretix/control/templates/pretixcontrol/items/fragment_quota_availability.html:14
msgid "Fully reserved"
@@ -20146,7 +20144,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/order/index.html:19
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:7
msgid "taxes"
msgstr "verot"
msgstr ""
#: pretix/control/templates/pretixcontrol/items/index.html:10
msgid ""
@@ -20553,7 +20551,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/oauth/authorized.html:18
msgid "Permissions"
msgstr "Oikeudet"
msgstr ""
#: pretix/control/templates/pretixcontrol/oauth/authorized.html:59
msgid "No applications have access to your pretix account."
@@ -20840,7 +20838,7 @@ msgstr ""
#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:40
#: pretix/presale/templates/pretixpresale/event/order_modify.html:30
msgid "(optional)"
msgstr "(valinnainen)"
msgstr ""
#: pretix/control/templates/pretixcontrol/order/delete.html:4
#: pretix/control/templates/pretixcontrol/order/delete.html:8
@@ -21117,7 +21115,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/order/index.html:690
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:444
msgid "Taxes"
msgstr "Verot"
msgstr ""
#: pretix/control/templates/pretixcontrol/order/index.html:699
#: pretix/control/templates/pretixcontrol/orders/overview.html:89
@@ -21175,7 +21173,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/order/index.html:839
#: pretix/control/templates/pretixcontrol/orders/refunds.html:60
msgid "Source"
msgstr "Lähde"
msgstr ""
#: pretix/control/templates/pretixcontrol/order/index.html:872
msgid "Cancel transfer"
@@ -21201,7 +21199,7 @@ msgstr ""
#: pretix/presale/templates/pretixpresale/event/base.html:140
#: pretix/presale/templates/pretixpresale/event/timemachine.html:30
msgid "Change"
msgstr "Vaihda"
msgstr ""
#: pretix/control/templates/pretixcontrol/order/index.html:954
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:91
@@ -21469,7 +21467,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/order/sendmail.html:44
#: pretix/plugins/sendmail/templates/pretixplugins/sendmail/send_form.html:89
msgid "Send"
msgstr "Lähetä"
msgstr ""
#: pretix/control/templates/pretixcontrol/order/transactions.html:5
#: pretix/control/templates/pretixcontrol/order/transactions.html:8
@@ -21998,7 +21996,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/orders/overview.html:10
msgid "Sales"
msgstr "Myynti"
msgstr ""
#: pretix/control/templates/pretixcontrol/orders/overview.html:11
msgid "Revenue (gross)"
@@ -22028,7 +22026,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/orders/overview.html:80
#: pretix/plugins/reports/exporters.py:382
msgid "Purchased"
msgstr "Ostettu"
msgstr ""
#: pretix/control/templates/pretixcontrol/orders/overview.html:189
msgid ""
@@ -22606,7 +22604,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/organizers/team_members.html:67
#: pretix/control/templates/pretixcontrol/organizers/team_members.html:120
msgid "Remove"
msgstr "Poista"
msgstr ""
#: pretix/control/templates/pretixcontrol/organizers/giftcard_acceptance_list.html:66
msgid "Accept"
@@ -22913,7 +22911,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/organizers/team_members.html:21
msgid "Member"
msgstr "Jäsen"
msgstr ""
#: pretix/control/templates/pretixcontrol/organizers/team_members.html:36
msgid "Two-factor authentication enabled"
@@ -22941,7 +22939,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/organizers/team_members.html:85
#: pretix/control/templates/pretixcontrol/organizers/team_members.html:134
msgid "Add"
msgstr "Lisää"
msgstr ""
#: pretix/control/templates/pretixcontrol/organizers/team_members.html:92
msgid "API tokens"
@@ -22957,7 +22955,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/organizers/teams.html:38
msgid "Members"
msgstr "Jäsenet"
msgstr ""
#: pretix/control/templates/pretixcontrol/organizers/teams.html:54
#, python-format
@@ -23009,7 +23007,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/organizers/webhook_logs.html:73
msgid "Failed"
msgstr "Epäonnistunut"
msgstr ""
#: pretix/control/templates/pretixcontrol/organizers/webhook_logs.html:83
msgid "Request URL"
@@ -23092,7 +23090,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/pdf/index.html:31
#: pretix/plugins/banktransfer/refund_export.py:46
msgid "Code"
msgstr "Koodi"
msgstr ""
#: pretix/control/templates/pretixcontrol/pdf/index.html:35
msgid "Paste"
@@ -23160,7 +23158,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/pdf/index.html:141
#: pretix/control/templates/pretixcontrol/pdf/index.html:173
msgid "Loading…"
msgstr "Lataa…"
msgstr ""
#: pretix/control/templates/pretixcontrol/pdf/index.html:144
msgid "Start editing"
@@ -23168,12 +23166,12 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/pdf/index.html:159
msgid "Cut"
msgstr "Leikkaa"
msgstr ""
#: pretix/control/templates/pretixcontrol/pdf/index.html:163
#: pretix/control/templates/pretixcontrol/vouchers/detail.html:54
msgid "Copy"
msgstr "Kopioi"
msgstr ""
#: pretix/control/templates/pretixcontrol/pdf/index.html:180
msgid "Layout name"
@@ -23227,15 +23225,15 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/pdf/index.html:254
msgid "Style"
msgstr "Tyyli"
msgstr ""
#: pretix/control/templates/pretixcontrol/pdf/index.html:256
msgid "Dark"
msgstr "Tumma"
msgstr ""
#: pretix/control/templates/pretixcontrol/pdf/index.html:257
msgid "Light"
msgstr "Vaalea"
msgstr ""
#: pretix/control/templates/pretixcontrol/pdf/index.html:263
msgid "Image content"
@@ -23264,7 +23262,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/pdf/index.html:292
msgid "Other…"
msgstr "Muu…"
msgstr ""
#: pretix/control/templates/pretixcontrol/pdf/index.html:302
msgid "Show available placeholders"
@@ -23536,7 +23534,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/subevents/bulk.html:258
msgctxt "subevent"
msgid "Preview"
msgstr "Esikatselu"
msgstr ""
#: pretix/control/templates/pretixcontrol/subevents/bulk.html:265
msgctxt "subevent"
@@ -24042,13 +24040,13 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/user/notifications.html:72
#: pretix/control/templates/pretixcontrol/user/settings.html:20
msgid "On"
msgstr "Päällä"
msgstr ""
#: pretix/control/templates/pretixcontrol/user/notifications.html:70
#: pretix/control/templates/pretixcontrol/user/notifications.html:71
#: pretix/control/templates/pretixcontrol/user/settings.html:24
msgid "Off"
msgstr "Poissa"
msgstr ""
#: pretix/control/templates/pretixcontrol/user/notifications.html:75
msgid "You have no permission to receive this notification"
@@ -24208,7 +24206,7 @@ msgstr "Etuliite (valinnainen)"
#: pretix/control/templates/pretixcontrol/vouchers/bulk.html:21
msgctxt "number_of_things"
msgid "Number"
msgstr "Numero"
msgstr ""
#: pretix/control/templates/pretixcontrol/vouchers/bulk.html:25
msgid "Generate random codes"
@@ -25086,7 +25084,7 @@ msgstr "Kaikkia kohteita ei ole valittu."
#: pretix/control/views/item.py:471
msgid "Street"
msgstr "Katu"
msgstr ""
#: pretix/control/views/item.py:573 pretix/control/views/item.py:747
#: pretix/control/views/item.py:769
@@ -25704,7 +25702,7 @@ msgstr ""
#: pretix/control/views/organizer.py:570
msgid "Administrators"
msgstr "Ylläpitäjät"
msgstr ""
#: pretix/control/views/organizer.py:633
msgid "The team has been created. You can now add members to the team."
@@ -31848,7 +31846,7 @@ msgid "Add to cart"
msgstr "Lisää ostoskoriin"
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you have already ordered a ticket"
msgid "If you already ordered a ticket"
msgstr "Jos tilasit jo tuotteita"
#: pretix/presale/templates/pretixpresale/event/index.html:257

View File

@@ -29880,7 +29880,7 @@ msgid "Add to cart"
msgstr ""
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you have already ordered a ticket"
msgid "If you already ordered a ticket"
msgstr ""
#: pretix/presale/templates/pretixpresale/event/index.html:257

View File

@@ -4,8 +4,8 @@ msgstr ""
"Project-Id-Version: 1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-04-28 11:06+0000\n"
"PO-Revision-Date: 2025-04-29 18:00+0000\n"
"Last-Translator: CVZ-es <damien.bremont@casadevelazquez.org>\n"
"PO-Revision-Date: 2025-04-03 20:00+0000\n"
"Last-Translator: Loïc Alejandro <loic.alejandro@e.email>\n"
"Language-Team: French <https://translate.pretix.eu/projects/pretix/pretix/fr/"
">\n"
"Language: fr\n"
@@ -13,7 +13,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 5.11.1\n"
"X-Generator: Weblate 5.10.4\n"
#: pretix/_base_settings.py:87
msgid "English"
@@ -3000,9 +3000,11 @@ msgid "Repeat password"
msgstr "Répéter le mot de passe"
#: pretix/base/forms/questions.py:134 pretix/base/forms/questions.py:256
#, fuzzy
#| msgid "No country specified."
msgctxt "name_salutation"
msgid "not specified"
msgstr "non spécifié"
msgstr "Aucun pays spécifié."
#: pretix/base/forms/questions.py:219
msgid "Please do not use special characters in names."
@@ -4283,14 +4285,20 @@ msgstr ""
"quota épuisé recevront toujours la réduction."
#: pretix/base/models/discount.py:177
#, fuzzy
#| msgctxt "subevent"
#| msgid "All dates starting before"
msgctxt "subevent"
msgid "Available for dates starting from"
msgstr "Disponible à partir de"
msgstr "Toutes les dates commençant avant"
#: pretix/base/models/discount.py:182
#, fuzzy
#| msgctxt "subevent"
#| msgid "All dates starting before"
msgctxt "subevent"
msgid "Available for dates starting until"
msgstr "Disponible pour des dates allant jusqu'au"
msgstr "Toutes les dates commençant avant"
#: pretix/base/models/discount.py:214
msgid ""
@@ -5621,12 +5629,20 @@ msgid "Unknown country code."
msgstr "Code de pays inconnu."
#: pretix/base/models/items.py:1921 pretix/base/models/items.py:1923
#, fuzzy
#| msgid "The maximum count needs to be greater than the minimum count."
msgid "The maximum date must not be before the minimum value."
msgstr "La date limite ne doit pas être antérieure à la date de début."
msgstr "Le nombre maximal doit être supérieur au nombre minimal."
#: pretix/base/models/items.py:1925
#, fuzzy
#| msgid ""
#| "The maximum number of usages may not be lower than the minimum number of "
#| "usages."
msgid "The maximum value must not be lower than the minimum value."
msgstr "La valeur maximale ne doit pas être inférieure à la valeur minimale."
msgstr ""
"Le nombre maximal dutilisations ne peut être inférieur au nombre minimal "
"dutilisations."
#: pretix/base/models/items.py:1942
#: pretix/control/templates/pretixcontrol/items/question.html:90
@@ -11805,6 +11821,13 @@ msgid "Header image"
msgstr "Image den-tête"
#: pretix/base/settings.py:2885
#, fuzzy
#| msgid ""
#| "If you provide a logo image, we will by default not show your event name "
#| "and date in the page header. By default, we show your logo with a size of "
#| "up to 1140x120 pixels. You can increase the size with the setting below. "
#| "We recommend not using small details on the picture as it will be resized "
#| "on smaller screens."
msgid ""
"If you provide a logo image, we will by default not show your event name and "
"date in the page header. If you use a white background, we show your logo "
@@ -11812,13 +11835,12 @@ msgid ""
"pixels. You can increase the size with the setting below. We recommend not "
"using small details on the picture as it will be resized on smaller screens."
msgstr ""
"Si vous fournissez une image de logo, nous n'afficherons pas, par défaut, le "
"nom et la date de votre événement dans l'en-tête de la page. Si vous "
"utilisez un fond blanc, nous affichons votre logo dans une taille maximale "
"de 1140x120 pixels. Sinon, la taille maximale est de 1120x120 pixels. Vous "
"pouvez augmenter la taille à l'aide du paramètre ci-dessous. Nous vous "
"recommandons de ne pas utiliser de petits détails sur l'image car elle sera "
"redimensionnée sur les petits écrans."
"Si vous fournissez une image de logo, nous nafficherons pas par défaut le "
"nom et la date de votre événement dans len-tête de la page. Par défaut, "
"nous affichons votre logo avec une taille allant jusquà 1140x120 pixels. "
"Vous pouvez augmenter la taille avec le paramètre ci-dessous. Nous vous "
"recommandons de ne pas utiliser de petits détails sur limage car elle sera "
"redimensionnée sur des écrans plus petits."
#: pretix/base/settings.py:2906 pretix/base/settings.py:2949
msgid "Use header image in its full size"
@@ -11847,6 +11869,13 @@ msgstr ""
"le titre de lévénement sera toujours affiché."
#: pretix/base/settings.py:2929 pretix/control/forms/organizer.py:524
#, fuzzy
#| msgid ""
#| "If you provide a logo image, we will by default not show your "
#| "organization name in the page header. By default, we show your logo with "
#| "a size of up to 1140x120 pixels. You can increase the size with the "
#| "setting below. We recommend not using small details on the picture as it "
#| "will be resized on smaller screens."
msgid ""
"If you provide a logo image, we will by default not show your organization "
"name in the page header. If you use a white background, we show your logo "
@@ -11854,13 +11883,12 @@ msgid ""
"pixels. You can increase the size with the setting below. We recommend not "
"using small details on the picture as it will be resized on smaller screens."
msgstr ""
"Si vous fournissez une image de logo, nous n'afficherons pas, par défaut, le "
"nom de votre organisation dans l'en-tête de la page. Si vous utilisez un "
"fond blanc, nous affichons votre logo dans une taille maximale de 1140x120 "
"pixels. Sinon, la taille maximale est de 1120x120 pixels. Vous pouvez "
"augmenter la taille à l'aide du paramètre ci-dessous. Nous vous recommandons "
"de ne pas utiliser de petits détails sur l'image car elle sera "
"redimensionnée sur les petits écrans."
"Si vous fournissez une image de logo, nous nafficherons pas par défaut le "
"nom de votre organisation dans len-tête de la page. Par défaut, nous "
"affichons votre logo avec une taille allant jusquà 1140x120 pixels. Vous "
"pouvez augmenter la taille avec le paramètre ci-dessous. Nous vous "
"recommandons de ne pas utiliser de petits détails sur limage car elle sera "
"redimensionnée sur des écrans plus petits."
#: pretix/base/settings.py:2959
msgid "Use header image also for events without an individually uploaded logo"
@@ -24805,32 +24833,32 @@ msgstr "Langue préférée"
#: pretix/control/templates/pretixcontrol/pdf/index.html:200
#: pretix/control/templates/pretixcontrol/pdf/index.html:210
#, fuzzy
#| msgid "Upload custom background"
msgid "Upload PDF as background"
msgstr "Télécharger un PDF comme arrière-pla"
msgstr "Télécharger un arrière-plan personnalisé"
#: pretix/control/templates/pretixcontrol/pdf/index.html:202
msgid ""
"You can upload a PDF to use as a custom background. The paper size will "
"match the PDF."
msgstr ""
"Vous pouvez télécharger un PDF à utiliser comme arrière-plan personnalisé. "
"La taille du papier correspondra à celle du PDF."
#: pretix/control/templates/pretixcontrol/pdf/index.html:217
msgid "Download current background"
msgstr "Télécharger l'arrière plan actuel"
#: pretix/control/templates/pretixcontrol/pdf/index.html:224
#, fuzzy
#| msgid "Date chosen by customer"
msgid "Or choose custom paper size"
msgstr "Ou choisir un format de papier personnalisé"
msgstr "Date choisie par le client"
#: pretix/control/templates/pretixcontrol/pdf/index.html:226
msgid ""
"To manually change the paper size, you need to create a new, empty "
"background."
msgstr ""
"Pour modifier manuellement le format du papier, vous devez créer un nouvel "
"arrière-plan vide."
#: pretix/control/templates/pretixcontrol/pdf/index.html:234
#: pretix/control/templates/pretixcontrol/pdf/index.html:321
@@ -28260,9 +28288,10 @@ msgid "until"
msgstr "jusquà"
#: pretix/helpers/daterange.py:106
#, python-brace-format
#, fuzzy, python-brace-format
#| msgid "{date_from} {date_to}"
msgid "{date_from}{until}{date_to}"
msgstr "{date_from} {until}{date_to}"
msgstr "{date_from} {date_to}"
#: pretix/helpers/images.py:61 pretix/helpers/images.py:67
#: pretix/helpers/images.py:85
@@ -32086,8 +32115,10 @@ msgid "Payer name"
msgstr "Nom du payeur"
#: pretix/plugins/stripe/templates/pretixplugins/stripe/control.html:91
#, fuzzy
#| msgid "Payment fee"
msgid "Payment receipt"
msgstr "Reçu de paiement"
msgstr "Frais de paiement"
#: pretix/plugins/stripe/templates/pretixplugins/stripe/oauth_disconnect.html:12
msgid "Do you really want to disconnect your Stripe account?"
@@ -34033,7 +34064,7 @@ msgid "Add to cart"
msgstr "Ajouter au panier"
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you have already ordered a ticket"
msgid "If you already ordered a ticket"
msgstr "Si vous avez déjà commandé un billet"
#: pretix/presale/templates/pretixpresale/event/index.html:257

View File

@@ -7,7 +7,7 @@ msgstr ""
"Project-Id-Version: French\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-04-28 11:08+0000\n"
"PO-Revision-Date: 2025-04-29 18:00+0000\n"
"PO-Revision-Date: 2025-03-27 00:00+0000\n"
"Last-Translator: CVZ-es <damien.bremont@casadevelazquez.org>\n"
"Language-Team: French <https://translate.pretix.eu/projects/pretix/pretix-js/"
"fr/>\n"
@@ -16,7 +16,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 5.11.1\n"
"X-Generator: Weblate 5.10.4\n"
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:56
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:62
@@ -918,6 +918,9 @@ msgid "Open ticket shop"
msgstr "Ouvrir la billetterie"
#: pretix/static/pretixpresale/js/widget/widget.js:48
#, fuzzy
#| msgctxt "widget"
#| msgid "Resume checkout"
msgctxt "widget"
msgid "Checkout"
msgstr "Finaliser ma commande"
@@ -1077,31 +1080,31 @@ msgstr "Di"
#: pretix/static/pretixpresale/js/widget/widget.js:81
msgid "Monday"
msgstr "Lundi"
msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:82
msgid "Tuesday"
msgstr "Mardi"
msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:83
msgid "Wednesday"
msgstr "Mercredi"
msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:84
msgid "Thursday"
msgstr "Jeudi"
msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:85
msgid "Friday"
msgstr "Vendredi"
msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:86
msgid "Saturday"
msgstr "Samedi"
msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:87
msgid "Sunday"
msgstr "Dimanche"
msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:90
msgid "January"

View File

@@ -35859,7 +35859,7 @@ msgid "Add to cart"
msgstr "Engadir ao pedido"
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you have already ordered a ticket"
msgid "If you already ordered a ticket"
msgstr "Se xa pediu unha entrada"
#: pretix/presale/templates/pretixpresale/event/index.html:257

View File

@@ -29895,7 +29895,7 @@ msgid "Add to cart"
msgstr ""
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you have already ordered a ticket"
msgid "If you already ordered a ticket"
msgstr ""
#: pretix/presale/templates/pretixpresale/event/index.html:257

View File

@@ -30700,7 +30700,7 @@ msgid "Add to cart"
msgstr "Dodaj u košaricu"
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you have already ordered a ticket"
msgid "If you already ordered a ticket"
msgstr "Ako ste već kupili kartu"
#: pretix/presale/templates/pretixpresale/event/index.html:257

View File

@@ -31023,7 +31023,7 @@ msgid "Add to cart"
msgstr "Hozzáadás a kosárhoz"
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you have already ordered a ticket"
msgid "If you already ordered a ticket"
msgstr "Ha már rendeltél jegyet"
#: pretix/presale/templates/pretixpresale/event/index.html:257

View File

@@ -33865,7 +33865,7 @@ msgid "Add to cart"
msgstr "Masukkan ke keranjang"
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you have already ordered a ticket"
msgid "If you already ordered a ticket"
msgstr "Jika kamu sudah memesan tiket"
#: pretix/presale/templates/pretixpresale/event/index.html:257

View File

@@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-04-28 11:06+0000\n"
"PO-Revision-Date: 2025-05-05 09:40+0000\n"
"Last-Translator: \"Luca Martinelli [Sannita]\" <sannita@gmail.com>\n"
"PO-Revision-Date: 2025-03-19 01:00+0000\n"
"Last-Translator: Rosariocastellana <rosariocastellana@gmail.com>\n"
"Language-Team: Italian <https://translate.pretix.eu/projects/pretix/pretix/"
"it/>\n"
"Language: it\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.11.1\n"
"X-Generator: Weblate 5.10.3\n"
#: pretix/_base_settings.py:87
msgid "English"
@@ -2988,9 +2988,12 @@ msgid "Repeat password"
msgstr "Ripeti la password"
#: pretix/base/forms/questions.py:134 pretix/base/forms/questions.py:256
#, fuzzy
#| msgctxt "subevent"
#| msgid "No date was specified."
msgctxt "name_salutation"
msgid "not specified"
msgstr "non specificato"
msgstr "Nessuna data è stata specificata."
#: pretix/base/forms/questions.py:219
msgid "Please do not use special characters in names."
@@ -4269,12 +4272,14 @@ msgstr ""
#: pretix/base/models/discount.py:177
msgctxt "subevent"
msgid "Available for dates starting from"
msgstr "Disponibile per le date a partire da"
msgstr ""
#: pretix/base/models/discount.py:182
#, fuzzy
#| msgid "Available until"
msgctxt "subevent"
msgid "Available for dates starting until"
msgstr "Disponibile per le date fino a"
msgstr "Disponibile fino a"
#: pretix/base/models/discount.py:214
msgid ""
@@ -5587,12 +5592,20 @@ msgid "Unknown country code."
msgstr "Codice del paese sconosciuto."
#: pretix/base/models/items.py:1921 pretix/base/models/items.py:1923
#, fuzzy
#| msgid "The maximum count needs to be greater than the minimum count."
msgid "The maximum date must not be before the minimum value."
msgstr "La data massima non può essere prima del valore minimo."
msgstr "Il conteggio massimo deve essere superiore al conteggio minimo."
#: pretix/base/models/items.py:1925
#, fuzzy
#| msgid ""
#| "The maximum number of usages may not be lower than the minimum number of "
#| "usages."
msgid "The maximum value must not be lower than the minimum value."
msgstr "Il valore massimo non può essere inferiore al valore minimo."
msgstr ""
"Il numero massimo di utilizzi non può essere inferiore al numero minimo di "
"utilizzi."
#: pretix/base/models/items.py:1942
#: pretix/control/templates/pretixcontrol/items/question.html:90
@@ -9071,44 +9084,37 @@ msgstr "Permetti utilizzo di plugin con restrizioni"
#: pretix/base/settings.py:158
msgid "Allow customers to create accounts"
msgstr "Permetti ai clienti di creare un account"
msgstr "Permetti ai clienti di creare account"
#: pretix/base/settings.py:159
msgid ""
"This will allow customers to sign up for an account on your ticket shop. "
"This is a prerequisite for some advanced features like memberships."
msgstr ""
"Ciò consentirà ai clienti di registrare un account sul vostro negozio di "
"biglietti. Questo è un prerequisito per alcune funzioni avanzate come le "
"iscrizioni."
#: pretix/base/settings.py:169
msgid "Allow customers to log in with email address and password"
msgstr "Permetti ai clienti di loggarsi con un indirizzo email e una password"
msgstr ""
#: pretix/base/settings.py:170
msgid ""
"If disabled, you will need to connect one or more single-sign-on providers."
msgstr ""
"Se è disattivato, sarà necessario collegare uno o più provider single-sign-"
"on."
#: pretix/base/settings.py:180
#, fuzzy
msgid "Match orders based on email address"
msgstr "Abbina gli ordini in base all'indirizzo e-mail"
msgstr "Email partecipante"
#: pretix/base/settings.py:181
msgid ""
"This will allow registered customers to access orders made with the same "
"email address, even if the customer was not logged in during the purchase."
msgstr ""
"Ciò consentirà ai clienti registrati di accedere agli ordini effettuati con "
"lo stesso indirizzo e-mail, anche se il cliente non ha effettuato il login "
"durante l'acquisto."
#: pretix/base/settings.py:191
msgid "Activate re-usable media"
msgstr "Attiva supporti riutilizzabili"
msgstr ""
#: pretix/base/settings.py:192
msgid ""
@@ -9116,61 +9122,53 @@ msgid ""
"with physical media such as wristbands or chip cards that may be re-used for "
"different tickets or gift cards later."
msgstr ""
"La funzione di supporto riutilizzabile consente di collegare i biglietti e "
"le carte regalo con supporti fisici come braccialetti o chip card che "
"possono essere riutilizzati in seguito per altri biglietti o carte regalo."
#: pretix/base/settings.py:218
#, fuzzy
msgid "Length of barcodes"
msgstr "Lunghezza dei codici a barre"
msgstr "Codice biglietto"
#: pretix/base/settings.py:247
msgid ""
"Automatically create a new gift card if a previously unknown chip is seen"
msgstr ""
"Crea automaticamente una nuova carta regalo se viene visto un chip "
"precedentemente sconosciuto"
#: pretix/base/settings.py:260 pretix/base/settings.py:291
#, fuzzy
msgid "Gift card currency"
msgstr "Valuta della carta regalo"
msgstr "Codice Gift Card"
#: pretix/base/settings.py:278
msgid "Automatically create a new gift card if a new chip is encoded"
msgstr ""
"Crea automaticamente una nuova carta regalo se viene codificato un nuovo chip"
#: pretix/base/settings.py:300
msgid "Use UID protection feature of NFC chip"
msgstr "Utilizza la funzione di protezione UID del chip NFC"
msgstr ""
#: pretix/base/settings.py:316
msgid "Maximum number of items per order"
msgstr "Numero massimo di elementi per ordine"
msgstr ""
#: pretix/base/settings.py:317
msgid "Add-on products will not be counted."
msgstr "I prodotti aggiuntivi non verranno conteggiati."
msgstr ""
#: pretix/base/settings.py:326
msgid ""
"Show net prices instead of gross prices in the product list (not "
"recommended!)"
msgstr ""
"Mostra il prezzo netto anziché il prezzo lordo nella lista dei prodotti (non "
"raccomandato!)"
#: pretix/base/settings.py:327
msgid ""
"Independent of your choice, the cart will show gross prices as this is the "
"price that needs to be paid."
msgstr ""
"Indipendentemente dalla vostra scelta, il carrello mostrerà i prezzi lordi, "
"poiché questo è il prezzo che deve essere pagato."
#: pretix/base/settings.py:338
msgid "Hide prices on attendee ticket page"
msgstr "Nascondi i prezzi nella pagina dei biglietti per i partecipanti"
msgstr ""
#: pretix/base/settings.py:339
msgid ""
@@ -9179,14 +9177,10 @@ msgid ""
"page of the individual attendees. The ticket buyer will of course see the "
"price."
msgstr ""
"Se una persona acquista più biglietti e si inviano e-mail a tutti i "
"partecipanti, con questa opzione il prezzo del biglietto non verrà mostrato "
"nella pagina dei biglietti dei singoli partecipanti. L'acquirente del "
"biglietto vedrà ovviamente il prezzo."
#: pretix/base/settings.py:357
msgid "Ask for attendee names"
msgstr "Chiedi il nome dei partecipanti"
msgstr ""
#: pretix/base/settings.py:358
msgid "Ask for a name for all personalized tickets."
@@ -23313,8 +23307,10 @@ msgid "Download current background"
msgstr ""
#: pretix/control/templates/pretixcontrol/pdf/index.html:224
#, fuzzy
#| msgid "Canceled by customer"
msgid "Or choose custom paper size"
msgstr "Oppure scegli un formato carta personalizzato"
msgstr "Cancellato dal cliente"
#: pretix/control/templates/pretixcontrol/pdf/index.html:226
msgid ""
@@ -26403,18 +26399,28 @@ msgid "until"
msgstr "Data fino a"
#: pretix/helpers/daterange.py:106
#, python-brace-format
#, fuzzy, python-brace-format
#| msgctxt "invoice"
#| msgid ""
#| "{from_date}\n"
#| "until {to_date}"
msgid "{date_from}{until}{date_to}"
msgstr "{date_from}{until}{date_to}"
msgstr ""
"{from_date}\n"
"a {to_date}"
#: pretix/helpers/images.py:61 pretix/helpers/images.py:67
#: pretix/helpers/images.py:85
#, fuzzy
#| msgid ""
#| "The file you uploaded has a very large number of pixels, please upload an "
#| "image no larger than 10000 x 10000 pixels."
msgid ""
"The file you uploaded has a very large number of pixels, please upload a "
"picture with smaller dimensions."
msgstr ""
"Il file che hai caricato ha un numero molto elevato di pixel, per favore "
"carica un'immagine di dimensione più piccola."
"carica un'immagine che abbia 10000 x 10000 pixel."
#: pretix/helpers/security.py:166
msgid "Login from new source detected"
@@ -27007,7 +27013,7 @@ msgstr ""
#: pretix/plugins/banktransfer/payment.py:161
msgid "Do not include hyphens in the payment reference."
msgstr "Non includere trattini nella referenza di pagamento."
msgstr ""
#: pretix/plugins/banktransfer/payment.py:162
msgid "This is required in some countries."
@@ -27019,7 +27025,7 @@ msgstr ""
#: pretix/plugins/banktransfer/payment.py:170
msgid "Prefix for the payment reference"
msgstr "Prefisso per il riferimento pagamento"
msgstr ""
#: pretix/plugins/banktransfer/payment.py:174
msgid "Additional text to show on pending orders"
@@ -27243,7 +27249,7 @@ msgstr "Ti daremo il codice di riferimento dopo aver completato l'ordine."
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/checkout_payment_form.html:26
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/pending.html:39
msgid "Reference code (important):"
msgstr "Codice di riferimento personale (importante):"
msgstr ""
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/checkout_confirm.html:31
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/checkout_payment_form.html:31
@@ -27282,7 +27288,7 @@ msgstr ""
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/control.html:38
msgid "Reference code"
msgstr "Codice di riferimento personale"
msgstr ""
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/import_assign.html:4
msgid ""
@@ -30019,8 +30025,10 @@ msgid "Payer name"
msgstr ""
#: pretix/plugins/stripe/templates/pretixplugins/stripe/control.html:91
#, fuzzy
#| msgid "Payment fee"
msgid "Payment receipt"
msgstr "Ricevuta di pagamento"
msgstr "Commissione di pagamento"
#: pretix/plugins/stripe/templates/pretixplugins/stripe/oauth_disconnect.html:12
msgid "Do you really want to disconnect your Stripe account?"
@@ -30049,7 +30057,7 @@ msgstr ""
#: pretix/plugins/stripe/templates/pretixplugins/stripe/pending.html:19
msgid "Enter the entity number, reference number, and amount."
msgstr "Inserire il Numero dell'entità, il codice riferimento, e la quantità."
msgstr ""
#: pretix/plugins/stripe/templates/pretixplugins/stripe/pending.html:25
msgid "Entity number:"
@@ -31883,7 +31891,7 @@ msgid "Add to cart"
msgstr "Aggiungi al carrello"
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you have already ordered a ticket"
msgid "If you already ordered a ticket"
msgstr "Se hai già prenotato un biglietto"
#: pretix/presale/templates/pretixpresale/event/index.html:257

View File

@@ -8,16 +8,16 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-04-28 11:08+0000\n"
"PO-Revision-Date: 2025-05-05 09:40+0000\n"
"PO-Revision-Date: 2025-03-16 19:00+0000\n"
"Last-Translator: \"Luca Martinelli [Sannita]\" <sannita@gmail.com>\n"
"Language-Team: Italian <https://translate.pretix.eu/projects/pretix/"
"pretix-js/it/>\n"
"Language-Team: Italian <https://translate.pretix.eu/projects/pretix/pretix-"
"js/it/>\n"
"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.11.1\n"
"X-Generator: Weblate 5.10.3\n"
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:56
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:62
@@ -938,9 +938,12 @@ msgid "Open ticket shop"
msgstr "Apri la biglietteria"
#: pretix/static/pretixpresale/js/widget/widget.js:48
#, fuzzy
#| msgctxt "widget"
#| msgid "Resume checkout"
msgctxt "widget"
msgid "Checkout"
msgstr "Checkout"
msgstr "Ricarica checkout"
#: pretix/static/pretixpresale/js/widget/widget.js:49
msgctxt "widget"

View File

@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-04-28 11:06+0000\n"
"PO-Revision-Date: 2025-05-12 13:00+0000\n"
"PO-Revision-Date: 2025-03-31 15:00+0000\n"
"Last-Translator: Hijiri Umemoto <hijiri@umemoto.org>\n"
"Language-Team: Japanese <https://translate.pretix.eu/projects/pretix/pretix/"
"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 5.11.4\n"
"X-Generator: Weblate 5.10.4\n"
#: pretix/_base_settings.py:87
msgid "English"
@@ -2971,17 +2971,21 @@ msgid "Repeat password"
msgstr "パスワードを再入力してください"
#: pretix/base/forms/questions.py:134 pretix/base/forms/questions.py:256
#, fuzzy
#| msgid "No country specified."
msgctxt "name_salutation"
msgid "not specified"
msgstr "指定されていません"
msgstr "国が指定されていません"
#: pretix/base/forms/questions.py:219
msgid "Please do not use special characters in names."
msgstr "名前に特殊文字を使わないでください。"
msgstr ""
"Understood, I will avoid using special characters in names. Thank you for "
"the reminder."
#: pretix/base/forms/questions.py:281
msgid "Please enter a shorter name."
msgstr "もっと短い名前を入力してください。"
msgstr "短い名前を入力してください。"
#: pretix/base/forms/questions.py:305
msgctxt "phonenumber"
@@ -2997,12 +3001,11 @@ msgstr "電話番号(国際エリアコードなし)"
msgid ""
"You uploaded an image in landscape orientation. Please upload an image in "
"portrait orientation."
msgstr "画像が横向きでアップロードされています。縦向きの画像をアップロードしてくださ"
"い。"
msgstr "画像を縦向きでアップロードしてください。"
#: pretix/base/forms/questions.py:493
msgid "Please upload an image where the width is 3/4 of the height."
msgstr "縦4x幅3の比率の画像をアップロードしてください。"
msgstr "幅が高さの3/4の画像をアップロードしてください。"
#: pretix/base/forms/questions.py:496
msgid ""
@@ -3056,7 +3059,7 @@ msgstr "会社名を提供する必要があります。"
#: pretix/base/forms/questions.py:1187
msgid "You need to provide your name."
msgstr "あなたの名前を提供する必要があります。"
msgstr "私はアシスタントです。"
#: pretix/base/forms/user.py:51 pretix/control/forms/users.py:43
msgid ""
@@ -3628,12 +3631,12 @@ msgstr "有効な販売チャネルを入力してください。"
#: pretix/base/modelimport_orders.py:585
#: pretix/base/modelimport_vouchers.py:291
msgid "Multiple matching seats were found."
msgstr "該当する席が複数見つかりました。"
msgstr "複数のマッチングする席が見つかりました。"
#: pretix/base/modelimport_orders.py:587
#: pretix/base/modelimport_vouchers.py:293
msgid "No matching seat was found."
msgstr "該当する席が見つかりませんでした。"
msgstr "適合する席が見つかりませんでした。"
#: pretix/base/modelimport_orders.py:590
#: pretix/base/modelimport_vouchers.py:296 pretix/base/services/cart.py:212
@@ -3671,7 +3674,7 @@ msgstr "顧客"
#: pretix/base/modelimport_orders.py:711
msgid "No matching customer was found."
msgstr "該当する顧客が見つかりませんでした。"
msgstr "顧客が見つかりませんでした。"
#: pretix/base/modelimport_vouchers.py:50 pretix/base/models/vouchers.py:488
msgid "A voucher with this code already exists."
@@ -3812,7 +3815,7 @@ msgstr "電源を切ると、通知を受け取れません。"
#: pretix/control/templates/pretixcontrol/users/form.html:6
#: pretix/control/views/organizer.py:158 tests/base/test_mail.py:149
msgid "User"
msgstr "ユーザ"
msgstr "ユーザ"
#: pretix/base/models/auth.py:284 pretix/control/navigation.py:411
#: pretix/control/templates/pretixcontrol/users/index.html:5
@@ -4231,14 +4234,20 @@ msgstr ""
"れます。"
#: pretix/base/models/discount.py:177
#, fuzzy
#| msgctxt "subevent"
#| msgid "All dates starting before"
msgctxt "subevent"
msgid "Available for dates starting from"
msgstr "この日から始まる日付で利用可能"
msgstr "すべての日付は、前に始まります"
#: pretix/base/models/discount.py:182
#, fuzzy
#| msgctxt "subevent"
#| msgid "All dates starting before"
msgctxt "subevent"
msgid "Available for dates starting until"
msgstr "これより以前に開始する日付で利用可能"
msgstr "すべての日付は、前に始まります"
#: pretix/base/models/discount.py:214
msgid ""
@@ -5504,12 +5513,18 @@ msgid "Unknown country code."
msgstr "不明な国コード。"
#: pretix/base/models/items.py:1921 pretix/base/models/items.py:1923
#, fuzzy
#| msgid "The maximum count needs to be greater than the minimum count."
msgid "The maximum date must not be before the minimum value."
msgstr "最大日付は、最小より前でなければなりません。"
msgstr "最大数は最小よりも大きくする必要があります。"
#: pretix/base/models/items.py:1925
#, fuzzy
#| msgid ""
#| "The maximum number of usages may not be lower than the minimum number of "
#| "usages."
msgid "The maximum value must not be lower than the minimum value."
msgstr "最大値は最小より低くできません。"
msgstr "使用回数の最大値は最小回数より低くすることはできません。"
#: pretix/base/models/items.py:1942
#: pretix/control/templates/pretixcontrol/items/question.html:90
@@ -11368,6 +11383,13 @@ msgid "Header image"
msgstr "ヘッダー画像"
#: pretix/base/settings.py:2885
#, fuzzy
#| msgid ""
#| "If you provide a logo image, we will by default not show your event name "
#| "and date in the page header. By default, we show your logo with a size of "
#| "up to 1140x120 pixels. You can increase the size with the setting below. "
#| "We recommend not using small details on the picture as it will be resized "
#| "on smaller screens."
msgid ""
"If you provide a logo image, we will by default not show your event name and "
"date in the page header. If you use a white background, we show your logo "
@@ -11375,11 +11397,11 @@ msgid ""
"pixels. You can increase the size with the setting below. We recommend not "
"using small details on the picture as it will be resized on smaller screens."
msgstr ""
"ロゴ画像を提供すると、デフォルトでページヘッダーにイベント名と日付が表示され"
"ません。白い背景を使用する場合、最大1140x120ピクセルのサイズでロゴが表示され"
"ます。それ以外の場合、最大サイズは1120x120ピクセルです。以下の設定でサイズを"
"大きくすることができます。小さな画面ではサイズが変更されるため、写真に小さな"
"ディテールを使用しないことをお勧めします。"
"ロゴ画像を提供していただければ、デフォルトではイベント名と日付はページヘッ"
"ダーに表示されません。デフォルトでは、1140x120ピクセルまでのサイズでロゴが表"
"示されます。以下の設定でサイズを拡大することもできます。画像に細かいディテー"
"ルを使用しないことをお勧めします。なぜなら、小さな画面ではサイズされるため"
"す。"
#: pretix/base/settings.py:2906 pretix/base/settings.py:2949
msgid "Use header image in its full size"
@@ -11405,6 +11427,13 @@ msgstr ""
"れます。"
#: pretix/base/settings.py:2929 pretix/control/forms/organizer.py:524
#, fuzzy
#| msgid ""
#| "If you provide a logo image, we will by default not show your "
#| "organization name in the page header. By default, we show your logo with "
#| "a size of up to 1140x120 pixels. You can increase the size with the "
#| "setting below. We recommend not using small details on the picture as it "
#| "will be resized on smaller screens."
msgid ""
"If you provide a logo image, we will by default not show your organization "
"name in the page header. If you use a white background, we show your logo "
@@ -19763,7 +19792,7 @@ msgstr "クォータごとの有料チケット"
#: pretix/control/views/dashboards.py:519 pretix/control/views/typeahead.py:89
msgctxt "subevent"
msgid "No dates"
msgstr "日付なし"
msgstr "データなし"
#: pretix/control/templates/pretixcontrol/events/index.html:141
#: pretix/control/templates/pretixcontrol/subevents/index.html:158
@@ -23960,29 +23989,32 @@ msgstr "優先する言語"
#: pretix/control/templates/pretixcontrol/pdf/index.html:200
#: pretix/control/templates/pretixcontrol/pdf/index.html:210
#, fuzzy
#| msgid "Upload custom background"
msgid "Upload PDF as background"
msgstr "背景としてPDFをアップロードする"
msgstr "カスタム背景をアップロード"
#: pretix/control/templates/pretixcontrol/pdf/index.html:202
msgid ""
"You can upload a PDF to use as a custom background. The paper size will "
"match the PDF."
msgstr "PDF をアップロードして、カスタムの背景として使用できます。用紙のサイズは PDF "
"と一致します。"
msgstr ""
#: pretix/control/templates/pretixcontrol/pdf/index.html:217
msgid "Download current background"
msgstr "現在の背景をダウンロード"
#: pretix/control/templates/pretixcontrol/pdf/index.html:224
#, fuzzy
#| msgid "Date chosen by customer"
msgid "Or choose custom paper size"
msgstr "または、カスタム用紙サイズを選択"
msgstr "お客様が選んだ日付"
#: pretix/control/templates/pretixcontrol/pdf/index.html:226
msgid ""
"To manually change the paper size, you need to create a new, empty "
"background."
msgstr "用紙サイズを手動で変更するには、新しい空の背景を作成する必要があります。"
msgstr ""
#: pretix/control/templates/pretixcontrol/pdf/index.html:234
#: pretix/control/templates/pretixcontrol/pdf/index.html:321
@@ -27290,9 +27322,10 @@ msgid "until"
msgstr "まで"
#: pretix/helpers/daterange.py:106
#, python-brace-format
#, fuzzy, python-brace-format
#| msgid "{date_from} {date_to}"
msgid "{date_from}{until}{date_to}"
msgstr "{date_from}{until}{date_to}"
msgstr "{date_from} {date_to}"
#: pretix/helpers/images.py:61 pretix/helpers/images.py:67
#: pretix/helpers/images.py:85
@@ -30979,8 +31012,10 @@ msgid "Payer name"
msgstr "支払い者の名前"
#: pretix/plugins/stripe/templates/pretixplugins/stripe/control.html:91
#, fuzzy
#| msgid "Payment fee"
msgid "Payment receipt"
msgstr "領収書"
msgstr "支払手数料"
#: pretix/plugins/stripe/templates/pretixplugins/stripe/oauth_disconnect.html:12
msgid "Do you really want to disconnect your Stripe account?"
@@ -32867,7 +32902,7 @@ msgid "Add to cart"
msgstr "カートに追加"
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you have already ordered a ticket"
msgid "If you already ordered a ticket"
msgstr "すでにチケットを注文済みの場合"
#: pretix/presale/templates/pretixpresale/event/index.html:257

View File

@@ -8,16 +8,16 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-04-28 11:08+0000\n"
"PO-Revision-Date: 2025-05-12 13:00+0000\n"
"PO-Revision-Date: 2025-03-31 15:00+0000\n"
"Last-Translator: Hijiri Umemoto <hijiri@umemoto.org>\n"
"Language-Team: Japanese <https://translate.pretix.eu/projects/pretix/"
"pretix-js/ja/>\n"
"Language-Team: Japanese <https://translate.pretix.eu/projects/pretix/pretix-"
"js/ja/>\n"
"Language: ja\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 5.11.4\n"
"X-Generator: Weblate 5.10.4\n"
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:56
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:62
@@ -233,7 +233,7 @@ msgstr "未払い"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:44
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:45
msgid "Canceled"
msgstr "キャンセル済み"
msgstr "キャンセル"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:46
msgid "Confirmed"
@@ -907,9 +907,12 @@ msgid "Open ticket shop"
msgstr "チケットショップを開く"
#: pretix/static/pretixpresale/js/widget/widget.js:48
#, fuzzy
#| msgctxt "widget"
#| msgid "Resume checkout"
msgctxt "widget"
msgid "Checkout"
msgstr "チェックアウト"
msgstr "購入を続行する"
#: pretix/static/pretixpresale/js/widget/widget.js:49
msgctxt "widget"
@@ -1065,31 +1068,31 @@ msgstr "日"
#: pretix/static/pretixpresale/js/widget/widget.js:81
msgid "Monday"
msgstr "月曜日"
msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:82
msgid "Tuesday"
msgstr "火曜日"
msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:83
msgid "Wednesday"
msgstr "水曜日"
msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:84
msgid "Thursday"
msgstr "木曜日"
msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:85
msgid "Friday"
msgstr "金曜日"
msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:86
msgid "Saturday"
msgstr "土曜日"
msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:87
msgid "Sunday"
msgstr "日曜日"
msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:90
msgid "January"

File diff suppressed because it is too large Load Diff

View File

@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-04-28 11:08+0000\n"
"PO-Revision-Date: 2025-05-08 10:00+0000\n"
"PO-Revision-Date: 2025-04-16 10:00+0000\n"
"Last-Translator: 조정화 <junghwa.jo@om.org>\n"
"Language-Team: Korean <https://translate.pretix.eu/projects/pretix/pretix-js/"
"ko/>\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 5.11.4\n"
"X-Generator: Weblate 5.10.4\n"
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:56
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:62
@@ -1084,31 +1084,31 @@ msgstr "일요일"
#: pretix/static/pretixpresale/js/widget/widget.js:81
msgid "Monday"
msgstr "월요일"
msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:82
msgid "Tuesday"
msgstr "화요일"
msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:83
msgid "Wednesday"
msgstr "수요일"
msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:84
msgid "Thursday"
msgstr "목요일"
msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:85
msgid "Friday"
msgstr "금요일"
msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:86
msgid "Saturday"
msgstr "토요일"
msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:87
msgid "Sunday"
msgstr "일요일"
msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:90
msgid "January"

View File

@@ -29862,7 +29862,7 @@ msgid "Add to cart"
msgstr ""
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you have already ordered a ticket"
msgid "If you already ordered a ticket"
msgstr ""
#: pretix/presale/templates/pretixpresale/event/index.html:257

View File

@@ -32169,7 +32169,7 @@ msgid "Add to cart"
msgstr "Pievienot grozam"
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you have already ordered a ticket"
msgid "If you already ordered a ticket"
msgstr "Ja jau esat pasūtījis biļeti"
#: pretix/presale/templates/pretixpresale/event/index.html:257

View File

@@ -29857,7 +29857,7 @@ msgid "Add to cart"
msgstr ""
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you have already ordered a ticket"
msgid "If you already ordered a ticket"
msgstr ""
#: pretix/presale/templates/pretixpresale/event/index.html:257

View File

@@ -34036,7 +34036,7 @@ msgid "Add to cart"
msgstr "Legg til handlekurv"
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you have already ordered a ticket"
msgid "If you already ordered a ticket"
msgstr "Har du allerede bestilt billett"
#: pretix/presale/templates/pretixpresale/event/index.html:257

View File

@@ -7,16 +7,16 @@ msgstr ""
"Project-Id-Version: 1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-04-28 11:06+0000\n"
"PO-Revision-Date: 2025-05-01 02:00+0000\n"
"Last-Translator: Foxy Hunter <matthias.vancoillie@outlook.com>\n"
"Language-Team: Dutch <https://translate.pretix.eu/projects/pretix/pretix/nl/>"
"\n"
"PO-Revision-Date: 2025-03-30 16:00+0000\n"
"Last-Translator: Jan Van Haver <jan.van.haver@gmail.com>\n"
"Language-Team: Dutch <https://translate.pretix.eu/projects/pretix/pretix/nl/"
">\n"
"Language: nl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.11.1\n"
"X-Generator: Weblate 5.10.4\n"
#: pretix/_base_settings.py:87
msgid "English"
@@ -2980,9 +2980,11 @@ msgid "Repeat password"
msgstr "Herhaal wachtwoord"
#: pretix/base/forms/questions.py:134 pretix/base/forms/questions.py:256
#, fuzzy
#| msgid "No country specified."
msgctxt "name_salutation"
msgid "not specified"
msgstr "Niet opgegeven"
msgstr "Geen land opgegeven."
#: pretix/base/forms/questions.py:219
msgid "Please do not use special characters in names."
@@ -3997,7 +3999,7 @@ msgstr "Bestelling niet goedgekeurd"
#: pretix/base/models/checkin.py:366
msgid "Ticket not valid at this time"
msgstr "Ticket is op dit moment niet geldig"
msgstr "Ticket is niet geldig op dit moment"
#: pretix/base/models/customers.py:55
msgid "Provider name"
@@ -4251,14 +4253,20 @@ msgstr ""
"uitverkochte producten zullen nog steeds een korting krijgen."
#: pretix/base/models/discount.py:177
#, fuzzy
#| msgctxt "subevent"
#| msgid "All dates starting before"
msgctxt "subevent"
msgid "Available for dates starting from"
msgstr "Beschikbaar vanaf de volgende datums"
msgstr "Alle subevenementen beginnend voor"
#: pretix/base/models/discount.py:182
#, fuzzy
#| msgctxt "subevent"
#| msgid "All dates starting before"
msgctxt "subevent"
msgid "Available for dates starting until"
msgstr "Beschikbaar voor startdatums tot"
msgstr "Alle subevenementen beginnend voor"
#: pretix/base/models/discount.py:214
msgid ""
@@ -5568,12 +5576,20 @@ msgid "Unknown country code."
msgstr "Onbekende landcode."
#: pretix/base/models/items.py:1921 pretix/base/models/items.py:1923
#, fuzzy
#| msgid "The maximum count needs to be greater than the minimum count."
msgid "The maximum date must not be before the minimum value."
msgstr "De maximumdatum mag niet vóór de minimumwaarde liggen."
msgstr "Het maximale aantal moet groter zijn dan het minimum aantal."
#: pretix/base/models/items.py:1925
#, fuzzy
#| msgid ""
#| "The maximum number of usages may not be lower than the minimum number of "
#| "usages."
msgid "The maximum value must not be lower than the minimum value."
msgstr "De maximum waarde mag niet lager zijn dan de minimum waarde."
msgstr ""
"Het maximum aantal keer gebruikt mag niet lager zijn dan het minimum aantal "
"keer gebruikt."
#: pretix/base/models/items.py:1942
#: pretix/control/templates/pretixcontrol/items/question.html:90
@@ -6282,6 +6298,8 @@ msgstr ""
"Gemiddeld tarief (andere omzet in een agriculturele en bosbouwkundig bedrijf)"
#: pretix/base/models/tax.py:164
#, fuzzy
#| msgid "Reverse charge"
msgctxt "tax_code"
msgid "Reverse charge"
msgstr "Omgekeerde belastingheffing"
@@ -6329,7 +6347,7 @@ msgstr "Canarische Eilanden algemeen belastingtarief"
#: pretix/base/models/tax.py:190
msgctxt "tax_code"
msgid "Tax for production, services and importation in Ceuta and Melilla"
msgstr "Belasting op productie, diensten en invoer in Ceuta en Melilla"
msgstr ""
#: pretix/base/models/tax.py:191
msgctxt "tax_code"
@@ -6398,14 +6416,14 @@ msgstr "Intracommunautaire aankoop van verzamelobjecten en antiek"
#: pretix/base/models/tax.py:262
msgctxt "tax_code"
msgid "France domestic VAT franchise in base"
msgstr "Franse btw-vrijstelling (binnenlands, franchise)"
msgstr ""
#: pretix/base/models/tax.py:264
msgctxt "tax_code"
msgid ""
"France domestic Credit Notes without VAT, due to supplier forfeit of VAT for "
"discount"
msgstr "Franse binnenlandse creditnota, geen betw door korting van leverancier"
msgstr ""
#: pretix/base/models/tax.py:314
msgid "Your set of rules is not valid. Error message: {}"
@@ -6429,9 +6447,6 @@ msgid ""
"If you help us understand what this tax rules legally is, we can use this "
"information for eInvoices, exporting to accounting system, etc."
msgstr ""
"Wanneer je ons helpt te begrijpen wat deze belastingsregels juridisch "
"inhouden, kunnen we deze informatie inzetten voor e-facturen, het exporteren "
"naar het boekhoudsysteem, enz."
#: pretix/base/models/tax.py:351
msgid "The configured product prices include the tax amount"
@@ -6501,15 +6516,11 @@ msgstr "U moet uw thuisland instellen om de verleggingsfunctie te gebruiken."
msgid ""
"A combination of this tax code with a non-zero tax rate does not make sense."
msgstr ""
"Een combinatie van deze belastingcode met een belastingtarief groter dan nul "
"is niet logisch."
#: pretix/base/models/tax.py:421 pretix/control/forms/event.py:1562
msgid ""
"A combination of this tax code with a zero tax rate does not make sense."
msgstr ""
"Een combinatie van deze belastingscode met een belastingstarief van nul is "
"niet logisch."
#: pretix/base/models/tax.py:426
#, python-brace-format
@@ -11649,6 +11660,13 @@ msgid "Header image"
msgstr "Header-afbeelding"
#: pretix/base/settings.py:2885
#, fuzzy
#| msgid ""
#| "If you provide a logo image, we will by default not show your event name "
#| "and date in the page header. By default, we show your logo with a size of "
#| "up to 1140x120 pixels. You can increase the size with the setting below. "
#| "We recommend not using small details on the picture as it will be resized "
#| "on smaller screens."
msgid ""
"If you provide a logo image, we will by default not show your event name and "
"date in the page header. If you use a white background, we show your logo "
@@ -11687,6 +11705,13 @@ msgstr ""
"organisator dan zal de titel altijd getoond worden."
#: pretix/base/settings.py:2929 pretix/control/forms/organizer.py:524
#, fuzzy
#| msgid ""
#| "If you provide a logo image, we will by default not show your "
#| "organization name in the page header. By default, we show your logo with "
#| "a size of up to 1140x120 pixels. You can increase the size with the "
#| "setting below. We recommend not using small details on the picture as it "
#| "will be resized on smaller screens."
msgid ""
"If you provide a logo image, we will by default not show your organization "
"name in the page header. If you use a white background, we show your logo "
@@ -11696,7 +11721,7 @@ msgid ""
msgstr ""
"Als u een logo opgeeft zullen we standaard niet uw organisatienaam in de "
"paginaheader tonen. We tonen uw logo standaard met een maximumgrootte van "
"1120x120 pixels. U kunt deze grootte aanpassen met de instelling hieronder. "
"1140x120 pixels. U kunt deze grootte aanpassen met de instelling hieronder. "
"We raden aan om geen kleine details op de afbeelding te gebruiken, omdat de "
"afbeelding op kleinere schermen zal worden geschaald."
@@ -13545,8 +13570,6 @@ msgid ""
"A combination of this calculation mode with a non-zero tax rate does not "
"make sense."
msgstr ""
"Een combinatie van deze berekeningsmodus met een belastingstarief groter dan "
"nul is niet logisch."
#: pretix/control/forms/event.py:1550 pretix/control/forms/event.py:1554
msgid "This combination of calculation mode and tax code does not make sense."
@@ -13763,7 +13786,7 @@ msgstr "Goedgekeurd, wacht op betaling"
#: pretix/plugins/reports/exporters.py:380
#: pretix/presale/templates/pretixpresale/event/fragment_order_status.html:7
msgid "Approval pending"
msgstr "Goedkeuring in afwachting"
msgstr "Wachtend op goedkeuring"
#: pretix/control/forms/filter.py:241
msgid "Follow-up configured"
@@ -14985,8 +15008,6 @@ msgid ""
"This affects both the ticket secret (often used as a QR code) as well as the "
"link used to individually access the ticket."
msgstr ""
"Dit heeft invloed op zowel het ticketgeheim (vaak gebruikt als QR-code) als "
"de link waarmee het ticket individueel kan worden geopend."
#: pretix/control/forms/orders.py:501
msgid "Cancel this position"
@@ -15413,8 +15434,6 @@ msgid ""
"Optional query parameters, that will be added to calls to the authorization "
"endpoint. Enter as: {example}"
msgstr ""
"Optionele queryparameters, die worden toegevoegd aan oproepen naar het "
"autorisatie-eindpunt. Voer in als: {example}"
#: pretix/control/forms/organizer.py:1110
msgid "Invalidate old client secret and generate a new one"
@@ -23660,9 +23679,9 @@ msgid ""
"before you are allowed to use cookies or similar technology for analytics, "
"tracking, payment, or similar purposes."
msgstr ""
"Bepaalde rechtsgebieden, zoals de Europese Unie, vereisen de toestemming van "
"de gebruiker voordat je cookies of soortgelijke technologieën mag gebruiken "
"voor analyses, tracking, betalingen of soortgelijke doeleinden."
"In sommige rechtsgebieden, waaronder de Europese Unie, is toestemming van de "
"gebruiker vereist voordat u cookies of vergelijkbare technologie mag "
"gebruiken voor analyses, tracking, betaling of soortgelijke doeleinden."
#: pretix/control/templates/pretixcontrol/organizers/edit.html:172
msgid ""
@@ -23694,12 +23713,12 @@ msgid ""
"usage, the legal details in your specific jurisdiction, or the agreements "
"you have with third parties such as payment or tracking providers."
msgstr ""
"Het is uiteindelijk uw verantwoordelijkheid om ervoor te zorgen dat u "
"voldoet aan alle relevante wetgeving. Wij bieden deze instellingen ter "
"ondersteuning, maar kunnen geen aansprakelijkheid dragen, aangezien wij de "
"exacte configuratie van uw gebruik van pretix, de juridische details in uw "
"rechtsgebied, of de afspraken met derden zoals betalings- of "
"trackingaanbieders niet kennen."
"Niettemin blijft het uw verantwoordelijkheid om ervoor te zorgen dat uw "
"ticketshop aan alle toepasselijke wetten voldoet. Wij proberen u te helpen "
"met deze instellingen, maar kunnen geen aansprakelijkheid aanvaarden omdat "
"wij onder andere niet de exacte configuratie van uw ticketshop, de "
"juridische details van het toepasselijke rechtsgebied en de overeenkomsten "
"tussen u en de gebruikte derde aanbieders kennen."
#: pretix/control/templates/pretixcontrol/organizers/edit.html:210
msgid "Barcode media"
@@ -24534,32 +24553,32 @@ msgstr "Voorkeurstaal"
#: pretix/control/templates/pretixcontrol/pdf/index.html:200
#: pretix/control/templates/pretixcontrol/pdf/index.html:210
#, fuzzy
#| msgid "Upload custom background"
msgid "Upload PDF as background"
msgstr "Upload PDF als achtergrond"
msgstr "Upload aangepaste achtergrond"
#: pretix/control/templates/pretixcontrol/pdf/index.html:202
msgid ""
"You can upload a PDF to use as a custom background. The paper size will "
"match the PDF."
msgstr ""
"Je kunt een PDF uploaden om als aangepaste achtergrond te gebruiken. De "
"papier-grootte zal overeenkomen met dat van de PDF."
#: pretix/control/templates/pretixcontrol/pdf/index.html:217
msgid "Download current background"
msgstr "Download huidige achtergrond"
#: pretix/control/templates/pretixcontrol/pdf/index.html:224
#, fuzzy
#| msgid "Date chosen by customer"
msgid "Or choose custom paper size"
msgstr "Of kies een aangepaste papier-grootte"
msgstr "Datum gekozen door klant"
#: pretix/control/templates/pretixcontrol/pdf/index.html:226
msgid ""
"To manually change the paper size, you need to create a new, empty "
"background."
msgstr ""
"Om manueel de papier-grootte te kunnen aanpassen, moet je eerst een nieuwe, "
"lege, achtergrond maken."
#: pretix/control/templates/pretixcontrol/pdf/index.html:234
#: pretix/control/templates/pretixcontrol/pdf/index.html:321
@@ -27943,9 +27962,10 @@ msgid "until"
msgstr "tot"
#: pretix/helpers/daterange.py:106
#, python-brace-format
#, fuzzy, python-brace-format
#| msgid "{date_from} {date_to}"
msgid "{date_from}{until}{date_to}"
msgstr "{date_from}{until}{date_to}"
msgstr "{date_from} {date_to}"
#: pretix/helpers/images.py:61 pretix/helpers/images.py:67
#: pretix/helpers/images.py:85
@@ -31706,8 +31726,10 @@ msgid "Payer name"
msgstr "Naam betaler"
#: pretix/plugins/stripe/templates/pretixplugins/stripe/control.html:91
#, fuzzy
#| msgid "Payment fee"
msgid "Payment receipt"
msgstr "Betalingsbewijs"
msgstr "Betalingskosten"
#: pretix/plugins/stripe/templates/pretixplugins/stripe/oauth_disconnect.html:12
msgid "Do you really want to disconnect your Stripe account?"
@@ -33634,7 +33656,7 @@ msgid "Add to cart"
msgstr "Voeg toe aan winkelwagen"
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you have already ordered a ticket"
msgid "If you already ordered a ticket"
msgstr "Als u al een ticket heeft besteld"
#: pretix/presale/templates/pretixpresale/event/index.html:257

View File

@@ -7,8 +7,8 @@ msgstr ""
"Project-Id-Version: 1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-04-28 11:08+0000\n"
"PO-Revision-Date: 2025-05-01 02:00+0000\n"
"Last-Translator: Foxy Hunter <matthias.vancoillie@outlook.com>\n"
"PO-Revision-Date: 2025-03-30 16:00+0000\n"
"Last-Translator: Jan Van Haver <jan.van.haver@gmail.com>\n"
"Language-Team: Dutch <https://translate.pretix.eu/projects/pretix/pretix-js/"
"nl/>\n"
"Language: nl\n"
@@ -16,7 +16,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.11.1\n"
"X-Generator: Weblate 5.10.4\n"
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:56
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:62
@@ -34,28 +34,28 @@ msgstr "PayPal"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:35
msgid "Venmo"
msgstr "Venmo"
msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:36
#: pretix/static/pretixpresale/js/walletdetection.js:38
msgid "Apple Pay"
msgstr "Apple Pay"
msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:37
msgid "Itaú"
msgstr "Itaú"
msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:38
msgid "PayPal Credit"
msgstr "PayPal-krediet"
msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:39
msgid "Credit Card"
msgstr "Kredietkaart"
msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:40
msgid "PayPal Pay Later"
msgstr "PayPal Pay Later"
msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:41
msgid "iDEAL"
@@ -75,7 +75,7 @@ msgstr "giropay"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:45
msgid "SOFORT"
msgstr "SOFORT"
msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:46
msgid "eps"
@@ -83,51 +83,51 @@ msgstr "eps"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:47
msgid "MyBank"
msgstr "MyBank"
msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:48
msgid "Przelewy24"
msgstr "Przelewy24"
msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:49
msgid "Verkkopankki"
msgstr "Verkkopankki"
msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:50
msgid "PayU"
msgstr "PayU"
msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:51
msgid "BLIK"
msgstr "BLIK"
msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:52
msgid "Trustly"
msgstr "Trustly"
msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:53
msgid "Zimpler"
msgstr "Zimpler"
msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:54
msgid "Maxima"
msgstr "Maxima"
msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:55
msgid "OXXO"
msgstr "OXXO"
msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:56
msgid "Boleto"
msgstr "Boleto"
msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:57
msgid "WeChat Pay"
msgstr "WeChat Pay"
msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:58
msgid "Mercado Pago"
msgstr "Mercado Pago"
msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:167
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:50
@@ -145,7 +145,7 @@ msgstr "Betaling bevestigen …"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:254
msgid "Payment method unavailable"
msgstr "Betaalmethode niet beschikbaar"
msgstr ""
#: pretix/plugins/statistics/static/pretixplugins/statistics/statistics.js:15
#: pretix/plugins/statistics/static/pretixplugins/statistics/statistics.js:39
@@ -236,11 +236,11 @@ msgstr "Geannuleerd"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:46
msgid "Confirmed"
msgstr "Bevestigd"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:47
msgid "Approval pending"
msgstr "Goedkeuring in afwachting"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:48
msgid "Redeemed"
@@ -296,12 +296,14 @@ msgid "Ticket code revoked/changed"
msgstr "Ticketcode ingetrokken/veranderd"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:63
#, fuzzy
msgid "Ticket blocked"
msgstr "Ticket geblokkeerd"
msgstr "Ticket niet betaald"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:64
#, fuzzy
msgid "Ticket not valid at this time"
msgstr "Ticket is op dit moment niet geldig"
msgstr "Ticket niet betaald"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:65
msgid "Order canceled"
@@ -438,7 +440,7 @@ msgstr "is na"
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:40
msgid "="
msgstr "="
msgstr ""
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:99
msgid "Product"
@@ -458,11 +460,11 @@ msgstr "Huidige datum en tijd"
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:115
msgid "Current day of the week (1 = Monday, 7 = Sunday)"
msgstr "Huidige dag van de week (1 = Maandag, 7 = Zondag)"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:119
msgid "Current entry status"
msgstr "Huidige toegangstatus"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:123
msgid "Number of previous entries"
@@ -473,32 +475,36 @@ msgid "Number of previous entries since midnight"
msgstr "Aantal eerdere binnenkomsten sinds middernacht"
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:131
#, fuzzy
msgid "Number of previous entries since"
msgstr "Aantal eerdere binnenkomsten sinds"
msgstr "Aantal eerdere binnenkomsten"
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:135
#, fuzzy
msgid "Number of previous entries before"
msgstr "Aantal eerdere binnenkomsten voor"
msgstr "Aantal eerdere binnenkomsten"
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:139
msgid "Number of days with a previous entry"
msgstr "Aantal dagen met een eerdere binnenkomst"
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:143
#, fuzzy
msgid "Number of days with a previous entry since"
msgstr "Aantal dagen met een eerdere binnenkomst sinds"
msgstr "Aantal dagen met een eerdere binnenkomst"
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:147
#, fuzzy
msgid "Number of days with a previous entry before"
msgstr "Aantal dagen met een eerdere binnenkomst voor"
msgstr "Aantal dagen met een eerdere binnenkomst"
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:151
msgid "Minutes since last entry (-1 on first entry)"
msgstr "Minuten sinds laatste toegang (-1 bij eerste toegang)"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:155
msgid "Minutes since first entry (-1 on first entry)"
msgstr "Minuten sinds de eerste toegang (-1 bij eerste toegang)"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:182
msgid "All of the conditions below (AND)"
@@ -542,17 +548,17 @@ msgstr "minuten"
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:192
msgid "Duplicate"
msgstr "duplicaat"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:193
msgctxt "entry_status"
msgid "present"
msgstr "aanwezig"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:194
msgctxt "entry_status"
msgid "absent"
msgstr "afwezig"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:171
msgid "Check-in QR"
@@ -567,8 +573,9 @@ msgid "Group of objects"
msgstr "Groep van objecten"
#: pretix/static/pretixcontrol/js/ui/editor.js:908
#, fuzzy
msgid "Text object (deprecated)"
msgstr "Tekstobject (verouderd)"
msgstr "Tekstobject"
#: pretix/static/pretixcontrol/js/ui/editor.js:910
msgid "Text box"
@@ -655,11 +662,11 @@ msgstr "Alleen geselecteerde"
#: pretix/static/pretixcontrol/js/ui/main.js:820
msgid "Enter page number between 1 and %(max)s."
msgstr "voer een pagina nummer tussen 1 en %(max)s in."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:823
msgid "Invalid page number."
msgstr "Ongeldig pagina nummer."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:981
msgid "Use a different name internally"
@@ -745,22 +752,22 @@ msgstr "Uw lokale tijd:"
#: pretix/static/pretixpresale/js/walletdetection.js:39
msgid "Google Pay"
msgstr "Google Pay"
msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:16
msgctxt "widget"
msgid "Quantity"
msgstr "Aantal"
msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:17
msgctxt "widget"
msgid "Decrease quantity"
msgstr "Verlaag aantal"
msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:18
msgctxt "widget"
msgid "Increase quantity"
msgstr "Verhoog aantal"
msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:19
msgctxt "widget"
@@ -771,18 +778,19 @@ msgstr "Prijs"
#, javascript-format
msgctxt "widget"
msgid "Original price: %s"
msgstr "Originele prijs: %s"
msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:21
#, javascript-format
msgctxt "widget"
msgid "New price: %s"
msgstr "Nieuwe prijs: %s"
msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:22
#, fuzzy
msgctxt "widget"
msgid "Select"
msgstr "Selecteer"
msgstr "Alleen geselecteerde"
#: pretix/static/pretixpresale/js/widget/widget.js:23
#, javascript-format
@@ -830,7 +838,7 @@ msgstr "vanaf %(currency)s %(price)s"
#, javascript-format
msgctxt "widget"
msgid "Image of %s"
msgstr "Afbeelding van %s"
msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:32
msgctxt "widget"
@@ -865,19 +873,21 @@ msgstr "Alleen verkrijgbaar met een voucher"
#: pretix/static/pretixpresale/js/widget/widget.js:38
#: pretix/static/pretixpresale/js/widget/widget.js:41
#, fuzzy
msgctxt "widget"
msgid "Not yet available"
msgstr "Nog niet beschikbaar"
msgstr "momenteel beschikbaar: %s"
#: pretix/static/pretixpresale/js/widget/widget.js:39
msgctxt "widget"
msgid "Not available anymore"
msgstr "Niet langer beschikbaar"
msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:40
#, fuzzy
msgctxt "widget"
msgid "Currently not available"
msgstr "Momenteel niet beschikbaar"
msgstr "momenteel beschikbaar: %s"
#: pretix/static/pretixpresale/js/widget/widget.js:42
#, javascript-format
@@ -910,9 +920,12 @@ msgid "Open ticket shop"
msgstr "Open de ticketwinkel"
#: pretix/static/pretixpresale/js/widget/widget.js:48
#, fuzzy
#| msgctxt "widget"
#| msgid "Resume checkout"
msgctxt "widget"
msgid "Checkout"
msgstr "Afrekenen"
msgstr "Doorgaan met afrekenen"
#: pretix/static/pretixpresale/js/widget/widget.js:49
msgctxt "widget"
@@ -976,14 +989,16 @@ msgid "Continue"
msgstr "Ga verder"
#: pretix/static/pretixpresale/js/widget/widget.js:61
#, fuzzy
msgctxt "widget"
msgid "Show variants"
msgstr "Toon varianten"
msgstr "Zie variaties"
#: pretix/static/pretixpresale/js/widget/widget.js:62
#, fuzzy
msgctxt "widget"
msgid "Hide variants"
msgstr "Verberg varianten"
msgstr "Zie variaties"
#: pretix/static/pretixpresale/js/widget/widget.js:63
msgctxt "widget"
@@ -1032,9 +1047,6 @@ msgid ""
"add yourself to the waiting list. We will then notify if seats are available "
"again."
msgstr ""
"Sommige of alle tiketcategorieën zijn op heden uitverkocht. Als je wilt, kun "
"je jezelf toevoegen aan de wachtlijst. We zullen je informeren wanneer er "
"weer plaatsen beschikbaar zijn."
#: pretix/static/pretixpresale/js/widget/widget.js:72
msgctxt "widget"
@@ -1071,31 +1083,31 @@ msgstr "Zo"
#: pretix/static/pretixpresale/js/widget/widget.js:81
msgid "Monday"
msgstr "Maandag"
msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:82
msgid "Tuesday"
msgstr "Dinsdag"
msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:83
msgid "Wednesday"
msgstr "Woensdag"
msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:84
msgid "Thursday"
msgstr "Donderdag"
msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:85
msgid "Friday"
msgstr "Vrijdag"
msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:86
msgid "Saturday"
msgstr "Zaterdag"
msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:87
msgid "Sunday"
msgstr "Zondag"
msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:90
msgid "January"

View File

@@ -34971,7 +34971,7 @@ msgid "Add to cart"
msgstr "Voeg toe aan winkelwagen"
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you have already ordered a ticket"
msgid "If you already ordered a ticket"
msgstr "Als je al een kaartje hebt besteld"
#: pretix/presale/templates/pretixpresale/event/index.html:257

View File

@@ -33525,7 +33525,7 @@ msgid "Add to cart"
msgstr "Dodaj do koszyka"
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you have already ordered a ticket"
msgid "If you already ordered a ticket"
msgstr "Jeżeli bilet jest już zamówiony"
#: pretix/presale/templates/pretixpresale/event/index.html:257

View File

@@ -30093,7 +30093,7 @@ msgid "Add to cart"
msgstr ""
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you have already ordered a ticket"
msgid "If you already ordered a ticket"
msgstr ""
#: pretix/presale/templates/pretixpresale/event/index.html:257

View File

@@ -30334,7 +30334,7 @@ msgid "Add to cart"
msgstr ""
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you have already ordered a ticket"
msgid "If you already ordered a ticket"
msgstr ""
#: pretix/presale/templates/pretixpresale/event/index.html:257

View File

@@ -32910,7 +32910,7 @@ msgid "Add to cart"
msgstr "Adicionar ao carrinho"
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you have already ordered a ticket"
msgid "If you already ordered a ticket"
msgstr "Se você já solicitou um ingresso"
#: pretix/presale/templates/pretixpresale/event/index.html:257

View File

@@ -34042,7 +34042,7 @@ msgid "Add to cart"
msgstr "Adicionar ao carrinho"
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you have already ordered a ticket"
msgid "If you already ordered a ticket"
msgstr "Se já pediste um bilhete"
#: pretix/presale/templates/pretixpresale/event/index.html:257

View File

@@ -34887,7 +34887,7 @@ msgid "Add to cart"
msgstr "Adaugă în coș"
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you have already ordered a ticket"
msgid "If you already ordered a ticket"
msgstr "Dacă ați comandat deja un bilet"
#: pretix/presale/templates/pretixpresale/event/index.html:257

View File

@@ -33106,7 +33106,7 @@ msgid "Add to cart"
msgstr "Добавить в корзину"
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you have already ordered a ticket"
msgid "If you already ordered a ticket"
msgstr "Если вы уже заказали билет"
#: pretix/presale/templates/pretixpresale/event/index.html:257

View File

@@ -29992,7 +29992,7 @@ msgid "Add to cart"
msgstr ""
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you have already ordered a ticket"
msgid "If you already ordered a ticket"
msgstr ""
#: pretix/presale/templates/pretixpresale/event/index.html:257

View File

@@ -32809,7 +32809,7 @@ msgid "Add to cart"
msgstr "Pridať do košíka"
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you have already ordered a ticket"
msgid "If you already ordered a ticket"
msgstr "Ak ste si už objednali vstupenku"
#: pretix/presale/templates/pretixpresale/event/index.html:257

View File

@@ -32657,7 +32657,7 @@ msgid "Add to cart"
msgstr ""
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you have already ordered a ticket"
msgid "If you already ordered a ticket"
msgstr ""
#: pretix/presale/templates/pretixpresale/event/index.html:257

View File

@@ -29857,7 +29857,7 @@ msgid "Add to cart"
msgstr ""
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you have already ordered a ticket"
msgid "If you already ordered a ticket"
msgstr ""
#: pretix/presale/templates/pretixpresale/event/index.html:257

View File

@@ -33595,7 +33595,7 @@ msgid "Add to cart"
msgstr "Lägg till i bokning"
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you have already ordered a ticket"
msgid "If you already ordered a ticket"
msgstr "Om du redan har bokat en biljett"
#: pretix/presale/templates/pretixpresale/event/index.html:257

View File

@@ -29859,7 +29859,7 @@ msgid "Add to cart"
msgstr ""
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you have already ordered a ticket"
msgid "If you already ordered a ticket"
msgstr ""
#: pretix/presale/templates/pretixpresale/event/index.html:257

View File

@@ -35827,7 +35827,7 @@ msgid "Add to cart"
msgstr "Sepete ekle"
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you have already ordered a ticket"
msgid "If you already ordered a ticket"
msgstr "Zaten bir bilet sipariş ettiyseniz"
#: pretix/presale/templates/pretixpresale/event/index.html:257

View File

@@ -33579,7 +33579,7 @@ msgid "Add to cart"
msgstr "Додати до кошика"
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you have already ordered a ticket"
msgid "If you already ordered a ticket"
msgstr "Якщо Ви вже замовили квиток"
#: pretix/presale/templates/pretixpresale/event/index.html:257

View File

@@ -29897,7 +29897,7 @@ msgid "Add to cart"
msgstr ""
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you have already ordered a ticket"
msgid "If you already ordered a ticket"
msgstr ""
#: pretix/presale/templates/pretixpresale/event/index.html:257

View File

@@ -29857,7 +29857,7 @@ msgid "Add to cart"
msgstr ""
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you have already ordered a ticket"
msgid "If you already ordered a ticket"
msgstr ""
#: pretix/presale/templates/pretixpresale/event/index.html:257

View File

@@ -34570,7 +34570,7 @@ msgid "Add to cart"
msgstr "添加到购物车"
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you have already ordered a ticket"
msgid "If you already ordered a ticket"
msgstr "如果您已经订了票"
#: pretix/presale/templates/pretixpresale/event/index.html:257

View File

@@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-04-28 11:06+0000\n"
"PO-Revision-Date: 2025-05-06 16:20+0000\n"
"Last-Translator: KC Tseng <tkc0204@gmail.com>\n"
"PO-Revision-Date: 2025-02-21 19:00+0000\n"
"Last-Translator: anonymous <noreply@weblate.org>\n"
"Language-Team: Chinese (Traditional Han script) <https://translate.pretix.eu/"
"projects/pretix/pretix/zh_Hant/>\n"
"Language: zh_Hant\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 5.11.1\n"
"X-Generator: Weblate 5.10\n"
#: pretix/_base_settings.py:87
msgid "English"
@@ -57,7 +57,7 @@ msgstr "捷克語"
#: pretix/_base_settings.py:96
msgid "Croatian"
msgstr "克羅埃西亞語"
msgstr ""
#: pretix/_base_settings.py:97
msgid "Danish"
@@ -2910,9 +2910,11 @@ msgid "Repeat password"
msgstr "重複"
#: pretix/base/forms/questions.py:134 pretix/base/forms/questions.py:256
#, fuzzy
#| msgid "No country specified."
msgctxt "name_salutation"
msgid "not specified"
msgstr "未指定"
msgstr "未指定國家/地區。"
#: pretix/base/forms/questions.py:219
msgid "Please do not use special characters in names."
@@ -3978,8 +3980,10 @@ msgid "Grant type"
msgstr "授權類型"
#: pretix/base/models/customers.py:420
#, fuzzy
#| msgid "Required question"
msgid "Require PKCE extension"
msgstr "需要交換驗證碼用的驗證密鑰(PKCE)擴充功能"
msgstr "必填題"
#: pretix/base/models/customers.py:432
msgid "Allowed access scopes"
@@ -4135,9 +4139,12 @@ msgstr ""
"產品僅限於例如解鎖隱藏產品或獲得售罄配額仍可享折扣。"
#: pretix/base/models/discount.py:177
#, fuzzy
#| msgctxt "subevent"
#| msgid "All dates starting before"
msgctxt "subevent"
msgid "Available for dates starting from"
msgstr "適用日期始於"
msgstr "之前開始的所有日期"
#: pretix/base/models/discount.py:182
#, fuzzy
@@ -5326,12 +5333,18 @@ msgid "Unknown country code."
msgstr "未知國家代碼."
#: pretix/base/models/items.py:1921 pretix/base/models/items.py:1923
#, fuzzy
#| msgid "The maximum count needs to be greater than the minimum count."
msgid "The maximum date must not be before the minimum value."
msgstr "最大日期不得早於最小。"
msgstr "最大計數需要大於最小計數。"
#: pretix/base/models/items.py:1925
#, fuzzy
#| msgid ""
#| "The maximum number of usages may not be lower than the minimum number of "
#| "usages."
msgid "The maximum value must not be lower than the minimum value."
msgstr "最大不得低於最小。"
msgstr "最大使用次數,不得低於最小使用次數。"
#: pretix/base/models/items.py:1942
#: pretix/control/templates/pretixcontrol/items/question.html:90
@@ -6725,9 +6738,11 @@ msgid "The payment for this invoice has already been received."
msgstr "此發票的付款已收到。"
#: pretix/base/payment.py:970
#, fuzzy
#| msgid "This payment can not be canceled at the moment."
msgid ""
"This payment is already being processed and can not be canceled any more."
msgstr "此付款已在處理中,無法取消。"
msgstr "此付款目前無法取消。"
#: pretix/base/payment.py:984
msgid "Automatic refunds are not supported by this payment provider."
@@ -7072,7 +7087,7 @@ msgstr "活動從工作日開始"
#: pretix/base/pdf.py:266 pretix/base/pdf.py:295
#: pretix/base/services/checkin.py:362 pretix/control/forms/filter.py:1240
msgid "Friday"
msgstr "五"
msgstr "星期五"
#: pretix/base/pdf.py:270
msgid "Event end date and time"
@@ -7747,27 +7762,27 @@ msgstr "工作日"
#: pretix/base/services/checkin.py:358 pretix/control/forms/filter.py:1236
msgid "Monday"
msgstr "一"
msgstr "星期一"
#: pretix/base/services/checkin.py:359 pretix/control/forms/filter.py:1237
msgid "Tuesday"
msgstr "二"
msgstr "星期二"
#: pretix/base/services/checkin.py:360 pretix/control/forms/filter.py:1238
msgid "Wednesday"
msgstr "三"
msgstr "星期三"
#: pretix/base/services/checkin.py:361 pretix/control/forms/filter.py:1239
msgid "Thursday"
msgstr "四"
msgstr "星期四"
#: pretix/base/services/checkin.py:363 pretix/control/forms/filter.py:1241
msgid "Saturday"
msgstr "六"
msgstr "星期六"
#: pretix/base/services/checkin.py:364 pretix/control/forms/filter.py:1242
msgid "Sunday"
msgstr "週日"
msgstr "星期天"
#: pretix/base/services/checkin.py:368
#, python-brace-format
@@ -9300,9 +9315,6 @@ msgid ""
"page. Note that pretix still is a system built around events and the date "
"may still show up in other places."
msgstr ""
"如果您僅出售無特定日期的物品(例如:禮品卡或可隨時使用的門票),請取消勾選此"
"方塊。系統將停止在某些地方活動開始頁面顯示活動日期。請注意pretix "
"仍然是一個圍繞建立活動的系統,日期可能仍會出現在其他地方。"
#: pretix/base/settings.py:1326
msgid "Show event end date"
@@ -10908,6 +10920,13 @@ msgid "Header image"
msgstr "標題圖像"
#: pretix/base/settings.py:2885
#, fuzzy
#| msgid ""
#| "If you provide a logo image, we will by default not show your event name "
#| "and date in the page header. By default, we show your logo with a size of "
#| "up to 1140x120 pixels. You can increase the size with the setting below. "
#| "We recommend not using small details on the picture as it will be resized "
#| "on smaller screens."
msgid ""
"If you provide a logo image, we will by default not show your event name and "
"date in the page header. If you use a white background, we show your logo "
@@ -10915,10 +10934,9 @@ msgid ""
"pixels. You can increase the size with the setting below. We recommend not "
"using small details on the picture as it will be resized on smaller screens."
msgstr ""
"如果你提供標誌圖片,預設情況下,我們不會在頁中顯示您的活動名稱和日期。如果"
"您使用白色背景的標誌我們顯示標誌尺寸最大為1140x120像素其餘情況的最大尺寸"
"為您1120x120像素。您可以使用下列設定擴大尺寸。我們建議不要在圖片上使用小細節"
",因為它的尺寸將在較小的螢幕被調整。"
"如果你提供徽章標誌圖片,默認情況下,我們不會在頁中顯示您的活動名稱和日期。"
"默認情況下我們顯示的徽標大小最大為1140x120圖元。您可以使用以下設置增加大"
"小。我們建議不要在圖片上使用小細節,因為它將在較小的螢幕上調整大小。"
#: pretix/base/settings.py:2906 pretix/base/settings.py:2949
msgid "Use header image in its full size"
@@ -10942,6 +10960,13 @@ msgstr ""
"的標題圖像,則將忽略此選項,並始終顯示活動標題。"
#: pretix/base/settings.py:2929 pretix/control/forms/organizer.py:524
#, fuzzy
#| msgid ""
#| "If you provide a logo image, we will by default not show your "
#| "organization name in the page header. By default, we show your logo with "
#| "a size of up to 1140x120 pixels. You can increase the size with the "
#| "setting below. We recommend not using small details on the picture as it "
#| "will be resized on smaller screens."
msgid ""
"If you provide a logo image, we will by default not show your organization "
"name in the page header. If you use a white background, we show your logo "
@@ -10949,11 +10974,10 @@ msgid ""
"pixels. You can increase the size with the setting below. We recommend not "
"using small details on the picture as it will be resized on smaller screens."
msgstr ""
"如果你提供標誌圖片,預設情況下,我們不會在頁中顯示你的活動名稱和日期。如果"
"你使用白色背景我們顯示的標誌尺寸最大為1140x120像素。否則最大尺寸為 "
"1120x120 "
"像素。你可以使用下列設定增加大小。我們建議不要在圖片上使用小細節,因為圖片將"
"在較小的螢幕上調整尺寸。"
"如果你提供徽章標誌圖片,預設情況下,我們不會在頁面抬頭中顯示你的活動名稱和"
"日期。預設值情況下我們顯示的徽章標誌圖片大小最大為1140x120圖元。你可以使用"
"以下設置增加大小。我們建議不要在圖片上使用小細節,因為圖片將在較小的螢幕上調"
"整大小。"
#: pretix/base/settings.py:2959
msgid "Use header image also for events without an individually uploaded logo"
@@ -11328,14 +11352,18 @@ msgid "MA"
msgstr "MA"
#: pretix/base/settings.py:3722 pretix/base/settings.py:3724
#, fuzzy
#| msgid "Provider name"
msgctxt "address"
msgid "Province"
msgstr ""
msgstr "提供者名稱"
#: pretix/base/settings.py:3723
#, fuzzy
#| msgid "Price effect"
msgctxt "address"
msgid "Prefecture"
msgstr "縣/州/區"
msgstr "價格效應"
#: pretix/base/settings.py:3812 pretix/control/forms/event.py:228
msgid ""
@@ -13344,7 +13372,7 @@ msgstr "小冊子磁磚屬性"
#: pretix/control/forms/global_settings.py:103
msgid "ApplePay MerchantID Domain Association"
msgstr "ApplePay 網域憑證驗證"
msgstr ""
#: pretix/control/forms/global_settings.py:104
#, python-brace-format
@@ -13770,8 +13798,7 @@ msgid ""
"The password contains characters not supported by our email system. Please "
"only use characters A-Z, a-z, 0-9, and common special characters "
"({characters})."
msgstr "密碼包含我們電子郵件系統不支援的字元。僅接受字元 A-Z、a-z、0-9 "
"和常見的特殊字元 ({characters})。"
msgstr ""
#: pretix/control/forms/mailsetup.py:70
msgid "Use STARTTLS"
@@ -14105,7 +14132,7 @@ msgstr "收件人"
#, fuzzy, python-brace-format
#| msgid "Attach ticket files"
msgid "Attach {file}"
msgstr "附件{files}"
msgstr "附加票證檔"
#: pretix/control/forms/orders.py:796
msgid ""
@@ -14421,7 +14448,7 @@ msgstr "電話欄位"
#: pretix/control/forms/organizer.py:1048
msgctxt "sso_oidc"
msgid "Query parameters"
msgstr "查詢參數"
msgstr ""
#: pretix/control/forms/organizer.py:1049
#, python-brace-format
@@ -14429,7 +14456,7 @@ msgctxt "sso_oidc"
msgid ""
"Optional query parameters, that will be added to calls to the authorization "
"endpoint. Enter as: {example}"
msgstr "可選查詢參數,將被加入到對授權端的呼叫。輸入為:{example}"
msgstr ""
#: pretix/control/forms/organizer.py:1110
msgid "Invalidate old client secret and generate a new one"
@@ -16743,14 +16770,20 @@ msgid "Delete check-ins"
msgstr "刪除簽到"
#: pretix/control/templates/pretixcontrol/checkin/bulk_revert_confirm.html:15
#, python-format
#, fuzzy, python-format
#| msgid ""
#| "Are you sure you want to permanently delete the check-ins of <strong>one "
#| "ticket</strong>."
#| msgid_plural ""
#| "Are you sure you want to permanently delete the check-ins of "
#| "<strong>%(count)s tickets</strong>?"
msgid ""
"Are you sure you want to permanently delete the check-ins of <strong>one "
"ticket</strong>?"
msgid_plural ""
"Are you sure you want to permanently delete the check-ins of "
"<strong>%(count)s tickets</strong>?"
msgstr[0] "你確定要永久刪除<strong>%(count)s 張票</strong>的報到紀錄嗎?"
msgstr[0] "你確定要永久刪除<strong>%(count)s 張票</strong>的簽到清單嗎?"
#: pretix/control/templates/pretixcontrol/checkin/bulk_revert_confirm.html:24
#: pretix/control/templates/pretixcontrol/checkin/list_delete.html:18
@@ -17410,18 +17443,6 @@ msgid ""
"Best regards, \n"
"Your %(instance)s team\n"
msgstr ""
"你好,\n"
"\n"
"偵測到有人從不尋常或新位置登入您的 %(instance)s 帳戶。登入是在 %(country)s "
"使用 %(os)s 系統的 %(agent)s 執行。\n"
"\n"
"如果這是您,您可以放心忽略這封電子郵件。\n"
"\n"
"如果這不是您本人,我們建議您在帳戶設定中變更密碼:\n"
"\n"
"%(url)s\n"
"\n"
"%(instance)s 團隊 敬上\n"
#: pretix/control/templates/pretixcontrol/email/security_notice.txt:1
#, python-format
@@ -18188,8 +18209,10 @@ msgid "Disabled"
msgstr "禁用"
#: pretix/control/templates/pretixcontrol/event/payment.html:57
#, fuzzy
#| msgid "Enable waiting list"
msgid "Enable additional payment plugins"
msgstr "啟用其他支付外掛"
msgstr "啟動候補名單"
#: pretix/control/templates/pretixcontrol/event/payment.html:66
msgid "Deadlines"
@@ -18285,8 +18308,10 @@ msgid "Your changes have been saved."
msgstr "你的更改已儲存。"
#: pretix/control/templates/pretixcontrol/event/plugins.html:34
#, fuzzy
#| msgid "Check results"
msgid "Search results"
msgstr "搜尋結果"
msgstr "檢查結果"
#: pretix/control/templates/pretixcontrol/event/plugins.html:56
msgid "Top recommendation"
@@ -18306,12 +18331,16 @@ msgstr "無法使用"
#: pretix/control/templates/pretixcontrol/event/plugins.html:93
#: pretix/control/templates/pretixcontrol/event/plugins.html:105
#, fuzzy
#| msgid "Login settings"
msgid "Open plugin settings"
msgstr "開啟外掛設定"
msgstr "登錄設定"
#: pretix/control/templates/pretixcontrol/event/plugins.html:94
#, fuzzy
#| msgid "Go to shop"
msgid "Go to"
msgstr "前往"
msgstr "到商店"
#: pretix/control/templates/pretixcontrol/event/plugins.html:116
#: pretix/control/templates/pretixcontrol/oauth/app_delete.html:15
@@ -19114,21 +19143,18 @@ msgid ""
"If you have a pretix Enterprise license, this report must be submitted to "
"pretix support when your license renews. It may also be requested by pretix "
"support to aid debugging of problems."
msgstr "如果您擁有 "
"Pretix企業版許可證必須在許可證續約時將此報告提交給pretix支援團隊。 pretix "
"支援人員可能會要求以協助調試問題。"
msgstr ""
#: pretix/control/templates/pretixcontrol/global_sysreport.html:8
msgid ""
"It serves two purposes: Collecting useful information that might help with "
"debugging problems in your pretix installation, and verifying that your "
"usage of pretix is in compliance with the Enterprise license you purchased."
msgstr "它有兩個目的:收集可能有助於調試 pretix 安裝中問題的有用資訊,"
"以及驗證您使用pretix 時是否符合您購買的企業許可證。"
msgstr ""
#: pretix/control/templates/pretixcontrol/global_sysreport.html:14
msgid "First month of license term:"
msgstr "許可期限的第一個月:"
msgstr ""
#: pretix/control/templates/pretixcontrol/global_sysreport.html:16
msgid "January"
@@ -19451,10 +19477,10 @@ msgstr "是否確實要刪除商品<strong>%(item)s</strong>"
#: pretix/control/templates/pretixcontrol/item/delete.html:22
#: pretix/control/templates/pretixcontrol/items/quota_delete.html:24
#, python-format
#, fuzzy, python-format
msgid "That will cause %(count)s voucher to be unusable."
msgid_plural "That will cause %(count)s voucher to be unusable."
msgstr[0] "這將導致%(count)s張優惠券無法使用。"
msgstr[0] "這將導致%(count)s的優惠券不可用.這將導致 %(count)s的優惠券不可用."
#: pretix/control/templates/pretixcontrol/item/delete.html:29
#: pretix/control/templates/pretixcontrol/items/quota_delete.html:31
@@ -19835,13 +19861,20 @@ msgid "taxes"
msgstr "稅"
#: pretix/control/templates/pretixcontrol/items/index.html:10
#, fuzzy
#| msgid ""
#| "Below, you find a list of all available products. You can click on a "
#| "product name to inspect and change product details. You can also use the "
#| "buttons on the right to change the order of products within a give "
#| "category."
msgid ""
"Below, you find a list of all available products. You can click on a product "
"name to inspect and change product details. You can also use the buttons on "
"the right to change the order of products or move products to a different "
"category."
msgstr "下面,你可以找到所有可用產品的清單。你可以按下產品名稱來檢查和更改產品詳細資"
"訊。你也可使用右側按鈕變更產品順序或將其移至其他類別。"
msgstr ""
"下面,你可以找到所有可用產品的清單。你可以按下產品名稱來檢查和更改產品詳細資"
"訊。你還可以使用右側的按鈕更改給定類別中產品的順序。"
#: pretix/control/templates/pretixcontrol/items/index.html:19
msgid "You haven't created any products yet."
@@ -31796,7 +31829,7 @@ msgid "Add to cart"
msgstr "加入購物車"
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you have already ordered a ticket"
msgid "If you already ordered a ticket"
msgstr "如果你已訂購票"
#: pretix/presale/templates/pretixpresale/event/index.html:257

View File

@@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-04-28 11:08+0000\n"
"PO-Revision-Date: 2025-05-06 16:20+0000\n"
"Last-Translator: KC Tseng <tkc0204@gmail.com>\n"
"PO-Revision-Date: 2025-01-31 01:00+0000\n"
"Last-Translator: Chislon <chislon@gmail.com>\n"
"Language-Team: Chinese (Traditional Han script) <https://translate.pretix.eu/"
"projects/pretix/pretix-js/zh_Hant/>\n"
"Language: zh_Hant\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 5.11.1\n"
"X-Generator: Weblate 5.9.2\n"
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:56
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:62
@@ -669,8 +669,10 @@ msgid "Calculating default price…"
msgstr "計算預設價格…"
#: pretix/static/pretixcontrol/js/ui/plugins.js:69
#, fuzzy
#| msgid "Search results"
msgid "No results"
msgstr "結果"
msgstr "搜尋結果"
#: pretix/static/pretixcontrol/js/ui/question.js:42
msgid "Others"
@@ -896,9 +898,12 @@ msgid "Open ticket shop"
msgstr "開放售票"
#: pretix/static/pretixpresale/js/widget/widget.js:48
#, fuzzy
#| msgctxt "widget"
#| msgid "Resume checkout"
msgctxt "widget"
msgid "Checkout"
msgstr "結帳"
msgstr "繼續結帳"
#: pretix/static/pretixpresale/js/widget/widget.js:49
msgctxt "widget"
@@ -1053,31 +1058,31 @@ msgstr "星期天"
#: pretix/static/pretixpresale/js/widget/widget.js:81
msgid "Monday"
msgstr "週一"
msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:82
msgid "Tuesday"
msgstr "週二"
msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:83
msgid "Wednesday"
msgstr "週三"
msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:84
msgid "Thursday"
msgstr "週四"
msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:85
msgid "Friday"
msgstr "週五"
msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:86
msgid "Saturday"
msgstr "週六"
msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:87
msgid "Sunday"
msgstr "週日"
msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:90
msgid "January"

View File

@@ -1,7 +1,8 @@
.banktransfer-swiss-cross-overlay {
position: relative;
width: 150px;
margin: 0 auto;
height: 150px;
margin: 0 auto 10px;
}
.banktransfer-swiss-cross {
position: absolute;

View File

@@ -44,28 +44,34 @@
</p>
</div>
{% if settings.bank_details_type == "sepa" and any_barcodes %}
<div class="tabcontainer col-md-6 col-sm-6 hidden-xs text-center js-only blank-after">
<div id="banktransfer_qrcodes_tabs_content" class="tabpanels blank-after">
<div class="col-md-6 col-sm-6 hidden-xs text-center js-only blank-after">
<ul class="nav nav-tabs" id="banktransfer_qrcodes_tabs" role="tablist">
{% if swiss_qrbill %}
<div id="banktransfer_qrcodes_qrbill"
role="tabpanel"
tabindex="0"
aria-labelledby="banktransfer_qrcodes_qrbill_tab"
>
<div class="banktransfer-swiss-cross-overlay" role="figure" aria-labelledby="banktransfer_qrcodes_qrbill_tab banktransfer_qrcodes_label">
<li class="active"><a href="#banktransfer_qrcodes_qrbill" role="tab" id="banktransfer_qrcodes_qrbill_tab" data-toggle="tab" aria-controls="banktransfer_qrcodes_qrbill" aria-expanded="true">QR-bill</a></li>
{% endif %}
{% if eu_barcodes %}
<li {% if not swiss_qrbill %}class="active"{% endif %}><a href="#banktransfer_qrcodes_girocode" role="tab" id="banktransfer_qrcodes_girocode_tab" data-toggle="tab" aria-controls="banktransfer_qrcodes_girocode" aria-expanded="{% if swiss_qrbill %}false{% else %}true{% endif %}">EPC-QR</a></li>
<li class=""><a href="#banktransfer_qrcodes_bezahlcode" role="tab" id="banktransfer_qrcodes_bezahlcode_tab" data-toggle="tab" aria-controls="banktransfer_qrcodes_bezahlcode" aria-expanded="false">BezahlCode</a></li>
{% endif %}
</ul>
<div class="tab-content" id="banktransfer_qrcodes_tabs_content">
{% if swiss_qrbill %}
<div id="banktransfer_qrcodes_qrbill" class="tab-pane fade active in" role="tabpanel" aria-labelledby="banktransfer_qrcodes_qrbill_tab">
<p class="small">
{% trans "Scan the qr-code with your banking app" %}
</p>
<p class="banktransfer-swiss-cross-overlay">
<svg class="banktransfer-swiss-cross" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 19.8 19.8"><path stroke="#fff" stroke-width="1.436" d="M.7.7h18.4v18.4H.7z"/><path fill="#fff" d="M8.3 4h3.3v11H8.3z"/><path fill="#fff" d="M4.4 7.9h11v3.3h-11z"/></svg>
<script type="text/plain" data-size="150" data-replace-with-qr data-desc="{% trans 'Scan this image with your banking apps QR-Reader to start the payment process.' %}">{{swiss_qrbill}}</script>
</div>
</p>
</div>
{% endif %}
{% if eu_barcodes %}
<div id="banktransfer_qrcodes_girocode"
role="tabpanel"
tabindex="0"
{{ swiss_qrbill|yesno:'hidden,' }}
aria-labelledby="banktransfer_qrcodes_girocode_tab"
>
<div role="figure" aria-labelledby="banktransfer_qrcodes_girocode_tab banktransfer_qrcodes_label">
<div id="banktransfer_qrcodes_girocode" class="tab-pane fade {% if not swiss_qrbill %}active in{% endif %}" role="tabpanel" aria-labelledby="banktransfer_qrcodes_girocode_tab">
<p class="small">
{% trans "Scan the qr-code with your banking app" %}
</p>
<p>
<script type="text/plain" data-size="150" data-replace-with-qr data-desc="{% trans 'Scan this image with your banking apps QR-Reader to start the payment process.' %}">BCD
002
2
@@ -79,55 +85,20 @@ SCT
{{ code }}
</script>
</div>
</p>
</div>
<div id="banktransfer_qrcodes_bezahlcode"
role="tabpanel"
tabindex="0"
hidden
aria-labelledby="banktransfer_qrcodes_bezahlcode_tab"
>
<a aria-label="{% trans "Open BezahlCode in your banking app to start the payment process." %}" href="bank://singlepaymentsepa?name={{ settings.bank_details_sepa_name|urlencode }}&iban={{ settings.bank_details_sepa_iban }}&bic={{ settings.bank_details_sepa_bic }}&amount={{ amount|commadecimal }}&reason={{ code }}&currency={{ event.currency }}">
<div role="figure" aria-labelledby="banktransfer_qrcodes_bezahlcode_tab banktransfer_qrcodes_label">
<div id="banktransfer_qrcodes_bezahlcode" class="tab-pane fade" role="tabpanel" aria-labelledby="banktransfer_qrcodes_bezahlcode_tab">
<p class="small">
{% trans "Scan the qr-code with your banking app" %}
</p>
<p>
<a aria-label="{% trans "Open BezahlCode in your banking app to start the payment process." %}" href="bank://singlepaymentsepa?name={{ settings.bank_details_sepa_name|urlencode }}&iban={{ settings.bank_details_sepa_iban }}&bic={{ settings.bank_details_sepa_bic }}&amount={{ amount|commadecimal }}&reason={{ code }}&currency={{ event.currency }}">
<script type="text/plain" data-size="150" data-replace-with-qr data-desc="{% trans 'Scan this image with your banking apps QR-Reader to start the payment process.' %}">bank://singlepaymentsepa?name={{ settings.bank_details_sepa_name|urlencode }}&iban={{ settings.bank_details_sepa_iban }}&bic={{ settings.bank_details_sepa_bic }}&amount={{ amount|commadecimal }}&reason={{ code }}&currency={{ event.currency }}</script>
</div>
</a>
</a>
</p>
</div>
{% endif %}
</div>
<div id="banktransfer_qrcodes_tabs" role="tablist" aria-labelledby="banktransfer_qrcodes_label" class="blank-after btn-group">
{% if swiss_qrbill %}
<button
class="btn btn-default"
id="banktransfer_qrcodes_qrbill_tab"
type="button"
role="tab"
aria-controls="banktransfer_qrcodes_qrbill"
aria-selected="true"
tabindex="-1">QR-bill</button>
{% endif %}
{% if eu_barcodes %}
<button
class="btn btn-default"
id="banktransfer_qrcodes_girocode_tab"
type="button"
role="tab"
aria-controls="banktransfer_qrcodes_girocode"
aria-selected="{{ swiss_qrbill|yesno:"false,true" }}"
tabindex="-1">EPC-QR</button>
<button
class="btn btn-default"
id="banktransfer_qrcodes_bezahlcode_tab"
type="button"
role="tab"
aria-controls="banktransfer_qrcodes_bezahlcode"
aria-selected="false"
tabindex="-1">BezahlCode</button>
{% endif %}
</div>
<p class="text-muted" id="banktransfer_qrcodes_label">
{% trans "Scan the QR code with your banking app" %}
</p>
</div>
{% endif %}
</div>
@@ -171,4 +142,4 @@ SCT
</div>
</form>
<hr>
{% endif %}
{% endif %}

View File

@@ -801,13 +801,7 @@ class CheckinLogList(ListExporter):
ia = ci.position.order.invoice_address
except InvoiceAddress.DoesNotExist:
ia = InvoiceAddress()
name = (
ci.position.attendee_name or
(ci.position.addon_to.attendee_name if ci.position.addon_to else '') or
ia.name
)
else:
name = ""
yield [
date_format(ci.datetime.astimezone(self.timezone), 'SHORT_DATE_FORMAT'),
date_format(ci.datetime.astimezone(self.timezone), 'TIME_FORMAT'),
@@ -817,7 +811,7 @@ class CheckinLogList(ListExporter):
ci.position.positionid if ci.position else '',
ci.raw_barcode or ci.position.secret,
str(ci.position.item) if ci.position else (str(ci.raw_item) if ci.raw_item else ''),
name,
(ci.position.attendee_name or ia.name) if ci.position else '',
str(ci.device) if ci.device else '',
_('Yes') if ci.force_sent is True else (_('No') if ci.force_sent is False else '?'),
_('Yes') if ci.forced else _('No'),

View File

@@ -625,22 +625,8 @@ class PaypalMethod(BasePaymentProvider):
}
return template.render(ctx)
# We are wrapping the actual _execute_payment() here, since PaymentExceptions
# within the atomic transaction would rollback any changes to the payment-object,
# this throwing away any logentries and payment.fail()
@transaction.atomic
def execute_payment(self, request: HttpRequest, payment: OrderPayment):
ex = None
with transaction.atomic():
try:
return self._execute_payment(request, payment)
except PaymentException as e:
ex = e
if ex:
raise ex
return False
def _execute_payment(self, request: HttpRequest, payment: OrderPayment):
payment = OrderPayment.objects.select_for_update(of=OF_SELF).get(pk=payment.pk)
if payment.state == OrderPayment.PAYMENT_STATE_CONFIRMED:
logger.warning('payment is already confirmed; possible return-view/webhook race-condition')

View File

@@ -44,7 +44,6 @@ from pretix.base.forms.questions import (
from pretix.base.i18n import get_language_without_region
from pretix.base.models import Customer
from pretix.helpers.http import get_client_ip
from pretix.multidomain.urlreverse import build_absolute_uri
class TokenGenerator(PasswordResetTokenGenerator):
@@ -66,29 +65,19 @@ class AuthenticationForm(forms.Form):
error_messages = {
'incomplete': _('You need to fill out all fields.'),
'empty_email': _('You need to enter an email address.'),
'empty_password': _('You need to enter a password.'),
'invalid_login': _(
"We have not found an account with this email address and password."
),
'invalid_login_email': _('Please verify that you entered the correct email addess.'),
'invalid_login_password': _('Please enter the correct password.'),
'inactive': _("This account is disabled."),
'unverified': _("You have not yet activated your account and set a password. Please click the link in the "
"email we sent you. In case you cannot find it, click \"Forgot your password?\" to receive "
"a new email."),
"email we sent you. Click \"Reset password\" to receive a new email in case you cannot find "
"it again."),
}
def __init__(self, request=None, *args, **kwargs):
self.request = request
self.customer_cache = None
super().__init__(*args, **kwargs)
self.fields['password'].help_text = "<a href='{}'>{}</a>".format(
build_absolute_uri(False, 'presale:organizer.customer.resetpw', kwargs={
'organizer': request.organizer.slug,
}),
_('Forgot your password?')
)
def clean(self):
email = self.cleaned_data.get('email')
@@ -105,8 +94,6 @@ class AuthenticationForm(forms.Form):
if u.check_password(password):
self.customer_cache = u
if self.customer_cache is None:
self.add_error("email", self.error_messages['invalid_login_email'])
self.add_error("password", self.error_messages['invalid_login_password'])
raise forms.ValidationError(
self.error_messages['invalid_login'],
code='invalid_login',
@@ -114,10 +101,6 @@ class AuthenticationForm(forms.Form):
else:
self.confirm_login_allowed(self.customer_cache)
else:
if not email:
self.add_error("email", self.error_messages['empty_email'])
if not password:
self.add_error("password", self.error_messages['empty_password'])
raise forms.ValidationError(
self.error_messages['incomplete'],
code='incomplete'
@@ -127,9 +110,15 @@ class AuthenticationForm(forms.Form):
def confirm_login_allowed(self, user):
if not user.is_active:
self.add_error("email", self.error_messages['inactive'])
elif not user.is_verified:
self.add_error("password", self.error_messages['unverified'])
raise forms.ValidationError(
self.error_messages['inactive'],
code='inactive',
)
if not user.is_verified:
raise forms.ValidationError(
self.error_messages['unverified'],
code='unverified',
)
def get_customer(self):
return self.customer_cache

View File

@@ -33,7 +33,6 @@ def render_label(content, label_for=None, label_class=None, label_title='', labe
"""
Render a label with content
"""
tag = 'label'
attrs = attrs or {}
if label_for:
attrs['for'] = label_for
@@ -59,16 +58,15 @@ def render_label(content, label_for=None, label_class=None, label_title='', labe
attrs['class'] += ' label-empty'
# usually checkboxes have overall empty labels and special labels per checkbox
# => remove for-attribute as well as "required"-text appended to label
tag = 'div'
if 'for' in attrs:
del attrs['for']
elif not optional:
opt += '<i class="label-required">{}</i>'.format(pgettext('form', 'required'))
opt += '<i class="sr-only label-required">, {}</i>'.format(pgettext('form', 'required'))
builder = '<{tag}{attrs}>{content}{opt}</{tag}>'
return format_html(
builder,
tag=tag,
tag='label',
attrs=mark_safe(flatatt(attrs)) if attrs else '',
opt=mark_safe(opt),
content=text_value(content),

View File

@@ -44,9 +44,6 @@
</head>
<body class="nojs" data-locale="{{ request.LANGUAGE_CODE }}" data-now="{% now "U.u" %}" data-datetimeformat="{{ js_datetime_format }}" data-timeformat="{{ js_time_format }}" data-dateformat="{{ js_date_format }}" data-datetimelocale="{{ js_locale }}" data-currency="{{ request.event.currency }}">
{{ html_page_header|safe }}
<nav id="skip-to-main" role="navigation" aria-label="{% trans "Skip link" context "skip-to-main-nav" %}" class="sr-only on-focus-visible">
<p><a href="#content">{% trans "Skip to main content" %}</a></p>
</nav>
<header>
{% if ie_deprecation_warning %}
<div class="old-browser-warning">

View File

@@ -94,11 +94,10 @@
</a>
{% else %}
<h1>
<a href="{% eventurl event "presale:event.index" cart_namespace=cart_namespace|default_if_none:"" %}" class="no-underline">{{ event.name }}
<a href="{% eventurl event "presale:event.index" cart_namespace=cart_namespace|default_if_none:"" %}">{{ event.name }}</a>
{% if request.event.settings.show_dates_on_frontpage and not event.has_subevents %}
<small class="text-muted">{{ event.get_date_range_display_as_html }}</small>
<small>{{ event.get_date_range_display_as_html }}</small>
{% endif %}
</a>
</h1>
{% endif %}
</div>

View File

@@ -13,7 +13,7 @@
{% endblock %}
{% block content %}
<aside aria-label="{% trans "Your cart" %}">
<details class="panel panel-default cart sneak-peek-container" open>
<details class="panel panel-default cart{% if "open_cart" not in request.GET %} sneak-peek{% endif %}" {% if "open_cart" in request.GET %}open{% endif %}>
<summary class="panel-heading">
<h2 class="panel-title">
<span>
@@ -33,15 +33,11 @@
</summary>
{% if "open_cart" not in request.GET %}
<p class="sneak-peek-trigger">
<button type="button" class="btn btn-default" aria-controls="cart-foldable-container">{% trans "Show full cart" %}</button>
<button type="button" class="btn btn-default">{% trans "Show full cart" %}</button>
</p>
{% endif %}
<div>
{% if "open_cart" not in request.GET %}
<div class="panel-body sneak-peek-content" id="cart-foldable-container">
{% else %}
<div class="panel-body">
{% endif %}
{% include "pretixpresale/event/fragment_cart.html" with cart=cart event=request.event %}
</div>
</div>

View File

@@ -48,6 +48,15 @@
</p>
{% if request.organizer.settings.customer_accounts_native %}
{% bootstrap_form login_form layout="checkout" %}
<div class="row">
<div class="col-md-offset-3 col-md-9">
<a
href="{% abseventurl request.organizer "presale:organizer.customer.resetpw" %}"
target="_blank">
{% trans "Reset password" %}
</a>
</div>
</div>
{% endif %}
<div class="row">
<div class="col-md-6 col-md-offset-3">

View File

@@ -23,7 +23,10 @@
{% trans "Seat" %}
</label>
<div class="col-md-9 form-control-text">
{% include "icons/seat.svg" with cls="svg-icon" %}
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="14" viewBox="0 0 4.7624999 3.7041668" class="svg-icon">
<path
d="m 1.9592032,1.8522629e-4 c -0.21468,0 -0.38861,0.17394000371 -0.38861,0.38861000371 0,0.21466 0.17393,0.38861 0.38861,0.38861 0.21468,0 0.3886001,-0.17395 0.3886001,-0.38861 0,-0.21467 -0.1739201,-0.38861000371 -0.3886001,-0.38861000371 z m 0.1049,0.84543000371 c -0.20823,-0.0326 -0.44367,0.12499 -0.39998,0.40462997 l 0.20361,1.01854 c 0.0306,0.15316 0.15301,0.28732 0.3483,0.28732 h 0.8376701 v 0.92708 c 0,0.29313 0.41187,0.29447 0.41187,0.005 v -1.19115 c 0,-0.14168 -0.0995,-0.29507 -0.29094,-0.29507 l -0.65578,-10e-4 -0.1757,-0.87644 C 2.3042533,0.95300523 2.1890432,0.86500523 2.0641032,0.84547523 Z m -0.58549,0.44906997 c -0.0946,-0.0134 -0.20202,0.0625 -0.17829,0.19172 l 0.18759,0.91054 c 0.0763,0.33956 0.36802,0.55914 0.66042,0.55914 h 0.6015201 c 0.21356,0 0.21448,-0.32143 -0.003,-0.32143 H 2.1954632 c -0.19911,0 -0.36364,-0.11898 -0.41341,-0.34107 l -0.17777,-0.87126 c -0.0165,-0.0794 -0.0688,-0.11963 -0.12557,-0.12764 z"/>
</svg>
{{ form.position.seat }}
</div>
</div>

View File

@@ -6,6 +6,11 @@
{% load escapejson %}
{% block inner %}
<p>{% trans "Before we continue, we need you to answer some questions." %}</p>
<p class="required-legend" aria-hidden="true">
{% blocktrans trimmed %}
You need to fill all fields that are marked with <span>*</span> to continue.
{% endblocktrans %}
</p>
{% if profiles_data %}
{{ profiles_data|json_script:"profiles_json" }}
{% endif %}
@@ -95,7 +100,10 @@
{% trans "Seat" %}
</label>
<div class="col-md-9 form-control-text">
{% include "icons/seat.svg" with cls="svg-icon" %}
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="14" viewBox="0 0 4.7624999 3.7041668" class="svg-icon">
<path
d="m 1.9592032,1.8522629e-4 c -0.21468,0 -0.38861,0.17394000371 -0.38861,0.38861000371 0,0.21466 0.17393,0.38861 0.38861,0.38861 0.21468,0 0.3886001,-0.17395 0.3886001,-0.38861 0,-0.21467 -0.1739201,-0.38861000371 -0.3886001,-0.38861000371 z m 0.1049,0.84543000371 c -0.20823,-0.0326 -0.44367,0.12499 -0.39998,0.40462997 l 0.20361,1.01854 c 0.0306,0.15316 0.15301,0.28732 0.3483,0.28732 h 0.8376701 v 0.92708 c 0,0.29313 0.41187,0.29447 0.41187,0.005 v -1.19115 c 0,-0.14168 -0.0995,-0.29507 -0.29094,-0.29507 l -0.65578,-10e-4 -0.1757,-0.87644 C 2.3042533,0.95300523 2.1890432,0.86500523 2.0641032,0.84547523 Z m -0.58549,0.44906997 c -0.0946,-0.0134 -0.20202,0.0625 -0.17829,0.19172 l 0.18759,0.91054 c 0.0763,0.33956 0.36802,0.55914 0.66042,0.55914 h 0.6015201 c 0.21356,0 0.21448,-0.32143 -0.003,-0.32143 H 2.1954632 c -0.19911,0 -0.36364,-0.11898 -0.41341,-0.34107 l -0.17777,-0.87126 c -0.0165,-0.0794 -0.0688,-0.11963 -0.12557,-0.12764 z"/>
</svg>
{{ pos.seat }}
</div>
</div>

View File

@@ -205,7 +205,7 @@
{% else %}
<fieldset class="input-item-count-group" aria-describedby="c-{{ form.pos.pk }}-{{ category_idx }}-addon-count-desc cp-{{ form.pos.pk }}-item-{{ item.pk }}-min-order">
<legend class="sr-only">{% blocktrans with item=item.name %}Add {{ item }}, {{ var }} to cart{% endblocktrans %}</legend>
<button type="button" data-step="-1" data-controls="cp_{{ form.pos.pk }}_variation_{{ item.id }}_{{ var.id }}" class="btn btn-default input-item-count-dec" aria-label="- {{ item }}, {{ var }}: {% trans "Decrease quantity" %}">-</button>
<button type="button" data-step="-1" data-controls="cp_{{ form.pos.pk }}_variation_{{ item.id }}_{{ var.id }}" class="btn btn-default input-item-count-dec" aria-label="{% trans "Decrease quantity" %}">-</button>
<input type="number" class="form-control input-item-count" placeholder="0" min="0"
{% if var.initial %}value="{{ var.initial }}"{% endif %}
{% if item.free_price %}
@@ -215,7 +215,7 @@
id="cp_{{ form.pos.pk }}_variation_{{ item.id }}_{{ var.id }}"
name="cp_{{ form.pos.pk }}_variation_{{ item.id }}_{{ var.id }}"
aria-label="{% trans "Quantity" %}">
<button type="button" data-step="1" data-controls="cp_{{ form.pos.pk }}_variation_{{ item.id }}_{{ var.id }}" class="btn btn-default input-item-count-inc" aria-label="+ {{ item }}, {{ var }}: {% trans "Increase quantity" %}">+</button>
<button type="button" data-step="1" data-controls="cp_{{ form.pos.pk }}_variation_{{ item.id }}_{{ var.id }}" class="btn btn-default input-item-count-inc" aria-label="{% trans "Increase quantity" %}">+</button>
</fieldset>
{% endif %}
</div>
@@ -351,7 +351,7 @@
{% else %}
<fieldset class="input-item-count-group" aria-describedby="c-{{ form.pos.pk }}-{{ category_idx }}-addon-count-desc cp-{{ form.pos.pk }}-item-{{ item.pk }}-min-order">
<legend class="sr-only">{% blocktrans with item=item.name %}Add {{ item }} to cart{% endblocktrans %}</legend>
<button type="button" data-step="-1" data-controls="cp_{{ form.pos.pk }}_item_{{ item.id }}" class="btn btn-default input-item-count-dec" aria-label="- {{ item }}: {% trans "Decrease quantity" %}">-</button>
<button type="button" data-step="-1" data-controls="cp_{{ form.pos.pk }}_item_{{ item.id }}" class="btn btn-default input-item-count-dec" aria-label="{% trans "Decrease quantity" %}">-</button>
<input type="number" class="form-control input-item-count" placeholder="0" min="0"
{% if item.free_price %}
data-checked-onchange="price-item-{{ form.pos.pk }}-{{ item.pk }}"
@@ -361,7 +361,7 @@
name="cp_{{ form.pos.pk }}_item_{{ item.id }}"
id="cp_{{ form.pos.pk }}_item_{{ item.id }}"
aria-label="{% trans "Quantity" %}">
<button type="button" data-step="1" data-controls="cp_{{ form.pos.pk }}_item_{{ item.id }}" class="btn btn-default input-item-count-inc" aria-label="+ {{ item }}: {% trans "Increase quantity" %}">+</button>
<button type="button" data-step="1" data-controls="cp_{{ form.pos.pk }}_item_{{ item.id }}" class="btn btn-default input-item-count-inc" aria-label="{% trans "Increase quantity" %}">+</button>
</fieldset>
{% endif %}
</div>

View File

@@ -11,11 +11,8 @@
<span role="columnheader" aria-sort="none">{% trans "Product" %}</span>
{% if download %}
<span role="columnheader" aria-sort="none">{% trans "Ticket download" %}</span>
{% else %}
<span role="columnheader" aria-sort="none">{% trans "Quantity" %}</span>
{% if not hide_prices %}
<span role="columnheader" aria-sort="none">{% trans "Price per item" %}</span>
{% endif %}
{% elif not hide_prices %}
<span role="columnheader" aria-sort="none">{% trans "Price per item" %}</span>
{% endif %}
{% if not hide_prices %}
<span role="columnheader" aria-sort="none">{% trans "Price total" %}</span>
@@ -44,8 +41,11 @@
<div class="cart-icon-details">
<dt class="sr-only">{% trans "Seat:" %}</dt>
<dd>
{% include "icons/seat.svg" with cls="svg-icon" %}
{{ line.seat }}
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="14" viewBox="0 0 4.7624999 3.7041668" class="svg-icon">
<path
d="m 1.9592032,1.8522629e-4 c -0.21468,0 -0.38861,0.17394000371 -0.38861,0.38861000371 0,0.21466 0.17393,0.38861 0.38861,0.38861 0.21468,0 0.3886001,-0.17395 0.3886001,-0.38861 0,-0.21467 -0.1739201,-0.38861000371 -0.3886001,-0.38861000371 z m 0.1049,0.84543000371 c -0.20823,-0.0326 -0.44367,0.12499 -0.39998,0.40462997 l 0.20361,1.01854 c 0.0306,0.15316 0.15301,0.28732 0.3483,0.28732 h 0.8376701 v 0.92708 c 0,0.29313 0.41187,0.29447 0.41187,0.005 v -1.19115 c 0,-0.14168 -0.0995,-0.29507 -0.29094,-0.29507 l -0.65578,-10e-4 -0.1757,-0.87644 C 2.3042533,0.95300523 2.1890432,0.86500523 2.0641032,0.84547523 Z m -0.58549,0.44906997 c -0.0946,-0.0134 -0.20202,0.0625 -0.17829,0.19172 l 0.18759,0.91054 c 0.0763,0.33956 0.36802,0.55914 0.66042,0.55914 h 0.6015201 c 0.21356,0 0.21448,-0.32143 -0.003,-0.32143 H 2.1954632 c -0.19911,0 -0.36364,-0.11898 -0.41341,-0.34107 l -0.17777,-0.87126 c -0.0165,-0.0794 -0.0688,-0.11963 -0.12557,-0.12764 z"/>
</svg>
{{ line.seat }}
</dd>
</div>
{% endif %}
@@ -392,20 +392,12 @@
{% endfor %}
{% endfor %}
{% for fee in cart.fees %}
<div role="row" class="row cart-row">
<div role="cell" class="col-md-4 col-xs-6">
<div class="row cart-row">
<div class="col-md-4 col-xs-6">
<strong>{{ fee.get_fee_type_display }}</strong>
</div>
{% if download %}
<div role="cell"></div>
{% else %}
<div role="cell"></div>
{% if not hide_prices %}
<div role="cell"></div>
{% endif %}
{% endif %}
{% if not hide_prices %}
<div role="cell" class="col-md-3 col-xs-6 col-md-offset-5 price">
<div class="col-md-3 col-xs-6 col-md-offset-5 price">
{% if event.settings.display_net_prices %}
<strong>{{ fee.net_value|money:event.currency }}</strong>
{% if fee.tax_rate %}

View File

@@ -7,7 +7,7 @@
{% load rich_text %}
{% for tup in items_by_category %}{% with category=tup.0 items=tup.1 form_prefix=tup.2 %}
{% if category %}
<section class="item-category" aria-labelledby="{{ form_prefix }}category-{{ category.id }}"{% if category.description %} aria-describedby="{{ form_prefix }}category-info-{{ category.id }}"{% endif %}>
<section aria-labelledby="{{ form_prefix }}category-{{ category.id }}"{% if category.description %} aria-describedby="{{ form_prefix }}category-info-{{ category.id }}"{% endif %}>
<h{{ headline_level|default:3 }} class="h3" id="{{ form_prefix }}category-{{ category.id }}">{{ category.name }}
{% if category.subevent_name %}
<small class="text-muted"><i class="fa fa-calendar" aria-hidden="true"></i> {{ category.subevent_name }}</small>
@@ -24,7 +24,7 @@
<div id="{{ form_prefix }}category-info-{{ category.id }}">{{ category.description|localize|rich_text }}</div>
{% endif %}
{% else %}
<section class="item-category" aria-labelledby="{{ form_prefix }}category-none">
<section aria-labelledby="{{ form_prefix }}category-none">
<h{{ headline_level|default:"3" }} id="{{ form_prefix }}category-none" class="h3 sr-only">{% trans "Uncategorized items" %}</h{{ headline_level|default:3 }}>
{% endif %}
{% for item in items %}
@@ -221,7 +221,7 @@
{% else %}
<fieldset class="input-item-count-group">
<legend class="sr-only">{% blocktrans with item=item.name %}Add {{ item }}, {{ var }} to cart{% endblocktrans %}</legend>
<button type="button" data-step="-1" data-controls="{{ form_prefix }}variation_{{ item.id }}_{{ var.id }}" class="btn btn-default input-item-count-dec" aria-label="- {{ item }}, {{ var }}: {% trans "Decrease quantity" %}"
<button type="button" data-step="-1" data-controls="{{ form_prefix }}variation_{{ item.id }}_{{ var.id }}" class="btn btn-default input-item-count-dec" aria-label="{% trans "Decrease quantity" %}"
{% if not ev.presale_is_running %}disabled{% endif %}>-</button>
<input type="number" class="form-control input-item-count" placeholder="0" min="0"
{% if not ev.presale_is_running %}disabled{% endif %}
@@ -232,7 +232,7 @@
id="{{ form_prefix }}variation_{{ item.id }}_{{ var.id }}"
name="{{ form_prefix }}variation_{{ item.id }}_{{ var.id }}"
aria-label="{% trans "Quantity" %}">
<button type="button" data-step="1" data-controls="{{ form_prefix }}variation_{{ item.id }}_{{ var.id }}" class="btn btn-default input-item-count-inc" aria-label="+ {{ item }}, {{ var }}: {% trans "Increase quantity" %}"
<button type="button" data-step="1" data-controls="{{ form_prefix }}variation_{{ item.id }}_{{ var.id }}" class="btn btn-default input-item-count-inc" aria-label="{% trans "Increase quantity" %}"
{% if not ev.presale_is_running %}disabled{% endif %}>+</button>
</fieldset>
{% endif %}
@@ -262,7 +262,7 @@
</a>
{% endif %}
<div class="product-description {% if item.picture %}with-picture{% endif %}">
<h{{ headline_level|default:3|add:1 }} class="h4" id="{{ form_prefix }}item-{{ item.pk }}-legend">{{ item.name }}</h{{ headline_level|default:3|add:1 }}>
<h{{ headline_level|default:3|add:1 }} class="h4" id="{{ form_prefix }}item-{{ item.pk }}-legend">{{ item.name }}</h{{ headline_level|default:3 }}>
{% if item.description %}
<div id="{{ form_prefix }}item-{{ item.pk }}-description" class="product-description">
{{ item.description|localize|rich_text }}
@@ -373,7 +373,7 @@
{% else %}
<fieldset class="input-item-count-group">
<legend class="sr-only">{% blocktrans with item=item.name %}Add {{ item }} to cart{% endblocktrans %}</legend>
<button type="button" data-step="-1" data-controls="{{ form_prefix }}item_{{ item.id }}" class="btn btn-default input-item-count-dec" aria-label="- {{ item }}: {% trans "Decrease quantity" %}"
<button type="button" data-step="-1" data-controls="{{ form_prefix }}item_{{ item.id }}" class="btn btn-default input-item-count-dec" aria-label="{% trans "Decrease quantity" %}"
{% if not ev.presale_is_running %}disabled{% endif %}>-</button>
<input type="number" class="form-control input-item-count" placeholder="0" min="0"
{% if not ev.presale_is_running %}disabled{% endif %}
@@ -385,7 +385,7 @@
name="{{ form_prefix }}item_{{ item.id }}"
id="{{ form_prefix }}item_{{ item.id }}"
aria-label="{% trans "Quantity" %}">
<button type="button" data-step="1" data-controls="{{ form_prefix }}item_{{ item.id }}" class="btn btn-default input-item-count-inc" aria-label="+ {{ item }}: {% trans "Increase quantity" %}"
<button type="button" data-step="1" data-controls="{{ form_prefix }}item_{{ item.id }}" class="btn btn-default input-item-count-inc" aria-label="{% trans "Increase quantity" %}"
{% if not ev.presale_is_running %}disabled{% endif %}>+</button>
</fieldset>
{% endif %}

View File

@@ -1,55 +1,44 @@
{% load i18n %}
{% load eventurl %}
{% load icon %}
{% load urlreplace %}
<nav aria-label="{% trans "calendar navigation" %}">
<ul class="row calendar-nav">
<li class="text-left flip">
<li class="col-sm-4 col-xs-2 text-left flip">
{% if subevent_list.has_before %}
<a href="?{% url_replace request "date" subevent_list.before|date:"Y-m" %}"
class="btn btn-default" data-save-scrollpos aria-label="{% blocktrans with month=subevent_list.before|date:"F Y" %}Show previous month, {{ month }}{% endblocktrans %}">
{% icon "arrow-left" %}
<span class="fa fa-arrow-left" aria-hidden="true"></span>
<span class="hidden-xs">{{ subevent_list.before|date:"F Y" }}</span>
</a>
{% endif %}
</li>
<li class="text-center">
<li class="col-sm-4 col-xs-8 text-center">
<form class="form-inline" method="get" id="monthselform" action="{% eventurl event "presale:event.index" cart_namespace=cart_namespace %}">
{% for f, v in request.GET.items %}
{% if f != "date" %}
<input type="hidden" name="{{ f }}" value="{{ v }}">
{% endif %}
{% endfor %}
<fieldset>
<legend class="sr-only">{% trans "Select a month to display" %}</legend>
<div>
<label for="calendar-input-date">{% trans "Month" %}</label>
</div>
<div class="input-group">
<select name="date" class="form-control" id="calendar-input-date">
{% for y in subevent_list.years %}
<optgroup label="{{ y }}">
{% for m in subevent_list.months %}
<option value="{{ y }}-{{ m|date:"m" }}" {% if m.month == subevent_list.date.month and y == subevent_list.date.year %}selected{% endif %}>{{ m|date:"F" }} {{ y }}</option>
{% endfor %}
</optgroup>
{% endfor %}
</select>
<span class="input-group-btn">
<button type="submit" class="btn btn-default" aria-label="{% trans "Show month" %}">
{% icon "chevron-right" %}
</button>
</span>
</div>
</fieldset>
<select name="date" class="form-control" aria-label="{% trans "Select month to show" %}">
{% for y in subevent_list.years %}
<optgroup label="{{ y }}">
{% for m in subevent_list.months %}
<option value="{{ y }}-{{ m|date:"m" }}" {% if m.month == subevent_list.date.month and y == subevent_list.date.year %}selected{% endif %}>{{ m|date:"F" }} {{ y }}</option>
{% endfor %}
</optgroup>
{% endfor %}
</select>
<button type="submit" class="js-hidden btn btn-default">
{% trans "Go" %}
</button>
</form>
</li>
<li class="text-right flip">
<li class="col-sm-4 col-xs-2 text-right flip">
{% if subevent_list.has_after %}
<a href="?{% url_replace request "date" subevent_list.after|date:"Y-m" %}"
class="btn btn-default" data-save-scrollpos aria-label="{% blocktrans with month=subevent_list.after|date:"F Y" %}Show next month, {{ month }}{% endblocktrans %}">
<span class="hidden-xs">{{ subevent_list.after|date:"F Y" }}</span>
{% icon "arrow-right" %}
<span class="fa fa-arrow-right" aria-hidden="true"></span>
</a>
{% endif %}
</li>

View File

@@ -1,78 +1,63 @@
{% load i18n %}
{% load eventurl %}
{% load icon %}
{% load urlreplace %}
<nav aria-label="{% trans "calendar navigation" %}">
<ul class="row calendar-nav">
<li class="text-left flip">
<li class="col-sm-4 col-xs-2 text-left flip">
{% if subevent_list.has_before %}
<a href="?{% url_replace request "date" subevent_list.before|date:"o-\WW" %}"
class="btn btn-default" data-save-scrollpos aria-label="{% blocktrans with week=subevent_list.before|date:subevent_list.week_format %}Show previous week, {{ week }}{% endblocktrans %}">
{% icon "arrow-left" %}
<span class="fa fa-arrow-left" aria-hidden="true"></span>
<span class="hidden-xs">{{ subevent_list.before|date:subevent_list.week_format }}</span>
</a>
{% endif %}
</li>
<li class="text-center">
<li class="col-sm-4 col-xs-8 text-center">
<form class="form-inline" method="get" id="monthselform" action="{% eventurl event "presale:event.index" cart_namespace=cart_namespace %}">
{% for f, v in request.GET.items %}
{% if f != "date" %}
<input type="hidden" name="{{ f }}" value="{{ v }}">
{% endif %}
{% for f, v in request.GET.items %}
{% if f != "date" %}
<input type="hidden" name="{{ f }}" value="{{ v }}">
{% endif %}
{% endfor %}
<select name="date" class="form-control" aria-label="{% trans "Select week to show" %}">
{% for weeks_per_year in subevent_list.weeks %}
<optgroup label="{{ weeks_per_year.0.0.year }}">
{% for w in weeks_per_year %}
<option value="{{ w.0.isocalendar.0 }}-W{{ w.0.isocalendar.1 }}"
{% if w.0.isocalendar.0 == subevent_list.date.isocalendar.0 and w.0.isocalendar.1 == subevent_list.date.isocalendar.1 %}selected{% endif %}>
{{ w.0|date:subevent_list.week_format }}
({{ w.0|date:subevent_list.short_month_day_format }} {{ w.1|date:subevent_list.short_month_day_format }})
</option>
{% endfor %}
</optgroup>
{% endfor %}
<fieldset>
<legend class="sr-only">{% trans "Select a week to display" %}</legend>
<div>
<label for="calendar-input-date">{% trans "Week" %}</label>
</div>
<div class="input-group">
<select name="date" class="form-control" aria-label="{% trans "Select week to show" %}">
{% for weeks_per_year in subevent_list.weeks %}
<optgroup label="{{ weeks_per_year.0.0.year }}">
{% for w in weeks_per_year %}
<option value="{{ w.0.isocalendar.0 }}-W{{ w.0.isocalendar.1 }}"
{% if w.0.isocalendar.0 == subevent_list.date.isocalendar.0 and w.0.isocalendar.1 == subevent_list.date.isocalendar.1 %}selected{% endif %}>
{{ w.0|date:subevent_list.week_format }}
({{ w.0|date:subevent_list.short_month_day_format }} {{ w.1|date:subevent_list.short_month_day_format }})
</option>
{% endfor %}
</optgroup>
{% endfor %}
</select>
<span class="input-group-btn">
<button type="submit" class="btn btn-default" aria-label="{% trans "Show week" %}">
{% icon "chevron-right" %}
</button>
</span>
</div>
</fieldset>
</select>
<button type="submit" class="js-hidden btn btn-default">
{% trans "Go" %}
</button>
</form>
</li>
<li class="text-right flip">
<li class="col-sm-4 col-xs-2 text-right flip">
{% if subevent_list.has_after %}
<a href="?{% url_replace request "date" subevent_list.after|date:"o-\WW" %}"
class="btn btn-default" data-save-scrollpos aria-label="{% blocktrans with week=subevent_list.after|date:subevent_list.week_format %}Show next week, {{ week }}{% endblocktrans %}">
<span class="hidden-xs">{{ subevent_list.after|date:subevent_list.week_format }}</span>
{% icon "arrow-right" %}
<span class="fa fa-arrow-right" aria-hidden="true"></span>
</a>
{% endif %}
</li>
</ul>
</nav>
{% include "pretixpresale/fragment_week_calendar.html" with show_avail=event.settings.event_list_availability days=subevent_list.days show_names=subevent_list.show_names %}
<div class="row visible-xs">
<div class="col-xs-6 text-left flip">
<a href="?{% url_replace request "date" subevent_list.before|date:"o-\WW" %}"
class="btn btn-default" data-save-scrollpos aria-label="{% blocktrans with week=subevent_list.before|date:subevent_list.week_format %}Show previous week, {{ week }}{% endblocktrans %}">
<span class="fa fa-arrow-left" aria-hidden="true"></span>
<span class="hidden-xs">{{ subevent_list.before|date:subevent_list.week_format }}</span>
</a>
</div>
<div class="col-xs-6 text-right flip">
<a href="?{% url_replace request "date" subevent_list.after|date:"o-\WW" %}"
class="btn btn-default" data-save-scrollpos aria-label="{% blocktrans with week=subevent_list.after|date:subevent_list.week_format %}Show next week, {{ week }}{% endblocktrans %}">
<span class="hidden-xs">{{ subevent_list.after|date:subevent_list.week_format }}</span>
<span class="fa fa-arrow-right" aria-hidden="true"></span>
</a>
</div>
<div class="visible-xs text-center" aria-hidden="true">
<a href="?{% url_replace request "date" subevent_list.before|date:"o-\WW" %}"
class="btn btn-default" data-save-scrollpos aria-label="{% blocktrans with week=subevent_list.before|date:subevent_list.week_format %}Show previous week, {{ week }}{% endblocktrans %}">
<span class="fa fa-arrow-left" aria-hidden="true"></span>
{{ subevent_list.before|date:subevent_list.week_format }}
</a>
<a href="?{% url_replace request "date" subevent_list.after|date:"o-\WW" %}"
class="btn btn-default" data-save-scrollpos aria-label="{% blocktrans with week=subevent_list.after|date:subevent_list.week_format %}Show next week, {{ week }}{% endblocktrans %}">
{{ subevent_list.after|date:subevent_list.week_format }}
<span class="fa fa-arrow-right" aria-hidden="true"></span>
</a>
</div>

View File

@@ -2,31 +2,30 @@
{% load icon %}
{% load eventurl %}
<div class="event-list full-width-list alternating-rows">
<dl class="full-width-list alternating-rows">
{% for subev in subevent_list.subevent_list %}
<article class="row" aria-labelledby="subevent-{{ subev.pk }}-label" aria-describedby="subevent-{{ subev.pk }}-desc">
<h3 class="col-md-4 col-xs-12">
<a id="subevent-{{ subev.pk }}-label" href="{% if request.GET.voucher %}{% eventurl event "presale:event.redeem" cart_namespace=cart_namespace %}?voucher={{ request.GET.voucher|urlencode }}&amp;subevent={{ subev.pk }}{% else %}{% eventurl event "presale:event.index" subevent=subev.id cart_namespace=cart_namespace %}{% endif %}">
<div class="row">
<dt class="col-md-4 col-xs-12">
<a href="{% if request.GET.voucher %}{% eventurl event "presale:event.redeem" cart_namespace=cart_namespace %}?voucher={{ request.GET.voucher|urlencode }}&amp;subevent={{ subev.pk }}{% else %}{% eventurl event "presale:event.index" subevent=subev.id cart_namespace=cart_namespace %}{% endif %}">
{{ subev.name }}
</a>
</h3>
<p class="col-md-3 col-xs-12" id="subevent-{{ subev.pk }}-desc">
</dt>
<dd class="col-md-3 col-xs-12">
{{ subev.get_date_range_display_as_html }}
{% if event.settings.show_times %}
<br>
<span data-time="{{ subev.date_from.isoformat }}" data-timezone="{{ event.timezone }}" data-time-short>
{% icon "clock-o" %}
<span class="sr-only">{% trans "Time of day" %}</span>
<time datetime="{{ subev.date_from.isoformat }}">{{ subev.date_from|date:"TIME_FORMAT" }}</time>
</span>
{% endif %}
</p>
<p class="col-md-3 col-xs-6">
</dd>
<dd class="col-md-3 col-xs-6">
<small>
{% include "pretixpresale/fragment_event_list_status.html" with event=subev %}
</small>
</p>
<p class="col-md-2 col-xs-6 text-right flip">
</dd>
<dd class="col-md-2 col-xs-6 text-right flip">
<a class="btn btn-primary btn-block" href="{% if request.GET.voucher %}{% eventurl event "presale:event.redeem" cart_namespace=cart_namespace %}?voucher={{ request.GET.voucher|urlencode }}&amp;subevent={{ subev.pk }}{% else %}{% eventurl event "presale:event.index" subevent=subev.id cart_namespace=cart_namespace %}{% endif %}">
{% if subev.presale_is_running and subev.best_availability_state == 100 %}
{% icon "ticket" %} {% trans "Tickets" %}
@@ -34,7 +33,7 @@
{% icon "info" %} {% trans "More info" %}
{% endif %}
</a>
</p>
</article>
</dd>
</div>
{% endfor %}
</div>
</dl>

View File

@@ -7,8 +7,6 @@
{% load thumb %}
{% load eventsignal %}
{% load rich_text %}
{% load icon %}
{% load dialog %}
{% block title %}
{% if "year" in request.GET %}
@@ -73,15 +71,14 @@
{% endif %}
{% if subevent_list.list_type != "list" or subevent_list.visible_events %}
{% if subevent_list_foldable %}
<details class="panel panel-{% if show_cart %}primary{% else %}default{% endif %}">
<summary class="panel-heading">
{% else %}
<div class="panel panel-default">
<div class="panel-heading">
{% endif %}
<h3 class="panel-title"><strong>
{% if subevent_list_foldable %}
<details class="panel panel-{% if show_cart %}primary{% else %}default{% endif %}">
<summary class="panel-heading">
{% else %}
<div class="panel panel-default">
<div class="panel-heading">
{% endif %}
<h3 class="panel-title"><b>
{% if subevent_list_foldable %}
{% if show_cart %}
{% trans "Add tickets for a different date" %}
@@ -90,37 +87,36 @@
{% endif %}
{% else %}
{% trans "Choose date to book a ticket" %}
{% endif %}</strong>
</h3>
{% if subevent_list_foldable %}
</summary>
<div>
{% else %}
</div>
{% endif %}
{% endif %}</b>
</h3>
{% if subevent_list_foldable %}
</summary>
<div>
{% else %}
</div>
{% endif %}
{% if filter_form.fields %}
<div class="panel-subhead">
{% include "pretixpresale/fragment_event_list_filter.html" with request=request %}
</div>
{% endif %}
<div class="panel-body">
{% cache_large 15 subevent_list subevent_list_cache_key %}
{% if subevent_list.list_type == "calendar" %}
{% include "pretixpresale/event/fragment_subevent_calendar.html" %}
{% elif subevent_list.list_type == "week" %}
{% include "pretixpresale/event/fragment_subevent_calendar_week.html" %}
{% else %}
{% include "pretixpresale/event/fragment_subevent_list.html" %}
{% endif %}
{% endcache_large %}
<div class="panel-body">
{% cache_large 15 subevent_list subevent_list_cache_key %}
{% if subevent_list.list_type == "calendar" %}
{% include "pretixpresale/event/fragment_subevent_calendar.html" %}
{% elif subevent_list.list_type == "week" %}
{% include "pretixpresale/event/fragment_subevent_calendar_week.html" %}
{% else %}
{% include "pretixpresale/event/fragment_subevent_list.html" %}
{% endif %}
{% endcache_large %}
</div>
{% if subevent_list_foldable %}
</div>
{% if subevent_list_foldable %}
</div>
</details>
{% else %}
</div>
{% endif %}
{% endif %}
</details>
{% else %}
</div>
{% endif %}
{% if subevent %}
<h2 class="subevent-head">{{ subevent.name }}</h2>
@@ -242,13 +238,6 @@
</div>
{% endif %}
</form>
{% if ev.presale_is_running and display_add_to_cart %}
{% trans "You didnt select any ticket." as label_nothing_to_add %}
{% trans "Please tick a checkbox or enter a quantity for one of the ticket types to add to the cart." as description_nothing_to_add %}
{% dialog "dialog-nothing-to-add" label_nothing_to_add description_nothing_to_add icon="exclamation-circle" %}
<p class="modal-card-confirm"><button class="btn btn-primary">{% trans "OK" %}</button></p>
{% enddialog %}
{% endif %}
{% endif %}
{% endif %}
</main>
@@ -261,7 +250,7 @@
{% if not cart_namespace %}
{% eventsignal event "pretix.presale.signals.front_page_bottom" subevent=subevent request=request %}
<aside class="front-page" aria-labelledby="if-you-already-ordered-a-ticket">
<h3 id="if-you-already-ordered-a-ticket">{% trans "If you have already ordered a ticket" %}</h3>
<h3 id="if-you-already-ordered-a-ticket">{% trans "If you already ordered a ticket" %}</h3>
<div class="row">
<div class="col-md-8 col-xs-12">
<p>

View File

@@ -10,13 +10,15 @@
<h2>
{% trans "Resend order links" %}
</h2>
<p>
<div class="row">
<div class="panel-body">
{% blocktrans trimmed %}
If you lost the link to your order or orders, please enter the email address you
used for your order. We will send you an email with links to all orders you placed
using this email address.
{% endblocktrans %}
</p>
</div>
</div>
<div class="row">
<form class="form" method="post">
{% csrf_token %}

View File

@@ -233,14 +233,14 @@
{% else %}
<fieldset class="input-item-count-group">
<legend class="sr-only">{% blocktrans with item=item.name %}Add {{ item }}, {{ var }} to cart{% endblocktrans %}</legend>
<button type="button" data-step="-1" data-controls="variation_{{ item.id }}_{{ var.id }}" class="btn btn-default input-item-count-dec" aria-label="- {{ item }}, {{ var }}: {% trans "Decrease quantity" %}">-</button>
<button type="button" data-step="-1" data-controls="variation_{{ item.id }}_{{ var.id }}" class="btn btn-default input-item-count-dec" aria-label="{% trans "Decrease quantity" %}">-</button>
<input type="number" class="form-control input-item-count" placeholder="0" min="0"
max="{{ var.order_max }}"
id="variation_{{ item.id }}_{{ var.id }}"
name="variation_{{ item.id }}_{{ var.id }}"
{% if options == 1 %}value="1"{% endif %}
aria-label="{% trans "Quantity" %}">
<button type="button" data-step="1" data-controls="variation_{{ item.id }}_{{ var.id }}" class="btn btn-default input-item-count-inc" aria-label="+ {{ item }}, {{ var }}: {% trans "Increase quantity" %}">+</button>
<button type="button" data-step="1" data-controls="variation_{{ item.id }}_{{ var.id }}" class="btn btn-default input-item-count-inc" aria-label="{% trans "Increase quantity" %}">+</button>
</fieldset>
{% endif %}
{% else %}
@@ -388,7 +388,7 @@
{% else %}
<fieldset class="input-item-count-group">
<legend class="sr-only">{% blocktrans with item=item.name %}Add {{ item }} to cart{% endblocktrans %}</legend>
<button type="button" data-step="-1" data-controls="item_{{ item.id }}" class="btn btn-default input-item-count-dec" aria-label="- {{ item }}: {% trans "Decrease quantity" %}">-</button>
<button type="button" data-step="-1" data-controls="item_{{ item.id }}" class="btn btn-default input-item-count-dec" aria-label="{% trans "Decrease quantity" %}">-</button>
<input type="number" class="form-control input-item-count"
placeholder="0" min="0"
max="{{ item.order_max }}"
@@ -396,7 +396,7 @@
name="item_{{ item.id }}"
{% if options == 1 %}value="1"{% endif %}
aria-label="{% trans "Quantity" %}">
<button type="button" data-step="1" data-controls="item_{{ item.id }}" class="btn btn-default input-item-count-inc" aria-label="+ {{ item }}: {% trans "Increase quantity" %}">+</button>
<button type="button" data-step="1" data-controls="item_{{ item.id }}" class="btn btn-default input-item-count-inc" aria-label="{% trans "Increase quantity" %}">+</button>
</fieldset>
{% endif %}
{% else %}

View File

@@ -7,7 +7,7 @@
<thead>
<tr>
{% for d in weeks|iter_weekdays %}
<th><span aria-hidden="true" class="text-muted">{{ d|date_fast:"D" }}</span><span class="sr-only">{{ d|date_fast:"l" }}</span></th>
<th><span aria-hidden="true">{{ d|date_fast:"D" }}</span><span class="sr-only">{{ d|date_fast:"l" }}</span></th>
{% endfor %}
</tr>
</thead>

Some files were not shown because too many files have changed in this diff Show More