Compare commits

...

43 Commits

Author SHA1 Message Date
Ruud Hendrickx
87b3e0c417 Translations: Update Dutch (Belgium)
Currently translated at 71.0% (4446 of 6257 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/nl_BE/

powered by weblate
2026-03-05 07:34:01 +01:00
Ruud Hendrickx
d3fd031639 Translations: Update Dutch (Belgium)
Currently translated at 69.6% (4355 of 6257 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/nl_BE/

powered by weblate
2026-03-05 07:34:01 +01:00
Renne Rocha
9253327334 Translations: Update Portuguese (Brazil)
Currently translated at 92.9% (5813 of 6257 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/pt_BR/

powered by weblate
2026-03-05 07:34:01 +01:00
Ruud Hendrickx
080b9cacaf Translations: Update Dutch (Belgium)
Currently translated at 63.6% (3982 of 6257 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/nl_BE/

powered by weblate
2026-03-05 07:34:01 +01:00
CVZ-es
9c2cc02df1 Translations: Update Spanish
Currently translated at 100.0% (6257 of 6257 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/es/

powered by weblate
2026-03-05 07:34:01 +01:00
Ruud Hendrickx
fceae0a2fe Translations: Update Dutch
Currently translated at 100.0% (6257 of 6257 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/nl/

powered by weblate
2026-03-05 07:34:01 +01:00
CVZ-es
9fc3fdf751 Translations: Update French
Currently translated at 100.0% (6257 of 6257 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/fr/

powered by weblate
2026-03-05 07:34:01 +01:00
André Almeida
04f79b7014 Translations: Update Portuguese (Brazil)
Currently translated at 92.8% (5811 of 6257 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/pt_BR/

powered by weblate
2026-03-05 07:34:01 +01:00
Ruud Hendrickx
9d0b9387e6 Translations: Update Dutch (Belgium)
Currently translated at 57.2% (3581 of 6257 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/nl_BE/

powered by weblate
2026-03-05 07:34:01 +01:00
Sandra Rial Pérez
b25e6f598d Translations: Update Galician
Currently translated at 100.0% (256 of 256 strings)

Translation: pretix/pretix (JavaScript parts)
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix-js/gl/

powered by weblate
2026-03-05 07:34:01 +01:00
Sandra Rial Pérez
e8e2648f7e Translations: Update Galician
Currently translated at 17.5% (1095 of 6257 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/gl/

powered by weblate
2026-03-05 07:34:01 +01:00
Ruud Hendrickx
e0fac42225 Translations: Update Dutch (Belgium)
Currently translated at 53.1% (3326 of 6257 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/nl_BE/

powered by weblate
2026-03-05 07:34:01 +01:00
Ruud Hendrickx
3e9bc7675b Translations: Update Dutch (Belgium)
Currently translated at 50.7% (3176 of 6257 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/nl_BE/

powered by weblate
2026-03-05 07:34:01 +01:00
Hijiri Umemoto
1541033467 Translations: Update Japanese
Currently translated at 100.0% (6257 of 6257 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/ja/

powered by weblate
2026-03-05 07:34:01 +01:00
Ruud Hendrickx
6b8c3ef15c Translations: Update Dutch (informal) (nl_Informal)
Currently translated at 100.0% (6257 of 6257 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/nl_Informal/

powered by weblate
2026-03-05 07:34:01 +01:00
Alberto Ortega
135e07c183 Translations: Update Spanish
Currently translated at 99.9% (6256 of 6257 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/es/

powered by weblate
2026-03-05 07:34:01 +01:00
Ruud Hendrickx
fe97915b36 Translations: Update Dutch
Currently translated at 100.0% (6257 of 6257 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/nl/

powered by weblate
2026-03-05 07:34:01 +01:00
Hijiri Umemoto
233281cea4 Translations: Update Japanese
Currently translated at 99.9% (6255 of 6257 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/ja/

powered by weblate
2026-03-05 07:34:01 +01:00
Renne Rocha
0300a44634 Translations: Update Portuguese (Brazil)
Currently translated at 92.6% (5797 of 6257 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/pt_BR/

powered by weblate
2026-03-05 07:34:01 +01:00
Ruud Hendrickx
449d930565 Translations: Update Dutch (Belgium)
Currently translated at 46.7% (2927 of 6257 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/nl_BE/

powered by weblate
2026-03-05 07:34:01 +01:00
Sandra Rial Pérez
49f49bd8a6 Translations: Update Galician
Currently translated at 16.7% (1048 of 6257 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/gl/

powered by weblate
2026-03-05 07:34:01 +01:00
Ruud Hendrickx
e896704fe0 Translations: Update Dutch (Belgium)
Currently translated at 42.9% (2689 of 6257 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/nl_BE/

powered by weblate
2026-03-05 07:34:01 +01:00
Sandra Rial Pérez
cfee402a27 Translations: Update Galician
Currently translated at 16.3% (1026 of 6257 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/gl/

powered by weblate
2026-03-05 07:34:01 +01:00
David Ibáñez Cerdeira
f8878e53a3 Translations: Update Galician
Currently translated at 16.3% (1026 of 6257 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/gl/

powered by weblate
2026-03-05 07:34:01 +01:00
Renne Rocha
fd6a342bc6 Translations: Update Portuguese (Brazil)
Currently translated at 92.6% (5797 of 6257 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/pt_BR/

powered by weblate
2026-03-05 07:34:01 +01:00
Pedro Orlando
865433276e Translations: Update Portuguese (Brazil)
Currently translated at 92.6% (5797 of 6257 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/pt_BR/

powered by weblate
2026-03-05 07:34:01 +01:00
André Almeida
f616f64f47 Translations: Update Portuguese (Brazil)
Currently translated at 92.6% (5797 of 6257 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/pt_BR/

powered by weblate
2026-03-05 07:34:01 +01:00
Ruud Hendrickx
26550887b7 Translations: Update Dutch (Belgium)
Currently translated at 30.7% (1924 of 6257 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/nl_BE/

powered by weblate
2026-03-05 07:34:01 +01:00
David Ibáñez Cerdeira
0f3de911b8 Translations: Update Galician
Currently translated at 100.0% (256 of 256 strings)

Translation: pretix/pretix (JavaScript parts)
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix-js/gl/

powered by weblate
2026-03-05 07:34:01 +01:00
David Ibáñez Cerdeira
b648390dbf Translations: Update Galician
Currently translated at 15.7% (986 of 6257 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/gl/

powered by weblate
2026-03-05 07:34:01 +01:00
David Ibáñez Cerdeira
50fec0b31c Translations: Update Greek
Currently translated at 43.8% (2743 of 6257 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/el/

powered by weblate
2026-03-05 07:34:01 +01:00
Ruud Hendrickx
e44af04e43 Translations: Update Dutch (informal) (nl_Informal)
Currently translated at 100.0% (6257 of 6257 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/nl_Informal/

powered by weblate
2026-03-05 07:34:01 +01:00
André Almeida
276c3177f5 Translations: Update Portuguese (Brazil)
Currently translated at 89.7% (5616 of 6257 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/pt_BR/

powered by weblate
2026-03-05 07:34:01 +01:00
Pedro Orlando
27ac004a0b Translations: Update Portuguese (Brazil)
Currently translated at 89.7% (5616 of 6257 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/pt_BR/

powered by weblate
2026-03-05 07:34:01 +01:00
André Almeida
6d517d4e8d Translations: Update Portuguese (Brazil)
Currently translated at 89.7% (5616 of 6257 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/pt_BR/

powered by weblate
2026-03-05 07:34:01 +01:00
Ruud Hendrickx
d9c3deda8a Translations: Update Dutch
Currently translated at 100.0% (6257 of 6257 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/nl/

powered by weblate
2026-03-05 07:34:01 +01:00
CVZ-es
fe6add618a Translations: Update Spanish
Currently translated at 100.0% (6257 of 6257 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/es/

powered by weblate
2026-03-05 07:34:01 +01:00
CVZ-es
3615a52cc4 Translations: Update French
Currently translated at 100.0% (6257 of 6257 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/fr/

powered by weblate
2026-03-05 07:34:01 +01:00
Kara Engelhardt
e3ae3b08bd Handle PlainHtmlAlternativeString in placeholder help text 2026-03-04 18:57:25 +02:00
Richard Schreiber
959e926a67 API: validate payment_info (#5944)
* API: validate payment_info

* improve dict-check

* Apply suggestions from code review

Co-authored-by: Raphael Michel <michel@pretix.eu>

---------

Co-authored-by: Raphael Michel <michel@pretix.eu>
2026-03-02 12:28:47 +01:00
Raphael Michel
876ddf1321 Add a log entry on manual VAT ID validation (Z#23223874) (#5939) 2026-02-27 15:22:50 +01:00
Richard Schreiber
005b1d54d3 add missing licenseheaders 2026-02-27 09:09:27 +01:00
Ananya
2066471086 Fix #1907 – Obfuscate contact email addresses in public HTML (#5477)
* Include nix development enviornment

* Obfuscate contact email addresses in shop HTML and deanonymize via JavaScript

This change addresses #1907: "hide contact e-mail address in source code
of a shop".

- Contact email addresses rendered in public-facing templates are now
obfuscated in the HTML source (e.g., replacing "@" with "[at]" and "."
with "[dot]").
- A new JavaScript file is included in the relevant templates to
automatically rewrite and restore the email address for users after the
page loads.
- This approach helps protect email addresses from basic harvesting bots
and reduces spam, while keeping them accessible and user-friendly for
human visitors.
- The obfuscation and deanonymization logic is only applied to web
templates, not to emails sent via pretix.

This implementation follows the recommendations discussed in #1907,
using a standardized, maintainable approach that’s compatible with
pretix's asset pipeline and template structure.

* Undo nix development environment for merge into main

* convert complete mailto-link to HTML entities

* remove gitignore noise

* Update .gitignore

* fix gitignore noise

* Update .gitignore

---------

Co-authored-by: Richard Schreiber <schreiber@rami.io>
2026-02-27 08:50:33 +01:00
20 changed files with 5215 additions and 3104 deletions

View File

@@ -19,6 +19,7 @@
# You should have received a copy of the GNU Affero General Public License along with this program. If not, see
# <https://www.gnu.org/licenses/>.
#
import json
import logging
import os
from collections import Counter, defaultdict
@@ -1215,6 +1216,18 @@ class OrderCreateSerializer(I18nAwareModelSerializer):
raise ValidationError('The given payment provider is not known.')
return pp
def validate_payment_info(self, info):
if info:
try:
obj = json.loads(info)
except ValueError:
raise ValidationError('payment_info must be valid JSON.')
if not isinstance(obj, dict):
# only objects are allowed
raise ValidationError('payment_info must be a JSON object.')
return info
def validate_expires(self, expires):
if expires < now():
raise ValidationError('Expiration date must be in the future.')

View File

@@ -42,6 +42,8 @@ from django.utils.html import escape
from django.utils.timezone import get_current_timezone, now
from django.utils.translation import gettext_lazy as _
from pretix.helpers.format import PlainHtmlAlternativeString
def replace_arabic_numbers(inp):
if not isinstance(inp, str):
@@ -61,11 +63,18 @@ def replace_arabic_numbers(inp):
return inp.translate(table)
def format_placeholder_help_text(placeholder_name, sample_value):
if isinstance(sample_value, PlainHtmlAlternativeString):
sample_value = sample_value.plain
title = (_("Sample: %s") % sample_value) if sample_value else ""
return ('<button type="button" class="content-placeholder" title="%s">{%s}</button>' % (escape(title), escape(placeholder_name)))
def format_placeholders_help_text(placeholders, event=None):
placeholders = [(k, v.render_sample(event) if event else v) for k, v in placeholders.items()]
placeholders.sort(key=lambda x: x[0])
phs = [
'<button type="button" class="content-placeholder" title="%s">{%s}</button>' % (escape(_("Sample: %s") % v) if v else "", escape(k))
format_placeholder_help_text(k, v)
for k, v in placeholders
]
return _('Available placeholders: {list}').format(

View File

@@ -0,0 +1,34 @@
#
# This file is part of pretix (Community Edition).
#
# Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors
#
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License.
#
# ADDITIONAL TERMS APPLY: Pursuant to Section 7 of the GNU Affero General Public License, additional terms are
# applicable granting you additional permissions and placing additional restrictions on your usage of this software.
# Please refer to the pretix LICENSE file to obtain the full terms applicable to this work. If you did not receive
# this file, see <https://pretix.eu/about/en/license>.
#
# This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
# details.
#
# You should have received a copy of the GNU Affero General Public License along with this program. If not, see
# <https://www.gnu.org/licenses/>.
#
from django import template
from django.utils.html import mark_safe
register = template.Library()
@register.filter("anon_email")
def anon_email(value):
"""Replaces @ with [at] and . with [dot] for anonymization."""
if not isinstance(value, str):
return value
value = value.replace("@", "[at]").replace(".", "[dot]")
return mark_safe(''.join(['&#{0};'.format(ord(char)) for char in value]))

View File

@@ -518,6 +518,7 @@ def pretixcontrol_orderposition_blocked_display(sender: Event, orderposition, bl
'The order requires approval before it can continue to be processed.'),
'pretix.event.order.approved': _('The order has been approved.'),
'pretix.event.order.denied': _('The order has been denied (comment: "{comment}").'),
'pretix.event.order.vatid.validated': _('The customer VAT ID has been verified.'),
'pretix.event.order.contact.changed': _('The email address has been changed from "{old_email}" '
'to "{new_email}".'),
'pretix.event.order.contact.confirmed': _(

View File

@@ -1641,9 +1641,17 @@ class OrderCheckVATID(OrderView):
try:
normalized_id = validate_vat_id(ia.vat_id, str(ia.country))
ia.vat_id_validated = True
ia.vat_id = normalized_id
ia.save()
with transaction.atomic():
ia.vat_id_validated = True
ia.vat_id = normalized_id
ia.save()
self.order.log_action(
'pretix.event.order.vatid.validated',
data={
'vat_id': normalized_id,
},
user=self.request.user,
)
except VATIDFinalError as e:
messages.error(self.request, e.message)
except VATIDTemporaryError:

View File

@@ -8,16 +8,16 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-02-24 11:50+0000\n"
"PO-Revision-Date: 2025-02-14 21:00+0000\n"
"Last-Translator: deborahfoell <deborah.foell@om.org>\n"
"Language-Team: Greek <https://translate.pretix.eu/projects/pretix/pretix/el/"
">\n"
"PO-Revision-Date: 2026-02-25 23:00+0000\n"
"Last-Translator: David Ibáñez Cerdeira <dibanez@gmail.com>\n"
"Language-Team: Greek <https://translate.pretix.eu/projects/pretix/pretix/el/>"
"\n"
"Language: el\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.9.2\n"
"X-Generator: Weblate 5.16\n"
#: pretix/_base_settings.py:87
msgid "English"
@@ -20467,7 +20467,7 @@ msgstr "Ορίστε νέο κωδικό πρόσβασης"
#: pretix/presale/templates/pretixpresale/organizers/customer_password.html:25
#: pretix/presale/templates/pretixpresale/organizers/customer_setpassword.html:25
msgid "Save"
msgstr "Αποθηκεύση"
msgstr "gardar"
#: pretix/control/templates/pretixcontrol/auth/register.html:7
msgid "Create a new account"

View File

@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-02-24 11:50+0000\n"
"PO-Revision-Date: 2026-02-21 18:00+0000\n"
"PO-Revision-Date: 2026-03-03 20: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.16\n"
"X-Generator: Weblate 5.16.1\n"
#: pretix/_base_settings.py:87
msgid "English"
@@ -17058,28 +17058,20 @@ msgid "You need to specify as many seats as voucher codes."
msgstr "Debe especificar tantas butacas como vales de compra."
#: pretix/control/forms/waitinglist.py:39
#, fuzzy
#| msgid "Please select a valid seat."
msgid "Select a valid choice."
msgstr "Por favor seleccione una butaca válida."
msgstr "Seleccione una opción válida."
#: pretix/control/forms/waitinglist.py:107
#, fuzzy
#| msgid "Active products"
msgid "Only includes active products."
msgstr "Productos activos"
msgstr "Solo incluir productos activos."
#: 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 "Ya existe un vale de compra con este código."
msgstr "Ya se ha enviado un vale para esta entrada en la lista de espera."
#: pretix/control/forms/waitinglist.py:125
#, fuzzy
#| msgid "The selected product has been deactivated."
msgid "The selected product is not active."
msgstr "El producto seleccionado ha sido desactivado."
msgstr "El producto seleccionado no esactivo."
#: pretix/control/logdisplay.py:73 pretix/control/logdisplay.py:83
msgid "The order has been changed:"
@@ -17729,7 +17721,7 @@ msgstr ""
#: pretix/control/logdisplay.py:589
msgid "The voucher has been changed."
msgstr "EL vale de compra ha sido cambiado."
msgstr "El vale de compra ha sido cambiado."
#: pretix/control/logdisplay.py:590
msgid "The voucher has been deleted."
@@ -18643,7 +18635,7 @@ msgstr "Entradas"
#: pretix/control/templates/pretixcontrol/order/index.html:764
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:457
msgid "Taxes"
msgstr "gravámenes"
msgstr "Impuestos"
#: pretix/control/navigation.py:97
msgid "Invoicing"
@@ -18883,6 +18875,10 @@ msgid ""
"in repeatedly. Please check if your browser is set to block cookies, or "
"delete all existing cookies and retry."
msgstr ""
"Parece que el navegador no acepta nuestras cookies y es necesario iniciar "
"sesión repetidamente. Por favor, compruebe si el navegador está configurado "
"para bloquear cookies o elimine todas las cookies existentes y vuelva a "
"intentarlo."
#: pretix/control/templates/pretixcontrol/auth/login.html:35
#: pretix/presale/templates/pretixpresale/fragment_login_status.html:19
@@ -18994,8 +18990,9 @@ msgid ""
"This application has <strong>not</strong> been reviewed by the pretix team. "
"Granting access to your pretix account happens at your own risk."
msgstr ""
"Esta aplicación<strong>no</strong> ha sido revisada por el equipo de pretix. "
"La concesión del acceso a su cuenta pretix se realiza bajo su propio riesgo."
"Esta aplicación <strong>no</strong> ha sido revisada por el equipo de "
"pretix. La concesión del acceso a su cuenta pretix se realiza bajo su propio "
"riesgo."
#: pretix/control/templates/pretixcontrol/auth/oauth_authorization.html:54
msgid "Error:"
@@ -19129,8 +19126,8 @@ msgid ""
"We've detected that you are using <strong>Microsoft Internet Explorer</"
"strong>."
msgstr ""
"Hemos detectado que estás usando <strong> Microsoft Internet Explorer </"
"strong>."
"Hemos detectado que estás usando <strong>Microsoft Internet Explorer</strong>"
"."
#: pretix/control/templates/pretixcontrol/base.html:332
#: pretix/presale/templates/pretixpresale/base.html:54
@@ -19169,7 +19166,7 @@ msgid ""
"people from actually buying tickets."
msgstr ""
"Tu evento contiene <strong>pedidos de modo de prueba</strong> a pesar de que "
"<strong> el modo de prueba se ha deshabilitado</strong>. Deberías eliminar "
"<strong>el modo de prueba se ha deshabilitado</strong>. Deberías eliminar "
"estes pedidos para asegurarte que no se muestren en tus reportes "
"estadísticos y bloquear la compra de entradas a las personas."
@@ -20764,7 +20761,7 @@ msgid ""
"duplicate payment attempts. You should review the cases and consider "
"refunding the overpaid amount to the user."
msgstr ""
"Este evento contiene <strong> pedidos pagados en exceso</strong>, por "
"Este evento contiene <strong>pedidos pagados en exceso</strong>, por "
"ejemplo, debido a que hay intentos de pago duplicados. Debe revisar los "
"casos y considerar la devolución de la cantidad pagada en exceso al usuario."
@@ -20777,7 +20774,7 @@ msgid ""
"This event contains <strong>pending refunds</strong> that you should take "
"care of."
msgstr ""
"Este evento contiene <strong>devoluciones pendientes </strong> sobre las que "
"Este evento contiene <strong>devoluciones pendientes</strong> sobre las que "
"debe prestar atención."
#: pretix/control/templates/pretixcontrol/event/index.html:50
@@ -20815,7 +20812,7 @@ msgid ""
"arrived. You should review the cases and consider either refunding the "
"customer or creating more space."
msgstr ""
"Este evento contiene <strong> pedidos completamente pagados</strong> que no "
"Este evento contiene <strong>pedidos completamente pagados</strong> que no "
"están marcadas como pagados, probablemente porque no se dejo ningún cupo al "
"momento que llegó el pago. Debería revisar estos casos y considerar, "
"devolver el dinero o crear más espacio."
@@ -21479,7 +21476,7 @@ msgid ""
"as examples, you can add more in the \"Settings\" part of your event."
msgstr ""
"pretix soporta un <a href=\"https://pretix.eu/about/en/features/payment\" "
"target=\"_blank\">amplio rango de proveedores de pago </a> permitiéndole "
"target=\"_blank\">amplio rango de proveedores de pago</a> permitiéndole "
"elegir los métodos de pago que mejor se adapten a su flujo de trabajo. Aquí "
"hay sólo dos de ellos a modo de ejemplo, puede añadir más en la parte "
"\"Configuración\" de su evento."
@@ -23891,8 +23888,8 @@ msgid ""
"Do you really want to delete this order? <strong>You really cannot revert "
"this action and we can't either.</strong>"
msgstr ""
"¿Realmente quieres eliminar este pedido? <strong> No puedes revertir esta "
"acción y tampoco nosotros. </strong>"
"¿Realmente quieres eliminar este pedido? <strong>No puedes revertir esta "
"acción y tampoco nosotros.</strong>"
#: pretix/control/templates/pretixcontrol/order/delete.html:25
msgid "Yes, delete order"
@@ -24516,9 +24513,8 @@ msgid ""
msgstr ""
"Hemos recibido la notificación de que <strong>%(amount)s</strong> ha sido "
"devuelto a través de <strong>%(method)s</strong>. Si este reembolso está "
"procesado, el pedido habrá sido pagado con un importe inferior "
"en<strong>%(pending)s</strong>. El total del pedido es <strong>%(total)s</"
"strong>."
"procesado, el pedido habrá sido pagado con un importe inferior en <strong>%"
"(pending)s</strong>. El total del pedido es <strong>%(total)s</strong>."
#: pretix/control/templates/pretixcontrol/order/refund_process.html:30
msgid "Since the order is already canceled, this will not affect its state."
@@ -27262,7 +27258,7 @@ msgid ""
"Using this option will <strong>delete all current quotas</strong> from "
"<strong>all selected dates</strong>."
msgstr ""
"Al utilizar esta opción se <strong> eliminarán todas las cuotas actuales </"
"Al utilizar esta opción se <strong>eliminarán todas las cuotas actuales</"
"strong> de <strong>todas las fechas seleccionadas</strong>."
#: pretix/control/templates/pretixcontrol/subevents/bulk_edit.html:277
@@ -27998,7 +27994,7 @@ msgstr "Borrar vale de compra"
msgid ""
"Are you sure you want to delete the voucher <strong>%(voucher)s</strong>?"
msgstr ""
"¿Está seguro de que desea borrar el vale de compra<strong>%(voucher)s</"
"¿Está seguro de que desea borrar el vale de compra <strong>%(voucher)s</"
"strong>?"
#: pretix/control/templates/pretixcontrol/vouchers/delete_bulk.html:4
@@ -28191,10 +28187,8 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/waitinglist/edit.html:4
#: pretix/control/templates/pretixcontrol/waitinglist/edit.html:6
#: pretix/control/templates/pretixcontrol/waitinglist/index.html:273
#, fuzzy
#| msgid "Entry"
msgid "Edit entry"
msgstr "Ingreso"
msgstr "Editar entrada"
#: pretix/control/templates/pretixcontrol/waitinglist/index.html:17
msgid ""
@@ -28256,7 +28250,7 @@ msgid ""
"quota is available) or you can press the big button below this text to send "
"out as many vouchers as currently possible to the persons who waited longest."
msgstr ""
"Ha configurado que los vales de compra se enviarán <strong>no </strong> "
"Ha configurado que los vales de compra se enviarán <strong>no</strong> "
"automáticamente. Puede enviarlos uno por uno en un orden de su elección "
"haciendo clic en los botones junto a una línea de esta tabla (si hay "
"suficiente cuota disponible) o puede presionar el botón grande debajo de "
@@ -30133,15 +30127,7 @@ msgstr ""
"La autenticación de dos factores ahora está desactivada para su cuenta."
#: pretix/control/views/user.py:635
#, fuzzy, python-brace-format
#| msgid ""
#| "Your emergency codes have been newly generated. Remember to store them in "
#| "a safe place in case you lose access to your devices. You will not be "
#| "able to view them again here.\n"
#| "\n"
#| "Your emergency codes:\n"
#| "- \n"
#| "- "
#, python-brace-format
msgid ""
"Your emergency codes have been newly generated. Remember to store them in a "
"safe place in case you lose access to your devices. You will not be able to "
@@ -30155,8 +30141,7 @@ msgstr ""
"verlos aquí.\n"
"\n"
"Sus códigos de emergencias:\n"
"- \n"
"- "
"{tokens}"
#: pretix/control/views/user.py:655
msgid "Your notifications have been disabled."
@@ -30326,10 +30311,8 @@ msgid "The selected entry has been deleted."
msgstr "Se ha borrado la entrada seleccionada."
#: pretix/control/views/waitinglist.py:417
#, fuzzy
#| msgid "The waitinglist entry has been transferred."
msgid "The waitinglist entry has been changed."
msgstr "Las entradas de la lista de espera han sido transferidas."
msgstr "Se ha modificado la entrada de la lista de espera."
#: pretix/helpers/countries.py:134
msgid "Belarus"
@@ -37011,8 +36994,8 @@ msgid ""
"If you're looking to buy a ticket, you need to follow a direct link to an "
"event or organizer profile."
msgstr ""
"SI buscas comprar una entrada, necesitar seguir un enlace directo a un "
"evento o a un perfil de organizador."
"Si busca comprar una entrada, necesita seguir un enlace directo a un evento "
"o a un perfil de organizador."
#: pretix/presale/templates/pretixpresale/index.html:20
#, python-format

View File

@@ -4,16 +4,16 @@ msgstr ""
"Project-Id-Version: 1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-02-24 11:50+0000\n"
"PO-Revision-Date: 2026-02-21 18:00+0000\n"
"PO-Revision-Date: 2026-03-03 20:00+0000\n"
"Last-Translator: CVZ-es <damien.bremont@casadevelazquez.org>\n"
"Language-Team: French <https://translate.pretix.eu/projects/pretix/pretix/fr/"
">\n"
"Language-Team: French <https://translate.pretix.eu/projects/pretix/pretix/"
"fr/>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 5.16\n"
"X-Generator: Weblate 5.16.1\n"
#: pretix/_base_settings.py:87
msgid "English"
@@ -13011,7 +13011,9 @@ msgstr "Texte daide du champ email"
#: pretix/base/settings.py:3398
msgid "Allow creating a new team during event creation"
msgstr "Ancienne API de lappareil denregistrement"
msgstr ""
"Autoriser la création d'une nouvelle équipe lors de la création d'un "
"événement"
#: pretix/base/settings.py:3399
msgid ""
@@ -17204,28 +17206,20 @@ msgid "You need to specify as many seats as voucher codes."
msgstr "Vous devez spécifier autant de sièges que de codes promotionnels."
#: pretix/control/forms/waitinglist.py:39
#, fuzzy
#| msgid "Please select a valid seat."
msgid "Select a valid choice."
msgstr "Veuillez sélectionner un siège valide."
msgstr "Sélectionnez une option valide."
#: pretix/control/forms/waitinglist.py:107
#, fuzzy
#| msgid "Active products"
msgid "Only includes active products."
msgstr "Produits actifs"
msgstr "Comprend uniquement les produits actifs."
#: 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 "Un bon de réduction avec ce code existe déjà."
msgstr "Un bon pour cette inscription sur la liste d'attente a déjà été envoyé."
#: pretix/control/forms/waitinglist.py:125
#, fuzzy
#| msgid "The selected product has been deactivated."
msgid "The selected product is not active."
msgstr "Le produit sélectionné a été désacti."
msgstr "Le produit sélectionné n'est pas actif."
#: pretix/control/logdisplay.py:73 pretix/control/logdisplay.py:83
msgid "The order has been changed:"
@@ -19021,6 +19015,10 @@ msgid ""
"in repeatedly. Please check if your browser is set to block cookies, or "
"delete all existing cookies and retry."
msgstr ""
"Il semble que votre navigateur n'accepte pas nos cookies et que vous deviez "
"vous connecter à plusieurs reprises. Veuillez vérifier si votre navigateur "
"est configuré pour bloquer les cookies, ou supprimez tous les cookies "
"existants et réessayez."
#: pretix/control/templates/pretixcontrol/auth/login.html:35
#: pretix/presale/templates/pretixpresale/fragment_login_status.html:19
@@ -19108,8 +19106,8 @@ msgid ""
"Do you really want to grant the application <strong>%(application)s</strong> "
"access to your pretix account?"
msgstr ""
"Voulez-vous vraiment accorder à l'application <strong>1%(application)s2</"
"strong>3 un accès à votre compte pretix ?"
"Voulez-vous vraiment accorder à l'application <strong>%(application)s</"
"strong> un accès à votre compte pretix ?"
#: pretix/control/templates/pretixcontrol/auth/oauth_authorization.html:24
#, python-format
@@ -19132,8 +19130,8 @@ msgid ""
"This application has <strong>not</strong> been reviewed by the pretix team. "
"Granting access to your pretix account happens at your own risk."
msgstr ""
"Cette application n'a <strong>1pas</strong>2 été véifiée par l'équipe "
"pretix. L'accès à votre compte Pretix se fait à vos propres risques."
"Cette application n'a <strong>pas</strong> été véifiée par l'équipe pretix. "
"L'accès à votre compte Pretix se fait à vos propres risques."
#: pretix/control/templates/pretixcontrol/auth/oauth_authorization.html:54
msgid "Error:"
@@ -19536,7 +19534,7 @@ msgstr[0] ""
"Êtes-vous sûr de vouloir supprimer l'enregistrement <strong>d'un billet</"
"strong>?"
msgstr[1] ""
"Êtes-vous sûr de vouloir supprimer l'enregistrement <strong>%(count)s "
"Êtes-vous sûr de vouloir supprimer l'enregistrement <strong>%(count)s "
"billets</strong>?"
#: pretix/control/templates/pretixcontrol/checkin/bulk_revert_confirm.html:24
@@ -21634,7 +21632,7 @@ msgid ""
"as examples, you can add more in the \"Settings\" part of your event."
msgstr ""
"pretix supporte une <a href=\"https://pretix.eu/about/en/features/payment\" "
"target=\"_blank\">large gamme de fournisseurs de paiement </a> vous "
"target=\"_blank\">large gamme de fournisseurs de paiement</a> vous "
"permettant de choisir les méthodes de paiement qui conviennent le mieux à "
"votre flux de travail. En voici deux à titre d'exemple, vous pouvez en "
"ajouter dans la partie \"Paramètres\" de votre événement."
@@ -23578,8 +23576,8 @@ msgid ""
msgstr ""
"Veuillez sélectionner les produits ou les variantes de produits auxquels ce "
"quota doit s'appliquer. Si vous appliquez deux quotas à un même produit, il "
"ne sera seulement disponible si les quotas <strong>1 et </strong>2 ont "
"encore de la place."
"ne sera seulement disponible si les quotas <strong>et</strong> ont encore de "
"la place."
#: pretix/control/templates/pretixcontrol/items/quota_edit.html:41
msgid "Advanced options"
@@ -23638,8 +23636,8 @@ msgid ""
"Are you sure you want to disable the application <strong>%(application)s</"
"strong> permanently?"
msgstr ""
"Êtes-vous sûr de vouloir désactiver l'application <strong>1%(application)s2</"
"strong>3 en permanence ?"
"Êtes-vous sûr de vouloir désactiver l'application <strong>%(application)s</"
"strong> de manière permanente ?"
#: pretix/control/templates/pretixcontrol/oauth/app_list.html:4
#: pretix/control/templates/pretixcontrol/oauth/app_list.html:6
@@ -27465,8 +27463,8 @@ msgid ""
"Using this option will <strong>delete all current quotas</strong> from "
"<strong>all selected dates</strong>."
msgstr ""
"Cette option permet de <strong> supprimer tous les quotas actuels</strong> "
"de <strong>toutes les dates sélectionnées</strong>."
"Cette option permet de <strong>supprimer tous les quotas actuels</strong> de "
"<strong>toutes les dates sélectionnées</strong>."
#: pretix/control/templates/pretixcontrol/subevents/bulk_edit.html:277
msgid ""
@@ -28399,10 +28397,8 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/waitinglist/edit.html:4
#: pretix/control/templates/pretixcontrol/waitinglist/edit.html:6
#: pretix/control/templates/pretixcontrol/waitinglist/index.html:273
#, fuzzy
#| msgid "Entry"
msgid "Edit entry"
msgstr "Entrée"
msgstr "Modifier l'entrée"
#: pretix/control/templates/pretixcontrol/waitinglist/index.html:17
msgid ""
@@ -28464,7 +28460,7 @@ msgid ""
"quota is available) or you can press the big button below this text to send "
"out as many vouchers as currently possible to the persons who waited longest."
msgstr ""
"Vous avez configuré que les bons <strong>1not</strong>2 seront envoyés "
"Vous avez configuré que les bons <strong>ne</strong> seront envoyés "
"automatiquement. Vous pouvez soit les envoyer un par un dans l'ordre de "
"votre choix en cliquant sur les boutons à côté d'une ligne dans ce tableau "
"(si un quota suffisant est disponible), soit vous pouvez appuyer sur le gros "
@@ -30368,15 +30364,7 @@ msgstr ""
"compte."
#: pretix/control/views/user.py:635
#, fuzzy, python-brace-format
#| msgid ""
#| "Your emergency codes have been newly generated. Remember to store them in "
#| "a safe place in case you lose access to your devices. You will not be "
#| "able to view them again here.\n"
#| "\n"
#| "Your emergency codes:\n"
#| "- \n"
#| "- "
#, python-brace-format
msgid ""
"Your emergency codes have been newly generated. Remember to store them in a "
"safe place in case you lose access to your devices. You will not be able to "
@@ -30390,8 +30378,7 @@ msgstr ""
"appareils. Vous ne pourrez plus les consulter ici.\n"
"\n"
"Vos codes d'urgence :\n"
"-\n"
"- "
"{tokens}"
#: pretix/control/views/user.py:655
msgid "Your notifications have been disabled."
@@ -30558,10 +30545,8 @@ msgid "The selected entry has been deleted."
msgstr "L'entrée sélectionnée a été supprimée."
#: pretix/control/views/waitinglist.py:417
#, fuzzy
#| msgid "The waitinglist entry has been transferred."
msgid "The waitinglist entry has been changed."
msgstr "Lentrée de la liste dattente a été transférée."
msgstr "L'entrée dans la liste d'attente a été modifiée."
#: pretix/helpers/countries.py:134
msgid "Belarus"

File diff suppressed because it is too large Load Diff

View File

@@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-01-26 09:10+0000\n"
"PO-Revision-Date: 2025-12-03 23:00+0000\n"
"Last-Translator: sandra r <sandrarial@gestiontickets.online>\n"
"PO-Revision-Date: 2026-03-02 21:00+0000\n"
"Last-Translator: Sandra Rial Pérez <sandrarial@gestiontickets.online>\n"
"Language-Team: Galician <https://translate.pretix.eu/projects/pretix/pretix-"
"js/gl/>\n"
"Language: gl\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.14.3\n"
"X-Generator: Weblate 5.16.1\n"
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:56
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:62
@@ -162,12 +162,12 @@ msgstr "Pedidos pagados"
#: pretix/plugins/statistics/static/pretixplugins/statistics/statistics.js:27
#: pretix/plugins/statistics/static/pretixplugins/statistics/statistics.js:39
msgid "Attendees (ordered)"
msgstr ""
msgstr "Asistentes (ordenados)"
#: pretix/plugins/statistics/static/pretixplugins/statistics/statistics.js:27
#: pretix/plugins/statistics/static/pretixplugins/statistics/statistics.js:39
msgid "Attendees (paid)"
msgstr ""
msgstr "Asistentes (de pago)"
#: pretix/plugins/statistics/static/pretixplugins/statistics/statistics.js:51
msgid "Total revenue"
@@ -732,8 +732,8 @@ msgid ""
"The items in your cart are no longer reserved for you. You can still "
"complete your order as long as theyre available."
msgstr ""
"Os artigos da túa cesta xa non están reservados para ti. Aínda podes "
"completar o teu pedido mentres estean dispoñibles."
"Os artigos do teu carro xa non están reservados para ti. Podes completar o "
"teu pedido sempre que estean dispoñibles."
#: pretix/static/pretixpresale/js/ui/cart.js:49
msgid "Cart expired"

View File

@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-02-24 11:50+0000\n"
"PO-Revision-Date: 2026-02-24 11:49+0000\n"
"PO-Revision-Date: 2026-03-02 10:00+0000\n"
"Last-Translator: Hijiri Umemoto <hijiri@umemoto.org>\n"
"Language-Team: Japanese <https://translate.pretix.eu/projects/pretix/pretix/"
"ja/>\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 5.16\n"
"X-Generator: Weblate 5.16.1\n"
#: pretix/_base_settings.py:87
msgid "English"
@@ -6997,22 +6997,22 @@ msgstr "2006/112/EC号指令の第309条に基づいて免除"
#: pretix/base/models/tax.py:253
msgctxt "tax_code"
msgid "Intra-Community acquisition from second hand means of transport"
msgstr "中古輸送手段のEU域内取得"
msgstr "中古輸送手段の域内取得"
#: pretix/base/models/tax.py:255
msgctxt "tax_code"
msgid "Intra-Community acquisition of second hand goods"
msgstr "中古品のEU域内取得"
msgstr "中古品の域内取得"
#: pretix/base/models/tax.py:257
msgctxt "tax_code"
msgid "Intra-Community acquisition of works of art"
msgstr "芸術作品のEU域内取得"
msgstr "芸術作品の域内取得"
#: pretix/base/models/tax.py:259
msgctxt "tax_code"
msgid "Intra-Community acquisition of collectors items and antiques"
msgstr "コレクターアイテムおよび骨董品のEU域内取得"
msgstr "コレクターアイテムおよび骨董品の域内取得"
#: pretix/base/models/tax.py:261
msgctxt "tax_code"
@@ -16579,28 +16579,20 @@ msgid "You need to specify as many seats as voucher codes."
msgstr "あなたはバウチャーコードの数と同じだけの席を指定する必要があります。"
#: pretix/control/forms/waitinglist.py:39
#, fuzzy
#| msgid "Please select a valid seat."
msgid "Select a valid choice."
msgstr "有効な座席を選択してください。"
msgstr "有効な選択肢を選んでください。"
#: pretix/control/forms/waitinglist.py:107
#, fuzzy
#| msgid "Active products"
msgid "Only includes active products."
msgstr "有効な製品"
msgstr "有効な製品のみを含みます。"
#: 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 "このコードを持つバウチャーはすでに存在しています。"
msgstr "この空席待ちリストの内容を持つバウチャーはすでに発送済みです。"
#: pretix/control/forms/waitinglist.py:125
#, fuzzy
#| msgid "The selected product has been deactivated."
msgid "The selected product is not active."
msgstr "選択された製品無効化されました。"
msgstr "選択された製品無効です。"
#: pretix/control/logdisplay.py:73 pretix/control/logdisplay.py:83
msgid "The order has been changed:"
@@ -18348,6 +18340,9 @@ msgid ""
"in repeatedly. Please check if your browser is set to block cookies, or "
"delete all existing cookies and retry."
msgstr ""
"お使いのブラウザが私どものクッキーを受け入れていないようですので、繰り返し"
"ログインする必要があります。ブラウザがクッキーをブロックする設定になっている"
"か、既存のクッキーをすべて削除して再試行してください。"
#: pretix/control/templates/pretixcontrol/auth/login.html:35
#: pretix/presale/templates/pretixpresale/fragment_login_status.html:19
@@ -27400,10 +27395,8 @@ msgstr "次のエントリはすでにバウチャーが添付されているた
#: pretix/control/templates/pretixcontrol/waitinglist/edit.html:4
#: pretix/control/templates/pretixcontrol/waitinglist/edit.html:6
#: pretix/control/templates/pretixcontrol/waitinglist/index.html:273
#, fuzzy
#| msgid "Entry"
msgid "Edit entry"
msgstr "入場"
msgstr "エントリーを編集する"
#: pretix/control/templates/pretixcontrol/waitinglist/index.html:17
msgid ""
@@ -29283,15 +29276,7 @@ msgid "Two-factor authentication is now disabled for your account."
msgstr "アカウントの二要素認証が無効になりました。"
#: pretix/control/views/user.py:635
#, fuzzy, python-brace-format
#| msgid ""
#| "Your emergency codes have been newly generated. Remember to store them in "
#| "a safe place in case you lose access to your devices. You will not be "
#| "able to view them again here.\n"
#| "\n"
#| "Your emergency codes:\n"
#| "- \n"
#| "- "
#, python-brace-format
msgid ""
"Your emergency codes have been newly generated. Remember to store them in a "
"safe place in case you lose access to your devices. You will not be able to "
@@ -29305,8 +29290,7 @@ msgstr ""
"ことはできません。\n"
"\n"
"あなたの緊急コード:\n"
"-\n"
"- "
"{tokens}"
#: pretix/control/views/user.py:655
msgid "Your notifications have been disabled."
@@ -29471,10 +29455,8 @@ msgid "The selected entry has been deleted."
msgstr "選択されたエントリは削除されました。"
#: pretix/control/views/waitinglist.py:417
#, fuzzy
#| msgid "The waitinglist entry has been transferred."
msgid "The waitinglist entry has been changed."
msgstr "空席待ちリスト登録が転送されました。"
msgstr "空席待ちリスト登録が変更されました。"
#: pretix/helpers/countries.py:134
msgid "Belarus"

View File

@@ -7,16 +7,16 @@ msgstr ""
"Project-Id-Version: 1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-02-24 11:50+0000\n"
"PO-Revision-Date: 2026-02-21 03:00+0000\n"
"PO-Revision-Date: 2026-03-03 20:00+0000\n"
"Last-Translator: Ruud Hendrickx <ruud@leckxicon.eu>\n"
"Language-Team: Dutch <https://translate.pretix.eu/projects/pretix/pretix/nl/"
">\n"
"Language-Team: Dutch <https://translate.pretix.eu/projects/pretix/pretix/nl/>"
"\n"
"Language: nl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.16\n"
"X-Generator: Weblate 5.16.1\n"
#: pretix/_base_settings.py:87
msgid "English"
@@ -7996,7 +7996,7 @@ msgstr "Deze cadeaubon is in de tussentijd gebruikt. Probeer het opnieuw."
#: pretix/base/pdf.py:98
msgid "Ticket code (barcode content)"
msgstr "Ticketcode (waarde van QR-code)"
msgstr "Ticketcode (inhoud van QR-code)"
#: pretix/base/pdf.py:110
msgid "Order position number"
@@ -9664,7 +9664,7 @@ msgstr "Het bedrag is van uw kaart afgeschreven."
#: pretix/base/services/placeholders.py:699
msgid "Please transfer money to this bank account: 9999-9999-9999-9999"
msgstr "Maak het geld over naar deze bankrekening: NL13 TEST 0123 4567 89"
msgstr "Maak het geld over naar deze bankrekening: 9999-9999-9999-9999"
#: pretix/base/services/placeholders.py:799
#: pretix/control/views/organizer.py:349
@@ -11081,8 +11081,8 @@ msgid ""
"If turned off, ticket downloads are only possible after an order has been "
"marked as paid."
msgstr ""
"Als deze optie is uitgeschakeld, kunnen tickets alleen worden gedownload "
"nadat een bestelling als betaald is gemarkeerd."
"Indien uitgeschakeld, kunnen tickets alleen gedownload worden als de "
"bestelling als betaald gemarkeerd is."
#: pretix/base/settings.py:1763
msgid "Do not issue ticket before email address is validated"
@@ -13801,12 +13801,12 @@ msgstr "Altijd"
#: pretix/base/timeline.py:60
msgctxt "timeline"
msgid "Your event starts"
msgstr "Uw evenement start"
msgstr "Start van uw evenement"
#: pretix/base/timeline.py:68
msgctxt "timeline"
msgid "Your event ends"
msgstr "Uw evenement eindigt"
msgstr "Einde van uw evenement"
#: pretix/base/timeline.py:76
msgctxt "timeline"
@@ -17002,28 +17002,20 @@ msgid "You need to specify as many seats as voucher codes."
msgstr "U moet evenveel stoelnummers als vouchercodes opgeven."
#: pretix/control/forms/waitinglist.py:39
#, fuzzy
#| msgid "Please select a valid seat."
msgid "Select a valid choice."
msgstr "Kies een geldige beschikbare stoel."
msgstr "Maak een geldige keuze."
#: pretix/control/forms/waitinglist.py:107
#, fuzzy
#| msgid "Active products"
msgid "Only includes active products."
msgstr "Actieve producten"
msgstr "Bevat alleen actieve producten."
#: 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 "Er bestaat al een voucher met deze code."
msgstr "Er is al een voucher verzonden naar deze inschrijver op de wachtlijst."
#: pretix/control/forms/waitinglist.py:125
#, fuzzy
#| msgid "The selected product has been deactivated."
msgid "The selected product is not active."
msgstr "Het gekozen product is uitgeschakeld."
msgstr "Het gekozen product is niet actief."
#: pretix/control/logdisplay.py:73 pretix/control/logdisplay.py:83
msgid "The order has been changed:"
@@ -18811,6 +18803,9 @@ msgid ""
"in repeatedly. Please check if your browser is set to block cookies, or "
"delete all existing cookies and retry."
msgstr ""
"Uw browser lijkt ons cookie niet te accepteren, waardoor u telkens opnieuw "
"moet inloggen. Controleer of uw browser cookies blokkeert of verwijder alle "
"opgeslagen cookies en probeer het opnieuw."
#: pretix/control/templates/pretixcontrol/auth/login.html:35
#: pretix/presale/templates/pretixpresale/fragment_login_status.html:19
@@ -22359,7 +22354,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/item/base.html:24
#: pretix/control/templates/pretixcontrol/item/include_variations.html:79
msgid "Manage quotas"
msgstr "Vragen quotums"
msgstr "Quota beheren"
#: pretix/control/templates/pretixcontrol/item/base.html:27
#: pretix/control/templates/pretixcontrol/item/include_variations.html:82
@@ -28077,10 +28072,8 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/waitinglist/edit.html:4
#: pretix/control/templates/pretixcontrol/waitinglist/edit.html:6
#: pretix/control/templates/pretixcontrol/waitinglist/index.html:273
#, fuzzy
#| msgid "Entry"
msgid "Edit entry"
msgstr "Binnenkomst"
msgstr "Inschrijving bewerken"
#: pretix/control/templates/pretixcontrol/waitinglist/index.html:17
msgid ""
@@ -30020,15 +30013,7 @@ msgid "Two-factor authentication is now disabled for your account."
msgstr "Twee-factor-authenticatie is nu uitgeschakeld voor uw account."
#: pretix/control/views/user.py:635
#, fuzzy, python-brace-format
#| msgid ""
#| "Your emergency codes have been newly generated. Remember to store them in "
#| "a safe place in case you lose access to your devices. You will not be "
#| "able to view them again here.\n"
#| "\n"
#| "Your emergency codes:\n"
#| "- \n"
#| "- "
#, python-brace-format
msgid ""
"Your emergency codes have been newly generated. Remember to store them in a "
"safe place in case you lose access to your devices. You will not be able to "
@@ -30042,8 +30027,7 @@ msgstr ""
"U kunt ze hier niet meer opnieuw laten tonen.\n"
"\n"
"Uw noodcodes: \n"
"-\n"
"- "
"{tokens}"
#: pretix/control/views/user.py:655
msgid "Your notifications have been disabled."
@@ -30210,10 +30194,8 @@ msgid "The selected entry has been deleted."
msgstr "De gekozen inschrijving is verwijderd."
#: pretix/control/views/waitinglist.py:417
#, fuzzy
#| msgid "The waitinglist entry has been transferred."
msgid "The waitinglist entry has been changed."
msgstr "De wachtlijstinschrijving is overgedragen."
msgstr "De inschrijving op de wachtlijst is veranderd."
#: pretix/helpers/countries.py:134
msgid "Belarus"

File diff suppressed because it is too large Load Diff

View File

@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-02-24 11:50+0000\n"
"PO-Revision-Date: 2026-02-21 03:00+0000\n"
"PO-Revision-Date: 2026-03-02 10:00+0000\n"
"Last-Translator: Ruud Hendrickx <ruud@leckxicon.eu>\n"
"Language-Team: Dutch (informal) <https://translate.pretix.eu/projects/pretix/"
"pretix/nl_Informal/>\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.16\n"
"X-Generator: Weblate 5.16.1\n"
#: pretix/_base_settings.py:87
msgid "English"
@@ -9673,7 +9673,7 @@ msgstr "Het bedrag is van je kaart afgeschreven."
#: pretix/base/services/placeholders.py:699
msgid "Please transfer money to this bank account: 9999-9999-9999-9999"
msgstr "Maak het geld over naar deze bankrekening: NL13 TEST 0123 4567 89"
msgstr "Maak het geld over naar deze bankrekening: 9999-9999-9999-9999"
#: pretix/base/services/placeholders.py:799
#: pretix/control/views/organizer.py:349
@@ -17032,28 +17032,20 @@ msgid "You need to specify as many seats as voucher codes."
msgstr "Je moet evenveel stoelnummers als vouchercodes opgeven."
#: pretix/control/forms/waitinglist.py:39
#, fuzzy
#| msgid "Please select a valid seat."
msgid "Select a valid choice."
msgstr "Kies een geldige beschikbare stoel."
msgstr "Maak een geldige keuze."
#: pretix/control/forms/waitinglist.py:107
#, fuzzy
#| msgid "Active products"
msgid "Only includes active products."
msgstr "Actieve producten"
msgstr "Bevat alleen actieve producten."
#: 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 "Er bestaat al een voucher met deze code."
msgstr "Er is al een voucher verzonden naar deze inschrijver op de wachtlijst."
#: pretix/control/forms/waitinglist.py:125
#, fuzzy
#| msgid "The selected product has been deactivated."
msgid "The selected product is not active."
msgstr "Het gekozen product is uitgeschakeld."
msgstr "Het gekozen product is niet actief."
#: pretix/control/logdisplay.py:73 pretix/control/logdisplay.py:83
msgid "The order has been changed:"
@@ -18844,6 +18836,9 @@ msgid ""
"in repeatedly. Please check if your browser is set to block cookies, or "
"delete all existing cookies and retry."
msgstr ""
"Je browser lijkt ons cookie niet te accepteren, waardoor je telkens opnieuw "
"moet inloggen. Controleer of je browser cookies blokkeert of verwijder alle "
"opgeslagen cookies en probeer het opnieuw."
#: pretix/control/templates/pretixcontrol/auth/login.html:35
#: pretix/presale/templates/pretixpresale/fragment_login_status.html:19
@@ -28141,10 +28136,8 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/waitinglist/edit.html:4
#: pretix/control/templates/pretixcontrol/waitinglist/edit.html:6
#: pretix/control/templates/pretixcontrol/waitinglist/index.html:273
#, fuzzy
#| msgid "Entry"
msgid "Edit entry"
msgstr "Binnenkomst"
msgstr "Inschrijving bewerken"
#: pretix/control/templates/pretixcontrol/waitinglist/index.html:17
msgid ""
@@ -30080,15 +30073,7 @@ msgid "Two-factor authentication is now disabled for your account."
msgstr "Twee-factor-authenticatie is nu uitgeschakeld voor je account."
#: pretix/control/views/user.py:635
#, fuzzy, python-brace-format
#| msgid ""
#| "Your emergency codes have been newly generated. Remember to store them in "
#| "a safe place in case you lose access to your devices. You will not be "
#| "able to view them again here.\n"
#| "\n"
#| "Your emergency codes:\n"
#| "- \n"
#| "- "
#, python-brace-format
msgid ""
"Your emergency codes have been newly generated. Remember to store them in a "
"safe place in case you lose access to your devices. You will not be able to "
@@ -30102,8 +30087,7 @@ msgstr ""
"Je kunt ze hier niet meer opnieuw laten tonen.\n"
"\n"
"Je noodcodes:\n"
"-\n"
"- "
"{tokens}"
#: pretix/control/views/user.py:655
msgid "Your notifications have been disabled."
@@ -30270,10 +30254,8 @@ msgid "The selected entry has been deleted."
msgstr "De gekozen inschrijving is verwijderd."
#: pretix/control/views/waitinglist.py:417
#, fuzzy
#| msgid "The waitinglist entry has been transferred."
msgid "The waitinglist entry has been changed."
msgstr "De wachtlijstvermelding is overgedragen."
msgstr "De inschrijving op de wachtlijst is veranderd."
#: pretix/helpers/countries.py:134
msgid "Belarus"
@@ -34075,7 +34057,7 @@ msgid ""
"completed your payment, you can refresh this page."
msgstr ""
"Scan de QR-code hieronder om je WeChat-betaling uit te voeren. Als je de "
"betaling hebt afgerond kan je deze pagina verversen."
"betaling hebt afgerond, kan je deze pagina verversen."
#: pretix/plugins/stripe/templates/pretixplugins/stripe/pending.html:62
msgid ""
@@ -35249,7 +35231,7 @@ msgstr "incl. belasting"
#: pretix/presale/templates/pretixpresale/event/voucher.html:359
#, python-format
msgid "<strong>plus</strong> %(rate)s%% %(name)s"
msgstr "<strong>excl.</strong> %(rate)s%% %(name)s"
msgstr "<strong>plus</strong> %(rate)s%% %(name)s"
#: pretix/presale/templates/pretixpresale/event/fragment_addon_choice.html:180
#: pretix/presale/templates/pretixpresale/event/fragment_addon_choice.html:320

File diff suppressed because it is too large Load Diff

View File

@@ -6,6 +6,7 @@
{% load eventurl %}
{% load safelink %}
{% load rich_text %}
{% load anonymize_email %}
{% block thetitle %}
{% if messages %}
{{ messages|join:" " }} ::
@@ -219,7 +220,7 @@
{% endblock %}
{% block footernav %}
{% if request.event.settings.contact_mail %}
<li><a href="mailto:{{ request.event.settings.contact_mail }}" target="_blank" rel="noopener">{% trans "Contact" %}</a></li>
<li><a href="{{ 'mailto:'|add:request.event.settings.contact_mail|anon_email }}" target="_blank" rel="noopener">{% trans "Contact" %}</a></li>
{% endif %}
{% if request.event.settings.privacy_url %}
<li><a href="{% safelink request.event.settings.privacy_url %}" target="_blank" rel="noopener">{% trans "Privacy policy" %}</a></li>

View File

@@ -21,4 +21,5 @@
<script type="text/javascript" src="{% static "pretixpresale/js/ui/cart.js" %}"></script>
<script type="text/javascript" src="{% static "pretixpresale/js/ui/iframe.js" %}"></script>
<script type="text/javascript" src="{% static "pretixbase/js/addressform.js" %}"></script>
<script type="text/javascript" src="{% static "pretixbase/js/deanonymize_email.js" %}"></script>
{% endcompress %}

View File

@@ -5,6 +5,7 @@
{% load thumb %}
{% load eventurl %}
{% load safelink %}
{% load anonymize_email %}
{% block thetitle %}
{% block title %}{% endblock %}{% if url_name != "organizer.index" %} :: {% endif %}{{ organizer.name }}
{% endblock %}
@@ -97,7 +98,7 @@
{% endblock %}
{% block footernav %}
{% if not request.event and request.organizer.settings.contact_mail %}
<li><a href="mailto:{{ request.organizer.settings.contact_mail }}" target="_blank" rel="noopener">{% trans "Contact" %}</a></li>
<li><a href="{{ 'mailto:'|add:request.organizer.settings.contact_mail|anon_email }}" target="_blank" rel="noopener">{% trans "Contact" %}</a></li>
{% endif %}
{% if not request.event and request.organizer.settings.privacy_url %}
<li><a href="{% safelink request.organizer.settings.privacy_url %}" target="_blank" rel="noopener">{% trans "Privacy policy" %}</a></li>

View File

@@ -0,0 +1,7 @@
document.addEventListener('DOMContentLoaded', function() {
document.querySelectorAll('a[href^="mailto:"]').forEach(function(link) {
// Replace [at] with @ and the [dot] with . in both the href and the displayed text (if needed)
link.href = link.href.replace('[at]', '@').replace('[dot]', '.');
link.textContent = link.textContent.replace('[at]', '@').replace('[dot]', '.');
});
});

View File

@@ -895,6 +895,41 @@ def test_order_create_payment_info_optional(token_client, organizer, event, item
assert json.loads(p.info) == res['payment_info']
@pytest.mark.django_db
def test_order_create_payment_info_valid_object(token_client, organizer, event, item, quota, question):
res = copy.deepcopy(ORDER_CREATE_PAYLOAD)
res['positions'][0]['item'] = item.pk
res['positions'][0]['answers'][0]['question'] = question.pk
res["payment_info"] = [{"should": "fail"}]
resp = token_client.post(
'/api/v1/organizers/{}/events/{}/orders/'.format(
organizer.slug, event.slug
), format='json', data=res
)
assert resp.status_code == 400
res['payment_info'] = {
'foo': {
'bar': [1, 2],
'test': False
}
}
resp = token_client.post(
'/api/v1/organizers/{}/events/{}/orders/'.format(
organizer.slug, event.slug
), format='json', data=res
)
assert resp.status_code == 201
with scopes_disabled():
o = Order.objects.get(code=resp.data['code'])
p = o.payments.first()
assert p.provider == "banktransfer"
assert p.amount == o.total
assert json.loads(p.info) == res['payment_info']
@pytest.mark.django_db
def test_order_create_position_secret_optional(token_client, organizer, event, item, quota, question):
res = copy.deepcopy(ORDER_CREATE_PAYLOAD)