Compare commits

..

1 Commits

Author SHA1 Message Date
Raphael Michel
2a61c21feb Drop support for Python 3.9 2026-01-08 11:16:58 +01:00
12 changed files with 222 additions and 216 deletions

View File

@@ -1,5 +1,5 @@
sphinx==9.1.*
sphinx-rtd-theme~=3.1.0rc2
sphinx-rtd-theme~=3.1.0rc1
sphinxcontrib-httpdomain~=1.8.1
sphinxcontrib-images~=1.0.1
sphinxcontrib-jquery~=4.1

View File

@@ -1,6 +1,6 @@
-e ../
sphinx==9.1.*
sphinx-rtd-theme~=3.1.0rc2
sphinx-rtd-theme~=3.1.0rc1
sphinxcontrib-httpdomain~=1.8.1
sphinxcontrib-images~=1.0.1
sphinxcontrib-jquery~=4.1

View File

@@ -29,7 +29,7 @@ dependencies = [
"arabic-reshaper==3.0.0", # Support for Arabic in reportlab
"babel",
"BeautifulSoup4==4.14.*",
"bleach==6.3.*",
"bleach==6.2.*",
"celery==5.6.*",
"chardet==5.2.*",
"cryptography>=44.0.0",
@@ -37,8 +37,8 @@ dependencies = [
"defusedcsv>=1.1.0",
"dnspython==2.*",
"Django[argon2]==4.2.*,>=4.2.26",
"django-bootstrap3==26.1",
"django-compressor==4.6.0",
"django-bootstrap3==25.2",
"django-compressor==4.5.1",
"django-countries==8.2.*",
"django-filter==25.1",
"django-formset-js-improved==0.5.0.4",
@@ -50,13 +50,13 @@ dependencies = [
"django-localflavor==5.0",
"django-markup",
"django-oauth-toolkit==2.3.*",
"django-otp==1.7.*",
"django-phonenumber-field==8.4.*",
"django-otp==1.6.*",
"django-phonenumber-field==8.3.*",
"django-redis==6.0.*",
"django-scopes==2.0.*",
"django-statici18n==2.6.*",
"djangorestframework==3.16.*",
"dnspython==2.8.*",
"dnspython==2.7.*",
"drf_ujson2==1.7.*",
"geoip2==5.*",
"importlib_metadata==8.*", # Polyfill, we can probably drop this once we require Python 3.10+
@@ -65,7 +65,7 @@ dependencies = [
"kombu==5.6.*",
"libsass==0.23.*",
"lxml",
"markdown==3.10", # 3.3.5 requires importlib-metadata>=4.4, but django-bootstrap3 requires importlib-metadata<3.
"markdown==3.9", # 3.3.5 requires importlib-metadata>=4.4, but django-bootstrap3 requires importlib-metadata<3.
# We can upgrade markdown again once django-bootstrap3 upgrades or once we drop Python 3.6 and 3.7
"mt-940==4.30.*",
"oauthlib==3.3.*",
@@ -75,7 +75,7 @@ dependencies = [
"paypal-checkout-serversdk==1.0.*",
"PyJWT==2.10.*",
"phonenumberslite==9.0.*",
"Pillow==12.1.*",
"Pillow==11.3.*",
"pretix-plugin-build",
"protobuf==6.33.*",
"psycopg2-binary",
@@ -89,10 +89,10 @@ dependencies = [
"pytz-deprecation-shim==0.1.*",
"pyuca",
"qrcode==8.2",
"redis==7.1.*",
"redis==7.0.*",
"reportlab==4.4.*",
"requests==2.32.*",
"sentry-sdk==2.49.*",
"sentry-sdk==2.48.*",
"sepaxml==2.7.*",
"stripe==7.9.*",
"text-unidecode==1.*",
@@ -113,7 +113,7 @@ dev = [
"fakeredis==2.33.*",
"flake8==7.3.*",
"freezegun",
"isort==7.0.*",
"isort==6.1.*",
"pep8-naming==0.15.*",
"potypo",
"pytest-asyncio>=0.24",
@@ -123,7 +123,7 @@ dev = [
"pytest-mock==3.15.*",
"pytest-sugar",
"pytest-xdist==3.8.*",
"pytest==9.0.*",
"pytest==8.4.*",
"responses",
]

View File

@@ -32,14 +32,13 @@
# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations under the License.
import html
import re
import urllib.parse
import bleach
import markdown
from bleach import DEFAULT_CALLBACKS, html5lib_shim
from bleach.linkifier import build_email_re
from bleach import DEFAULT_CALLBACKS
from bleach.linkifier import build_email_re, build_url_re
from django import template
from django.conf import settings
from django.core import signing
@@ -125,23 +124,6 @@ ALLOWED_ATTRIBUTES = {
ALLOWED_PROTOCOLS = {'http', 'https', 'mailto', 'tel'}
def build_url_re(tlds=tld_set, protocols=html5lib_shim.allowed_protocols):
# Differs from bleach regex by allowing { and } in URL to allow placeholders in URL parameters
return re.compile(
r"""\(* # Match any opening parentheses.
\b(?<![@.])(?:(?:{0}):/{{0,3}}(?:(?:\w+:)?\w+@)?)? # http://
([\w-]+\.)+(?:{1})(?:\:[0-9]+)?(?!\.\w)\b # xx.yy.tld(:##)?
(?:[/?][^\s\|\\\^`<>"]*)?
# /path/zz (excluding "unsafe" chars from RFC 3986,
# except for # and ~, which happen in practice)
""".format(
"|".join(sorted(protocols)), "|".join(sorted(tlds))
),
re.IGNORECASE | re.VERBOSE | re.UNICODE,
)
URL_RE = SimpleLazyObject(lambda: build_url_re(tlds=sorted(tld_set, key=len, reverse=True)))
EMAIL_RE = SimpleLazyObject(lambda: build_email_re(tlds=sorted(tld_set, key=len, reverse=True)))
@@ -351,14 +333,8 @@ def markdown_compile_email(source, allowed_tags=None, allowed_attributes=ALLOWED
# This is a workaround to fix placeholders in URL targets
def context_callback(attrs, new=False):
if (None, "href") in attrs and "{" in attrs[None, "href"]:
# Do not use MODE_RICH_TO_HTML to avoid recursive linkification.
# We want to esacpe the end result, however, we need to unescape the input to prevent & being turned
# to &amp;amp; because the input is already escaped by the markdown parser.
attrs[None, "href"] = escape(format_map(
html.unescape(attrs[None, "href"]),
context=context,
mode=SafeFormatter.MODE_RICH_TO_PLAIN
))
# Do not use MODE_RICH_TO_HTML to avoid recursive linkification
attrs[None, "href"] = escape(format_map(attrs[None, "href"], context=context, mode=SafeFormatter.MODE_RICH_TO_PLAIN))
return attrs
context_callbacks.append(context_callback)

View File

@@ -814,7 +814,7 @@ class OrganizerPluginStateLogEntryType(LogEntryType):
if app and hasattr(app, 'PretixPluginMeta'):
return {
'href': reverse('control:organizer.settings.plugins', kwargs={
'organizer': logentry.organizer.slug,
'organizer': logentry.event.organizer.slug,
}) + '#plugin_' + logentry.parsed_data['plugin'],
'val': app.PretixPluginMeta.name
}

View File

@@ -55,7 +55,7 @@
<div class="col-md-2">
{% bootstrap_field formset.empty_form.overwrite layout='inline' form_group_class="" %}
</div>
{{ formset.empty_form.value_map.as_hidden }}
{{ f.value_map.as_hidden }}
<div class="col-md-2 text-right flip">
<i class="fa fa-warning hidden" data-toggle="tooltip" title=""></i>
<button type="button" class="btn btn-default hidden" data-edit-value-map data-toggle="modal"

View File

@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-01-05 12:12+0000\n"
"PO-Revision-Date: 2026-01-08 04:00+0000\n"
"PO-Revision-Date: 2026-01-05 15:14+0000\n"
"Last-Translator: Jiří Pastrňák <jiri@pastrnak.email>\n"
"Language-Team: Czech <https://translate.pretix.eu/projects/pretix/pretix/cs/>"
"\n"
@@ -1881,7 +1881,7 @@ msgstr "IČO"
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:99
#: pretix/presale/templates/pretixpresale/event/order.html:327
msgid "VAT ID"
msgstr "D"
msgstr "DPH"
#: pretix/base/exporters/invoices.py:216 pretix/base/exporters/invoices.py:217
#: pretix/base/exporters/invoices.py:218 pretix/base/exporters/invoices.py:219
@@ -1926,7 +1926,7 @@ msgstr "Příjemce"
#: pretix/control/templates/pretixcontrol/order/index.html:1064
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:111
msgid "Internal reference"
msgstr "Interní označení"
msgstr "Interní číslo"
#: pretix/base/exporters/invoices.py:226 pretix/base/models/tax.py:161
#: pretix/control/forms/event.py:1628
@@ -2594,7 +2594,7 @@ msgstr "Kód vstupenky"
#: pretix/base/modelimport_vouchers.py:272
#: pretix/plugins/checkinlists/exporters.py:527
msgid "Seat ID"
msgstr "ID místa"
msgstr "ID sedadla"
#: pretix/base/exporters/orderlist.py:623
#: pretix/plugins/checkinlists/exporters.py:528
@@ -2614,7 +2614,7 @@ msgstr "Řada"
#: pretix/base/exporters/orderlist.py:626
#: pretix/plugins/checkinlists/exporters.py:531
msgid "Seat number"
msgstr "Číslo místa"
msgstr "Číslo sedadla"
#: pretix/base/exporters/orderlist.py:627
#: pretix/control/templates/pretixcontrol/order/change.html:224
@@ -3345,7 +3345,7 @@ msgstr "Prosím uveďte kratší jméno."
#: pretix/base/forms/questions.py:314
msgctxt "phonenumber"
msgid "International area code"
msgstr "Mezinárodní předvolba"
msgstr "PSČ"
#: pretix/base/forms/questions.py:340
msgctxt "phonenumber"
@@ -3561,7 +3561,7 @@ msgstr "Firma nebo instituce"
#: pretix/base/forms/widgets.py:238
msgid "Individual customer"
msgstr "Fyzická osoba"
msgstr "Zákazník"
#: pretix/base/invoicing/email.py:50
msgid "Email invoice directly to accounting department"
@@ -3571,15 +3571,19 @@ msgstr "Zaslat fakturu přímo účetnímu oddělení"
msgid ""
"If not selected, the invoice will be sent to you using the email address "
"listed above."
msgstr "Pokud tuto možnost nezvolíte, zašleme fakturu na e-mail uvedený výše."
msgstr ""
#: pretix/base/invoicing/email.py:55
#, fuzzy
#| msgid "Email address verified"
msgid "Email address for invoice"
msgstr "E-mail pro zaslání faktury"
msgstr "E-mailová adresa ověřena"
#: pretix/base/invoicing/email.py:91
#, fuzzy
#| msgid "Preview email"
msgid "PDF via email"
msgstr "PDF do e-mailu"
msgstr "Náhled e-mailu"
#: pretix/base/invoicing/national.py:37
msgctxt "italian_invoice"
@@ -3638,7 +3642,7 @@ msgstr "Faktura od"
#: pretix/base/invoicing/pdf.py:433
msgctxt "invoice"
msgid "Invoice to"
msgstr "Fakturováno"
msgstr "Faktura na"
#: pretix/base/invoicing/pdf.py:470 pretix/base/invoicing/pdf.py:1221
msgctxt "invoice"
@@ -3668,12 +3672,12 @@ msgstr "Datum zrušení"
#: pretix/base/invoicing/pdf.py:504
msgctxt "invoice"
msgid "Original invoice date"
msgstr "Datum originální faktury"
msgstr "Původní datum faktury"
#: pretix/base/invoicing/pdf.py:511 pretix/base/invoicing/pdf.py:1258
msgctxt "invoice"
msgid "Invoice date"
msgstr "Datum vystavení"
msgstr "Datum faktury"
#: pretix/base/invoicing/pdf.py:527
msgctxt "invoice"
@@ -3700,7 +3704,7 @@ msgstr "Faktura č. {num}"
#, python-brace-format
msgctxt "invoice"
msgid "Customer reference: {reference}"
msgstr "Interní označení: {reference}"
msgstr "Referenční číslo zákazníka: {reference}"
#: pretix/base/invoicing/pdf.py:668
msgctxt "invoice"
@@ -3728,7 +3732,7 @@ msgstr "Faktura"
#: pretix/presale/templates/pretixpresale/event/order.html:244
msgctxt "invoice"
msgid "Cancellation"
msgstr "Storno"
msgstr "Zrušení"
#: pretix/base/invoicing/pdf.py:732 pretix/base/invoicing/pdf.py:740
msgctxt "invoice"
@@ -3764,13 +3768,13 @@ msgstr "Suma"
#, python-brace-format
msgctxt "invoice"
msgid "Single price: {net_price} net / {gross_price} gross"
msgstr "Jednotková cena: {net_price} netto / {gross_price} brutto"
msgstr "Jednotlivá cena: {net_price} netto / {gross_price} brutto"
#: pretix/base/invoicing/pdf.py:900
#, python-brace-format
msgctxt "invoice"
msgid "Single price: {price}"
msgstr "Jednotková cena: {price}"
msgstr "Jednotná cena: {price}"
#: pretix/base/invoicing/pdf.py:943 pretix/base/invoicing/pdf.py:948
msgctxt "invoice"
@@ -3798,10 +3802,12 @@ msgid "Remaining amount"
msgstr "Zbývající částka"
#: pretix/base/invoicing/pdf.py:1008
#, python-brace-format
#, fuzzy, python-brace-format
#| msgctxt "invoice"
#| msgid "Event date: {date_range}"
msgctxt "invoice"
msgid "Invoice period: {daterange}"
msgstr "Fakturované období: {daterange}"
msgstr "Datum akce: {date_range}"
#: pretix/base/invoicing/pdf.py:1039
msgctxt "invoice"
@@ -4169,7 +4175,7 @@ msgstr "Bylo nalezeno více shodných míst."
#: pretix/base/modelimport_orders.py:628
#: pretix/base/modelimport_vouchers.py:293
msgid "No matching seat was found."
msgstr "Nebylo nalezeno žádné odpovídající místo."
msgstr "Nebylo nalezeno žádné odpovídající sedadlo."
#: pretix/base/modelimport_orders.py:631
#: pretix/base/modelimport_vouchers.py:296 pretix/base/services/cart.py:220
@@ -4274,7 +4280,7 @@ msgstr "Pokud si vyberete místo, musíte si vybrat datum."
#: pretix/base/modelimport_vouchers.py:299 pretix/base/models/vouchers.py:516
msgid "You need to choose a specific product if you select a seat."
msgstr "Pokud si vyberete místo, musíte zvolit konkrétní produkt."
msgstr "Pokud si vyberete sedadlo, musíte si vybrat konkrétní produkt."
#: pretix/base/modelimport_vouchers.py:302 pretix/base/models/vouchers.py:519
msgid "Seat-specific vouchers can only be used once."
@@ -4283,7 +4289,7 @@ msgstr "Poukazy na konkrétní místo lze použít pouze jednou."
#: pretix/base/modelimport_vouchers.py:306 pretix/base/models/vouchers.py:522
#, python-brace-format
msgid "You need to choose the product \"{prod}\" for this seat."
msgstr "Pro toto místo je třeba vybrat produkt \"{prod}\"."
msgstr "Pro toto sedadlo je třeba vybrat produkt \"{prod}\"."
#: pretix/base/modelimport_vouchers.py:318 pretix/base/models/vouchers.py:288
#: pretix/control/templates/pretixcontrol/vouchers/index.html:129
@@ -5231,13 +5237,13 @@ msgstr ""
#, python-format
msgctxt "invoice"
msgid "Tax ID: %s"
msgstr "IČO: %s"
msgstr "DIČ: %s"
#: pretix/base/models/invoices.py:240 pretix/base/services/invoices.py:155
#, python-format
msgctxt "invoice"
msgid "VAT-ID: %s"
msgstr "DIČ: %s"
msgstr "IČO: %s"
#: pretix/base/models/items.py:93
msgid "Category name"
@@ -6440,7 +6446,7 @@ msgstr "Objednaný produkt \"{item}\" již není k dispozici."
#: pretix/base/models/orders.py:1066
#, python-brace-format
msgid "The seat \"{seat}\" is no longer available."
msgstr "Místo \"{seat}\" již není k dispozici."
msgstr "Sedadlo \"{seat}\" již není k dispozici.."
#: pretix/base/models/orders.py:1067
#, python-brace-format
@@ -6629,7 +6635,7 @@ msgstr "Obchodní zákazník"
#: pretix/base/models/orders.py:3407
msgid "This reference will be printed on your invoice for your convenience."
msgstr "Tato informace bude uvedena na faktuře pro vaše potřeby."
msgstr "Tento odkaz bude pro vaše potřeby vytištěn na faktuře."
#: pretix/base/models/orders.py:3534
msgid "Transmission type"
@@ -6825,7 +6831,7 @@ msgstr "Řada {number}"
#: pretix/base/models/seating.py:205
#, python-brace-format
msgid "Seat {number}"
msgstr "Místo {number}"
msgstr "Sedadlo {number}"
#: pretix/base/models/tax.py:143
msgid "Standard rates"
@@ -7267,7 +7273,7 @@ msgstr ""
#: pretix/base/models/vouchers.py:507
#, python-brace-format
msgid "The specified seat ID \"{id}\" does not exist for this event."
msgstr "Zadané ID místa \"{id}\" pro tuto událost neexistuje."
msgstr "Zadané ID sedadla \"{id}\" pro tuto událost neexistuje."
#: pretix/base/models/vouchers.py:511
#, python-brace-format
@@ -7308,7 +7314,7 @@ msgstr "Tento produkt není v současné době k dispozici."
#: pretix/base/models/waitinglist.py:186
msgid "No seat with this product is currently available."
msgstr "K tomuto produktu nejsou v současné době k dispozici žádná místa."
msgstr "K tomuto produktu ne v současné době k dispozici žádné sedadlo."
#: pretix/base/models/waitinglist.py:189
msgid "A voucher has already been sent to this person."
@@ -8127,11 +8133,11 @@ msgstr ""
#: pretix/base/pdf.py:505
msgid "Seat: Full name"
msgstr "Místo: Celé jméno"
msgstr "Sedadlo: Celé jméno"
#: pretix/base/pdf.py:506
msgid "Ground floor, Row 3, Seat 4"
msgstr "Přízemí, řada 3, místo 4"
msgstr "Přízemí, řada 3, sedadlo 4"
#: pretix/base/pdf.py:508 pretix/base/pdf.py:514
#: pretix/control/forms/orders.py:344
@@ -8140,7 +8146,7 @@ msgstr "včetně všech daní"
#: pretix/base/pdf.py:511
msgid "Seat: zone"
msgstr "Místo: zóna"
msgstr "Sedadlo: zóna"
#: pretix/base/pdf.py:512
msgid "Ground floor"
@@ -8148,11 +8154,11 @@ msgstr "parket"
#: pretix/base/pdf.py:517
msgid "Seat: row"
msgstr "Místo: řada"
msgstr "sedadlo: řada"
#: pretix/base/pdf.py:522
msgid "Seat: seat number"
msgstr "Místo: číslo"
msgstr "sedadlo: číslo"
#: pretix/base/pdf.py:527
msgid "Date and time of first scan"
@@ -8548,7 +8554,7 @@ msgstr "Tento poukaz není platný pro tento produkt."
#: pretix/base/services/cart.py:191
msgid "This voucher is not valid for this seat."
msgstr "Tento poukaz není platný pro toto místo."
msgstr "Tento poukaz není platný pro toto sedadlo."
#: pretix/base/services/cart.py:193
msgid ""
@@ -10348,8 +10354,11 @@ msgid "Automatic, but prefer invoice date over event date"
msgstr ""
#: pretix/base/settings.py:1169 pretix/base/settings.py:1180
#, fuzzy
#| msgctxt "invoice"
#| msgid "Invoice date"
msgid "Invoice date"
msgstr "Datum vystavení"
msgstr "Datum faktury"
#: pretix/base/settings.py:1173
#, fuzzy
@@ -10402,11 +10411,11 @@ msgstr "ulice Alberta-Einstein 52"
#: pretix/base/settings.py:1299
msgid "Domestic tax ID"
msgstr "Lokální identifikační číslo"
msgstr "Domácí daňové identifikační číslo"
#: pretix/base/settings.py:1300
msgid "e.g. tax number in Germany, ABN in Australia, …"
msgstr "např. IČO v Česku, daňové číslo v Německu, číslo ABN v Austrálii, …"
msgstr "např. daňové číslo v Německu, číslo ABN v Austrálii, …"
#: pretix/base/settings.py:1310
msgid "EU VAT ID"
@@ -12698,7 +12707,7 @@ msgstr "Pan"
#: pretix/base/settings.py:3873
msgctxt "person_name"
msgid "Degree (after name)"
msgstr "Titul (za jménem)"
msgstr "titul (za jménem)"
#: pretix/base/settings.py:3895
msgctxt "person_name_sample"
@@ -12913,7 +12922,7 @@ msgstr "Očekávaný název hostitele podle konfigurace"
#: pretix/base/templates/400_hostname.html:26
msgid "Received headers"
msgstr "Přijaté hlavičky"
msgstr "Přijaté titulky"
#: pretix/base/templates/400_hostname.html:32
msgid "ignored"
@@ -15742,7 +15751,7 @@ msgstr "Doplňkový produkt k"
#: pretix/presale/templates/pretixpresale/event/checkout_membership.html:23
#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:101
msgid "Seat"
msgstr "Místo"
msgstr "Sedadlo"
#: pretix/control/forms/orders.py:348
#: pretix/control/templates/pretixcontrol/order/change.html:182
@@ -16548,7 +16557,7 @@ msgstr "Pozice #{posid}: Použité členství bylo změněno."
#: pretix/control/logdisplay.py:117
#, python-brace-format
msgid "Position #{posid}: Seat \"{old_seat}\" changed to \"{new_seat}\"."
msgstr "Pozice #{posid}: Místo \" {old_seat}\" se změnilo na \"{new_seat}\"."
msgstr "Pozice #{posid}: Sedadlo \" {old_seat}\" se změnilo na \"{new_seat}\"."
#: pretix/control/logdisplay.py:127
#, python-brace-format
@@ -18632,7 +18641,7 @@ msgstr "běží v režimu vývoje"
#: pretix/presale/templates/pretixpresale/postmessage.html:27
#: pretix/presale/templates/pretixpresale/waiting.html:42
msgid "If this takes longer than a few minutes, please contact us."
msgstr "Pokud akce trvá déle než několik minut, kontaktujte nás."
msgstr "Pokud to trvá déle než několik minut, kontaktujte nás."
#: pretix/control/templates/pretixcontrol/boxoffice/payment.html:4
#: pretix/control/templates/pretixcontrol/organizers/devices.html:71
@@ -21578,8 +21587,9 @@ msgid "August"
msgstr ""
#: pretix/control/templates/pretixcontrol/global_sysreport.html:24
#, fuzzy
msgid "September"
msgstr "Září"
msgstr "Číslo sedadla"
#: pretix/control/templates/pretixcontrol/global_sysreport.html:25
msgid "October"
@@ -23299,12 +23309,12 @@ msgstr "Celkem"
#: pretix/control/templates/pretixcontrol/order/index.html:789
#: pretix/presale/templates/pretixpresale/event/order.html:210
msgid "Successful payments"
msgstr "Úspěšné platby"
msgstr ""
#: pretix/control/templates/pretixcontrol/order/index.html:798
#: pretix/presale/templates/pretixpresale/event/order.html:219
msgid "Pending total"
msgstr "Čeká na platbu"
msgstr ""
#: pretix/control/templates/pretixcontrol/order/index.html:824
#: pretix/control/templates/pretixcontrol/search/payments.html:88
@@ -28346,7 +28356,7 @@ msgstr ""
#: pretix/control/views/organizer.py:3483
#: pretix/control/views/organizer.py:3527
msgid "Your changes could not be saved."
msgstr "Vaše změny nebyly uloženy."
msgstr ""
#: pretix/control/views/organizer.py:982
msgid "The selected team cannot be deleted."
@@ -30843,7 +30853,7 @@ msgstr "Stránka %d z %d"
#: pretix/plugins/reports/exporters.py:210
#, python-format
msgid "Page %d"
msgstr "Stránka %dd"
msgstr "Strana %dd"
#: pretix/plugins/reports/exporters.py:212
#, python-format
@@ -33189,7 +33199,7 @@ msgstr "Váš košík"
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:27
#: pretix/presale/templates/pretixpresale/event/fragment_cart_box.html:18
msgid "Cart expired"
msgstr "Rezervace košíku vypršela"
msgstr "Nákupní košík vypršel"
#: pretix/presale/templates/pretixpresale/event/checkout_base.html:36
msgid "Show full cart"
@@ -33420,7 +33430,7 @@ msgstr ""
#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:9
msgid "Before we continue, we need you to answer some questions."
msgstr "Pro dokončení objednávky potřebujeme následující údaje."
msgstr "Před provedením objednávky prosím odpovězte na níže uvedené otázky."
#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:49
msgid "Auto-fill with address"
@@ -33434,7 +33444,7 @@ msgstr "Vyplnit formulář"
#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:93
#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:170
msgid "Copy answers from above"
msgstr "Zkopírujte odpovědi z předchozího"
msgstr "Zkopírujte odpovědi z výše uvedených položek"
#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:150
msgid "Auto-fill with profile"
@@ -33559,7 +33569,7 @@ msgstr "Zobrazit varianty"
#: pretix/presale/templates/pretixpresale/event/voucher.html:147
#: pretix/presale/templates/pretixpresale/event/voucher.html:304
msgid "Original price:"
msgstr "Původní cena:"
msgstr "Originální cena:"
#: pretix/presale/templates/pretixpresale/event/fragment_addon_choice.html:136
#: pretix/presale/templates/pretixpresale/event/fragment_addon_choice.html:278
@@ -33707,7 +33717,7 @@ msgstr "Celková cena"
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:46
msgid "Seat:"
msgstr "Místo:"
msgstr "Sedadlo:"
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:61
msgctxt "subevent"
@@ -33852,12 +33862,16 @@ msgstr ""
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:514
#: pretix/presale/templates/pretixpresale/fragment_modals.html:48
#, fuzzy
#| msgid "Event description"
msgid "Renew reservation"
msgstr "Obnovit rezervaci"
msgstr "Popis akce"
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:526
#, fuzzy
#| msgid "Reservation period"
msgid "Reservation renewed"
msgstr "Rezervace obnovena"
msgstr "Doba rezervace"
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:532
msgid "Overview of your ordered products."
@@ -34162,12 +34176,14 @@ msgstr "Zobrazit obraz %(item)s v celé velikosti"
#: pretix/presale/templates/pretixpresale/event/fragment_product_list.html:131
#: pretix/presale/templates/pretixpresale/event/fragment_product_list.html:288
#, python-format
#, fuzzy, python-format
#| msgid "%(count)s event"
#| msgid_plural "%(count)s events"
msgid "%(amount)s× in your cart"
msgid_plural "%(amount)s× in your cart"
msgstr[0] "%(amount)s× ve vašem košíku"
msgstr[1] "%(amount)s× ve vašem košíku"
msgstr[2] "%(amount)s× ve vašem košíku"
msgstr[0] "%(count)s akce"
msgstr[1] "%(count)s akce"
msgstr[2] "%(count)s akcí"
#: pretix/presale/templates/pretixpresale/event/fragment_product_list.html:209
#: pretix/presale/templates/pretixpresale/event/fragment_product_list.html:374
@@ -34551,7 +34567,7 @@ msgstr "Změňte své údaje"
#: pretix/presale/templates/pretixpresale/event/order.html:335
msgid "Internal Reference"
msgstr "Interní označení"
msgstr "Interní reference"
#: pretix/presale/templates/pretixpresale/event/order.html:354
msgctxt "action"
@@ -35615,12 +35631,12 @@ msgid ""
"Your cart timeout was extended. Please note that some of the prices in your "
"cart changed."
msgstr ""
"Platnost vašeho košíku byla prodloužena. Berte prosím na vědomí, že ceny "
"některých položek ve vašem košíku se změnily."
#: pretix/presale/views/cart.py:573
#, fuzzy
#| msgid "Your cart has been updated."
msgid "Your cart timeout was extended."
msgstr "Platnost vašeho košíku byla prodloužena."
msgstr "Váš košík byl aktualizován."
#: pretix/presale/views/cart.py:588
msgid "The products have been successfully added to your cart."

View File

@@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-01-05 12:13+0000\n"
"PO-Revision-Date: 2026-01-08 04:00+0000\n"
"Last-Translator: Jiří Pastrňák <jiri@pastrnak.email>\n"
"PO-Revision-Date: 2025-09-08 18:57+0000\n"
"Last-Translator: Alois Pospíšil <alois.pospisil@gmail.com>\n"
"Language-Team: Czech <https://translate.pretix.eu/projects/pretix/pretix-js/"
"cs/>\n"
"Language: cs\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
"X-Generator: Weblate 5.15.1\n"
"X-Generator: Weblate 5.13\n"
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:56
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:62
@@ -416,7 +416,7 @@ msgstr ""
#: pretix/static/pretixbase/js/asynctask.js:276
msgid "If this takes longer than a few minutes, please contact us."
msgstr "Pokud akce trvá déle než několik minut, kontaktujte nás."
msgstr ""
#: pretix/static/pretixbase/js/asynctask.js:331
msgid "Close message"
@@ -734,7 +734,7 @@ msgstr ""
#: pretix/static/pretixpresale/js/ui/cart.js:49
msgid "Cart expired"
msgstr "Rezervace košíku vypršela"
msgstr "Nákupní košík vypršel"
#: pretix/static/pretixpresale/js/ui/cart.js:58
#: pretix/static/pretixpresale/js/ui/cart.js:84
@@ -753,23 +753,27 @@ msgstr[2] ""
#: pretix/static/pretixpresale/js/ui/cart.js:83
msgid "Your cart has expired."
msgstr "Platnost rezervace vašeho košíku vypršela."
msgstr "Nákupní košík vypršel."
#: pretix/static/pretixpresale/js/ui/cart.js:86
#, fuzzy
#| msgid ""
#| "The items in your cart are no longer reserved for you. You can still "
#| "complete your order as long as theyre available."
msgid ""
"The items in your cart are no longer reserved for you. You can still "
"complete your order as long as they're available."
msgstr ""
"Produkty v nákupním košíku již nejsou rezervovány. Svou objednávku se přesto "
"můžete pokusit dokončit, některé položky však už nemusí být dostupné."
"Produkty v nákupním košíku již nejsou pro vás rezervovány. Pokud je lístek "
"stále dostupný, můžete objednávku dokončit."
#: pretix/static/pretixpresale/js/ui/cart.js:87
msgid "Do you want to renew the reservation period?"
msgstr "Chcete obnovit rezervaci košíku?"
msgstr ""
#: pretix/static/pretixpresale/js/ui/cart.js:90
msgid "Renew reservation"
msgstr "Obnovit rezervaci"
msgstr ""
#: pretix/static/pretixpresale/js/ui/main.js:194
msgid "The organizer keeps %(currency)s %(amount)s"

View File

@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-01-05 12:12+0000\n"
"PO-Revision-Date: 2026-01-06 23:00+0000\n"
"PO-Revision-Date: 2025-11-22 23:00+0000\n"
"Last-Translator: CVZ-es <damien.bremont@casadevelazquez.org>\n"
"Language-Team: Spanish <https://translate.pretix.eu/projects/pretix/pretix/"
"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.15.1\n"
"X-Generator: Weblate 5.14.3\n"
#: pretix/_base_settings.py:87
msgid "English"
@@ -3870,7 +3870,7 @@ msgstr ""
#: pretix/base/invoicing/peppol.py:164
msgid "The Peppol participant ID is not registered on the Peppol network."
msgstr "El ID de participante de Peppol no está registrado en la red Peppol."
msgstr ""
#: pretix/base/invoicing/peppol.py:184
msgid "Peppol participant ID"
@@ -8445,8 +8445,6 @@ msgid ""
"Some products can no longer be purchased and have been removed from your "
"cart for the following reason: %s"
msgstr ""
"Algunos productos ya no se pueden comprar y se han eliminado de su carrito "
"por el siguiente motivo: %s"
#: pretix/base/services/cart.py:117
msgid ""
@@ -9628,15 +9626,21 @@ msgid "Uncategorized"
msgstr "Sin categorías"
#: pretix/base/services/tax.py:43
#, fuzzy
#| msgid ""
#| "Your VAT ID could not be checked, as the VAT checking service of your "
#| "country is currently not available. We will therefore need to charge VAT "
#| "on your invoice. You can get the tax amount back via the VAT "
#| "reimbursement process."
msgid ""
"Your VAT ID could not be checked, as the VAT checking service of your "
"country is currently not available. We will therefore need to charge you the "
"same tax rate as if you did not enter a VAT ID."
msgstr ""
"No se ha podido verificar su número de identificación fiscal, ya que el "
"servicio de verificación del IVA de su país no está disponible en este "
"momento. Por lo tanto, tendremos que cobrarle el mismo tipo impositivo que "
"si no hubiera introducido ningún número de identificación fiscal."
"Tu Identificador IVA no puede ser chequeado, porque el verificador para tu "
"país no está disponible actualmente. Nosotros deberemos de cargar el IVA en "
"tu compra. Puedes obtener el total del impuesto mediante el proceso de "
"reembolso de IVA."
#: pretix/base/services/tax.py:47 pretix/base/services/tax.py:366
#: pretix/base/services/tax.py:393
@@ -10077,18 +10081,24 @@ msgid "Ask for VAT ID"
msgstr "Solicitar ID de IVA"
#: pretix/base/settings.py:632
#, python-brace-format
#, fuzzy, python-brace-format
#| msgid ""
#| "Only works if an invoice address is asked for. VAT ID is never required "
#| "and only requested from business customers in the following countries: "
#| "{countries}"
msgid ""
"Only works if an invoice address is asked for. VAT ID is only requested from "
"business customers in the following countries: {countries}."
msgstr ""
"Solo funciona si se solicita una dirección de facturación. El número de "
"identificación fiscal solo se solicita a los clientes empresariales de los "
"siguientes países: {countries}."
"Solo funciona si se solicita una dirección de factura. El ID de IVA nunca es "
"obligatorio y solo se solicita a clientes comerciales en los siguientes "
"países: {countries}"
#: pretix/base/settings.py:651
#, fuzzy
#| msgid "Require name"
msgid "Require VAT ID in"
msgstr "Solicitar número de identificación fiscal en"
msgstr "Requerir nombre"
#: pretix/base/settings.py:657
msgid ""
@@ -10096,10 +10106,6 @@ msgid ""
"ID in all countries. VAT ID will be required for all business addresses in "
"the selected countries."
msgstr ""
"El número de identificación fiscal es opcional por defecto, ya que no todas "
"las empresas tienen asignado un número de identificación fiscal en todos los "
"países. El número de identificación fiscal será obligatorio para todas las "
"direcciones comerciales en los países seleccionados."
#: pretix/base/settings.py:672
msgid "Invoice address explanation"
@@ -13832,9 +13838,11 @@ msgstr ""
"mismo origen\"."
#: pretix/base/views/js_helpers.py:41
#, fuzzy
#| msgid "ID"
msgctxt "tax_id_swiss"
msgid "UID"
msgstr "UID"
msgstr "ID"
#. Translators: Only translate to French (IDE) and Italien (IDI), otherwise keep the same
#. Awareness around VAT IDs differes by EU country. For example, in Germany the VAT ID is assigned
@@ -13844,27 +13852,35 @@ msgstr "UID"
#. number (Partita IVA) and also used on domestic transactions. So someone who never purchased something international
#. for their company, might still know the value, if we call it the right way and not just "VAT ID".
#: pretix/base/views/js_helpers.py:49
#, fuzzy
#| msgid "VAT ID"
msgctxt "tax_id_italy"
msgid "VAT ID / P.IVA"
msgstr "Número de identificación fiscal / P.IVA"
msgstr "Identificador IVA"
#. Translators: Translate to only "P.IVA" in Italian, keep second part as-is in other languages
#: pretix/base/views/js_helpers.py:50
#, fuzzy
#| msgid "VAT ID"
msgctxt "tax_id_greece"
msgid "VAT ID / TIN"
msgstr "Número de identificación fiscal / TIN"
msgstr "Identificador IVA"
#. Translators: Translate to only "ΑΦΜ" in Greek
#: pretix/base/views/js_helpers.py:51
#, fuzzy
#| msgid "VAT ID"
msgctxt "tax_id_spain"
msgid "VAT ID / NIF"
msgstr "Número de identificación fiscal / NIF"
msgstr "Identificador IVA"
#. Translators: Translate to only "NIF" in Spanish
#: pretix/base/views/js_helpers.py:52
#, fuzzy
#| msgid "VAT ID"
msgctxt "tax_id_portugal"
msgid "VAT ID / NIF"
msgstr "NIF"
msgstr "Identificador IVA"
#: pretix/base/views/tasks.py:185
msgid "An unexpected error has occurred, please try again later."
@@ -14420,9 +14436,6 @@ msgid ""
"Formatting is not supported, as some accounting departments process mail "
"automatically and do not handle formatted emails properly."
msgstr ""
"No se admite el formato, ya que algunos departamentos de contabilidad "
"procesan el correo automáticamente y no gestionan correctamente los correos "
"electrónicos con formato."
#: pretix/control/forms/event.py:1356
msgid ""
@@ -14876,7 +14889,7 @@ msgstr "Pagado"
#: pretix/control/forms/filter.py:1304
msgctxt "subevent"
msgid "Date doesn't start in selected date range."
msgstr "La fecha no comienza en el intervalo de fechas seleccionado."
msgstr ""
#: pretix/control/forms/filter.py:1360 pretix/control/forms/filter.py:1827
msgid "Shop live and presale running"
@@ -28799,9 +28812,6 @@ msgid ""
"automatically. We recommend that you rename these in your source file to "
"avoid problems during import."
msgstr ""
"Varias columnas del archivo CSV tienen el mismo nombre y se han renombrado "
"automáticamente. Le recomendamos que cambie el nombre de estas columnas en "
"su archivo de origen para evitar problemas durante la importación."
#: pretix/control/views/modelimport.py:188
msgid "The import was successful."
@@ -30473,7 +30483,7 @@ msgstr ""
#: pretix/plugins/banktransfer/camtimport.py:33
msgid "Empty file or unknown format."
msgstr "Archivo vacío o formato desconocido."
msgstr ""
#: pretix/plugins/banktransfer/payment.py:69
msgid ""
@@ -33043,17 +33053,16 @@ msgid "Przelewy24"
msgstr "Przelewy24"
#: pretix/plugins/stripe/payment.py:417 pretix/plugins/stripe/payment.py:1836
#, fuzzy
#| msgid "Payment by bank transfer"
msgid "Pay by bank"
msgstr "Pagar por transferencia bancaria"
msgstr "Pago por transferencia bancaria"
#: pretix/plugins/stripe/payment.py:422
msgid ""
"Currently only available for charges in GBP and customers with UK bank "
"accounts, and in private preview for France and Germany."
msgstr ""
"Actualmente solo disponible para cargos en libra esterlina y clientes con "
"cuentas bancarias en el Reino Unido, y en vista previa privada para Francia "
"y Alemania."
#: pretix/plugins/stripe/payment.py:429 pretix/plugins/stripe/payment.py:1789
msgid "WeChat Pay"
@@ -33365,17 +33374,16 @@ msgstr ""
"favor, tenga a mano su información de acceso."
#: pretix/plugins/stripe/payment.py:1835
#, fuzzy
#| msgid "PayPal via Stripe"
msgid "Pay by bank via Stripe"
msgstr "Pagar por transferencia bancaria a través de Stripe"
msgstr "PayPal via Stripe"
#: pretix/plugins/stripe/payment.py:1841
msgid ""
"Pay by bank allows you to authorize a secure Open Banking payment from your "
"banking app. Currently available only with a UK bank account."
msgstr ""
"El pago por banco te permite autorizar un pago seguro de banca abierta desde "
"tu aplicación bancaria. Actualmente solo disponible con una cuenta bancaria "
"del Reino Unido."
#: pretix/plugins/stripe/payment.py:1861
msgid "PayPal via Stripe"
@@ -33394,16 +33402,22 @@ msgstr ""
"suecas Swish y BankID. Por favor, ten tu app preparada."
#: pretix/plugins/stripe/payment.py:1893
#, fuzzy
#| msgid "giropay via Stripe"
msgid "PromptPay via Stripe"
msgstr "PromptPay a través de Stripe"
msgstr "giropay via Stripe"
#: pretix/plugins/stripe/payment.py:1898
#, fuzzy
#| msgid ""
#| "This payment method is available to MobilePay app users in Denmark and "
#| "Finland. Please have your app ready."
msgid ""
"This payment method is available to PromptPay users in Thailand. Please have "
"your app ready."
msgstr ""
"Este método de pago está disponible para los usuarios de PromptPay en "
"Tailandia. Por favor, tenga su aplicación lista."
"Este modo de pago está disponible para los usuarios de la aplicación "
"MobilePay en Dinamarca y Finlandia. Por favor, tenga su app preparada."
#: pretix/plugins/stripe/payment.py:1917
msgid "TWINT via Stripe"
@@ -33714,16 +33728,22 @@ msgid "Confirm payment: %(code)s"
msgstr "Confirmar pago: %(code)s"
#: pretix/plugins/stripe/templates/pretixplugins/stripe/sca.html:32
#, fuzzy
#| msgid ""
#| "Please scan the barcode below to complete your WeChat payment. Once you "
#| "have completed your payment, you can refresh this page."
msgid ""
"Please scan the QR code below to complete your PromptPay payment. Once you "
"have completed your payment, you can refresh this page."
msgstr ""
"Escanee el código QR que aparece a continuación para completar su pago con "
"PromptPay. Una vez que haya completado el pago, puede actualizar esta página."
"Escanee el código de barras a continuación para completar su pago de WeChat. "
"Una vez que haya completado su pago, puede actualizar esta página."
#: pretix/plugins/stripe/templates/pretixplugins/stripe/sca.html:37
#, fuzzy
#| msgid "Create QR code"
msgid "PromptPay QR code"
msgstr "Código QR de PromptPay"
msgstr "Crear código QR"
#: pretix/plugins/stripe/templates/pretixplugins/stripe/sca_return.html:20
msgid "Confirming your payment…"
@@ -34770,11 +34790,14 @@ msgstr[0] "Necesitas elegir exactamente una opción para esta categoría."
msgstr[1] "Necesitas elegir %(min_count)s opciones para esta categoría."
#: pretix/presale/templates/pretixpresale/event/fragment_addon_choice.html:26
#, python-format
#, fuzzy, python-format
#| msgid "You can choose at most one option from this category."
#| msgid_plural ""
#| "You can choose up to %(max_count)s options from this category."
msgid "You can choose one option from this category."
msgid_plural "You can choose up to %(max_count)s options from this category."
msgstr[0] "Puede elegir una opción de esta categoría."
msgstr[1] "Puede elegir hasta %(max_count)s opciones de esta categoría."
msgstr[0] "Puedes elegir como máximo una opción en esta categoría."
msgstr[1] "Puedes elegir como máximo %(max_count)s opciones en esta categoría."
#: pretix/presale/templates/pretixpresale/event/fragment_addon_choice.html:34
#, python-format
@@ -36862,8 +36885,6 @@ msgid ""
"Your cart timeout was extended. Please note that some of the prices in your "
"cart changed."
msgstr ""
"Se ha ampliado el tiempo de espera de su carrito. Tenga en cuenta que "
"algunos de los precios de su carrito han cambiado."
#: pretix/presale/views/cart.py:573
msgid "Your cart timeout was extended."

View File

@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: 1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-01-05 12:12+0000\n"
"PO-Revision-Date: 2026-01-06 23:00+0000\n"
"PO-Revision-Date: 2026-01-06 14:46+0000\n"
"Last-Translator: CVZ-es <damien.bremont@casadevelazquez.org>\n"
"Language-Team: French <https://translate.pretix.eu/projects/pretix/pretix/"
"fr/>\n"
@@ -13974,25 +13974,25 @@ msgstr "UID"
#: pretix/base/views/js_helpers.py:49
msgctxt "tax_id_italy"
msgid "VAT ID / P.IVA"
msgstr "Numéro de TVA intracommunautaire"
msgstr "Numéro d'identification TVA"
#. Translators: Translate to only "P.IVA" in Italian, keep second part as-is in other languages
#: pretix/base/views/js_helpers.py:50
msgctxt "tax_id_greece"
msgid "VAT ID / TIN"
msgstr "Numéro de TVA intracommunautaire / TIN"
msgstr "Numéro d'identification TVA / TIN"
#. Translators: Translate to only "ΑΦΜ" in Greek
#: pretix/base/views/js_helpers.py:51
msgctxt "tax_id_spain"
msgid "VAT ID / NIF"
msgstr "Numéro de TVA intracommunautaire"
msgstr "Numéro d'identification TVA"
#. Translators: Translate to only "NIF" in Spanish
#: pretix/base/views/js_helpers.py:52
msgctxt "tax_id_portugal"
msgid "VAT ID / NIF"
msgstr "Numéro de TVA intracommunautaire / NIF"
msgstr "Numéro d'identification TVA / NIF"
#: pretix/base/views/tasks.py:185
msgid "An unexpected error has occurred, please try again later."
@@ -29015,9 +29015,6 @@ msgid ""
"automatically. We recommend that you rename these in your source file to "
"avoid problems during import."
msgstr ""
"Plusieurs colonnes du fichier CSV portent le même nom et ont été renommées "
"automatiquement. Nous vous recommandons de les renommer dans votre fichier "
"source afin d'éviter tout problème lors de l'importation."
#: pretix/control/views/modelimport.py:188
msgid "The import was successful."
@@ -30708,7 +30705,7 @@ msgstr ""
#: pretix/plugins/banktransfer/camtimport.py:33
msgid "Empty file or unknown format."
msgstr "Fichier vide ou format inconnu."
msgstr ""
#: pretix/plugins/banktransfer/payment.py:69
msgid ""
@@ -33303,17 +33300,16 @@ msgid "Przelewy24"
msgstr "Przelewy24"
#: pretix/plugins/stripe/payment.py:417 pretix/plugins/stripe/payment.py:1836
#, fuzzy
#| msgid "Payment by bank transfer"
msgid "Pay by bank"
msgstr "Payer par virement bancaire"
msgstr "Paiement par virement bancaire"
#: pretix/plugins/stripe/payment.py:422
msgid ""
"Currently only available for charges in GBP and customers with UK bank "
"accounts, and in private preview for France and Germany."
msgstr ""
"Actuellement disponible uniquement pour les frais en livre sterling et les "
"clients disposant d'un compte bancaire au Royaume-Uni, et pour les clients "
"en test restreint pour la France et l'Allemagne."
#: pretix/plugins/stripe/payment.py:429 pretix/plugins/stripe/payment.py:1789
msgid "WeChat Pay"
@@ -33630,17 +33626,16 @@ msgstr ""
"connexion à porter de main."
#: pretix/plugins/stripe/payment.py:1835
#, fuzzy
#| msgid "PayPal via Stripe"
msgid "Pay by bank via Stripe"
msgstr "Payer par virement bancaire via Stripe"
msgstr "PayPal via Stripe"
#: pretix/plugins/stripe/payment.py:1841
msgid ""
"Pay by bank allows you to authorize a secure Open Banking payment from your "
"banking app. Currently available only with a UK bank account."
msgstr ""
"Le paiement par virement bancaire vous permet d'autoriser un paiement "
"sécurisé via Open Banking depuis votre application bancaire. Actuellement "
"disponible uniquement avec un compte bancaire britannique."
#: pretix/plugins/stripe/payment.py:1861
msgid "PayPal via Stripe"
@@ -33659,16 +33654,22 @@ msgstr ""
"suédoises Swish et BankID. Veuillez préparer votre application."
#: pretix/plugins/stripe/payment.py:1893
#, fuzzy
#| msgid "giropay via Stripe"
msgid "PromptPay via Stripe"
msgstr "PromptPay via Stripe"
msgstr "giropay via Stripe"
#: pretix/plugins/stripe/payment.py:1898
#, fuzzy
#| msgid ""
#| "This payment method is available to MobilePay app users in Denmark and "
#| "Finland. Please have your app ready."
msgid ""
"This payment method is available to PromptPay users in Thailand. Please have "
"your app ready."
msgstr ""
"Ce mode de paiement est disponible pour les utilisateurs de PromptPay en "
"Thaïlande. Veuillez préparer votre application."
"Ce mode de paiement est disponible pour les utilisateurs de l'application "
"MobilePay au Danemark et en Finlande. Veuillez préparer votre application."
#: pretix/plugins/stripe/payment.py:1917
msgid "TWINT via Stripe"
@@ -33983,17 +33984,23 @@ msgid "Confirm payment: %(code)s"
msgstr "Confirmer le paiement : %(code)s"
#: pretix/plugins/stripe/templates/pretixplugins/stripe/sca.html:32
#, fuzzy
#| msgid ""
#| "Please scan the barcode below to complete your WeChat payment. Once you "
#| "have completed your payment, you can refresh this page."
msgid ""
"Please scan the QR code below to complete your PromptPay payment. Once you "
"have completed your payment, you can refresh this page."
msgstr ""
"Veuillez scanner le code QR ci-dessous pour effectuer votre paiement "
"PromptPay. Une fois votre paiement effectué, vous pouvez actualiser cette "
"page."
"Veuillez scanner le code-barres ci-dessous pour effectuer votre paiement "
"WeChat. Une fois que vous avez effectué votre paiement, vous pouvez "
"actualiser cette page."
#: pretix/plugins/stripe/templates/pretixplugins/stripe/sca.html:37
#, fuzzy
#| msgid "Create QR code"
msgid "PromptPay QR code"
msgstr "Code QR PromptPay"
msgstr "Créer un code QR"
#: pretix/plugins/stripe/templates/pretixplugins/stripe/sca_return.html:20
msgid "Confirming your payment…"
@@ -35050,11 +35057,14 @@ msgstr[0] "Vous devez choisir exactement une option de cette catégorie."
msgstr[1] "Vous devez choisir les options %(min_count)s de cette catégorie."
#: pretix/presale/templates/pretixpresale/event/fragment_addon_choice.html:26
#, python-format
#, fuzzy, python-format
#| msgid "You can choose at most one option from this category."
#| msgid_plural ""
#| "You can choose up to %(max_count)s options from this category."
msgid "You can choose one option from this category."
msgid_plural "You can choose up to %(max_count)s options from this category."
msgstr[0] "Vous pouvez choisir une option dans cette catégorie."
msgstr[1] "Vous pouvez choisir jusqu'à %(max_count)s options dans cette catégorie."
msgstr[0] "Vous pouvez choisir au plus une option de cette catégorie."
msgstr[1] "Vous pouvez choisir jusqu' à %(max_count)s dans cette catégorie."
#: pretix/presale/templates/pretixpresale/event/fragment_addon_choice.html:34
#, python-format
@@ -37185,8 +37195,6 @@ msgid ""
"Your cart timeout was extended. Please note that some of the prices in your "
"cart changed."
msgstr ""
"Le délai d'expiration de votre panier a été prolongé. Veuillez noter que "
"certains prix dans votre panier ont changé."
#: pretix/presale/views/cart.py:573
msgid "Your cart timeout was extended."

View File

@@ -656,11 +656,6 @@ LOGGING = {
'handlers': ['null'],
'propagate': False,
},
'celery.utils.functional': {
'handlers': ['file', 'console'],
'level': 'INFO', # Do not output all the queries
'propagate': False,
},
'django.db.backends': {
'handlers': ['file', 'console'],
'level': 'INFO', # Do not output all the queries

View File

@@ -227,9 +227,7 @@ def test_placeholder_html_rendering_from_string(env):
"Event website: [{event}](https://example.org/{event_slug})\n\n"
"Other website: [{event}]({meta_Website})\n\n"
"URL: {url}\n\n"
"URL with text: <a href=\"{url}\">Test</a>\n\n"
"URL with params: https://example.com/form?action=foo&eventid={event_slug}\n\n"
"URL with params and text: [Link & Text](https://example.com/form?action=foo&eventid={event_slug})\n\n"
"URL with text: <a href=\"{url}\">Test</a>"
})
djmail.outbox = []
event, user, organizer = env
@@ -251,8 +249,6 @@ def test_placeholder_html_rendering_from_string(env):
assert '**Meta**: *Beep*' in djmail.outbox[0].body
assert 'URL: https://google.com' in djmail.outbox[0].body
assert 'URL with text: <a href="https://google.com">Test</a>' in djmail.outbox[0].body
assert 'URL with params: https://example.com/form?action=foo&eventid=dummy' in djmail.outbox[0].body
assert 'URL with params and text: [Link & Text](https://example.com/form?action=foo&eventid=dummy)' in djmail.outbox[0].body
assert '&lt;' not in djmail.outbox[0].body
assert '&amp;' not in djmail.outbox[0].body
html = _extract_html(djmail.outbox[0])
@@ -276,13 +272,3 @@ def test_placeholder_html_rendering_from_string(env):
r'URL with text: <a href="https://google.com" rel="noopener" style="[^"]+" target="_blank">Test</a>',
html
)
assert re.search(
r'URL with params: <a href="https://example.com/form\?action=foo&amp;eventid=dummy" rel="noopener" '
r'style="[^"]+" target="_blank">https://example.com/form\?action=foo&amp;eventid=dummy</a>',
html
)
assert re.search(
r'URL with params and text: <a href="https://example.com/form\?action=foo&amp;eventid=dummy" rel="noopener" '
r'style="[^"]+" target="_blank">Link &amp; Text</a>',
html
)