Compare commits

..

1 Commits

Author SHA1 Message Date
luelista
5a28efd274 Only show "valid VAT ID" checkmark if VAT ID was entered (Z#23235033) 2026-05-20 19:28:12 +02:00
14 changed files with 374 additions and 459 deletions

View File

@@ -1 +1 @@
24
17

View File

@@ -1398,7 +1398,7 @@ class BaseInvoiceAddressForm(forms.ModelForm):
elif self.validate_vat_id and vat_id_applicable:
try:
normalized_id = validate_vat_id(data.get('vat_id'), str(data.get('country')))
self.instance.vat_id_validated = bool(normalized_id)
self.instance.vat_id_validated = True
self.instance.vat_id = data['vat_id'] = normalized_id
except VATIDFinalError as e:
if self.all_optional:

View File

@@ -55,12 +55,10 @@
{% trans "You receive these emails based on your notification settings." %}<br>
<a href="{{ settings_url }}">
{% trans "Click here to view and change your notification settings" %}
</a><br>
<a href="{{ disable_url }}">
{% trans "Click here disable all notifications immediately." %}
</a>
{% if disable_url %}<br>
<a href="{{ disable_url }}">
{% trans "Click here disable all notifications immediately." %}
</a>
{% endif %}
</div>
<!--[if gte mso 9]>
</td></tr></table>

View File

@@ -14,6 +14,5 @@
{% trans "You receive these emails based on your notification settings." %}
{% trans "Click here to view and change your notification settings:" %}
{{ settings_url }}
{% if disable_url %}{% trans "Click here disable all notifications immediately:" %}
{% trans "Click here disable all notifications immediately:" %}
{{ disable_url }}
{% endif %}

View File

@@ -24,12 +24,10 @@ import calendar
from dateutil.rrule import DAILY, MONTHLY, WEEKLY, YEARLY, rrule, rrulestr
from django.conf import settings
from django.core.exceptions import ValidationError
from django.core.validators import RegexValidator, validate_email
from django.core.validators import validate_email
from django.utils.deconstruct import deconstructible
from django.utils.translation import gettext_lazy as _
from pretix.base.templatetags.rich_text import URL_RE
# This file is based on an earlier version of pretix which was released under the Apache License 2.0. The full text of
# the Apache License 2.0 can be obtained at <http://www.apache.org/licenses/LICENSE-2.0>.
#
@@ -115,33 +113,6 @@ def multimail_validate(val):
return s
class RegexValidatorInverseMatchAndParam(RegexValidator):
inverse_match = True
def __call__(self, value):
regex_matches = self.regex.search(str(value))
if regex_matches:
raise ValidationError(
self.message,
code=self.code,
params={
"value": value,
"match": regex_matches.group(0) if regex_matches else "",
}
)
class NoUrlValidator(RegexValidatorInverseMatchAndParam):
regex = URL_RE
def __init__(self, **kwargs):
if not kwargs.get("message"):
kwargs["message"] = _('You entered an URL, which is not allowed. Please remove %(match)s from your input.')
if not kwargs.get("code"):
kwargs["code"] = "contains_url"
super().__init__(**kwargs)
class RRuleValidator:
def __init__(self, enforce_simple=False):
self.enforce_simple = enforce_simple

View File

@@ -134,39 +134,6 @@
</div>
{% endif %}
{% if invoice_qualified and order.invoice_dirty %}
<div class="alert alert-warning">
<p>
{% blocktrans trimmed %}
This order was changed after the last invoice was generated. A new invoice was not generated yet, because invoices are configured to be generated on payment or if required by the payment method.
A new invoice will be generated once the customer pays the invoice or selects a payment method that requires an invoice.
{% endblocktrans %}
</p>
{% if "event.orders:write" in request.eventpermset %}
<p>
{% if uncancelled_invoice %}
<form action="{% url "control:event.order.reissueinvoice" event=request.event.slug organizer=request.event.organizer.slug code=order.code id=uncancelled_invoice.pk %}"
method="post">
{% csrf_token %}
<button class="btn btn-default" type="submit">
{% blocktrans trimmed %}
Reissue invoice
{% endblocktrans %}
</button>
</form>
{% elif can_generate_invoice %}
<form method="post" action="{% url "control:event.order.geninvoice" event=request.event.slug organizer=request.event.organizer.slug code=order.code %}">
{% csrf_token %}
<button class="btn btn-default">
{% trans "Generate invoice" %}
</button>
</form>
{% endif %}
</p>
{% endif %}
</div>
{% endif %}
<div class="row">
<div class="col-xs-12 col-lg-10">
{% for cr in order.cancellation_requests.all %}
@@ -586,7 +553,7 @@
<span class="fa fa-print"></span>
{{ pl.datetime|date:"SHORT_DATETIME_FORMAT" }}
{{ pl.get_type_display }}
({{ pl.source }}{% if pl.device %}, {{ pl.device.name }} - #{{ pl.device.device_id }}{% endif %})
({{ pl.source }}{% if pl.device %}, #{{ pl.device.device_id }}{% endif %})
{% if not pl.successful %}<span class="fa fa-warning fa-fw"></span>{% endif %}
<br>
{% endfor %}
@@ -1078,7 +1045,7 @@
<dt>{% trans "VAT ID" %}</dt>
<dd>
{{ order.invoice_address.vat_id }}
{% if order.invoice_address.vat_id_validated %}
{% if order.invoice_address.vat_id and order.invoice_address.vat_id_validated %}
<span class="fa fa-check" data-toggle="tooltip" title="{% blocktrans trimmed %}Valid EU VAT ID{% endblocktrans %}"></span>
{% elif order.invoice_address.vat_id %}
<form class="form-inline helper-display-inline" method="post"

View File

@@ -554,9 +554,6 @@ class OrderDetail(OrderView):
ctx['download_buttons'] = self.download_buttons
ctx['payment_refund_sum'] = self.order.payment_refund_sum
ctx['pending_sum'] = self.order.pending_sum
ctx['uncancelled_invoice'] = self.order.invoices.exclude(
Exists(self.order.invoices.filter(refers=OuterRef('pk'), is_cancellation=True))
).exclude(is_cancellation=True).first()
return ctx

View File

@@ -531,7 +531,6 @@ class SubEventUpdate(EventPermissionRequiredMixin, SubEventEditorMixin, UpdateVi
@transaction.atomic
def form_valid(self, form):
self.object = form.save()
self.save_formset(self.object)
self.save_cl_formset(self.object)
self.save_meta()
@@ -570,7 +569,7 @@ class SubEventUpdate(EventPermissionRequiredMixin, SubEventEditorMixin, UpdateVi
f.subevent = self.object
f.save()
tickets.invalidate_cache.apply_async(kwargs={'event': self.request.event.pk})
return HttpResponseRedirect(self.get_success_url())
return super().form_valid(form)
def get_success_url(self) -> str:
return reverse('control:event.subevents', kwargs={

View File

@@ -8,17 +8,18 @@ msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-04-28 09:03+0000\n"
"PO-Revision-Date: 2026-05-19 04:16+0000\n"
"Last-Translator: Khalid Shaheen <khalid.shaheen@gmail.com>\n"
"Language-Team: Arabic <https://translate.pretix.eu/projects/pretix/pretix/"
"ar/>\n"
"PO-Revision-Date: 2025-04-08 18:00+0000\n"
"Last-Translator: Menaouer Chaabi "
"<98581961+DerJimno@users.noreply.github.com>\n"
"Language-Team: Arabic <https://translate.pretix.eu/projects/pretix/pretix/ar/"
">\n"
"Language: ar\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 "
"&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n"
"X-Generator: Weblate 2026.5\n"
"X-Generator: Weblate 5.10.4\n"
#: pretix/_base_settings.py:87
msgid "English"
@@ -38,7 +39,7 @@ msgstr "العربية"
#: pretix/_base_settings.py:91
msgid "Basque"
msgstr "الباسكية"
msgstr ""
#: pretix/_base_settings.py:92
msgid "Catalan"
@@ -58,7 +59,7 @@ msgstr "التشيكية"
#: pretix/_base_settings.py:96
msgid "Croatian"
msgstr "الكرواتية"
msgstr ""
#: pretix/_base_settings.py:97
msgid "Danish"
@@ -90,7 +91,7 @@ msgstr "اليونانية"
#: pretix/_base_settings.py:104
msgid "Hebrew"
msgstr "العبرية"
msgstr ""
#: pretix/_base_settings.py:105
msgid "Indonesian"
@@ -102,7 +103,7 @@ msgstr "الإيطالية"
#: pretix/_base_settings.py:107
msgid "Japanese"
msgstr "اليابانية"
msgstr ""
#: pretix/_base_settings.py:108
msgid "Latvian"
@@ -146,7 +147,7 @@ msgstr "الأسبانية"
#: pretix/_base_settings.py:118
msgid "Spanish (Latin America)"
msgstr "الإسبانية (أميركا اللاتينية)"
msgstr ""
#: pretix/_base_settings.py:119
msgid "Turkish"
@@ -292,28 +293,41 @@ msgid "The bundled item must not have bundles on its own."
msgstr "يجب ألا يحتوي العنصر المجمع على حزم بمفرده."
#: pretix/api/serializers/item.py:235
#, fuzzy
#| msgid "The payment is too late to be accepted."
msgid "The program start must not be empty."
msgstr "يجب ألا يكون موعد بداية البرنامج فارغ."
msgstr "فات الأوان لقبول الدفع."
#: pretix/api/serializers/item.py:239
#, fuzzy
#| msgid "The payment is too late to be accepted."
msgid "The program end must not be empty."
msgstr "يجب ألا يكون موعد نهاية البرنامج فارغ."
msgstr "فات الأوان لقبول الدفع."
#: pretix/api/serializers/item.py:242 pretix/base/models/items.py:2322
#, fuzzy
#| msgid "The maximum count needs to be greater than the minimum count."
msgid "The program end must not be before the program start."
msgstr "يجب ألا يكون موعد نهاية البرنامج سابق لموعد بدايته."
msgstr "يجب أن يكون الحد الأقصى للعدد أكبر من الحد الأدنى للعد."
#: pretix/api/serializers/item.py:247 pretix/base/models/items.py:2316
#, fuzzy
#| msgid "You can not select a subevent if your event is not an event series."
msgid "You cannot use program times on an event series."
msgstr "لا يمكنك استخدام أوقات البرنامج لسلسلة من الفعاليات."
msgstr ""
"لا يمكنك تحديد فعالية فرعية إذا لم تكن الفعالية الخاصة بك سلسلة فعاليات."
#: pretix/api/serializers/item.py:337
#, fuzzy
#| msgid ""
#| "Updating add-ons, bundles, or variations via PATCH/PUT is not supported. "
#| "Please use the dedicated nested endpoint."
msgid ""
"Updating add-ons, bundles, program times or variations via PATCH/PUT is not "
"supported. Please use the dedicated nested endpoint."
msgstr ""
"لا يوجد دعم لتحديث الإضافات، أو الحزم، أو مواعيد البرامج، أو المتغيرات عبر "
"طريقتي PATCH/PUT. يُرجى استخدام نقطة النهاية المتداخلة المخصصة لذلك."
"تحديث الإضافات، أو الحزم، أو المتغيرات عن طريق PATCH/PUT غير مدعوم. الرجاء "
"استخدام نقطة نهاية المتداخلة المخصصة."
#: pretix/api/serializers/item.py:345
msgid "Only admission products can currently be personalized."
@@ -397,8 +411,10 @@ msgstr "توجد مسبقا بطاقة هدايا بنفس السر في حسا
#: pretix/api/serializers/organizer.py:495
#: pretix/control/views/organizer.py:1039
#, fuzzy
#| msgid "Account information"
msgid "Account invitation"
msgstr "دعوة إلى فتح حساب"
msgstr "معلومات الحساب"
#: pretix/api/serializers/organizer.py:516
#: pretix/control/views/organizer.py:1138
@@ -483,35 +499,47 @@ msgstr "تم تغيير عنوان اتصال الطلب"
#: pretix/api/webhooks.py:331 pretix/base/notifications.py:281
#: pretix/control/templates/pretixcontrol/event/mail.html:102
msgid "Order changed"
msgstr "تم تغيير الطلب"
msgstr "تم تغيير الطلب."
#: pretix/api/webhooks.py:335
#, fuzzy
#| msgid "Enable payment method"
msgid "Refund of payment created"
msgstr "تم إنشاء طلب استرداد الدفع"
msgstr "تمكين طريقة الدفع"
#: pretix/api/webhooks.py:339 pretix/base/notifications.py:293
msgid "External refund of payment"
msgstr "استرداد خارجي للمدفوعات"
msgstr "استرداد الدفع الخارجي"
#: pretix/api/webhooks.py:343
#, fuzzy
#| msgid "Text (requested by user)"
msgid "Refund of payment requested by customer"
msgstr "استرداد المبلغ بناءً على طلب العميل"
msgstr "النص (عن طريق المستخدم المطلوب)"
#: pretix/api/webhooks.py:347
#, fuzzy
#| msgid "Payment completed."
msgid "Refund of payment completed"
msgstr "تم إتمام استرداد الدفع"
msgstr "تم السداد."
#: pretix/api/webhooks.py:351
#, fuzzy
#| msgid "Refund {local_id} has been canceled."
msgid "Refund of payment canceled"
msgstr "إلغاء استرداد الدفع"
msgstr "تم إلغاء استرداد {local_id}."
#: pretix/api/webhooks.py:355
#, fuzzy
#| msgid "Refund order"
msgid "Refund of payment failed"
msgstr "فشل استرداد الدفع"
msgstr "أجل استرداد"
#: pretix/api/webhooks.py:359
#, fuzzy
#| msgid "Payment confirmation date"
msgid "Payment confirmed"
msgstr "تم تأكيد الدفع"
msgstr "تاريخ الدفع تأكيدا"
#: pretix/api/webhooks.py:363
msgid "Order approved"
@@ -522,12 +550,14 @@ msgid "Order denied"
msgstr "تم رفض الطلب"
#: pretix/api/webhooks.py:371
#, fuzzy
#| msgid "Order denied"
msgid "Order deleted"
msgstr "تم حذف الطلب"
msgstr "تم رفض الطلب"
#: pretix/api/webhooks.py:375
msgid "Ticket checked in"
msgstr "تم تسجيل دخول التذكرة"
msgstr "تم تسجيل التذكرة"
#: pretix/api/webhooks.py:379
msgid "Ticket check-in reverted"
@@ -542,8 +572,10 @@ msgid "Event details changed"
msgstr "تم تغيير تفاصيل الفعالية"
#: pretix/api/webhooks.py:391
#, fuzzy
#| msgid "Event date"
msgid "Event deleted"
msgstr "تم حذف الفعالية"
msgstr "تاريخ الفعالية"
#: pretix/api/webhooks.py:395
msgctxt "subevent"
@@ -561,44 +593,58 @@ msgid "Event series date deleted"
msgstr "تم حذف تاريخ سلسلة الفعاليات"
#: pretix/api/webhooks.py:407
#, fuzzy
#| msgid "Product name"
msgid "Product changed"
msgstr "تم تغيير المنتج"
msgstr "اسم المنتج"
#: pretix/api/webhooks.py:408
msgid ""
"This includes product added or deleted and changes to nested objects like "
"variations or bundles."
msgstr ""
"يشمل ذلك المنتجات التي تمت إضافتها أو حذفها، والتغييرات التي طرأت على "
"الكائنات المتداخلة، مثل المتغيرات أو الحزم."
#: pretix/api/webhooks.py:413
#, fuzzy
#| msgid "Shop not live"
msgid "Shop taken live"
msgstr "تم إطلاق المتجر"
msgstr "تسوق لا يعيش"
#: pretix/api/webhooks.py:417
#, fuzzy
#| msgid "The shop has been taken offline."
msgid "Shop taken offline"
msgstr "تم إيقاف المتجر مؤقتاً"
msgstr "وقد اتخذت المحل حاليا."
#: pretix/api/webhooks.py:421
#, fuzzy
#| msgid "The order has been reactivated."
msgid "Test-Mode of shop has been activated"
msgstr "تم تفعيل وضع الاختبار للمتجر"
msgstr "تم إعادة تنشيط الطلب."
#: pretix/api/webhooks.py:425
#, fuzzy
#| msgid "The order has been reactivated."
msgid "Test-Mode of shop has been deactivated"
msgstr "تم إلغاء تفعيل وضع الاختبار للمتجر"
msgstr "تم إعادة تنشيط الطلب."
#: pretix/api/webhooks.py:429
#, fuzzy
#| msgid "Waiting list entry"
msgid "Waiting list entry added"
msgstr "تم إضافة قيد إلى قائمة الانتظار"
msgstr "دخول قائمة الانتظار"
#: pretix/api/webhooks.py:433
#, fuzzy
#| msgid "Waiting list entry"
msgid "Waiting list entry changed"
msgstr "تم تغيير قيد قائمة الانتظار"
msgstr "دخول قائمة الانتظار"
#: pretix/api/webhooks.py:437
#, fuzzy
#| msgid "Waiting list entry"
msgid "Waiting list entry deleted"
msgstr "تم حذف قيد قائمة الانتظار"
msgstr "دخول قائمة الانتظار"
#: pretix/api/webhooks.py:441
#, fuzzy

View File

@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: 1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-04-28 09:03+0000\n"
"PO-Revision-Date: 2026-05-19 09:36+0000\n"
"PO-Revision-Date: 2026-05-12 12:55+0000\n"
"Last-Translator: Nikolai <nikolai@lengefeldt.de>\n"
"Language-Team: Danish <https://translate.pretix.eu/projects/pretix/pretix/"
"da/>\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 2026.5\n"
"X-Generator: Weblate 5.17.1\n"
#: pretix/_base_settings.py:87
msgid "English"
@@ -16924,12 +16924,13 @@ msgstr ""
"tilgængeligheden."
#: pretix/control/forms/subevents.py:360
#, fuzzy
msgid "Available_until"
msgstr "Tilgængelig_indtil"
msgstr "Tilgængelig indtil"
#: pretix/control/forms/subevents.py:480
msgid "Exclude these dates instead of adding them."
msgstr "Udelad disse datoer i stedet for at tilføje dem."
msgstr ""
#: pretix/control/forms/users.py:123 pretix/control/views/user.py:236
msgid "Your changes could not be saved. See below for details."
@@ -16937,7 +16938,7 @@ msgstr "Dine ændringer kunne ikke gemmes. Se detaljer nedenfor."
#: pretix/control/forms/vouchers.py:159
msgid "Specific seat ID"
msgstr "Specifikt plads-ID"
msgstr ""
#: pretix/control/forms/vouchers.py:200 pretix/presale/forms/waitinglist.py:103
msgid "Invalid product selected."
@@ -16948,8 +16949,6 @@ msgid ""
"The voucher only matches hidden products but you have not selected that it "
"should show them."
msgstr ""
"Kuponen matcher kun skjulte produkter, men du har ikke valgt, at de skal "
"vises."
#: pretix/control/forms/vouchers.py:271
msgid "Codes"
@@ -16964,16 +16963,17 @@ msgstr ""
"gemmer den i en fil."
#: pretix/control/forms/vouchers.py:278
#, fuzzy
msgid "Send vouchers via email"
msgstr "Send gavekort via e-mail"
msgstr "Send rabatkoder"
#: pretix/control/forms/vouchers.py:285
#, python-brace-format
#, fuzzy, python-brace-format
msgid "Your voucher for {event}"
msgstr "Din billet til {event}"
msgstr "Dine bestillinger af {}"
#: pretix/control/forms/vouchers.py:291
#, python-brace-format
#, fuzzy, python-brace-format
msgid ""
"Hello,\n"
"\n"
@@ -16988,32 +16988,29 @@ msgid ""
"Best regards, \n"
"Your {event} team"
msgstr ""
"Hej,\n"
"Hej\n"
"\n"
"med denne e-mail sender vi dig en eller flere gavekort til arrangementet "
"{event}:\n"
"\n"
"{voucher_list}\n"
"\n"
"Du kan indløse dem her i vores billetbutik:\n"
"Din bestilling {code} til {event} er blevet annulleret.\n"
"\n"
"Du kan se detaljerne for din bestilling på\n"
"{url}\n"
"\n"
"Med venlig hilsen, \n"
"\n"
"Dit {event}-team"
"Venlig hilsen \n"
"Arrangøren af {event}"
#: pretix/control/forms/vouchers.py:297
#: pretix/control/templates/pretixcontrol/organizers/outgoing_mails.html:62
#: pretix/plugins/sendmail/templates/pretixplugins/sendmail/rule_create.html:28
#: pretix/plugins/sendmail/templates/pretixplugins/sendmail/rule_update.html:42
#: pretix/plugins/sendmail/templates/pretixplugins/sendmail/send_form.html:25
#, fuzzy
msgid "Recipients"
msgstr "Modtagere"
msgstr "Modtager"
#: pretix/control/forms/vouchers.py:301
#, fuzzy
msgid "or"
msgstr "eller"
msgstr "Port"
#: pretix/control/forms/vouchers.py:305
msgid ""
@@ -17021,9 +17018,6 @@ msgid ""
"line, or the contents of a CSV file with a title row and one or more of the "
"columns \"email\", \"number\", \"name\", or \"tag\"."
msgstr ""
"Du kan enten indtaste en liste med e-mailadresser, hvor der er én e-"
"mailadresse pr. linje, eller indholdet af en CSV-fil med en overskriftsrække "
"og en eller flere af kolonnerne »e-mail«, »nummer«, »navn« eller »tag«."
#: pretix/control/forms/vouchers.py:339
msgid "Maximum usages per voucher"
@@ -17035,48 +17029,46 @@ msgstr "Antal gange HVER af disse vouchere kan anvendes."
#: pretix/control/forms/vouchers.py:356
msgid "Specific seat IDs"
msgstr "Specifikke plads-ID'er"
msgstr ""
#: pretix/control/forms/vouchers.py:373
msgid "CSV input needs to contain a header row in the first line."
msgstr "CSV-filen skal indeholde en overskriftsrække i den første linje."
msgstr ""
#: pretix/control/forms/vouchers.py:378
#, python-brace-format
msgid "CSV parsing failed: {error}."
msgstr "CSV-parsing mislykkedes: {error}."
msgstr ""
#: pretix/control/forms/vouchers.py:380
msgid ""
"CSV input was not recognized to have multiple columns, maybe you have some "
"invalid quoted field in your input."
msgstr ""
"CSV-filen blev ikke genkendt som havende flere kolonner. Måske indeholder "
"din indtastning et felt med ugyldige anførselstegn."
#: pretix/control/forms/vouchers.py:382
#, python-brace-format
msgid "CSV input needs to contain a field with the header \"{header}\"."
msgstr "CSV-filen skal indeholde et felt med overskriften \"{header}\"."
msgstr ""
#: pretix/control/forms/vouchers.py:385
#, python-brace-format
msgid "CSV input contains an unknown field with the header \"{header}\"."
msgstr "CSV-filen indeholder et ukendt felt med overskriften \"{header}\"."
msgstr ""
#: pretix/control/forms/vouchers.py:390 pretix/control/forms/vouchers.py:405
#, python-brace-format
#, fuzzy, python-brace-format
msgid "{value} is not a valid email address."
msgstr "{value} er ikke en gyldig e-mailadresse."
msgstr "Indtast venligt en gyldig e-mailadresse."
#: pretix/control/forms/vouchers.py:399
#, python-brace-format
#, fuzzy, python-brace-format
msgid "Invalid value in row {number}."
msgstr "Ugyldig værdi i række {number}."
msgstr "Ugyldig datoindtastning."
#: pretix/control/forms/vouchers.py:418
msgid "A voucher with one of these codes already exists."
msgstr "Der findes allerede et kupon med en af disse koder."
msgstr ""
#: pretix/control/forms/vouchers.py:425
#, python-brace-format
@@ -17084,49 +17076,53 @@ msgid ""
"The voucher code {code} is too short. Make sure all voucher codes are at "
"least {min_length} characters long."
msgstr ""
"Kuponkoden {code} er for kort. Sørg for, at alle kuponkoder er mindst "
"{min_length} tegn lange."
#: pretix/control/forms/vouchers.py:432
#, python-brace-format
#, fuzzy, python-brace-format
msgid "The voucher code {code} appears in your list twice."
msgstr "Kuponkoden {code} vises to gange på din liste."
msgstr "Den angivne rabatkode eksisterer ikke."
#: pretix/control/forms/vouchers.py:436
msgid ""
"If vouchers should be sent by email, subject, message and recipients need to "
"be specified."
msgstr ""
"Hvis kuponer skal sendes via e-mail, skal emnefeltet, meddelelsen og "
"modtagerne angives."
#: pretix/control/forms/vouchers.py:443
#, python-brace-format
msgid ""
"You generated {codes} vouchers, but entered recipients for {recp} vouchers."
msgstr ""
"Du har genereret {codes} kuponer, men har angivet modtagere til {recp} "
"kuponer."
#: pretix/control/forms/vouchers.py:448
#, fuzzy
msgid "You need to specify as many seats as voucher codes."
msgstr "Du skal angive lige så mange pladser, som der er rabatkoder."
msgstr "Du skal angive enten en kvote eller et produkt."
#: pretix/control/forms/waitinglist.py:39
#, fuzzy
#| msgid "Please select a valid seat."
msgid "Select a valid choice."
msgstr "Vælg en gyldig valgmulighed."
msgstr "Vælg venligst en gyldig plads."
#: pretix/control/forms/waitinglist.py:107
#, fuzzy
#| msgid "Active products"
msgid "Only includes active products."
msgstr "Indeholder kun aktive produkter."
msgstr "Aktive produkter"
#: pretix/control/forms/waitinglist.py:115
#, fuzzy
#| msgid "A voucher with this code already exists."
msgid "A voucher for this waiting list entry was already sent out."
msgstr "Der er allerede blevet sendt en kupon for denne plads på ventelisten."
msgstr "En rabatkode med denne kode findes allerede."
#: pretix/control/forms/waitinglist.py:125
#, fuzzy
#| msgctxt "subevent"
#| msgid "The selected event date is not active."
msgid "The selected product is not active."
msgstr "Det valgte produkt er ikke aktivt."
msgstr "Den valgte arrangementsdato er ikke aktiv."
#: pretix/control/logdisplay.py:73 pretix/control/logdisplay.py:83
msgid "The order has been changed:"
@@ -17138,18 +17134,16 @@ msgid ""
"Position #{posid}: {old_item} ({old_price}) changed to {new_item} "
"({new_price})."
msgstr ""
"Post #{posid}: {old_item} ({old_price}) er ændret til {new_item} ("
"{new_price})."
#: pretix/control/logdisplay.py:111
#, python-brace-format
msgid "Position #{posid}: Used membership changed."
msgstr "Post #{posid}: Det anvendte medlemskab er ændret."
msgstr ""
#: pretix/control/logdisplay.py:117
#, python-brace-format
msgid "Position #{posid}: Seat \"{old_seat}\" changed to \"{new_seat}\"."
msgstr "Post #{posid}: Plads \"{old_seat}\" er ændret til \"{new_seat}\"."
msgstr ""
#: pretix/control/logdisplay.py:127
#, python-brace-format
@@ -17157,48 +17151,50 @@ msgid ""
"Position #{posid}: Event date \"{old_event}\" ({old_price}) changed to "
"\"{new_event}\" ({new_price})."
msgstr ""
"Post #{posid}: Begivenhedsdatoen \"{old_event}\" ({old_price}) er ændret til "
"\"{new_event}\" ({new_price})."
#: pretix/control/logdisplay.py:141
#, python-brace-format
msgid "Price of position #{posid} changed from {old_price} to {new_price}."
msgstr "Prisen på post #{posid} er ændret fra {old_price} til {new_price}."
msgstr ""
#: pretix/control/logdisplay.py:154
#, python-brace-format
#, fuzzy, python-brace-format
msgid "Tax rule of position #{posid} changed from {old_rule} to {new_rule}."
msgstr "Skattereglen for post #{posid} er ændret fra {old_rule} til {new_rule}."
msgstr ""
"E-mailadressen er blevet ændret fra \"{old_email}\" til \"{new_email}\"."
#: pretix/control/logdisplay.py:160
#, python-brace-format
#, fuzzy, python-brace-format
msgid "Tax rule of fee #{fee} changed from {old_rule} to {new_rule}."
msgstr ""
"Skattebestemmelsen for gebyret #{fee} er ændret fra {old_rule} til {new_rule}"
"."
"E-mailadressen er blevet ændret fra \"{old_email}\" til \"{new_email}\"."
#: pretix/control/logdisplay.py:170
#, fuzzy
msgid "A fee has been added"
msgstr "Der er blevet tilføjet et gebyr"
msgstr "Kvoten er blevet tilføjet."
#: pretix/control/logdisplay.py:176
#, fuzzy
#| msgid "The new vouchers have been created."
msgid "Taxes and rounding have been recomputed"
msgstr "Skatter og afrundinger er blevet genberegnet"
msgstr "De nye vouchere er blevet oprettet."
#: pretix/control/logdisplay.py:184
#, python-brace-format
#, fuzzy, python-brace-format
msgid "A fee was changed from {old_price} to {new_price}."
msgstr "Et gebyr er ændret fra {old_price} til {new_price}."
msgstr ""
"E-mailadressen er blevet ændret fra \"{old_email}\" til \"{new_email}\"."
#: pretix/control/logdisplay.py:195
#, python-brace-format
msgid "A fee of {old_price} was removed."
msgstr "Et gebyr på {old_price} er blevet fjernet."
msgstr ""
#: pretix/control/logdisplay.py:208
#, python-brace-format
msgid "Position #{posid} ({old_item}, {old_price}) canceled."
msgstr "Post #{posid} ({old_item}, {old_price}) er annulleret."
msgstr ""
#: pretix/control/logdisplay.py:225
#, python-brace-format
@@ -17206,47 +17202,44 @@ msgid ""
"Position #{posid} created: {item} ({price}) as an add-on to position "
"#{addon_to}."
msgstr ""
"Post #{posid} oprettet: {item} ({price}) som et tilvalg til post #{addon_to}."
#: pretix/control/logdisplay.py:231
#, python-brace-format
msgid "Position #{posid} created: {item} ({price})."
msgstr "Post {posid} oprettet: {item} ({price})."
msgstr ""
#: pretix/control/logdisplay.py:241
#, python-brace-format
msgid "A new secret has been generated for position #{posid}."
msgstr "Der er genereret en ny sikkerhedsnøgle til post #{posid}."
msgstr ""
#: pretix/control/logdisplay.py:249
#, python-brace-format
#, fuzzy, python-brace-format
msgid ""
"The validity start date for position #{posid} has been changed to {value}."
msgstr "Gyldighedsperioden for post #{posid} er blevet ændret til {value}."
msgstr "Bestillingen er blevet annulleret."
#: pretix/control/logdisplay.py:261
#, python-brace-format
#, fuzzy, python-brace-format
msgid ""
"The validity end date for position #{posid} has been changed to {value}."
msgstr ""
"Slutdatoen for gyldigheden for post #{posid} er blevet ændret til {value}."
msgstr "Bestillingen er blevet annulleret."
#: pretix/control/logdisplay.py:270
#, python-brace-format
#, fuzzy, python-brace-format
msgid "A block has been added for position #{posid}."
msgstr "Der er tilføjet en blok til post #{posid}."
msgstr "En tilføjelse er blevet føjet til dette produkt."
#: pretix/control/logdisplay.py:276
#, python-brace-format
#, fuzzy, python-brace-format
msgid "A block has been removed for position #{posid}."
msgstr "Der er blevet fjernet en blok for post #{posid}."
msgstr "En tilføjelse er blevet fjernet fra dette produkt."
#: pretix/control/logdisplay.py:293
#, python-brace-format
msgid ""
"Position #{posid} ({old_item}, {old_price}) split into new order: {order}"
msgstr ""
"Post #{posid} ({old_item}, {old_price}) er opdelt i en ny ordre: {order}"
#: pretix/control/logdisplay.py:312
#, python-brace-format
@@ -17259,34 +17252,26 @@ msgid ""
"Unknown scan of code \"{barcode}…\" at {datetime} for list \"{list}\", type "
"\"{type}\"."
msgstr ""
"Ukendt scanning af koden \"{barcode}…\" kl. {datetime} for listen \"{list}"
"\", type \"{type}\"."
#: pretix/control/logdisplay.py:320
#, python-brace-format
#, fuzzy, python-brace-format
msgid ""
"Unknown scan of code \"{barcode}…\" for list \"{list}\", type \"{type}\"."
msgstr ""
"Ukendt scanning af koden \"{barcode}…\" for listen \"{list}\", typen \"{type}"
"\"."
msgstr "Tjek-ind-listen er blevet slettet."
#: pretix/control/logdisplay.py:323
#, python-brace-format
#, fuzzy, python-brace-format
msgid ""
"Scan of revoked code \"{barcode}…\" at {datetime} for list \"{list}\", type "
"\"{type}\", was uploaded."
msgstr ""
"En scanning af den tilbagetrukkede kode \"{barcode}…\" den {datetime} for "
"listen \"{list}\", type \"{type}\", er blevet uploadet."
msgstr "Tjek-ind-listen er blevet slettet."
#: pretix/control/logdisplay.py:324
#, python-brace-format
#, fuzzy, python-brace-format
msgid ""
"Scan of revoked code \"{barcode}\" for list \"{list}\", type \"{type}\", was "
"uploaded."
msgstr ""
"En scanning af den tilbagetrukne kode \"{barcode}\" for listen \"{list}\", "
"type \"{type}\" er blevet uploadet."
msgstr "Tjek-ind-listen er blevet slettet."
#: pretix/control/logdisplay.py:327
#, python-brace-format
@@ -17294,56 +17279,44 @@ msgid ""
"Denied scan of position #{posid} at {datetime} for list \"{list}\", type "
"\"{type}\", error code \"{errorcode}\"."
msgstr ""
"Scanning af post #{posid} den {datetime} for listen \"{list}\", type \"{type}"
"\", fejlkode \"{errorcode}\" blev afvist."
#: pretix/control/logdisplay.py:328
#, python-brace-format
#, fuzzy, python-brace-format
msgid ""
"Denied scan of position #{posid} for list \"{list}\", type \"{type}\", error "
"code \"{errorcode}\"."
msgstr ""
"Scanning af post #{posid} for listen \"{list}\", type \"{type}\" blev "
"afvist. Fejlkode \"{errorcode}\"."
msgstr "Tjek-ind-listen er blevet slettet."
#: pretix/control/logdisplay.py:331
#, python-brace-format
#, fuzzy, python-brace-format
msgid ""
"Annulled scan of position #{posid} at {datetime} for list \"{list}\", type "
"\"{type}\"."
msgstr ""
"Scanning af post #{posid} den {datetime} for listen \"{list}\", type \""
"{type}\", er blevet annulleret."
msgstr "Tjek-ind-listen er blevet slettet."
#: pretix/control/logdisplay.py:332
#, python-brace-format
#, fuzzy, python-brace-format
msgid ""
"Annulled scan of position #{posid} for list \"{list}\", type \"{type}\"."
msgstr ""
"Scanning af post #{posid} for listen \"{list}\" type \"{type}\" er blevet "
"annulleret."
msgstr "Tjek-ind-listen er blevet slettet."
#: pretix/control/logdisplay.py:335
#, python-brace-format
#, fuzzy, python-brace-format
msgid ""
"Ignored annulment of position #{posid} at {datetime} for list \"{list}\", "
"type \"{type}\"."
msgstr ""
"Annullering af post #{posid} den {datetime} for listen \"{list}\", type \""
"{type}\" er blevet ignoreret."
msgstr "Tjek-ind-listen er blevet slettet."
#: pretix/control/logdisplay.py:336
#, python-brace-format
#, fuzzy, python-brace-format
msgid ""
"Ignored annulment of position #{posid} for list \"{list}\", type \"{type}\"."
msgstr ""
"Annullering af post #{posid} for listen \"{list}\", type \"{type}\", er "
"blevet ignoreret."
msgstr "Tjek-ind-listen er blevet slettet."
#: pretix/control/logdisplay.py:338 pretix/control/logdisplay.py:339
#, python-brace-format
#, fuzzy, python-brace-format
msgid "The check-in of position #{posid} on list \"{list}\" has been reverted."
msgstr "Tjek-ind af post #{posid} på listen \"{list}\" er blevet annulleret."
msgstr "Tjek-ind-listen er blevet slettet."
#: pretix/control/logdisplay.py:359 pretix/control/logdisplay.py:361
#: pretix/control/logdisplay.py:995 pretix/control/logdisplay.py:997
@@ -17355,24 +17328,22 @@ msgstr "(ukendt)"
msgid ""
"Position #{posid} has been checked out at {datetime} for list \"{list}\"."
msgstr ""
"Post #{posid} er blevet tjekket ud den {datetime} for listen \"{list}\"."
#: pretix/control/logdisplay.py:382
#, python-brace-format
msgid "Position #{posid} has been checked out for list \"{list}\"."
msgstr "Post #{posid} er blevet tjekket ud for listen \"{list}\"."
msgstr ""
#: pretix/control/logdisplay.py:386
#, python-brace-format
msgid ""
"Position #{posid} has been checked in at {datetime} for list \"{list}\"."
msgstr ""
"Post #{posid} er blevet tjekket ind den {datetime} for listen \"{list}\"."
#: pretix/control/logdisplay.py:387
#, python-brace-format
msgid "Position #{posid} has been checked in for list \"{list}\"."
msgstr "Post #{posid} er blevet tjekket ind for listen \"{list}\"."
msgstr ""
#: pretix/control/logdisplay.py:391
#, python-brace-format
@@ -17380,8 +17351,6 @@ msgid ""
"A scan for position #{posid} at {datetime} for list \"{list}\" has been "
"uploaded even though it has been scanned already."
msgstr ""
"En scanning af post # {posid} den {datetime} for listen \"{list}\" er blevet "
"uploadet, selvom den allerede er blevet scannet."
#: pretix/control/logdisplay.py:397
#, python-brace-format
@@ -17389,18 +17358,16 @@ msgid ""
"Position #{posid} has been scanned and rejected because it has already been "
"scanned before on list \"{list}\"."
msgstr ""
"Post #{posid} er blevet scannet og afvist, da den allerede er blevet scannet "
"tidligere for listen \"{list}\"."
#: pretix/control/logdisplay.py:408
#, python-brace-format
msgid "The user confirmed the following message: \"{}\""
msgstr "Brugeren bekræftede følgende besked: \"{}\""
msgstr ""
#: pretix/control/logdisplay.py:420
#, python-brace-format
#, fuzzy, python-brace-format
msgid "The order has been canceled (comment: \"{comment}\")."
msgstr "Ordren er blevet annulleret (kommentar: \"{comment}\")."
msgstr "Bestillingen er blevet tilbagebetalt."
#: pretix/control/logdisplay.py:422 pretix/control/views/orders.py:1556
#: pretix/presale/views/order.py:1138
@@ -17410,12 +17377,12 @@ msgstr "Bestillingen er blevet annulleret."
#: pretix/control/logdisplay.py:430
#, python-brace-format
msgid "Position #{posid} has been printed at {datetime} with type \"{type}\"."
msgstr "Post #{posid} er blevet printet den {datetime} med typen \"{type}\"."
msgstr ""
#: pretix/control/logdisplay.py:452
#, python-brace-format
msgid "Data successfully transferred to {provider_display_name}."
msgstr "Dataene er blevet overført til {provider_display_name}."
msgstr ""
#: pretix/control/logdisplay.py:471
#, python-brace-format
@@ -17423,8 +17390,6 @@ msgid ""
"Transferring data to {provider_display_name} failed due to invalid "
"configuration:"
msgstr ""
"Overførslen af data til {provider_display_name} mislykkedes på grund af en "
"ugyldig konfiguration:"
#: pretix/control/logdisplay.py:472
#, python-brace-format
@@ -17432,21 +17397,16 @@ msgid ""
"Maximum number of retries exceeded while transferring data to "
"{provider_display_name}:"
msgstr ""
"Det maksimale antal forsøg er overskredet under overførsel af data til "
"{provider_display_name}:"
#: pretix/control/logdisplay.py:473
#, python-brace-format
msgid "Error while transferring data to {provider_display_name}:"
msgstr ""
"Der opstod en fejl under overførslen af data til {provider_display_name}:"
#: pretix/control/logdisplay.py:474 pretix/control/logdisplay.py:475
#, python-brace-format
msgid "Internal error while transferring data to {provider_display_name}."
msgstr ""
"Der opstod en intern fejl under overførslen af data til "
"{provider_display_name}."
#: pretix/control/logdisplay.py:489 pretix/control/logdisplay.py:842
msgid "The settings of a payment provider have been changed."
@@ -17454,15 +17414,15 @@ msgstr "Indstillingerne for en betalingsudbyder er blevet ændret."
#: pretix/control/logdisplay.py:492 pretix/control/logdisplay.py:841
msgid "The settings of a ticket output provider have been changed."
msgstr "Indstillingerne for en udbyder af billetudskrivning er blevet ændret."
msgstr ""
#: pretix/control/logdisplay.py:498
msgid "Blocked manually"
msgstr "Blokeret manuelt"
msgstr ""
#: pretix/control/logdisplay.py:500
msgid "Blocked because of an API integration"
msgstr "Blokeret på grund af en API-integration"
msgstr ""
#: pretix/control/logdisplay.py:504
#, python-brace-format
@@ -17487,14 +17447,14 @@ msgid "The order's expiry date has been changed."
msgstr "Bestillingens udløbsdato er blevet ændret."
#: pretix/control/logdisplay.py:509
#, fuzzy
msgid "The order has been set to be usable before it is paid."
msgstr "Ordrens status er sat til »klar til brug«, før den er betalt."
msgstr "Bestillingen er blevet markeret som betalt."
#: pretix/control/logdisplay.py:510
#, fuzzy
msgid "The order has been set to require payment before use."
msgstr ""
"Indstillingen for ordren er blevet ændret således, at betaling kræves før "
"brug."
msgstr "Voucheren er blevet oprettet."
#: pretix/control/logdisplay.py:511 pretix/control/views/orders.py:1561
msgid "The order has been marked as expired."
@@ -17505,16 +17465,18 @@ msgid "The order has been marked as paid."
msgstr "Bestillingen er blevet markeret som betalt."
#: pretix/control/logdisplay.py:513
#, fuzzy
msgid "The cancellation request has been deleted."
msgstr "Anmodningen om annullering er blevet slettet."
msgstr "Det valgte spørgsmål er blevet slettet."
#: pretix/control/logdisplay.py:514
msgid "The order has been refunded."
msgstr "Bestillingen er blevet tilbagebetalt."
#: pretix/control/logdisplay.py:515 pretix/control/views/orders.py:1901
#, fuzzy
msgid "The order has been reactivated."
msgstr "Ordren er blevet genaktiveret."
msgstr "Bestilling oprettet."
#: pretix/control/logdisplay.py:516
msgid "The order has been created."
@@ -17522,20 +17484,22 @@ msgstr "Bestillingen er oprettet"
#: pretix/control/logdisplay.py:518
msgid "The order requires approval before it can continue to be processed."
msgstr "Ordren skal godkendes, før den kan behandles videre."
msgstr ""
#: pretix/control/logdisplay.py:519 pretix/control/views/orders.py:783
#, fuzzy
msgid "The order has been approved."
msgstr "Ordren er blevet godkendt."
msgstr "Bestilling oprettet."
#: pretix/control/logdisplay.py:520
#, python-brace-format
#, fuzzy, python-brace-format
msgid "The order has been denied (comment: \"{comment}\")."
msgstr "Bestillingen er blevet afvist (kommentar: \"{comment}\")."
msgstr "Bestillingen er blevet tilbagebetalt."
#: pretix/control/logdisplay.py:521
#, fuzzy
msgid "The customer VAT ID has been verified."
msgstr "Kundens momsnummer er blevet verificeret."
msgstr "Bestilling oprettet."
#: pretix/control/logdisplay.py:522
#, python-brace-format
@@ -17549,23 +17513,22 @@ msgid ""
"The email address has been confirmed to be working (the user clicked on a "
"link in the email for the first time)."
msgstr ""
"Det er bekræftet, at e-mailadressen fungerer (brugeren har klikket på et "
"link i e-mailen for første gang)."
#: pretix/control/logdisplay.py:527
#, python-brace-format
#, fuzzy, python-brace-format
msgid ""
"The phone number has been changed from \"{old_phone}\" to \"{new_phone}\"."
msgstr ""
"Telefonnummeret er blevet ændret fra \"{old_phone}\" til \"{new_phone}\"."
"E-mailadressen er blevet ændret fra \"{old_email}\" til \"{new_email}\"."
#: pretix/control/logdisplay.py:529
#, fuzzy
msgid "The customer account has been changed."
msgstr "Kundekontoen er blevet ændret."
msgstr "Spørgsmålet er blevet ændret."
#: pretix/control/logdisplay.py:530
msgid "The order locale has been changed."
msgstr "Lokaliteten for ordren er blevet ændret."
msgstr ""
#: pretix/control/logdisplay.py:531 pretix/control/views/orders.py:1600
#: pretix/presale/views/order.py:797 pretix/presale/views/order.py:877
@@ -17573,8 +17536,10 @@ msgid "The invoice has been generated."
msgstr "Fakturaen er blevet genereret."
#: pretix/control/logdisplay.py:532
#, fuzzy
#| msgid "The invoice has been generated."
msgid "The invoice could not be generated."
msgstr "Fakturaen kunne ikke udfærdiges."
msgstr "Fakturaen er blevet genereret."
#: pretix/control/logdisplay.py:533 pretix/control/views/orders.py:1681
msgid "The invoice has been regenerated."
@@ -17586,14 +17551,14 @@ msgid "The invoice has been reissued."
msgstr "Fakturaen er blevet genudstedt."
#: pretix/control/logdisplay.py:535
#, python-brace-format
#, fuzzy, python-brace-format
msgid "The invoice {full_invoice_no} has been sent."
msgstr "Fakturaen {full_invoice_no} er blevet sendt."
msgstr "Fakturaen er blevet genudstedt."
#: pretix/control/logdisplay.py:536
#, python-brace-format
msgid "The transmission of invoice {full_invoice_no} has failed."
msgstr "Overførslen af faktura {full_invoice_no} mislykkedes."
msgstr ""
#: pretix/control/logdisplay.py:537
#, python-brace-format
@@ -17601,44 +17566,39 @@ msgid ""
"Invoice {full_invoice_no} has not been transmitted because the transmission "
"provider does not support test mode invoices."
msgstr ""
"Faktura {full_invoice_no} er ikke blevet sendt, da udbyderen ikke "
"understøtter fakturaer i testtilstand."
#: pretix/control/logdisplay.py:539
#, python-brace-format
msgid "The invoice {full_invoice_no} has been scheduled for retransmission."
msgstr "Fakturaen {full_invoice_no} er sat til at blive sendt igen."
msgstr ""
#: pretix/control/logdisplay.py:540
msgid "The order's internal comment has been updated."
msgstr "Bestillingens interne kommentar er blevet opdateret."
#: pretix/control/logdisplay.py:541
#, fuzzy
msgid "The order's follow-up date has been updated."
msgstr "Opfølgningsdatoen for ordren er blevet opdateret."
msgstr "Rækkefølgen af elementerne er blevet opdateret."
#: pretix/control/logdisplay.py:542
msgid "The order's flag to require attention at check-in has been toggled."
msgstr ""
"Ordrens markering for, at ordren skal fremhæves ved check-in, er blevet "
"aktiveret."
#: pretix/control/logdisplay.py:544
#, fuzzy
msgid "The order's check-in text has been changed."
msgstr "Ordrens tjek-ind-tekst er blevet ændret."
msgstr "Bestillingens hemmelighed er blevet ændret."
#: pretix/control/logdisplay.py:545
msgid ""
"The order's flag to be considered valid even if unpaid has been toggled."
msgstr ""
"Ordrens markering for, at ordren skal betragtes som gyldig, selvom den ikke "
"er betalt, er blevet aktiveret."
#: pretix/control/logdisplay.py:547
#, python-brace-format
msgid "A new payment {local_id} has been started instead of the previous one."
msgstr ""
"En ny betaling {local_id} er blevet påbegyndt i stedet for den tidligere."
#: pretix/control/logdisplay.py:548
msgid "An unidentified type email has been sent."
@@ -17647,15 +17607,16 @@ msgstr "En e-mail af ukendt type er blevet sendt."
#: pretix/control/logdisplay.py:549 pretix/control/logdisplay.py:742
#: pretix/control/logdisplay.py:748 pretix/control/logdisplay.py:776
msgid "Sending of an email has failed."
msgstr "Forsendelse af en e-mail er mislykket."
msgstr ""
#: pretix/control/logdisplay.py:550
#, fuzzy
msgid ""
"The email has been sent without attached tickets since they would have been "
"too large to be likely to arrive."
msgstr ""
"E-mailen er blevet sendt uden vedhæftede billetter, da de sandsynligvis "
"ville have været for store til at kunne leveres."
"En e-mail er blevet sendt for at fortælle brugeren at bestillingen er "
"modtaget."
#: pretix/control/logdisplay.py:552
#, fuzzy

View File

@@ -8,16 +8,16 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-04-28 09:03+0000\n"
"PO-Revision-Date: 2026-05-20 10:58+0000\n"
"Last-Translator: Phumraphee Sae-tang <phumraphee@gmail.com>\n"
"Language-Team: Thai <https://translate.pretix.eu/projects/pretix/pretix/th/>"
"\n"
"PO-Revision-Date: 2026-02-14 06:10+0000\n"
"Last-Translator: Nate Horst <nate@agcthailand.org>\n"
"Language-Team: Thai <https://translate.pretix.eu/projects/pretix/pretix/th/"
">\n"
"Language: th\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 2026.5\n"
"X-Generator: Weblate 5.15.2\n"
#: pretix/_base_settings.py:87
msgid "English"
@@ -395,8 +395,10 @@ msgstr "มีบัตรของขวัญที่มีรหัสลั
#: pretix/api/serializers/organizer.py:495
#: pretix/control/views/organizer.py:1039
#, fuzzy
#| msgid "Account information"
msgid "Account invitation"
msgstr "คำเชิญเข้าร่วมบัญชี"
msgstr "ข้อมูลบัญชี"
#: pretix/api/serializers/organizer.py:516
#: pretix/control/views/organizer.py:1138
@@ -632,16 +634,22 @@ msgid "Customer account anonymized"
msgstr "กำหนดบัญชีลูกค้าเป็นแบบไม่ระบุตัวตนแล้ว"
#: pretix/api/webhooks.py:470
#, fuzzy
#| msgid "Gift card code"
msgid "Gift card added"
msgstr "บัตรของขวัญได้ถูกเพิ่มแล้ว"
msgstr "รหัสบัตรของขวัญ"
#: pretix/api/webhooks.py:474
#, fuzzy
#| msgid "Gift card code"
msgid "Gift card modified"
msgstr "บัตรของขวัญได้ถูกแก้ไขแล้ว"
msgstr "รหัสบัตรของขวัญ"
#: pretix/api/webhooks.py:478
#, fuzzy
#| msgid "Gift card transactions"
msgid "Gift card used in transaction"
msgstr "บัตรของขวัญที่ถูกใช้ในธุรกรรม"
msgstr "ธุรกรรมบัตรของขวัญ"
#: pretix/base/addressvalidation.py:100 pretix/base/addressvalidation.py:103
#: pretix/base/addressvalidation.py:108 pretix/base/forms/questions.py:1060
@@ -713,7 +721,7 @@ msgid "Your password may not be the same as your previous password."
msgid_plural ""
"Your password may not be the same as one of your %(history_length)s previous "
"passwords."
msgstr[0] "รหัสผ่านของคุณอาจจะไม่เหมือนกับรหัสผ่านเก่าของคุณ %(history_length)s"
msgstr[0] ""
#: pretix/base/channels.py:168
msgid "Online shop"
@@ -2540,8 +2548,10 @@ msgid "Voucher budget usage"
msgstr "ยอดการใช้เวาเชอร์"
#: pretix/base/exporters/orderlist.py:656
#, fuzzy
#| msgid "Voucher"
msgid "Voucher tag"
msgstr "ป้ายคูปอง"
msgstr "เวาเชอร์"
#: pretix/base/exporters/orderlist.py:657
msgid "Pseudonymization ID"
@@ -3341,34 +3351,39 @@ msgid "Street and Number"
msgstr "ถนนและบ้านเลขที่"
#: pretix/base/forms/questions.py:899
#, python-brace-format
#, fuzzy, python-brace-format
#| msgid "Please enter a shorter name."
msgid "Please enter a date between {min} and {max}."
msgstr "กรุณาระบุวันที่ระหว่าง {min} และ {max}"
msgstr "โปรดระบุชื่อที่สั้นกว่านี้"
#: pretix/base/forms/questions.py:905
#, python-brace-format
#, fuzzy, python-brace-format
#| msgid "Please enter a valid sales channel."
msgid "Please enter a date no earlier than {min}."
msgstr "โปรดระบุวันที่ตั้งแต่ {min} เป็นต้นไป"
msgstr "โปรดระบุช่องทางการขายที่ถูกต้อง"
#: pretix/base/forms/questions.py:910
#, python-brace-format
#, fuzzy, python-brace-format
#| msgid "Please enter a shorter name."
msgid "Please enter a date no later than {max}."
msgstr "กรุณาระบุวันที่ก่อนวันที่ {max}"
msgstr "โปรดระบุชื่อที่สั้นกว่านี้"
#: pretix/base/forms/questions.py:948
#, python-brace-format
msgid "Please enter a date and time between {min} and {max}."
msgstr "กรุณาระบุวันที่และเวลาระหว่าง {min} และ {max}"
msgstr ""
#: pretix/base/forms/questions.py:954
#, python-brace-format
#, fuzzy, python-brace-format
#| msgid "Please enter a valid sales channel."
msgid "Please enter a date and time no earlier than {min}."
msgstr "กรุณาระบุวันที่และเวลาตั้งแต่ {min} เป็นต้นไป"
msgstr "โปรดระบุช่องทางการขายที่ถูกต้อง"
#: pretix/base/forms/questions.py:959
#, python-brace-format
#, fuzzy, python-brace-format
#| msgid "Please enter a valid state."
msgid "Please enter a date and time no later than {max}."
msgstr "กรุณาระบวัที่และเวลาก่อน {max}"
msgstr "โปรดระบุรัฐ/จังหวัที่ถูกต้อง"
#: pretix/base/forms/questions.py:1178
msgid ""
@@ -3555,27 +3570,27 @@ msgstr "รับไฟล์ PDF ทางอีเมล"
#: pretix/base/invoicing/national.py:37
msgctxt "italian_invoice"
msgid "Italian Exchange System (SdI)"
msgstr "Italian Exchange System (SdI)"
msgstr ""
#: pretix/base/invoicing/national.py:38
msgctxt "italian_invoice"
msgid "Exchange System (SdI)"
msgstr "Exchange System (SdI)"
msgstr ""
#: pretix/base/invoicing/national.py:51
msgctxt "italian_invoice"
msgid "Fiscal code"
msgstr "Fiscal code"
msgstr ""
#: pretix/base/invoicing/national.py:55
msgctxt "italian_invoice"
msgid "Address for certified electronic mail"
msgstr "อีเมลสำหรับการติดต่อทางอิเล็กทรอนิกส์แบบรับรอง"
msgstr ""
#: pretix/base/invoicing/national.py:59
msgctxt "italian_invoice"
msgid "Recipient code"
msgstr "รหัสผู้รับปลายทาง"
msgstr ""
#: pretix/base/invoicing/national.py:83
msgctxt "italian_invoice"
@@ -3585,10 +3600,6 @@ msgid ""
"in accordance with the procedures and terms set forth in No. 89757/2018 of "
"April 30, 2018, issued by the Director of the Revenue Agency."
msgstr ""
"เอกสาร PDF นี้เป็นเพียงสำเนาเพื่อการแสดงผลของใบแจ้งหนี้ และไม่ใช่ใบแจ้งหนี้ที่ใช้เพื่อวัตถุประสงค์ด้"
"านภาษีมูลค่าเพิ่ม (VAT)ใบแจ้งหนี้ฉบับสมบูรณ์ถูกจัดทำในรูปแบบ XML และส่งตามหลักเกณฑ์และวิธีการที่กำ"
"หนดในประกาศเลขที่ 89757/2018 ลงวันที่ 30 เมษายน 2018 ซึ่งออกโดยผู้อำนวยการสำนักงานสรรพา"
"กร"
#: pretix/base/invoicing/pdf.py:142
#, python-format
@@ -3836,7 +3847,6 @@ msgstr "วันที่จัดกิจกรรม: {date_range}"
msgid ""
"A Peppol participant ID always starts with a prefix, followed by a colon (:)."
msgstr ""
"รหัสผู้เข้าร่วม Peppol ต้องเริ่มต้นด้วย prefix และตามด้วยเครื่องหมาย \":\""
#: pretix/base/invoicing/peppol.py:140
#, python-format
@@ -3844,8 +3854,6 @@ msgid ""
"The Peppol participant ID prefix %(number)s is not known to our system. "
"Please reach out to us if you are sure this ID is correct."
msgstr ""
"ระบบของเราไม่รองรับ prefix ของ Peppol participant ID หมายเลข %(number)s หากท่านมั่"
"นใจว่ารหัสดังกล่าวถูกต้อง กรุณาติดต่อเราเพื่อขอความช่วยเหลือ"
#: pretix/base/invoicing/peppol.py:144
#, python-format
@@ -3853,25 +3861,23 @@ msgid ""
"The Peppol participant ID does not match the validation rules for the prefix "
"%(number)s. Please reach out to us if you are sure this ID is correct."
msgstr ""
"รหัส Peppol participant ID ไม่ถูกต้องตามรูปแบบของ prefix 1%(number)s หากรหัสดังกล่าวถู"
"กต้อง กรุณาติดต่อเรา"
#: pretix/base/invoicing/peppol.py:166
msgid "The Peppol participant ID is not registered on the Peppol network."
msgstr "Peppol participant ID นี้ไม่ได้ลงทะเบียนอยู่ในเครือข่าย Peppol"
msgstr ""
#: pretix/base/invoicing/peppol.py:192
msgid "Peppol participant ID"
msgstr "Peppol participant ID นี้ไม่ได้ลงทะเบียนอยู่ในเครือข่าย Peppol"
msgstr ""
#: pretix/base/invoicing/peppol.py:211
msgid "The Peppol participant ID does not match your VAT ID."
msgstr "Peppol participant ID ไม่ตรงกับหมายเลข VAT ID ของคุณ"
msgstr ""
#: pretix/base/invoicing/peppol.py:214
msgctxt "peppol_invoice"
msgid "Visual copy"
msgstr "สำเนาเพื่อแสดงผล"
msgstr ""
#: pretix/base/invoicing/peppol.py:219
msgctxt "peppol_invoice"
@@ -3880,16 +3886,12 @@ msgid ""
"invoice for VAT purposes. The original invoice is issued in XML format and "
"transmitted through the Peppol network."
msgstr ""
"เอกสาร PDF นี้เป็นเพียงสำเนาเพื่อการแสดงผลของใบแจ้งหนี้ และไม่ถือเป็นใบแจ้งหนี้เพื่อวัตถุประสงค์ด้"
"านภาษีมูลค่าเพิ่ม (VAT) ใบแจ้งหนี้ต้นฉบับถูกจัดทำในรูปแบบ XML และส่งผ่านเครือข่าย Peppol"
#: pretix/base/logentrytype_registry.py:43
msgid ""
"The relevant plugin is currently not active. To activate it, click here to "
"go to the plugin settings."
msgstr ""
"ปลั๊กอินที่เกี่ยวข้องยังไม่ได้เปิดใช้งานในขณะนี้ หากต้องการเปิดใช้งาน คลิกที่นี่เพื่อไปยังหน้าการตั้งค่าปลั๊ก"
"อิน"
#: pretix/base/logentrytype_registry.py:53
msgid "The relevant plugin is currently not active."
@@ -4227,21 +4229,23 @@ msgstr "อนุญาตให้ข้ามการตรวจสอบโ
#: pretix/control/templates/pretixcontrol/vouchers/detail.html:70
#: pretix/control/views/vouchers.py:121
msgid "Price effect"
msgstr "ผลต่างด้านราคา"
msgstr ""
#: pretix/base/modelimport_vouchers.py:150
#, python-brace-format
#, fuzzy, python-brace-format
#| msgid "Could not parse {value} as a price mode, use one of {options}."
msgid "Could not parse {value} as a price effect, use one of {options}."
msgstr ""
"ไม่สามารถประมวลผล {value} เป็นค่าผลต่างด้านราคาได้ โปรดใช้ค่าใดค่าหนึ่งจาก {options}"
msgstr "ไม่สามารถประมวลผล {value} เป็นโหมดราคาได้ โปรดใช้ค่าใดค่าหนึ่งจาก {options}"
#: pretix/base/modelimport_vouchers.py:160 pretix/base/models/vouchers.py:248
msgid "Voucher value"
msgstr "มูลค่าเวาเชอร์"
#: pretix/base/modelimport_vouchers.py:165
#, fuzzy
#| msgid "It is pointless to set a value without a price mode."
msgid "It is pointless to set a value without a price effect."
msgstr "การกำหนดมูลค่าจะไม่มีผลหากไม่ได้กำหนดผลต่างด้านราคา"
msgstr "การกำหนดมูลค่าจะไม่มีผลหากไม่ได้กำหนดโหมดราคา"
#: pretix/base/modelimport_vouchers.py:237 pretix/base/models/items.py:2121
#: pretix/base/models/vouchers.py:275
@@ -6173,41 +6177,46 @@ msgstr "สิ้นสุด"
#: pretix/control/templates/pretixcontrol/organizers/outgoing_mail.html:38
#: pretix/control/templates/pretixcontrol/organizers/outgoing_mails.html:139
msgid "queued"
msgstr "อยู่ในคิว"
msgstr ""
#: pretix/base/models/mail.py:53
#: pretix/control/templates/pretixcontrol/organizers/outgoing_mail.html:40
#: pretix/control/templates/pretixcontrol/organizers/outgoing_mails.html:141
msgid "being sent"
msgstr "กำลังส่ง"
msgstr ""
#: pretix/base/models/mail.py:54
#, fuzzy
#| msgid "Waiting list entry"
msgid "awaiting retry"
msgstr "รการลองใหม่"
msgstr "รายการในรายการรอ"
#: pretix/base/models/mail.py:55
#: pretix/control/templates/pretixcontrol/organizers/outgoing_mail.html:48
#: pretix/control/templates/pretixcontrol/organizers/outgoing_mails.html:149
msgid "withheld"
msgstr "ถูกหักไว้"
msgstr ""
#: pretix/base/models/mail.py:57
#: pretix/control/templates/pretixcontrol/organizers/outgoing_mail.html:50
#: pretix/control/templates/pretixcontrol/organizers/outgoing_mails.html:151
msgid "aborted"
msgstr "ยกเลิกแล้ว"
msgstr ""
#: pretix/base/models/mail.py:58
#: pretix/control/templates/pretixcontrol/organizers/outgoing_mail.html:52
#: pretix/control/templates/pretixcontrol/organizers/outgoing_mails.html:153
#, fuzzy
#| msgctxt "checkin state"
#| msgid "Present"
msgid "sent"
msgstr "ส่งแล้ว"
msgstr "มา"
#: pretix/base/models/mail.py:59
#: pretix/control/templates/pretixcontrol/organizers/outgoing_mail.html:46
#: pretix/control/templates/pretixcontrol/organizers/outgoing_mails.html:147
msgid "bounced"
msgstr "ตีกลับ"
msgstr ""
#: pretix/base/models/memberships.py:44
#: pretix/presale/templates/pretixpresale/organizers/customer_memberships.html:28
@@ -6613,22 +6622,24 @@ msgstr ""
"ทั้งนี้ การตั้งค่าอาจใช้เวลาสักครู่เพื่อให้มีผลกับผู้ใช้ทุกคน"
#: pretix/base/models/organizer.py:384
#, fuzzy
#| msgid "Event admission"
msgid "All event permissions"
msgstr "สิทธิทั้งหมดของกิจกรรม"
msgstr "เริ่มเปิดให้เข้างาน"
#: pretix/base/models/organizer.py:385
#: pretix/control/templates/pretixcontrol/organizers/team_edit.html:34
msgid "Event permissions"
msgstr "สิทธิของกิจกรรม"
msgstr ""
#: pretix/base/models/organizer.py:386
msgid "All organizer permissions"
msgstr "สิทธิขององค์กรทั้งหมด"
msgstr ""
#: pretix/base/models/organizer.py:387
#: pretix/control/templates/pretixcontrol/organizers/team_edit.html:25
msgid "Organizer permissions"
msgstr "สิทธิขององค์กร"
msgstr ""
#: pretix/base/models/organizer.py:407
#, python-format
@@ -7878,8 +7889,10 @@ msgstr ""
"2x สินค้าเพิ่มเติม 2"
#: pretix/base/pdf.py:383
#, fuzzy
#| msgid "List of Add-Ons"
msgid "List of Checked-In Add-Ons"
msgstr "รายการส่วนเสริมที่เช็คอินแล้ว"
msgstr "รายการสินค้าเพิ่มเติม"
#: pretix/base/pdf.py:390 pretix/control/forms/filter.py:1537
#: pretix/control/forms/filter.py:1539
@@ -8060,129 +8073,145 @@ msgstr "ไฟล์เลย์เอาต์ของคุณไม่ถู
#: pretix/base/permissions.py:314 pretix/base/permissions.py:331
msgctxt "permission_level"
msgid "View"
msgstr "แสดงผล"
msgstr ""
#: pretix/base/permissions.py:164 pretix/base/permissions.py:169
#: pretix/base/permissions.py:174 pretix/base/permissions.py:179
#: pretix/base/permissions.py:286 pretix/base/permissions.py:315
#, fuzzy
#| msgid "Voucher changed"
msgctxt "permission_level"
msgid "View and change"
msgstr "แสดงและแก้ไข"
msgstr "แก้ไขรหัสส่วนลดแล้ว"
#: pretix/base/permissions.py:168
msgid "API only"
msgstr "API เท่านั้น"
msgstr ""
#: pretix/base/permissions.py:173
msgid ""
"Menu item will only show up if the user has permission for general settings."
msgstr ""
"รายการเมนูนี้จะแสดงเฉพาะผู้ใช้ที่มีสิทธิ์เข้าถึงการตั้งค่าทั่วไปเท่านั้น"
#: pretix/base/permissions.py:177 pretix/base/permissions.py:231
#: pretix/base/permissions.py:285 pretix/base/permissions.py:313
#: pretix/base/permissions.py:330
#, fuzzy
#| msgid "Read access"
msgctxt "permission_level"
msgid "No access"
msgstr "ไม่มีสิทธิในการเข้าถึง"
msgstr "สิทธิในการอ่านข้อมูล"
#: pretix/base/permissions.py:188
#: pretix/control/templates/pretixcontrol/event/settings.html:7
#: pretix/control/templates/pretixcontrol/event/settings.html:13
#: pretix/control/templates/pretixcontrol/user/settings.html:29
msgid "General settings"
msgstr "การตั้งค่าทั่วไป"
msgstr ""
#: pretix/base/permissions.py:192
msgid ""
"This includes access to all settings not listed explicitly below, including "
"plugin settings."
msgstr ""
"ซึ่งรวมถึงสิทธิ์เข้าถึงการตั้งค่าทั้งหมดที่ไม่ได้ระบุไว้ด้านล่างอย่างชัดเจน รวมถึงการตั้งค่าปลั๊กอินด้วย"
#: pretix/base/permissions.py:197
#: pretix/control/templates/pretixcontrol/event/payment.html:6
#: pretix/control/templates/pretixcontrol/event/payment_provider.html:5
msgid "Payment settings"
msgstr "การตั้งค่าการชำระเงิน"
msgstr ""
#: pretix/base/permissions.py:203
#: pretix/control/templates/pretixcontrol/event/tax.html:120
msgid "Tax settings"
msgstr "การตั้งค่าเกี่ยวกับภาษี"
msgstr ""
#: pretix/base/permissions.py:209
#, fuzzy
#| msgid "Invoice lines"
msgid "Invoicing settings"
msgstr "การตั้งค่าที่เกี่ยวกับใบแจ้งหนี้"
msgstr "รายการในใบแจ้งหนี้"
#: pretix/base/permissions.py:215
#, fuzzy
#| msgctxt "subevent"
#| msgid "Event series date added"
msgid "Event series dates"
msgstr "วันที่จัดงานแต่ละรอบ"
msgstr "เพิ่มวันที่ในชุดกิจกรรมแล้ว"
#: pretix/base/permissions.py:221
#, fuzzy
#| msgid "Product name and variation"
msgid "Products, quotas and questions"
msgstr "สินค้า โควตา และคำถาม"
msgstr "ชื่อสินค้าและรูปแบบสินค้า"
#: pretix/base/permissions.py:224
msgid "Also includes related objects like categories or discounts."
msgstr "รวมถึงรายการที่เกี่ยวข้อง เช่น หมวดหมู่หรือส่วนลดด้วย"
msgstr ""
#: pretix/base/permissions.py:232
#, fuzzy
#| msgid "Web Check-in"
msgctxt "permission_level"
msgid "Only check-in"
msgstr "สิทธิ์สำหรับเช็อินเท่านั้น"
msgstr "เว็บเช็อิน (Web Check-in)"
#: pretix/base/permissions.py:233
msgctxt "permission_level"
msgid "View all"
msgstr "ดูทั้งหมด"
msgstr ""
#: pretix/base/permissions.py:234
#, fuzzy
#| msgid "Web-based check-in"
msgctxt "permission_level"
msgid "View all and check-in"
msgstr "ดูทั้งหมดและเช็คอิน"
msgstr "การเช็คอินผ่านเว็บ"
#: pretix/base/permissions.py:235
msgctxt "permission_level"
msgid "View all and change"
msgstr "ดูทั้งหมดและแก้ไข"
msgstr ""
#: pretix/base/permissions.py:236
msgid "Includes the ability to cancel and refund individual orders."
msgstr "รวมถึงสิทธิ์ในการยกเลิกและคืนเงินสำหรับคำสั่งซื้อแต่ละรายการ"
msgstr ""
#: pretix/base/permissions.py:238
msgid "Also includes related objects like the waiting list."
msgstr "รวมถึงข้อมูลที่เกี่ยวข้อง เช่น รายชื่อผู้รอคิวด้วย"
msgstr ""
#: pretix/base/permissions.py:248
#, fuzzy
#| msgctxt "subevent"
#| msgid "Event or date information"
msgid "Full event or date cancellation"
msgstr "การยกเลิกทั้งงานหรือวันที่จัดงาน"
msgstr "ข้อมูลกิจกรรมหรือวันที่"
#: pretix/base/permissions.py:252
msgctxt "permission_level"
msgid "Not allowed"
msgstr "ไม่ได้รับอนุญาต"
msgstr ""
#: pretix/base/permissions.py:253
msgctxt "permission_level"
msgid "Allowed"
msgstr "อนุญาต"
msgstr ""
#: pretix/base/permissions.py:268
msgctxt "permission_level"
msgid "Access existing events"
msgstr "เข้าถึงกิจกรรมที่มีอยู่"
msgstr ""
#: pretix/base/permissions.py:269
msgctxt "permission_level"
msgid "Access existing and create new events"
msgstr "เข้าถึงกิจกรรมที่มีอยู่และสร้างกิจกรรมใหม่"
msgstr ""
#: pretix/base/permissions.py:271
msgid ""
"The level of access to events is determined in detail by the settings below."
msgstr "การตั้งค่าด้านล่างจะกำหนดระดับการเข้าถึงกิจกรรมอย่างละเอียด"
msgstr ""
#: pretix/base/permissions.py:275 pretix/control/navigation.py:143
#: pretix/control/navigation.py:462 pretix/control/navigation.py:512
@@ -8194,48 +8223,47 @@ msgstr "การตั้งค่าด้านล่างจะกำหน
#: pretix/plugins/returnurl/apps.py:40
#: pretix/plugins/ticketoutputpdf/apps.py:55
msgid "Settings"
msgstr "การตั้งค่า"
msgstr ""
#: pretix/base/permissions.py:278
msgid ""
"This includes access to all organizer-level functionality not listed "
"explicitly below, including plugin settings."
msgstr ""
"ซึ่งรวมถึงสิทธิ์เข้าถึงฟังก์ชันทั้งหมดในระดับผู้จัดงานที่ไม่ได้ระบุไว้ด้านล่างอย่างชัดเจน รวมถึงการตั้งค่าปลั๊"
"กอินด้วย"
#: pretix/base/permissions.py:287
msgid ""
"Includes the ability to give someone (including oneself) additional "
"permissions."
msgstr "รวมถึงสิทธิ์ในการมอบสิทธิ์เพิ่มเติมให้ผู้อื่น (รวมถึงตนเอง)"
msgstr ""
#: pretix/base/permissions.py:298 pretix/control/navigation.py:608
#: pretix/control/templates/pretixcontrol/organizers/customers.html:6
#: pretix/control/templates/pretixcontrol/organizers/customers.html:9
msgid "Customers"
msgstr "ลูกค้า"
msgstr ""
#: pretix/base/permissions.py:310 pretix/control/navigation.py:666
#: pretix/control/navigation.py:673
msgid "Devices"
msgstr "อุปกรณ์"
msgstr ""
#: pretix/base/permissions.py:316
msgid ""
"Includes the ability to give access to events and data oneself does not have "
"access to."
msgstr ""
"รวมถึงสิทธิ์ในการมอบการเข้าถึงกิจกรรมและข้อมูลที่ตนเองไม่มีสิทธิ์เข้าถึง"
#: pretix/base/permissions.py:321
#, fuzzy
#| msgid "Seating plan"
msgid "Seating plans"
msgstr "ผังที่นั่ง"
#: pretix/base/permissions.py:327 pretix/control/navigation.py:712
#: pretix/control/templates/pretixcontrol/organizers/outgoing_mails.html:8
msgid "Outgoing emails"
msgstr "อีเมลขาออก"
msgstr ""
#: pretix/base/plugins.py:138
#: pretix/control/templates/pretixcontrol/event/quick_setup.html:132
@@ -8390,21 +8418,24 @@ msgstr ""
#, python-format
msgid "You cannot select more than %s item per order."
msgid_plural "You cannot select more than %s items per order."
msgstr[0] "คุณไม่สามารถเลือกได้เกิน %s รายการต่อคำสั่งซื้อ"
msgstr[0] ""
msgstr[1] ""
#: pretix/base/services/cart.py:138 pretix/base/services/orders.py:1602
#, python-format
msgid "You cannot select more than %(max)s item of the product %(product)s."
msgid_plural ""
"You cannot select more than %(max)s items of the product %(product)s."
msgstr[0] "คุณไม่สามารถเลือกสินค้า %(product)s ได้เกิน %(max)s รายการ"
msgstr[0] ""
msgstr[1] ""
#: pretix/base/services/cart.py:143 pretix/base/services/orders.py:1607
#, python-format
msgid "You need to select at least %(min)s item of the product %(product)s."
msgid_plural ""
"You need to select at least %(min)s items of the product %(product)s."
msgstr[0] "คุณต้องเลือกสินค้า %(product)s อย่างน้อย %(min)s รายการ"
msgstr[0] ""
msgstr[1] ""
#: pretix/base/services/cart.py:148
#, python-format
@@ -8415,8 +8446,7 @@ msgid_plural ""
"We removed %(product)s from your cart as you can not buy less than %(min)s "
"items of it."
msgstr[0] ""
"เราได้นำสินค้า %(product)s ออกจากตะกร้าของคุณ เนื่องจากไม่สามารถซื้อสินค้านี้ต่ำกว่า %(min)s "
"รายการได้"
msgstr[1] ""
#: pretix/base/services/cart.py:152 pretix/base/services/orders.py:164
#: pretix/presale/templates/pretixpresale/event/index.html:170
@@ -8471,8 +8501,7 @@ msgid_plural ""
"The voucher code \"%(voucher)s\" can only be used if you select at least "
"%(number)s matching products."
msgstr[0] ""
"สามารถใช้โค้ดส่วนลด “%(voucher)s” ได้ก็ต่อเมื่อเลือกสินค้าที่ร่วมรายการอย่างน้อย %(number)s ร"
"ายการ"
msgstr[1] ""
#: pretix/base/services/cart.py:170
#, python-format
@@ -8485,8 +8514,7 @@ msgid_plural ""
"%(number)s matching products. We have therefore removed some positions from "
"your cart that can no longer be purchased like this."
msgstr[0] ""
"โค้ดส่วนลด “%(voucher)s” ใช้ได้เมื่อเลือกสินค้าที่เข้าเงื่อนไขอย่างน้อย %(number)s รายการ เรา"
"จึงนำบางรายการออกจากตะกร้าของคุณ เนื่องจากไม่สามารถสั่งซื้อภายใต้เงื่อนไขนี้ได้อีก"
msgstr[1] ""
#: pretix/base/services/cart.py:176
msgid ""
@@ -8578,7 +8606,7 @@ msgid_plural ""
"You can select at most %(max)s add-ons from the category %(cat)s for the "
"product %(base)s."
msgstr[0] ""
"สามารถเลือกส่วนเสริมในหมวดหมู่ %(cat)s สำหรับสินค้า %(base)s ได้ไม่เกิน %(max)s รายการ"
msgstr[1] ""
#: pretix/base/services/cart.py:210 pretix/base/services/orders.py:199
#, python-format
@@ -30657,7 +30685,7 @@ msgstr ""
#: pretix/plugins/stripe/payment.py:1572
msgid "iDEAL | Wero"
msgstr "iDEAL | Wero"
msgstr ""
#: pretix/plugins/stripe/payment.py:1575
msgid ""

View File

@@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-04-28 09:04+0000\n"
"PO-Revision-Date: 2026-05-20 10:58+0000\n"
"Last-Translator: Phumraphee Sae-tang <phumraphee@gmail.com>\n"
"PO-Revision-Date: 2026-01-29 13:00+0000\n"
"Last-Translator: Nate Horst <nate@agcthailand.org>\n"
"Language-Team: Thai <https://translate.pretix.eu/projects/pretix/pretix-js/"
"th/>\n"
"Language: th\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 2026.5\n"
"X-Generator: Weblate 5.15.2\n"
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:56
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:62
@@ -60,7 +60,7 @@ msgstr "PayPal Pay Later"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:41
msgid "iDEAL | Wero"
msgstr "iDEAL | Wero"
msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:42
msgid "SEPA Direct Debit"
@@ -712,7 +712,8 @@ msgstr "จำนวน"
#: pretix/static/pretixcontrol/js/ui/subevent.js:112
msgid "(one more date)"
msgid_plural "({num} more dates)"
msgstr[0] "อีก {num} วัน"
msgstr[0] ""
msgstr[1] ""
#: pretix/static/pretixpresale/js/ui/cart.js:47
msgid ""
@@ -733,7 +734,8 @@ msgstr "ตะกร้าสินค้าของคุณกำลังจ
#: pretix/static/pretixpresale/js/ui/cart.js:62
msgid "The items in your cart are reserved for you for one minute."
msgid_plural "The items in your cart are reserved for you for {num} minutes."
msgstr[0] "สินค้าในตะกร้าของคุณจะถูกจองไว้ให้คุณเป็นเวลา {num} นาที"
msgstr[0] ""
msgstr[1] ""
#: pretix/static/pretixpresale/js/ui/cart.js:83
msgid "Your cart has expired."

View File

@@ -405,7 +405,7 @@ def process_banktransfers(self, job: int, data: list) -> None:
# We need to sort prefixes by length with long ones first. In case we have an event with slug
# "CONF" and one with slug "CONF2022", we want CONF2022 to match first, to avoid the parser
# thinking "2022" is already the order code.
"|".join([re.escape(p).replace("\\-", r"[\- ]*") for p in sorted(prefixes, key=lambda p: len(p), reverse=True)]),
"|".join(sorted([re.escape(p).replace("\\-", r"[\- ]*") for p in prefixes], key=lambda p: len(p), reverse=True)),
min(code_len_agg['min'] or 1, inr_len_agg['min'] or 1),
max(code_len_agg['max'] or 5, inr_len_agg['max'] or 5)
)

View File

@@ -834,56 +834,3 @@ def test_ambigious_date_with_region(env, job):
with scopes_disabled():
assert env[2].payments.last().info_data["date"] == "2016-05-03"
@pytest.mark.django_db
def test_event_name_prefix_contains_dash(env, orga_job):
event, user, o1, o2 = env
slugs = ['dummy-2', 'dummy2345']
for slug in slugs:
event = Event.objects.create(
organizer=event.organizer, name=slug.upper(), slug=slug,
date_from=now(), plugins='pretix.plugins.banktransfer,pretix.plugins.paypal'
)
with scopes_disabled():
o1.event = Event.objects.get(slug="dummy2345")
o1.save()
process_banktransfers(orga_job, [{
'payer': 'Karla Kundin',
'reference': f'DUMMY2345-{o1.code}',
'date': '2016-01-26',
'amount': '23.00'
}])
with scopes_disabled():
job = BankImportJob.objects.last()
t = job.transactions.last()
assert t.state == BankTransaction.STATE_VALID
@pytest.mark.xfail
@pytest.mark.django_db
def test_event_name_prefix_multiple_dashes(env, orga_job):
# We decided to ignore the case of multiple events where the event slugs only differ in dashes
# for now. If we change that, switch this test case from xfail to regular test.
event, user, o1, o2 = env
slugs = ['dummy-2', 'dummy--2', 'dummy2345']
for slug in slugs:
event = Event.objects.create(
organizer=event.organizer, name=slug.upper(), slug=slug,
date_from=now(), plugins='pretix.plugins.banktransfer,pretix.plugins.paypal'
)
with scopes_disabled():
o1.event = Event.objects.get(slug="dummy-2")
o1.save()
process_banktransfers(orga_job, [{
'payer': 'Karla Kundin',
'reference': f'DUMMY2-{o1.code}',
'date': '2016-01-26',
'amount': '23.00'
}])
with scopes_disabled():
job = BankImportJob.objects.last()
t = job.transactions.last()
assert t.state == BankTransaction.STATE_VALID