Compare commits

..

1 Commits

Author SHA1 Message Date
Raphael Michel
5818d6d66f Price rounding: Make sum_by_net_keep_gross even more consumer-friendly (Z#23220106)
The rounding mode sum_by_net_keep_gross is supposed to be the
consumer-friendly algorithm. However, some consumer-friendly prices are still
impossible, such as 15.00 incl. 19%.  Previously, the system would round
to 15.01, because it's the gross price derived from the closest net
price. With this PR, it rounds to 14.99 instead, because consumers like
paying less more than they like paying more.
2026-01-08 10:12:34 +01:00
25 changed files with 513 additions and 409 deletions

View File

@@ -23,13 +23,13 @@ jobs:
name: Tests
strategy:
matrix:
python-version: ["3.10", "3.11", "3.13"]
python-version: ["3.9", "3.10", "3.11"]
database: [sqlite, postgres]
exclude:
- database: sqlite
python-version: "3.10"
python-version: "3.9"
- database: sqlite
python-version: "3.11"
python-version: "3.10"
services:
postgres:
image: postgres:15

View File

@@ -286,6 +286,11 @@ gross prices stay the same.
**This is less confusing to consumers and the end result is still compliant to EN 16931, so we recommend this for e-invoicing when (primarily) consumers are involved.**
Some gross prices **cannot** stay the same. For example, it is impossible to represent €15.00 incl. 19%, since a net
price of €12.60 would lead to €14.99 gross and a net price of €12.61 would lead to €15.01 gross. Since this algorithm
is supposed to be consumer-friendly, it has a bias for choosing €14.99 in this case, even if €15.01 would be a little
less of a difference.
The main downside is that it might be confusing when selling to business customers, since the prices of the identical tickets appear to be different.
Full computation for the example above:

View File

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

View File

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

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

View File

@@ -35,7 +35,6 @@ from pretix.base.email import get_email_context
from pretix.base.i18n import language
from pretix.base.models import User, Voucher
from pretix.base.services.mail import SendMailException, mail, render_mail
from pretix.helpers import OF_SELF
from ...helpers.format import format_map
from ...helpers.names import build_name
@@ -186,47 +185,44 @@ class WaitingListEntry(LoggedModel):
if not free_seats:
raise WaitingListException(_('No seat with this product is currently available.'))
if self.voucher:
raise WaitingListException(_('A voucher has already been sent to this person.'))
if '@' not in self.email:
raise WaitingListException(_('This entry is anonymized and can no longer be used.'))
with transaction.atomic():
locked_wle = WaitingListEntry.objects.select_for_update(of=OF_SELF).get(pk=self.pk)
if locked_wle.voucher:
raise WaitingListException(_('A voucher has already been sent to this person.'))
e = locked_wle.email
if locked_wle.name:
e += ' / ' + locked_wle.name
e = self.email
if self.name:
e += ' / ' + self.name
v = Voucher.objects.create(
event=locked_wle.event,
event=self.event,
max_usages=1,
valid_until=now() + timedelta(hours=locked_wle.event.settings.waiting_list_hours),
item=locked_wle.item,
variation=locked_wle.variation,
valid_until=now() + timedelta(hours=self.event.settings.waiting_list_hours),
item=self.item,
variation=self.variation,
tag='waiting-list',
comment=_('Automatically created from waiting list entry for {email}').format(
email=e
),
block_quota=True,
subevent=locked_wle.subevent,
subevent=self.subevent,
)
v.log_action('pretix.voucher.added', {
'item': locked_wle.item.pk,
'variation': locked_wle.variation.pk if locked_wle.variation else None,
'item': self.item.pk,
'variation': self.variation.pk if self.variation else None,
'tag': 'waiting-list',
'block_quota': True,
'valid_until': v.valid_until.isoformat(),
'max_usages': 1,
'subevent': locked_wle.subevent.pk if locked_wle.subevent else None,
'subevent': self.subevent.pk if self.subevent else None,
'source': 'waitinglist',
}, user=user, auth=auth)
v.log_action('pretix.voucher.added.waitinglist', {
'email': locked_wle.email,
'waitinglistentry': locked_wle.pk,
'email': self.email,
'waitinglistentry': self.pk,
}, user=user, auth=auth)
locked_wle.voucher = v
locked_wle.save()
self.refresh_from_db()
self.voucher = v
self.save()
with language(self.locale, self.event.settings.region):
self.send_mail(

View File

@@ -284,12 +284,27 @@ def apply_rounding(rounding_mode: Literal["line", "sum_by_net", "sum_by_net_keep
# e.g. 99.99 at 19% is impossible since 84.03 + 19% = 100.00 and 84.02 + 19% = 99.98
target_gross_total = round_decimal((target_net_total * (1 + tax_rate / 100)), currency)
if target_net_total and target_gross_total > gross_total:
target_net_total -= min((target_gross_total - gross_total), len(lines) * minimum_unit)
try_target_gross_total = round_decimal((target_net_total * (1 + tax_rate / 100)), currency)
if try_target_gross_total <= gross_total:
target_gross_total = try_target_gross_total
diff_gross = target_gross_total - gross_total
diff_net = target_net_total - net_total
diff_gross_sgn = -1 if diff_gross < 0 else 1
diff_net_sgn = -1 if diff_net < 0 else 1
for l in lines:
if diff_gross:
if diff_gross and diff_net:
apply_diff = diff_gross_sgn * minimum_unit
l.price = l.gross_price_before_rounding + apply_diff
l.price_includes_rounding_correction = apply_diff
l.tax_value = l.tax_value_before_rounding
l.tax_value_includes_rounding_correction = Decimal("0.00")
changed.append(l)
diff_gross -= apply_diff
diff_net -= apply_diff
elif diff_gross:
apply_diff = diff_gross_sgn * minimum_unit
l.price = l.gross_price_before_rounding + apply_diff
l.price_includes_rounding_correction = apply_diff
@@ -312,6 +327,11 @@ def apply_rounding(rounding_mode: Literal["line", "sum_by_net", "sum_by_net_keep
l.tax_value_includes_rounding_correction = Decimal("0.00")
changed.append(l)
# Double-check that result is consistent in computing gross from net
new_net_total = sum(l.price - l.tax_value for l in lines)
new_gross_total = sum(l.price for l in lines)
assert new_gross_total == round_decimal((new_net_total * (1 + tax_rate / 100)), currency)
elif rounding_mode == "line":
for l in lines:
if l.price_includes_rounding_correction or l.tax_value_includes_rounding_correction:

View File

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

View File

@@ -871,7 +871,8 @@ class TaxSettingsForm(EventSettingsValidationMixin, SettingsForm):
"Recommended for e-invoicing when you primarily sell to consumers. "
"The gross or net price of some products may be changed automatically to ensure correct "
"rounding of the order total. The system attempts to keep gross prices as configured whenever "
"possible. Gross prices may still change if they are impossible to derive from a rounded net price."
"possible. Gross prices may still change if they are impossible to derive from a rounded net price, "
"but the system will prefer rounding them down instead of up."
),
}
self.fields["tax_rounding"].choices = (

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-01-05 12:13+0000\n"
"PO-Revision-Date: 2026-01-14 00:00+0000\n"
"PO-Revision-Date: 2025-10-22 16:00+0000\n"
"Last-Translator: CVZ-es <damien.bremont@casadevelazquez.org>\n"
"Language-Team: Spanish <https://translate.pretix.eu/projects/pretix/pretix-"
"js/es/>\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.15.1\n"
"X-Generator: Weblate 5.13.3\n"
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:56
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:62
@@ -738,8 +738,11 @@ msgstr "Su carrito está a punto de caducar."
#: pretix/static/pretixpresale/js/ui/cart.js:62
msgid "The items in your cart are reserved for you for one minute."
msgid_plural "The items in your cart are reserved for you for {num} minutes."
msgstr[0] "Los artículos de la cesta están reservados durante un minuto."
msgstr[1] "Los artículos de la cesta están reservados durante {num} minutos."
msgstr[0] ""
"Los elementos en su carrito de compras se han reservado durante un minuto."
msgstr[1] ""
"Los elementos en su carrito de compras se han reservado durante {num} "
"minutos."
#: pretix/static/pretixpresale/js/ui/cart.js:83
msgid "Your cart has expired."
@@ -763,11 +766,11 @@ msgstr "Renovar reserva"
#: pretix/static/pretixpresale/js/ui/main.js:194
msgid "The organizer keeps %(currency)s %(amount)s"
msgstr "El organizador retiene %(currency)s %(amount)s"
msgstr "El organizador se queda %(currency)s %(price)s"
#: pretix/static/pretixpresale/js/ui/main.js:202
msgid "You get %(currency)s %(amount)s back"
msgstr "Se le devolverá %(moneda)s %(cantidad)s"
msgstr "Obtienes %(currency)s %(price)s de vuelta"
#: pretix/static/pretixpresale/js/ui/main.js:218
msgid "Please enter the amount the organizer can keep."

View File

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

View File

@@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-01-05 12:12+0000\n"
"PO-Revision-Date: 2026-01-14 00:00+0000\n"
"Last-Translator: Mario Montes <mario@t3chfest.es>\n"
"PO-Revision-Date: 2025-12-15 20:00+0000\n"
"Last-Translator: sandra r <sandrarial@gestiontickets.online>\n"
"Language-Team: Galician <https://translate.pretix.eu/projects/pretix/pretix/"
"gl/>\n"
"Language: gl\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.15.1\n"
"X-Generator: Weblate 5.14.3\n"
#: pretix/_base_settings.py:87
msgid "English"
@@ -1149,7 +1149,7 @@ msgstr "Pregunta: {name}"
#: pretix/base/settings.py:3775 pretix/base/settings.py:3828
#: pretix/base/settings.py:3849 pretix/base/settings.py:3871
msgid "Given name"
msgstr "Nome"
msgstr "Nombre"
#: pretix/base/datasync/sourcefields.py:628
#: pretix/base/datasync/sourcefields.py:638 pretix/base/settings.py:3670
@@ -18192,9 +18192,9 @@ msgstr ""
"\"{new_email}\"."
#: pretix/control/logdisplay.py:673
#, python-brace-format
#, fuzzy, python-brace-format
msgid "Your email address {email} has been confirmed."
msgstr "Tu email {email} ha sido confirmado."
msgstr "Su carrito ha sido actualizado."
#: pretix/control/logdisplay.py:685
#, fuzzy, python-brace-format
@@ -24293,7 +24293,7 @@ msgstr "Sí, aprobar la orden"
#: pretix/presale/templates/pretixpresale/event/order.html:483
#: pretix/presale/templates/pretixpresale/event/order_cancel.html:7
msgid "Cancel order"
msgstr "Cancelar o pedido"
msgstr "Cancelar a orde"
#: pretix/control/templates/pretixcontrol/order/cancel.html:12
#: pretix/control/templates/pretixcontrol/order/deny.html:11
@@ -35952,9 +35952,10 @@ msgstr ""
#: pretix/presale/forms/renderers.py:66
#: pretix/presale/templates/pretixpresale/event/fragment_voucher_form.html:14
#, fuzzy
msgctxt "form"
msgid "required"
msgstr "obrigatorio"
msgstr "expirado"
#: pretix/presale/ical.py:87 pretix/presale/ical.py:146
#: pretix/presale/ical.py:182
@@ -37538,13 +37539,14 @@ msgid "A payment of %(total)s is still pending for this order."
msgstr "Un pago de %(total)s aínda está pendente para esta orde."
#: pretix/presale/templates/pretixpresale/event/order.html:97
#, python-format
#, fuzzy, python-format
msgid "Please complete your payment before %(date)s"
msgstr "Por favor complete o seu pago antes de %(date)s"
msgstr "Por favor complete su pago antes de %(date)s"
#: pretix/presale/templates/pretixpresale/event/order.html:108
#, fuzzy
msgid "Re-try payment or choose another payment method"
msgstr "Volva tentar o pago ou escolla outro método de pago"
msgstr "Vuelva a intentar el pago o elija otro método de pago"
#: pretix/presale/templates/pretixpresale/event/order.html:126
#, fuzzy

View File

@@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-01-05 12:12+0000\n"
"PO-Revision-Date: 2026-01-12 17:00+0000\n"
"Last-Translator: Hijiri Umemoto <hijiri@umemoto.org>\n"
"PO-Revision-Date: 2026-01-05 10:00+0000\n"
"Last-Translator: Yasunobu YesNo Kawaguchi <kawaguti@gmail.com>\n"
"Language-Team: Japanese <https://translate.pretix.eu/projects/pretix/pretix/"
"ja/>\n"
"Language: ja\n"
@@ -3831,7 +3831,7 @@ msgstr ""
#: pretix/base/invoicing/peppol.py:164
msgid "The Peppol participant ID is not registered on the Peppol network."
msgstr "Peppol参加者IDはPeppolネットワークに登録されていません。"
msgstr ""
#: pretix/base/invoicing/peppol.py:184
msgid "Peppol participant ID"
@@ -8281,7 +8281,7 @@ msgstr "販売されていない製品が選択されています。"
msgid ""
"Some products can no longer be purchased and have been removed from your "
"cart for the following reason: %s"
msgstr "一部の製品は購入できなくなり、次の理由でカートから削除されました:%s"
msgstr ""
#: pretix/base/services/cart.py:117
msgid ""
@@ -9400,14 +9400,20 @@ msgid "Uncategorized"
msgstr "未分類"
#: pretix/base/services/tax.py:43
#, fuzzy
#| msgid ""
#| "Your VAT ID could not be checked, as the VAT checking service of your "
#| "country is currently not available. We will therefore need to charge VAT "
#| "on your invoice. You can get the tax amount back via the VAT "
#| "reimbursement process."
msgid ""
"Your VAT ID could not be checked, as the VAT checking service of your "
"country is currently not available. We will therefore need to charge you the "
"same tax rate as if you did not enter a VAT ID."
msgstr ""
"あなたの国のVATチェックサービスが現在利用できないため、VAT IDを確認できません"
"でした。したがって、VAT IDを入力しなかった場合と同じ税率を請求する必要があり"
"ます。"
"お客様のVAT IDは確認できませんでした。お客様の国のVAT確認サービスが現在利用で"
"きないため、請求書にVATを請求する必要があります。VAT払い戻し手続きを通じて税"
"金を返金することができます。"
#: pretix/base/services/tax.py:47 pretix/base/services/tax.py:366
#: pretix/base/services/tax.py:393
@@ -9822,17 +9828,23 @@ msgid "Ask for VAT ID"
msgstr "VAT IDを尋ねる"
#: pretix/base/settings.py:632
#, python-brace-format
#, fuzzy, python-brace-format
#| msgid ""
#| "Only works if an invoice address is asked for. VAT ID is never required "
#| "and only requested from business customers in the following countries: "
#| "{countries}"
msgid ""
"Only works if an invoice address is asked for. VAT ID is only requested from "
"business customers in the following countries: {countries}."
msgstr ""
"請求の住所が要求された場合のみ有効です。VAT ID は、{countries} の国の法人の"
"お客様にのみ要求されます。"
"請求の住所が要求された場合のみ機能します。消費税登録番号やVAT IDは必要な"
"く、以下の国の法人顧客からのみ要求されます:{countries}"
#: pretix/base/settings.py:651
#, fuzzy
#| msgid "Require name"
msgid "Require VAT ID in"
msgstr "VAT IDを要求"
msgstr "名前を要求"
#: pretix/base/settings.py:657
msgid ""
@@ -9840,9 +9852,6 @@ msgid ""
"ID in all countries. VAT ID will be required for all business addresses in "
"the selected countries."
msgstr ""
"VAT ID はデフォルトでオプションです。これは、すべての企業に VAT ID が割り当て"
"られているわけではないためです。選択した国のすべてのビジネスアドレスには、"
"VAT IDが必要です。"
#: pretix/base/settings.py:672
msgid "Invoice address explanation"
@@ -13433,9 +13442,11 @@ msgstr ""
"リクエストのために再度有効にしてください。"
#: pretix/base/views/js_helpers.py:41
#, fuzzy
#| msgid "ID"
msgctxt "tax_id_swiss"
msgid "UID"
msgstr "UID"
msgstr "ID"
#. Translators: Only translate to French (IDE) and Italien (IDI), otherwise keep the same
#. Awareness around VAT IDs differes by EU country. For example, in Germany the VAT ID is assigned
@@ -13445,27 +13456,35 @@ msgstr "UID"
#. number (Partita IVA) and also used on domestic transactions. So someone who never purchased something international
#. for their company, might still know the value, if we call it the right way and not just "VAT ID".
#: pretix/base/views/js_helpers.py:49
#, fuzzy
#| msgid "VAT ID"
msgctxt "tax_id_italy"
msgid "VAT ID / P.IVA"
msgstr "VAT ID / P.IVA"
msgstr "消費税登録番号又はVAT ID"
#. Translators: Translate to only "P.IVA" in Italian, keep second part as-is in other languages
#: pretix/base/views/js_helpers.py:50
#, fuzzy
#| msgid "VAT ID"
msgctxt "tax_id_greece"
msgid "VAT ID / TIN"
msgstr "VAT ID / TIN"
msgstr "消費税登録番号又はVAT ID"
#. Translators: Translate to only "ΑΦΜ" in Greek
#: pretix/base/views/js_helpers.py:51
#, fuzzy
#| msgid "VAT ID"
msgctxt "tax_id_spain"
msgid "VAT ID / NIF"
msgstr "VAT ID / NIF"
msgstr "消費税登録番号又はVAT ID"
#. Translators: Translate to only "NIF" in Spanish
#: pretix/base/views/js_helpers.py:52
#, fuzzy
#| msgid "VAT ID"
msgctxt "tax_id_portugal"
msgid "VAT ID / NIF"
msgstr "VAT ID / NIF"
msgstr "消費税登録番号又はVAT ID"
#: pretix/base/views/tasks.py:185
msgid "An unexpected error has occurred, please try again later."
@@ -14002,8 +14021,6 @@ msgid ""
"Formatting is not supported, as some accounting departments process mail "
"automatically and do not handle formatted emails properly."
msgstr ""
"一部の経理部門はメールを自動的に処理し、フォーマットされたメールを適切に処理"
"しないため、フォーマットはサポートされていません。"
#: pretix/control/forms/event.py:1356
msgid ""
@@ -14452,7 +14469,7 @@ msgstr "支払い済み"
#: pretix/control/forms/filter.py:1304
msgctxt "subevent"
msgid "Date doesn't start in selected date range."
msgstr "日付は選択した日付範囲で開始されません。"
msgstr ""
#: pretix/control/forms/filter.py:1360 pretix/control/forms/filter.py:1827
msgid "Shop live and presale running"
@@ -27990,9 +28007,6 @@ msgid ""
"automatically. We recommend that you rename these in your source file to "
"avoid problems during import."
msgstr ""
"CSVファイルの複数の列は同じ名前で、自動的に名前が変更されました。インポート中"
"に問題が発生しないように、ソースファイルでこれらの名前を変更することをお勧め"
"します。"
#: pretix/control/views/modelimport.py:188
msgid "The import was successful."
@@ -29623,7 +29637,7 @@ msgstr ""
#: pretix/plugins/banktransfer/camtimport.py:33
msgid "Empty file or unknown format."
msgstr "空のファイルまたは不明な形式。"
msgstr ""
#: pretix/plugins/banktransfer/payment.py:69
msgid ""
@@ -32118,16 +32132,16 @@ msgid "Przelewy24"
msgstr "Przelewy24"
#: pretix/plugins/stripe/payment.py:417 pretix/plugins/stripe/payment.py:1836
#, fuzzy
#| msgid "Payment by bank transfer"
msgid "Pay by bank"
msgstr "Pay by bank"
msgstr "銀行振込による支払い"
#: pretix/plugins/stripe/payment.py:422
msgid ""
"Currently only available for charges in GBP and customers with UK bank "
"accounts, and in private preview for France and Germany."
msgstr ""
"現在、英国ポンドでの請求と英国の銀行口座を持つ顧客、およびフランスとドイツの"
"プライベートプレビューでのみ利用できます。"
#: pretix/plugins/stripe/payment.py:429 pretix/plugins/stripe/payment.py:1789
msgid "WeChat Pay"
@@ -32432,16 +32446,16 @@ msgstr ""
"いておいてください。"
#: pretix/plugins/stripe/payment.py:1835
#, fuzzy
#| msgid "PayPal via Stripe"
msgid "Pay by bank via Stripe"
msgstr "Stripe経由でPay by bank"
msgstr "Stripe経由でPayPal"
#: pretix/plugins/stripe/payment.py:1841
msgid ""
"Pay by bank allows you to authorize a secure Open Banking payment from your "
"banking app. Currently available only with a UK bank account."
msgstr ""
"Pay by bankを使用すると、銀行アプリから安全なオープンバンキングの支払いを承認"
"できます。現在、英国の銀行口座でのみ利用できます。"
#: pretix/plugins/stripe/payment.py:1861
msgid "PayPal via Stripe"
@@ -32460,16 +32474,22 @@ msgstr ""
"能です。アプリを準備してください。"
#: pretix/plugins/stripe/payment.py:1893
#, fuzzy
#| msgid "giropay via Stripe"
msgid "PromptPay via Stripe"
msgstr "Stripe経由でPromptPay"
msgstr "Stripe経由でgiropay"
#: pretix/plugins/stripe/payment.py:1898
#, fuzzy
#| msgid ""
#| "This payment method is available to MobilePay app users in Denmark and "
#| "Finland. Please have your app ready."
msgid ""
"This payment method is available to PromptPay users in Thailand. Please have "
"your app ready."
msgstr ""
"この支払い方法は、タイのPromptPayユーザー利用できます。アプリを準備してくだ"
"さい。"
"この支払い方法は、デンマークとフィンランドのMobilePayアプリユーザー利用可能"
"です。アプリを準備してください。"
#: pretix/plugins/stripe/payment.py:1917
msgid "TWINT via Stripe"
@@ -32772,16 +32792,22 @@ msgid "Confirm payment: %(code)s"
msgstr "支払いを確認: %(code)s"
#: pretix/plugins/stripe/templates/pretixplugins/stripe/sca.html:32
#, fuzzy
#| msgid ""
#| "Please scan the barcode below to complete your WeChat payment. Once you "
#| "have completed your payment, you can refresh this page."
msgid ""
"Please scan the QR code below to complete your PromptPay payment. Once you "
"have completed your payment, you can refresh this page."
msgstr ""
"PromptPayの支払いを完了するには、以下のQRコードをスキャンしてください。支払い"
"が完了したら、このページを更新できます。"
"下記のバーコードをスキャンしてWeChat支払いを完了してください。支払いが完了し"
"たら、このページを更新してください。"
#: pretix/plugins/stripe/templates/pretixplugins/stripe/sca.html:37
#, fuzzy
#| msgid "Create QR code"
msgid "PromptPay QR code"
msgstr "PromptPay QRコード"
msgstr "注文番号"
#: pretix/plugins/stripe/templates/pretixplugins/stripe/sca_return.html:20
msgid "Confirming your payment…"
@@ -33799,7 +33825,10 @@ msgstr[0] ""
"このカテゴリから%(min_count)s個のオプションを選択する必要があります。"
#: pretix/presale/templates/pretixpresale/event/fragment_addon_choice.html:26
#, python-format
#, 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."
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] "このカテゴリから最大 %(max_count)s のオプションを選択できます。"
@@ -35845,8 +35874,6 @@ msgid ""
"Your cart timeout was extended. Please note that some of the prices in your "
"cart changed."
msgstr ""
"カートのタイムアウトが延長されました。カートの価格の一部が変更されましたので"
"ご注意ください。"
#: pretix/presale/views/cart.py:573
msgid "Your cart timeout was extended."

View File

@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-01-05 12:12+0000\n"
"PO-Revision-Date: 2026-01-12 17:00+0000\n"
"PO-Revision-Date: 2025-12-22 20:00+0000\n"
"Last-Translator: Ruud Hendrickx <ruud@leckxicon.eu>\n"
"Language-Team: Dutch (informal) <https://translate.pretix.eu/projects/pretix/"
"pretix/nl_Informal/>\n"
@@ -4008,16 +4008,18 @@ msgstr ""
#: pretix/base/invoicing/peppol.py:164
msgid "The Peppol participant ID is not registered on the Peppol network."
msgstr "De Peppol-deelnemers-ID is niet geregistreerd op het Peppol-netwerk."
msgstr ""
#: pretix/base/invoicing/peppol.py:184
msgid "Peppol participant ID"
msgstr "Peppol-deelnemers-ID"
#: pretix/base/invoicing/peppol.py:200
#, fuzzy
#| msgid "Gift card code"
msgctxt "peppol_invoice"
msgid "Visual copy"
msgstr "Visuele kopie"
msgstr "Cadeauboncode"
#: pretix/base/invoicing/peppol.py:205
msgctxt "peppol_invoice"
@@ -8767,8 +8769,6 @@ msgid ""
"Some products can no longer be purchased and have been removed from your "
"cart for the following reason: %s"
msgstr ""
"Sommige producten kunnen niet meer gekocht worden en zijn om de volgende "
"reden uit je winkelwagen verwijderd: %s"
#: pretix/base/services/cart.py:117
msgid ""
@@ -10037,15 +10037,21 @@ msgid "Uncategorized"
msgstr "Ongecategoriseerd"
#: pretix/base/services/tax.py:43
#, fuzzy
#| msgid ""
#| "Your VAT ID could not be checked, as the VAT checking service of your "
#| "country is currently not available. We will therefore need to charge VAT "
#| "on your invoice. You can get the tax amount back via the VAT "
#| "reimbursement process."
msgid ""
"Your VAT ID could not be checked, as the VAT checking service of your "
"country is currently not available. We will therefore need to charge you the "
"same tax rate as if you did not enter a VAT ID."
msgstr ""
"Je btw-nummer kon niet worden gecontroleerd, omdat de btw-controleservice "
"van je land momenteel niet beschikbaar is. We zullen daarom hetzelfde "
"belastingtarief in rekening moeten brengen als wanneer je geen btw-nummer "
"had opgegeven."
"Je btw-nummer kan niet worden gecontroleerd omdat de btw-controledienst van "
"jouw land momenteel niet beschikbaar is. We zijn daarom genoodzaakt om de "
"btw te factureren. Je kan het belastingbedrag terugkrijgen via het btw-"
"terugbetalingsproces."
#: pretix/base/services/tax.py:47 pretix/base/services/tax.py:366
#: pretix/base/services/tax.py:393
@@ -10500,17 +10506,21 @@ msgid "Ask for VAT ID"
msgstr "Vraag om btw-nummer"
#: pretix/base/settings.py:632
#, python-brace-format
#, fuzzy, python-brace-format
#| msgid ""
#| "Does only work if an invoice address is asked for. VAT ID is not required."
msgid ""
"Only works if an invoice address is asked for. VAT ID is only requested from "
"business customers in the following countries: {countries}."
msgstr ""
"Werkt alleen als een factuuradres wordt gevraagd. Btw-nummer is alleen "
"vereist voor zakelijke klanten in de volgende landen: {countries}."
"Werkt alleen als een factuuradres wordt gevraagd. Btw-nummer is niet "
"verplicht."
#: pretix/base/settings.py:651
#, fuzzy
#| msgid "Require name"
msgid "Require VAT ID in"
msgstr "Btw-nummer verplicht in"
msgstr "Naam opgeven verplicht"
#: pretix/base/settings.py:657
msgid ""
@@ -10518,9 +10528,6 @@ msgid ""
"ID in all countries. VAT ID will be required for all business addresses in "
"the selected countries."
msgstr ""
"Het btw-nummer is standaard optioneel, omdat niet alle bedrijven in alle "
"landen een btw-nummer toegewezen krijgen. Het btw-nummer is vereist voor "
"alle bedrijfsadressen in de geselecteerde landen."
#: pretix/base/settings.py:672
msgid "Invoice address explanation"
@@ -14357,9 +14364,11 @@ msgstr ""
"weer aan, ten minste voor deze site, of voor 'same-origin'-verzoeken."
#: pretix/base/views/js_helpers.py:41
#, fuzzy
#| msgid "ID"
msgctxt "tax_id_swiss"
msgid "UID"
msgstr "UID"
msgstr "ID"
#. Translators: Only translate to French (IDE) and Italien (IDI), otherwise keep the same
#. Awareness around VAT IDs differes by EU country. For example, in Germany the VAT ID is assigned
@@ -14965,8 +14974,6 @@ msgid ""
"Formatting is not supported, as some accounting departments process mail "
"automatically and do not handle formatted emails properly."
msgstr ""
"Opmaak wordt niet ondersteund, omdat sommige boekhoudafdelingen e-mails "
"automatisch verwerken en opgemaakte e-mails niet goed kunnen verwerken."
#: pretix/control/forms/event.py:1356
msgid ""
@@ -14974,7 +14981,7 @@ msgid ""
"the field is empty, the mail will never be sent."
msgstr ""
"Deze e-mail zal dit aantal dagen voor het evenement start worden verstuurd. "
"Als dit veld leeg is, zal de mail nooit worden verstuurd."
"Als dit veld leeg is zal de mail nooit worden verstuurd."
#: pretix/control/forms/event.py:1360
#, fuzzy
@@ -15465,7 +15472,7 @@ msgstr "Betaald"
#: pretix/control/forms/filter.py:1304
msgctxt "subevent"
msgid "Date doesn't start in selected date range."
msgstr "De datum valt niet binnen de geselecteerde datumrange."
msgstr ""
#: pretix/control/forms/filter.py:1360 pretix/control/forms/filter.py:1827
msgid "Shop live and presale running"
@@ -29841,9 +29848,6 @@ msgid ""
"automatically. We recommend that you rename these in your source file to "
"avoid problems during import."
msgstr ""
"Meerdere kolommen van het CSV-bestand hebben dezelfde naam en zijn "
"automatisch hernoemd. We raden aan deze in je bronbestand te hernoemen om "
"problemen tijdens het importeren te voorkomen."
#: pretix/control/views/modelimport.py:188
msgid "The import was successful."
@@ -31607,7 +31611,7 @@ msgstr ""
#: pretix/plugins/banktransfer/camtimport.py:33
msgid "Empty file or unknown format."
msgstr "Leeg bestand of onbekend format."
msgstr ""
#: pretix/plugins/banktransfer/payment.py:69
msgid ""
@@ -34202,9 +34206,6 @@ msgid ""
"generate you API keys with the recommended permission level for optimal "
"usage with pretix."
msgstr ""
"Met de bovenstaande knop installeer je onze Stripe-app op je account en "
"genereer je API-sleutels met het aanbevolen machtigingsniveau voor optimaal "
"gebruik met pretix."
#: pretix/plugins/stripe/payment.py:291
msgid "Secret key"
@@ -34265,8 +34266,6 @@ msgid ""
"Some payment methods might need to be enabled in the settings of your Stripe "
"account before they work properly."
msgstr ""
"Sommige betaalmethoden moeten mogelijk eerst worden ingeschakeld in de "
"instellingen van je Stripe-account voordat ze correct werken."
#: pretix/plugins/stripe/payment.py:350 pretix/plugins/stripe/payment.py:1572
msgid "Alipay"
@@ -34327,16 +34326,16 @@ msgid "Przelewy24"
msgstr "Przelewy24"
#: pretix/plugins/stripe/payment.py:417 pretix/plugins/stripe/payment.py:1836
#, fuzzy
#| msgid "Payment by bank transfer"
msgid "Pay by bank"
msgstr "Betaling via bank"
msgstr "Betaling via bankoverschrijving"
#: pretix/plugins/stripe/payment.py:422
msgid ""
"Currently only available for charges in GBP and customers with UK bank "
"accounts, and in private preview for France and Germany."
msgstr ""
"Momenteel alleen beschikbaar voor betalingen in GBP en klanten met een "
"Britse bankrekening, en in privé-preview voor Frankrijk en Duitsland."
#: pretix/plugins/stripe/payment.py:429 pretix/plugins/stripe/payment.py:1789
msgid "WeChat Pay"
@@ -34631,8 +34630,10 @@ msgid ""
msgstr ""
#: pretix/plugins/stripe/payment.py:1816
#, fuzzy
#| msgid "WeChat Pay via Stripe"
msgid "Revolut Pay via Stripe"
msgstr "Revolut Pay via Stripe"
msgstr "WeChat Pay via Stripe"
#: pretix/plugins/stripe/payment.py:1817
msgid "Revolut Pay"
@@ -34645,24 +34646,28 @@ msgid ""
msgstr ""
#: pretix/plugins/stripe/payment.py:1835
#, fuzzy
#| msgid "Payment via Stripe"
msgid "Pay by bank via Stripe"
msgstr "Betaling door bank via Stripe"
msgstr "Betaling via Stripe"
#: pretix/plugins/stripe/payment.py:1841
msgid ""
"Pay by bank allows you to authorize a secure Open Banking payment from your "
"banking app. Currently available only with a UK bank account."
msgstr ""
"Met Betalen door bank kun je een veilige Open Banking-betaling autoriseren "
"vanuit je bankapp. Momenteel alleen beschikbaar met een Britse bankrekening."
#: pretix/plugins/stripe/payment.py:1861
#, fuzzy
#| msgid "Payment via Stripe"
msgid "PayPal via Stripe"
msgstr "PayPal via Stripe"
msgstr "Betaling via Stripe"
#: pretix/plugins/stripe/payment.py:1869
#, fuzzy
#| msgid "EPS via Stripe"
msgid "Swish via Stripe"
msgstr "Swish via Stripe"
msgstr "EPS via Stripe"
#: pretix/plugins/stripe/payment.py:1874
msgid ""
@@ -34671,20 +34676,22 @@ msgid ""
msgstr ""
#: pretix/plugins/stripe/payment.py:1893
#, fuzzy
#| msgid "giropay via Stripe"
msgid "PromptPay via Stripe"
msgstr "PromptPay via Stripe"
msgstr "giropay via Stripe"
#: pretix/plugins/stripe/payment.py:1898
msgid ""
"This payment method is available to PromptPay users in Thailand. Please have "
"your app ready."
msgstr ""
"Deze betaalmethode is beschikbaar voor PromptPay-gebruikers in Thailand. "
"Zorg ervoor dat je de app bij de hand hebt."
#: pretix/plugins/stripe/payment.py:1917
#, fuzzy
#| msgid "EPS via Stripe"
msgid "TWINT via Stripe"
msgstr "TWINT via Stripe"
msgstr "EPS via Stripe"
#: pretix/plugins/stripe/payment.py:1922
msgid ""
@@ -35003,16 +35010,22 @@ msgid "Confirm payment: %(code)s"
msgstr "Betaling bevestigen: %(code)s"
#: pretix/plugins/stripe/templates/pretixplugins/stripe/sca.html:32
#, fuzzy
#| msgid ""
#| "Please scan the barcode below to complete your WeChat payment. Once you "
#| "have completed your payment, you can refresh this page."
msgid ""
"Please scan the QR code below to complete your PromptPay payment. Once you "
"have completed your payment, you can refresh this page."
msgstr ""
"Scan de QR-code hieronder om je PromptPay-betaling uit te voeren. Als je de "
"betaling hebt afgerond, kan je deze pagina verversen."
"Scan de QR-code hieronder om je WeChat-betaling uit te voeren. Als je de "
"betaling hebt afgerond kan je deze pagina verversen."
#: pretix/plugins/stripe/templates/pretixplugins/stripe/sca.html:37
#, fuzzy
#| msgid "Order code"
msgid "PromptPay QR code"
msgstr "PromptPay-QR-code"
msgstr "Bestelcode"
#: pretix/plugins/stripe/templates/pretixplugins/stripe/sca_return.html:20
msgid "Confirming your payment…"
@@ -36159,7 +36172,10 @@ msgstr[0] "Je moet precies één optie kiezen uit deze categorie."
msgstr[1] "Je moet %(min_count)s opties kiezen uit deze categorie."
#: pretix/presale/templates/pretixpresale/event/fragment_addon_choice.html:26
#, python-format
#, fuzzy, python-format
#| msgid "You can choose at most one option from this category."
#| msgid_plural ""
#| "You can choose up to %(max_count)s options from this category."
msgid "You can choose one option from this category."
msgid_plural "You can choose up to %(max_count)s options from this category."
msgstr[0] "Je kan maximaal één optie kiezen uit deze categorie."
@@ -38510,12 +38526,12 @@ msgid ""
"Your cart timeout was extended. Please note that some of the prices in your "
"cart changed."
msgstr ""
"De time-out van je winkelwagen is verlengd. Merk op dat sommige prijzen in "
"je winkelwagen gewijzigd zijn."
#: pretix/presale/views/cart.py:573
#, fuzzy
#| msgid "Your cart has been updated."
msgid "Your cart timeout was extended."
msgstr "De time-out van je winkelwagen is verlengd."
msgstr "Je winkelwagen is bijgewerkt."
#: pretix/presale/views/cart.py:588
msgid "The products have been successfully added to your cart."

View File

@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-01-05 12:12+0000\n"
"PO-Revision-Date: 2026-01-14 21:00+0000\n"
"PO-Revision-Date: 2025-11-07 23:00+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.14.2\n"
#: pretix/_base_settings.py:87
msgid "English"
@@ -8996,9 +8996,7 @@ msgstr ""
#, python-brace-format
msgctxt "invoice"
msgid "Please complete your payment before {expire_date}."
msgstr ""
"Om din betalning inte gick igenom, se till att uppdatera din "
"betalningsinformation innan {expire_date} via knappen nedan."
msgstr "{expire_date}."
#: pretix/base/services/invoices.py:128
#, python-brace-format
@@ -35836,7 +35834,7 @@ msgstr "Visa i backend"
#: pretix/presale/templates/pretixpresale/event/order.html:92
#, python-format
msgid "A payment of %(total)s is still pending for this order."
msgstr "Tack för din bokning på %(total)s."
msgstr "En faktura på totalt %(total)s kommer att skickas från Coeo."
#: pretix/presale/templates/pretixpresale/event/order.html:97
#, fuzzy, python-format
@@ -35845,7 +35843,7 @@ msgstr "Tack för din bokning!"
#: pretix/presale/templates/pretixpresale/event/order.html:108
msgid "Re-try payment or choose another payment method"
msgstr "Uppdatera eller ändra betalningsmetod"
msgstr "Tack"
#: pretix/presale/templates/pretixpresale/event/order.html:126
msgid ""

View File

@@ -8,16 +8,16 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-01-05 12:12+0000\n"
"PO-Revision-Date: 2026-01-12 17:00+0000\n"
"Last-Translator: chondaen12 <chondaen12@gmail.com>\n"
"Language-Team: Thai <https://translate.pretix.eu/projects/pretix/pretix/th/>"
"\n"
"PO-Revision-Date: 2024-03-30 11:00+0000\n"
"Last-Translator: Thatthep <amaudy@gmail.com>\n"
"Language-Team: Thai <https://translate.pretix.eu/projects/pretix/pretix/th/"
">\n"
"Language: th\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 5.15.1\n"
"X-Generator: Weblate 5.4.3\n"
#: pretix/_base_settings.py:87
msgid "English"
@@ -29,7 +29,7 @@ msgstr "เยอรมัน"
#: pretix/_base_settings.py:89
msgid "German (informal)"
msgstr "เยอรมัน (ไม่เป็นทางการ)"
msgstr "เยอรมัน"
#: pretix/_base_settings.py:90
msgid "Arabic"
@@ -3567,7 +3567,7 @@ msgstr ""
#: pretix/base/invoicing/pdf.py:732 pretix/base/invoicing/pdf.py:740
msgctxt "invoice"
msgid "Description"
msgstr "คำอธิบาย"
msgstr ""
#: pretix/base/invoicing/pdf.py:733 pretix/base/invoicing/pdf.py:741
msgctxt "invoice"
@@ -3577,7 +3577,7 @@ msgstr ""
#: pretix/base/invoicing/pdf.py:734 pretix/base/invoicing/pdf.py:1038
msgctxt "invoice"
msgid "Tax rate"
msgstr "อัตราภาษี"
msgstr ""
#: pretix/base/invoicing/pdf.py:735
msgctxt "invoice"
@@ -3592,7 +3592,7 @@ msgstr ""
#: pretix/base/invoicing/pdf.py:742
msgctxt "invoice"
msgid "Amount"
msgstr "จำนวน"
msgstr ""
#: pretix/base/invoicing/pdf.py:869
#, python-brace-format
@@ -3624,12 +3624,12 @@ msgstr ""
#: pretix/base/invoicing/pdf.py:979
msgctxt "invoice"
msgid "Paid by gift card"
msgstr "จ่ายโดยบัตรของขวัญ"
msgstr ""
#: pretix/base/invoicing/pdf.py:984
msgctxt "invoice"
msgid "Remaining amount"
msgstr "จำนวนคงเหลือ"
msgstr ""
#: pretix/base/invoicing/pdf.py:1008
#, python-brace-format
@@ -3640,7 +3640,7 @@ msgstr ""
#: pretix/base/invoicing/pdf.py:1039
msgctxt "invoice"
msgid "Net value"
msgstr "ยอดสุทธิ"
msgstr ""
#: pretix/base/invoicing/pdf.py:1040
msgctxt "invoice"
@@ -3650,7 +3650,7 @@ msgstr ""
#: pretix/base/invoicing/pdf.py:1041
msgctxt "invoice"
msgid "Tax"
msgstr "ภาษี"
msgstr ""
#: pretix/base/invoicing/pdf.py:1071
msgctxt "invoice"

View File

@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-01-05 12:12+0000\n"
"PO-Revision-Date: 2026-01-12 17:00+0000\n"
"PO-Revision-Date: 2025-12-22 20:00+0000\n"
"Last-Translator: Hijiri Umemoto <hijiri@umemoto.org>\n"
"Language-Team: Chinese (Traditional Han script) <https://translate.pretix.eu/"
"projects/pretix/pretix/zh_Hant/>\n"
@@ -288,28 +288,39 @@ msgid "The bundled item must not have bundles on its own."
msgstr "捆綁商品不得單獨捆綁。"
#: pretix/api/serializers/item.py:235
#, fuzzy
#| msgid "The payment is too late to be accepted."
msgid "The program start must not be empty."
msgstr "程式啟動不能為空。"
msgstr "付款太晚無法接受。"
#: pretix/api/serializers/item.py:239
#, fuzzy
#| msgid "The payment is too late to be accepted."
msgid "The program end must not be empty."
msgstr "程式結束不能為空。"
msgstr "付款太晚無法接受。"
#: pretix/api/serializers/item.py:242 pretix/base/models/items.py:2321
#, fuzzy
#| msgid "The maximum date must not be before the minimum value."
msgid "The program end must not be before the program start."
msgstr "程式不能在程式開始之前結束。"
msgstr "最大日期不得早於最小值。"
#: pretix/api/serializers/item.py:247 pretix/base/models/items.py:2315
#, fuzzy
#| msgid "You can not select a subevent if your event is not an event series."
msgid "You cannot use program times on an event series."
msgstr "您不能在事件系列中使用程式時間。"
msgstr "如果你的活動不是活動系列,則無法選擇子活動。"
#: pretix/api/serializers/item.py:337
#, fuzzy
#| msgid ""
#| "Updating add-ons, bundles, or variations via PATCH/PUT is not supported. "
#| "Please use the dedicated nested endpoint."
msgid ""
"Updating add-ons, bundles, program times or variations via PATCH/PUT is not "
"supported. Please use the dedicated nested endpoint."
msgstr ""
"不支援透過PATCH/PUT更新附加件、捆綁包、程式時間或變體。 請使用專用的巢狀端"
"點。"
"不支持通過 PATCH/PUT 更新附加件、捆綁包或變體。 請使用專用的嵌套端點。"
#: pretix/api/serializers/item.py:345
msgid "Only admission products can currently be personalized."
@@ -559,8 +570,10 @@ msgid "Event series date deleted"
msgstr "活動系列日期已刪除"
#: pretix/api/webhooks.py:375
#, fuzzy
#| msgid "Product name"
msgid "Product changed"
msgstr "產品已更改"
msgstr "商品名稱"
#: pretix/api/webhooks.py:376
msgid ""
@@ -601,12 +614,16 @@ msgid "Waiting list entry received voucher"
msgstr "候補名單條目收到憑證"
#: pretix/api/webhooks.py:413
#, fuzzy
#| msgid "Voucher code"
msgid "Voucher added"
msgstr "添加了優惠券"
msgstr "優惠券代碼"
#: pretix/api/webhooks.py:417
#, fuzzy
#| msgid "Voucher assigned"
msgid "Voucher changed"
msgstr "優惠券已更改"
msgstr "已分配的優惠券"
#: pretix/api/webhooks.py:418
msgid ""

View File

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

View File

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

View File

@@ -134,17 +134,12 @@ def test_revert_net_keep_gross_rounding_to_single_line(sample_lines):
assert l.tax_rate == Decimal("19.00")
@pytest.mark.django_db
@pytest.mark.parametrize("rounding_mode", [
"sum_by_net",
"sum_by_net_keep_gross",
])
def test_rounding_of_impossible_gross_price(rounding_mode):
def test_rounding_of_impossible_gross_price():
l = OrderPosition(
price=Decimal("23.00"),
)
l._calculate_tax(tax_rule=TaxRule(rate=Decimal("7.00")), invoice_address=InvoiceAddress())
apply_rounding(rounding_mode, "EUR", [l])
apply_rounding("sum_by_net", "EUR", [l])
assert l.price == Decimal("23.01")
assert l.price_includes_rounding_correction == Decimal("0.01")
assert l.tax_value == Decimal("1.51")
@@ -152,6 +147,19 @@ def test_rounding_of_impossible_gross_price(rounding_mode):
assert l.tax_rate == Decimal("7.00")
def test_rounding_of_impossible_gross_price_keep_gross():
l = OrderPosition(
price=Decimal("23.00"),
)
l._calculate_tax(tax_rule=TaxRule(rate=Decimal("7.00")), invoice_address=InvoiceAddress())
apply_rounding("sum_by_net_keep_gross", "EUR", [l])
assert l.price == Decimal("22.99")
assert l.price_includes_rounding_correction == Decimal("-0.01")
assert l.tax_value == Decimal("1.50")
assert l.tax_value_includes_rounding_correction == Decimal("0.00")
assert l.tax_rate == Decimal("7.00")
@pytest.mark.django_db
def test_round_down():
lines = [OrderPosition(
@@ -236,10 +244,8 @@ def test_do_not_touch_free(rounding_mode):
)
l2._calculate_tax(tax_rule=TaxRule(rate=Decimal("7.00")), invoice_address=InvoiceAddress())
apply_rounding(rounding_mode, "EUR", [l1, l2])
assert l2.price == Decimal("23.01")
assert l2.price_includes_rounding_correction == Decimal("0.01")
assert l2.tax_value == Decimal("1.51")
assert l2.tax_value_includes_rounding_correction == Decimal("0.01")
assert l2.price == Decimal("23.01") or l2.price == Decimal("22.99")
assert l2.price_includes_rounding_correction != Decimal("0.00") or l2.tax_value_includes_rounding_correction != Decimal("0.00")
assert l2.tax_rate == Decimal("7.00")
assert l1.price == Decimal("0.00")
assert l1.price_includes_rounding_correction == Decimal("0.00")