Compare commits

...
Author SHA1 Message Date
Richard Schreiber 5aa8b6c329 Close dialog onclick on backdrop 2025-05-21 20:47:17 +02:00
luelistaandGitHub a84beef269 [A11y] Cart renewal (#5109)
Allow customers to extend their cart reservation up to 11 times the configured reservation time
2025-05-21 17:02:21 +02:00
Richard SchreiberandGitHub 7c59ec51ca [A11y] switch modal dialogs to <dialog> tag (#5128)
* add templatetag {% dialog %} using <dialog> tag
* new dialog style
* show dialog when empty add-to-cart instead of disabling the button
* update cookieconsent-modal to use new template tag
2025-05-21 16:52:49 +02:00
Richard SchreiberandGitHub bf47da521c [A11y] add heading-level to product list (#5121) 2025-05-21 13:31:05 +02:00
Richard SchreiberandGitHub e3b74249c9 [A11y] fix skip-link z-index (#5123) 2025-05-21 13:30:39 +02:00
Richard SchreiberandGitHub 1791a63f87 [A11y] Do not underline event-titles in organizer’s event-list (#5124) 2025-05-21 13:26:27 +02:00
Raphael Michel f931362bc5 Add missing flag for Basque language 2025-05-21 12:57:19 +02:00
Raphael Michel a836dc1588 Add Hebrew language 2025-05-21 12:52:53 +02:00
Raphael MichelandRaphael Michel 8b6685dd89 Translations: Update Hebrew
Currently translated at 100.0% (5885 of 5885 strings)

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

powered by weblate
2025-05-21 12:47:42 +02:00
roi belotsercovskyandRaphael Michel 7463e41be8 Translations: Update Hebrew
Currently translated at 0.0% (0 of 5869 strings)

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

powered by weblate
2025-05-21 12:47:42 +02:00
Raphael MichelandRaphael Michel 31b2a9026d Translations: Add Hebrew 2025-05-21 12:47:42 +02:00
Raphael MichelandRaphael Michel 1d49d7cbf7 Translations: Delete Hebrew 2025-05-21 12:47:42 +02:00
조정화andRaphael Michel 30570fe287 Translations: Update Korean
Currently translated at 39.5% (2322 of 5869 strings)

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

powered by weblate
2025-05-21 12:47:42 +02:00
roi belotsercovskyandRaphael Michel 00508dea99 Translations: Update Hebrew
Currently translated at 0.1% (1 of 5869 strings)

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

powered by weblate
2025-05-21 12:47:42 +02:00
Patrick ChiltonandRaphael Michel 6be4e2bd7b Translations: Update Hungarian
Currently translated at 10.9% (642 of 5869 strings)

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

powered by weblate
2025-05-21 12:47:42 +02:00
bstramsekandRaphael Michel b014446399 Translations: Update Slovenian
Currently translated at 39.3% (96 of 244 strings)

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

powered by weblate
2025-05-21 12:47:42 +02:00
DavidandRaphael Michel 5053d4db6b Translations: Update Czech
Currently translated at 96.3% (235 of 244 strings)

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

powered by weblate
2025-05-21 12:47:42 +02:00
DavidandRaphael Michel ae2cc7a04a Translations: Update Czech
Currently translated at 73.6% (4322 of 5869 strings)

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

powered by weblate
2025-05-21 12:47:42 +02:00
Tobias KunzeandGitHub d49141c05d Use he as language code for Hebrew (#5129) 2025-05-21 12:42:51 +02:00
Richard SchreiberandGitHub 0bbb136d67 [A11y] Fix checkbox:focus style (#5131) 2025-05-21 12:00:34 +02:00
Richard SchreiberandGitHub d62152beaf [A11y] disable custom tooltip (#5115) 2025-05-16 14:14:21 +02:00
Martin Gross 2ce9584a6f PPv2: Wrap execute_payment to properly handle PaymentExceptions in atomic transactions 2025-05-15 16:58:30 +02:00
Richard SchreiberandGitHub f1fc4cb8a4 [A11y] logout-button make label visible (#5114)
* [A11y] logout-button make label visible

* add icon to sign in
2025-05-15 13:21:55 +02:00
Richard SchreiberandGitHub bf3ee608ba [A11y] Fix cookie-consent-form labels + help-text markup (#5113)
* [A11y] Fix cookie-consent-form labels + help-text markup

* remove method=dialog for now
2025-05-15 13:21:04 +02:00
Richard SchreiberandGitHub 6b331888e9 [A11y] Fix missing errors on empty inputs on checkout-login (#5104) 2025-05-15 13:19:25 +02:00
Richard SchreiberandGitHub 225b2452bd [A11y] underline inline-links (#5102) 2025-05-15 12:32:23 +02:00
Richard SchreiberandGitHub e7d024b146 [A11y] change footer poweredby-link to pretix.eu if no poweredby_url (#5111) 2025-05-15 12:30:48 +02:00
Richard SchreiberandGitHub 0af94c3712 [A11y] change customer-pages dl to list of article (#5112)
* [A11y] change customer-pages dl to list of article

* fix small font-size

* change customer memberships as well
2025-05-15 12:30:21 +02:00
Raphael MichelandGitHub 3007b89d9b [A11y] Adjust thresholds of color picker (#5110)
* [A11y] Adjust thresholds of color picker

* Fix typo
2025-05-15 12:24:23 +02:00
Richard SchreiberandGitHub 9ee50a28a1 [A11y] Widget fix td-cells being clickable but not focusable (#5106)
* [A11y] Widget fix td-cells being clickable but not focusable

* improve keyboard nav
2025-05-15 10:27:43 +02:00
Raphael Michel 4dc5014947 Grammar fix (Z#23191895) 2025-05-15 09:46:28 +02:00
Raphael MichelandRaphael Michel ebf2039a4d Translations: Update Korean
Currently translated at 37.9% (2230 of 5869 strings)

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

powered by weblate
2025-05-15 09:44:51 +02:00
anonymousandRaphael Michel f201ab8884 Translations: Update Korean
Currently translated at 37.9% (2226 of 5869 strings)

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

powered by weblate
2025-05-15 09:44:51 +02:00
Raphael MichelandRaphael Michel e20cb7649d Translations: Update Korean
Currently translated at 37.9% (2226 of 5869 strings)

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

powered by weblate
2025-05-15 09:44:51 +02:00
조정화andRaphael Michel e6cab37f12 Translations: Update Korean
Currently translated at 37.8% (2223 of 5869 strings)

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

powered by weblate
2025-05-15 09:44:51 +02:00
조정화andRaphael Michel 0659338392 Translations: Update Korean
Currently translated at 34.1% (2002 of 5869 strings)

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

powered by weblate
2025-05-15 09:44:51 +02:00
Zona VipandRaphael Michel a0f0e0ca48 Translations: Update Spanish
Currently translated at 100.0% (244 of 244 strings)

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

powered by weblate
2025-05-15 09:44:51 +02:00
Zona VipandRaphael Michel 59af0bbfb8 Translations: Update Spanish
Currently translated at 100.0% (5869 of 5869 strings)

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

powered by weblate
2025-05-15 09:44:51 +02:00
Richard SchreiberandGitHub 6766d649f5 [A11y] change event-list from dl to articles with h3 (#5085) 2025-05-14 21:51:54 +02:00
Richard SchreiberandGitHub c17a090244 [A11y] Fix color-contrast for info/error-texts in widget (#5105) 2025-05-14 15:06:38 +02:00
Richard SchreiberandGitHub d103d8782b [A11y] fix calendar nav dropdown (#5078)
* [A11y] fix calendar nav dropdown

* update organizer calender

* keep cal-nav on one line

* simplify html

* unify calendar layouts

* fix rounding issue with .input-group select+button

* add comment to explain complex css

* fix calendar dropdown due to too broad css-selector

* reduce spacing of top-nav

* fix input-group-btn double line through rounding issue
2025-05-14 10:01:16 +02:00
4f4903b00e Metrics: Fix Content Type header (#5099)
* Metrics: Fix Content Type header

Now it follows the PrometheusText1.0.0 ContentType header specified from their code: https://github.com/prometheus/prometheus/blob/32d306854b77352fec62f5df1268d745b84dfd96/config/config.go#L516-L529

* Update src/pretix/base/views/metrics.py

---------

Co-authored-by: Raphael Michel <mail@raphaelmichel.de>
2025-05-13 18:42:02 +02:00
Richard SchreiberandGitHub caf291630c [A11y] add skip-link to main content (#5087)
* [A11y] add skip-link to main content

* fix contrast for skip-link

* fix overlay with back-to-organizer-link

* add fallback if no main-element

* update nav-label
2025-05-13 13:37:21 +02:00
Richard SchreiberandGitHub 6d0368a1bb Fix page-header-links outline color contrast (#5096) 2025-05-13 13:36:45 +02:00
Richard SchreiberandGitHub 57d33e1eb1 [A11y] fix issues with labels and tabindex in widget (#5083) 2025-05-13 13:36:11 +02:00
Raphael MichelandGitHub e6ec4cb435 Adjust headlines aside from front page (#5098) 2025-05-13 10:51:34 +02:00
Raphael MichelandGitHub 6043a96575 Fix weird markup on "resend link" page (#5097) 2025-05-13 10:43:26 +02:00
Raphael MichelandGitHub 5bc1fb8e81 Allow to set multiple email invoice recipients (Z#23190766) (#5090) 2025-05-13 10:31:07 +02:00
Raphael MichelandGitHub 47c840b9e5 Check-in log: Correctly use name from parent product (Z#23192134) (#5091) 2025-05-13 10:10:18 +02:00
Richard SchreiberandGitHub b6007a1af4 [A11y] fix widget buy button being disabled (#5084)
* [A11y] fix widget buy button being disabled

* make dialog an alertdialog for better close-button support
2025-05-13 10:00:35 +02:00
Raphael MichelandGitHub 1caa71cdbe Improve validation of Norwegian VAT IDs (#5089) 2025-05-12 17:04:58 +02:00
Richard SchreiberandGitHub 1f2a0278c0 [A11y] replace b with strong for better semantics (#5086) 2025-05-12 16:43:08 +02:00
Raphael MichelandRaphael Michel cf51c879c7 Translations: Update German (informal) (de_Informal)
Currently translated at 100.0% (244 of 244 strings)

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

powered by weblate
2025-05-12 16:43:02 +02:00
Raphael MichelandRaphael Michel 1030e2dc1f Translations: Update German
Currently translated at 100.0% (244 of 244 strings)

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

powered by weblate
2025-05-12 16:43:02 +02:00
Hijiri UmemotoandRaphael Michel 8d320b24a5 Translations: Update Japanese
Currently translated at 100.0% (244 of 244 strings)

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

powered by weblate
2025-05-12 16:43:02 +02:00
Hijiri UmemotoandRaphael Michel 8235132de8 Translations: Update Japanese
Currently translated at 100.0% (5869 of 5869 strings)

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

powered by weblate
2025-05-12 16:43:02 +02:00
Luca HammerandRaphael Michel 2614f12faf Translations: Update German (informal) (de_Informal)
Currently translated at 100.0% (5869 of 5869 strings)

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

powered by weblate
2025-05-12 16:43:02 +02:00
Richard SchreiberandRaphael Michel 6f92f2324f Fix JavaScript-based required label 2025-05-12 16:35:18 +02:00
Hijiri UmemotoandRaphael Michel aaef7579d9 Translations: Update Japanese
Currently translated at 100.0% (244 of 244 strings)

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

powered by weblate
2025-05-09 11:20:27 +02:00
Hijiri UmemotoandRaphael Michel 6b1077f881 Translations: Update Japanese
Currently translated at 100.0% (5869 of 5869 strings)

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

powered by weblate
2025-05-09 11:20:27 +02:00
조정화andRaphael Michel 6154b7fae0 Translations: Update Korean
Currently translated at 99.5% (243 of 244 strings)

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

powered by weblate
2025-05-09 11:20:27 +02:00
조정화andRaphael Michel f43be3079f Translations: Update Korean
Currently translated at 34.1% (2003 of 5869 strings)

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

powered by weblate
2025-05-09 11:20:27 +02:00
조정화andRaphael Michel 3abe82ec77 Translations: Update Korean
Currently translated at 23.2% (1363 of 5869 strings)

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

powered by weblate
2025-05-09 11:20:27 +02:00
조정화andRaphael Michel 7b30902963 Translations: Update Korean
Currently translated at 97.1% (237 of 244 strings)

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

powered by weblate
2025-05-09 11:20:27 +02:00
조정화andRaphael Michel a885c8d2e5 Translations: Update Korean
Currently translated at 22.2% (1303 of 5869 strings)

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

powered by weblate
2025-05-09 11:20:27 +02:00
Zona VipandRaphael Michel 0ae98f072a Translations: Update Spanish
Currently translated at 100.0% (5869 of 5869 strings)

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

powered by weblate
2025-05-09 11:20:27 +02:00
KC TsengandRaphael Michel 9b1a723001 Translations: Update Chinese (Traditional Han script)
Currently translated at 100.0% (244 of 244 strings)

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

powered by weblate
2025-05-09 11:20:27 +02:00
KC TsengandRaphael Michel 46d7799cd0 Translations: Update Chinese (Traditional Han script)
Currently translated at 96.7% (5678 of 5869 strings)

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

powered by weblate
2025-05-09 11:20:27 +02:00
Raphael MichelandRaphael Michel fcb67ec4b5 Translations: Update German (informal) (de_Informal)
Currently translated at 100.0% (5869 of 5869 strings)

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

powered by weblate
2025-05-09 11:20:27 +02:00
Raphael MichelandRaphael Michel c7565e7c8b Translations: Update German
Currently translated at 100.0% (5869 of 5869 strings)

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

powered by weblate
2025-05-09 11:20:27 +02:00
Luca Martinelli [Sannita]andRaphael Michel 2316cb557a Translations: Update Italian
Currently translated at 72.5% (177 of 244 strings)

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

powered by weblate
2025-05-09 11:20:27 +02:00
Luca Martinelli [Sannita]andRaphael Michel 4de75f3ba5 Translations: Update Italian
Currently translated at 36.6% (2150 of 5869 strings)

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

powered by weblate
2025-05-09 11:20:27 +02:00
Pekka SarkolaandRaphael Michel cb972cd6ca Translations: Update Finnish
Currently translated at 67.4% (3958 of 5869 strings)

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

powered by weblate
2025-05-09 11:20:27 +02:00
Luca Martinelli [Sannita]andRaphael Michel 3354ccf78a Translations: Update Italian
Currently translated at 36.4% (2141 of 5869 strings)

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

powered by weblate
2025-05-09 11:20:27 +02:00
Raphael MichelandRaphael Michel f17038101c Translations: Update German (informal) (de_Informal)
Currently translated at 100.0% (5869 of 5869 strings)

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

powered by weblate
2025-05-09 11:20:27 +02:00
Raphael MichelandRaphael Michel 8e343898b4 Translations: Update German
Currently translated at 100.0% (5869 of 5869 strings)

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

powered by weblate
2025-05-09 11:20:27 +02:00
Foxy HunterandRaphael Michel 09dc504c87 Translations: Update Dutch
Currently translated at 100.0% (244 of 244 strings)

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

powered by weblate
2025-05-09 11:20:27 +02:00
Foxy HunterandRaphael Michel d780d1d25c Translations: Update Dutch
Currently translated at 100.0% (5869 of 5869 strings)

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

powered by weblate
2025-05-09 11:20:27 +02:00
Raphael MichelandGitHub 5522d67f9b API: Fix old meta values being returned when updating event (fixes #5077) (#5080) 2025-05-09 08:59:40 +02:00
Richard SchreiberandGitHub 7472564c26 [A11y] Fix sneak-peek for cart (#5076) 2025-05-09 08:38:34 +02:00
Richard SchreiberandGitHub 2b735bec0b [A11y] Improve customer account forms (#5034) 2025-05-09 08:36:09 +02:00
Phin WolkwitzandGitHub 3e335bcbfe Presale: Hide subevent lists if subevents exist but none are visible (Z#23186153) (#5054)
* Hide subevent lists (but not calendars) if subevents exist but none are visible, to avoid confusion during checkout
2025-05-07 13:36:50 +02:00
Richard SchreiberandGitHub f676a77536 Remove line-break before "required" in label on small screens (#5074) 2025-05-07 12:04:27 +02:00
Richard SchreiberandGitHub c487373340 [A11y] validate dates only server-side for better error message support (#5073) 2025-05-07 12:03:46 +02:00
Richard SchreiberandGitHub 3e05463486 [A11y] Remove unnecessary "required" help-text in questions-step (#5075) 2025-05-06 18:20:26 +02:00
31bb0f4a91 Product list: Show icon for seated products (#5015)
* Product list: Show icon for seated products

* Use updated seat icon

* Update src/pretix/static/pretixbase/scss/_theme.scss

Co-authored-by: Richard Schreiber <schreiber@rami.io>

---------

Co-authored-by: Richard Schreiber <schreiber@rami.io>
2025-05-06 11:14:28 +02:00
Richard SchreiberandGitHub 2605fe93d9 Fix unhandled error when parsing date in calendar-view (#5072) 2025-05-05 15:33:22 +02:00
Richard SchreiberandGitHub 3dedfd6ee0 [A11y] fix tablist issues (#5060) 2025-05-05 12:16:04 +02:00
Richard SchreiberandGitHub f71eb195c4 [A11y] Fix service fee HTML-structure (#5046) 2025-05-05 11:59:17 +02:00
Richard SchreiberandGitHub f09e9590a8 [A11y] make text "required" visible in labels (#5042) 2025-05-05 11:40:35 +02:00
Richard SchreiberandGitHub c53d44238c [A11y] Improve voice-control access for quantity rocker-buttons 2025-05-05 10:08:17 +02:00
Raphael MichelandGitHub 3bcc504bd8 Geocoding utils: Support more flexible set of input fields (#5025) 2025-05-02 18:06:13 +02:00
dependabot[bot]andRaphael Michel d802f747c7 Bump @babel/core from 7.26.10 to 7.27.1 in /src/pretix/static/npm_dir
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.26.10 to 7.27.1.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.27.1/packages/babel-core)

---
updated-dependencies:
- dependency-name: "@babel/core"
  dependency-version: 7.27.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-02 11:46:21 +02:00
luelistaandGitHub d926030bf6 Event list: fix parsing of date query parameter (#5047)
Use the same localization formats as used when generating the value
2025-05-02 10:22:04 +02:00
dependabot[bot]andRaphael Michel 1e4c577b31 Bump qrcode from 8.1 to 8.2
Bumps [qrcode](https://github.com/lincolnloop/python-qrcode) from 8.1 to 8.2.
- [Changelog](https://github.com/lincolnloop/python-qrcode/blob/main/CHANGES.rst)
- [Commits](https://github.com/lincolnloop/python-qrcode/commits/v8.2)

---
updated-dependencies:
- dependency-name: qrcode
  dependency-version: '8.2'
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-02 10:16:18 +02:00
dependabot[bot]andRaphael Michel 8cae00941a Bump @babel/preset-env in /src/pretix/static/npm_dir
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.26.9 to 7.27.1.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.27.1/packages/babel-preset-env)

---
updated-dependencies:
- dependency-name: "@babel/preset-env"
  dependency-version: 7.27.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-02 10:16:03 +02:00
dependabot[bot]andRaphael Michel 602287b3ec Update sentry-sdk requirement from ==2.25.* to ==2.27.*
Updates the requirements on [sentry-sdk](https://github.com/getsentry/sentry-python) to permit the latest version.
- [Release notes](https://github.com/getsentry/sentry-python/releases)
- [Changelog](https://github.com/getsentry/sentry-python/blob/master/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-python/compare/2.25.0...2.27.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-30 12:47:59 +02:00
CVZ-esandRaphael Michel 817f17dac5 Translations: Update Spanish
Currently translated at 100.0% (244 of 244 strings)

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

powered by weblate
2025-04-30 12:47:00 +02:00
CVZ-esandRaphael Michel f33dd84900 Translations: Update Spanish
Currently translated at 100.0% (5869 of 5869 strings)

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

powered by weblate
2025-04-30 12:47:00 +02:00
CVZ-esandRaphael Michel 99d0ca314d Translations: Update French
Currently translated at 100.0% (244 of 244 strings)

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

powered by weblate
2025-04-30 12:47:00 +02:00
CVZ-esandRaphael Michel 853749521e Translations: Update French
Currently translated at 100.0% (5869 of 5869 strings)

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

powered by weblate
2025-04-30 12:47:00 +02:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
df5c6bcebf Update reportlab requirement from ==4.3.* to ==4.4.* (#5016)
Updates the requirements on [reportlab](https://www.reportlab.com/) to permit the latest version.

---
updated-dependencies:
- dependency-name: reportlab
  dependency-version: 4.4.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-30 11:46:00 +02:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
3e6051825e Update pep8-naming requirement from ==0.14.* to ==0.15.* (#5055)
Updates the requirements on [pep8-naming](https://github.com/PyCQA/pep8-naming) to permit the latest version.
- [Release notes](https://github.com/PyCQA/pep8-naming/releases)
- [Changelog](https://github.com/PyCQA/pep8-naming/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/PyCQA/pep8-naming/compare/0.14.0...0.15.0)

---
updated-dependencies:
- dependency-name: pep8-naming
  dependency-version: 0.15.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-30 11:42:42 +02:00
Richard SchreiberandGitHub f4478da5ce Fix handling of empty giftcard-code 2025-04-30 07:15:18 +02:00
luelistaandGitHub 013a065132 Fix mismatched headline level in fragment_product_list.html (#5048) 2025-04-29 15:25:15 +02:00
Richard SchreiberandGitHub b3919973f1 Fix order export for empty attendee_name_parts 2025-04-29 13:35:25 +02:00
Raphael MichelandGitHub e1027e3e8c OrderChangeManager: Re-use same instances of OrderPosition/OrderFee 2025-04-29 12:38:41 +02:00
Richard SchreiberandGitHub d3792935ae [A11y] add missing sr-only-text for clock-icon 2025-04-29 12:28:46 +02:00
Davide ManzellaandRaphael Michel 1804dbebd0 Translations: Update Italian
Currently translated at 36.1% (2122 of 5869 strings)

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

powered by weblate
2025-04-29 12:00:12 +02:00
7ca2f8ec04 [A11y] add min/max as help_text to date/time inputs
* [A11y] add min/max as help_text to date/time inputs

* update text

* Fix help-text (suggestions from code review)

Co-authored-by: Raphael Michel <michel@rami.io>

---------

Co-authored-by: Raphael Michel <michel@rami.io>
2025-04-29 09:10:29 +02:00
Raphael Michel 15eb0f8870 Bump version to 2025.5.0.dev0 2025-04-28 15:58:04 +02:00
160 changed files with 14843 additions and 16228 deletions
+4 -4
View File
@@ -87,11 +87,11 @@ dependencies = [
"pytz",
"pytz-deprecation-shim==0.1.*",
"pyuca",
"qrcode==8.1",
"qrcode==8.2",
"redis==5.2.*",
"reportlab==4.3.*",
"reportlab==4.4.*",
"requests==2.31.*",
"sentry-sdk==2.25.*",
"sentry-sdk==2.27.*",
"sepaxml==2.6.*",
"stripe==7.9.*",
"text-unidecode==1.*",
@@ -114,7 +114,7 @@ dev = [
"flake8==7.2.*",
"freezegun",
"isort==6.0.*",
"pep8-naming==0.14.*",
"pep8-naming==0.15.*",
"potypo",
"pytest-asyncio>=0.24",
"pytest-cache",
+1 -1
View File
@@ -19,4 +19,4 @@
# You should have received a copy of the GNU Affero General Public License along with this program. If not, see
# <https://www.gnu.org/licenses/>.
#
__version__ = "2025.4.0"
__version__ = "2025.5.0.dev0"
+2 -1
View File
@@ -101,6 +101,7 @@ ALL_LANGUAGES = [
('fi', _('Finnish')),
('gl', _('Galician')),
('el', _('Greek')),
('he', _('Hebrew')),
('id', _('Indonesian')),
('it', _('Italian')),
('ja', _('Japanese')),
@@ -122,7 +123,7 @@ LANGUAGES_OFFICIAL = {
}
LANGUAGES_RTL = {
# When adding more right-to-left languages, also update pretix/static/pretixbase/scss/_rtl.scss
'ar', 'hw'
'ar', 'he'
}
LANGUAGES_INCUBATING = {
'pt-br', 'gl',
+4
View File
@@ -378,6 +378,8 @@ class EventSerializer(SalesChannelMigrationMixin, I18nAwareModelSerializer):
if prop.name not in meta_data:
current_object.delete()
instance._prefetched_objects_cache.clear()
# Item Meta properties
if item_meta_properties is not None:
current = list(event.item_meta_properties.all())
@@ -398,6 +400,8 @@ class EventSerializer(SalesChannelMigrationMixin, I18nAwareModelSerializer):
if prop.name not in list(item_meta_properties.keys()):
prop.delete()
instance._prefetched_objects_cache.clear()
# Seats
if seat_category_mapping is not None or ('seating_plan' in validated_data and validated_data['seating_plan'] is None):
current_mappings = {
+13 -10
View File
@@ -35,19 +35,22 @@ def get_powered_by(request, safelink=True):
d = gs.settings.license_check_input
if d.get('poweredby_name'):
if d.get('poweredby_url'):
n = '<a href="{}" target="_blank" rel="noopener">{}</a>'.format(
sl(d['poweredby_url']) if safelink else d['poweredby_url'],
d['poweredby_name']
msg = gettext('<a {a_name_attr}>powered by {name}</a> <a {a_attr}>based on pretix</a>').format(
name=d['poweredby_name'],
a_name_attr='href="{}" target="_blank" rel="noopener"'.format(
sl(d['poweredby_url']) if safelink else d['poweredby_url'],
),
a_attr='href="{}" target="_blank" rel="noopener"'.format(
sl('https://pretix.eu') if safelink else 'https://pretix.eu',
)
)
else:
n = d['poweredby_name']
msg = gettext('powered by {name} based on <a {a_attr}>pretix</a>').format(
name=n,
a_attr='href="{}" target="_blank" rel="noopener"'.format(
sl('https://pretix.eu') if safelink else 'https://pretix.eu',
msg = gettext('<a {a_attr}>powered by {name} based on pretix</a>').format(
name=d['poweredby_name'],
a_attr='href="{}" target="_blank" rel="noopener"'.format(
sl('https://pretix.eu') if safelink else 'https://pretix.eu',
)
)
)
else:
msg = gettext('<a %(a_attr)s>ticketing powered by pretix</a>') % {
'a_attr': 'href="{}" target="_blank" rel="noopener"'.format(
+1 -1
View File
@@ -712,7 +712,7 @@ class OrderListExporter(MultiSheetListExporter):
if name_scheme and len(name_scheme['fields']) > 1:
for k, label, w in name_scheme['fields']:
row.append(
get_name_parts_localized(op.attendee_name_parts, k)
get_name_parts_localized(op.attendee_name_parts, k) if op.attendee_name_parts else ''
)
row += [
op.attendee_email,
+35
View File
@@ -58,6 +58,7 @@ from django.urls import reverse
from django.utils.formats import date_format
from django.utils.html import escape
from django.utils.safestring import mark_safe
from django.utils.text import format_lazy
from django.utils.timezone import get_current_timezone
from django.utils.translation import gettext_lazy as _, pgettext_lazy
from django_countries import countries
@@ -870,6 +871,23 @@ class BaseQuestionsForm(forms.Form):
attrs['data-min'] = q.valid_date_min.isoformat()
if q.valid_date_max:
attrs['data-max'] = q.valid_date_max.isoformat()
if not help_text:
if q.valid_date_min and q.valid_date_max:
help_text = format_lazy(
'Please enter a date between {min} and {max}.',
min=date_format(q.valid_date_min, "SHORT_DATE_FORMAT"),
max=date_format(q.valid_date_max, "SHORT_DATE_FORMAT"),
)
elif q.valid_date_min:
help_text = format_lazy(
'Please enter a date no earlier than {min}.',
min=date_format(q.valid_date_min, "SHORT_DATE_FORMAT"),
)
elif q.valid_date_max:
help_text = format_lazy(
'Please enter a date no later than {max}.',
max=date_format(q.valid_date_max, "SHORT_DATE_FORMAT"),
)
field = forms.DateField(
label=label, required=required,
help_text=help_text,
@@ -888,6 +906,23 @@ class BaseQuestionsForm(forms.Form):
widget=TimePickerWidget(time_format=get_format_without_seconds('TIME_INPUT_FORMATS')),
)
elif q.type == Question.TYPE_DATETIME:
if not help_text:
if q.valid_datetime_min and q.valid_datetime_max:
help_text = format_lazy(
'Please enter a date and time between {min} and {max}.',
min=date_format(q.valid_datetime_min, "SHORT_DATETIME_FORMAT"),
max=date_format(q.valid_datetime_max, "SHORT_DATETIME_FORMAT"),
)
elif q.valid_datetime_min:
help_text = format_lazy(
'Please enter a date and time no earlier than {min}.',
min=date_format(q.valid_datetime_min, "SHORT_DATETIME_FORMAT"),
)
elif q.valid_datetime_max:
help_text = format_lazy(
'Please enter a date and time no later than {max}.',
max=date_format(q.valid_datetime_max, "SHORT_DATETIME_FORMAT"),
)
field = SplitDateTimeField(
label=label, required=required,
help_text=help_text,
@@ -0,0 +1,18 @@
# Generated by Django 4.2.20 on 2025-05-14 14:58
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('pretixbase', '0279_discount_event_date_from_discount_event_date_until'),
]
operations = [
migrations.AddField(
model_name='cartposition',
name='max_extend',
field=models.DateTimeField(null=True),
),
]
+4 -1
View File
@@ -3098,7 +3098,10 @@ class CartPosition(AbstractPosition):
verbose_name=_("Expiration date"),
db_index=True
)
max_extend = models.DateTimeField(
verbose_name=_("Limit for extending expiration date"),
null=True
)
tax_rate = models.DecimalField(
max_digits=7, decimal_places=2, default=Decimal('0.00'),
verbose_name=_('Tax rate')
+4
View File
@@ -1463,6 +1463,10 @@ class GiftCardPayment(BasePaymentProvider):
messages.error(request, _("You cannot pay with gift cards when buying a gift card."))
return
if not request.POST.get("giftcard"):
messages.error(request, _("Please enter the code of your gift card."))
return
try:
gc = self.event.organizer.accepted_gift_cards.get(
secret=request.POST.get("giftcard").strip()
+64 -17
View File
@@ -45,6 +45,7 @@ from django.conf import settings
from django.core.exceptions import ValidationError
from django.db import DatabaseError, transaction
from django.db.models import Count, Exists, IntegerField, OuterRef, Q, Value
from django.db.models.aggregates import Min
from django.dispatch import receiver
from django.utils.timezone import make_aware, now
from django.utils.translation import (
@@ -275,7 +276,10 @@ class CartManager:
}
def __init__(self, event: Event, cart_id: str, sales_channel: SalesChannel,
invoice_address: InvoiceAddress=None, widget_data=None, expiry=None):
invoice_address: InvoiceAddress=None, widget_data=None, reservation_time: timedelta=None):
"""
Creates a new CartManager for an event.
"""
self.event = event
self.cart_id = cart_id
self.real_now_dt = now()
@@ -286,11 +290,17 @@ class CartManager:
self._subevents_cache = {}
self._variations_cache = {}
self._seated_cache = {}
self._expiry = None
self._explicit_expiry = expiry
self.invoice_address = invoice_address
self._widget_data = widget_data or {}
self._sales_channel = sales_channel
self.num_extended_positions = 0
if reservation_time:
self._reservation_time = reservation_time
else:
self._reservation_time = timedelta(minutes=self.event.settings.get('reservation_time', as_type=int))
self._expiry = self.real_now_dt + self._reservation_time
self._max_expiry_extend = self.real_now_dt + (self._reservation_time * 11)
@property
def positions(self):
@@ -305,14 +315,6 @@ class CartManager:
self._seated_cache[item, subevent] = item.seat_category_mappings.filter(subevent=subevent).exists()
return self._seated_cache[item, subevent]
def _calculate_expiry(self):
if self._explicit_expiry:
self._expiry = self._explicit_expiry
else:
self._expiry = self.real_now_dt + timedelta(
minutes=self.event.settings.get('reservation_time', as_type=int)
)
def _check_presale_dates(self):
if self.event.presale_start and time_machine_now(self.real_now_dt) < self.event.presale_start:
raise CartError(error_messages['not_started'])
@@ -329,9 +331,27 @@ class CartManager:
raise CartError(error_messages['payment_ended'])
def _extend_expiry_of_valid_existing_positions(self):
# real_now_dt is initialized at CartManager instantiation, so it's slightly in the past. Add a small
# delta to reduce risk of extending already expired CartPositions.
padded_now_dt = self.real_now_dt + timedelta(seconds=5)
# Make sure we do not extend past the max_extend timestamp, allowing users to extend their valid positions up
# to 11 times the reservation time. If we add new positions to the cart while valid positions exist, the new
# positions' reservation will also be limited to max_extend of the oldest position.
# Only after all positions expire, an ExtendOperation may reset max_extend to another 11x reservation_time.
max_extend_existing = self.positions.filter(expires__gt=padded_now_dt).aggregate(m=Min('max_extend'))['m']
if max_extend_existing:
self._expiry = min(self._expiry, max_extend_existing)
self._max_expiry_extend = max_extend_existing
# Extend this user's cart session to ensure all items in the cart expire at the same time
# We can extend the reservation of items which are not yet expired without risk
self.positions.filter(expires__gt=self.real_now_dt).update(expires=self._expiry)
if self._expiry > padded_now_dt:
self.num_extended_positions += self.positions.filter(
expires__gt=padded_now_dt, expires__lt=self._expiry,
).update(
expires=self._expiry,
)
def _delete_out_of_timeframe(self):
err = None
@@ -1246,6 +1266,7 @@ class CartManager:
item=op.item,
variation=op.variation,
expires=self._expiry,
max_extend=self._max_expiry_extend,
cart_id=self.cart_id,
voucher=op.voucher,
addon_to=op.addon_to if op.addon_to else None,
@@ -1294,7 +1315,9 @@ class CartManager:
event=self.event,
item=b.item,
variation=b.variation,
expires=self._expiry, cart_id=self.cart_id,
expires=self._expiry,
max_extend=self._max_expiry_extend,
cart_id=self.cart_id,
voucher=None,
addon_to=cp,
subevent=b.subevent,
@@ -1321,12 +1344,14 @@ class CartManager:
op.position.delete()
elif available_count == 1:
op.position.expires = self._expiry
op.position.max_extend = self._max_expiry_extend
op.position.listed_price = op.listed_price
op.position.price_after_voucher = op.price_after_voucher
# op.position.price will be updated by recompute_final_prices_and_taxes()
if op.position.pk not in deleted_positions:
try:
op.position.save(force_update=True, update_fields=['expires', 'listed_price', 'price_after_voucher'])
op.position.save(force_update=True, update_fields=['expires', 'max_extend', 'listed_price', 'price_after_voucher'])
self.num_extended_positions += 1
except DatabaseError:
# Best effort... The position might have been deleted in the meantime!
pass
@@ -1416,14 +1441,11 @@ class CartManager:
def commit(self):
self._check_presale_dates()
self._check_max_cart_size()
self._calculate_expiry()
err = self._delete_out_of_timeframe()
err = self.extend_expired_positions() or err
err = err or self._check_min_per_voucher()
self.real_now_dt = now()
self._extend_expiry_of_valid_existing_positions()
err = self._perform_operations() or err
self.recompute_final_prices_and_taxes()
@@ -1632,6 +1654,31 @@ def clear_cart(self, event: Event, cart_id: str=None, locale='en', sales_channel
raise CartError(error_messages['busy'])
@app.task(base=ProfiledEventTask, bind=True, max_retries=5, default_retry_delay=1, throws=(CartError,))
def extend_cart_reservation(self, event: Event, cart_id: str=None, locale='en', sales_channel='web', override_now_dt: datetime=None) -> None:
"""
Resets the expiry time of a cart to the configured reservation time of this event.
Limited to 11x the reservation time.
:param event: The event ID in question
:param cart_id: The cart ID of the cart to modify
"""
with language(locale), time_machine_now_assigned(override_now_dt):
try:
sales_channel = event.organizer.sales_channels.get(identifier=sales_channel)
except SalesChannel.DoesNotExist:
raise CartError("Invalid sales channel.")
try:
try:
cm = CartManager(event=event, cart_id=cart_id, sales_channel=sales_channel)
cm.commit()
return cm.num_extended_positions
except LockTimeoutException:
self.retry()
except (MaxRetriesExceededError, LockTimeoutException):
raise CartError(error_messages['busy'])
@app.task(base=ProfiledEventTask, bind=True, max_retries=5, default_retry_delay=1, throws=(CartError,))
def set_cart_addons(self, event: Event, addons: List[dict], add_to_cart_items: List[dict], cart_id: str=None, locale='en',
invoice_address: int=None, sales_channel='web', override_now_dt: datetime=None) -> None:
+1 -1
View File
@@ -531,7 +531,7 @@ def send_invoices_to_organizer(sender, **kwargs):
if i.event.settings.invoice_email_organizer:
with language(i.event.settings.locale):
mail(
email=i.event.settings.invoice_email_organizer,
email=[e.strip() for e in i.event.settings.invoice_email_organizer.split(",")],
subject=_('New invoice: {number}').format(number=i.number),
template=LazyI18nString.from_gettext(_(
'Hello,\n\n'
+151 -130
View File
@@ -2221,73 +2221,79 @@ class OrderChangeManager:
nextposid = self.order.all_positions.aggregate(m=Max('positionid'))['m'] + 1
split_positions = []
secret_dirty = set()
position_cache = {}
fee_cache = {}
for op in self._operations:
if isinstance(op, self.ItemOperation):
position = position_cache.setdefault(op.position.pk, op.position)
self.order.log_action('pretix.event.order.changed.item', user=self.user, auth=self.auth, data={
'position': op.position.pk,
'positionid': op.position.positionid,
'old_item': op.position.item.pk,
'old_variation': op.position.variation.pk if op.position.variation else None,
'position': position.pk,
'positionid': position.positionid,
'old_item': position.item.pk,
'old_variation': position.variation.pk if position.variation else None,
'new_item': op.item.pk,
'new_variation': op.variation.pk if op.variation else None,
'old_price': op.position.price,
'addon_to': op.position.addon_to_id,
'new_price': op.position.price
'old_price': position.price,
'addon_to': position.addon_to_id,
'new_price': position.price
})
op.position.item = op.item
op.position.variation = op.variation
op.position._calculate_tax()
position.item = op.item
position.variation = op.variation
position._calculate_tax()
if op.position.voucher_budget_use is not None and op.position.voucher and not op.position.addon_to_id:
listed_price = get_listed_price(op.position.item, op.position.variation, op.position.subevent)
if not op.position.item.tax_rule or op.position.item.tax_rule.price_includes_tax:
price_after_voucher = max(op.position.price, op.position.voucher.calculate_price(listed_price))
if position.voucher_budget_use is not None and position.voucher and not position.addon_to_id:
listed_price = get_listed_price(position.item, position.variation, position.subevent)
if not position.item.tax_rule or position.item.tax_rule.price_includes_tax:
price_after_voucher = max(position.price, position.voucher.calculate_price(listed_price))
else:
price_after_voucher = max(op.position.price - op.position.tax_value, op.position.voucher.calculate_price(listed_price))
op.position.voucher_budget_use = max(listed_price - price_after_voucher, Decimal('0.00'))
secret_dirty.add(op.position)
op.position.save()
price_after_voucher = max(position.price - position.tax_value, position.voucher.calculate_price(listed_price))
position.voucher_budget_use = max(listed_price - price_after_voucher, Decimal('0.00'))
secret_dirty.add(position)
position.save()
elif isinstance(op, self.MembershipOperation):
position = position_cache.setdefault(op.position.pk, op.position)
self.order.log_action('pretix.event.order.changed.membership', user=self.user, auth=self.auth, data={
'position': op.position.pk,
'positionid': op.position.positionid,
'old_membership_id': op.position.used_membership_id,
'position': position.pk,
'positionid': position.positionid,
'old_membership_id': position.used_membership_id,
'new_membership_id': op.membership.pk if op.membership else None,
})
op.position.used_membership = op.membership
op.position.save()
position.used_membership = op.membership
position.save()
elif isinstance(op, self.SeatOperation):
position = position_cache.setdefault(op.position.pk, op.position)
self.order.log_action('pretix.event.order.changed.seat', user=self.user, auth=self.auth, data={
'position': op.position.pk,
'positionid': op.position.positionid,
'old_seat': op.position.seat.name if op.position.seat else "-",
'position': position.pk,
'positionid': position.positionid,
'old_seat': position.seat.name if position.seat else "-",
'new_seat': op.seat.name if op.seat else "-",
'old_seat_id': op.position.seat.pk if op.position.seat else None,
'old_seat_id': position.seat.pk if position.seat else None,
'new_seat_id': op.seat.pk if op.seat else None,
})
op.position.seat = op.seat
secret_dirty.add(op.position)
op.position.save()
position.seat = op.seat
secret_dirty.add(position)
position.save()
elif isinstance(op, self.SubeventOperation):
position = position_cache.setdefault(op.position.pk, op.position)
self.order.log_action('pretix.event.order.changed.subevent', user=self.user, auth=self.auth, data={
'position': op.position.pk,
'positionid': op.position.positionid,
'old_subevent': op.position.subevent.pk,
'position': position.pk,
'positionid': position.positionid,
'old_subevent': position.subevent.pk,
'new_subevent': op.subevent.pk,
'old_price': op.position.price,
'new_price': op.position.price
'old_price': position.price,
'new_price': position.price
})
op.position.subevent = op.subevent
secret_dirty.add(op.position)
if op.position.voucher_budget_use is not None and op.position.voucher and not op.position.addon_to_id:
listed_price = get_listed_price(op.position.item, op.position.variation, op.position.subevent)
if not op.position.item.tax_rule or op.position.item.tax_rule.price_includes_tax:
price_after_voucher = max(op.position.price, op.position.voucher.calculate_price(listed_price))
position.subevent = op.subevent
secret_dirty.add(position)
if position.voucher_budget_use is not None and position.voucher and not position.addon_to_id:
listed_price = get_listed_price(position.item, position.variation, position.subevent)
if not position.item.tax_rule or position.item.tax_rule.price_includes_tax:
price_after_voucher = max(position.price, position.voucher.calculate_price(listed_price))
else:
price_after_voucher = max(op.position.price - op.position.tax_value, op.position.voucher.calculate_price(listed_price))
op.position.voucher_budget_use = max(listed_price - price_after_voucher, Decimal('0.00'))
op.position.save()
price_after_voucher = max(position.price - position.tax_value, position.voucher.calculate_price(listed_price))
position.voucher_budget_use = max(listed_price - price_after_voucher, Decimal('0.00'))
position.save()
elif isinstance(op, self.AddFeeOperation):
self.order.log_action('pretix.event.order.changed.addfee', user=self.user, auth=self.auth, data={
'fee': op.fee.pk,
@@ -2296,70 +2302,79 @@ class OrderChangeManager:
op.fee._calculate_tax()
op.fee.save()
elif isinstance(op, self.FeeValueOperation):
fee = fee_cache.setdefault(op.fee.pk, op.fee)
self.order.log_action('pretix.event.order.changed.feevalue', user=self.user, auth=self.auth, data={
'fee': op.fee.pk,
'old_price': op.fee.value,
'fee': fee.pk,
'old_price': fee.value,
'new_price': op.value.gross
})
op.fee.value = op.value.gross
op.fee._calculate_tax()
op.fee.save()
fee.value = op.value.gross
fee._calculate_tax()
fee.save()
elif isinstance(op, self.PriceOperation):
position = position_cache.setdefault(op.position.pk, op.position)
self.order.log_action('pretix.event.order.changed.price', user=self.user, auth=self.auth, data={
'position': op.position.pk,
'positionid': op.position.positionid,
'old_price': op.position.price,
'addon_to': op.position.addon_to_id,
'position': position.pk,
'positionid': position.positionid,
'old_price': position.price,
'addon_to': position.addon_to_id,
'new_price': op.price.gross
})
op.position.price = op.price.gross
op.position.tax_rate = op.price.rate
op.position.tax_value = op.price.tax
op.position.tax_code = op.price.code
op.position.save(update_fields=['price', 'tax_rate', 'tax_value', 'tax_code'])
position.price = op.price.gross
position.tax_rate = op.price.rate
position.tax_value = op.price.tax
position.tax_code = op.price.code
position.save(update_fields=['price', 'tax_rate', 'tax_value', 'tax_code'])
elif isinstance(op, self.TaxRuleOperation):
if isinstance(op.position, OrderPosition):
position = position_cache.setdefault(op.position.pk, op.position)
self.order.log_action('pretix.event.order.changed.tax_rule', user=self.user, auth=self.auth, data={
'position': op.position.pk,
'positionid': op.position.positionid,
'addon_to': op.position.addon_to_id,
'old_taxrule': op.position.tax_rule.pk if op.position.tax_rule else None,
'position': position.pk,
'positionid': position.positionid,
'addon_to': position.addon_to_id,
'old_taxrule': position.tax_rule.pk if position.tax_rule else None,
'new_taxrule': op.tax_rule.pk
})
position._calculate_tax(op.tax_rule)
position.save()
elif isinstance(op.position, OrderFee):
fee = fee_cache.setdefault(op.position.pk, op.position)
self.order.log_action('pretix.event.order.changed.tax_rule', user=self.user, auth=self.auth, data={
'fee': op.position.pk,
'fee_type': op.position.fee_type,
'old_taxrule': op.position.tax_rule.pk if op.position.tax_rule else None,
'fee': fee.pk,
'fee_type': fee.fee_type,
'old_taxrule': fee.tax_rule.pk if fee.tax_rule else None,
'new_taxrule': op.tax_rule.pk
})
op.position._calculate_tax(op.tax_rule)
op.position.save()
fee._calculate_tax(op.tax_rule)
fee.save()
elif isinstance(op, self.CancelFeeOperation):
fee = fee_cache.setdefault(op.fee.pk, op.fee)
self.order.log_action('pretix.event.order.changed.cancelfee', user=self.user, auth=self.auth, data={
'fee': op.fee.pk,
'fee_type': op.fee.fee_type,
'old_price': op.fee.value,
'fee': fee.pk,
'fee_type': fee.fee_type,
'old_price': fee.value,
})
op.fee.canceled = True
op.fee.save(update_fields=['canceled'])
fee.canceled = True
fee.save(update_fields=['canceled'])
elif isinstance(op, self.CancelOperation):
for gc in op.position.issued_gift_cards.all():
position = position_cache.setdefault(op.position.pk, op.position)
for gc in position.issued_gift_cards.all():
gc = GiftCard.objects.select_for_update(of=OF_SELF).get(pk=gc.pk)
if gc.value < op.position.price:
if gc.value < position.price:
raise OrderError(_(
'A position can not be canceled since the gift card {card} purchased in this order has '
'already been redeemed.').format(
card=gc.secret
))
else:
gc.transactions.create(value=-op.position.price, order=self.order, acceptor=self.order.event.organizer)
gc.transactions.create(value=-position.price, order=self.order, acceptor=self.order.event.organizer)
for m in op.position.granted_memberships.with_usages().all():
for m in position.granted_memberships.with_usages().all():
m.canceled = True
m.save()
for opa in op.position.addons.all():
for opa in position.addons.all():
opa = position_cache.setdefault(opa.pk, opa)
for gc in opa.issued_gift_cards.all():
gc = GiftCard.objects.select_for_update(of=OF_SELF).get(pk=gc.pk)
if gc.value < opa.position.price:
@@ -2393,22 +2408,22 @@ class OrderChangeManager:
)
opa.save(update_fields=['canceled', 'secret'])
self.order.log_action('pretix.event.order.changed.cancel', user=self.user, auth=self.auth, data={
'position': op.position.pk,
'positionid': op.position.positionid,
'old_item': op.position.item.pk,
'old_variation': op.position.variation.pk if op.position.variation else None,
'old_price': op.position.price,
'position': position.pk,
'positionid': position.positionid,
'old_item': position.item.pk,
'old_variation': position.variation.pk if position.variation else None,
'old_price': position.price,
'addon_to': None,
})
op.position.canceled = True
if op.position.voucher:
Voucher.objects.filter(pk=op.position.voucher.pk).update(redeemed=Greatest(0, F('redeemed') - 1))
position.canceled = True
if position.voucher:
Voucher.objects.filter(pk=position.voucher.pk).update(redeemed=Greatest(0, F('redeemed') - 1))
assign_ticket_secret(
event=self.event, position=op.position, force_invalidate_if_revokation_list_used=True, force_invalidate=False, save=False
event=self.event, position=position, force_invalidate_if_revokation_list_used=True, force_invalidate=False, save=False
)
if op.position in secret_dirty:
secret_dirty.remove(op.position)
op.position.save(update_fields=['canceled', 'secret'])
if position in secret_dirty:
secret_dirty.remove(position)
position.save(update_fields=['canceled', 'secret'])
elif isinstance(op, self.AddOperation):
pos = OrderPosition.objects.create(
item=op.item, variation=op.variation, addon_to=op.addon_to,
@@ -2433,20 +2448,22 @@ class OrderChangeManager:
'valid_until': op.valid_until.isoformat() if op.valid_until else None,
})
elif isinstance(op, self.SplitOperation):
split_positions.append(op.position)
position = position_cache.setdefault(op.position.pk, op.position)
split_positions.append(position)
elif isinstance(op, self.RegenerateSecretOperation):
op.position.web_secret = generate_secret()
op.position.save(update_fields=["web_secret"])
position = position_cache.setdefault(op.position.pk, op.position)
position.web_secret = generate_secret()
position.save(update_fields=["web_secret"])
assign_ticket_secret(
event=self.event, position=op.position, force_invalidate=True, save=True
event=self.event, position=position, force_invalidate=True, save=True
)
if op.position in secret_dirty:
secret_dirty.remove(op.position)
if position in secret_dirty:
secret_dirty.remove(position)
tickets.invalidate_cache.apply_async(kwargs={'event': self.event.pk,
'order': self.order.pk})
self.order.log_action('pretix.event.order.changed.secret', user=self.user, auth=self.auth, data={
'position': op.position.pk,
'positionid': op.position.positionid,
'position': position.pk,
'positionid': position.positionid,
})
elif isinstance(op, self.ChangeSecretOperation):
if OrderPosition.all.filter(order__event=self.event, secret=op.new_secret).exists():
@@ -2462,64 +2479,68 @@ class OrderChangeManager:
'positionid': op.position.positionid,
})
elif isinstance(op, self.ChangeValidFromOperation):
position = position_cache.setdefault(op.position.pk, op.position)
self.order.log_action('pretix.event.order.changed.valid_from', user=self.user, auth=self.auth, data={
'position': op.position.pk,
'positionid': op.position.positionid,
'position': position.pk,
'positionid': position.positionid,
'new_value': op.valid_from.isoformat() if op.valid_from else None,
'old_value': op.position.valid_from.isoformat() if op.position.valid_from else None,
'old_value': position.valid_from.isoformat() if position.valid_from else None,
})
op.position.valid_from = op.valid_from
op.position.save(update_fields=['valid_from'])
secret_dirty.add(op.position)
position.valid_from = op.valid_from
position.save(update_fields=['valid_from'])
secret_dirty.add(position)
elif isinstance(op, self.ChangeValidUntilOperation):
position = position_cache.setdefault(op.position.pk, op.position)
self.order.log_action('pretix.event.order.changed.valid_until', user=self.user, auth=self.auth, data={
'position': op.position.pk,
'positionid': op.position.positionid,
'position': position.pk,
'positionid': position.positionid,
'new_value': op.valid_until.isoformat() if op.valid_until else None,
'old_value': op.position.valid_until.isoformat() if op.position.valid_until else None,
'old_value': position.valid_until.isoformat() if position.valid_until else None,
})
op.position.valid_until = op.valid_until
op.position.save(update_fields=['valid_until'])
secret_dirty.add(op.position)
position.valid_until = op.valid_until
position.save(update_fields=['valid_until'])
secret_dirty.add(position)
elif isinstance(op, self.AddBlockOperation):
position = position_cache.setdefault(op.position.pk, op.position)
self.order.log_action('pretix.event.order.changed.add_block', user=self.user, auth=self.auth, data={
'position': op.position.pk,
'positionid': op.position.positionid,
'position': position.pk,
'positionid': position.positionid,
'block_name': op.block_name,
})
if op.position.blocked:
if op.block_name not in op.position.blocked:
op.position.blocked = op.position.blocked + [op.block_name]
if position.blocked:
if op.block_name not in position.blocked:
position.blocked = position.blocked + [op.block_name]
else:
op.position.blocked = [op.block_name]
position.blocked = [op.block_name]
if op.ignore_from_quota_while_blocked is not None:
op.position.ignore_from_quota_while_blocked = op.ignore_from_quota_while_blocked
op.position.save(update_fields=['blocked', 'ignore_from_quota_while_blocked'])
if op.position.blocked:
op.position.blocked_secrets.update_or_create(
position.ignore_from_quota_while_blocked = op.ignore_from_quota_while_blocked
position.save(update_fields=['blocked', 'ignore_from_quota_while_blocked'])
if position.blocked:
position.blocked_secrets.update_or_create(
event=self.event,
secret=op.position.secret,
secret=position.secret,
defaults={
'blocked': True,
'updated': now(),
}
)
elif isinstance(op, self.RemoveBlockOperation):
position = position_cache.setdefault(op.position.pk, op.position)
self.order.log_action('pretix.event.order.changed.remove_block', user=self.user, auth=self.auth, data={
'position': op.position.pk,
'positionid': op.position.positionid,
'position': position.pk,
'positionid': position.positionid,
'block_name': op.block_name,
})
if op.position.blocked and op.block_name in op.position.blocked:
op.position.blocked = [b for b in op.position.blocked if b != op.block_name]
if not op.position.blocked:
op.position.blocked = None
if position.blocked and op.block_name in position.blocked:
position.blocked = [b for b in position.blocked if b != op.block_name]
if not position.blocked:
position.blocked = None
if op.ignore_from_quota_while_blocked is not None:
op.position.ignore_from_quota_while_blocked = op.ignore_from_quota_while_blocked
op.position.save(update_fields=['blocked', 'ignore_from_quota_while_blocked'])
if not op.position.blocked:
position.ignore_from_quota_while_blocked = op.ignore_from_quota_while_blocked
position.save(update_fields=['blocked', 'ignore_from_quota_while_blocked'])
if not position.blocked:
try:
bs = op.position.blocked_secrets.get(secret=op.position.secret)
bs = position.blocked_secrets.get(secret=position.secret)
bs.blocked = False
bs.save()
except BlockedTicketSecret.DoesNotExist:
+3
View File
@@ -62,6 +62,9 @@ class VATIDTemporaryError(VATIDError):
def _validate_vat_id_NO(vat_id, country_code):
# Inspired by vat_moss library
if not vat_id.startswith("NO"):
# prefix is not usually used in Norway, but expected by vat_moss library
vat_id = "NO" + vat_id
try:
vat_id = vat_moss.id.normalize(vat_id)
except ValueError:
+8 -3
View File
@@ -71,6 +71,7 @@ from pretix.base.reldate import (
RelativeDateField, RelativeDateTimeField, RelativeDateWrapper,
SerializerRelativeDateField, SerializerRelativeDateTimeField,
)
from pretix.base.validators import multimail_validate
from pretix.control.forms import (
ExtFileField, FontSelect, MultipleLanguagesWidget, SingleLanguageWidget,
)
@@ -1233,14 +1234,18 @@ DEFAULTS = {
'invoice_email_organizer': {
'default': '',
'type': str,
'form_class': forms.EmailField,
'serializer_class': serializers.EmailField,
'form_class': forms.CharField,
'serializer_class': serializers.CharField,
'form_kwargs': dict(
label=_("Email address to receive a copy of each invoice"),
help_text=_("Each newly created invoice will be sent to this email address shortly after creation. You can "
"use this for an automated import of invoices to your accounting system. The invoice will be "
"the only attachment of the email."),
)
validators=[multimail_validate],
),
'serializer_kwargs': dict(
validators=[multimail_validate],
),
},
'show_items_outside_presale_period': {
'default': 'True',
+5
View File
@@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="14" viewBox="0 0 18 14"
class="{{ cls }}">
<path d="M7.713 3.573c-.787-.124-1.677.472-1.511 1.529l.857 3.473c.116.579.578 1.086 1.317 1.086h3.166v3.504c0 1.108 1.556 1.113 1.556.019V8.682c0-.536-.376-1.116-1.099-1.116L9.52 7.563l-.752-2.936c-.147-.648-.583-.981-1.055-1.055v.001Z"></path>
<path d="M4.48 5.835a.6.6 0 0 0-.674.725l.71 3.441c.287 1.284 1.39 2.114 2.495 2.114h2.273c.807 0 .811-1.215-.01-1.215H7.188c-.753 0-1.375-.45-1.563-1.289l-.672-3.293c-.062-.3-.26-.452-.474-.483ZM7.433.102a1.468 1.468 0 1 0 0 2.937 1.469 1.469 0 1 0 0-2.937Z"></path>
</svg>

After

Width:  |  Height:  |  Size: 636 B

+60
View File
@@ -0,0 +1,60 @@
#
# This file is part of pretix (Community Edition).
#
# Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-2021 rami.io GmbH and contributors
#
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License.
#
# ADDITIONAL TERMS APPLY: Pursuant to Section 7 of the GNU Affero General Public License, additional terms are
# applicable granting you additional permissions and placing additional restrictions on your usage of this software.
# Please refer to the pretix LICENSE file to obtain the full terms applicable to this work. If you did not receive
# this file, see <https://pretix.eu/about/en/license>.
#
# This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
# details.
#
# You should have received a copy of the GNU Affero General Public License along with this program. If not, see
# <https://www.gnu.org/licenses/>.
#
from django import template
from django.utils.html import format_html
from django.utils.safestring import mark_safe
from django.utils.translation import gettext_lazy as _ # NOQA
register = template.Library()
@register.simple_tag
def dialog(html_id, label, description, *args, **kwargs):
format_kwargs = {
"id": html_id,
"label": label,
"description": description,
"icon": format_html('<div class="modal-card-icon"><span class="fa fa-{}" aria-hidden="true"></span></div>', kwargs["icon"]) if "icon" in kwargs else "",
"alert": mark_safe('role="alertdialog"') if kwargs.get("alert", "False") != "False" else "",
}
result = """
<dialog {alert}
id="{id}"
aria-labelledby="{id}-label"
aria-describedby="{id}-description">
<form method="dialog" class="modal-card form-horizontal">
{icon}
<div class="modal-card-content">
<h2 id="{id}-label">{label}</h2>
<p id="{id}-description">{description}</p>
"""
return format_html(result, **format_kwargs)
@register.simple_tag
def enddialog(*args, **kwargs):
return mark_safe("""
</div>
</form>
</dialog>
""")
+1 -1
View File
@@ -80,4 +80,4 @@ def serve_metrics(request):
content = "\n".join(output) + "\n"
return HttpResponse(content)
return HttpResponse(content, content_type="text/plain;version=1.0.0;escaping=allow-utf-8")
@@ -85,7 +85,7 @@
<div class="checkbox">
<label>
<input type="checkbox" name="delete" value="yes" />
<b>{% trans "Permanently delete all orders created in test mode" %}</b>
<strong>{% trans "Permanently delete all orders created in test mode" %}</strong>
</label>
</div>
<div class="text-right">
@@ -40,6 +40,7 @@
<th class="iconcol"></th>
<th class="iconcol"></th>
<th class="iconcol"></th>
<th class="iconcol"></th>
<th class="text-right flip">{% trans "Default price" %}</th>
<th class="action-col-2"><span class="sr-only">Edit</span></th>
</tr>
@@ -111,6 +112,14 @@
<span class="fa fa-bars fa-fw text-muted" data-toggle="tooltip" title="{% trans "Product with variations" %}"></span>
{% endif %}
</td>
<td>
{% if i.requires_seat %}
<span data-toggle="tooltip"
title="{% if request.event.has_subevents %}{% trans "Product assigned to seating plan for one or more dates" context "subevent" %}{% else %}{% trans "Product assigned to seating plan" %}{% endif %}">
{% include "icons/seat.svg" with cls="svg-icon text-muted" %}
</span>
{% endif %}
</td>
<td>
{% if i.category.is_addon %}
<span class="fa fa-plus-square fa-fw text-muted" data-toggle="tooltip"
@@ -413,10 +413,7 @@
{% endif %}
{% if line.seat %}
<br />
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="14" viewBox="0 0 4.7624999 3.7041668" class="svg-icon">
<path
d="m 1.9592032,1.8522629e-4 c -0.21468,0 -0.38861,0.17394000371 -0.38861,0.38861000371 0,0.21466 0.17393,0.38861 0.38861,0.38861 0.21468,0 0.3886001,-0.17395 0.3886001,-0.38861 0,-0.21467 -0.1739201,-0.38861000371 -0.3886001,-0.38861000371 z m 0.1049,0.84543000371 c -0.20823,-0.0326 -0.44367,0.12499 -0.39998,0.40462997 l 0.20361,1.01854 c 0.0306,0.15316 0.15301,0.28732 0.3483,0.28732 h 0.8376701 v 0.92708 c 0,0.29313 0.41187,0.29447 0.41187,0.005 v -1.19115 c 0,-0.14168 -0.0995,-0.29507 -0.29094,-0.29507 l -0.65578,-10e-4 -0.1757,-0.87644 C 2.3042533,0.95300523 2.1890432,0.86500523 2.0641032,0.84547523 Z m -0.58549,0.44906997 c -0.0946,-0.0134 -0.20202,0.0625 -0.17829,0.19172 l 0.18759,0.91054 c 0.0763,0.33956 0.36802,0.55914 0.66042,0.55914 h 0.6015201 c 0.21356,0 0.21448,-0.32143 -0.003,-0.32143 H 2.1954632 c -0.19911,0 -0.36364,-0.11898 -0.41341,-0.34107 l -0.17777,-0.87126 c -0.0165,-0.0794 -0.0688,-0.11963 -0.12557,-0.12764 z"/>
</svg>
{% include "icons/seat.svg" with cls="svg-icon" %}
{{ line.seat }}
{% endif %}
{% if line.voucher %}
+8 -2
View File
@@ -65,7 +65,7 @@ from pretix.api.serializers.item import (
from pretix.base.forms import I18nFormSet
from pretix.base.models import (
CartPosition, Item, ItemCategory, ItemVariation, Order, Question,
QuestionAnswer, QuestionOption, Quota, Voucher,
QuestionAnswer, QuestionOption, Quota, SeatCategoryMapping, Voucher,
)
from pretix.base.models.event import SubEvent
from pretix.base.models.items import ItemAddOn, ItemBundle, ItemMetaValue
@@ -101,10 +101,16 @@ class ItemList(ListView):
template_name = 'pretixcontrol/items/index.html'
def get_queryset(self):
requires_seat = Exists(
SeatCategoryMapping.objects.filter(
product_id=OuterRef('pk'),
)
)
return Item.objects.filter(
event=self.request.event
).select_related("tax_rule").annotate(
var_count=Count('variations')
var_count=Count('variations'),
requires_seat=requires_seat,
).prefetch_related("category", "limit_sales_channels").order_by(
F('category__position').asc(nulls_first=True),
'category', 'position'
+4 -16
View File
@@ -42,7 +42,7 @@ from django.db.models.functions import Coalesce, Greatest
from django.http import JsonResponse
from django.shortcuts import get_object_or_404
from django.urls import reverse
from django.utils.formats import date_format, get_format
from django.utils.formats import date_format
from django.utils.timezone import make_aware
from django.utils.translation import gettext as _, pgettext
@@ -56,7 +56,7 @@ from pretix.control.permissions import (
event_permission_required, organizer_permission_required,
)
from pretix.helpers.daterange import daterange
from pretix.helpers.i18n import i18ncomp
from pretix.helpers.i18n import i18ncomp, parse_date_localized
def serialize_user(u):
@@ -408,13 +408,7 @@ def subevent_select2(request, **kwargs):
qf = Q(name__icontains=i18ncomp(query)) | Q(location__icontains=query)
tz = request.event.timezone
dt = None
for f in get_format('DATE_INPUT_FORMATS'):
try:
dt = datetime.strptime(query, f)
break
except (ValueError, TypeError):
continue
dt = parse_date_localized(query)
if dt:
dt_start = make_aware(datetime.combine(dt.date(), time(hour=0, minute=0, second=0)), tz)
@@ -458,13 +452,7 @@ def quotas_select2(request, **kwargs):
qf = Q(name__icontains=query) | Q(subevent__name__icontains=i18ncomp(query))
tz = request.event.timezone
dt = None
for f in get_format('DATE_INPUT_FORMATS'):
try:
dt = datetime.strptime(query, f)
break
except (ValueError, TypeError):
continue
dt = parse_date_localized(query)
if dt and request.event.has_subevents:
dt_start = make_aware(datetime.combine(dt.date(), time(hour=0, minute=0, second=0)), tz)
+14
View File
@@ -23,7 +23,9 @@ import gettext as gettext_module
import json
import os
import re
from datetime import datetime
from functools import lru_cache
from typing import Optional
from django.apps import apps
from django.conf import settings
@@ -222,3 +224,15 @@ def get_language_score(locale):
else:
score = len(list(catalog.items())) or 1
return score
def parse_date_localized(date_str) -> Optional[datetime]:
"""Parses a date according to the localized date input formats. Returns None if invalid."""
dt = None
for f in get_format('DATE_INPUT_FORMATS'):
try:
dt = datetime.strptime(date_str, f)
break
except (ValueError, TypeError):
continue
return dt
+3 -3
View File
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="14" viewBox="0 0 4.7624999 3.7041668">
<path
d="m 1.9592032,1.8522629e-4 c -0.21468,0 -0.38861,0.17394000371 -0.38861,0.38861000371 0,0.21466 0.17393,0.38861 0.38861,0.38861 0.21468,0 0.3886001,-0.17395 0.3886001,-0.38861 0,-0.21467 -0.1739201,-0.38861000371 -0.3886001,-0.38861000371 z m 0.1049,0.84543000371 c -0.20823,-0.0326 -0.44367,0.12499 -0.39998,0.40462997 l 0.20361,1.01854 c 0.0306,0.15316 0.15301,0.28732 0.3483,0.28732 h 0.8376701 v 0.92708 c 0,0.29313 0.41187,0.29447 0.41187,0.005 v -1.19115 c 0,-0.14168 -0.0995,-0.29507 -0.29094,-0.29507 l -0.65578,-10e-4 -0.1757,-0.87644 C 2.3042533,0.95300523 2.1890432,0.86500523 2.0641032,0.84547523 Z m -0.58549,0.44906997 c -0.0946,-0.0134 -0.20202,0.0625 -0.17829,0.19172 l 0.18759,0.91054 c 0.0763,0.33956 0.36802,0.55914 0.66042,0.55914 h 0.6015201 c 0.21356,0 0.21448,-0.32143 -0.003,-0.32143 H 2.1954632 c -0.19911,0 -0.36364,-0.11898 -0.41341,-0.34107 l -0.17777,-0.87126 c -0.0165,-0.0794 -0.0688,-0.11963 -0.12557,-0.12764 z"/>
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="14" viewBox="0 0 18 14">
<path d="M7.713 3.573c-.787-.124-1.677.472-1.511 1.529l.857 3.473c.116.579.578 1.086 1.317 1.086h3.166v3.504c0 1.108 1.556 1.113 1.556.019V8.682c0-.536-.376-1.116-1.099-1.116L9.52 7.563l-.752-2.936c-.147-.648-.583-.981-1.055-1.055v.001Z"></path>
<path d="M4.48 5.835a.6.6 0 0 0-.674.725l.71 3.441c.287 1.284 1.39 2.114 2.495 2.114h2.273c.807 0 .811-1.215-.01-1.215H7.188c-.753 0-1.375-.45-1.563-1.289l-.672-3.293c-.062-.3-.26-.452-.474-.483ZM7.433.102a1.468 1.468 0 1 0 0 2.937 1.469 1.469 0 1 0 0-2.937Z"></path>
</svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 668 B

+1 -1
View File
@@ -29857,7 +29857,7 @@ msgid "Add to cart"
msgstr ""
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you already ordered a ticket"
msgid "If you have already ordered a ticket"
msgstr ""
#: pretix/presale/templates/pretixpresale/event/index.html:257
+1 -1
View File
@@ -34519,7 +34519,7 @@ msgid "Add to cart"
msgstr "أضف إلى سلة التسوق"
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you already ordered a ticket"
msgid "If you have already ordered a ticket"
msgstr "إذا كنت قد طلبت تذكرة سابقا"
#: pretix/presale/templates/pretixpresale/event/index.html:257
+1 -1
View File
@@ -29859,7 +29859,7 @@ msgid "Add to cart"
msgstr ""
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you already ordered a ticket"
msgid "If you have already ordered a ticket"
msgstr ""
#: pretix/presale/templates/pretixpresale/event/index.html:257
+1 -1
View File
@@ -33955,7 +33955,7 @@ msgid "Add to cart"
msgstr "Afegir a la cistella"
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you already ordered a ticket"
msgid "If you have already ordered a ticket"
msgstr "Si ja teniu tiquets demanats"
#: pretix/presale/templates/pretixpresale/event/index.html:257
+12 -21
View File
@@ -8,16 +8,16 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-04-28 11:06+0000\n"
"PO-Revision-Date: 2025-02-19 17:00+0000\n"
"Last-Translator: Petr Čermák <pcermak@live.com>\n"
"Language-Team: Czech <https://translate.pretix.eu/projects/pretix/pretix/cs/"
">\n"
"PO-Revision-Date: 2025-05-16 17:00+0000\n"
"Last-Translator: David <davemachala@gmail.com>\n"
"Language-Team: Czech <https://translate.pretix.eu/projects/pretix/pretix/cs/>"
"\n"
"Language: cs\n"
"MIME-Version: 1.0\n"
"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.10\n"
"X-Generator: Weblate 5.11.4\n"
#: pretix/_base_settings.py:87
msgid "English"
@@ -57,7 +57,7 @@ msgstr "Čeština"
#: pretix/_base_settings.py:96
msgid "Croatian"
msgstr ""
msgstr "Chorvatština"
#: pretix/_base_settings.py:97
msgid "Danish"
@@ -2971,12 +2971,9 @@ msgid "Repeat password"
msgstr "Opakovat heslo"
#: pretix/base/forms/questions.py:134 pretix/base/forms/questions.py:256
#, fuzzy
#| msgctxt "subevent"
#| msgid "No date was specified."
msgctxt "name_salutation"
msgid "not specified"
msgstr "Nebylo uvedeno žádné datum."
msgstr "neuvedeno"
#: pretix/base/forms/questions.py:219
msgid "Please do not use special characters in names."
@@ -4227,20 +4224,14 @@ msgstr ""
"automatická sleva poskytnuta i nadále."
#: pretix/base/models/discount.py:177
#, fuzzy
#| msgctxt "subevent"
#| msgid "All dates starting before"
msgctxt "subevent"
msgid "Available for dates starting from"
msgstr "Všechny termíny začínající před"
msgstr "Dostupné pro termíny začínající od"
#: pretix/base/models/discount.py:182
#, fuzzy
#| msgctxt "subevent"
#| msgid "All dates starting before"
msgctxt "subevent"
msgid "Available for dates starting until"
msgstr "Všechny termíny začínající před"
msgstr "Dostupné pro termíny začínající do"
#: pretix/base/models/discount.py:214
msgid ""
@@ -13474,7 +13465,7 @@ msgstr "Schváleno, čeká se na platbu"
#: pretix/plugins/reports/exporters.py:380
#: pretix/presale/templates/pretixpresale/event/fragment_order_status.html:7
msgid "Approval pending"
msgstr "Čeká se na schválení"
msgstr "Čeká na schválení"
#: pretix/control/forms/filter.py:241
#, fuzzy
@@ -18849,7 +18840,7 @@ msgstr "Kontrola"
#: pretix/control/templates/pretixcontrol/organizers/device_logs.html:50
#: pretix/control/templates/pretixcontrol/organizers/logs.html:80
msgid "No results"
msgstr "Bez výsledků"
msgstr "Žádné výsledky"
#: pretix/control/templates/pretixcontrol/event/mail.html:7
#: pretix/control/templates/pretixcontrol/organizers/mail.html:11
@@ -32275,7 +32266,7 @@ msgid "Add to cart"
msgstr "Přidat do košíku"
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you already ordered a ticket"
msgid "If you have already ordered a ticket"
msgstr "Pokud jste si již vstupenku objednali"
#: pretix/presale/templates/pretixpresale/event/index.html:257
+35 -58
View File
@@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-04-28 11:08+0000\n"
"PO-Revision-Date: 2025-02-19 17:00+0000\n"
"Last-Translator: Petr Čermák <pcermak@live.com>\n"
"PO-Revision-Date: 2025-05-16 17:00+0000\n"
"Last-Translator: David <davemachala@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.10\n"
"X-Generator: Weblate 5.11.4\n"
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:56
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:62
@@ -237,11 +237,11 @@ msgstr "Zrušeno"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:46
msgid "Confirmed"
msgstr ""
msgstr "Potvrzeno"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:47
msgid "Approval pending"
msgstr ""
msgstr "Čeká na schválení"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:48
msgid "Redeemed"
@@ -440,7 +440,7 @@ msgstr "je po"
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:40
msgid "="
msgstr ""
msgstr "="
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:99
msgid "Product"
@@ -452,7 +452,7 @@ msgstr "Varianta produktu"
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:107
msgid "Gate"
msgstr ""
msgstr "Brána"
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:111
msgid "Current date and time"
@@ -557,12 +557,12 @@ msgstr "Duplikát"
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:193
msgctxt "entry_status"
msgid "present"
msgstr ""
msgstr "přítomen"
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:194
msgctxt "entry_status"
msgid "absent"
msgstr ""
msgstr "nepřítomen"
#: pretix/static/pretixcontrol/js/ui/editor.js:171
msgid "Check-in QR"
@@ -692,10 +692,8 @@ msgid "Calculating default price…"
msgstr "Výpočet standardní ceny…"
#: pretix/static/pretixcontrol/js/ui/plugins.js:69
#, fuzzy
#| msgid "Search results"
msgid "No results"
msgstr "Vyhledat výsledky"
msgstr "Žádné výsledky"
#: pretix/static/pretixcontrol/js/ui/question.js:42
msgid "Others"
@@ -764,64 +762,57 @@ msgid "Your local time:"
msgstr "Místní čas:"
#: pretix/static/pretixpresale/js/walletdetection.js:39
#, fuzzy
#| msgid "Apple Pay"
msgid "Google Pay"
msgstr "Apple Pay"
msgstr "Google Pay"
#: pretix/static/pretixpresale/js/widget/widget.js:16
msgctxt "widget"
msgid "Quantity"
msgstr ""
msgstr "Počet"
#: pretix/static/pretixpresale/js/widget/widget.js:17
msgctxt "widget"
msgid "Decrease quantity"
msgstr ""
msgstr "Snížit počet"
#: pretix/static/pretixpresale/js/widget/widget.js:18
msgctxt "widget"
msgid "Increase quantity"
msgstr ""
msgstr "Zvýšit počet"
#: pretix/static/pretixpresale/js/widget/widget.js:19
msgctxt "widget"
msgid "Price"
msgstr ""
msgstr "Cena"
#: pretix/static/pretixpresale/js/widget/widget.js:20
#, javascript-format
msgctxt "widget"
msgid "Original price: %s"
msgstr ""
msgstr "Původní cena: %s"
#: pretix/static/pretixpresale/js/widget/widget.js:21
#, javascript-format
msgctxt "widget"
msgid "New price: %s"
msgstr ""
msgstr "Nová cena: %s"
#: pretix/static/pretixpresale/js/widget/widget.js:22
#, fuzzy
#| msgid "Selected only"
msgctxt "widget"
msgid "Select"
msgstr "Pouze vybra"
msgstr "Vybrat"
#: pretix/static/pretixpresale/js/widget/widget.js:23
#, fuzzy, javascript-format
#| msgid "Selected only"
#, javascript-format
msgctxt "widget"
msgid "Select %s"
msgstr "Pouze vybrané"
msgstr "Vybrat %s"
#: pretix/static/pretixpresale/js/widget/widget.js:24
#, fuzzy, javascript-format
#| msgctxt "widget"
#| msgid "See variations"
#, javascript-format
msgctxt "widget"
msgid "Select variant %s"
msgstr "Zobrazit možnosti"
msgstr "Vybrat variantu %s"
#: pretix/static/pretixpresale/js/widget/widget.js:25
msgctxt "widget"
@@ -857,7 +848,7 @@ msgstr "od %(currency)s %(price)s"
#, javascript-format
msgctxt "widget"
msgid "Image of %s"
msgstr ""
msgstr "Obrázek%s"
#: pretix/static/pretixpresale/js/widget/widget.js:32
msgctxt "widget"
@@ -892,24 +883,19 @@ msgstr "K dispozici pouze s poukazem"
#: pretix/static/pretixpresale/js/widget/widget.js:38
#: pretix/static/pretixpresale/js/widget/widget.js:41
#, fuzzy
#| msgid "Payment method unavailable"
msgctxt "widget"
msgid "Not yet available"
msgstr "Způsob platby není k dispozici"
msgstr "Zatím není k dispozici"
#: pretix/static/pretixpresale/js/widget/widget.js:39
msgctxt "widget"
msgid "Not available anymore"
msgstr ""
msgstr "Již není k dispozici"
#: pretix/static/pretixpresale/js/widget/widget.js:40
#, fuzzy
#| msgctxt "widget"
#| msgid "currently available: %s"
msgctxt "widget"
msgid "Currently not available"
msgstr "aktuálně k dispozici: %s"
msgstr "Momentálně není k dispozici."
#: pretix/static/pretixpresale/js/widget/widget.js:42
#, javascript-format
@@ -942,12 +928,9 @@ msgid "Open ticket shop"
msgstr "Obchod vstupenek otevřit"
#: pretix/static/pretixpresale/js/widget/widget.js:48
#, fuzzy
#| msgctxt "widget"
#| msgid "Resume checkout"
msgctxt "widget"
msgid "Checkout"
msgstr "Obnovit checkout"
msgstr "Checkout"
#: pretix/static/pretixpresale/js/widget/widget.js:49
msgctxt "widget"
@@ -1009,20 +992,14 @@ msgid "Continue"
msgstr "Pokračovat"
#: pretix/static/pretixpresale/js/widget/widget.js:61
#, fuzzy
#| msgctxt "widget"
#| msgid "See variations"
msgctxt "widget"
msgid "Show variants"
msgstr "Zobrazit možnosti"
#: pretix/static/pretixpresale/js/widget/widget.js:62
#, fuzzy
#| msgctxt "widget"
#| msgid "See variations"
msgctxt "widget"
msgid "Hide variants"
msgstr "Zobrazit možnosti"
msgstr "Skrýt možnosti"
#: pretix/static/pretixpresale/js/widget/widget.js:63
msgctxt "widget"
@@ -1110,31 +1087,31 @@ msgstr "Ne"
#: pretix/static/pretixpresale/js/widget/widget.js:81
msgid "Monday"
msgstr ""
msgstr "Pondělí"
#: pretix/static/pretixpresale/js/widget/widget.js:82
msgid "Tuesday"
msgstr ""
msgstr "Úterý"
#: pretix/static/pretixpresale/js/widget/widget.js:83
msgid "Wednesday"
msgstr ""
msgstr "Středa"
#: pretix/static/pretixpresale/js/widget/widget.js:84
msgid "Thursday"
msgstr ""
msgstr "Čtvrtek"
#: pretix/static/pretixpresale/js/widget/widget.js:85
msgid "Friday"
msgstr ""
msgstr "Pátek"
#: pretix/static/pretixpresale/js/widget/widget.js:86
msgid "Saturday"
msgstr ""
msgstr "Sobota"
#: pretix/static/pretixpresale/js/widget/widget.js:87
msgid "Sunday"
msgstr ""
msgstr "Neděle"
#: pretix/static/pretixpresale/js/widget/widget.js:90
msgid "January"
+1 -1
View File
@@ -29951,7 +29951,7 @@ msgid "Add to cart"
msgstr ""
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you already ordered a ticket"
msgid "If you have already ordered a ticket"
msgstr ""
#: pretix/presale/templates/pretixpresale/event/index.html:257
+1 -1
View File
@@ -32689,7 +32689,7 @@ msgid "Add to cart"
msgstr "Læg i kurv"
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you already ordered a ticket"
msgid "If you have already ordered a ticket"
msgstr "Hvis du allerede har bestilt en billet"
#: pretix/presale/templates/pretixpresale/event/index.html:257
+6 -6
View File
@@ -5,7 +5,7 @@ msgstr ""
"Project-Id-Version: 1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-04-28 11:06+0000\n"
"PO-Revision-Date: 2025-04-28 11:32+0000\n"
"PO-Revision-Date: 2025-05-06 16:20+0000\n"
"Last-Translator: Raphael Michel <michel@rami.io>\n"
"Language-Team: German <https://translate.pretix.eu/projects/pretix/pretix/de/"
">\n"
@@ -14,7 +14,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.11\n"
"X-Generator: Weblate 5.11.1\n"
"X-Poedit-Bookmarks: -1,-1,904,-1,-1,-1,-1,-1,-1,-1\n"
#: pretix/_base_settings.py:87
@@ -6103,7 +6103,7 @@ msgstr "Zertifikat"
#: pretix/base/models/orders.py:3468 pretix/control/views/event.py:390
#: pretix/control/views/event.py:395
msgid "Other"
msgstr "Sonstiges"
msgstr "Sonstige"
#: pretix/base/models/organizer.py:79
msgid ""
@@ -15355,7 +15355,7 @@ msgstr ""
#: pretix/control/forms/organizer.py:195
msgid "You need to choose an event."
msgstr "Sie müssen eine Veranstaltung auswählen."
msgstr "Sie müssen eine Veranstaltung wählen."
#: pretix/control/forms/organizer.py:227
msgid "You may set only one organizer domain."
@@ -28084,7 +28084,7 @@ msgstr "Alternative Veranstalterdomain für einzelne Veranstaltungen"
#: pretix/multidomain/models.py:38
msgid "Event domain"
msgstr "Veranstaltungsdomain"
msgstr "Veranstaltungs-Domain"
#: pretix/multidomain/models.py:44
msgid "Domain name"
@@ -33772,7 +33772,7 @@ msgid "Add to cart"
msgstr "Zum Warenkorb hinzufügen"
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you already ordered a ticket"
msgid "If you have already ordered a ticket"
msgstr "Wenn Sie bereits ein Ticket bestellt haben"
#: pretix/presale/templates/pretixpresale/event/index.html:257
+3 -3
View File
@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-04-28 11:08+0000\n"
"PO-Revision-Date: 2025-04-28 11:32+0000\n"
"PO-Revision-Date: 2025-05-12 14:33+0000\n"
"Last-Translator: Raphael Michel <michel@rami.io>\n"
"Language-Team: German <https://translate.pretix.eu/projects/pretix/pretix-js/"
"de/>\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.11\n"
"X-Generator: Weblate 5.11.4\n"
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:56
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:62
@@ -742,7 +742,7 @@ msgstr "Bitte tragen Sie eine Menge für eines der Produkte ein."
#: pretix/static/pretixpresale/js/ui/main.js:510
msgid "required"
msgstr "verpflichtend"
msgstr "erforderlich"
#: pretix/static/pretixpresale/js/ui/main.js:554
#: pretix/static/pretixpresale/js/ui/main.js:574
@@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: 1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-04-28 11:06+0000\n"
"PO-Revision-Date: 2025-04-28 11:32+0000\n"
"Last-Translator: Raphael Michel <michel@rami.io>\n"
"PO-Revision-Date: 2025-05-09 22:00+0000\n"
"Last-Translator: Luca Hammer <hammer@rami.io>\n"
"Language-Team: German (informal) <https://translate.pretix.eu/projects/"
"pretix/pretix/de_Informal/>\n"
"Language: de_Informal\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.11\n"
"X-Generator: Weblate 5.11.4\n"
#: pretix/_base_settings.py:87
msgid "English"
@@ -6099,7 +6099,7 @@ msgstr "Zertifikat"
#: pretix/base/models/orders.py:3468 pretix/control/views/event.py:390
#: pretix/control/views/event.py:395
msgid "Other"
msgstr "Sonstiges"
msgstr "Sonstige"
#: pretix/base/models/organizer.py:79
msgid ""
@@ -9464,10 +9464,10 @@ msgstr ""
"die Kurzform der Veranstaltung verwendet, gefolgt von einem Bindestrich. "
"Achtung: Wenn mehrere Veranstaltungen des selben Veranstalters den selben "
"Wert in diesem Feld nutzen, teilen sie sich den Nummernkreis, d.h. jede "
"vollständige Rechnungsnummer wird pro Veranstalter nur einmal ergeben. Diese "
"Einstellung betrifft nur zukünftige Rechnungen. Du kannst die Platzhalter %Y "
"(mit Jahrhundert) oder %y (ohne Jahrhundert) verwenden um das Jahr der "
"Rechnung einzusetzen, oder %m bzw. %d für den Tag oder Monat."
"vollständige Rechnungsnummer wird pro Veranstalter nur einmal vergeben. "
"Diese Einstellung betrifft nur zukünftige Rechnungen. Du kannst die "
"Platzhalter %Y (mit Jahrhundert) oder %y (ohne Jahrhundert) verwenden um das "
"Jahr der Rechnung einzusetzen, oder %m bzw. %d für den Tag oder Monat."
#: pretix/base/settings.py:697 pretix/base/settings.py:719
#, python-brace-format
@@ -15329,7 +15329,7 @@ msgstr ""
#: pretix/control/forms/organizer.py:195
msgid "You need to choose an event."
msgstr "Du musst eine Veranstaltung auswählen."
msgstr "Du musst eine Veranstaltung wählen."
#: pretix/control/forms/organizer.py:227
msgid "You may set only one organizer domain."
@@ -28036,7 +28036,7 @@ msgstr "Alternative Veranstalterdomain für einzelne Veranstaltungen"
#: pretix/multidomain/models.py:38
msgid "Event domain"
msgstr "Veranstaltungsdomain"
msgstr "Veranstaltungs-Domain"
#: pretix/multidomain/models.py:44
msgid "Domain name"
@@ -33711,7 +33711,7 @@ msgid "Add to cart"
msgstr "Zum Warenkorb hinzufügen"
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you already ordered a ticket"
msgid "If you have already ordered a ticket"
msgstr "Wenn du bereits ein Ticket bestellt hast"
#: pretix/presale/templates/pretixpresale/event/index.html:257
@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-04-28 11:08+0000\n"
"PO-Revision-Date: 2025-04-28 12:21+0000\n"
"PO-Revision-Date: 2025-05-12 14:33+0000\n"
"Last-Translator: Raphael Michel <michel@rami.io>\n"
"Language-Team: German (informal) <https://translate.pretix.eu/projects/"
"pretix/pretix-js/de_Informal/>\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.11\n"
"X-Generator: Weblate 5.11.4\n"
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:56
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:62
@@ -741,7 +741,7 @@ msgstr "Bitte trage eine Menge für eines der Produkte ein."
#: pretix/static/pretixpresale/js/ui/main.js:510
msgid "required"
msgstr "verpflichtend"
msgstr "erforderlich"
#: pretix/static/pretixpresale/js/ui/main.js:554
#: pretix/static/pretixpresale/js/ui/main.js:574
+1 -1
View File
@@ -29858,7 +29858,7 @@ msgid "Add to cart"
msgstr ""
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you already ordered a ticket"
msgid "If you have already ordered a ticket"
msgstr ""
#: pretix/presale/templates/pretixpresale/event/index.html:257
+1 -1
View File
@@ -36098,7 +36098,7 @@ msgid "Add to cart"
msgstr "Προσθήκη στο καλάθι"
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you already ordered a ticket"
msgid "If you have already ordered a ticket"
msgstr "Αν έχετε ήδη αγοράσει κάποιο εισιτήριο"
#: pretix/presale/templates/pretixpresale/event/index.html:257
+1 -1
View File
@@ -29857,7 +29857,7 @@ msgid "Add to cart"
msgstr ""
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you already ordered a ticket"
msgid "If you have already ordered a ticket"
msgstr ""
#: pretix/presale/templates/pretixpresale/event/index.html:257
+138 -166
View File
@@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-04-28 11:06+0000\n"
"PO-Revision-Date: 2025-03-27 00:00+0000\n"
"Last-Translator: CVZ-es <damien.bremont@casadevelazquez.org>\n"
"PO-Revision-Date: 2025-05-14 02:00+0000\n"
"Last-Translator: Zona Vip <contacto@zonavip.mx>\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.10.4\n"
"X-Generator: Weblate 5.11.4\n"
#: pretix/_base_settings.py:87
msgid "English"
@@ -2595,7 +2595,7 @@ msgstr "Vales de compra bloqueados"
#: pretix/base/exporters/orderlist.py:1135 pretix/control/views/item.py:982
msgid "Current user's carts"
msgstr "Cesta actual del usuario"
msgstr "Carrito actual del usuario"
#: pretix/base/exporters/orderlist.py:1135
msgid "Exited orders"
@@ -2996,11 +2996,9 @@ msgid "Repeat password"
msgstr "Repetir contraseña"
#: pretix/base/forms/questions.py:134 pretix/base/forms/questions.py:256
#, fuzzy
#| msgid "No country specified."
msgctxt "name_salutation"
msgid "not specified"
msgstr "No se especifica ningún país."
msgstr "sin especificar"
#: pretix/base/forms/questions.py:219
msgid "Please do not use special characters in names."
@@ -4246,12 +4244,13 @@ msgid ""
"discounted. If you want to grant the discount on all matching products, keep "
"this field empty."
msgstr ""
"Esta opción le permite crear descuentos del tipo \"compre X y obtenga Y "
"reducido/gratis\". Por ejemplo, si establece \"Número mínimo de productos "
"coincidentes\" en cuatro y este valor en dos, la cesta del cliente se "
"dividirá en grupos de cuatro entradas y se descontarán las dos entradas más "
"baratos dentro de cada grupo. Si desea otorgar el descuento en todos los "
"productos coincidentes, mantenga este campo vacío."
"Esta opción le permite crear descuentos del tipo "
"\"compre X y obtenga Y reducido/gratis\". Por ejemplo, si establece "
"\"Número mínimo de productos coincidentes\" en cuatro y este valor en dos, "
"el carrito del cliente se dividirá en grupos de cuatro entradas y se "
"descontarán las dos entradas más baratos dentro de cada grupo. Si desea "
"otorgar el descuento en todos los productos coincidentes, mantenga este "
"campo vacío."
#: pretix/base/models/discount.py:165
msgid "Apply to add-on products"
@@ -4270,20 +4269,14 @@ msgstr ""
"o acceder a una cuota agotada seguirá recibiendo el descuento."
#: pretix/base/models/discount.py:177
#, fuzzy
#| msgctxt "subevent"
#| msgid "All dates starting before"
msgctxt "subevent"
msgid "Available for dates starting from"
msgstr "Todas las fechas empezando antes"
msgstr "Disponible para fechas a partir de"
#: pretix/base/models/discount.py:182
#, fuzzy
#| msgctxt "subevent"
#| msgid "All dates starting before"
msgctxt "subevent"
msgid "Available for dates starting until"
msgstr "Todas las fechas empezando antes"
msgstr "Disponible para fechas hasta el"
#: pretix/base/models/discount.py:214
msgid ""
@@ -4727,7 +4720,7 @@ msgstr ""
#: pretix/base/models/items.py:126
msgid "Only show if the cart contains one of the following products"
msgstr "Sólo se muestra si la cesta contiene uno de los siguientes productos"
msgstr "Sólo se muestra el carrito contiene uno de los siguientes productos"
#: pretix/base/models/items.py:129
msgid "Cross-selling condition"
@@ -4997,7 +4990,7 @@ msgid ""
"many times. If you keep the field empty or set it to 0, there is no special "
"limit for this product."
msgstr ""
"Este producto sólo se puede comprar si se agrega a la cesta por lo menos "
"Este producto sólo se puede comprar si se agrega al carrito por lo menos "
"esta cantidad de veces. Si deja el campo vacío o lo fija en 0, no hay ningún "
"límite especial para este producto."
@@ -5599,19 +5592,12 @@ msgid "Unknown country code."
msgstr "Código de país desconocido."
#: pretix/base/models/items.py:1921 pretix/base/models/items.py:1923
#, fuzzy
#| msgid "The maximum count needs to be greater than the minimum count."
msgid "The maximum date must not be before the minimum value."
msgstr "El conteo máximo debe ser mayor que el conteo mínimo."
msgstr "La fecha máxima no debe ser anterior a la fecha mínima."
#: pretix/base/models/items.py:1925
#, fuzzy
#| msgid ""
#| "The maximum number of usages may not be lower than the minimum number of "
#| "usages."
msgid "The maximum value must not be lower than the minimum value."
msgstr ""
"El número máximo de usos no podrá ser inferior al número mínimo de usos."
msgstr "El valor máximo no debe ser inferior al mínimo."
#: pretix/base/models/items.py:1942
#: pretix/control/templates/pretixcontrol/items/question.html:90
@@ -6026,7 +6012,7 @@ msgstr ""
#: pretix/base/models/orders.py:2286
msgid "Service fee"
msgstr "Gastos de gestión"
msgstr "Cargo por servicio"
#: pretix/base/models/orders.py:2287
msgid "Payment fee"
@@ -6078,15 +6064,15 @@ msgstr "Posición del pedido"
#: pretix/base/models/orders.py:3091
msgid "Cart ID (e.g. session key)"
msgstr "ID de cesta (p. ej. clave de sesión)"
msgstr "ID de carrito (p. ej. clave de sesión)"
#: pretix/base/models/orders.py:3128
msgid "Cart position"
msgstr "Posición de la cesta"
msgstr "Posición del carrito"
#: pretix/base/models/orders.py:3129
msgid "Cart positions"
msgstr "Posiciones de la cesta"
msgstr "Posiciones del carrito"
#: pretix/base/models/orders.py:3265
msgid "Business customer"
@@ -6651,7 +6637,7 @@ msgid ""
"of a specific product, you can also select a quota. In this case, all "
"products assigned to this quota can be selected."
msgstr ""
"Este producto añadirá a la cesta del usuario si está usado el vale de "
"Este producto añadirá al carrito del usuario si está usado el vale de "
"compra. En vez de un producto específico, se puede seleccionar una cuota. En "
"este caso, todos los productos que están asignados al esta cuota se pueden "
"seleccionar."
@@ -7802,7 +7788,7 @@ msgstr "Usted no seleccionó ningún producto."
#: pretix/base/services/cart.py:105
msgid "Unknown cart position."
msgstr "Posición de la cesta desconocida."
msgstr "Posición del carrito desconocida."
#: pretix/base/services/cart.py:106
msgctxt "subevent"
@@ -7836,7 +7822,7 @@ msgid ""
"products are affected and have not been added to your cart: %s"
msgstr ""
"Algunos de los productos que seleccionó ya no están disponibles. Los "
"siguientes productos están afectados y no se han agregado a su cesta: %s"
"siguientes productos están afectados y no se han agregado a su carrito: %s"
#: pretix/base/services/cart.py:121
#, python-format
@@ -7847,7 +7833,7 @@ msgid ""
msgstr ""
"Algunos de los productos que seleccionó ya no están disponibles en la "
"cantidad que seleccionó. Los siguientes productos están afectados y no se "
"han agregado a su cesta: %s"
"han agregado a su carrito: %s"
#: pretix/base/services/cart.py:126
#, python-format
@@ -7885,11 +7871,11 @@ msgid_plural ""
"We removed %(product)s from your cart as you can not buy less than %(min)s "
"items of it."
msgstr[0] ""
"Eliminamos %(product)s de su cesta ya que no puede comprar menos de %(min)s "
"artículo del mismo."
"Eliminamos %(product)s de su carrito ya que no puede comprar menos de %(min)"
"s artículo del mismo."
msgstr[1] ""
"Eliminamos %(product)s de su cesta ya que no puede comprar menos de %(min)s "
"artículos del mismo."
"Eliminamos %(product)s de su carrito ya que no puede comprar menos de %(min)"
"s artículos del mismo."
#: pretix/base/services/cart.py:144 pretix/base/services/orders.py:154
#: pretix/presale/templates/pretixpresale/event/index.html:167
@@ -7915,7 +7901,7 @@ msgid ""
"positions have been removed from your cart."
msgstr ""
"El período de preventa de este evento aún no ha comenzado. Las posiciones "
"afectadas han sido eliminadas de su cesta."
"afectadas han sido eliminadas de su carrito."
#: pretix/base/services/cart.py:151 pretix/base/services/orders.py:182
msgid ""
@@ -7923,7 +7909,7 @@ msgid ""
"affected positions have been removed from your cart."
msgstr ""
"El período de preventa de uno de los eventos de su cesta ha finalizado. Las "
"posiciones afectadas han sido eliminadas de su cesta."
"posiciones afectadas han sido eliminadas de su carrito."
#: pretix/base/services/cart.py:153
msgid "The entered price is not a number."
@@ -7965,11 +7951,11 @@ msgid_plural ""
msgstr[0] ""
"El vale de compra \"%(voucher)s\" solo se puede utilizar si selecciona al "
"menos %(number)s productos coincidentes. Por lo tanto, hemos eliminado "
"algunas posiciones de su cesta que ya no se pueden comprar así."
"algunas posiciones de su carrito que ya no se pueden comprar así."
msgstr[1] ""
"Los vale de compra \"%(voucher)s\" solo se pueden utilizar si selecciona al "
"menos %(number)s productos coincidentes. Por lo tanto, hemos eliminado "
"algunas posiciones de su cesta que ya no se pueden comprar así."
"algunas posiciones de su carrito que ya no se pueden comprar así."
#: pretix/base/services/cart.py:168
msgid ""
@@ -7986,7 +7972,7 @@ msgid ""
"process. You can try to use it again in %d minutes."
msgstr ""
"Este vale de compra está actualmente bloqueado ya que está contenido en un "
"cesta de la compra. Esto puede significar que otra persona está canjeando "
"carrito de la compra. Esto puede significar que otra persona está canjeando "
"este vale de compra ahora mismo, o que usted intentó canjearlo antes pero no "
"completó el proceso de pago. Puede intentar utilizarlo de nuevo en %d "
"minutos."
@@ -8001,7 +7987,7 @@ msgid ""
"Applying a voucher to the whole cart should not be combined with other "
"operations."
msgstr ""
"La aplicación de un vale de compra a todo la cesta no debe combinarse con "
"La aplicación de un vale de compra a todo el carrito no debe combinarse con "
"otras operaciones."
#: pretix/base/services/cart.py:178
@@ -8009,7 +7995,7 @@ msgid ""
"You already used this voucher code. Remove the associated line from your "
"cart if you want to use it for a different product."
msgstr ""
"Ya ha utilizado este vale de compra. Elimine la línea asociada de su cesta "
"Ya ha utilizado este vale de compra. Elimine la línea asociada de su carrito "
"si desea utilizarlo para un producto diferente."
#: pretix/base/services/cart.py:181
@@ -8030,7 +8016,7 @@ msgid ""
"for. If you want to add something new to your cart using that voucher, you "
"can do so with the voucher redemption option on the bottom of the page."
msgstr ""
"No encontramos ninguna posición en su cesta para la que podamos usar este "
"No encontramos ninguna posición en su carrito para la que podamos usar este "
"vale de compra. Si desea agregar algo nuevo a su cesta usando ese vale de "
"compra, puede hacerlo con la opción de canje de vale de compra en la parte "
"inferior de la página."
@@ -8631,8 +8617,8 @@ msgid ""
"The price of some of the items in your cart has changed in the meantime. "
"Please see below for details."
msgstr ""
"El precio de algunos de los artículos en su cesta ha cambiado en el durante "
"este tiempo. Por favor vea abajo para más detalles."
"El precio de algunos de los artículos en su carrito ha cambiado en el "
"durante este tiempo. Por favor vea abajo para más detalles."
#: pretix/base/services/orders.py:141
msgid "An internal error occurred, please try again."
@@ -8648,7 +8634,7 @@ msgstr ""
#: pretix/base/services/orders.py:144
msgid "Your cart is empty."
msgstr "Su cesta está vacía."
msgstr "Su carrito está vacío."
#: pretix/base/services/orders.py:146
#, python-format
@@ -8660,10 +8646,10 @@ msgid_plural ""
"removed the surplus items from your cart."
msgstr[0] ""
"No puede seleccionar más de %(max)s artículos del producto %(product)s. "
"Eliminamos el artículo sobrante de su cesta."
"Eliminamos el artículo sobrante de su carrito."
msgstr[1] ""
"No puede seleccionar más de %(max)s artículos del producto %(product)s. "
"Eliminamos los artículos sobrantes de su cesta."
"Eliminamos los artículos sobrantes de su carrito."
#: pretix/base/services/orders.py:155
msgid "The booking period has ended."
@@ -8674,7 +8660,7 @@ msgid ""
"The voucher code used for one of the items in your cart is not known in our "
"database."
msgstr ""
"El vale de compra utilizado para uno de los artículos de su cesta no es "
"El vale de compra utilizado para uno de los artículos de su carrito no es "
"conocido en nuestra base de datos."
#: pretix/base/services/orders.py:163
@@ -8683,16 +8669,16 @@ msgid ""
"used the maximum number of times allowed. We removed this item from your "
"cart."
msgstr ""
"El vale de compra utilizado para uno de los artículos de su cesta ya ha sido "
"utilizado el máximo número de veces permitido. Hemos quitado este artículo "
"de su cesta."
"El vale de compra utilizado para uno de los artículos de su carrito ya ha "
"sido utilizado el máximo número de veces permitido. Hemos quitado este "
"artículo de su cesta."
#: pretix/base/services/orders.py:167
msgid ""
"The voucher code used for one of the items in your cart has already been too "
"often. We adjusted the price of the item in your cart."
msgstr ""
"El vale de compra utilizado para uno de los artículos de su cesta ya se ha "
"El vale de compra utilizado para uno de los artículos de su carrito ya se ha "
"utilizado con demasiada frecuencia. Ajustamos el precio del artículo en su "
"cesta."
@@ -8701,16 +8687,16 @@ msgid ""
"The voucher code used for one of the items in your cart is expired. We "
"removed this item from your cart."
msgstr ""
"El vale de compra utilizado para uno de los artículos de su cesta ha "
"caducado. Hemos quitado este artículo de su cesta."
"El vale de compra utilizado para uno de los artículos de su carrito ha "
"caducado. Hemos quitado este artículo de su carrito."
#: pretix/base/services/orders.py:174
msgid ""
"The voucher code used for one of the items in your cart is not valid for "
"this item. We removed this item from your cart."
msgstr ""
"El vale de compra utilizado para uno de los artículos de su cesta no es "
"válido para este artículo. Hemos quitado este artículo de su cesta."
"El vale de compra utilizado para uno de los artículos de su carrito no es "
"válido para este artículo. Hemos quitado este artículo de su carrito."
#: pretix/base/services/orders.py:176
msgid "You need a valid voucher code to order one of the products."
@@ -8721,22 +8707,22 @@ msgid ""
"The booking period for one of the events in your cart has not yet started. "
"The affected positions have been removed from your cart."
msgstr ""
"El período de preventa de uno de los eventos de su cesta aún no ha "
"comenzado. Las posiciones afectadas han sido eliminadas de su cesta."
"El período de preventa de uno de los eventos de su carrito aún no ha "
"comenzado. Las posiciones afectadas han sido eliminadas de su carrito."
#: pretix/base/services/orders.py:185
msgid ""
"One of the seats in your order was invalid, we removed the position from "
"your cart."
msgstr ""
"Uno de las butacas de su pedido no era válida, la eliminamos de su cesta."
"Uno de las butacas de su pedido no era válida, la eliminamos de su carrito."
#: pretix/base/services/orders.py:186
msgid ""
"One of the seats in your order has been taken in the meantime, we removed "
"the position from your cart."
msgstr ""
"Una de las butaca de su pedido ha sido ocupada. La eliminamos de su cesta."
"Una de las butaca de su pedido ha sido ocupada. La eliminamos de su carrito."
#: pretix/base/services/orders.py:202
#, python-format
@@ -9169,8 +9155,8 @@ msgid ""
"Independent of your choice, the cart will show gross prices as this is the "
"price that needs to be paid."
msgstr ""
"Independientemente de su elección, el cesta mostrará los precios brutos, ya "
"que este es el precio que debe pagarse."
"Independientemente de su elección, el carrito mostrará los precios brutos, "
"ya que este es el precio que debe pagarse."
#: pretix/base/settings.py:338
msgid "Hide prices on attendee ticket page"
@@ -9536,15 +9522,15 @@ msgstr "Período de reserva"
msgid ""
"The number of minutes the items in a user's cart are reserved for this user."
msgstr ""
"El número de minutos que los artículos en la cesta de un usuario permanecen "
"reservados para un usuario."
"El número de minutos que los artículos en el carrito de un usuario "
"permanecen reservados para un usuario."
#: pretix/base/settings.py:807
msgid ""
"Directly redirect to check-out after a product has been added to the cart."
msgstr ""
"Redirigir directamente a la compra después de que un producto se haya "
"agregado a la cesta."
"agregado a la carrito."
#: pretix/base/settings.py:816
msgid "End of presale text"
@@ -11699,13 +11685,6 @@ msgid "Header image"
msgstr "Imagen de cabecera"
#: pretix/base/settings.py:2885
#, fuzzy
#| msgid ""
#| "If you provide a logo image, we will by default not show your event name "
#| "and date in the page header. By default, we show your logo with a size of "
#| "up to 1140x120 pixels. You can increase the size with the setting below. "
#| "We recommend not using small details on the picture as it will be resized "
#| "on smaller screens."
msgid ""
"If you provide a logo image, we will by default not show your event name and "
"date in the page header. If you use a white background, we show your logo "
@@ -11713,12 +11692,13 @@ msgid ""
"pixels. You can increase the size with the setting below. We recommend not "
"using small details on the picture as it will be resized on smaller screens."
msgstr ""
"Si proporciona una imagen de logotipo, de forma predeterminada no "
"mostraremos el nombre ni la fecha de su evento en el encabezado de la "
"página. De forma predeterminada, mostramos su logotipo con un tamaño de "
"hasta 1140x120 píxeles. Puede aumentar el tamaño con la configuración "
"siguiente. Recomendamos no utilizar pequeños detalles en la imagen, ya que "
"cambiará de tamaño en pantallas más pequeñas."
"Si proporciona una imagen de logotipo, por defecto no mostraremos el nombre "
"de su evento ni la fecha en la cabecera de la página. Si utiliza un fondo "
"blanco, mostraremos su logotipo con un tamaño máximo de 1140x120 píxeles. En "
"caso contrario, el tamaño máximo es de 1120x120 píxeles. Puede aumentar el "
"tamaño con la configuración que aparece a continuación. Recomendamos no "
"utilizar detalles pequeños en la imagen, ya que se redimensionará en las "
"pantallas más pequeñas."
#: pretix/base/settings.py:2906 pretix/base/settings.py:2949
msgid "Use header image in its full size"
@@ -11745,13 +11725,6 @@ msgstr ""
"título del evento."
#: pretix/base/settings.py:2929 pretix/control/forms/organizer.py:524
#, fuzzy
#| msgid ""
#| "If you provide a logo image, we will by default not show your "
#| "organization name in the page header. By default, we show your logo with "
#| "a size of up to 1140x120 pixels. You can increase the size with the "
#| "setting below. We recommend not using small details on the picture as it "
#| "will be resized on smaller screens."
msgid ""
"If you provide a logo image, we will by default not show your organization "
"name in the page header. If you use a white background, we show your logo "
@@ -11759,12 +11732,13 @@ msgid ""
"pixels. You can increase the size with the setting below. We recommend not "
"using small details on the picture as it will be resized on smaller screens."
msgstr ""
"Si proporciona una imagen de logotipo, de forma predeterminada no "
"mostraremos el nombre de su organización en el encabezado de la página. De "
"forma predeterminada, mostramos su logotipo con un tamaño de hasta 1140x120 "
"píxeles. Puede aumentar el tamaño con la configuración siguiente. "
"Recomendamos no utilizar pequeños detalles en la imagen, ya que cambiará de "
"tamaño en pantallas más pequeñas."
"Si proporciona una imagen de logotipo, por defecto no mostraremos el nombre "
"de su organización en la cabecera de la página. Si utiliza un fondo blanco, "
"mostraremos su logotipo con un tamaño máximo de 1140x120 píxeles. En caso "
"contrario, el tamaño máximo es de 1120x120 píxeles. Puede aumentar el tamaño "
"con la configuración que aparece a continuación. Recomendamos no utilizar "
"detalles pequeños en la imagen, ya que se redimensionará en las pantallas "
"más pequeñas."
#: pretix/base/settings.py:2959
msgid "Use header image also for events without an individually uploaded logo"
@@ -14702,8 +14676,8 @@ msgid ""
"\"inactive\" instead."
msgstr ""
"La variación \"%s\" no se puede borrar porque ya ha sido pedida por un "
"usuario o está actualmente en la cesta de un usuario. En su lugar, configure "
"la variación como \"inactiva\"."
"usuario o está actualmente en el carrito de un usuario. En su lugar, "
"configure la variación como \"inactiva\"."
#: pretix/control/forms/item.py:994
msgid "Use value from product"
@@ -17931,8 +17905,8 @@ msgid_plural ""
"Are you sure you want to permanently delete the check-ins of "
"<strong>%(count)s tickets</strong>?"
msgstr[0] ""
"¿Está seguro de que desea eliminar permanentemente los registros de "
"<strong>check-in</strong>?."
"¿Está seguro de que desea eliminar permanentemente los registros de <strong"
">check-in</strong>?"
msgstr[1] ""
"¿Estás seguro de que deseas eliminar permanentemente los registros de "
"<strong>%(count)s check-in</strong>?"
@@ -19881,7 +19855,7 @@ msgstr "Añadir enlace"
#: pretix/control/templates/pretixcontrol/event/settings.html:345
msgid "Cart"
msgstr "Cesta"
msgstr "Carrito"
#: pretix/control/templates/pretixcontrol/event/settings.html:353
msgid ""
@@ -20311,7 +20285,7 @@ msgid ""
msgstr ""
"Ejemplos: múltiples presentaciones del mismo espectáculo, el mismo concierto "
"en múltiples ubicaciones, museos, bibliotecas o piscinas, eventos que deben "
"reservarse juntos en una sola cesta."
"reservarse juntos en un solo carrito."
#: pretix/control/templates/pretixcontrol/events/create_foundation.html:53
msgid ""
@@ -20901,7 +20875,7 @@ msgid ""
"as add-ons in the cart for this product."
msgstr ""
"Con los paquetes, puede especificar productos que siempre se agregan "
"automáticamente a la cesta como complementos para este producto."
"automáticamente al carrito como complementos para este producto."
#: pretix/control/templates/pretixcontrol/item/include_bundles.html:68
msgid "Add a new bundled product"
@@ -21087,7 +21061,7 @@ msgstr "Condición"
#: pretix/control/templates/pretixcontrol/items/discount.html:34
msgid "Minimum cart content"
msgstr "Contenido mínimo de la cesta"
msgstr "Contenido mínimo del carrito"
#: pretix/control/templates/pretixcontrol/items/discount.html:43
#: pretix/plugins/stripe/templates/pretixplugins/stripe/checkout_payment_form_card.html:53
@@ -21183,7 +21157,7 @@ msgid ""
"overlapping discounts, the first one in the order of the list below will "
"apply."
msgstr ""
"Un sólo desuento puede aplicarse a los productos de la cesta. Si tiene "
"Un sólo desuento puede aplicarse a los productos del carrito. Si tiene "
"descuentos superpuestos, se aplicará el primero en el pedido de la lista "
"siguiente."
@@ -24645,32 +24619,32 @@ msgstr "Idioma preferido"
#: pretix/control/templates/pretixcontrol/pdf/index.html:200
#: pretix/control/templates/pretixcontrol/pdf/index.html:210
#, fuzzy
#| msgid "Upload custom background"
msgid "Upload PDF as background"
msgstr "Subir fondo personalizado"
msgstr "Subir PDF como fondo"
#: pretix/control/templates/pretixcontrol/pdf/index.html:202
msgid ""
"You can upload a PDF to use as a custom background. The paper size will "
"match the PDF."
msgstr ""
"Puede cargar un PDF para utilizarlo como fondo personalizado. El tamaño del "
"papel coincidirá con el PDF."
#: pretix/control/templates/pretixcontrol/pdf/index.html:217
msgid "Download current background"
msgstr "Descargar fondo actual"
#: pretix/control/templates/pretixcontrol/pdf/index.html:224
#, fuzzy
#| msgid "Date chosen by customer"
msgid "Or choose custom paper size"
msgstr "Fecha elegida por el cliente"
msgstr "O elija un tamaño de papel personalizado"
#: pretix/control/templates/pretixcontrol/pdf/index.html:226
msgid ""
"To manually change the paper size, you need to create a new, empty "
"background."
msgstr ""
"Para cambiar manualmente el tamaño del papel, debe crear un nuevo fondo "
"vacío."
#: pretix/control/templates/pretixcontrol/pdf/index.html:234
#: pretix/control/templates/pretixcontrol/pdf/index.html:321
@@ -25849,7 +25823,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/vouchers/delete_carts.html:4
#: pretix/control/templates/pretixcontrol/vouchers/delete_carts.html:6
msgid "Delete carts"
msgstr "Eliminar cestas"
msgstr "Eliminar carrito"
#: pretix/control/templates/pretixcontrol/vouchers/delete_carts.html:9
#, python-format
@@ -25857,7 +25831,7 @@ msgid ""
"Are you sure you want to delete any cart positions with voucher "
"<strong>%(voucher)s</strong>?"
msgstr ""
"¿Está seguro de que desea eliminar alguna entrada de la cesta con vale de "
"¿Está seguro de que desea eliminar alguna entrada del carrito con vale de "
"compra <strong>%(voucher)s</strong>?"
#: pretix/control/templates/pretixcontrol/vouchers/delete_carts.html:10
@@ -25866,7 +25840,7 @@ msgid ""
"a purchase. This can be really confusing. Only use this if you know that the "
"session is no longer in use."
msgstr ""
"Esto eliminará silenciosamente productos de la cesta de un usuario que "
"Esto eliminará silenciosamente productos del carrito de un usuario que "
"actualmente realiza una compra. Esto puede resultar realmente confuso. "
"Utilice esto únicamente si sabe que la sesión ya no está en uso."
@@ -25886,13 +25860,13 @@ msgid ""
"This voucher is currently used in %(number)s cart sessions and might not be "
"free to use until the cart sessions expire."
msgstr ""
"Este vale de compra se utiliza actualmente en %(number)s sesiones de la "
"cesta y es posible que no sea de uso gratuito hasta que caduque la sesión de "
"la cesta."
"Este vale de compra se utiliza actualmente en %(number)s sesiones del "
"carrito y es posible que no sea de uso gratuito hasta que caduque la sesión "
"de la cesta."
#: pretix/control/templates/pretixcontrol/vouchers/detail.html:28
msgid "Remove cart positions"
msgstr "Eliminar element de la cesta"
msgstr "Eliminar elemento del carrito"
#: pretix/control/templates/pretixcontrol/vouchers/detail.html:43
msgid "Voucher link"
@@ -28066,10 +28040,9 @@ msgid "until"
msgstr "hasta"
#: pretix/helpers/daterange.py:106
#, fuzzy, python-brace-format
#| msgid "{date_from} {date_to}"
#, python-brace-format
msgid "{date_from}{until}{date_to}"
msgstr "{date_from} {date_to}"
msgstr "{date_from}{until}{date_to}"
#: pretix/helpers/images.py:61 pretix/helpers/images.py:67
#: pretix/helpers/images.py:85
@@ -31857,10 +31830,8 @@ msgid "Payer name"
msgstr "Nombre del pagador"
#: pretix/plugins/stripe/templates/pretixplugins/stripe/control.html:91
#, fuzzy
#| msgid "Payment fee"
msgid "Payment receipt"
msgstr "Tarifa de pago"
msgstr "Recibo de pago"
#: pretix/plugins/stripe/templates/pretixplugins/stripe/oauth_disconnect.html:12
msgid "Do you really want to disconnect your Stripe account?"
@@ -32181,7 +32152,7 @@ msgid ""
"Your cart includes a product that requires an active membership to be "
"selected."
msgstr ""
"Su cesta incluye un producto que requiere una suscripción activa para ser "
"Su carrito incluye un producto que requiere una suscripción activa para ser "
"seleccionado."
#: pretix/presale/checkoutflow.py:489
@@ -32217,8 +32188,8 @@ msgid ""
"accordingly."
msgstr ""
"Debido a la dirección de factura que ingresó, necesitamos aplicar una tasa "
"impositiva diferente a su compra y el precio de los productos en su cesta ha "
"cambiado en consecuencia."
"impositiva diferente a su compra y el precio de los productos en su carrito "
"ha cambiado en consecuencia."
#: pretix/presale/checkoutflow.py:1029
msgid "Please enter your invoicing address."
@@ -32576,7 +32547,7 @@ msgid ""
"For some of the products in your cart, you can choose additional options "
"before you continue."
msgstr ""
"Para algunos de los productos en su cesta, usted puede elegir opciones "
"Para algunos de los productos en su carrito, usted puede elegir opciones "
"adicionales antes de continuar."
#: pretix/presale/templates/pretixpresale/event/checkout_addons.html:16
@@ -32584,7 +32555,7 @@ msgid ""
"A product in your cart is only sold in combination with add-on products that "
"are not available. Please contact the event organizer."
msgstr ""
"Un producto de su cesta sólo se vende en combinación con productos "
"Un producto de su carrito sólo se vende en combinación con productos "
"complementarios que no están disponibles. Póngase en contacto con el "
"organizador del evento."
@@ -32632,17 +32603,17 @@ msgstr "Compra"
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:8
#: pretix/presale/templates/pretixpresale/event/fragment_cart_box.html:11
msgid "Your cart"
msgstr "Su cesta"
msgstr "Su carrito"
#: pretix/presale/templates/pretixpresale/event/checkout_base.html:28
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:31
#: pretix/presale/templates/pretixpresale/event/fragment_cart_box.html:18
msgid "Cart expired"
msgstr "La cesta de compra ha expirado"
msgstr "El carrito de compra ha expirado"
#: pretix/presale/templates/pretixpresale/event/checkout_base.html:36
msgid "Show full cart"
msgstr "Mostrar cesta completa"
msgstr "Mostrar carrito completo"
#: pretix/presale/templates/pretixpresale/event/checkout_base.html:48
#: pretix/presale/templates/pretixpresale/event/index.html:84
@@ -32788,7 +32759,7 @@ msgid ""
"Some of the products in your cart can only be purchased if there is an "
"active membership on your account."
msgstr ""
"Algunos productos de la cesta sólo pueden comprarse si existe una "
"Algunos productos del carrito sólo pueden comprarse si existe una "
"suscripción activa en su cuenta."
#: pretix/presale/templates/pretixpresale/event/checkout_membership.html:37
@@ -32921,7 +32892,7 @@ msgid ""
"browser settings accordingly."
msgstr ""
"Su navegador no acepta cookies de nuestra parte. Sin embargo, necesitamos "
"establecer una cookie para recordar quién es usted y qué hay en su cesta. "
"establecer una cookie para recordar quién es usted y qué hay en su carrito. "
"Por favor, cambie la configuración de su navegador en consecuencia."
#: pretix/presale/templates/pretixpresale/event/fragment_addon_choice.html:17
@@ -33083,7 +33054,7 @@ msgstr "incluido. %(rate)s%% %(name)s"
#: pretix/presale/templates/pretixpresale/event/voucher.html:252
#, python-format
msgid "Add %(item)s, %(var)s to cart"
msgstr "Cantidad de %(item)s - %(var)s en la cesta"
msgstr "Cantidad de %(item)s - %(var)s en el carrito"
#: pretix/presale/templates/pretixpresale/event/fragment_addon_choice.html:203
#: pretix/presale/templates/pretixpresale/event/fragment_addon_choice.html:349
@@ -33122,7 +33093,7 @@ msgstr "Aumentar cantidad"
#: pretix/presale/templates/pretixpresale/event/voucher.html:408
#, python-format
msgid "Add %(item)s to cart"
msgstr "Añadir %(item)s a la cesta"
msgstr "Añadir %(item)s al carrito"
#: pretix/presale/templates/pretixpresale/event/fragment_addon_choice.html:379
msgid "There are no add-ons available for this product."
@@ -33244,12 +33215,12 @@ msgstr "Entendido, estamos removiendo eso…"
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:289
#, python-format
msgid "Remove %(item)s from your cart"
msgstr "Eliminar %(item)s de su cesta"
msgstr "Eliminar %(item)s de su carrito"
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:292
#, python-format
msgid "Remove one %(item)s from your cart"
msgstr "Eliminar un %(item)s de tu cesta"
msgstr "Eliminar un %(item)s de tu carrito"
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:294
#, python-format
@@ -33257,7 +33228,7 @@ msgid ""
"Remove one %(item)s from your cart. You currently have %(count)s in your "
"cart."
msgstr ""
"Elimina un %(item)s de su cesta. Actualmente tiene %(count)s en su cesta."
"Elimina un %(item)s de su carrito. Actualmente tiene %(count)s en su carrito."
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:302
msgid "We're trying to reserve another one for you!"
@@ -33272,13 +33243,13 @@ msgid ""
"Once the items are in your cart, you will have %(time)s minutes to complete "
"your purchase."
msgstr ""
"Una vez los elementos están en su cesta, tendrá %(time)s minutos para "
"Una vez los elementos están en su carrito, tendrá %(time)s minutos para "
"completar la compra."
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:322
#, python-format
msgid "Add one more %(item)s to your cart"
msgstr "Añadir un %(item)s más a su cesta"
msgstr "Añadir un %(item)s más a su carrito"
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:324
#, python-format
@@ -33286,7 +33257,8 @@ msgid ""
"Add one more %(item)s to your cart. You currently have %(count)s in your "
"cart."
msgstr ""
"Agregar un %(item)s más a su cesta. Actualmente tiene %(count)s en su cesta."
"Agregar un %(item)s más a su carrito. Actualmente tiene %(count)s en su "
"carrito."
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:384
#: pretix/presale/templates/pretixpresale/event/order_giftcard.html:20
@@ -33310,15 +33282,15 @@ msgstr "incl. %(tax_sum)s impuestos"
#, python-format
msgid "The items in your cart are reserved for you for %(minutes)s minutes."
msgstr ""
"Los artículos de su cesta están reservados durante %(minutes)ss minutos."
"Los artículos de su carrito están reservados durante %(minutes)ss minutos."
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:493
msgid ""
"The items in your cart are no longer reserved for you. You can still "
"complete your order as long as theyre available."
msgstr ""
"Los elementos en su cesta de compras ya no se encuentran reservados. Puedes "
"seguir añadiendo más productos mientras estén disponibles."
"Los elementos en su carrito de compras ya no se encuentran reservados. "
"Puedes seguir añadiendo más productos mientras estén disponibles."
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:497
msgid "Overview of your ordered products."
@@ -33336,7 +33308,7 @@ msgstr "Proceder con la compra"
#: pretix/presale/templates/pretixpresale/event/fragment_cart_box.html:63
msgid "Empty cart"
msgstr "Vaciar cesta"
msgstr "Vaciar carrito"
#: pretix/presale/templates/pretixpresale/event/fragment_cart_box.html:68
#: pretix/presale/templates/pretixpresale/event/index.html:246
@@ -33346,7 +33318,7 @@ msgstr "Canjear vale de compra"
#: pretix/presale/templates/pretixpresale/event/fragment_cart_box.html:71
msgid "We're applying this voucher to your cart..."
msgstr "Estamos aplicando este vale de compra a su cesta..."
msgstr "Estamos aplicando este vale de compra a su carrito..."
#: pretix/presale/templates/pretixpresale/event/fragment_cart_box.html:79
#: pretix/presale/templates/pretixpresale/event/fragment_voucher_form.html:26
@@ -33722,11 +33694,11 @@ msgstr ""
#: pretix/presale/templates/pretixpresale/event/index.html:48
msgid "Your cart, general information, add products to your cart"
msgstr "Su cesta, información general, añadir productos a su cesta"
msgstr "Su carrito, información general, añadir productos a su carrito"
#: pretix/presale/templates/pretixpresale/event/index.html:48
msgid "General information, add products to your cart"
msgstr "Información general, añadir productos a la cesta"
msgstr "Información general, añadir productos al carrito"
#: pretix/presale/templates/pretixpresale/event/index.html:68
msgid "Please select a date to redeem your voucher."
@@ -33780,10 +33752,10 @@ msgstr "Registrarse"
#: pretix/presale/templates/pretixpresale/event/index.html:232
#: pretix/presale/templates/pretixpresale/event/voucher.html:443
msgid "Add to cart"
msgstr "Agregar a la cesta"
msgstr "Agregar al carrito"
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you already ordered a ticket"
msgid "If you have already ordered a ticket"
msgstr "Si ya ha pedido una entrada"
#: pretix/presale/templates/pretixpresale/event/index.html:257
@@ -34620,8 +34592,8 @@ msgid ""
"Functional cookies (e.g. shopping cart, login, payment, language preference) "
"and technical cookies (e.g. security purposes)"
msgstr ""
"Cookies funcionales (por ejemplo, cesta de compras, inicio de sesión, pago, "
"preferencia de idioma) y cookies técnicas (por ejemplo, con fines de "
"Cookies funcionales (por ejemplo, carrito de compras, inicio de sesión, "
"pago, preferencia de idioma) y cookies técnicas (por ejemplo, con fines de "
"seguridad)"
#: pretix/presale/templates/pretixpresale/fragment_modals.html:89
@@ -34913,26 +34885,26 @@ msgstr "Por favor, introduzca sólo números positivos."
#: pretix/presale/views/cart.py:441
msgid "We applied the voucher to as many products in your cart as we could."
msgstr ""
"Aplicamos el vale de compra a tantos productos en su cesta como pudimos."
"Aplicamos el vale de compra a tantos productos en su carrito como pudimos."
#: pretix/presale/views/cart.py:460 pretix/presale/views/cart.py:468
msgid ""
"The gift card has been saved to your cart. Please continue your checkout."
msgstr ""
"La tarjeta regalo se ha guardado en su cesta. Continúe con el proceso de "
"La tarjeta regalo se ha guardado en su carrito. Continúe con el proceso de "
"compra."
#: pretix/presale/views/cart.py:504
msgid "Your cart has been updated."
msgstr "Su cesta ha sido actualizada."
msgstr "Su carrito ha sido actualizada."
#: pretix/presale/views/cart.py:507 pretix/presale/views/cart.py:533
msgid "Your cart is now empty."
msgstr "Su cesta ha sido vaciada."
msgstr "Su carrito ha sido vaciada."
#: pretix/presale/views/cart.py:548
msgid "The products have been successfully added to your cart."
msgstr "Los productos se han añadido con éxito a su cesta."
msgstr "Los productos se han añadido con éxito a su carrito."
#: pretix/presale/views/cart.py:572 pretix/presale/views/event.py:540
#: pretix/presale/views/widget.py:377
@@ -34945,8 +34917,8 @@ msgid ""
"The gift card has been saved to your cart. Please now select the products "
"you want to purchase."
msgstr ""
"La tarjeta regalo se ha guardado en su cesta. Seleccione ahora los productos "
"que desea comprar."
"La tarjeta regalo se ha guardado en su carrito. Seleccione ahora los "
"productos que desea comprar."
#: pretix/presale/views/cart.py:739
msgctxt "subevent"
@@ -34955,7 +34927,7 @@ msgstr "No pudimos encontrar la fecha especificada."
#: pretix/presale/views/checkout.py:55
msgid "Your cart is empty"
msgstr "Su cesta está vacía"
msgstr "Su carito está vacío"
#: pretix/presale/views/checkout.py:59
msgid "The booking period for this event is over or has not yet started."
+16 -19
View File
@@ -8,16 +8,16 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-04-28 11:08+0000\n"
"PO-Revision-Date: 2025-03-27 00: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"
"PO-Revision-Date: 2025-05-14 02:00+0000\n"
"Last-Translator: Zona Vip <contacto@zonavip.mx>\n"
"Language-Team: Spanish <https://translate.pretix.eu/projects/pretix/"
"pretix-js/es/>\n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.10.4\n"
"X-Generator: Weblate 5.11.4\n"
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:56
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:62
@@ -706,12 +706,12 @@ msgid ""
"The items in your cart are no longer reserved for you. You can still "
"complete your order as long as theyre available."
msgstr ""
"Los elementos en su cesta de compras ya no se encuentran reservados. Puedes "
"seguir añadiendo más productos mientras estén disponibles."
"Los elementos en su carrito de compras ya no se encuentran reservados. "
"Puedes seguir añadiendo más productos mientras estén disponibles."
#: pretix/static/pretixpresale/js/ui/cart.js:45
msgid "Cart expired"
msgstr "La cesta de compra ha expirado"
msgstr "El carrito de compra ha expirado"
#: pretix/static/pretixpresale/js/ui/cart.js:50
msgid "The items in your cart are reserved for you for one minute."
@@ -918,12 +918,9 @@ msgid "Open ticket shop"
msgstr "Abrir tienda de tickets"
#: pretix/static/pretixpresale/js/widget/widget.js:48
#, fuzzy
#| msgctxt "widget"
#| msgid "Resume checkout"
msgctxt "widget"
msgid "Checkout"
msgstr "Continuar pago"
msgstr "Pasar por caja"
#: pretix/static/pretixpresale/js/widget/widget.js:49
msgctxt "widget"
@@ -1081,31 +1078,31 @@ msgstr "Dom"
#: pretix/static/pretixpresale/js/widget/widget.js:81
msgid "Monday"
msgstr ""
msgstr "Lunes"
#: pretix/static/pretixpresale/js/widget/widget.js:82
msgid "Tuesday"
msgstr ""
msgstr "Martes"
#: pretix/static/pretixpresale/js/widget/widget.js:83
msgid "Wednesday"
msgstr ""
msgstr "Miércoles"
#: pretix/static/pretixpresale/js/widget/widget.js:84
msgid "Thursday"
msgstr ""
msgstr "Jueves"
#: pretix/static/pretixpresale/js/widget/widget.js:85
msgid "Friday"
msgstr ""
msgstr "Viernes"
#: pretix/static/pretixpresale/js/widget/widget.js:86
msgid "Saturday"
msgstr ""
msgstr "Sábado"
#: pretix/static/pretixpresale/js/widget/widget.js:87
msgid "Sunday"
msgstr ""
msgstr "Domingo"
#: pretix/static/pretixpresale/js/widget/widget.js:90
msgid "January"
+1 -1
View File
@@ -29859,7 +29859,7 @@ msgid "Add to cart"
msgstr ""
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you already ordered a ticket"
msgid "If you have already ordered a ticket"
msgstr ""
#: pretix/presale/templates/pretixpresale/event/index.html:257
+1 -1
View File
@@ -32099,7 +32099,7 @@ msgid "Add to cart"
msgstr "Saskira gehitu"
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you already ordered a ticket"
msgid "If you have already ordered a ticket"
msgstr "Dagoeneko sarrera bat eskatu baduzu"
#: pretix/presale/templates/pretixpresale/event/index.html:257
+124 -122
View File
@@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-04-28 11:06+0000\n"
"PO-Revision-Date: 2025-02-12 15:27+0000\n"
"Last-Translator: Johanna Ketola <johanna.ketola@om.org>\n"
"PO-Revision-Date: 2025-05-04 16:00+0000\n"
"Last-Translator: Pekka Sarkola <pekka.sarkola@gispo.fi>\n"
"Language-Team: Finnish <https://translate.pretix.eu/projects/pretix/pretix/"
"fi/>\n"
"Language: fi\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.9.2\n"
"X-Generator: Weblate 5.11.1\n"
#: pretix/_base_settings.py:87
msgid "English"
@@ -57,7 +57,7 @@ msgstr "tšekki"
#: pretix/_base_settings.py:96
msgid "Croatian"
msgstr ""
msgstr "Kroatia"
#: pretix/_base_settings.py:97
msgid "Danish"
@@ -2887,7 +2887,7 @@ msgstr "Odottaa lunastusta"
#: pretix/control/templates/pretixcontrol/waitinglist/index.html:223
#: pretix/control/views/waitinglist.py:329
msgid "Voucher redeemed"
msgstr "Kuponi lunastettu"
msgstr "Kuponki lunastettu"
#: pretix/base/exporters/waitinglist.py:80
#: pretix/control/templates/pretixcontrol/waitinglist/index.html:116
@@ -4245,7 +4245,7 @@ msgstr ""
#: pretix/base/models/discount.py:177
msgctxt "subevent"
msgid "Available for dates starting from"
msgstr ""
msgstr "Saatavilla lähtien"
#: pretix/base/models/discount.py:182
#, fuzzy
@@ -9794,7 +9794,7 @@ msgstr ""
#: pretix/base/settings.py:1311
msgid "This shop represents an event"
msgstr ""
msgstr "Tämä kauppaa koskee tapahtumaa"
#: pretix/base/settings.py:1313
msgid ""
@@ -12805,15 +12805,15 @@ msgstr "Tehtävä on suoritettu."
#: pretix/control/forms/__init__.py:205
#, python-brace-format
msgid "Please do not upload files larger than {size}!"
msgstr ""
msgstr "Älä lataa tiedostoja, jotka ovat suurempia kuin {size}!"
#: pretix/control/forms/__init__.py:227
msgid "Filetype not allowed!"
msgstr ""
msgstr "Tiedostomuoto ei ole sallittu!"
#: pretix/control/forms/__init__.py:330
msgid "Community translations"
msgstr ""
msgstr "Yhteisön käännökset"
#: pretix/control/forms/__init__.py:332
#, python-brace-format
@@ -12843,7 +12843,7 @@ msgstr ""
#: pretix/control/forms/checkin.py:176
msgid "Barcode"
msgstr ""
msgstr "Viivakoodi"
#: pretix/control/forms/checkin.py:179
msgid "Check-in time"
@@ -12869,11 +12869,11 @@ msgstr "Kaikki portit"
#: pretix/control/forms/event.py:91
msgid "Use languages"
msgstr ""
msgstr "Käytä kieliä"
#: pretix/control/forms/event.py:93
msgid "Choose all languages that your event should be available in."
msgstr ""
msgstr "Valitse kaikki kielet, joita tapahtumasi käyttää."
#: pretix/control/forms/event.py:96
msgid "This is an event series"
@@ -12886,19 +12886,19 @@ msgstr ""
#: pretix/control/forms/event.py:136 pretix/control/forms/event.py:518
msgid "Event timezone"
msgstr ""
msgstr "Tapahtuman aikavyöhyke"
#: pretix/control/forms/event.py:143
msgid "I don't want to specify taxes now"
msgstr ""
msgstr "En halua määritellä veroja nyt"
#: pretix/control/forms/event.py:144
msgid "You can always configure tax rates later."
msgstr ""
msgstr "Voit aina määritellä verojen määrn myöhemmin."
#: pretix/control/forms/event.py:148
msgid "Sales tax rate"
msgstr ""
msgstr "Arvonlisävero"
#: pretix/control/forms/event.py:149
msgid ""
@@ -12927,6 +12927,8 @@ msgid ""
"Sample Conference Center\n"
"Heidelberg, Germany"
msgstr ""
"Esimerkki konferenssikeskus\n"
"Helsinki, Finland"
#: pretix/control/forms/event.py:232
msgid "Your default locale must be specified."
@@ -12956,7 +12958,7 @@ msgstr "Oletus ({value})"
#: pretix/control/forms/event.py:384 pretix/control/forms/event.py:397
msgid "Domain"
msgstr ""
msgstr "Verkkotunnus"
#: pretix/control/forms/event.py:388
msgid "You can configure this in your organizer settings."
@@ -13009,7 +13011,7 @@ msgstr ""
#: pretix/control/forms/event.py:689
msgid "Do not ask"
msgstr ""
msgstr "Älä kysy"
#: pretix/control/forms/event.py:690
msgid "Ask, but do not require input"
@@ -13393,7 +13395,7 @@ msgstr ""
#: pretix/control/forms/event.py:1723
msgid "Payment via Stripe"
msgstr ""
msgstr "Maksut Stripen kautta"
#: pretix/control/forms/event.py:1724
msgid ""
@@ -13894,7 +13896,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/checkin/checkins.html:67
#: pretix/plugins/checkinlists/exporters.py:761
msgid "Device"
msgstr ""
msgstr "Laite"
#: pretix/control/forms/filter.py:2389 pretix/control/forms/filter.py:2424
#: pretix/control/forms/filter.py:2615
@@ -14229,7 +14231,7 @@ msgstr ""
#: pretix/control/forms/item.py:447
msgid "Size"
msgstr ""
msgstr "Koko"
#: pretix/control/forms/item.py:448
msgid "Number of tickets"
@@ -14332,7 +14334,7 @@ msgstr ""
#: pretix/control/forms/item.py:1079
msgid "Add-ons"
msgstr ""
msgstr "Lisäosat"
#: pretix/control/forms/item.py:1103
msgid "You added the same add-on category twice"
@@ -14361,7 +14363,7 @@ msgstr ""
#: pretix/control/forms/item.py:1236 pretix/control/forms/orders.py:367
#: pretix/control/forms/orders.py:557
msgid "inactive"
msgstr ""
msgstr "Ei käytössä"
#: pretix/control/forms/mailsetup.py:42
msgid "Hostname"
@@ -14588,7 +14590,7 @@ msgstr ""
#: pretix/presale/templates/pretixpresale/event/checkout_membership.html:23
#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:100
msgid "Seat"
msgstr ""
msgstr "Istumapaikka"
#: pretix/control/forms/orders.py:336
#: pretix/control/templates/pretixcontrol/order/change.html:182
@@ -14609,7 +14611,7 @@ msgstr ""
#: pretix/control/forms/orders.py:552 pretix/control/forms/orders.py:570
#: pretix/control/forms/orders.py:598
msgid "(Unchanged)"
msgstr ""
msgstr "(Muuttumaton)"
#: pretix/control/forms/orders.py:469 pretix/control/forms/orders.py:593
msgid "New price (gross)"
@@ -14694,7 +14696,7 @@ msgstr "Liitä laskut"
#: pretix/plugins/sendmail/templates/pretixplugins/sendmail/rule_inspect.html:20
#: pretix/plugins/sendmail/templates/pretixplugins/sendmail/rule_list.html:30
msgid "Recipient"
msgstr ""
msgstr "Vastaanottaja"
#: pretix/control/forms/orders.py:768
#, fuzzy, python-brace-format
@@ -15032,7 +15034,7 @@ msgstr "Myyntikanava samalla tunnuksella on jo olemassa."
#: pretix/control/templates/pretixcontrol/items/question_edit.html:139
msgctxt "form"
msgid "Optional"
msgstr ""
msgstr "Valinnainen"
#: pretix/control/forms/renderers.py:148
#: pretix/control/templates/pretixcontrol/organizers/device_bulk_edit.html:26
@@ -15045,23 +15047,23 @@ msgstr "muuta"
#: pretix/control/forms/rrule.py:35
msgid "year(s)"
msgstr ""
msgstr "vuosi(a)"
#: pretix/control/forms/rrule.py:36
msgid "month(s)"
msgstr ""
msgstr "kuukausi(a)"
#: pretix/control/forms/rrule.py:37
msgid "week(s)"
msgstr ""
msgstr "viikko(ja)"
#: pretix/control/forms/rrule.py:38
msgid "day(s)"
msgstr ""
msgstr "päiviä"
#: pretix/control/forms/rrule.py:43
msgid "Interval"
msgstr ""
msgstr "Aikaväli"
#: pretix/control/forms/rrule.py:69
msgid "Number of repetitions"
@@ -15074,27 +15076,27 @@ msgstr ""
#: pretix/control/forms/rrule.py:86 pretix/control/forms/rrule.py:133
msgctxt "rrule"
msgid "first"
msgstr ""
msgstr "ensimmäinen"
#: pretix/control/forms/rrule.py:87 pretix/control/forms/rrule.py:134
msgctxt "rrule"
msgid "second"
msgstr ""
msgstr "toinen"
#: pretix/control/forms/rrule.py:88 pretix/control/forms/rrule.py:135
msgctxt "rrule"
msgid "third"
msgstr ""
msgstr "kolmas"
#: pretix/control/forms/rrule.py:89 pretix/control/forms/rrule.py:136
msgctxt "rrule"
msgid "last"
msgstr ""
msgstr "viimeinen"
#: pretix/control/forms/rrule.py:110 pretix/control/forms/rrule.py:149
#: pretix/presale/templates/pretixpresale/fragment_calendar_nav.html:21
msgid "Day"
msgstr ""
msgstr "Päivä"
#: pretix/control/forms/rrule.py:112 pretix/control/forms/rrule.py:151
msgid "Weekend day"
@@ -15140,7 +15142,7 @@ msgstr ""
#: pretix/control/forms/vouchers.py:262
msgid "Codes"
msgstr ""
msgstr "Koodit"
#: pretix/control/forms/vouchers.py:264
msgid ""
@@ -15191,11 +15193,11 @@ msgstr ""
#: pretix/plugins/sendmail/templates/pretixplugins/sendmail/rule_update.html:42
#: pretix/plugins/sendmail/templates/pretixplugins/sendmail/send_form.html:25
msgid "Recipients"
msgstr ""
msgstr "Vastaanottajaat"
#: pretix/control/forms/vouchers.py:292
msgid "or"
msgstr ""
msgstr "tai"
#: pretix/control/forms/vouchers.py:296
msgid ""
@@ -15444,7 +15446,7 @@ msgstr ""
#: pretix/control/logdisplay.py:343 pretix/control/logdisplay.py:345
#: pretix/control/logdisplay.py:891 pretix/control/logdisplay.py:893
msgid "(unknown)"
msgstr ""
msgstr "(tuntematon)"
#: pretix/control/logdisplay.py:365
#, python-brace-format
@@ -16544,7 +16546,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/dashboard.html:3
#: pretix/control/templates/pretixcontrol/dashboard.html:5
msgid "Dashboard"
msgstr ""
msgstr "Kojelauta"
#: pretix/control/navigation.py:49 pretix/control/navigation.py:382
#: pretix/control/navigation.py:487
@@ -16559,7 +16561,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/organizers/mail.html:19
#: pretix/control/templates/pretixcontrol/organizers/property_edit.html:15
msgid "General"
msgstr ""
msgstr "Yleinen"
#: pretix/control/navigation.py:57
#: pretix/control/templates/pretixcontrol/event/quick_setup.html:151
@@ -16571,7 +16573,7 @@ msgstr ""
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:43
#: pretix/presale/templates/pretixpresale/event/order.html:86
msgid "Payment"
msgstr ""
msgstr "Maksut"
#: pretix/control/navigation.py:73 pretix/control/views/event.py:1516
#: pretix/control/views/event.py:1518 pretix/control/views/event.py:1550
@@ -16593,17 +16595,17 @@ msgstr ""
#: pretix/control/navigation.py:97
msgid "Invoicing"
msgstr ""
msgstr "Laskutus"
#: pretix/control/navigation.py:105
msgctxt "action"
msgid "Cancellation"
msgstr ""
msgstr "Peruutus"
#: pretix/control/navigation.py:113
#: pretix/control/templates/pretixcontrol/event/widget.html:8
msgid "Widget"
msgstr ""
msgstr "Pienoisohjelma"
#: pretix/control/navigation.py:126 pretix/control/navigation.py:435
#: pretix/control/navigation.py:480
@@ -16613,11 +16615,11 @@ msgstr ""
#: pretix/plugins/returnurl/apps.py:40
#: pretix/plugins/ticketoutputpdf/apps.py:55
msgid "Settings"
msgstr ""
msgstr "Asetukset"
#: pretix/control/navigation.py:164
msgid "Categories"
msgstr ""
msgstr "Kategoriat"
#: pretix/control/navigation.py:180
msgid "Discounts"
@@ -16625,7 +16627,7 @@ msgstr "Alennukset"
#: pretix/control/navigation.py:213
msgid "Overview"
msgstr ""
msgstr "Yleiskuva"
#: pretix/control/navigation.py:221
#: pretix/control/templates/pretixcontrol/order/index.html:828
@@ -16635,11 +16637,11 @@ msgstr ""
#: pretix/plugins/reports/accountingreport.py:684
#: pretix/presale/templates/pretixpresale/event/order.html:137
msgid "Refunds"
msgstr ""
msgstr "Maksupalautukset"
#: pretix/control/navigation.py:247
msgid "Import"
msgstr ""
msgstr "Tuonti"
#: pretix/control/navigation.py:276
msgid "All vouchers"
@@ -16647,12 +16649,12 @@ msgstr ""
#: pretix/control/navigation.py:284
msgid "Tags"
msgstr ""
msgstr "Tagit"
#: pretix/control/navigation.py:296
msgctxt "navigation"
msgid "Check-in"
msgstr ""
msgstr "Ilmoittautumiset"
#: pretix/control/navigation.py:313
#: pretix/control/templates/pretixcontrol/checkin/checkins.html:4
@@ -16672,20 +16674,20 @@ msgstr "Etsi"
#: pretix/plugins/reports/accountingreport.py:677
#: pretix/plugins/reports/accountingreport.py:871
msgid "Payments"
msgstr ""
msgstr "Maksut"
#: pretix/control/navigation.py:376
msgid "User settings"
msgstr ""
msgstr "Käyttäjän asetukset"
#: pretix/control/navigation.py:387
#: pretix/control/templates/pretixcontrol/user/settings.html:16
msgid "Notifications"
msgstr ""
msgstr "Ilmoitukset"
#: pretix/control/navigation.py:392
msgid "2FA"
msgstr ""
msgstr "2FA"
#: pretix/control/navigation.py:397
msgid "Authorized apps"
@@ -16713,7 +16715,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/global_settings_base.html:5
#: pretix/control/templates/pretixcontrol/global_settings_base.html:7
msgid "Global settings"
msgstr ""
msgstr "Yleiset asetukset"
#: pretix/control/navigation.py:440
msgid "Update check"
@@ -16761,7 +16763,7 @@ msgstr "SSO palveluntarjoajat"
#: pretix/control/navigation.py:626 pretix/control/navigation.py:633
msgid "Devices"
msgstr ""
msgstr "Laitteet"
#: pretix/control/permissions.py:72 pretix/control/permissions.py:109
#: pretix/control/permissions.py:140 pretix/control/permissions.py:157
@@ -16798,13 +16800,13 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/auth/invite.html:23
#: pretix/control/templates/pretixcontrol/auth/register.html:18
msgid "Login"
msgstr ""
msgstr "Sisäänkirjautuminen"
#: pretix/control/templates/pretixcontrol/auth/invite.html:27
#: pretix/control/templates/pretixcontrol/auth/login.html:43
#: pretix/control/templates/pretixcontrol/auth/register.html:22
msgid "Register"
msgstr ""
msgstr "Rekisteröinti"
#: pretix/control/templates/pretixcontrol/auth/login.html:27
#: pretix/presale/templates/pretixpresale/fragment_login_status.html:20
@@ -16830,7 +16832,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/auth/login_2fa.html:14
msgid "Token"
msgstr ""
msgstr "Token"
#: pretix/control/templates/pretixcontrol/auth/login_2fa.html:18
#: pretix/control/templates/pretixcontrol/user/reauth.html:22
@@ -16903,7 +16905,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/auth/oauth_authorization.html:54
msgid "Error:"
msgstr ""
msgstr "Virhe:"
#: pretix/control/templates/pretixcontrol/auth/recover.html:7
msgid "Set new password"
@@ -16979,7 +16981,7 @@ msgstr ""
#: pretix/presale/templates/pretixpresale/organizers/customer_password.html:20
#: pretix/presale/templates/pretixpresale/organizers/customer_setpassword.html:20
msgid "Save"
msgstr ""
msgstr "Tallenna"
#: pretix/control/templates/pretixcontrol/auth/register.html:7
msgid "Create a new account"
@@ -17129,7 +17131,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/boxoffice/payment.html:11
msgid "ID"
msgstr ""
msgstr "ID"
#: pretix/control/templates/pretixcontrol/boxoffice/payment.html:15
msgid "ZVT Terminal"
@@ -17350,7 +17352,7 @@ msgstr[1] ""
#: pretix/presale/templates/pretixpresale/event/position_change.html:24
#: pretix/presale/templates/pretixpresale/event/position_modify.html:44
msgid "Cancel"
msgstr ""
msgstr "Peruuta"
#: pretix/control/templates/pretixcontrol/checkin/bulk_revert_confirm.html:27
#: pretix/control/templates/pretixcontrol/checkin/list_delete.html:24
@@ -17396,7 +17398,7 @@ msgstr ""
#: pretix/presale/templates/pretixpresale/organizers/customer_profile_delete.html:34
#: pretix/presale/templates/pretixpresale/organizers/customer_profiles.html:29
msgid "Delete"
msgstr ""
msgstr "Poista"
#: pretix/control/templates/pretixcontrol/checkin/checkins.html:9
#: pretix/control/templates/pretixcontrol/checkin/checkins.html:41
@@ -17445,7 +17447,7 @@ msgstr ""
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/import_form.html:91
#: pretix/presale/templates/pretixpresale/fragment_event_list_filter.html:21
msgid "Filter"
msgstr ""
msgstr "Suodatin"
#: pretix/control/templates/pretixcontrol/checkin/checkins.html:50
msgid "Your search did not match any check-ins."
@@ -17464,7 +17466,7 @@ msgstr ""
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/transaction_list.html:14
#: pretix/plugins/checkinlists/exporters.py:766
msgid "Result"
msgstr ""
msgstr "Tulos"
#: pretix/control/templates/pretixcontrol/checkin/checkins.html:78
#: pretix/control/templates/pretixcontrol/order/index.html:392
@@ -17534,11 +17536,11 @@ msgstr "Ilmoittautumis-simulaattori"
#: pretix/control/templates/pretixcontrol/orders/overview.html:20
#: pretix/plugins/ticketoutputpdf/ticketoutput.py:64
msgid "PDF"
msgstr ""
msgstr "PDF"
#: pretix/control/templates/pretixcontrol/checkin/index.html:32
msgid "CSV"
msgstr ""
msgstr "CSV"
#: pretix/control/templates/pretixcontrol/checkin/index.html:73
msgid "No attendee record was found."
@@ -17556,7 +17558,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/checkin/index.html:114
#: pretix/control/templates/pretixcontrol/user/staff_session_edit.html:29
msgid "Timestamp"
msgstr ""
msgstr "Aikaleima"
#: pretix/control/templates/pretixcontrol/checkin/index.html:125
#: pretix/control/templates/pretixcontrol/orders/index.html:165
@@ -17622,7 +17624,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/event/tax_edit.html:33
#: pretix/control/templates/pretixcontrol/items/question_edit.html:128
msgid "Advanced"
msgstr ""
msgstr "Edistynyt"
#: pretix/control/templates/pretixcontrol/checkin/list_edit.html:50
msgid ""
@@ -17669,7 +17671,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/vouchers/bulk.html:117
#: pretix/plugins/sendmail/templates/pretixplugins/sendmail/send_form.html:85
msgid "Edit"
msgstr ""
msgstr "Muokkaa"
#: pretix/control/templates/pretixcontrol/checkin/list_edit.html:89
msgid "Visualize"
@@ -17740,7 +17742,7 @@ msgstr ""
#: pretix/plugins/badges/templates/pretixplugins/badges/index.html:72
#: pretix/plugins/ticketoutputpdf/templates/pretixplugins/ticketoutputpdf/index.html:69
msgid "Clone"
msgstr ""
msgstr "Monista"
#: pretix/control/templates/pretixcontrol/checkin/simulator.html:22
msgid ""
@@ -18211,7 +18213,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/subevents/bulk.html:271
#: pretix/control/templates/pretixcontrol/subevents/bulk.html:275
msgid "Optional"
msgstr ""
msgstr "Valinnainen"
#: pretix/control/templates/pretixcontrol/event/fragment_geodata.html:22
#: pretix/control/templates/pretixcontrol/subevents/bulk_edit.html:57
@@ -18537,7 +18539,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/vouchers/bulk.html:97
#: pretix/control/templates/pretixcontrol/vouchers/bulk.html:120
msgid "Preview"
msgstr ""
msgstr "Esikatselu"
#: pretix/control/templates/pretixcontrol/event/mail.html:87
#: pretix/control/templates/pretixcontrol/organizers/mail.html:58
@@ -18615,7 +18617,7 @@ msgstr "Ota jonotuslista käyttöön"
#: pretix/control/templates/pretixcontrol/event/payment.html:66
msgid "Deadlines"
msgstr ""
msgstr "Määräpäivät"
#: pretix/control/templates/pretixcontrol/event/payment.html:74
msgctxt "unit"
@@ -18629,7 +18631,7 @@ msgstr "päivää"
#: pretix/presale/templates/pretixpresale/event/position_change_confirm.html:25
#: pretix/presale/templates/pretixpresale/event/position_giftcard.html:16
msgid "Back"
msgstr ""
msgstr "Takaisin"
#: pretix/control/templates/pretixcontrol/event/payment_provider.html:15
msgid "Payment provider:"
@@ -18637,7 +18639,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/event/payment_provider.html:21
msgid "Warning:"
msgstr ""
msgstr "Varoitus:"
#: pretix/control/templates/pretixcontrol/event/payment_provider.html:22
msgid ""
@@ -18755,7 +18757,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/event/settings_base.html:10
#: pretix/presale/templates/pretixpresale/event/fragment_product_list.html:18
msgid "Congratulations!"
msgstr ""
msgstr "Onnittelut!"
#: pretix/control/templates/pretixcontrol/event/quick_setup.html:16
#: pretix/control/templates/pretixcontrol/event/settings_base.html:12
@@ -18806,7 +18808,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/event/quick_setup.html:132
#: pretix/control/views/event.py:378
msgid "Features"
msgstr ""
msgstr "Ominaisuudet"
#: pretix/control/templates/pretixcontrol/event/quick_setup.html:134
msgid ""
@@ -18848,7 +18850,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/event/settings.html:21
msgid "Basics"
msgstr ""
msgstr "Perusteet"
#: pretix/control/templates/pretixcontrol/event/settings.html:40
#: pretix/control/templates/pretixcontrol/item/create.html:144
@@ -18864,7 +18866,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/event/settings.html:59
#: pretix/control/templates/pretixcontrol/organizers/edit.html:126
msgid "Localization"
msgstr ""
msgstr "Lokalisointi"
#: pretix/control/templates/pretixcontrol/event/settings.html:66
msgid "Customer and attendee data"
@@ -18904,7 +18906,7 @@ msgstr "Muutoksia tehtyihin tilauksiin"
#: pretix/control/templates/pretixcontrol/event/settings.html:130
msgid "Texts"
msgstr ""
msgstr "Tekstit"
#: pretix/control/templates/pretixcontrol/event/settings.html:137
msgid "Confirmation text"
@@ -19826,7 +19828,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/item/include_addons.html:28
#: pretix/control/templates/pretixcontrol/item/include_addons.html:62
msgid "Add-On"
msgstr ""
msgstr "Lisäosa"
#: pretix/control/templates/pretixcontrol/item/include_addons.html:86
msgid "Add a new add-on"
@@ -19871,7 +19873,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/item/index.html:154
msgid "Availability"
msgstr ""
msgstr "Saatavuus"
#: pretix/control/templates/pretixcontrol/item/index.html:184
msgid "Tickets & Badges"
@@ -19889,7 +19891,7 @@ msgstr "Kesto"
#: pretix/control/templates/pretixcontrol/subevents/bulk.html:355
#: pretix/control/templates/pretixcontrol/subevents/bulk.html:364
msgid "minutes"
msgstr ""
msgstr "minuuttia"
#: pretix/control/templates/pretixcontrol/item/index.html:217
msgid "hours"
@@ -20013,7 +20015,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/items/discount.html:43
#: pretix/plugins/stripe/templates/pretixplugins/stripe/checkout_payment_form_card.html:53
msgid "OR"
msgstr ""
msgstr "TAI"
#: pretix/control/templates/pretixcontrol/items/discount.html:53
msgctxt "discount"
@@ -20112,7 +20114,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/items/fragment_quota_availability.html:3
msgid "Closed"
msgstr ""
msgstr "Suljettu"
#: pretix/control/templates/pretixcontrol/items/fragment_quota_availability.html:5
msgid "Sold out (pending orders)"
@@ -20125,7 +20127,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/items/fragment_quota_availability.html:11
msgid "Unlimited"
msgstr ""
msgstr "Rajoittamaton"
#: pretix/control/templates/pretixcontrol/items/fragment_quota_availability.html:14
msgid "Fully reserved"
@@ -20144,7 +20146,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/order/index.html:19
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:7
msgid "taxes"
msgstr ""
msgstr "verot"
#: pretix/control/templates/pretixcontrol/items/index.html:10
msgid ""
@@ -20551,7 +20553,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/oauth/authorized.html:18
msgid "Permissions"
msgstr ""
msgstr "Oikeudet"
#: pretix/control/templates/pretixcontrol/oauth/authorized.html:59
msgid "No applications have access to your pretix account."
@@ -20838,7 +20840,7 @@ msgstr ""
#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:40
#: pretix/presale/templates/pretixpresale/event/order_modify.html:30
msgid "(optional)"
msgstr ""
msgstr "(valinnainen)"
#: pretix/control/templates/pretixcontrol/order/delete.html:4
#: pretix/control/templates/pretixcontrol/order/delete.html:8
@@ -21115,7 +21117,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/order/index.html:690
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:444
msgid "Taxes"
msgstr ""
msgstr "Verot"
#: pretix/control/templates/pretixcontrol/order/index.html:699
#: pretix/control/templates/pretixcontrol/orders/overview.html:89
@@ -21173,7 +21175,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/order/index.html:839
#: pretix/control/templates/pretixcontrol/orders/refunds.html:60
msgid "Source"
msgstr ""
msgstr "Lähde"
#: pretix/control/templates/pretixcontrol/order/index.html:872
msgid "Cancel transfer"
@@ -21199,7 +21201,7 @@ msgstr ""
#: pretix/presale/templates/pretixpresale/event/base.html:140
#: pretix/presale/templates/pretixpresale/event/timemachine.html:30
msgid "Change"
msgstr ""
msgstr "Vaihda"
#: pretix/control/templates/pretixcontrol/order/index.html:954
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:91
@@ -21467,7 +21469,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/order/sendmail.html:44
#: pretix/plugins/sendmail/templates/pretixplugins/sendmail/send_form.html:89
msgid "Send"
msgstr ""
msgstr "Lähetä"
#: pretix/control/templates/pretixcontrol/order/transactions.html:5
#: pretix/control/templates/pretixcontrol/order/transactions.html:8
@@ -21996,7 +21998,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/orders/overview.html:10
msgid "Sales"
msgstr ""
msgstr "Myynti"
#: pretix/control/templates/pretixcontrol/orders/overview.html:11
msgid "Revenue (gross)"
@@ -22026,7 +22028,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/orders/overview.html:80
#: pretix/plugins/reports/exporters.py:382
msgid "Purchased"
msgstr ""
msgstr "Ostettu"
#: pretix/control/templates/pretixcontrol/orders/overview.html:189
msgid ""
@@ -22604,7 +22606,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/organizers/team_members.html:67
#: pretix/control/templates/pretixcontrol/organizers/team_members.html:120
msgid "Remove"
msgstr ""
msgstr "Poista"
#: pretix/control/templates/pretixcontrol/organizers/giftcard_acceptance_list.html:66
msgid "Accept"
@@ -22911,7 +22913,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/organizers/team_members.html:21
msgid "Member"
msgstr ""
msgstr "Jäsen"
#: pretix/control/templates/pretixcontrol/organizers/team_members.html:36
msgid "Two-factor authentication enabled"
@@ -22939,7 +22941,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/organizers/team_members.html:85
#: pretix/control/templates/pretixcontrol/organizers/team_members.html:134
msgid "Add"
msgstr ""
msgstr "Lisää"
#: pretix/control/templates/pretixcontrol/organizers/team_members.html:92
msgid "API tokens"
@@ -22955,7 +22957,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/organizers/teams.html:38
msgid "Members"
msgstr ""
msgstr "Jäsenet"
#: pretix/control/templates/pretixcontrol/organizers/teams.html:54
#, python-format
@@ -23007,7 +23009,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/organizers/webhook_logs.html:73
msgid "Failed"
msgstr ""
msgstr "Epäonnistunut"
#: pretix/control/templates/pretixcontrol/organizers/webhook_logs.html:83
msgid "Request URL"
@@ -23090,7 +23092,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/pdf/index.html:31
#: pretix/plugins/banktransfer/refund_export.py:46
msgid "Code"
msgstr ""
msgstr "Koodi"
#: pretix/control/templates/pretixcontrol/pdf/index.html:35
msgid "Paste"
@@ -23158,7 +23160,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/pdf/index.html:141
#: pretix/control/templates/pretixcontrol/pdf/index.html:173
msgid "Loading…"
msgstr ""
msgstr "Lataa…"
#: pretix/control/templates/pretixcontrol/pdf/index.html:144
msgid "Start editing"
@@ -23166,12 +23168,12 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/pdf/index.html:159
msgid "Cut"
msgstr ""
msgstr "Leikkaa"
#: pretix/control/templates/pretixcontrol/pdf/index.html:163
#: pretix/control/templates/pretixcontrol/vouchers/detail.html:54
msgid "Copy"
msgstr ""
msgstr "Kopioi"
#: pretix/control/templates/pretixcontrol/pdf/index.html:180
msgid "Layout name"
@@ -23225,15 +23227,15 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/pdf/index.html:254
msgid "Style"
msgstr ""
msgstr "Tyyli"
#: pretix/control/templates/pretixcontrol/pdf/index.html:256
msgid "Dark"
msgstr ""
msgstr "Tumma"
#: pretix/control/templates/pretixcontrol/pdf/index.html:257
msgid "Light"
msgstr ""
msgstr "Vaalea"
#: pretix/control/templates/pretixcontrol/pdf/index.html:263
msgid "Image content"
@@ -23262,7 +23264,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/pdf/index.html:292
msgid "Other…"
msgstr ""
msgstr "Muu…"
#: pretix/control/templates/pretixcontrol/pdf/index.html:302
msgid "Show available placeholders"
@@ -23534,7 +23536,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/subevents/bulk.html:258
msgctxt "subevent"
msgid "Preview"
msgstr ""
msgstr "Esikatselu"
#: pretix/control/templates/pretixcontrol/subevents/bulk.html:265
msgctxt "subevent"
@@ -24040,13 +24042,13 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/user/notifications.html:72
#: pretix/control/templates/pretixcontrol/user/settings.html:20
msgid "On"
msgstr ""
msgstr "Päällä"
#: pretix/control/templates/pretixcontrol/user/notifications.html:70
#: pretix/control/templates/pretixcontrol/user/notifications.html:71
#: pretix/control/templates/pretixcontrol/user/settings.html:24
msgid "Off"
msgstr ""
msgstr "Poissa"
#: pretix/control/templates/pretixcontrol/user/notifications.html:75
msgid "You have no permission to receive this notification"
@@ -24206,7 +24208,7 @@ msgstr "Etuliite (valinnainen)"
#: pretix/control/templates/pretixcontrol/vouchers/bulk.html:21
msgctxt "number_of_things"
msgid "Number"
msgstr ""
msgstr "Numero"
#: pretix/control/templates/pretixcontrol/vouchers/bulk.html:25
msgid "Generate random codes"
@@ -25084,7 +25086,7 @@ msgstr "Kaikkia kohteita ei ole valittu."
#: pretix/control/views/item.py:471
msgid "Street"
msgstr ""
msgstr "Katu"
#: pretix/control/views/item.py:573 pretix/control/views/item.py:747
#: pretix/control/views/item.py:769
@@ -25702,7 +25704,7 @@ msgstr ""
#: pretix/control/views/organizer.py:570
msgid "Administrators"
msgstr ""
msgstr "Ylläpitäjät"
#: pretix/control/views/organizer.py:633
msgid "The team has been created. You can now add members to the team."
@@ -31846,7 +31848,7 @@ msgid "Add to cart"
msgstr "Lisää ostoskoriin"
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you already ordered a ticket"
msgid "If you have already ordered a ticket"
msgstr "Jos tilasit jo tuotteita"
#: pretix/presale/templates/pretixpresale/event/index.html:257
+1 -1
View File
@@ -29880,7 +29880,7 @@ msgid "Add to cart"
msgstr ""
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you already ordered a ticket"
msgid "If you have already ordered a ticket"
msgstr ""
#: pretix/presale/templates/pretixpresale/event/index.html:257
+32 -63
View File
@@ -4,8 +4,8 @@ msgstr ""
"Project-Id-Version: 1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-04-28 11:06+0000\n"
"PO-Revision-Date: 2025-04-03 20:00+0000\n"
"Last-Translator: Loïc Alejandro <loic.alejandro@e.email>\n"
"PO-Revision-Date: 2025-04-29 18:00+0000\n"
"Last-Translator: CVZ-es <damien.bremont@casadevelazquez.org>\n"
"Language-Team: French <https://translate.pretix.eu/projects/pretix/pretix/fr/"
">\n"
"Language: fr\n"
@@ -13,7 +13,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.10.4\n"
"X-Generator: Weblate 5.11.1\n"
#: pretix/_base_settings.py:87
msgid "English"
@@ -3000,11 +3000,9 @@ msgid "Repeat password"
msgstr "Répéter le mot de passe"
#: pretix/base/forms/questions.py:134 pretix/base/forms/questions.py:256
#, fuzzy
#| msgid "No country specified."
msgctxt "name_salutation"
msgid "not specified"
msgstr "Aucun pays spécifié."
msgstr "non spécifié"
#: pretix/base/forms/questions.py:219
msgid "Please do not use special characters in names."
@@ -4285,20 +4283,14 @@ msgstr ""
"quota épuisé recevront toujours la réduction."
#: pretix/base/models/discount.py:177
#, fuzzy
#| msgctxt "subevent"
#| msgid "All dates starting before"
msgctxt "subevent"
msgid "Available for dates starting from"
msgstr "Toutes les dates commençant avant"
msgstr "Disponible à partir de"
#: pretix/base/models/discount.py:182
#, fuzzy
#| msgctxt "subevent"
#| msgid "All dates starting before"
msgctxt "subevent"
msgid "Available for dates starting until"
msgstr "Toutes les dates commençant avant"
msgstr "Disponible pour des dates allant jusqu'au"
#: pretix/base/models/discount.py:214
msgid ""
@@ -5629,20 +5621,12 @@ msgid "Unknown country code."
msgstr "Code de pays inconnu."
#: pretix/base/models/items.py:1921 pretix/base/models/items.py:1923
#, fuzzy
#| msgid "The maximum count needs to be greater than the minimum count."
msgid "The maximum date must not be before the minimum value."
msgstr "Le nombre maximal doit être supérieur au nombre minimal."
msgstr "La date limite ne doit pas être antérieure à la date de début."
#: pretix/base/models/items.py:1925
#, fuzzy
#| msgid ""
#| "The maximum number of usages may not be lower than the minimum number of "
#| "usages."
msgid "The maximum value must not be lower than the minimum value."
msgstr ""
"Le nombre maximal dutilisations ne peut être inférieur au nombre minimal "
"dutilisations."
msgstr "La valeur maximale ne doit pas être inférieure à la valeur minimale."
#: pretix/base/models/items.py:1942
#: pretix/control/templates/pretixcontrol/items/question.html:90
@@ -11821,13 +11805,6 @@ msgid "Header image"
msgstr "Image den-tête"
#: pretix/base/settings.py:2885
#, fuzzy
#| msgid ""
#| "If you provide a logo image, we will by default not show your event name "
#| "and date in the page header. By default, we show your logo with a size of "
#| "up to 1140x120 pixels. You can increase the size with the setting below. "
#| "We recommend not using small details on the picture as it will be resized "
#| "on smaller screens."
msgid ""
"If you provide a logo image, we will by default not show your event name and "
"date in the page header. If you use a white background, we show your logo "
@@ -11835,12 +11812,13 @@ msgid ""
"pixels. You can increase the size with the setting below. We recommend not "
"using small details on the picture as it will be resized on smaller screens."
msgstr ""
"Si vous fournissez une image de logo, nous nafficherons pas par défaut le "
"nom et la date de votre événement dans len-tête de la page. Par défaut, "
"nous affichons votre logo avec une taille allant jusqu’à 1140x120 pixels. "
"Vous pouvez augmenter la taille avec le paramètre ci-dessous. Nous vous "
"recommandons de ne pas utiliser de petits détails sur limage car elle sera "
"redimensionnée sur des écrans plus petits."
"Si vous fournissez une image de logo, nous n'afficherons pas, par défaut, le "
"nom et la date de votre événement dans l'en-tête de la page. Si vous "
"utilisez un fond blanc, nous affichons votre logo dans une taille maximale "
"de 1140x120 pixels. Sinon, la taille maximale est de 1120x120 pixels. Vous "
"pouvez augmenter la taille à l'aide du paramètre ci-dessous. Nous vous "
"recommandons de ne pas utiliser de petits détails sur l'image car elle sera "
"redimensionnée sur les petits écrans."
#: pretix/base/settings.py:2906 pretix/base/settings.py:2949
msgid "Use header image in its full size"
@@ -11869,13 +11847,6 @@ msgstr ""
"le titre de l’événement sera toujours affiché."
#: pretix/base/settings.py:2929 pretix/control/forms/organizer.py:524
#, fuzzy
#| msgid ""
#| "If you provide a logo image, we will by default not show your "
#| "organization name in the page header. By default, we show your logo with "
#| "a size of up to 1140x120 pixels. You can increase the size with the "
#| "setting below. We recommend not using small details on the picture as it "
#| "will be resized on smaller screens."
msgid ""
"If you provide a logo image, we will by default not show your organization "
"name in the page header. If you use a white background, we show your logo "
@@ -11883,12 +11854,13 @@ msgid ""
"pixels. You can increase the size with the setting below. We recommend not "
"using small details on the picture as it will be resized on smaller screens."
msgstr ""
"Si vous fournissez une image de logo, nous nafficherons pas par défaut le "
"nom de votre organisation dans len-tête de la page. Par défaut, nous "
"affichons votre logo avec une taille allant jusqu’à 1140x120 pixels. Vous "
"pouvez augmenter la taille avec le paramètre ci-dessous. Nous vous "
"recommandons de ne pas utiliser de petits détails sur limage car elle sera "
"redimensionnée sur des écrans plus petits."
"Si vous fournissez une image de logo, nous n'afficherons pas, par défaut, le "
"nom de votre organisation dans l'en-tête de la page. Si vous utilisez un "
"fond blanc, nous affichons votre logo dans une taille maximale de 1140x120 "
"pixels. Sinon, la taille maximale est de 1120x120 pixels. Vous pouvez "
"augmenter la taille à l'aide du paramètre ci-dessous. Nous vous recommandons "
"de ne pas utiliser de petits détails sur l'image car elle sera "
"redimensionnée sur les petits écrans."
#: pretix/base/settings.py:2959
msgid "Use header image also for events without an individually uploaded logo"
@@ -24833,32 +24805,32 @@ msgstr "Langue préférée"
#: pretix/control/templates/pretixcontrol/pdf/index.html:200
#: pretix/control/templates/pretixcontrol/pdf/index.html:210
#, fuzzy
#| msgid "Upload custom background"
msgid "Upload PDF as background"
msgstr "Télécharger un arrière-plan personnalisé"
msgstr "Télécharger un PDF comme arrière-pla"
#: pretix/control/templates/pretixcontrol/pdf/index.html:202
msgid ""
"You can upload a PDF to use as a custom background. The paper size will "
"match the PDF."
msgstr ""
"Vous pouvez télécharger un PDF à utiliser comme arrière-plan personnalisé. "
"La taille du papier correspondra à celle du PDF."
#: pretix/control/templates/pretixcontrol/pdf/index.html:217
msgid "Download current background"
msgstr "Télécharger l'arrière plan actuel"
#: pretix/control/templates/pretixcontrol/pdf/index.html:224
#, fuzzy
#| msgid "Date chosen by customer"
msgid "Or choose custom paper size"
msgstr "Date choisie par le client"
msgstr "Ou choisir un format de papier personnalisé"
#: pretix/control/templates/pretixcontrol/pdf/index.html:226
msgid ""
"To manually change the paper size, you need to create a new, empty "
"background."
msgstr ""
"Pour modifier manuellement le format du papier, vous devez créer un nouvel "
"arrière-plan vide."
#: pretix/control/templates/pretixcontrol/pdf/index.html:234
#: pretix/control/templates/pretixcontrol/pdf/index.html:321
@@ -28288,10 +28260,9 @@ msgid "until"
msgstr "jusqu’à"
#: pretix/helpers/daterange.py:106
#, fuzzy, python-brace-format
#| msgid "{date_from} {date_to}"
#, python-brace-format
msgid "{date_from}{until}{date_to}"
msgstr "{date_from} {date_to}"
msgstr "{date_from} {until}{date_to}"
#: pretix/helpers/images.py:61 pretix/helpers/images.py:67
#: pretix/helpers/images.py:85
@@ -32115,10 +32086,8 @@ msgid "Payer name"
msgstr "Nom du payeur"
#: pretix/plugins/stripe/templates/pretixplugins/stripe/control.html:91
#, fuzzy
#| msgid "Payment fee"
msgid "Payment receipt"
msgstr "Frais de paiement"
msgstr "Reçu de paiement"
#: pretix/plugins/stripe/templates/pretixplugins/stripe/oauth_disconnect.html:12
msgid "Do you really want to disconnect your Stripe account?"
@@ -34064,7 +34033,7 @@ msgid "Add to cart"
msgstr "Ajouter au panier"
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you already ordered a ticket"
msgid "If you have already ordered a ticket"
msgstr "Si vous avez déjà commandé un billet"
#: pretix/presale/templates/pretixpresale/event/index.html:257
+9 -12
View File
@@ -7,7 +7,7 @@ msgstr ""
"Project-Id-Version: French\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-04-28 11:08+0000\n"
"PO-Revision-Date: 2025-03-27 00:00+0000\n"
"PO-Revision-Date: 2025-04-29 18:00+0000\n"
"Last-Translator: CVZ-es <damien.bremont@casadevelazquez.org>\n"
"Language-Team: French <https://translate.pretix.eu/projects/pretix/pretix-js/"
"fr/>\n"
@@ -16,7 +16,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 5.10.4\n"
"X-Generator: Weblate 5.11.1\n"
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:56
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:62
@@ -918,9 +918,6 @@ msgid "Open ticket shop"
msgstr "Ouvrir la billetterie"
#: pretix/static/pretixpresale/js/widget/widget.js:48
#, fuzzy
#| msgctxt "widget"
#| msgid "Resume checkout"
msgctxt "widget"
msgid "Checkout"
msgstr "Finaliser ma commande"
@@ -1080,31 +1077,31 @@ msgstr "Di"
#: pretix/static/pretixpresale/js/widget/widget.js:81
msgid "Monday"
msgstr ""
msgstr "Lundi"
#: pretix/static/pretixpresale/js/widget/widget.js:82
msgid "Tuesday"
msgstr ""
msgstr "Mardi"
#: pretix/static/pretixpresale/js/widget/widget.js:83
msgid "Wednesday"
msgstr ""
msgstr "Mercredi"
#: pretix/static/pretixpresale/js/widget/widget.js:84
msgid "Thursday"
msgstr ""
msgstr "Jeudi"
#: pretix/static/pretixpresale/js/widget/widget.js:85
msgid "Friday"
msgstr ""
msgstr "Vendredi"
#: pretix/static/pretixpresale/js/widget/widget.js:86
msgid "Saturday"
msgstr ""
msgstr "Samedi"
#: pretix/static/pretixpresale/js/widget/widget.js:87
msgid "Sunday"
msgstr ""
msgstr "Dimanche"
#: pretix/static/pretixpresale/js/widget/widget.js:90
msgid "January"
+1 -1
View File
@@ -35859,7 +35859,7 @@ msgid "Add to cart"
msgstr "Engadir ao pedido"
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you already ordered a ticket"
msgid "If you have already ordered a ticket"
msgstr "Se xa pediu unha entrada"
#: pretix/presale/templates/pretixpresale/event/index.html:257
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -30700,7 +30700,7 @@ msgid "Add to cart"
msgstr "Dodaj u košaricu"
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you already ordered a ticket"
msgid "If you have already ordered a ticket"
msgstr "Ako ste već kupili kartu"
#: pretix/presale/templates/pretixpresale/event/index.html:257
+4 -4
View File
@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-04-28 11:06+0000\n"
"PO-Revision-Date: 2025-04-14 23:00+0000\n"
"PO-Revision-Date: 2025-05-17 18:00+0000\n"
"Last-Translator: Patrick Chilton <chpatrick@gmail.com>\n"
"Language-Team: Hungarian <https://translate.pretix.eu/projects/pretix/pretix/"
"hu/>\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.10.4\n"
"X-Generator: Weblate 5.11.4\n"
#: pretix/_base_settings.py:87
msgid "English"
@@ -14670,7 +14670,7 @@ msgstr "A kiválasztott \"{seat}\" ülés nem elérhető."
#: pretix/control/logdisplay.py:406 pretix/control/views/orders.py:1573
#: pretix/presale/views/order.py:1047
msgid "The order has been canceled."
msgstr ""
msgstr "A megrendelés sztornózva lett."
#: pretix/control/logdisplay.py:414
#, python-brace-format
@@ -31023,7 +31023,7 @@ msgid "Add to cart"
msgstr "Hozzáadás a kosárhoz"
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you already ordered a ticket"
msgid "If you have already ordered a ticket"
msgstr "Ha már rendeltél jegyet"
#: pretix/presale/templates/pretixpresale/event/index.html:257
+1 -1
View File
@@ -33865,7 +33865,7 @@ msgid "Add to cart"
msgstr "Masukkan ke keranjang"
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you already ordered a ticket"
msgid "If you have already ordered a ticket"
msgstr "Jika kamu sudah memesan tiket"
#: pretix/presale/templates/pretixpresale/event/index.html:257
+52 -60
View File
@@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-04-28 11:06+0000\n"
"PO-Revision-Date: 2025-03-19 01:00+0000\n"
"Last-Translator: Rosariocastellana <rosariocastellana@gmail.com>\n"
"PO-Revision-Date: 2025-05-05 09:40+0000\n"
"Last-Translator: \"Luca Martinelli [Sannita]\" <sannita@gmail.com>\n"
"Language-Team: Italian <https://translate.pretix.eu/projects/pretix/pretix/"
"it/>\n"
"Language: it\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.10.3\n"
"X-Generator: Weblate 5.11.1\n"
#: pretix/_base_settings.py:87
msgid "English"
@@ -2988,12 +2988,9 @@ msgid "Repeat password"
msgstr "Ripeti la password"
#: pretix/base/forms/questions.py:134 pretix/base/forms/questions.py:256
#, fuzzy
#| msgctxt "subevent"
#| msgid "No date was specified."
msgctxt "name_salutation"
msgid "not specified"
msgstr "Nessuna data è stata specificata."
msgstr "non specificato"
#: pretix/base/forms/questions.py:219
msgid "Please do not use special characters in names."
@@ -4272,14 +4269,12 @@ msgstr ""
#: pretix/base/models/discount.py:177
msgctxt "subevent"
msgid "Available for dates starting from"
msgstr ""
msgstr "Disponibile per le date a partire da"
#: pretix/base/models/discount.py:182
#, fuzzy
#| msgid "Available until"
msgctxt "subevent"
msgid "Available for dates starting until"
msgstr "Disponibile fino a"
msgstr "Disponibile per le date fino a"
#: pretix/base/models/discount.py:214
msgid ""
@@ -5592,20 +5587,12 @@ msgid "Unknown country code."
msgstr "Codice del paese sconosciuto."
#: pretix/base/models/items.py:1921 pretix/base/models/items.py:1923
#, fuzzy
#| msgid "The maximum count needs to be greater than the minimum count."
msgid "The maximum date must not be before the minimum value."
msgstr "Il conteggio massimo deve essere superiore al conteggio minimo."
msgstr "La data massima non può essere prima del valore minimo."
#: pretix/base/models/items.py:1925
#, fuzzy
#| msgid ""
#| "The maximum number of usages may not be lower than the minimum number of "
#| "usages."
msgid "The maximum value must not be lower than the minimum value."
msgstr ""
"Il numero massimo di utilizzi non può essere inferiore al numero minimo di "
"utilizzi."
msgstr "Il valore massimo non può essere inferiore al valore minimo."
#: pretix/base/models/items.py:1942
#: pretix/control/templates/pretixcontrol/items/question.html:90
@@ -9084,37 +9071,44 @@ msgstr "Permetti utilizzo di plugin con restrizioni"
#: pretix/base/settings.py:158
msgid "Allow customers to create accounts"
msgstr "Permetti ai clienti di creare account"
msgstr "Permetti ai clienti di creare un account"
#: pretix/base/settings.py:159
msgid ""
"This will allow customers to sign up for an account on your ticket shop. "
"This is a prerequisite for some advanced features like memberships."
msgstr ""
"Ciò consentirà ai clienti di registrare un account sul vostro negozio di "
"biglietti. Questo è un prerequisito per alcune funzioni avanzate come le "
"iscrizioni."
#: pretix/base/settings.py:169
msgid "Allow customers to log in with email address and password"
msgstr ""
msgstr "Permetti ai clienti di loggarsi con un indirizzo email e una password"
#: pretix/base/settings.py:170
msgid ""
"If disabled, you will need to connect one or more single-sign-on providers."
msgstr ""
"Se è disattivato, sarà necessario collegare uno o più provider single-sign-"
"on."
#: pretix/base/settings.py:180
#, fuzzy
msgid "Match orders based on email address"
msgstr "Email partecipante"
msgstr "Abbina gli ordini in base all'indirizzo e-mail"
#: pretix/base/settings.py:181
msgid ""
"This will allow registered customers to access orders made with the same "
"email address, even if the customer was not logged in during the purchase."
msgstr ""
"Ciò consentirà ai clienti registrati di accedere agli ordini effettuati con "
"lo stesso indirizzo e-mail, anche se il cliente non ha effettuato il login "
"durante l'acquisto."
#: pretix/base/settings.py:191
msgid "Activate re-usable media"
msgstr ""
msgstr "Attiva supporti riutilizzabili"
#: pretix/base/settings.py:192
msgid ""
@@ -9122,53 +9116,61 @@ msgid ""
"with physical media such as wristbands or chip cards that may be re-used for "
"different tickets or gift cards later."
msgstr ""
"La funzione di supporto riutilizzabile consente di collegare i biglietti e "
"le carte regalo con supporti fisici come braccialetti o chip card che "
"possono essere riutilizzati in seguito per altri biglietti o carte regalo."
#: pretix/base/settings.py:218
#, fuzzy
msgid "Length of barcodes"
msgstr "Codice biglietto"
msgstr "Lunghezza dei codici a barre"
#: pretix/base/settings.py:247
msgid ""
"Automatically create a new gift card if a previously unknown chip is seen"
msgstr ""
"Crea automaticamente una nuova carta regalo se viene visto un chip "
"precedentemente sconosciuto"
#: pretix/base/settings.py:260 pretix/base/settings.py:291
#, fuzzy
msgid "Gift card currency"
msgstr "Codice Gift Card"
msgstr "Valuta della carta regalo"
#: pretix/base/settings.py:278
msgid "Automatically create a new gift card if a new chip is encoded"
msgstr ""
"Crea automaticamente una nuova carta regalo se viene codificato un nuovo chip"
#: pretix/base/settings.py:300
msgid "Use UID protection feature of NFC chip"
msgstr ""
msgstr "Utilizza la funzione di protezione UID del chip NFC"
#: pretix/base/settings.py:316
msgid "Maximum number of items per order"
msgstr ""
msgstr "Numero massimo di elementi per ordine"
#: pretix/base/settings.py:317
msgid "Add-on products will not be counted."
msgstr ""
msgstr "I prodotti aggiuntivi non verranno conteggiati."
#: pretix/base/settings.py:326
msgid ""
"Show net prices instead of gross prices in the product list (not "
"recommended!)"
msgstr ""
"Mostra il prezzo netto anziché il prezzo lordo nella lista dei prodotti (non "
"raccomandato!)"
#: pretix/base/settings.py:327
msgid ""
"Independent of your choice, the cart will show gross prices as this is the "
"price that needs to be paid."
msgstr ""
"Indipendentemente dalla vostra scelta, il carrello mostrerà i prezzi lordi, "
"poiché questo è il prezzo che deve essere pagato."
#: pretix/base/settings.py:338
msgid "Hide prices on attendee ticket page"
msgstr ""
msgstr "Nascondi i prezzi nella pagina dei biglietti per i partecipanti"
#: pretix/base/settings.py:339
msgid ""
@@ -9177,10 +9179,14 @@ msgid ""
"page of the individual attendees. The ticket buyer will of course see the "
"price."
msgstr ""
"Se una persona acquista più biglietti e si inviano e-mail a tutti i "
"partecipanti, con questa opzione il prezzo del biglietto non verrà mostrato "
"nella pagina dei biglietti dei singoli partecipanti. L'acquirente del "
"biglietto vedrà ovviamente il prezzo."
#: pretix/base/settings.py:357
msgid "Ask for attendee names"
msgstr ""
msgstr "Chiedi il nome dei partecipanti"
#: pretix/base/settings.py:358
msgid "Ask for a name for all personalized tickets."
@@ -23307,10 +23313,8 @@ msgid "Download current background"
msgstr ""
#: pretix/control/templates/pretixcontrol/pdf/index.html:224
#, fuzzy
#| msgid "Canceled by customer"
msgid "Or choose custom paper size"
msgstr "Cancellato dal cliente"
msgstr "Oppure scegli un formato carta personalizzato"
#: pretix/control/templates/pretixcontrol/pdf/index.html:226
msgid ""
@@ -26399,28 +26403,18 @@ msgid "until"
msgstr "Data fino a"
#: pretix/helpers/daterange.py:106
#, fuzzy, python-brace-format
#| msgctxt "invoice"
#| msgid ""
#| "{from_date}\n"
#| "until {to_date}"
#, python-brace-format
msgid "{date_from}{until}{date_to}"
msgstr ""
"{from_date}\n"
"a {to_date}"
msgstr "{date_from}{until}{date_to}"
#: pretix/helpers/images.py:61 pretix/helpers/images.py:67
#: pretix/helpers/images.py:85
#, fuzzy
#| msgid ""
#| "The file you uploaded has a very large number of pixels, please upload an "
#| "image no larger than 10000 x 10000 pixels."
msgid ""
"The file you uploaded has a very large number of pixels, please upload a "
"picture with smaller dimensions."
msgstr ""
"Il file che hai caricato ha un numero molto elevato di pixel, per favore "
"carica un'immagine che abbia 10000 x 10000 pixel."
"carica un'immagine di dimensione più piccola."
#: pretix/helpers/security.py:166
msgid "Login from new source detected"
@@ -27013,7 +27007,7 @@ msgstr ""
#: pretix/plugins/banktransfer/payment.py:161
msgid "Do not include hyphens in the payment reference."
msgstr ""
msgstr "Non includere trattini nella referenza di pagamento."
#: pretix/plugins/banktransfer/payment.py:162
msgid "This is required in some countries."
@@ -27025,7 +27019,7 @@ msgstr ""
#: pretix/plugins/banktransfer/payment.py:170
msgid "Prefix for the payment reference"
msgstr ""
msgstr "Prefisso per il riferimento pagamento"
#: pretix/plugins/banktransfer/payment.py:174
msgid "Additional text to show on pending orders"
@@ -27249,7 +27243,7 @@ msgstr "Ti daremo il codice di riferimento dopo aver completato l'ordine."
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/checkout_payment_form.html:26
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/pending.html:39
msgid "Reference code (important):"
msgstr ""
msgstr "Codice di riferimento personale (importante):"
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/checkout_confirm.html:31
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/checkout_payment_form.html:31
@@ -27288,7 +27282,7 @@ msgstr ""
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/control.html:38
msgid "Reference code"
msgstr ""
msgstr "Codice di riferimento personale"
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/import_assign.html:4
msgid ""
@@ -30025,10 +30019,8 @@ msgid "Payer name"
msgstr ""
#: pretix/plugins/stripe/templates/pretixplugins/stripe/control.html:91
#, fuzzy
#| msgid "Payment fee"
msgid "Payment receipt"
msgstr "Commissione di pagamento"
msgstr "Ricevuta di pagamento"
#: pretix/plugins/stripe/templates/pretixplugins/stripe/oauth_disconnect.html:12
msgid "Do you really want to disconnect your Stripe account?"
@@ -30057,7 +30049,7 @@ msgstr ""
#: pretix/plugins/stripe/templates/pretixplugins/stripe/pending.html:19
msgid "Enter the entity number, reference number, and amount."
msgstr ""
msgstr "Inserire il Numero dell'entità, il codice riferimento, e la quantità."
#: pretix/plugins/stripe/templates/pretixplugins/stripe/pending.html:25
msgid "Entity number:"
@@ -31891,7 +31883,7 @@ msgid "Add to cart"
msgstr "Aggiungi al carrello"
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you already ordered a ticket"
msgid "If you have already ordered a ticket"
msgstr "Se hai già prenotato un biglietto"
#: pretix/presale/templates/pretixpresale/event/index.html:257
+5 -8
View File
@@ -8,16 +8,16 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-04-28 11:08+0000\n"
"PO-Revision-Date: 2025-03-16 19:00+0000\n"
"PO-Revision-Date: 2025-05-05 09:40+0000\n"
"Last-Translator: \"Luca Martinelli [Sannita]\" <sannita@gmail.com>\n"
"Language-Team: Italian <https://translate.pretix.eu/projects/pretix/pretix-"
"js/it/>\n"
"Language-Team: Italian <https://translate.pretix.eu/projects/pretix/"
"pretix-js/it/>\n"
"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.10.3\n"
"X-Generator: Weblate 5.11.1\n"
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:56
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:62
@@ -938,12 +938,9 @@ msgid "Open ticket shop"
msgstr "Apri la biglietteria"
#: pretix/static/pretixpresale/js/widget/widget.js:48
#, fuzzy
#| msgctxt "widget"
#| msgid "Resume checkout"
msgctxt "widget"
msgid "Checkout"
msgstr "Ricarica checkout"
msgstr "Checkout"
#: pretix/static/pretixpresale/js/widget/widget.js:49
msgctxt "widget"
+32 -67
View File
@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-04-28 11:06+0000\n"
"PO-Revision-Date: 2025-03-31 15:00+0000\n"
"PO-Revision-Date: 2025-05-12 13:00+0000\n"
"Last-Translator: Hijiri Umemoto <hijiri@umemoto.org>\n"
"Language-Team: Japanese <https://translate.pretix.eu/projects/pretix/pretix/"
"ja/>\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 5.10.4\n"
"X-Generator: Weblate 5.11.4\n"
#: pretix/_base_settings.py:87
msgid "English"
@@ -2971,21 +2971,17 @@ msgid "Repeat password"
msgstr "パスワードを再入力してください"
#: pretix/base/forms/questions.py:134 pretix/base/forms/questions.py:256
#, fuzzy
#| msgid "No country specified."
msgctxt "name_salutation"
msgid "not specified"
msgstr "国が指定されていません"
msgstr "指定されていません"
#: pretix/base/forms/questions.py:219
msgid "Please do not use special characters in names."
msgstr ""
"Understood, I will avoid using special characters in names. Thank you for "
"the reminder."
msgstr "名前に特殊文字を使わないでください。"
#: pretix/base/forms/questions.py:281
msgid "Please enter a shorter name."
msgstr "短い名前を入力してください。"
msgstr "もっと短い名前を入力してください。"
#: pretix/base/forms/questions.py:305
msgctxt "phonenumber"
@@ -3001,11 +2997,12 @@ msgstr "電話番号(国際エリアコードなし)"
msgid ""
"You uploaded an image in landscape orientation. Please upload an image in "
"portrait orientation."
msgstr "画像を縦向きでアップロードしてください。"
msgstr "画像が横向きでアップロードされています。縦向きの画像をアップロードしてくださ"
"い。"
#: pretix/base/forms/questions.py:493
msgid "Please upload an image where the width is 3/4 of the height."
msgstr "幅が高さの3/4の画像をアップロードしてください。"
msgstr "縦4x幅3の比率の画像をアップロードしてください。"
#: pretix/base/forms/questions.py:496
msgid ""
@@ -3059,7 +3056,7 @@ msgstr "会社名を提供する必要があります。"
#: pretix/base/forms/questions.py:1187
msgid "You need to provide your name."
msgstr "私はアシスタントです。"
msgstr "あなたの名前を提供する必要があります。"
#: pretix/base/forms/user.py:51 pretix/control/forms/users.py:43
msgid ""
@@ -3631,12 +3628,12 @@ msgstr "有効な販売チャネルを入力してください。"
#: pretix/base/modelimport_orders.py:585
#: pretix/base/modelimport_vouchers.py:291
msgid "Multiple matching seats were found."
msgstr "複数のマッチングする席が見つかりました。"
msgstr "該当する席が複数見つかりました。"
#: pretix/base/modelimport_orders.py:587
#: pretix/base/modelimport_vouchers.py:293
msgid "No matching seat was found."
msgstr "適合する席が見つかりませんでした。"
msgstr "該当する席が見つかりませんでした。"
#: pretix/base/modelimport_orders.py:590
#: pretix/base/modelimport_vouchers.py:296 pretix/base/services/cart.py:212
@@ -3674,7 +3671,7 @@ msgstr "顧客"
#: pretix/base/modelimport_orders.py:711
msgid "No matching customer was found."
msgstr "顧客が見つかりませんでした。"
msgstr "該当する顧客が見つかりませんでした。"
#: pretix/base/modelimport_vouchers.py:50 pretix/base/models/vouchers.py:488
msgid "A voucher with this code already exists."
@@ -3815,7 +3812,7 @@ msgstr "電源を切ると、通知を受け取れません。"
#: pretix/control/templates/pretixcontrol/users/form.html:6
#: pretix/control/views/organizer.py:158 tests/base/test_mail.py:149
msgid "User"
msgstr "ユーザ"
msgstr "ユーザ"
#: pretix/base/models/auth.py:284 pretix/control/navigation.py:411
#: pretix/control/templates/pretixcontrol/users/index.html:5
@@ -4234,20 +4231,14 @@ msgstr ""
"れます。"
#: pretix/base/models/discount.py:177
#, fuzzy
#| msgctxt "subevent"
#| msgid "All dates starting before"
msgctxt "subevent"
msgid "Available for dates starting from"
msgstr "すべての日付は、前に始まります"
msgstr "この日から始まる日付で利用可能"
#: pretix/base/models/discount.py:182
#, fuzzy
#| msgctxt "subevent"
#| msgid "All dates starting before"
msgctxt "subevent"
msgid "Available for dates starting until"
msgstr "すべての日付は、前に始まります"
msgstr "これより以前に開始する日付で利用可能"
#: pretix/base/models/discount.py:214
msgid ""
@@ -5513,18 +5504,12 @@ msgid "Unknown country code."
msgstr "不明な国コード。"
#: pretix/base/models/items.py:1921 pretix/base/models/items.py:1923
#, fuzzy
#| msgid "The maximum count needs to be greater than the minimum count."
msgid "The maximum date must not be before the minimum value."
msgstr "最大数は最小よりも大きくする必要があります。"
msgstr "最大日付は、最小より前でなければなりません。"
#: pretix/base/models/items.py:1925
#, fuzzy
#| msgid ""
#| "The maximum number of usages may not be lower than the minimum number of "
#| "usages."
msgid "The maximum value must not be lower than the minimum value."
msgstr "使用回数の最大値は最小回数より低くすることはできません。"
msgstr "最大値は最小より低くできません。"
#: pretix/base/models/items.py:1942
#: pretix/control/templates/pretixcontrol/items/question.html:90
@@ -11383,13 +11368,6 @@ msgid "Header image"
msgstr "ヘッダー画像"
#: pretix/base/settings.py:2885
#, fuzzy
#| msgid ""
#| "If you provide a logo image, we will by default not show your event name "
#| "and date in the page header. By default, we show your logo with a size of "
#| "up to 1140x120 pixels. You can increase the size with the setting below. "
#| "We recommend not using small details on the picture as it will be resized "
#| "on smaller screens."
msgid ""
"If you provide a logo image, we will by default not show your event name and "
"date in the page header. If you use a white background, we show your logo "
@@ -11397,11 +11375,11 @@ msgid ""
"pixels. You can increase the size with the setting below. We recommend not "
"using small details on the picture as it will be resized on smaller screens."
msgstr ""
"ロゴ画像を提供していただければ、デフォルトではイベント名と日付はページヘッ"
"ダーに表示されません。デフォルトでは、1140x120ピクセルまでのサイズでロゴが表"
"示されます。以下の設定でサイズを拡大することもできます。画像に細かいディテー"
"ルを使用しないことをお勧めします。なぜなら、小さな画面ではサイズされるため"
"す。"
"ロゴ画像を提供すると、デフォルトでページヘッダーにイベント名と日付が表示され"
"ません。白い背景を使用する場合、最大1140x120ピクセルのサイズでロゴが表示され"
"ます。それ以外の場合、最大サイズは1120x120ピクセルです。以下の設定でサイズを"
"大きくすることができます。小さな画面ではサイズが変更されるため、写真に小さな"
"ディテールを使用しないことをお勧めします。"
#: pretix/base/settings.py:2906 pretix/base/settings.py:2949
msgid "Use header image in its full size"
@@ -11427,13 +11405,6 @@ msgstr ""
"れます。"
#: pretix/base/settings.py:2929 pretix/control/forms/organizer.py:524
#, fuzzy
#| msgid ""
#| "If you provide a logo image, we will by default not show your "
#| "organization name in the page header. By default, we show your logo with "
#| "a size of up to 1140x120 pixels. You can increase the size with the "
#| "setting below. We recommend not using small details on the picture as it "
#| "will be resized on smaller screens."
msgid ""
"If you provide a logo image, we will by default not show your organization "
"name in the page header. If you use a white background, we show your logo "
@@ -19792,7 +19763,7 @@ msgstr "クォータごとの有料チケット"
#: pretix/control/views/dashboards.py:519 pretix/control/views/typeahead.py:89
msgctxt "subevent"
msgid "No dates"
msgstr "データなし"
msgstr "日付なし"
#: pretix/control/templates/pretixcontrol/events/index.html:141
#: pretix/control/templates/pretixcontrol/subevents/index.html:158
@@ -23989,32 +23960,29 @@ msgstr "優先する言語"
#: pretix/control/templates/pretixcontrol/pdf/index.html:200
#: pretix/control/templates/pretixcontrol/pdf/index.html:210
#, fuzzy
#| msgid "Upload custom background"
msgid "Upload PDF as background"
msgstr "カスタム背景をアップロード"
msgstr "背景としてPDFをアップロードする"
#: pretix/control/templates/pretixcontrol/pdf/index.html:202
msgid ""
"You can upload a PDF to use as a custom background. The paper size will "
"match the PDF."
msgstr ""
msgstr "PDF をアップロードして、カスタムの背景として使用できます。用紙のサイズは PDF "
"と一致します。"
#: pretix/control/templates/pretixcontrol/pdf/index.html:217
msgid "Download current background"
msgstr "現在の背景をダウンロード"
#: pretix/control/templates/pretixcontrol/pdf/index.html:224
#, fuzzy
#| msgid "Date chosen by customer"
msgid "Or choose custom paper size"
msgstr "お客様が選んだ日付"
msgstr "または、カスタム用紙サイズを選択"
#: pretix/control/templates/pretixcontrol/pdf/index.html:226
msgid ""
"To manually change the paper size, you need to create a new, empty "
"background."
msgstr ""
msgstr "用紙サイズを手動で変更するには、新しい空の背景を作成する必要があります。"
#: pretix/control/templates/pretixcontrol/pdf/index.html:234
#: pretix/control/templates/pretixcontrol/pdf/index.html:321
@@ -27322,10 +27290,9 @@ msgid "until"
msgstr "まで"
#: pretix/helpers/daterange.py:106
#, fuzzy, python-brace-format
#| msgid "{date_from} {date_to}"
#, python-brace-format
msgid "{date_from}{until}{date_to}"
msgstr "{date_from} {date_to}"
msgstr "{date_from}{until}{date_to}"
#: pretix/helpers/images.py:61 pretix/helpers/images.py:67
#: pretix/helpers/images.py:85
@@ -31012,10 +30979,8 @@ msgid "Payer name"
msgstr "支払い者の名前"
#: pretix/plugins/stripe/templates/pretixplugins/stripe/control.html:91
#, fuzzy
#| msgid "Payment fee"
msgid "Payment receipt"
msgstr "支払手数料"
msgstr "領収書"
#: pretix/plugins/stripe/templates/pretixplugins/stripe/oauth_disconnect.html:12
msgid "Do you really want to disconnect your Stripe account?"
@@ -32902,7 +32867,7 @@ msgid "Add to cart"
msgstr "カートに追加"
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you already ordered a ticket"
msgid "If you have already ordered a ticket"
msgstr "すでにチケットを注文済みの場合"
#: pretix/presale/templates/pretixpresale/event/index.html:257
+13 -16
View File
@@ -8,16 +8,16 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-04-28 11:08+0000\n"
"PO-Revision-Date: 2025-03-31 15:00+0000\n"
"PO-Revision-Date: 2025-05-12 13:00+0000\n"
"Last-Translator: Hijiri Umemoto <hijiri@umemoto.org>\n"
"Language-Team: Japanese <https://translate.pretix.eu/projects/pretix/pretix-"
"js/ja/>\n"
"Language-Team: Japanese <https://translate.pretix.eu/projects/pretix/"
"pretix-js/ja/>\n"
"Language: ja\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.10.4\n"
"X-Generator: Weblate 5.11.4\n"
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:56
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:62
@@ -233,7 +233,7 @@ msgstr "未払い"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:44
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:45
msgid "Canceled"
msgstr "キャンセル"
msgstr "キャンセル済み"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:46
msgid "Confirmed"
@@ -907,12 +907,9 @@ msgid "Open ticket shop"
msgstr "チケットショップを開く"
#: pretix/static/pretixpresale/js/widget/widget.js:48
#, fuzzy
#| msgctxt "widget"
#| msgid "Resume checkout"
msgctxt "widget"
msgid "Checkout"
msgstr "購入を続行する"
msgstr "チェックアウト"
#: pretix/static/pretixpresale/js/widget/widget.js:49
msgctxt "widget"
@@ -1068,31 +1065,31 @@ msgstr "日"
#: pretix/static/pretixpresale/js/widget/widget.js:81
msgid "Monday"
msgstr ""
msgstr "月曜日"
#: pretix/static/pretixpresale/js/widget/widget.js:82
msgid "Tuesday"
msgstr ""
msgstr "火曜日"
#: pretix/static/pretixpresale/js/widget/widget.js:83
msgid "Wednesday"
msgstr ""
msgstr "水曜日"
#: pretix/static/pretixpresale/js/widget/widget.js:84
msgid "Thursday"
msgstr ""
msgstr "木曜日"
#: pretix/static/pretixpresale/js/widget/widget.js:85
msgid "Friday"
msgstr ""
msgstr "金曜日"
#: pretix/static/pretixpresale/js/widget/widget.js:86
msgid "Saturday"
msgstr ""
msgstr "土曜日"
#: pretix/static/pretixpresale/js/widget/widget.js:87
msgid "Sunday"
msgstr ""
msgstr "日曜日"
#: pretix/static/pretixpresale/js/widget/widget.js:90
msgid "January"
File diff suppressed because it is too large Load Diff
+9 -9
View File
@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-04-28 11:08+0000\n"
"PO-Revision-Date: 2025-04-16 10:00+0000\n"
"PO-Revision-Date: 2025-05-08 10:00+0000\n"
"Last-Translator: 조정화 <junghwa.jo@om.org>\n"
"Language-Team: Korean <https://translate.pretix.eu/projects/pretix/pretix-js/"
"ko/>\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 5.10.4\n"
"X-Generator: Weblate 5.11.4\n"
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:56
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:62
@@ -1084,31 +1084,31 @@ msgstr "일요일"
#: pretix/static/pretixpresale/js/widget/widget.js:81
msgid "Monday"
msgstr ""
msgstr "월요일"
#: pretix/static/pretixpresale/js/widget/widget.js:82
msgid "Tuesday"
msgstr ""
msgstr "화요일"
#: pretix/static/pretixpresale/js/widget/widget.js:83
msgid "Wednesday"
msgstr ""
msgstr "수요일"
#: pretix/static/pretixpresale/js/widget/widget.js:84
msgid "Thursday"
msgstr ""
msgstr "목요일"
#: pretix/static/pretixpresale/js/widget/widget.js:85
msgid "Friday"
msgstr ""
msgstr "금요일"
#: pretix/static/pretixpresale/js/widget/widget.js:86
msgid "Saturday"
msgstr ""
msgstr "토요일"
#: pretix/static/pretixpresale/js/widget/widget.js:87
msgid "Sunday"
msgstr ""
msgstr "일요일"
#: pretix/static/pretixpresale/js/widget/widget.js:90
msgid "January"
+1 -1
View File
@@ -29862,7 +29862,7 @@ msgid "Add to cart"
msgstr ""
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you already ordered a ticket"
msgid "If you have already ordered a ticket"
msgstr ""
#: pretix/presale/templates/pretixpresale/event/index.html:257
+1 -1
View File
@@ -32169,7 +32169,7 @@ msgid "Add to cart"
msgstr "Pievienot grozam"
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you already ordered a ticket"
msgid "If you have already ordered a ticket"
msgstr "Ja jau esat pasūtījis biļeti"
#: pretix/presale/templates/pretixpresale/event/index.html:257
+1 -1
View File
@@ -29857,7 +29857,7 @@ msgid "Add to cart"
msgstr ""
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you already ordered a ticket"
msgid "If you have already ordered a ticket"
msgstr ""
#: pretix/presale/templates/pretixpresale/event/index.html:257
@@ -34036,7 +34036,7 @@ msgid "Add to cart"
msgstr "Legg til handlekurv"
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you already ordered a ticket"
msgid "If you have already ordered a ticket"
msgstr "Har du allerede bestilt billett"
#: pretix/presale/templates/pretixpresale/event/index.html:257
+48 -70
View File
@@ -7,16 +7,16 @@ msgstr ""
"Project-Id-Version: 1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-04-28 11:06+0000\n"
"PO-Revision-Date: 2025-03-30 16:00+0000\n"
"Last-Translator: Jan Van Haver <jan.van.haver@gmail.com>\n"
"Language-Team: Dutch <https://translate.pretix.eu/projects/pretix/pretix/nl/"
">\n"
"PO-Revision-Date: 2025-05-01 02:00+0000\n"
"Last-Translator: Foxy Hunter <matthias.vancoillie@outlook.com>\n"
"Language-Team: Dutch <https://translate.pretix.eu/projects/pretix/pretix/nl/>"
"\n"
"Language: nl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.10.4\n"
"X-Generator: Weblate 5.11.1\n"
#: pretix/_base_settings.py:87
msgid "English"
@@ -2980,11 +2980,9 @@ msgid "Repeat password"
msgstr "Herhaal wachtwoord"
#: pretix/base/forms/questions.py:134 pretix/base/forms/questions.py:256
#, fuzzy
#| msgid "No country specified."
msgctxt "name_salutation"
msgid "not specified"
msgstr "Geen land opgegeven."
msgstr "Niet opgegeven"
#: pretix/base/forms/questions.py:219
msgid "Please do not use special characters in names."
@@ -3999,7 +3997,7 @@ msgstr "Bestelling niet goedgekeurd"
#: pretix/base/models/checkin.py:366
msgid "Ticket not valid at this time"
msgstr "Ticket is niet geldig op dit moment"
msgstr "Ticket is op dit moment niet geldig"
#: pretix/base/models/customers.py:55
msgid "Provider name"
@@ -4253,20 +4251,14 @@ msgstr ""
"uitverkochte producten zullen nog steeds een korting krijgen."
#: pretix/base/models/discount.py:177
#, fuzzy
#| msgctxt "subevent"
#| msgid "All dates starting before"
msgctxt "subevent"
msgid "Available for dates starting from"
msgstr "Alle subevenementen beginnend voor"
msgstr "Beschikbaar vanaf de volgende datums"
#: pretix/base/models/discount.py:182
#, fuzzy
#| msgctxt "subevent"
#| msgid "All dates starting before"
msgctxt "subevent"
msgid "Available for dates starting until"
msgstr "Alle subevenementen beginnend voor"
msgstr "Beschikbaar voor startdatums tot"
#: pretix/base/models/discount.py:214
msgid ""
@@ -5576,20 +5568,12 @@ msgid "Unknown country code."
msgstr "Onbekende landcode."
#: pretix/base/models/items.py:1921 pretix/base/models/items.py:1923
#, fuzzy
#| msgid "The maximum count needs to be greater than the minimum count."
msgid "The maximum date must not be before the minimum value."
msgstr "Het maximale aantal moet groter zijn dan het minimum aantal."
msgstr "De maximumdatum mag niet vóór de minimumwaarde liggen."
#: pretix/base/models/items.py:1925
#, fuzzy
#| msgid ""
#| "The maximum number of usages may not be lower than the minimum number of "
#| "usages."
msgid "The maximum value must not be lower than the minimum value."
msgstr ""
"Het maximum aantal keer gebruikt mag niet lager zijn dan het minimum aantal "
"keer gebruikt."
msgstr "De maximum waarde mag niet lager zijn dan de minimum waarde."
#: pretix/base/models/items.py:1942
#: pretix/control/templates/pretixcontrol/items/question.html:90
@@ -6298,8 +6282,6 @@ msgstr ""
"Gemiddeld tarief (andere omzet in een agriculturele en bosbouwkundig bedrijf)"
#: pretix/base/models/tax.py:164
#, fuzzy
#| msgid "Reverse charge"
msgctxt "tax_code"
msgid "Reverse charge"
msgstr "Omgekeerde belastingheffing"
@@ -6347,7 +6329,7 @@ msgstr "Canarische Eilanden algemeen belastingtarief"
#: pretix/base/models/tax.py:190
msgctxt "tax_code"
msgid "Tax for production, services and importation in Ceuta and Melilla"
msgstr ""
msgstr "Belasting op productie, diensten en invoer in Ceuta en Melilla"
#: pretix/base/models/tax.py:191
msgctxt "tax_code"
@@ -6416,14 +6398,14 @@ msgstr "Intracommunautaire aankoop van verzamelobjecten en antiek"
#: pretix/base/models/tax.py:262
msgctxt "tax_code"
msgid "France domestic VAT franchise in base"
msgstr ""
msgstr "Franse btw-vrijstelling (binnenlands, franchise)"
#: pretix/base/models/tax.py:264
msgctxt "tax_code"
msgid ""
"France domestic Credit Notes without VAT, due to supplier forfeit of VAT for "
"discount"
msgstr ""
msgstr "Franse binnenlandse creditnota, geen betw door korting van leverancier"
#: pretix/base/models/tax.py:314
msgid "Your set of rules is not valid. Error message: {}"
@@ -6447,6 +6429,9 @@ msgid ""
"If you help us understand what this tax rules legally is, we can use this "
"information for eInvoices, exporting to accounting system, etc."
msgstr ""
"Wanneer je ons helpt te begrijpen wat deze belastingsregels juridisch "
"inhouden, kunnen we deze informatie inzetten voor e-facturen, het exporteren "
"naar het boekhoudsysteem, enz."
#: pretix/base/models/tax.py:351
msgid "The configured product prices include the tax amount"
@@ -6516,11 +6501,15 @@ msgstr "U moet uw thuisland instellen om de verleggingsfunctie te gebruiken."
msgid ""
"A combination of this tax code with a non-zero tax rate does not make sense."
msgstr ""
"Een combinatie van deze belastingcode met een belastingtarief groter dan nul "
"is niet logisch."
#: pretix/base/models/tax.py:421 pretix/control/forms/event.py:1562
msgid ""
"A combination of this tax code with a zero tax rate does not make sense."
msgstr ""
"Een combinatie van deze belastingscode met een belastingstarief van nul is "
"niet logisch."
#: pretix/base/models/tax.py:426
#, python-brace-format
@@ -11660,13 +11649,6 @@ msgid "Header image"
msgstr "Header-afbeelding"
#: pretix/base/settings.py:2885
#, fuzzy
#| msgid ""
#| "If you provide a logo image, we will by default not show your event name "
#| "and date in the page header. By default, we show your logo with a size of "
#| "up to 1140x120 pixels. You can increase the size with the setting below. "
#| "We recommend not using small details on the picture as it will be resized "
#| "on smaller screens."
msgid ""
"If you provide a logo image, we will by default not show your event name and "
"date in the page header. If you use a white background, we show your logo "
@@ -11705,13 +11687,6 @@ msgstr ""
"organisator dan zal de titel altijd getoond worden."
#: pretix/base/settings.py:2929 pretix/control/forms/organizer.py:524
#, fuzzy
#| msgid ""
#| "If you provide a logo image, we will by default not show your "
#| "organization name in the page header. By default, we show your logo with "
#| "a size of up to 1140x120 pixels. You can increase the size with the "
#| "setting below. We recommend not using small details on the picture as it "
#| "will be resized on smaller screens."
msgid ""
"If you provide a logo image, we will by default not show your organization "
"name in the page header. If you use a white background, we show your logo "
@@ -11721,7 +11696,7 @@ msgid ""
msgstr ""
"Als u een logo opgeeft zullen we standaard niet uw organisatienaam in de "
"paginaheader tonen. We tonen uw logo standaard met een maximumgrootte van "
"1140x120 pixels. U kunt deze grootte aanpassen met de instelling hieronder. "
"1120x120 pixels. U kunt deze grootte aanpassen met de instelling hieronder. "
"We raden aan om geen kleine details op de afbeelding te gebruiken, omdat de "
"afbeelding op kleinere schermen zal worden geschaald."
@@ -13570,6 +13545,8 @@ msgid ""
"A combination of this calculation mode with a non-zero tax rate does not "
"make sense."
msgstr ""
"Een combinatie van deze berekeningsmodus met een belastingstarief groter dan "
"nul is niet logisch."
#: pretix/control/forms/event.py:1550 pretix/control/forms/event.py:1554
msgid "This combination of calculation mode and tax code does not make sense."
@@ -13786,7 +13763,7 @@ msgstr "Goedgekeurd, wacht op betaling"
#: pretix/plugins/reports/exporters.py:380
#: pretix/presale/templates/pretixpresale/event/fragment_order_status.html:7
msgid "Approval pending"
msgstr "Wachtend op goedkeuring"
msgstr "Goedkeuring in afwachting"
#: pretix/control/forms/filter.py:241
msgid "Follow-up configured"
@@ -15008,6 +14985,8 @@ msgid ""
"This affects both the ticket secret (often used as a QR code) as well as the "
"link used to individually access the ticket."
msgstr ""
"Dit heeft invloed op zowel het ticketgeheim (vaak gebruikt als QR-code) als "
"de link waarmee het ticket individueel kan worden geopend."
#: pretix/control/forms/orders.py:501
msgid "Cancel this position"
@@ -15434,6 +15413,8 @@ msgid ""
"Optional query parameters, that will be added to calls to the authorization "
"endpoint. Enter as: {example}"
msgstr ""
"Optionele queryparameters, die worden toegevoegd aan oproepen naar het "
"autorisatie-eindpunt. Voer in als: {example}"
#: pretix/control/forms/organizer.py:1110
msgid "Invalidate old client secret and generate a new one"
@@ -23679,9 +23660,9 @@ msgid ""
"before you are allowed to use cookies or similar technology for analytics, "
"tracking, payment, or similar purposes."
msgstr ""
"In sommige rechtsgebieden, waaronder de Europese Unie, is toestemming van de "
"gebruiker vereist voordat u cookies of vergelijkbare technologie mag "
"gebruiken voor analyses, tracking, betaling of soortgelijke doeleinden."
"Bepaalde rechtsgebieden, zoals de Europese Unie, vereisen de toestemming van "
"de gebruiker voordat je cookies of soortgelijke technologieën mag gebruiken "
"voor analyses, tracking, betalingen of soortgelijke doeleinden."
#: pretix/control/templates/pretixcontrol/organizers/edit.html:172
msgid ""
@@ -23713,12 +23694,12 @@ msgid ""
"usage, the legal details in your specific jurisdiction, or the agreements "
"you have with third parties such as payment or tracking providers."
msgstr ""
"Niettemin blijft het uw verantwoordelijkheid om ervoor te zorgen dat uw "
"ticketshop aan alle toepasselijke wetten voldoet. Wij proberen u te helpen "
"met deze instellingen, maar kunnen geen aansprakelijkheid aanvaarden omdat "
"wij onder andere niet de exacte configuratie van uw ticketshop, de "
"juridische details van het toepasselijke rechtsgebied en de overeenkomsten "
"tussen u en de gebruikte derde aanbieders kennen."
"Het is uiteindelijk uw verantwoordelijkheid om ervoor te zorgen dat u "
"voldoet aan alle relevante wetgeving. Wij bieden deze instellingen ter "
"ondersteuning, maar kunnen geen aansprakelijkheid dragen, aangezien wij de "
"exacte configuratie van uw gebruik van pretix, de juridische details in uw "
"rechtsgebied, of de afspraken met derden zoals betalings- of "
"trackingaanbieders niet kennen."
#: pretix/control/templates/pretixcontrol/organizers/edit.html:210
msgid "Barcode media"
@@ -24553,32 +24534,32 @@ msgstr "Voorkeurstaal"
#: pretix/control/templates/pretixcontrol/pdf/index.html:200
#: pretix/control/templates/pretixcontrol/pdf/index.html:210
#, fuzzy
#| msgid "Upload custom background"
msgid "Upload PDF as background"
msgstr "Upload aangepaste achtergrond"
msgstr "Upload PDF als achtergrond"
#: pretix/control/templates/pretixcontrol/pdf/index.html:202
msgid ""
"You can upload a PDF to use as a custom background. The paper size will "
"match the PDF."
msgstr ""
"Je kunt een PDF uploaden om als aangepaste achtergrond te gebruiken. De "
"papier-grootte zal overeenkomen met dat van de PDF."
#: pretix/control/templates/pretixcontrol/pdf/index.html:217
msgid "Download current background"
msgstr "Download huidige achtergrond"
#: pretix/control/templates/pretixcontrol/pdf/index.html:224
#, fuzzy
#| msgid "Date chosen by customer"
msgid "Or choose custom paper size"
msgstr "Datum gekozen door klant"
msgstr "Of kies een aangepaste papier-grootte"
#: pretix/control/templates/pretixcontrol/pdf/index.html:226
msgid ""
"To manually change the paper size, you need to create a new, empty "
"background."
msgstr ""
"Om manueel de papier-grootte te kunnen aanpassen, moet je eerst een nieuwe, "
"lege, achtergrond maken."
#: pretix/control/templates/pretixcontrol/pdf/index.html:234
#: pretix/control/templates/pretixcontrol/pdf/index.html:321
@@ -27962,10 +27943,9 @@ msgid "until"
msgstr "tot"
#: pretix/helpers/daterange.py:106
#, fuzzy, python-brace-format
#| msgid "{date_from} {date_to}"
#, python-brace-format
msgid "{date_from}{until}{date_to}"
msgstr "{date_from} {date_to}"
msgstr "{date_from}{until}{date_to}"
#: pretix/helpers/images.py:61 pretix/helpers/images.py:67
#: pretix/helpers/images.py:85
@@ -31726,10 +31706,8 @@ msgid "Payer name"
msgstr "Naam betaler"
#: pretix/plugins/stripe/templates/pretixplugins/stripe/control.html:91
#, fuzzy
#| msgid "Payment fee"
msgid "Payment receipt"
msgstr "Betalingskosten"
msgstr "Betalingsbewijs"
#: pretix/plugins/stripe/templates/pretixplugins/stripe/oauth_disconnect.html:12
msgid "Do you really want to disconnect your Stripe account?"
@@ -33656,7 +33634,7 @@ msgid "Add to cart"
msgstr "Voeg toe aan winkelwagen"
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you already ordered a ticket"
msgid "If you have already ordered a ticket"
msgstr "Als u al een ticket heeft besteld"
#: pretix/presale/templates/pretixpresale/event/index.html:257
+66 -78
View File
@@ -7,8 +7,8 @@ msgstr ""
"Project-Id-Version: 1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-04-28 11:08+0000\n"
"PO-Revision-Date: 2025-03-30 16:00+0000\n"
"Last-Translator: Jan Van Haver <jan.van.haver@gmail.com>\n"
"PO-Revision-Date: 2025-05-01 02:00+0000\n"
"Last-Translator: Foxy Hunter <matthias.vancoillie@outlook.com>\n"
"Language-Team: Dutch <https://translate.pretix.eu/projects/pretix/pretix-js/"
"nl/>\n"
"Language: nl\n"
@@ -16,7 +16,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.10.4\n"
"X-Generator: Weblate 5.11.1\n"
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:56
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:62
@@ -34,28 +34,28 @@ msgstr "PayPal"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:35
msgid "Venmo"
msgstr ""
msgstr "Venmo"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:36
#: pretix/static/pretixpresale/js/walletdetection.js:38
msgid "Apple Pay"
msgstr ""
msgstr "Apple Pay"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:37
msgid "Itaú"
msgstr ""
msgstr "Itaú"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:38
msgid "PayPal Credit"
msgstr ""
msgstr "PayPal-krediet"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:39
msgid "Credit Card"
msgstr ""
msgstr "Kredietkaart"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:40
msgid "PayPal Pay Later"
msgstr ""
msgstr "PayPal Pay Later"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:41
msgid "iDEAL"
@@ -75,7 +75,7 @@ msgstr "giropay"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:45
msgid "SOFORT"
msgstr ""
msgstr "SOFORT"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:46
msgid "eps"
@@ -83,51 +83,51 @@ msgstr "eps"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:47
msgid "MyBank"
msgstr ""
msgstr "MyBank"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:48
msgid "Przelewy24"
msgstr ""
msgstr "Przelewy24"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:49
msgid "Verkkopankki"
msgstr ""
msgstr "Verkkopankki"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:50
msgid "PayU"
msgstr ""
msgstr "PayU"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:51
msgid "BLIK"
msgstr ""
msgstr "BLIK"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:52
msgid "Trustly"
msgstr ""
msgstr "Trustly"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:53
msgid "Zimpler"
msgstr ""
msgstr "Zimpler"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:54
msgid "Maxima"
msgstr ""
msgstr "Maxima"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:55
msgid "OXXO"
msgstr ""
msgstr "OXXO"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:56
msgid "Boleto"
msgstr ""
msgstr "Boleto"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:57
msgid "WeChat Pay"
msgstr ""
msgstr "WeChat Pay"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:58
msgid "Mercado Pago"
msgstr ""
msgstr "Mercado Pago"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:167
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:50
@@ -145,7 +145,7 @@ msgstr "Betaling bevestigen …"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:254
msgid "Payment method unavailable"
msgstr ""
msgstr "Betaalmethode niet beschikbaar"
#: pretix/plugins/statistics/static/pretixplugins/statistics/statistics.js:15
#: pretix/plugins/statistics/static/pretixplugins/statistics/statistics.js:39
@@ -236,11 +236,11 @@ msgstr "Geannuleerd"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:46
msgid "Confirmed"
msgstr ""
msgstr "Bevestigd"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:47
msgid "Approval pending"
msgstr ""
msgstr "Goedkeuring in afwachting"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:48
msgid "Redeemed"
@@ -296,14 +296,12 @@ msgid "Ticket code revoked/changed"
msgstr "Ticketcode ingetrokken/veranderd"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:63
#, fuzzy
msgid "Ticket blocked"
msgstr "Ticket niet betaald"
msgstr "Ticket geblokkeerd"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:64
#, fuzzy
msgid "Ticket not valid at this time"
msgstr "Ticket niet betaald"
msgstr "Ticket is op dit moment niet geldig"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:65
msgid "Order canceled"
@@ -440,7 +438,7 @@ msgstr "is na"
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:40
msgid "="
msgstr ""
msgstr "="
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:99
msgid "Product"
@@ -460,11 +458,11 @@ msgstr "Huidige datum en tijd"
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:115
msgid "Current day of the week (1 = Monday, 7 = Sunday)"
msgstr ""
msgstr "Huidige dag van de week (1 = Maandag, 7 = Zondag)"
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:119
msgid "Current entry status"
msgstr ""
msgstr "Huidige toegangstatus"
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:123
msgid "Number of previous entries"
@@ -475,36 +473,32 @@ msgid "Number of previous entries since midnight"
msgstr "Aantal eerdere binnenkomsten sinds middernacht"
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:131
#, fuzzy
msgid "Number of previous entries since"
msgstr "Aantal eerdere binnenkomsten"
msgstr "Aantal eerdere binnenkomsten sinds"
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:135
#, fuzzy
msgid "Number of previous entries before"
msgstr "Aantal eerdere binnenkomsten"
msgstr "Aantal eerdere binnenkomsten voor"
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:139
msgid "Number of days with a previous entry"
msgstr "Aantal dagen met een eerdere binnenkomst"
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:143
#, fuzzy
msgid "Number of days with a previous entry since"
msgstr "Aantal dagen met een eerdere binnenkomst"
msgstr "Aantal dagen met een eerdere binnenkomst sinds"
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:147
#, fuzzy
msgid "Number of days with a previous entry before"
msgstr "Aantal dagen met een eerdere binnenkomst"
msgstr "Aantal dagen met een eerdere binnenkomst voor"
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:151
msgid "Minutes since last entry (-1 on first entry)"
msgstr ""
msgstr "Minuten sinds laatste toegang (-1 bij eerste toegang)"
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:155
msgid "Minutes since first entry (-1 on first entry)"
msgstr ""
msgstr "Minuten sinds de eerste toegang (-1 bij eerste toegang)"
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:182
msgid "All of the conditions below (AND)"
@@ -548,17 +542,17 @@ msgstr "minuten"
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:192
msgid "Duplicate"
msgstr ""
msgstr "duplicaat"
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:193
msgctxt "entry_status"
msgid "present"
msgstr ""
msgstr "aanwezig"
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:194
msgctxt "entry_status"
msgid "absent"
msgstr ""
msgstr "afwezig"
#: pretix/static/pretixcontrol/js/ui/editor.js:171
msgid "Check-in QR"
@@ -573,9 +567,8 @@ msgid "Group of objects"
msgstr "Groep van objecten"
#: pretix/static/pretixcontrol/js/ui/editor.js:908
#, fuzzy
msgid "Text object (deprecated)"
msgstr "Tekstobject"
msgstr "Tekstobject (verouderd)"
#: pretix/static/pretixcontrol/js/ui/editor.js:910
msgid "Text box"
@@ -662,11 +655,11 @@ msgstr "Alleen geselecteerde"
#: pretix/static/pretixcontrol/js/ui/main.js:820
msgid "Enter page number between 1 and %(max)s."
msgstr ""
msgstr "voer een pagina nummer tussen 1 en %(max)s in."
#: pretix/static/pretixcontrol/js/ui/main.js:823
msgid "Invalid page number."
msgstr ""
msgstr "Ongeldig pagina nummer."
#: pretix/static/pretixcontrol/js/ui/main.js:981
msgid "Use a different name internally"
@@ -752,22 +745,22 @@ msgstr "Uw lokale tijd:"
#: pretix/static/pretixpresale/js/walletdetection.js:39
msgid "Google Pay"
msgstr ""
msgstr "Google Pay"
#: pretix/static/pretixpresale/js/widget/widget.js:16
msgctxt "widget"
msgid "Quantity"
msgstr ""
msgstr "Aantal"
#: pretix/static/pretixpresale/js/widget/widget.js:17
msgctxt "widget"
msgid "Decrease quantity"
msgstr ""
msgstr "Verlaag aantal"
#: pretix/static/pretixpresale/js/widget/widget.js:18
msgctxt "widget"
msgid "Increase quantity"
msgstr ""
msgstr "Verhoog aantal"
#: pretix/static/pretixpresale/js/widget/widget.js:19
msgctxt "widget"
@@ -778,19 +771,18 @@ msgstr "Prijs"
#, javascript-format
msgctxt "widget"
msgid "Original price: %s"
msgstr ""
msgstr "Originele prijs: %s"
#: pretix/static/pretixpresale/js/widget/widget.js:21
#, javascript-format
msgctxt "widget"
msgid "New price: %s"
msgstr ""
msgstr "Nieuwe prijs: %s"
#: pretix/static/pretixpresale/js/widget/widget.js:22
#, fuzzy
msgctxt "widget"
msgid "Select"
msgstr "Alleen geselecteerde"
msgstr "Selecteer"
#: pretix/static/pretixpresale/js/widget/widget.js:23
#, javascript-format
@@ -838,7 +830,7 @@ msgstr "vanaf %(currency)s %(price)s"
#, javascript-format
msgctxt "widget"
msgid "Image of %s"
msgstr ""
msgstr "Afbeelding van %s"
#: pretix/static/pretixpresale/js/widget/widget.js:32
msgctxt "widget"
@@ -873,21 +865,19 @@ msgstr "Alleen verkrijgbaar met een voucher"
#: pretix/static/pretixpresale/js/widget/widget.js:38
#: pretix/static/pretixpresale/js/widget/widget.js:41
#, fuzzy
msgctxt "widget"
msgid "Not yet available"
msgstr "momenteel beschikbaar: %s"
msgstr "Nog niet beschikbaar"
#: pretix/static/pretixpresale/js/widget/widget.js:39
msgctxt "widget"
msgid "Not available anymore"
msgstr ""
msgstr "Niet langer beschikbaar"
#: pretix/static/pretixpresale/js/widget/widget.js:40
#, fuzzy
msgctxt "widget"
msgid "Currently not available"
msgstr "momenteel beschikbaar: %s"
msgstr "Momenteel niet beschikbaar"
#: pretix/static/pretixpresale/js/widget/widget.js:42
#, javascript-format
@@ -920,12 +910,9 @@ msgid "Open ticket shop"
msgstr "Open de ticketwinkel"
#: pretix/static/pretixpresale/js/widget/widget.js:48
#, fuzzy
#| msgctxt "widget"
#| msgid "Resume checkout"
msgctxt "widget"
msgid "Checkout"
msgstr "Doorgaan met afrekenen"
msgstr "Afrekenen"
#: pretix/static/pretixpresale/js/widget/widget.js:49
msgctxt "widget"
@@ -989,16 +976,14 @@ msgid "Continue"
msgstr "Ga verder"
#: pretix/static/pretixpresale/js/widget/widget.js:61
#, fuzzy
msgctxt "widget"
msgid "Show variants"
msgstr "Zie variaties"
msgstr "Toon varianten"
#: pretix/static/pretixpresale/js/widget/widget.js:62
#, fuzzy
msgctxt "widget"
msgid "Hide variants"
msgstr "Zie variaties"
msgstr "Verberg varianten"
#: pretix/static/pretixpresale/js/widget/widget.js:63
msgctxt "widget"
@@ -1047,6 +1032,9 @@ msgid ""
"add yourself to the waiting list. We will then notify if seats are available "
"again."
msgstr ""
"Sommige of alle tiketcategorieën zijn op heden uitverkocht. Als je wilt, kun "
"je jezelf toevoegen aan de wachtlijst. We zullen je informeren wanneer er "
"weer plaatsen beschikbaar zijn."
#: pretix/static/pretixpresale/js/widget/widget.js:72
msgctxt "widget"
@@ -1083,31 +1071,31 @@ msgstr "Zo"
#: pretix/static/pretixpresale/js/widget/widget.js:81
msgid "Monday"
msgstr ""
msgstr "Maandag"
#: pretix/static/pretixpresale/js/widget/widget.js:82
msgid "Tuesday"
msgstr ""
msgstr "Dinsdag"
#: pretix/static/pretixpresale/js/widget/widget.js:83
msgid "Wednesday"
msgstr ""
msgstr "Woensdag"
#: pretix/static/pretixpresale/js/widget/widget.js:84
msgid "Thursday"
msgstr ""
msgstr "Donderdag"
#: pretix/static/pretixpresale/js/widget/widget.js:85
msgid "Friday"
msgstr ""
msgstr "Vrijdag"
#: pretix/static/pretixpresale/js/widget/widget.js:86
msgid "Saturday"
msgstr ""
msgstr "Zaterdag"
#: pretix/static/pretixpresale/js/widget/widget.js:87
msgid "Sunday"
msgstr ""
msgstr "Zondag"
#: pretix/static/pretixpresale/js/widget/widget.js:90
msgid "January"
@@ -34971,7 +34971,7 @@ msgid "Add to cart"
msgstr "Voeg toe aan winkelwagen"
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you already ordered a ticket"
msgid "If you have already ordered a ticket"
msgstr "Als je al een kaartje hebt besteld"
#: pretix/presale/templates/pretixpresale/event/index.html:257
+1 -1
View File
@@ -33525,7 +33525,7 @@ msgid "Add to cart"
msgstr "Dodaj do koszyka"
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you already ordered a ticket"
msgid "If you have already ordered a ticket"
msgstr "Jeżeli bilet jest już zamówiony"
#: pretix/presale/templates/pretixpresale/event/index.html:257
@@ -30093,7 +30093,7 @@ msgid "Add to cart"
msgstr ""
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you already ordered a ticket"
msgid "If you have already ordered a ticket"
msgstr ""
#: pretix/presale/templates/pretixpresale/event/index.html:257
+1 -1
View File
@@ -30334,7 +30334,7 @@ msgid "Add to cart"
msgstr ""
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you already ordered a ticket"
msgid "If you have already ordered a ticket"
msgstr ""
#: pretix/presale/templates/pretixpresale/event/index.html:257
@@ -32910,7 +32910,7 @@ msgid "Add to cart"
msgstr "Adicionar ao carrinho"
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you already ordered a ticket"
msgid "If you have already ordered a ticket"
msgstr "Se você já solicitou um ingresso"
#: pretix/presale/templates/pretixpresale/event/index.html:257
@@ -34042,7 +34042,7 @@ msgid "Add to cart"
msgstr "Adicionar ao carrinho"
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you already ordered a ticket"
msgid "If you have already ordered a ticket"
msgstr "Se já pediste um bilhete"
#: pretix/presale/templates/pretixpresale/event/index.html:257
+1 -1
View File
@@ -34887,7 +34887,7 @@ msgid "Add to cart"
msgstr "Adaugă în coș"
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you already ordered a ticket"
msgid "If you have already ordered a ticket"
msgstr "Dacă ați comandat deja un bilet"
#: pretix/presale/templates/pretixpresale/event/index.html:257
+1 -1
View File
@@ -33106,7 +33106,7 @@ msgid "Add to cart"
msgstr "Добавить в корзину"
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you already ordered a ticket"
msgid "If you have already ordered a ticket"
msgstr "Если вы уже заказали билет"
#: pretix/presale/templates/pretixpresale/event/index.html:257
+1 -1
View File
@@ -29992,7 +29992,7 @@ msgid "Add to cart"
msgstr ""
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you already ordered a ticket"
msgid "If you have already ordered a ticket"
msgstr ""
#: pretix/presale/templates/pretixpresale/event/index.html:257
+1 -1
View File
@@ -32809,7 +32809,7 @@ msgid "Add to cart"
msgstr "Pridať do košíka"
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you already ordered a ticket"
msgid "If you have already ordered a ticket"
msgstr "Ak ste si už objednali vstupenku"
#: pretix/presale/templates/pretixpresale/event/index.html:257
+1 -1
View File
@@ -32657,7 +32657,7 @@ msgid "Add to cart"
msgstr ""
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you already ordered a ticket"
msgid "If you have already ordered a ticket"
msgstr ""
#: pretix/presale/templates/pretixpresale/event/index.html:257
+6 -6
View File
@@ -8,17 +8,17 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-04-28 11:08+0000\n"
"PO-Revision-Date: 2019-08-27 08:00+0000\n"
"Last-Translator: Bostjan Marusic <bostjan@brokenbones.si>\n"
"Language-Team: Slovenian <https://translate.pretix.eu/projects/pretix/pretix-"
"js/sl/>\n"
"PO-Revision-Date: 2025-05-16 17:00+0000\n"
"Last-Translator: bstramsek <stramsek.borut+pretix-translate@gmail.com>\n"
"Language-Team: Slovenian <https://translate.pretix.eu/projects/pretix/"
"pretix-js/sl/>\n"
"Language: sl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=4; plural=n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || "
"n%100==4 ? 2 : 3;\n"
"X-Generator: Weblate 3.5.1\n"
"X-Generator: Weblate 5.11.4\n"
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:56
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:62
@@ -32,7 +32,7 @@ msgstr "Komentar:"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:34
msgid "PayPal"
msgstr ""
msgstr "PayPal"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:35
msgid "Venmo"
+1 -1
View File
@@ -29857,7 +29857,7 @@ msgid "Add to cart"
msgstr ""
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you already ordered a ticket"
msgid "If you have already ordered a ticket"
msgstr ""
#: pretix/presale/templates/pretixpresale/event/index.html:257
+1 -1
View File
@@ -33595,7 +33595,7 @@ msgid "Add to cart"
msgstr "Lägg till i bokning"
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you already ordered a ticket"
msgid "If you have already ordered a ticket"
msgstr "Om du redan har bokat en biljett"
#: pretix/presale/templates/pretixpresale/event/index.html:257
+1 -1
View File
@@ -29859,7 +29859,7 @@ msgid "Add to cart"
msgstr ""
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you already ordered a ticket"
msgid "If you have already ordered a ticket"
msgstr ""
#: pretix/presale/templates/pretixpresale/event/index.html:257
+1 -1
View File
@@ -35827,7 +35827,7 @@ msgid "Add to cart"
msgstr "Sepete ekle"
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you already ordered a ticket"
msgid "If you have already ordered a ticket"
msgstr "Zaten bir bilet sipariş ettiyseniz"
#: pretix/presale/templates/pretixpresale/event/index.html:257
+1 -1
View File
@@ -33579,7 +33579,7 @@ msgid "Add to cart"
msgstr "Додати до кошика"
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you already ordered a ticket"
msgid "If you have already ordered a ticket"
msgstr "Якщо Ви вже замовили квиток"
#: pretix/presale/templates/pretixpresale/event/index.html:257
+1 -1
View File
@@ -29897,7 +29897,7 @@ msgid "Add to cart"
msgstr ""
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you already ordered a ticket"
msgid "If you have already ordered a ticket"
msgstr ""
#: pretix/presale/templates/pretixpresale/event/index.html:257
+1 -1
View File
@@ -29857,7 +29857,7 @@ msgid "Add to cart"
msgstr ""
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you already ordered a ticket"
msgid "If you have already ordered a ticket"
msgstr ""
#: pretix/presale/templates/pretixpresale/event/index.html:257
@@ -34570,7 +34570,7 @@ msgid "Add to cart"
msgstr "添加到购物车"
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you already ordered a ticket"
msgid "If you have already ordered a ticket"
msgstr "如果您已经订了票"
#: pretix/presale/templates/pretixpresale/event/index.html:257
+66 -99
View File
@@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-04-28 11:06+0000\n"
"PO-Revision-Date: 2025-02-21 19:00+0000\n"
"Last-Translator: anonymous <noreply@weblate.org>\n"
"PO-Revision-Date: 2025-05-06 16:20+0000\n"
"Last-Translator: KC Tseng <tkc0204@gmail.com>\n"
"Language-Team: Chinese (Traditional Han script) <https://translate.pretix.eu/"
"projects/pretix/pretix/zh_Hant/>\n"
"Language: zh_Hant\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 5.10\n"
"X-Generator: Weblate 5.11.1\n"
#: pretix/_base_settings.py:87
msgid "English"
@@ -57,7 +57,7 @@ msgstr "捷克語"
#: pretix/_base_settings.py:96
msgid "Croatian"
msgstr ""
msgstr "克羅埃西亞語"
#: pretix/_base_settings.py:97
msgid "Danish"
@@ -2910,11 +2910,9 @@ msgid "Repeat password"
msgstr "重複"
#: pretix/base/forms/questions.py:134 pretix/base/forms/questions.py:256
#, fuzzy
#| msgid "No country specified."
msgctxt "name_salutation"
msgid "not specified"
msgstr "未指定國家/地區。"
msgstr "未指定"
#: pretix/base/forms/questions.py:219
msgid "Please do not use special characters in names."
@@ -3980,10 +3978,8 @@ msgid "Grant type"
msgstr "授權類型"
#: pretix/base/models/customers.py:420
#, fuzzy
#| msgid "Required question"
msgid "Require PKCE extension"
msgstr "必填題"
msgstr "需要交換驗證碼用的驗證密鑰(PKCE)擴充功能"
#: pretix/base/models/customers.py:432
msgid "Allowed access scopes"
@@ -4139,12 +4135,9 @@ msgstr ""
"產品僅限於例如解鎖隱藏產品或獲得售罄配額仍可享折扣。"
#: pretix/base/models/discount.py:177
#, fuzzy
#| msgctxt "subevent"
#| msgid "All dates starting before"
msgctxt "subevent"
msgid "Available for dates starting from"
msgstr "之前開始的所有日期"
msgstr "適用日期始於"
#: pretix/base/models/discount.py:182
#, fuzzy
@@ -5333,18 +5326,12 @@ msgid "Unknown country code."
msgstr "未知國家代碼."
#: pretix/base/models/items.py:1921 pretix/base/models/items.py:1923
#, fuzzy
#| msgid "The maximum count needs to be greater than the minimum count."
msgid "The maximum date must not be before the minimum value."
msgstr "最大計數需要大於最小計數。"
msgstr "最大日期不得早於最小。"
#: pretix/base/models/items.py:1925
#, fuzzy
#| msgid ""
#| "The maximum number of usages may not be lower than the minimum number of "
#| "usages."
msgid "The maximum value must not be lower than the minimum value."
msgstr "最大使用次數,不得低於最小使用次數。"
msgstr "最大不得低於最小。"
#: pretix/base/models/items.py:1942
#: pretix/control/templates/pretixcontrol/items/question.html:90
@@ -6738,11 +6725,9 @@ msgid "The payment for this invoice has already been received."
msgstr "此發票的付款已收到。"
#: pretix/base/payment.py:970
#, fuzzy
#| msgid "This payment can not be canceled at the moment."
msgid ""
"This payment is already being processed and can not be canceled any more."
msgstr "此付款目前無法取消。"
msgstr "此付款已在處理中,無法取消。"
#: pretix/base/payment.py:984
msgid "Automatic refunds are not supported by this payment provider."
@@ -7087,7 +7072,7 @@ msgstr "活動從工作日開始"
#: pretix/base/pdf.py:266 pretix/base/pdf.py:295
#: pretix/base/services/checkin.py:362 pretix/control/forms/filter.py:1240
msgid "Friday"
msgstr "星期五"
msgstr "五"
#: pretix/base/pdf.py:270
msgid "Event end date and time"
@@ -7762,27 +7747,27 @@ msgstr "工作日"
#: pretix/base/services/checkin.py:358 pretix/control/forms/filter.py:1236
msgid "Monday"
msgstr "星期一"
msgstr "一"
#: pretix/base/services/checkin.py:359 pretix/control/forms/filter.py:1237
msgid "Tuesday"
msgstr "星期二"
msgstr "二"
#: pretix/base/services/checkin.py:360 pretix/control/forms/filter.py:1238
msgid "Wednesday"
msgstr "星期三"
msgstr "三"
#: pretix/base/services/checkin.py:361 pretix/control/forms/filter.py:1239
msgid "Thursday"
msgstr "星期四"
msgstr "四"
#: pretix/base/services/checkin.py:363 pretix/control/forms/filter.py:1241
msgid "Saturday"
msgstr "星期六"
msgstr "六"
#: pretix/base/services/checkin.py:364 pretix/control/forms/filter.py:1242
msgid "Sunday"
msgstr "星期天"
msgstr "週日"
#: pretix/base/services/checkin.py:368
#, python-brace-format
@@ -9315,6 +9300,9 @@ msgid ""
"page. Note that pretix still is a system built around events and the date "
"may still show up in other places."
msgstr ""
"如果您僅出售無特定日期的物品(例如:禮品卡或可隨時使用的門票),請取消勾選此"
"方塊。系統將停止在某些地方(如:活動開始頁面)顯示活動日期。請注意,pretix "
"仍然是一個圍繞建立活動的系統,日期可能仍會出現在其他地方。"
#: pretix/base/settings.py:1326
msgid "Show event end date"
@@ -10920,13 +10908,6 @@ msgid "Header image"
msgstr "標題圖像"
#: pretix/base/settings.py:2885
#, fuzzy
#| msgid ""
#| "If you provide a logo image, we will by default not show your event name "
#| "and date in the page header. By default, we show your logo with a size of "
#| "up to 1140x120 pixels. You can increase the size with the setting below. "
#| "We recommend not using small details on the picture as it will be resized "
#| "on smaller screens."
msgid ""
"If you provide a logo image, we will by default not show your event name and "
"date in the page header. If you use a white background, we show your logo "
@@ -10934,9 +10915,10 @@ msgid ""
"pixels. You can increase the size with the setting below. We recommend not "
"using small details on the picture as it will be resized on smaller screens."
msgstr ""
"如果你提供徽章標誌圖片,默認情況下,我們不會在頁中顯示您的活動名稱和日期。"
"默認情況下,我們顯示的徽標大小最大為1140x120圖元。您可以使用以下設置增加大"
"小。我們建議不要在圖片上使用小細節,因為它將在較小的螢幕上調整大小。"
"如果你提供標誌圖片,預設情況下,我們不會在頁中顯示您的活動名稱和日期。如果"
"您使用白色背景的標誌,我們顯示標誌尺寸最大為1140x120像素,其餘情況的最大尺寸"
"為您1120x120像素。您可以使用下列設定擴大尺寸。我們建議不要在圖片上使用小細節"
",因為它的尺寸將在較小的螢幕被調整。"
#: pretix/base/settings.py:2906 pretix/base/settings.py:2949
msgid "Use header image in its full size"
@@ -10960,13 +10942,6 @@ msgstr ""
"的標題圖像,則將忽略此選項,並始終顯示活動標題。"
#: pretix/base/settings.py:2929 pretix/control/forms/organizer.py:524
#, fuzzy
#| msgid ""
#| "If you provide a logo image, we will by default not show your "
#| "organization name in the page header. By default, we show your logo with "
#| "a size of up to 1140x120 pixels. You can increase the size with the "
#| "setting below. We recommend not using small details on the picture as it "
#| "will be resized on smaller screens."
msgid ""
"If you provide a logo image, we will by default not show your organization "
"name in the page header. If you use a white background, we show your logo "
@@ -10974,10 +10949,11 @@ msgid ""
"pixels. You can increase the size with the setting below. We recommend not "
"using small details on the picture as it will be resized on smaller screens."
msgstr ""
"如果你提供徽章標誌圖片,預設情況下,我們不會在頁面抬頭中顯示你的活動名稱和"
"日期。預設值情況下,我們顯示的徽章標誌圖片大小最大為1140x120圖元。你可以使用"
"以下設置增加大小。我們建議不要在圖片上使用小細節,因為圖片將在較小的螢幕上調"
"整大小。"
"如果你提供標誌圖片,預設情況下,我們不會在頁中顯示你的活動名稱和日期。如果"
"你使用白色背景,我們顯示的標誌尺寸最大為1140x120像素。否則最大尺寸為 "
"1120x120 "
"像素。你可以使用下列設定增加大小。我們建議不要在圖片上使用小細節,因為圖片將"
"在較小的螢幕上調整尺寸。"
#: pretix/base/settings.py:2959
msgid "Use header image also for events without an individually uploaded logo"
@@ -11352,18 +11328,14 @@ msgid "MA"
msgstr "MA"
#: pretix/base/settings.py:3722 pretix/base/settings.py:3724
#, fuzzy
#| msgid "Provider name"
msgctxt "address"
msgid "Province"
msgstr "提供者名稱"
msgstr ""
#: pretix/base/settings.py:3723
#, fuzzy
#| msgid "Price effect"
msgctxt "address"
msgid "Prefecture"
msgstr "價格效應"
msgstr "縣/州/區"
#: pretix/base/settings.py:3812 pretix/control/forms/event.py:228
msgid ""
@@ -13372,7 +13344,7 @@ msgstr "小冊子磁磚屬性"
#: pretix/control/forms/global_settings.py:103
msgid "ApplePay MerchantID Domain Association"
msgstr ""
msgstr "ApplePay 網域憑證驗證"
#: pretix/control/forms/global_settings.py:104
#, python-brace-format
@@ -13798,7 +13770,8 @@ msgid ""
"The password contains characters not supported by our email system. Please "
"only use characters A-Z, a-z, 0-9, and common special characters "
"({characters})."
msgstr ""
msgstr "密碼包含我們電子郵件系統不支援的字元。僅接受字元 A-Z、a-z、0-9 "
"和常見的特殊字元 ({characters})。"
#: pretix/control/forms/mailsetup.py:70
msgid "Use STARTTLS"
@@ -14132,7 +14105,7 @@ msgstr "收件人"
#, fuzzy, python-brace-format
#| msgid "Attach ticket files"
msgid "Attach {file}"
msgstr "附加票證檔"
msgstr "附件{files}"
#: pretix/control/forms/orders.py:796
msgid ""
@@ -14448,7 +14421,7 @@ msgstr "電話欄位"
#: pretix/control/forms/organizer.py:1048
msgctxt "sso_oidc"
msgid "Query parameters"
msgstr ""
msgstr "查詢參數"
#: pretix/control/forms/organizer.py:1049
#, python-brace-format
@@ -14456,7 +14429,7 @@ msgctxt "sso_oidc"
msgid ""
"Optional query parameters, that will be added to calls to the authorization "
"endpoint. Enter as: {example}"
msgstr ""
msgstr "可選查詢參數,將被加入到對授權端的呼叫。輸入為:{example}"
#: pretix/control/forms/organizer.py:1110
msgid "Invalidate old client secret and generate a new one"
@@ -16770,20 +16743,14 @@ msgid "Delete check-ins"
msgstr "刪除簽到"
#: pretix/control/templates/pretixcontrol/checkin/bulk_revert_confirm.html:15
#, fuzzy, python-format
#| msgid ""
#| "Are you sure you want to permanently delete the check-ins of <strong>one "
#| "ticket</strong>."
#| msgid_plural ""
#| "Are you sure you want to permanently delete the check-ins of "
#| "<strong>%(count)s tickets</strong>?"
#, python-format
msgid ""
"Are you sure you want to permanently delete the check-ins of <strong>one "
"ticket</strong>?"
msgid_plural ""
"Are you sure you want to permanently delete the check-ins of "
"<strong>%(count)s tickets</strong>?"
msgstr[0] "你確定要永久刪除<strong>%(count)s 張票</strong>的簽到清單嗎?"
msgstr[0] "你確定要永久刪除<strong>%(count)s 張票</strong>的報到紀錄嗎?"
#: pretix/control/templates/pretixcontrol/checkin/bulk_revert_confirm.html:24
#: pretix/control/templates/pretixcontrol/checkin/list_delete.html:18
@@ -17443,6 +17410,18 @@ msgid ""
"Best regards, \n"
"Your %(instance)s team\n"
msgstr ""
"你好,\n"
"\n"
"偵測到有人從不尋常或新位置登入您的 %(instance)s 帳戶。登入是在 %(country)s "
"使用 %(os)s 系統的 %(agent)s 執行。\n"
"\n"
"如果這是您,您可以放心忽略這封電子郵件。\n"
"\n"
"如果這不是您本人,我們建議您在帳戶設定中變更密碼:\n"
"\n"
"%(url)s\n"
"\n"
"%(instance)s 團隊 敬上\n"
#: pretix/control/templates/pretixcontrol/email/security_notice.txt:1
#, python-format
@@ -18209,10 +18188,8 @@ msgid "Disabled"
msgstr "禁用"
#: pretix/control/templates/pretixcontrol/event/payment.html:57
#, fuzzy
#| msgid "Enable waiting list"
msgid "Enable additional payment plugins"
msgstr "啟動候補名單"
msgstr "啟用其他支付外掛"
#: pretix/control/templates/pretixcontrol/event/payment.html:66
msgid "Deadlines"
@@ -18308,10 +18285,8 @@ msgid "Your changes have been saved."
msgstr "你的更改已儲存。"
#: pretix/control/templates/pretixcontrol/event/plugins.html:34
#, fuzzy
#| msgid "Check results"
msgid "Search results"
msgstr "檢查結果"
msgstr "搜尋結果"
#: pretix/control/templates/pretixcontrol/event/plugins.html:56
msgid "Top recommendation"
@@ -18331,16 +18306,12 @@ msgstr "無法使用"
#: pretix/control/templates/pretixcontrol/event/plugins.html:93
#: pretix/control/templates/pretixcontrol/event/plugins.html:105
#, fuzzy
#| msgid "Login settings"
msgid "Open plugin settings"
msgstr "登錄設定"
msgstr "開啟外掛設定"
#: pretix/control/templates/pretixcontrol/event/plugins.html:94
#, fuzzy
#| msgid "Go to shop"
msgid "Go to"
msgstr "到商店"
msgstr "前往"
#: pretix/control/templates/pretixcontrol/event/plugins.html:116
#: pretix/control/templates/pretixcontrol/oauth/app_delete.html:15
@@ -19143,18 +19114,21 @@ msgid ""
"If you have a pretix Enterprise license, this report must be submitted to "
"pretix support when your license renews. It may also be requested by pretix "
"support to aid debugging of problems."
msgstr ""
msgstr "如果您擁有 "
"Pretix企業版許可證,必須在許可證續約時將此報告提交給pretix支援團隊。 pretix "
"支援人員可能會要求以協助調試問題。"
#: pretix/control/templates/pretixcontrol/global_sysreport.html:8
msgid ""
"It serves two purposes: Collecting useful information that might help with "
"debugging problems in your pretix installation, and verifying that your "
"usage of pretix is in compliance with the Enterprise license you purchased."
msgstr ""
msgstr "它有兩個目的:收集可能有助於調試 pretix 安裝中問題的有用資訊,"
"以及驗證您使用pretix 時是否符合您購買的企業許可證。"
#: pretix/control/templates/pretixcontrol/global_sysreport.html:14
msgid "First month of license term:"
msgstr ""
msgstr "許可期限的第一個月:"
#: pretix/control/templates/pretixcontrol/global_sysreport.html:16
msgid "January"
@@ -19477,10 +19451,10 @@ msgstr "是否確實要刪除商品<strong>%(item)s</strong>"
#: pretix/control/templates/pretixcontrol/item/delete.html:22
#: pretix/control/templates/pretixcontrol/items/quota_delete.html:24
#, fuzzy, python-format
#, python-format
msgid "That will cause %(count)s voucher to be unusable."
msgid_plural "That will cause %(count)s voucher to be unusable."
msgstr[0] "這將導致%(count)s優惠券不可用.這將導致 %(count)s的優惠券不可用."
msgstr[0] "這將導致%(count)s優惠券無法使用。"
#: pretix/control/templates/pretixcontrol/item/delete.html:29
#: pretix/control/templates/pretixcontrol/items/quota_delete.html:31
@@ -19861,20 +19835,13 @@ msgid "taxes"
msgstr "稅"
#: pretix/control/templates/pretixcontrol/items/index.html:10
#, fuzzy
#| msgid ""
#| "Below, you find a list of all available products. You can click on a "
#| "product name to inspect and change product details. You can also use the "
#| "buttons on the right to change the order of products within a give "
#| "category."
msgid ""
"Below, you find a list of all available products. You can click on a product "
"name to inspect and change product details. You can also use the buttons on "
"the right to change the order of products or move products to a different "
"category."
msgstr ""
"下面,你可以找到所有可用產品的清單。你可以按下產品名稱來檢查和更改產品詳細資"
"訊。你還可以使用右側的按鈕更改給定類別中產品的順序。"
msgstr "下面,你可以找到所有可用產品的清單。你可以按下產品名稱來檢查和更改產品詳細資"
"訊。你也可使用右側按鈕變更產品順序或將其移至其他類別。"
#: pretix/control/templates/pretixcontrol/items/index.html:19
msgid "You haven't created any products yet."
@@ -31829,7 +31796,7 @@ msgid "Add to cart"
msgstr "加入購物車"
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you already ordered a ticket"
msgid "If you have already ordered a ticket"
msgstr "如果你已訂購票"
#: pretix/presale/templates/pretixpresale/event/index.html:257
@@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-04-28 11:08+0000\n"
"PO-Revision-Date: 2025-01-31 01:00+0000\n"
"Last-Translator: Chislon <chislon@gmail.com>\n"
"PO-Revision-Date: 2025-05-06 16:20+0000\n"
"Last-Translator: KC Tseng <tkc0204@gmail.com>\n"
"Language-Team: Chinese (Traditional Han script) <https://translate.pretix.eu/"
"projects/pretix/pretix-js/zh_Hant/>\n"
"Language: zh_Hant\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 5.9.2\n"
"X-Generator: Weblate 5.11.1\n"
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:56
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:62
@@ -669,10 +669,8 @@ msgid "Calculating default price…"
msgstr "計算預設價格…"
#: pretix/static/pretixcontrol/js/ui/plugins.js:69
#, fuzzy
#| msgid "Search results"
msgid "No results"
msgstr "搜尋結果"
msgstr "結果"
#: pretix/static/pretixcontrol/js/ui/question.js:42
msgid "Others"
@@ -898,12 +896,9 @@ msgid "Open ticket shop"
msgstr "開放售票"
#: pretix/static/pretixpresale/js/widget/widget.js:48
#, fuzzy
#| msgctxt "widget"
#| msgid "Resume checkout"
msgctxt "widget"
msgid "Checkout"
msgstr "繼續結帳"
msgstr "結帳"
#: pretix/static/pretixpresale/js/widget/widget.js:49
msgctxt "widget"
@@ -1058,31 +1053,31 @@ msgstr "星期天"
#: pretix/static/pretixpresale/js/widget/widget.js:81
msgid "Monday"
msgstr ""
msgstr "週一"
#: pretix/static/pretixpresale/js/widget/widget.js:82
msgid "Tuesday"
msgstr ""
msgstr "週二"
#: pretix/static/pretixpresale/js/widget/widget.js:83
msgid "Wednesday"
msgstr ""
msgstr "週三"
#: pretix/static/pretixpresale/js/widget/widget.js:84
msgid "Thursday"
msgstr ""
msgstr "週四"
#: pretix/static/pretixpresale/js/widget/widget.js:85
msgid "Friday"
msgstr ""
msgstr "週五"
#: pretix/static/pretixpresale/js/widget/widget.js:86
msgid "Saturday"
msgstr ""
msgstr "週六"
#: pretix/static/pretixpresale/js/widget/widget.js:87
msgid "Sunday"
msgstr ""
msgstr "週日"
#: pretix/static/pretixpresale/js/widget/widget.js:90
msgid "January"
@@ -1,8 +1,7 @@
.banktransfer-swiss-cross-overlay {
position: relative;
width: 150px;
height: 150px;
margin: 0 auto 10px;
margin: 0 auto;
}
.banktransfer-swiss-cross {
position: absolute;
@@ -44,34 +44,28 @@
</p>
</div>
{% if settings.bank_details_type == "sepa" and any_barcodes %}
<div class="col-md-6 col-sm-6 hidden-xs text-center js-only blank-after">
<ul class="nav nav-tabs" id="banktransfer_qrcodes_tabs" role="tablist">
<div class="tabcontainer col-md-6 col-sm-6 hidden-xs text-center js-only blank-after">
<div id="banktransfer_qrcodes_tabs_content" class="tabpanels blank-after">
{% if swiss_qrbill %}
<li class="active"><a href="#banktransfer_qrcodes_qrbill" role="tab" id="banktransfer_qrcodes_qrbill_tab" data-toggle="tab" aria-controls="banktransfer_qrcodes_qrbill" aria-expanded="true">QR-bill</a></li>
{% endif %}
{% if eu_barcodes %}
<li {% if not swiss_qrbill %}class="active"{% endif %}><a href="#banktransfer_qrcodes_girocode" role="tab" id="banktransfer_qrcodes_girocode_tab" data-toggle="tab" aria-controls="banktransfer_qrcodes_girocode" aria-expanded="{% if swiss_qrbill %}false{% else %}true{% endif %}">EPC-QR</a></li>
<li class=""><a href="#banktransfer_qrcodes_bezahlcode" role="tab" id="banktransfer_qrcodes_bezahlcode_tab" data-toggle="tab" aria-controls="banktransfer_qrcodes_bezahlcode" aria-expanded="false">BezahlCode</a></li>
{% endif %}
</ul>
<div class="tab-content" id="banktransfer_qrcodes_tabs_content">
{% if swiss_qrbill %}
<div id="banktransfer_qrcodes_qrbill" class="tab-pane fade active in" role="tabpanel" aria-labelledby="banktransfer_qrcodes_qrbill_tab">
<p class="small">
{% trans "Scan the qr-code with your banking app" %}
</p>
<p class="banktransfer-swiss-cross-overlay">
<div id="banktransfer_qrcodes_qrbill"
role="tabpanel"
tabindex="0"
aria-labelledby="banktransfer_qrcodes_qrbill_tab"
>
<div class="banktransfer-swiss-cross-overlay" role="figure" aria-labelledby="banktransfer_qrcodes_qrbill_tab banktransfer_qrcodes_label">
<svg class="banktransfer-swiss-cross" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 19.8 19.8"><path stroke="#fff" stroke-width="1.436" d="M.7.7h18.4v18.4H.7z"/><path fill="#fff" d="M8.3 4h3.3v11H8.3z"/><path fill="#fff" d="M4.4 7.9h11v3.3h-11z"/></svg>
<script type="text/plain" data-size="150" data-replace-with-qr data-desc="{% trans 'Scan this image with your banking apps QR-Reader to start the payment process.' %}">{{swiss_qrbill}}</script>
</p>
</div>
</div>
{% endif %}
{% if eu_barcodes %}
<div id="banktransfer_qrcodes_girocode" class="tab-pane fade {% if not swiss_qrbill %}active in{% endif %}" role="tabpanel" aria-labelledby="banktransfer_qrcodes_girocode_tab">
<p class="small">
{% trans "Scan the qr-code with your banking app" %}
</p>
<p>
<div id="banktransfer_qrcodes_girocode"
role="tabpanel"
tabindex="0"
{{ swiss_qrbill|yesno:'hidden,' }}
aria-labelledby="banktransfer_qrcodes_girocode_tab"
>
<div role="figure" aria-labelledby="banktransfer_qrcodes_girocode_tab banktransfer_qrcodes_label">
<script type="text/plain" data-size="150" data-replace-with-qr data-desc="{% trans 'Scan this image with your banking apps QR-Reader to start the payment process.' %}">BCD
002
2
@@ -85,20 +79,55 @@ SCT
{{ code }}
</script>
</p>
</div>
</div>
<div id="banktransfer_qrcodes_bezahlcode" class="tab-pane fade" role="tabpanel" aria-labelledby="banktransfer_qrcodes_bezahlcode_tab">
<p class="small">
{% trans "Scan the qr-code with your banking app" %}
</p>
<p>
<a aria-label="{% trans "Open BezahlCode in your banking app to start the payment process." %}" href="bank://singlepaymentsepa?name={{ settings.bank_details_sepa_name|urlencode }}&iban={{ settings.bank_details_sepa_iban }}&bic={{ settings.bank_details_sepa_bic }}&amount={{ amount|commadecimal }}&reason={{ code }}&currency={{ event.currency }}">
<div id="banktransfer_qrcodes_bezahlcode"
role="tabpanel"
tabindex="0"
hidden
aria-labelledby="banktransfer_qrcodes_bezahlcode_tab"
>
<a aria-label="{% trans "Open BezahlCode in your banking app to start the payment process." %}" href="bank://singlepaymentsepa?name={{ settings.bank_details_sepa_name|urlencode }}&iban={{ settings.bank_details_sepa_iban }}&bic={{ settings.bank_details_sepa_bic }}&amount={{ amount|commadecimal }}&reason={{ code }}&currency={{ event.currency }}">
<div role="figure" aria-labelledby="banktransfer_qrcodes_bezahlcode_tab banktransfer_qrcodes_label">
<script type="text/plain" data-size="150" data-replace-with-qr data-desc="{% trans 'Scan this image with your banking apps QR-Reader to start the payment process.' %}">bank://singlepaymentsepa?name={{ settings.bank_details_sepa_name|urlencode }}&iban={{ settings.bank_details_sepa_iban }}&bic={{ settings.bank_details_sepa_bic }}&amount={{ amount|commadecimal }}&reason={{ code }}&currency={{ event.currency }}</script>
</a>
</p>
</div>
</a>
</div>
{% endif %}
</div>
<div id="banktransfer_qrcodes_tabs" role="tablist" aria-labelledby="banktransfer_qrcodes_label" class="blank-after btn-group">
{% if swiss_qrbill %}
<button
class="btn btn-default"
id="banktransfer_qrcodes_qrbill_tab"
type="button"
role="tab"
aria-controls="banktransfer_qrcodes_qrbill"
aria-selected="true"
tabindex="-1">QR-bill</button>
{% endif %}
{% if eu_barcodes %}
<button
class="btn btn-default"
id="banktransfer_qrcodes_girocode_tab"
type="button"
role="tab"
aria-controls="banktransfer_qrcodes_girocode"
aria-selected="{{ swiss_qrbill|yesno:"false,true" }}"
tabindex="-1">EPC-QR</button>
<button
class="btn btn-default"
id="banktransfer_qrcodes_bezahlcode_tab"
type="button"
role="tab"
aria-controls="banktransfer_qrcodes_bezahlcode"
aria-selected="false"
tabindex="-1">BezahlCode</button>
{% endif %}
</div>
<p class="text-muted" id="banktransfer_qrcodes_label">
{% trans "Scan the QR code with your banking app" %}
</p>
</div>
{% endif %}
</div>
@@ -142,4 +171,4 @@ SCT
</div>
</form>
<hr>
{% endif %}
{% endif %}
+8 -2
View File
@@ -801,7 +801,13 @@ class CheckinLogList(ListExporter):
ia = ci.position.order.invoice_address
except InvoiceAddress.DoesNotExist:
ia = InvoiceAddress()
name = (
ci.position.attendee_name or
(ci.position.addon_to.attendee_name if ci.position.addon_to else '') or
ia.name
)
else:
name = ""
yield [
date_format(ci.datetime.astimezone(self.timezone), 'SHORT_DATE_FORMAT'),
date_format(ci.datetime.astimezone(self.timezone), 'TIME_FORMAT'),
@@ -811,7 +817,7 @@ class CheckinLogList(ListExporter):
ci.position.positionid if ci.position else '',
ci.raw_barcode or ci.position.secret,
str(ci.position.item) if ci.position else (str(ci.raw_item) if ci.raw_item else ''),
(ci.position.attendee_name or ia.name) if ci.position else '',
name,
str(ci.device) if ci.device else '',
_('Yes') if ci.force_sent is True else (_('No') if ci.force_sent is False else '?'),
_('Yes') if ci.forced else _('No'),
+15 -1
View File
@@ -625,8 +625,22 @@ class PaypalMethod(BasePaymentProvider):
}
return template.render(ctx)
@transaction.atomic
# We are wrapping the actual _execute_payment() here, since PaymentExceptions
# within the atomic transaction would rollback any changes to the payment-object,
# this throwing away any logentries and payment.fail()
def execute_payment(self, request: HttpRequest, payment: OrderPayment):
ex = None
with transaction.atomic():
try:
return self._execute_payment(request, payment)
except PaymentException as e:
ex = e
if ex:
raise ex
return False
def _execute_payment(self, request: HttpRequest, payment: OrderPayment):
payment = OrderPayment.objects.select_for_update(of=OF_SELF).get(pk=payment.pk)
if payment.state == OrderPayment.PAYMENT_STATE_CONFIRMED:
logger.warning('payment is already confirmed; possible return-view/webhook race-condition')
+22 -11
View File
@@ -44,6 +44,7 @@ from pretix.base.forms.questions import (
from pretix.base.i18n import get_language_without_region
from pretix.base.models import Customer
from pretix.helpers.http import get_client_ip
from pretix.multidomain.urlreverse import build_absolute_uri
class TokenGenerator(PasswordResetTokenGenerator):
@@ -65,19 +66,29 @@ class AuthenticationForm(forms.Form):
error_messages = {
'incomplete': _('You need to fill out all fields.'),
'empty_email': _('You need to enter an email address.'),
'empty_password': _('You need to enter a password.'),
'invalid_login': _(
"We have not found an account with this email address and password."
),
'invalid_login_email': _('Please verify that you entered the correct email addess.'),
'invalid_login_password': _('Please enter the correct password.'),
'inactive': _("This account is disabled."),
'unverified': _("You have not yet activated your account and set a password. Please click the link in the "
"email we sent you. Click \"Reset password\" to receive a new email in case you cannot find "
"it again."),
"email we sent you. In case you cannot find it, click \"Forgot your password?\" to receive "
"a new email."),
}
def __init__(self, request=None, *args, **kwargs):
self.request = request
self.customer_cache = None
super().__init__(*args, **kwargs)
self.fields['password'].help_text = "<a href='{}'>{}</a>".format(
build_absolute_uri(False, 'presale:organizer.customer.resetpw', kwargs={
'organizer': request.organizer.slug,
}),
_('Forgot your password?')
)
def clean(self):
email = self.cleaned_data.get('email')
@@ -94,6 +105,8 @@ class AuthenticationForm(forms.Form):
if u.check_password(password):
self.customer_cache = u
if self.customer_cache is None:
self.add_error("email", self.error_messages['invalid_login_email'])
self.add_error("password", self.error_messages['invalid_login_password'])
raise forms.ValidationError(
self.error_messages['invalid_login'],
code='invalid_login',
@@ -101,6 +114,10 @@ class AuthenticationForm(forms.Form):
else:
self.confirm_login_allowed(self.customer_cache)
else:
if not email:
self.add_error("email", self.error_messages['empty_email'])
if not password:
self.add_error("password", self.error_messages['empty_password'])
raise forms.ValidationError(
self.error_messages['incomplete'],
code='incomplete'
@@ -110,15 +127,9 @@ class AuthenticationForm(forms.Form):
def confirm_login_allowed(self, user):
if not user.is_active:
raise forms.ValidationError(
self.error_messages['inactive'],
code='inactive',
)
if not user.is_verified:
raise forms.ValidationError(
self.error_messages['unverified'],
code='unverified',
)
self.add_error("email", self.error_messages['inactive'])
elif not user.is_verified:
self.add_error("password", self.error_messages['unverified'])
def get_customer(self):
return self.customer_cache
+4 -2
View File
@@ -33,6 +33,7 @@ def render_label(content, label_for=None, label_class=None, label_title='', labe
"""
Render a label with content
"""
tag = 'label'
attrs = attrs or {}
if label_for:
attrs['for'] = label_for
@@ -58,15 +59,16 @@ def render_label(content, label_for=None, label_class=None, label_title='', labe
attrs['class'] += ' label-empty'
# usually checkboxes have overall empty labels and special labels per checkbox
# => remove for-attribute as well as "required"-text appended to label
tag = 'div'
if 'for' in attrs:
del attrs['for']
elif not optional:
opt += '<i class="sr-only label-required">, {}</i>'.format(pgettext('form', 'required'))
opt += '<i class="label-required">{}</i>'.format(pgettext('form', 'required'))
builder = '<{tag}{attrs}>{content}{opt}</{tag}>'
return format_html(
builder,
tag='label',
tag=tag,
attrs=mark_safe(flatatt(attrs)) if attrs else '',
opt=mark_safe(opt),
content=text_value(content),
@@ -44,6 +44,9 @@
</head>
<body class="nojs" data-locale="{{ request.LANGUAGE_CODE }}" data-now="{% now "U.u" %}" data-datetimeformat="{{ js_datetime_format }}" data-timeformat="{{ js_time_format }}" data-dateformat="{{ js_date_format }}" data-datetimelocale="{{ js_locale }}" data-currency="{{ request.event.currency }}">
{{ html_page_header|safe }}
<nav id="skip-to-main" role="navigation" aria-label="{% trans "Skip link" context "skip-to-main-nav" %}" class="sr-only on-focus-visible">
<p><a href="#content">{% trans "Skip to main content" %}</a></p>
</nav>
<header>
{% if ie_deprecation_warning %}
<div class="old-browser-warning">
@@ -94,10 +94,11 @@
</a>
{% else %}
<h1>
<a href="{% eventurl event "presale:event.index" cart_namespace=cart_namespace|default_if_none:"" %}">{{ event.name }}</a>
<a href="{% eventurl event "presale:event.index" cart_namespace=cart_namespace|default_if_none:"" %}" class="no-underline">{{ event.name }}
{% if request.event.settings.show_dates_on_frontpage and not event.has_subevents %}
<small>{{ event.get_date_range_display_as_html }}</small>
<small class="text-muted">{{ event.get_date_range_display_as_html }}</small>
{% endif %}
</a>
</h1>
{% endif %}
</div>
@@ -13,7 +13,7 @@
{% endblock %}
{% block content %}
<aside aria-label="{% trans "Your cart" %}">
<details class="panel panel-default cart{% if "open_cart" not in request.GET %} sneak-peek{% endif %}" {% if "open_cart" in request.GET %}open{% endif %}>
<details class="panel panel-default cart sneak-peek-container" open>
<summary class="panel-heading">
<h2 class="panel-title">
<span>
@@ -33,11 +33,15 @@
</summary>
{% if "open_cart" not in request.GET %}
<p class="sneak-peek-trigger">
<button type="button" class="btn btn-default">{% trans "Show full cart" %}</button>
<button type="button" class="btn btn-default" aria-controls="cart-foldable-container">{% trans "Show full cart" %}</button>
</p>
{% endif %}
<div>
{% if "open_cart" not in request.GET %}
<div class="panel-body sneak-peek-content" id="cart-foldable-container">
{% else %}
<div class="panel-body">
{% endif %}
{% include "pretixpresale/event/fragment_cart.html" with cart=cart event=request.event %}
</div>
</div>
@@ -48,15 +48,6 @@
</p>
{% if request.organizer.settings.customer_accounts_native %}
{% bootstrap_form login_form layout="checkout" %}
<div class="row">
<div class="col-md-offset-3 col-md-9">
<a
href="{% abseventurl request.organizer "presale:organizer.customer.resetpw" %}"
target="_blank">
{% trans "Reset password" %}
</a>
</div>
</div>
{% endif %}
<div class="row">
<div class="col-md-6 col-md-offset-3">
@@ -23,10 +23,7 @@
{% trans "Seat" %}
</label>
<div class="col-md-9 form-control-text">
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="14" viewBox="0 0 4.7624999 3.7041668" class="svg-icon">
<path
d="m 1.9592032,1.8522629e-4 c -0.21468,0 -0.38861,0.17394000371 -0.38861,0.38861000371 0,0.21466 0.17393,0.38861 0.38861,0.38861 0.21468,0 0.3886001,-0.17395 0.3886001,-0.38861 0,-0.21467 -0.1739201,-0.38861000371 -0.3886001,-0.38861000371 z m 0.1049,0.84543000371 c -0.20823,-0.0326 -0.44367,0.12499 -0.39998,0.40462997 l 0.20361,1.01854 c 0.0306,0.15316 0.15301,0.28732 0.3483,0.28732 h 0.8376701 v 0.92708 c 0,0.29313 0.41187,0.29447 0.41187,0.005 v -1.19115 c 0,-0.14168 -0.0995,-0.29507 -0.29094,-0.29507 l -0.65578,-10e-4 -0.1757,-0.87644 C 2.3042533,0.95300523 2.1890432,0.86500523 2.0641032,0.84547523 Z m -0.58549,0.44906997 c -0.0946,-0.0134 -0.20202,0.0625 -0.17829,0.19172 l 0.18759,0.91054 c 0.0763,0.33956 0.36802,0.55914 0.66042,0.55914 h 0.6015201 c 0.21356,0 0.21448,-0.32143 -0.003,-0.32143 H 2.1954632 c -0.19911,0 -0.36364,-0.11898 -0.41341,-0.34107 l -0.17777,-0.87126 c -0.0165,-0.0794 -0.0688,-0.11963 -0.12557,-0.12764 z"/>
</svg>
{% include "icons/seat.svg" with cls="svg-icon" %}
{{ form.position.seat }}
</div>
</div>
@@ -6,11 +6,6 @@
{% load escapejson %}
{% block inner %}
<p>{% trans "Before we continue, we need you to answer some questions." %}</p>
<p class="required-legend" aria-hidden="true">
{% blocktrans trimmed %}
You need to fill all fields that are marked with <span>*</span> to continue.
{% endblocktrans %}
</p>
{% if profiles_data %}
{{ profiles_data|json_script:"profiles_json" }}
{% endif %}
@@ -100,10 +95,7 @@
{% trans "Seat" %}
</label>
<div class="col-md-9 form-control-text">
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="14" viewBox="0 0 4.7624999 3.7041668" class="svg-icon">
<path
d="m 1.9592032,1.8522629e-4 c -0.21468,0 -0.38861,0.17394000371 -0.38861,0.38861000371 0,0.21466 0.17393,0.38861 0.38861,0.38861 0.21468,0 0.3886001,-0.17395 0.3886001,-0.38861 0,-0.21467 -0.1739201,-0.38861000371 -0.3886001,-0.38861000371 z m 0.1049,0.84543000371 c -0.20823,-0.0326 -0.44367,0.12499 -0.39998,0.40462997 l 0.20361,1.01854 c 0.0306,0.15316 0.15301,0.28732 0.3483,0.28732 h 0.8376701 v 0.92708 c 0,0.29313 0.41187,0.29447 0.41187,0.005 v -1.19115 c 0,-0.14168 -0.0995,-0.29507 -0.29094,-0.29507 l -0.65578,-10e-4 -0.1757,-0.87644 C 2.3042533,0.95300523 2.1890432,0.86500523 2.0641032,0.84547523 Z m -0.58549,0.44906997 c -0.0946,-0.0134 -0.20202,0.0625 -0.17829,0.19172 l 0.18759,0.91054 c 0.0763,0.33956 0.36802,0.55914 0.66042,0.55914 h 0.6015201 c 0.21356,0 0.21448,-0.32143 -0.003,-0.32143 H 2.1954632 c -0.19911,0 -0.36364,-0.11898 -0.41341,-0.34107 l -0.17777,-0.87126 c -0.0165,-0.0794 -0.0688,-0.11963 -0.12557,-0.12764 z"/>
</svg>
{% include "icons/seat.svg" with cls="svg-icon" %}
{{ pos.seat }}
</div>
</div>
@@ -205,7 +205,7 @@
{% else %}
<fieldset class="input-item-count-group" aria-describedby="c-{{ form.pos.pk }}-{{ category_idx }}-addon-count-desc cp-{{ form.pos.pk }}-item-{{ item.pk }}-min-order">
<legend class="sr-only">{% blocktrans with item=item.name %}Add {{ item }}, {{ var }} to cart{% endblocktrans %}</legend>
<button type="button" data-step="-1" data-controls="cp_{{ form.pos.pk }}_variation_{{ item.id }}_{{ var.id }}" class="btn btn-default input-item-count-dec" aria-label="{% trans "Decrease quantity" %}">-</button>
<button type="button" data-step="-1" data-controls="cp_{{ form.pos.pk }}_variation_{{ item.id }}_{{ var.id }}" class="btn btn-default input-item-count-dec" aria-label="- {{ item }}, {{ var }}: {% trans "Decrease quantity" %}">-</button>
<input type="number" class="form-control input-item-count" placeholder="0" min="0"
{% if var.initial %}value="{{ var.initial }}"{% endif %}
{% if item.free_price %}
@@ -215,7 +215,7 @@
id="cp_{{ form.pos.pk }}_variation_{{ item.id }}_{{ var.id }}"
name="cp_{{ form.pos.pk }}_variation_{{ item.id }}_{{ var.id }}"
aria-label="{% trans "Quantity" %}">
<button type="button" data-step="1" data-controls="cp_{{ form.pos.pk }}_variation_{{ item.id }}_{{ var.id }}" class="btn btn-default input-item-count-inc" aria-label="{% trans "Increase quantity" %}">+</button>
<button type="button" data-step="1" data-controls="cp_{{ form.pos.pk }}_variation_{{ item.id }}_{{ var.id }}" class="btn btn-default input-item-count-inc" aria-label="+ {{ item }}, {{ var }}: {% trans "Increase quantity" %}">+</button>
</fieldset>
{% endif %}
</div>
@@ -351,7 +351,7 @@
{% else %}
<fieldset class="input-item-count-group" aria-describedby="c-{{ form.pos.pk }}-{{ category_idx }}-addon-count-desc cp-{{ form.pos.pk }}-item-{{ item.pk }}-min-order">
<legend class="sr-only">{% blocktrans with item=item.name %}Add {{ item }} to cart{% endblocktrans %}</legend>
<button type="button" data-step="-1" data-controls="cp_{{ form.pos.pk }}_item_{{ item.id }}" class="btn btn-default input-item-count-dec" aria-label="{% trans "Decrease quantity" %}">-</button>
<button type="button" data-step="-1" data-controls="cp_{{ form.pos.pk }}_item_{{ item.id }}" class="btn btn-default input-item-count-dec" aria-label="- {{ item }}: {% trans "Decrease quantity" %}">-</button>
<input type="number" class="form-control input-item-count" placeholder="0" min="0"
{% if item.free_price %}
data-checked-onchange="price-item-{{ form.pos.pk }}-{{ item.pk }}"
@@ -361,7 +361,7 @@
name="cp_{{ form.pos.pk }}_item_{{ item.id }}"
id="cp_{{ form.pos.pk }}_item_{{ item.id }}"
aria-label="{% trans "Quantity" %}">
<button type="button" data-step="1" data-controls="cp_{{ form.pos.pk }}_item_{{ item.id }}" class="btn btn-default input-item-count-inc" aria-label="{% trans "Increase quantity" %}">+</button>
<button type="button" data-step="1" data-controls="cp_{{ form.pos.pk }}_item_{{ item.id }}" class="btn btn-default input-item-count-inc" aria-label="+ {{ item }}: {% trans "Increase quantity" %}">+</button>
</fieldset>
{% endif %}
</div>

Some files were not shown because too many files have changed in this diff Show More