Compare commits

...
Author SHA1 Message Date
Mira Weller 2848d85511 Tests python3.11 compat 2024-10-14 13:20:07 +02:00
Mira Weller 21707f8407 Fix test case 2024-10-14 12:06:27 +02:00
Mira Weller 711479bfed fix display dependency in category settings 2024-10-14 10:23:34 +02:00
Mira Weller c401e54831 improve formatting for subevents 2024-10-14 10:23:34 +02:00
27cfd4dbdd Update src/pretix/control/templates/pretixcontrol/items/category.html
Co-authored-by: Richard Schreiber <schreiber@rami.io>
2024-10-11 13:59:22 +02:00
Mira Weller e5ab1b08a2 reformat code 2024-10-11 11:34:13 +02:00
7d22fe1a54 Update src/pretix/static/pretixcontrol/js/ui/main.js
Co-authored-by: Richard Schreiber <schreiber@rami.io>
2024-10-11 11:11:40 +02:00
6c52cc8157 Apply suggestions from code review
Co-authored-by: Richard Schreiber <schreiber@rami.io>
2024-10-11 11:11:08 +02:00
Mira Weller 0191d258ab accessibility 2024-10-09 12:17:53 +02:00
Mira Weller b312a21e5e remove erroneous paste 2024-10-09 12:15:30 +02:00
Mira Weller f9ca9a781e one loop less 2024-10-09 12:13:11 +02:00
Mira Weller a314d219b8 fix iteration 2024-10-09 12:01:47 +02:00
Mira Weller 9a6756ce5d show discount notice on all categories with an available discount, not only those with cross_selling_condition=discount 2024-10-09 11:52:46 +02:00
Mira Weller b3ca02d8e5 change style of discount notice 2024-10-09 11:38:04 +02:00
Mira Weller 88936b5e7a improve wording of category types 2024-10-09 11:37:41 +02:00
6b9eefd231 Update src/pretix/static/pretixpresale/scss/_checkout.scss
Co-authored-by: Richard Schreiber <schreiber@rami.io>
2024-10-07 21:19:02 +02:00
Mira Weller 6587cca608 add discount label 2024-10-02 12:12:43 +02:00
Mira Weller 3856095088 improve category type label for CROSS_SELLING_MODES=both 2024-10-02 09:57:16 +02:00
Mira Weller a84a27cc0b transfer cross_selling_match_products on event clone 2024-10-02 09:53:32 +02:00
Mira Weller 7d6b2d6df8 better description for CROSS_SELLING_CONDITION=discounts 2024-10-02 09:31:59 +02:00
Mira Weller d4f997c345 describe new category options in docs 2024-10-02 09:29:05 +02:00
Mira Weller bef88bf0d0 fix SUBEVENT_MODE_DISTINCT discounts 2024-10-01 18:46:44 +02:00
Mira Weller 159717c19f formatting 2024-10-01 18:36:24 +02:00
Mira Weller 5e9b5a9c24 support for variations 2024-10-01 18:35:07 +02:00
Mira Weller 52849f8fdd bugfix 2024-10-01 18:34:57 +02:00
Mira Weller 4f1ee82c4f remove unused vars 2024-10-01 18:15:59 +02:00
Mira Weller d5e480b7fd fix cross selling recommendations for SUBEVENT_MODE_SAME discounts 2024-10-01 18:14:46 +02:00
Mira Weller fd6ae65f23 add another test case 2024-10-01 18:14:17 +02:00
Mira Weller 94733135f0 add failing test for SUBEVENT_MODE_SAME 2024-10-01 17:29:25 +02:00
Mira Weller e51927c4e0 update query numbers 2024-10-01 16:54:24 +02:00
Mira Weller 11c7c950cb add subevent support to test framework 2024-10-01 16:52:47 +02:00
Mira Weller 0695365526 improved layout 2024-10-01 15:05:14 +02:00
MiraandGitHub 0947476b41 Update src/pretix/base/services/cross_selling.py 2024-09-30 21:19:24 +02:00
Mira Weller 7a4aead22d rename id_prefix to form_prefix 2024-09-30 21:16:17 +02:00
44de4bb26b Apply suggestions from code review
Co-authored-by: Raphael Michel <michel@rami.io>
2024-09-30 21:13:19 +02:00
Mira Weller d879637b73 update query counts 2024-09-30 16:53:34 +02:00
Mira Weller b5fc227fca rebase migration 2024-09-27 16:36:54 +02:00
Mira Weller 1fb1696863 Merge remote-tracking branch 'origin/master' into cross-selling 2024-09-27 16:27:47 +02:00
Raphael Michel a07d5aaf05 Add-on step: Minimal performance improvement 2024-09-27 13:26:30 +02:00
Raphael Michel 0cf1a32902 Bump version to 2024.10.0.dev0 2024-09-27 09:46:47 +02:00
Raphael Michel be6aae8577 Bump version to 2024.9.0 2024-09-27 09:46:18 +02:00
MiraandGitHub fe80f5fb78 Utils for internal plugin (#4483)
* Add full_code property to OrderPosition

* Add inline "json_script" as supported data source for select2

* Use shorter OrderPosition.code
2024-09-26 19:29:33 +02:00
Raphael MichelandGitHub a2c15ad89e Check-in: Prevent duplicate auto check-outs (Z#23167003) (#4488) 2024-09-26 17:54:27 +02:00
Raphael MichelandRaphael Michel cab0f37830 Translations: Update German
Currently translated at 100.0% (5745 of 5745 strings)

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

powered by weblate
2024-09-26 17:51:57 +02:00
Raphael MichelandRaphael Michel 0423980058 Translations: Update German (informal) (de_Informal)
Currently translated at 100.0% (5745 of 5745 strings)

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

powered by weblate
2024-09-26 17:51:57 +02:00
Raphael Michel 63983b1b68 Translations: Update spellcheck lists 2024-09-26 16:52:28 +02:00
Raphael Michel 61241c2a1e Update po files
[CI skip]

Signed-off-by: Raphael Michel <michel@rami.io>
2024-09-26 13:23:02 +02:00
Raphael Michel 4069c61054 runperiodic: Allow to list all tasks 2024-09-26 10:32:53 +02:00
Raphael MichelandGitHub 9bf4fb2d0f Sendmail: Fix incorrect filtering of subevents when mailing to attendees (Z#23166274) (#4474) 2024-09-25 17:55:33 +02:00
Raphael Michel ff910f293f Item list: Show tax rate even for products with 0 price
Might be neccessary for price input, variations, etc
2024-09-25 12:42:45 +02:00
Raphael Michel 74f7bec617 Change wording in a headline to avoid double-using a term 2024-09-25 12:42:45 +02:00
AlbizuriandRaphael Michel 467a35e353 Translations: Update Basque
Currently translated at 56.0% (3213 of 5737 strings)

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

powered by weblate
2024-09-24 10:13:22 +02:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
770c13a4f0 Update pypdf requirement from ==4.3.* to ==5.0.* (#4471)
Updates the requirements on [pypdf](https://github.com/py-pdf/pypdf) to permit the latest version.
- [Release notes](https://github.com/py-pdf/pypdf/releases)
- [Changelog](https://github.com/py-pdf/pypdf/blob/main/CHANGELOG.md)
- [Commits](https://github.com/py-pdf/pypdf/compare/4.3.0...5.0.0)

---
updated-dependencies:
- dependency-name: pypdf
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-19 11:34:23 +02:00
dependabot[bot]andRaphael Michel 5373d4d8ba Bump django-bootstrap3 from 24.2 to 24.3
Bumps [django-bootstrap3](https://github.com/zostera/django-bootstrap3) from 24.2 to 24.3.
- [Changelog](https://github.com/zostera/django-bootstrap3/blob/main/CHANGELOG.md)
- [Commits](https://github.com/zostera/django-bootstrap3/compare/v24.2...v24.3)

---
updated-dependencies:
- dependency-name: django-bootstrap3
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-19 11:28:15 +02:00
Raphael Michel 42e673b5f6 Fix missing JS file name 2024-09-19 09:39:49 +02:00
AlbizuriandRaphael Michel 7af2f2a87b Translations: Update Basque
Currently translated at 56.0% (3213 of 5737 strings)

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

powered by weblate
2024-09-18 16:25:32 +02:00
Tinna SandströmandRaphael Michel e408521769 Translations: Update Swedish
Currently translated at 99.1% (5686 of 5736 strings)

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

powered by weblate
2024-09-18 16:25:32 +02:00
Raphael Michel 8ed0d36346 Fix another wrong waiting_list_active reference 2024-09-18 10:28:41 +02:00
Raphael Michel 14cbe99667 Stripe: Fix a leftover } 2024-09-17 17:54:57 +02:00
Raphael Michel b059995eff Widget: Fix waiting list disable time based on subevent 2024-09-17 17:39:22 +02:00
Raphael Michel 100e8d0a4b Fix #4454 -- Resolve deprecation warning from celery 2024-09-17 13:36:35 +02:00
Raphael MichelandGitHub eb92e4d8e6 Render progress info on non-javascript fallback page for celery tasks (#4452)
* Render progress info on non-javascript fallback page for celery tasks

* Review notes
2024-09-17 13:29:27 +02:00
Raphael MichelandGitHub 32d6ded003 Stricten password validation to match PCI DSS requirements (#4467)
* Stricten password validation to match PCI DSS requirements

* Review fix

* Fix a file header
2024-09-17 13:29:17 +02:00
Raphael MichelandGitHub aa07533693 Order import: Allow to set check-in attention and text (Z#23165806) (#4469) 2024-09-17 11:50:19 +02:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
e7d01f91a6 Bump @babel/preset-env from 7.25.3 to 7.25.4 in /src/pretix/static/npm_dir (#4438)
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.25.3 to 7.25.4.
- [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.25.4/packages/babel-preset-env)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-17 11:42:33 +02:00
Raphael MichelandGitHub 9616369f07 Formally deprecate eu_reverse_charge (#4470) 2024-09-17 11:39:32 +02:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
af606090ba Update sentry-sdk requirement from ==2.13.* to ==2.14.* (#4455)
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.13.0...2.14.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-16 16:46:28 +02:00
SvyatoslavandRaphael Michel 931f3eca1b Translations: Update Estonian
Currently translated at 0.1% (1 of 5736 strings)

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

powered by weblate
2024-09-16 16:44:46 +02:00
SvyatoslavandRaphael Michel 36f306120e Translations: Update Latvian
Currently translated at 37.2% (2134 of 5736 strings)

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

powered by weblate
2024-09-16 16:44:46 +02:00
SvyatoslavandRaphael Michel a3ba0c97e9 Translations: Update Russian
Currently translated at 19.1% (1097 of 5736 strings)

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

powered by weblate
2024-09-16 16:44:46 +02:00
Richard SchreiberandRaphael Michel 484d24b66c Translations: Add Estonian 2024-09-16 16:44:46 +02:00
Tinna SandströmandRaphael Michel 2d39d3cc8e Translations: Update Swedish
Currently translated at 99.1% (5686 of 5736 strings)

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

powered by weblate
2024-09-16 16:44:46 +02:00
Kristian FeldsamandRaphael Michel 78b1adf423 Translations: Update Slovak
Currently translated at 29.3% (68 of 232 strings)

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

powered by weblate
2024-09-16 16:44:46 +02:00
Kristian FeldsamandRaphael Michel c3eedcc396 Translations: Update Slovak
Currently translated at 92.5% (5307 of 5736 strings)

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

powered by weblate
2024-09-16 16:44:46 +02:00
Tinna SandströmandRaphael Michel 682c328390 Translations: Update Swedish
Currently translated at 99.1% (5686 of 5736 strings)

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

powered by weblate
2024-09-16 16:44:46 +02:00
WikinautandRaphael Michel 5230827f5e Translations: Update German
Currently translated at 100.0% (5736 of 5736 strings)

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

powered by weblate
2024-09-16 16:44:46 +02:00
Arthur NunesandRaphael Michel dad9915435 Translations: Update Portuguese (Brazil)
Currently translated at 13.2% (759 of 5736 strings)

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

powered by weblate
2024-09-16 16:44:46 +02:00
WikinautandRaphael Michel a9d2c1eb34 Translations: Update German
Currently translated at 100.0% (5736 of 5736 strings)

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

powered by weblate
2024-09-16 16:44:46 +02:00
Tinna SandströmandRaphael Michel 66fe45a478 Translations: Update Swedish
Currently translated at 86.2% (200 of 232 strings)

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

powered by weblate
2024-09-12 09:32:41 +02:00
Raphael Michel 24e2b1b9ab Import: Parse iso dates 2024-09-12 09:32:25 +02:00
Martin GrossandGitHub eebdce80cd OIDC: Respect token_endpoint_auth_methods_supported (Z#2164777) (#4459) 2024-09-11 16:40:42 +02:00
Kristian FeldsamandRaphael Michel 09af95ec20 Translations: Update Slovak
Currently translated at 92.1% (5283 of 5736 strings)

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

powered by weblate
2024-09-11 16:01:16 +02:00
Tinna SandströmandRaphael Michel 1ade674beb Translations: Update Swedish
Currently translated at 99.1% (5686 of 5736 strings)

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

powered by weblate
2024-09-11 16:01:16 +02:00
Kristian FeldsamandRaphael Michel 76ff59f9c2 Translations: Update Slovak
Currently translated at 6.4% (15 of 232 strings)

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

powered by weblate
2024-09-11 16:01:16 +02:00
Kristian FeldsamandRaphael Michel 0986522c2f Translations: Update Slovak
Currently translated at 6.0% (14 of 232 strings)

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

powered by weblate
2024-09-11 16:01:16 +02:00
Kristian FeldsamandRaphael Michel 91f4e731da Translations: Update Slovak
Currently translated at 92.0% (5280 of 5736 strings)

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

powered by weblate
2024-09-11 16:01:16 +02:00
Raphael Michel 98709286c6 Order cancellation: Fix crash on deleted order (PRETIXEU-AHP) 2024-09-10 14:00:11 +02:00
Raphael Michel 667c2555b2 AsyncMixin: Fix crash on invalid query string (PRETIXEU-AHG) 2024-09-10 14:00:08 +02:00
Raphael MichelandRaphael Michel 6f5acb1ca7 Translations: Update German (informal) (de_Informal)
Currently translated at 100.0% (232 of 232 strings)

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

powered by weblate
2024-09-10 09:19:12 +02:00
Raphael MichelandRaphael Michel 65ec3e3fd6 Translations: Update German
Currently translated at 100.0% (232 of 232 strings)

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

powered by weblate
2024-09-10 09:19:12 +02:00
Richard SchreiberandRaphael Michel 1a8d0a973d Translations: Update German (informal) (de_Informal)
Currently translated at 100.0% (5736 of 5736 strings)

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

powered by weblate
2024-09-10 09:19:12 +02:00
Richard SchreiberandRaphael Michel 3c94631405 Translations: Update German
Currently translated at 100.0% (5736 of 5736 strings)

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

powered by weblate
2024-09-10 09:19:12 +02:00
Kristian FeldsamandRaphael Michel 1dda7732a5 Translations: Update Slovak
Currently translated at 4.7% (11 of 232 strings)

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

powered by weblate
2024-09-10 09:19:12 +02:00
Kristian FeldsamandRaphael Michel 33accf5f99 Translations: Update Slovak
Currently translated at 92.0% (5279 of 5736 strings)

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

powered by weblate
2024-09-10 09:19:12 +02:00
Tinna SandströmandRaphael Michel be2efd9df2 Translations: Update Swedish
Currently translated at 99.1% (5686 of 5736 strings)

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

powered by weblate
2024-09-10 09:19:12 +02:00
Ahmad AlHarthiandRaphael Michel fe69137a4e Translations: Update Arabic
Currently translated at 65.1% (3736 of 5736 strings)

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

powered by weblate
2024-09-09 11:18:16 +02:00
Ayden JaholaandRaphael Michel 7ccfb3a27a Translations: Update Arabic
Currently translated at 65.1% (3736 of 5736 strings)

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

powered by weblate
2024-09-09 11:18:16 +02:00
Ayden JaholaandRaphael Michel b7205622dc Translations: Update Arabic
Currently translated at 65.1% (3736 of 5736 strings)

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

powered by weblate
2024-09-09 11:18:16 +02:00
Ahmad AlHarthiandRaphael Michel 44da5b81b1 Translations: Update Arabic
Currently translated at 65.1% (3736 of 5736 strings)

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

powered by weblate
2024-09-09 11:18:16 +02:00
Martin GrossandRaphael Michel 5a058342a6 Translations: Update Portuguese (Portugal)
Currently translated at 56.8% (132 of 232 strings)

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

powered by weblate
2024-09-09 11:18:16 +02:00
Martin GrossandRaphael Michel 2d15dc7ce5 Translations: Update Portuguese (Portugal)
Currently translated at 56.8% (132 of 232 strings)

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

powered by weblate
2024-09-09 11:18:16 +02:00
Martin GrossandRaphael Michel dd4ccc864e Translations: Update Portuguese (Portugal)
Currently translated at 86.7% (4977 of 5736 strings)

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

powered by weblate
2024-09-09 11:18:16 +02:00
Kristian FeldsamandRaphael Michel b812f0affe Translations: Update Slovak
Currently translated at 3.8% (9 of 232 strings)

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

powered by weblate
2024-09-09 11:18:16 +02:00
Kristian FeldsamandRaphael Michel 2af4183ce6 Translations: Update Slovak
Currently translated at 92.0% (5279 of 5736 strings)

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

powered by weblate
2024-09-09 11:18:16 +02:00
AlbizuriandRaphael Michel 8ac0b93ca5 Translations: Update Basque
Currently translated at 55.9% (3209 of 5737 strings)

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

powered by weblate
2024-09-09 11:18:16 +02:00
Ronisson CabralandRaphael Michel 51a1193f32 Translations: Update Portuguese (Portugal)
Currently translated at 56.0% (130 of 232 strings)

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

powered by weblate
2024-09-09 11:18:16 +02:00
Ronisson CabralandRaphael Michel 002da2c9b7 Translations: Update Portuguese (Portugal)
Currently translated at 86.2% (4948 of 5736 strings)

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

powered by weblate
2024-09-09 11:18:16 +02:00
Martin GrossandGitHub 9a2ebe4e95 Refunds: Fix sortkey to work with not provided BICs (Z#23165187) (#4451) 2024-09-09 10:48:53 +02:00
AlbizuriandMartin Gross bc6da2512a Translations: Update Basque
Currently translated at 48.4% (113 of 233 strings)

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

powered by weblate
2024-09-06 10:51:38 +02:00
AlbizuriandMartin Gross 6378dc69b8 Translations: Update Basque
Currently translated at 56.3% (3231 of 5737 strings)

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

powered by weblate
2024-09-06 10:51:38 +02:00
Richard SchreiberandGitHub 2b53d04a19 Improve labels in mail settings for incomplete payments (#4444) 2024-09-06 08:53:08 +02:00
Richard SchreiberandGitHub 7efe7b5ff7 Docs: fix typo for SSO provider instead of client 2024-09-05 13:02:20 +02:00
Alberto OrtegaandMartin Gross ae5464d486 Translations: Update Spanish
Currently translated at 87.8% (5038 of 5736 strings)

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

powered by weblate
2024-09-05 11:09:47 +02:00
Tinna SandströmandMartin Gross 67fec8d1f6 Translations: Update Swedish
Currently translated at 99.1% (5686 of 5736 strings)

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

powered by weblate
2024-09-05 11:09:47 +02:00
AlbizuriandRaphael Michel 95a081676b Translations: Update Basque
Currently translated at 56.2% (3225 of 5737 strings)

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

powered by weblate
2024-08-30 09:17:49 +02:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
7228a6304d Update protobuf requirement from ==5.27.* to ==5.28.* (#4430)
Updates the requirements on [protobuf](https://github.com/protocolbuffers/protobuf) to permit the latest version.
- [Release notes](https://github.com/protocolbuffers/protobuf/releases)
- [Changelog](https://github.com/protocolbuffers/protobuf/blob/main/protobuf_release.bzl)
- [Commits](https://github.com/protocolbuffers/protobuf/compare/v5.27.0-rc1...v5.28.0)

---
updated-dependencies:
- dependency-name: protobuf
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-30 09:11:23 +02:00
Raphael Michel 04b9134e36 Add Basque to languages 2024-08-29 16:52:54 +02:00
AlbizuriandRaphael Michel 2e0769bc41 Translations: Update Basque
Currently translated at 54.4% (3126 of 5737 strings)

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

powered by weblate
2024-08-29 14:51:49 +02:00
AlbizuriandRaphael Michel 4d2f854710 Translations: Update Basque
Currently translated at 48.0% (112 of 233 strings)

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

powered by weblate
2024-08-29 14:51:49 +02:00
AlbizuriandRaphael Michel b9ac9496d2 Translations: Update Basque
Currently translated at 52.7% (3026 of 5737 strings)

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

powered by weblate
2024-08-29 14:51:49 +02:00
AlbizuriandRaphael Michel a975f5dc50 Translations: Update Basque
Currently translated at 47.2% (110 of 233 strings)

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

powered by weblate
2024-08-29 14:51:49 +02:00
AlbizuriandRaphael Michel 4ea1f6284a Translations: Update Basque
Currently translated at 47.5% (2726 of 5737 strings)

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

powered by weblate
2024-08-29 14:51:49 +02:00
Raphael MichelandGitHub a01d105829 Bank Transfer: Fix weird error code on duplicate match (Z#23164140) (#4428) 2024-08-29 13:58:37 +02:00
Mira Weller 939d50061b Merge remote-tracking branch 'origin/master' into cross-selling
# Conflicts:
#	src/pretix/presale/templates/pretixpresale/event/fragment_product_list.html
2024-08-29 13:49:28 +02:00
Raphael MichelandGitHub b1bfa1acee API: Provide useful device_id in checkins (Z#23163025) (#4427) 2024-08-29 12:36:27 +02:00
Raphael Michel 0b4e99c2d8 Fix inprecise wording 2024-08-28 16:41:37 +02:00
Raphael MichelandGitHub 0cdce7a9cd Add payment_explanation to payment method change (Z#23164112) (#4424) 2024-08-28 15:12:16 +02:00
Richard SchreiberandGitHub 464f625301 Seating: visually remove waitinglist headline for soldout seating 2024-08-28 14:36:30 +02:00
Richard SchreiberandGitHub 0c1072503c A11y: improve/unify html-source for uncategorized products 2024-08-28 14:35:35 +02:00
Raphael Michel 9ead82839a API: Add show_dates_on_frontpage to device event settings 2024-08-28 13:47:24 +02:00
AlbizuriandRaphael Michel c346e3a7f4 Translations: Update Basque
Currently translated at 44.6% (2560 of 5737 strings)

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

powered by weblate
2024-08-28 12:10:11 +02:00
Tinna SandströmandRaphael Michel a26f219faf Translations: Update Swedish
Currently translated at 99.0% (5684 of 5736 strings)

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

powered by weblate
2024-08-28 12:10:11 +02:00
Anarion DunedainandRaphael Michel 74fb8e7d0c Translations: Update Polish
Currently translated at 100.0% (232 of 232 strings)

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

powered by weblate
2024-08-28 12:10:11 +02:00
Anarion DunedainandRaphael Michel b9dbeef1ef Translations: Update Polish
Currently translated at 100.0% (5736 of 5736 strings)

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

powered by weblate
2024-08-28 12:10:11 +02:00
Raphael MichelandGitHub 54079797d2 Event list: Do not include old or inactive subevents in event list (Z#23163541) (#4415) 2024-08-28 09:28:35 +02:00
Raphael MichelandGitHub 02a4ed4be2 Teams: Improve handling of revoked keys and team deletion (Z#23163674) (#4414) 2024-08-28 09:27:53 +02:00
Raphael Michel 7f7c95aedb Bump version to 2024.9.0.dev0 2024-08-28 09:18:59 +02:00
Raphael Michel 47af20d417 Bump version to 2024.8.0 2024-08-28 09:18:35 +02:00
MiraandGitHub 91e69f793d Show weekday in subevent dates [Z#23161884] (#4383) 2024-08-27 22:22:44 +02:00
MiraandGitHub 43e24ff88c Remove duplicate message in basque translation 2024-08-27 22:00:36 +02:00
Raphael Michel fa3f6def82 Fix typo 2024-08-27 18:17:35 +02:00
Raphael MichelandRaphael Michel 34469bc222 Translations: Update German
Currently translated at 99.5% (231 of 232 strings)

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

powered by weblate
2024-08-27 18:16:03 +02:00
Raphael MichelandRaphael Michel d0364300b5 Translations: Update German
Currently translated at 100.0% (5736 of 5736 strings)

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

powered by weblate
2024-08-27 18:16:03 +02:00
AlbizuriandRaphael Michel 55bc55cc53 Translations: Update Basque
Currently translated at 36.8% (2114 of 5738 strings)

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

powered by weblate
2024-08-27 18:16:03 +02:00
Raphael MichelandRaphael Michel 0ee5511cca Translations: Update German (informal) (de_Informal)
Currently translated at 99.5% (231 of 232 strings)

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

powered by weblate
2024-08-27 18:16:03 +02:00
Raphael MichelandRaphael Michel 192699a2c2 Translations: Update German (informal) (de_Informal)
Currently translated at 100.0% (5736 of 5736 strings)

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

powered by weblate
2024-08-27 18:16:03 +02:00
Raphael MichelandRaphael Michel b8255bc7a0 Translations: Update German
Currently translated at 99.7% (5722 of 5736 strings)

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

powered by weblate
2024-08-27 18:16:03 +02:00
AlbizuriandRaphael Michel d7f0c14fdc Translations: Update Basque
Currently translated at 47.1% (109 of 231 strings)

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

powered by weblate
2024-08-27 18:16:03 +02:00
AlbizuriandRaphael Michel 3f9ba2f223 Translations: Update Basque
Currently translated at 36.1% (2069 of 5722 strings)

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

powered by weblate
2024-08-27 18:16:03 +02:00
Raphael Michel 3f811cc020 Update wordlists 2024-08-27 18:00:42 +02:00
Raphael Michel 03f3203a82 Update po files
[CI skip]

Signed-off-by: Raphael Michel <michel@rami.io>
2024-08-27 15:34:31 +02:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
59901603c6 Update fakeredis requirement from ==2.23.* to ==2.24.* (#4419)
Updates the requirements on [fakeredis](https://github.com/cunla/fakeredis-py) to permit the latest version.
- [Release notes](https://github.com/cunla/fakeredis-py/releases)
- [Commits](https://github.com/cunla/fakeredis-py/compare/v2.23.0...v2.24.0)

---
updated-dependencies:
- dependency-name: fakeredis
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-27 15:33:34 +02:00
AlbizuriandRaphael Michel aefb38cdd7 Translations: Update Basque
Currently translated at 46.7% (108 of 231 strings)

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

powered by weblate
2024-08-27 15:33:21 +02:00
AlbizuriandRaphael Michel aed3ccd2dd Translations: Update Basque
Currently translated at 26.9% (1542 of 5722 strings)

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

powered by weblate
2024-08-27 15:33:21 +02:00
Raphael MichelandRaphael Michel 893d115948 Translations: Update German (informal) (de_Informal)
Currently translated at 100.0% (5722 of 5722 strings)

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

powered by weblate
2024-08-27 15:33:21 +02:00
Raphael MichelandRaphael Michel 8e87cf67c7 Translations: Update German
Currently translated at 100.0% (5722 of 5722 strings)

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

powered by weblate
2024-08-27 15:33:21 +02:00
Richard SchreiberandGitHub 8972715252 Fix initial sidebar display for mobile 2024-08-26 12:01:25 +02:00
Mira Weller c1a5e8d912 codestyle 2024-08-01 23:01:11 +02:00
Mira Weller 106026045e fix sqlite compat 2024-08-01 22:59:51 +02:00
Mira Weller badbb64f4f add validation to ItemCategorySerializer 2024-07-26 20:05:03 +02:00
Mira Weller 537a0993b0 add more detailed description of collect_potential_discounts parameter 2024-07-26 19:40:28 +02:00
Mira Weller 9337ad1f70 add prefetching, add test cases checking number of queries 2024-07-25 14:37:19 +02:00
Mira Weller 5087e654e2 cleanup 2024-07-22 11:26:14 +02:00
Mira Weller dac2209243 rebase migration 2024-07-19 14:21:24 +02:00
Mira Weller 9cb708cf6f fix typing 2024-07-19 14:21:24 +02:00
Mira Weller e18c699529 formatting, refactoring 2024-07-19 14:21:24 +02:00
Mira Weller 9c3150ccde add license header 2024-07-19 14:21:24 +02:00
Mira Weller 923798ea5f fix cross-selling recommendation logic bug 2024-07-19 14:21:24 +02:00
Mira Weller b8d2372cf6 store apply_discounts result for use in test cases 2024-07-19 14:21:24 +02:00
Mira Weller e01e9151c3 correct type annotation 2024-07-19 14:21:24 +02:00
Mira Weller 09398ad7c7 add more test cases 2024-07-19 14:21:24 +02:00
Mira Weller d1de8f5863 remove redundant check
(this is already checked using the 'if not self.condition_min_count or self.condition_min_value' condition directly above)
2024-07-19 14:21:24 +02:00
Mira Weller bee0eaa2fa add some unit tests for cross-selling logic 2024-07-19 14:21:24 +02:00
Mira Weller ac771b8ca8 refactor cross-selling logic into its own module 2024-07-19 14:21:24 +02:00
Mira Weller cb635b2c37 add TODO for known error 2024-07-19 14:21:24 +02:00
Mira Weller 3fe6919bef add typing 2024-07-19 14:21:24 +02:00
Mira Weller 8cfb69c265 clarifications 2024-07-19 14:21:24 +02:00
Mira Weller 77fc13605e new sales channel compat 2024-07-19 14:21:24 +02:00
Mira Weller a95976ed50 translate comments 2024-07-19 14:21:24 +02:00
Mira Weller 2e3a611498 isort 2024-07-19 14:21:24 +02:00
Mira Weller 6bf16f1510 Use namedtuple 2024-07-19 14:21:24 +02:00
Mira Weller d29b183801 fix test case 2024-07-19 14:21:24 +02:00
Mira Weller 188ef5f463 isort 2024-07-19 14:21:24 +02:00
Mira Weller a7e292ea58 fix case 2024-07-19 14:21:24 +02:00
Mira Weller d04b855cce category_type refactoring 2024-07-19 14:21:24 +02:00
Mira Weller 01b535a0af cache potential discount information
relevant if shop has multiple categories with cross_selling_condition=discounts
2024-07-19 14:21:23 +02:00
Mira Weller d9f31aae8c better var names 2024-07-19 14:21:23 +02:00
Mira Weller 715347cb35 filter non-buyable items from list 2024-07-19 14:21:23 +02:00
Mira Weller 32cc45f19a make cross-selling-applicable more specific and cache state
(only show if really applicable, e.g. don't show if product can't be bought due to order_max)
2024-07-19 14:21:23 +02:00
Mira Weller cadf8dd39d better order_max handling 2024-07-19 14:21:23 +02:00
Mira Weller b136ac37c8 Hide addon text if only cross-selling, no addons in addon step 2024-07-19 14:21:23 +02:00
Mira Weller 8627eefebc first round of cleanup 2024-07-19 14:21:23 +02:00
Mira Weller e71d3e21ca display discounted prices, limit number of products according to discount rule 2024-07-19 14:21:23 +02:00
Mira Weller a18adb8a88 wip 2024-07-19 14:21:23 +02:00
Mira Weller f56d67ec9c add todo notes 2024-07-19 14:21:23 +02:00
Mira Weller c156581ad1 fix discount collection (?) 2024-07-19 14:21:23 +02:00
Mira Weller 8791280d0b Implement discount prediction (very WIP!) 2024-07-19 14:21:23 +02:00
Mira Weller 97925e2d77 migration, show category type in ui 2024-07-19 14:21:23 +02:00
Mira Weller a0d865cf4f implement cross_selling_visibility "always" and "products" 2024-07-19 14:21:21 +02:00
Mira Weller 2cd5d87da4 Refactor fragment_product_list.html 2024-07-19 14:21:00 +02:00
Mira Weller e5c7c85e75 Allow adding products from multiple subevents to the cart at once 2024-07-19 14:21:00 +02:00
Mira Weller 3e0992a7a7 Make the comments in cart.py less incorrect 2024-07-19 14:21:00 +02:00
Mira Weller f19e5bef72 Cross-selling category configuration 2024-07-19 14:21:00 +02:00
181 changed files with 112359 additions and 70301 deletions
+36 -5
View File
@@ -23,6 +23,22 @@ position integer An integer, use
is_addon boolean If ``true``, items within this category are not on sale
on their own but the category provides a source for
defining add-ons for other products.
cross_selling_mode string If ``null``, cross-selling is disabled for this category.
If ``"only"``, it is only visible in the cross-selling
step.
If ``"both"``, it is visible on the normal index page
as well.
Only available if ``is_addon`` is ``false``.
cross_selling_condition string Only relevant if ``cross_selling_mode`` is not ``null``.
If ``"always"``, always show in cross-selling step.
If ``"products"``, only show if the cart contains one of
the products listed in ``cross_selling_match_products``.
If ``"discounts"``, only show products that qualify for
a discount according to discount rules.
cross_selling_match_products list of integer Only relevant if ``cross_selling_condition`` is
``"products"``. Internal ID of the items of which at
least one needs to be in the cart for this category to
be shown.
===================================== ========================== =======================================================
@@ -60,7 +76,10 @@ Endpoints
"internal_name": "",
"description": {"en": "Tickets are what you need to get in."},
"position": 1,
"is_addon": false
"is_addon": false,
"cross_selling_mode": null,
"cross_selling_condition": null,
"cross_selling_match_products": []
}
]
}
@@ -102,7 +121,10 @@ Endpoints
"internal_name": "",
"description": {"en": "Tickets are what you need to get in."},
"position": 1,
"is_addon": false
"is_addon": false,
"cross_selling_mode": null,
"cross_selling_condition": null,
"cross_selling_match_products": []
}
:param organizer: The ``slug`` field of the organizer to fetch
@@ -130,7 +152,10 @@ Endpoints
"internal_name": "",
"description": {"en": "Tickets are what you need to get in."},
"position": 1,
"is_addon": false
"is_addon": false,
"cross_selling_mode": null,
"cross_selling_condition": null,
"cross_selling_match_products": []
}
**Example response**:
@@ -147,7 +172,10 @@ Endpoints
"internal_name": "",
"description": {"en": "Tickets are what you need to get in."},
"position": 1,
"is_addon": false
"is_addon": false,
"cross_selling_mode": null,
"cross_selling_condition": null,
"cross_selling_match_products": []
}
:param organizer: The ``slug`` field of the organizer of the event to create a category for
@@ -193,7 +221,10 @@ Endpoints
"internal_name": "",
"description": {"en": "Tickets are what you need to get in."},
"position": 1,
"is_addon": true
"is_addon": true,
"cross_selling_mode": null,
"cross_selling_condition": null,
"cross_selling_match_products": []
}
:param organizer: The ``slug`` field of the organizer to modify
+2 -1
View File
@@ -203,7 +203,8 @@ checkins list of objects List of **succe
├ datetime datetime Time of check-in
├ type string Type of scan (defaults to ``entry``)
├ gate integer Internal ID of the gate. Can be ``null``.
├ device integer Internal ID of the device. Can be ``null``.
├ device integer Internal ID of the device. Can be ``null``. **Deprecated**, since this ID is not otherwise used in the API and is therefore not very useful.
├ device_id integer Attribute ``device_id`` of the device. Can be ``null``.
└ auto_checked_in boolean Indicates if this check-in been performed automatically by the system
downloads list of objects List of ticket download options
├ output string Ticket output provider (e.g. ``pdf``, ``passbook``)
+3 -2
View File
@@ -20,8 +20,9 @@ internal_name string An optional nam
rate decimal (string) Tax rate in percent
price_includes_tax boolean If ``true`` (default), tax is assumed to be included in
the specified product price
eu_reverse_charge boolean If ``true``, EU reverse charge rules are applied. Will
be ignored if custom rules are set.
eu_reverse_charge boolean **DEPRECATED**. If ``true``, EU reverse charge rules
are applied. Will be ignored if custom rules are set.
Use custom rules instead.
home_country string Merchant country (required for reverse charge), can be
``null`` or empty string
keep_gross_if_rate_changes boolean If ``true``, changes of the tax rate based on custom
+1 -1
View File
@@ -175,7 +175,7 @@ without any special behavior.
Connecting SSO providers (pretix as the SSO client)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
To connect an external application as a SSO client, go to "Customer accounts" → "SSO providers" → "Create a new SSO provider"
To connect an external application as a SSO provider, go to "Customer accounts" → "SSO providers" → "Create a new SSO provider"
in your organizer account.
.. thumbnail:: ../../screens/organizer/customer_ssoprovider_add.png
+5 -5
View File
@@ -36,7 +36,7 @@ dependencies = [
"css-inline==0.14.*",
"defusedcsv>=1.1.0",
"Django[argon2]==4.2.*,>=4.2.15",
"django-bootstrap3==24.2",
"django-bootstrap3==24.3",
"django-compressor==4.5.1",
"django-countries==7.6.*",
"django-filter==24.3",
@@ -76,12 +76,12 @@ dependencies = [
"phonenumberslite==8.13.*",
"Pillow==10.4.*",
"pretix-plugin-build",
"protobuf==5.27.*",
"protobuf==5.28.*",
"psycopg2-binary",
"pycountry",
"pycparser==2.22",
"pycryptodome==3.20.*",
"pypdf==4.3.*",
"pypdf==5.0.*",
"python-bidi==0.6.*", # Support for Arabic in reportlab
"python-dateutil==2.9.*",
"pytz",
@@ -91,7 +91,7 @@ dependencies = [
"redis==5.0.*",
"reportlab==4.2.*",
"requests==2.31.*",
"sentry-sdk==2.13.*",
"sentry-sdk==2.14.*",
"sepaxml==2.6.*",
"slimit",
"stripe==7.9.*",
@@ -111,7 +111,7 @@ dev = [
"aiohttp==3.10.*",
"coverage",
"coveralls",
"fakeredis==2.23.*",
"fakeredis==2.24.*",
"flake8==7.1.*",
"freezegun",
"isort==5.13.*",
+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__ = "2024.8.0.dev0"
__version__ = "2024.10.0.dev0"
+1
View File
@@ -80,6 +80,7 @@ ALL_LANGUAGES = [
('de', _('German')),
('de-informal', _('German (informal)')),
('ar', _('Arabic')),
('eu', _('Basque')),
('ca', _('Catalan')),
('zh-hans', _('Chinese (simplified)')),
('zh-hant', _('Chinese (traditional)')),
+1
View File
@@ -896,6 +896,7 @@ class DeviceEventSettingsSerializer(EventSettingsSerializer):
'locale',
'last_order_modification_date',
'show_quota_left',
'show_dates_on_frontpage',
'max_items_per_order',
'attendee_names_asked',
'attendee_names_required',
+16 -1
View File
@@ -441,7 +441,22 @@ class ItemCategorySerializer(I18nAwareModelSerializer):
class Meta:
model = ItemCategory
fields = ('id', 'name', 'internal_name', 'description', 'position', 'is_addon')
fields = (
'id', 'name', 'internal_name', 'description', 'position',
'is_addon', 'cross_selling_mode',
'cross_selling_condition', 'cross_selling_match_products'
)
def validate(self, data):
data = super().validate(data)
full_data = self.to_internal_value(self.to_representation(self.instance)) if self.instance else {}
full_data.update(data)
if full_data.get('is_addon') and full_data.get('cross_selling_mode'):
raise ValidationError('is_addon and cross_selling_mode are mutually exclusive')
return data
class QuestionOptionSerializer(I18nAwareModelSerializer):
+7 -1
View File
@@ -273,9 +273,15 @@ class AnswerSerializer(I18nAwareModelSerializer):
class CheckinSerializer(I18nAwareModelSerializer):
device_id = serializers.SlugRelatedField(
source='device',
slug_field='device_id',
read_only=True,
)
class Meta:
model = Checkin
fields = ('id', 'datetime', 'list', 'auto_checked_in', 'gate', 'device', 'type')
fields = ('id', 'datetime', 'list', 'auto_checked_in', 'gate', 'device', 'device_id', 'type')
class FailedCheckinSerializer(I18nAwareModelSerializer):
+1 -1
View File
@@ -377,7 +377,7 @@ def _checkin_list_position_queryset(checkinlists, ignore_status=False, ignore_pr
Prefetch(
'positions',
OrderPosition.objects.prefetch_related(
Prefetch('checkins', queryset=Checkin.objects.all()),
Prefetch('checkins', queryset=Checkin.objects.select_related('device')),
'item', 'variation', 'answers', 'answers__options', 'answers__question',
)
)
+1 -1
View File
@@ -78,7 +78,7 @@ class ReusableMediaViewSet(viewsets.ModelViewSet):
queryset=OrderPosition.objects.select_related(
'order', 'order__event', 'order__event__organizer', 'seat',
).prefetch_related(
Prefetch('checkins', queryset=Checkin.objects.all()),
Prefetch('checkins', queryset=Checkin.objects.select_related('device')),
'answers', 'answers__options', 'answers__question',
)
),
+5 -5
View File
@@ -258,7 +258,7 @@ class OrderViewSetMixin:
return Prefetch(
'positions',
opq.all().prefetch_related(
Prefetch('checkins', queryset=Checkin.objects.all()),
Prefetch('checkins', queryset=Checkin.objects.select_related('device')),
Prefetch('item', queryset=self.request.event.items.prefetch_related(
Prefetch('meta_values', ItemMetaValue.objects.select_related('property'), to_attr='meta_values_cached')
)),
@@ -279,7 +279,7 @@ class OrderViewSetMixin:
return Prefetch(
'positions',
opq.all().prefetch_related(
Prefetch('checkins', queryset=Checkin.objects.all()),
Prefetch('checkins', queryset=Checkin.objects.select_related('device')),
'item', 'variation',
Prefetch('answers', queryset=QuestionAnswer.objects.prefetch_related('options', 'question').order_by('question__position')),
'seat',
@@ -1092,7 +1092,7 @@ class OrderPositionViewSet(viewsets.ModelViewSet):
'item_meta_properties',
)
qs = qs.prefetch_related(
Prefetch('checkins', queryset=Checkin.objects.all()),
Prefetch('checkins', queryset=Checkin.objects.select_related("device")),
Prefetch('item', queryset=self.request.event.items.prefetch_related(
Prefetch('meta_values', ItemMetaValue.objects.select_related('property'),
to_attr='meta_values_cached')
@@ -1111,7 +1111,7 @@ class OrderPositionViewSet(viewsets.ModelViewSet):
Prefetch(
'positions',
qs.prefetch_related(
Prefetch('checkins', queryset=Checkin.objects.all()),
Prefetch('checkins', queryset=Checkin.objects.select_related('device')),
Prefetch('item', queryset=self.request.event.items.prefetch_related(
Prefetch('meta_values', ItemMetaValue.objects.select_related('property'),
to_attr='meta_values_cached')
@@ -1135,7 +1135,7 @@ class OrderPositionViewSet(viewsets.ModelViewSet):
)
else:
qs = qs.prefetch_related(
Prefetch('checkins', queryset=Checkin.objects.all()),
Prefetch('checkins', queryset=Checkin.objects.select_related("device")),
'answers', 'answers__options', 'answers__question',
).select_related(
'item', 'order', 'order__event', 'order__event__organizer', 'seat'
+63 -1
View File
@@ -32,13 +32,16 @@
# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations under the License.
import string
from collections import OrderedDict
from importlib import import_module
from django import forms
from django.conf import settings
from django.contrib.auth import authenticate
from django.utils.translation import gettext_lazy as _
from django.contrib.auth.hashers import check_password, make_password
from django.core.exceptions import ValidationError
from django.utils.translation import gettext_lazy as _, ngettext
def get_auth_backends():
@@ -160,3 +163,62 @@ class NativeAuthBackend(BaseAuthBackend):
u = authenticate(request=request, email=form_data['email'].lower(), password=form_data['password'])
if u and u.auth_backend == self.identifier:
return u
class NumericAndAlphabeticPasswordValidator:
def validate(self, password, user=None):
has_numeric = any(c in string.digits for c in password)
has_alpha = any(c in string.ascii_letters for c in password)
if not has_numeric or not has_alpha:
raise ValidationError(
_(
"Your password must contain both numeric and alphabetic characters.",
),
code="password_numeric_and_alphabetic",
)
def get_help_text(self):
return _(
"Your password must contain both numeric and alphabetic characters.",
)
class HistoryPasswordValidator:
def __init__(self, history_length=4):
self.history_length = history_length
def validate(self, password, user=None):
from pretix.base.models import User
if not user or not user.pk or not isinstance(user, User):
return
for hp in user.historic_passwords.order_by("-created")[:self.history_length]:
if check_password(password, hp.password):
raise ValidationError(
ngettext(
"Your password may not be the same as your previous password.",
"Your password may not be the same as one of your %(history_length)s previous passwords.",
self.history_length,
),
code="password_history",
params={"history_length": self.history_length},
)
def get_help_text(self):
return ngettext(
"Your password may not be the same as your previous password.",
"Your password may not be the same as one of your %(history_length)s previous passwords.",
self.history_length,
) % {"history_length": self.history_length}
def password_changed(self, password, user=None):
if not user:
pass
user.historic_passwords.create(password=make_password(password))
user.historic_passwords.filter(
pk__in=user.historic_passwords.order_by("-created")[self.history_length:].values_list("pk", flat=True),
).delete()
+33 -1
View File
@@ -46,6 +46,8 @@ This module contains utilities for implementing OpenID Connect for customer auth
as well as an OpenID Provider (OP).
"""
pretix_token_endpoint_auth_methods = ['client_secret_basic', 'client_secret_post']
def _urljoin(base, path):
if not base.endswith("/"):
@@ -127,6 +129,16 @@ def oidc_validate_and_complete_config(config):
fields=", ".join(provider_config.get("claims_supported", []))
))
if "token_endpoint_auth_methods_supported" in provider_config:
token_endpoint_auth_methods_supported = provider_config.get("token_endpoint_auth_methods_supported",
["client_secret_basic"])
if not any(x in pretix_token_endpoint_auth_methods for x in token_endpoint_auth_methods_supported):
raise ValidationError(
_(f'No supported Token Endpoint Auth Methods supported: {token_endpoint_auth_methods_supported}').format(
token_endpoint_auth_methods_supported=", ".join(token_endpoint_auth_methods_supported)
)
)
config['provider_config'] = provider_config
return config
@@ -147,6 +159,18 @@ def oidc_authorize_url(provider, state, redirect_uri):
def oidc_validate_authorization(provider, code, redirect_uri):
endpoint = provider.configuration['provider_config']['token_endpoint']
# Wall of shame and RFC ignorant IDPs
if endpoint == 'https://www.linkedin.com/oauth/v2/accessToken':
token_endpoint_auth_method = 'client_secret_post'
else:
token_endpoint_auth_methods = provider.configuration['provider_config'].get(
'token_endpoint_auth_methods_supported', ['client_secret_basic']
)
token_endpoint_auth_method = [
x for x in pretix_token_endpoint_auth_methods if x in token_endpoint_auth_methods
][0]
params = {
# https://datatracker.ietf.org/doc/html/rfc6749#section-4.1.3
# https://openid.net/specs/openid-connect-core-1_0.html#TokenEndpoint
@@ -154,6 +178,11 @@ def oidc_validate_authorization(provider, code, redirect_uri):
'code': code,
'redirect_uri': redirect_uri,
}
if token_endpoint_auth_method == 'client_secret_post':
params['client_id'] = provider.configuration['client_id']
params['client_secret'] = provider.configuration['client_secret']
try:
resp = requests.post(
endpoint,
@@ -161,7 +190,10 @@ def oidc_validate_authorization(provider, code, redirect_uri):
headers={
'Accept': 'application/json',
},
auth=(provider.configuration['client_id'], provider.configuration['client_secret']),
auth=(
provider.configuration['client_id'],
provider.configuration['client_secret']
) if token_endpoint_auth_method == 'client_secret_basic' else None,
)
resp.raise_for_status()
data = resp.json()
@@ -50,6 +50,7 @@ class Command(BaseCommand):
def add_arguments(self, parser):
parser.add_argument('--tasks', action='store', type=str, help='Only execute the tasks with this name '
'(dotted path, comma separation)')
parser.add_argument('--list-tasks', action='store_true', help='Only list all tasks')
parser.add_argument('--exclude', action='store', type=str, help='Exclude the tasks with this name '
'(dotted path, comma separation)')
@@ -61,6 +62,9 @@ class Command(BaseCommand):
for receiver in periodic_task._live_receivers(self):
name = f'{receiver.__module__}.{receiver.__name__}'
if options['list_tasks']:
print(name)
continue
if options.get('tasks'):
if name not in options.get('tasks').split(','):
continue
@@ -0,0 +1,36 @@
# Generated by Django 4.2.15 on 2024-09-16 15:10
import django.db.models.deletion
from django.conf import settings
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("pretixbase", "0269_order_api_meta"),
]
operations = [
migrations.CreateModel(
name="HistoricPassword",
fields=[
(
"id",
models.BigAutoField(
auto_created=True, primary_key=True, serialize=False
),
),
("created", models.DateTimeField(auto_now_add=True)),
("password", models.CharField(max_length=128)),
(
"user",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="historic_passwords",
to=settings.AUTH_USER_MODEL,
),
),
],
),
]
@@ -0,0 +1,32 @@
# Generated by Django 4.2.11 on 2024-05-27 13:19
from django.db import migrations, models
import pretix.base.models.orders
class Migration(migrations.Migration):
dependencies = [
("pretixbase", "0270_historicpassword"),
]
operations = [
migrations.AddField(
model_name="itemcategory",
name="cross_selling_condition",
field=models.CharField(null=True, max_length=10),
),
migrations.AddField(
model_name="itemcategory",
name="cross_selling_mode",
field=models.CharField(null=True, max_length=5),
),
migrations.AddField(
model_name="itemcategory",
name="cross_selling_match_products",
field=models.ManyToManyField(
related_name="matched_by_cross_selling_categories", to="pretixbase.item"
),
),
]
+7 -1
View File
@@ -213,7 +213,13 @@ class DatetimeColumnMixin:
except (ValueError, TypeError):
pass
else:
raise ValidationError(_("Could not parse {value} as a date and time.").format(value=value))
try:
d = datetime.datetime.fromisoformat(value)
if not d.tzinfo:
d = d.replace(tzinfo=self.timezone)
return d
except (ValueError, TypeError):
raise ValidationError(_("Could not parse {value} as a date and time.").format(value=value))
class DecimalColumnMixin:
+20 -2
View File
@@ -40,8 +40,8 @@ from phonenumbers import SUPPORTED_REGIONS
from pretix.base.forms.questions import guess_country
from pretix.base.modelimport import (
DatetimeColumnMixin, DecimalColumnMixin, ImportColumn, SubeventColumnMixin,
i18n_flat,
BooleanColumnMixin, DatetimeColumnMixin, DecimalColumnMixin, ImportColumn,
SubeventColumnMixin, i18n_flat,
)
from pretix.base.models import (
Customer, ItemVariation, OrderPosition, Question, QuestionAnswer,
@@ -604,6 +604,22 @@ class Comment(ImportColumn):
order.comment = value or ''
class CheckinAttentionColumn(BooleanColumnMixin, ImportColumn):
identifier = 'checkin_attention'
verbose_name = gettext_lazy('Requires special attention')
def assign(self, value, order, position, invoice_address, **kwargs):
order.checkin_attention = value
class CheckinTextColumn(ImportColumn):
identifier = 'checkin_text'
verbose_name = gettext_lazy('Check-in text')
def assign(self, value, order, position, invoice_address, **kwargs):
order.checkin_text = value
class QuestionColumn(ImportColumn):
def __init__(self, event, q):
self.q = q
@@ -742,6 +758,8 @@ def get_order_import_columns(event):
ValidUntil(event),
Locale(event),
Saleschannel(event),
CheckinAttentionColumn(event),
CheckinTextColumn(event),
Expires(event),
Comment(event),
]
+6
View File
@@ -654,3 +654,9 @@ class WebAuthnDevice(Device):
@property
def webauthnpubkey(self):
return websafe_decode(self.pub_key)
class HistoricPassword(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE, related_name="historic_passwords")
created = models.DateTimeField(auto_now_add=True)
password = models.CharField(verbose_name=_("Password"), max_length=128)
+70 -31
View File
@@ -20,11 +20,11 @@
# <https://www.gnu.org/licenses/>.
#
from collections import defaultdict
from collections import defaultdict, namedtuple
from decimal import Decimal
from itertools import groupby
from math import ceil
from typing import Dict, Optional, Tuple
from math import ceil, inf
from typing import Dict
from django.core.exceptions import ValidationError
from django.core.validators import MinValueValidator
@@ -36,6 +36,8 @@ from django_scopes import ScopedManager
from pretix.base.decimal import round_decimal
from pretix.base.models.base import LoggedModel
PositionInfo = namedtuple('PositionInfo', ['item_id', 'subevent_id', 'line_price_gross', 'is_addon_to', 'voucher_discount'])
class Discount(LoggedModel):
SUBEVENT_MODE_MIXED = 'mixed'
@@ -245,22 +247,26 @@ class Discount(LoggedModel):
return False
return True
def _apply_min_value(self, positions, condition_idx_group, benefit_idx_group, result):
if self.condition_min_value and sum(positions[idx][2] for idx in condition_idx_group) < self.condition_min_value:
def _apply_min_value(self, positions, condition_idx_group, benefit_idx_group, result, collect_potential_discounts, subevent_id):
if self.condition_min_value and sum(positions[idx].line_price_gross for idx in condition_idx_group) < self.condition_min_value:
return
if self.condition_min_count or self.benefit_only_apply_to_cheapest_n_matches:
raise ValueError('Validation invariant violated.')
for idx in benefit_idx_group:
previous_price = positions[idx][2]
previous_price = positions[idx].line_price_gross
new_price = round_decimal(
previous_price * (Decimal('100.00') - self.benefit_discount_matching_percent) / Decimal('100.00'),
self.event.currency,
)
result[idx] = new_price
def _apply_min_count(self, positions, condition_idx_group, benefit_idx_group, result):
if collect_potential_discounts is not None:
for idx in condition_idx_group:
collect_potential_discounts[idx] = [(self, inf, -1, subevent_id)]
def _apply_min_count(self, positions, condition_idx_group, benefit_idx_group, result, collect_potential_discounts, subevent_id):
if len(condition_idx_group) < self.condition_min_count:
return
@@ -268,23 +274,53 @@ class Discount(LoggedModel):
raise ValueError('Validation invariant violated.')
if self.benefit_only_apply_to_cheapest_n_matches:
if not self.condition_min_count:
raise ValueError('Validation invariant violated.')
condition_idx_group = sorted(condition_idx_group, key=lambda idx: (positions[idx][2], -idx)) # sort by line_price
benefit_idx_group = sorted(benefit_idx_group, key=lambda idx: (positions[idx][2], -idx)) # sort by line_price
# sort by line_price
condition_idx_group = sorted(condition_idx_group, key=lambda idx: (positions[idx].line_price_gross, -idx))
benefit_idx_group = sorted(benefit_idx_group, key=lambda idx: (positions[idx].line_price_gross, -idx))
# Prevent over-consuming of items, i.e. if our discount is "buy 2, get 1 free", we only
# want to match multiples of 3
n_groups = min(len(condition_idx_group) // self.condition_min_count, ceil(len(benefit_idx_group) / self.benefit_only_apply_to_cheapest_n_matches))
# how many discount applications are allowed according to condition products in cart
possible_applications_cond = len(condition_idx_group) // self.condition_min_count
# how many discount applications are possible according to benefitting products in cart
possible_applications_benefit = ceil(len(benefit_idx_group) / self.benefit_only_apply_to_cheapest_n_matches)
n_groups = min(possible_applications_cond, possible_applications_benefit)
consume_idx = condition_idx_group[:n_groups * self.condition_min_count]
benefit_idx = benefit_idx_group[:n_groups * self.benefit_only_apply_to_cheapest_n_matches]
if collect_potential_discounts is not None:
if n_groups * self.benefit_only_apply_to_cheapest_n_matches > len(benefit_idx_group):
# partially used discount ("for each 1 ticket you buy, get 50% on 2 t-shirts", cart content: 1 ticket
# but only 1 t-shirt) -> 1 shirt definitiv potential discount
for idx in consume_idx:
collect_potential_discounts[idx] = [
(self, n_groups * self.benefit_only_apply_to_cheapest_n_matches - len(benefit_idx_group), -1, subevent_id)
]
if possible_applications_cond * self.benefit_only_apply_to_cheapest_n_matches > len(benefit_idx_group):
# unused discount ("for each 1 ticket you buy, get 50% on 2 t-shirts", cart content: 1 ticket
# but 0 t-shirts) -> 2 shirt maybe potential discount (if the 1 ticket is not consumed by a later discount)
for i, idx in enumerate(condition_idx_group[
n_groups * self.condition_min_count:
possible_applications_cond * self.condition_min_count
]):
collect_potential_discounts[idx] += [
(self, self.benefit_only_apply_to_cheapest_n_matches, i // self.condition_min_count, subevent_id)
]
else:
consume_idx = condition_idx_group
benefit_idx = benefit_idx_group
if collect_potential_discounts is not None:
for idx in consume_idx:
collect_potential_discounts[idx] = [(self, inf, -1, subevent_id)]
for idx in benefit_idx:
previous_price = positions[idx][2]
previous_price = positions[idx].line_price_gross
new_price = round_decimal(
previous_price * (Decimal('100.00') - self.benefit_discount_matching_percent) / Decimal('100.00'),
self.event.currency,
@@ -292,15 +328,16 @@ class Discount(LoggedModel):
result[idx] = new_price
for idx in consume_idx:
result.setdefault(idx, positions[idx][2])
result.setdefault(idx, positions[idx].line_price_gross)
def apply(self, positions: Dict[int, Tuple[int, Optional[int], Decimal, bool, Decimal]]) -> Dict[int, Decimal]:
def apply(self, positions: Dict[int, PositionInfo],
collect_potential_discounts=None) -> Dict[int, Decimal]:
"""
Tries to apply this discount to a cart
:param positions: Dictionary mapping IDs to tuples of the form
``(item_id, subevent_id, line_price_gross, is_addon_to, voucher_discount)``.
:param positions: Dictionary mapping IDs to PositionInfo tuples.
Bundled positions may not be included.
:param collect_potential_discounts: For detailed description, see pretix.base.services.pricing.apply_discounts
:return: A dictionary mapping keys from the input dictionary to new prices. All positions
contained in this dictionary are considered "consumed" and should not be considered
@@ -342,13 +379,13 @@ class Discount(LoggedModel):
if self.subevent_mode == self.SUBEVENT_MODE_MIXED: # also applies to non-series events
if self.condition_min_count:
self._apply_min_count(positions, condition_candidates, benefit_candidates, result)
self._apply_min_count(positions, condition_candidates, benefit_candidates, result, collect_potential_discounts, None)
else:
self._apply_min_value(positions, condition_candidates, benefit_candidates, result)
self._apply_min_value(positions, condition_candidates, benefit_candidates, result, collect_potential_discounts, None)
elif self.subevent_mode == self.SUBEVENT_MODE_SAME:
def key(idx):
return positions[idx][1] or 0 # subevent_id
return positions[idx].subevent_id or 0
# Build groups of candidates with the same subevent, then apply our regular algorithm
# to each group
@@ -357,11 +394,11 @@ class Discount(LoggedModel):
candidate_groups = [(k, list(g)) for k, g in _groups]
for subevent_id, g in candidate_groups:
benefit_g = [idx for idx in benefit_candidates if positions[idx][1] == subevent_id]
benefit_g = [idx for idx in benefit_candidates if positions[idx].subevent_id == subevent_id]
if self.condition_min_count:
self._apply_min_count(positions, g, benefit_g, result)
self._apply_min_count(positions, g, benefit_g, result, collect_potential_discounts, subevent_id)
else:
self._apply_min_value(positions, g, benefit_g, result)
self._apply_min_value(positions, g, benefit_g, result, collect_potential_discounts, subevent_id)
elif self.subevent_mode == self.SUBEVENT_MODE_DISTINCT:
if self.condition_min_value or not self.benefit_same_products:
@@ -377,9 +414,9 @@ class Discount(LoggedModel):
# Build a list of subevent IDs in descending order of frequency
subevent_to_idx = defaultdict(list)
for idx, p in positions.items():
subevent_to_idx[p[1]].append(idx)
subevent_to_idx[p.subevent_id].append(idx)
for v in subevent_to_idx.values():
v.sort(key=lambda idx: positions[idx][2])
v.sort(key=lambda idx: positions[idx].line_price_gross)
subevent_order = sorted(list(subevent_to_idx.keys()), key=lambda s: len(subevent_to_idx[s]), reverse=True)
# Build groups of exactly condition_min_count distinct subevents
@@ -394,7 +431,7 @@ class Discount(LoggedModel):
l = [ll for ll in l if ll in condition_candidates and ll not in current_group]
if cardinality and len(l) != cardinality:
continue
if se not in {positions[idx][1] for idx in current_group}:
if se not in {positions[idx].subevent_id for idx in current_group}:
candidates += l
cardinality = len(l)
@@ -403,7 +440,7 @@ class Discount(LoggedModel):
# Sort the list by prices, then pick one. For "buy 2 get 1 free" we apply a "pick 1 from the start
# and 2 from the end" scheme to optimize price distribution among groups
candidates = sorted(candidates, key=lambda idx: positions[idx][2])
candidates = sorted(candidates, key=lambda idx: positions[idx].line_price_gross)
if len(current_group) < (self.benefit_only_apply_to_cheapest_n_matches or 0):
candidate = candidates[0]
else:
@@ -415,14 +452,14 @@ class Discount(LoggedModel):
if len(current_group) >= max(self.condition_min_count, 1):
candidate_groups.append(current_group)
for c in current_group:
subevent_to_idx[positions[c][1]].remove(c)
subevent_to_idx[positions[c].subevent_id].remove(c)
current_group = []
# Distribute "leftovers"
for se in subevent_order:
if subevent_to_idx[se]:
for group in candidate_groups:
if se not in {positions[idx][1] for idx in group}:
if se not in {positions[idx].subevent_id for idx in group}:
group.append(subevent_to_idx[se].pop())
if not subevent_to_idx[se]:
break
@@ -432,6 +469,8 @@ class Discount(LoggedModel):
positions,
[idx for idx in g if idx in condition_candidates],
[idx for idx in g if idx in benefit_candidates],
result
result,
None,
None
)
return result
+9 -9
View File
@@ -60,7 +60,6 @@ from django.urls import reverse
from django.utils.crypto import get_random_string
from django.utils.formats import date_format
from django.utils.functional import cached_property
from django.utils.html import format_html
from django.utils.timezone import make_aware, now
from django.utils.translation import gettext, gettext_lazy as _
from django_scopes import ScopedManager, scopes_disabled
@@ -180,14 +179,10 @@ class EventMixin:
"""
tz = tz or self.timezone
if (not self.settings.show_date_to and not force_show_end) or not self.date_to:
if as_html:
return format_html(
"<time datetime=\"{}\">{}</time>",
_date(self.date_from.astimezone(tz), "Y-m-d"),
_date(self.date_from.astimezone(tz), "DATE_FORMAT"),
)
return _date(self.date_from.astimezone(tz), "DATE_FORMAT")
return daterange(self.date_from.astimezone(tz), self.date_to.astimezone(tz), as_html)
df, dt = self.date_from, self.date_from
else:
df, dt = self.date_from, self.date_to
return daterange(df.astimezone(tz), dt.astimezone(tz), as_html)
def get_date_range_display_as_html(self, tz=None, force_show_end=False) -> str:
return self.get_date_range_display(tz, force_show_end, as_html=True)
@@ -875,10 +870,12 @@ class Event(EventMixin, LoggedModel):
for i in Item.objects.filter(event=other).prefetch_related(
'variations', 'limit_sales_channels', 'require_membership_types',
'variations__limit_sales_channels', 'variations__require_membership_types',
'matched_by_cross_selling_categories',
):
vars = list(i.variations.all())
require_membership_types = list(i.require_membership_types.all())
limit_sales_channels = list(i.limit_sales_channels.all())
matched_by_cross_selling_categories = list(i.matched_by_cross_selling_categories.all())
item_map[i.pk] = i
i.pk = None
i.event = self
@@ -916,6 +913,9 @@ class Event(EventMixin, LoggedModel):
if not v.all_sales_channels:
v.limit_sales_channels.set(self.organizer.sales_channels.filter(identifier__in=[s.identifier for s in limit_sales_channels]))
if matched_by_cross_selling_categories:
i.matched_by_cross_selling_categories.set([category_map[c.pk] for c in matched_by_cross_selling_categories])
for i in self.items.filter(hidden_if_item_available__isnull=False):
i.hidden_if_item_available = item_map[i.hidden_if_item_available_id]
i.save()
+53 -13
View File
@@ -63,14 +63,13 @@ from django_countries.fields import Country
from django_scopes import ScopedManager
from i18nfield.fields import I18nCharField, I18nTextField
from pretix.base.media import MEDIA_TYPES
from pretix.base.models import Event, SubEvent
from pretix.base.models.base import LoggedModel
from pretix.base.models.fields import MultiStringField
from pretix.base.models.tax import TaxedPrice
from pretix.base.timemachine import time_machine_now
from ...helpers.images import ImageSizeValidator
from ..media import MEDIA_TYPES
from .event import Event, SubEvent
from pretix.helpers.images import ImageSizeValidator
class ItemCategory(LoggedModel):
@@ -111,6 +110,33 @@ class ItemCategory(LoggedModel):
'only be bought in combination with a product that has this category configured as a possible '
'source for add-ons.')
)
CROSS_SELLING_MODES = (
(None, _('Normal category')),
('both', _('Normal + cross-selling category')),
('only', _('Cross-selling category')),
)
cross_selling_mode = models.CharField(
choices=CROSS_SELLING_MODES,
null=True,
max_length=5
)
CROSS_SELLING_CONDITION = (
('always', _('Always show in cross-selling step')),
('discounts', _('Only show products that qualify for a discount according to discount rules')),
('products', _('Only show if the cart contains one of the following products')),
)
cross_selling_condition = models.CharField(
verbose_name=_("Cross-selling condition"),
choices=CROSS_SELLING_CONDITION,
null=True,
max_length=10,
)
cross_selling_match_products = models.ManyToManyField(
'pretixbase.Item',
blank=True,
verbose_name=_("Cross-selling condition products"),
related_name="matched_by_cross_selling_categories",
)
class Meta:
verbose_name = _("Product category")
@@ -119,19 +145,31 @@ class ItemCategory(LoggedModel):
def __str__(self):
name = self.internal_name or self.name
if self.is_addon:
return _('{category} (Add-On products)').format(category=str(name))
category_type = self.get_category_type_display()
if category_type:
return _('{category} ({category_type})').format(category=str(name), category_type=category_type)
return str(name)
def get_category_type_display(self):
if self.is_addon:
return _('Add-On products')
return _('Add-on category')
elif self.cross_selling_mode:
return self.get_cross_selling_mode_display()
else:
return None
@property
def category_type(self):
return 'addon' if self.is_addon else 'normal'
return 'addon' if self.is_addon else self.cross_selling_mode or 'normal'
@category_type.setter
def category_type(self, new_value):
if new_value == 'addon':
self.is_addon = True
self.cross_selling_mode = None
else:
self.is_addon = False
self.cross_selling_mode = None if new_value == 'normal' else new_value
def delete(self, *args, **kwargs):
super().delete(*args, **kwargs)
@@ -270,7 +308,7 @@ class SubEventItemVariation(models.Model):
return True
def filter_available(qs, channel='web', voucher=None, allow_addons=False):
def filter_available(qs, channel='web', voucher=None, allow_addons=False, allow_cross_sell=False):
# Channel can currently be a SalesChannel or a str, since we need that compatibility, but a SalesChannel
# makes the query SIGNIFICANTLY faster
from .organizer import SalesChannel
@@ -291,6 +329,8 @@ def filter_available(qs, channel='web', voucher=None, allow_addons=False):
if not allow_addons:
q &= Q(Q(category__isnull=True) | Q(category__is_addon=False))
if not allow_cross_sell:
q &= Q(Q(category__isnull=True) | ~Q(category__cross_selling_mode='only'))
if voucher:
if voucher.item_id:
@@ -304,8 +344,8 @@ def filter_available(qs, channel='web', voucher=None, allow_addons=False):
class ItemQuerySet(models.QuerySet):
def filter_available(self, channel='web', voucher=None, allow_addons=False):
return filter_available(self, channel, voucher, allow_addons)
def filter_available(self, channel='web', voucher=None, allow_addons=False, allow_cross_sell=False):
return filter_available(self, channel, voucher, allow_addons, allow_cross_sell)
class ItemQuerySetManager(ScopedManager(organizer='event__organizer').__class__):
@@ -313,8 +353,8 @@ class ItemQuerySetManager(ScopedManager(organizer='event__organizer').__class__)
super().__init__()
self._queryset_class = ItemQuerySet
def filter_available(self, channel='web', voucher=None, allow_addons=False):
return filter_available(self.get_queryset(), channel, voucher, allow_addons)
def filter_available(self, channel='web', voucher=None, allow_addons=False, allow_cross_sell=False):
return filter_available(self.get_queryset(), channel, voucher, allow_addons, allow_cross_sell)
class Item(LoggedModel):
+8
View File
@@ -2835,6 +2835,14 @@ class OrderPosition(AbstractPosition):
(self.order.event.settings.change_allow_user_addons and ItemAddOn.objects.filter(base_item_id__in=[op.item_id for op in positions]).exists())
)
@property
def code(self):
"""
A ticket code which is unique among all events of a single organizer,
built by the order code and the position number.
"""
return '{order_code}-{position}'.format(order_code=self.order.code, position=self.positionid)
class Transaction(models.Model):
"""
+15 -5
View File
@@ -29,6 +29,8 @@ from django.core.validators import MaxValueValidator, MinValueValidator
from django.db import models
from django.utils.deconstruct import deconstructible
from django.utils.formats import localize
from django.utils.functional import lazy
from django.utils.html import format_html
from django.utils.translation import gettext_lazy as _, pgettext
from i18nfield.fields import I18nCharField
from i18nfield.strings import LazyI18nString
@@ -120,6 +122,8 @@ EU_CURRENCIES = {
}
VAT_ID_COUNTRIES = EU_COUNTRIES | {'CH', 'NO'}
format_html_lazy = lazy(format_html, str)
def is_eu_country(cc):
cc = str(cc)
@@ -193,11 +197,17 @@ class TaxRule(LoggedModel):
eu_reverse_charge = models.BooleanField(
verbose_name=_("Use EU reverse charge taxation rules"),
default=False,
help_text=_("Not recommended. Most events will NOT be qualified for reverse charge since the place of "
"taxation is the location of the event. This option disables charging VAT for all customers "
"outside the EU and for business customers in different EU countries who entered a valid EU VAT "
"ID. Only enable this option after consulting a tax counsel. No warranty given for correct tax "
"calculation. USE AT YOUR OWN RISK.")
help_text=format_html_lazy(
'<span class="label label-warning" data-toggle="tooltip" title="{}">{}</span> {}',
_('This feature will be removed in the future as it does not handle VAT for non-business customers in '
'other EU countries in a way that works for all organizers. Use custom rules instead.'),
_('DEPRECATED'),
_("Not recommended. Most events will NOT be qualified for reverse charge since the place of "
"taxation is the location of the event. This option disables charging VAT for all customers "
"outside the EU and for business customers in different EU countries who entered a valid EU VAT "
"ID. Only enable this option after consulting a tax counsel. No warranty given for correct tax "
"calculation. USE AT YOUR OWN RISK.")
),
)
home_country = FastCountryField(
verbose_name=_('Merchant country'),
+11 -9
View File
@@ -1542,10 +1542,9 @@ def add_items_to_cart(self, event: int, items: List[dict], cart_id: str=None, lo
@app.task(base=ProfiledEventTask, bind=True, max_retries=5, default_retry_delay=1, throws=(CartError,))
def apply_voucher(self, event: Event, voucher: str, cart_id: str=None, locale='en', sales_channel='web', override_now_dt: datetime=None) -> None:
"""
Removes a list of items from a user's cart.
:param event: The event ID in question
:param voucher: A voucher code
:param session: Session ID of a guest
:param cart_id: The cart ID of the cart to modify
"""
with language(locale), time_machine_now_assigned(override_now_dt):
try:
@@ -1566,10 +1565,10 @@ def apply_voucher(self, event: Event, voucher: str, cart_id: str=None, locale='e
@app.task(base=ProfiledEventTask, bind=True, max_retries=5, default_retry_delay=1, throws=(CartError,))
def remove_cart_position(self, event: Event, position: int, cart_id: str=None, locale='en', sales_channel='web', override_now_dt: datetime=None) -> None:
"""
Removes a list of items from a user's cart.
Removes an item specified by its position ID from a user's cart.
:param event: The event ID in question
:param position: A cart position ID
:param session: Session ID of a guest
:param cart_id: The cart ID of the cart to modify
"""
with language(locale), time_machine_now_assigned(override_now_dt):
try:
@@ -1590,9 +1589,9 @@ def remove_cart_position(self, event: Event, position: int, cart_id: str=None, l
@app.task(base=ProfiledEventTask, bind=True, max_retries=5, default_retry_delay=1, throws=(CartError,))
def clear_cart(self, event: Event, cart_id: str=None, locale='en', sales_channel='web', override_now_dt: datetime=None) -> None:
"""
Removes a list of items from a user's cart.
Removes all items from a user's cart.
:param event: The event ID in question
:param session: Session ID of a guest
:param cart_id: The cart ID of the cart to modify
"""
with language(locale), time_machine_now_assigned(override_now_dt):
try:
@@ -1611,13 +1610,15 @@ def clear_cart(self, event: Event, cart_id: str=None, locale='en', sales_channel
@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], cart_id: str=None, locale='en',
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:
"""
Removes a list of items from a user's cart.
Assigns addons to eligible products in a user's cart, adding and removing the addon products as necessary to
ensure the requested addon state.
:param event: The event ID in question
:param addons: A list of dicts with the keys addon_to, item, variation
:param session: Session ID of a guest
:param add_to_cart_items: A list of dicts with the keys item, variation, count, custom_price, voucher, seat ID
:param cart_id: The cart ID of the cart to modify
"""
with language(locale), time_machine_now_assigned(override_now_dt):
ia = False
@@ -1635,6 +1636,7 @@ def set_cart_addons(self, event: Event, addons: List[dict], cart_id: str=None, l
try:
cm = CartManager(event=event, cart_id=cart_id, invoice_address=ia, sales_channel=sales_channel)
cm.set_addons(addons)
cm.add_new_items(add_to_cart_items)
cm.commit()
except LockTimeoutException:
self.retry()
+3 -2
View File
@@ -1182,10 +1182,11 @@ def process_exit_all(sender, **kwargs):
positions = cl.positions_inside_query(ignore_status=True, at_time=cl.exit_all_at)
for p in positions:
with scope(organizer=cl.event.organizer):
ci = Checkin.objects.create(
ci, created = Checkin.objects.get_or_create(
position=p, list=cl, auto_checked_in=True, type=Checkin.TYPE_EXIT, datetime=cl.exit_all_at
)
checkin_created.send(cl.event, checkin=ci)
if created:
checkin_created.send(cl.event, checkin=ci)
d = cl.exit_all_at.astimezone(cl.event.timezone)
if cl.event.settings.get(f'autocheckin_dst_hack_{cl.pk}'): # move time back if yesterday was DST switch
d -= timedelta(hours=1)
+232
View File
@@ -0,0 +1,232 @@
#
# 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 collections import defaultdict
from decimal import Decimal
from itertools import groupby
from math import inf
from typing import List
from django.utils.functional import cached_property
from pretix.base.models import CartPosition, ItemCategory, SalesChannel
from pretix.presale.views.event import get_grouped_items
class DummyCategory:
"""
Used to create fake category objects for displaying the same cross-selling category multiple times,
once for each subevent
"""
def __init__(self, category: ItemCategory, subevent):
self.id = category.id
self.name = str(category.name)
self.subevent_name = str(subevent)
self.description = category.description
class CrossSellingService:
def __init__(self, event, sales_channel: SalesChannel, cartpositions: List[CartPosition], customer):
self.event = event
self.sales_channel = sales_channel
self.cartpositions = cartpositions
self.customer = customer
def get_data(self):
if self.event.has_subevents:
subevents = set(pos.subevent for pos in self.cartpositions)
result = (
(DummyCategory(category, subevent),
self._prepare_items(subevent, items_qs, discount_info),
f'subevent_{subevent.pk}_')
for subevent in subevents
for (category, items_qs, discount_info) in self._applicable_categories(subevent.pk)
)
else:
result = (
(category,
self._prepare_items(None, items_qs, discount_info),
'')
for (category, items_qs, discount_info) in self._applicable_categories(0)
)
result = [(category, items, form_prefix) for (category, items, form_prefix) in result if len(items) > 0]
for category, items, form_prefix in result:
category.category_has_discount = any(item.original_price for item in items)
return result
def _applicable_categories(self, subevent_id):
return [
(c, products_qs, discount_info) for (c, products_qs, discount_info) in
(
(c, *self._get_visible_items_for_category(subevent_id, c))
for c in self.event.categories.filter(cross_selling_mode__isnull=False).prefetch_related('items')
)
if products_qs is not None
]
def _get_visible_items_for_category(self, filter_subevent_id, category: ItemCategory):
"""
If this category should be visible in the cross-selling step for a given cart and sales_channel, this method
returns a queryset of the items that should be displayed, as well as a dict giving additional information on them.
:returns: (QuerySet<Item>, dict<(subevent_id, item_pk): (max_count, discount_rule)>)
max_count is `inf` if the item should not be limited
discount_rule is None if the item will not be discounted
"""
if category.cross_selling_mode is None:
return None, {}
if category.cross_selling_condition == 'always':
return category.items.all(), {}
if category.cross_selling_condition == 'products':
match = set(match.pk for match in category.cross_selling_match_products.only('pk')) # TODO prefetch this
return (category.items.all(), {}) if any(pos.item.pk in match for pos in self.cartpositions) else (None, {})
if category.cross_selling_condition == 'discounts':
my_item_pks = [item.id for item in category.items.all()]
potential_discount_items = {
item.pk: (max_count, discount_rule)
for subevent_id, item, max_count, discount_rule in self._potential_discounts_by_subevent_and_item_for_current_cart
if max_count > 0 and item.pk in my_item_pks and item.is_available() and (subevent_id == filter_subevent_id or subevent_id is None)
}
return category.items.filter(pk__in=potential_discount_items), potential_discount_items
@cached_property
def _potential_discounts_by_subevent_and_item_for_current_cart(self):
potential_discounts_by_cartpos = defaultdict(list)
from ..services.pricing import apply_discounts
self._discounted_prices = apply_discounts(
self.event,
self.sales_channel,
[
(cp.item_id, cp.subevent_id, cp.line_price_gross, bool(cp.addon_to), cp.is_bundled,
cp.listed_price - cp.price_after_voucher)
for cp in self.cartpositions
],
collect_potential_discounts=potential_discounts_by_cartpos
)
# flatten potential_discounts_by_cartpos (a dict of lists of potential discounts) into a set of potential discounts
# (which is technically stored as a dict, but we use it as an OrderedSet here)
potential_discount_set = dict.fromkeys(
info for lst in potential_discounts_by_cartpos.values() for info in lst)
# sum up the max_counts and pass them on (also pass on the discount_rules so we can calculate actual discounted prices later):
# group by benefit product
# - max_count for product: sum up max_counts
# - discount_rule for product: take first discount_rule
def discount_info(subevent_id, item, infos_for_item):
infos_for_item = list(infos_for_item)
return (
subevent_id,
item,
sum(max_count for (subevent_id, item, discount_rule, max_count, i) in infos_for_item),
next(discount_rule for (subevent_id, item, discount_rule, max_count, i) in infos_for_item),
)
return [
discount_info(subevent_id, item, infos_for_item) for (subevent_id, item), infos_for_item in
groupby(
sorted(
(
(subevent_id, item, discount_rule, max_count, i)
for (discount_rule, max_count, i, subevent_id) in potential_discount_set.keys()
for item in discount_rule.benefit_limit_products.all()
),
key=lambda tup: (tup[0], tup[1].pk)
),
lambda tup: (tup[0], tup[1]))
]
def _prepare_items(self, subevent, items_qs, discount_info):
items, _btn = get_grouped_items(
self.event,
subevent=subevent,
voucher=None,
channel=self.sales_channel,
base_qs=items_qs,
allow_addons=False,
allow_cross_sell=True,
memberships=(
self.customer.usable_memberships(
for_event=subevent or self.event,
testmode=self.event.testmode
)
if self.customer else None
),
)
new_items = list()
for item in items:
max_count = inf
if item.pk in discount_info:
(max_count, discount_rule) = discount_info[item.pk]
# only benefit_only_apply_to_cheapest_n_matches discounted items have a max_count, all others get 'inf'
if not max_count:
max_count = inf
# calculate discounted price
if discount_rule and discount_rule.benefit_discount_matching_percent > 0:
if not item.has_variations:
item.original_price = item.original_price or item.display_price
previous_price = item.display_price
new_price = (
previous_price * (
(Decimal('100.00') - discount_rule.benefit_discount_matching_percent) / Decimal('100.00'))
)
item.display_price = new_price
else:
# discounts always match "whole" items, not specific variations -> we apply the discount to all
# available variations of the item
for var in item.available_variations:
var.original_price = var.original_price or var.display_price
previous_price = var.display_price
new_price = (
previous_price * (
(Decimal('100.00') - discount_rule.benefit_discount_matching_percent) / Decimal('100.00'))
)
var.display_price = new_price
if not item.has_variations:
# reduce order_max by number of items already in cart (prevent recommending a product the user can't add anyway)
item.order_max = min(
item.order_max - sum(1 for pos in self.cartpositions if pos.item_id == item.pk),
max_count
)
if item.order_max > 0:
new_items.append(item)
else:
new_vars = list()
for var in item.available_variations:
# reduce order_max by number of items already in cart (prevent recommending a product the user can't add anyway)
var.order_max = min(
var.order_max - sum(1 for pos in self.cartpositions if pos.item_id == item.pk and pos.variation_id == var.pk),
max_count
)
if var.order_max > 0:
new_vars.append(var)
if len(new_vars):
item.available_variations = new_vars
new_items.append(item)
return new_items
+15 -5
View File
@@ -20,8 +20,9 @@
# <https://www.gnu.org/licenses/>.
#
import re
from collections import defaultdict
from decimal import Decimal
from typing import List, Optional, Tuple
from typing import List, Optional, Tuple, Union
from django import forms
from django.db.models import Q
@@ -31,6 +32,7 @@ from pretix.base.models import (
AbstractPosition, InvoiceAddress, Item, ItemAddOn, ItemVariation,
SalesChannel, Voucher,
)
from pretix.base.models.discount import Discount, PositionInfo
from pretix.base.models.event import Event, SubEvent
from pretix.base.models.tax import TAXED_ZERO, TaxedPrice, TaxRule
from pretix.base.timemachine import time_machine_now
@@ -155,14 +157,22 @@ def get_line_price(price_after_voucher: Decimal, custom_price_input: Decimal, cu
return price
def apply_discounts(event: Event, sales_channel: str,
positions: List[Tuple[int, Optional[int], Decimal, bool, bool]]) -> List[Decimal]:
def apply_discounts(event: Event, sales_channel: Union[str, SalesChannel],
positions: List[Tuple[int, Optional[int], Decimal, bool, bool, Decimal]],
collect_potential_discounts: Optional[defaultdict]=None) -> List[Tuple[Decimal, Optional[Discount]]]:
"""
Applies any dynamic discounts to a cart
:param event: Event the cart belongs to
:param sales_channel: Sales channel the cart was created with
:param positions: Tuple of the form ``(item_id, subevent_id, line_price_gross, is_addon_to, is_bundled, voucher_discount)``
:param collect_potential_discounts: If a `defaultdict(list)` is supplied, all discounts that could be applied to the cart
based on the "consumed" items, but lack matching "benefitting" items will be collected therein.
The dict will contain a mapping from index in the `positions` list of the item that could be consumed, to a list
of tuples describing the discounts that could be applied in the form `(discount, max_count, grouping_id)`.
`max_count` is either the maximum number of benefitting items that the discount would apply to, or `inf` if that number
is not limited. The `grouping_id` can be used to distinguish several occurrences of the same discount.
:return: A list of ``(new_gross_price, discount)`` tuples in the same order as the input
"""
if isinstance(sales_channel, SalesChannel):
@@ -177,10 +187,10 @@ def apply_discounts(event: Event, sales_channel: str,
).prefetch_related('condition_limit_products', 'benefit_limit_products').order_by('position', 'pk')
for discount in discount_qs:
result = discount.apply({
idx: (item_id, subevent_id, line_price_gross, is_addon_to, voucher_discount)
idx: PositionInfo(item_id, subevent_id, line_price_gross, is_addon_to, voucher_discount)
for idx, (item_id, subevent_id, line_price_gross, is_addon_to, is_bundled, voucher_discount) in enumerate(positions)
if not is_bundled and idx not in new_prices
})
}, collect_potential_discounts)
for k in result.keys():
result[k] = (result[k], discount)
new_prices.update(result)
+2 -1
View File
@@ -1295,7 +1295,8 @@ DEFAULTS = {
'form_kwargs': dict(
label=_("Show event times and dates on the ticket shop"),
help_text=_("If disabled, no date or time will be shown on the ticket shop's front page. This settings "
"does however not affect the display in other locations."),
"also affects a few other locations, however it should not be expected that the date of the "
"event is shown nowhere to users."),
)
},
'show_date_to': {
+13 -2
View File
@@ -30,7 +30,9 @@ from celery import states
from celery.result import AsyncResult
from django.conf import settings
from django.contrib import messages
from django.core.exceptions import PermissionDenied, ValidationError
from django.core.exceptions import (
BadRequest, PermissionDenied, ValidationError,
)
from django.core.files.uploadedfile import UploadedFile
from django.db import transaction
from django.http import HttpResponse, JsonResponse, QueryDict
@@ -131,6 +133,8 @@ class AsyncMixin:
return data
def get_result(self, request):
if not request.GET.get('async_id'):
raise BadRequest("No async_id given")
res = AsyncResult(request.GET.get('async_id'))
if 'ajax' in self.request.GET:
return JsonResponse(self._return_ajax_result(res, timeout=0.25))
@@ -140,7 +144,12 @@ class AsyncMixin:
return self.success(res.info)
else:
return self.error(res.info)
return render(request, 'pretixpresale/waiting.html')
state, info = res.state, res.info
return render(request, 'pretixpresale/waiting.html', {
'started': state in ('PROGRESS', 'STARTED'),
'percentage': info.get('value', 0) if isinstance(info, dict) else 0,
'steps': info.get('steps', []) if isinstance(info, dict) else None,
})
def success(self, value):
smes = self.get_success_message(value)
@@ -208,6 +217,8 @@ class AsyncAction(AsyncMixin):
def get(self, request, *args, **kwargs):
if 'async_id' in request.GET and settings.HAS_CELERY:
if not request.GET.get('async_id'):
raise BadRequest("No async_id given")
return self.get_result(request)
return self.http_method_not_allowed(request)
+2 -2
View File
@@ -1143,12 +1143,12 @@ class MailSettingsForm(FormPlaceholderMixin, SettingsForm):
widget=I18nTextInput,
)
mail_subject_order_incomplete_payment = I18nFormField(
label=_("Subject"),
label=_("Subject (if an incomplete payment was received)"),
required=False,
widget=I18nTextInput,
)
mail_text_order_incomplete_payment = I18nFormField(
label=_("Text"),
label=_("Text (if an incomplete payment was received)"),
required=False,
widget=I18nMarkdownTextarea,
help_text=_("This email only applies to payment methods that can receive incomplete payments, "
+59 -2
View File
@@ -40,7 +40,8 @@ from urllib.parse import urlencode
from django import forms
from django.conf import settings
from django.core.exceptions import ValidationError
from django.db.models import Max
from django.db.models import Max, Q
from django.forms import ChoiceField, RadioSelect
from django.forms.formsets import DELETION_FIELD_NAME
from django.urls import reverse
from django.utils.functional import cached_property
@@ -79,11 +80,67 @@ class CategoryForm(I18nModelForm):
'name',
'internal_name',
'description',
'is_addon'
'cross_selling_condition',
'cross_selling_match_products',
]
widgets = {
'description': I18nMarkdownTextarea,
'cross_selling_condition': RadioSelect,
}
field_classes = {
'cross_selling_match_products': SafeModelMultipleChoiceField,
}
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
tpl = '{} &nbsp; <span class="text-muted">{}</span>'
self.fields['category_type'] = ChoiceField(widget=RadioSelect, choices=(
('normal', mark_safe(tpl.format(
_('Normal category'),
_('Products in this category are regular products displayed on the front page.')
)),),
('addon', mark_safe(tpl.format(
_('Add-on product category'),
_('Products in this category are add-on products and can only be bought as add-ons.')
)),),
('only', mark_safe(tpl.format(
_('Cross-selling category'),
_('Products in this category are regular products, but are only shown in the cross-selling step, '
'according to the configuration below.')
)),),
('both', mark_safe(tpl.format(
_('Normal + cross-selling category'),
_('Products in this category are regular products displayed on the front page, but are additionally '
'shown in the cross-selling step, according to the configuration below.')
)),),
))
self.fields['category_type'].initial = self.instance.category_type
self.fields['cross_selling_condition'].widget.attrs['data-display-dependency'] = '#id_category_type_2,#id_category_type_3'
self.fields['cross_selling_condition'].widget.attrs['data-disable-dependent'] = 'true'
self.fields['cross_selling_condition'].widget.choices = self.fields['cross_selling_condition'].widget.choices[1:]
self.fields['cross_selling_condition'].required = False
self.fields['cross_selling_match_products'].widget = forms.CheckboxSelectMultiple(
attrs={
'class': 'scrolling-multiple-choice',
'data-display-dependency': '#id_cross_selling_condition_2'
}
)
self.fields['cross_selling_match_products'].queryset = self.event.items.filter(
# don't show products which are only visible in addon/cross-sell step themselves
Q(category__isnull=True) | Q(
Q(category__is_addon=False) & Q(Q(category__cross_selling_mode='both') | Q(category__cross_selling_mode__isnull=True))
)
)
def clean(self):
d = super().clean()
if d.get('category_type') == 'only' or d.get('category_type') == 'both':
if not d.get('cross_selling_condition'):
raise ValidationError({'cross_selling_condition': [_('This field is required')]})
self.instance.category_type = d.get('category_type')
return d
class QuestionForm(I18nModelForm):
@@ -41,7 +41,7 @@
{% bootstrap_field form.eu_reverse_charge layout="control" %}
{% bootstrap_field form.home_country layout="control" %}
{% bootstrap_field form.keep_gross_if_rate_changes layout="control" %}
<h3>{% trans "Custom taxation rules" %}</h3>
<h3>{% trans "Custom rules" %}</h3>
<div class="alert alert-warning">
{% blocktrans trimmed %}
These settings are intended for professional users with very specific taxation situations.
@@ -31,6 +31,7 @@
<thead>
<tr>
<th>{% trans "Product categories" %}</th>
<th>{% trans "Category type" %}</th>
<th class="action-col-2"></th>
</tr>
</thead>
@@ -40,6 +41,9 @@
<td>
<strong><a href="{% url "control:event.items.categories.edit" organizer=request.event.organizer.slug event=request.event.slug category=c.id %}">{{ c.internal_name|default:c.name }}</a></strong>
</td>
<td>
{{ c.get_category_type_display }}
</td>
<td class="text-right flip">
<button title="{% trans "Move up" %}" formaction="{% url "control:event.items.categories.up" organizer=request.event.organizer.slug event=request.event.slug category=c.id %}" class="btn btn-default btn-sm sortable-up"{% if forloop.counter0 == 0 and not page_obj.has_previous %} disabled{% endif %}><i class="fa fa-arrow-up"></i></button>
<button title="{% trans "Move down" %}" formaction="{% url "control:event.items.categories.down" organizer=request.event.organizer.slug event=request.event.slug category=c.id %}" class="btn btn-default btn-sm sortable-down"{% if forloop.revcounter0 == 0 and not page_obj.has_next %} disabled{% endif %}><i class="fa fa-arrow-down"></i></button>
@@ -16,7 +16,9 @@
{% bootstrap_field form.internal_name layout="control" %}
</div>
{% bootstrap_field form.description layout="control" %}
{% bootstrap_field form.is_addon layout="control" %}
{% bootstrap_field form.category_type layout="control" horizontal_field_class="big-radio-wrapper col-lg-9" %}
{% bootstrap_field form.cross_selling_condition layout="control" horizontal_field_class="col-lg-9" %}
{% bootstrap_field form.cross_selling_match_products layout="control" %}
</fieldset>
</div>
{% if category %}
@@ -133,7 +133,7 @@
{% endif %}
{{ i.default_price|money:request.event.currency }}
{% if i.original_price %}<strike class="text-muted">{{ i.original_price|money:request.event.currency }}</strike>{% endif %}
{% if i.tax_rule and i.default_price %}
{% if i.tax_rule %}
<br/>
<small class="text-muted">
{% if not i.tax_rule.price_includes_tax %}
@@ -102,16 +102,24 @@
</tr>
</thead>
<tbody>
{% for t in team.active_tokens %}
{% for t in tokens %}
<tr>
<td>
<td {% if not t.active %}class="text-muted"{% endif %}>
{% if not t.active %}
<del>
{% endif %}
{{ t.name }}
{% if not t.active %}
</del>
{% endif %}
</td>
<td class="text-right flip">
<button type="submit" name="remove-token" value="{{ t.id }}"
class="btn btn-danger btn-sm btn-block">
<i class="fa fa-times"></i> {% trans "Remove" %}
</button>
{% if t.active %}
<button type="submit" name="remove-token" value="{{ t.id }}"
class="btn btn-danger btn-sm btn-block">
<i class="fa fa-times"></i> {% trans "Remove" %}
</button>
{% endif %}
</td>
</tr>
{% endfor %}
+18 -7
View File
@@ -686,14 +686,24 @@ class TeamDeleteView(OrganizerDetailViewMixin, OrganizerPermissionRequiredMixin,
try:
self.object.log_action('pretix.team.deleted', user=self.request.user)
self.object.delete()
except ProtectedError:
messages.error(
self.request,
_(
'The team could not be deleted as some constraints (e.g. data created by '
'plug-ins) do not allow it.'
except ProtectedError as e:
is_logs = any(isinstance(e, LogEntry) for e in e.protected_objects)
if is_logs:
messages.error(
self.request,
_(
"The team could not be deleted because the team or one of its API tokens is part of "
"historical audit logs."
)
)
else:
messages.error(
self.request,
_(
'The team could not be deleted as some constraints (e.g. data created by '
'plug-ins) do not allow it.'
)
)
)
return redirect(success_url)
messages.success(request, _('The selected team has been deleted.'))
@@ -723,6 +733,7 @@ class TeamMemberView(OrganizerDetailViewMixin, OrganizerPermissionRequiredMixin,
ctx = super().get_context_data(**kwargs)
ctx['add_form'] = self.add_form
ctx['add_token_form'] = self.add_token_form
ctx['tokens'] = self.object.tokens.order_by("-active", "name", "pk")
return ctx
def _send_invite(self, instance):
+2 -2
View File
@@ -53,14 +53,14 @@ def daterange(df, dt, as_html=False):
if lng.startswith("de"):
if df.year == dt.year and df.month == dt.month and df.day == dt.day:
return format_html(base_format, _date(df, "j. F Y"))
return format_html(base_format, _date(df, "D, j. F Y"))
elif df.year == dt.year and df.month == dt.month:
return format_html(base_format, _date(df, "j."), "", _date(dt, "j. F Y"))
elif df.year == dt.year:
return format_html(base_format, _date(df, "j. F"), " ", _date(dt, "j. F Y"))
elif lng.startswith("en"):
if df.year == dt.year and df.month == dt.month and df.day == dt.day:
return format_html(base_format, _date(df, "N jS, Y"))
return format_html(base_format, _date(df, "D, N jS, Y"))
elif df.year == dt.year and df.month == dt.month:
return format_html(base_format, _date(df, "N jS"), " ", _date(dt, "jS, Y"))
elif df.year == dt.year:
File diff suppressed because it is too large Load Diff
+32 -28
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-07-26 07:19+0000\n"
"POT-Creation-Date: 2024-08-27 13:34+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -543,52 +543,56 @@ msgctxt "entry_status"
msgid "absent"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:72
#: pretix/static/pretixcontrol/js/ui/editor.js:171
msgid "Check-in QR"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:387
#: pretix/static/pretixcontrol/js/ui/editor.js:543
msgid "The PDF background file could not be loaded for the following reason:"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:656
#: pretix/static/pretixcontrol/js/ui/editor.js:894
msgid "Group of objects"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:661
msgid "Text object"
#: pretix/static/pretixcontrol/js/ui/editor.js:899
msgid "Text object (deprecated)"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:663
#: pretix/static/pretixcontrol/js/ui/editor.js:901
msgid "Text box"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:903
msgid "Barcode area"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:665
#: pretix/static/pretixcontrol/js/ui/editor.js:905
msgid "Image area"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:667
#: pretix/static/pretixcontrol/js/ui/editor.js:907
msgid "Powered by pretix"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:669
#: pretix/static/pretixcontrol/js/ui/editor.js:909
msgid "Object"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:673
#: pretix/static/pretixcontrol/js/ui/editor.js:913
msgid "Ticket design"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:972
#: pretix/static/pretixcontrol/js/ui/editor.js:1250
msgid "Saving failed."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:1041
#: pretix/static/pretixcontrol/js/ui/editor.js:1091
#: pretix/static/pretixcontrol/js/ui/editor.js:1319
#: pretix/static/pretixcontrol/js/ui/editor.js:1370
msgid "Error while uploading your PDF file, please try again."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:1074
#: pretix/static/pretixcontrol/js/ui/editor.js:1353
msgid "Do you really want to leave the editor without saving your changes?"
msgstr ""
@@ -604,54 +608,54 @@ msgstr ""
msgid "Unknown error."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:313
#: pretix/static/pretixcontrol/js/ui/main.js:318
msgid "Your color has great contrast and is very easy to read!"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:317
#: pretix/static/pretixcontrol/js/ui/main.js:322
msgid "Your color has decent contrast and is probably good-enough to read!"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:321
#: pretix/static/pretixcontrol/js/ui/main.js:326
msgid ""
"Your color has bad contrast for text on white background, please choose a "
"darker shade."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:475
#: pretix/static/pretixcontrol/js/ui/main.js:495
#: pretix/static/pretixcontrol/js/ui/main.js:491
#: pretix/static/pretixcontrol/js/ui/main.js:511
msgid "Search query"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:493
#: pretix/static/pretixcontrol/js/ui/main.js:509
msgid "All"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:494
#: pretix/static/pretixcontrol/js/ui/main.js:510
msgid "None"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:498
#: pretix/static/pretixcontrol/js/ui/main.js:514
msgid "Selected only"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:828
#: pretix/static/pretixcontrol/js/ui/main.js:847
msgid "Enter page number between 1 and %(max)s."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:831
#: pretix/static/pretixcontrol/js/ui/main.js:850
msgid "Invalid page number."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:989
#: pretix/static/pretixcontrol/js/ui/main.js:1008
msgid "Use a different name internally"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:1029
#: pretix/static/pretixcontrol/js/ui/main.js:1048
msgid "Click to close"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:1104
#: pretix/static/pretixcontrol/js/ui/main.js:1123
msgid "You have unsaved changes!"
msgstr ""
File diff suppressed because it is too large Load Diff
+36 -28
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-07-26 07:19+0000\n"
"POT-Creation-Date: 2024-08-27 13:34+0000\n"
"PO-Revision-Date: 2021-09-15 11:22+0000\n"
"Last-Translator: Mohamed Tawfiq <mtawfiq@wafyapp.com>\n"
"Language-Team: Arabic <https://translate.pretix.eu/projects/pretix/pretix-js/"
@@ -573,52 +573,60 @@ msgctxt "entry_status"
msgid "absent"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:72
#: pretix/static/pretixcontrol/js/ui/editor.js:171
msgid "Check-in QR"
msgstr "QR الدخول"
#: pretix/static/pretixcontrol/js/ui/editor.js:387
#: pretix/static/pretixcontrol/js/ui/editor.js:543
msgid "The PDF background file could not be loaded for the following reason:"
msgstr "لا يمكن تحميل ملف PDF الخلفية للأسباب التالية:"
#: pretix/static/pretixcontrol/js/ui/editor.js:656
#: pretix/static/pretixcontrol/js/ui/editor.js:894
msgid "Group of objects"
msgstr "مجموعة من العناصر"
#: pretix/static/pretixcontrol/js/ui/editor.js:661
msgid "Text object"
#: pretix/static/pretixcontrol/js/ui/editor.js:899
#, fuzzy
#| msgid "Text object"
msgid "Text object (deprecated)"
msgstr "عنصر نص"
#: pretix/static/pretixcontrol/js/ui/editor.js:663
#: pretix/static/pretixcontrol/js/ui/editor.js:901
#, fuzzy
#| msgid "Text object"
msgid "Text box"
msgstr "عنصر نص"
#: pretix/static/pretixcontrol/js/ui/editor.js:903
msgid "Barcode area"
msgstr "منطقة باركود"
#: pretix/static/pretixcontrol/js/ui/editor.js:665
#: pretix/static/pretixcontrol/js/ui/editor.js:905
msgid "Image area"
msgstr "منطقة صورة"
#: pretix/static/pretixcontrol/js/ui/editor.js:667
#: pretix/static/pretixcontrol/js/ui/editor.js:907
msgid "Powered by pretix"
msgstr "مدعوم من pretix"
#: pretix/static/pretixcontrol/js/ui/editor.js:669
#: pretix/static/pretixcontrol/js/ui/editor.js:909
msgid "Object"
msgstr "عنصر"
#: pretix/static/pretixcontrol/js/ui/editor.js:673
#: pretix/static/pretixcontrol/js/ui/editor.js:913
msgid "Ticket design"
msgstr "تصميم التذكرة"
#: pretix/static/pretixcontrol/js/ui/editor.js:972
#: pretix/static/pretixcontrol/js/ui/editor.js:1250
msgid "Saving failed."
msgstr "فشلت عملية الحفظ."
#: pretix/static/pretixcontrol/js/ui/editor.js:1041
#: pretix/static/pretixcontrol/js/ui/editor.js:1091
#: pretix/static/pretixcontrol/js/ui/editor.js:1319
#: pretix/static/pretixcontrol/js/ui/editor.js:1370
msgid "Error while uploading your PDF file, please try again."
msgstr "حصل خطأ أثناء رفع ملف PDF الخاص بك، يرجى المحاولة مرة أخرى."
#: pretix/static/pretixcontrol/js/ui/editor.js:1074
#: pretix/static/pretixcontrol/js/ui/editor.js:1353
msgid "Do you really want to leave the editor without saving your changes?"
msgstr "هل تريد أن تغادر المحرر دون حفظ التعديلات؟"
@@ -634,54 +642,54 @@ msgstr "توليد الرسائل …"
msgid "Unknown error."
msgstr "خطأ غير معروف."
#: pretix/static/pretixcontrol/js/ui/main.js:313
#: pretix/static/pretixcontrol/js/ui/main.js:318
msgid "Your color has great contrast and is very easy to read!"
msgstr "اللون يتمتع بتباين كبير وتسهل قراءته!"
#: pretix/static/pretixcontrol/js/ui/main.js:317
#: pretix/static/pretixcontrol/js/ui/main.js:322
msgid "Your color has decent contrast and is probably good-enough to read!"
msgstr "اللون يحظى بتباين معقول ويمكن أن يكون مناسب للقراءة!"
#: pretix/static/pretixcontrol/js/ui/main.js:321
#: pretix/static/pretixcontrol/js/ui/main.js:326
msgid ""
"Your color has bad contrast for text on white background, please choose a "
"darker shade."
msgstr "تباين اللون سيئ للخلفية البيضاء، الرجاء اختيار لون غامق."
#: pretix/static/pretixcontrol/js/ui/main.js:475
#: pretix/static/pretixcontrol/js/ui/main.js:495
#: pretix/static/pretixcontrol/js/ui/main.js:491
#: pretix/static/pretixcontrol/js/ui/main.js:511
msgid "Search query"
msgstr "البحث في الاستفسارات"
#: pretix/static/pretixcontrol/js/ui/main.js:493
#: pretix/static/pretixcontrol/js/ui/main.js:509
msgid "All"
msgstr "الكل"
#: pretix/static/pretixcontrol/js/ui/main.js:494
#: pretix/static/pretixcontrol/js/ui/main.js:510
msgid "None"
msgstr "لا شيء"
#: pretix/static/pretixcontrol/js/ui/main.js:498
#: pretix/static/pretixcontrol/js/ui/main.js:514
msgid "Selected only"
msgstr "المختارة فقط"
#: pretix/static/pretixcontrol/js/ui/main.js:828
#: pretix/static/pretixcontrol/js/ui/main.js:847
msgid "Enter page number between 1 and %(max)s."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:831
#: pretix/static/pretixcontrol/js/ui/main.js:850
msgid "Invalid page number."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:989
#: pretix/static/pretixcontrol/js/ui/main.js:1008
msgid "Use a different name internally"
msgstr "قم باستخدم اسم مختلف داخليا"
#: pretix/static/pretixcontrol/js/ui/main.js:1029
#: pretix/static/pretixcontrol/js/ui/main.js:1048
msgid "Click to close"
msgstr "اضغط لاغلاق الصفحة"
#: pretix/static/pretixcontrol/js/ui/main.js:1104
#: pretix/static/pretixcontrol/js/ui/main.js:1123
msgid "You have unsaved changes!"
msgstr "لم تقم بحفظ التعديلات!"
File diff suppressed because it is too large Load Diff
+32 -28
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-07-26 07:19+0000\n"
"POT-Creation-Date: 2024-08-27 13:34+0000\n"
"PO-Revision-Date: 2020-12-19 07:00+0000\n"
"Last-Translator: albert <albert.serra.monner@gmail.com>\n"
"Language-Team: Catalan <https://translate.pretix.eu/projects/pretix/pretix-"
@@ -544,52 +544,56 @@ msgctxt "entry_status"
msgid "absent"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:72
#: pretix/static/pretixcontrol/js/ui/editor.js:171
msgid "Check-in QR"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:387
#: pretix/static/pretixcontrol/js/ui/editor.js:543
msgid "The PDF background file could not be loaded for the following reason:"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:656
#: pretix/static/pretixcontrol/js/ui/editor.js:894
msgid "Group of objects"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:661
msgid "Text object"
#: pretix/static/pretixcontrol/js/ui/editor.js:899
msgid "Text object (deprecated)"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:663
#: pretix/static/pretixcontrol/js/ui/editor.js:901
msgid "Text box"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:903
msgid "Barcode area"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:665
#: pretix/static/pretixcontrol/js/ui/editor.js:905
msgid "Image area"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:667
#: pretix/static/pretixcontrol/js/ui/editor.js:907
msgid "Powered by pretix"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:669
#: pretix/static/pretixcontrol/js/ui/editor.js:909
msgid "Object"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:673
#: pretix/static/pretixcontrol/js/ui/editor.js:913
msgid "Ticket design"
msgstr "Disseny del tiquet"
#: pretix/static/pretixcontrol/js/ui/editor.js:972
#: pretix/static/pretixcontrol/js/ui/editor.js:1250
msgid "Saving failed."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:1041
#: pretix/static/pretixcontrol/js/ui/editor.js:1091
#: pretix/static/pretixcontrol/js/ui/editor.js:1319
#: pretix/static/pretixcontrol/js/ui/editor.js:1370
msgid "Error while uploading your PDF file, please try again."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:1074
#: pretix/static/pretixcontrol/js/ui/editor.js:1353
msgid "Do you really want to leave the editor without saving your changes?"
msgstr ""
@@ -605,54 +609,54 @@ msgstr ""
msgid "Unknown error."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:313
#: pretix/static/pretixcontrol/js/ui/main.js:318
msgid "Your color has great contrast and is very easy to read!"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:317
#: pretix/static/pretixcontrol/js/ui/main.js:322
msgid "Your color has decent contrast and is probably good-enough to read!"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:321
#: pretix/static/pretixcontrol/js/ui/main.js:326
msgid ""
"Your color has bad contrast for text on white background, please choose a "
"darker shade."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:475
#: pretix/static/pretixcontrol/js/ui/main.js:495
#: pretix/static/pretixcontrol/js/ui/main.js:491
#: pretix/static/pretixcontrol/js/ui/main.js:511
msgid "Search query"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:493
#: pretix/static/pretixcontrol/js/ui/main.js:509
msgid "All"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:494
#: pretix/static/pretixcontrol/js/ui/main.js:510
msgid "None"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:498
#: pretix/static/pretixcontrol/js/ui/main.js:514
msgid "Selected only"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:828
#: pretix/static/pretixcontrol/js/ui/main.js:847
msgid "Enter page number between 1 and %(max)s."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:831
#: pretix/static/pretixcontrol/js/ui/main.js:850
msgid "Invalid page number."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:989
#: pretix/static/pretixcontrol/js/ui/main.js:1008
msgid "Use a different name internally"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:1029
#: pretix/static/pretixcontrol/js/ui/main.js:1048
msgid "Click to close"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:1104
#: pretix/static/pretixcontrol/js/ui/main.js:1123
msgid "You have unsaved changes!"
msgstr ""
File diff suppressed because it is too large Load Diff
+36 -28
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-07-26 07:19+0000\n"
"POT-Creation-Date: 2024-08-27 13:34+0000\n"
"PO-Revision-Date: 2023-09-15 06:00+0000\n"
"Last-Translator: Michael <michael.happl@gmx.at>\n"
"Language-Team: Czech <https://translate.pretix.eu/projects/pretix/pretix-js/"
@@ -564,52 +564,60 @@ msgctxt "entry_status"
msgid "absent"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:72
#: pretix/static/pretixcontrol/js/ui/editor.js:171
msgid "Check-in QR"
msgstr "Check-in QR kód"
#: pretix/static/pretixcontrol/js/ui/editor.js:387
#: pretix/static/pretixcontrol/js/ui/editor.js:543
msgid "The PDF background file could not be loaded for the following reason:"
msgstr "Pozadí PDF nemohl být načten:"
#: pretix/static/pretixcontrol/js/ui/editor.js:656
#: pretix/static/pretixcontrol/js/ui/editor.js:894
msgid "Group of objects"
msgstr "Skupina objektů"
#: pretix/static/pretixcontrol/js/ui/editor.js:661
msgid "Text object"
#: pretix/static/pretixcontrol/js/ui/editor.js:899
#, fuzzy
#| msgid "Text object"
msgid "Text object (deprecated)"
msgstr "Textový objekt"
#: pretix/static/pretixcontrol/js/ui/editor.js:663
#: pretix/static/pretixcontrol/js/ui/editor.js:901
#, fuzzy
#| msgid "Text object"
msgid "Text box"
msgstr "Textový objekt"
#: pretix/static/pretixcontrol/js/ui/editor.js:903
msgid "Barcode area"
msgstr "Oblast s QR kódem"
#: pretix/static/pretixcontrol/js/ui/editor.js:665
#: pretix/static/pretixcontrol/js/ui/editor.js:905
msgid "Image area"
msgstr "Oblast obrazu"
#: pretix/static/pretixcontrol/js/ui/editor.js:667
#: pretix/static/pretixcontrol/js/ui/editor.js:907
msgid "Powered by pretix"
msgstr "Poháněno společností pretix"
#: pretix/static/pretixcontrol/js/ui/editor.js:669
#: pretix/static/pretixcontrol/js/ui/editor.js:909
msgid "Object"
msgstr "Objekt"
#: pretix/static/pretixcontrol/js/ui/editor.js:673
#: pretix/static/pretixcontrol/js/ui/editor.js:913
msgid "Ticket design"
msgstr "Design vstupenky"
#: pretix/static/pretixcontrol/js/ui/editor.js:972
#: pretix/static/pretixcontrol/js/ui/editor.js:1250
msgid "Saving failed."
msgstr "Uložení se nepodařilo."
#: pretix/static/pretixcontrol/js/ui/editor.js:1041
#: pretix/static/pretixcontrol/js/ui/editor.js:1091
#: pretix/static/pretixcontrol/js/ui/editor.js:1319
#: pretix/static/pretixcontrol/js/ui/editor.js:1370
msgid "Error while uploading your PDF file, please try again."
msgstr "Při nahrávání souboru PDF došlo k problému, zkuste to prosím znovu."
#: pretix/static/pretixcontrol/js/ui/editor.js:1074
#: pretix/static/pretixcontrol/js/ui/editor.js:1353
msgid "Do you really want to leave the editor without saving your changes?"
msgstr "Opravdu chcete opustit editor bez uložení změn?"
@@ -625,16 +633,16 @@ msgstr "Vytváření zpráv…"
msgid "Unknown error."
msgstr "Neznámá chyba."
#: pretix/static/pretixcontrol/js/ui/main.js:313
#: pretix/static/pretixcontrol/js/ui/main.js:318
msgid "Your color has great contrast and is very easy to read!"
msgstr "Tato barva má velmi dobrý kontrast a je velmi dobře čitelná!"
#: pretix/static/pretixcontrol/js/ui/main.js:317
#: pretix/static/pretixcontrol/js/ui/main.js:322
msgid "Your color has decent contrast and is probably good-enough to read!"
msgstr ""
"Tato barva má slušný kontrast a pravděpodobně je dostatečně dobře čitelná!"
#: pretix/static/pretixcontrol/js/ui/main.js:321
#: pretix/static/pretixcontrol/js/ui/main.js:326
msgid ""
"Your color has bad contrast for text on white background, please choose a "
"darker shade."
@@ -642,40 +650,40 @@ msgstr ""
"Tato barva je pro text na bílém pozadí špatně kontrastní, zvolte prosím "
"tmavší odstín."
#: pretix/static/pretixcontrol/js/ui/main.js:475
#: pretix/static/pretixcontrol/js/ui/main.js:495
#: pretix/static/pretixcontrol/js/ui/main.js:491
#: pretix/static/pretixcontrol/js/ui/main.js:511
msgid "Search query"
msgstr "Hledaný výraz"
#: pretix/static/pretixcontrol/js/ui/main.js:493
#: pretix/static/pretixcontrol/js/ui/main.js:509
msgid "All"
msgstr "Všechny"
#: pretix/static/pretixcontrol/js/ui/main.js:494
#: pretix/static/pretixcontrol/js/ui/main.js:510
msgid "None"
msgstr "Žádný"
#: pretix/static/pretixcontrol/js/ui/main.js:498
#: pretix/static/pretixcontrol/js/ui/main.js:514
msgid "Selected only"
msgstr "Pouze vybrané"
#: pretix/static/pretixcontrol/js/ui/main.js:828
#: pretix/static/pretixcontrol/js/ui/main.js:847
msgid "Enter page number between 1 and %(max)s."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:831
#: pretix/static/pretixcontrol/js/ui/main.js:850
msgid "Invalid page number."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:989
#: pretix/static/pretixcontrol/js/ui/main.js:1008
msgid "Use a different name internally"
msgstr "Interně používat jiný název"
#: pretix/static/pretixcontrol/js/ui/main.js:1029
#: pretix/static/pretixcontrol/js/ui/main.js:1048
msgid "Click to close"
msgstr "Kliknutím zavřete"
#: pretix/static/pretixcontrol/js/ui/main.js:1104
#: pretix/static/pretixcontrol/js/ui/main.js:1123
msgid "You have unsaved changes!"
msgstr "Máte neuložené změny!"
File diff suppressed because it is too large Load Diff
+32 -28
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-07-26 07:19+0000\n"
"POT-Creation-Date: 2024-08-27 13:34+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -544,52 +544,56 @@ msgctxt "entry_status"
msgid "absent"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:72
#: pretix/static/pretixcontrol/js/ui/editor.js:171
msgid "Check-in QR"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:387
#: pretix/static/pretixcontrol/js/ui/editor.js:543
msgid "The PDF background file could not be loaded for the following reason:"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:656
#: pretix/static/pretixcontrol/js/ui/editor.js:894
msgid "Group of objects"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:661
msgid "Text object"
#: pretix/static/pretixcontrol/js/ui/editor.js:899
msgid "Text object (deprecated)"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:663
#: pretix/static/pretixcontrol/js/ui/editor.js:901
msgid "Text box"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:903
msgid "Barcode area"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:665
#: pretix/static/pretixcontrol/js/ui/editor.js:905
msgid "Image area"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:667
#: pretix/static/pretixcontrol/js/ui/editor.js:907
msgid "Powered by pretix"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:669
#: pretix/static/pretixcontrol/js/ui/editor.js:909
msgid "Object"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:673
#: pretix/static/pretixcontrol/js/ui/editor.js:913
msgid "Ticket design"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:972
#: pretix/static/pretixcontrol/js/ui/editor.js:1250
msgid "Saving failed."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:1041
#: pretix/static/pretixcontrol/js/ui/editor.js:1091
#: pretix/static/pretixcontrol/js/ui/editor.js:1319
#: pretix/static/pretixcontrol/js/ui/editor.js:1370
msgid "Error while uploading your PDF file, please try again."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:1074
#: pretix/static/pretixcontrol/js/ui/editor.js:1353
msgid "Do you really want to leave the editor without saving your changes?"
msgstr ""
@@ -605,54 +609,54 @@ msgstr ""
msgid "Unknown error."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:313
#: pretix/static/pretixcontrol/js/ui/main.js:318
msgid "Your color has great contrast and is very easy to read!"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:317
#: pretix/static/pretixcontrol/js/ui/main.js:322
msgid "Your color has decent contrast and is probably good-enough to read!"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:321
#: pretix/static/pretixcontrol/js/ui/main.js:326
msgid ""
"Your color has bad contrast for text on white background, please choose a "
"darker shade."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:475
#: pretix/static/pretixcontrol/js/ui/main.js:495
#: pretix/static/pretixcontrol/js/ui/main.js:491
#: pretix/static/pretixcontrol/js/ui/main.js:511
msgid "Search query"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:493
#: pretix/static/pretixcontrol/js/ui/main.js:509
msgid "All"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:494
#: pretix/static/pretixcontrol/js/ui/main.js:510
msgid "None"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:498
#: pretix/static/pretixcontrol/js/ui/main.js:514
msgid "Selected only"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:828
#: pretix/static/pretixcontrol/js/ui/main.js:847
msgid "Enter page number between 1 and %(max)s."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:831
#: pretix/static/pretixcontrol/js/ui/main.js:850
msgid "Invalid page number."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:989
#: pretix/static/pretixcontrol/js/ui/main.js:1008
msgid "Use a different name internally"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:1029
#: pretix/static/pretixcontrol/js/ui/main.js:1048
msgid "Click to close"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:1104
#: pretix/static/pretixcontrol/js/ui/main.js:1123
msgid "You have unsaved changes!"
msgstr ""
File diff suppressed because it is too large Load Diff
+36 -28
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-07-26 07:19+0000\n"
"POT-Creation-Date: 2024-08-27 13:34+0000\n"
"PO-Revision-Date: 2024-07-10 15:00+0000\n"
"Last-Translator: Nikolai <nikolai@lengefeldt.de>\n"
"Language-Team: Danish <https://translate.pretix.eu/projects/pretix/pretix-js/"
@@ -584,54 +584,62 @@ msgctxt "entry_status"
msgid "absent"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:72
#: pretix/static/pretixcontrol/js/ui/editor.js:171
msgid "Check-in QR"
msgstr "Check-in QR"
#: pretix/static/pretixcontrol/js/ui/editor.js:387
#: pretix/static/pretixcontrol/js/ui/editor.js:543
msgid "The PDF background file could not be loaded for the following reason:"
msgstr "Baggrunds-pdf'en kunne ikke hentes af følgende grund:"
#: pretix/static/pretixcontrol/js/ui/editor.js:656
#: pretix/static/pretixcontrol/js/ui/editor.js:894
msgid "Group of objects"
msgstr "Gruppe af objekter"
#: pretix/static/pretixcontrol/js/ui/editor.js:661
msgid "Text object"
#: pretix/static/pretixcontrol/js/ui/editor.js:899
#, fuzzy
#| msgid "Text object"
msgid "Text object (deprecated)"
msgstr "Tekstobjekt"
#: pretix/static/pretixcontrol/js/ui/editor.js:663
#: pretix/static/pretixcontrol/js/ui/editor.js:901
#, fuzzy
#| msgid "Text object"
msgid "Text box"
msgstr "Tekstobjekt"
#: pretix/static/pretixcontrol/js/ui/editor.js:903
msgid "Barcode area"
msgstr "QR-kode-område"
#: pretix/static/pretixcontrol/js/ui/editor.js:665
#: pretix/static/pretixcontrol/js/ui/editor.js:905
#, fuzzy
#| msgid "Barcode area"
msgid "Image area"
msgstr "QR-kode-område"
#: pretix/static/pretixcontrol/js/ui/editor.js:667
#: pretix/static/pretixcontrol/js/ui/editor.js:907
msgid "Powered by pretix"
msgstr "Drevet af pretix"
#: pretix/static/pretixcontrol/js/ui/editor.js:669
#: pretix/static/pretixcontrol/js/ui/editor.js:909
msgid "Object"
msgstr "Objekt"
#: pretix/static/pretixcontrol/js/ui/editor.js:673
#: pretix/static/pretixcontrol/js/ui/editor.js:913
msgid "Ticket design"
msgstr "Billetdesign"
#: pretix/static/pretixcontrol/js/ui/editor.js:972
#: pretix/static/pretixcontrol/js/ui/editor.js:1250
msgid "Saving failed."
msgstr "Gem fejlede."
#: pretix/static/pretixcontrol/js/ui/editor.js:1041
#: pretix/static/pretixcontrol/js/ui/editor.js:1091
#: pretix/static/pretixcontrol/js/ui/editor.js:1319
#: pretix/static/pretixcontrol/js/ui/editor.js:1370
msgid "Error while uploading your PDF file, please try again."
msgstr "Fejl under upload af pdf. Prøv venligt igen."
#: pretix/static/pretixcontrol/js/ui/editor.js:1074
#: pretix/static/pretixcontrol/js/ui/editor.js:1353
msgid "Do you really want to leave the editor without saving your changes?"
msgstr ""
"Er du sikker på at du vil forlade editoren uden at gemme dine ændringer?"
@@ -648,54 +656,54 @@ msgstr "Opretter beskeder …"
msgid "Unknown error."
msgstr "Ukendt fejl."
#: pretix/static/pretixcontrol/js/ui/main.js:313
#: pretix/static/pretixcontrol/js/ui/main.js:318
msgid "Your color has great contrast and is very easy to read!"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:317
#: pretix/static/pretixcontrol/js/ui/main.js:322
msgid "Your color has decent contrast and is probably good-enough to read!"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:321
#: pretix/static/pretixcontrol/js/ui/main.js:326
msgid ""
"Your color has bad contrast for text on white background, please choose a "
"darker shade."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:475
#: pretix/static/pretixcontrol/js/ui/main.js:495
#: pretix/static/pretixcontrol/js/ui/main.js:491
#: pretix/static/pretixcontrol/js/ui/main.js:511
msgid "Search query"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:493
#: pretix/static/pretixcontrol/js/ui/main.js:509
msgid "All"
msgstr "Alle"
#: pretix/static/pretixcontrol/js/ui/main.js:494
#: pretix/static/pretixcontrol/js/ui/main.js:510
msgid "None"
msgstr "Ingen"
#: pretix/static/pretixcontrol/js/ui/main.js:498
#: pretix/static/pretixcontrol/js/ui/main.js:514
msgid "Selected only"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:828
#: pretix/static/pretixcontrol/js/ui/main.js:847
msgid "Enter page number between 1 and %(max)s."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:831
#: pretix/static/pretixcontrol/js/ui/main.js:850
msgid "Invalid page number."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:989
#: pretix/static/pretixcontrol/js/ui/main.js:1008
msgid "Use a different name internally"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:1029
#: pretix/static/pretixcontrol/js/ui/main.js:1048
msgid "Click to close"
msgstr "Klik for at lukke"
#: pretix/static/pretixcontrol/js/ui/main.js:1104
#: pretix/static/pretixcontrol/js/ui/main.js:1123
msgid "You have unsaved changes!"
msgstr "Du har ændringer, der ikke er gemt!"
File diff suppressed because it is too large Load Diff
+35 -31
View File
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-07-26 07:19+0000\n"
"PO-Revision-Date: 2024-06-30 21:07+0000\n"
"POT-Creation-Date: 2024-08-27 13:34+0000\n"
"PO-Revision-Date: 2024-09-10 07:17+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.6.1\n"
"X-Generator: Weblate 5.7\n"
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:56
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:62
@@ -559,53 +559,57 @@ msgctxt "entry_status"
msgid "absent"
msgstr "abwesend"
#: pretix/static/pretixcontrol/js/ui/editor.js:72
#: pretix/static/pretixcontrol/js/ui/editor.js:171
msgid "Check-in QR"
msgstr "Check-in-QR-Code"
#: pretix/static/pretixcontrol/js/ui/editor.js:387
#: pretix/static/pretixcontrol/js/ui/editor.js:543
msgid "The PDF background file could not be loaded for the following reason:"
msgstr "Die Hintergrund-PDF-Datei konnte nicht geladen werden:"
#: pretix/static/pretixcontrol/js/ui/editor.js:656
#: pretix/static/pretixcontrol/js/ui/editor.js:894
msgid "Group of objects"
msgstr "Gruppe von Objekten"
#: pretix/static/pretixcontrol/js/ui/editor.js:661
msgid "Text object"
msgstr "Text-Objekt"
#: pretix/static/pretixcontrol/js/ui/editor.js:899
msgid "Text object (deprecated)"
msgstr "Text-Objekt (veraltet)"
#: pretix/static/pretixcontrol/js/ui/editor.js:663
#: pretix/static/pretixcontrol/js/ui/editor.js:901
msgid "Text box"
msgstr "Textbox"
#: pretix/static/pretixcontrol/js/ui/editor.js:903
msgid "Barcode area"
msgstr "QR-Code-Bereich"
#: pretix/static/pretixcontrol/js/ui/editor.js:665
#: pretix/static/pretixcontrol/js/ui/editor.js:905
msgid "Image area"
msgstr "Bildbereich"
#: pretix/static/pretixcontrol/js/ui/editor.js:667
#: pretix/static/pretixcontrol/js/ui/editor.js:907
msgid "Powered by pretix"
msgstr "Event-Ticketshop von pretix"
#: pretix/static/pretixcontrol/js/ui/editor.js:669
#: pretix/static/pretixcontrol/js/ui/editor.js:909
msgid "Object"
msgstr "Objekt"
#: pretix/static/pretixcontrol/js/ui/editor.js:673
#: pretix/static/pretixcontrol/js/ui/editor.js:913
msgid "Ticket design"
msgstr "Ticket-Design"
#: pretix/static/pretixcontrol/js/ui/editor.js:972
#: pretix/static/pretixcontrol/js/ui/editor.js:1250
msgid "Saving failed."
msgstr "Speichern fehlgeschlagen."
#: pretix/static/pretixcontrol/js/ui/editor.js:1041
#: pretix/static/pretixcontrol/js/ui/editor.js:1091
#: pretix/static/pretixcontrol/js/ui/editor.js:1319
#: pretix/static/pretixcontrol/js/ui/editor.js:1370
msgid "Error while uploading your PDF file, please try again."
msgstr ""
"Es gab ein Problem beim Hochladen der PDF-Datei, bitte erneut versuchen."
#: pretix/static/pretixcontrol/js/ui/editor.js:1074
#: pretix/static/pretixcontrol/js/ui/editor.js:1353
msgid "Do you really want to leave the editor without saving your changes?"
msgstr ""
"Möchten Sie den Editor wirklich schließen ohne Ihre Änderungen zu speichern?"
@@ -622,17 +626,17 @@ msgstr "Generiere Nachrichten…"
msgid "Unknown error."
msgstr "Unbekannter Fehler."
#: pretix/static/pretixcontrol/js/ui/main.js:313
#: pretix/static/pretixcontrol/js/ui/main.js:318
msgid "Your color has great contrast and is very easy to read!"
msgstr "Diese Farbe hat einen sehr guten Kontrast und ist sehr gut zu lesen!"
#: pretix/static/pretixcontrol/js/ui/main.js:317
#: pretix/static/pretixcontrol/js/ui/main.js:322
msgid "Your color has decent contrast and is probably good-enough to read!"
msgstr ""
"Diese Farbe hat einen ausreichenden Kontrast und ist wahrscheinlich gut zu "
"lesen!"
#: pretix/static/pretixcontrol/js/ui/main.js:321
#: pretix/static/pretixcontrol/js/ui/main.js:326
msgid ""
"Your color has bad contrast for text on white background, please choose a "
"darker shade."
@@ -640,40 +644,40 @@ msgstr ""
"Diese Farbe hat einen schlechten Kontrast für Text auf einem weißen "
"Hintergrund. Bitte wählen Sie eine dunklere Farbe."
#: pretix/static/pretixcontrol/js/ui/main.js:475
#: pretix/static/pretixcontrol/js/ui/main.js:495
#: pretix/static/pretixcontrol/js/ui/main.js:491
#: pretix/static/pretixcontrol/js/ui/main.js:511
msgid "Search query"
msgstr "Suchbegriff"
#: pretix/static/pretixcontrol/js/ui/main.js:493
#: pretix/static/pretixcontrol/js/ui/main.js:509
msgid "All"
msgstr "Alle"
#: pretix/static/pretixcontrol/js/ui/main.js:494
#: pretix/static/pretixcontrol/js/ui/main.js:510
msgid "None"
msgstr "Keine"
#: pretix/static/pretixcontrol/js/ui/main.js:498
#: pretix/static/pretixcontrol/js/ui/main.js:514
msgid "Selected only"
msgstr "Nur ausgewählte"
#: pretix/static/pretixcontrol/js/ui/main.js:828
#: pretix/static/pretixcontrol/js/ui/main.js:847
msgid "Enter page number between 1 and %(max)s."
msgstr "Geben Sie eine Seitenzahl zwischen 1 und %(max)s ein."
#: pretix/static/pretixcontrol/js/ui/main.js:831
#: pretix/static/pretixcontrol/js/ui/main.js:850
msgid "Invalid page number."
msgstr "Ungültige Seitenzahl."
#: pretix/static/pretixcontrol/js/ui/main.js:989
#: pretix/static/pretixcontrol/js/ui/main.js:1008
msgid "Use a different name internally"
msgstr "Intern einen anderen Namen verwenden"
#: pretix/static/pretixcontrol/js/ui/main.js:1029
#: pretix/static/pretixcontrol/js/ui/main.js:1048
msgid "Click to close"
msgstr "Klicken zum Schließen"
#: pretix/static/pretixcontrol/js/ui/main.js:1104
#: pretix/static/pretixcontrol/js/ui/main.js:1123
msgid "You have unsaved changes!"
msgstr "Sie haben ungespeicherte Änderungen!"
+4
View File
@@ -4,6 +4,7 @@ AES
Absenderadresse
Absenderinformation
Absendername
ABGEKÜNDIGT
Admin
Adminbereich
Affirm
@@ -25,6 +26,7 @@ Ausgangsscans
ausgeklappt
ausgecheckt
auswahl
Auth
Authentication
Authenticator
Authentifizierungsmechanismus
@@ -36,6 +38,7 @@ Bancontact
BankID
Banking
barcodes
Baskisch
Bcc
BCC
Beispielevent
@@ -259,6 +262,7 @@ Requests
Reservierungszeitraum
reverse
Revisionssicherheit
Revolut
rückabgewickelt
Rundungsdifferenzen
Sa
File diff suppressed because it is too large Load Diff
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-07-26 07:19+0000\n"
"PO-Revision-Date: 2024-06-30 21:07+0000\n"
"POT-Creation-Date: 2024-08-27 13:34+0000\n"
"PO-Revision-Date: 2024-09-10 07:17+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.6.1\n"
"X-Generator: Weblate 5.7\n"
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:56
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:62
@@ -558,53 +558,57 @@ msgctxt "entry_status"
msgid "absent"
msgstr "abwesend"
#: pretix/static/pretixcontrol/js/ui/editor.js:72
#: pretix/static/pretixcontrol/js/ui/editor.js:171
msgid "Check-in QR"
msgstr "Check-in-QR-Code"
#: pretix/static/pretixcontrol/js/ui/editor.js:387
#: pretix/static/pretixcontrol/js/ui/editor.js:543
msgid "The PDF background file could not be loaded for the following reason:"
msgstr "Die Hintergrund-PDF-Datei konnte nicht geladen werden:"
#: pretix/static/pretixcontrol/js/ui/editor.js:656
#: pretix/static/pretixcontrol/js/ui/editor.js:894
msgid "Group of objects"
msgstr "Gruppe von Objekten"
#: pretix/static/pretixcontrol/js/ui/editor.js:661
msgid "Text object"
msgstr "Text-Objekt"
#: pretix/static/pretixcontrol/js/ui/editor.js:899
msgid "Text object (deprecated)"
msgstr "Text-Objekt (veraltet)"
#: pretix/static/pretixcontrol/js/ui/editor.js:663
#: pretix/static/pretixcontrol/js/ui/editor.js:901
msgid "Text box"
msgstr "Textbox"
#: pretix/static/pretixcontrol/js/ui/editor.js:903
msgid "Barcode area"
msgstr "QR-Code-Bereich"
#: pretix/static/pretixcontrol/js/ui/editor.js:665
#: pretix/static/pretixcontrol/js/ui/editor.js:905
msgid "Image area"
msgstr "Bildbereich"
#: pretix/static/pretixcontrol/js/ui/editor.js:667
#: pretix/static/pretixcontrol/js/ui/editor.js:907
msgid "Powered by pretix"
msgstr "Event-Ticketshop von pretix"
#: pretix/static/pretixcontrol/js/ui/editor.js:669
#: pretix/static/pretixcontrol/js/ui/editor.js:909
msgid "Object"
msgstr "Objekt"
#: pretix/static/pretixcontrol/js/ui/editor.js:673
#: pretix/static/pretixcontrol/js/ui/editor.js:913
msgid "Ticket design"
msgstr "Ticket-Design"
#: pretix/static/pretixcontrol/js/ui/editor.js:972
#: pretix/static/pretixcontrol/js/ui/editor.js:1250
msgid "Saving failed."
msgstr "Speichern fehlgeschlagen."
#: pretix/static/pretixcontrol/js/ui/editor.js:1041
#: pretix/static/pretixcontrol/js/ui/editor.js:1091
#: pretix/static/pretixcontrol/js/ui/editor.js:1319
#: pretix/static/pretixcontrol/js/ui/editor.js:1370
msgid "Error while uploading your PDF file, please try again."
msgstr ""
"Es gab ein Problem beim Hochladen der PDF-Datei, bitte erneut versuchen."
#: pretix/static/pretixcontrol/js/ui/editor.js:1074
#: pretix/static/pretixcontrol/js/ui/editor.js:1353
msgid "Do you really want to leave the editor without saving your changes?"
msgstr ""
"Möchtest du den Editor wirklich schließen ohne Ihre Änderungen zu speichern?"
@@ -621,17 +625,17 @@ msgstr "Generiere Nachrichten…"
msgid "Unknown error."
msgstr "Unbekannter Fehler."
#: pretix/static/pretixcontrol/js/ui/main.js:313
#: pretix/static/pretixcontrol/js/ui/main.js:318
msgid "Your color has great contrast and is very easy to read!"
msgstr "Diese Farbe hat einen sehr guten Kontrast und ist sehr gut zu lesen!"
#: pretix/static/pretixcontrol/js/ui/main.js:317
#: pretix/static/pretixcontrol/js/ui/main.js:322
msgid "Your color has decent contrast and is probably good-enough to read!"
msgstr ""
"Diese Farbe hat einen ausreichenden Kontrast und ist wahrscheinlich gut zu "
"lesen!"
#: pretix/static/pretixcontrol/js/ui/main.js:321
#: pretix/static/pretixcontrol/js/ui/main.js:326
msgid ""
"Your color has bad contrast for text on white background, please choose a "
"darker shade."
@@ -639,40 +643,40 @@ msgstr ""
"Diese Farbe hat einen schlechten Kontrast für Text auf einem weißen "
"Hintergrund. Bitte wähle eine dunklere Farbe."
#: pretix/static/pretixcontrol/js/ui/main.js:475
#: pretix/static/pretixcontrol/js/ui/main.js:495
#: pretix/static/pretixcontrol/js/ui/main.js:491
#: pretix/static/pretixcontrol/js/ui/main.js:511
msgid "Search query"
msgstr "Suchbegriff"
#: pretix/static/pretixcontrol/js/ui/main.js:493
#: pretix/static/pretixcontrol/js/ui/main.js:509
msgid "All"
msgstr "Alle"
#: pretix/static/pretixcontrol/js/ui/main.js:494
#: pretix/static/pretixcontrol/js/ui/main.js:510
msgid "None"
msgstr "Keine"
#: pretix/static/pretixcontrol/js/ui/main.js:498
#: pretix/static/pretixcontrol/js/ui/main.js:514
msgid "Selected only"
msgstr "Nur ausgewählte"
#: pretix/static/pretixcontrol/js/ui/main.js:828
#: pretix/static/pretixcontrol/js/ui/main.js:847
msgid "Enter page number between 1 and %(max)s."
msgstr "Gib eine Seitenzahl zwischen 1 und %(max)s ein."
#: pretix/static/pretixcontrol/js/ui/main.js:831
#: pretix/static/pretixcontrol/js/ui/main.js:850
msgid "Invalid page number."
msgstr "Ungültige Seitenzahl."
#: pretix/static/pretixcontrol/js/ui/main.js:989
#: pretix/static/pretixcontrol/js/ui/main.js:1008
msgid "Use a different name internally"
msgstr "Intern einen anderen Namen verwenden"
#: pretix/static/pretixcontrol/js/ui/main.js:1029
#: pretix/static/pretixcontrol/js/ui/main.js:1048
msgid "Click to close"
msgstr "Klicken zum Schließen"
#: pretix/static/pretixcontrol/js/ui/main.js:1104
#: pretix/static/pretixcontrol/js/ui/main.js:1123
msgid "You have unsaved changes!"
msgstr "Du hast ungespeicherte Änderungen!"
@@ -4,6 +4,7 @@ AES
Absenderadresse
Absenderinformation
Absendername
ABGEKÜNDIGT
Admin
Adminbereich
Affirm
@@ -25,6 +26,7 @@ Ausgangsscans
ausgeklappt
ausgecheckt
auswahl
Auth
Authentication
Authenticator
Authentifizierungsmechanismus
@@ -36,6 +38,7 @@ Bancontact
BankID
Banking
barcodes
Baskisch
Bcc
BCC
Beispielevent
@@ -259,6 +262,7 @@ Requests
Reservierungszeitraum
reverse
Revisionssicherheit
Revolut
rückabgewickelt
Rundungsdifferenzen
Sa
+1532 -1411
View File
File diff suppressed because it is too large Load Diff
+32 -28
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-07-29 10:52+0000\n"
"POT-Creation-Date: 2024-09-26 11:23+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -543,52 +543,56 @@ msgctxt "entry_status"
msgid "absent"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:72
#: pretix/static/pretixcontrol/js/ui/editor.js:171
msgid "Check-in QR"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:387
#: pretix/static/pretixcontrol/js/ui/editor.js:543
msgid "The PDF background file could not be loaded for the following reason:"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:656
#: pretix/static/pretixcontrol/js/ui/editor.js:894
msgid "Group of objects"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:661
msgid "Text object"
#: pretix/static/pretixcontrol/js/ui/editor.js:899
msgid "Text object (deprecated)"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:663
#: pretix/static/pretixcontrol/js/ui/editor.js:901
msgid "Text box"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:903
msgid "Barcode area"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:665
#: pretix/static/pretixcontrol/js/ui/editor.js:905
msgid "Image area"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:667
#: pretix/static/pretixcontrol/js/ui/editor.js:907
msgid "Powered by pretix"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:669
#: pretix/static/pretixcontrol/js/ui/editor.js:909
msgid "Object"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:673
#: pretix/static/pretixcontrol/js/ui/editor.js:913
msgid "Ticket design"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:972
#: pretix/static/pretixcontrol/js/ui/editor.js:1250
msgid "Saving failed."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:1041
#: pretix/static/pretixcontrol/js/ui/editor.js:1091
#: pretix/static/pretixcontrol/js/ui/editor.js:1319
#: pretix/static/pretixcontrol/js/ui/editor.js:1370
msgid "Error while uploading your PDF file, please try again."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:1074
#: pretix/static/pretixcontrol/js/ui/editor.js:1353
msgid "Do you really want to leave the editor without saving your changes?"
msgstr ""
@@ -604,54 +608,54 @@ msgstr ""
msgid "Unknown error."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:313
#: pretix/static/pretixcontrol/js/ui/main.js:318
msgid "Your color has great contrast and is very easy to read!"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:317
#: pretix/static/pretixcontrol/js/ui/main.js:322
msgid "Your color has decent contrast and is probably good-enough to read!"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:321
#: pretix/static/pretixcontrol/js/ui/main.js:326
msgid ""
"Your color has bad contrast for text on white background, please choose a "
"darker shade."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:475
#: pretix/static/pretixcontrol/js/ui/main.js:495
#: pretix/static/pretixcontrol/js/ui/main.js:491
#: pretix/static/pretixcontrol/js/ui/main.js:511
msgid "Search query"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:493
#: pretix/static/pretixcontrol/js/ui/main.js:509
msgid "All"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:494
#: pretix/static/pretixcontrol/js/ui/main.js:510
msgid "None"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:498
#: pretix/static/pretixcontrol/js/ui/main.js:514
msgid "Selected only"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:828
#: pretix/static/pretixcontrol/js/ui/main.js:847
msgid "Enter page number between 1 and %(max)s."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:831
#: pretix/static/pretixcontrol/js/ui/main.js:850
msgid "Invalid page number."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:989
#: pretix/static/pretixcontrol/js/ui/main.js:1008
msgid "Use a different name internally"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:1029
#: pretix/static/pretixcontrol/js/ui/main.js:1048
msgid "Click to close"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:1104
#: pretix/static/pretixcontrol/js/ui/main.js:1123
msgid "You have unsaved changes!"
msgstr ""
File diff suppressed because it is too large Load Diff
+36 -28
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-07-26 07:19+0000\n"
"POT-Creation-Date: 2024-08-27 13:34+0000\n"
"PO-Revision-Date: 2019-10-03 19:00+0000\n"
"Last-Translator: Chris Spy <chrispiropoulou@hotmail.com>\n"
"Language-Team: Greek <https://translate.pretix.eu/projects/pretix/pretix-js/"
@@ -593,55 +593,63 @@ msgctxt "entry_status"
msgid "absent"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:72
#: pretix/static/pretixcontrol/js/ui/editor.js:171
msgid "Check-in QR"
msgstr "Έλεγχος QR"
#: pretix/static/pretixcontrol/js/ui/editor.js:387
#: pretix/static/pretixcontrol/js/ui/editor.js:543
msgid "The PDF background file could not be loaded for the following reason:"
msgstr ""
"Το αρχείο φόντου PDF δεν ήταν δυνατό να φορτωθεί για τον ακόλουθο λόγο:"
#: pretix/static/pretixcontrol/js/ui/editor.js:656
#: pretix/static/pretixcontrol/js/ui/editor.js:894
msgid "Group of objects"
msgstr "Ομάδα αντικειμένων"
#: pretix/static/pretixcontrol/js/ui/editor.js:661
msgid "Text object"
#: pretix/static/pretixcontrol/js/ui/editor.js:899
#, fuzzy
#| msgid "Text object"
msgid "Text object (deprecated)"
msgstr "Αντικείμενο κειμένου"
#: pretix/static/pretixcontrol/js/ui/editor.js:663
#: pretix/static/pretixcontrol/js/ui/editor.js:901
#, fuzzy
#| msgid "Text object"
msgid "Text box"
msgstr "Αντικείμενο κειμένου"
#: pretix/static/pretixcontrol/js/ui/editor.js:903
msgid "Barcode area"
msgstr "Περιοχή Barcode"
#: pretix/static/pretixcontrol/js/ui/editor.js:665
#: pretix/static/pretixcontrol/js/ui/editor.js:905
#, fuzzy
#| msgid "Barcode area"
msgid "Image area"
msgstr "Περιοχή Barcode"
#: pretix/static/pretixcontrol/js/ui/editor.js:667
#: pretix/static/pretixcontrol/js/ui/editor.js:907
msgid "Powered by pretix"
msgstr "Υποστηρίζεται από το Pretix"
#: pretix/static/pretixcontrol/js/ui/editor.js:669
#: pretix/static/pretixcontrol/js/ui/editor.js:909
msgid "Object"
msgstr "Αντικείμενο"
#: pretix/static/pretixcontrol/js/ui/editor.js:673
#: pretix/static/pretixcontrol/js/ui/editor.js:913
msgid "Ticket design"
msgstr "Σχεδιασμός εισιτηρίων"
#: pretix/static/pretixcontrol/js/ui/editor.js:972
#: pretix/static/pretixcontrol/js/ui/editor.js:1250
msgid "Saving failed."
msgstr "Η αποθήκευση απέτυχε."
#: pretix/static/pretixcontrol/js/ui/editor.js:1041
#: pretix/static/pretixcontrol/js/ui/editor.js:1091
#: pretix/static/pretixcontrol/js/ui/editor.js:1319
#: pretix/static/pretixcontrol/js/ui/editor.js:1370
msgid "Error while uploading your PDF file, please try again."
msgstr "Σφάλμα κατά τη μεταφόρτωση του αρχείου PDF, δοκιμάστε ξανά."
#: pretix/static/pretixcontrol/js/ui/editor.js:1074
#: pretix/static/pretixcontrol/js/ui/editor.js:1353
msgid "Do you really want to leave the editor without saving your changes?"
msgstr ""
"Θέλετε πραγματικά να αφήσετε τον επεξεργαστή χωρίς να αποθηκεύσετε τις "
@@ -659,18 +667,18 @@ msgstr "Δημιουργία μηνυμάτων …"
msgid "Unknown error."
msgstr "Άγνωστο σφάλμα."
#: pretix/static/pretixcontrol/js/ui/main.js:313
#: pretix/static/pretixcontrol/js/ui/main.js:318
msgid "Your color has great contrast and is very easy to read!"
msgstr ""
"Το χρώμα σας έχει μεγάλη αντίθεση και είναι πολύ εύκολο να το διαβάσετε!"
#: pretix/static/pretixcontrol/js/ui/main.js:317
#: pretix/static/pretixcontrol/js/ui/main.js:322
msgid "Your color has decent contrast and is probably good-enough to read!"
msgstr ""
"Το χρώμα σας έχει αξιοπρεπή αντίθεση και είναι ίσως αρκετά καλό για να "
"διαβάσετε!"
#: pretix/static/pretixcontrol/js/ui/main.js:321
#: pretix/static/pretixcontrol/js/ui/main.js:326
msgid ""
"Your color has bad contrast for text on white background, please choose a "
"darker shade."
@@ -678,40 +686,40 @@ msgstr ""
"Το χρώμα σας έχει κακή αντίθεση για κείμενο σε λευκό φόντο, επιλέξτε μια πιο "
"σκούρα σκιά."
#: pretix/static/pretixcontrol/js/ui/main.js:475
#: pretix/static/pretixcontrol/js/ui/main.js:495
#: pretix/static/pretixcontrol/js/ui/main.js:491
#: pretix/static/pretixcontrol/js/ui/main.js:511
msgid "Search query"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:493
#: pretix/static/pretixcontrol/js/ui/main.js:509
msgid "All"
msgstr "Όλα"
#: pretix/static/pretixcontrol/js/ui/main.js:494
#: pretix/static/pretixcontrol/js/ui/main.js:510
msgid "None"
msgstr "Κανένας"
#: pretix/static/pretixcontrol/js/ui/main.js:498
#: pretix/static/pretixcontrol/js/ui/main.js:514
msgid "Selected only"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:828
#: pretix/static/pretixcontrol/js/ui/main.js:847
msgid "Enter page number between 1 and %(max)s."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:831
#: pretix/static/pretixcontrol/js/ui/main.js:850
msgid "Invalid page number."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:989
#: pretix/static/pretixcontrol/js/ui/main.js:1008
msgid "Use a different name internally"
msgstr "Χρησιμοποιήστε διαφορετικό όνομα εσωτερικά"
#: pretix/static/pretixcontrol/js/ui/main.js:1029
#: pretix/static/pretixcontrol/js/ui/main.js:1048
msgid "Click to close"
msgstr "Κάντε κλικ για να κλείσετε"
#: pretix/static/pretixcontrol/js/ui/main.js:1104
#: pretix/static/pretixcontrol/js/ui/main.js:1123
msgid "You have unsaved changes!"
msgstr ""
File diff suppressed because it is too large Load Diff
+32 -28
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-07-26 07:19+0000\n"
"POT-Creation-Date: 2024-08-27 13:34+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -543,52 +543,56 @@ msgctxt "entry_status"
msgid "absent"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:72
#: pretix/static/pretixcontrol/js/ui/editor.js:171
msgid "Check-in QR"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:387
#: pretix/static/pretixcontrol/js/ui/editor.js:543
msgid "The PDF background file could not be loaded for the following reason:"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:656
#: pretix/static/pretixcontrol/js/ui/editor.js:894
msgid "Group of objects"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:661
msgid "Text object"
#: pretix/static/pretixcontrol/js/ui/editor.js:899
msgid "Text object (deprecated)"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:663
#: pretix/static/pretixcontrol/js/ui/editor.js:901
msgid "Text box"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:903
msgid "Barcode area"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:665
#: pretix/static/pretixcontrol/js/ui/editor.js:905
msgid "Image area"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:667
#: pretix/static/pretixcontrol/js/ui/editor.js:907
msgid "Powered by pretix"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:669
#: pretix/static/pretixcontrol/js/ui/editor.js:909
msgid "Object"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:673
#: pretix/static/pretixcontrol/js/ui/editor.js:913
msgid "Ticket design"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:972
#: pretix/static/pretixcontrol/js/ui/editor.js:1250
msgid "Saving failed."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:1041
#: pretix/static/pretixcontrol/js/ui/editor.js:1091
#: pretix/static/pretixcontrol/js/ui/editor.js:1319
#: pretix/static/pretixcontrol/js/ui/editor.js:1370
msgid "Error while uploading your PDF file, please try again."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:1074
#: pretix/static/pretixcontrol/js/ui/editor.js:1353
msgid "Do you really want to leave the editor without saving your changes?"
msgstr ""
@@ -604,54 +608,54 @@ msgstr ""
msgid "Unknown error."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:313
#: pretix/static/pretixcontrol/js/ui/main.js:318
msgid "Your color has great contrast and is very easy to read!"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:317
#: pretix/static/pretixcontrol/js/ui/main.js:322
msgid "Your color has decent contrast and is probably good-enough to read!"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:321
#: pretix/static/pretixcontrol/js/ui/main.js:326
msgid ""
"Your color has bad contrast for text on white background, please choose a "
"darker shade."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:475
#: pretix/static/pretixcontrol/js/ui/main.js:495
#: pretix/static/pretixcontrol/js/ui/main.js:491
#: pretix/static/pretixcontrol/js/ui/main.js:511
msgid "Search query"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:493
#: pretix/static/pretixcontrol/js/ui/main.js:509
msgid "All"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:494
#: pretix/static/pretixcontrol/js/ui/main.js:510
msgid "None"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:498
#: pretix/static/pretixcontrol/js/ui/main.js:514
msgid "Selected only"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:828
#: pretix/static/pretixcontrol/js/ui/main.js:847
msgid "Enter page number between 1 and %(max)s."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:831
#: pretix/static/pretixcontrol/js/ui/main.js:850
msgid "Invalid page number."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:989
#: pretix/static/pretixcontrol/js/ui/main.js:1008
msgid "Use a different name internally"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:1029
#: pretix/static/pretixcontrol/js/ui/main.js:1048
msgid "Click to close"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:1104
#: pretix/static/pretixcontrol/js/ui/main.js:1123
msgid "You have unsaved changes!"
msgstr ""
File diff suppressed because it is too large Load Diff
+36 -28
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-07-26 07:19+0000\n"
"POT-Creation-Date: 2024-08-27 13:34+0000\n"
"PO-Revision-Date: 2024-07-19 08:56+0000\n"
"Last-Translator: Reece Needham <nouveaureece@protonmail.com>\n"
"Language-Team: Spanish <https://translate.pretix.eu/projects/pretix/pretix-"
@@ -556,55 +556,63 @@ msgctxt "entry_status"
msgid "absent"
msgstr "ausente"
#: pretix/static/pretixcontrol/js/ui/editor.js:72
#: pretix/static/pretixcontrol/js/ui/editor.js:171
msgid "Check-in QR"
msgstr "QR de Chequeo"
#: pretix/static/pretixcontrol/js/ui/editor.js:387
#: pretix/static/pretixcontrol/js/ui/editor.js:543
msgid "The PDF background file could not be loaded for the following reason:"
msgstr ""
"El archivo PDF de fondo no ha podido ser cargado debido al siguiente motivo:"
#: pretix/static/pretixcontrol/js/ui/editor.js:656
#: pretix/static/pretixcontrol/js/ui/editor.js:894
msgid "Group of objects"
msgstr "Grupo de objetos"
#: pretix/static/pretixcontrol/js/ui/editor.js:661
msgid "Text object"
#: pretix/static/pretixcontrol/js/ui/editor.js:899
#, fuzzy
#| msgid "Text object"
msgid "Text object (deprecated)"
msgstr "Objeto de texto"
#: pretix/static/pretixcontrol/js/ui/editor.js:663
#: pretix/static/pretixcontrol/js/ui/editor.js:901
#, fuzzy
#| msgid "Text object"
msgid "Text box"
msgstr "Objeto de texto"
#: pretix/static/pretixcontrol/js/ui/editor.js:903
msgid "Barcode area"
msgstr "Área para código de barras"
#: pretix/static/pretixcontrol/js/ui/editor.js:665
#: pretix/static/pretixcontrol/js/ui/editor.js:905
msgid "Image area"
msgstr "Área de imagen"
#: pretix/static/pretixcontrol/js/ui/editor.js:667
#: pretix/static/pretixcontrol/js/ui/editor.js:907
msgid "Powered by pretix"
msgstr "Proveído por pretix"
#: pretix/static/pretixcontrol/js/ui/editor.js:669
#: pretix/static/pretixcontrol/js/ui/editor.js:909
msgid "Object"
msgstr "Objeto"
#: pretix/static/pretixcontrol/js/ui/editor.js:673
#: pretix/static/pretixcontrol/js/ui/editor.js:913
msgid "Ticket design"
msgstr "Diseño del entrada"
#: pretix/static/pretixcontrol/js/ui/editor.js:972
#: pretix/static/pretixcontrol/js/ui/editor.js:1250
msgid "Saving failed."
msgstr "El guardado falló."
#: pretix/static/pretixcontrol/js/ui/editor.js:1041
#: pretix/static/pretixcontrol/js/ui/editor.js:1091
#: pretix/static/pretixcontrol/js/ui/editor.js:1319
#: pretix/static/pretixcontrol/js/ui/editor.js:1370
msgid "Error while uploading your PDF file, please try again."
msgstr ""
"Ha habido un error mientras se cargaba el archivo PDF, por favor, intente de "
"nuevo."
#: pretix/static/pretixcontrol/js/ui/editor.js:1074
#: pretix/static/pretixcontrol/js/ui/editor.js:1353
msgid "Do you really want to leave the editor without saving your changes?"
msgstr "¿Realmente desea salir del editor sin haber guardado sus cambios?"
@@ -620,17 +628,17 @@ msgstr "Generando mensajes…"
msgid "Unknown error."
msgstr "Error desconocido."
#: pretix/static/pretixcontrol/js/ui/main.js:313
#: pretix/static/pretixcontrol/js/ui/main.js:318
msgid "Your color has great contrast and is very easy to read!"
msgstr "¡Tu color tiene gran contraste y es muy fácil de leer!"
#: pretix/static/pretixcontrol/js/ui/main.js:317
#: pretix/static/pretixcontrol/js/ui/main.js:322
msgid "Your color has decent contrast and is probably good-enough to read!"
msgstr ""
"¡Tu color tiene un contraste decente y es probablemente lo suficientemente "
"legible!"
#: pretix/static/pretixcontrol/js/ui/main.js:321
#: pretix/static/pretixcontrol/js/ui/main.js:326
msgid ""
"Your color has bad contrast for text on white background, please choose a "
"darker shade."
@@ -638,40 +646,40 @@ msgstr ""
"Tu color tiene mal contraste para un texto con fondo blanco, por favor, "
"escoge un tono más oscuro."
#: pretix/static/pretixcontrol/js/ui/main.js:475
#: pretix/static/pretixcontrol/js/ui/main.js:495
#: pretix/static/pretixcontrol/js/ui/main.js:491
#: pretix/static/pretixcontrol/js/ui/main.js:511
msgid "Search query"
msgstr "Consultar búsqueda"
#: pretix/static/pretixcontrol/js/ui/main.js:493
#: pretix/static/pretixcontrol/js/ui/main.js:509
msgid "All"
msgstr "Todos"
#: pretix/static/pretixcontrol/js/ui/main.js:494
#: pretix/static/pretixcontrol/js/ui/main.js:510
msgid "None"
msgstr "Ninguno"
#: pretix/static/pretixcontrol/js/ui/main.js:498
#: pretix/static/pretixcontrol/js/ui/main.js:514
msgid "Selected only"
msgstr "Solamente seleccionados"
#: pretix/static/pretixcontrol/js/ui/main.js:828
#: pretix/static/pretixcontrol/js/ui/main.js:847
msgid "Enter page number between 1 and %(max)s."
msgstr "Introduce un número de página entre 1 y %(max)s."
#: pretix/static/pretixcontrol/js/ui/main.js:831
#: pretix/static/pretixcontrol/js/ui/main.js:850
msgid "Invalid page number."
msgstr "Número de página inválido."
#: pretix/static/pretixcontrol/js/ui/main.js:989
#: pretix/static/pretixcontrol/js/ui/main.js:1008
msgid "Use a different name internally"
msgstr "Usar un nombre diferente internamente"
#: pretix/static/pretixcontrol/js/ui/main.js:1029
#: pretix/static/pretixcontrol/js/ui/main.js:1048
msgid "Click to close"
msgstr "Click para cerrar"
#: pretix/static/pretixcontrol/js/ui/main.js:1104
#: pretix/static/pretixcontrol/js/ui/main.js:1123
msgid "You have unsaved changes!"
msgstr "¡Tienes cambios sin guardar!"
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+43 -36
View File
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-07-26 07:19+0000\n"
"PO-Revision-Date: 2024-08-23 11:42+0000\n"
"POT-Creation-Date: 2024-09-26 11:23+0000\n"
"PO-Revision-Date: 2024-09-06 08:47+0000\n"
"Last-Translator: Albizuri <oier@puntu.eus>\n"
"Language-Team: Basque <https://translate.pretix.eu/projects/pretix/pretix-js/"
"eu/>\n"
@@ -512,15 +512,15 @@ msgstr ""
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:184
msgid "Event start"
msgstr ""
msgstr "Ekitaldiaren hasiera"
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:185
msgid "Event end"
msgstr ""
msgstr "Ekitaldiaren amaiera"
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:186
msgid "Event admission"
msgstr ""
msgstr "Ekitaldiaren onarpena"
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:187
msgid "custom date and time"
@@ -540,7 +540,7 @@ msgstr ""
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:191
msgid "minutes"
msgstr ""
msgstr "minutuak"
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:192
msgid "Duplicate"
@@ -556,52 +556,56 @@ msgctxt "entry_status"
msgid "absent"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:72
#: pretix/static/pretixcontrol/js/ui/editor.js:171
msgid "Check-in QR"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:387
#: pretix/static/pretixcontrol/js/ui/editor.js:543
msgid "The PDF background file could not be loaded for the following reason:"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:656
#: pretix/static/pretixcontrol/js/ui/editor.js:894
msgid "Group of objects"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:661
msgid "Text object"
#: pretix/static/pretixcontrol/js/ui/editor.js:899
msgid "Text object (deprecated)"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:663
#: pretix/static/pretixcontrol/js/ui/editor.js:901
msgid "Text box"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:903
msgid "Barcode area"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:665
#: pretix/static/pretixcontrol/js/ui/editor.js:905
msgid "Image area"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:667
#: pretix/static/pretixcontrol/js/ui/editor.js:907
msgid "Powered by pretix"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:669
#: pretix/static/pretixcontrol/js/ui/editor.js:909
msgid "Object"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:673
#: pretix/static/pretixcontrol/js/ui/editor.js:913
msgid "Ticket design"
msgstr ""
msgstr "Sarrera diseinua"
#: pretix/static/pretixcontrol/js/ui/editor.js:972
#: pretix/static/pretixcontrol/js/ui/editor.js:1250
msgid "Saving failed."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:1041
#: pretix/static/pretixcontrol/js/ui/editor.js:1091
#: pretix/static/pretixcontrol/js/ui/editor.js:1319
#: pretix/static/pretixcontrol/js/ui/editor.js:1370
msgid "Error while uploading your PDF file, please try again."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:1074
#: pretix/static/pretixcontrol/js/ui/editor.js:1353
msgid "Do you really want to leave the editor without saving your changes?"
msgstr ""
@@ -617,54 +621,54 @@ msgstr ""
msgid "Unknown error."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:313
#: pretix/static/pretixcontrol/js/ui/main.js:318
msgid "Your color has great contrast and is very easy to read!"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:317
#: pretix/static/pretixcontrol/js/ui/main.js:322
msgid "Your color has decent contrast and is probably good-enough to read!"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:321
#: pretix/static/pretixcontrol/js/ui/main.js:326
msgid ""
"Your color has bad contrast for text on white background, please choose a "
"darker shade."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:475
#: pretix/static/pretixcontrol/js/ui/main.js:495
#: pretix/static/pretixcontrol/js/ui/main.js:491
#: pretix/static/pretixcontrol/js/ui/main.js:511
msgid "Search query"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:493
#: pretix/static/pretixcontrol/js/ui/main.js:509
msgid "All"
msgstr "Guztiak"
#: pretix/static/pretixcontrol/js/ui/main.js:494
#: pretix/static/pretixcontrol/js/ui/main.js:510
msgid "None"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:498
#: pretix/static/pretixcontrol/js/ui/main.js:514
msgid "Selected only"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:828
#: pretix/static/pretixcontrol/js/ui/main.js:847
msgid "Enter page number between 1 and %(max)s."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:831
#: pretix/static/pretixcontrol/js/ui/main.js:850
msgid "Invalid page number."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:989
#: pretix/static/pretixcontrol/js/ui/main.js:1008
msgid "Use a different name internally"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:1029
#: pretix/static/pretixcontrol/js/ui/main.js:1048
msgid "Click to close"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:1104
#: pretix/static/pretixcontrol/js/ui/main.js:1123
msgid "You have unsaved changes!"
msgstr ""
@@ -691,16 +695,19 @@ msgid ""
"The items in your cart are no longer reserved for you. You can still "
"complete your order as long as theyre available."
msgstr ""
"Zure saskiko produktuak ez daude zuretzat erreserbatuta. Oraindik ere zure "
"eskaera bete dezakezu, baldin eta eskuragarri badaude."
#: pretix/static/pretixpresale/js/ui/cart.js:45
msgid "Cart expired"
msgstr ""
msgstr "Saskia iraungita"
#: pretix/static/pretixpresale/js/ui/cart.js:50
msgid "The items in your cart are reserved for you for one minute."
msgid_plural "The items in your cart are reserved for you for {num} minutes."
msgstr[0] ""
msgstr[0] "Zure saskiko produktuak minutu -ez erreserbatuta daude zuretzat."
msgstr[1] ""
"Zure saskiko produktuak {num} minutuz erreserbatuta daude zuretzat."
#: pretix/static/pretixpresale/js/ui/main.js:203
msgid "The organizer keeps %(currency)s %(amount)s"
File diff suppressed because it is too large Load Diff
+36 -28
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-07-26 07:19+0000\n"
"POT-Creation-Date: 2024-08-27 13:34+0000\n"
"PO-Revision-Date: 2021-11-10 05:00+0000\n"
"Last-Translator: Jaakko Rinta-Filppula <jaakko@r-f.fi>\n"
"Language-Team: Finnish <https://translate.pretix.eu/projects/pretix/pretix-"
@@ -566,54 +566,62 @@ msgctxt "entry_status"
msgid "absent"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:72
#: pretix/static/pretixcontrol/js/ui/editor.js:171
msgid "Check-in QR"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:387
#: pretix/static/pretixcontrol/js/ui/editor.js:543
msgid "The PDF background file could not be loaded for the following reason:"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:656
#: pretix/static/pretixcontrol/js/ui/editor.js:894
msgid "Group of objects"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:661
msgid "Text object"
#: pretix/static/pretixcontrol/js/ui/editor.js:899
#, fuzzy
#| msgid "Text object"
msgid "Text object (deprecated)"
msgstr "Tekstiobjekti"
#: pretix/static/pretixcontrol/js/ui/editor.js:663
#: pretix/static/pretixcontrol/js/ui/editor.js:901
#, fuzzy
#| msgid "Text object"
msgid "Text box"
msgstr "Tekstiobjekti"
#: pretix/static/pretixcontrol/js/ui/editor.js:903
msgid "Barcode area"
msgstr "Viivakoodialue"
#: pretix/static/pretixcontrol/js/ui/editor.js:665
#: pretix/static/pretixcontrol/js/ui/editor.js:905
#, fuzzy
#| msgid "Barcode area"
msgid "Image area"
msgstr "Viivakoodialue"
#: pretix/static/pretixcontrol/js/ui/editor.js:667
#: pretix/static/pretixcontrol/js/ui/editor.js:907
msgid "Powered by pretix"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:669
#: pretix/static/pretixcontrol/js/ui/editor.js:909
msgid "Object"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:673
#: pretix/static/pretixcontrol/js/ui/editor.js:913
msgid "Ticket design"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:972
#: pretix/static/pretixcontrol/js/ui/editor.js:1250
msgid "Saving failed."
msgstr "Tallennus epäonnistui."
#: pretix/static/pretixcontrol/js/ui/editor.js:1041
#: pretix/static/pretixcontrol/js/ui/editor.js:1091
#: pretix/static/pretixcontrol/js/ui/editor.js:1319
#: pretix/static/pretixcontrol/js/ui/editor.js:1370
msgid "Error while uploading your PDF file, please try again."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:1074
#: pretix/static/pretixcontrol/js/ui/editor.js:1353
msgid "Do you really want to leave the editor without saving your changes?"
msgstr ""
@@ -629,54 +637,54 @@ msgstr ""
msgid "Unknown error."
msgstr "Tuntematon virhe."
#: pretix/static/pretixcontrol/js/ui/main.js:313
#: pretix/static/pretixcontrol/js/ui/main.js:318
msgid "Your color has great contrast and is very easy to read!"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:317
#: pretix/static/pretixcontrol/js/ui/main.js:322
msgid "Your color has decent contrast and is probably good-enough to read!"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:321
#: pretix/static/pretixcontrol/js/ui/main.js:326
msgid ""
"Your color has bad contrast for text on white background, please choose a "
"darker shade."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:475
#: pretix/static/pretixcontrol/js/ui/main.js:495
#: pretix/static/pretixcontrol/js/ui/main.js:491
#: pretix/static/pretixcontrol/js/ui/main.js:511
msgid "Search query"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:493
#: pretix/static/pretixcontrol/js/ui/main.js:509
msgid "All"
msgstr "Kaikki"
#: pretix/static/pretixcontrol/js/ui/main.js:494
#: pretix/static/pretixcontrol/js/ui/main.js:510
msgid "None"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:498
#: pretix/static/pretixcontrol/js/ui/main.js:514
msgid "Selected only"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:828
#: pretix/static/pretixcontrol/js/ui/main.js:847
msgid "Enter page number between 1 and %(max)s."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:831
#: pretix/static/pretixcontrol/js/ui/main.js:850
msgid "Invalid page number."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:989
#: pretix/static/pretixcontrol/js/ui/main.js:1008
msgid "Use a different name internally"
msgstr "Käytä toista nimeä sisäisesti"
#: pretix/static/pretixcontrol/js/ui/main.js:1029
#: pretix/static/pretixcontrol/js/ui/main.js:1048
msgid "Click to close"
msgstr "Sulje klikkaamalla"
#: pretix/static/pretixcontrol/js/ui/main.js:1104
#: pretix/static/pretixcontrol/js/ui/main.js:1123
msgid "You have unsaved changes!"
msgstr "Sinulla on tallentamattomia muutoksia!"
File diff suppressed because it is too large Load Diff
+36 -28
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: French\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-07-26 07:19+0000\n"
"POT-Creation-Date: 2024-08-27 13:34+0000\n"
"PO-Revision-Date: 2024-06-12 03:00+0000\n"
"Last-Translator: simonD <simon.dalvy@gmail.com>\n"
"Language-Team: French <https://translate.pretix.eu/projects/pretix/pretix-js/"
@@ -566,55 +566,63 @@ msgctxt "entry_status"
msgid "absent"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:72
#: pretix/static/pretixcontrol/js/ui/editor.js:171
msgid "Check-in QR"
msgstr "Enregistrement QR code"
#: pretix/static/pretixcontrol/js/ui/editor.js:387
#: pretix/static/pretixcontrol/js/ui/editor.js:543
msgid "The PDF background file could not be loaded for the following reason:"
msgstr ""
"Le fichier PDF généré en arrière-plan n'a pas pu être chargé pour la raison "
"suivante :"
#: pretix/static/pretixcontrol/js/ui/editor.js:656
#: pretix/static/pretixcontrol/js/ui/editor.js:894
msgid "Group of objects"
msgstr "Groupe d'objets"
#: pretix/static/pretixcontrol/js/ui/editor.js:661
msgid "Text object"
#: pretix/static/pretixcontrol/js/ui/editor.js:899
#, fuzzy
#| msgid "Text object"
msgid "Text object (deprecated)"
msgstr "Objet texte"
#: pretix/static/pretixcontrol/js/ui/editor.js:663
#: pretix/static/pretixcontrol/js/ui/editor.js:901
#, fuzzy
#| msgid "Text object"
msgid "Text box"
msgstr "Objet texte"
#: pretix/static/pretixcontrol/js/ui/editor.js:903
msgid "Barcode area"
msgstr "Zone de code-barres"
#: pretix/static/pretixcontrol/js/ui/editor.js:665
#: pretix/static/pretixcontrol/js/ui/editor.js:905
msgid "Image area"
msgstr "Zone d'image"
#: pretix/static/pretixcontrol/js/ui/editor.js:667
#: pretix/static/pretixcontrol/js/ui/editor.js:907
msgid "Powered by pretix"
msgstr "Propulsé par pretix"
#: pretix/static/pretixcontrol/js/ui/editor.js:669
#: pretix/static/pretixcontrol/js/ui/editor.js:909
msgid "Object"
msgstr "Objet"
#: pretix/static/pretixcontrol/js/ui/editor.js:673
#: pretix/static/pretixcontrol/js/ui/editor.js:913
msgid "Ticket design"
msgstr "Conception des billets"
#: pretix/static/pretixcontrol/js/ui/editor.js:972
#: pretix/static/pretixcontrol/js/ui/editor.js:1250
msgid "Saving failed."
msgstr "L'enregistrement a échoué."
#: pretix/static/pretixcontrol/js/ui/editor.js:1041
#: pretix/static/pretixcontrol/js/ui/editor.js:1091
#: pretix/static/pretixcontrol/js/ui/editor.js:1319
#: pretix/static/pretixcontrol/js/ui/editor.js:1370
msgid "Error while uploading your PDF file, please try again."
msgstr ""
"Erreur lors du téléchargement de votre fichier PDF, veuillez réessayer."
#: pretix/static/pretixcontrol/js/ui/editor.js:1074
#: pretix/static/pretixcontrol/js/ui/editor.js:1353
msgid "Do you really want to leave the editor without saving your changes?"
msgstr ""
"Voulez-vous vraiment quitter l'éditeur sans sauvegarder vos modifications ?"
@@ -631,16 +639,16 @@ msgstr "Création de messages …"
msgid "Unknown error."
msgstr "Erreur inconnue."
#: pretix/static/pretixcontrol/js/ui/main.js:313
#: pretix/static/pretixcontrol/js/ui/main.js:318
msgid "Your color has great contrast and is very easy to read!"
msgstr "Votre choix couleur a un bon contraste et il est très facile à lire!"
#: pretix/static/pretixcontrol/js/ui/main.js:317
#: pretix/static/pretixcontrol/js/ui/main.js:322
msgid "Your color has decent contrast and is probably good-enough to read!"
msgstr ""
"Votre choix de couleur est assez bon pour la lecture et a un bon contraste !"
#: pretix/static/pretixcontrol/js/ui/main.js:321
#: pretix/static/pretixcontrol/js/ui/main.js:326
msgid ""
"Your color has bad contrast for text on white background, please choose a "
"darker shade."
@@ -648,41 +656,41 @@ msgstr ""
"Votre choix de couleur n'a pas un bon contraste avec du texte sur un fond "
"blanc, SVP choisissez un ton plus sombre."
#: pretix/static/pretixcontrol/js/ui/main.js:475
#: pretix/static/pretixcontrol/js/ui/main.js:495
#: pretix/static/pretixcontrol/js/ui/main.js:491
#: pretix/static/pretixcontrol/js/ui/main.js:511
msgid "Search query"
msgstr "Recherche"
#: pretix/static/pretixcontrol/js/ui/main.js:493
#: pretix/static/pretixcontrol/js/ui/main.js:509
msgid "All"
msgstr "Tous"
#: pretix/static/pretixcontrol/js/ui/main.js:494
#: pretix/static/pretixcontrol/js/ui/main.js:510
msgid "None"
msgstr "Aucun"
#: pretix/static/pretixcontrol/js/ui/main.js:498
#: pretix/static/pretixcontrol/js/ui/main.js:514
msgid "Selected only"
msgstr "Seuls les sélectionnés"
#: pretix/static/pretixcontrol/js/ui/main.js:828
#: pretix/static/pretixcontrol/js/ui/main.js:847
msgid "Enter page number between 1 and %(max)s."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:831
#: pretix/static/pretixcontrol/js/ui/main.js:850
#, fuzzy
msgid "Invalid page number."
msgstr "Numéro de page invalide."
#: pretix/static/pretixcontrol/js/ui/main.js:989
#: pretix/static/pretixcontrol/js/ui/main.js:1008
msgid "Use a different name internally"
msgstr "Utiliser un nom différent en interne"
#: pretix/static/pretixcontrol/js/ui/main.js:1029
#: pretix/static/pretixcontrol/js/ui/main.js:1048
msgid "Click to close"
msgstr "Cliquez pour fermer"
#: pretix/static/pretixcontrol/js/ui/main.js:1104
#: pretix/static/pretixcontrol/js/ui/main.js:1123
msgid "You have unsaved changes!"
msgstr "Vous avez des modifications non sauvegardées !"
File diff suppressed because it is too large Load Diff
+36 -28
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-07-26 07:19+0000\n"
"POT-Creation-Date: 2024-08-27 13:34+0000\n"
"PO-Revision-Date: 2022-02-22 22:00+0000\n"
"Last-Translator: Ismael Menéndez Fernández <ismael.menendez@balidea.com>\n"
"Language-Team: Galician <https://translate.pretix.eu/projects/pretix/pretix-"
@@ -570,53 +570,61 @@ msgctxt "entry_status"
msgid "absent"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:72
#: pretix/static/pretixcontrol/js/ui/editor.js:171
msgid "Check-in QR"
msgstr "QR de validación"
#: pretix/static/pretixcontrol/js/ui/editor.js:387
#: pretix/static/pretixcontrol/js/ui/editor.js:543
msgid "The PDF background file could not be loaded for the following reason:"
msgstr "O arquivo PDF de fondo non se puido cargar polo motivo seguinte:"
#: pretix/static/pretixcontrol/js/ui/editor.js:656
#: pretix/static/pretixcontrol/js/ui/editor.js:894
msgid "Group of objects"
msgstr "Grupo de obxectos"
#: pretix/static/pretixcontrol/js/ui/editor.js:661
msgid "Text object"
#: pretix/static/pretixcontrol/js/ui/editor.js:899
#, fuzzy
#| msgid "Text object"
msgid "Text object (deprecated)"
msgstr "Obxecto de texto"
#: pretix/static/pretixcontrol/js/ui/editor.js:663
#: pretix/static/pretixcontrol/js/ui/editor.js:901
#, fuzzy
#| msgid "Text object"
msgid "Text box"
msgstr "Obxecto de texto"
#: pretix/static/pretixcontrol/js/ui/editor.js:903
msgid "Barcode area"
msgstr "Área para código de barras"
#: pretix/static/pretixcontrol/js/ui/editor.js:665
#: pretix/static/pretixcontrol/js/ui/editor.js:905
msgid "Image area"
msgstr "Área de imaxe"
#: pretix/static/pretixcontrol/js/ui/editor.js:667
#: pretix/static/pretixcontrol/js/ui/editor.js:907
msgid "Powered by pretix"
msgstr "Desenvolto por Pretix"
#: pretix/static/pretixcontrol/js/ui/editor.js:669
#: pretix/static/pretixcontrol/js/ui/editor.js:909
msgid "Object"
msgstr "Obxecto"
#: pretix/static/pretixcontrol/js/ui/editor.js:673
#: pretix/static/pretixcontrol/js/ui/editor.js:913
msgid "Ticket design"
msgstr "Deseño do tícket"
#: pretix/static/pretixcontrol/js/ui/editor.js:972
#: pretix/static/pretixcontrol/js/ui/editor.js:1250
msgid "Saving failed."
msgstr "O gardado fallou."
#: pretix/static/pretixcontrol/js/ui/editor.js:1041
#: pretix/static/pretixcontrol/js/ui/editor.js:1091
#: pretix/static/pretixcontrol/js/ui/editor.js:1319
#: pretix/static/pretixcontrol/js/ui/editor.js:1370
msgid "Error while uploading your PDF file, please try again."
msgstr ""
"Houbo un erro mentres se cargaba o arquivo PDF. Por favor, inténteo de novo."
#: pretix/static/pretixcontrol/js/ui/editor.js:1074
#: pretix/static/pretixcontrol/js/ui/editor.js:1353
msgid "Do you really want to leave the editor without saving your changes?"
msgstr "Realmente desexa saír do editor sen gardar os cambios?"
@@ -632,17 +640,17 @@ msgstr "Xerando mensaxes…"
msgid "Unknown error."
msgstr "Erro descoñecido."
#: pretix/static/pretixcontrol/js/ui/main.js:313
#: pretix/static/pretixcontrol/js/ui/main.js:318
msgid "Your color has great contrast and is very easy to read!"
msgstr "A túa cor ten moito contraste e é moi doada de ler!"
#: pretix/static/pretixcontrol/js/ui/main.js:317
#: pretix/static/pretixcontrol/js/ui/main.js:322
msgid "Your color has decent contrast and is probably good-enough to read!"
msgstr ""
"A túa cor ten un contraste axeitado e probablemente sexa suficientemente "
"lexible!"
#: pretix/static/pretixcontrol/js/ui/main.js:321
#: pretix/static/pretixcontrol/js/ui/main.js:326
msgid ""
"Your color has bad contrast for text on white background, please choose a "
"darker shade."
@@ -650,40 +658,40 @@ msgstr ""
"A túa cor ten mal contraste para un texto con fondo branco. Por favor, "
"escolle un ton máis escuro."
#: pretix/static/pretixcontrol/js/ui/main.js:475
#: pretix/static/pretixcontrol/js/ui/main.js:495
#: pretix/static/pretixcontrol/js/ui/main.js:491
#: pretix/static/pretixcontrol/js/ui/main.js:511
msgid "Search query"
msgstr "Consultar unha procura"
#: pretix/static/pretixcontrol/js/ui/main.js:493
#: pretix/static/pretixcontrol/js/ui/main.js:509
msgid "All"
msgstr "Todos"
#: pretix/static/pretixcontrol/js/ui/main.js:494
#: pretix/static/pretixcontrol/js/ui/main.js:510
msgid "None"
msgstr "Ningún"
#: pretix/static/pretixcontrol/js/ui/main.js:498
#: pretix/static/pretixcontrol/js/ui/main.js:514
msgid "Selected only"
msgstr "Soamente seleccionados"
#: pretix/static/pretixcontrol/js/ui/main.js:828
#: pretix/static/pretixcontrol/js/ui/main.js:847
msgid "Enter page number between 1 and %(max)s."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:831
#: pretix/static/pretixcontrol/js/ui/main.js:850
msgid "Invalid page number."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:989
#: pretix/static/pretixcontrol/js/ui/main.js:1008
msgid "Use a different name internally"
msgstr "Usar un nome diferente internamente"
#: pretix/static/pretixcontrol/js/ui/main.js:1029
#: pretix/static/pretixcontrol/js/ui/main.js:1048
msgid "Click to close"
msgstr "Click para cerrar"
#: pretix/static/pretixcontrol/js/ui/main.js:1104
#: pretix/static/pretixcontrol/js/ui/main.js:1123
msgid "You have unsaved changes!"
msgstr "Tes cambios sen gardar!"
File diff suppressed because it is too large Load Diff
+32 -28
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-07-26 07:19+0000\n"
"POT-Creation-Date: 2024-08-27 13:34+0000\n"
"PO-Revision-Date: 2021-09-24 13:54+0000\n"
"Last-Translator: ofirtro <ofir.tro@gmail.com>\n"
"Language-Team: Hebrew <https://translate.pretix.eu/projects/pretix/pretix-js/"
@@ -551,52 +551,56 @@ msgctxt "entry_status"
msgid "absent"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:72
#: pretix/static/pretixcontrol/js/ui/editor.js:171
msgid "Check-in QR"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:387
#: pretix/static/pretixcontrol/js/ui/editor.js:543
msgid "The PDF background file could not be loaded for the following reason:"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:656
#: pretix/static/pretixcontrol/js/ui/editor.js:894
msgid "Group of objects"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:661
msgid "Text object"
#: pretix/static/pretixcontrol/js/ui/editor.js:899
msgid "Text object (deprecated)"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:663
#: pretix/static/pretixcontrol/js/ui/editor.js:901
msgid "Text box"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:903
msgid "Barcode area"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:665
#: pretix/static/pretixcontrol/js/ui/editor.js:905
msgid "Image area"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:667
#: pretix/static/pretixcontrol/js/ui/editor.js:907
msgid "Powered by pretix"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:669
#: pretix/static/pretixcontrol/js/ui/editor.js:909
msgid "Object"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:673
#: pretix/static/pretixcontrol/js/ui/editor.js:913
msgid "Ticket design"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:972
#: pretix/static/pretixcontrol/js/ui/editor.js:1250
msgid "Saving failed."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:1041
#: pretix/static/pretixcontrol/js/ui/editor.js:1091
#: pretix/static/pretixcontrol/js/ui/editor.js:1319
#: pretix/static/pretixcontrol/js/ui/editor.js:1370
msgid "Error while uploading your PDF file, please try again."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:1074
#: pretix/static/pretixcontrol/js/ui/editor.js:1353
msgid "Do you really want to leave the editor without saving your changes?"
msgstr ""
@@ -612,54 +616,54 @@ msgstr ""
msgid "Unknown error."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:313
#: pretix/static/pretixcontrol/js/ui/main.js:318
msgid "Your color has great contrast and is very easy to read!"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:317
#: pretix/static/pretixcontrol/js/ui/main.js:322
msgid "Your color has decent contrast and is probably good-enough to read!"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:321
#: pretix/static/pretixcontrol/js/ui/main.js:326
msgid ""
"Your color has bad contrast for text on white background, please choose a "
"darker shade."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:475
#: pretix/static/pretixcontrol/js/ui/main.js:495
#: pretix/static/pretixcontrol/js/ui/main.js:491
#: pretix/static/pretixcontrol/js/ui/main.js:511
msgid "Search query"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:493
#: pretix/static/pretixcontrol/js/ui/main.js:509
msgid "All"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:494
#: pretix/static/pretixcontrol/js/ui/main.js:510
msgid "None"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:498
#: pretix/static/pretixcontrol/js/ui/main.js:514
msgid "Selected only"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:828
#: pretix/static/pretixcontrol/js/ui/main.js:847
msgid "Enter page number between 1 and %(max)s."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:831
#: pretix/static/pretixcontrol/js/ui/main.js:850
msgid "Invalid page number."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:989
#: pretix/static/pretixcontrol/js/ui/main.js:1008
msgid "Use a different name internally"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:1029
#: pretix/static/pretixcontrol/js/ui/main.js:1048
msgid "Click to close"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:1104
#: pretix/static/pretixcontrol/js/ui/main.js:1123
msgid "You have unsaved changes!"
msgstr ""
File diff suppressed because it is too large Load Diff
+32 -28
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-07-26 07:19+0000\n"
"POT-Creation-Date: 2024-08-27 13:34+0000\n"
"PO-Revision-Date: 2024-01-31 04:00+0000\n"
"Last-Translator: Pavle Ergović <pavleergovic@gmail.com>\n"
"Language-Team: Croatian <https://translate.pretix.eu/projects/pretix/pretix-"
@@ -545,52 +545,56 @@ msgctxt "entry_status"
msgid "absent"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:72
#: pretix/static/pretixcontrol/js/ui/editor.js:171
msgid "Check-in QR"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:387
#: pretix/static/pretixcontrol/js/ui/editor.js:543
msgid "The PDF background file could not be loaded for the following reason:"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:656
#: pretix/static/pretixcontrol/js/ui/editor.js:894
msgid "Group of objects"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:661
msgid "Text object"
#: pretix/static/pretixcontrol/js/ui/editor.js:899
msgid "Text object (deprecated)"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:663
#: pretix/static/pretixcontrol/js/ui/editor.js:901
msgid "Text box"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:903
msgid "Barcode area"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:665
#: pretix/static/pretixcontrol/js/ui/editor.js:905
msgid "Image area"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:667
#: pretix/static/pretixcontrol/js/ui/editor.js:907
msgid "Powered by pretix"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:669
#: pretix/static/pretixcontrol/js/ui/editor.js:909
msgid "Object"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:673
#: pretix/static/pretixcontrol/js/ui/editor.js:913
msgid "Ticket design"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:972
#: pretix/static/pretixcontrol/js/ui/editor.js:1250
msgid "Saving failed."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:1041
#: pretix/static/pretixcontrol/js/ui/editor.js:1091
#: pretix/static/pretixcontrol/js/ui/editor.js:1319
#: pretix/static/pretixcontrol/js/ui/editor.js:1370
msgid "Error while uploading your PDF file, please try again."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:1074
#: pretix/static/pretixcontrol/js/ui/editor.js:1353
msgid "Do you really want to leave the editor without saving your changes?"
msgstr ""
@@ -606,54 +610,54 @@ msgstr ""
msgid "Unknown error."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:313
#: pretix/static/pretixcontrol/js/ui/main.js:318
msgid "Your color has great contrast and is very easy to read!"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:317
#: pretix/static/pretixcontrol/js/ui/main.js:322
msgid "Your color has decent contrast and is probably good-enough to read!"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:321
#: pretix/static/pretixcontrol/js/ui/main.js:326
msgid ""
"Your color has bad contrast for text on white background, please choose a "
"darker shade."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:475
#: pretix/static/pretixcontrol/js/ui/main.js:495
#: pretix/static/pretixcontrol/js/ui/main.js:491
#: pretix/static/pretixcontrol/js/ui/main.js:511
msgid "Search query"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:493
#: pretix/static/pretixcontrol/js/ui/main.js:509
msgid "All"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:494
#: pretix/static/pretixcontrol/js/ui/main.js:510
msgid "None"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:498
#: pretix/static/pretixcontrol/js/ui/main.js:514
msgid "Selected only"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:828
#: pretix/static/pretixcontrol/js/ui/main.js:847
msgid "Enter page number between 1 and %(max)s."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:831
#: pretix/static/pretixcontrol/js/ui/main.js:850
msgid "Invalid page number."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:989
#: pretix/static/pretixcontrol/js/ui/main.js:1008
msgid "Use a different name internally"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:1029
#: pretix/static/pretixcontrol/js/ui/main.js:1048
msgid "Click to close"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:1104
#: pretix/static/pretixcontrol/js/ui/main.js:1123
msgid "You have unsaved changes!"
msgstr ""
File diff suppressed because it is too large Load Diff
+36 -28
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-07-26 07:19+0000\n"
"POT-Creation-Date: 2024-08-27 13:34+0000\n"
"PO-Revision-Date: 2020-01-24 08:00+0000\n"
"Last-Translator: Prokaj Miklós <mixolid0@gmail.com>\n"
"Language-Team: Hungarian <https://translate.pretix.eu/projects/pretix/pretix-"
@@ -586,54 +586,62 @@ msgctxt "entry_status"
msgid "absent"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:72
#: pretix/static/pretixcontrol/js/ui/editor.js:171
msgid "Check-in QR"
msgstr "Check in QR"
#: pretix/static/pretixcontrol/js/ui/editor.js:387
#: pretix/static/pretixcontrol/js/ui/editor.js:543
msgid "The PDF background file could not be loaded for the following reason:"
msgstr "A PDF háttér fájl nem tölthető be a következők miatt:"
#: pretix/static/pretixcontrol/js/ui/editor.js:656
#: pretix/static/pretixcontrol/js/ui/editor.js:894
msgid "Group of objects"
msgstr "tárgy csoport"
#: pretix/static/pretixcontrol/js/ui/editor.js:661
msgid "Text object"
#: pretix/static/pretixcontrol/js/ui/editor.js:899
#, fuzzy
#| msgid "Text object"
msgid "Text object (deprecated)"
msgstr "Szöveg"
#: pretix/static/pretixcontrol/js/ui/editor.js:663
#: pretix/static/pretixcontrol/js/ui/editor.js:901
#, fuzzy
#| msgid "Text object"
msgid "Text box"
msgstr "Szöveg"
#: pretix/static/pretixcontrol/js/ui/editor.js:903
msgid "Barcode area"
msgstr "Vonalkód terület"
#: pretix/static/pretixcontrol/js/ui/editor.js:665
#: pretix/static/pretixcontrol/js/ui/editor.js:905
#, fuzzy
#| msgid "Barcode area"
msgid "Image area"
msgstr "Vonalkód terület"
#: pretix/static/pretixcontrol/js/ui/editor.js:667
#: pretix/static/pretixcontrol/js/ui/editor.js:907
msgid "Powered by pretix"
msgstr "pretix által működtetett"
#: pretix/static/pretixcontrol/js/ui/editor.js:669
#: pretix/static/pretixcontrol/js/ui/editor.js:909
msgid "Object"
msgstr "objektum"
#: pretix/static/pretixcontrol/js/ui/editor.js:673
#: pretix/static/pretixcontrol/js/ui/editor.js:913
msgid "Ticket design"
msgstr "Jegy design"
#: pretix/static/pretixcontrol/js/ui/editor.js:972
#: pretix/static/pretixcontrol/js/ui/editor.js:1250
msgid "Saving failed."
msgstr "Mentés sikertelen."
#: pretix/static/pretixcontrol/js/ui/editor.js:1041
#: pretix/static/pretixcontrol/js/ui/editor.js:1091
#: pretix/static/pretixcontrol/js/ui/editor.js:1319
#: pretix/static/pretixcontrol/js/ui/editor.js:1370
msgid "Error while uploading your PDF file, please try again."
msgstr "Hiba a PDF fájl feltöltése közben, próbálja újra."
#: pretix/static/pretixcontrol/js/ui/editor.js:1074
#: pretix/static/pretixcontrol/js/ui/editor.js:1353
msgid "Do you really want to leave the editor without saving your changes?"
msgstr "Biztosan ki akar lépni a szerkesztőből a változtatások mentése nélkül?"
@@ -649,16 +657,16 @@ msgstr "Üzenetek generálása…"
msgid "Unknown error."
msgstr "Ismeretlen hiba."
#: pretix/static/pretixcontrol/js/ui/main.js:313
#: pretix/static/pretixcontrol/js/ui/main.js:318
msgid "Your color has great contrast and is very easy to read!"
msgstr "A választott színek remek kontrasztot adnak, és nagyon könnyű olvasni!"
#: pretix/static/pretixcontrol/js/ui/main.js:317
#: pretix/static/pretixcontrol/js/ui/main.js:322
msgid "Your color has decent contrast and is probably good-enough to read!"
msgstr ""
"A választott színek kontrasztja elégséges, és valószínűleg jól olvasható!"
#: pretix/static/pretixcontrol/js/ui/main.js:321
#: pretix/static/pretixcontrol/js/ui/main.js:326
msgid ""
"Your color has bad contrast for text on white background, please choose a "
"darker shade."
@@ -666,40 +674,40 @@ msgstr ""
"A választott színek kontrasztja elégtelen, kérjük válassz sötétebb "
"árnyalatot."
#: pretix/static/pretixcontrol/js/ui/main.js:475
#: pretix/static/pretixcontrol/js/ui/main.js:495
#: pretix/static/pretixcontrol/js/ui/main.js:491
#: pretix/static/pretixcontrol/js/ui/main.js:511
msgid "Search query"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:493
#: pretix/static/pretixcontrol/js/ui/main.js:509
msgid "All"
msgstr "Összes"
#: pretix/static/pretixcontrol/js/ui/main.js:494
#: pretix/static/pretixcontrol/js/ui/main.js:510
msgid "None"
msgstr "Semmi"
#: pretix/static/pretixcontrol/js/ui/main.js:498
#: pretix/static/pretixcontrol/js/ui/main.js:514
msgid "Selected only"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:828
#: pretix/static/pretixcontrol/js/ui/main.js:847
msgid "Enter page number between 1 and %(max)s."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:831
#: pretix/static/pretixcontrol/js/ui/main.js:850
msgid "Invalid page number."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:989
#: pretix/static/pretixcontrol/js/ui/main.js:1008
msgid "Use a different name internally"
msgstr "Használj másik nevet"
#: pretix/static/pretixcontrol/js/ui/main.js:1029
#: pretix/static/pretixcontrol/js/ui/main.js:1048
msgid "Click to close"
msgstr "Bezárásért kattints"
#: pretix/static/pretixcontrol/js/ui/main.js:1104
#: pretix/static/pretixcontrol/js/ui/main.js:1123
msgid "You have unsaved changes!"
msgstr "Mentetlen változtatások!"
File diff suppressed because it is too large Load Diff
+36 -28
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-07-26 07:19+0000\n"
"POT-Creation-Date: 2024-08-27 13:34+0000\n"
"PO-Revision-Date: 2023-09-20 14:01+0000\n"
"Last-Translator: Mahdia Aliyy <mahdlyy.k@gmail.com>\n"
"Language-Team: Indonesian <https://translate.pretix.eu/projects/pretix/"
@@ -570,52 +570,60 @@ msgctxt "entry_status"
msgid "absent"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:72
#: pretix/static/pretixcontrol/js/ui/editor.js:171
msgid "Check-in QR"
msgstr "QR masuk"
#: pretix/static/pretixcontrol/js/ui/editor.js:387
#: pretix/static/pretixcontrol/js/ui/editor.js:543
msgid "The PDF background file could not be loaded for the following reason:"
msgstr "File latar belakang PDF tidak dapat dimuat karena alasan berikut:"
#: pretix/static/pretixcontrol/js/ui/editor.js:656
#: pretix/static/pretixcontrol/js/ui/editor.js:894
msgid "Group of objects"
msgstr "Sekelompok objek"
#: pretix/static/pretixcontrol/js/ui/editor.js:661
msgid "Text object"
#: pretix/static/pretixcontrol/js/ui/editor.js:899
#, fuzzy
#| msgid "Text object"
msgid "Text object (deprecated)"
msgstr "Objek teks"
#: pretix/static/pretixcontrol/js/ui/editor.js:663
#: pretix/static/pretixcontrol/js/ui/editor.js:901
#, fuzzy
#| msgid "Text object"
msgid "Text box"
msgstr "Objek teks"
#: pretix/static/pretixcontrol/js/ui/editor.js:903
msgid "Barcode area"
msgstr "Area kode batang"
#: pretix/static/pretixcontrol/js/ui/editor.js:665
#: pretix/static/pretixcontrol/js/ui/editor.js:905
msgid "Image area"
msgstr "Daerah gambar"
#: pretix/static/pretixcontrol/js/ui/editor.js:667
#: pretix/static/pretixcontrol/js/ui/editor.js:907
msgid "Powered by pretix"
msgstr "Didukung oleh pretix"
#: pretix/static/pretixcontrol/js/ui/editor.js:669
#: pretix/static/pretixcontrol/js/ui/editor.js:909
msgid "Object"
msgstr "Obyek"
#: pretix/static/pretixcontrol/js/ui/editor.js:673
#: pretix/static/pretixcontrol/js/ui/editor.js:913
msgid "Ticket design"
msgstr "Desain tiket"
#: pretix/static/pretixcontrol/js/ui/editor.js:972
#: pretix/static/pretixcontrol/js/ui/editor.js:1250
msgid "Saving failed."
msgstr "Gagal menyimpan."
#: pretix/static/pretixcontrol/js/ui/editor.js:1041
#: pretix/static/pretixcontrol/js/ui/editor.js:1091
#: pretix/static/pretixcontrol/js/ui/editor.js:1319
#: pretix/static/pretixcontrol/js/ui/editor.js:1370
msgid "Error while uploading your PDF file, please try again."
msgstr "Terjadi kesalahan saat mengunggah file PDF Anda, coba lagi."
#: pretix/static/pretixcontrol/js/ui/editor.js:1074
#: pretix/static/pretixcontrol/js/ui/editor.js:1353
msgid "Do you really want to leave the editor without saving your changes?"
msgstr ""
"Apakah Anda benar-benar ingin keluar dari editor tanpa menyimpan perubahan?"
@@ -632,16 +640,16 @@ msgstr "Menghasilkan pesan…"
msgid "Unknown error."
msgstr "Kesalahan yang tidak diketahui."
#: pretix/static/pretixcontrol/js/ui/main.js:313
#: pretix/static/pretixcontrol/js/ui/main.js:318
msgid "Your color has great contrast and is very easy to read!"
msgstr "Warna Anda sangat kontras dan sangat mudah dibaca!"
#: pretix/static/pretixcontrol/js/ui/main.js:317
#: pretix/static/pretixcontrol/js/ui/main.js:322
msgid "Your color has decent contrast and is probably good-enough to read!"
msgstr ""
"Warna Anda memiliki kontras yang layak dan mungkin cukup bagus untuk dibaca!"
#: pretix/static/pretixcontrol/js/ui/main.js:321
#: pretix/static/pretixcontrol/js/ui/main.js:326
msgid ""
"Your color has bad contrast for text on white background, please choose a "
"darker shade."
@@ -649,40 +657,40 @@ msgstr ""
"Warna Anda memiliki kontras yang buruk untuk teks dengan latar belakang "
"putih, harap pilih warna yang lebih gelap."
#: pretix/static/pretixcontrol/js/ui/main.js:475
#: pretix/static/pretixcontrol/js/ui/main.js:495
#: pretix/static/pretixcontrol/js/ui/main.js:491
#: pretix/static/pretixcontrol/js/ui/main.js:511
msgid "Search query"
msgstr "Permintaan pencarian"
#: pretix/static/pretixcontrol/js/ui/main.js:493
#: pretix/static/pretixcontrol/js/ui/main.js:509
msgid "All"
msgstr "Semua"
#: pretix/static/pretixcontrol/js/ui/main.js:494
#: pretix/static/pretixcontrol/js/ui/main.js:510
msgid "None"
msgstr "Tidak ada"
#: pretix/static/pretixcontrol/js/ui/main.js:498
#: pretix/static/pretixcontrol/js/ui/main.js:514
msgid "Selected only"
msgstr "Hanya dipilih"
#: pretix/static/pretixcontrol/js/ui/main.js:828
#: pretix/static/pretixcontrol/js/ui/main.js:847
msgid "Enter page number between 1 and %(max)s."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:831
#: pretix/static/pretixcontrol/js/ui/main.js:850
msgid "Invalid page number."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:989
#: pretix/static/pretixcontrol/js/ui/main.js:1008
msgid "Use a different name internally"
msgstr "Gunakan nama yang berbeda secara internal"
#: pretix/static/pretixcontrol/js/ui/main.js:1029
#: pretix/static/pretixcontrol/js/ui/main.js:1048
msgid "Click to close"
msgstr "Klik untuk menutup"
#: pretix/static/pretixcontrol/js/ui/main.js:1104
#: pretix/static/pretixcontrol/js/ui/main.js:1123
msgid "You have unsaved changes!"
msgstr "Anda memiliki perubahan yang belum disimpan!"
File diff suppressed because it is too large Load Diff
+36 -28
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-07-26 07:19+0000\n"
"POT-Creation-Date: 2024-08-27 13:34+0000\n"
"PO-Revision-Date: 2023-05-18 01:00+0000\n"
"Last-Translator: M C <micasadmail@gmail.com>\n"
"Language-Team: Italian <https://translate.pretix.eu/projects/pretix/pretix-"
@@ -567,52 +567,60 @@ msgctxt "entry_status"
msgid "absent"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:72
#: pretix/static/pretixcontrol/js/ui/editor.js:171
msgid "Check-in QR"
msgstr "Check-in con QR"
#: pretix/static/pretixcontrol/js/ui/editor.js:387
#: pretix/static/pretixcontrol/js/ui/editor.js:543
msgid "The PDF background file could not be loaded for the following reason:"
msgstr "Il file PDF di sfondo non può essere caricato per le seguenti ragioni:"
#: pretix/static/pretixcontrol/js/ui/editor.js:656
#: pretix/static/pretixcontrol/js/ui/editor.js:894
msgid "Group of objects"
msgstr "Gruppo di oggetti"
#: pretix/static/pretixcontrol/js/ui/editor.js:661
msgid "Text object"
#: pretix/static/pretixcontrol/js/ui/editor.js:899
#, fuzzy
#| msgid "Text object"
msgid "Text object (deprecated)"
msgstr "Oggetto testo"
#: pretix/static/pretixcontrol/js/ui/editor.js:663
#: pretix/static/pretixcontrol/js/ui/editor.js:901
#, fuzzy
#| msgid "Text object"
msgid "Text box"
msgstr "Oggetto testo"
#: pretix/static/pretixcontrol/js/ui/editor.js:903
msgid "Barcode area"
msgstr "Area codice a barra"
#: pretix/static/pretixcontrol/js/ui/editor.js:665
#: pretix/static/pretixcontrol/js/ui/editor.js:905
msgid "Image area"
msgstr "Area immagini"
#: pretix/static/pretixcontrol/js/ui/editor.js:667
#: pretix/static/pretixcontrol/js/ui/editor.js:907
msgid "Powered by pretix"
msgstr "Powered by Pretix"
#: pretix/static/pretixcontrol/js/ui/editor.js:669
#: pretix/static/pretixcontrol/js/ui/editor.js:909
msgid "Object"
msgstr "Oggetto"
#: pretix/static/pretixcontrol/js/ui/editor.js:673
#: pretix/static/pretixcontrol/js/ui/editor.js:913
msgid "Ticket design"
msgstr "Design biglietto"
#: pretix/static/pretixcontrol/js/ui/editor.js:972
#: pretix/static/pretixcontrol/js/ui/editor.js:1250
msgid "Saving failed."
msgstr "Salvataggio fallito."
#: pretix/static/pretixcontrol/js/ui/editor.js:1041
#: pretix/static/pretixcontrol/js/ui/editor.js:1091
#: pretix/static/pretixcontrol/js/ui/editor.js:1319
#: pretix/static/pretixcontrol/js/ui/editor.js:1370
msgid "Error while uploading your PDF file, please try again."
msgstr "Errore durante il caricamento del tuo file PDF, prova di nuovo."
#: pretix/static/pretixcontrol/js/ui/editor.js:1074
#: pretix/static/pretixcontrol/js/ui/editor.js:1353
msgid "Do you really want to leave the editor without saving your changes?"
msgstr "Vuoi davvero abbandonare l'editor senza salvare le modifiche?"
@@ -628,56 +636,56 @@ msgstr "Stiamo generando i messaggi …"
msgid "Unknown error."
msgstr "Errore sconosciuto."
#: pretix/static/pretixcontrol/js/ui/main.js:313
#: pretix/static/pretixcontrol/js/ui/main.js:318
msgid "Your color has great contrast and is very easy to read!"
msgstr "Il colore scelto ha un ottimo contrasto ed è molto leggibile!"
#: pretix/static/pretixcontrol/js/ui/main.js:317
#: pretix/static/pretixcontrol/js/ui/main.js:322
msgid "Your color has decent contrast and is probably good-enough to read!"
msgstr ""
"Il colore scelto ha un buon contrasto e probabilmente è abbastanza leggibile!"
#: pretix/static/pretixcontrol/js/ui/main.js:321
#: pretix/static/pretixcontrol/js/ui/main.js:326
msgid ""
"Your color has bad contrast for text on white background, please choose a "
"darker shade."
msgstr ""
"Il colore scelto non ha un buon contrasto, per favore scegline uno più scuro."
#: pretix/static/pretixcontrol/js/ui/main.js:475
#: pretix/static/pretixcontrol/js/ui/main.js:495
#: pretix/static/pretixcontrol/js/ui/main.js:491
#: pretix/static/pretixcontrol/js/ui/main.js:511
msgid "Search query"
msgstr "Chiave di ricerca"
#: pretix/static/pretixcontrol/js/ui/main.js:493
#: pretix/static/pretixcontrol/js/ui/main.js:509
msgid "All"
msgstr "Tutto"
#: pretix/static/pretixcontrol/js/ui/main.js:494
#: pretix/static/pretixcontrol/js/ui/main.js:510
msgid "None"
msgstr "Nessuno"
#: pretix/static/pretixcontrol/js/ui/main.js:498
#: pretix/static/pretixcontrol/js/ui/main.js:514
msgid "Selected only"
msgstr "Solo i selezionati"
#: pretix/static/pretixcontrol/js/ui/main.js:828
#: pretix/static/pretixcontrol/js/ui/main.js:847
msgid "Enter page number between 1 and %(max)s."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:831
#: pretix/static/pretixcontrol/js/ui/main.js:850
msgid "Invalid page number."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:989
#: pretix/static/pretixcontrol/js/ui/main.js:1008
msgid "Use a different name internally"
msgstr "Utilizza un nome diverso internamente"
#: pretix/static/pretixcontrol/js/ui/main.js:1029
#: pretix/static/pretixcontrol/js/ui/main.js:1048
msgid "Click to close"
msgstr "Clicca per chiudere"
#: pretix/static/pretixcontrol/js/ui/main.js:1104
#: pretix/static/pretixcontrol/js/ui/main.js:1123
msgid "You have unsaved changes!"
msgstr "Hai cambiamenti non salvati!"
File diff suppressed because it is too large Load Diff
+36 -28
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-07-26 07:19+0000\n"
"POT-Creation-Date: 2024-08-27 13:34+0000\n"
"PO-Revision-Date: 2022-03-15 00:00+0000\n"
"Last-Translator: Yuriko Matsunami <y.matsunami@enobyte.com>\n"
"Language-Team: Japanese <https://translate.pretix.eu/projects/pretix/pretix-"
@@ -569,52 +569,60 @@ msgctxt "entry_status"
msgid "absent"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:72
#: pretix/static/pretixcontrol/js/ui/editor.js:171
msgid "Check-in QR"
msgstr "チェックイン用QRコード"
#: pretix/static/pretixcontrol/js/ui/editor.js:387
#: pretix/static/pretixcontrol/js/ui/editor.js:543
msgid "The PDF background file could not be loaded for the following reason:"
msgstr "以下の理由によりPDFファイルの読み込みに失敗しました:"
#: pretix/static/pretixcontrol/js/ui/editor.js:656
#: pretix/static/pretixcontrol/js/ui/editor.js:894
msgid "Group of objects"
msgstr "オブジェクトグループ"
#: pretix/static/pretixcontrol/js/ui/editor.js:661
msgid "Text object"
#: pretix/static/pretixcontrol/js/ui/editor.js:899
#, fuzzy
#| msgid "Text object"
msgid "Text object (deprecated)"
msgstr "テキストオブジェクト"
#: pretix/static/pretixcontrol/js/ui/editor.js:663
#: pretix/static/pretixcontrol/js/ui/editor.js:901
#, fuzzy
#| msgid "Text object"
msgid "Text box"
msgstr "テキストオブジェクト"
#: pretix/static/pretixcontrol/js/ui/editor.js:903
msgid "Barcode area"
msgstr "バーコードエリア"
#: pretix/static/pretixcontrol/js/ui/editor.js:665
#: pretix/static/pretixcontrol/js/ui/editor.js:905
msgid "Image area"
msgstr "画像エリア"
#: pretix/static/pretixcontrol/js/ui/editor.js:667
#: pretix/static/pretixcontrol/js/ui/editor.js:907
msgid "Powered by pretix"
msgstr "Pretixのイベントチケット売り場"
#: pretix/static/pretixcontrol/js/ui/editor.js:669
#: pretix/static/pretixcontrol/js/ui/editor.js:909
msgid "Object"
msgstr "オブジェクト"
#: pretix/static/pretixcontrol/js/ui/editor.js:673
#: pretix/static/pretixcontrol/js/ui/editor.js:913
msgid "Ticket design"
msgstr "チケットのデザイン"
#: pretix/static/pretixcontrol/js/ui/editor.js:972
#: pretix/static/pretixcontrol/js/ui/editor.js:1250
msgid "Saving failed."
msgstr "保存できませんでした。"
#: pretix/static/pretixcontrol/js/ui/editor.js:1041
#: pretix/static/pretixcontrol/js/ui/editor.js:1091
#: pretix/static/pretixcontrol/js/ui/editor.js:1319
#: pretix/static/pretixcontrol/js/ui/editor.js:1370
msgid "Error while uploading your PDF file, please try again."
msgstr "PDFのアップロード中に問題が発生しました。再試行してください。"
#: pretix/static/pretixcontrol/js/ui/editor.js:1074
#: pretix/static/pretixcontrol/js/ui/editor.js:1353
msgid "Do you really want to leave the editor without saving your changes?"
msgstr "変更内容を保存せずに編集を終了しますか?"
@@ -630,15 +638,15 @@ msgstr "メッセージを作成中…"
msgid "Unknown error."
msgstr "不明なエラー。"
#: pretix/static/pretixcontrol/js/ui/main.js:313
#: pretix/static/pretixcontrol/js/ui/main.js:318
msgid "Your color has great contrast and is very easy to read!"
msgstr "色彩のコントラストが良く読みやすいです!"
#: pretix/static/pretixcontrol/js/ui/main.js:317
#: pretix/static/pretixcontrol/js/ui/main.js:322
msgid "Your color has decent contrast and is probably good-enough to read!"
msgstr "色彩のコントラストは読むのに十分です!"
#: pretix/static/pretixcontrol/js/ui/main.js:321
#: pretix/static/pretixcontrol/js/ui/main.js:326
msgid ""
"Your color has bad contrast for text on white background, please choose a "
"darker shade."
@@ -646,40 +654,40 @@ msgstr ""
"このテキストカラーは白い背景とのコントラストがよくありません。暗い色に選び直"
"してください。"
#: pretix/static/pretixcontrol/js/ui/main.js:475
#: pretix/static/pretixcontrol/js/ui/main.js:495
#: pretix/static/pretixcontrol/js/ui/main.js:491
#: pretix/static/pretixcontrol/js/ui/main.js:511
msgid "Search query"
msgstr "検索ワード"
#: pretix/static/pretixcontrol/js/ui/main.js:493
#: pretix/static/pretixcontrol/js/ui/main.js:509
msgid "All"
msgstr "全"
#: pretix/static/pretixcontrol/js/ui/main.js:494
#: pretix/static/pretixcontrol/js/ui/main.js:510
msgid "None"
msgstr "ない"
#: pretix/static/pretixcontrol/js/ui/main.js:498
#: pretix/static/pretixcontrol/js/ui/main.js:514
msgid "Selected only"
msgstr "選択したもののみ"
#: pretix/static/pretixcontrol/js/ui/main.js:828
#: pretix/static/pretixcontrol/js/ui/main.js:847
msgid "Enter page number between 1 and %(max)s."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:831
#: pretix/static/pretixcontrol/js/ui/main.js:850
msgid "Invalid page number."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:989
#: pretix/static/pretixcontrol/js/ui/main.js:1008
msgid "Use a different name internally"
msgstr "内部で別の名前を使用してください"
#: pretix/static/pretixcontrol/js/ui/main.js:1029
#: pretix/static/pretixcontrol/js/ui/main.js:1048
msgid "Click to close"
msgstr "クリックして閉じる"
#: pretix/static/pretixcontrol/js/ui/main.js:1104
#: pretix/static/pretixcontrol/js/ui/main.js:1123
msgid "You have unsaved changes!"
msgstr "保存されていない変更があります!"
File diff suppressed because it is too large Load Diff
+32 -28
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-07-26 07:19+0000\n"
"POT-Creation-Date: 2024-08-27 13:34+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -543,52 +543,56 @@ msgctxt "entry_status"
msgid "absent"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:72
#: pretix/static/pretixcontrol/js/ui/editor.js:171
msgid "Check-in QR"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:387
#: pretix/static/pretixcontrol/js/ui/editor.js:543
msgid "The PDF background file could not be loaded for the following reason:"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:656
#: pretix/static/pretixcontrol/js/ui/editor.js:894
msgid "Group of objects"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:661
msgid "Text object"
#: pretix/static/pretixcontrol/js/ui/editor.js:899
msgid "Text object (deprecated)"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:663
#: pretix/static/pretixcontrol/js/ui/editor.js:901
msgid "Text box"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:903
msgid "Barcode area"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:665
#: pretix/static/pretixcontrol/js/ui/editor.js:905
msgid "Image area"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:667
#: pretix/static/pretixcontrol/js/ui/editor.js:907
msgid "Powered by pretix"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:669
#: pretix/static/pretixcontrol/js/ui/editor.js:909
msgid "Object"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:673
#: pretix/static/pretixcontrol/js/ui/editor.js:913
msgid "Ticket design"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:972
#: pretix/static/pretixcontrol/js/ui/editor.js:1250
msgid "Saving failed."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:1041
#: pretix/static/pretixcontrol/js/ui/editor.js:1091
#: pretix/static/pretixcontrol/js/ui/editor.js:1319
#: pretix/static/pretixcontrol/js/ui/editor.js:1370
msgid "Error while uploading your PDF file, please try again."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:1074
#: pretix/static/pretixcontrol/js/ui/editor.js:1353
msgid "Do you really want to leave the editor without saving your changes?"
msgstr ""
@@ -604,54 +608,54 @@ msgstr ""
msgid "Unknown error."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:313
#: pretix/static/pretixcontrol/js/ui/main.js:318
msgid "Your color has great contrast and is very easy to read!"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:317
#: pretix/static/pretixcontrol/js/ui/main.js:322
msgid "Your color has decent contrast and is probably good-enough to read!"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:321
#: pretix/static/pretixcontrol/js/ui/main.js:326
msgid ""
"Your color has bad contrast for text on white background, please choose a "
"darker shade."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:475
#: pretix/static/pretixcontrol/js/ui/main.js:495
#: pretix/static/pretixcontrol/js/ui/main.js:491
#: pretix/static/pretixcontrol/js/ui/main.js:511
msgid "Search query"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:493
#: pretix/static/pretixcontrol/js/ui/main.js:509
msgid "All"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:494
#: pretix/static/pretixcontrol/js/ui/main.js:510
msgid "None"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:498
#: pretix/static/pretixcontrol/js/ui/main.js:514
msgid "Selected only"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:828
#: pretix/static/pretixcontrol/js/ui/main.js:847
msgid "Enter page number between 1 and %(max)s."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:831
#: pretix/static/pretixcontrol/js/ui/main.js:850
msgid "Invalid page number."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:989
#: pretix/static/pretixcontrol/js/ui/main.js:1008
msgid "Use a different name internally"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:1029
#: pretix/static/pretixcontrol/js/ui/main.js:1048
msgid "Click to close"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:1104
#: pretix/static/pretixcontrol/js/ui/main.js:1123
msgid "You have unsaved changes!"
msgstr ""
File diff suppressed because it is too large Load Diff
+32 -28
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-07-26 07:19+0000\n"
"POT-Creation-Date: 2024-08-27 13:34+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -545,52 +545,56 @@ msgctxt "entry_status"
msgid "absent"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:72
#: pretix/static/pretixcontrol/js/ui/editor.js:171
msgid "Check-in QR"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:387
#: pretix/static/pretixcontrol/js/ui/editor.js:543
msgid "The PDF background file could not be loaded for the following reason:"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:656
#: pretix/static/pretixcontrol/js/ui/editor.js:894
msgid "Group of objects"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:661
msgid "Text object"
#: pretix/static/pretixcontrol/js/ui/editor.js:899
msgid "Text object (deprecated)"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:663
#: pretix/static/pretixcontrol/js/ui/editor.js:901
msgid "Text box"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:903
msgid "Barcode area"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:665
#: pretix/static/pretixcontrol/js/ui/editor.js:905
msgid "Image area"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:667
#: pretix/static/pretixcontrol/js/ui/editor.js:907
msgid "Powered by pretix"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:669
#: pretix/static/pretixcontrol/js/ui/editor.js:909
msgid "Object"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:673
#: pretix/static/pretixcontrol/js/ui/editor.js:913
msgid "Ticket design"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:972
#: pretix/static/pretixcontrol/js/ui/editor.js:1250
msgid "Saving failed."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:1041
#: pretix/static/pretixcontrol/js/ui/editor.js:1091
#: pretix/static/pretixcontrol/js/ui/editor.js:1319
#: pretix/static/pretixcontrol/js/ui/editor.js:1370
msgid "Error while uploading your PDF file, please try again."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:1074
#: pretix/static/pretixcontrol/js/ui/editor.js:1353
msgid "Do you really want to leave the editor without saving your changes?"
msgstr ""
@@ -606,54 +610,54 @@ msgstr ""
msgid "Unknown error."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:313
#: pretix/static/pretixcontrol/js/ui/main.js:318
msgid "Your color has great contrast and is very easy to read!"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:317
#: pretix/static/pretixcontrol/js/ui/main.js:322
msgid "Your color has decent contrast and is probably good-enough to read!"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:321
#: pretix/static/pretixcontrol/js/ui/main.js:326
msgid ""
"Your color has bad contrast for text on white background, please choose a "
"darker shade."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:475
#: pretix/static/pretixcontrol/js/ui/main.js:495
#: pretix/static/pretixcontrol/js/ui/main.js:491
#: pretix/static/pretixcontrol/js/ui/main.js:511
msgid "Search query"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:493
#: pretix/static/pretixcontrol/js/ui/main.js:509
msgid "All"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:494
#: pretix/static/pretixcontrol/js/ui/main.js:510
msgid "None"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:498
#: pretix/static/pretixcontrol/js/ui/main.js:514
msgid "Selected only"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:828
#: pretix/static/pretixcontrol/js/ui/main.js:847
msgid "Enter page number between 1 and %(max)s."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:831
#: pretix/static/pretixcontrol/js/ui/main.js:850
msgid "Invalid page number."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:989
#: pretix/static/pretixcontrol/js/ui/main.js:1008
msgid "Use a different name internally"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:1029
#: pretix/static/pretixcontrol/js/ui/main.js:1048
msgid "Click to close"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:1104
#: pretix/static/pretixcontrol/js/ui/main.js:1123
msgid "You have unsaved changes!"
msgstr ""
File diff suppressed because it is too large Load Diff
+36 -28
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-07-26 07:19+0000\n"
"POT-Creation-Date: 2024-08-27 13:34+0000\n"
"PO-Revision-Date: 2022-04-06 03:00+0000\n"
"Last-Translator: Liga V <lerning_by_dreaming@gmx.de>\n"
"Language-Team: Latvian <https://translate.pretix.eu/projects/pretix/pretix-"
@@ -571,53 +571,61 @@ msgctxt "entry_status"
msgid "absent"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:72
#: pretix/static/pretixcontrol/js/ui/editor.js:171
msgid "Check-in QR"
msgstr "Reģistrācijas QR"
#: pretix/static/pretixcontrol/js/ui/editor.js:387
#: pretix/static/pretixcontrol/js/ui/editor.js:543
msgid "The PDF background file could not be loaded for the following reason:"
msgstr "Fona PDF fails nevarēja ielādēties sekojoša iemesla dēļ:"
#: pretix/static/pretixcontrol/js/ui/editor.js:656
#: pretix/static/pretixcontrol/js/ui/editor.js:894
msgid "Group of objects"
msgstr "Objektu grupa"
#: pretix/static/pretixcontrol/js/ui/editor.js:661
msgid "Text object"
#: pretix/static/pretixcontrol/js/ui/editor.js:899
#, fuzzy
#| msgid "Text object"
msgid "Text object (deprecated)"
msgstr "Teksta objekts"
#: pretix/static/pretixcontrol/js/ui/editor.js:663
#: pretix/static/pretixcontrol/js/ui/editor.js:901
#, fuzzy
#| msgid "Text object"
msgid "Text box"
msgstr "Teksta objekts"
#: pretix/static/pretixcontrol/js/ui/editor.js:903
msgid "Barcode area"
msgstr "Svītru koda lauks"
#: pretix/static/pretixcontrol/js/ui/editor.js:665
#: pretix/static/pretixcontrol/js/ui/editor.js:905
msgid "Image area"
msgstr "Attēla lauks"
#: pretix/static/pretixcontrol/js/ui/editor.js:667
#: pretix/static/pretixcontrol/js/ui/editor.js:907
msgid "Powered by pretix"
msgstr "Pretix atbalstīts"
#: pretix/static/pretixcontrol/js/ui/editor.js:669
#: pretix/static/pretixcontrol/js/ui/editor.js:909
msgid "Object"
msgstr "Objekts"
#: pretix/static/pretixcontrol/js/ui/editor.js:673
#: pretix/static/pretixcontrol/js/ui/editor.js:913
msgid "Ticket design"
msgstr "Biļešu dizains"
#: pretix/static/pretixcontrol/js/ui/editor.js:972
#: pretix/static/pretixcontrol/js/ui/editor.js:1250
msgid "Saving failed."
msgstr "Saglabāšana neizdevās."
#: pretix/static/pretixcontrol/js/ui/editor.js:1041
#: pretix/static/pretixcontrol/js/ui/editor.js:1091
#: pretix/static/pretixcontrol/js/ui/editor.js:1319
#: pretix/static/pretixcontrol/js/ui/editor.js:1370
msgid "Error while uploading your PDF file, please try again."
msgstr ""
"Radusies kļūda augšupielādējot jūsu PDF failu, lūdzu, mēģiniet vēlreiz."
#: pretix/static/pretixcontrol/js/ui/editor.js:1074
#: pretix/static/pretixcontrol/js/ui/editor.js:1353
msgid "Do you really want to leave the editor without saving your changes?"
msgstr ""
"Vai jūs tiešām vēlaties iziet no rediģēšanas lauka bez veikto izmaiņu "
@@ -635,17 +643,17 @@ msgstr "Ziņas tiek ģenerētas …"
msgid "Unknown error."
msgstr "Nezināma kļūda."
#: pretix/static/pretixcontrol/js/ui/main.js:313
#: pretix/static/pretixcontrol/js/ui/main.js:318
msgid "Your color has great contrast and is very easy to read!"
msgstr "Izvēlētā teksta krāsa ļoti labi izceļas un ir viegli izlasāma!"
#: pretix/static/pretixcontrol/js/ui/main.js:317
#: pretix/static/pretixcontrol/js/ui/main.js:322
msgid "Your color has decent contrast and is probably good-enough to read!"
msgstr ""
"Izvēlētā teksta krāsa pietiekami izceļas un visdrīzāk būs samērā viegli "
"izlasāma!"
#: pretix/static/pretixcontrol/js/ui/main.js:321
#: pretix/static/pretixcontrol/js/ui/main.js:326
msgid ""
"Your color has bad contrast for text on white background, please choose a "
"darker shade."
@@ -653,40 +661,40 @@ msgstr ""
"Izvēlētā krāsa tekstam neizceļas uz esošā fona, lūdzu, izvēlieties tumšāku "
"krāsu."
#: pretix/static/pretixcontrol/js/ui/main.js:475
#: pretix/static/pretixcontrol/js/ui/main.js:495
#: pretix/static/pretixcontrol/js/ui/main.js:491
#: pretix/static/pretixcontrol/js/ui/main.js:511
msgid "Search query"
msgstr "Meklēšanas pieprasījums"
#: pretix/static/pretixcontrol/js/ui/main.js:493
#: pretix/static/pretixcontrol/js/ui/main.js:509
msgid "All"
msgstr "Visi"
#: pretix/static/pretixcontrol/js/ui/main.js:494
#: pretix/static/pretixcontrol/js/ui/main.js:510
msgid "None"
msgstr "Neviens"
#: pretix/static/pretixcontrol/js/ui/main.js:498
#: pretix/static/pretixcontrol/js/ui/main.js:514
msgid "Selected only"
msgstr "Tikai atzīmētos"
#: pretix/static/pretixcontrol/js/ui/main.js:828
#: pretix/static/pretixcontrol/js/ui/main.js:847
msgid "Enter page number between 1 and %(max)s."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:831
#: pretix/static/pretixcontrol/js/ui/main.js:850
msgid "Invalid page number."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:989
#: pretix/static/pretixcontrol/js/ui/main.js:1008
msgid "Use a different name internally"
msgstr "Izmantojiet citu nosaukumu iekšēji"
#: pretix/static/pretixcontrol/js/ui/main.js:1029
#: pretix/static/pretixcontrol/js/ui/main.js:1048
msgid "Click to close"
msgstr "Noklikšķiniet, lai aizvērtu"
#: pretix/static/pretixcontrol/js/ui/main.js:1104
#: pretix/static/pretixcontrol/js/ui/main.js:1123
msgid "You have unsaved changes!"
msgstr "Jums ir nesaglabātas izmaiņas!"
File diff suppressed because it is too large Load Diff
+32 -28
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-07-26 07:19+0000\n"
"POT-Creation-Date: 2024-08-27 13:34+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -543,52 +543,56 @@ msgctxt "entry_status"
msgid "absent"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:72
#: pretix/static/pretixcontrol/js/ui/editor.js:171
msgid "Check-in QR"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:387
#: pretix/static/pretixcontrol/js/ui/editor.js:543
msgid "The PDF background file could not be loaded for the following reason:"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:656
#: pretix/static/pretixcontrol/js/ui/editor.js:894
msgid "Group of objects"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:661
msgid "Text object"
#: pretix/static/pretixcontrol/js/ui/editor.js:899
msgid "Text object (deprecated)"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:663
#: pretix/static/pretixcontrol/js/ui/editor.js:901
msgid "Text box"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:903
msgid "Barcode area"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:665
#: pretix/static/pretixcontrol/js/ui/editor.js:905
msgid "Image area"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:667
#: pretix/static/pretixcontrol/js/ui/editor.js:907
msgid "Powered by pretix"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:669
#: pretix/static/pretixcontrol/js/ui/editor.js:909
msgid "Object"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:673
#: pretix/static/pretixcontrol/js/ui/editor.js:913
msgid "Ticket design"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:972
#: pretix/static/pretixcontrol/js/ui/editor.js:1250
msgid "Saving failed."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:1041
#: pretix/static/pretixcontrol/js/ui/editor.js:1091
#: pretix/static/pretixcontrol/js/ui/editor.js:1319
#: pretix/static/pretixcontrol/js/ui/editor.js:1370
msgid "Error while uploading your PDF file, please try again."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:1074
#: pretix/static/pretixcontrol/js/ui/editor.js:1353
msgid "Do you really want to leave the editor without saving your changes?"
msgstr ""
@@ -604,54 +608,54 @@ msgstr ""
msgid "Unknown error."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:313
#: pretix/static/pretixcontrol/js/ui/main.js:318
msgid "Your color has great contrast and is very easy to read!"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:317
#: pretix/static/pretixcontrol/js/ui/main.js:322
msgid "Your color has decent contrast and is probably good-enough to read!"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:321
#: pretix/static/pretixcontrol/js/ui/main.js:326
msgid ""
"Your color has bad contrast for text on white background, please choose a "
"darker shade."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:475
#: pretix/static/pretixcontrol/js/ui/main.js:495
#: pretix/static/pretixcontrol/js/ui/main.js:491
#: pretix/static/pretixcontrol/js/ui/main.js:511
msgid "Search query"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:493
#: pretix/static/pretixcontrol/js/ui/main.js:509
msgid "All"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:494
#: pretix/static/pretixcontrol/js/ui/main.js:510
msgid "None"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:498
#: pretix/static/pretixcontrol/js/ui/main.js:514
msgid "Selected only"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:828
#: pretix/static/pretixcontrol/js/ui/main.js:847
msgid "Enter page number between 1 and %(max)s."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:831
#: pretix/static/pretixcontrol/js/ui/main.js:850
msgid "Invalid page number."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:989
#: pretix/static/pretixcontrol/js/ui/main.js:1008
msgid "Use a different name internally"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:1029
#: pretix/static/pretixcontrol/js/ui/main.js:1048
msgid "Click to close"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:1104
#: pretix/static/pretixcontrol/js/ui/main.js:1123
msgid "You have unsaved changes!"
msgstr ""
File diff suppressed because it is too large Load Diff
+36 -28
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-07-26 07:19+0000\n"
"POT-Creation-Date: 2024-08-27 13:34+0000\n"
"PO-Revision-Date: 2024-03-10 03:00+0000\n"
"Last-Translator: fyksen <fredrik@fyksen.me>\n"
"Language-Team: Norwegian Bokmål <https://translate.pretix.eu/projects/pretix/"
@@ -558,52 +558,60 @@ msgctxt "entry_status"
msgid "absent"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js:72
#: pretix/static/pretixcontrol/js/ui/editor.js:171
msgid "Check-in QR"
msgstr "Sjekk-in QR"
#: pretix/static/pretixcontrol/js/ui/editor.js:387
#: pretix/static/pretixcontrol/js/ui/editor.js:543
msgid "The PDF background file could not be loaded for the following reason:"
msgstr "PDF bakgrunnsfilen kunne ikke lastes av følgende årsak:"
#: pretix/static/pretixcontrol/js/ui/editor.js:656
#: pretix/static/pretixcontrol/js/ui/editor.js:894
msgid "Group of objects"
msgstr "Gruppe med objekter"
#: pretix/static/pretixcontrol/js/ui/editor.js:661
msgid "Text object"
#: pretix/static/pretixcontrol/js/ui/editor.js:899
#, fuzzy
#| msgid "Text object"
msgid "Text object (deprecated)"
msgstr "Tekst objekt"
#: pretix/static/pretixcontrol/js/ui/editor.js:663
#: pretix/static/pretixcontrol/js/ui/editor.js:901
#, fuzzy
#| msgid "Text object"
msgid "Text box"
msgstr "Tekst objekt"
#: pretix/static/pretixcontrol/js/ui/editor.js:903
msgid "Barcode area"
msgstr "Strekkodeområde"
#: pretix/static/pretixcontrol/js/ui/editor.js:665
#: pretix/static/pretixcontrol/js/ui/editor.js:905
msgid "Image area"
msgstr "Bildeområde"
#: pretix/static/pretixcontrol/js/ui/editor.js:667
#: pretix/static/pretixcontrol/js/ui/editor.js:907
msgid "Powered by pretix"
msgstr "Drevet av pretix"
#: pretix/static/pretixcontrol/js/ui/editor.js:669
#: pretix/static/pretixcontrol/js/ui/editor.js:909
msgid "Object"
msgstr "Objekt"
#: pretix/static/pretixcontrol/js/ui/editor.js:673
#: pretix/static/pretixcontrol/js/ui/editor.js:913
msgid "Ticket design"
msgstr "Billett design"
#: pretix/static/pretixcontrol/js/ui/editor.js:972
#: pretix/static/pretixcontrol/js/ui/editor.js:1250
msgid "Saving failed."
msgstr "Lagring feilet."
#: pretix/static/pretixcontrol/js/ui/editor.js:1041
#: pretix/static/pretixcontrol/js/ui/editor.js:1091
#: pretix/static/pretixcontrol/js/ui/editor.js:1319
#: pretix/static/pretixcontrol/js/ui/editor.js:1370
msgid "Error while uploading your PDF file, please try again."
msgstr "Feil ved opplasting av PDF fil, prøv på nytt."
#: pretix/static/pretixcontrol/js/ui/editor.js:1074
#: pretix/static/pretixcontrol/js/ui/editor.js:1353
msgid "Do you really want to leave the editor without saving your changes?"
msgstr "Vil du avslutte editoren uten å lagre endringene?"
@@ -619,54 +627,54 @@ msgstr "Genererer meldinger…"
msgid "Unknown error."
msgstr "Ukjent feil."
#: pretix/static/pretixcontrol/js/ui/main.js:313
#: pretix/static/pretixcontrol/js/ui/main.js:318
msgid "Your color has great contrast and is very easy to read!"
msgstr "Fargen du valgte har høy kontrast og er veldig enkel å lese!"
#: pretix/static/pretixcontrol/js/ui/main.js:317
#: pretix/static/pretixcontrol/js/ui/main.js:322
msgid "Your color has decent contrast and is probably good-enough to read!"
msgstr "Fargen du valgte har grei kontrast og er ganske enkel å lese!"
#: pretix/static/pretixcontrol/js/ui/main.js:321
#: pretix/static/pretixcontrol/js/ui/main.js:326
msgid ""
"Your color has bad contrast for text on white background, please choose a "
"darker shade."
msgstr "Fargen du valgte har dårlig kontrast mot hvit, velg en mørkere farge."
#: pretix/static/pretixcontrol/js/ui/main.js:475
#: pretix/static/pretixcontrol/js/ui/main.js:495
#: pretix/static/pretixcontrol/js/ui/main.js:491
#: pretix/static/pretixcontrol/js/ui/main.js:511
msgid "Search query"
msgstr "Søkeord"
#: pretix/static/pretixcontrol/js/ui/main.js:493
#: pretix/static/pretixcontrol/js/ui/main.js:509
msgid "All"
msgstr "Alle"
#: pretix/static/pretixcontrol/js/ui/main.js:494
#: pretix/static/pretixcontrol/js/ui/main.js:510
msgid "None"
msgstr "Ingen"
#: pretix/static/pretixcontrol/js/ui/main.js:498
#: pretix/static/pretixcontrol/js/ui/main.js:514
msgid "Selected only"
msgstr "Kun valgte"
#: pretix/static/pretixcontrol/js/ui/main.js:828
#: pretix/static/pretixcontrol/js/ui/main.js:847
msgid "Enter page number between 1 and %(max)s."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:831
#: pretix/static/pretixcontrol/js/ui/main.js:850
msgid "Invalid page number."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js:989
#: pretix/static/pretixcontrol/js/ui/main.js:1008
msgid "Use a different name internally"
msgstr "Bruk et annet navn internt"
#: pretix/static/pretixcontrol/js/ui/main.js:1029
#: pretix/static/pretixcontrol/js/ui/main.js:1048
msgid "Click to close"
msgstr "Klikk for å lukke"
#: pretix/static/pretixcontrol/js/ui/main.js:1104
#: pretix/static/pretixcontrol/js/ui/main.js:1123
msgid "You have unsaved changes!"
msgstr "Du har ikke-lagrede endringer!"
File diff suppressed because it is too large Load Diff

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