Compare commits

..

39 Commits

Author SHA1 Message Date
luelista
4c0c775baa Improve 2fa type selection UI (#6031) 2026-03-27 13:47:10 +01:00
Linnea Thelander
394652a5ff Translations: Update Swedish
Currently translated at 88.0% (5530 of 6283 strings)

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

powered by weblate
2026-03-27 10:05:21 +01:00
Ivano Voghera
3f50d065ec Translations: Update Italian
Currently translated at 40.0% (2515 of 6283 strings)

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

powered by weblate
2026-03-27 10:05:21 +01:00
Ivano Voghera
4121061267 Translations: Update Italian
Currently translated at 40.0% (2515 of 6283 strings)

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

powered by weblate
2026-03-26 18:50:24 +01:00
Linnea Thelander
aed2220139 Translations: Update Swedish
Currently translated at 76.9% (197 of 256 strings)

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

powered by weblate
2026-03-26 18:50:24 +01:00
Linnea Thelander
4b2c54d38e Translations: Update Swedish
Currently translated at 88.0% (5530 of 6283 strings)

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

powered by weblate
2026-03-26 18:50:24 +01:00
Ivano Voghera
0113a3dc1f Translations: Update Italian
Currently translated at 39.9% (2507 of 6283 strings)

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

powered by weblate
2026-03-26 18:50:24 +01:00
Linnea Thelander
c12a8935f1 Translations: Update Swedish
Currently translated at 87.9% (5529 of 6283 strings)

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

powered by weblate
2026-03-26 11:48:45 +01:00
Pietro Isotti
a86a6cc2c7 Translations: Update Italian
Currently translated at 39.5% (2486 of 6283 strings)

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

powered by weblate
2026-03-26 11:48:45 +01:00
Pietro Isotti
fec2b9a2fc Translations: Update Italian
Currently translated at 68.3% (175 of 256 strings)

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

powered by weblate
2026-03-26 11:48:45 +01:00
Pietro Isotti
d847a7e8f8 Translations: Update Italian
Currently translated at 39.2% (2463 of 6283 strings)

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

powered by weblate
2026-03-26 11:48:45 +01:00
Ruud Hendrickx
c58a968196 Translations: Update Dutch (Belgium)
Currently translated at 79.1% (4970 of 6283 strings)

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

powered by weblate
2026-03-26 11:48:45 +01:00
Renne Rocha
81cbaca162 Translations: Update Portuguese (Brazil)
Currently translated at 100.0% (256 of 256 strings)

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

powered by weblate
2026-03-26 11:48:45 +01:00
Renne Rocha
218df7a49f Translations: Update Portuguese (Brazil)
Currently translated at 95.1% (5979 of 6283 strings)

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

powered by weblate
2026-03-26 11:48:45 +01:00
Ruud Hendrickx
f64343d977 Translations: Update Dutch (Belgium)
Currently translated at 78.7% (4948 of 6283 strings)

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

powered by weblate
2026-03-26 11:48:45 +01:00
Hijiri Umemoto
b36c7cbef3 Translations: Update Japanese
Currently translated at 100.0% (256 of 256 strings)

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

powered by weblate
2026-03-26 11:48:45 +01:00
Hijiri Umemoto
18b39ba7cd Translations: Update Japanese
Currently translated at 100.0% (6283 of 6283 strings)

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

powered by weblate
2026-03-26 11:48:45 +01:00
Raphael Michel
1383e967df Hotfix font select in organizer 2026-03-25 15:14:20 +01:00
dependabot[bot]
c743e9fd3f Update sentry-sdk requirement from ==2.54.* to ==2.56.* (#6023)
Updates the requirements on [sentry-sdk](https://github.com/getsentry/sentry-python) to permit the latest version.
- [Release notes](https://github.com/getsentry/sentry-python/releases)
- [Changelog](https://github.com/getsentry/sentry-python/blob/master/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-python/compare/2.54.0...2.56.0)

---
updated-dependencies:
- dependency-name: sentry-sdk
  dependency-version: 2.56.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-25 13:41:13 +01:00
Raphael Michel
a71efa6747 Event settings: Workaround for Django 5.2 change (#6025) 2026-03-24 22:00:05 +01:00
Richard Schreiber
4fed47fb9b Fix live_receivers for django 5 2026-03-24 17:14:05 +01:00
Phin Wolkwitz
c143d50290 Update django to 5.2 2026-03-24 16:33:28 +01:00
luelista
88cd715ece Always show Organizers and Events menu entries for staff (#6011) 2026-03-24 11:26:54 +01:00
dependabot[bot]
3513de6a45 Update importlib-metadata requirement from ==8.* to ==9.* (#6016)
Updates the requirements on [importlib-metadata](https://github.com/python/importlib_metadata) to permit the latest version.
- [Release notes](https://github.com/python/importlib_metadata/releases)
- [Changelog](https://github.com/python/importlib_metadata/blob/main/NEWS.rst)
- [Commits](https://github.com/python/importlib_metadata/compare/v8.0.0...v9.0.0)

---
updated-dependencies:
- dependency-name: importlib-metadata
  dependency-version: 9.0.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-24 09:09:07 +01:00
Richard Schreiber
fd6d3934c0 Remove invoice_address_from_vat_id on save if it is not used 2026-03-23 14:33:17 +01:00
Ruud Hendrickx
222b453b43 Translations: Update Dutch (Belgium)
Currently translated at 77.4% (4869 of 6283 strings)

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

powered by weblate
2026-03-19 17:54:41 +01:00
Ruud Hendrickx
617a0f5dc7 Translations: Update Dutch (Belgium)
Currently translated at 100.0% (256 of 256 strings)

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

powered by weblate
2026-03-19 17:54:41 +01:00
Ruud Hendrickx
12f53ec2c3 Translations: Update Dutch (Belgium)
Currently translated at 77.3% (4857 of 6283 strings)

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

powered by weblate
2026-03-19 17:54:41 +01:00
Ruud Hendrickx
5449285624 Translations: Update Dutch (informal) (nl_Informal)
Currently translated at 100.0% (256 of 256 strings)

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

powered by weblate
2026-03-19 17:54:41 +01:00
Ruud Hendrickx
68bf7d44f2 Translations: Update Dutch (informal) (nl_Informal)
Currently translated at 100.0% (6283 of 6283 strings)

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

powered by weblate
2026-03-19 17:54:41 +01:00
CVZ-es
a31db20804 Translations: Update Spanish
Currently translated at 100.0% (256 of 256 strings)

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

powered by weblate
2026-03-19 17:54:41 +01:00
CVZ-es
1bd08cf3aa Translations: Update Spanish
Currently translated at 100.0% (6283 of 6283 strings)

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

powered by weblate
2026-03-19 17:54:41 +01:00
CVZ-es
fbea13227f Translations: Update French
Currently translated at 100.0% (256 of 256 strings)

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

powered by weblate
2026-03-19 17:54:41 +01:00
Ruud Hendrickx
b3ff32d345 Translations: Update Dutch
Currently translated at 100.0% (256 of 256 strings)

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

powered by weblate
2026-03-19 17:54:41 +01:00
Ruud Hendrickx
ed0611253e Translations: Update Dutch
Currently translated at 100.0% (6283 of 6283 strings)

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

powered by weblate
2026-03-19 17:54:41 +01:00
CVZ-es
41af5fae17 Translations: Update French
Currently translated at 100.0% (6283 of 6283 strings)

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

powered by weblate
2026-03-19 17:54:41 +01:00
Raphael Michel
42f61d74fa Translations: Update German (informal) (de_Informal)
Currently translated at 100.0% (6283 of 6283 strings)

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

powered by weblate
2026-03-19 17:54:41 +01:00
Raphael Michel
4923e0be31 Translations: Update German
Currently translated at 100.0% (6283 of 6283 strings)

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

powered by weblate
2026-03-19 17:54:41 +01:00
Kara Engelhardt
e63bc09216 Use correct first page number in control pagination
This worked accidentally because page_obj.num_pages does not exists (page_obj.paginator.num_pages does) which made url_replace remove the page parameter
2026-03-19 13:19:10 +01:00
60 changed files with 1171 additions and 1671 deletions

View File

@@ -24,7 +24,7 @@ jobs:
name: Packaging
strategy:
matrix:
python-version: ["3.11"]
python-version: ["3.13"]
steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}

View File

@@ -24,10 +24,10 @@ jobs:
name: Check gettext syntax
steps:
- uses: actions/checkout@v4
- name: Set up Python 3.11
- name: Set up Python 3.13
uses: actions/setup-python@v5
with:
python-version: 3.11
python-version: 3.13
- uses: actions/cache@v4
with:
path: ~/.cache/pip
@@ -49,10 +49,10 @@ jobs:
name: Spellcheck
steps:
- uses: actions/checkout@v4
- name: Set up Python 3.11
- name: Set up Python 3.13
uses: actions/setup-python@v5
with:
python-version: 3.11
python-version: 3.13
- uses: actions/cache@v4
with:
path: ~/.cache/pip

View File

@@ -24,10 +24,10 @@ jobs:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- name: Set up Python 3.11
- name: Set up Python 3.13
uses: actions/setup-python@v5
with:
python-version: 3.11
python-version: 3.13
- uses: actions/cache@v4
with:
path: ~/.cache/pip
@@ -44,10 +44,10 @@ jobs:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- name: Set up Python 3.11
- name: Set up Python 3.13
uses: actions/setup-python@v5
with:
python-version: 3.11
python-version: 3.13
- uses: actions/cache@v4
with:
path: ~/.cache/pip
@@ -64,10 +64,10 @@ jobs:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- name: Set up Python 3.11
- name: Set up Python 3.13
uses: actions/setup-python@v5
with:
python-version: 3.11
python-version: 3.13
- name: Install Dependencies
run: pip3 install licenseheaders
- name: Run licenseheaders

View File

@@ -23,13 +23,15 @@ jobs:
name: Tests
strategy:
matrix:
python-version: ["3.10", "3.11", "3.13"]
python-version: ["3.11", "3.13", "3.14"]
database: [sqlite, postgres]
exclude:
- database: sqlite
python-version: "3.10"
- database: sqlite
python-version: "3.11"
- database: sqlite
python-version: "3.12"
services:
postgres:
image: postgres:15
@@ -81,4 +83,4 @@ jobs:
file: src/coverage.xml
token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: false
if: matrix.database == 'postgres' && matrix.python-version == '3.11'
if: matrix.database == 'postgres' && matrix.python-version == '3.13'

View File

@@ -3,7 +3,7 @@ name = "pretix"
dynamic = ["version"]
description = "Reinventing presales, one ticket at a time"
readme = "README.rst"
requires-python = ">=3.10"
requires-python = ">=3.11"
license = {file = "LICENSE"}
keywords = ["tickets", "web", "shop", "ecommerce"]
authors = [
@@ -19,10 +19,11 @@ classifiers = [
"Topic :: Internet :: WWW/HTTP :: Dynamic Content",
"Environment :: Web Environment",
"License :: OSI Approved :: GNU Affero General Public License v3",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Framework :: Django :: 4.2",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
"Framework :: Django :: 5.2",
]
dependencies = [
@@ -36,7 +37,7 @@ dependencies = [
"css-inline==0.20.*",
"defusedcsv>=1.1.0",
"dnspython==2.*",
"Django[argon2]==4.2.*,>=4.2.26",
"Django[argon2]==5.2.*",
"django-bootstrap3==26.1",
"django-compressor==4.6.0",
"django-countries==8.2.*",
@@ -59,7 +60,7 @@ dependencies = [
"dnspython==2.8.*",
"drf_ujson2==1.7.*",
"geoip2==5.*",
"importlib_metadata==8.*", # Polyfill, we can probably drop this once we require Python 3.10+
"importlib_metadata==9.*", # Polyfill, we can probably drop this once we require Python 3.10+
"isoweek",
"jsonschema",
"kombu==5.6.*",
@@ -92,7 +93,7 @@ dependencies = [
"redis==7.1.*",
"reportlab==4.4.*",
"requests==2.32.*",
"sentry-sdk==2.54.*",
"sentry-sdk==2.56.*",
"sepaxml==2.7.*",
"stripe==7.9.*",
"text-unidecode==1.*",

View File

@@ -45,7 +45,6 @@ import pycountry
from django import forms
from django.conf import settings
from django.contrib import messages
from django.contrib.gis.geoip2 import GeoIP2
from django.core.exceptions import ValidationError
from django.core.files.uploadedfile import SimpleUploadedFile
from django.core.validators import (
@@ -102,6 +101,7 @@ from pretix.helpers.countries import (
from pretix.helpers.escapejson import escapejson_attr
from pretix.helpers.http import get_client_ip
from pretix.helpers.i18n import get_format_without_seconds
from pretix.helpers.security import get_geoip
from pretix.presale.signals import question_form_fields
logger = logging.getLogger(__name__)
@@ -393,7 +393,7 @@ class WrappedPhoneNumberPrefixWidget(PhoneNumberPrefixWidget):
def guess_country_from_request(request, event):
if settings.HAS_GEOIP:
g = GeoIP2()
g = get_geoip()
try:
res = g.country(get_client_ip(request))
if res['country_code'] and len(res['country_code']) == 2:

View File

@@ -36,8 +36,9 @@ from django.core.management.commands.makemigrations import Command as Parent
from ._migrations import monkeypatch_migrations
monkeypatch_migrations()
class Command(Parent):
pass
def handle(self, *args, **kwargs):
monkeypatch_migrations()
return super().handle(*args, **kwargs)

View File

@@ -64,7 +64,7 @@ class Command(BaseCommand):
if not periodic_task.receivers or periodic_task.sender_receivers_cache.get(self) is NO_RECEIVERS:
return
for receiver in periodic_task._live_receivers(self):
for receiver in periodic_task._live_receivers(self)[0]:
name = f'{receiver.__module__}.{receiver.__name__}'
if options['list_tasks']:
print(name)

View File

@@ -41,16 +41,20 @@ class Migration(migrations.Migration):
name='datetime',
field=models.DateTimeField(),
),
migrations.AlterIndexTogether(
name='logentry',
index_together={('datetime', 'id')},
migrations.AddIndex(
'logentry',
models.Index(fields=('datetime', 'id'), name="pretixbase__datetim_b1fe5a_idx"),
),
migrations.AlterIndexTogether(
name='order',
index_together={('datetime', 'id'), ('last_modified', 'id')},
migrations.AddIndex(
'order',
models.Index(fields=["datetime", "id"], name="pretixbase__datetim_66aff0_idx"),
),
migrations.AlterIndexTogether(
name='transaction',
index_together={('datetime', 'id')},
migrations.AddIndex(
'order',
models.Index(fields=["last_modified", "id"], name="pretixbase__last_mo_4ebf8b_idx"),
),
migrations.AddIndex(
'transaction',
models.Index(fields=('datetime', 'id'), name="pretixbase__datetim_b20405_idx"),
),
]

View File

@@ -61,7 +61,10 @@ class Migration(migrations.Migration):
options={
'ordering': ('identifier', 'type', 'organizer'),
'unique_together': {('identifier', 'type', 'organizer')},
'index_together': {('identifier', 'type', 'organizer'), ('updated', 'id')},
'indexes': [
models.Index(fields=('identifier', 'type', 'organizer'), name='reusable_medium_organizer_index'),
models.Index(fields=('updated', 'id'), name="pretixbase__updated_093277_idx")
],
},
bases=(models.Model, pretix.base.models.base.LoggingMixin),
),

View File

@@ -9,31 +9,6 @@ class Migration(migrations.Migration):
]
operations = [
migrations.RenameIndex(
model_name="logentry",
new_name="pretixbase__datetim_b1fe5a_idx",
old_fields=("datetime", "id"),
),
migrations.RenameIndex(
model_name="order",
new_name="pretixbase__datetim_66aff0_idx",
old_fields=("datetime", "id"),
),
migrations.RenameIndex(
model_name="order",
new_name="pretixbase__last_mo_4ebf8b_idx",
old_fields=("last_modified", "id"),
),
migrations.RenameIndex(
model_name="reusablemedium",
new_name="pretixbase__updated_093277_idx",
old_fields=("updated", "id"),
),
migrations.RenameIndex(
model_name="transaction",
new_name="pretixbase__datetim_b20405_idx",
old_fields=("datetime", "id"),
),
migrations.AlterField(
model_name="attendeeprofile",
name="id",

View File

@@ -1,6 +1,6 @@
# Generated by Django 4.2.10 on 2024-04-02 15:16
from django.db import migrations
from django.db import migrations, models
class Migration(migrations.Migration):
@@ -10,8 +10,8 @@ class Migration(migrations.Migration):
]
operations = [
migrations.AlterIndexTogether(
name="reusablemedium",
index_together=set(),
migrations.RemoveIndex(
"reusablemedium",
'reusable_medium_organizer_index',
),
]

View File

@@ -32,9 +32,6 @@ import threading
from django.conf import settings
from django.db import transaction
import django
from pathlib import Path
dirty_transactions = threading.local()
@@ -77,14 +74,10 @@ def _transactions_mark_order_dirty(order_id, using=None):
if "PYTEST_CURRENT_TEST" in os.environ:
# We don't care about Order.objects.create() calls in test code so let's try to figure out if this is test code
# or not.
for frame in inspect.stack()[1:]:
if (
'pretix/base/models/orders' in frame.filename
or Path(frame.filename).is_relative_to(Path(django.__file__).parent)
):
# Ignore model- and django-internal code
for frame in inspect.stack():
if 'pretix/base/models/orders' in frame.filename:
continue
elif 'test_' in frame.filename or 'conftest.py' in frame.filename:
elif 'test_' in frame.filename or 'conftest.py in frame.filename':
return
elif 'pretix/' in frame.filename or 'pretix_' in frame.filename:
# This went through non-test code, let's consider it non-test

View File

@@ -88,7 +88,7 @@ class LogEntry(models.Model):
class Meta:
ordering = ('-datetime', '-id')
indexes = [models.Index(fields=["datetime", "id"])]
indexes = [models.Index(fields=["datetime", "id"], name="pretixbase__datetim_b1fe5a_idx")]
def display(self):
from pretix.base.logentrytype_registry import log_entry_types

View File

@@ -122,7 +122,7 @@ class ReusableMedium(LoggedModel):
class Meta:
unique_together = (("identifier", "type", "organizer"),)
indexes = [
models.Index(fields=("updated", "id")),
models.Index(fields=("updated", "id"), name="pretixbase__updated_093277_idx"),
]
ordering = "identifier", "type", "organizer"

View File

@@ -336,8 +336,8 @@ class Order(LockModel, LoggedModel):
verbose_name_plural = _("Orders")
ordering = ("-datetime", "-pk")
indexes = [
models.Index(fields=["datetime", "id"]),
models.Index(fields=["last_modified", "id"]),
models.Index(fields=["datetime", "id"], name="pretixbase__datetim_66aff0_idx"),
models.Index(fields=["last_modified", "id"], name="pretixbase__last_mo_4ebf8b_idx"),
]
constraints = [
models.UniqueConstraint(fields=["organizer", "code"], name="order_organizer_code_uniq"),
@@ -590,7 +590,7 @@ class Order(LockModel, LoggedModel):
not kwargs.get('force_save_with_deferred_fields', None) and
(not update_fields or ('require_approval' not in update_fields and 'status' not in update_fields))
):
_fail("It is unsafe to call save() on an Order with deferred fields since we can't check if you missed "
_fail("It is unsafe to call save() on an OrderFee with deferred fields since we can't check if you missed "
"creating a transaction. Call save(force_save_with_deferred_fields=True) if you really want to do "
"this.")
@@ -2841,7 +2841,7 @@ class OrderPosition(AbstractPosition):
if Transaction.key(self) != self.__initial_transaction_key or self.canceled != self.__initial_canceled or not self.pk:
_transactions_mark_order_dirty(self.order_id, using=kwargs.get('using', None))
elif not kwargs.get('force_save_with_deferred_fields', None):
_fail("It is unsafe to call save() on an OrderPosition with deferred fields since we can't check if you missed "
_fail("It is unsafe to call save() on an OrderFee with deferred fields since we can't check if you missed "
"creating a transaction. Call save(force_save_with_deferred_fields=True) if you really want to do "
"this.")
@@ -3080,7 +3080,7 @@ class Transaction(models.Model):
class Meta:
ordering = 'datetime', 'pk'
indexes = [
models.Index(fields=['datetime', 'id'])
models.Index(fields=['datetime', 'id'], name="pretixbase__datetim_b20405_idx")
]
def save(self, *args, **kwargs):

View File

@@ -100,7 +100,7 @@ def primary_font_kwargs():
choices = [('Open Sans', 'Open Sans')]
choices += sorted([
(a, {"title": a, "data": v}) for a, v in get_fonts(pdf_support_required=False).items()
(a, FontSelect.FontOption(title=a, data=v)) for a, v in get_fonts(pdf_support_required=False).items()
], key=lambda a: a[0])
return {
'choices': choices,
@@ -4148,6 +4148,14 @@ def validate_event_settings(event, settings_dict):
)
]}
)
if (
settings_dict.get('invoice_address_from_vat_id') and
settings_dict.get('invoice_address_from_country') and
settings_dict.get('invoice_address_from_country') not in VAT_ID_COUNTRIES
):
raise ValidationError({
'invoice_address_from_vat_id': _('VAT-ID is not supported for "{}".').format(settings_dict.get('invoice_address_from_country'))
})
payment_term_last = settings_dict.get('payment_term_last')
if payment_term_last and event.presale_end:

View File

@@ -32,6 +32,7 @@
# 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 logging
import warnings
from typing import Any, Callable, Generic, List, Tuple, TypeVar
@@ -48,6 +49,8 @@ from .plugins import (
PLUGIN_LEVEL_ORGANIZER,
)
logger = logging.getLogger(__name__)
app_cache = {}
T = TypeVar('T')
@@ -60,23 +63,25 @@ def _populate_app_cache():
def get_defining_app(o):
# If sentry packed this in a wrapper, unpack that
if "sentry" in o.__module__:
module = getattr(o, "__module__", None)
if module and "sentry" in module:
o = o.__wrapped__
if hasattr(o, "__mocked_app"):
return o.__mocked_app
# Find the Django application this belongs to
searchpath = o.__module__
searchpath = module or getattr(o.__class__, "__module__", None) or ""
# Core modules are always active
if any(searchpath.startswith(cm) for cm in settings.CORE_MODULES):
if searchpath and any(searchpath.startswith(cm) for cm in settings.CORE_MODULES):
return 'CORE'
if not app_cache:
_populate_app_cache()
while True:
app = None
while searchpath:
app = app_cache.get(searchpath)
if "." not in searchpath or app:
break
@@ -157,7 +162,7 @@ class PluginSignal(Generic[T], django.dispatch.Signal):
if not app_cache:
_populate_app_cache()
for receiver in self._sorted_receivers(sender):
for receiver in self._live_receivers(sender)[0]:
if self._is_receiver_active(sender, receiver):
response = receiver(signal=self, sender=sender, **named)
responses.append((receiver, response))
@@ -179,7 +184,7 @@ class PluginSignal(Generic[T], django.dispatch.Signal):
if not app_cache:
_populate_app_cache()
for receiver in self._sorted_receivers(sender):
for receiver in self._live_receivers(sender)[0]:
if self._is_receiver_active(sender, receiver):
named[chain_kwarg_name] = response
response = receiver(signal=self, sender=sender, **named)
@@ -204,7 +209,7 @@ class PluginSignal(Generic[T], django.dispatch.Signal):
if not app_cache:
_populate_app_cache()
for receiver in self._sorted_receivers(sender):
for receiver in self._live_receivers(sender)[0]:
if self._is_receiver_active(sender, receiver):
try:
response = receiver(signal=self, sender=sender, **named)
@@ -214,17 +219,35 @@ class PluginSignal(Generic[T], django.dispatch.Signal):
responses.append((receiver, response))
return responses
def _sorted_receivers(self, sender):
orig_list = self._live_receivers(sender)
def asend(self, sender: T, **named):
raise NotImplementedError() # NOQA
def asend_robust(self, sender: T, **named):
raise NotImplementedError() # NOQA
def _live_receivers(self, sender):
orig_list, orig_async_list = super()._live_receivers(sender)
if orig_async_list:
logger.error('Async receivers are not supported.')
raise NotImplementedError
def _getattr_fallback_to_class(obj, key):
return getattr(obj, key, getattr(obj.__class__, key))
def _is_core_module(receiver):
m = _getattr_fallback_to_class(receiver, "__module__")
return any(m.startswith(c) for c in settings.CORE_MODULES)
sorted_list = sorted(
orig_list,
key=lambda receiver: (
0 if any(receiver.__module__.startswith(m) for m in settings.CORE_MODULES) else 1,
receiver.__module__,
receiver.__name__,
0 if _is_core_module(receiver) else 1,
_getattr_fallback_to_class(receiver, "__module__"),
_getattr_fallback_to_class(receiver, "__name__"),
)
)
return sorted_list
return sorted_list, []
class EventPluginSignal(PluginSignal[Event]):
@@ -300,23 +323,41 @@ class GlobalSignal(django.dispatch.Signal):
if not self.receivers or self.sender_receivers_cache.get(sender) is NO_RECEIVERS:
return response
for receiver in self._live_receivers(sender):
for receiver in self._live_receivers(sender)[0]:
named[chain_kwarg_name] = response
response = receiver(signal=self, sender=sender, **named)
return response
def asend(self, sender: T, **named):
raise NotImplementedError() # NOQA
def asend_robust(self, sender: T, **named):
raise NotImplementedError() # NOQA
def _live_receivers(self, sender):
# Ensure consistent sorting of receivers
orig_list = super()._live_receivers(sender)
orig_list, orig_async_list = super()._live_receivers(sender)
if orig_async_list:
logger.error('Async receivers are not supported.')
raise NotImplementedError
def _getattr_fallback_to_class(obj, key):
return getattr(obj, key, getattr(obj.__class__, key))
def _is_core_module(receiver):
m = _getattr_fallback_to_class(receiver, "__module__")
return any(m.startswith(c) for c in settings.CORE_MODULES)
sorted_list = sorted(
orig_list,
key=lambda receiver: (
0 if any(receiver.__module__.startswith(m) for m in settings.CORE_MODULES) else 1,
receiver.__module__,
receiver.__name__,
0 if _is_core_module(receiver) else 1,
_getattr_fallback_to_class(receiver, "__module__"),
_getattr_fallback_to_class(receiver, "__name__"),
)
)
return sorted_list
return sorted_list, []
class DeprecatedSignal(GlobalSignal):

View File

@@ -34,6 +34,7 @@
import datetime
import os
from dataclasses import dataclass
from django import forms
from django.conf import settings
@@ -420,6 +421,11 @@ class SplitDateTimeField(forms.SplitDateTimeField):
class FontSelect(forms.RadioSelect):
option_template_name = 'pretixcontrol/font_option.html'
@dataclass
class FontOption:
title: str
data: str
class ItemMultipleChoiceField(SafeModelMultipleChoiceField):
def label_from_instance(self, obj):

View File

@@ -63,7 +63,7 @@ from pretix.base.forms import (
from pretix.base.models import Event, Organizer, TaxRule, Team
from pretix.base.models.event import EventFooterLink, EventMetaValue, SubEvent
from pretix.base.models.organizer import TeamQuerySet
from pretix.base.models.tax import TAX_CODE_LISTS
from pretix.base.models.tax import TAX_CODE_LISTS, VAT_ID_COUNTRIES
from pretix.base.reldate import RelativeDateField, RelativeDateTimeField
from pretix.base.services.placeholders import FormPlaceholderMixin
from pretix.base.settings import (
@@ -73,8 +73,8 @@ from pretix.base.settings import (
)
from pretix.base.validators import multimail_validate
from pretix.control.forms import (
MultipleLanguagesWidget, SalesChannelCheckboxSelectMultiple, SlugWidget,
SplitDateTimeField, SplitDateTimePickerWidget,
FontSelect, MultipleLanguagesWidget, SalesChannelCheckboxSelectMultiple,
SlugWidget, SplitDateTimeField, SplitDateTimePickerWidget,
)
from pretix.control.forms.widgets import Select2
from pretix.helpers.countries import CachedCountries
@@ -531,6 +531,13 @@ class EventUpdateForm(I18nModelForm):
class EventSettingsValidationMixin:
def clean_invoice_address_from_vat_id(self):
value = self.cleaned_data.get('invoice_address_from_vat_id')
country = self.cleaned_data.get('invoice_address_from_country')
if value and country and country not in VAT_ID_COUNTRIES:
return None
return value
def clean(self):
data = super().clean()
settings_dict = self.obj.settings.freeze()
@@ -722,7 +729,7 @@ class EventSettingsForm(EventSettingsValidationMixin, FormPlaceholderMixin, Sett
del self.fields['event_list_filters']
del self.fields['event_calendar_future_only']
self.fields['primary_font'].choices = [('Open Sans', 'Open Sans')] + sorted([
(a, {"title": a, "data": v}) for a, v in get_fonts(self.event, pdf_support_required=False).items()
(a, FontSelect.FontOption(title=a, data=v)) for a, v in get_fonts(self.event, pdf_support_required=False).items()
], key=lambda a: a[0])
# create "virtual" fields for better UX when editing <name>_asked and <name>_required fields

View File

@@ -363,7 +363,7 @@ def get_global_navigation(request):
'icon': 'dashboard',
},
]
if request.user.is_in_any_teams:
if request.user.is_in_any_teams or request.user.is_staff:
nav += [
{
'label': _('Events'),

View File

@@ -8,7 +8,7 @@
{% if page_obj.has_previous %}
{% if page_obj.previous_page_number > 1 %}
<li>
<a href="?{% url_replace request 'page' page_obj.num_pages %}" title="{% trans "Go to page 1" %}">
<a href="?{% url_replace request 'page' 1 %}" title="{% trans "Go to page 1" %}">
<span class="fa fa-angle-double-left"></span>
</a>
</li>

View File

@@ -8,7 +8,45 @@
{% csrf_token %}
{% bootstrap_form_errors form %}
{% bootstrap_field form.name layout='horizontal' %}
{% bootstrap_field form.devicetype layout='horizontal' %}
<div class="form-group{% if form.devicetype.errors %} has-error{% endif %}">
<label class="col-md-3 control-label">{% trans "Device type" %}</label>
<div class="col-md-9">
<div>
<div class="big-radio radio">
<label>
<input type="radio" required value="totp" name="{{ form.devicetype.html_name }}" {% if form.devicetype.value == "totp" %}checked{% endif %}>
<strong>{% trans "Smartphone with Authenticator app" %}</strong><br>
<div class="help-block">
{% blocktrans trimmed %}
Use your smartphone with any Time-based One-Time-Password app like freeOTP, Google Authenticator or Proton Authenticator.
{% endblocktrans %}
</div>
</label>
</div>
<div class="big-radio radio">
<label>
<input type="radio" required value="webauthn" name="{{ form.devicetype.html_name }}" {% if form.devicetype.value == "webauthn" %}checked{% endif %}>
<strong>{% trans "WebAuthn-compatible hardware token" %}</strong><br>
<div class="help-block">
{% blocktrans trimmed %}
Use a hardware token like the Yubikey, or other biometric authentication like fingerprint or face recognition.
{% endblocktrans %}
</div>
</label>
</div>
</div>
{% if form.devicetype.errors %}
<div class="help-block">
{% for error in form.devicetype.errors %}
<p>{{ error|escape }}</p>
{% endfor %}
</div>
{% endif %}
</div>
</div>
<div class="form-group submit-group">
<button type="submit" class="btn btn-primary btn-save">
{% trans "Continue" %}

View File

@@ -28,11 +28,6 @@
{% trans "iOS (iTunes)" %}
</a>
</li>
<li>
<a href="https://m.google.com/authenticator">
{% trans "Blackberry (Link via Google)" %}
</a>
</li>
</ul>
</li>
<li>

View File

@@ -641,7 +641,7 @@ def user_index(request):
ctx = {
'widgets': rearrange(widgets),
'can_create_event': request.user.teams.with_organizer_permission("organizer.events:create").exists(),
'can_create_event': request.user.teams.with_organizer_permission("organizer.events:create").exists() or request.user.is_staff,
'upcoming': widgets_for_event_qs(
request,
annotated_event_query(request, lazy=True).filter(

View File

@@ -25,7 +25,7 @@ import time
from django.conf import settings
from django.contrib.auth import login as auth_login
from django.contrib.gis.geoip2 import GeoIP2
from django.contrib.gis import geoip2
from django.core.cache import cache
from django.utils.timezone import now
from django.utils.translation import gettext_lazy as _
@@ -63,14 +63,20 @@ def get_user_agent_hash(request):
_geoip = None
def _get_country(request):
def get_geoip() -> geoip2.GeoIP2:
# See https://code.djangoproject.com/ticket/36988#ticket
global _geoip
if not _geoip:
_geoip = GeoIP2()
geoip2.SUPPORTED_DATABASE_TYPES.add("Geoacumen-Country")
if not _geoip:
_geoip = geoip2.GeoIP2()
return _geoip
def _get_country(request):
try:
res = _geoip.country(get_client_ip(request))
res = get_geoip().country(get_client_ip(request))
except AddressNotFoundError:
return None
return res['country_code']

View File

@@ -5,7 +5,7 @@ msgstr ""
"Project-Id-Version: 1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-17 14:05+0000\n"
"PO-Revision-Date: 2026-03-17 14:27+0000\n"
"PO-Revision-Date: 2026-03-18 02:00+0000\n"
"Last-Translator: Raphael Michel <michel@rami.io>\n"
"Language-Team: German <https://translate.pretix.eu/projects/pretix/pretix/"
"de/>\n"
@@ -8453,7 +8453,7 @@ msgstr "Zahlungseinstellungen"
#: pretix/base/permissions.py:203
#: pretix/control/templates/pretixcontrol/event/tax.html:120
msgid "Tax settings"
msgstr "Steuer-Einstellungen"
msgstr "Steuereinstellungen"
#: pretix/base/permissions.py:209
msgid "Invoicing settings"

View File

@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: 1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-17 14:05+0000\n"
"PO-Revision-Date: 2026-03-17 14:34+0000\n"
"PO-Revision-Date: 2026-03-18 02:00+0000\n"
"Last-Translator: Raphael Michel <michel@rami.io>\n"
"Language-Team: German (informal) <https://translate.pretix.eu/projects/"
"pretix/pretix/de_Informal/>\n"
@@ -8446,7 +8446,7 @@ msgstr "Zahlungseinstellungen"
#: pretix/base/permissions.py:203
#: pretix/control/templates/pretixcontrol/event/tax.html:120
msgid "Tax settings"
msgstr "Steuer-Einstellungen"
msgstr "Steuereinstellungen"
#: pretix/base/permissions.py:209
msgid "Invoicing settings"

View File

@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-17 14:05+0000\n"
"PO-Revision-Date: 2026-03-03 20:00+0000\n"
"PO-Revision-Date: 2026-03-18 12:23+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.1\n"
"X-Generator: Weblate 5.16.2\n"
#: pretix/_base_settings.py:87
msgid "English"
@@ -408,10 +408,8 @@ msgstr ""
#: pretix/api/serializers/organizer.py:482
#: pretix/control/views/organizer.py:1039
#, fuzzy
#| msgid "Account information"
msgid "Account invitation"
msgstr "Información de la cuenta"
msgstr "Invitación a crear una cuenta"
#: pretix/api/serializers/organizer.py:503
#: pretix/control/views/organizer.py:1138
@@ -3966,10 +3964,9 @@ msgid "Peppol participant ID"
msgstr "Identificador de participante Peppol"
#: pretix/base/invoicing/peppol.py:211
#, fuzzy
#| msgid "The Peppol participant ID is not registered on the Peppol network."
msgid "The Peppol participant ID does not match your VAT ID."
msgstr "El ID de participante de Peppol no está registrado en la red Peppol."
msgstr ""
"El identificador de participante de Peppol no coincide con el número de IVA."
#: pretix/base/invoicing/peppol.py:214
msgctxt "peppol_invoice"
@@ -4991,7 +4988,7 @@ msgstr ""
#: pretix/base/models/event.py:607 pretix/base/models/organizer.py:94
msgid "The slug may only contain letters, numbers, dots and dashes."
msgstr ""
"La URL semántica solo puede contener letras, números, puntos y guiones."
"El nombre de archivo solo puede contener letras, números, puntos y guiones."
#: pretix/base/models/event.py:624 pretix/base/models/event.py:1551
msgid "Show in lists"
@@ -6893,10 +6890,8 @@ msgstr ""
"pocos minutos para activar para todos los usuarios."
#: pretix/base/models/organizer.py:378
#, fuzzy
#| msgid "Event permissions"
msgid "All event permissions"
msgstr "Permisos para eventos"
msgstr "Todos los permisos del evento"
#: pretix/base/models/organizer.py:379
#: pretix/control/templates/pretixcontrol/organizers/team_edit.html:34
@@ -6904,10 +6899,8 @@ msgid "Event permissions"
msgstr "Permisos para eventos"
#: pretix/base/models/organizer.py:380
#, fuzzy
#| msgid "Organizer permissions"
msgid "All organizer permissions"
msgstr "Permisos del organizador"
msgstr "Todos los permisos de organizador"
#: pretix/base/models/organizer.py:381
#: pretix/control/templates/pretixcontrol/organizers/team_edit.html:25
@@ -8414,36 +8407,32 @@ msgstr "Su archivo de diseño no es un diseño válido. Mensaje de error: {}"
#: pretix/base/permissions.py:314 pretix/base/permissions.py:331
msgctxt "permission_level"
msgid "View"
msgstr ""
msgstr "Ver"
#: pretix/base/permissions.py:164 pretix/base/permissions.py:169
#: pretix/base/permissions.py:174 pretix/base/permissions.py:179
#: pretix/base/permissions.py:286 pretix/base/permissions.py:315
#, fuzzy
#| msgid "Save and check"
msgctxt "permission_level"
msgid "View and change"
msgstr "Guardar y verificar"
msgstr "Ver y modificar"
#: pretix/base/permissions.py:168
#, fuzzy
#| msgid "API tokens"
msgid "API only"
msgstr "Tokens de API"
msgstr "Solo API"
#: pretix/base/permissions.py:173
msgid ""
"Menu item will only show up if the user has permission for general settings."
msgstr ""
"Esta opción del menú solo aparecerá si el usuario tiene permiso para acceder "
"a la configuración general."
#: pretix/base/permissions.py:177 pretix/base/permissions.py:231
#: pretix/base/permissions.py:285 pretix/base/permissions.py:313
#: pretix/base/permissions.py:330
#, fuzzy
#| msgid "Revoke access"
msgctxt "permission_level"
msgid "No access"
msgstr "Revocar el acceso"
msgstr "Sin acceso"
#: pretix/base/permissions.py:188
#: pretix/control/templates/pretixcontrol/event/settings.html:7
@@ -8457,6 +8446,8 @@ msgid ""
"This includes access to all settings not listed explicitly below, including "
"plugin settings."
msgstr ""
"Esto incluye el acceso a todos los ajustes que no se enumeran explícitamente "
"a continuación, incluidos los ajustes de los complementos."
#: pretix/base/permissions.py:197
#: pretix/control/templates/pretixcontrol/event/payment.html:6
@@ -8470,100 +8461,79 @@ msgid "Tax settings"
msgstr "Configuración de impuestos"
#: pretix/base/permissions.py:209
#, fuzzy
#| msgid "Invoice settings"
msgid "Invoicing settings"
msgstr "Configuración de la factura"
msgstr "Configuración de facturación"
#: pretix/base/permissions.py:215
#, fuzzy
#| msgctxt "subevent"
#| msgid "Event series date added"
msgid "Event series dates"
msgstr "Fechas de la serie de eventos añadidas"
msgstr "Fechas de la serie de eventos"
#: pretix/base/permissions.py:221
#, fuzzy
#| msgid "Product name and variation"
msgid "Products, quotas and questions"
msgstr "Nombre del producto y variación"
msgstr "Productos, cuotas y preguntas"
#: pretix/base/permissions.py:224
msgid "Also includes related objects like categories or discounts."
msgstr ""
msgstr "También incluye elementos relacionados, como categorías o descuentos."
#: pretix/base/permissions.py:232
#, fuzzy
#| msgid "All check-ins"
msgctxt "permission_level"
msgid "Only check-in"
msgstr "Todos los check-ins"
msgstr "Solo check-in"
#: pretix/base/permissions.py:233
#, fuzzy
#| msgid "View full log"
msgctxt "permission_level"
msgid "View all"
msgstr "Ver log completo"
msgstr "Ver todo"
#: pretix/base/permissions.py:234
#, fuzzy
#| msgid "Valid check-in"
msgctxt "permission_level"
msgid "View all and check-in"
msgstr "Check-in válido"
msgstr "Ver todo y check-in"
#: pretix/base/permissions.py:235
#, fuzzy
#| msgid "View all upcoming events"
msgctxt "permission_level"
msgid "View all and change"
msgstr "Ver todos los próximos eventos"
msgstr "Ver todo y modificar"
#: pretix/base/permissions.py:236
msgid "Includes the ability to cancel and refund individual orders."
msgstr ""
msgstr "Incluye la posibilidad de cancelar y reembolsar pedidos individuales."
#: pretix/base/permissions.py:238
#, fuzzy
#| msgid "An entry has been added to the waiting list."
msgid "Also includes related objects like the waiting list."
msgstr "Se ha añadido una entrada a la lista de espera."
msgstr "También incluye elementos relacionados, como la lista de espera."
#: pretix/base/permissions.py:248
#, fuzzy
#| msgid "Generate cancellation"
msgid "Full event or date cancellation"
msgstr "Generar cancelación"
msgstr "Cancelación total del evento o de la fecha"
#: pretix/base/permissions.py:252
#, fuzzy
#| msgid "Sale not allowed"
msgctxt "permission_level"
msgid "Not allowed"
msgstr "Venta no permitida"
msgstr "No está permitido"
#: pretix/base/permissions.py:253
#, fuzzy
#| msgid "Allowed titles"
msgctxt "permission_level"
msgid "Allowed"
msgstr "Titulos permitidos"
msgstr "Permitido"
#: pretix/base/permissions.py:268
msgctxt "permission_level"
msgid "Access existing events"
msgstr ""
msgstr "Acceder a los eventos existentes"
#: pretix/base/permissions.py:269
msgctxt "permission_level"
msgid "Access existing and create new events"
msgstr ""
msgstr "Acceder a eventos existentes y crear nuevos eventos"
#: pretix/base/permissions.py:271
msgid ""
"The level of access to events is determined in detail by the settings below."
msgstr ""
"El nivel de acceso a los eventos se determina en detalle mediante los "
"ajustes que se indican a continuación."
#: pretix/base/permissions.py:275 pretix/control/navigation.py:143
#: pretix/control/navigation.py:462 pretix/control/navigation.py:512
@@ -8582,12 +8552,17 @@ msgid ""
"This includes access to all organizer-level functionality not listed "
"explicitly below, including plugin settings."
msgstr ""
"Esto incluye el acceso a todas las funciones de nivel de organizador que no "
"se enumeran explícitamente a continuación, incluida la configuración de los "
"complementos."
#: pretix/base/permissions.py:287
msgid ""
"Includes the ability to give someone (including oneself) additional "
"permissions."
msgstr ""
"Incluye la posibilidad de conceder permisos adicionales a otra persona "
"(incluido uno mismo)."
#: pretix/base/permissions.py:298 pretix/control/navigation.py:608
#: pretix/control/templates/pretixcontrol/organizers/customers.html:6
@@ -8605,12 +8580,12 @@ msgid ""
"Includes the ability to give access to events and data oneself does not have "
"access to."
msgstr ""
"Incluye la posibilidad de conceder acceso a eventos y datos a los que uno "
"mismo no tiene acceso."
#: pretix/base/permissions.py:321
#, fuzzy
#| msgid "Seating plan"
msgid "Seating plans"
msgstr "Plan de asientos"
msgstr "Planes de asientos"
#: pretix/base/permissions.py:327 pretix/control/navigation.py:712
#: pretix/control/templates/pretixcontrol/organizers/outgoing_mails.html:8
@@ -9254,12 +9229,12 @@ msgid "Czech National Bank"
msgstr "Banco Nacional Checo"
#: pretix/base/services/export.py:94 pretix/base/services/export.py:154
#, fuzzy
#| msgid "You do not have sufficient permission to perform this export."
msgid ""
"Export not found or you do not have sufficient permission to perform this "
"export."
msgstr "No tiene permiso suficiente para realizar esta exportación."
msgstr ""
"No se ha encontrado la exportación o no tienes los permisos suficientes para "
"realizarla."
#: pretix/base/services/export.py:107 pretix/base/services/export.py:179
#: pretix/base/services/export.py:357
@@ -13735,25 +13710,7 @@ msgid "Contact"
msgstr "Contacto"
#: pretix/base/templates/pretixbase/email/shred_completed.txt:2
#, fuzzy, python-format
#| msgid ""
#| "Hello,\n"
#| "\n"
#| "we hereby confirm that the following data shredding job has been "
#| "completed:\n"
#| "\n"
#| "Organizer: %(organizer)s\n"
#| "\n"
#| "Event: %(event)s\n"
#| "\n"
#| "Data selection: %(shredders)s\n"
#| "\n"
#| "Start time: %(start_time)s (new data added after this time might not have "
#| "been deleted)\n"
#| "\n"
#| "Best regards,\n"
#| "\n"
#| "Your pretix team\n"
#, python-format
msgid ""
"Hello,\n"
"\n"
@@ -13788,7 +13745,7 @@ msgstr ""
"\n"
"Atentamente,\n"
"\n"
"Tu equipo de pretix\n"
"El equipo de %(instance)s\n"
#: pretix/base/templates/pretixbase/forms/widgets/checkbox_sales_channel_option.html:16
msgid ""
@@ -14350,16 +14307,12 @@ msgid "This is an event series"
msgstr "Esta es una serie de eventos"
#: pretix/control/forms/event.py:135 pretix/control/forms/event.py:363
#, fuzzy
#| msgid ""
#| "You do not have sufficient permission to enable plugins that need to be "
#| "enabled for the entire organizer account."
msgid ""
"You do not have a sufficient level of access on the event you selected to "
"copy it to the desired organizer."
msgstr ""
"No tienes permisos suficientes para habilitar los plugins que deben "
"habilitarse para toda su cuenta de organizador."
"No tiene los permisos necesarios para copiar el evento que ha seleccionado "
"al organizador deseado."
#: pretix/control/forms/event.py:143
msgid ""
@@ -14439,6 +14392,8 @@ msgid ""
"You cannot choose a team that would give you more access than you have on "
"the event you are copying."
msgstr ""
"No puede elegir un equipo que le otorgue más permisos de los que ya tiene en "
"el evento que está copiando."
#: pretix/control/forms/event.py:344
msgid "Copy configuration from"
@@ -14454,6 +14409,8 @@ msgid ""
"You cannot choose an event on which you have less access than the team you "
"selected in the previous step."
msgstr ""
"No puede elegir un evento al que tenga menos derechos de acceso que el "
"equipo que seleccionó en el paso anterior."
#: pretix/control/forms/event.py:387 pretix/control/forms/item.py:1304
#: pretix/control/forms/subevents.py:411
@@ -16816,7 +16773,7 @@ msgstr "Sólo puede establecer un dominio de organizador."
#: pretix/control/forms/organizer.py:322
msgid "Provided by a plugin"
msgstr ""
msgstr "Proporcionado por un plugin"
#: pretix/control/forms/organizer.py:438
msgid ""
@@ -17708,10 +17665,8 @@ msgid "The order has been denied (comment: \"{comment}\")."
msgstr "El pedido ha sido denegado (comentario: \"{comment}\")."
#: pretix/control/logdisplay.py:521
#, fuzzy
#| msgid "The order has been overpaid."
msgid "The customer VAT ID has been verified."
msgstr "El pedido ha sido pagado de más."
msgstr "Se ha verificado el número de identificación fiscal del cliente."
#: pretix/control/logdisplay.py:522
#, python-brace-format
@@ -18015,10 +17970,9 @@ msgid "{user} has been invited to the team."
msgstr "{user} ha sido invitado al equipo."
#: pretix/control/logdisplay.py:644
#, fuzzy, python-brace-format
#| msgid "Invite for {user} has been resent."
#, python-brace-format
msgid "Invite for {user} has been deleted."
msgstr "La invitación para {user} ha sido reenviada."
msgstr "Se ha eliminado la invitación para {user}."
#: pretix/control/logdisplay.py:645
#, python-brace-format
@@ -20338,21 +20292,7 @@ msgid "Add property"
msgstr "Añadir propiedad"
#: pretix/control/templates/pretixcontrol/email/confirmation_code.txt:1
#, fuzzy, python-format
#| msgid ""
#| "Hello,\n"
#| "\n"
#| "%(reason)s\n"
#| "\n"
#| " %(code)s\n"
#| "\n"
#| "Please do never give this code to another person. Our support team will "
#| "never ask for this code.\n"
#| "\n"
#| "If this code was not requested by you, please contact us immediately.\n"
#| "\n"
#| "Best regards,\n"
#| "Your pretix team\n"
#, python-format
msgid ""
"Hello,\n"
"\n"
@@ -20381,7 +20321,7 @@ msgstr ""
"inmediato.\n"
"\n"
"Atentamente,\n"
"El equipo de pretix\n"
"El equipo de %(instance)s\n"
#: pretix/control/templates/pretixcontrol/email/email_setup.txt:1
#, python-format
@@ -20419,17 +20359,7 @@ msgstr ""
"Tu equipo de %(instance)s\n"
#: pretix/control/templates/pretixcontrol/email/forgot.txt:1
#, fuzzy, python-format
#| msgid ""
#| "Hello,\n"
#| "\n"
#| "you requested a new password. Please go to the following page to reset "
#| "your password:\n"
#| "\n"
#| "%(url)s\n"
#| "\n"
#| "Best regards, \n"
#| "Your pretix team\n"
#, python-format
msgid ""
"Hello,\n"
"\n"
@@ -20449,27 +20379,10 @@ msgstr ""
"%(url)s \n"
"\n"
"Saludos, \n"
"El equipo de pretix\n"
"El equipo de %(instance)s\n"
#: pretix/control/templates/pretixcontrol/email/invitation.txt:1
#, fuzzy, python-format
#| msgid ""
#| "Hello,\n"
#| "\n"
#| "you have been invited to a team on pretix, a platform to perform event\n"
#| "ticket sales.\n"
#| "\n"
#| "Organizer: %(organizer)s\n"
#| "Team: %(team)s\n"
#| "\n"
#| "If you want to join that team, just click on the following link:\n"
#| "%(url)s\n"
#| "\n"
#| "If you do not want to join, you can safely ignore or delete this email.\n"
#| "\n"
#| "Best regards, \n"
#| "\n"
#| "Your pretix team\n"
#, python-format
msgid ""
"Hello,\n"
"\n"
@@ -20491,7 +20404,8 @@ msgid ""
msgstr ""
"Hola, \n"
"\n"
"usted ha sido invitado a un equipo en pretix, una plataforma para realizar \n"
"usted ha sido invitado a un equipo de %(instance)s, una plataforma para "
"realizar \n"
"ventas de entradas de eventos. \n"
"\n"
"Organizador: %(organizer)s\n"
@@ -20504,7 +20418,7 @@ msgstr ""
"\n"
"Saludos cordiales, \n"
"\n"
"Su equipo Pretix\n"
"El equipo de %(instance)s\n"
#: pretix/control/templates/pretixcontrol/email/login_notice.txt:1
#, python-format
@@ -20542,24 +20456,7 @@ msgstr ""
"El equipo de %(instance)s\n"
#: pretix/control/templates/pretixcontrol/email/security_notice.txt:1
#, fuzzy, python-format
#| msgid ""
#| "Hello,\n"
#| "\n"
#| "this is to inform you that the account information of your pretix account "
#| "has been\n"
#| "changed. In particular, the following changes have been performed:\n"
#| "\n"
#| "%(messages)s\n"
#| "\n"
#| "If this change was not performed by you, please contact us immediately.\n"
#| "\n"
#| "You can review and change your account settings here:\n"
#| "\n"
#| "%(url)s\n"
#| "\n"
#| "Best regards, \n"
#| "Your pretix team\n"
#, python-format
msgid ""
"Hello,\n"
"\n"
@@ -20580,8 +20477,8 @@ msgid ""
msgstr ""
"Hola, \n"
"\n"
"esto es para informarle que la información de su cuenta pretix ha sido "
"cambiada . \n"
"esto es para informarle que la información de su cuenta del equipo de %"
"(instance)s ha sido cambiada. \n"
"En particular, se han realizado las siguientes modificaciones: \n"
"\n"
"%(messages)s\n"
@@ -20594,7 +20491,7 @@ msgstr ""
"%(url)s \n"
"\n"
"Saludos cordiales, \n"
"su equipo de Pretix\n"
"El equipo de %(instance)s\n"
#: pretix/control/templates/pretixcontrol/email_setup.html:8
#: pretix/control/templates/pretixcontrol/email_setup_simple.html:8
@@ -20864,10 +20761,8 @@ msgstr ""
"entradas, puede hacerlo a través de esta opción."
#: pretix/control/templates/pretixcontrol/event/dangerzone.html:51
#, fuzzy
#| msgid "Permissions"
msgid "No permission"
msgstr "Permisos"
msgstr "No tiene permiso"
#: pretix/control/templates/pretixcontrol/event/dangerzone.html:59
#: pretix/control/templates/pretixcontrol/event/dangerzone.html:72
@@ -23426,10 +23321,8 @@ msgid "Edit question"
msgstr "Editar pregunta"
#: pretix/control/templates/pretixcontrol/items/question.html:55
#, fuzzy
#| msgid "You do not have permission to view this content."
msgid "No permission to view answers."
msgstr "No tienes permiso para ver este contenido."
msgstr "No tiene permiso para ver las respuestas."
#: pretix/control/templates/pretixcontrol/items/question.html:63
msgid "No matching answers found."
@@ -25078,10 +24971,8 @@ msgstr "No hay próxima ejecución programada"
#: pretix/control/templates/pretixcontrol/orders/export.html:37
#: pretix/control/templates/pretixcontrol/organizers/export.html:37
#, fuzzy
#| msgid "Exporter not found"
msgid "Exporter not found or no permission"
msgstr "Exportador no encontrado"
msgstr "No se ha encontrado el exportador o no se dispone de permiso"
#: pretix/control/templates/pretixcontrol/orders/export.html:42
#: pretix/control/templates/pretixcontrol/organizers/export.html:42
@@ -25124,10 +25015,8 @@ msgstr "Recomendado para nuevos usuarios"
#: pretix/control/templates/pretixcontrol/orders/export.html:120
#: pretix/control/templates/pretixcontrol/organizers/export.html:120
#, fuzzy
#| msgid "There are no add-ons available for this product."
msgid "There are no exporters available for you."
msgstr "No hay complementos disponibles para este producto."
msgstr "No hay exportadores disponibles para usted."
#: pretix/control/templates/pretixcontrol/orders/export_delete.html:4
#: pretix/control/templates/pretixcontrol/orders/export_delete.html:6
@@ -27078,7 +26967,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/pdf/index.html:274
#, python-format
msgid "max. %(size)s, smaller is better"
msgstr ""
msgstr "máx. %(size)s; cuanto más pequeño, mejor"
#: pretix/control/templates/pretixcontrol/pdf/index.html:282
msgid "Download current background"
@@ -29861,16 +29750,12 @@ msgstr ""
"los errores."
#: pretix/control/views/orders.py:2798 pretix/control/views/organizer.py:2131
#, fuzzy
#| msgid ""
#| "Your user account does not have sufficient permission to run this report, "
#| "therefore you cannot schedule it."
msgid ""
"Your user account does not have sufficient permission to run this report, "
"therefore you cannot change it."
msgstr ""
"Su cuenta de usuario no tiene permisos suficientes para ejecutar este "
"informe, por lo que no puede programarlo."
"Su cuenta de usuario no tiene los permisos suficientes para ejecutar este "
"informe, por lo que no puede modificarlo."
#: pretix/control/views/orders.py:2807 pretix/control/views/organizer.py:2140
msgid ""
@@ -33945,7 +33830,7 @@ msgstr "iDEAL via Stripe"
#: pretix/plugins/stripe/payment.py:1572
msgid "iDEAL | Wero"
msgstr ""
msgstr "iDEAL | Wero"
#: pretix/plugins/stripe/payment.py:1575
msgid ""
@@ -36930,6 +36815,9 @@ msgid ""
"the shop that affect quotas, such as the validity period of carts and "
"vouchers."
msgstr ""
"Tenga en cuenta que la hora modificada no se tiene en cuenta en aquellos "
"aspectos de la tienda que afectan a los límites, como el periodo de validez "
"de los carritos y los vales."
#: pretix/presale/templates/pretixpresale/event/timemachine.html:31
msgid "Enable time machine"

View File

@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-17 14:06+0000\n"
"PO-Revision-Date: 2026-01-27 14:51+0000\n"
"PO-Revision-Date: 2026-03-18 12:23+0000\n"
"Last-Translator: CVZ-es <damien.bremont@casadevelazquez.org>\n"
"Language-Team: Spanish <https://translate.pretix.eu/projects/pretix/pretix-"
"js/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.2\n"
"X-Generator: Weblate 5.16.2\n"
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:56
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:62
@@ -60,7 +60,7 @@ msgstr "PayPal Paga Después"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:41
msgid "iDEAL | Wero"
msgstr ""
msgstr "iDEAL | Wero"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:42
msgid "SEPA Direct Debit"

View File

@@ -4,16 +4,16 @@ msgstr ""
"Project-Id-Version: 1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-17 14:05+0000\n"
"PO-Revision-Date: 2026-03-03 20:00+0000\n"
"PO-Revision-Date: 2026-03-18 12:23+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.1\n"
"X-Generator: Weblate 5.16.2\n"
#: pretix/_base_settings.py:87
msgid "English"
@@ -409,10 +409,8 @@ msgstr ""
#: pretix/api/serializers/organizer.py:482
#: pretix/control/views/organizer.py:1039
#, fuzzy
#| msgid "Account information"
msgid "Account invitation"
msgstr "Informations sur le compte"
msgstr "Invitation à créer un compte"
#: pretix/api/serializers/organizer.py:503
#: pretix/control/views/organizer.py:1138
@@ -3971,12 +3969,8 @@ msgid "Peppol participant ID"
msgstr "Identifiant participant Peppol"
#: pretix/base/invoicing/peppol.py:211
#, fuzzy
#| msgid "The Peppol participant ID is not registered on the Peppol network."
msgid "The Peppol participant ID does not match your VAT ID."
msgstr ""
"L'identifiant Peppol du participant n'est pas enregistré sur le réseau "
"Peppol."
msgstr "L'identifiant Peppol ne correspond pas à votre numéro de TVA."
#: pretix/base/invoicing/peppol.py:214
msgctxt "peppol_invoice"
@@ -6929,10 +6923,8 @@ msgstr ""
"les utilisateurs."
#: pretix/base/models/organizer.py:378
#, fuzzy
#| msgid "Event permissions"
msgid "All event permissions"
msgstr "Autorisations de l'événement"
msgstr "Toutes les autorisations relatives aux événements"
#: pretix/base/models/organizer.py:379
#: pretix/control/templates/pretixcontrol/organizers/team_edit.html:34
@@ -6940,10 +6932,8 @@ msgid "Event permissions"
msgstr "Autorisations de l'événement"
#: pretix/base/models/organizer.py:380
#, fuzzy
#| msgid "Organizer permissions"
msgid "All organizer permissions"
msgstr "Autorisations de l'organisateur"
msgstr "Toutes les autorisations d'organisateur"
#: pretix/base/models/organizer.py:381
#: pretix/control/templates/pretixcontrol/organizers/team_edit.html:25
@@ -8467,36 +8457,32 @@ msgstr ""
#: pretix/base/permissions.py:314 pretix/base/permissions.py:331
msgctxt "permission_level"
msgid "View"
msgstr ""
msgstr "Voir"
#: pretix/base/permissions.py:164 pretix/base/permissions.py:169
#: pretix/base/permissions.py:174 pretix/base/permissions.py:179
#: pretix/base/permissions.py:286 pretix/base/permissions.py:315
#, fuzzy
#| msgid "Save and check"
msgctxt "permission_level"
msgid "View and change"
msgstr "Enregistrer et vérifier"
msgstr "Afficher et modifier"
#: pretix/base/permissions.py:168
#, fuzzy
#| msgid "API tokens"
msgid "API only"
msgstr "Tokens API"
msgstr "API uniquement"
#: pretix/base/permissions.py:173
msgid ""
"Menu item will only show up if the user has permission for general settings."
msgstr ""
"Cet élément de menu n'apparaîtra que si l'utilisateur dispose d'une "
"autorisation pour les paramètres généraux."
#: pretix/base/permissions.py:177 pretix/base/permissions.py:231
#: pretix/base/permissions.py:285 pretix/base/permissions.py:313
#: pretix/base/permissions.py:330
#, fuzzy
#| msgid "Revoke access"
msgctxt "permission_level"
msgid "No access"
msgstr "Révoquer l'accès"
msgstr "Accès impossible"
#: pretix/base/permissions.py:188
#: pretix/control/templates/pretixcontrol/event/settings.html:7
@@ -8510,6 +8496,8 @@ msgid ""
"This includes access to all settings not listed explicitly below, including "
"plugin settings."
msgstr ""
"Cela inclut l'accès à tous les paramètres qui ne sont pas explicitement "
"mentionnés ci-dessous, y compris les paramètres des extensions."
#: pretix/base/permissions.py:197
#: pretix/control/templates/pretixcontrol/event/payment.html:6
@@ -8523,100 +8511,81 @@ msgid "Tax settings"
msgstr "Paramètres relatifs aux taxes"
#: pretix/base/permissions.py:209
#, fuzzy
#| msgid "Invoice settings"
msgid "Invoicing settings"
msgstr "Paramètres de facturation"
#: pretix/base/permissions.py:215
#, fuzzy
#| msgctxt "subevent"
#| msgid "Event series date added"
msgid "Event series dates"
msgstr "Une nouvelle date a été ajouté"
msgstr "Dates de la série d'événements"
#: pretix/base/permissions.py:221
#, fuzzy
#| msgid "Product name and variation"
msgid "Products, quotas and questions"
msgstr "Dénomination et variantes du produit"
msgstr "Produits, quotas et questions"
#: pretix/base/permissions.py:224
msgid "Also includes related objects like categories or discounts."
msgstr ""
"Cela inclut également les éléments associés, tels que les catégories ou les "
"remises."
#: pretix/base/permissions.py:232
#, fuzzy
#| msgid "All check-ins"
msgctxt "permission_level"
msgid "Only check-in"
msgstr "Tous les enregistrements"
msgstr "Enregistrement uniquement"
#: pretix/base/permissions.py:233
#, fuzzy
#| msgid "View full log"
msgctxt "permission_level"
msgid "View all"
msgstr "Voir le journal complet"
msgstr "Tout afficher"
#: pretix/base/permissions.py:234
#, fuzzy
#| msgid "Valid check-in"
msgctxt "permission_level"
msgid "View all and check-in"
msgstr "Enregistrement valide"
msgstr "Tout afficher et les check-in"
#: pretix/base/permissions.py:235
#, fuzzy
#| msgid "View all upcoming events"
msgctxt "permission_level"
msgid "View all and change"
msgstr "Voir tous les événements à venir"
msgstr "Tout afficher et modifier"
#: pretix/base/permissions.py:236
msgid "Includes the ability to cancel and refund individual orders."
msgstr ""
msgstr "Permet d'annuler et de rembourser des commandes individuelles."
#: pretix/base/permissions.py:238
#, fuzzy
#| msgid "An entry has been added to the waiting list."
msgid "Also includes related objects like the waiting list."
msgstr "Une entrée a été ajoutée à la liste d'attente."
msgstr "Comprend également les éléments connexes, tels que la liste d'attente."
#: pretix/base/permissions.py:248
#, fuzzy
#| msgid "Generate cancellation"
msgid "Full event or date cancellation"
msgstr "Générer annulation"
msgstr "Annulation complète de l'événement ou de la date"
#: pretix/base/permissions.py:252
#, fuzzy
#| msgid "Sale not allowed"
msgctxt "permission_level"
msgid "Not allowed"
msgstr "Vente non autorisée"
msgstr "Interdit"
#: pretix/base/permissions.py:253
#, fuzzy
#| msgid "Allowed titles"
msgctxt "permission_level"
msgid "Allowed"
msgstr "Titres autorisés"
msgstr "Autorisé"
#: pretix/base/permissions.py:268
msgctxt "permission_level"
msgid "Access existing events"
msgstr ""
msgstr "Accéder aux événements existants"
#: pretix/base/permissions.py:269
msgctxt "permission_level"
msgid "Access existing and create new events"
msgstr ""
msgstr "Accéder aux événements existants et en créer de nouveaux"
#: pretix/base/permissions.py:271
msgid ""
"The level of access to events is determined in detail by the settings below."
msgstr ""
"Le niveau d'accès aux événements est défini en détail par les paramètres ci-"
"dessous."
#: pretix/base/permissions.py:275 pretix/control/navigation.py:143
#: pretix/control/navigation.py:462 pretix/control/navigation.py:512
@@ -8635,12 +8604,17 @@ msgid ""
"This includes access to all organizer-level functionality not listed "
"explicitly below, including plugin settings."
msgstr ""
"Cela inclut l'accès à toutes les fonctionnalités de niveau organisateur qui "
"ne sont pas explicitement mentionnées ci-dessous, y compris les paramètres "
"des extensions."
#: pretix/base/permissions.py:287
msgid ""
"Includes the ability to give someone (including oneself) additional "
"permissions."
msgstr ""
"Permet d'accorder des autorisations supplémentaires à une autre personne (y "
"compris à soi-même)."
#: pretix/base/permissions.py:298 pretix/control/navigation.py:608
#: pretix/control/templates/pretixcontrol/organizers/customers.html:6
@@ -8658,12 +8632,12 @@ msgid ""
"Includes the ability to give access to events and data oneself does not have "
"access to."
msgstr ""
"Permet de donner accès à des événements et à des données auxquels on n'a pas "
"soi-même accès."
#: pretix/base/permissions.py:321
#, fuzzy
#| msgid "Seating plan"
msgid "Seating plans"
msgstr "Plan de salle"
msgstr "Plans de salle"
#: pretix/base/permissions.py:327 pretix/control/navigation.py:712
#: pretix/control/templates/pretixcontrol/organizers/outgoing_mails.html:8
@@ -9314,14 +9288,12 @@ msgid "Czech National Bank"
msgstr "Banque nationale tchèque"
#: pretix/base/services/export.py:94 pretix/base/services/export.py:154
#, fuzzy
#| msgid "You do not have sufficient permission to perform this export."
msgid ""
"Export not found or you do not have sufficient permission to perform this "
"export."
msgstr ""
"Vous ne disposez pas des autorisations suffisantes pour effectuer cette "
"exportation."
"L'exportation est introuvable ou vous ne disposez pas des autorisations "
"nécessaires pour effectuer cette exportation."
#: pretix/base/services/export.py:107 pretix/base/services/export.py:179
#: pretix/base/services/export.py:357
@@ -13860,25 +13832,7 @@ msgid "Contact"
msgstr "Contact"
#: pretix/base/templates/pretixbase/email/shred_completed.txt:2
#, fuzzy, python-format
#| msgid ""
#| "Hello,\n"
#| "\n"
#| "we hereby confirm that the following data shredding job has been "
#| "completed:\n"
#| "\n"
#| "Organizer: %(organizer)s\n"
#| "\n"
#| "Event: %(event)s\n"
#| "\n"
#| "Data selection: %(shredders)s\n"
#| "\n"
#| "Start time: %(start_time)s (new data added after this time might not have "
#| "been deleted)\n"
#| "\n"
#| "Best regards,\n"
#| "\n"
#| "Your pretix team\n"
#, python-format
msgid ""
"Hello,\n"
"\n"
@@ -13913,7 +13867,7 @@ msgstr ""
"\n"
"Sinceres salutations\n"
"\n"
"Votre équipe pretix\n"
"Votre équipe pretix%(instance)s\n"
#: pretix/base/templates/pretixbase/forms/widgets/checkbox_sales_channel_option.html:16
msgid ""
@@ -14482,16 +14436,12 @@ msgid "This is an event series"
msgstr "C'est une série d'événements"
#: pretix/control/forms/event.py:135 pretix/control/forms/event.py:363
#, fuzzy
#| msgid ""
#| "You do not have sufficient permission to enable plugins that need to be "
#| "enabled for the entire organizer account."
msgid ""
"You do not have a sufficient level of access on the event you selected to "
"copy it to the desired organizer."
msgstr ""
"Vous ne disposez pas des autorisations suffisantes pour activer les plugins "
"qui doivent être activés pour l'ensemble du compte organisateur."
"Vous ne disposez pas des droits d'accès suffisants pour copier l'événement "
"que vous avez sélectionné vers l'organisateur souhaité."
#: pretix/control/forms/event.py:143
msgid ""
@@ -14574,6 +14524,9 @@ msgid ""
"You cannot choose a team that would give you more access than you have on "
"the event you are copying."
msgstr ""
"Vous ne pouvez pas choisir une équipe qui vous donnerait plus de droits "
"d'accès que ceux dont vous disposez actuellement pour l'événement que vous "
"copiez."
#: pretix/control/forms/event.py:344
msgid "Copy configuration from"
@@ -14589,6 +14542,9 @@ msgid ""
"You cannot choose an event on which you have less access than the team you "
"selected in the previous step."
msgstr ""
"Vous ne pouvez pas sélectionner un événement pour lequel vous disposez de "
"moins de droits d'accès que l'équipe que vous avez choisie à l'étape "
"précédente."
#: pretix/control/forms/event.py:387 pretix/control/forms/item.py:1304
#: pretix/control/forms/subevents.py:411
@@ -15543,7 +15499,7 @@ msgstr "Recherche d'un participant…"
#: pretix/control/forms/filter.py:2039
#: pretix/plugins/checkinlists/exporters.py:106
msgid "Check-in status"
msgstr "Statut d'enregistrement"
msgstr "État de l'enregistrement"
#: pretix/control/forms/filter.py:2041
#: pretix/plugins/checkinlists/exporters.py:108
@@ -15556,7 +15512,7 @@ msgstr "Tous les participants"
#: pretix/plugins/checkinlists/exporters.py:109
#: pretix/plugins/checkinlists/exporters.py:501
msgid "Checked in"
msgstr "Enregistré"
msgstr "Enregistrement effectué"
#: pretix/control/forms/filter.py:2043
#: pretix/plugins/checkinlists/exporters.py:110
@@ -15574,7 +15530,7 @@ msgstr "Enregistré mais laissé"
#: pretix/control/templates/pretixcontrol/checkin/index.html:178
#: pretix/plugins/checkinlists/exporters.py:112
msgid "Not checked in"
msgstr "Non enregistré"
msgstr "Enregistrement non effectué"
#: pretix/control/forms/filter.py:2064
msgctxt "subevent"
@@ -16969,7 +16925,7 @@ msgstr "Vous ne pouvez définir qu'un seul domaine d'organisateur."
#: pretix/control/forms/organizer.py:322
msgid "Provided by a plugin"
msgstr ""
msgstr "Fourni par un plugin"
#: pretix/control/forms/organizer.py:438
msgid ""
@@ -17856,10 +17812,8 @@ msgid "The order has been denied (comment: \"{comment}\")."
msgstr "Lordonnance a été refusée (commentaire : \"{comment}\")."
#: pretix/control/logdisplay.py:521
#, fuzzy
#| msgid "The order has been overpaid."
msgid "The customer VAT ID has been verified."
msgstr "La commande a été payée en trop."
msgstr "Le numéro d'identification TVA du client a été vérifié."
#: pretix/control/logdisplay.py:522
#, python-brace-format
@@ -18160,10 +18114,9 @@ msgid "{user} has been invited to the team."
msgstr "{user} a été invité dans l'équipe."
#: pretix/control/logdisplay.py:644
#, fuzzy, python-brace-format
#| msgid "Invite for {user} has been resent."
#, python-brace-format
msgid "Invite for {user} has been deleted."
msgstr "L'invitation pour {user} a été renvoyée."
msgstr "L'invitation destinée à {user} a été supprimée."
#: pretix/control/logdisplay.py:645
#, python-brace-format
@@ -20484,21 +20437,7 @@ msgid "Add property"
msgstr "Ajouter une propriété"
#: pretix/control/templates/pretixcontrol/email/confirmation_code.txt:1
#, fuzzy, python-format
#| msgid ""
#| "Hello,\n"
#| "\n"
#| "%(reason)s\n"
#| "\n"
#| " %(code)s\n"
#| "\n"
#| "Please do never give this code to another person. Our support team will "
#| "never ask for this code.\n"
#| "\n"
#| "If this code was not requested by you, please contact us immediately.\n"
#| "\n"
#| "Best regards,\n"
#| "Your pretix team\n"
#, python-format
msgid ""
"Hello,\n"
"\n"
@@ -20527,7 +20466,7 @@ msgstr ""
"immédiatement.\n"
"\n"
"Cordialement,\n"
"Léquipe pretix\n"
"Votre équipe pretix%(instance)s\n"
#: pretix/control/templates/pretixcontrol/email/email_setup.txt:1
#, python-format
@@ -20565,17 +20504,7 @@ msgstr ""
"Votre équipe %(instance)s\n"
#: pretix/control/templates/pretixcontrol/email/forgot.txt:1
#, fuzzy, python-format
#| msgid ""
#| "Hello,\n"
#| "\n"
#| "you requested a new password. Please go to the following page to reset "
#| "your password:\n"
#| "\n"
#| "%(url)s\n"
#| "\n"
#| "Best regards, \n"
#| "Your pretix team\n"
#, python-format
msgid ""
"Hello,\n"
"\n"
@@ -20595,27 +20524,10 @@ msgstr ""
"%(url)s\n"
"\n"
"Sincères salutations, \n"
"Votre équipe Pretix\n"
"Votre équipe pretix%(instance)s\n"
#: pretix/control/templates/pretixcontrol/email/invitation.txt:1
#, fuzzy, python-format
#| msgid ""
#| "Hello,\n"
#| "\n"
#| "you have been invited to a team on pretix, a platform to perform event\n"
#| "ticket sales.\n"
#| "\n"
#| "Organizer: %(organizer)s\n"
#| "Team: %(team)s\n"
#| "\n"
#| "If you want to join that team, just click on the following link:\n"
#| "%(url)s\n"
#| "\n"
#| "If you do not want to join, you can safely ignore or delete this email.\n"
#| "\n"
#| "Best regards, \n"
#| "\n"
#| "Your pretix team\n"
#, python-format
msgid ""
"Hello,\n"
"\n"
@@ -20637,8 +20549,8 @@ msgid ""
msgstr ""
"Bonjour,\n"
"\n"
"vous avez été invité à faire partie d'une équipe sur pretix, une plateforme "
"pour réaliser un événement\n"
"vous avez été invité à faire partie de l'équipe pretix%(instance)s, une "
"plateforme pour réaliser un événement\n"
"de vente de billets.\n"
"\n"
"Organisateur: %(organizer)s\n"
@@ -20652,7 +20564,7 @@ msgstr ""
"\n"
"Sincères salutations, \n"
"\n"
"Votre équipe Pretix\n"
"Votre équipe pretix%(instance)s\n"
#: pretix/control/templates/pretixcontrol/email/login_notice.txt:1
#, python-format
@@ -20690,24 +20602,7 @@ msgstr ""
"Votre équipe %(instance)s\n"
#: pretix/control/templates/pretixcontrol/email/security_notice.txt:1
#, fuzzy, python-format
#| msgid ""
#| "Hello,\n"
#| "\n"
#| "this is to inform you that the account information of your pretix account "
#| "has been\n"
#| "changed. In particular, the following changes have been performed:\n"
#| "\n"
#| "%(messages)s\n"
#| "\n"
#| "If this change was not performed by you, please contact us immediately.\n"
#| "\n"
#| "You can review and change your account settings here:\n"
#| "\n"
#| "%(url)s\n"
#| "\n"
#| "Best regards, \n"
#| "Your pretix team\n"
#, python-format
msgid ""
"Hello,\n"
"\n"
@@ -20728,8 +20623,8 @@ msgid ""
msgstr ""
"Bonjour,\n"
"\n"
"Ceci est pour vous informer que les informations de votre compte pretix ont "
"été\n"
"Ceci est pour vous informer que les informations de votre compte %(instance)"
"s ont été\n"
"modifié. Les modifications suivantes ont été apportées:\n"
"\n"
"%(messages)s\n"
@@ -20742,7 +20637,7 @@ msgstr ""
"%(url)s\n"
"\n"
"Sincères salutations, \n"
"Votre équipe Pretix\n"
"Votre équipe pretix%(instance)s\n"
#: pretix/control/templates/pretixcontrol/email_setup.html:8
#: pretix/control/templates/pretixcontrol/email_setup_simple.html:8
@@ -21010,10 +20905,8 @@ msgstr ""
"tous les billets, vous pouvez le faire via cette option."
#: pretix/control/templates/pretixcontrol/event/dangerzone.html:51
#, fuzzy
#| msgid "Permissions"
msgid "No permission"
msgstr "Autorisations"
msgstr "Pas d'autorisation"
#: pretix/control/templates/pretixcontrol/event/dangerzone.html:59
#: pretix/control/templates/pretixcontrol/event/dangerzone.html:72
@@ -23594,10 +23487,8 @@ msgid "Edit question"
msgstr "Modifier la question"
#: pretix/control/templates/pretixcontrol/items/question.html:55
#, fuzzy
#| msgid "You do not have permission to view this content."
msgid "No permission to view answers."
msgstr "Vous n'avez pas l'autorisation de consulter ce contenu."
msgstr "Vous n'êtes pas autorisé à consulter les réponses."
#: pretix/control/templates/pretixcontrol/items/question.html:63
msgid "No matching answers found."
@@ -25263,10 +25154,8 @@ msgstr "Pas de prochaine exécution programmée"
#: pretix/control/templates/pretixcontrol/orders/export.html:37
#: pretix/control/templates/pretixcontrol/organizers/export.html:37
#, fuzzy
#| msgid "Exporter not found"
msgid "Exporter not found or no permission"
msgstr "Exportateur introuvable"
msgstr "Exportateur introuvable ou autorisation refusée"
#: pretix/control/templates/pretixcontrol/orders/export.html:42
#: pretix/control/templates/pretixcontrol/organizers/export.html:42
@@ -25309,10 +25198,8 @@ msgstr "Recommandé pour les nouveaux utilisateurs"
#: pretix/control/templates/pretixcontrol/orders/export.html:120
#: pretix/control/templates/pretixcontrol/organizers/export.html:120
#, fuzzy
#| msgid "There are no add-ons available for this product."
msgid "There are no exporters available for you."
msgstr "Il n' y a pas d'add-ons disponibles pour ce produit."
msgstr "Aucun exportateur n'est disponible pour vous."
#: pretix/control/templates/pretixcontrol/orders/export_delete.html:4
#: pretix/control/templates/pretixcontrol/orders/export_delete.html:6
@@ -27277,7 +27164,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/pdf/index.html:274
#, python-format
msgid "max. %(size)s, smaller is better"
msgstr ""
msgstr "max. %(size)s, le plus petit possible"
#: pretix/control/templates/pretixcontrol/pdf/index.html:282
msgid "Download current background"
@@ -30089,16 +29976,12 @@ msgstr ""
"plus de détails sur les erreurs."
#: pretix/control/views/orders.py:2798 pretix/control/views/organizer.py:2131
#, fuzzy
#| msgid ""
#| "Your user account does not have sufficient permission to run this report, "
#| "therefore you cannot schedule it."
msgid ""
"Your user account does not have sufficient permission to run this report, "
"therefore you cannot change it."
msgstr ""
"Votre compte utilisateur ne dispose pas des autorisations suffisantes pour "
"exécuter ce rapport, vous ne pouvez donc pas le planifier."
"Votre compte utilisateur ne dispose pas des autorisations nécessaires pour "
"exécuter ce rapport ; vous ne pouvez donc pas le modifier."
#: pretix/control/views/orders.py:2807 pretix/control/views/organizer.py:2140
msgid ""
@@ -34212,7 +34095,7 @@ msgstr "iDEAL via Stripe"
#: pretix/plugins/stripe/payment.py:1572
msgid "iDEAL | Wero"
msgstr ""
msgstr "iDEAL | Wero"
#: pretix/plugins/stripe/payment.py:1575
msgid ""
@@ -37253,6 +37136,9 @@ msgid ""
"the shop that affect quotas, such as the validity period of carts and "
"vouchers."
msgstr ""
"Veuillez noter que la modification de l'heure n'est pas prise en compte pour "
"les aspects de la boutique qui ont une incidence sur les quotas, tels que la "
"durée de validité des paniers et des bons d'achat."
#: pretix/presale/templates/pretixpresale/event/timemachine.html:31
msgid "Enable time machine"

View File

@@ -7,7 +7,7 @@ msgstr ""
"Project-Id-Version: French\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-17 14:06+0000\n"
"PO-Revision-Date: 2026-01-27 14:51+0000\n"
"PO-Revision-Date: 2026-03-18 12:23+0000\n"
"Last-Translator: CVZ-es <damien.bremont@casadevelazquez.org>\n"
"Language-Team: French <https://translate.pretix.eu/projects/pretix/pretix-js/"
"fr/>\n"
@@ -16,7 +16,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 5.15.2\n"
"X-Generator: Weblate 5.16.2\n"
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:56
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:62
@@ -59,7 +59,7 @@ msgstr "PayPal Pay Later"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:41
msgid "iDEAL | Wero"
msgstr ""
msgstr "iDEAL | Wero"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:42
msgid "SEPA Direct Debit"

View File

@@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-17 14:05+0000\n"
"PO-Revision-Date: 2026-02-10 16:49+0000\n"
"Last-Translator: Michele Pagnozzi <michele.pagnozzi@gmail.com>\n"
"PO-Revision-Date: 2026-03-27 09:03+0000\n"
"Last-Translator: Ivano Voghera <ivano.voghera@gmail.com>\n"
"Language-Team: Italian <https://translate.pretix.eu/projects/pretix/pretix/"
"it/>\n"
"Language: it\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.15.2\n"
"X-Generator: Weblate 5.16.2\n"
#: pretix/_base_settings.py:87
msgid "English"
@@ -412,9 +412,8 @@ msgstr ""
#: pretix/api/serializers/organizer.py:482
#: pretix/control/views/organizer.py:1039
#, fuzzy
msgid "Account invitation"
msgstr "Informazioni account modificate"
msgstr "Invito account"
#: pretix/api/serializers/organizer.py:503
#: pretix/control/views/organizer.py:1138
@@ -656,22 +655,16 @@ msgid "Customer account anonymized"
msgstr "Account del cliente anonimizzato"
#: pretix/api/webhooks.py:470
#, fuzzy
#| msgid "Gift card code"
msgid "Gift card added"
msgstr "Codice carta regalo"
msgstr "Carta regalo aggiunta"
#: pretix/api/webhooks.py:474
#, fuzzy
#| msgid "Gift card code"
msgid "Gift card modified"
msgstr "Codice carta regalo"
msgstr "Carta regalo modificata"
#: pretix/api/webhooks.py:478
#, fuzzy
#| msgid "Gift card transactions"
msgid "Gift card used in transaction"
msgstr "Transazioni con carta regalo"
msgstr "Carta regalo usata nella transazione"
#: pretix/base/addressvalidation.py:100 pretix/base/addressvalidation.py:103
#: pretix/base/addressvalidation.py:108 pretix/base/forms/questions.py:1054
@@ -1237,7 +1230,7 @@ msgstr "Caricamento dei file di risposta alle domande"
#: pretix/plugins/reports/exporters.py:666
msgctxt "export_category"
msgid "Order data"
msgstr "Dati dell'ordine"
msgstr "Data dell'ordine"
#: pretix/base/exporters/answers.py:56
msgid ""
@@ -2324,6 +2317,10 @@ msgid ""
"contain at least one position of this product. The order totals etc. still "
"include all products contained in the order."
msgstr ""
"Se non ne viene selezionato nessuno, saranno inclusi tutti i prodotti. Gli "
"ordini vengono inclusi se contengono almeno un articolo di questo prodotto. "
"I totali dell'ordine ecc. includeranno comunque tutti i prodotti contenuti "
"nell'ordine."
#: pretix/base/exporters/orderlist.py:283
#: pretix/base/exporters/orderlist.py:479
@@ -2590,16 +2587,12 @@ msgid "Voucher"
msgstr "Voucher"
#: pretix/base/exporters/orderlist.py:655
#, fuzzy
#| msgid "Voucher deleted"
msgid "Voucher budget usage"
msgstr "Buono eliminato"
msgstr "Utilizzo budget del buono"
#: pretix/base/exporters/orderlist.py:656
#, fuzzy
#| msgid "Voucher"
msgid "Voucher tag"
msgstr "Voucher"
msgstr "Voucher tag"
#: pretix/base/exporters/orderlist.py:657
msgid "Pseudonymization ID"
@@ -3418,39 +3411,34 @@ msgid "Street and Number"
msgstr "Indirizzo e numero civico"
#: pretix/base/forms/questions.py:893
#, fuzzy, python-brace-format
#| msgid "Please enter a shorter name."
#, python-brace-format
msgid "Please enter a date between {min} and {max}."
msgstr "Per favore inserisci un nome più breve."
msgstr "Per favore inserisci una data inclusa tra {min} e {max}."
#: pretix/base/forms/questions.py:899
#, fuzzy, python-brace-format
#| msgid "Please enter a valid sales channel."
#, python-brace-format
msgid "Please enter a date no earlier than {min}."
msgstr "Inserire un canale di vendita valido."
msgstr "Per favore inserisci una data successiva a {min}."
#: pretix/base/forms/questions.py:904
#, fuzzy, python-brace-format
#| msgid "Please enter a shorter name."
#, python-brace-format
msgid "Please enter a date no later than {max}."
msgstr "Per favore inserisci un nome più breve."
msgstr "Per favore inserisci una data precedente a {max}."
#: pretix/base/forms/questions.py:942
#, python-brace-format
msgid "Please enter a date and time between {min} and {max}."
msgstr ""
msgstr "Per favore inserisci data e orario compresi tra {min} e {max}."
#: pretix/base/forms/questions.py:948
#, fuzzy, python-brace-format
#| msgid "Please enter a valid sales channel."
#, python-brace-format
msgid "Please enter a date and time no earlier than {min}."
msgstr "Inserire un canale di vendita valido."
msgstr "Per favore inserisci data e orario successivi a {min}."
#: pretix/base/forms/questions.py:953
#, fuzzy, python-brace-format
#| msgid "Please enter the correct result."
#, python-brace-format
msgid "Please enter a date and time no later than {max}."
msgstr "Per favore inserisci il risultato corretto."
msgstr "Per favore inserisci data e orario precedenti a {max}."
#: pretix/base/forms/questions.py:1172
msgid ""
@@ -3957,7 +3945,7 @@ msgstr ""
#: pretix/base/invoicing/peppol.py:166
msgid "The Peppol participant ID is not registered on the Peppol network."
msgstr ""
msgstr "L'ID partecipante Peppol non è registrato nella rete Peppol."
#: pretix/base/invoicing/peppol.py:192
msgid "Peppol participant ID"
@@ -3965,7 +3953,7 @@ msgstr "ID partecipante Peppol"
#: pretix/base/invoicing/peppol.py:211
msgid "The Peppol participant ID does not match your VAT ID."
msgstr ""
msgstr "L'ID partecipante Peppol non corrisponde alla tua Partita IVA."
#: pretix/base/invoicing/peppol.py:214
msgctxt "peppol_invoice"
@@ -4336,7 +4324,7 @@ msgstr "Permetti di superare la quota"
#: pretix/control/templates/pretixcontrol/vouchers/detail.html:70
#: pretix/control/views/vouchers.py:121
msgid "Price effect"
msgstr ""
msgstr "Variazione di prezzo"
#: pretix/base/modelimport_vouchers.py:150
#, fuzzy, python-brace-format
@@ -5339,7 +5327,6 @@ msgstr "trasmesso"
#: pretix/control/templates/pretixcontrol/organizers/outgoing_mail.html:44
#: pretix/control/templates/pretixcontrol/organizers/outgoing_mails.html:145
#: pretix/plugins/sendmail/models.py:51
#, fuzzy
msgid "failed"
msgstr "fallito"
@@ -5401,7 +5388,7 @@ msgstr "Categoria normale"
#: pretix/base/models/items.py:115 pretix/control/forms/item.py:111
msgid "Normal + cross-selling category"
msgstr "Categoria normale + cross-selling"
msgstr "Normale + Categoria cross-selling"
#: pretix/base/models/items.py:116 pretix/control/forms/item.py:106
msgid "Cross-selling category"
@@ -6449,13 +6436,13 @@ msgstr "Fine"
#: pretix/control/templates/pretixcontrol/organizers/outgoing_mail.html:38
#: pretix/control/templates/pretixcontrol/organizers/outgoing_mails.html:139
msgid "queued"
msgstr ""
msgstr "in coda"
#: pretix/base/models/mail.py:53
#: pretix/control/templates/pretixcontrol/organizers/outgoing_mail.html:40
#: pretix/control/templates/pretixcontrol/organizers/outgoing_mails.html:141
msgid "being sent"
msgstr ""
msgstr "invio in corso"
#: pretix/base/models/mail.py:54
#, fuzzy
@@ -6467,25 +6454,25 @@ msgstr "Voce in lista d'attesa"
#: pretix/control/templates/pretixcontrol/organizers/outgoing_mail.html:48
#: pretix/control/templates/pretixcontrol/organizers/outgoing_mails.html:149
msgid "withheld"
msgstr ""
msgstr "trattenuto"
#: pretix/base/models/mail.py:57
#: pretix/control/templates/pretixcontrol/organizers/outgoing_mail.html:50
#: pretix/control/templates/pretixcontrol/organizers/outgoing_mails.html:151
msgid "aborted"
msgstr ""
msgstr "annullato"
#: pretix/base/models/mail.py:58
#: pretix/control/templates/pretixcontrol/organizers/outgoing_mail.html:52
#: pretix/control/templates/pretixcontrol/organizers/outgoing_mails.html:153
msgid "sent"
msgstr ""
msgstr "inviato"
#: pretix/base/models/mail.py:59
#: pretix/control/templates/pretixcontrol/organizers/outgoing_mail.html:46
#: pretix/control/templates/pretixcontrol/organizers/outgoing_mails.html:147
msgid "bounced"
msgstr ""
msgstr "rimbalzato"
#: pretix/base/models/memberships.py:44
#: pretix/presale/templates/pretixpresale/organizers/customer_memberships.html:28
@@ -6689,7 +6676,7 @@ msgstr "confermato"
#: pretix/base/models/orders.py:1734
msgctxt "payment_state"
msgid "canceled"
msgstr "annullato"
msgstr "cancellato"
#: pretix/base/models/orders.py:1735
msgctxt "payment_state"
@@ -6920,7 +6907,7 @@ msgstr "Ammissione all'evento"
#: pretix/base/models/organizer.py:379
#: pretix/control/templates/pretixcontrol/organizers/team_edit.html:34
msgid "Event permissions"
msgstr ""
msgstr "Permessi dell'evento"
#: pretix/base/models/organizer.py:380
#, fuzzy
@@ -6930,7 +6917,7 @@ msgstr "Impostazioni account"
#: pretix/base/models/organizer.py:381
#: pretix/control/templates/pretixcontrol/organizers/team_edit.html:25
msgid "Organizer permissions"
msgstr ""
msgstr "Permessi dell'organizzatore"
#: pretix/base/models/organizer.py:401
#, python-format
@@ -8435,7 +8422,7 @@ msgstr "Il tuo file di layout non è un layout valido. Messaggio di errore: {}"
#: pretix/base/permissions.py:314 pretix/base/permissions.py:331
msgctxt "permission_level"
msgid "View"
msgstr ""
msgstr "Vista"
#: pretix/base/permissions.py:164 pretix/base/permissions.py:169
#: pretix/base/permissions.py:174 pretix/base/permissions.py:179
@@ -8447,12 +8434,14 @@ msgstr "Salva modifiche"
#: pretix/base/permissions.py:168
msgid "API only"
msgstr ""
msgstr "Solo API"
#: pretix/base/permissions.py:173
msgid ""
"Menu item will only show up if the user has permission for general settings."
msgstr ""
"La voce di menu apparirà solo se l'utente ha il permesso per le impostazioni "
"generali."
#: pretix/base/permissions.py:177 pretix/base/permissions.py:231
#: pretix/base/permissions.py:285 pretix/base/permissions.py:313
@@ -8474,12 +8463,14 @@ msgid ""
"This includes access to all settings not listed explicitly below, including "
"plugin settings."
msgstr ""
"Include l'accesso a tutte le impostazioni non elencate esplicitamente di "
"seguito, comprese le impostazioni dei plugin."
#: pretix/base/permissions.py:197
#: pretix/control/templates/pretixcontrol/event/payment.html:6
#: pretix/control/templates/pretixcontrol/event/payment_provider.html:5
msgid "Payment settings"
msgstr ""
msgstr "Impostazioni di pagamento"
#: pretix/base/permissions.py:203
#: pretix/control/templates/pretixcontrol/event/tax.html:120
@@ -8488,10 +8479,8 @@ msgid "Tax settings"
msgstr "Impostazioni account"
#: pretix/base/permissions.py:209
#, fuzzy
#| msgid "Login settings"
msgid "Invoicing settings"
msgstr "Impostazioni login"
msgstr "Impostazioni Fattura"
#: pretix/base/permissions.py:215
#, fuzzy
@@ -8508,7 +8497,7 @@ msgstr "Nome prodotto e variante"
#: pretix/base/permissions.py:224
msgid "Also includes related objects like categories or discounts."
msgstr ""
msgstr "Include anche gli oggetti correlati come categorie o sconti."
#: pretix/base/permissions.py:232
#, fuzzy
@@ -8519,7 +8508,7 @@ msgstr "Filtra per stato"
#: pretix/base/permissions.py:233
msgctxt "permission_level"
msgid "View all"
msgstr ""
msgstr "Vedi tutto"
#: pretix/base/permissions.py:234
#, fuzzy
@@ -8530,15 +8519,15 @@ msgstr "Filtra per stato"
#: pretix/base/permissions.py:235
msgctxt "permission_level"
msgid "View all and change"
msgstr ""
msgstr "Vedi e modifica tutto"
#: pretix/base/permissions.py:236
msgid "Includes the ability to cancel and refund individual orders."
msgstr ""
msgstr "Include il permesso di cancellare e rimborsare ordini individuali."
#: pretix/base/permissions.py:238
msgid "Also includes related objects like the waiting list."
msgstr ""
msgstr "Include anche gli oggetti correlati come la lista d'attesa."
#: pretix/base/permissions.py:248
#, fuzzy
@@ -8562,17 +8551,19 @@ msgstr "Tasse"
#: pretix/base/permissions.py:268
msgctxt "permission_level"
msgid "Access existing events"
msgstr ""
msgstr "Accedere agli eventi esistenti"
#: pretix/base/permissions.py:269
msgctxt "permission_level"
msgid "Access existing and create new events"
msgstr ""
msgstr "Accedere agli eventi esistenti e crearne di nuovi"
#: pretix/base/permissions.py:271
msgid ""
"The level of access to events is determined in detail by the settings below."
msgstr ""
"Il livello di accesso agli eventi è determinato nel dettaglio dalle "
"impostazioni sottostanti."
#: pretix/base/permissions.py:275 pretix/control/navigation.py:143
#: pretix/control/navigation.py:462 pretix/control/navigation.py:512
@@ -8591,6 +8582,8 @@ msgid ""
"This includes access to all organizer-level functionality not listed "
"explicitly below, including plugin settings."
msgstr ""
"Include l'accesso a tutte le funzionalità a livello di organizzatore non "
"elencate esplicitamente di seguito, comprese le impostazioni dei plugin."
#: pretix/base/permissions.py:287
msgid ""
@@ -8625,7 +8618,7 @@ msgstr "Piano dei posti a sedere"
#: pretix/base/permissions.py:327 pretix/control/navigation.py:712
#: pretix/control/templates/pretixcontrol/organizers/outgoing_mails.html:8
msgid "Outgoing emails"
msgstr ""
msgstr "Email in uscita"
#: pretix/base/plugins.py:138
#: pretix/control/templates/pretixcontrol/event/quick_setup.html:132
@@ -10097,6 +10090,11 @@ msgid ""
"placing an order, the restriction only becomes active after the customer "
"account is activated."
msgstr ""
"Se abilitato, gli utenti che erano autenticati al momento dell'acquisto "
"dovranno effettuare l'accesso anche per consultare le informazioni sul "
"proprio ordine. Se un account cliente viene creato durante l'effettuazione "
"di un ordine, la restrizione diventerà attiva solo dopo l'attivazione "
"dell'account stesso."
#: pretix/base/settings.py:203
msgid "Match orders based on email address"
@@ -13190,6 +13188,9 @@ msgid ""
"logged email contents. This will also remove the association to customer "
"accounts."
msgstr ""
"Questo rimuoverà tutti gli indirizzi email dagli ordini e dai partecipanti, "
"così come il contenuto delle email registrate. Rimuoverà inoltre "
"l'associazione agli account cliente."
#: pretix/base/shredder.py:373
msgid ""
@@ -16579,19 +16580,19 @@ msgstr "Salva modifiche"
#: pretix/control/forms/rrule.py:35
msgid "year(s)"
msgstr ""
msgstr "anno/i"
#: pretix/control/forms/rrule.py:36
msgid "month(s)"
msgstr "mese(i)"
msgstr "mese/i"
#: pretix/control/forms/rrule.py:37
msgid "week(s)"
msgstr "settimana (e)"
msgstr "settimana/e"
#: pretix/control/forms/rrule.py:38
msgid "day(s)"
msgstr ""
msgstr "giorno/i"
#: pretix/control/forms/rrule.py:43
msgid "Interval"
@@ -16628,7 +16629,7 @@ msgstr ""
#: pretix/control/forms/rrule.py:111 pretix/control/forms/rrule.py:150
#: pretix/presale/templates/pretixpresale/fragment_calendar_nav.html:20
msgid "Day"
msgstr ""
msgstr "Giorno"
#: pretix/control/forms/rrule.py:113 pretix/control/forms/rrule.py:152
msgid "Weekend day"
@@ -17230,9 +17231,8 @@ msgid ""
msgstr ""
#: pretix/control/logdisplay.py:529
#, fuzzy
msgid "The customer account has been changed."
msgstr "La data dell'evento è stata modificata."
msgstr "L'account cliente è stato modificato."
#: pretix/control/logdisplay.py:530
msgid "The order locale has been changed."
@@ -18914,7 +18914,7 @@ msgstr ""
#: 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 ""
msgstr "Se questa operazione richiede alcuni minuti, si prega di contattarci."
#: pretix/control/templates/pretixcontrol/boxoffice/payment.html:4
#: pretix/control/templates/pretixcontrol/organizers/devices.html:75
@@ -20687,8 +20687,6 @@ msgid "Payment reminder"
msgstr ""
#: pretix/control/templates/pretixcontrol/event/mail.html:108
#, fuzzy
#| msgid "Payment confirmed"
msgid "Payment failed"
msgstr "Pagamento rifiutato"
@@ -20739,7 +20737,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/event/payment.html:78
msgctxt "unit"
msgid "days"
msgstr ""
msgstr "giorni"
#: pretix/control/templates/pretixcontrol/event/payment_provider.html:13
#: pretix/control/templates/pretixcontrol/events/create_base.html:24
@@ -21616,7 +21614,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/fragment_quota_box_paid.html:3
#, python-format
msgid "Currently available: %(num)s"
msgstr ""
msgstr "Attualmente disponibili: %(num)s"
#: pretix/control/templates/pretixcontrol/global_license.html:8
msgid ""
@@ -21862,6 +21860,8 @@ msgid ""
"This product is currently not being sold since you configured below that it "
"should only be available in a certain timeframe."
msgstr ""
"Questo prodotto non è attualmente in vendita, poiché è stato configurato per "
"essere disponibile solo in un determinato intervallo di tempo."
#: pretix/control/templates/pretixcontrol/item/base.html:41
msgid ""
@@ -22367,6 +22367,8 @@ msgstr "Crea un nuovo organizzatore"
msgid ""
"Currently unavailable since a limited timeframe for this product has been set"
msgstr ""
"Attualmente non disponibile poiché è stato impostato un intervallo di tempo "
"limitato per questo prodotto"
#: pretix/control/templates/pretixcontrol/items/discounts.html:119
msgid "Condition:"
@@ -22863,12 +22865,13 @@ msgstr ""
#: pretix/presale/templates/pretixpresale/event/order.html:483
#: pretix/presale/templates/pretixpresale/event/order_cancel.html:7
msgid "Cancel order"
msgstr ""
msgstr "Elimina ordine"
#: pretix/control/templates/pretixcontrol/order/cancel.html:12
#: pretix/control/templates/pretixcontrol/order/deny.html:11
msgid "Do you really want to cancel this order? You cannot revert this action."
msgstr ""
"Vuoi davvero eliminare questo ordine? Questa azione non può essere annullata."
#: pretix/control/templates/pretixcontrol/order/cancel.html:16
msgid ""
@@ -22887,12 +22890,12 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/order/cancel.html:51
#: pretix/presale/templates/pretixpresale/event/order_cancel.html:220
msgid "Yes, cancel order"
msgstr ""
msgstr "Si, elimina ordine"
#: pretix/control/templates/pretixcontrol/order/cancellation_request_delete.html:4
#: pretix/control/templates/pretixcontrol/order/cancellation_request_delete.html:8
msgid "Ignore cancellation request"
msgstr ""
msgstr "Ignora la richiesta di cancellazione"
#: pretix/control/templates/pretixcontrol/order/cancellation_request_delete.html:10
msgid ""
@@ -23002,9 +23005,8 @@ msgid ""
msgstr ""
#: pretix/control/templates/pretixcontrol/order/change.html:220
#, fuzzy
msgid "Ticket block"
msgstr "Codice biglietto"
msgstr "Biglietto bloccato"
#: pretix/control/templates/pretixcontrol/order/change.html:226
msgid "Blocked due to external constraints"
@@ -25151,9 +25153,8 @@ msgid "Organizer logs"
msgstr "Organizzatore"
#: pretix/control/templates/pretixcontrol/organizers/mail.html:60
#, fuzzy
msgid "Customer account registration"
msgstr "Invia ordine"
msgstr "Registrazione account cliente"
#: pretix/control/templates/pretixcontrol/organizers/mail.html:63
#, fuzzy
@@ -26182,7 +26183,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/subevents/bulk.html:10
msgctxt "subevent"
msgid "Create multiple dates"
msgstr ""
msgstr "Crea date multiple"
#: pretix/control/templates/pretixcontrol/subevents/bulk.html:35
#: pretix/control/templates/pretixcontrol/subevents/bulk.html:146
@@ -26275,10 +26276,9 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/subevents/bulk_edit.html:9
#: pretix/control/templates/pretixcontrol/subevents/bulk_edit.html:12
#, fuzzy
msgctxt "subevent"
msgid "Change multiple dates"
msgstr "Solo ordini pagati"
msgstr "Cambia date multiple"
#: pretix/control/templates/pretixcontrol/subevents/bulk_edit.html:154
msgid "Item prices"
@@ -27208,6 +27208,12 @@ 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 ""
"Hai configurato il sistema affinché i voucher <strong>non</strong> vengano "
"inviati automaticamente. Puoi inviarli singolarmente nell'ordine che "
"preferisci cliccando sui pulsanti accanto a ogni riga di questa tabella (se "
"la quota è sufficiente), oppure puoi premere il pulsante grande sotto questo "
"testo per inviare quanti più voucher possibile alle persone in attesa da più "
"tempo."
#: pretix/control/templates/pretixcontrol/waitinglist/index.html:79
msgid "Send as many vouchers as possible"
@@ -33293,10 +33299,9 @@ msgstr ""
#: pretix/presale/forms/renderers.py:66
#: pretix/presale/templates/pretixpresale/event/fragment_voucher_form.html:14
#, fuzzy
msgctxt "form"
msgid "required"
msgstr "Carrello scaduto"
msgstr "obbligatorio"
#: pretix/presale/ical.py:87 pretix/presale/ical.py:146
#: pretix/presale/ical.py:182
@@ -33629,7 +33634,7 @@ msgstr "Invia ordine"
#: pretix/presale/templates/pretixpresale/event/checkout_customer.html:19
msgid "Log in with a customer account"
msgstr ""
msgstr "Accedi con un account cliente"
#: pretix/presale/templates/pretixpresale/event/checkout_customer.html:26
msgid "You are currently logged in with the following credentials."
@@ -34002,7 +34007,7 @@ msgstr ""
#: pretix/presale/templates/pretixpresale/event/fragment_availability.html:25
#: pretix/presale/templates/pretixpresale/event/fragment_product_list.html:91
msgid "FULLY BOOKED"
msgstr ""
msgstr "TUTTO PRENOTATO"
#: pretix/presale/templates/pretixpresale/event/fragment_availability.html:37
#: pretix/presale/templates/pretixpresale/event/fragment_product_list.html:101
@@ -34514,7 +34519,7 @@ msgstr ""
#: pretix/presale/templates/pretixpresale/event/fragment_quota_left.html:4
#, python-format
msgid "%(num)s currently available"
msgstr ""
msgstr "%(num)s attualmente disponibili"
#: pretix/presale/templates/pretixpresale/event/fragment_subevent_calendar.html:5
#: pretix/presale/templates/pretixpresale/event/fragment_subevent_calendar_week.html:5
@@ -34751,18 +34756,14 @@ msgstr ""
"completo."
#: pretix/presale/templates/pretixpresale/event/order.html:56
#, fuzzy
#| msgid ""
#| "Please bookmark or save the link to this exact page if you want to access "
#| "your order later. We also sent you an email containing the link to the "
#| "address you specified."
msgid ""
"Please bookmark or save the link to this exact page if you want to access "
"your order later. We also sent you an email to the address you specified "
"containing the link to this page."
msgstr ""
"Salva questa pagina nei preferiti se vuoi accedervi in seguito. Ti abbiamo "
"anche inviato una email contenente il link a questa pagina."
"Salva questa pagina nei preferiti se vuoi accedere al tuo ordine in seguito. "
"Ti abbiamo anche inviato una email all'indirizzo che hai indicato contenente "
"il link a questa pagina."
#: pretix/presale/templates/pretixpresale/event/order.html:60
#, fuzzy
@@ -34877,7 +34878,7 @@ msgstr "Riferimento Interno"
#: pretix/presale/templates/pretixpresale/event/order.html:354
msgctxt "action"
msgid "Change or cancel your order"
msgstr ""
msgstr "Modifica o cancella il tuo ordine"
#: pretix/presale/templates/pretixpresale/event/order.html:356
#, fuzzy
@@ -34887,10 +34888,9 @@ msgid "Change your order"
msgstr "Cambia ordine"
#: pretix/presale/templates/pretixpresale/event/order.html:358
#, fuzzy
msgctxt "action"
msgid "Cancel your order"
msgstr "Solo ordini pagati"
msgstr "Cancella il tuo ordine"
#: pretix/presale/templates/pretixpresale/event/order.html:366
msgid ""
@@ -34984,7 +34984,7 @@ msgstr ""
#: pretix/presale/templates/pretixpresale/event/order.html:472
msgid "You can cancel this order using the following button."
msgstr ""
msgstr "Puoi cancellare questo ordine usando il bottone di seguito."
#: pretix/presale/templates/pretixpresale/event/order_cancel.html:11
#, python-format
@@ -35271,7 +35271,7 @@ msgstr "Devi selezionare almeno %(number)s prodotti."
#: pretix/presale/templates/pretixpresale/event/waitinglist.html:5
msgid "Add me to the waiting list"
msgstr ""
msgstr "Aggiungimi alla lista d'attesa"
#: pretix/presale/templates/pretixpresale/event/waitinglist.html:22
#, python-format
@@ -35280,6 +35280,10 @@ msgid ""
"waiting list. If we notify you, you'll have %(hours)s hours time to buy a "
"ticket until we assign it to the next person on the list."
msgstr ""
"Se i biglietti dovessero tornare disponibili, informeremo le prime persone "
"in lista d'attesa. Se ti avvisiamo, avrai %(hours)s ore di tempo per "
"acquistare un biglietto prima che venga assegnato alla persona successiva in "
"lista."
#: pretix/presale/templates/pretixpresale/event/waitinglist.html:28
msgid ""
@@ -35287,6 +35291,9 @@ msgid ""
"you need to add yourself to the waiting list multiple times. There is no "
"guarantee that you will receive a certain number of tickets."
msgstr ""
"Tieni presente che riceverai un solo biglietto. Se hai bisogno di più "
"biglietti, dovrai iscriverti alla lista d'attesa più volte. Non è garantito "
"che riceverai un numero esatto di biglietti."
#: pretix/presale/templates/pretixpresale/event/waitinglist.html:32
msgid ""
@@ -35295,6 +35302,10 @@ msgid ""
"email addresses. There is no guarantee that you will receive a certain "
"number of tickets."
msgstr ""
"Tieni presente che riceverai un solo biglietto. Se hai bisogno di più "
"biglietti, dovrai iscriverti alla lista d'attesa più volte utilizzando "
"indirizzi email diversi. Non è garantito che riceverai un numero esatto di "
"biglietti."
#: pretix/presale/templates/pretixpresale/event/waitinglist.html:38
msgid ""
@@ -35302,15 +35313,17 @@ msgid ""
"been added to the waiting list. We will only contact you once a spot opens "
"up."
msgstr ""
"<strong>Non</strong> riceverai un'email di conferma dopo essere stato "
"aggiunto alla lista d'attesa. Ti contatteremo solo quando si libererà un "
"posto."
#: pretix/presale/templates/pretixpresale/event/waitinglist.html:44
msgid "Add me to the list"
msgstr ""
msgstr "Aggiungimi alla lista"
#: pretix/presale/templates/pretixpresale/event/waitinglist_remove.html:5
#, fuzzy
msgid "Remove me from the waiting list"
msgstr "Informazioni dell'ordine modificate"
msgstr "Cancellami dalla lista d'attesa"
#: pretix/presale/templates/pretixpresale/event/waitinglist_remove.html:9
msgid ""
@@ -35320,10 +35333,9 @@ msgid ""
msgstr ""
#: pretix/presale/templates/pretixpresale/event/waitinglist_remove.html:16
#, fuzzy
msgctxt "waitinglist"
msgid "Yes, remove my ticket"
msgstr "Aggiungi o rimuovi biglietti"
msgstr "Si, cancella i miei biglietti"
#: pretix/presale/templates/pretixpresale/fragment_calendar.html:7
msgid "Calendar"
@@ -35347,9 +35359,8 @@ msgstr "(continua)"
#: pretix/presale/templates/pretixpresale/fragment_event_list_status.html:14
#: pretix/presale/templates/pretixpresale/fragment_week_calendar.html:58
#: pretix/presale/views/widget.py:440
#, fuzzy
msgid "Few tickets left"
msgstr "Abilita formato biglietti"
msgstr "Pochi biglietti rimasti"
#: pretix/presale/templates/pretixpresale/fragment_calendar.html:92
#: pretix/presale/templates/pretixpresale/fragment_day_calendar.html:97
@@ -35397,10 +35408,9 @@ msgid "iCal"
msgstr "iCal"
#: pretix/presale/templates/pretixpresale/fragment_day_calendar.html:25
#, fuzzy
msgctxt "day calendar"
msgid "Single events"
msgstr "Prezzo netto"
msgstr "Singoli eventi"
#: pretix/presale/templates/pretixpresale/fragment_day_calendar.html:79
msgctxt "timerange"
@@ -35426,13 +35436,12 @@ msgstr ""
#: pretix/presale/templates/pretixpresale/fragment_login_status.html:5
msgid "customer account"
msgstr ""
msgstr "account cliente"
#: pretix/presale/templates/pretixpresale/fragment_login_status.html:8
#: pretix/presale/templates/pretixpresale/fragment_login_status.html:9
#, fuzzy
msgid "View customer account"
msgstr "Vedi un'altra data"
msgstr "Vedi account cliente"
#: pretix/presale/templates/pretixpresale/fragment_modals.html:18
#, fuzzy
@@ -35630,9 +35639,8 @@ msgid "Change account information"
msgstr "Le tue informazioni"
#: pretix/presale/templates/pretixpresale/organizers/customer_base.html:41
#, fuzzy
msgid "customer account information"
msgstr "Invia ordine"
msgstr "Informazioni account cliente"
#: pretix/presale/templates/pretixpresale/organizers/customer_giftcards.html:28
#, fuzzy, python-format
@@ -35790,7 +35798,7 @@ msgstr "Ripeti la nuova password"
#: pretix/presale/templates/pretixpresale/organizers/index.html:11
msgid "Event list"
msgstr ""
msgstr "Lista eventi"
#: pretix/presale/templates/pretixpresale/organizers/index.html:35
msgid "Past events"
@@ -35801,10 +35809,9 @@ msgid "Upcoming events"
msgstr "Prossimi eventi"
#: pretix/presale/templates/pretixpresale/organizers/index.html:56
#, fuzzy
msgctxt "subevent"
msgid "Multiple dates"
msgstr "Solo ordini pagati"
msgstr "Date multiple"
#: pretix/presale/templates/pretixpresale/organizers/index.html:105
msgid "No archived events found."
@@ -36147,6 +36154,8 @@ msgid ""
"You cannot add yourself to the waiting list as this product is currently "
"available."
msgstr ""
"Non puoi aggiungerti alla lista d'attesa in quanto questo prodotto è "
"attualmente disponibile."
#: pretix/presale/views/waiting.py:180
#, python-brace-format

View File

@@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-17 14:06+0000\n"
"PO-Revision-Date: 2026-02-10 16:49+0000\n"
"Last-Translator: Raffaele Doretto <ced@comune.portogruaro.ve.it>\n"
"PO-Revision-Date: 2026-03-25 14:14+0000\n"
"Last-Translator: Pietro Isotti <isottipietro@gmail.com>\n"
"Language-Team: Italian <https://translate.pretix.eu/projects/pretix/pretix-"
"js/it/>\n"
"Language: it\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.15.2\n"
"X-Generator: Weblate 5.16.2\n"
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:56
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:62
@@ -310,9 +310,8 @@ msgid "Ticket code revoked/changed"
msgstr "Codice biglietto annullato/modificato"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:63
#, fuzzy
msgid "Ticket blocked"
msgstr "Biglietto non pagato"
msgstr "Biglietto bloccato"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:64
msgid "Ticket not valid at this time"
@@ -429,7 +428,7 @@ msgstr ""
#: pretix/static/pretixbase/js/asynctask.js:276
msgid "If this takes longer than a few minutes, please contact us."
msgstr ""
msgstr "Se questa operazione richiede alcuni minuti, si prega di contattarci."
#: pretix/static/pretixbase/js/asynctask.js:331
msgid "Close message"

View File

@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-17 14:05+0000\n"
"PO-Revision-Date: 2026-03-09 12:52+0000\n"
"PO-Revision-Date: 2026-03-23 21:00+0000\n"
"Last-Translator: Hijiri Umemoto <hijiri@umemoto.org>\n"
"Language-Team: Japanese <https://translate.pretix.eu/projects/pretix/pretix/"
"ja/>\n"
@@ -399,10 +399,8 @@ msgstr ""
#: pretix/api/serializers/organizer.py:482
#: pretix/control/views/organizer.py:1039
#, fuzzy
#| msgid "Account information"
msgid "Account invitation"
msgstr "アカウント情報"
msgstr "アカウントに招待"
#: pretix/api/serializers/organizer.py:503
#: pretix/control/views/organizer.py:1138
@@ -3926,10 +3924,8 @@ msgid "Peppol participant ID"
msgstr "Peppol参加者ID"
#: pretix/base/invoicing/peppol.py:211
#, fuzzy
#| msgid "The Peppol participant ID is not registered on the Peppol network."
msgid "The Peppol participant ID does not match your VAT ID."
msgstr "Peppol参加者IDはPeppolネットワークに登録されていません。"
msgstr "Peppol参加者IDがVAT IDと一致しません。"
#: pretix/base/invoicing/peppol.py:214
msgctxt "peppol_invoice"
@@ -6766,10 +6762,8 @@ msgstr ""
"かかる場合があります。"
#: pretix/base/models/organizer.py:378
#, fuzzy
#| msgid "Event permissions"
msgid "All event permissions"
msgstr "イベントの権限"
msgstr "すべてのイベントの権限"
#: pretix/base/models/organizer.py:379
#: pretix/control/templates/pretixcontrol/organizers/team_edit.html:34
@@ -6777,10 +6771,8 @@ msgid "Event permissions"
msgstr "イベントの権限"
#: pretix/base/models/organizer.py:380
#, fuzzy
#| msgid "Organizer permissions"
msgid "All organizer permissions"
msgstr "主催者の権限"
msgstr "全ての主催者の権限"
#: pretix/base/models/organizer.py:381
#: pretix/control/templates/pretixcontrol/organizers/team_edit.html:25
@@ -8244,36 +8236,30 @@ msgstr ""
#: pretix/base/permissions.py:314 pretix/base/permissions.py:331
msgctxt "permission_level"
msgid "View"
msgstr ""
msgstr "見る"
#: pretix/base/permissions.py:164 pretix/base/permissions.py:169
#: pretix/base/permissions.py:174 pretix/base/permissions.py:179
#: pretix/base/permissions.py:286 pretix/base/permissions.py:315
#, fuzzy
#| msgid "Save and check"
msgctxt "permission_level"
msgid "View and change"
msgstr "保存してチェックします"
msgstr "確認と変更"
#: pretix/base/permissions.py:168
#, fuzzy
#| msgid "API tokens"
msgid "API only"
msgstr "APIトークン"
msgstr "APIのみ"
#: pretix/base/permissions.py:173
msgid ""
"Menu item will only show up if the user has permission for general settings."
msgstr ""
msgstr "メニュー項目は、ユーザーが一般設定の権限を持っている場合にのみ表示されます。"
#: pretix/base/permissions.py:177 pretix/base/permissions.py:231
#: pretix/base/permissions.py:285 pretix/base/permissions.py:313
#: pretix/base/permissions.py:330
#, fuzzy
#| msgid "Revoke access"
msgctxt "permission_level"
msgid "No access"
msgstr "アクセスを取り消す"
msgstr "アクセスなし"
#: pretix/base/permissions.py:188
#: pretix/control/templates/pretixcontrol/event/settings.html:7
@@ -8287,6 +8273,8 @@ msgid ""
"This includes access to all settings not listed explicitly below, including "
"plugin settings."
msgstr ""
"これには、以下に明示的に記載されていないすべての設定(プラグイン設定を含む)"
"へのアクセスが含まれます。"
#: pretix/base/permissions.py:197
#: pretix/control/templates/pretixcontrol/event/payment.html:6
@@ -8300,100 +8288,77 @@ msgid "Tax settings"
msgstr "税の設定"
#: pretix/base/permissions.py:209
#, fuzzy
#| msgid "Invoice settings"
msgid "Invoicing settings"
msgstr "請求の設定"
msgstr "請求の設定"
#: pretix/base/permissions.py:215
#, fuzzy
#| msgctxt "subevent"
#| msgid "Event series date added"
msgid "Event series dates"
msgstr "イベントシリーズ日程が追加されました"
msgstr "イベントシリーズ日程"
#: pretix/base/permissions.py:221
#, fuzzy
#| msgid "Product name and variation"
msgid "Products, quotas and questions"
msgstr "製品名とバリエーション"
msgstr "製品、クオータおよび質問"
#: pretix/base/permissions.py:224
msgid "Also includes related objects like categories or discounts."
msgstr ""
msgstr "カテゴリや割引などの関連オブジェクトも含まれます。"
#: pretix/base/permissions.py:232
#, fuzzy
#| msgid "All check-ins"
msgctxt "permission_level"
msgid "Only check-in"
msgstr "すべてのチェックイン"
msgstr "チェックインのみ"
#: pretix/base/permissions.py:233
#, fuzzy
#| msgid "View full log"
msgctxt "permission_level"
msgid "View all"
msgstr "フルログを表示します"
msgstr "すべてを表示"
#: pretix/base/permissions.py:234
#, fuzzy
#| msgid "Valid check-in"
msgctxt "permission_level"
msgid "View all and check-in"
msgstr "有効なチェックイン"
msgstr "すべてを表示してチェックイン"
#: pretix/base/permissions.py:235
#, fuzzy
#| msgid "View all upcoming events"
msgctxt "permission_level"
msgid "View all and change"
msgstr "すべての予定されているイベントを表示します"
msgstr "すべてを表示して変更する"
#: pretix/base/permissions.py:236
msgid "Includes the ability to cancel and refund individual orders."
msgstr ""
msgstr "個別の注文をキャンセルおよび返金する機能が含まれています。"
#: pretix/base/permissions.py:238
#, fuzzy
#| msgid "An entry has been added to the waiting list."
msgid "Also includes related objects like the waiting list."
msgstr "空席待ちリストに登録が追加されました。"
msgstr "待機リストなどの関連オブジェクトも含まれます。"
#: pretix/base/permissions.py:248
#, fuzzy
#| msgid "Generate cancellation"
msgid "Full event or date cancellation"
msgstr "キャンセルを生成します"
msgstr "イベント全体または日程のキャンセル"
#: pretix/base/permissions.py:252
#, fuzzy
#| msgid "Sale not allowed"
msgctxt "permission_level"
msgid "Not allowed"
msgstr "販売は許可されていません"
msgstr "許可されていません"
#: pretix/base/permissions.py:253
#, fuzzy
#| msgid "Allowed titles"
msgctxt "permission_level"
msgid "Allowed"
msgstr "選択可能な敬称"
msgstr "許可されている"
#: pretix/base/permissions.py:268
msgctxt "permission_level"
msgid "Access existing events"
msgstr ""
msgstr "既存のイベントにアクセス"
#: pretix/base/permissions.py:269
msgctxt "permission_level"
msgid "Access existing and create new events"
msgstr ""
msgstr "既存のイベントにアクセスし、新しいイベントを作成する"
#: pretix/base/permissions.py:271
msgid ""
"The level of access to events is determined in detail by the settings below."
msgstr ""
msgstr "イベントへのアクセスレベルは、以下の設定によって詳細に決定されます。"
#: pretix/base/permissions.py:275 pretix/control/navigation.py:143
#: pretix/control/navigation.py:462 pretix/control/navigation.py:512
@@ -8412,12 +8377,14 @@ msgid ""
"This includes access to all organizer-level functionality not listed "
"explicitly below, including plugin settings."
msgstr ""
"これには、以下に明示的に記載されていないすべてのオーガナイザーレベル機能への"
"アクセスが含まれ、プラグイン設定も含まれます。"
#: pretix/base/permissions.py:287
msgid ""
"Includes the ability to give someone (including oneself) additional "
"permissions."
msgstr ""
msgstr "自分自身を含む誰かに追加の権限を付与する機能が含まれています。"
#: pretix/base/permissions.py:298 pretix/control/navigation.py:608
#: pretix/control/templates/pretixcontrol/organizers/customers.html:6
@@ -8435,12 +8402,12 @@ msgid ""
"Includes the ability to give access to events and data oneself does not have "
"access to."
msgstr ""
"自らがアクセスできないイベントやデータへのアクセス権を付与する機能が含まれま"
"す。"
#: pretix/base/permissions.py:321
#, fuzzy
#| msgid "Seating plan"
msgid "Seating plans"
msgstr "座席"
msgstr "座席プラン"
#: pretix/base/permissions.py:327 pretix/control/navigation.py:712
#: pretix/control/templates/pretixcontrol/organizers/outgoing_mails.html:8
@@ -9043,12 +9010,12 @@ msgid "Czech National Bank"
msgstr "チェコ国立銀行"
#: pretix/base/services/export.py:94 pretix/base/services/export.py:154
#, fuzzy
#| msgid "You do not have sufficient permission to perform this export."
msgid ""
"Export not found or you do not have sufficient permission to perform this "
"export."
msgstr "このエクスポートを実行するための十分な権限がありません。"
msgstr ""
"エクスポートが見つからないか、エクスポートを実行するための十分な権限がありま"
"せん。"
#: pretix/base/services/export.py:107 pretix/base/services/export.py:179
#: pretix/base/services/export.py:357
@@ -13334,25 +13301,7 @@ msgid "Contact"
msgstr "連絡先"
#: pretix/base/templates/pretixbase/email/shred_completed.txt:2
#, fuzzy, python-format
#| msgid ""
#| "Hello,\n"
#| "\n"
#| "we hereby confirm that the following data shredding job has been "
#| "completed:\n"
#| "\n"
#| "Organizer: %(organizer)s\n"
#| "\n"
#| "Event: %(event)s\n"
#| "\n"
#| "Data selection: %(shredders)s\n"
#| "\n"
#| "Start time: %(start_time)s (new data added after this time might not have "
#| "been deleted)\n"
#| "\n"
#| "Best regards,\n"
#| "\n"
#| "Your pretix team\n"
#, python-format
msgid ""
"Hello,\n"
"\n"
@@ -13386,7 +13335,7 @@ msgstr ""
"\n"
"敬具\n"
"\n"
"担当 pretix チーム\n"
"担当 %(instance)sチーム\n"
#: pretix/base/templates/pretixbase/forms/widgets/checkbox_sales_channel_option.html:16
msgid ""
@@ -13940,16 +13889,12 @@ msgid "This is an event series"
msgstr "これはイベントシリーズです"
#: pretix/control/forms/event.py:135 pretix/control/forms/event.py:363
#, fuzzy
#| msgid ""
#| "You do not have sufficient permission to enable plugins that need to be "
#| "enabled for the entire organizer account."
msgid ""
"You do not have a sufficient level of access on the event you selected to "
"copy it to the desired organizer."
msgstr ""
"主催者アカウント全体で有効化する必要があるプラグインを有効にするのに十分な権"
"限がありません。"
"選択したイベントに対して、目的の主催者にコピーするための十分なアクセス権があ"
"りません。"
#: pretix/control/forms/event.py:143
msgid ""
@@ -14028,6 +13973,8 @@ msgid ""
"You cannot choose a team that would give you more access than you have on "
"the event you are copying."
msgstr ""
"コピーしているイベントに対して、より多くのアクセス権が付与されるチームを選択"
"することはできません。"
#: pretix/control/forms/event.py:344
msgid "Copy configuration from"
@@ -14043,6 +13990,8 @@ msgid ""
"You cannot choose an event on which you have less access than the team you "
"selected in the previous step."
msgstr ""
"前のステップで選択したチームよりもアクセス権が少ないイベントを選択することは"
"できません。"
#: pretix/control/forms/event.py:387 pretix/control/forms/item.py:1304
#: pretix/control/forms/subevents.py:411
@@ -14992,7 +14941,7 @@ msgstr "すべての参加者"
#: pretix/plugins/checkinlists/exporters.py:109
#: pretix/plugins/checkinlists/exporters.py:501
msgid "Checked in"
msgstr "チェックインしました"
msgstr "チェックイン済み"
#: pretix/control/forms/filter.py:2043
#: pretix/plugins/checkinlists/exporters.py:110
@@ -15010,7 +14959,7 @@ msgstr "チェックインしたが退出済み"
#: pretix/control/templates/pretixcontrol/checkin/index.html:178
#: pretix/plugins/checkinlists/exporters.py:112
msgid "Not checked in"
msgstr "チェックイン"
msgstr "チェックイン未了"
#: pretix/control/forms/filter.py:2064
msgctxt "subevent"
@@ -16347,7 +16296,7 @@ msgstr "1つの組織ドメインのみを設定できます。"
#: pretix/control/forms/organizer.py:322
msgid "Provided by a plugin"
msgstr ""
msgstr "プラグインによって提供"
#: pretix/control/forms/organizer.py:438
msgid ""
@@ -17216,10 +17165,8 @@ msgid "The order has been denied (comment: \"{comment}\")."
msgstr "注文は拒否されました(コメント:\"{comment}\")。"
#: pretix/control/logdisplay.py:521
#, fuzzy
#| msgid "The order has been overpaid."
msgid "The customer VAT ID has been verified."
msgstr "注文が過払いされました。"
msgstr "顧客のVAT IDが確認されました。"
#: pretix/control/logdisplay.py:522
#, python-brace-format
@@ -17498,10 +17445,9 @@ msgid "{user} has been invited to the team."
msgstr "{user} がチームに招待されました。"
#: pretix/control/logdisplay.py:644
#, fuzzy, python-brace-format
#| msgid "Invite for {user} has been resent."
#, python-brace-format
msgid "Invite for {user} has been deleted."
msgstr "{user}への招待状が再送されました。"
msgstr "{user}への招待が削除されました。"
#: pretix/control/logdisplay.py:645
#, python-brace-format
@@ -19779,21 +19725,7 @@ msgid "Add property"
msgstr "プロパティを追加"
#: pretix/control/templates/pretixcontrol/email/confirmation_code.txt:1
#, fuzzy, python-format
#| msgid ""
#| "Hello,\n"
#| "\n"
#| "%(reason)s\n"
#| "\n"
#| " %(code)s\n"
#| "\n"
#| "Please do never give this code to another person. Our support team will "
#| "never ask for this code.\n"
#| "\n"
#| "If this code was not requested by you, please contact us immediately.\n"
#| "\n"
#| "Best regards,\n"
#| "Your pretix team\n"
#, python-format
msgid ""
"Hello,\n"
"\n"
@@ -19821,7 +19753,7 @@ msgstr ""
"このコードにお心当たりがない場合は、直ちにご連絡ください。\n"
"\n"
"よろしくお願いいたします。\n"
"pretixチーム\n"
"%(instance)sチーム\n"
#: pretix/control/templates/pretixcontrol/email/email_setup.txt:1
#, python-format
@@ -19859,17 +19791,7 @@ msgstr ""
"%(instance)s チーム\n"
#: pretix/control/templates/pretixcontrol/email/forgot.txt:1
#, fuzzy, python-format
#| msgid ""
#| "Hello,\n"
#| "\n"
#| "you requested a new password. Please go to the following page to reset "
#| "your password:\n"
#| "\n"
#| "%(url)s\n"
#| "\n"
#| "Best regards, \n"
#| "Your pretix team\n"
#, python-format
msgid ""
"Hello,\n"
"\n"
@@ -19889,27 +19811,10 @@ msgstr ""
"%(url)s\n"
"\n"
"よろしくお願いします、 \n"
"あなたのpretixチーム\n"
"あなたの%(instance)sチーム\n"
#: pretix/control/templates/pretixcontrol/email/invitation.txt:1
#, fuzzy, python-format
#| msgid ""
#| "Hello,\n"
#| "\n"
#| "you have been invited to a team on pretix, a platform to perform event\n"
#| "ticket sales.\n"
#| "\n"
#| "Organizer: %(organizer)s\n"
#| "Team: %(team)s\n"
#| "\n"
#| "If you want to join that team, just click on the following link:\n"
#| "%(url)s\n"
#| "\n"
#| "If you do not want to join, you can safely ignore or delete this email.\n"
#| "\n"
#| "Best regards, \n"
#| "\n"
#| "Your pretix team\n"
#, python-format
msgid ""
"Hello,\n"
"\n"
@@ -19931,7 +19836,7 @@ msgid ""
msgstr ""
"こんにちは、\n"
"\n"
"あなたは、pretixというイベントチケット販売プラットフォームの\n"
"あなたは、%(instance)sというイベントチケット販売プラットフォームの\n"
"チームに招待されました。\n"
"\n"
"主催者: %(organizer)s\n"
@@ -19944,7 +19849,7 @@ msgstr ""
"\n"
"よろしくお願いします。\n"
"\n"
"pretixチーム\n"
"%(instance)sチーム\n"
#: pretix/control/templates/pretixcontrol/email/login_notice.txt:1
#, python-format
@@ -19981,24 +19886,7 @@ msgstr ""
"%(instance)sチーム\n"
#: pretix/control/templates/pretixcontrol/email/security_notice.txt:1
#, fuzzy, python-format
#| msgid ""
#| "Hello,\n"
#| "\n"
#| "this is to inform you that the account information of your pretix account "
#| "has been\n"
#| "changed. In particular, the following changes have been performed:\n"
#| "\n"
#| "%(messages)s\n"
#| "\n"
#| "If this change was not performed by you, please contact us immediately.\n"
#| "\n"
#| "You can review and change your account settings here:\n"
#| "\n"
#| "%(url)s\n"
#| "\n"
#| "Best regards, \n"
#| "Your pretix team\n"
#, python-format
msgid ""
"Hello,\n"
"\n"
@@ -20019,20 +19907,21 @@ msgid ""
msgstr ""
"こんにちは\n"
"\n"
"お客様のpretixアカウント情報が変更されましたので、お知らせいたします。\n"
"あなたの%(instance)sのアカウント情報が変更されましたので、お知らせいたします"
"。\n"
"具体的には、以下の変更が行われました:\n"
"\n"
"%(messages)s\n"
"\n"
"もしもこの変更がお客様自身によるものでない場合は、直ちにお問い合わせくださ"
"。\n"
"もしもこの変更がお客様自身によるものでない場合は、直ちにお問い合わせくださ"
"。\n"
"\n"
"アカウント設定の確認や変更はこちらから行えます:\n"
"\n"
"%(url)s\n"
"\n"
"以上、よろしくお願いいたします。 \n"
"pretixチームより\n"
"%(instance)sチームより\n"
#: pretix/control/templates/pretixcontrol/email_setup.html:8
#: pretix/control/templates/pretixcontrol/email_setup_simple.html:8
@@ -20287,10 +20176,8 @@ msgstr ""
"ルと払い戻しを行うことができます。"
#: pretix/control/templates/pretixcontrol/event/dangerzone.html:51
#, fuzzy
#| msgid "Permissions"
msgid "No permission"
msgstr "権限"
msgstr "権限なし"
#: pretix/control/templates/pretixcontrol/event/dangerzone.html:59
#: pretix/control/templates/pretixcontrol/event/dangerzone.html:72
@@ -22768,10 +22655,8 @@ msgid "Edit question"
msgstr "質問を編集"
#: pretix/control/templates/pretixcontrol/items/question.html:55
#, fuzzy
#| msgid "You do not have permission to view this content."
msgid "No permission to view answers."
msgstr "このコンテンツを表示する権限がありません。"
msgstr "回答を閲覧する権限がありません。"
#: pretix/control/templates/pretixcontrol/items/question.html:63
msgid "No matching answers found."
@@ -24382,10 +24267,8 @@ msgstr "次の実行は予定されていない"
#: pretix/control/templates/pretixcontrol/orders/export.html:37
#: pretix/control/templates/pretixcontrol/organizers/export.html:37
#, fuzzy
#| msgid "Exporter not found"
msgid "Exporter not found or no permission"
msgstr "エクスポーターが見つかりません"
msgstr "エクスポーターが見つからない、または権限がありません"
#: pretix/control/templates/pretixcontrol/orders/export.html:42
#: pretix/control/templates/pretixcontrol/organizers/export.html:42
@@ -24428,10 +24311,8 @@ msgstr "新規ユーザー向けのおすすめです"
#: pretix/control/templates/pretixcontrol/orders/export.html:120
#: pretix/control/templates/pretixcontrol/organizers/export.html:120
#, fuzzy
#| msgid "There are no add-ons available for this product."
msgid "There are no exporters available for you."
msgstr "この製品に利用可能なアドオンはありません。"
msgstr "ご利用いただけるエクスポーターがありません。"
#: pretix/control/templates/pretixcontrol/orders/export_delete.html:4
#: pretix/control/templates/pretixcontrol/orders/export_delete.html:6
@@ -26329,7 +26210,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/pdf/index.html:274
#, python-format
msgid "max. %(size)s, smaller is better"
msgstr ""
msgstr "最大%(size)sで、より少ない数値が望ましい"
#: pretix/control/templates/pretixcontrol/pdf/index.html:282
msgid "Download current background"
@@ -29023,16 +28904,12 @@ msgstr ""
"い。"
#: pretix/control/views/orders.py:2798 pretix/control/views/organizer.py:2131
#, fuzzy
#| msgid ""
#| "Your user account does not have sufficient permission to run this report, "
#| "therefore you cannot schedule it."
msgid ""
"Your user account does not have sufficient permission to run this report, "
"therefore you cannot change it."
msgstr ""
"ユーザーアカウントにはこのレポートを実行するのに十分な権限がないため、スケ"
"ジュールを設定できません。"
"あなたのユーザーアカウントにはこのレポートを実行する十分な権限がありませんの"
"で、変更することはできません。"
#: pretix/control/views/orders.py:2807 pretix/control/views/organizer.py:2140
msgid ""
@@ -32995,7 +32872,7 @@ msgstr "Stripe経由でiDEAL"
#: pretix/plugins/stripe/payment.py:1572
msgid "iDEAL | Wero"
msgstr ""
msgstr "iDEAL | Wero"
#: pretix/plugins/stripe/payment.py:1575
msgid ""
@@ -35905,6 +35782,8 @@ msgid ""
"the shop that affect quotas, such as the validity period of carts and "
"vouchers."
msgstr ""
"変更された時間は、カートやバウチャーの有効期間など、クォータに影響を与える"
"ショップの項目については考慮されませんので、ご了承ください。"
#: pretix/presale/templates/pretixpresale/event/timemachine.html:31
msgid "Enable time machine"

View File

@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-17 14:06+0000\n"
"PO-Revision-Date: 2026-02-23 10:00+0000\n"
"PO-Revision-Date: 2026-03-23 21:00+0000\n"
"Last-Translator: Hijiri Umemoto <hijiri@umemoto.org>\n"
"Language-Team: Japanese <https://translate.pretix.eu/projects/pretix/pretix-"
"js/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.2\n"
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:56
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:62
@@ -60,7 +60,7 @@ msgstr "PayPal後払い"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:41
msgid "iDEAL | Wero"
msgstr ""
msgstr "iDEAL | Wero"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:42
msgid "SEPA Direct Debit"

View File

@@ -7,10 +7,10 @@ msgstr ""
"Project-Id-Version: 1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-17 14:05+0000\n"
"PO-Revision-Date: 2026-03-14 22:00+0000\n"
"PO-Revision-Date: 2026-03-18 12:23+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"
@@ -407,10 +407,8 @@ msgstr ""
#: pretix/api/serializers/organizer.py:482
#: pretix/control/views/organizer.py:1039
#, fuzzy
#| msgid "Account information"
msgid "Account invitation"
msgstr "Accountinformatie"
msgstr "Uitnodiging voor account"
#: pretix/api/serializers/organizer.py:503
#: pretix/control/views/organizer.py:1138
@@ -3948,10 +3946,8 @@ msgid "Peppol participant ID"
msgstr "Peppol-deelnemer-ID"
#: pretix/base/invoicing/peppol.py:211
#, fuzzy
#| msgid "The Peppol participant ID is not registered on the Peppol network."
msgid "The Peppol participant ID does not match your VAT ID."
msgstr "De Peppol-deelnemer-ID is niet geregistreerd op het Peppol-netwerk."
msgstr "Het Peppol-deelnemersnummer komt niet overeen met uw btw-nummer."
#: pretix/base/invoicing/peppol.py:214
msgctxt "peppol_invoice"
@@ -6874,10 +6870,8 @@ msgstr ""
"minuten duren voordat de instelling voor alle gebruikers van kracht wordt."
#: pretix/base/models/organizer.py:378
#, fuzzy
#| msgid "Event permissions"
msgid "All event permissions"
msgstr "Evenementrechten"
msgstr "Alle evenementrechten"
#: pretix/base/models/organizer.py:379
#: pretix/control/templates/pretixcontrol/organizers/team_edit.html:34
@@ -6885,10 +6879,8 @@ msgid "Event permissions"
msgstr "Evenementrechten"
#: pretix/base/models/organizer.py:380
#, fuzzy
#| msgid "Organizer permissions"
msgid "All organizer permissions"
msgstr "Organisatorrechten"
msgstr "Alle rechten van de organisator"
#: pretix/base/models/organizer.py:381
#: pretix/control/templates/pretixcontrol/organizers/team_edit.html:25
@@ -8393,36 +8385,32 @@ msgstr "Uw lay-outbestand is geen geldige lay-out. Foutmelding: {}"
#: pretix/base/permissions.py:314 pretix/base/permissions.py:331
msgctxt "permission_level"
msgid "View"
msgstr ""
msgstr "Lezen"
#: pretix/base/permissions.py:164 pretix/base/permissions.py:169
#: pretix/base/permissions.py:174 pretix/base/permissions.py:179
#: pretix/base/permissions.py:286 pretix/base/permissions.py:315
#, fuzzy
#| msgid "Save and check"
msgctxt "permission_level"
msgid "View and change"
msgstr "Opslaan en controleren"
msgstr "Bekijken en wijzigen"
#: pretix/base/permissions.py:168
#, fuzzy
#| msgid "API tokens"
msgid "API only"
msgstr "API-tokens"
msgstr "alleen API"
#: pretix/base/permissions.py:173
msgid ""
"Menu item will only show up if the user has permission for general settings."
msgstr ""
"Dit menu-item wordt alleen weergegeven als de gebruiker rechten heeft voor "
"algemene instellingen."
#: pretix/base/permissions.py:177 pretix/base/permissions.py:231
#: pretix/base/permissions.py:285 pretix/base/permissions.py:313
#: pretix/base/permissions.py:330
#, fuzzy
#| msgid "Revoke access"
msgctxt "permission_level"
msgid "No access"
msgstr "Toegang intrekken"
msgstr "Geen toegang"
#: pretix/base/permissions.py:188
#: pretix/control/templates/pretixcontrol/event/settings.html:7
@@ -8436,6 +8424,8 @@ msgid ""
"This includes access to all settings not listed explicitly below, including "
"plugin settings."
msgstr ""
"Dit omvat toegang tot alle instellingen die hieronder niet expliciet worden "
"vermeld, inclusief instellingen voor plug-ins."
#: pretix/base/permissions.py:197
#: pretix/control/templates/pretixcontrol/event/payment.html:6
@@ -8449,100 +8439,81 @@ msgid "Tax settings"
msgstr "Belastinginstellingen"
#: pretix/base/permissions.py:209
#, fuzzy
#| msgid "Invoice settings"
msgid "Invoicing settings"
msgstr "Factuurinstellingen"
#: pretix/base/permissions.py:215
#, fuzzy
#| msgctxt "subevent"
#| msgid "Event series date added"
msgid "Event series dates"
msgstr "Evenementenreeks: datum toegevoegd"
msgstr "Datums van de evenementenreeks"
#: pretix/base/permissions.py:221
#, fuzzy
#| msgid "Product name and variation"
msgid "Products, quotas and questions"
msgstr "Productnaam en variant"
msgstr "Producten, quota en vragen"
#: pretix/base/permissions.py:224
msgid "Also includes related objects like categories or discounts."
msgstr ""
msgstr "Omvat ook gerelateerde objecten zoals categorieën of kortingen."
#: pretix/base/permissions.py:232
#, fuzzy
#| msgid "All check-ins"
msgctxt "permission_level"
msgid "Only check-in"
msgstr "Alle check-ins"
msgstr "Alleen inchecken"
#: pretix/base/permissions.py:233
#, fuzzy
#| msgid "View full log"
msgctxt "permission_level"
msgid "View all"
msgstr "Toon volledige log"
msgstr "Alles bekijken"
#: pretix/base/permissions.py:234
#, fuzzy
#| msgid "Valid check-in"
msgctxt "permission_level"
msgid "View all and check-in"
msgstr "Geldige check-in"
msgstr "Alles bekijken en inchecken"
#: pretix/base/permissions.py:235
#, fuzzy
#| msgid "View all upcoming events"
msgctxt "permission_level"
msgid "View all and change"
msgstr "Bekijk alle aankomende evenementen"
msgstr "Alles bekijken en wijzigen"
#: pretix/base/permissions.py:236
msgid "Includes the ability to cancel and refund individual orders."
msgstr ""
"Biedt de mogelijkheid om afzonderlijke bestellingen te annuleren en terug te "
"betalen."
#: pretix/base/permissions.py:238
#, fuzzy
#| msgid "An entry has been added to the waiting list."
msgid "Also includes related objects like the waiting list."
msgstr "Er is een inschrijving toegevoegd aan de wachtlijst."
msgstr "Bevat ook aanverwante objecten, zoals de wachtlijst."
#: pretix/base/permissions.py:248
#, fuzzy
#| msgid "Generate cancellation"
msgid "Full event or date cancellation"
msgstr "Genereer annulering"
msgstr "Volledige annulering van het evenement of de datum"
#: pretix/base/permissions.py:252
#, fuzzy
#| msgid "Sale not allowed"
msgctxt "permission_level"
msgid "Not allowed"
msgstr "Verkoop niet toegestaan"
msgstr "Niet toegestaan"
#: pretix/base/permissions.py:253
#, fuzzy
#| msgid "Allowed titles"
msgctxt "permission_level"
msgid "Allowed"
msgstr "Toegestane titels"
msgstr "Toegestaan"
#: pretix/base/permissions.py:268
msgctxt "permission_level"
msgid "Access existing events"
msgstr ""
msgstr "Toegang tot bestaande evenementen"
#: pretix/base/permissions.py:269
msgctxt "permission_level"
msgid "Access existing and create new events"
msgstr ""
msgstr "Toegang tot bestaande evenementen en nieuwe evenementen aanmaken"
#: pretix/base/permissions.py:271
msgid ""
"The level of access to events is determined in detail by the settings below."
msgstr ""
"De toegang tot evenementen wordt in detail bepaald door de onderstaande "
"instellingen."
#: pretix/base/permissions.py:275 pretix/control/navigation.py:143
#: pretix/control/navigation.py:462 pretix/control/navigation.py:512
@@ -8561,12 +8532,15 @@ msgid ""
"This includes access to all organizer-level functionality not listed "
"explicitly below, including plugin settings."
msgstr ""
"Dit omvat toegang tot alle functies op organisatieniveau die hieronder niet "
"expliciet worden vermeld, inclusief de instellingen van plug-ins."
#: pretix/base/permissions.py:287
msgid ""
"Includes the ability to give someone (including oneself) additional "
"permissions."
msgstr ""
"Biedt de mogelijkheid om iemand (inclusief uzelf) extra rechten te geven."
#: pretix/base/permissions.py:298 pretix/control/navigation.py:608
#: pretix/control/templates/pretixcontrol/organizers/customers.html:6
@@ -8584,12 +8558,12 @@ msgid ""
"Includes the ability to give access to events and data oneself does not have "
"access to."
msgstr ""
"Biedt de mogelijkheid om toegang te verlenen tot evenementen en gegevens "
"waar men zelf geen toegang toe heeft."
#: pretix/base/permissions.py:321
#, fuzzy
#| msgid "Seating plan"
msgid "Seating plans"
msgstr "Zaalplan"
msgstr "Zaalplannen"
#: pretix/base/permissions.py:327 pretix/control/navigation.py:712
#: pretix/control/templates/pretixcontrol/organizers/outgoing_mails.html:8
@@ -9224,12 +9198,12 @@ msgid "Czech National Bank"
msgstr "Tsjechische Nationale Bank"
#: pretix/base/services/export.py:94 pretix/base/services/export.py:154
#, fuzzy
#| msgid "You do not have sufficient permission to perform this export."
msgid ""
"Export not found or you do not have sufficient permission to perform this "
"export."
msgstr "U bent niet gemachtigd om deze export uit te voeren."
msgstr ""
"De export is niet gevonden of u hebt onvoldoende rechten om deze export uit "
"te voeren."
#: pretix/base/services/export.py:107 pretix/base/services/export.py:179
#: pretix/base/services/export.py:357
@@ -13684,25 +13658,7 @@ msgid "Contact"
msgstr "Contact"
#: pretix/base/templates/pretixbase/email/shred_completed.txt:2
#, fuzzy, python-format
#| msgid ""
#| "Hello,\n"
#| "\n"
#| "we hereby confirm that the following data shredding job has been "
#| "completed:\n"
#| "\n"
#| "Organizer: %(organizer)s\n"
#| "\n"
#| "Event: %(event)s\n"
#| "\n"
#| "Data selection: %(shredders)s\n"
#| "\n"
#| "Start time: %(start_time)s (new data added after this time might not have "
#| "been deleted)\n"
#| "\n"
#| "Best regards,\n"
#| "\n"
#| "Your pretix team\n"
#, python-format
msgid ""
"Hello,\n"
"\n"
@@ -13737,7 +13693,7 @@ msgstr ""
"\n"
"Met vriendelijke groeten,\n"
"\n"
"Het pretix-team\n"
"Het %(instance)s-team\n"
#: pretix/base/templates/pretixbase/forms/widgets/checkbox_sales_channel_option.html:16
msgid ""
@@ -14298,16 +14254,12 @@ msgid "This is an event series"
msgstr "Dit is een evenementenreeks"
#: pretix/control/forms/event.py:135 pretix/control/forms/event.py:363
#, fuzzy
#| msgid ""
#| "You do not have sufficient permission to enable plugins that need to be "
#| "enabled for the entire organizer account."
msgid ""
"You do not have a sufficient level of access on the event you selected to "
"copy it to the desired organizer."
msgstr ""
"U hebt niet voldoende rechten om plug-ins in te schakelen die voor het hele "
"organisatoraccount moeten worden ingeschakeld."
"U hebt onvoldoende rechten voor het evenement dat u hebt geselecteerd om het "
"naar de gewenste organisator te kopiëren."
#: pretix/control/forms/event.py:143
msgid ""
@@ -14386,6 +14338,8 @@ msgid ""
"You cannot choose a team that would give you more access than you have on "
"the event you are copying."
msgstr ""
"U kunt geen team kiezen dat u meer toegangsrechten zou geven dan u nu hebt "
"voor het evenement dat u kopieert."
#: pretix/control/forms/event.py:344
msgid "Copy configuration from"
@@ -14401,6 +14355,8 @@ msgid ""
"You cannot choose an event on which you have less access than the team you "
"selected in the previous step."
msgstr ""
"U kunt geen evenement kiezen waarvoor u minder toegangsrechten hebt dan het "
"team dat u in de vorige stap geselecteerd hebt."
#: pretix/control/forms/event.py:387 pretix/control/forms/item.py:1304
#: pretix/control/forms/subevents.py:411
@@ -15357,7 +15313,7 @@ msgstr "Zoek deelnemer…"
#: pretix/control/forms/filter.py:2039
#: pretix/plugins/checkinlists/exporters.py:106
msgid "Check-in status"
msgstr "Incheckstatus"
msgstr "Check-in-status"
#: pretix/control/forms/filter.py:2041
#: pretix/plugins/checkinlists/exporters.py:108
@@ -16770,7 +16726,7 @@ msgstr "Er kan maximaal 1 organisatordomein gekozen worden."
#: pretix/control/forms/organizer.py:322
msgid "Provided by a plugin"
msgstr ""
msgstr "Beschikbaar gesteld via een plug-in"
#: pretix/control/forms/organizer.py:438
msgid ""
@@ -17646,10 +17602,8 @@ msgid "The order has been denied (comment: \"{comment}\")."
msgstr "De bestelling is geweigerd (commentaar: \"{comment}\")."
#: pretix/control/logdisplay.py:521
#, fuzzy
#| msgid "The order has been overpaid."
msgid "The customer VAT ID has been verified."
msgstr "Er is te veel betaald voor de bestelling."
msgstr "Het btw-nummer van de klant is geverifieerd."
#: pretix/control/logdisplay.py:522
#, python-brace-format
@@ -17951,10 +17905,9 @@ msgid "{user} has been invited to the team."
msgstr "{user} is uitgenodigd voor het team."
#: pretix/control/logdisplay.py:644
#, fuzzy, python-brace-format
#| msgid "Invite for {user} has been resent."
#, python-brace-format
msgid "Invite for {user} has been deleted."
msgstr "De uitnodiging voor {user} is opnieuw verstuurd."
msgstr "De uitnodiging voor {user} is verwijderd."
#: pretix/control/logdisplay.py:645
#, python-brace-format
@@ -20259,21 +20212,7 @@ msgid "Add property"
msgstr "Eigenschap toevoegen"
#: pretix/control/templates/pretixcontrol/email/confirmation_code.txt:1
#, fuzzy, python-format
#| msgid ""
#| "Hello,\n"
#| "\n"
#| "%(reason)s\n"
#| "\n"
#| " %(code)s\n"
#| "\n"
#| "Please do never give this code to another person. Our support team will "
#| "never ask for this code.\n"
#| "\n"
#| "If this code was not requested by you, please contact us immediately.\n"
#| "\n"
#| "Best regards,\n"
#| "Your pretix team\n"
#, python-format
msgid ""
"Hello,\n"
"\n"
@@ -20302,7 +20241,7 @@ msgstr ""
"op.\n"
"\n"
"Groeten,\n"
"Uw pretix-team\n"
"Uw %(instance)s-team\n"
#: pretix/control/templates/pretixcontrol/email/email_setup.txt:1
#, python-format
@@ -20338,17 +20277,7 @@ msgstr ""
"Uw %(instance)s-team\n"
#: pretix/control/templates/pretixcontrol/email/forgot.txt:1
#, fuzzy, python-format
#| msgid ""
#| "Hello,\n"
#| "\n"
#| "you requested a new password. Please go to the following page to reset "
#| "your password:\n"
#| "\n"
#| "%(url)s\n"
#| "\n"
#| "Best regards, \n"
#| "Your pretix team\n"
#, python-format
msgid ""
"Hello,\n"
"\n"
@@ -20368,27 +20297,10 @@ msgstr ""
"%(url)s\n"
"\n"
"Met vriendelijke groet,\n"
"Het pretix-team\n"
"Het %(instance)s-team\n"
#: pretix/control/templates/pretixcontrol/email/invitation.txt:1
#, fuzzy, python-format
#| msgid ""
#| "Hello,\n"
#| "\n"
#| "you have been invited to a team on pretix, a platform to perform event\n"
#| "ticket sales.\n"
#| "\n"
#| "Organizer: %(organizer)s\n"
#| "Team: %(team)s\n"
#| "\n"
#| "If you want to join that team, just click on the following link:\n"
#| "%(url)s\n"
#| "\n"
#| "If you do not want to join, you can safely ignore or delete this email.\n"
#| "\n"
#| "Best regards, \n"
#| "\n"
#| "Your pretix team\n"
#, python-format
msgid ""
"Hello,\n"
"\n"
@@ -20410,7 +20322,7 @@ msgid ""
msgstr ""
"Hallo,\n"
"\n"
"U bent uitgenodigd voor een team op pretix, een platform om tickets\n"
"U bent uitgenodigd voor een team op %(instance)s, een platform om tickets\n"
"te verkopen.\n"
"\n"
"Organisator: %(organizer)s\n"
@@ -20423,7 +20335,7 @@ msgstr ""
"\n"
"Met vriendelijke groet,\n"
"\n"
"Het pretix-team\n"
"Het %(instance)s-team\n"
#: pretix/control/templates/pretixcontrol/email/login_notice.txt:1
#, python-format
@@ -20461,24 +20373,7 @@ msgstr ""
"Het %(instance)s-team\n"
#: pretix/control/templates/pretixcontrol/email/security_notice.txt:1
#, fuzzy, python-format
#| msgid ""
#| "Hello,\n"
#| "\n"
#| "this is to inform you that the account information of your pretix account "
#| "has been\n"
#| "changed. In particular, the following changes have been performed:\n"
#| "\n"
#| "%(messages)s\n"
#| "\n"
#| "If this change was not performed by you, please contact us immediately.\n"
#| "\n"
#| "You can review and change your account settings here:\n"
#| "\n"
#| "%(url)s\n"
#| "\n"
#| "Best regards, \n"
#| "Your pretix team\n"
#, python-format
msgid ""
"Hello,\n"
"\n"
@@ -20499,7 +20394,7 @@ msgid ""
msgstr ""
"Hallo,\n"
"\n"
"U ontvangt deze e-mail omdat er wijzigingen zijn gemaakt in uw pretix-"
"U ontvangt deze e-mail omdat er wijzigingen zijn gemaakt in uw %(instance)s-"
"account.\n"
"De volgende wijzigingen zijn gemaakt:\n"
"\n"
@@ -20513,7 +20408,7 @@ msgstr ""
"%(url)s\n"
"\n"
"Met vriendelijke groet,\n"
"Het pretix-team\n"
"Het %(instance)s-team\n"
#: pretix/control/templates/pretixcontrol/email_setup.html:8
#: pretix/control/templates/pretixcontrol/email_setup_simple.html:8
@@ -20780,10 +20675,8 @@ msgstr ""
"kunt u dit via deze optie doen."
#: pretix/control/templates/pretixcontrol/event/dangerzone.html:51
#, fuzzy
#| msgid "Permissions"
msgid "No permission"
msgstr "Machtigingen"
msgstr "Geen toestemming"
#: pretix/control/templates/pretixcontrol/event/dangerzone.html:59
#: pretix/control/templates/pretixcontrol/event/dangerzone.html:72
@@ -23331,10 +23224,8 @@ msgid "Edit question"
msgstr "Vraag bewerken"
#: pretix/control/templates/pretixcontrol/items/question.html:55
#, fuzzy
#| msgid "You do not have permission to view this content."
msgid "No permission to view answers."
msgstr "U hebt geen toestemming om deze inhoud te bekijken."
msgstr "U bent niet gemachtigd om de antwoorden te bekijken."
#: pretix/control/templates/pretixcontrol/items/question.html:63
msgid "No matching answers found."
@@ -24331,8 +24222,9 @@ msgid ""
"this product was part of the discount calculation for a different product in "
"this order."
msgstr ""
"De prijs van dit product is verminderd door een automatische korting, of dit "
"product is deel van een korting voor een ander product op deze bestelling."
"De prijs van dit product is verlaagd vanwege een automatische korting, of "
"dit product is meegenomen in de kortingsberekening voor een ander product in "
"deze bestelling."
#: pretix/control/templates/pretixcontrol/order/index.html:496
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:103
@@ -24986,10 +24878,8 @@ msgstr "Geen volgende uitvoering gepland"
#: pretix/control/templates/pretixcontrol/orders/export.html:37
#: pretix/control/templates/pretixcontrol/organizers/export.html:37
#, fuzzy
#| msgid "Exporter not found"
msgid "Exporter not found or no permission"
msgstr "Exporteerder niet gevonden"
msgstr "Exporteur niet gevonden of geen toestemming"
#: pretix/control/templates/pretixcontrol/orders/export.html:42
#: pretix/control/templates/pretixcontrol/organizers/export.html:42
@@ -25032,10 +24922,8 @@ msgstr "Aangeraden voor nieuwe gebruikers"
#: pretix/control/templates/pretixcontrol/orders/export.html:120
#: pretix/control/templates/pretixcontrol/organizers/export.html:120
#, fuzzy
#| msgid "There are no add-ons available for this product."
msgid "There are no exporters available for you."
msgstr "Er zijn geen add-ons beschikbaar voor dit product."
msgstr "Er zijn geen exporters voor u beschikbaar."
#: pretix/control/templates/pretixcontrol/orders/export_delete.html:4
#: pretix/control/templates/pretixcontrol/orders/export_delete.html:6
@@ -26973,7 +26861,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/pdf/index.html:274
#, python-format
msgid "max. %(size)s, smaller is better"
msgstr ""
msgstr "max. %(size)s; hoe kleiner, hoe beter"
#: pretix/control/templates/pretixcontrol/pdf/index.html:282
msgid "Download current background"
@@ -29751,16 +29639,12 @@ msgstr ""
"Er was een probleem met het verwerken van uw invoer. Zie onder voor details."
#: pretix/control/views/orders.py:2798 pretix/control/views/organizer.py:2131
#, fuzzy
#| msgid ""
#| "Your user account does not have sufficient permission to run this report, "
#| "therefore you cannot schedule it."
msgid ""
"Your user account does not have sufficient permission to run this report, "
"therefore you cannot change it."
msgstr ""
"Uw gebruikersaccount heeft onvoldoende rechten om dit rapport uit te voeren. "
"Daarom kunt u het niet plannen."
"Daarom kunt u het niet wijzigen."
#: pretix/control/views/orders.py:2807 pretix/control/views/organizer.py:2140
msgid ""
@@ -33816,7 +33700,7 @@ msgstr "iDEAL via Stripe"
#: pretix/plugins/stripe/payment.py:1572
msgid "iDEAL | Wero"
msgstr ""
msgstr "iDEAL | Wero"
#: pretix/plugins/stripe/payment.py:1575
msgid ""
@@ -36802,6 +36686,9 @@ msgid ""
"the shop that affect quotas, such as the validity period of carts and "
"vouchers."
msgstr ""
"Let op: de gewijzigde tijd wordt niet meegenomen bij aspecten van de winkel "
"die van invloed zijn op quota, zoals de geldigheidsduur van winkelwagentjes "
"en kortingsbonnen."
#: pretix/presale/templates/pretixpresale/event/timemachine.html:31
msgid "Enable time machine"

View File

@@ -7,7 +7,7 @@ msgstr ""
"Project-Id-Version: 1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-17 14:06+0000\n"
"PO-Revision-Date: 2026-02-19 22:00+0000\n"
"PO-Revision-Date: 2026-03-18 12:23+0000\n"
"Last-Translator: Ruud Hendrickx <ruud@leckxicon.eu>\n"
"Language-Team: Dutch <https://translate.pretix.eu/projects/pretix/pretix-js/"
"nl/>\n"
@@ -16,7 +16,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.16\n"
"X-Generator: Weblate 5.16.2\n"
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:56
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:62
@@ -59,7 +59,7 @@ msgstr "PayPal - Later betalen"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:41
msgid "iDEAL | Wero"
msgstr ""
msgstr "iDEAL | Wero"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:42
msgid "SEPA Direct Debit"

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-03-17 14:06+0000\n"
"PO-Revision-Date: 2026-02-21 03:00+0000\n"
"PO-Revision-Date: 2026-03-18 14:50+0000\n"
"Last-Translator: Ruud Hendrickx <ruud@leckxicon.eu>\n"
"Language-Team: Dutch (Belgium) <https://translate.pretix.eu/projects/pretix/"
"pretix-js/nl_BE/>\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.2\n"
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:56
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:62
@@ -60,7 +60,7 @@ msgstr "PayPal - Later betalen"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:41
msgid "iDEAL | Wero"
msgstr ""
msgstr "iDEAL | Wero"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:42
msgid "SEPA Direct Debit"

View File

@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-17 14:05+0000\n"
"PO-Revision-Date: 2026-03-14 22:00+0000\n"
"PO-Revision-Date: 2026-03-18 14:50+0000\n"
"Last-Translator: Ruud Hendrickx <ruud@leckxicon.eu>\n"
"Language-Team: Dutch (informal) <https://translate.pretix.eu/projects/pretix/"
"pretix/nl_Informal/>\n"
@@ -410,10 +410,8 @@ msgstr ""
#: pretix/api/serializers/organizer.py:482
#: pretix/control/views/organizer.py:1039
#, fuzzy
#| msgid "Account information"
msgid "Account invitation"
msgstr "Accountinformatie"
msgstr "Uitnodiging voor account"
#: pretix/api/serializers/organizer.py:503
#: pretix/control/views/organizer.py:1138
@@ -3956,10 +3954,8 @@ msgid "Peppol participant ID"
msgstr "Peppol-deelnemers-ID"
#: pretix/base/invoicing/peppol.py:211
#, fuzzy
#| msgid "The Peppol participant ID is not registered on the Peppol network."
msgid "The Peppol participant ID does not match your VAT ID."
msgstr "De Peppol-deelnemers-ID is niet geregistreerd op het Peppol-netwerk."
msgstr "Het Peppol-deelnemersnummer komt niet overeen met je btw-nummer."
#: pretix/base/invoicing/peppol.py:214
msgctxt "peppol_invoice"
@@ -6886,10 +6882,8 @@ msgstr ""
"voordat de instelling voor alle gebruikers van kracht wordt."
#: pretix/base/models/organizer.py:378
#, fuzzy
#| msgid "Event permissions"
msgid "All event permissions"
msgstr "Evenementspermissies"
msgstr "Alle evenementrechten"
#: pretix/base/models/organizer.py:379
#: pretix/control/templates/pretixcontrol/organizers/team_edit.html:34
@@ -6897,10 +6891,8 @@ msgid "Event permissions"
msgstr "Evenementspermissies"
#: pretix/base/models/organizer.py:380
#, fuzzy
#| msgid "Organizer permissions"
msgid "All organizer permissions"
msgstr "Organisatorpermissies"
msgstr "Alle organisatorrechten"
#: pretix/base/models/organizer.py:381
#: pretix/control/templates/pretixcontrol/organizers/team_edit.html:25
@@ -8401,36 +8393,32 @@ msgstr "Uw lay-outbestand is geen geldige lay-out. Foutmelding: {}"
#: pretix/base/permissions.py:314 pretix/base/permissions.py:331
msgctxt "permission_level"
msgid "View"
msgstr ""
msgstr "Lezen"
#: pretix/base/permissions.py:164 pretix/base/permissions.py:169
#: pretix/base/permissions.py:174 pretix/base/permissions.py:179
#: pretix/base/permissions.py:286 pretix/base/permissions.py:315
#, fuzzy
#| msgid "Save and check"
msgctxt "permission_level"
msgid "View and change"
msgstr "Opslaan en controleren"
msgstr "Bekijken en wijzigen"
#: pretix/base/permissions.py:168
#, fuzzy
#| msgid "API tokens"
msgid "API only"
msgstr "API-tokens"
msgstr "alleen API"
#: pretix/base/permissions.py:173
msgid ""
"Menu item will only show up if the user has permission for general settings."
msgstr ""
"Dit menu-item wordt alleen weergegeven als de gebruiker rechten heeft voor "
"algemene instellingen."
#: pretix/base/permissions.py:177 pretix/base/permissions.py:231
#: pretix/base/permissions.py:285 pretix/base/permissions.py:313
#: pretix/base/permissions.py:330
#, fuzzy
#| msgid "Revoke access"
msgctxt "permission_level"
msgid "No access"
msgstr "Toegang intrekken"
msgstr "Geen toegang"
#: pretix/base/permissions.py:188
#: pretix/control/templates/pretixcontrol/event/settings.html:7
@@ -8444,6 +8432,8 @@ msgid ""
"This includes access to all settings not listed explicitly below, including "
"plugin settings."
msgstr ""
"Dit omvat toegang tot alle instellingen die hieronder niet expliciet worden "
"vermeld, inclusief instellingen voor plug-ins."
#: pretix/base/permissions.py:197
#: pretix/control/templates/pretixcontrol/event/payment.html:6
@@ -8457,100 +8447,81 @@ msgid "Tax settings"
msgstr "Belastinginstellingen"
#: pretix/base/permissions.py:209
#, fuzzy
#| msgid "Invoice settings"
msgid "Invoicing settings"
msgstr "Factuurinstellingen"
msgstr "Factureringsinstellingen"
#: pretix/base/permissions.py:215
#, fuzzy
#| msgctxt "subevent"
#| msgid "Event series date added"
msgid "Event series dates"
msgstr "Evenementenreeks: datum toegevoegd"
msgstr "Datums van de evenementenreeks"
#: pretix/base/permissions.py:221
#, fuzzy
#| msgid "Product name and variation"
msgid "Products, quotas and questions"
msgstr "Productnaam en variant"
msgstr "Producten, quota en vragen"
#: pretix/base/permissions.py:224
msgid "Also includes related objects like categories or discounts."
msgstr ""
msgstr "Omvat ook gerelateerde objecten zoals categorieën of kortingen."
#: pretix/base/permissions.py:232
#, fuzzy
#| msgid "All check-ins"
msgctxt "permission_level"
msgid "Only check-in"
msgstr "Alle check-ins"
msgstr "Alleen inchecken"
#: pretix/base/permissions.py:233
#, fuzzy
#| msgid "View full log"
msgctxt "permission_level"
msgid "View all"
msgstr "Toon volledige log"
msgstr "Alles bekijken"
#: pretix/base/permissions.py:234
#, fuzzy
#| msgid "Valid check-in"
msgctxt "permission_level"
msgid "View all and check-in"
msgstr "Geldige check-in"
msgstr "Alles bekijken en inchecken"
#: pretix/base/permissions.py:235
#, fuzzy
#| msgid "View all upcoming events"
msgctxt "permission_level"
msgid "View all and change"
msgstr "Bekijk alle aankomende evenementen"
msgstr "Alles bekijken en wijzigen"
#: pretix/base/permissions.py:236
msgid "Includes the ability to cancel and refund individual orders."
msgstr ""
"Biedt de mogelijkheid om afzonderlijke bestellingen te annuleren en terug te "
"betalen."
#: pretix/base/permissions.py:238
#, fuzzy
#| msgid "An entry has been added to the waiting list."
msgid "Also includes related objects like the waiting list."
msgstr "Een inschrijving is toegevoegd aan de wachtlijst."
msgstr "Bevat ook aanverwante objecten, zoals de wachtlijst."
#: pretix/base/permissions.py:248
#, fuzzy
#| msgid "Generate cancellation"
msgid "Full event or date cancellation"
msgstr "Genereer annulering"
msgstr "Volledige annulering van het evenement of de datum"
#: pretix/base/permissions.py:252
#, fuzzy
#| msgid "Sale not allowed"
msgctxt "permission_level"
msgid "Not allowed"
msgstr "Verkoop niet toegestaan"
msgstr "Niet toegestaan"
#: pretix/base/permissions.py:253
#, fuzzy
#| msgid "Allowed titles"
msgctxt "permission_level"
msgid "Allowed"
msgstr "Te kiezen titels"
msgstr "Toegestaan"
#: pretix/base/permissions.py:268
msgctxt "permission_level"
msgid "Access existing events"
msgstr ""
msgstr "Toegang tot bestaande evenementen"
#: pretix/base/permissions.py:269
msgctxt "permission_level"
msgid "Access existing and create new events"
msgstr ""
msgstr "Toegang tot bestaande evenementen en nieuwe evenementen aanmaken"
#: pretix/base/permissions.py:271
msgid ""
"The level of access to events is determined in detail by the settings below."
msgstr ""
"De toegang tot evenementen wordt in detail bepaald door de onderstaande "
"instellingen."
#: pretix/base/permissions.py:275 pretix/control/navigation.py:143
#: pretix/control/navigation.py:462 pretix/control/navigation.py:512
@@ -8569,12 +8540,15 @@ msgid ""
"This includes access to all organizer-level functionality not listed "
"explicitly below, including plugin settings."
msgstr ""
"Dit omvat toegang tot alle functies op organisatieniveau die hieronder niet "
"expliciet worden vermeld, inclusief de instellingen van plug-ins."
#: pretix/base/permissions.py:287
msgid ""
"Includes the ability to give someone (including oneself) additional "
"permissions."
msgstr ""
"Biedt de mogelijkheid om iemand (inclusief jezelf) extra rechten te geven."
#: pretix/base/permissions.py:298 pretix/control/navigation.py:608
#: pretix/control/templates/pretixcontrol/organizers/customers.html:6
@@ -8592,12 +8566,12 @@ msgid ""
"Includes the ability to give access to events and data oneself does not have "
"access to."
msgstr ""
"Biedt de mogelijkheid om toegang te verlenen tot evenementen en gegevens "
"waar je zelf geen toegang toe hebt."
#: pretix/base/permissions.py:321
#, fuzzy
#| msgid "Seating plan"
msgid "Seating plans"
msgstr "Zitplan"
msgstr "Zaalplannen"
#: pretix/base/permissions.py:327 pretix/control/navigation.py:712
#: pretix/control/templates/pretixcontrol/organizers/outgoing_mails.html:8
@@ -9233,12 +9207,12 @@ msgid "Czech National Bank"
msgstr "Tsjechische Nationale Bank"
#: pretix/base/services/export.py:94 pretix/base/services/export.py:154
#, fuzzy
#| msgid "You do not have sufficient permission to perform this export."
msgid ""
"Export not found or you do not have sufficient permission to perform this "
"export."
msgstr "Je hebt te weinig rechten om deze export uit te voeren."
msgstr ""
"De export is niet gevonden of je hebt onvoldoende rechten om deze export uit "
"te voeren."
#: pretix/base/services/export.py:107 pretix/base/services/export.py:179
#: pretix/base/services/export.py:357
@@ -13528,7 +13502,7 @@ msgstr ""
#: pretix/base/templates/403.html:4 pretix/base/templates/403.html:8
msgid "Permission denied"
msgstr "Geen toestemming"
msgstr "Toestemming geweigerd"
#: pretix/base/templates/403.html:9
msgid "You do not have access to this page."
@@ -13717,25 +13691,7 @@ msgid "Contact"
msgstr "Contact"
#: pretix/base/templates/pretixbase/email/shred_completed.txt:2
#, fuzzy, python-format
#| msgid ""
#| "Hello,\n"
#| "\n"
#| "we hereby confirm that the following data shredding job has been "
#| "completed:\n"
#| "\n"
#| "Organizer: %(organizer)s\n"
#| "\n"
#| "Event: %(event)s\n"
#| "\n"
#| "Data selection: %(shredders)s\n"
#| "\n"
#| "Start time: %(start_time)s (new data added after this time might not have "
#| "been deleted)\n"
#| "\n"
#| "Best regards,\n"
#| "\n"
#| "Your pretix team\n"
#, python-format
msgid ""
"Hello,\n"
"\n"
@@ -13769,7 +13725,7 @@ msgstr ""
"\n"
"Met vriendelijke groet,\n"
"\n"
"Het pretix-team\n"
"Het %(instance)s-team\n"
#: pretix/base/templates/pretixbase/forms/widgets/checkbox_sales_channel_option.html:16
msgid ""
@@ -14332,16 +14288,12 @@ msgid "This is an event series"
msgstr "Dit is een evenementenreeks"
#: pretix/control/forms/event.py:135 pretix/control/forms/event.py:363
#, fuzzy
#| msgid ""
#| "You do not have sufficient permission to enable plugins that need to be "
#| "enabled for the entire organizer account."
msgid ""
"You do not have a sufficient level of access on the event you selected to "
"copy it to the desired organizer."
msgstr ""
"Je hebt niet voldoende rechten om plug-ins in te schakelen die voor het hele "
"account van de organisator moeten worden ingeschakeld."
"Je hebt onvoldoende rechten voor het evenement dat je hebt geselecteerd om "
"het naar de gewenste organisator te kopiëren."
#: pretix/control/forms/event.py:143
msgid ""
@@ -14420,6 +14372,8 @@ msgid ""
"You cannot choose a team that would give you more access than you have on "
"the event you are copying."
msgstr ""
"Je kunt geen team selecteren dat je meer toegangsrechten zou geven dan het "
"evenement dat je kopieert."
#: pretix/control/forms/event.py:344
msgid "Copy configuration from"
@@ -14435,6 +14389,8 @@ msgid ""
"You cannot choose an event on which you have less access than the team you "
"selected in the previous step."
msgstr ""
"Je kunt geen evenement selecteren waarvoor je minder toegangsrechten hebt "
"dan het team dat je in de vorige stap geselecteerd hebt."
#: pretix/control/forms/event.py:387 pretix/control/forms/item.py:1304
#: pretix/control/forms/subevents.py:411
@@ -15390,7 +15346,7 @@ msgstr "Zoek gast…"
#: pretix/control/forms/filter.py:2039
#: pretix/plugins/checkinlists/exporters.py:106
msgid "Check-in status"
msgstr "Incheckstatus"
msgstr "Check-in-status"
#: pretix/control/forms/filter.py:2041
#: pretix/plugins/checkinlists/exporters.py:108
@@ -16799,7 +16755,7 @@ msgstr "Je kunt slechts één organisatiedomein instellen."
#: pretix/control/forms/organizer.py:322
msgid "Provided by a plugin"
msgstr ""
msgstr "Beschikbaar gesteld via een plug-in"
#: pretix/control/forms/organizer.py:438
msgid ""
@@ -17678,10 +17634,8 @@ msgid "The order has been denied (comment: \"{comment}\")."
msgstr "De bestelling is geweigerd (opmerking: \"{comment}\")."
#: pretix/control/logdisplay.py:521
#, fuzzy
#| msgid "The order has been overpaid."
msgid "The customer VAT ID has been verified."
msgstr "De bestelling is overbetaald."
msgstr "Het btw-nummer van de klant is geverifieerd."
#: pretix/control/logdisplay.py:522
#, python-brace-format
@@ -17983,10 +17937,9 @@ msgid "{user} has been invited to the team."
msgstr "{user} is uitgenodigd voor het team."
#: pretix/control/logdisplay.py:644
#, fuzzy, python-brace-format
#| msgid "Invite for {user} has been resent."
#, python-brace-format
msgid "Invite for {user} has been deleted."
msgstr "De uitnodiging voor {user} is opnieuw verstuurd."
msgstr "De uitnodiging voor {user} is verwijderd."
#: pretix/control/logdisplay.py:645
#, python-brace-format
@@ -20295,21 +20248,7 @@ msgid "Add property"
msgstr "Eigenschap toevoegen"
#: pretix/control/templates/pretixcontrol/email/confirmation_code.txt:1
#, fuzzy, python-format
#| msgid ""
#| "Hello,\n"
#| "\n"
#| "%(reason)s\n"
#| "\n"
#| " %(code)s\n"
#| "\n"
#| "Please do never give this code to another person. Our support team will "
#| "never ask for this code.\n"
#| "\n"
#| "If this code was not requested by you, please contact us immediately.\n"
#| "\n"
#| "Best regards,\n"
#| "Your pretix team\n"
#, python-format
msgid ""
"Hello,\n"
"\n"
@@ -20338,7 +20277,7 @@ msgstr ""
"contact op.\n"
"\n"
"Met vriendelijke groet,\n"
"Het pretix-team\n"
"Het %(instance)s-team\n"
#: pretix/control/templates/pretixcontrol/email/email_setup.txt:1
#, python-format
@@ -20375,17 +20314,7 @@ msgstr ""
"Het %(instance)s-team\n"
#: pretix/control/templates/pretixcontrol/email/forgot.txt:1
#, fuzzy, python-format
#| msgid ""
#| "Hello,\n"
#| "\n"
#| "you requested a new password. Please go to the following page to reset "
#| "your password:\n"
#| "\n"
#| "%(url)s\n"
#| "\n"
#| "Best regards, \n"
#| "Your pretix team\n"
#, python-format
msgid ""
"Hello,\n"
"\n"
@@ -20400,33 +20329,15 @@ msgstr ""
"Hallo,\n"
"\n"
"Je hebt een nieuw wachtwoord aangevraagd. Klik op de volgende link om je "
"wachtwoord opnieuw\n"
"in te stellen:\n"
"wachtwoord opnieuw in te stellen:\n"
"\n"
"%(url)s\n"
"\n"
"Met vriendelijke groet,\n"
"Het pretix-team\n"
"Het %(instance)s-team\n"
#: pretix/control/templates/pretixcontrol/email/invitation.txt:1
#, fuzzy, python-format
#| msgid ""
#| "Hello,\n"
#| "\n"
#| "you have been invited to a team on pretix, a platform to perform event\n"
#| "ticket sales.\n"
#| "\n"
#| "Organizer: %(organizer)s\n"
#| "Team: %(team)s\n"
#| "\n"
#| "If you want to join that team, just click on the following link:\n"
#| "%(url)s\n"
#| "\n"
#| "If you do not want to join, you can safely ignore or delete this email.\n"
#| "\n"
#| "Best regards, \n"
#| "\n"
#| "Your pretix team\n"
#, python-format
msgid ""
"Hello,\n"
"\n"
@@ -20448,7 +20359,7 @@ msgid ""
msgstr ""
"Hallo,\n"
"\n"
"Je bent uitgenodigd voor een team op pretix, een platform om kaartjes\n"
"Je bent uitgenodigd voor een team op %(instance)s, een platform om kaartjes\n"
"te verkopen.\n"
"\n"
"Organisator: %(organizer)s\n"
@@ -20461,7 +20372,7 @@ msgstr ""
"\n"
"Met vriendelijke groet,\n"
"\n"
"Het pretix-team\n"
"Het %(instance)s-team\n"
#: pretix/control/templates/pretixcontrol/email/login_notice.txt:1
#, python-format
@@ -20498,24 +20409,7 @@ msgstr ""
"Het team van %(instance)s\n"
#: pretix/control/templates/pretixcontrol/email/security_notice.txt:1
#, fuzzy, python-format
#| msgid ""
#| "Hello,\n"
#| "\n"
#| "this is to inform you that the account information of your pretix account "
#| "has been\n"
#| "changed. In particular, the following changes have been performed:\n"
#| "\n"
#| "%(messages)s\n"
#| "\n"
#| "If this change was not performed by you, please contact us immediately.\n"
#| "\n"
#| "You can review and change your account settings here:\n"
#| "\n"
#| "%(url)s\n"
#| "\n"
#| "Best regards, \n"
#| "Your pretix team\n"
#, python-format
msgid ""
"Hello,\n"
"\n"
@@ -20536,7 +20430,7 @@ msgid ""
msgstr ""
"Hallo,\n"
"\n"
"Je ontvangt deze e-mail omdat er wijzigingen zijn gemaakt in je pretix-"
"Je ontvangt deze e-mail omdat er wijzigingen zijn gemaakt in je %(instance)s-"
"account.\n"
"De volgende wijzigingen zijn gemaakt:\n"
"\n"
@@ -20550,7 +20444,7 @@ msgstr ""
"%(url)s\n"
"\n"
"Met vriendelijke groet,\n"
"Het pretix-team\n"
"Het %(instance)s-team\n"
#: pretix/control/templates/pretixcontrol/email_setup.html:8
#: pretix/control/templates/pretixcontrol/email_setup_simple.html:8
@@ -20821,10 +20715,8 @@ msgstr ""
"dat met deze optie doen."
#: pretix/control/templates/pretixcontrol/event/dangerzone.html:51
#, fuzzy
#| msgid "Permissions"
msgid "No permission"
msgstr "Permissies"
msgstr "Geen toestemming"
#: pretix/control/templates/pretixcontrol/event/dangerzone.html:59
#: pretix/control/templates/pretixcontrol/event/dangerzone.html:72
@@ -23375,10 +23267,8 @@ msgid "Edit question"
msgstr "Vraag bewerken"
#: pretix/control/templates/pretixcontrol/items/question.html:55
#, fuzzy
#| msgid "You do not have permission to view this content."
msgid "No permission to view answers."
msgstr "Je hebt geen toestemming om deze inhoud te bekijken."
msgstr "Je bent niet gemachtigd om de antwoorden te bekijken."
#: pretix/control/templates/pretixcontrol/items/question.html:63
msgid "No matching answers found."
@@ -24377,8 +24267,8 @@ msgid ""
"this order."
msgstr ""
"De prijs van dit product is verlaagd vanwege een automatische korting, of "
"dit product maakte deel uit van de kortingsberekening voor een ander product "
"in deze bestelling."
"dit product is meegenomen in de kortingsberekening voor een ander product in "
"deze bestelling."
#: pretix/control/templates/pretixcontrol/order/index.html:496
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:103
@@ -25034,10 +24924,8 @@ msgstr "Geen volgende run gepland"
#: pretix/control/templates/pretixcontrol/orders/export.html:37
#: pretix/control/templates/pretixcontrol/organizers/export.html:37
#, fuzzy
#| msgid "Exporter not found"
msgid "Exporter not found or no permission"
msgstr "Exporteerder niet gevonden"
msgstr "Exporteur niet gevonden of geen toestemming"
#: pretix/control/templates/pretixcontrol/orders/export.html:42
#: pretix/control/templates/pretixcontrol/organizers/export.html:42
@@ -25080,10 +24968,8 @@ msgstr "Aanbevolen voor nieuwe gebruikers"
#: pretix/control/templates/pretixcontrol/orders/export.html:120
#: pretix/control/templates/pretixcontrol/organizers/export.html:120
#, fuzzy
#| msgid "There are no add-ons available for this product."
msgid "There are no exporters available for you."
msgstr "Er zijn geen add-ons beschikbaar voor dit product."
msgstr "Er zijn geen exporters voor jou beschikbaar."
#: pretix/control/templates/pretixcontrol/orders/export_delete.html:4
#: pretix/control/templates/pretixcontrol/orders/export_delete.html:6
@@ -27029,7 +26915,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/pdf/index.html:274
#, python-format
msgid "max. %(size)s, smaller is better"
msgstr ""
msgstr "max. %(size)s; hoe kleiner, hoe beter"
#: pretix/control/templates/pretixcontrol/pdf/index.html:282
msgid "Download current background"
@@ -29812,16 +29698,12 @@ msgstr ""
"Er was een probleem met het verwerken van je invoer. Zie onder voor details."
#: pretix/control/views/orders.py:2798 pretix/control/views/organizer.py:2131
#, fuzzy
#| msgid ""
#| "Your user account does not have sufficient permission to run this report, "
#| "therefore you cannot schedule it."
msgid ""
"Your user account does not have sufficient permission to run this report, "
"therefore you cannot change it."
msgstr ""
"Je gebruikersaccount heeft onvoldoende rechten om dit rapport uit te voeren, "
"daarom kun je het niet plannen."
"Je gebruikersaccount heeft onvoldoende rechten om dit rapport uit te voeren. "
"Daarom kun je het niet wijzigen."
#: pretix/control/views/orders.py:2807 pretix/control/views/organizer.py:2140
msgid ""
@@ -33872,7 +33754,7 @@ msgstr "iDEAL via Stripe"
#: pretix/plugins/stripe/payment.py:1572
msgid "iDEAL | Wero"
msgstr ""
msgstr "iDEAL | Wero"
#: pretix/plugins/stripe/payment.py:1575
msgid ""
@@ -36858,6 +36740,9 @@ msgid ""
"the shop that affect quotas, such as the validity period of carts and "
"vouchers."
msgstr ""
"Let op: de gewijzigde tijd wordt niet meegenomen bij aspecten van de winkel "
"die van invloed zijn op quota, zoals de geldigheidsduur van winkelwagentjes "
"en kortingsbonnen."
#: pretix/presale/templates/pretixpresale/event/timemachine.html:31
msgid "Enable time machine"

View File

@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-17 14:06+0000\n"
"PO-Revision-Date: 2026-01-29 19:43+0000\n"
"PO-Revision-Date: 2026-03-18 14:50+0000\n"
"Last-Translator: Ruud Hendrickx <ruud@leckxicon.eu>\n"
"Language-Team: Dutch (informal) <https://translate.pretix.eu/projects/pretix/"
"pretix-js/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.15.2\n"
"X-Generator: Weblate 5.16.2\n"
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:56
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:62
@@ -60,7 +60,7 @@ msgstr "PayPal Later betalen"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:41
msgid "iDEAL | Wero"
msgstr ""
msgstr "iDEAL | Wero"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:42
msgid "SEPA Direct Debit"

View File

@@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-17 14:05+0000\n"
"PO-Revision-Date: 2026-03-11 07:08+0000\n"
"Last-Translator: Pedro Orlando <scramblerdoodle@gmail.com>\n"
"PO-Revision-Date: 2026-03-25 08:00+0000\n"
"Last-Translator: Renne Rocha <renne@rocha.dev.br>\n"
"Language-Team: Portuguese (Brazil) <https://translate.pretix.eu/projects/"
"pretix/pretix/pt_BR/>\n"
"Language: pt_BR\n"
@@ -405,10 +405,8 @@ msgstr ""
#: pretix/api/serializers/organizer.py:482
#: pretix/control/views/organizer.py:1039
#, fuzzy
#| msgid "Account information"
msgid "Account invitation"
msgstr "Informações da conta"
msgstr "Convite de conta"
#: pretix/api/serializers/organizer.py:503
#: pretix/control/views/organizer.py:1138
@@ -6840,10 +6838,8 @@ msgstr ""
"alguns minutos para entrar em vigor para todos os usuários."
#: pretix/base/models/organizer.py:378
#, fuzzy
#| msgid "Event permissions"
msgid "All event permissions"
msgstr "Permissões de Evento"
msgstr "Todas as permissões de evento"
#: pretix/base/models/organizer.py:379
#: pretix/control/templates/pretixcontrol/organizers/team_edit.html:34
@@ -6851,10 +6847,8 @@ msgid "Event permissions"
msgstr "Permissões de Evento"
#: pretix/base/models/organizer.py:380
#, fuzzy
#| msgid "Organizer permissions"
msgid "All organizer permissions"
msgstr "Permissões de Organizador"
msgstr "Todas as permissões de organizador"
#: pretix/base/models/organizer.py:381
#: pretix/control/templates/pretixcontrol/organizers/team_edit.html:25
@@ -8352,22 +8346,18 @@ msgstr "Seu arquivo de layout não é um layout válido. Mensagem de erro: {}"
#: pretix/base/permissions.py:314 pretix/base/permissions.py:331
msgctxt "permission_level"
msgid "View"
msgstr ""
msgstr "Visualizar"
#: pretix/base/permissions.py:164 pretix/base/permissions.py:169
#: pretix/base/permissions.py:174 pretix/base/permissions.py:179
#: pretix/base/permissions.py:286 pretix/base/permissions.py:315
#, fuzzy
#| msgid "Save and check"
msgctxt "permission_level"
msgid "View and change"
msgstr "Salvar e checar"
msgstr "Visualizar e alterar"
#: pretix/base/permissions.py:168
#, fuzzy
#| msgid "API tokens"
msgid "API only"
msgstr "Tokens de API"
msgstr "Apenas API"
#: pretix/base/permissions.py:173
msgid ""
@@ -8377,11 +8367,9 @@ msgstr ""
#: pretix/base/permissions.py:177 pretix/base/permissions.py:231
#: pretix/base/permissions.py:285 pretix/base/permissions.py:313
#: pretix/base/permissions.py:330
#, fuzzy
#| msgid "Revoke access"
msgctxt "permission_level"
msgid "No access"
msgstr "Revogar acesso"
msgstr "Sem acesso"
#: pretix/base/permissions.py:188
#: pretix/control/templates/pretixcontrol/event/settings.html:7
@@ -8408,10 +8396,8 @@ msgid "Tax settings"
msgstr "Configurações de impostos"
#: pretix/base/permissions.py:209
#, fuzzy
#| msgid "Invoice settings"
msgid "Invoicing settings"
msgstr "Configurações de fatura"
msgstr "Configurações de faturamento"
#: pretix/base/permissions.py:215
#, fuzzy
@@ -8421,52 +8407,40 @@ msgid "Event series dates"
msgstr "Data da série de eventos adicionada"
#: pretix/base/permissions.py:221
#, fuzzy
#| msgid "Product name and variation"
msgid "Products, quotas and questions"
msgstr "Nome do produto e variação"
msgstr "Produtos, cotas e perguntas"
#: pretix/base/permissions.py:224
msgid "Also includes related objects like categories or discounts."
msgstr ""
#: pretix/base/permissions.py:232
#, fuzzy
#| msgid "All check-ins"
msgctxt "permission_level"
msgid "Only check-in"
msgstr "Todos os check-ins"
msgstr "Apenas check-in"
#: pretix/base/permissions.py:233
#, fuzzy
#| msgid "View full log"
msgctxt "permission_level"
msgid "View all"
msgstr "Ver log completo"
msgstr "Visualizar tudo"
#: pretix/base/permissions.py:234
#, fuzzy
#| msgid "Valid check-in"
msgctxt "permission_level"
msgid "View all and check-in"
msgstr "Check-in válido"
msgstr "Visualizar tudo e check-in"
#: pretix/base/permissions.py:235
#, fuzzy
#| msgid "View all upcoming events"
msgctxt "permission_level"
msgid "View all and change"
msgstr "Ver todos eventos futuros"
msgstr "Visualizar tudo e alterar"
#: pretix/base/permissions.py:236
msgid "Includes the ability to cancel and refund individual orders."
msgstr ""
msgstr "Incluir a habilidade de cancelar e reembolsar pedidos individuais."
#: pretix/base/permissions.py:238
#, fuzzy
#| msgid "An entry has been added to the waiting list."
msgid "Also includes related objects like the waiting list."
msgstr "Uma entrada foi adicionada à lista de espera."
msgstr "Também inclui objetos relacionados como a lista de espera."
#: pretix/base/permissions.py:248
#, fuzzy
@@ -8475,18 +8449,14 @@ msgid "Full event or date cancellation"
msgstr "Gerar cancelamento"
#: pretix/base/permissions.py:252
#, fuzzy
#| msgid "Sale not allowed"
msgctxt "permission_level"
msgid "Not allowed"
msgstr "Venda não permitida"
msgstr "Não permitida"
#: pretix/base/permissions.py:253
#, fuzzy
#| msgid "Allowed titles"
msgctxt "permission_level"
msgid "Allowed"
msgstr "Títulos permitidos"
msgstr "Permitida"
#: pretix/base/permissions.py:268
msgctxt "permission_level"
@@ -23995,7 +23965,7 @@ msgstr "Reembolso por pagamento em excesso"
#: pretix/control/templates/pretixcontrol/order/index.html:118
#, python-format
msgid "This order is currently overpaid by %(amount)s."
msgstr "O pedidos está pago em excesso por %(amount)s."
msgstr "Este pedido está pago em excesso por %(amount)s."
#: pretix/control/templates/pretixcontrol/order/index.html:122
#, python-format
@@ -33294,7 +33264,7 @@ msgstr "iDEAL via Stripe"
#: pretix/plugins/stripe/payment.py:1572
msgid "iDEAL | Wero"
msgstr ""
msgstr "iDEAL | Wero"
#: pretix/plugins/stripe/payment.py:1575
msgid ""

View File

@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-17 14:06+0000\n"
"PO-Revision-Date: 2026-01-26 22:00+0000\n"
"PO-Revision-Date: 2026-03-25 08:00+0000\n"
"Last-Translator: Renne Rocha <renne@rocha.dev.br>\n"
"Language-Team: Portuguese (Brazil) <https://translate.pretix.eu/projects/"
"pretix/pretix-js/pt_BR/>\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.2\n"
"X-Generator: Weblate 5.16.2\n"
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:56
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:62
@@ -60,7 +60,7 @@ msgstr "PayPal Pay Later"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:41
msgid "iDEAL | Wero"
msgstr ""
msgstr "iDEAL | Wero"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:42
msgid "SEPA Direct Debit"

View File

@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-17 14:05+0000\n"
"PO-Revision-Date: 2026-01-16 22:00+0000\n"
"PO-Revision-Date: 2026-03-27 09:03+0000\n"
"Last-Translator: Linnea Thelander <linnea@coeo.events>\n"
"Language-Team: Swedish <https://translate.pretix.eu/projects/pretix/pretix/"
"sv/>\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.2\n"
"X-Generator: Weblate 5.16.2\n"
#: pretix/_base_settings.py:87
msgid "English"
@@ -35279,10 +35279,8 @@ msgid "We're now trying to book these add-ons for you!"
msgstr "Vi försöker nu reservera dessa tillval till dig!"
#: pretix/presale/templates/pretixpresale/event/checkout_addons.html:28
#, fuzzy
#| msgid "Additional settings"
msgid "Additional options for"
msgstr "Ytterligare inställningar"
msgstr "Ytterligare val för"
#: pretix/presale/templates/pretixpresale/event/checkout_addons.html:60
#, fuzzy
@@ -35628,13 +35626,10 @@ msgstr[0] "Du måste välja exakt ett alternativ från denna kategori."
msgstr[1] "Du måste välja %(min_count)s alternativ från denna kategori."
#: pretix/presale/templates/pretixpresale/event/fragment_addon_choice.html:26
#, fuzzy, python-format
#| msgid "You can choose %(max_count)s option from this category."
#| msgid_plural ""
#| "You can choose up to %(max_count)s options from this category."
#, python-format
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] "Du kan välja %(max_count)s alternativ från denna kategori."
msgstr[0] "Du kan välja ett alternativ från denna kategori."
msgstr[1] "Du kan välja upp till %(max_count)s alternativ från denna kategori."
#: pretix/presale/templates/pretixpresale/event/fragment_addon_choice.html:34
@@ -36329,12 +36324,11 @@ msgstr "Visa fullstor bild av %(item)s"
#: pretix/presale/templates/pretixpresale/event/fragment_product_list.html:131
#: pretix/presale/templates/pretixpresale/event/fragment_product_list.html:288
#, fuzzy, python-format
#| msgid "%(count)s elements"
#, python-format
msgid "%(amount)s× in your cart"
msgid_plural "%(amount)s× in your cart"
msgstr[0] "%(count)s element"
msgstr[1] "%(count)s element"
msgstr[0] "%(amount)sx i din kundvagn"
msgstr[1] "%(amount)sx i din kundvagn"
#: pretix/presale/templates/pretixpresale/event/fragment_product_list.html:209
#: pretix/presale/templates/pretixpresale/event/fragment_product_list.html:374

View File

@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-17 14:06+0000\n"
"PO-Revision-Date: 2025-10-10 17:00+0000\n"
"PO-Revision-Date: 2026-03-26 14:29+0000\n"
"Last-Translator: Linnea Thelander <linnea@coeo.events>\n"
"Language-Team: Swedish <https://translate.pretix.eu/projects/pretix/pretix-"
"js/sv/>\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.13.3\n"
"X-Generator: Weblate 5.16.2\n"
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:56
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:62
@@ -1023,7 +1023,6 @@ msgid "Waiting list"
msgstr "Väntelista"
#: pretix/static/pretixpresale/js/widget/widget.js:55
#, fuzzy
msgctxt "widget"
msgid ""
"You currently have an active cart for this event. If you select more "

View File

@@ -576,7 +576,7 @@ def filter_subevents_with_plugins(subevents, sales_channel=None):
if not app_cache:
_populate_app_cache()
for receiver in filter_subevents._live_receivers(None):
for receiver in filter_subevents._live_receivers(None)[0]:
app = get_defining_app(receiver)
event_state = {}

View File

@@ -49,7 +49,7 @@ from django.views.decorators.cache import cache_page
from django.views.decorators.gzip import gzip_page
from django.views.decorators.http import condition
from django.views.i18n import (
JavaScriptCatalog, get_formats, js_catalog_template,
JavaScriptCatalog, builtin_template_path, get_formats,
)
from lxml import html
@@ -170,7 +170,8 @@ def generate_widget_js(version, lang):
'September', 'October', 'November', 'December'
)
catalog = dict((k, v) for k, v in catalog.items() if k.startswith('widget\u0004') or k in str_wl)
template = Engine().from_string(js_catalog_template)
with builtin_template_path("i18n_catalog.js").open(encoding="utf-8") as fh:
template = Engine().from_string(fh.read())
context = Context({
'catalog_str': indent(json.dumps(
catalog, sort_keys=True, indent=2)) if catalog else None,

View File

@@ -534,6 +534,7 @@ X_FRAME_OPTIONS = 'DENY'
# URL settings
ROOT_URLCONF = 'pretix.multidomain.maindomain_urlconf'
FORMS_URLFIELD_ASSUME_HTTPS = True # transitional for django 6.0
WSGI_APPLICATION = 'pretix.wsgi.application'

View File

@@ -23,9 +23,7 @@ filterwarnings =
error
ignore:.*invalid escape sequence.*:
ignore:The 'warn' method is deprecated:DeprecationWarning
ignore::django.utils.deprecation.RemovedInDjango51Warning:django.core.files.storage
ignore:.*index_together.*:django.utils.deprecation.RemovedInDjango51Warning:
ignore:.*get_storage_class.*:django.utils.deprecation.RemovedInDjango51Warning:compressor
ignore::django.utils.deprecation.RemovedInDjango60Warning:
ignore:.*This signal will soon be only available for plugins that declare to be organizer-level.*:DeprecationWarning:
ignore::DeprecationWarning:mt940
ignore::DeprecationWarning:cbor2

View File

@@ -75,42 +75,47 @@ def user(team):
return user
@pytest.fixture
def monkeypatch_on_commit(monkeypatch):
monkeypatch.setattr("django.db.transaction.on_commit", lambda t: t())
@pytest.mark.django_db
def test_notification_trigger_event_specific(event, order, user, django_capture_on_commit_callbacks):
def test_notification_trigger_event_specific(event, order, user, monkeypatch_on_commit):
djmail.outbox = []
user.notification_settings.create(
method='mail', event=event, action_type='pretix.event.order.paid', enabled=True
)
with django_capture_on_commit_callbacks(execute=True):
with transaction.atomic():
order.log_action('pretix.event.order.paid', {})
assert len(djmail.outbox) == 1
assert djmail.outbox[0].subject.endswith("DUMMY: Order FOO has been marked as paid.")
@pytest.mark.django_db
def test_notification_trigger_global(event, order, user, django_capture_on_commit_callbacks):
def test_notification_trigger_global(event, order, user, monkeypatch_on_commit):
djmail.outbox = []
user.notification_settings.create(
method='mail', event=None, action_type='pretix.event.order.paid', enabled=True
)
with django_capture_on_commit_callbacks(execute=True):
with transaction.atomic():
order.log_action('pretix.event.order.paid', {})
assert len(djmail.outbox) == 1
@pytest.mark.django_db
def test_notification_trigger_global_wildcard(event, order, user, django_capture_on_commit_callbacks):
def test_notification_trigger_global_wildcard(event, order, user, monkeypatch_on_commit):
djmail.outbox = []
user.notification_settings.create(
method='mail', event=None, action_type='pretix.event.order.changed.*', enabled=True
)
with django_capture_on_commit_callbacks(execute=True):
with transaction.atomic():
order.log_action('pretix.event.order.changed.item', {})
assert len(djmail.outbox) == 1
@pytest.mark.django_db
def test_notification_enabled_global_ignored_specific(event, order, user, django_capture_on_commit_callbacks):
def test_notification_enabled_global_ignored_specific(event, order, user, monkeypatch_on_commit):
djmail.outbox = []
user.notification_settings.create(
method='mail', event=None, action_type='pretix.event.order.paid', enabled=True
@@ -118,24 +123,24 @@ def test_notification_enabled_global_ignored_specific(event, order, user, django
user.notification_settings.create(
method='mail', event=event, action_type='pretix.event.order.paid', enabled=False
)
with django_capture_on_commit_callbacks(execute=True):
with transaction.atomic():
order.log_action('pretix.event.order.paid', {})
assert len(djmail.outbox) == 0
@pytest.mark.django_db
def test_notification_ignore_same_user(event, order, user, django_capture_on_commit_callbacks):
def test_notification_ignore_same_user(event, order, user, monkeypatch_on_commit):
djmail.outbox = []
user.notification_settings.create(
method='mail', event=event, action_type='pretix.event.order.paid', enabled=True
)
with django_capture_on_commit_callbacks(execute=True):
with transaction.atomic():
order.log_action('pretix.event.order.paid', {}, user=user)
assert len(djmail.outbox) == 0
@pytest.mark.django_db
def test_notification_ignore_insufficient_permissions(event, order, user, team, django_capture_on_commit_callbacks):
def test_notification_ignore_insufficient_permissions(event, order, user, team, monkeypatch_on_commit):
djmail.outbox = []
team.all_event_permissions = False
team.limit_event_permissions = {"event.vouchers:read": True}
@@ -143,7 +148,7 @@ def test_notification_ignore_insufficient_permissions(event, order, user, team,
user.notification_settings.create(
method='mail', event=event, action_type='pretix.event.order.paid', enabled=True
)
with django_capture_on_commit_callbacks(execute=True):
with transaction.atomic():
order.log_action('pretix.event.order.paid', {})
assert len(djmail.outbox) == 0

View File

@@ -29,8 +29,7 @@ import pytest
from django.conf import settings
from django.core import mail as djmail
from django.db.models import F, Sum
from django.test import TestCase, TransactionTestCase, override_settings
from django.db import transaction
from django.test import TestCase, override_settings
from django.utils.timezone import make_aware, now
from django_countries.fields import Country
from django_scopes import scope
@@ -1225,6 +1224,13 @@ class DownloadReminderTests(TestCase):
send_download_reminders(sender=self.event)
assert len(djmail.outbox) == 0
@pytest.fixture
def class_monkeypatch(request, monkeypatch):
request.cls.monkeypatch = monkeypatch
@pytest.mark.usefixtures("class_monkeypatch")
class OrderCancelTests(TestCase):
def setUp(self):
super().setUp()
@@ -1252,6 +1258,7 @@ class OrderCancelTests(TestCase):
self.order.create_transactions()
generate_invoice(self.order)
djmail.outbox = []
self.monkeypatch.setattr("django.db.transaction.on_commit", lambda t: t())
@classscope(attr='o')
def test_cancel_canceled(self):
@@ -1344,14 +1351,14 @@ class OrderCancelTests(TestCase):
self.order.status = Order.STATUS_PAID
self.order.save()
djmail.outbox = []
with self.captureOnCommitCallbacks(execute=True):
cancel_order(self.order.pk, send_mail=True)
cancel_order(self.order.pk, send_mail=True)
print([s.subject for s in djmail.outbox])
print([s.to for s in djmail.outbox])
assert len(djmail.outbox) == 2
assert ["dummy@dummy.test"] == djmail.outbox[0].to
assert not any(["Invoice_" in a[0] for a in djmail.outbox[0].attachments])
assert ["invoice@example.org"] == djmail.outbox[1].to
assert any(["Invoice_" in a[0] for a in djmail.outbox[1].attachments])
assert ["invoice@example.org"] == djmail.outbox[0].to
assert any(["Invoice_" in a[0] for a in djmail.outbox[0].attachments])
assert ["dummy@dummy.test"] == djmail.outbox[1].to
assert not any(["Invoice_" in a[0] for a in djmail.outbox[1].attachments])
@classscope(attr='o')
def test_cancel_paid_with_too_high_fee(self):
@@ -1480,7 +1487,9 @@ class OrderCancelTests(TestCase):
assert not self.order.refunds.exists()
assert self.order.all_logentries().filter(action_type='pretix.event.order.refund.requested').exists()
class BaseOrderChangeManagerTestCase:
@pytest.mark.usefixtures("class_monkeypatch")
class OrderChangeManagerTests(TestCase):
def setUp(self):
super().setUp()
self.o = Organizer.objects.create(name='Dummy', slug='dummy', plugins='pretix.plugins.banktransfer')
@@ -1543,6 +1552,7 @@ class BaseOrderChangeManagerTestCase:
self.seat_a1 = self.event.seats.create(seat_number="A1", product=self.stalls, seat_guid="A1")
self.seat_a2 = self.event.seats.create(seat_number="A2", product=self.stalls, seat_guid="A2")
self.seat_a3 = self.event.seats.create(seat_number="A3", product=self.stalls, seat_guid="A3")
self.monkeypatch.setattr("django.db.transaction.on_commit", lambda t: t())
def _enable_reverse_charge(self):
self.tr7.eu_reverse_charge = True
@@ -1556,7 +1566,6 @@ class BaseOrderChangeManagerTestCase:
country=Country('AT')
)
class OrderChangeManagerTests(BaseOrderChangeManagerTestCase, TestCase):
@classscope(attr='o')
def test_multiple_commits_forbidden(self):
self.ocm.change_price(self.op1, Decimal('10.00'))
@@ -3886,16 +3895,15 @@ class OrderChangeManagerTests(BaseOrderChangeManagerTestCase, TestCase):
@classscope(attr='o')
def test_set_valid_until(self):
with transaction.atomic():
self.event.settings.ticket_secret_generator = "pretix_sig1"
assign_ticket_secret(self.event, self.op1, force_invalidate=True, save=True)
old_secret = self.op1.secret
self.event.settings.ticket_secret_generator = "pretix_sig1"
assign_ticket_secret(self.event, self.op1, force_invalidate=True, save=True)
old_secret = self.op1.secret
dt = make_aware(datetime(2022, 9, 20, 15, 0, 0, 0))
self.ocm.change_valid_until(self.op1, dt)
self.ocm.commit()
self.op1.refresh_from_db()
assert self.op1.secret != old_secret
dt = make_aware(datetime(2022, 9, 20, 15, 0, 0, 0))
self.ocm.change_valid_until(self.op1, dt)
self.ocm.commit()
self.op1.refresh_from_db()
assert self.op1.secret != old_secret
@classscope(attr='o')
def test_unset_valid_from_until(self):
@@ -3920,7 +3928,6 @@ class OrderChangeManagerTests(BaseOrderChangeManagerTestCase, TestCase):
assert len(djmail.outbox) == 1
assert len(["Invoice_" in a[0] for a in djmail.outbox[0].attachments]) == 2
class OrderChangeManagerTransactionalTests(BaseOrderChangeManagerTestCase, TransactionTestCase):
@classscope(attr='o')
def test_new_invoice_send_somewhere_else(self):
generate_invoice(self.order)

View File

@@ -82,9 +82,14 @@ def force_str(v):
return v.decode() if isinstance(v, bytes) else str(v)
@pytest.fixture
def monkeypatch_on_commit(monkeypatch):
monkeypatch.setattr("django.db.transaction.on_commit", lambda t: t())
@pytest.mark.django_db
@responses.activate
def test_webhook_trigger_event_specific(event, order, webhook, django_capture_on_commit_callbacks):
def test_webhook_trigger_event_specific(event, order, webhook, monkeypatch_on_commit):
responses.add_callback(
responses.POST, 'https://google.com',
callback=lambda r: (200, {}, 'ok'),
@@ -92,7 +97,7 @@ def test_webhook_trigger_event_specific(event, order, webhook, django_capture_on
match_querystring=None, # https://github.com/getsentry/responses/issues/464
)
with django_capture_on_commit_callbacks(execute=True):
with transaction.atomic():
le = order.log_action('pretix.event.order.paid', {})
assert len(responses.calls) == 1
assert json.loads(force_str(responses.calls[0].request.body)) == {
@@ -114,12 +119,12 @@ def test_webhook_trigger_event_specific(event, order, webhook, django_capture_on
@pytest.mark.django_db
@responses.activate
def test_webhook_trigger_global(event, order, webhook, django_capture_on_commit_callbacks):
def test_webhook_trigger_global(event, order, webhook, monkeypatch_on_commit):
webhook.limit_events.clear()
webhook.all_events = True
webhook.save()
responses.add(responses.POST, 'https://google.com', status=200)
with django_capture_on_commit_callbacks(execute=True):
with transaction.atomic():
le = order.log_action('pretix.event.order.paid', {})
assert len(responses.calls) == 1
assert json.loads(force_str(responses.calls[0].request.body)) == {
@@ -133,13 +138,13 @@ def test_webhook_trigger_global(event, order, webhook, django_capture_on_commit_
@pytest.mark.django_db
@responses.activate
def test_webhook_trigger_global_wildcard(event, order, webhook, django_capture_on_commit_callbacks):
def test_webhook_trigger_global_wildcard(event, order, webhook, monkeypatch_on_commit):
webhook.listeners.create(action_type="pretix.event.order.changed.*")
webhook.limit_events.clear()
webhook.all_events = True
webhook.save()
responses.add(responses.POST, 'https://google.com', status=200)
with django_capture_on_commit_callbacks(execute=True):
with transaction.atomic():
le = order.log_action('pretix.event.order.changed.item', {})
assert len(responses.calls) == 1
assert json.loads(force_str(responses.calls[0].request.body)) == {
@@ -153,30 +158,30 @@ def test_webhook_trigger_global_wildcard(event, order, webhook, django_capture_o
@pytest.mark.django_db
@responses.activate
def test_webhook_ignore_wrong_action_type(event, order, webhook, django_capture_on_commit_callbacks):
def test_webhook_ignore_wrong_action_type(event, order, webhook, monkeypatch_on_commit):
responses.add(responses.POST, 'https://google.com', status=200)
with django_capture_on_commit_callbacks(execute=True):
with transaction.atomic():
order.log_action('pretix.event.order.changed.item', {})
assert len(responses.calls) == 0
@pytest.mark.django_db
@responses.activate
def test_webhook_ignore_disabled(event, order, webhook, django_capture_on_commit_callbacks):
def test_webhook_ignore_disabled(event, order, webhook, monkeypatch_on_commit):
webhook.enabled = False
webhook.save()
responses.add(responses.POST, 'https://google.com', status=200)
with django_capture_on_commit_callbacks(execute=True):
with transaction.atomic():
order.log_action('pretix.event.order.changed.item', {})
assert len(responses.calls) == 0
@pytest.mark.django_db
@responses.activate
def test_webhook_ignore_wrong_event(event, order, webhook, django_capture_on_commit_callbacks):
def test_webhook_ignore_wrong_event(event, order, webhook, monkeypatch_on_commit):
webhook.limit_events.clear()
responses.add(responses.POST, 'https://google.com', status=200)
with django_capture_on_commit_callbacks(execute=True):
with transaction.atomic():
order.log_action('pretix.event.order.changed.item', {})
assert len(responses.calls) == 0
@@ -184,10 +189,10 @@ def test_webhook_ignore_wrong_event(event, order, webhook, django_capture_on_com
@pytest.mark.django_db
@pytest.mark.xfail(reason="retries can't be tested with celery_always_eager")
@responses.activate
def test_webhook_retry(event, order, webhook, django_capture_on_commit_callbacks):
def test_webhook_retry(event, order, webhook, monkeypatch_on_commit):
responses.add(responses.POST, 'https://google.com', status=500)
responses.add(responses.POST, 'https://google.com', status=200)
with django_capture_on_commit_callbacks(execute=True):
with transaction.atomic():
order.log_action('pretix.event.order.paid', {})
assert len(responses.calls) == 2
with scopes_disabled():
@@ -211,9 +216,9 @@ def test_webhook_retry(event, order, webhook, django_capture_on_commit_callbacks
@pytest.mark.django_db
@responses.activate
def test_webhook_disable_gone(event, order, webhook, django_capture_on_commit_callbacks):
def test_webhook_disable_gone(event, order, webhook, monkeypatch_on_commit):
responses.add(responses.POST, 'https://google.com', status=410)
with django_capture_on_commit_callbacks(execute=True):
with transaction.atomic():
order.log_action('pretix.event.order.paid', {})
assert len(responses.calls) == 1
webhook.refresh_from_db()

View File

@@ -19,14 +19,13 @@
# 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 datetime import datetime, timedelta
from datetime import datetime, timedelta, timezone
import aiohttp
import pytest
import pytest_asyncio
from django.utils.timezone import now
from django_scopes import scopes_disabled
from pytz import UTC
from pretix.base.models import (
Device, Event, Item, Organizer, Quota, SeatingPlan,
@@ -53,7 +52,7 @@ def organizer():
def event(organizer):
e = Event.objects.create(
organizer=organizer, name='Dummy', slug='dummy',
date_from=datetime(2017, 12, 27, 10, 0, 0, tzinfo=UTC),
date_from=datetime(2017, 12, 27, 10, 0, 0, tzinfo=timezone.utc),
presale_end=now() + timedelta(days=300),
plugins='pretix.plugins.banktransfer,pretix.plugins.ticketoutputpdf',
is_public=True, live=True
@@ -109,8 +108,8 @@ def customer(event, membership_type):
def membership(event, membership_type, customer):
return customer.memberships.create(
membership_type=membership_type,
date_start=datetime(2017, 1, 1, 0, 0, tzinfo=UTC),
date_end=datetime(2099, 1, 1, 0, 0, tzinfo=UTC),
date_start=datetime(2017, 1, 1, 0, 0, tzinfo=timezone.utc),
date_end=datetime(2099, 1, 1, 0, 0, tzinfo=timezone.utc),
)

View File

@@ -131,8 +131,3 @@ def set_lock_namespaces(request):
yield
else:
yield
@pytest.fixture
def class_monkeypatch(request, monkeypatch):
request.cls.monkeypatch = monkeypatch

View File

@@ -385,6 +385,11 @@ class RegistrationFormTest(TestCase):
self.assertEqual(response.status_code, 403)
@pytest.fixture
def class_monkeypatch(request, monkeypatch):
request.cls.monkeypatch = monkeypatch
@pytest.mark.usefixtures("class_monkeypatch")
class Login2FAFormTest(TestCase):

View File

@@ -49,6 +49,11 @@ from tests.base import SoupTest, extract_form_fields
from pretix.base.models import Event, LogEntry, Order, Organizer, Team, User
@pytest.fixture
def class_monkeypatch(request, monkeypatch):
request.cls.monkeypatch = monkeypatch
@pytest.mark.usefixtures("class_monkeypatch")
class EventsTest(SoupTest):
@scopes_disabled()

View File

@@ -33,6 +33,11 @@ from tests.base import SoupTest, extract_form_fields
from pretix.base.models import Event, Organizer, OutgoingMail, Team, User
@pytest.fixture
def class_monkeypatch(request, monkeypatch):
request.cls.monkeypatch = monkeypatch
@pytest.mark.usefixtures("class_monkeypatch")
class OrganizerTest(SoupTest):
@scopes_disabled()

View File

@@ -286,6 +286,11 @@ class UserPasswordChangeTest(SoupTest):
assert self.user.needs_password_change is False
@pytest.fixture
def class_monkeypatch(request, monkeypatch):
request.cls.monkeypatch = monkeypatch
@pytest.mark.usefixtures("class_monkeypatch")
class UserSettings2FATest(SoupTest):
def setUp(self):

View File

@@ -33,7 +33,7 @@ from django.conf import settings
from django.core import mail as djmail
from django.core.files.uploadedfile import SimpleUploadedFile
from django.core.signing import dumps
from django.test import TestCase, TransactionTestCase
from django.test import TestCase
from django.utils.crypto import get_random_string
from django.utils.timezone import now
from django_countries.fields import Country
@@ -60,6 +60,12 @@ from pretix.testutils.sessions import get_cart_session_key
from .test_timemachine import TimemachineTestMixin
@pytest.fixture
def class_monkeypatch(request, monkeypatch):
request.cls.monkeypatch = monkeypatch
@pytest.mark.usefixtures("class_monkeypatch")
class BaseCheckoutTestCase:
@scopes_disabled()
def setUp(self):
@@ -98,6 +104,7 @@ class BaseCheckoutTestCase:
self.workshopquota.items.add(self.workshop2)
self.workshopquota.variations.add(self.workshop2a)
self.workshopquota.variations.add(self.workshop2b)
self.monkeypatch.setattr("django.db.transaction.on_commit", lambda t: t())
def _set_session(self, key, value):
session = self.client.session
@@ -4413,7 +4420,6 @@ class CheckoutTestCase(BaseCheckoutTestCase, TimemachineTestMixin, TestCase):
assert len(djmail.outbox) == 1
assert any(["Invoice_" in a[0] for a in djmail.outbox[0].attachments])
class CheckoutTransactionTestCase(BaseCheckoutTestCase, TransactionTestCase):
def test_order_confirmation_mail_invoice_sent_somewhere_else(self):
self.event.settings.invoice_address_asked = True
self.event.settings.invoice_address_required = True