mirror of
https://github.com/pretix/pretix.git
synced 2026-01-11 22:32:27 +00:00
Compare commits
22 Commits
rounding-d
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5af7e1b6d6 | ||
|
|
9222ce0ecd | ||
|
|
8afb0e43e0 | ||
|
|
c65fecf45e | ||
|
|
1c684d62d4 | ||
|
|
48809dc477 | ||
|
|
71df116079 | ||
|
|
ad64f6e88b | ||
|
|
891ba9d99c | ||
|
|
5cd1476a07 | ||
|
|
cb393a0b31 | ||
|
|
af59a89ecb | ||
|
|
1eb0008da9 | ||
|
|
d6489c6dd8 | ||
|
|
abe6acc9d8 | ||
|
|
2dcbb791f0 | ||
|
|
2efc40e20b | ||
|
|
0693681473 | ||
|
|
3aabc8a163 | ||
|
|
062f8fa409 | ||
|
|
106339c928 | ||
|
|
222ea08dd0 |
6
.github/workflows/tests.yml
vendored
6
.github/workflows/tests.yml
vendored
@@ -23,13 +23,13 @@ jobs:
|
||||
name: Tests
|
||||
strategy:
|
||||
matrix:
|
||||
python-version: ["3.9", "3.10", "3.11"]
|
||||
python-version: ["3.10", "3.11", "3.13"]
|
||||
database: [sqlite, postgres]
|
||||
exclude:
|
||||
- database: sqlite
|
||||
python-version: "3.9"
|
||||
- database: sqlite
|
||||
python-version: "3.10"
|
||||
- database: sqlite
|
||||
python-version: "3.11"
|
||||
services:
|
||||
postgres:
|
||||
image: postgres:15
|
||||
|
||||
@@ -286,11 +286,6 @@ 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:
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
sphinx==9.1.*
|
||||
sphinx-rtd-theme~=3.1.0rc1
|
||||
sphinx-rtd-theme~=3.1.0rc2
|
||||
sphinxcontrib-httpdomain~=1.8.1
|
||||
sphinxcontrib-images~=1.0.1
|
||||
sphinxcontrib-jquery~=4.1
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
-e ../
|
||||
sphinx==9.1.*
|
||||
sphinx-rtd-theme~=3.1.0rc1
|
||||
sphinx-rtd-theme~=3.1.0rc2
|
||||
sphinxcontrib-httpdomain~=1.8.1
|
||||
sphinxcontrib-images~=1.0.1
|
||||
sphinxcontrib-jquery~=4.1
|
||||
|
||||
@@ -3,7 +3,7 @@ name = "pretix"
|
||||
dynamic = ["version"]
|
||||
description = "Reinventing presales, one ticket at a time"
|
||||
readme = "README.rst"
|
||||
requires-python = ">=3.9"
|
||||
requires-python = ">=3.10"
|
||||
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.2.*",
|
||||
"bleach==6.3.*",
|
||||
"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==25.2",
|
||||
"django-compressor==4.5.1",
|
||||
"django-bootstrap3==26.1",
|
||||
"django-compressor==4.6.0",
|
||||
"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.6.*",
|
||||
"django-phonenumber-field==8.3.*",
|
||||
"django-otp==1.7.*",
|
||||
"django-phonenumber-field==8.4.*",
|
||||
"django-redis==6.0.*",
|
||||
"django-scopes==2.0.*",
|
||||
"django-statici18n==2.6.*",
|
||||
"djangorestframework==3.16.*",
|
||||
"dnspython==2.7.*",
|
||||
"dnspython==2.8.*",
|
||||
"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.9", # 3.3.5 requires importlib-metadata>=4.4, but django-bootstrap3 requires importlib-metadata<3.
|
||||
"markdown==3.10", # 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==11.3.*",
|
||||
"Pillow==12.1.*",
|
||||
"pretix-plugin-build",
|
||||
"protobuf==6.33.*",
|
||||
"psycopg2-binary",
|
||||
@@ -89,10 +89,10 @@ dependencies = [
|
||||
"pytz-deprecation-shim==0.1.*",
|
||||
"pyuca",
|
||||
"qrcode==8.2",
|
||||
"redis==7.0.*",
|
||||
"redis==7.1.*",
|
||||
"reportlab==4.4.*",
|
||||
"requests==2.32.*",
|
||||
"sentry-sdk==2.48.*",
|
||||
"sentry-sdk==2.49.*",
|
||||
"sepaxml==2.7.*",
|
||||
"stripe==7.9.*",
|
||||
"text-unidecode==1.*",
|
||||
@@ -113,7 +113,7 @@ dev = [
|
||||
"fakeredis==2.33.*",
|
||||
"flake8==7.3.*",
|
||||
"freezegun",
|
||||
"isort==6.1.*",
|
||||
"isort==7.0.*",
|
||||
"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==8.4.*",
|
||||
"pytest==9.0.*",
|
||||
"responses",
|
||||
]
|
||||
|
||||
|
||||
@@ -284,27 +284,12 @@ 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 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:
|
||||
if 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
|
||||
@@ -327,11 +312,6 @@ 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:
|
||||
|
||||
@@ -32,13 +32,14 @@
|
||||
# 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
|
||||
from bleach.linkifier import build_email_re, build_url_re
|
||||
from bleach import DEFAULT_CALLBACKS, html5lib_shim
|
||||
from bleach.linkifier import build_email_re
|
||||
from django import template
|
||||
from django.conf import settings
|
||||
from django.core import signing
|
||||
@@ -124,6 +125,23 @@ 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)))
|
||||
@@ -333,8 +351,14 @@ 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
|
||||
attrs[None, "href"] = escape(format_map(attrs[None, "href"], context=context, mode=SafeFormatter.MODE_RICH_TO_PLAIN))
|
||||
# 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; 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
|
||||
))
|
||||
return attrs
|
||||
|
||||
context_callbacks.append(context_callback)
|
||||
|
||||
@@ -871,8 +871,7 @@ 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, "
|
||||
"but the system will prefer rounding them down instead of up."
|
||||
"possible. Gross prices may still change if they are impossible to derive from a rounded net price."
|
||||
),
|
||||
}
|
||||
self.fields["tax_rounding"].choices = (
|
||||
|
||||
@@ -814,7 +814,7 @@ class OrganizerPluginStateLogEntryType(LogEntryType):
|
||||
if app and hasattr(app, 'PretixPluginMeta'):
|
||||
return {
|
||||
'href': reverse('control:organizer.settings.plugins', kwargs={
|
||||
'organizer': logentry.event.organizer.slug,
|
||||
'organizer': logentry.organizer.slug,
|
||||
}) + '#plugin_' + logentry.parsed_data['plugin'],
|
||||
'val': app.PretixPluginMeta.name
|
||||
}
|
||||
|
||||
@@ -55,7 +55,7 @@
|
||||
<div class="col-md-2">
|
||||
{% bootstrap_field formset.empty_form.overwrite layout='inline' form_group_class="" %}
|
||||
</div>
|
||||
{{ f.value_map.as_hidden }}
|
||||
{{ formset.empty_form.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"
|
||||
|
||||
@@ -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-05 15:14+0000\n"
|
||||
"PO-Revision-Date: 2026-01-08 04:00+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 "DPH"
|
||||
msgstr "DIČ"
|
||||
|
||||
#: 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í číslo"
|
||||
msgstr "Interní označení"
|
||||
|
||||
#: 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 sedadla"
|
||||
msgstr "ID místa"
|
||||
|
||||
#: 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 sedadla"
|
||||
msgstr "Číslo místa"
|
||||
|
||||
#: 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 "PSČ"
|
||||
msgstr "Mezinárodní předvolba"
|
||||
|
||||
#: 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 "Zákazník"
|
||||
msgstr "Fyzická osoba"
|
||||
|
||||
#: pretix/base/invoicing/email.py:50
|
||||
msgid "Email invoice directly to accounting department"
|
||||
@@ -3571,19 +3571,15 @@ 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 ""
|
||||
msgstr "Pokud tuto možnost nezvolíte, zašleme fakturu na e-mail uvedený výše."
|
||||
|
||||
#: pretix/base/invoicing/email.py:55
|
||||
#, fuzzy
|
||||
#| msgid "Email address verified"
|
||||
msgid "Email address for invoice"
|
||||
msgstr "E-mailová adresa ověřena"
|
||||
msgstr "E-mail pro zaslání faktury"
|
||||
|
||||
#: pretix/base/invoicing/email.py:91
|
||||
#, fuzzy
|
||||
#| msgid "Preview email"
|
||||
msgid "PDF via email"
|
||||
msgstr "Náhled e-mailu"
|
||||
msgstr "PDF do e-mailu"
|
||||
|
||||
#: pretix/base/invoicing/national.py:37
|
||||
msgctxt "italian_invoice"
|
||||
@@ -3642,7 +3638,7 @@ msgstr "Faktura od"
|
||||
#: pretix/base/invoicing/pdf.py:433
|
||||
msgctxt "invoice"
|
||||
msgid "Invoice to"
|
||||
msgstr "Faktura na"
|
||||
msgstr "Fakturováno"
|
||||
|
||||
#: pretix/base/invoicing/pdf.py:470 pretix/base/invoicing/pdf.py:1221
|
||||
msgctxt "invoice"
|
||||
@@ -3672,12 +3668,12 @@ msgstr "Datum zrušení"
|
||||
#: pretix/base/invoicing/pdf.py:504
|
||||
msgctxt "invoice"
|
||||
msgid "Original invoice date"
|
||||
msgstr "Původní datum faktury"
|
||||
msgstr "Datum originální faktury"
|
||||
|
||||
#: pretix/base/invoicing/pdf.py:511 pretix/base/invoicing/pdf.py:1258
|
||||
msgctxt "invoice"
|
||||
msgid "Invoice date"
|
||||
msgstr "Datum faktury"
|
||||
msgstr "Datum vystavení"
|
||||
|
||||
#: pretix/base/invoicing/pdf.py:527
|
||||
msgctxt "invoice"
|
||||
@@ -3704,7 +3700,7 @@ msgstr "Faktura č. {num}"
|
||||
#, python-brace-format
|
||||
msgctxt "invoice"
|
||||
msgid "Customer reference: {reference}"
|
||||
msgstr "Referenční číslo zákazníka: {reference}"
|
||||
msgstr "Interní označení: {reference}"
|
||||
|
||||
#: pretix/base/invoicing/pdf.py:668
|
||||
msgctxt "invoice"
|
||||
@@ -3732,7 +3728,7 @@ msgstr "Faktura"
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html:244
|
||||
msgctxt "invoice"
|
||||
msgid "Cancellation"
|
||||
msgstr "Zrušení"
|
||||
msgstr "Storno"
|
||||
|
||||
#: pretix/base/invoicing/pdf.py:732 pretix/base/invoicing/pdf.py:740
|
||||
msgctxt "invoice"
|
||||
@@ -3768,13 +3764,13 @@ msgstr "Suma"
|
||||
#, python-brace-format
|
||||
msgctxt "invoice"
|
||||
msgid "Single price: {net_price} net / {gross_price} gross"
|
||||
msgstr "Jednotlivá cena: {net_price} netto / {gross_price} brutto"
|
||||
msgstr "Jednotková cena: {net_price} netto / {gross_price} brutto"
|
||||
|
||||
#: pretix/base/invoicing/pdf.py:900
|
||||
#, python-brace-format
|
||||
msgctxt "invoice"
|
||||
msgid "Single price: {price}"
|
||||
msgstr "Jednotná cena: {price}"
|
||||
msgstr "Jednotková cena: {price}"
|
||||
|
||||
#: pretix/base/invoicing/pdf.py:943 pretix/base/invoicing/pdf.py:948
|
||||
msgctxt "invoice"
|
||||
@@ -3802,12 +3798,10 @@ msgid "Remaining amount"
|
||||
msgstr "Zbývající částka"
|
||||
|
||||
#: pretix/base/invoicing/pdf.py:1008
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgctxt "invoice"
|
||||
#| msgid "Event date: {date_range}"
|
||||
#, python-brace-format
|
||||
msgctxt "invoice"
|
||||
msgid "Invoice period: {daterange}"
|
||||
msgstr "Datum akce: {date_range}"
|
||||
msgstr "Fakturované období: {daterange}"
|
||||
|
||||
#: pretix/base/invoicing/pdf.py:1039
|
||||
msgctxt "invoice"
|
||||
@@ -4175,7 +4169,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í sedadlo."
|
||||
msgstr "Nebylo nalezeno žádné odpovídající místo."
|
||||
|
||||
#: pretix/base/modelimport_orders.py:631
|
||||
#: pretix/base/modelimport_vouchers.py:296 pretix/base/services/cart.py:220
|
||||
@@ -4280,7 +4274,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 sedadlo, musíte si vybrat konkrétní produkt."
|
||||
msgstr "Pokud si vyberete místo, musíte zvolit konkrétní produkt."
|
||||
|
||||
#: pretix/base/modelimport_vouchers.py:302 pretix/base/models/vouchers.py:519
|
||||
msgid "Seat-specific vouchers can only be used once."
|
||||
@@ -4289,7 +4283,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 sedadlo je třeba vybrat produkt \"{prod}\"."
|
||||
msgstr "Pro toto místo 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
|
||||
@@ -5237,13 +5231,13 @@ msgstr ""
|
||||
#, python-format
|
||||
msgctxt "invoice"
|
||||
msgid "Tax ID: %s"
|
||||
msgstr "DIČ: %s"
|
||||
msgstr "IČO: %s"
|
||||
|
||||
#: pretix/base/models/invoices.py:240 pretix/base/services/invoices.py:155
|
||||
#, python-format
|
||||
msgctxt "invoice"
|
||||
msgid "VAT-ID: %s"
|
||||
msgstr "IČO: %s"
|
||||
msgstr "DIČ: %s"
|
||||
|
||||
#: pretix/base/models/items.py:93
|
||||
msgid "Category name"
|
||||
@@ -6446,7 +6440,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 "Sedadlo \"{seat}\" již není k dispozici.."
|
||||
msgstr "Místo \"{seat}\" již není k dispozici."
|
||||
|
||||
#: pretix/base/models/orders.py:1067
|
||||
#, python-brace-format
|
||||
@@ -6635,7 +6629,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 "Tento odkaz bude pro vaše potřeby vytištěn na faktuře."
|
||||
msgstr "Tato informace bude uvedena na faktuře pro vaše potřeby."
|
||||
|
||||
#: pretix/base/models/orders.py:3534
|
||||
msgid "Transmission type"
|
||||
@@ -6831,7 +6825,7 @@ msgstr "Řada {number}"
|
||||
#: pretix/base/models/seating.py:205
|
||||
#, python-brace-format
|
||||
msgid "Seat {number}"
|
||||
msgstr "Sedadlo {number}"
|
||||
msgstr "Místo {number}"
|
||||
|
||||
#: pretix/base/models/tax.py:143
|
||||
msgid "Standard rates"
|
||||
@@ -7273,7 +7267,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 sedadla \"{id}\" pro tuto událost neexistuje."
|
||||
msgstr "Zadané ID místa \"{id}\" pro tuto událost neexistuje."
|
||||
|
||||
#: pretix/base/models/vouchers.py:511
|
||||
#, python-brace-format
|
||||
@@ -7314,7 +7308,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 není v současné době k dispozici žádné sedadlo."
|
||||
msgstr "K tomuto produktu nejsou v současné době k dispozici žádná místa."
|
||||
|
||||
#: pretix/base/models/waitinglist.py:189
|
||||
msgid "A voucher has already been sent to this person."
|
||||
@@ -8133,11 +8127,11 @@ msgstr ""
|
||||
|
||||
#: pretix/base/pdf.py:505
|
||||
msgid "Seat: Full name"
|
||||
msgstr "Sedadlo: Celé jméno"
|
||||
msgstr "Místo: Celé jméno"
|
||||
|
||||
#: pretix/base/pdf.py:506
|
||||
msgid "Ground floor, Row 3, Seat 4"
|
||||
msgstr "Přízemí, řada 3, sedadlo 4"
|
||||
msgstr "Přízemí, řada 3, místo 4"
|
||||
|
||||
#: pretix/base/pdf.py:508 pretix/base/pdf.py:514
|
||||
#: pretix/control/forms/orders.py:344
|
||||
@@ -8146,7 +8140,7 @@ msgstr "včetně všech daní"
|
||||
|
||||
#: pretix/base/pdf.py:511
|
||||
msgid "Seat: zone"
|
||||
msgstr "Sedadlo: zóna"
|
||||
msgstr "Místo: zóna"
|
||||
|
||||
#: pretix/base/pdf.py:512
|
||||
msgid "Ground floor"
|
||||
@@ -8154,11 +8148,11 @@ msgstr "parket"
|
||||
|
||||
#: pretix/base/pdf.py:517
|
||||
msgid "Seat: row"
|
||||
msgstr "sedadlo: řada"
|
||||
msgstr "Místo: řada"
|
||||
|
||||
#: pretix/base/pdf.py:522
|
||||
msgid "Seat: seat number"
|
||||
msgstr "sedadlo: číslo"
|
||||
msgstr "Místo: číslo"
|
||||
|
||||
#: pretix/base/pdf.py:527
|
||||
msgid "Date and time of first scan"
|
||||
@@ -8554,7 +8548,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 sedadlo."
|
||||
msgstr "Tento poukaz není platný pro toto místo."
|
||||
|
||||
#: pretix/base/services/cart.py:193
|
||||
msgid ""
|
||||
@@ -10354,11 +10348,8 @@ 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 faktury"
|
||||
msgstr "Datum vystavení"
|
||||
|
||||
#: pretix/base/settings.py:1173
|
||||
#, fuzzy
|
||||
@@ -10411,11 +10402,11 @@ msgstr "ulice Alberta-Einstein 52"
|
||||
|
||||
#: pretix/base/settings.py:1299
|
||||
msgid "Domestic tax ID"
|
||||
msgstr "Domácí daňové identifikační číslo"
|
||||
msgstr "Lokální identifikační číslo"
|
||||
|
||||
#: pretix/base/settings.py:1300
|
||||
msgid "e.g. tax number in Germany, ABN in Australia, …"
|
||||
msgstr "např. daňové číslo v Německu, číslo ABN v Austrálii, …"
|
||||
msgstr "např. IČO v Česku, daňové číslo v Německu, číslo ABN v Austrálii, …"
|
||||
|
||||
#: pretix/base/settings.py:1310
|
||||
msgid "EU VAT ID"
|
||||
@@ -12707,7 +12698,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"
|
||||
@@ -12922,7 +12913,7 @@ msgstr "Očekávaný název hostitele podle konfigurace"
|
||||
|
||||
#: pretix/base/templates/400_hostname.html:26
|
||||
msgid "Received headers"
|
||||
msgstr "Přijaté titulky"
|
||||
msgstr "Přijaté hlavičky"
|
||||
|
||||
#: pretix/base/templates/400_hostname.html:32
|
||||
msgid "ignored"
|
||||
@@ -15751,7 +15742,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 "Sedadlo"
|
||||
msgstr "Místo"
|
||||
|
||||
#: pretix/control/forms/orders.py:348
|
||||
#: pretix/control/templates/pretixcontrol/order/change.html:182
|
||||
@@ -16557,7 +16548,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}: Sedadlo \" {old_seat}\" se změnilo na \"{new_seat}\"."
|
||||
msgstr "Pozice #{posid}: Místo \" {old_seat}\" se změnilo na \"{new_seat}\"."
|
||||
|
||||
#: pretix/control/logdisplay.py:127
|
||||
#, python-brace-format
|
||||
@@ -18641,7 +18632,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 to trvá déle než několik minut, kontaktujte nás."
|
||||
msgstr "Pokud akce 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
|
||||
@@ -21587,9 +21578,8 @@ msgid "August"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/global_sysreport.html:24
|
||||
#, fuzzy
|
||||
msgid "September"
|
||||
msgstr "Číslo sedadla"
|
||||
msgstr "Září"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/global_sysreport.html:25
|
||||
msgid "October"
|
||||
@@ -23309,12 +23299,12 @@ msgstr "Celkem"
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html:789
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html:210
|
||||
msgid "Successful payments"
|
||||
msgstr ""
|
||||
msgstr "Úspěšné platby"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html:798
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html:219
|
||||
msgid "Pending total"
|
||||
msgstr ""
|
||||
msgstr "Čeká na platbu"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html:824
|
||||
#: pretix/control/templates/pretixcontrol/search/payments.html:88
|
||||
@@ -28356,7 +28346,7 @@ msgstr ""
|
||||
#: pretix/control/views/organizer.py:3483
|
||||
#: pretix/control/views/organizer.py:3527
|
||||
msgid "Your changes could not be saved."
|
||||
msgstr ""
|
||||
msgstr "Vaše změny nebyly uloženy."
|
||||
|
||||
#: pretix/control/views/organizer.py:982
|
||||
msgid "The selected team cannot be deleted."
|
||||
@@ -30853,7 +30843,7 @@ msgstr "Stránka %d z %d"
|
||||
#: pretix/plugins/reports/exporters.py:210
|
||||
#, python-format
|
||||
msgid "Page %d"
|
||||
msgstr "Strana %dd"
|
||||
msgstr "Stránka %dd"
|
||||
|
||||
#: pretix/plugins/reports/exporters.py:212
|
||||
#, python-format
|
||||
@@ -33199,7 +33189,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 "Nákupní košík vypršel"
|
||||
msgstr "Rezervace košíku vypršela"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_base.html:36
|
||||
msgid "Show full cart"
|
||||
@@ -33430,7 +33420,7 @@ msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:9
|
||||
msgid "Before we continue, we need you to answer some questions."
|
||||
msgstr "Před provedením objednávky prosím odpovězte na níže uvedené otázky."
|
||||
msgstr "Pro dokončení objednávky potřebujeme následující údaje."
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:49
|
||||
msgid "Auto-fill with address"
|
||||
@@ -33444,7 +33434,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 výše uvedených položek"
|
||||
msgstr "Zkopírujte odpovědi z předchozího"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:150
|
||||
msgid "Auto-fill with profile"
|
||||
@@ -33569,7 +33559,7 @@ msgstr "Zobrazit varianty"
|
||||
#: pretix/presale/templates/pretixpresale/event/voucher.html:147
|
||||
#: pretix/presale/templates/pretixpresale/event/voucher.html:304
|
||||
msgid "Original price:"
|
||||
msgstr "Originální cena:"
|
||||
msgstr "Původní cena:"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_addon_choice.html:136
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_addon_choice.html:278
|
||||
@@ -33717,7 +33707,7 @@ msgstr "Celková cena"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:46
|
||||
msgid "Seat:"
|
||||
msgstr "Sedadlo:"
|
||||
msgstr "Místo:"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:61
|
||||
msgctxt "subevent"
|
||||
@@ -33862,16 +33852,12 @@ 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 "Popis akce"
|
||||
msgstr "Obnovit rezervaci"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:526
|
||||
#, fuzzy
|
||||
#| msgid "Reservation period"
|
||||
msgid "Reservation renewed"
|
||||
msgstr "Doba rezervace"
|
||||
msgstr "Rezervace obnovena"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:532
|
||||
msgid "Overview of your ordered products."
|
||||
@@ -34176,14 +34162,12 @@ 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
|
||||
#, fuzzy, python-format
|
||||
#| msgid "%(count)s event"
|
||||
#| msgid_plural "%(count)s events"
|
||||
#, python-format
|
||||
msgid "%(amount)s× in your cart"
|
||||
msgid_plural "%(amount)s× in your cart"
|
||||
msgstr[0] "%(count)s akce"
|
||||
msgstr[1] "%(count)s akce"
|
||||
msgstr[2] "%(count)s akcí"
|
||||
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"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_product_list.html:209
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_product_list.html:374
|
||||
@@ -34567,7 +34551,7 @@ msgstr "Změňte své údaje"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html:335
|
||||
msgid "Internal Reference"
|
||||
msgstr "Interní reference"
|
||||
msgstr "Interní označení"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/order.html:354
|
||||
msgctxt "action"
|
||||
@@ -35631,12 +35615,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 "Váš košík byl aktualizován."
|
||||
msgstr "Platnost vašeho košíku byla prodloužena."
|
||||
|
||||
#: pretix/presale/views/cart.py:588
|
||||
msgid "The products have been successfully added to your cart."
|
||||
|
||||
@@ -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: 2025-09-08 18:57+0000\n"
|
||||
"Last-Translator: Alois Pospíšil <alois.pospisil@gmail.com>\n"
|
||||
"PO-Revision-Date: 2026-01-08 04:00+0000\n"
|
||||
"Last-Translator: Jiří Pastrňák <jiri@pastrnak.email>\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.13\n"
|
||||
"X-Generator: Weblate 5.15.1\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 ""
|
||||
msgstr "Pokud akce trvá déle než několik minut, kontaktujte nás."
|
||||
|
||||
#: 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 "Nákupní košík vypršel"
|
||||
msgstr "Rezervace košíku vypršela"
|
||||
|
||||
#: pretix/static/pretixpresale/js/ui/cart.js:58
|
||||
#: pretix/static/pretixpresale/js/ui/cart.js:84
|
||||
@@ -753,27 +753,23 @@ msgstr[2] ""
|
||||
|
||||
#: pretix/static/pretixpresale/js/ui/cart.js:83
|
||||
msgid "Your cart has expired."
|
||||
msgstr "Nákupní košík vypršel."
|
||||
msgstr "Platnost rezervace vašeho košíku vypršela."
|
||||
|
||||
#: 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 they’re 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 pro vás rezervovány. Pokud je lístek "
|
||||
"stále dostupný, můžete objednávku dokončit."
|
||||
"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é."
|
||||
|
||||
#: pretix/static/pretixpresale/js/ui/cart.js:87
|
||||
msgid "Do you want to renew the reservation period?"
|
||||
msgstr ""
|
||||
msgstr "Chcete obnovit rezervaci košíku?"
|
||||
|
||||
#: pretix/static/pretixpresale/js/ui/cart.js:90
|
||||
msgid "Renew reservation"
|
||||
msgstr ""
|
||||
msgstr "Obnovit rezervaci"
|
||||
|
||||
#: pretix/static/pretixpresale/js/ui/main.js:194
|
||||
msgid "The organizer keeps %(currency)s %(amount)s"
|
||||
|
||||
@@ -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: 2025-11-22 23:00+0000\n"
|
||||
"PO-Revision-Date: 2026-01-06 23:00+0000\n"
|
||||
"Last-Translator: CVZ-es <damien.bremont@casadevelazquez.org>\n"
|
||||
"Language-Team: Spanish <https://translate.pretix.eu/projects/pretix/pretix/"
|
||||
"es/>\n"
|
||||
@@ -17,7 +17,7 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 5.14.3\n"
|
||||
"X-Generator: Weblate 5.15.1\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 ""
|
||||
msgstr "El ID de participante de Peppol no está registrado en la red Peppol."
|
||||
|
||||
#: pretix/base/invoicing/peppol.py:184
|
||||
msgid "Peppol participant ID"
|
||||
@@ -8445,6 +8445,8 @@ 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 ""
|
||||
@@ -9626,21 +9628,15 @@ 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 ""
|
||||
"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."
|
||||
"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."
|
||||
|
||||
#: pretix/base/services/tax.py:47 pretix/base/services/tax.py:366
|
||||
#: pretix/base/services/tax.py:393
|
||||
@@ -10081,24 +10077,18 @@ msgid "Ask for VAT ID"
|
||||
msgstr "Solicitar ID de IVA"
|
||||
|
||||
#: pretix/base/settings.py:632
|
||||
#, 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}"
|
||||
#, python-brace-format
|
||||
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 factura. El ID de IVA nunca es "
|
||||
"obligatorio y solo se solicita a clientes comerciales en los siguientes "
|
||||
"países: {countries}"
|
||||
"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}."
|
||||
|
||||
#: pretix/base/settings.py:651
|
||||
#, fuzzy
|
||||
#| msgid "Require name"
|
||||
msgid "Require VAT ID in"
|
||||
msgstr "Requerir nombre"
|
||||
msgstr "Solicitar número de identificación fiscal en"
|
||||
|
||||
#: pretix/base/settings.py:657
|
||||
msgid ""
|
||||
@@ -10106,6 +10096,10 @@ 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"
|
||||
@@ -13838,11 +13832,9 @@ msgstr ""
|
||||
"mismo origen\"."
|
||||
|
||||
#: pretix/base/views/js_helpers.py:41
|
||||
#, fuzzy
|
||||
#| msgid "ID"
|
||||
msgctxt "tax_id_swiss"
|
||||
msgid "UID"
|
||||
msgstr "ID"
|
||||
msgstr "UID"
|
||||
|
||||
#. 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
|
||||
@@ -13852,35 +13844,27 @@ msgstr "ID"
|
||||
#. 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 "Identificador IVA"
|
||||
msgstr "Número de identificación fiscal / P.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 "Identificador IVA"
|
||||
msgstr "Número de identificación fiscal / TIN"
|
||||
|
||||
#. 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 "Identificador IVA"
|
||||
msgstr "Número de identificación fiscal / NIF"
|
||||
|
||||
#. 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 "Identificador IVA"
|
||||
msgstr "NIF"
|
||||
|
||||
#: pretix/base/views/tasks.py:185
|
||||
msgid "An unexpected error has occurred, please try again later."
|
||||
@@ -14436,6 +14420,9 @@ 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 ""
|
||||
@@ -14889,7 +14876,7 @@ msgstr "Pagado"
|
||||
#: pretix/control/forms/filter.py:1304
|
||||
msgctxt "subevent"
|
||||
msgid "Date doesn't start in selected date range."
|
||||
msgstr ""
|
||||
msgstr "La fecha no comienza en el intervalo de fechas seleccionado."
|
||||
|
||||
#: pretix/control/forms/filter.py:1360 pretix/control/forms/filter.py:1827
|
||||
msgid "Shop live and presale running"
|
||||
@@ -28812,6 +28799,9 @@ 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."
|
||||
@@ -30483,7 +30473,7 @@ msgstr ""
|
||||
|
||||
#: pretix/plugins/banktransfer/camtimport.py:33
|
||||
msgid "Empty file or unknown format."
|
||||
msgstr ""
|
||||
msgstr "Archivo vacío o formato desconocido."
|
||||
|
||||
#: pretix/plugins/banktransfer/payment.py:69
|
||||
msgid ""
|
||||
@@ -33053,16 +33043,17 @@ 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 "Pago por transferencia bancaria"
|
||||
msgstr "Pagar 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"
|
||||
@@ -33374,16 +33365,17 @@ 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 "PayPal via Stripe"
|
||||
msgstr "Pagar por transferencia bancaria a través de 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"
|
||||
@@ -33402,22 +33394,16 @@ 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 "giropay via Stripe"
|
||||
msgstr "PromptPay a través de 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 modo de pago está disponible para los usuarios de la aplicación "
|
||||
"MobilePay en Dinamarca y Finlandia. Por favor, tenga su app preparada."
|
||||
"Este método de pago está disponible para los usuarios de PromptPay en "
|
||||
"Tailandia. Por favor, tenga su aplicación lista."
|
||||
|
||||
#: pretix/plugins/stripe/payment.py:1917
|
||||
msgid "TWINT via Stripe"
|
||||
@@ -33728,22 +33714,16 @@ 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 de barras a continuación para completar su pago de WeChat. "
|
||||
"Una vez que haya completado su pago, puede actualizar esta página."
|
||||
"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."
|
||||
|
||||
#: pretix/plugins/stripe/templates/pretixplugins/stripe/sca.html:37
|
||||
#, fuzzy
|
||||
#| msgid "Create QR code"
|
||||
msgid "PromptPay QR code"
|
||||
msgstr "Crear código QR"
|
||||
msgstr "Código QR de PromptPay"
|
||||
|
||||
#: pretix/plugins/stripe/templates/pretixplugins/stripe/sca_return.html:20
|
||||
msgid "Confirming your payment…"
|
||||
@@ -34790,14 +34770,11 @@ 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
|
||||
#, 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."
|
||||
#, python-format
|
||||
msgid "You can choose one option from this category."
|
||||
msgid_plural "You can choose up to %(max_count)s options from this category."
|
||||
msgstr[0] "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."
|
||||
msgstr[0] "Puede elegir una opción de esta categoría."
|
||||
msgstr[1] "Puede elegir hasta %(max_count)s opciones de esta categoría."
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_addon_choice.html:34
|
||||
#, python-format
|
||||
@@ -36885,6 +36862,8 @@ 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."
|
||||
|
||||
@@ -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 14:46+0000\n"
|
||||
"PO-Revision-Date: 2026-01-06 23:00+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 d'identification TVA"
|
||||
msgstr "Numéro de TVA intracommunautaire"
|
||||
|
||||
#. 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 d'identification TVA / TIN"
|
||||
msgstr "Numéro de TVA intracommunautaire / 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 d'identification TVA"
|
||||
msgstr "Numéro de TVA intracommunautaire"
|
||||
|
||||
#. 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 d'identification TVA / NIF"
|
||||
msgstr "Numéro de TVA intracommunautaire / NIF"
|
||||
|
||||
#: pretix/base/views/tasks.py:185
|
||||
msgid "An unexpected error has occurred, please try again later."
|
||||
@@ -29015,6 +29015,9 @@ 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."
|
||||
@@ -30705,7 +30708,7 @@ msgstr ""
|
||||
|
||||
#: pretix/plugins/banktransfer/camtimport.py:33
|
||||
msgid "Empty file or unknown format."
|
||||
msgstr ""
|
||||
msgstr "Fichier vide ou format inconnu."
|
||||
|
||||
#: pretix/plugins/banktransfer/payment.py:69
|
||||
msgid ""
|
||||
@@ -33300,16 +33303,17 @@ 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 "Paiement par virement bancaire"
|
||||
msgstr "Payer 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"
|
||||
@@ -33626,16 +33630,17 @@ msgstr ""
|
||||
"connexion à porter de main."
|
||||
|
||||
#: pretix/plugins/stripe/payment.py:1835
|
||||
#, fuzzy
|
||||
#| msgid "PayPal via Stripe"
|
||||
msgid "Pay by bank via Stripe"
|
||||
msgstr "PayPal via Stripe"
|
||||
msgstr "Payer par virement bancaire 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"
|
||||
@@ -33654,22 +33659,16 @@ 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 "giropay via Stripe"
|
||||
msgstr "PromptPay 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 l'application "
|
||||
"MobilePay au Danemark et en Finlande. Veuillez préparer votre application."
|
||||
"Ce mode de paiement est disponible pour les utilisateurs de PromptPay en "
|
||||
"Thaïlande. Veuillez préparer votre application."
|
||||
|
||||
#: pretix/plugins/stripe/payment.py:1917
|
||||
msgid "TWINT via Stripe"
|
||||
@@ -33984,23 +33983,17 @@ 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-barres ci-dessous pour effectuer votre paiement "
|
||||
"WeChat. Une fois que vous avez effectué votre paiement, vous pouvez "
|
||||
"actualiser cette page."
|
||||
"Veuillez scanner le code QR ci-dessous pour effectuer votre paiement "
|
||||
"PromptPay. Une fois votre paiement effectué, vous pouvez actualiser cette "
|
||||
"page."
|
||||
|
||||
#: pretix/plugins/stripe/templates/pretixplugins/stripe/sca.html:37
|
||||
#, fuzzy
|
||||
#| msgid "Create QR code"
|
||||
msgid "PromptPay QR code"
|
||||
msgstr "Créer un code QR"
|
||||
msgstr "Code QR PromptPay"
|
||||
|
||||
#: pretix/plugins/stripe/templates/pretixplugins/stripe/sca_return.html:20
|
||||
msgid "Confirming your payment…"
|
||||
@@ -35057,14 +35050,11 @@ 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
|
||||
#, 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."
|
||||
#, python-format
|
||||
msgid "You can choose one option from this category."
|
||||
msgid_plural "You can choose up to %(max_count)s options from this category."
|
||||
msgstr[0] "Vous pouvez choisir au plus une option de cette catégorie."
|
||||
msgstr[1] "Vous pouvez choisir jusqu' à %(max_count)s dans cette catégorie."
|
||||
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."
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_addon_choice.html:34
|
||||
#, python-format
|
||||
@@ -37195,6 +37185,8 @@ 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."
|
||||
|
||||
@@ -656,6 +656,11 @@ 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
|
||||
|
||||
@@ -227,7 +227,9 @@ 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>"
|
||||
"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"
|
||||
})
|
||||
djmail.outbox = []
|
||||
event, user, organizer = env
|
||||
@@ -249,6 +251,8 @@ 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 '<' not in djmail.outbox[0].body
|
||||
assert '&' not in djmail.outbox[0].body
|
||||
html = _extract_html(djmail.outbox[0])
|
||||
@@ -272,3 +276,13 @@ 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&eventid=dummy" rel="noopener" '
|
||||
r'style="[^"]+" target="_blank">https://example.com/form\?action=foo&eventid=dummy</a>',
|
||||
html
|
||||
)
|
||||
assert re.search(
|
||||
r'URL with params and text: <a href="https://example.com/form\?action=foo&eventid=dummy" rel="noopener" '
|
||||
r'style="[^"]+" target="_blank">Link & Text</a>',
|
||||
html
|
||||
)
|
||||
|
||||
@@ -134,12 +134,17 @@ def test_revert_net_keep_gross_rounding_to_single_line(sample_lines):
|
||||
assert l.tax_rate == Decimal("19.00")
|
||||
|
||||
|
||||
def test_rounding_of_impossible_gross_price():
|
||||
@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):
|
||||
l = OrderPosition(
|
||||
price=Decimal("23.00"),
|
||||
)
|
||||
l._calculate_tax(tax_rule=TaxRule(rate=Decimal("7.00")), invoice_address=InvoiceAddress())
|
||||
apply_rounding("sum_by_net", "EUR", [l])
|
||||
apply_rounding(rounding_mode, "EUR", [l])
|
||||
assert l.price == Decimal("23.01")
|
||||
assert l.price_includes_rounding_correction == Decimal("0.01")
|
||||
assert l.tax_value == Decimal("1.51")
|
||||
@@ -147,19 +152,6 @@ def test_rounding_of_impossible_gross_price():
|
||||
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(
|
||||
@@ -244,8 +236,10 @@ 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") 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.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.tax_rate == Decimal("7.00")
|
||||
assert l1.price == Decimal("0.00")
|
||||
assert l1.price_includes_rounding_correction == Decimal("0.00")
|
||||
|
||||
Reference in New Issue
Block a user