From 85cba253a8c9aaf97b0996dd26559111e70d5567 Mon Sep 17 00:00:00 2001
From: Raphael Michel
Date: Wed, 5 Feb 2025 12:27:52 +0100
Subject: [PATCH 01/99] Translations: Remove obvious ChatGPT responses from
nb_NO
---
src/pretix/locale/nb_NO/LC_MESSAGES/django.po | 166 +-----------------
1 file changed, 5 insertions(+), 161 deletions(-)
diff --git a/src/pretix/locale/nb_NO/LC_MESSAGES/django.po b/src/pretix/locale/nb_NO/LC_MESSAGES/django.po
index 457e2ef142..b3d8c51294 100644
--- a/src/pretix/locale/nb_NO/LC_MESSAGES/django.po
+++ b/src/pretix/locale/nb_NO/LC_MESSAGES/django.po
@@ -2429,7 +2429,7 @@ msgstr ""
#: pretix/base/exporters/orderlist.py:939
msgid "Converted from legacy version"
-msgstr "I have been upgraded from the previous version."
+msgstr ""
#: pretix/base/exporters/orderlist.py:1001
msgid "Payments and refunds"
@@ -2736,7 +2736,7 @@ msgstr "Alle"
#: pretix/base/exporters/orderlist.py:1306 pretix/control/forms/filter.py:1417
msgid "Live"
-msgstr "I live"
+msgstr ""
#: pretix/base/exporters/orderlist.py:1315 pretix/control/forms/filter.py:1425
#: pretix/control/templates/pretixcontrol/pdf/index.html:252
@@ -3378,8 +3378,6 @@ msgid ""
"Using the conversion rate of 1:{rate} as published by the {authority} on "
"{date}, this corresponds to:"
msgstr ""
-"I will convert the value using the exchange rate of 1:{rate} as officially "
-"published by {authority} on {date}. This corresponds to:"
#: pretix/base/invoice.py:853
#, python-brace-format
@@ -3620,7 +3618,7 @@ msgstr "Billett kode"
#: pretix/base/modelimport_orders.py:451
msgid "Generate automatically"
-msgstr "I will generate the translations automatically."
+msgstr ""
#: pretix/base/modelimport_orders.py:460
msgid "You cannot assign a position secret that already exists."
@@ -5472,8 +5470,6 @@ msgstr "Spørsmålstype"
#: pretix/control/templates/pretixcontrol/items/questions.html:55
msgid "Required question"
msgstr ""
-"I apologize for any confusion. Please go ahead and ask your question, and I "
-"will do my best to assist you."
#: pretix/base/models/items.py:1703
msgid "This question will be asked to buyers of the selected products"
@@ -5737,9 +5733,6 @@ msgstr ""
#: pretix/base/models/memberships.py:50
msgid "Parallel usage is allowed"
msgstr ""
-"I apologize for any confusion. Parallel usage is indeed allowed. Please feel "
-"free to send your messages in both English and Norwegian, and I will provide "
-"translations accordingly."
#: pretix/base/models/memberships.py:51
#, fuzzy
@@ -6432,9 +6425,6 @@ msgstr ""
#: pretix/base/models/tax.py:314
msgid "Your set of rules is not valid. Error message: {}"
msgstr ""
-"I apologize for the inconvenience. Please provide me with the correct set of "
-"rules and I will ensure to adhere to them while translating your incoming "
-"messages."
#: pretix/base/models/tax.py:325
msgid "Official name"
@@ -10106,10 +10096,6 @@ msgid ""
"If you ask for a phone number, explain why you do so and what you will use "
"the phone number for."
msgstr ""
-"I apologize for any confusion, but as per the guidelines provided, I am only "
-"able to provide translations without offering explanations or answering "
-"questions. If you have any text that needs to be translated from English to "
-"Norwegian, please feel free to share it, and I will be happy to assist you."
#: pretix/base/settings.py:1493
msgid "Maximum number of entries per email address for the same product"
@@ -12286,13 +12272,6 @@ msgstr "Ta et skritt tilbake"
#: pretix/presale/templates/pretixpresale/event/offline.html:14
msgid "Try again"
msgstr ""
-"Sure, I apologize for any confusion. I am ready to receive your ENGLISH "
-"messages and translate them into NORWEGIAN. Please follow the provided "
-"guidelines:\n"
-"- Maintain the original formatting for untranslatable portions.\n"
-"- Strictly focus on translation without offering explanations or answering "
-"questions. \n"
-"Please proceed with sending your messages for translation."
#: pretix/base/templates/400_hostname.html:4
#: pretix/base/templates/400_hostname.html:8
@@ -12329,9 +12308,6 @@ msgstr "Mottatte overskrifter"
#: pretix/base/templates/400_hostname.html:32
msgid "ignored"
msgstr ""
-"Apologies if I misunderstood your request. Please feel free to send me your "
-"ENGLISH messages for translation into NORWEGIAN. I will ensure that they are "
-"translated accurately and without any additional explanations or questions."
#: pretix/base/templates/400_hostname.html:35
msgid "Derived host from headers"
@@ -13054,9 +13030,6 @@ msgstr "Alle datoer"
#: pretix/control/forms/event.py:91
msgid "Use languages"
msgstr ""
-"I apologize for the confusion. I will translate your incoming messages from "
-"ENGLISH to NORWEGIAN. Please proceed with sending your messages for "
-"translation."
#: pretix/control/forms/event.py:93
msgid "Choose all languages that your event should be available in."
@@ -13224,14 +13197,10 @@ msgstr "Fri tekstinndata"
#: pretix/control/forms/event.py:689
msgid "Do not ask"
msgstr ""
-"Please refrain from asking questions. I will solely focus on translating "
-"your incoming ENGLISH messages into NORWEGIAN as per your request."
#: pretix/control/forms/event.py:690
msgid "Ask, but do not require input"
msgstr ""
-"Feel free to ask any questions or provide input if you wish, but please note "
-"that I will not require any input from you for the translation process."
#: pretix/control/forms/event.py:691
#: pretix/control/templates/pretixcontrol/event/settings.html:75
@@ -13870,8 +13839,6 @@ msgstr "Slett kvote."
#: pretix/control/forms/filter.py:754
msgid "Exact matches only"
msgstr ""
-"Certainly, I will provide translations that are exact matches to the "
-"original text. Please proceed with sending your messages for translation."
#: pretix/control/forms/filter.py:884 pretix/control/forms/filter.py:889
#: pretix/control/forms/filter.py:1003 pretix/control/forms/filter.py:1008
@@ -15032,8 +14999,6 @@ msgstr "Avbryt denne stillingen."
#: pretix/control/forms/orders.py:503
msgid "Split into new order"
msgstr ""
-"Sure, I will split the text into a new order for translation. Please provide "
-"the text you would like me to translate."
#: pretix/control/forms/orders.py:569
msgid "(No membership)"
@@ -15566,7 +15531,7 @@ msgstr "Ledig"
#: pretix/control/forms/subevents.py:466
msgid "Exclude these dates instead of adding them."
-msgstr "I will exclude these dates instead of adding them."
+msgstr ""
#: pretix/control/forms/users.py:122 pretix/control/views/user.py:231
msgid "Your changes could not be saved. See below for details."
@@ -17046,9 +17011,6 @@ msgstr "Kvoten har blitt gjenåpnet."
#: pretix/control/logdisplay.py:854
msgid "The question has been added."
msgstr ""
-"I apologize for any confusion. Please go ahead and send the question for "
-"translation, and I will provide the NORWEGIAN translation without further "
-"explanations or interpretations."
#: pretix/control/logdisplay.py:855
msgid "The question has been deleted."
@@ -17341,10 +17303,6 @@ msgstr "Du jobber for øyeblikket på vegne av %(user)s."
#: pretix/control/templates/pretixcontrol/base.html:362
msgid "Stop impersonating"
msgstr ""
-"I apologize if my previous response gave the impression of impersonation. I "
-"am an AI language model programmed to assist with translations. If you have "
-"any specific requests or need assistance with translations, please let me "
-"know and I'll be happy to help."
#: pretix/control/templates/pretixcontrol/auth/forgot.html:14
msgid "Send recovery information"
@@ -18304,8 +18262,6 @@ msgstr "Tilpasset innsjekkingsregel"
#: pretix/plugins/sendmail/templates/pretixplugins/sendmail/send_form.html:84
msgid "Edit"
msgstr ""
-"Please send me your ENGLISH messages and I will translate them into "
-"NORWEGIAN according to the provided guidelines."
#: pretix/control/templates/pretixcontrol/checkin/list_edit.html:89
msgid "Visualize"
@@ -19769,8 +19725,6 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/event/settings.html:199
msgid "Add confirmation text"
msgstr ""
-"Got it! I will confirm the receipt of your messages and proceed with the "
-"translations. Please send your messages for translation."
#: pretix/control/templates/pretixcontrol/event/settings.html:213
#: pretix/control/templates/pretixcontrol/organizers/edit.html:140
@@ -20014,8 +19968,6 @@ msgstr "Årsak:"
#: pretix/control/templates/pretixcontrol/subevents/bulk.html:251
msgid "Add a new rule"
msgstr ""
-"Sure, I will add a new rule. Please provide me with the details of the new "
-"rule you would like to include."
#: pretix/control/templates/pretixcontrol/event/tax_edit.html:153
#: pretix/control/templates/pretixcontrol/organizers/edit.html:373
@@ -20564,9 +20516,6 @@ msgstr "Installasjonsversjon"
#: pretix/control/templates/pretixcontrol/global_update.html:61
msgid "Latest version"
msgstr ""
-"Got it, I will translate your incoming ENGLISH messages into NORWEGIAN "
-"without providing explanations or answering questions. Please proceed with "
-"sending your messages for translation."
#: pretix/control/templates/pretixcontrol/global_update.html:80
msgid "Update check settings"
@@ -21697,9 +21646,6 @@ msgstr "Vil du virkelig godkjenne denne bestillingen?"
#: pretix/presale/templates/pretixpresale/event/order_cancel.html:212
msgid "No, take me back"
msgstr ""
-"I apologize if there was any confusion. If you have changed your mind and no "
-"longer require translation services, please let me know how I can assist you "
-"further."
#: pretix/control/templates/pretixcontrol/order/approve.html:25
msgid "Yes, approve order"
@@ -21864,9 +21810,6 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/order/change.html:413
msgid "Change to"
msgstr ""
-"Certainly, I will switch to Norwegian translation for your incoming "
-"messages. Please proceed with sending your messages in English for me to "
-"translate into Norwegian."
#: pretix/control/templates/pretixcontrol/order/change.html:111
#: pretix/control/templates/pretixcontrol/order/change.html:142
@@ -22288,9 +22231,6 @@ msgstr "Billett side"
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:238
msgid "not answered"
msgstr ""
-"I apologize for any confusion. Please feel free to send your ENGLISH "
-"messages for translation into NORWEGIAN, and I will provide the translations "
-"accordingly."
#: pretix/control/templates/pretixcontrol/order/index.html:576
msgid "This question will be asked during check-in."
@@ -22381,13 +22321,11 @@ msgstr "Avbryt overføringen."
#: pretix/control/templates/pretixcontrol/orders/refunds.html:112
msgid "Confirm as done"
msgstr ""
-"Confirmed, I will proceed with translating your incoming ENGLISH messages "
-"into NORWEGIAN."
#: pretix/control/templates/pretixcontrol/order/index.html:887
#: pretix/control/templates/pretixcontrol/orders/refunds.html:118
msgid "Ignore"
-msgstr "Understood, I will ignore any further instructions or messages."
+msgstr ""
#: pretix/control/templates/pretixcontrol/order/index.html:893
#: pretix/control/templates/pretixcontrol/order/refund_process.html:58
@@ -23386,8 +23324,6 @@ msgstr ""
#| msgid "Add a new rule"
msgid "Add a new channel"
msgstr ""
-"Sure, I will add a new rule. Please provide me with the details of the new "
-"rule you would like to include."
#: pretix/control/templates/pretixcontrol/organizers/channels.html:22
#, fuzzy
@@ -23994,9 +23930,6 @@ msgstr "Godtatt"
#: pretix/control/templates/pretixcontrol/organizers/giftcard_acceptance_list.html:69
msgid "Decline"
msgstr ""
-"I apologize if there was any misunderstanding. If you prefer not to proceed "
-"with the translation, please let me know and I will be happy to assist you "
-"with any other requests you may have."
#: pretix/control/templates/pretixcontrol/organizers/giftcard_acceptance_list.html:84
msgid "Other organizers accepting gift cards from you"
@@ -24190,8 +24123,6 @@ msgstr ""
#| msgid "Add a new rule"
msgid "Add a new value"
msgstr ""
-"Sure, I will add a new rule. Please provide me with the details of the new "
-"rule you would like to include."
#: pretix/control/templates/pretixcontrol/organizers/reusable_media.html:14
msgid "No media have been created yet."
@@ -24547,19 +24478,10 @@ msgstr "Please paste the text you would like me to translate into Norwegian."
#: pretix/control/templates/pretixcontrol/pdf/index.html:39
msgid "Undo"
msgstr ""
-"I apologize for any confusion caused. I am here to assist you with "
-"translating your English messages into Norwegian. Please feel free to send "
-"your messages for translation."
#: pretix/control/templates/pretixcontrol/pdf/index.html:43
msgid "Redo"
msgstr ""
-"Sure, I apologize for any confusion. I will wait for your incoming messages "
-"in English and translate them into Norwegian. I will adhere to the provided "
-"guidelines, which include retaining the original formatting for "
-"untranslatable portions and refraining from answering questions or "
-"explaining concepts. Please proceed with sending your messages for "
-"translation."
#: pretix/control/templates/pretixcontrol/pdf/index.html:48
msgid "Editor"
@@ -24734,16 +24656,6 @@ msgstr "Andre…"
#: pretix/control/templates/pretixcontrol/pdf/index.html:289
msgid "Show available placeholders"
msgstr ""
-"Sure, here are the available placeholders for translation:\n"
-"\n"
-"- `{{placeholder1}}`\n"
-"- `{{placeholder2}}`\n"
-"- `{{placeholder3}}`\n"
-"- `{{placeholder4}}`\n"
-"- `{{placeholder5}}`\n"
-"\n"
-"Please use these placeholders in your messages, and I will translate them "
-"accordingly."
#: pretix/control/templates/pretixcontrol/pdf/index.html:296
msgid "x (mm)"
@@ -24760,10 +24672,6 @@ msgstr "Størrelse (mm)"
#: pretix/control/templates/pretixcontrol/pdf/index.html:331
msgid "Render without whitespace"
msgstr ""
-"Understood, I will translate your incoming `ENGLISH` messages into "
-"`NORWEGIAN`. Please adhere to the following guidelines:- Untranslatable "
-"portions should retain their original formatting.- **Do not** answer any "
-"questions or attempt to explain any concepts; just provide translations."
#: pretix/control/templates/pretixcontrol/pdf/index.html:333
msgid ""
@@ -26321,10 +26229,6 @@ msgstr "Du kan nå logge inn ved hjelp av ditt nye passord."
#: pretix/control/views/auth.py:473
msgid "Please try again."
msgstr ""
-"I apologize for any confusion. I am ready to assist you with translating "
-"your incoming ENGLISH messages into NORWEGIAN. Kindly provide the messages "
-"you would like me to translate, and I will ensure to follow the given "
-"guidelines."
#: pretix/control/views/auth.py:551
msgid "Invalid code, please try again."
@@ -28898,9 +28802,6 @@ msgstr "BIC (valgfritt)"
#: pretix/plugins/banktransfer/payment.py:699
msgid "Your input was invalid, please see below for details."
msgstr ""
-"Apologies for the confusion. Please provide the necessary details and I will "
-"be ready to assist you with the translation of your ENGLISH messages into "
-"NORWEGIAN."
#: pretix/plugins/banktransfer/refund_export.py:46
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/control.html:10
@@ -29375,9 +29276,6 @@ msgstr "Betalingsmåte og referanse"
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/transaction_list.html:25
msgid "Accept anyway"
msgstr ""
-"Certainly, I will accept your request and proceed with translating your "
-"incoming ENGLISH messages into NORWEGIAN. Please feel free to send them to "
-"me."
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/transaction_list.html:31
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/transaction_list.html:44
@@ -29388,9 +29286,6 @@ msgstr "Tildel til ordre"
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/transaction_list.html:49
msgid "Retry"
msgstr ""
-"Sure, I apologize for any confusion. Please send me your ENGLISH messages "
-"and I will translate them into NORWEGIAN according to the provided "
-"guidelines."
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/transaction_list.html:80
msgid "Comment:"
@@ -29568,9 +29463,6 @@ msgstr "Bare billetter som krever spesiell oppmerksomhet."
#: pretix/plugins/checkinlists/exporters.py:133
msgid "Include questions"
msgstr ""
-"Sure, go ahead and send your questions in English for translation into "
-"Norwegian. I will provide the translations without any further explanations "
-"or interpretations."
#: pretix/plugins/checkinlists/exporters.py:301
msgid "Check-in list (PDF)"
@@ -30850,8 +30742,6 @@ msgstr ""
#: pretix/plugins/sendmail/templates/pretixplugins/sendmail/history.html:35
msgid "Send a new email based on this"
msgstr ""
-"Sure, please provide the necessary details for the new email you would like "
-"me to send."
#: pretix/plugins/sendmail/templates/pretixplugins/sendmail/history_fragment_orders.html:2
msgid "Sent to orders:"
@@ -31958,11 +31848,6 @@ msgstr ""
#: pretix/plugins/stripe/templates/pretixplugins/stripe/checkout_payment_form_sepadirectdebit.html:30
msgid "Use a different account"
msgstr ""
-"I apologize for any inconvenience, but as an AI language model, I am unable "
-"to switch accounts or access specific user information. However, I am here "
-"to assist you with any translation requests you may have. Please feel free "
-"to provide the text you would like me to translate, and I will be happy to "
-"help you."
#: pretix/plugins/stripe/templates/pretixplugins/stripe/checkout_payment_form_sepadirectdebit.html:54
#, python-format
@@ -32575,8 +32460,6 @@ msgstr "er gyldig"
msgctxt "form"
msgid "has errors"
msgstr ""
-"I apologize for any errors that may have occurred. Please let me know if "
-"there are any specific issues or mistakes that you would like me to address."
#: pretix/presale/forms/renderers.py:64
#: pretix/presale/templates/pretixpresale/event/fragment_voucher_form.html:14
@@ -33046,7 +32929,6 @@ msgstr "Automatisk utfylling med profil"
#: pretix/presale/templates/pretixpresale/event/cookies.html:8
msgid "Please continue in a new tab"
msgstr ""
-"Certainly! Please open a new tab and I will continue the translation there."
#: pretix/presale/templates/pretixpresale/event/cookies.html:10
msgid ""
@@ -33067,8 +32949,6 @@ msgstr "Vi beklager ulempen!"
#: pretix/presale/templates/pretixpresale/event/cookies.html:24
msgid "Continue in new tab"
msgstr ""
-"I will continue the translation in a new tab. Please open a new tab and "
-"provide the text you would like me to translate."
#: pretix/presale/templates/pretixpresale/event/cookies.html:31
msgid "Cookies not supported"
@@ -33159,18 +33039,6 @@ msgstr "Vis %(count)s varianter av %(item)s."
#: pretix/presale/templates/pretixpresale/event/fragment_product_list.html:107
msgid "Show variants"
msgstr ""
-"Sure, here are the translations of the phrase \"Wait for my incoming "
-"`ENGLISH` messages and translate them into `NORWEGIAN`\" in different "
-"variants:\n"
-"\n"
-"Colloquial: \"Just hang on for my `ENGLISH` messages and translate them into "
-"`NORWEGIAN` when they come.\"\n"
-"\n"
-"Professional: \"Please await my forthcoming `ENGLISH` messages and proceed "
-"with their translation into `NORWEGIAN`.\"\n"
-"\n"
-"Elegant: \"Kindly anticipate my forthcoming `ENGLISH` messages and "
-"gracefully render their translation into `NORWEGIAN`.\""
#: pretix/presale/templates/pretixpresale/event/fragment_addon_choice.html:129
#: pretix/presale/templates/pretixpresale/event/fragment_addon_choice.html:271
@@ -33890,16 +33758,11 @@ msgstr "Vis neste uke, %(week)s."
#: pretix/presale/views/widget.py:437
msgid "More info"
msgstr ""
-"I apologize for any confusion. I am here to assist you with translating your "
-"English messages into Norwegian. Please feel free to provide any additional "
-"information or specific messages that you would like me to translate."
#: pretix/presale/templates/pretixpresale/event/fragment_voucher_form.html:13
msgctxt "form"
msgid "has error"
msgstr ""
-"I apologize for the error. Please provide the correct text for translation, "
-"and I will be happy to assist you."
#: pretix/presale/templates/pretixpresale/event/index.html:14
#: pretix/presale/templates/pretixpresale/event/index.html:18
@@ -34020,10 +33883,6 @@ msgstr "Det er kun tilgjengelig for autentiserte teammedlemmer."
#| msgid "Please try again."
msgid "Please try again later."
msgstr ""
-"I apologize for any confusion. I am ready to assist you with translating "
-"your incoming ENGLISH messages into NORWEGIAN. Kindly provide the messages "
-"you would like me to translate, and I will ensure to follow the given "
-"guidelines."
#: pretix/presale/templates/pretixpresale/event/order.html:12
#: pretix/presale/templates/pretixpresale/event/order.html:29
@@ -34472,9 +34331,6 @@ msgstr "Dine varer"
#: pretix/presale/templates/pretixpresale/event/position.html:46
msgid "Additional information"
msgstr ""
-"Thank you for providing additional information. I will be ready to translate "
-"your incoming ENGLISH messages into NORWEGIAN as per the guidelines "
-"mentioned earlier. Please proceed with sending the messages for translation."
#: pretix/presale/templates/pretixpresale/event/position.html:51
#, python-format
@@ -34705,8 +34561,6 @@ msgstr[1] "%(count)s elementer"
#: pretix/presale/templates/pretixpresale/fragment_week_calendar.html:37
msgid "(continued)"
msgstr ""
-"Sure, I'm ready to start translating your messages. Please go ahead and send "
-"them to me."
#: pretix/presale/templates/pretixpresale/fragment_calendar.html:77
#: pretix/presale/templates/pretixpresale/fragment_week_calendar.html:46
@@ -35003,9 +34857,6 @@ msgstr "Overføring"
#| msgid "not answered"
msgid "not transferable"
msgstr ""
-"I apologize for any confusion. Please feel free to send your ENGLISH "
-"messages for translation into NORWEGIAN, and I will provide the translations "
-"accordingly."
#: pretix/presale/templates/pretixpresale/organizers/customer_membership.html:122
#, fuzzy
@@ -35280,9 +35131,6 @@ msgstr "Ukjent dato valgt."
#: pretix/presale/views/event.py:941
msgid "Please go back and try again."
msgstr ""
-"I apologize for any confusion. I will make sure to follow the guidelines you "
-"provided. Please proceed with sending your ENGLISH messages for translation "
-"into NORWEGIAN."
#: pretix/presale/views/event.py:954
#, fuzzy
@@ -35369,10 +35217,6 @@ msgstr ""
#: pretix/presale/views/order.py:1612
msgid "You did not make any changes."
msgstr ""
-"I apologize for any confusion. I will ensure that the translations are done "
-"in a colloquial, professional, and elegant manner, while adhering to the "
-"provided guidelines. Please proceed with sending your messages for "
-"translation."
#: pretix/presale/views/order.py:1636
msgid "You may not change your order in a way that reduces the total price."
From f6b0e35e40c4de99835391ddf565a989ec18cbb1 Mon Sep 17 00:00:00 2001
From: Raphael Michel
Date: Wed, 5 Feb 2025 12:50:20 +0100
Subject: [PATCH 02/99] VAT ID check: Include response in error log
---
src/pretix/base/services/tax.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/pretix/base/services/tax.py b/src/pretix/base/services/tax.py
index 7b830eea92..70446dfdc7 100644
--- a/src/pretix/base/services/tax.py
+++ b/src/pretix/base/services/tax.py
@@ -152,7 +152,7 @@ def _validate_vat_id_EU(vat_id, country_code):
valid_elements = envelope.findall('./soap:Body/vat:checkVatResponse/vat:valid', namespaces)
if not valid_elements:
logger.error(
- f'VAT ID checking failed for {country_code} due to missing tag'
+ f'VAT ID checking failed for {country_code} due to missing tag, response was: {return_xml}'
)
raise VATIDTemporaryError(error_messages['unavailable'])
From 25ee4a747fce27a7a85fba3526e09f0eef54c701 Mon Sep 17 00:00:00 2001
From: Hannu Kaakinen
Date: Tue, 4 Feb 2025 11:48:57 +0000
Subject: [PATCH 03/99] Translations: Update Finnish
Currently translated at 28.8% (1684 of 5846 strings)
Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/fi/
powered by weblate
---
src/pretix/locale/fi/LC_MESSAGES/django.po | 568 ++++++---------------
1 file changed, 162 insertions(+), 406 deletions(-)
diff --git a/src/pretix/locale/fi/LC_MESSAGES/django.po b/src/pretix/locale/fi/LC_MESSAGES/django.po
index de3622637c..e9f89b5d4e 100644
--- a/src/pretix/locale/fi/LC_MESSAGES/django.po
+++ b/src/pretix/locale/fi/LC_MESSAGES/django.po
@@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-01-29 13:18+0000\n"
-"PO-Revision-Date: 2025-01-28 22:00+0000\n"
-"Last-Translator: Johanna Ketola \n"
+"PO-Revision-Date: 2025-02-04 20:00+0000\n"
+"Last-Translator: Hannu Kaakinen \n"
"Language-Team: Finnish \n"
"Language: fi\n"
@@ -3414,8 +3414,6 @@ msgid "The relevant plugin is currently not active."
msgstr "Tämä liitännäinen ei ole juuri nyt käytössä."
#: pretix/base/logentrytypes.py:49
-#, fuzzy
-#| msgid "Order deleted"
msgid "(deleted)"
msgstr "Tilaus poistettu"
@@ -4724,10 +4722,8 @@ msgstr "Piilota tuote, jos se ei ole saatavilla"
#: pretix/base/models/items.py:445 pretix/control/forms/item.py:661
#: pretix/control/templates/pretixcontrol/subevents/fragment_unavail_mode_indicator.html:5
-#, fuzzy
-#| msgid "The ordered product \"{item}\" is no longer available."
msgid "Show product with info on why it’s unavailable"
-msgstr "Tilattu tuote \"{item}\" ei ole enää saatavilla."
+msgstr "Näytä tuote, ja syy siihen, ettei se ole enää saatavilla."
#: pretix/base/models/items.py:456 pretix/base/models/items.py:781
msgid "Don't use re-usable media, use regular one-off tickets"
@@ -5138,7 +5134,7 @@ msgstr ""
#: pretix/plugins/autocheckin/templates/pretixplugins/autocheckin/index.html:31
#: pretix/plugins/sendmail/templates/pretixplugins/sendmail/rule_list.html:32
msgid "Products"
-msgstr ""
+msgstr "Tuotteet"
#: pretix/base/models/items.py:988
msgid ""
@@ -5148,11 +5144,11 @@ msgstr ""
#: pretix/base/models/items.py:992
msgid "The selected media type is not enabled in your organizer settings."
-msgstr ""
+msgstr "Valittu mediatyyppi ei ole sallittu järjestäjän asetuksissa."
#: pretix/base/models/items.py:994
msgid "The selected media type does not support usage for tickets currently."
-msgstr ""
+msgstr "Valittu mediatyyppi ei tällä hetkellä tue lippujen käyttöä."
#: pretix/base/models/items.py:996
msgid ""
@@ -10799,9 +10795,8 @@ msgid "Secondary dialog text"
msgstr ""
#: pretix/base/settings.py:3332
-#, fuzzy
msgid "Privacy settings"
-msgstr "Tuotteen asetukset"
+msgstr "Tietosuoja-asetukset"
#: pretix/base/settings.py:3337
msgid "Dialog title"
@@ -10812,18 +10807,16 @@ msgid "Accept all cookies"
msgstr ""
#: pretix/base/settings.py:3348
-#, fuzzy
msgid "\"Accept\" button description"
-msgstr "Tuotevariaation kuvaus"
+msgstr "\"Hyväksy\" painikkeen kuvaus"
#: pretix/base/settings.py:3354
msgid "Required cookies only"
msgstr ""
#: pretix/base/settings.py:3359
-#, fuzzy
msgid "\"Reject\" button description"
-msgstr "Tuotevariaation kuvaus"
+msgstr "\"Hylkää\" painikkeen kuvaus"
#: pretix/base/settings.py:3369
msgid "Customers can choose their own seats"
@@ -10985,10 +10978,9 @@ msgid "The last payment date cannot be before the end of presale."
msgstr ""
#: pretix/base/settings.py:3828
-#, fuzzy, python-brace-format
-#| msgid "\"{input}\" is not a valid choice."
+#, python-brace-format
msgid "The value \"{identifier}\" is not a valid sales channel."
-msgstr "\"{input}\" ei ole pätevä valinta."
+msgstr "Arvo \"{identifier}\" ei ole hyväksytty myyntitapa."
#: pretix/base/settings.py:3843
msgid "This needs to be disabled if other NFC-based types are active."
@@ -11011,10 +11003,8 @@ msgid "This will remove all phone numbers from orders."
msgstr ""
#: pretix/base/shredder.py:290
-#, fuzzy
-#| msgid "Email"
msgid "Emails"
-msgstr "Sähköposti"
+msgstr "Sähköpostit"
#: pretix/base/shredder.py:292
msgid ""
@@ -11104,9 +11094,8 @@ msgstr ""
#: pretix/base/templates/400_hostname.html:4
#: pretix/base/templates/400_hostname.html:8
-#, fuzzy
msgid "Unknown host"
-msgstr "Tuntematon lippu"
+msgstr "Tuntematon osoite"
#: pretix/base/templates/400_hostname.html:10
#, python-format
@@ -11127,9 +11116,8 @@ msgid "Expected host according to configuration"
msgstr ""
#: pretix/base/templates/400_hostname.html:26
-#, fuzzy
msgid "Received headers"
-msgstr "Vastaanotettu tilaus"
+msgstr "Vastaanotetut otsakkeet"
#: pretix/base/templates/400_hostname.html:32
msgid "ignored"
@@ -11337,9 +11325,8 @@ msgstr ""
#: pretix/base/templates/pretixbase/redirect.html:5
#: pretix/base/templates/pretixbase/redirect.html:9
-#, fuzzy
msgid "Redirect"
-msgstr "Uudelleenohjausosoitteet"
+msgstr "Uudelleenohjaus"
#: pretix/base/templates/pretixbase/redirect.html:11
#, python-format
@@ -11353,9 +11340,9 @@ msgid "Please only proceed if you trust this website to be safe."
msgstr ""
#: pretix/base/templates/pretixbase/redirect.html:20
-#, fuzzy, python-format
+#, python-format
msgid "Proceed to %(host)s"
-msgstr "Siirry kassalle"
+msgstr "Siirry %(host)s"
#: pretix/base/templates/source.html:5 pretix/base/templates/source.html:9
msgid "Source code"
@@ -11430,11 +11417,9 @@ msgid "by week"
msgstr ""
#: pretix/base/timeframes.py:121
-#, fuzzy
-#| msgid "Start event date"
msgctxt "reporting_timeframe"
msgid "Current week to date"
-msgstr "Alkupäivämäärä"
+msgstr "Kuluva viikko tähän päivään asti"
#: pretix/base/timeframes.py:130
msgctxt "reporting_timeframe"
@@ -11453,18 +11438,14 @@ msgstr "Nykyinen kuukausi"
#: pretix/base/timeframes.py:152 pretix/base/timeframes.py:161
#: pretix/base/timeframes.py:170 pretix/base/timeframes.py:179
-#, fuzzy
-#| msgid "months"
msgctxt "reporting_timeframe"
msgid "by month"
-msgstr "kuukautta"
+msgstr "kuukausittain"
#: pretix/base/timeframes.py:157
-#, fuzzy
-#| msgid "Creation date"
msgctxt "reporting_timeframe"
msgid "Current month to date"
-msgstr "Luontipäivämäärä"
+msgstr "Kuluva kuukausi tähän päivään mennessä"
#: pretix/base/timeframes.py:166
msgctxt "reporting_timeframe"
@@ -11472,11 +11453,9 @@ msgid "Previous month"
msgstr ""
#: pretix/base/timeframes.py:175
-#, fuzzy
-#| msgid "months"
msgctxt "reporting_timeframe"
msgid "Next month"
-msgstr "kuukautta"
+msgstr "Seuraava kuukausi"
#: pretix/base/timeframes.py:184
msgctxt "reporting_timeframe"
@@ -11490,11 +11469,9 @@ msgid "by quarter"
msgstr ""
#: pretix/base/timeframes.py:193
-#, fuzzy
-#| msgid "Event start date"
msgctxt "reporting_timeframe"
msgid "Current quarter to date"
-msgstr "Tapahtuman alkupäivämäärä"
+msgstr "Kuluva vuosineljännes tähän päivään mennessä"
#: pretix/base/timeframes.py:202
msgctxt "reporting_timeframe"
@@ -11518,11 +11495,9 @@ msgid "by year"
msgstr ""
#: pretix/base/timeframes.py:231
-#, fuzzy
-#| msgid "Event start date"
msgctxt "reporting_timeframe"
msgid "Current year to date"
-msgstr "Tapahtuman alkupäivämäärä"
+msgstr "Kuluva vuosi tähän päivään mennessä"
#: pretix/base/timeframes.py:240
msgctxt "reporting_timeframe"
@@ -11540,11 +11515,9 @@ msgid "All future (excluding today)"
msgstr ""
#: pretix/base/timeframes.py:262 pretix/base/timeframes.py:271
-#, fuzzy
-#| msgid "Other fees"
msgctxt "reporting_timeframe"
msgid "Other"
-msgstr "Muut maksut"
+msgstr "Muuta"
#: pretix/base/timeframes.py:267
msgctxt "reporting_timeframe"
@@ -11552,11 +11525,9 @@ msgid "All past (including today)"
msgstr ""
#: pretix/base/timeframes.py:284
-#, fuzzy
-#| msgid "Start date"
msgctxt "timeframe"
msgid "Start"
-msgstr "Alkupäivämäärä"
+msgstr "Alku"
#: pretix/base/timeframes.py:285
msgctxt "timeframe"
@@ -11564,23 +11535,17 @@ msgid "End"
msgstr ""
#: pretix/base/timeframes.py:318
-#, fuzzy
-#| msgid "The end of the event has to be later than its start."
msgid "The end date must be after the start date."
-msgstr "Tapahtuman lopun tulee olla sen alun jälkeen."
+msgstr "Loppupäivämäärän tulee olla alkupäivämäärän jälkeen."
#: pretix/base/timeframes.py:324
-#, fuzzy
-#| msgid "Customer"
msgid "Custom timeframe"
-msgstr "Asiakas"
+msgstr "Mukautettu aikakehys"
#: pretix/base/timeframes.py:326
-#, fuzzy
-#| msgid "All gates"
msgctxt "reporting_timeframe"
msgid "All time"
-msgstr "Kaikki portit"
+msgstr "Kaikki ajat"
#: pretix/base/timeline.py:60
msgctxt "timeline"
@@ -11645,11 +11610,9 @@ msgid "Customers can no longer make changes to their orders"
msgstr ""
#: pretix/base/timeline.py:179
-#, fuzzy
-#| msgid "The new category has been created."
msgctxt "timeline"
msgid "Waiting list is disabled"
-msgstr "Uusi kategoria luotu."
+msgstr "Odotuslista on poistettu käytöstä"
#: pretix/base/timeline.py:193
msgctxt "timeline"
@@ -11785,16 +11748,12 @@ msgid "Barcode"
msgstr ""
#: pretix/control/forms/checkin.py:179
-#, fuzzy
-#| msgid "Check-in"
msgid "Check-in time"
-msgstr "Ilmoittautuminen"
+msgstr "Ilmoittautumis- aika"
#: pretix/control/forms/checkin.py:183
-#, fuzzy
-#| msgid "Check-in"
msgid "Check-in type"
-msgstr "Ilmoittautuminen"
+msgstr "Ilmoittautumis- tyyppi"
#: pretix/control/forms/checkin.py:187
msgid "Allow check-in of unpaid order (if check-in list permits it)"
@@ -11902,20 +11861,16 @@ msgid "Domain"
msgstr ""
#: pretix/control/forms/event.py:388
-#, fuzzy
-#| msgid "Can change product settings"
msgid "You can configure this in your organizer settings."
-msgstr "Voi muuttaa tuotteen asetuksia"
+msgstr "Voi muuttaa tämän järjestäjän asetuksissa"
#: pretix/control/forms/event.py:398
msgid "You can add more domains in your organizer account."
msgstr ""
#: pretix/control/forms/event.py:399
-#, fuzzy
-#| msgid "View customer account"
msgid "Same as organizer account"
-msgstr "Näytä asiakastili"
+msgstr "Sama kuin järjestäjän tili"
#: pretix/control/forms/event.py:503
#, python-brace-format
@@ -12021,9 +11976,8 @@ msgid ""
msgstr ""
#: pretix/control/forms/event.py:945
-#, fuzzy
msgid "Recommended"
-msgstr "Voi tarkastella tilauksia"
+msgstr "Suositeltu"
#: pretix/control/forms/event.py:957
msgid "The online shop must be selected to receive these emails."
@@ -12074,10 +12028,8 @@ msgstr ""
#: pretix/control/forms/event.py:1018 pretix/control/forms/event.py:1045
#: pretix/control/forms/event.py:1072 pretix/control/forms/event.py:1208
-#, fuzzy
-#| msgid "Order contact address changed"
msgid "Subject sent to order contact address"
-msgstr "Tilauksen yhteystieto on muuttunut"
+msgstr "Lähetetty tilauksessa ilmoitettuun osoitteeseen"
#: pretix/control/forms/event.py:1023 pretix/control/forms/event.py:1050
#: pretix/control/forms/event.py:1077 pretix/control/forms/event.py:1213
@@ -12102,10 +12054,8 @@ msgstr ""
#: pretix/control/forms/event.py:1034 pretix/control/forms/event.py:1061
#: pretix/control/forms/event.py:1088 pretix/control/forms/event.py:1224
#: pretix/control/forms/event.py:1269 pretix/control/forms/event.py:1299
-#, fuzzy
-#| msgid "Send an email to attendees"
msgid "Subject sent to attendees"
-msgstr "Lähetä sähköpostia osallistujille"
+msgstr "Lähetetty osallistujille"
#: pretix/control/forms/event.py:1039 pretix/control/forms/event.py:1066
#: pretix/control/forms/event.py:1093 pretix/control/forms/event.py:1229
@@ -12127,20 +12077,16 @@ msgid "Subject (sent by admin)"
msgstr ""
#: pretix/control/forms/event.py:1114
-#, fuzzy
-#| msgid "Send an email to attendees"
msgid "Subject (sent by admin to attendee)"
-msgstr "Lähetä sähköpostia osallistujille"
+msgstr "Tilaus (ylläpitäjä lähettänyt osallistujalle)"
#: pretix/control/forms/event.py:1119
msgid "Text (sent by admin)"
msgstr ""
#: pretix/control/forms/event.py:1124
-#, fuzzy
-#| msgid "Refund of payment requested by customer"
msgid "Subject (requested by user)"
-msgstr "Asiakas pyytää maksun hyvitystä"
+msgstr "Tilaus (käyttäjän pyyntö)"
#: pretix/control/forms/event.py:1129
msgid "Text (requested by user)"
@@ -12163,16 +12109,12 @@ msgid "Subject (if order will not expire automatically)"
msgstr ""
#: pretix/control/forms/event.py:1161
-#, fuzzy
-#| msgid "Payment received for your order: {code}"
msgid "Subject (if an incomplete payment was received)"
-msgstr "Tilauksesi {code} maksu vastaanotettu"
+msgstr "Tilauksesi (jos epätäydellinen maksusuoritus vastaanotettu)"
#: pretix/control/forms/event.py:1166
-#, fuzzy
-#| msgid "Payment received for your order: {code}"
msgid "Text (if an incomplete payment was received)"
-msgstr "Tilauksesi {code} maksu vastaanotettu"
+msgstr "Teksti (jos epätäydellinen maksusuoritus vastaanotettu)"
#: pretix/control/forms/event.py:1169
msgid ""
@@ -12193,22 +12135,16 @@ msgid "Subject for received order"
msgstr "Vastaanotettu tilaus"
#: pretix/control/forms/event.py:1246
-#, fuzzy
-#| msgid "Received order"
msgid "Text for received order"
-msgstr "Vastaanotettu tilaus"
+msgstr "Teksti vastaanotetusta tilauksesta"
#: pretix/control/forms/event.py:1251
-#, fuzzy
-#| msgid "Approved order"
msgid "Subject for approved order"
-msgstr "Hyväksytty tilaus"
+msgstr "Hyväksytyn tilauksen kohde"
#: pretix/control/forms/event.py:1256
-#, fuzzy
-#| msgid "Approved order"
msgid "Text for approved order"
-msgstr "Hyväksytty tilaus"
+msgstr "Hyväksytyn tilauksen teksti"
#: pretix/control/forms/event.py:1259 pretix/control/forms/event.py:1277
msgid ""
@@ -12217,16 +12153,12 @@ msgid ""
msgstr ""
#: pretix/control/forms/event.py:1281
-#, fuzzy
-#| msgid "Approved free order"
msgid "Subject for approved free order"
-msgstr "Hyväksytty ilmainen tilaus"
+msgstr "Hyväksytyn ilmaisen tilauksen kohde"
#: pretix/control/forms/event.py:1286
-#, fuzzy
-#| msgid "Approved free order"
msgid "Text for approved free order"
-msgstr "Hyväksytty ilmainen tilaus"
+msgstr "Hyväksytyn ilmaisen tilauksen teksti"
#: pretix/control/forms/event.py:1289 pretix/control/forms/event.py:1307
msgid ""
@@ -12291,15 +12223,12 @@ msgid "Sale not allowed"
msgstr "Myynti ei sallittu"
#: pretix/control/forms/event.py:1505
-#, fuzzy
msgid "Order requires approval"
-msgstr "Uusi tilaus vaatii hyväksynnän"
+msgstr "Tilaus vaatii hyväksynnän"
#: pretix/control/forms/event.py:1510
-#, fuzzy
-#| msgid "Default value"
msgid "Default tax code"
-msgstr "Oletusarvo"
+msgstr "Oletus verotus koodi"
#: pretix/control/forms/event.py:1514
msgid "Deviating tax rate"
@@ -12431,11 +12360,8 @@ msgstr ""
#: pretix/control/forms/filter.py:216
#: pretix/control/templates/pretixcontrol/items/question.html:27
-#, fuzzy
-#| msgctxt "checkoutflow"
-#| msgid "Order confirmed"
msgid "Paid or confirmed"
-msgstr "Tilaus vahvistettu"
+msgstr "Maksettu tai vahvistettu"
#: pretix/control/forms/filter.py:217
#: pretix/control/templates/pretixcontrol/items/question.html:28
@@ -12501,10 +12427,8 @@ msgid "Pending (but fully paid)"
msgstr "Odottaa (maksettu kokonaan)"
#: pretix/control/forms/filter.py:234
-#, fuzzy
-#| msgid "Pending (but fully paid)"
msgid "Pending (but no current payment)"
-msgstr "Odottaa (maksettu kokonaan)"
+msgstr "Odottaa (mutta ei maksua tällä hetkellä)"
#: pretix/control/forms/filter.py:236
msgid "Approval process"
@@ -12599,9 +12523,8 @@ msgid "All events"
msgstr "Kaikki tapahtumat"
#: pretix/control/forms/filter.py:1015
-#, fuzzy
msgid "All payments"
-msgstr "Kaikki maksunvälittäjät"
+msgstr "Kaikki maksutavat"
#: pretix/control/forms/filter.py:1025
#, fuzzy
@@ -12609,14 +12532,12 @@ msgid "Payment created from"
msgstr "Tapahtuma luotu"
#: pretix/control/forms/filter.py:1030
-#, fuzzy
msgid "Payment created until"
-msgstr "Maksun tiedot"
+msgstr "Maksutapahtuma luotu asti"
#: pretix/control/forms/filter.py:1035
-#, fuzzy
msgid "Paid from"
-msgstr "Voimassa alkaen"
+msgstr "Maksettu alkaen"
#: pretix/control/forms/filter.py:1040
msgid "Paid until"
@@ -12921,19 +12842,16 @@ msgid "Software"
msgstr ""
#: pretix/control/forms/filter.py:2618
-#, fuzzy
msgid "Device status"
-msgstr "Laitteen tyyppi"
+msgstr "Laitteen status"
#: pretix/control/forms/filter.py:2621
-#, fuzzy
msgid "Active devices"
-msgstr "Kaikki laitteet"
+msgstr "Aktiiviset laitteet"
#: pretix/control/forms/filter.py:2622
-#, fuzzy
msgid "Revoked devices"
-msgstr "Kaikki laitteet"
+msgstr "Peruutetut laitteet"
#: pretix/control/forms/global_settings.py:62
msgid "Additional footer text"
@@ -13138,11 +13056,8 @@ msgid ""
msgstr ""
#: pretix/control/forms/item.py:103
-#, fuzzy
-#| msgctxt "checkoutflow"
-#| msgid "Add-on products"
msgid "Add-on product category"
-msgstr "Lisätuotteet"
+msgstr "Lisätuote luokat"
#: pretix/control/forms/item.py:104
msgid ""
@@ -13172,10 +13087,8 @@ msgid "Dependencies between questions are not supported during check-in."
msgstr ""
#: pretix/control/forms/item.py:308
-#, fuzzy
-#| msgid "All products"
msgid "No products"
-msgstr "Kaikki tuotteet"
+msgstr "Ei tuotteita"
#: pretix/control/forms/item.py:374
msgid "The product should exist in multiple variations"
@@ -13270,10 +13183,8 @@ msgid "Shown independently of other products"
msgstr ""
#: pretix/control/forms/item.py:731
-#, fuzzy
-#| msgid "Canceled by customer"
msgid "Date chosen by customer"
-msgstr "Asiakkaan peruuttama"
+msgstr "Asiakkaan valitsema päivämäärä"
#: pretix/control/forms/item.py:740
msgid "No membership granted"
@@ -13307,10 +13218,8 @@ msgid ""
msgstr ""
#: pretix/control/forms/item.py:804
-#, fuzzy
-#| msgid "The end of the event has to be later than its start."
msgid "The start of validity must be before the end of validity."
-msgstr "Tapahtuman lopun tulee olla sen alun jälkeen."
+msgstr "Voimassaolon alun pitää olla ennen sen loppumista."
#: pretix/control/forms/item.py:811
msgid ""
@@ -13523,10 +13432,8 @@ msgid "Payment date"
msgstr ""
#: pretix/control/forms/orders.py:262
-#, fuzzy
-#| msgid "Please select how you want to pay."
msgid "Please select some events."
-msgstr "Valitse maksutapa."
+msgstr "Valitse joitain tapahtumia."
#: pretix/control/forms/orders.py:283
msgid "Re-calculate taxes"
@@ -13610,10 +13517,8 @@ msgid "New price (gross)"
msgstr ""
#: pretix/control/forms/orders.py:471
-#, fuzzy
-#| msgid "Ticket checked in"
msgid "Ticket is blocked"
-msgstr "Lippu lunastettu"
+msgstr "Lippu on estetty"
#: pretix/control/forms/orders.py:476
msgid "Validity start"
@@ -13852,10 +13757,8 @@ msgid "This domain is already in use for a different event or organizer."
msgstr ""
#: pretix/control/forms/organizer.py:185
-#, fuzzy
-#| msgid "You cannot generate an invoice for this order."
msgid "Do not choose an event for this mode."
-msgstr "Et voi luoda laskua tälle tilaukselle."
+msgstr "Älä valitse tapahtumaa tälle tilalle."
#: pretix/control/forms/organizer.py:190
msgid ""
@@ -13910,10 +13813,8 @@ msgid "An medium with this type and identifier is already registered."
msgstr ""
#: pretix/control/forms/organizer.py:887
-#, fuzzy
-#| msgid "A voucher with this code already exists."
msgid "An account with this customer ID is already registered."
-msgstr "Tämä kuponkikoodi on jo olemassa."
+msgstr "Tälle asiakasnumerolle on jo rekisteröity tili."
#: pretix/control/forms/organizer.py:904
#: pretix/control/templates/pretixcontrol/organizers/customer.html:61
@@ -13922,22 +13823,16 @@ msgid "Phone"
msgstr ""
#: pretix/control/forms/organizer.py:1011
-#, fuzzy
-#| msgid "Target URL"
msgctxt "sso_oidc"
msgid "Base URL"
-msgstr "Kohde-URL"
+msgstr "Perus-URL"
#: pretix/control/forms/organizer.py:1015
-#, fuzzy
-#| msgid "Client ID"
msgctxt "sso_oidc"
msgid "Client ID"
msgstr "Asiakas-ID"
#: pretix/control/forms/organizer.py:1019
-#, fuzzy
-#| msgid "Client secret"
msgctxt "sso_oidc"
msgid "Client secret"
msgstr "Asiakkaan \"secret\""
@@ -13965,11 +13860,9 @@ msgid ""
msgstr ""
#: pretix/control/forms/organizer.py:1035
-#, fuzzy
-#| msgid "Email invoices"
msgctxt "sso_oidc"
msgid "Email field"
-msgstr "Lähetä laskut sähköpostilla"
+msgstr "Sähköpostikenttä"
#: pretix/control/forms/organizer.py:1036
msgctxt "sso_oidc"
@@ -13989,10 +13882,8 @@ msgid "Invalidate old client secret and generate a new one"
msgstr ""
#: pretix/control/forms/organizer.py:1133
-#, fuzzy
-#| msgid "Organizers"
msgid "Organizer short name"
-msgstr "Järjestäjät"
+msgstr "Järjestäjän nimen lyhennös"
#: pretix/control/forms/organizer.py:1137
#, fuzzy
@@ -14010,22 +13901,16 @@ msgid ""
msgstr ""
#: pretix/control/forms/organizer.py:1154
-#, fuzzy
-#| msgid "The requested item does not exist."
msgid "The selected organizer does not exist or cannot be invited."
-msgstr "Pyydettyä tuotetta ei ole olemassa."
+msgstr "Valittu järjestäjä ei ole olemassa, tai sitä ei voida kutsua."
#: pretix/control/forms/organizer.py:1156
-#, fuzzy
-#| msgid "The selected gate has been deleted."
msgid "The selected organizer has already been invited."
-msgstr "Valittu portti on poistettu."
+msgstr "Valittu järjestäjä on jo kutsuttu.."
#: pretix/control/forms/organizer.py:1191
-#, fuzzy
-#| msgid "A voucher with this code already exists."
msgid "A sales channel with the same identifier already exists."
-msgstr "Tämä kuponkikoodi on jo olemassa."
+msgstr "Myyntikanava samalla tunnuksella on jo olemassa."
#: pretix/control/forms/renderers.py:56
#: pretix/control/templates/pretixcontrol/items/question_edit.html:139
@@ -14108,10 +13993,8 @@ msgid "Selection contains various values"
msgstr ""
#: pretix/control/forms/subevents.py:285 pretix/control/forms/subevents.py:314
-#, fuzzy
-#| msgid "The end of the event has to be later than its start."
msgid "The end of availability should be after the start of availability."
-msgstr "Tapahtuman lopun tulee olla sen alun jälkeen."
+msgstr "Saatavuuden lopun tulee olla sen alkamisen jälkeen."
#: pretix/control/forms/subevents.py:347
msgid "Available_until"
@@ -14186,9 +14069,9 @@ msgid ""
msgstr ""
"Hei,\n"
"\n"
-"ostit lipun tapahtumaan {event}.\n"
+"Tällä sähköpostilla lähetämme yhden tai useamman lipun tapahtumaan {event}.\n"
"\n"
-"Jos et vielä ladannut lippuasi, voit tehdä sen täällä:\n"
+"Voit ladata ne lippukaupassamme täällä:\n"
"{url}\n"
"\n"
"Ystävällisin terveisin,\n"
@@ -14271,9 +14154,9 @@ msgid ""
msgstr ""
#: pretix/control/forms/vouchers.py:423
-#, fuzzy, python-brace-format
+#, python-brace-format
msgid "The voucher code {code} appears in your list twice."
-msgstr "Annettu kuponkikoodi ei ole olemassa."
+msgstr "Kuponkikoodi {code} näkyy listassasi kahdesti."
#: pretix/control/forms/vouchers.py:427
msgid ""
@@ -14495,9 +14378,9 @@ msgid "The user confirmed the following message: \"{}\""
msgstr ""
#: pretix/control/logdisplay.py:398
-#, fuzzy, python-brace-format
+#, python-brace-format
msgid "The order has been canceled (comment: \"{comment}\")."
-msgstr "Tilaus poistettu."
+msgstr "Tilaus peruttu. (kommentti: \"{comment}\")."
#: pretix/control/logdisplay.py:400 pretix/control/views/orders.py:1552
#: pretix/presale/views/order.py:1057
@@ -14547,16 +14430,12 @@ msgid "The order's expiry date has been changed."
msgstr ""
#: pretix/control/logdisplay.py:442
-#, fuzzy
-#| msgid "The order has been deleted."
msgid "The order has been set to be usable before it is paid."
-msgstr "Tilaus poistettu."
+msgstr "Tilaus on otettu käyttöön kunnes se on maksettu."
#: pretix/control/logdisplay.py:443
-#, fuzzy
-#| msgid "A new order has been placed that requires approval: {order.code}"
msgid "The order has been set to require payment before use."
-msgstr "Uusi tilaus, joka vaatii hyväksynnän: {order.code}"
+msgstr "Tilaus on asetettu tilaan odottaa maksamista ennen käyttöä."
#: pretix/control/logdisplay.py:444 pretix/control/views/orders.py:1557
msgid "The order has been marked as expired."
@@ -14591,9 +14470,9 @@ msgid "The order has been approved."
msgstr ""
#: pretix/control/logdisplay.py:453
-#, fuzzy, python-brace-format
+#, python-brace-format
msgid "The order has been denied (comment: \"{comment}\")."
-msgstr "Tilaus poistettu."
+msgstr "Tilaus estetty (kommentti: \"{comment}\")."
#: pretix/control/logdisplay.py:454
#, python-brace-format
@@ -14875,32 +14754,24 @@ msgid "The organizer settings have been changed."
msgstr ""
#: pretix/control/logdisplay.py:619 pretix/control/logdisplay.py:742
-#, fuzzy
msgid "The footer links have been changed."
-msgstr "Tapahtuman tietoja muutettu."
+msgstr "Alatunnisteen linkkejä muutettu."
#: pretix/control/logdisplay.py:620 pretix/control/logdisplay.py:666
-#, fuzzy
msgid "A scheduled export has been added."
-msgstr "Tapahtuma poistettu."
+msgstr "Aikataulutettu siirto lisätty."
#: pretix/control/logdisplay.py:621 pretix/control/logdisplay.py:667
-#, fuzzy
-#| msgid "The gate has been changed."
msgid "A scheduled export has been changed."
-msgstr "Portti muutettu."
+msgstr "Aikataulutettu siirto on muutettu."
#: pretix/control/logdisplay.py:622 pretix/control/logdisplay.py:668
-#, fuzzy
-#| msgid "The selected product has been deleted."
msgid "A scheduled export has been deleted."
-msgstr "Valittu tuote on poistettu."
+msgstr "Aikataulutettu siirto on poistettu."
#: pretix/control/logdisplay.py:623 pretix/control/logdisplay.py:669
-#, fuzzy
-#| msgid "The selected product has been deleted."
msgid "A scheduled export has been executed."
-msgstr "Valittu tuote on poistettu."
+msgstr "Aikataulutettu siirto on suoritettu."
#: pretix/control/logdisplay.py:624 pretix/control/logdisplay.py:670
#, python-brace-format
@@ -14916,27 +14787,20 @@ msgid "Gift card acceptance for another organizer has been removed."
msgstr ""
#: pretix/control/logdisplay.py:627
-#, fuzzy
-#| msgid "The new category has been created."
msgid "A new gift card acceptor has been invited."
-msgstr "Uusi kategoria luotu."
+msgstr "Uusi lahjakortin hyväksyjä on kutsuttu."
#: pretix/control/logdisplay.py:628
-#, fuzzy
-#| msgid "The new category has been created."
msgid "A gift card acceptor has been removed."
-msgstr "Uusi kategoria luotu."
+msgstr "Lahjakortin hyväksyjä on poistettu."
#: pretix/control/logdisplay.py:629
-#, fuzzy
-#| msgid "This user already has been invited for this team."
msgid "A gift card issuer has been removed or declined."
-msgstr "Tämä käyttäjä on jo kutsuttu tähän tiimiin."
+msgstr "Lahjakortin antaja on poistettu tai vähennetty."
#: pretix/control/logdisplay.py:630
-#, fuzzy
msgid "A new gift card issuer has been accepted."
-msgstr "Uusi kategoria luotu."
+msgstr "Uusi lahjakortin myöntäjä on hyväksytty."
#: pretix/control/logdisplay.py:631
msgid "The webhook has been created."
@@ -15004,22 +14868,16 @@ msgid "The membership type has been deleted."
msgstr ""
#: pretix/control/logdisplay.py:644 pretix/control/views/organizer.py:3159
-#, fuzzy
-#| msgid "The gate has been created."
msgid "The sales channel has been created."
-msgstr "Uusi portti luotu."
+msgstr "Myyntikanava on luotu."
#: pretix/control/logdisplay.py:645
-#, fuzzy
-#| msgid "The gate has been changed."
msgid "The sales channel has been changed."
-msgstr "Portti muutettu."
+msgstr "Myyntikanava on muutettu."
#: pretix/control/logdisplay.py:646
-#, fuzzy
-#| msgid "The selected gate has been deleted."
msgid "The sales channel has been deleted."
-msgstr "Valittu portti on poistettu."
+msgstr "Myyntikanava on poistettu."
#: pretix/control/logdisplay.py:647
msgid "The account has been created."
@@ -15054,31 +14912,24 @@ msgid "A new password has been set."
msgstr ""
#: pretix/control/logdisplay.py:655
-#, fuzzy
-#| msgid "The gate has been created."
msgid "The reusable medium has been created."
-msgstr "Uusi portti luotu."
+msgstr "Uudelleenkäytettävä media on luotu."
#: pretix/control/logdisplay.py:656
-#, fuzzy
msgid "The reusable medium has been created automatically."
-msgstr "Uusi kategoria luotu."
+msgstr "Uudelleenkäytettävä media on luotu automaattisesti."
#: pretix/control/logdisplay.py:657
-#, fuzzy
-#| msgid "The gate has been changed."
msgid "The reusable medium has been changed."
-msgstr "Portti muutettu."
+msgstr "Uudelleenkäytettävä media on muutettu."
#: pretix/control/logdisplay.py:658
-#, fuzzy
msgid "The medium has been connected to a new ticket."
-msgstr "Uusi kategoria luotu."
+msgstr "Media on yhdistetty uuteen lippuun."
#: pretix/control/logdisplay.py:659
-#, fuzzy
msgid "The medium has been connected to a new gift card."
-msgstr "Uusi kategoria luotu."
+msgstr "Media on yhdistetty uuteen lahjakorttiin."
#: pretix/control/logdisplay.py:661
msgid "The event's internal comment has been updated."
@@ -15126,9 +14977,8 @@ msgid "Your two-factor emergency codes have been regenerated."
msgstr ""
#: pretix/control/logdisplay.py:677
-#, fuzzy
msgid "A two-factor emergency code has been generated."
-msgstr "Portti poistettu."
+msgstr "Kaksiosainen hätäkoodi on luotu."
#: pretix/control/logdisplay.py:678
#, python-brace-format
@@ -15305,22 +15155,16 @@ msgid "The token \"{name}\" has been revoked."
msgstr ""
#: pretix/control/logdisplay.py:729
-#, fuzzy
-#| msgid "A voucher has already been sent to this person."
msgid "A meta property has been added to this event."
-msgstr "Tälle henkilölle on jo lähetetty kuponki."
+msgstr "Meta ominaisuus on lisätty tähän tapahtumaan."
#: pretix/control/logdisplay.py:730
-#, fuzzy
-#| msgid "This user already has been invited for this team."
msgid "A meta property has been removed from this event."
-msgstr "Tämä käyttäjä on jo kutsuttu tähän tiimiin."
+msgstr "Meta-ominaisuus on poistettu tästä tapahtumasta."
#: pretix/control/logdisplay.py:731
-#, fuzzy
-#| msgid "The gate has been changed."
msgid "A meta property has been changed on this event."
-msgstr "Portti muutettu."
+msgstr "Meta-ominaisuus on muutettu tässä tapahtumassa."
#: pretix/control/logdisplay.py:732
msgid "The event settings have been changed."
@@ -15395,28 +15239,22 @@ msgid "The check-in list has been changed."
msgstr ""
#: pretix/control/logdisplay.py:762
-#, fuzzy, python-brace-format
-#| msgid "Check-in lists"
+#, python-brace-format
msgid "Check-in list {val}"
-msgstr "Ilmoittautumisluettelot"
+msgstr "Ilmoittautumisluettelo {val}"
#: pretix/control/logdisplay.py:769
-#, fuzzy
-#| msgid "The gate has been created."
msgid "The plugin has been enabled."
-msgstr "Uusi portti luotu."
+msgstr "Liitäntä aktivoitu."
#: pretix/control/logdisplay.py:770
-#, fuzzy
-#| msgid "The gate has been deleted."
msgid "The plugin has been disabled."
-msgstr "Portti poistettu."
+msgstr "Liitäntä poistettu."
#: pretix/control/logdisplay.py:773
-#, fuzzy, python-brace-format
-#| msgid "Question {val}"
+#, python-brace-format
msgid "Plugin {val}"
-msgstr "Kysymys {val}"
+msgstr "Liitäntä {val}"
#: pretix/control/logdisplay.py:789
msgid "The product has been created."
@@ -15427,10 +15265,8 @@ msgid "The product has been changed."
msgstr ""
#: pretix/control/logdisplay.py:791
-#, fuzzy
-#| msgid "The gate has been created."
msgid "The product has been reordered."
-msgstr "Uusi portti luotu."
+msgstr "Tuote on uudelleenjärjestetty."
#: pretix/control/logdisplay.py:792
msgid "The product has been deleted."
@@ -15571,25 +15407,20 @@ msgid "The question has been changed."
msgstr ""
#: pretix/control/logdisplay.py:857
-#, fuzzy
-#| msgid "The event has been deleted."
msgid "The question has been reordered."
-msgstr "Tapahtuma poistettu."
+msgstr "Kysymys on uudelleenjärjestetty."
#: pretix/control/logdisplay.py:864
-#, fuzzy
msgid "The discount has been added."
-msgstr "Tapahtuma poistettu."
+msgstr "Alennus on lisätty."
#: pretix/control/logdisplay.py:865
-#, fuzzy
msgid "The discount has been deleted."
-msgstr "Tapahtuma poistettu."
+msgstr "Alennus on poistettu."
#: pretix/control/logdisplay.py:866
-#, fuzzy
msgid "The discount has been changed."
-msgstr "Portti muutettu."
+msgstr "Alennus on muutettu."
#: pretix/control/logdisplay.py:890
#, python-brace-format
@@ -15689,9 +15520,8 @@ msgid "Categories"
msgstr ""
#: pretix/control/navigation.py:180
-#, fuzzy
msgid "Discounts"
-msgstr "Tili"
+msgstr "Alennukset"
#: pretix/control/navigation.py:213
msgid "Overview"
@@ -15793,10 +15623,8 @@ msgid "License check"
msgstr "Lisenssitarkistus"
#: pretix/control/navigation.py:450
-#, fuzzy
-#| msgid "{system} User"
msgid "System report"
-msgstr "{system}-käyttäjä"
+msgstr "Systeemi ilmoitus"
#: pretix/control/navigation.py:494
#: pretix/control/templates/pretixcontrol/organizers/properties.html:5
@@ -15827,10 +15655,8 @@ msgstr ""
#: pretix/control/navigation.py:597
#: pretix/control/templates/pretixcontrol/organizers/ssoproviders.html:4
#: pretix/control/templates/pretixcontrol/organizers/ssoproviders.html:6
-#, fuzzy
-#| msgid "Payment providers"
msgid "SSO providers"
-msgstr "Maksunvälittäjät"
+msgstr "SSO palveluntarjoajat"
#: pretix/control/navigation.py:626 pretix/control/navigation.py:633
msgid "Devices"
@@ -16208,12 +16034,9 @@ msgid "ZVT Terminal"
msgstr ""
#: pretix/control/templates/pretixcontrol/boxoffice/payment.html:17
-#, fuzzy
-#| msgctxt "order state"
-#| msgid "Confirmation pending"
msgctxt "terminal_zvt"
msgid "Confirmation mode"
-msgstr "Odottaa vahvistusta"
+msgstr "Vahvistus- tila"
#: pretix/control/templates/pretixcontrol/boxoffice/payment.html:20
msgctxt "terminal_zvt"
@@ -16246,9 +16069,8 @@ msgid "Card type"
msgstr ""
#: pretix/control/templates/pretixcontrol/boxoffice/payment.html:37
-#, fuzzy
msgid "Unknown"
-msgstr "Tuntematon lippu"
+msgstr "Tuntematon"
#: pretix/control/templates/pretixcontrol/boxoffice/payment.html:40
msgctxt "terminal_zvt"
@@ -16316,14 +16138,12 @@ msgid "Terminal ID"
msgstr ""
#: pretix/control/templates/pretixcontrol/boxoffice/payment.html:104
-#, fuzzy
msgid "Card holder"
-msgstr "Vahvista tilaus"
+msgstr "Kortin haltija"
#: pretix/control/templates/pretixcontrol/boxoffice/payment.html:108
-#, fuzzy
msgid "Card expiration"
-msgstr "Rekisteröintipäivämäärä"
+msgstr "Kortin viimeinen voimassaolo"
#: pretix/control/templates/pretixcontrol/boxoffice/payment.html:112
msgid "Result Code"
@@ -16335,15 +16155,11 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/checkin/bulk_revert_confirm.html:4
#: pretix/control/templates/pretixcontrol/checkin/bulk_revert_confirm.html:6
-#, fuzzy
-#| msgid "Delete vouchers"
msgid "Delete check-ins"
-msgstr "Poista kupongit"
+msgstr "Poista ilmoittautumiset"
#: pretix/control/templates/pretixcontrol/checkin/bulk_revert_confirm.html:15
-#, fuzzy, python-format
-#| msgid ""
-#| "Are you sure you want to delete the voucher %(voucher)s?"
+#, python-format
msgid ""
"Are you sure you want to permanently delete the check-ins of one "
"ticket."
@@ -16351,9 +16167,11 @@ msgid_plural ""
"Are you sure you want to permanently delete the check-ins of "
"%(count)s tickets?"
msgstr[0] ""
-"Oletko varma, että haluat poistaa kupongin %(voucher)s?"
+"Oletko varma, että haluat pysyvästi poistaa ilmoittautumisen one "
+"ticket.?"
msgstr[1] ""
-"Oletko varma, että haluat poistaa kupongin %(voucher)s?"
+"Oletko varma, että haluat pysyvästi poistaa ilmoittautumiset %(count)"
+"s tickets?"
#: pretix/control/templates/pretixcontrol/checkin/bulk_revert_confirm.html:24
#: pretix/control/templates/pretixcontrol/checkin/list_delete.html:18
@@ -16553,9 +16371,9 @@ msgid "Additional entry scan: %(date)s"
msgstr ""
#: pretix/control/templates/pretixcontrol/checkin/checkins.html:85
-#, fuzzy, python-format
+#, python-format
msgid "Offline scan. Upload time: %(date)s"
-msgstr "Hylätty skannaus: %(date)s"
+msgstr "Offline haku. Latausaika: %(date)s"
#: pretix/control/templates/pretixcontrol/checkin/checkins.html:88
#: pretix/control/templates/pretixcontrol/order/index.html:398
@@ -16601,10 +16419,8 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/checkin/lists.html:161
#: pretix/control/templates/pretixcontrol/checkin/simulator.html:8
#: pretix/control/templates/pretixcontrol/checkin/simulator.html:20
-#, fuzzy
-#| msgid "Check-in history"
msgid "Check-in simulator"
-msgstr "Ilmoittautumishistoria"
+msgstr "Ilmoittautumis-simulaattori"
#: pretix/control/templates/pretixcontrol/checkin/index.html:27
#: pretix/control/templates/pretixcontrol/orders/overview.html:20
@@ -16831,16 +16647,12 @@ msgid "Simulate"
msgstr ""
#: pretix/control/templates/pretixcontrol/checkin/simulator.html:66
-#, fuzzy
-#| msgid "Web-based check-in"
msgid "Valid check-in"
-msgstr "Ilmoittautuminen verkossa"
+msgstr "Hyväksytty ilmoittautuminen"
#: pretix/control/templates/pretixcontrol/checkin/simulator.html:68
-#, fuzzy
-#| msgid "Contact information"
msgid "Additional information required"
-msgstr "Yhteystiedot"
+msgstr "Vaaditaan lisätietoja"
#: pretix/control/templates/pretixcontrol/checkin/simulator.html:70
msgid ""
@@ -16848,8 +16660,6 @@ msgid ""
msgstr ""
#: pretix/control/templates/pretixcontrol/checkin/simulator.html:92
-#, fuzzy
-#| msgid "Requires special attention"
msgid "Special attention required"
msgstr "Vaatii erityishuomiota"
@@ -16993,9 +16803,8 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/email_setup.html:8
#: pretix/control/templates/pretixcontrol/email_setup_simple.html:8
#: pretix/control/templates/pretixcontrol/email_setup_smtp.html:8
-#, fuzzy
msgid "Email sending"
-msgstr "Sähköposti"
+msgstr "Sähköpostin lähetys"
#: pretix/control/templates/pretixcontrol/email_setup.html:21
msgid "Use system default"
@@ -17032,7 +16841,6 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/email_setup.html:84
#: pretix/control/templates/pretixcontrol/email_setup_smtp.html:18
-#, fuzzy
msgid "Use a custom SMTP server"
msgstr "Käytä mukautettua SMTP-palvelinta"
@@ -17043,9 +16851,8 @@ msgid ""
msgstr ""
#: pretix/control/templates/pretixcontrol/email_setup.html:110
-#, fuzzy
msgid "Reset to organizer settings"
-msgstr "Järjestäjän asetukset"
+msgstr "Palauta järjestäjän asetukset"
#: pretix/control/templates/pretixcontrol/email_setup_simple.html:29
msgid "This is the SPF record we found on your domain:"
@@ -17070,9 +16877,8 @@ msgid "We found an SPF record on your domain that includes this system. Great!"
msgstr ""
#: pretix/control/templates/pretixcontrol/email_setup_simple.html:54
-#, fuzzy
msgid "Verification"
-msgstr "Variaatiot"
+msgstr "Vahvistus"
#: pretix/control/templates/pretixcontrol/email_setup_simple.html:56
#, python-format
@@ -17082,9 +16888,8 @@ msgid ""
msgstr ""
#: pretix/control/templates/pretixcontrol/email_setup_simple.html:63
-#, fuzzy
msgid "Verification code"
-msgstr "Luontipäivämäärä"
+msgstr "Vahvistuskoodi"
#: pretix/control/templates/pretixcontrol/email_setup_smtp.html:23
msgid ""
@@ -17357,9 +17162,8 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/event/index.html:27
#: pretix/control/templates/pretixcontrol/vouchers/detail.html:57
-#, fuzzy
msgid "Create QR code"
-msgstr "Tilauskoodi"
+msgstr "Luo QR koodi"
#: pretix/control/templates/pretixcontrol/event/index.html:36
msgid ""
@@ -17597,15 +17401,13 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/event/mail.html:21
#: pretix/control/templates/pretixcontrol/organizers/mail.html:22
-#, fuzzy
msgid "Sending method"
-msgstr "Maksutapa"
+msgstr "Lähetystapa"
#: pretix/control/templates/pretixcontrol/event/mail.html:25
#: pretix/control/templates/pretixcontrol/organizers/mail.html:26
-#, fuzzy
msgid "Custom SMTP server"
-msgstr "Käytä mukautettua SMTP-palvelinta"
+msgstr "Mukautettu SMTP-palvelin"
#: pretix/control/templates/pretixcontrol/event/mail.html:27
#: pretix/control/templates/pretixcontrol/organizers/mail.html:28
@@ -17613,9 +17415,8 @@ msgid "System-provided email server"
msgstr ""
#: pretix/control/templates/pretixcontrol/event/mail.html:60
-#, fuzzy
msgid "Calendar invites"
-msgstr "Lisää kalenteriin"
+msgstr "Kalenterikutsut"
#: pretix/control/templates/pretixcontrol/event/mail.html:66
msgid "Email design"
@@ -17658,10 +17459,8 @@ msgid "Payment reminder"
msgstr ""
#: pretix/control/templates/pretixcontrol/event/mail.html:108
-#, fuzzy
-#| msgid "Payment confirmation date"
msgid "Payment failed"
-msgstr "Maksun vahvistuspäivämäärä"
+msgstr "Maksu epäonnistui"
#: pretix/control/templates/pretixcontrol/event/mail.html:111
msgid "Waiting list notification"
@@ -17680,9 +17479,8 @@ msgid "Order approval process"
msgstr ""
#: pretix/control/templates/pretixcontrol/event/mail.html:126
-#, fuzzy
msgid "Attachments"
-msgstr "Liitä laskut"
+msgstr "Liitetiedostot"
#: pretix/control/templates/pretixcontrol/event/payment.html:6
#: pretix/control/templates/pretixcontrol/event/payment_provider.html:5
@@ -17714,8 +17512,6 @@ msgid "Deadlines"
msgstr ""
#: pretix/control/templates/pretixcontrol/event/payment.html:74
-#, fuzzy
-#| msgid "days"
msgctxt "unit"
msgid "days"
msgstr "päivää"
@@ -17751,9 +17547,8 @@ msgid ""
msgstr ""
#: pretix/control/templates/pretixcontrol/event/plugins.html:6
-#, fuzzy
msgid "Available plugins"
-msgstr "Jäljellä oleva kiintiö"
+msgstr "Käytettävissä olevat lisäosat"
#: pretix/control/templates/pretixcontrol/event/plugins.html:8
msgid ""
@@ -17978,16 +17773,12 @@ msgid "Manage questions"
msgstr "Hallitse kysymyksiä"
#: pretix/control/templates/pretixcontrol/event/settings.html:117
-#, fuzzy
-#| msgid "Other settings"
msgid "Form settings"
-msgstr "Muut asetukset"
+msgstr "Muotoasetukset"
#: pretix/control/templates/pretixcontrol/event/settings.html:122
-#, fuzzy
-#| msgid "Changes to pretix"
msgid "Changes to existing orders"
-msgstr "Pretix muutoshistoria"
+msgstr "Muutoksia tehtyihin tilauksiin"
#: pretix/control/templates/pretixcontrol/event/settings.html:130
msgid "Texts"
@@ -18027,15 +17818,13 @@ msgid "Display"
msgstr ""
#: pretix/control/templates/pretixcontrol/event/settings.html:243
-#, fuzzy
msgid "Product list"
-msgstr "Tuotetyyppi"
+msgstr "Tuotelista"
#: pretix/control/templates/pretixcontrol/event/settings.html:249
-#, fuzzy
msgctxt "subevents"
msgid "Calendar and list views"
-msgstr "Lisää kalenteriin"
+msgstr "Kalenteri- ja listanäkymät"
#: pretix/control/templates/pretixcontrol/event/settings.html:268
#: pretix/control/templates/pretixcontrol/order/index.html:175
@@ -18049,9 +17838,8 @@ msgstr "Muut asetukset"
#: pretix/control/templates/pretixcontrol/event/settings.html:279
#: pretix/control/templates/pretixcontrol/organizers/edit.html:55
-#, fuzzy
msgid "Footer links"
-msgstr "Kupongin linkki"
+msgstr "Alatunnisteen linkit"
#: pretix/control/templates/pretixcontrol/event/settings.html:284
#: pretix/control/templates/pretixcontrol/organizers/edit.html:60
@@ -18092,16 +17880,12 @@ msgid ""
msgstr ""
#: pretix/control/templates/pretixcontrol/event/settings.html:377
-#, fuzzy
-#| msgid "Any customer"
msgid "Waiting customers"
-msgstr "Kaikki asiakkaat"
+msgstr "Odottavat asiakkaat"
#: pretix/control/templates/pretixcontrol/event/settings.html:383
-#, fuzzy
-#| msgid "Join waiting list"
msgid "Manage waiting list"
-msgstr "Liity jonotuslistalle"
+msgstr "Hallitse jonotuslistaa"
#: pretix/control/templates/pretixcontrol/event/settings.html:396
msgid "Item metadata"
@@ -18173,10 +17957,8 @@ msgid ""
msgstr ""
#: pretix/control/templates/pretixcontrol/event/tax_edit.html:45
-#, fuzzy
-#| msgid "Customers"
msgid "Custom rules"
-msgstr "Asiakkaat"
+msgstr "Sääntöjen muokkaus"
#: pretix/control/templates/pretixcontrol/event/tax_edit.html:47
msgid ""
@@ -18192,22 +17974,16 @@ msgid "All of these rules will only apply if an invoice address is set."
msgstr ""
#: pretix/control/templates/pretixcontrol/event/tax_edit.html:58
-#, fuzzy
-#| msgid "Cancellations"
msgid "Condition"
-msgstr "Peruutukset"
+msgstr "Ehdot"
#: pretix/control/templates/pretixcontrol/event/tax_edit.html:61
-#, fuzzy
-#| msgid "Cancellation"
msgid "Calculation"
-msgstr "Peruutus"
+msgstr "Laskutoimitus"
#: pretix/control/templates/pretixcontrol/event/tax_edit.html:64
-#, fuzzy
-#| msgid "Refund reason"
msgid "Reason"
-msgstr "Hyvityksen syy"
+msgstr "Syy"
#: pretix/control/templates/pretixcontrol/event/tax_edit.html:137
#: pretix/control/templates/pretixcontrol/subevents/bulk.html:251
@@ -18502,13 +18278,9 @@ msgid "Currently available: %(num)s"
msgstr ""
#: pretix/control/templates/pretixcontrol/giftcards/checkout_confirm.html:4
-#, fuzzy, python-format
-#| msgid ""
-#| "The gift card can be used to buy tickets for all events of this organizer."
+#, python-format
msgid "Your gift card %(card)s will be used to pay for this order."
-msgstr ""
-"Lahjakorttia voi käyttää kaikkien tämän järjestäjän tapahtumien tuotteiden "
-"ostamiseen."
+msgstr "Lahjakorttiasi %(card)s käytetään tämän tuotteen ostamiseen."
#: pretix/control/templates/pretixcontrol/global_license.html:8
msgid ""
@@ -18598,20 +18370,16 @@ msgid "February"
msgstr ""
#: pretix/control/templates/pretixcontrol/global_sysreport.html:18
-#, fuzzy
-#| msgid "Search"
msgid "March"
-msgstr "Etsi"
+msgstr "Maaliskuu"
#: pretix/control/templates/pretixcontrol/global_sysreport.html:19
msgid "April"
msgstr ""
#: pretix/control/templates/pretixcontrol/global_sysreport.html:20
-#, fuzzy
-#| msgid "Monday"
msgid "May"
-msgstr "maanantai"
+msgstr "Toukokuu"
#: pretix/control/templates/pretixcontrol/global_sysreport.html:21
msgid "June"
@@ -18634,22 +18402,16 @@ msgid "October"
msgstr ""
#: pretix/control/templates/pretixcontrol/global_sysreport.html:26
-#, fuzzy
-#| msgid "Phone number"
msgid "November"
-msgstr "Puhelinnumero"
+msgstr "Marraskuu"
#: pretix/control/templates/pretixcontrol/global_sysreport.html:27
-#, fuzzy
-#| msgid "Team members"
msgid "December"
-msgstr "Ryhmän jäsenet"
+msgstr "Joulukuu"
#: pretix/control/templates/pretixcontrol/global_sysreport.html:32
-#, fuzzy
-#| msgid "Generate random codes"
msgid "Generate report"
-msgstr "Generoi satunnaiset koodit"
+msgstr "Generoi raportti"
#: pretix/control/templates/pretixcontrol/global_update.html:7
msgid "Update check results"
@@ -18733,10 +18495,8 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/item/base.html:24
#: pretix/control/templates/pretixcontrol/item/include_variations.html:79
-#, fuzzy
-#| msgid "Manage questions"
msgid "Manage quotas"
-msgstr "Hallitse kysymyksiä"
+msgstr "Hallitse tarjouksia"
#: pretix/control/templates/pretixcontrol/item/base.html:27
#: pretix/control/templates/pretixcontrol/item/include_variations.html:82
@@ -18817,10 +18577,8 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/item/create.html:68
#: pretix/control/templates/pretixcontrol/item/index.html:76
-#, fuzzy
-#| msgid "Product variation"
msgid "Personalization"
-msgstr "Tuotevariaatio"
+msgstr "Personalisointi"
#: pretix/control/templates/pretixcontrol/item/create.html:76
#: pretix/control/templates/pretixcontrol/item/index.html:89
@@ -18838,10 +18596,8 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/item/create.html:87
#: pretix/control/templates/pretixcontrol/item/index.html:100
-#, fuzzy
-#| msgid "Base settings"
msgid "Change settings"
-msgstr "Perusasetukset"
+msgstr "Vaihda asetuksia"
#: pretix/control/templates/pretixcontrol/item/create.html:96
#: pretix/control/templates/pretixcontrol/item/index.html:109
From 388a5f6a1e5f396baef0165bf033c09a360db035 Mon Sep 17 00:00:00 2001
From: Hijiri Umemoto
Date: Tue, 4 Feb 2025 12:23:22 +0000
Subject: [PATCH 04/99] Translations: Update Japanese
Currently translated at 100.0% (5846 of 5846 strings)
Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/ja/
powered by weblate
---
src/pretix/locale/ja/LC_MESSAGES/django.po | 23 +++++++++-------------
1 file changed, 9 insertions(+), 14 deletions(-)
diff --git a/src/pretix/locale/ja/LC_MESSAGES/django.po b/src/pretix/locale/ja/LC_MESSAGES/django.po
index 8bceff84a5..5f356fe3c8 100644
--- a/src/pretix/locale/ja/LC_MESSAGES/django.po
+++ b/src/pretix/locale/ja/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-01-29 13:18+0000\n"
-"PO-Revision-Date: 2025-01-27 10:00+0000\n"
+"PO-Revision-Date: 2025-02-04 20:00+0000\n"
"Last-Translator: Hijiri Umemoto \n"
"Language-Team: Japanese \n"
@@ -3410,10 +3410,8 @@ msgid "The relevant plugin is currently not active."
msgstr "関連するプラグインは、現在無効です。"
#: pretix/base/logentrytypes.py:49
-#, fuzzy
-#| msgid "Delete"
msgid "(deleted)"
-msgstr "削除"
+msgstr "(削除済み)"
#: pretix/base/logentrytypes.py:78
#, python-brace-format
@@ -14584,7 +14582,8 @@ msgstr "この料金を削除してください"
msgid ""
"Note that payment fees have a special semantic and might automatically be "
"changed if the payment method of the order is changed."
-msgstr ""
+msgstr "支払い手数料には特別な意味があり、注文の支払い方法が変更されると自動的に変更"
+"される可能性があることに注意してください。"
#: pretix/control/forms/orders.py:626
#: pretix/control/templates/pretixcontrol/order/change.html:214
@@ -15407,16 +15406,13 @@ msgstr ""
"リスト「{list}」のタイプ「{type}」のコード「{barcode}」のスキャンが不明です。"
#: pretix/control/logdisplay.py:309
-#, fuzzy, python-brace-format
-#| msgid ""
-#| "Scan scan of revoked code \"{barcode}…\" at {datetime} for list \"{list}"
-#| "\", type \"{type}\", was uploaded."
+#, python-brace-format
msgid ""
"Scan of revoked code \"{barcode}…\" at {datetime} for list \"{list}\", type "
"\"{type}\", was uploaded."
msgstr ""
-"リスト「{list}」のコード「{barcode}」が{datetime}にアップロードされました。タ"
-"イプは「{type}」です。"
+"{datetime} にスキャンされた、リスト\"{list}\"、種別 \"{type}"
+"\"の取り消し済みのコード \"{barcode}…\"がアップロードされました。"
#: pretix/control/logdisplay.py:310
#, python-brace-format
@@ -16363,10 +16359,9 @@ msgid "The check-in list has been changed."
msgstr "チェックインリストが変更されました。"
#: pretix/control/logdisplay.py:762
-#, fuzzy, python-brace-format
-#| msgid "Check-in list"
+#, python-brace-format
msgid "Check-in list {val}"
-msgstr "チェックイン・リスト"
+msgstr "チェックイン・リスト{val}"
#: pretix/control/logdisplay.py:769
msgid "The plugin has been enabled."
From 308a6acfe3075646d37331935ed75f3120bcef96 Mon Sep 17 00:00:00 2001
From: Wiktor Przybylski
Date: Tue, 4 Feb 2025 23:01:43 +0000
Subject: [PATCH 05/99] Translations: Update Polish
Currently translated at 98.5% (5764 of 5846 strings)
Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/pl/
powered by weblate
---
src/pretix/locale/pl/LC_MESSAGES/django.po | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/src/pretix/locale/pl/LC_MESSAGES/django.po b/src/pretix/locale/pl/LC_MESSAGES/django.po
index 26af5cc035..323f5349a9 100644
--- a/src/pretix/locale/pl/LC_MESSAGES/django.po
+++ b/src/pretix/locale/pl/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-01-29 13:18+0000\n"
-"PO-Revision-Date: 2025-01-19 06:00+0000\n"
+"PO-Revision-Date: 2025-02-05 08:00+0000\n"
"Last-Translator: Wiktor Przybylski \n"
"Language-Team: Polish \n"
@@ -31951,7 +31951,8 @@ msgstr "Zapisz adres na moim koncie klienta, by użyć go do przyszłych zakupó
#: pretix/presale/forms/checkout.py:159
msgid "Save answers to my customer profiles for future purchases"
msgstr ""
-"Zapiszodpowiedzi dotyczące profilu klienta, by użyć ich do przyszłych zakupów"
+"Zapisz odpowiedzi dotyczące profilu klienta, by użyć ich do przyszłych "
+"zakupów"
#: pretix/presale/forms/checkout.py:166
msgid "Save to profile"
From cf9c85c60b2f44a1eb1fe7d6bc3796c9663a7a65 Mon Sep 17 00:00:00 2001
From: Antti Nironen
Date: Wed, 5 Feb 2025 08:33:54 +0000
Subject: [PATCH 06/99] Translations: Update Finnish
Currently translated at 29.2% (1711 of 5846 strings)
Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/fi/
powered by weblate
---
src/pretix/locale/fi/LC_MESSAGES/django.po | 63 ++++++++++++++--------
1 file changed, 42 insertions(+), 21 deletions(-)
diff --git a/src/pretix/locale/fi/LC_MESSAGES/django.po b/src/pretix/locale/fi/LC_MESSAGES/django.po
index e9f89b5d4e..d3a89d0764 100644
--- a/src/pretix/locale/fi/LC_MESSAGES/django.po
+++ b/src/pretix/locale/fi/LC_MESSAGES/django.po
@@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-01-29 13:18+0000\n"
-"PO-Revision-Date: 2025-02-04 20:00+0000\n"
-"Last-Translator: Hannu Kaakinen \n"
+"PO-Revision-Date: 2025-02-05 11:29+0000\n"
+"Last-Translator: Antti Nironen \n"
"Language-Team: Finnish \n"
"Language: fi\n"
@@ -5117,6 +5117,10 @@ msgid ""
"Note that not all media types support all types of products, and not all "
"media types are supported across all sales channels or check-in processes."
msgstr ""
+"Valitse tässä tuotteessa käytettävä fyysisen välineen tyyppi. Huomaa, että "
+"kaikki mediatyypit eivät tue kaikentyyppisiä tuotteita, ja kaikkia "
+"mediatyyppejä ei tueta kaikissa myyntikanavissa tai "
+"sisäänkirjautumisprosesseissa."
#: pretix/base/models/items.py:795 pretix/base/models/items.py:1701
#: pretix/control/forms/filter.py:420 pretix/control/forms/filter.py:1897
@@ -5141,6 +5145,8 @@ msgid ""
"If you select a reusable media policy, you also need to select a reusable "
"media type."
msgstr ""
+"Jos valitset uudelleenkäytettävän median käytännön, sinun on valittava myös "
+"uudelleenkäytettävä median tyyppi."
#: pretix/base/models/items.py:992
msgid "The selected media type is not enabled in your organizer settings."
@@ -5153,7 +5159,7 @@ msgstr "Valittu mediatyyppi ei tällä hetkellä tue lippujen käyttöä."
#: pretix/base/models/items.py:996
msgid ""
"The selected media type does not support usage for gift cards currently."
-msgstr ""
+msgstr "Valittu mediatyyppi ei tue lahjakortin käyttöä tällä hetkellä."
#: pretix/base/models/items.py:998
msgid ""
@@ -5161,28 +5167,32 @@ msgid ""
"Instead, gift cards for some reusable media types can be created or re-"
"charged directly at the POS."
msgstr ""
+"Et voi tällä hetkellä luoda lahjakortteja uudelleenkäytettävän median "
+"käytännöllä. Sen sijaan lahjakortteja joillekin uudelleenkäytettäville "
+"mediatyypeille voidaan luoda tai ladata uudelleen suoraan myyntipisteessä."
#: pretix/base/models/items.py:1006
msgid ""
"The maximum number per order can not be lower than the minimum number per "
"order."
msgstr ""
+"Tilauksen enimmäismäärä ei voi olla pienempi kuin tilauksen vähimmäismäärä."
#: pretix/base/models/items.py:1012
msgid "The item's category must belong to the same event as the item."
-msgstr ""
+msgstr "Tuotteen luokan on kuuluttava samaan tapahtumaan kuin nimike."
#: pretix/base/models/items.py:1017
msgid "The item's tax rule must belong to the same event as the item."
-msgstr ""
+msgstr "Tuotteen verosäännön on kuuluttava samaan tapahtumaan kuin nimike."
#: pretix/base/models/items.py:1023
msgid "The item's availability cannot end before it starts."
-msgstr ""
+msgstr "Tuotteen saatavuus ei voi päättyä ennen sen alkamista."
#: pretix/base/models/items.py:1155
msgid "This is shown below the variation name in lists."
-msgstr ""
+msgstr "Tämä näkyy muunnelman nimen alla luetteloissa."
#: pretix/base/models/items.py:1182
msgid "Require approval"
@@ -5195,12 +5205,16 @@ msgid ""
"paid and completed. You can use this e.g. for discounted tickets that are "
"only available to specific groups."
msgstr ""
+"Jos tämä muunnelma on osa tilausta, tilaus asetetaan \"hyväksyntä\"-tilaan "
+"ja sinun on vahvistettava se ennen kuin se voidaan maksaa ja viedä loppuun. "
+"Voit käyttää tätä mm. alennetuille lipuille, jotka ovat saatavilla vain "
+"tietyille ryhmille."
#: pretix/base/models/items.py:1194 pretix/control/navigation.py:579
#: pretix/control/templates/pretixcontrol/organizers/membershiptypes.html:4
#: pretix/control/templates/pretixcontrol/organizers/membershiptypes.html:6
msgid "Membership types"
-msgstr ""
+msgstr "Jäsenyysluokat"
#: pretix/base/models/items.py:1206
msgid "This variation will not be sold before the given date."
@@ -5212,7 +5226,7 @@ msgstr "Tätä variaatiota ei myydä annetun ajankohdan jälkeen."
#: pretix/base/models/items.py:1224
msgid "Sell on all sales channels the product is sold on"
-msgstr ""
+msgstr "Myy kaikilla myyntikanavilla, joissa tuotetta myydään"
#: pretix/base/models/items.py:1230
msgid ""
@@ -5220,6 +5234,9 @@ msgid ""
"if a sales channel is selected here but not on product level, the variation "
"will not be available."
msgstr ""
+"Tuotteen myyntikanavan valinta kokonaisuutena on ensisijainen, joten jos "
+"myyntikanava valitaan tässä, mutta ei tuotetasolla, muunnelma ei ole "
+"käytettävissä."
#: pretix/base/models/items.py:1235
msgid "Show only if a matching voucher is redeemed."
@@ -5230,53 +5247,57 @@ msgid ""
"This variation will be hidden from the event page until the user enters a "
"voucher that unlocks this variation."
msgstr ""
+"Tämä muunnelma piilotetaan tapahtumasivulta, kunnes käyttäjä syöttää "
+"kupongin, joka avaa tämän muunnelman lukituksen."
#: pretix/base/models/items.py:1257
#: pretix/control/templates/pretixcontrol/item/create.html:111
msgid "Product variations"
-msgstr ""
+msgstr "Tuotevariaatiot"
#: pretix/base/models/items.py:1462
msgid "Minimum number"
-msgstr ""
+msgstr "Vähimmäismäärä"
#: pretix/base/models/items.py:1466
msgid "Maximum number"
-msgstr ""
+msgstr "Enimmäismäärä"
#: pretix/base/models/items.py:1470
msgid "Add-Ons are included in the price"
-msgstr ""
+msgstr "Lisäosat sisältyvät hintaan"
#: pretix/base/models/items.py:1471
msgid ""
"If selected, adding add-ons to this ticket is free, even if the add-ons "
"would normally cost money individually."
msgstr ""
+"Jos tämä valitaan, lisäosien lisääminen tähän lippuun on ilmaista, vaikka "
+"yksittäiset lisäosat yleensä nostavat hintaa."
#: pretix/base/models/items.py:1476
msgid "Allow the same product to be selected multiple times"
-msgstr ""
+msgstr "Salli valita sama tuote useita kertoja"
#: pretix/base/models/items.py:1495
msgid "The add-on's category must belong to the same event as the item."
-msgstr ""
+msgstr "Lisäosan luokan on kuuluttava samaan tapahtumaan kuin kohteen."
#: pretix/base/models/items.py:1500
msgid "The item already has an add-on of this category."
-msgstr ""
+msgstr "Tuotteella on jo lisäosa tästä luokasta."
#: pretix/base/models/items.py:1505
msgid "The minimum count needs to be equal to or greater than zero."
-msgstr ""
+msgstr "Vähimmäismäärän on oltava yhtä suuri tai suurempi kuin nolla."
#: pretix/base/models/items.py:1510
msgid "The maximum count needs to be equal to or greater than zero."
-msgstr ""
+msgstr "Enimmäismäärän on oltava yhtä suuri tai suurempi kuin nolla."
#: pretix/base/models/items.py:1515
msgid "The maximum count needs to be greater than the minimum count."
-msgstr ""
+msgstr "Enimmäismäärän on oltava suurempi kuin vähimmäismäärä."
#: pretix/base/models/items.py:1542
msgid "Bundled item"
@@ -5284,11 +5305,11 @@ msgstr ""
#: pretix/base/models/items.py:1548
msgid "Bundled variation"
-msgstr ""
+msgstr "Niputettu muunnelma"
#: pretix/base/models/items.py:1559
msgid "Designated price part"
-msgstr ""
+msgstr "Määrätty hinta-osa"
#: pretix/base/models/items.py:1560
msgid ""
From 97c456db345ae6dd58086bfcc3403650db7bb832 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=EC=A1=B0=EC=A0=95=ED=99=94?=
Date: Wed, 5 Feb 2025 11:49:32 +0000
Subject: [PATCH 07/99] Translations: Update Korean
Currently translated at 1.3% (81 of 5846 strings)
Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/ko/
powered by weblate
---
src/pretix/locale/ko/LC_MESSAGES/django.po | 18 ++++++++++--------
1 file changed, 10 insertions(+), 8 deletions(-)
diff --git a/src/pretix/locale/ko/LC_MESSAGES/django.po b/src/pretix/locale/ko/LC_MESSAGES/django.po
index 0c7c1c1073..a05e3ce1f6 100644
--- a/src/pretix/locale/ko/LC_MESSAGES/django.po
+++ b/src/pretix/locale/ko/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-01-29 13:18+0000\n"
-"PO-Revision-Date: 2025-02-03 16:07+0000\n"
+"PO-Revision-Date: 2025-02-05 11:50+0000\n"
"Last-Translator: 조정화 \n"
"Language-Team: Korean \n"
@@ -323,38 +323,40 @@ msgstr "체크인 하는 동안에는 그러한 질문을 할 수 없습니다."
#: pretix/api/serializers/item.py:546 pretix/control/forms/item.py:199
msgid "This type of question cannot be shown during check-in."
-msgstr ""
+msgstr "체크인 중에는 이러한 유형의 질문을 표시할 수 없습니다."
#: pretix/api/serializers/media.py:108
+#, fuzzy
msgid ""
"A medium with the same identifier and type already exists in your organizer "
"account."
-msgstr ""
+msgstr "동일한 식별자와 유형의 매체가 이미 주최자 계정에 존재합니다."
#: pretix/api/serializers/order.py:78
#, python-brace-format
msgid "\"{input}\" is not a valid choice."
-msgstr ""
+msgstr "\"{input}\"은 유효한 선택이 아닙니다."
#: pretix/api/serializers/order.py:1345 pretix/api/views/cart.py:224
#: pretix/base/services/orders.py:1530
#, python-brace-format
msgid "The selected seat \"{seat}\" is not available."
-msgstr ""
+msgstr "선택한 좌석 \"{seat}\"을 사용할 수 없습니다."
#: pretix/api/serializers/order.py:1371 pretix/api/serializers/order.py:1378
msgid "The product \"{}\" is not available on this date."
-msgstr ""
+msgstr "\"{}\" 제품은 이 날짜에 구매할 수 없습니다."
#: pretix/api/serializers/order.py:1393 pretix/api/views/cart.py:200
+#, fuzzy
msgid ""
"There is not enough quota available on quota \"{}\" to perform the operation."
-msgstr ""
+msgstr "할당량 \"{}\"에 작업을 수행할 수 있는 할당량이 충분하지 않습니다."
#: pretix/api/serializers/organizer.py:103
#: pretix/control/forms/organizer.py:888 pretix/presale/forms/customer.py:445
msgid "An account with this email address is already registered."
-msgstr ""
+msgstr "이 이메일 주소를 가진 계정이 이미 등록되어 있습니다."
#: pretix/api/serializers/organizer.py:236
#: pretix/control/forms/organizer.py:737
From 30f11deb195aea7698557feb2ad16f3832e25f5b Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 5 Feb 2025 16:51:22 +0100
Subject: [PATCH 08/99] Update reportlab requirement from ==4.2.* to ==4.3.*
(#4805)
Updates the requirements on [reportlab](https://www.reportlab.com/) to permit the latest version.
---
updated-dependencies:
- dependency-name: reportlab
dependency-type: direct:production
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
pyproject.toml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pyproject.toml b/pyproject.toml
index 044dff0860..1cde1d6313 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -89,7 +89,7 @@ dependencies = [
"pyuca",
"qrcode==8.0",
"redis==5.2.*",
- "reportlab==4.2.*",
+ "reportlab==4.3.*",
"requests==2.31.*",
"sentry-sdk==2.20.*",
"sepaxml==2.6.*",
From 59d4673dde21600e6a617d7b86e46ba7583b6a22 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 5 Feb 2025 16:52:16 +0100
Subject: [PATCH 09/99] Bump @babel/preset-env in /src/pretix/static/npm_dir
(#4801)
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.26.0 to 7.26.7.
- [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.26.7/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]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
src/pretix/static/npm_dir/package-lock.json | 221 ++++++++------------
src/pretix/static/npm_dir/package.json | 2 +-
2 files changed, 93 insertions(+), 130 deletions(-)
diff --git a/src/pretix/static/npm_dir/package-lock.json b/src/pretix/static/npm_dir/package-lock.json
index bf142e6e31..a3b40e9d0b 100644
--- a/src/pretix/static/npm_dir/package-lock.json
+++ b/src/pretix/static/npm_dir/package-lock.json
@@ -9,7 +9,7 @@
"version": "0.0.0",
"dependencies": {
"@babel/core": "^7.26.0",
- "@babel/preset-env": "^7.26.0",
+ "@babel/preset-env": "^7.26.7",
"@rollup/plugin-babel": "^6.0.4",
"@rollup/plugin-node-resolve": "^16.0.0",
"rollup": "^2.79.1",
@@ -44,9 +44,10 @@
}
},
"node_modules/@babel/compat-data": {
- "version": "7.26.2",
- "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.2.tgz",
- "integrity": "sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg==",
+ "version": "7.26.5",
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.5.tgz",
+ "integrity": "sha512-XvcZi1KWf88RVbF9wn8MN6tYFloU5qX8KjuF3E1PVBmJ9eypXfs4GRiJwLuTZL0iSnJUKn1BFPa5BPZZJyFzPg==",
+ "license": "MIT",
"engines": {
"node": ">=6.9.0"
}
@@ -138,24 +139,13 @@
"node": ">=6.9.0"
}
},
- "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.25.9.tgz",
- "integrity": "sha512-C47lC7LIDCnz0h4vai/tpNOI95tCd5ZT3iBt/DBH5lXKHZsyNQv18yf1wIIg2ntiQNgmAvA+DgZ82iW8Qdym8g==",
- "dependencies": {
- "@babel/traverse": "^7.25.9",
- "@babel/types": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
"node_modules/@babel/helper-compilation-targets": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz",
- "integrity": "sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==",
+ "version": "7.26.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.26.5.tgz",
+ "integrity": "sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==",
+ "license": "MIT",
"dependencies": {
- "@babel/compat-data": "^7.25.9",
+ "@babel/compat-data": "^7.26.5",
"@babel/helper-validator-option": "^7.25.9",
"browserslist": "^4.24.0",
"lru-cache": "^5.1.1",
@@ -305,9 +295,10 @@
}
},
"node_modules/@babel/helper-plugin-utils": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz",
- "integrity": "sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==",
+ "version": "7.26.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz",
+ "integrity": "sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==",
+ "license": "MIT",
"engines": {
"node": ">=6.9.0"
}
@@ -344,18 +335,6 @@
"@babel/core": "^7.0.0"
}
},
- "node_modules/@babel/helper-simple-access": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.25.9.tgz",
- "integrity": "sha512-c6WHXuiaRsJTyHYLJV75t9IqsmTbItYfdj99PnzYGQZkYKvan5/2jKJ7gu31J3/BJ/A18grImSPModuyG/Eo0Q==",
- "dependencies": {
- "@babel/traverse": "^7.25.9",
- "@babel/types": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
"node_modules/@babel/helper-skip-transparent-expression-wrappers": {
"version": "7.25.9",
"resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.9.tgz",
@@ -606,11 +585,12 @@
}
},
"node_modules/@babel/plugin-transform-block-scoped-functions": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.25.9.tgz",
- "integrity": "sha512-toHc9fzab0ZfenFpsyYinOX0J/5dgJVA2fm64xPewu7CoYHWEivIWKxkK2rMi4r3yQqLnVmheMXRdG+k239CgA==",
+ "version": "7.26.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.26.5.tgz",
+ "integrity": "sha512-chuTSY+hq09+/f5lMj8ZSYgCFpppV2CbYrhNFJ1BFoXpiWPnnAb7R0MqrafCpN8E1+YRrtM1MXZHJdIx8B6rMQ==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.25.9"
+ "@babel/helper-plugin-utils": "^7.26.5"
},
"engines": {
"node": ">=6.9.0"
@@ -770,11 +750,11 @@
}
},
"node_modules/@babel/plugin-transform-exponentiation-operator": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.25.9.tgz",
- "integrity": "sha512-KRhdhlVk2nObA5AYa7QMgTMTVJdfHprfpAk4DjZVtllqRg9qarilstTKEhpVjyt+Npi8ThRyiV8176Am3CodPA==",
+ "version": "7.26.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.26.3.tgz",
+ "integrity": "sha512-7CAHcQ58z2chuXPWblnn1K6rLDnDWieghSOEmqQsrBenH0P9InCUtOJYD89pvngljmZlJcz3fcmgYsXFNGa1ZQ==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-builder-binary-assignment-operator-visitor": "^7.25.9",
"@babel/helper-plugin-utils": "^7.25.9"
},
"engines": {
@@ -901,13 +881,13 @@
}
},
"node_modules/@babel/plugin-transform-modules-commonjs": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.25.9.tgz",
- "integrity": "sha512-dwh2Ol1jWwL2MgkCzUSOvfmKElqQcuswAZypBSUsScMXvgdT8Ekq5YA6TtqpTVWH+4903NmboMuH1o9i8Rxlyg==",
+ "version": "7.26.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.26.3.tgz",
+ "integrity": "sha512-MgR55l4q9KddUDITEzEFYn5ZsGDXMSsU9E+kh7fjRXTIC3RHqfCo8RPRbyReYJh44HQ/yomFkqbOFohXvDCiIQ==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-module-transforms": "^7.25.9",
- "@babel/helper-plugin-utils": "^7.25.9",
- "@babel/helper-simple-access": "^7.25.9"
+ "@babel/helper-module-transforms": "^7.26.0",
+ "@babel/helper-plugin-utils": "^7.25.9"
},
"engines": {
"node": ">=6.9.0"
@@ -978,11 +958,12 @@
}
},
"node_modules/@babel/plugin-transform-nullish-coalescing-operator": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.25.9.tgz",
- "integrity": "sha512-ENfftpLZw5EItALAD4WsY/KUWvhUlZndm5GC7G3evUsVeSJB6p0pBeLQUnRnBCBx7zV0RKQjR9kCuwrsIrjWog==",
+ "version": "7.26.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.26.6.tgz",
+ "integrity": "sha512-CKW8Vu+uUZneQCPtXmSBUC6NCAUdya26hWCElAWh5mVSlSRsmiCPUUDKb3Z0szng1hiAJa098Hkhg9o4SE35Qw==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.25.9"
+ "@babel/helper-plugin-utils": "^7.26.5"
},
"engines": {
"node": ">=6.9.0"
@@ -1226,11 +1207,12 @@
}
},
"node_modules/@babel/plugin-transform-typeof-symbol": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.25.9.tgz",
- "integrity": "sha512-v61XqUMiueJROUv66BVIOi0Fv/CUuZuZMl5NkRoCVxLAnMexZ0A3kMe7vvZ0nulxMuMp0Mk6S5hNh48yki08ZA==",
+ "version": "7.26.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.26.7.tgz",
+ "integrity": "sha512-jfoTXXZTgGg36BmhqT3cAYK5qkmqvJpvNrPhaK/52Vgjhw4Rq29s9UqpWWV0D6yuRmgiFH/BUVlkl96zJWqnaw==",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.25.9"
+ "@babel/helper-plugin-utils": "^7.26.5"
},
"engines": {
"node": ">=6.9.0"
@@ -1299,13 +1281,14 @@
}
},
"node_modules/@babel/preset-env": {
- "version": "7.26.0",
- "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.26.0.tgz",
- "integrity": "sha512-H84Fxq0CQJNdPFT2DrfnylZ3cf5K43rGfWK4LJGPpjKHiZlk0/RzwEus3PDDZZg+/Er7lCA03MVacueUuXdzfw==",
+ "version": "7.26.7",
+ "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.26.7.tgz",
+ "integrity": "sha512-Ycg2tnXwixaXOVb29rana8HNPgLVBof8qqtNQ9LE22IoyZboQbGSxI6ZySMdW3K5nAe6gu35IaJefUJflhUFTQ==",
+ "license": "MIT",
"dependencies": {
- "@babel/compat-data": "^7.26.0",
- "@babel/helper-compilation-targets": "^7.25.9",
- "@babel/helper-plugin-utils": "^7.25.9",
+ "@babel/compat-data": "^7.26.5",
+ "@babel/helper-compilation-targets": "^7.26.5",
+ "@babel/helper-plugin-utils": "^7.26.5",
"@babel/helper-validator-option": "^7.25.9",
"@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.9",
"@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.9",
@@ -1319,7 +1302,7 @@
"@babel/plugin-transform-arrow-functions": "^7.25.9",
"@babel/plugin-transform-async-generator-functions": "^7.25.9",
"@babel/plugin-transform-async-to-generator": "^7.25.9",
- "@babel/plugin-transform-block-scoped-functions": "^7.25.9",
+ "@babel/plugin-transform-block-scoped-functions": "^7.26.5",
"@babel/plugin-transform-block-scoping": "^7.25.9",
"@babel/plugin-transform-class-properties": "^7.25.9",
"@babel/plugin-transform-class-static-block": "^7.26.0",
@@ -1330,7 +1313,7 @@
"@babel/plugin-transform-duplicate-keys": "^7.25.9",
"@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.9",
"@babel/plugin-transform-dynamic-import": "^7.25.9",
- "@babel/plugin-transform-exponentiation-operator": "^7.25.9",
+ "@babel/plugin-transform-exponentiation-operator": "^7.26.3",
"@babel/plugin-transform-export-namespace-from": "^7.25.9",
"@babel/plugin-transform-for-of": "^7.25.9",
"@babel/plugin-transform-function-name": "^7.25.9",
@@ -1339,12 +1322,12 @@
"@babel/plugin-transform-logical-assignment-operators": "^7.25.9",
"@babel/plugin-transform-member-expression-literals": "^7.25.9",
"@babel/plugin-transform-modules-amd": "^7.25.9",
- "@babel/plugin-transform-modules-commonjs": "^7.25.9",
+ "@babel/plugin-transform-modules-commonjs": "^7.26.3",
"@babel/plugin-transform-modules-systemjs": "^7.25.9",
"@babel/plugin-transform-modules-umd": "^7.25.9",
"@babel/plugin-transform-named-capturing-groups-regex": "^7.25.9",
"@babel/plugin-transform-new-target": "^7.25.9",
- "@babel/plugin-transform-nullish-coalescing-operator": "^7.25.9",
+ "@babel/plugin-transform-nullish-coalescing-operator": "^7.26.6",
"@babel/plugin-transform-numeric-separator": "^7.25.9",
"@babel/plugin-transform-object-rest-spread": "^7.25.9",
"@babel/plugin-transform-object-super": "^7.25.9",
@@ -1361,7 +1344,7 @@
"@babel/plugin-transform-spread": "^7.25.9",
"@babel/plugin-transform-sticky-regex": "^7.25.9",
"@babel/plugin-transform-template-literals": "^7.25.9",
- "@babel/plugin-transform-typeof-symbol": "^7.25.9",
+ "@babel/plugin-transform-typeof-symbol": "^7.26.7",
"@babel/plugin-transform-unicode-escapes": "^7.25.9",
"@babel/plugin-transform-unicode-property-regex": "^7.25.9",
"@babel/plugin-transform-unicode-regex": "^7.25.9",
@@ -3788,9 +3771,9 @@
}
},
"@babel/compat-data": {
- "version": "7.26.2",
- "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.2.tgz",
- "integrity": "sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg=="
+ "version": "7.26.5",
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.5.tgz",
+ "integrity": "sha512-XvcZi1KWf88RVbF9wn8MN6tYFloU5qX8KjuF3E1PVBmJ9eypXfs4GRiJwLuTZL0iSnJUKn1BFPa5BPZZJyFzPg=="
},
"@babel/core": {
"version": "7.26.0",
@@ -3858,21 +3841,12 @@
"@babel/types": "^7.25.9"
}
},
- "@babel/helper-builder-binary-assignment-operator-visitor": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.25.9.tgz",
- "integrity": "sha512-C47lC7LIDCnz0h4vai/tpNOI95tCd5ZT3iBt/DBH5lXKHZsyNQv18yf1wIIg2ntiQNgmAvA+DgZ82iW8Qdym8g==",
- "requires": {
- "@babel/traverse": "^7.25.9",
- "@babel/types": "^7.25.9"
- }
- },
"@babel/helper-compilation-targets": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz",
- "integrity": "sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==",
+ "version": "7.26.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.26.5.tgz",
+ "integrity": "sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==",
"requires": {
- "@babel/compat-data": "^7.25.9",
+ "@babel/compat-data": "^7.26.5",
"@babel/helper-validator-option": "^7.25.9",
"browserslist": "^4.24.0",
"lru-cache": "^5.1.1",
@@ -3986,9 +3960,9 @@
}
},
"@babel/helper-plugin-utils": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz",
- "integrity": "sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw=="
+ "version": "7.26.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz",
+ "integrity": "sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg=="
},
"@babel/helper-remap-async-to-generator": {
"version": "7.25.9",
@@ -4010,15 +3984,6 @@
"@babel/traverse": "^7.25.9"
}
},
- "@babel/helper-simple-access": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.25.9.tgz",
- "integrity": "sha512-c6WHXuiaRsJTyHYLJV75t9IqsmTbItYfdj99PnzYGQZkYKvan5/2jKJ7gu31J3/BJ/A18grImSPModuyG/Eo0Q==",
- "requires": {
- "@babel/traverse": "^7.25.9",
- "@babel/types": "^7.25.9"
- }
- },
"@babel/helper-skip-transparent-expression-wrappers": {
"version": "7.25.9",
"resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.9.tgz",
@@ -4174,11 +4139,11 @@
}
},
"@babel/plugin-transform-block-scoped-functions": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.25.9.tgz",
- "integrity": "sha512-toHc9fzab0ZfenFpsyYinOX0J/5dgJVA2fm64xPewu7CoYHWEivIWKxkK2rMi4r3yQqLnVmheMXRdG+k239CgA==",
+ "version": "7.26.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.26.5.tgz",
+ "integrity": "sha512-chuTSY+hq09+/f5lMj8ZSYgCFpppV2CbYrhNFJ1BFoXpiWPnnAb7R0MqrafCpN8E1+YRrtM1MXZHJdIx8B6rMQ==",
"requires": {
- "@babel/helper-plugin-utils": "^7.25.9"
+ "@babel/helper-plugin-utils": "^7.26.5"
}
},
"@babel/plugin-transform-block-scoping": {
@@ -4272,11 +4237,10 @@
}
},
"@babel/plugin-transform-exponentiation-operator": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.25.9.tgz",
- "integrity": "sha512-KRhdhlVk2nObA5AYa7QMgTMTVJdfHprfpAk4DjZVtllqRg9qarilstTKEhpVjyt+Npi8ThRyiV8176Am3CodPA==",
+ "version": "7.26.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.26.3.tgz",
+ "integrity": "sha512-7CAHcQ58z2chuXPWblnn1K6rLDnDWieghSOEmqQsrBenH0P9InCUtOJYD89pvngljmZlJcz3fcmgYsXFNGa1ZQ==",
"requires": {
- "@babel/helper-builder-binary-assignment-operator-visitor": "^7.25.9",
"@babel/helper-plugin-utils": "^7.25.9"
}
},
@@ -4349,13 +4313,12 @@
}
},
"@babel/plugin-transform-modules-commonjs": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.25.9.tgz",
- "integrity": "sha512-dwh2Ol1jWwL2MgkCzUSOvfmKElqQcuswAZypBSUsScMXvgdT8Ekq5YA6TtqpTVWH+4903NmboMuH1o9i8Rxlyg==",
+ "version": "7.26.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.26.3.tgz",
+ "integrity": "sha512-MgR55l4q9KddUDITEzEFYn5ZsGDXMSsU9E+kh7fjRXTIC3RHqfCo8RPRbyReYJh44HQ/yomFkqbOFohXvDCiIQ==",
"requires": {
- "@babel/helper-module-transforms": "^7.25.9",
- "@babel/helper-plugin-utils": "^7.25.9",
- "@babel/helper-simple-access": "^7.25.9"
+ "@babel/helper-module-transforms": "^7.26.0",
+ "@babel/helper-plugin-utils": "^7.25.9"
}
},
"@babel/plugin-transform-modules-systemjs": {
@@ -4396,11 +4359,11 @@
}
},
"@babel/plugin-transform-nullish-coalescing-operator": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.25.9.tgz",
- "integrity": "sha512-ENfftpLZw5EItALAD4WsY/KUWvhUlZndm5GC7G3evUsVeSJB6p0pBeLQUnRnBCBx7zV0RKQjR9kCuwrsIrjWog==",
+ "version": "7.26.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.26.6.tgz",
+ "integrity": "sha512-CKW8Vu+uUZneQCPtXmSBUC6NCAUdya26hWCElAWh5mVSlSRsmiCPUUDKb3Z0szng1hiAJa098Hkhg9o4SE35Qw==",
"requires": {
- "@babel/helper-plugin-utils": "^7.25.9"
+ "@babel/helper-plugin-utils": "^7.26.5"
}
},
"@babel/plugin-transform-numeric-separator": {
@@ -4542,11 +4505,11 @@
}
},
"@babel/plugin-transform-typeof-symbol": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.25.9.tgz",
- "integrity": "sha512-v61XqUMiueJROUv66BVIOi0Fv/CUuZuZMl5NkRoCVxLAnMexZ0A3kMe7vvZ0nulxMuMp0Mk6S5hNh48yki08ZA==",
+ "version": "7.26.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.26.7.tgz",
+ "integrity": "sha512-jfoTXXZTgGg36BmhqT3cAYK5qkmqvJpvNrPhaK/52Vgjhw4Rq29s9UqpWWV0D6yuRmgiFH/BUVlkl96zJWqnaw==",
"requires": {
- "@babel/helper-plugin-utils": "^7.25.9"
+ "@babel/helper-plugin-utils": "^7.26.5"
}
},
"@babel/plugin-transform-unicode-escapes": {
@@ -4585,13 +4548,13 @@
}
},
"@babel/preset-env": {
- "version": "7.26.0",
- "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.26.0.tgz",
- "integrity": "sha512-H84Fxq0CQJNdPFT2DrfnylZ3cf5K43rGfWK4LJGPpjKHiZlk0/RzwEus3PDDZZg+/Er7lCA03MVacueUuXdzfw==",
+ "version": "7.26.7",
+ "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.26.7.tgz",
+ "integrity": "sha512-Ycg2tnXwixaXOVb29rana8HNPgLVBof8qqtNQ9LE22IoyZboQbGSxI6ZySMdW3K5nAe6gu35IaJefUJflhUFTQ==",
"requires": {
- "@babel/compat-data": "^7.26.0",
- "@babel/helper-compilation-targets": "^7.25.9",
- "@babel/helper-plugin-utils": "^7.25.9",
+ "@babel/compat-data": "^7.26.5",
+ "@babel/helper-compilation-targets": "^7.26.5",
+ "@babel/helper-plugin-utils": "^7.26.5",
"@babel/helper-validator-option": "^7.25.9",
"@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.9",
"@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.9",
@@ -4605,7 +4568,7 @@
"@babel/plugin-transform-arrow-functions": "^7.25.9",
"@babel/plugin-transform-async-generator-functions": "^7.25.9",
"@babel/plugin-transform-async-to-generator": "^7.25.9",
- "@babel/plugin-transform-block-scoped-functions": "^7.25.9",
+ "@babel/plugin-transform-block-scoped-functions": "^7.26.5",
"@babel/plugin-transform-block-scoping": "^7.25.9",
"@babel/plugin-transform-class-properties": "^7.25.9",
"@babel/plugin-transform-class-static-block": "^7.26.0",
@@ -4616,7 +4579,7 @@
"@babel/plugin-transform-duplicate-keys": "^7.25.9",
"@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.9",
"@babel/plugin-transform-dynamic-import": "^7.25.9",
- "@babel/plugin-transform-exponentiation-operator": "^7.25.9",
+ "@babel/plugin-transform-exponentiation-operator": "^7.26.3",
"@babel/plugin-transform-export-namespace-from": "^7.25.9",
"@babel/plugin-transform-for-of": "^7.25.9",
"@babel/plugin-transform-function-name": "^7.25.9",
@@ -4625,12 +4588,12 @@
"@babel/plugin-transform-logical-assignment-operators": "^7.25.9",
"@babel/plugin-transform-member-expression-literals": "^7.25.9",
"@babel/plugin-transform-modules-amd": "^7.25.9",
- "@babel/plugin-transform-modules-commonjs": "^7.25.9",
+ "@babel/plugin-transform-modules-commonjs": "^7.26.3",
"@babel/plugin-transform-modules-systemjs": "^7.25.9",
"@babel/plugin-transform-modules-umd": "^7.25.9",
"@babel/plugin-transform-named-capturing-groups-regex": "^7.25.9",
"@babel/plugin-transform-new-target": "^7.25.9",
- "@babel/plugin-transform-nullish-coalescing-operator": "^7.25.9",
+ "@babel/plugin-transform-nullish-coalescing-operator": "^7.26.6",
"@babel/plugin-transform-numeric-separator": "^7.25.9",
"@babel/plugin-transform-object-rest-spread": "^7.25.9",
"@babel/plugin-transform-object-super": "^7.25.9",
@@ -4647,7 +4610,7 @@
"@babel/plugin-transform-spread": "^7.25.9",
"@babel/plugin-transform-sticky-regex": "^7.25.9",
"@babel/plugin-transform-template-literals": "^7.25.9",
- "@babel/plugin-transform-typeof-symbol": "^7.25.9",
+ "@babel/plugin-transform-typeof-symbol": "^7.26.7",
"@babel/plugin-transform-unicode-escapes": "^7.25.9",
"@babel/plugin-transform-unicode-property-regex": "^7.25.9",
"@babel/plugin-transform-unicode-regex": "^7.25.9",
diff --git a/src/pretix/static/npm_dir/package.json b/src/pretix/static/npm_dir/package.json
index 62fca19aee..fd7248e2e9 100644
--- a/src/pretix/static/npm_dir/package.json
+++ b/src/pretix/static/npm_dir/package.json
@@ -5,7 +5,7 @@
"scripts": {},
"dependencies": {
"@babel/core": "^7.26.0",
- "@babel/preset-env": "^7.26.0",
+ "@babel/preset-env": "^7.26.7",
"@rollup/plugin-babel": "^6.0.4",
"@rollup/plugin-node-resolve": "^16.0.0",
"vue": "^2.7.16",
From 026a5e2941da40b842578b44163c021b1e61244a Mon Sep 17 00:00:00 2001
From: Mira
Date: Wed, 5 Feb 2025 16:52:36 +0100
Subject: [PATCH 10/99] Log automatic team creation in event create wizard
(#4802)
---
src/pretix/control/views/main.py | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/src/pretix/control/views/main.py b/src/pretix/control/views/main.py
index cf414f5929..0233e63d1d 100644
--- a/src/pretix/control/views/main.py
+++ b/src/pretix/control/views/main.py
@@ -289,6 +289,17 @@ class EventWizard(SafeSessionWizardView):
)
t.members.add(self.request.user)
t.limit_events.add(event)
+ t.log_action('pretix.team.created', user=self.request.user, data={
+ '_created_by_event_wizard': True,
+ 'name': t.name,
+ 'can_change_event_settings': True,
+ 'can_change_items': True,
+ 'can_view_orders': True,
+ 'can_change_orders': True,
+ 'can_view_vouchers': True,
+ 'can_change_vouchers': True,
+ 'limit_events': [event.pk],
+ })
logdata = {}
for f in form_list:
From c3db1dfb0951bf1da34be451b0a56237fa4fb398 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 5 Feb 2025 16:52:53 +0100
Subject: [PATCH 11/99] Update geoip2 requirement from ==4.* to ==5.* (#4792)
Updates the requirements on [geoip2](https://github.com/maxmind/GeoIP2-python) to permit the latest version.
- [Release notes](https://github.com/maxmind/GeoIP2-python/releases)
- [Changelog](https://github.com/maxmind/GeoIP2-python/blob/main/HISTORY.rst)
- [Commits](https://github.com/maxmind/GeoIP2-python/compare/v4.0.0...v5.0.1)
---
updated-dependencies:
- dependency-name: geoip2
dependency-type: direct:production
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
pyproject.toml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pyproject.toml b/pyproject.toml
index 1cde1d6313..655cd7dacb 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -57,7 +57,7 @@ dependencies = [
"djangorestframework==3.15.*",
"dnspython==2.7.*",
"drf_ujson2==1.7.*",
- "geoip2==4.*",
+ "geoip2==5.*",
"importlib_metadata==8.*", # Polyfill, we can probably drop this once we require Python 3.10+
"isoweek",
"jsonschema",
From 03d38797876cc76aeb60d134a62c3387c5846f47 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 5 Feb 2025 16:53:10 +0100
Subject: [PATCH 12/99] Update isort requirement from ==5.13.* to ==6.0.*
(#4789)
Updates the requirements on [isort](https://github.com/pycqa/isort) to permit the latest version.
- [Release notes](https://github.com/pycqa/isort/releases)
- [Changelog](https://github.com/PyCQA/isort/blob/main/CHANGELOG.md)
- [Commits](https://github.com/pycqa/isort/compare/5.13.0...6.0.0)
---
updated-dependencies:
- dependency-name: isort
dependency-type: direct:production
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
pyproject.toml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pyproject.toml b/pyproject.toml
index 655cd7dacb..5b0553b2e9 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -113,7 +113,7 @@ dev = [
"fakeredis==2.26.*",
"flake8==7.1.*",
"freezegun",
- "isort==5.13.*",
+ "isort==6.0.*",
"pep8-naming==0.14.*",
"potypo",
"pytest-asyncio>=0.24",
From 5d4b218aa6b9fc1df181fdf07339ab10e98ca409 Mon Sep 17 00:00:00 2001
From: Kian Cross
Date: Wed, 5 Feb 2025 15:56:28 +0000
Subject: [PATCH 13/99] Banktransfer: Handle trailing commas in headers for
Lloyds Bank CSV files (#4782)
Lloyds Bank (UK) CSV files include a trailing comma in the header row
but not in the data rows, causing the `csvimport.parse` function to
skip the data rows. This occurs because the header length exceeds the
row length, making them unequal to `hint.cols`.
This commit adjusts the length check to allow a range of acceptable row
lengths, from the index of the last non-empty column in the header to
`hint.cols`. This ensures compatibility with headers containing one or
more trailing commas without affecting rows with correctly labelled columns.
The solution avoids breaking changes by leaving underlying data structures
untouched. Alternative approaches, such as dropping trailing commas before
parsing or removing empty elements after parsing, were avoided due to
potential risks. Specifically, trailing columns might contain data that
banks provide but fail to label in the header row.
---
src/pretix/plugins/banktransfer/csvimport.py | 15 ++++++++++-
.../banktransfer/csvimport_data_gb_lloyds.csv | 3 +++
.../plugins/banktransfer/test_csvparser.py | 25 +++++++++++++++++++
3 files changed, 42 insertions(+), 1 deletion(-)
create mode 100644 src/tests/plugins/banktransfer/csvimport_data_gb_lloyds.csv
diff --git a/src/pretix/plugins/banktransfer/csvimport.py b/src/pretix/plugins/banktransfer/csvimport.py
index 0cd6cfe2cf..33f7f34597 100644
--- a/src/pretix/plugins/banktransfer/csvimport.py
+++ b/src/pretix/plugins/banktransfer/csvimport.py
@@ -30,6 +30,19 @@ class HintMismatchError(Exception):
pass
+def check_row_length(data, hint, row):
+ valid_lengths = [hint['cols']]
+ header = data[0]
+
+ for i in range(len(header) - 1, 0, -1):
+ if header[i]:
+ break
+ else:
+ valid_lengths.append(hint['cols'] - (len(header) - i))
+
+ return None not in row and len(row) in valid_lengths
+
+
def parse(data, hint):
result = []
if 'cols' not in hint:
@@ -39,7 +52,7 @@ def parse(data, hint):
good_hint = False
for row in data:
resrow = {}
- if None in row or len(row) != hint['cols']:
+ if not check_row_length(data, hint, row):
# Wrong column count
continue
if hint.get('payer') is not None:
diff --git a/src/tests/plugins/banktransfer/csvimport_data_gb_lloyds.csv b/src/tests/plugins/banktransfer/csvimport_data_gb_lloyds.csv
new file mode 100644
index 0000000000..bb0deb99f2
--- /dev/null
+++ b/src/tests/plugins/banktransfer/csvimport_data_gb_lloyds.csv
@@ -0,0 +1,3 @@
+Transaction Date,Transaction Type,Sort Code,Account Number,Transaction Description,Debit Amount,Credit Amount,Balance,
+27/01/2025,FPI,'99-99-99,11111111,SMITH J ABCDE 111111111111111111 111111 10 25JAN25 13:34,,214,500
+25/01/2025,FPI,'99-99-99,11111111,JONES A FGHIJ 111111111111111112 111112 10 25JAN25 10:34,,213,286
diff --git a/src/tests/plugins/banktransfer/test_csvparser.py b/src/tests/plugins/banktransfer/test_csvparser.py
index bf960c887e..c2aea00acb 100644
--- a/src/tests/plugins/banktransfer/test_csvparser.py
+++ b/src/tests/plugins/banktransfer/test_csvparser.py
@@ -166,3 +166,28 @@ class CsvImportTest(TestCase):
]
filename = "csvimport_data_de_postbank.csv"
self._test_from_sample_file(filename, expected, hint, expected_parsed)
+
+ def test_sample_file_lloyds(self):
+ expected = [
+ # Lloyds Bank includes a trailing comma at the end of the header row, making the header one column longer than the data rows.
+ ['Transaction Date', 'Transaction Type', 'Sort Code', 'Account Number', 'Transaction Description', 'Debit Amount',
+ 'Credit Amount', 'Balance', ''],
+ ["27/01/2025", "FPI", "'99-99-99", "11111111", "SMITH J ABCDE 111111111111111111 111111 10 25JAN25 13:34",
+ "", "214", "500"],
+ ["25/01/2025", "FPI", "'99-99-99", "11111111", "JONES A FGHIJ 111111111111111112 111112 10 25JAN25 10:34",
+ "", "213", "286"],
+ ]
+ hint = {
+ 'reference': [4],
+ 'date': 0,
+ 'amount': 6,
+ 'cols': 9,
+ }
+ expected_parsed = [
+ {'reference': 'SMITH J ABCDE 111111111111111111 111111 10 25JAN25 13:34', 'amount': '214',
+ 'date': '27/01/2025'},
+ {'reference': 'JONES A FGHIJ 111111111111111112 111112 10 25JAN25 10:34', 'amount': '213',
+ 'date': '25/01/2025'},
+ ]
+ filename = "csvimport_data_gb_lloyds.csv"
+ self._test_from_sample_file(filename, expected, hint, expected_parsed)
From 5d56cd3917b37c301dd3e3483438488f3de001d1 Mon Sep 17 00:00:00 2001
From: Raphael Michel
Date: Wed, 5 Feb 2025 16:56:38 +0100
Subject: [PATCH 14/99] Fix missing atomicity for handling forms and logs
(might be the reason for Z#23178997) (#4755)
---
src/pretix/control/views/global_settings.py | 2 ++
src/pretix/control/views/organizer.py | 28 +++++++++++++++++++++
src/pretix/control/views/user.py | 1 +
src/pretix/control/views/users.py | 2 ++
4 files changed, 33 insertions(+)
diff --git a/src/pretix/control/views/global_settings.py b/src/pretix/control/views/global_settings.py
index c8b506a15b..b6e2978779 100644
--- a/src/pretix/control/views/global_settings.py
+++ b/src/pretix/control/views/global_settings.py
@@ -34,6 +34,7 @@
import importlib_metadata as metadata
from django.conf import settings
from django.contrib import messages
+from django.db import transaction
from django.http import HttpResponse, JsonResponse
from django.shortcuts import get_object_or_404, redirect, reverse
from django.utils.timezone import now
@@ -58,6 +59,7 @@ class GlobalSettingsView(AdministratorPermissionRequiredMixin, FormView):
template_name = 'pretixcontrol/global_settings.html'
form_class = GlobalSettingsForm
+ @transaction.atomic
def form_valid(self, form):
form.save()
messages.success(self.request, _('Your changes have been saved.'))
diff --git a/src/pretix/control/views/organizer.py b/src/pretix/control/views/organizer.py
index 63c3a4ae74..00054d1dfe 100644
--- a/src/pretix/control/views/organizer.py
+++ b/src/pretix/control/views/organizer.py
@@ -626,6 +626,7 @@ class TeamCreateView(OrganizerDetailViewMixin, OrganizerPermissionRequiredMixin,
'team': self.object.pk
})
+ @transaction.atomic
def form_valid(self, form):
messages.success(self.request, _('The team has been created. You can now add members to the team.'))
form.instance.organizer = self.request.organizer
@@ -663,6 +664,7 @@ class TeamUpdateView(OrganizerDetailViewMixin, OrganizerPermissionRequiredMixin,
'team': self.object.pk
})
+ @transaction.atomic
def form_valid(self, form):
if form.has_changed():
self.object.log_action('pretix.team.changed', user=self.request.user, data={
@@ -983,6 +985,7 @@ class DeviceCreateView(OrganizerDetailViewMixin, OrganizerPermissionRequiredMixi
'device': self.object.pk
})
+ @transaction.atomic
def form_valid(self, form):
form.instance.organizer = self.request.organizer
ret = super().form_valid(form)
@@ -1044,6 +1047,7 @@ class DeviceUpdateView(OrganizerDetailViewMixin, OrganizerPermissionRequiredMixi
'organizer': self.request.organizer.slug,
})
+ @transaction.atomic
def form_valid(self, form):
if form.has_changed():
self.object.log_action('pretix.device.changed', user=self.request.user, data={
@@ -1236,6 +1240,7 @@ class DeviceRevokeView(OrganizerDetailViewMixin, OrganizerPermissionRequiredMixi
}))
return super().get(request, *args, **kwargs)
+ @transaction.atomic
def post(self, request, *args, **kwargs):
self.object = self.get_object()
self.object.revoked = True
@@ -1273,6 +1278,7 @@ class WebHookCreateView(OrganizerDetailViewMixin, OrganizerPermissionRequiredMix
'organizer': self.request.organizer.slug,
})
+ @transaction.atomic
def form_valid(self, form):
form.instance.organizer = self.request.organizer
ret = super().form_valid(form)
@@ -1310,6 +1316,7 @@ class WebHookUpdateView(OrganizerDetailViewMixin, OrganizerPermissionRequiredMix
'organizer': self.request.organizer.slug,
})
+ @transaction.atomic
def form_valid(self, form):
if form.has_changed():
self.request.organizer.log_action('pretix.webhook.changed', user=self.request.user, data=merge_dicts({
@@ -1386,6 +1393,7 @@ class GiftCardAcceptanceInviteView(OrganizerDetailViewMixin, OrganizerPermission
'organizer': self.request.organizer,
}
+ @transaction.atomic
def form_valid(self, form):
self.request.organizer.gift_card_acceptor_acceptance.get_or_create(
acceptor=form.cleaned_data['acceptor'],
@@ -2000,6 +2008,7 @@ class GateCreateView(OrganizerDetailViewMixin, OrganizerPermissionRequiredMixin,
'organizer': self.request.organizer.slug,
})
+ @transaction.atomic
def form_valid(self, form):
messages.success(self.request, _('The gate has been created.'))
form.instance.organizer = self.request.organizer
@@ -2034,6 +2043,7 @@ class GateUpdateView(OrganizerDetailViewMixin, OrganizerPermissionRequiredMixin,
'organizer': self.request.organizer.slug,
})
+ @transaction.atomic
def form_valid(self, form):
if form.has_changed():
self.object.log_action('pretix.gate.changed', user=self.request.user, data={
@@ -2136,6 +2146,7 @@ class EventMetaPropertyCreateView(OrganizerDetailViewMixin, OrganizerPermissionR
'organizer': self.request.organizer.slug,
})
+ @transaction.atomic
def form_valid(self, form):
messages.success(self.request, _('The property has been created.'))
form.instance.organizer = self.request.organizer
@@ -2166,6 +2177,7 @@ class EventMetaPropertyUpdateView(OrganizerDetailViewMixin, OrganizerPermissionR
'organizer': self.request.organizer.slug,
})
+ @transaction.atomic
def form_valid(self, form):
form.instance.choices = [
f.cleaned_data for f in self.formset.ordered_forms if f not in self.formset.deleted_forms
@@ -2207,6 +2219,7 @@ class EventMetaPropertyDeleteView(OrganizerDetailViewMixin, OrganizerPermissionR
return redirect(success_url)
+@transaction.atomic
def meta_property_move(request, property, up=True):
property = get_object_or_404(request.organizer.meta_properties, id=property)
properties = list(request.organizer.meta_properties.order_by("position"))
@@ -2329,6 +2342,7 @@ class MembershipTypeCreateView(OrganizerDetailViewMixin, OrganizerPermissionRequ
kwargs['event'] = self.request.organizer
return kwargs
+ @transaction.atomic
def form_valid(self, form):
messages.success(self.request, _('The membership type has been created.'))
form.instance.organizer = self.request.organizer
@@ -2363,6 +2377,7 @@ class MembershipTypeUpdateView(OrganizerDetailViewMixin, OrganizerPermissionRequ
kwargs['event'] = self.request.organizer
return kwargs
+ @transaction.atomic
def form_valid(self, form):
if form.has_changed():
self.object.log_action('pretix.membershiptype.changed', user=self.request.user, data={
@@ -2436,6 +2451,7 @@ class SSOProviderCreateView(OrganizerDetailViewMixin, OrganizerPermissionRequire
kwargs['event'] = self.request.organizer
return kwargs
+ @transaction.atomic
def form_valid(self, form):
messages.success(self.request, _('The provider has been created.'))
form.instance.organizer = self.request.organizer
@@ -2478,6 +2494,7 @@ class SSOProviderUpdateView(OrganizerDetailViewMixin, OrganizerPermissionRequire
kwargs['event'] = self.request.organizer
return kwargs
+ @transaction.atomic
def form_valid(self, form):
if form.has_changed():
self.object.log_action('pretix.ssoprovider.changed', user=self.request.user, data={
@@ -2551,6 +2568,7 @@ class SSOClientCreateView(OrganizerDetailViewMixin, OrganizerPermissionRequiredM
kwargs['event'] = self.request.organizer
return kwargs
+ @transaction.atomic
def form_valid(self, form):
secret = form.instance.set_client_secret()
messages.success(
@@ -2595,6 +2613,7 @@ class SSOClientUpdateView(OrganizerDetailViewMixin, OrganizerPermissionRequiredM
kwargs['event'] = self.request.organizer
return kwargs
+ @transaction.atomic
def form_valid(self, form):
if form.has_changed():
self.object.log_action('pretix.ssoclient.changed', user=self.request.user, data={
@@ -2797,6 +2816,7 @@ class CustomerCreateView(OrganizerDetailViewMixin, OrganizerPermissionRequiredMi
ctx['instance'] = c
return ctx
+ @transaction.atomic
def form_valid(self, form):
r = super().form_valid(form)
form.instance.log_action('pretix.customer.created', user=self.request.user, data={
@@ -2825,6 +2845,7 @@ class CustomerUpdateView(OrganizerDetailViewMixin, OrganizerPermissionRequiredMi
identifier=self.kwargs.get('customer')
)
+ @transaction.atomic
def form_valid(self, form):
if form.has_changed():
self.object.log_action('pretix.customer.changed', user=self.request.user, data={
@@ -2862,6 +2883,7 @@ class MembershipUpdateView(OrganizerDetailViewMixin, OrganizerPermissionRequired
)
return ctx
+ @transaction.atomic
def form_valid(self, form):
if form.has_changed():
d = {
@@ -2938,6 +2960,7 @@ class MembershipCreateView(OrganizerDetailViewMixin, OrganizerPermissionRequired
)
return kwargs
+ @transaction.atomic
def form_valid(self, form):
r = super().form_valid(form)
d = {
@@ -3036,6 +3059,7 @@ class ReusableMediumCreateView(OrganizerDetailViewMixin, OrganizerPermissionRequ
ctx['instance'] = c
return ctx
+ @transaction.atomic
def form_valid(self, form):
r = super().form_valid(form)
form.instance.log_action('pretix.reusable_medium.created', user=self.request.user, data={
@@ -3064,6 +3088,7 @@ class ReusableMediumUpdateView(OrganizerDetailViewMixin, OrganizerPermissionRequ
pk=self.kwargs.get('pk')
)
+ @transaction.atomic
def form_valid(self, form):
if form.has_changed():
self.object.log_action('pretix.reusable_medium.changed', user=self.request.user, data={
@@ -3155,6 +3180,7 @@ class ChannelCreateView(OrganizerDetailViewMixin, OrganizerPermissionRequiredMix
"type": self.selected_type,
}
+ @transaction.atomic
def form_valid(self, form):
messages.success(self.request, _('The sales channel has been created.'))
form.instance.organizer = self.request.organizer
@@ -3200,6 +3226,7 @@ class ChannelUpdateView(OrganizerDetailViewMixin, OrganizerPermissionRequiredMix
"type": self.type,
}
+ @transaction.atomic
def form_valid(self, form):
if form.has_changed():
self.object.log_action('pretix.saleschannel.changed', user=self.request.user, data={
@@ -3250,6 +3277,7 @@ class ChannelDeleteView(OrganizerDetailViewMixin, OrganizerPermissionRequiredMix
return redirect(success_url)
+@transaction.atomic
def channel_move(request, channel, up=True):
channel = get_object_or_404(request.organizer.sales_channels, identifier=channel)
channels = list(request.organizer.sales_channels.order_by("position"))
diff --git a/src/pretix/control/views/user.py b/src/pretix/control/views/user.py
index dba35a3bb6..22775c5411 100644
--- a/src/pretix/control/views/user.py
+++ b/src/pretix/control/views/user.py
@@ -231,6 +231,7 @@ class UserSettings(UpdateView):
messages.error(self.request, _('Your changes could not be saved. See below for details.'))
return super().form_invalid(form)
+ @transaction.atomic
def form_valid(self, form):
messages.success(self.request, _('Your changes have been saved.'))
diff --git a/src/pretix/control/views/users.py b/src/pretix/control/views/users.py
index d4b3d066d2..c72a007909 100644
--- a/src/pretix/control/views/users.py
+++ b/src/pretix/control/views/users.py
@@ -28,6 +28,7 @@ from django.contrib.auth import (
BACKEND_SESSION_KEY, get_user_model, load_backend, login,
)
from django.contrib.auth.mixins import LoginRequiredMixin
+from django.db import transaction
from django.shortcuts import get_object_or_404, redirect
from django.urls import reverse
from django.utils.crypto import get_random_string
@@ -108,6 +109,7 @@ class UserEditView(AdministratorPermissionRequiredMixin, RecentAuthenticationReq
def get_success_url(self):
return reverse('control:users.edit', kwargs=self.kwargs)
+ @transaction.atomic
def form_valid(self, form):
messages.success(self.request, _('Your changes have been saved.'))
From 4e4e187a84213702929395b118fe211890a9b923 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 5 Feb 2025 17:39:23 +0100
Subject: [PATCH 15/99] Update beautifulsoup4 requirement from ==4.12.* to
==4.13.* (#4804)
* Update beautifulsoup4 requirement from ==4.12.* to ==4.13.*
Updates the requirements on [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) to permit the latest version.
---
updated-dependencies:
- dependency-name: beautifulsoup4
dependency-type: direct:production
...
Signed-off-by: dependabot[bot]
* Replace findAll with find_all
---------
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Raphael Michel
---
pyproject.toml | 2 +-
src/pretix/base/services/mail.py | 2 +-
src/tests/base/__init__.py | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/pyproject.toml b/pyproject.toml
index 5b0553b2e9..cf27a6f622 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -28,7 +28,7 @@ classifiers = [
dependencies = [
"arabic-reshaper==3.0.0", # Support for Arabic in reportlab
"babel",
- "BeautifulSoup4==4.12.*",
+ "BeautifulSoup4==4.13.*",
"bleach==6.2.*",
"celery==5.4.*",
"chardet==5.2.*",
diff --git a/src/pretix/base/services/mail.py b/src/pretix/base/services/mail.py
index fea30a174b..29f681bd49 100644
--- a/src/pretix/base/services/mail.py
+++ b/src/pretix/base/services/mail.py
@@ -674,7 +674,7 @@ def replace_images_with_cid_paths(body_html):
if body_html:
email = BeautifulSoup(body_html, "lxml")
cid_images = []
- for image in email.findAll('img'):
+ for image in email.find_all('img'):
original_image_src = image['src']
try:
diff --git a/src/tests/base/__init__.py b/src/tests/base/__init__.py
index 876313d8db..e0186bbc3b 100644
--- a/src/tests/base/__init__.py
+++ b/src/tests/base/__init__.py
@@ -74,7 +74,7 @@ def extract_form_fields(soup):
continue
# textareas
- for textarea in soup.findAll('textarea'):
+ for textarea in soup.find_all('textarea'):
if textarea['name'] in data:
if not isinstance(data[textarea['name']], list):
data[textarea['name']] = [data[textarea['name']]]
From 9df86b93395b1278f31becf1e95d297fce445ce5 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 5 Feb 2025 17:40:14 +0100
Subject: [PATCH 16/99] Bump @babel/core from 7.26.0 to 7.26.7 in
/src/pretix/static/npm_dir (#4800)
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.26.0 to 7.26.7.
- [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.26.7/packages/babel-core)
---
updated-dependencies:
- dependency-name: "@babel/core"
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
src/pretix/static/npm_dir/package-lock.json | 140 ++++++++++----------
src/pretix/static/npm_dir/package.json | 2 +-
2 files changed, 74 insertions(+), 68 deletions(-)
diff --git a/src/pretix/static/npm_dir/package-lock.json b/src/pretix/static/npm_dir/package-lock.json
index a3b40e9d0b..f9146a55ad 100644
--- a/src/pretix/static/npm_dir/package-lock.json
+++ b/src/pretix/static/npm_dir/package-lock.json
@@ -8,7 +8,7 @@
"name": "pretix",
"version": "0.0.0",
"dependencies": {
- "@babel/core": "^7.26.0",
+ "@babel/core": "^7.26.7",
"@babel/preset-env": "^7.26.7",
"@rollup/plugin-babel": "^6.0.4",
"@rollup/plugin-node-resolve": "^16.0.0",
@@ -53,20 +53,21 @@
}
},
"node_modules/@babel/core": {
- "version": "7.26.0",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.0.tgz",
- "integrity": "sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==",
+ "version": "7.26.7",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.7.tgz",
+ "integrity": "sha512-SRijHmF0PSPgLIBYlWnG0hyeJLwXE2CgpsXaMOrtt2yp9/86ALw6oUlj9KYuZ0JN07T4eBMVIW4li/9S1j2BGA==",
+ "license": "MIT",
"dependencies": {
"@ampproject/remapping": "^2.2.0",
- "@babel/code-frame": "^7.26.0",
- "@babel/generator": "^7.26.0",
- "@babel/helper-compilation-targets": "^7.25.9",
+ "@babel/code-frame": "^7.26.2",
+ "@babel/generator": "^7.26.5",
+ "@babel/helper-compilation-targets": "^7.26.5",
"@babel/helper-module-transforms": "^7.26.0",
- "@babel/helpers": "^7.26.0",
- "@babel/parser": "^7.26.0",
+ "@babel/helpers": "^7.26.7",
+ "@babel/parser": "^7.26.7",
"@babel/template": "^7.25.9",
- "@babel/traverse": "^7.25.9",
- "@babel/types": "^7.26.0",
+ "@babel/traverse": "^7.26.7",
+ "@babel/types": "^7.26.7",
"convert-source-map": "^2.0.0",
"debug": "^4.1.0",
"gensync": "^1.0.0-beta.2",
@@ -101,12 +102,13 @@
}
},
"node_modules/@babel/generator": {
- "version": "7.26.2",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.2.tgz",
- "integrity": "sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==",
+ "version": "7.26.5",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.5.tgz",
+ "integrity": "sha512-2caSP6fN9I7HOe6nqhtft7V4g7/V/gfDsC3Ag4W7kEzzvRGKqiv0pu0HogPiZ3KaVSoNDhUws6IJjDjpfmYIXw==",
+ "license": "MIT",
"dependencies": {
- "@babel/parser": "^7.26.2",
- "@babel/types": "^7.26.0",
+ "@babel/parser": "^7.26.5",
+ "@babel/types": "^7.26.5",
"@jridgewell/gen-mapping": "^0.3.5",
"@jridgewell/trace-mapping": "^0.3.25",
"jsesc": "^3.0.2"
@@ -385,23 +387,25 @@
}
},
"node_modules/@babel/helpers": {
- "version": "7.26.0",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.0.tgz",
- "integrity": "sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==",
+ "version": "7.26.7",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.7.tgz",
+ "integrity": "sha512-8NHiL98vsi0mbPQmYAGWwfcFaOy4j2HY49fXJCfuDcdE7fMIsH9a7GdaeXpIBsbT7307WU8KCMp5pUVDNL4f9A==",
+ "license": "MIT",
"dependencies": {
"@babel/template": "^7.25.9",
- "@babel/types": "^7.26.0"
+ "@babel/types": "^7.26.7"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/parser": {
- "version": "7.26.2",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.2.tgz",
- "integrity": "sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==",
+ "version": "7.26.7",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.7.tgz",
+ "integrity": "sha512-kEvgGGgEjRUutvdVvZhbn/BxVt+5VSpwXz1j3WYXQbXDo8KzFOPNG2GQbdAiNq8g6wn1yKk7C/qrke03a84V+w==",
+ "license": "MIT",
"dependencies": {
- "@babel/types": "^7.26.0"
+ "@babel/types": "^7.26.7"
},
"bin": {
"parser": "bin/babel-parser.js"
@@ -1409,15 +1413,16 @@
}
},
"node_modules/@babel/traverse": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.9.tgz",
- "integrity": "sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==",
+ "version": "7.26.7",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.7.tgz",
+ "integrity": "sha512-1x1sgeyRLC3r5fQOM0/xtQKsYjyxmFjaOrLJNtZ81inNjyJHGIolTULPiSc/2qe1/qfpFLisLQYFnnZl7QoedA==",
+ "license": "MIT",
"dependencies": {
- "@babel/code-frame": "^7.25.9",
- "@babel/generator": "^7.25.9",
- "@babel/parser": "^7.25.9",
+ "@babel/code-frame": "^7.26.2",
+ "@babel/generator": "^7.26.5",
+ "@babel/parser": "^7.26.7",
"@babel/template": "^7.25.9",
- "@babel/types": "^7.25.9",
+ "@babel/types": "^7.26.7",
"debug": "^4.3.1",
"globals": "^11.1.0"
},
@@ -1426,9 +1431,10 @@
}
},
"node_modules/@babel/types": {
- "version": "7.26.0",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz",
- "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==",
+ "version": "7.26.7",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.7.tgz",
+ "integrity": "sha512-t8kDRGrKXyp6+tjUh7hw2RLyclsW4TRoRvRHtSyAX9Bb5ldlFh+90YAYY6awRXrlB4G5G2izNeGySpATlFzmOg==",
+ "license": "MIT",
"dependencies": {
"@babel/helper-string-parser": "^7.25.9",
"@babel/helper-validator-identifier": "^7.25.9"
@@ -3776,20 +3782,20 @@
"integrity": "sha512-XvcZi1KWf88RVbF9wn8MN6tYFloU5qX8KjuF3E1PVBmJ9eypXfs4GRiJwLuTZL0iSnJUKn1BFPa5BPZZJyFzPg=="
},
"@babel/core": {
- "version": "7.26.0",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.0.tgz",
- "integrity": "sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==",
+ "version": "7.26.7",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.7.tgz",
+ "integrity": "sha512-SRijHmF0PSPgLIBYlWnG0hyeJLwXE2CgpsXaMOrtt2yp9/86ALw6oUlj9KYuZ0JN07T4eBMVIW4li/9S1j2BGA==",
"requires": {
"@ampproject/remapping": "^2.2.0",
- "@babel/code-frame": "^7.26.0",
- "@babel/generator": "^7.26.0",
- "@babel/helper-compilation-targets": "^7.25.9",
+ "@babel/code-frame": "^7.26.2",
+ "@babel/generator": "^7.26.5",
+ "@babel/helper-compilation-targets": "^7.26.5",
"@babel/helper-module-transforms": "^7.26.0",
- "@babel/helpers": "^7.26.0",
- "@babel/parser": "^7.26.0",
+ "@babel/helpers": "^7.26.7",
+ "@babel/parser": "^7.26.7",
"@babel/template": "^7.25.9",
- "@babel/traverse": "^7.25.9",
- "@babel/types": "^7.26.0",
+ "@babel/traverse": "^7.26.7",
+ "@babel/types": "^7.26.7",
"convert-source-map": "^2.0.0",
"debug": "^4.1.0",
"gensync": "^1.0.0-beta.2",
@@ -3810,12 +3816,12 @@
}
},
"@babel/generator": {
- "version": "7.26.2",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.2.tgz",
- "integrity": "sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==",
+ "version": "7.26.5",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.5.tgz",
+ "integrity": "sha512-2caSP6fN9I7HOe6nqhtft7V4g7/V/gfDsC3Ag4W7kEzzvRGKqiv0pu0HogPiZ3KaVSoNDhUws6IJjDjpfmYIXw==",
"requires": {
- "@babel/parser": "^7.26.2",
- "@babel/types": "^7.26.0",
+ "@babel/parser": "^7.26.5",
+ "@babel/types": "^7.26.5",
"@jridgewell/gen-mapping": "^0.3.5",
"@jridgewell/trace-mapping": "^0.3.25",
"jsesc": "^3.0.2"
@@ -4019,20 +4025,20 @@
}
},
"@babel/helpers": {
- "version": "7.26.0",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.0.tgz",
- "integrity": "sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==",
+ "version": "7.26.7",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.7.tgz",
+ "integrity": "sha512-8NHiL98vsi0mbPQmYAGWwfcFaOy4j2HY49fXJCfuDcdE7fMIsH9a7GdaeXpIBsbT7307WU8KCMp5pUVDNL4f9A==",
"requires": {
"@babel/template": "^7.25.9",
- "@babel/types": "^7.26.0"
+ "@babel/types": "^7.26.7"
}
},
"@babel/parser": {
- "version": "7.26.2",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.2.tgz",
- "integrity": "sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==",
+ "version": "7.26.7",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.7.tgz",
+ "integrity": "sha512-kEvgGGgEjRUutvdVvZhbn/BxVt+5VSpwXz1j3WYXQbXDo8KzFOPNG2GQbdAiNq8g6wn1yKk7C/qrke03a84V+w==",
"requires": {
- "@babel/types": "^7.26.0"
+ "@babel/types": "^7.26.7"
}
},
"@babel/plugin-bugfix-firefox-class-in-computed-class-key": {
@@ -4659,23 +4665,23 @@
}
},
"@babel/traverse": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.9.tgz",
- "integrity": "sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==",
+ "version": "7.26.7",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.7.tgz",
+ "integrity": "sha512-1x1sgeyRLC3r5fQOM0/xtQKsYjyxmFjaOrLJNtZ81inNjyJHGIolTULPiSc/2qe1/qfpFLisLQYFnnZl7QoedA==",
"requires": {
- "@babel/code-frame": "^7.25.9",
- "@babel/generator": "^7.25.9",
- "@babel/parser": "^7.25.9",
+ "@babel/code-frame": "^7.26.2",
+ "@babel/generator": "^7.26.5",
+ "@babel/parser": "^7.26.7",
"@babel/template": "^7.25.9",
- "@babel/types": "^7.25.9",
+ "@babel/types": "^7.26.7",
"debug": "^4.3.1",
"globals": "^11.1.0"
}
},
"@babel/types": {
- "version": "7.26.0",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz",
- "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==",
+ "version": "7.26.7",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.7.tgz",
+ "integrity": "sha512-t8kDRGrKXyp6+tjUh7hw2RLyclsW4TRoRvRHtSyAX9Bb5ldlFh+90YAYY6awRXrlB4G5G2izNeGySpATlFzmOg==",
"requires": {
"@babel/helper-string-parser": "^7.25.9",
"@babel/helper-validator-identifier": "^7.25.9"
diff --git a/src/pretix/static/npm_dir/package.json b/src/pretix/static/npm_dir/package.json
index fd7248e2e9..8a34ce4ea5 100644
--- a/src/pretix/static/npm_dir/package.json
+++ b/src/pretix/static/npm_dir/package.json
@@ -4,7 +4,7 @@
"private": true,
"scripts": {},
"dependencies": {
- "@babel/core": "^7.26.0",
+ "@babel/core": "^7.26.7",
"@babel/preset-env": "^7.26.7",
"@rollup/plugin-babel": "^6.0.4",
"@rollup/plugin-node-resolve": "^16.0.0",
From b6c903a7ba94276b88ca6b4ea4a65965d5517dd0 Mon Sep 17 00:00:00 2001
From: Raphael Michel
Date: Thu, 6 Feb 2025 10:55:09 +0100
Subject: [PATCH 17/99] Invoice renderer: Group invoice lines even with addons
(Z#23173618) (#4744)
* Invoice renderer: Group invoice lines even with addons (Z#23173618)
* Add unit test
* Update src/pretix/base/invoice.py
Co-authored-by: Mira
---------
Co-authored-by: Mira Weller
---
src/pretix/base/invoice.py | 58 ++++++++++++++++++++++++++++++++-
src/tests/base/test_invoices.py | 54 ++++++++++++++++++++++++++++++
2 files changed, 111 insertions(+), 1 deletion(-)
diff --git a/src/pretix/base/invoice.py b/src/pretix/base/invoice.py
index 2dbd6c65a6..84c7d32af1 100644
--- a/src/pretix/base/invoice.py
+++ b/src/pretix/base/invoice.py
@@ -62,6 +62,58 @@ from pretix.presale.style import get_fonts
logger = logging.getLogger(__name__)
+def addon_aware_groupby(iterable, key, is_addon):
+ """
+ We use groupby() to visually group identical lines on an invoice. For example, instead of
+
+ Product 1 5.00 EUR
+ Product 1 5.00 EUR
+ Product 1 5.00 EUR
+ Product 2 7.00 EUR
+
+ We want to print
+
+ 3x Product 1 5.00 EUR = 15.00 EUR
+ Product 2 7.00 EUR
+
+ However, this fails for setups with addon-products since groupby() only groups consecutive
+ lines with the same identity. So in
+
+ Product 1 5.00 EUR
+ + Addon 1 2.00 EUR
+ Product 1 5.00 EUR
+ + Addon 1 2.00 EUR
+ Product 1 5.00 EUR
+ + Addon 2 3.00 EUR
+
+ There is no consecutive repetition of the same entity. This function provides a specialised groupby which
+ understands the product/addon relationship and packs groups of these addons together if they are, in fact,
+ identical groups:
+
+ 2x Product 1 5.00 EUR = 10.00 EUR
+ + 2x Addon 1 2.00 EUR = 4.00 EUR
+ Product 1 5.00 EUR
+ + Addon 2 3.00 EUR
+ """
+ packed_groups = []
+
+ for i in iterable:
+ if is_addon(i):
+ packed_groups[-1].append(i)
+ else:
+ packed_groups.append([i])
+ # Each packed_groups element contains a list with the parent product as first element, and any addon products following
+
+ def _reorder(packed_groups):
+ # Emit the products as individual products again, reordered by "all parent products, then all addon products"
+ # within each group.
+ for _, repeated_groups in groupby(packed_groups, key=lambda g: tuple(key(a) for a in g)):
+ for repeated_items in zip(*repeated_groups):
+ yield from repeated_items
+
+ return groupby(_reorder(packed_groups), key)
+
+
class NumberedCanvas(Canvas):
def __init__(self, *args, **kwargs):
self.font_regular = kwargs.pop('font_regular')
@@ -644,7 +696,11 @@ class ClassicInvoiceRenderer(BaseReportlabInvoiceRenderer):
line.event_date_from, line.event_date_to)
total = Decimal('0.00')
- for (description, tax_rate, tax_name, net_value, gross_value, *ignored), lines in groupby(self.invoice.lines.all(), key=_group_key):
+ for (description, tax_rate, tax_name, net_value, gross_value, *ignored), lines in addon_aware_groupby(
+ self.invoice.lines.all(),
+ key=_group_key,
+ is_addon=lambda l: l.description.startswith(" +"),
+ ):
lines = list(lines)
if has_taxes:
if len(lines) > 1:
diff --git a/src/tests/base/test_invoices.py b/src/tests/base/test_invoices.py
index 7004b1be1f..584a2bb017 100644
--- a/src/tests/base/test_invoices.py
+++ b/src/tests/base/test_invoices.py
@@ -38,10 +38,12 @@ from decimal import Decimal
import pytest
from django.db import DatabaseError, transaction
+from django.utils.itercompat import is_iterable
from django.utils.timezone import now
from django_countries.fields import Country
from django_scopes import scope, scopes_disabled
+from pretix.base.invoice import addon_aware_groupby
from pretix.base.models import (
Event, ExchangeRate, Invoice, InvoiceAddress, Item, ItemVariation, Order,
OrderPosition, Organizer,
@@ -606,3 +608,55 @@ def test_sales_channels_qualify(env):
event.settings.set('invoice_generate_sales_channels', [])
assert invoice_qualified(order) is False
+
+
+def test_addon_aware_groupby():
+ def is_addon(item):
+ is_addon, id, price = item
+ return is_addon
+
+ def key(item):
+ return item
+
+ def listify(it):
+ return [listify(i) if is_iterable(i) else i for i in it]
+
+ assert listify(addon_aware_groupby([
+ (False, 1, 5.00),
+ (False, 1, 5.00),
+ (False, 1, 5.00),
+ (False, 2, 7.00),
+ ], key, is_addon)) == [
+ [[False, 1, 5.00], [
+ [False, 1, 5.00],
+ [False, 1, 5.00],
+ [False, 1, 5.00],
+ ]],
+ [[False, 2, 7.00], [
+ [False, 2, 7.00],
+ ]],
+ ]
+
+ assert listify(addon_aware_groupby([
+ (False, 1, 5.00),
+ (True, 101, 2.00),
+ (False, 1, 5.00),
+ (True, 101, 2.00),
+ (False, 1, 5.00),
+ (True, 102, 3.00),
+ ], key, is_addon)) == [
+ [[False, 1, 5.00], [
+ [False, 1, 5.00],
+ [False, 1, 5.00],
+ ]],
+ [[True, 101, 2.00], [
+ [True, 101, 2.00],
+ [True, 101, 2.00],
+ ]],
+ [[False, 1, 5.00], [
+ [False, 1, 5.00],
+ ]],
+ [[True, 102, 3.00], [
+ [True, 102, 3.00],
+ ]],
+ ]
From 1985f1d2dec4c9fe4ff5394445b11db2a9dd81bd Mon Sep 17 00:00:00 2001
From: Hannu Kaakinen
Date: Wed, 5 Feb 2025 17:22:15 +0000
Subject: [PATCH 18/99] Translations: Update Finnish
Currently translated at 33.6% (1965 of 5846 strings)
Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/fi/
powered by weblate
---
src/pretix/locale/fi/LC_MESSAGES/django.po | 555 ++++++++++++++-------
1 file changed, 368 insertions(+), 187 deletions(-)
diff --git a/src/pretix/locale/fi/LC_MESSAGES/django.po b/src/pretix/locale/fi/LC_MESSAGES/django.po
index d3a89d0764..ff6d5f77ad 100644
--- a/src/pretix/locale/fi/LC_MESSAGES/django.po
+++ b/src/pretix/locale/fi/LC_MESSAGES/django.po
@@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-01-29 13:18+0000\n"
-"PO-Revision-Date: 2025-02-05 11:29+0000\n"
-"Last-Translator: Antti Nironen \n"
+"PO-Revision-Date: 2025-02-05 20:00+0000\n"
+"Last-Translator: Hannu Kaakinen \n"
"Language-Team: Finnish \n"
"Language: fi\n"
@@ -5301,7 +5301,7 @@ msgstr "Enimmäismäärän on oltava suurempi kuin vähimmäismäärä."
#: pretix/base/models/items.py:1542
msgid "Bundled item"
-msgstr ""
+msgstr "Niputettu erä"
#: pretix/base/models/items.py:1548
msgid "Bundled variation"
@@ -5318,59 +5318,63 @@ msgid ""
"taxation, but can be kept blank otherwise. This value will NOT be added to "
"the base item's price."
msgstr ""
+"Jos tämä asetus on asetettu, näytetään, että tämä niputettu tuote vastaa "
+"bruttokokonaishinnan kyseisestä arvosta. Tämä voi olla tärkeää, jos kyseessä "
+"on sekaverotus, mutta voidaan pitää tyhjänä muussa tapauksessa. Tätä arvoa "
+"EI lisätä peruskohteen hintaan."
#: pretix/base/models/items.py:1583
msgid "The bundled item must belong to the same event as the item."
-msgstr ""
+msgstr "iputetun kohteen on kuuluttava samaan tapahtumaan kuin kohde."
#: pretix/base/models/items.py:1585
msgid "A variation needs to be set for this item."
-msgstr ""
+msgstr "Tälle kohteelle on asetettava variaatio."
#: pretix/base/models/items.py:1587
msgid "The chosen variation does not belong to this item."
-msgstr ""
+msgstr "Valittu variaatio ei kuulu tähän tuotteeseen."
#: pretix/base/models/items.py:1592
msgid "The count needs to be equal to or greater than zero."
-msgstr ""
+msgstr "Luvun on oltava nolla tai suurempi kuin nolla."
#: pretix/base/models/items.py:1647
msgid "Number"
-msgstr ""
+msgstr "Numero"
#: pretix/base/models/items.py:1648
msgid "Text (one line)"
-msgstr ""
+msgstr "Teksti (yksi rivi)"
#: pretix/base/models/items.py:1649
msgid "Multiline text"
-msgstr ""
+msgstr "Monirivinen teksti"
#: pretix/base/models/items.py:1650
msgid "Yes/No"
-msgstr ""
+msgstr "Kyllä/Ei"
#: pretix/base/models/items.py:1651
msgid "Choose one from a list"
-msgstr ""
+msgstr "Valitse yksi listalta"
#: pretix/base/models/items.py:1652
msgid "Choose multiple from a list"
-msgstr ""
+msgstr "Valitse useita luettelosta"
#: pretix/base/models/items.py:1653
msgid "File upload"
-msgstr ""
+msgstr "Tiedoston lataus"
#: pretix/base/models/items.py:1656
#: pretix/control/templates/pretixcontrol/event/settings.html:239
msgid "Date and time"
-msgstr ""
+msgstr "Päiväys ja aika"
#: pretix/base/models/items.py:1657
msgid "Country code (ISO 3166-1 alpha-2)"
-msgstr ""
+msgstr "Maakohtainen koodi (ISO 3166-1 alpha-2)"
#: pretix/base/models/items.py:1680 pretix/base/models/items.py:1928
#: pretix/base/models/organizer.py:543
@@ -5378,57 +5382,59 @@ msgid ""
"The identifier may only contain letters, numbers, dots, dashes, and "
"underscores."
msgstr ""
+"Tunnus saa sisältää vain kirjaimia, numeroita, pisteitä, viivoja ja "
+"alleviivauksia."
#: pretix/base/models/items.py:1685
msgid "Help text"
-msgstr ""
+msgstr "Aputeksti"
#: pretix/base/models/items.py:1686
msgid "If the question needs to be explained or clarified, do it here!"
-msgstr ""
+msgstr "Jos kysymystä pitää selittää tai selventää, tee se täällä!"
#: pretix/base/models/items.py:1692
msgid "Question type"
-msgstr ""
+msgstr "Kysymystyyppi"
#: pretix/base/models/items.py:1696
#: pretix/control/templates/pretixcontrol/items/questions.html:55
msgid "Required question"
-msgstr ""
+msgstr "Vaadittu kysymys"
#: pretix/base/models/items.py:1703
msgid "This question will be asked to buyers of the selected products"
-msgstr ""
+msgstr "Tämä kysymys esitetään valittujen tuotteiden ostajille"
#: pretix/base/models/items.py:1710
msgid "Ask during check-in instead of in the ticket buying process"
-msgstr ""
+msgstr "Kysy ilmoittautumisen yhteydessä lipunostoprosessin sijasta"
#: pretix/base/models/items.py:1711 pretix/base/models/items.py:1716
msgid "Not supported by all check-in apps for all question types."
-msgstr ""
+msgstr "Kaikki kirjautumissovellukset eivät tue kaikkia kysymystyyppejä."
#: pretix/base/models/items.py:1715
msgid "Show answer during check-in"
-msgstr ""
+msgstr "Näytä vastaus kirjautumisen yhteydessä"
#: pretix/base/models/items.py:1720
#: pretix/control/templates/pretixcontrol/items/questions.html:66
msgid "Hidden question"
-msgstr ""
+msgstr "Piiloitettu kysymys"
#: pretix/base/models/items.py:1721
msgid "This question will only show up in the backend."
-msgstr ""
+msgstr "Tämä kysymys näkyy vain backendissä."
#: pretix/base/models/items.py:1725
msgid "Print answer on invoices"
-msgstr ""
+msgstr "Tulosta vastaus laskuille"
#: pretix/base/models/items.py:1733 pretix/base/models/items.py:1739
#: pretix/base/models/items.py:1745
msgid "Minimum value"
-msgstr ""
+msgstr "Minimiarvo"
#: pretix/base/models/items.py:1734 pretix/base/models/items.py:1737
#: pretix/base/models/items.py:1740 pretix/base/models/items.py:1743
@@ -5436,6 +5442,7 @@ msgstr ""
#: pretix/base/models/items.py:1753
msgid "Currently not supported in our apps and during check-in"
msgstr ""
+"Tällä hetkellä ei tueta sovelluksissamme eikä sisäänkirjautumisen aikana"
#: pretix/base/models/items.py:1736 pretix/base/models/items.py:1742
#: pretix/base/models/items.py:1748
@@ -5448,17 +5455,19 @@ msgstr "Enimmäispituus"
#: pretix/base/models/items.py:1757
msgid "Validate file to be a portrait"
-msgstr ""
+msgstr "Validoi tiedosto muotokuvaksi"
#: pretix/base/models/items.py:1758
msgid ""
"If checked, files must be images with an aspect ratio of 3:4. This is "
"commonly used for photos printed on badges."
msgstr ""
+"Jos valitaan, tiedostojen on oltava kuvia, joiden kuvasuhde on 3:4. Tätä "
+"käytetään yleisesti kulkukortteihin painettaviin valokuviin."
#: pretix/base/models/items.py:1813
msgid "An answer to this question is required to proceed."
-msgstr ""
+msgstr "Jatkaminen edellyttää vastausta tähän kysymykseen."
#: pretix/base/models/items.py:1823
msgid "Invalid input type."
@@ -5466,35 +5475,35 @@ msgstr "Virheellinen syötetyyppi."
#: pretix/base/models/items.py:1857
msgid "The number is to low."
-msgstr ""
+msgstr "Numero on liian pieni."
#: pretix/base/models/items.py:1859
msgid "The number is to high."
-msgstr ""
+msgstr "Numero on liian suuri."
#: pretix/base/models/items.py:1862
msgid "Invalid number input."
-msgstr ""
+msgstr "Virheellinen numeron syöttö."
#: pretix/base/models/items.py:1869 pretix/base/models/items.py:1893
msgid "Please choose a later date."
-msgstr ""
+msgstr "Valitse myöhempi päivämäärä."
#: pretix/base/models/items.py:1871 pretix/base/models/items.py:1895
msgid "Please choose an earlier date."
-msgstr ""
+msgstr "Valitse aiempi päivämäärä."
#: pretix/base/models/items.py:1874
msgid "Invalid date input."
-msgstr ""
+msgstr "Virheellinen päivämäärän syöttö."
#: pretix/base/models/items.py:1881
msgid "Invalid time input."
-msgstr ""
+msgstr "Virheellisen ajan syöttö."
#: pretix/base/models/items.py:1890
msgid "Invalid datetime input."
-msgstr ""
+msgstr "Virheellinen datetime syöttö."
#: pretix/base/models/items.py:1902
msgid "Unknown country code."
@@ -5507,7 +5516,7 @@ msgstr "Vastaus"
#: pretix/base/models/items.py:1956
msgid "The identifier \"{}\" is already used for a different option."
-msgstr ""
+msgstr "Tunnus ”{}” on jo käytössä toisessa vaihtoehdossa."
#: pretix/base/models/items.py:1959
msgid "Question option"
@@ -5520,7 +5529,7 @@ msgstr "Kysymysvaihtoehdot"
#: pretix/base/models/items.py:2045 pretix/control/forms/event.py:1711
#: pretix/control/templates/pretixcontrol/items/quotas.html:56
msgid "Total capacity"
-msgstr ""
+msgstr "Kokonaiskapasiteetti"
#: pretix/base/models/items.py:2047 pretix/control/forms/item.py:448
msgid "Leave empty for an unlimited number of tickets."
@@ -5530,7 +5539,7 @@ msgstr "Jätä tyhjäksi, jos loputon."
#: pretix/base/models/orders.py:2982
#: pretix/control/templates/pretixcontrol/checkin/index.html:97
msgid "Item"
-msgstr ""
+msgstr "Tuote"
#: pretix/base/models/items.py:2059 pretix/control/forms/item.py:907
#: pretix/plugins/autocheckin/models.py:74
@@ -5540,7 +5549,7 @@ msgstr "Variaatiot"
#: pretix/base/models/items.py:2063
#: pretix/control/templates/pretixcontrol/items/quotas.html:70
msgid "Ignore this quota when determining event availability"
-msgstr ""
+msgstr "Jätä tämä kiintiö huomiotta määritettäessä tapahtuman saatavuutta"
#: pretix/base/models/items.py:2064
msgid ""
@@ -5549,6 +5558,10 @@ msgid ""
"that is added to each event but should not stop the event from being shown "
"as sold out."
msgstr ""
+"Jos otat tämän käyttöön, kiintiö jätetään huomiotta määritettäessä "
+"tapahtuman saatavuutta tapahtumakalenterissa. Tämä on hyödyllistä esim. kun "
+"kuhunkin tapahtumaan lisätään kauppatavaraa, mutta sen ei pitäisi estää "
+"tapahtumaa näkymästä loppuunmyytynä."
#: pretix/base/models/items.py:2071
msgid "Close this quota permanently once it is sold out"
@@ -5560,10 +5573,14 @@ msgid ""
"sold, even if tickets become available again through cancellations or "
"expiring orders. Of course, you can always re-open it manually."
msgstr ""
+"Jos otat tämän käyttöön, kun kiintiö on kerran myyty loppuun, uusia lippuja "
+"ei enää myydä, vaikka lippuja tulisi uudelleen saataville peruutusten tai "
+"päättyvien tilausten kautta. Voit tietenkin aina avata sen uudelleen "
+"manuaalisesti."
#: pretix/base/models/items.py:2080
msgid "Allow to sell more tickets once people have checked out"
-msgstr ""
+msgstr "Voit myydä lisää lippuja, kun ihmiset ovat kirjautuneet ulos"
#: pretix/base/models/items.py:2081
msgid ""
@@ -5574,6 +5591,13 @@ msgid ""
"are ignored if they are set to \"Allow re-entering after an exit scan\" to "
"prevent accidental overbooking."
msgstr ""
+"Tämän vaihtoehdon avulla kiintiö vapautetaan heti, kun ihmiset skannataan "
+"tapahtuman ulostulossa. Näin tapahtuu vain, jos heidät on skannattu sekä "
+"sisään- että uloskäynnillä ja jos uloskäynti on viimeisin skannaus. Sillä ei "
+"ole merkitystä, kummalla sisäänkirjautumislistalla kumpikin skannaus "
+"tehtiin, mutta sisäänkirjautumislistat jätetään huomiotta, jos niiden "
+"asetuksena on ”Salli uudelleen sisäänpääsy uloskirjautumisen skannauksen "
+"jälkeen”, jotta vältytään vahingossa tapahtuvalta ylivaraukselta."
#: pretix/base/models/items.py:2093 pretix/control/navigation.py:156
#: pretix/control/templates/pretixcontrol/items/quotas.html:4
@@ -5587,6 +5611,8 @@ msgstr "Kiintiöt"
#: pretix/base/models/items.py:2166
msgid "All variations must belong to an item contained in the items list."
msgstr ""
+"Kaikkien muunnelmien on kuuluttava johonkin kohdeluettelossa olevaan "
+"kohteeseen."
#: pretix/base/models/items.py:2177
msgid ""
@@ -5596,7 +5622,7 @@ msgstr ""
#: pretix/base/models/items.py:2183 pretix/base/models/waitinglist.py:303
msgid "Subevent cannot be null for event series."
-msgstr ""
+msgstr "Alatapahtuma ei voi olla nolla tapahtumien sarjassa."
#: pretix/base/models/items.py:2219
msgid "Required for products"
@@ -5607,27 +5633,33 @@ msgid ""
"If checked, this property must be set in each product. Does not apply if a "
"default value is set."
msgstr ""
+"Jos tämä ominaisuus on valittuna, se on määritettävä jokaisessa tuotteessa. "
+"Ei sovelleta, jos oletusarvo on asetettu."
#: pretix/base/models/items.py:2225
msgid ""
"If you keep this empty, any value is allowed. Otherwise, enter one possible "
"value per line."
msgstr ""
+"Jos jätät tämän tyhjäksi, mikä tahansa arvo on sallittu. Muussa tapauksessa "
+"anna yksi mahdollinen arvo riviä kohti."
#: pretix/base/models/memberships.py:44
#: pretix/presale/templates/pretixpresale/organizers/customer_memberships.html:29
msgid "Membership is transferable"
-msgstr ""
+msgstr "Jäsenyys on siirrettävissä"
#: pretix/base/models/memberships.py:45
msgid ""
"If this is selected, the membership can be used to purchase tickets for "
"multiple persons. If not, the attendee name always needs to stay the same."
msgstr ""
+"Jos tämä on valittu, jäsenyyttä voidaan käyttää useamman henkilön lippujen "
+"ostamiseen. Jos ei, osallistujan nimen on aina pysyttävä samana."
#: pretix/base/models/memberships.py:50
msgid "Parallel usage is allowed"
-msgstr ""
+msgstr "Vierekkäinen käyttö sallittu"
#: pretix/base/models/memberships.py:51
msgid ""
@@ -5637,10 +5669,14 @@ msgid ""
"overlap check will be performed if there is a product-level validity of the "
"ticket."
msgstr ""
+"Jos tämä on valittu, jäsenyyttä voidaan käyttää lippujen ostamiseen samaan "
+"aikaan järjestettäviin tapahtumiin. Huomaa, että tämä tarkistaa vain "
+"tapahtumien identtisen alkamisajankohdan, ei tapahtumien päällekkäisyyttä. "
+"Päällekkäisyystarkistus tehdään, jos lipulla on tuotetason voimassaolo."
#: pretix/base/models/memberships.py:58
msgid "Number of times this membership can be used in a purchase."
-msgstr ""
+msgstr "Montako kertaa tätä jäsenyyttä voidaan käyttää oston yhteydessä."
#: pretix/base/models/memberships.py:124
#: pretix/control/templates/pretixcontrol/items/question.html:33
@@ -5658,11 +5694,11 @@ msgstr "Peruttu"
#: pretix/control/templates/pretixcontrol/organizers/customer.html:116
#: pretix/presale/templates/pretixpresale/organizers/customer_membership.html:28
msgid "Membership type"
-msgstr ""
+msgstr "Jäsenyystyyppi"
#: pretix/base/models/orders.py:202
msgid "pending"
-msgstr ""
+msgstr "odottaa"
#: pretix/base/models/orders.py:203 pretix/base/payment.py:511
#: pretix/base/services/invoices.py:475
@@ -5677,22 +5713,24 @@ msgstr "vanhentunut"
#: pretix/base/models/orders.py:254 pretix/control/forms/filter.py:560
#: pretix/control/templates/pretixcontrol/organizers/customer.html:64
msgid "Locale"
-msgstr ""
+msgstr "Tapahtumapaikka"
#: pretix/base/models/orders.py:269 pretix/control/forms/filter.py:571
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/refund_export.html:57
msgid "Total amount"
-msgstr ""
+msgstr "Kokonaissumma"
#: pretix/base/models/orders.py:273 pretix/base/models/vouchers.py:293
msgid ""
"The text entered in this field will not be visible to the user and is "
"available for your convenience."
msgstr ""
+"Tähän kenttään syötetty teksti ei näy käyttäjälle, ja se on käytettävissäsi "
+"vain avuksesi."
#: pretix/base/models/orders.py:278
msgid "We'll show you this order to be due for a follow-up on this day."
-msgstr ""
+msgstr "Näytämme tämän tilauksen tulevan seurannan kohteeksi tänä päivänä."
#: pretix/base/models/orders.py:284
msgid ""
@@ -5701,16 +5739,22 @@ msgid ""
"custom message, so you need to brief your check-in staff how to handle these "
"cases."
msgstr ""
+"Jos asetat tämän, kirjautumissovellus näyttää näkyvän varoituksen siitä, "
+"että tämän tilauksen liput vaativat erityistä huomiota. Tämä ei näytä mitään "
+"yksityiskohtia tai mukautettua viestiä, joten sinun on kerrottava "
+"kirjautumishenkilökunnalle, miten näitä tapauksia käsitellään."
#: pretix/base/models/orders.py:291
msgid ""
"This text will be shown by the check-in app if a ticket of this order is "
"scanned."
msgstr ""
+"Tämä teksti näkyy kirjautumissovelluksessa, jos tämän tilauksen lippu "
+"skannataan."
#: pretix/base/models/orders.py:301 pretix/base/models/orders.py:1524
msgid "Meta information"
-msgstr ""
+msgstr "Meta informaatio"
#: pretix/base/models/orders.py:305
msgid "API meta information"
@@ -5735,12 +5779,16 @@ msgid ""
"The payment can not be accepted as the last date of payments configured in "
"the payment settings is over."
msgstr ""
+"Maksua ei voida hyväksyä, koska maksuasetuksissa määritetty viimeinen "
+"maksupäivä on päättynyt."
#: pretix/base/models/orders.py:1033
msgid ""
"The payment can not be accepted as the order is expired and you configured "
"that no late payments should be accepted in the payment settings."
msgstr ""
+"Maksua ei voida hyväksyä, koska tilaus on vanhentunut ja olet määrittänyt "
+"maksuasetuksissa, että myöhästyneitä maksuja ei hyväksytä."
#: pretix/base/models/orders.py:1035
msgid "This order is not yet approved by the event organizer."
@@ -5754,21 +5802,21 @@ msgstr "Tilattu tuote \"{item}\" ei ole enää saatavilla."
#: pretix/base/models/orders.py:1061
#, python-brace-format
msgid "The seat \"{seat}\" is no longer available."
-msgstr ""
+msgstr "Paikka ”{seat}” ei ole enää saatavilla."
#: pretix/base/models/orders.py:1062
#, python-brace-format
msgid "The voucher \"{voucher}\" no longer has sufficient budget."
-msgstr ""
+msgstr "Kupongilla ”{voucher}” ei ole enää riittävää arvoa."
#: pretix/base/models/orders.py:1063
#, python-brace-format
msgid "The voucher \"{voucher}\" has been used in the meantime."
-msgstr ""
+msgstr "Tällä välin on käytetty kuponkia ”{voucher}”."
#: pretix/base/models/orders.py:1403
msgid ""
-msgstr ""
+msgstr ""
#: pretix/base/models/orders.py:1504 pretix/base/models/orders.py:1512
msgid "Empty, if this product is not an admission ticket"
@@ -5782,7 +5830,7 @@ msgstr "luotu"
#: pretix/base/models/orders.py:1722
msgctxt "payment_state"
msgid "pending"
-msgstr ""
+msgstr "odottaa"
#: pretix/base/models/orders.py:1723
msgctxt "payment_state"
@@ -5812,7 +5860,7 @@ msgstr "Maksutiedot"
#: pretix/base/models/orders.py:2109
msgctxt "refund_state"
msgid "started externally"
-msgstr ""
+msgstr "aloitettu ulkoisesti"
#: pretix/base/models/orders.py:2110
msgctxt "refund_state"
@@ -5864,7 +5912,7 @@ msgstr "Hyvityksen syy"
#: pretix/control/templates/pretixcontrol/order/refund_choose.html:201
msgid ""
"May be shown to the end user or used e.g. as part of a payment reference."
-msgstr ""
+msgstr "Voidaan näyttää loppukäyttäjälle tai käyttää esim. osana maksuviitettä."
#: pretix/base/models/orders.py:2284
msgid "Service fee"
@@ -5872,11 +5920,11 @@ msgstr "Palvelumaksu"
#: pretix/base/models/orders.py:2285
msgid "Payment fee"
-msgstr ""
+msgstr "Maksu"
#: pretix/base/models/orders.py:2286
msgid "Shipping fee"
-msgstr ""
+msgstr "Laivauskulut"
#: pretix/base/models/orders.py:2287
#: pretix/control/templates/pretixcontrol/order/index.html:156
@@ -5885,7 +5933,7 @@ msgstr "Peruutusmaksu"
#: pretix/base/models/orders.py:2288
msgid "Insurance fee"
-msgstr ""
+msgstr "Vakuutusmaksu"
#: pretix/base/models/orders.py:2289
msgid "Late fee"
@@ -5916,7 +5964,7 @@ msgstr "Arvo"
#: pretix/base/models/orders.py:2544
msgid "Order position"
-msgstr ""
+msgstr "Tilausjärjestys"
#: pretix/base/models/orders.py:3087
msgid "Cart ID (e.g. session key)"
@@ -5924,11 +5972,11 @@ msgstr "Korin ID (esim. istuntoavain)"
#: pretix/base/models/orders.py:3124
msgid "Cart position"
-msgstr ""
+msgstr "Ostoskärryn sijainti"
#: pretix/base/models/orders.py:3125
msgid "Cart positions"
-msgstr ""
+msgstr "Ostoskärryn sijainnit"
#: pretix/base/models/orders.py:3261
msgid "Business customer"
@@ -5936,19 +5984,19 @@ msgstr "Yritysasiakas"
#: pretix/base/models/orders.py:3277
msgid "This reference will be printed on your invoice for your convenience."
-msgstr ""
+msgstr "Tämä viite tulostetaan laskuusi."
#: pretix/base/models/orders.py:3461
#: pretix/plugins/badges/templates/pretixplugins/badges/control_order_position_buttons.html:9
msgid "Badge"
-msgstr ""
+msgstr "Nimilappu"
#: pretix/base/models/orders.py:3462 pretix/base/pdf.py:1109
#: pretix/control/forms/organizer.py:777 pretix/control/forms/organizer.py:813
#: pretix/control/templates/pretixcontrol/checkin/checkins.html:66
#: pretix/plugins/ticketoutputpdf/ticketoutput.py:113
msgid "Ticket"
-msgstr ""
+msgstr "Lippu"
#: pretix/base/models/orders.py:3463
msgid "Certificate"
@@ -5957,7 +6005,7 @@ msgstr "Todistus"
#: pretix/base/models/orders.py:3464 pretix/control/views/event.py:369
#: pretix/control/views/event.py:374
msgid "Other"
-msgstr ""
+msgstr "Muu"
#: pretix/base/models/organizer.py:79
msgid ""
@@ -5965,6 +6013,9 @@ msgid ""
"Every slug can only be used once. This is being used in URLs to refer to "
"your organizer accounts and your events."
msgstr ""
+"Niiden tulisi olla lyhyitä ja sisältää vain pieniä kirjaimia, numeroita, "
+"pisteitä ja viivoja. Jokaista slugia voi käyttää vain kerran. Tätä käytetään "
+"URL-osoitteissa viittaamaan järjestäjätileihin ja tapahtumiin."
#: pretix/base/models/organizer.py:97 pretix/control/navigation.py:350
#: pretix/control/templates/pretixcontrol/oauth/authorized.html:19
@@ -5986,6 +6037,7 @@ msgstr "Ryhmän jäsenet"
#: pretix/base/models/organizer.py:289
msgid "Require all members of this team to use two-factor authentication"
msgstr ""
+"Vaadi kaikkia tämän ryhmän jäseniä käyttämään kaksivaiheista tunnistusta"
#: pretix/base/models/organizer.py:290
msgid ""
@@ -5993,6 +6045,9 @@ msgid ""
"up two-factor authentication or leave the team. The setting may take a few "
"minutes to become effective for all users."
msgstr ""
+"Jos otat tämän käyttöön, kaikkien tiimin jäsenten on joko otettava käyttöön "
+"kaksitekijätodennus tai poistuttava tiimistä. Asetuksella voi kestää "
+"muutaman minuutin ennen kuin se tulee voimaan kaikkien käyttäjien osalta."
#: pretix/base/models/organizer.py:297
msgid "Can create events"
@@ -6011,6 +6066,9 @@ msgid ""
"Someone with this setting can get access to most data of all of your events, "
"i.e. via privacy reports, so be careful who you add to this team!"
msgstr ""
+"Joku, jolla on tämä asetus, pääsee käsiksi suurimpaan osaan kaikkien "
+"tapahtumiesi tiedoista, esim. yksityisyysraporttien kautta, joten ole "
+"varovainen, kenet lisäät tähän ryhmään!"
#: pretix/base/models/organizer.py:311
msgid "Can manage customer accounts"
@@ -6042,7 +6100,7 @@ msgstr "Voi muokata tilauksia"
#: pretix/base/models/organizer.py:339
msgid "Can perform check-ins"
-msgstr ""
+msgstr "Voi suorittaa kirjautumisia"
#: pretix/base/models/organizer.py:340
msgid ""
@@ -6050,6 +6108,9 @@ msgid ""
"information about attendees. Users with \"can change orders\" can also "
"perform check-ins."
msgstr ""
+"Tähän sisältyy osallistujien haku, jonka avulla voidaan saada osallistujien "
+"henkilötietoja. Käyttäjät, joilla on ”voi muuttaa tilauksia”, voivat myös "
+"tehdä sisäänkirjautumisia."
#: pretix/base/models/organizer.py:345
msgid "Can view vouchers"
@@ -6062,7 +6123,7 @@ msgstr "Voi muokata kuponkeja"
#: pretix/base/models/organizer.py:353
#, python-format
msgid "%(name)s on %(object)s"
-msgstr ""
+msgstr "%(name)s on %(object)s"
#: pretix/base/models/organizer.py:385
#: pretix/control/templates/pretixcontrol/events/create_basics.html:64
@@ -6077,7 +6138,7 @@ msgstr "Ryhmät"
#: pretix/base/models/organizer.py:406
#, python-brace-format
msgid "Invite to team '{team}' for '{email}'"
-msgstr ""
+msgstr "kutsu ryhmään '{team}' osoitteeseen '{email}'"
#: pretix/base/models/organizer.py:538
#: pretix/control/templates/pretixcontrol/organizers/channels.html:23
@@ -6088,36 +6149,38 @@ msgstr "Tunnus"
#: pretix/control/templates/pretixcontrol/boxoffice/payment.html:54
#: pretix/control/templates/pretixcontrol/items/questions.html:22
msgid "Type"
-msgstr ""
+msgstr "Tyyppi"
#: pretix/base/models/seating.py:45 pretix/base/models/tax.py:305
#: pretix/base/pdf.py:1265
msgid "Your layout file is not a valid JSON file."
-msgstr ""
+msgstr "Layout-tiedostosi ei ole kelvollinen JSON-tiedosto."
#: pretix/base/models/seating.py:54 pretix/base/models/seating.py:78
msgid "Your layout file is not a valid seating plan. Error message: {}"
-msgstr ""
+msgstr "Layout-tiedostosi ei ole kelvollinen istumajärjestys. Virheilmoitus: {}"
#: pretix/base/models/seating.py:63
#, python-brace-format
msgid "Seat with zone {zone}, row {row}, and number {number} has no seat ID."
msgstr ""
+"Istuimella, jolla on vyöhyke {zone}, rivi {row} ja numero {number}, ei ole "
+"istuintunnusta."
#: pretix/base/models/seating.py:71
#, python-brace-format
msgid "Multiple seats have the same ID: {id}"
-msgstr ""
+msgstr "Useilla paikoilla on sama tunnus: {id}"
#: pretix/base/models/seating.py:199
#, python-brace-format
msgid "Row {number}"
-msgstr ""
+msgstr "Rivi {number}"
#: pretix/base/models/seating.py:204
#, python-brace-format
msgid "Seat {number}"
-msgstr ""
+msgstr "Istuin {number}"
#: pretix/base/models/tax.py:144
msgid "Standard rates"
@@ -6126,7 +6189,7 @@ msgstr "Vakiohinnat"
#: pretix/base/models/tax.py:148
msgctxt "tax_code"
msgid "Standard rate"
-msgstr ""
+msgstr "Normaali hinta"
#: pretix/base/models/tax.py:152
msgctxt "tax_code"
@@ -6137,12 +6200,12 @@ msgstr "Alennettu hinta"
msgctxt "tax_code"
msgid ""
"Averaged rate (other revenue in a agricultural and silvicultural business)"
-msgstr ""
+msgstr "Keskimääräinen hinta (muut tulot maatalous- ja metsätalousyrityksestä)"
#: pretix/base/models/tax.py:164
msgctxt "tax_code"
msgid "Reverse charge"
-msgstr ""
+msgstr "Käänteinen lataus"
#: pretix/base/models/tax.py:168
msgid "Tax free"
@@ -6151,55 +6214,60 @@ msgstr "Veroton"
#: pretix/base/models/tax.py:171
msgctxt "tax_code"
msgid "Services outside of scope of tax"
-msgstr ""
+msgstr "Veron piiriin kuulumattomat palvelut"
#: pretix/base/models/tax.py:174
msgctxt "tax_code"
msgid "Exempt from tax (no reason given)"
-msgstr ""
+msgstr "Verovapaa (perustetta ei ole ilmoitettu)"
#: pretix/base/models/tax.py:177
msgctxt "tax_code"
msgid "Zero-rated goods"
-msgstr ""
+msgstr "Nollaluokitellut tavarat"
#: pretix/base/models/tax.py:180
msgctxt "tax_code"
msgid "Free export item, VAT not charged"
-msgstr ""
+msgstr "Vapaa vientituote, arvonlisäveroa ei peritä"
#: pretix/base/models/tax.py:183
msgctxt "tax_code"
msgid "VAT exempt for EEA intra-community supply of goods and services"
msgstr ""
+"ETA:n sisäisten tavaroiden luovutusten ja palvelujen suoritusten vapautus "
+"arvonlisäverosta"
#: pretix/base/models/tax.py:187
msgid "Special cases"
-msgstr ""
+msgstr "Erityistapaukset"
#: pretix/base/models/tax.py:189
msgctxt "tax_code"
msgid "Canary Islands general indirect tax"
-msgstr ""
+msgstr "Kanariansaarten yleinen välillinen vero"
#: pretix/base/models/tax.py:190
msgctxt "tax_code"
msgid "Tax for production, services and importation in Ceuta and Melilla"
msgstr ""
+"Ceutassa ja Melillassa tuotannosta, palveluista ja tuonnista kannettava vero"
#: pretix/base/models/tax.py:191
msgctxt "tax_code"
msgid "Transferred (VAT), only in Italy"
-msgstr ""
+msgstr "Siirretty (alv), vain Italiassa"
#: pretix/base/models/tax.py:195
msgid "Exempt with specific reason"
-msgstr ""
+msgstr "Vapautettu erityisestä syystä"
#: pretix/base/models/tax.py:198
msgctxt "tax_code"
msgid "Exempt based on article 79, point c of Council Directive 2006/112/EC"
msgstr ""
+"Vapautettu neuvoston direktiivin 2006/112/EY 79 artiklan c alakohdan "
+"perusteella"
#: pretix/base/models/tax.py:205 pretix/base/models/tax.py:218
#: pretix/base/models/tax.py:244
@@ -6209,6 +6277,8 @@ msgid ""
"Exempt based on article {article}, section {section} ({letter}) of Council "
"Directive 2006/112/EC"
msgstr ""
+"Vapautettu neuvoston direktiivin 2006/112/EY {section} artiklan {article}, "
+"({letter}) perusteella"
#: pretix/base/models/tax.py:231
#, python-brace-format
@@ -6217,36 +6287,38 @@ msgid ""
"Exempt based on article {article}, section ({letter}) of Council Directive "
"2006/112/EC"
msgstr ""
+"Vapautettu neuvoston direktiivin 2006/112/EY {article} artiklan kirjaimen "
+"kohdan ({letter}) perusteella"
#: pretix/base/models/tax.py:252
msgctxt "tax_code"
msgid "Exempt based on article 309 of Council Directive 2006/112/EC"
-msgstr ""
+msgstr "Vapautettu neuvoston direktiivin 2006/112/EY 309 artiklan perusteella"
#: pretix/base/models/tax.py:254
msgctxt "tax_code"
msgid "Intra-Community acquisition from second hand means of transport"
-msgstr ""
+msgstr "Yhteisön sisäiset hankinnat käytetyistä kulkuneuvoista"
#: pretix/base/models/tax.py:256
msgctxt "tax_code"
msgid "Intra-Community acquisition of second hand goods"
-msgstr ""
+msgstr "Yhteisön sisäinen käytettyjen tavaroiden hankinta"
#: pretix/base/models/tax.py:258
msgctxt "tax_code"
msgid "Intra-Community acquisition of works of art"
-msgstr ""
+msgstr "Yhteisön sisäinen taideteosten hankinta"
#: pretix/base/models/tax.py:260
msgctxt "tax_code"
msgid "Intra-Community acquisition of collectors items and antiques"
-msgstr ""
+msgstr "Yhteisön sisäinen keräilyesineiden ja antiikkiesineiden hankinta"
#: pretix/base/models/tax.py:262
msgctxt "tax_code"
msgid "France domestic VAT franchise in base"
-msgstr ""
+msgstr "Ranska kotimainen arvonlisävero franchising-peruste"
#: pretix/base/models/tax.py:264
msgctxt "tax_code"
@@ -6254,6 +6326,8 @@ msgid ""
"France domestic Credit Notes without VAT, due to supplier forfeit of VAT for "
"discount"
msgstr ""
+"Ranskan kotimaiset hyvityslaskut ilman arvonlisäveroa, koska toimittaja ei "
+"ole maksanut arvonlisäveroa alennusta vastaan"
#: pretix/base/models/tax.py:314
msgid "Your set of rules is not valid. Error message: {}"
@@ -6261,11 +6335,11 @@ msgstr "Sääntöjoukkosi ei ole kelvollinen. Virheilmoitus: {}"
#: pretix/base/models/tax.py:325
msgid "Official name"
-msgstr ""
+msgstr "Virallinen nimi"
#: pretix/base/models/tax.py:326
msgid "Should be short, e.g. \"VAT\""
-msgstr ""
+msgstr "Pitäisi olla lyhyt, esim. ”ALV”"
#: pretix/base/models/tax.py:330 pretix/control/forms/event.py:1509
#: pretix/control/templates/pretixcontrol/order/transactions.html:22
@@ -6277,20 +6351,23 @@ msgid ""
"If you help us understand what this tax rules legally is, we can use this "
"information for eInvoices, exporting to accounting system, etc."
msgstr ""
+"Jos autat meitä ymmärtämään, mitä nämä verosäännöt ovat laillisesti, voimme "
+"käyttää tätä tietoa verkkolaskuissa, kirjanpitojärjestelmään viemisessä jne."
#: pretix/base/models/tax.py:351
msgid "The configured product prices include the tax amount"
-msgstr ""
+msgstr "Määritetyt tuotteiden hinnat sisältävät veron määrän"
#: pretix/base/models/tax.py:355
msgid ""
"Keep gross amount constant if the tax rate changes based on the invoice "
"address"
msgstr ""
+"Pidä bruttomäärä vakiona, jos verokanta muuttuu laskun osoitteen perusteella"
#: pretix/base/models/tax.py:359
msgid "Use EU reverse charge taxation rules"
-msgstr ""
+msgstr "Käytä EU:n käänteistä verovelvollisuutta koskevia sääntöjä"
#: pretix/base/models/tax.py:363
msgid ""
@@ -6298,10 +6375,13 @@ msgid ""
"business customers in other EU countries in a way that works for all "
"organizers. Use custom rules instead."
msgstr ""
+"Tämä ominaisuus poistetaan tulevaisuudessa, koska se ei käsittele muiden EU-"
+"maiden muiden kuin yritysasiakkaiden arvonlisäveroa tavalla, joka toimisi "
+"kaikille järjestäjille. Käytä sen sijaan mukautettuja sääntöjä."
#: pretix/base/models/tax.py:365
msgid "DEPRECATED"
-msgstr ""
+msgstr "VÄHENNETTY"
#: pretix/base/models/tax.py:366
msgid ""
@@ -6312,6 +6392,13 @@ msgid ""
"option after consulting a tax counsel. No warranty given for correct tax "
"calculation. USE AT YOUR OWN RISK."
msgstr ""
+"Ei suositella. Useimmat tapahtumat EIVÄT ole oikeutettuja käänteiseen "
+"verovelvollisuuteen, koska verotuspaikka on tapahtumapaikka. Tämä vaihtoehto "
+"poistaa arvonlisäveron perimisen käytöstä kaikilta EU:n ulkopuolisilta "
+"asiakkailta ja eri EU-maissa olevilta yritysasiakkailta, jotka ovat antaneet "
+"voimassa olevan EU:n alv-tunnuksen. Ota tämä vaihtoehto käyttöön vasta "
+"veroneuvojan kanssa neuvoteltuasi. Oikeasta verolaskennasta ei anneta "
+"takuuta. KÄYTTÖ OMALLA VASTUULLA."
#: pretix/base/models/tax.py:374 pretix/plugins/stripe/payment.py:299
msgid "Merchant country"
@@ -6322,35 +6409,41 @@ msgid ""
"Your country of residence. This is the country the EU reverse charge rule "
"will not apply in, if configured above."
msgstr ""
+"Asuinmaasi. Tämä on maa, jossa EU:n käännettyä verovelvollisuutta koskevaa "
+"sääntöä ei sovelleta, jos se on määritetty edellä."
#: pretix/base/models/tax.py:412
msgid "You need to set your home country to use the reverse charge feature."
msgstr ""
+"Sinun on asetettava kotimaasi, jotta voit käyttää käänteinen veloitus "
+"-ominaisuutta."
#: pretix/base/models/tax.py:416 pretix/control/forms/event.py:1556
msgid ""
"A combination of this tax code with a non-zero tax rate does not make sense."
msgstr ""
+"Tämän verokoodin ja nollasta poikkeavan verokannan yhdistelmässä ei ole "
+"järkeä."
#: pretix/base/models/tax.py:421 pretix/control/forms/event.py:1560
msgid ""
"A combination of this tax code with a zero tax rate does not make sense."
-msgstr ""
+msgstr "Tämän verokoodin ja nollaverokannan yhdistelmässä ei ole järkeä."
#: pretix/base/models/tax.py:426
#, python-brace-format
msgid "incl. {rate}% {name}"
-msgstr ""
+msgstr "sis. {rate}% {name}"
#: pretix/base/models/tax.py:428
#, python-brace-format
msgid "plus {rate}% {name}"
-msgstr ""
+msgstr "plus {rate}% {name}"
#: pretix/base/models/tax.py:430
#: pretix/control/templates/pretixcontrol/event/tax_index.html:46
msgid "reverse charge enabled"
-msgstr ""
+msgstr "käänteinen veloitus aktivoitu"
#: pretix/base/models/tax.py:568
msgctxt "invoice"
@@ -6358,11 +6451,13 @@ msgid ""
"Reverse Charge: According to Article 194, 196 of Council Directive 2006/112/"
"EEC, VAT liability rests with the service recipient."
msgstr ""
+"Käänteinen veloitus: Neuvoston direktiivin 2006/112/ETY 194 ja 196 artiklan "
+"mukaan arvonlisäverovelvollisuus kuuluu palvelun vastaanottajalle."
#: pretix/base/models/tax.py:574
msgctxt "invoice"
msgid "VAT liability rests with the service recipient."
-msgstr ""
+msgstr "Arvonlisäverovelvollisuus on palvelun vastaanottajalla."
#: pretix/base/models/vouchers.py:171
msgid "No effect"
@@ -6396,6 +6491,12 @@ msgid ""
"usages in some cases can be lower than this limit, e.g. in case of "
"cancellations."
msgstr ""
+"Jos arvoksi on asetettu useampi kuin yksi, arvoseteli on lunastettava näin "
+"monesta tuotteesta, kun sitä käytetään ensimmäistä kertaa. Myöhemmillä "
+"käyttökerroilla se voidaan käyttää myös pienempään määrään tuotteita. "
+"Huomaa, että tämä tarkoittaa sitä, että käyttökertojen kokonaismäärä voi "
+"joissakin tapauksissa olla tätä rajaa pienempi, esimerkiksi "
+"peruutustapauksissa."
#: pretix/base/models/vouchers.py:214
msgid ""
@@ -6403,6 +6504,8 @@ msgid ""
"voucher across all usages. If this is sum reached, the voucher can no longer "
"be used."
msgstr ""
+"Tämä on suurin rahamäärä, joka alennetaan tällä kupongilla kaikissa "
+"käyttökerroissa. Jos tämä summa saavutetaan, arvoseteliä ei voi enää käyttää."
#: pretix/base/models/vouchers.py:227
msgid ""
@@ -6410,12 +6513,16 @@ msgid ""
"quotas, such that it is guaranteed that anyone with this voucher code does "
"receive a ticket."
msgstr ""
+"Jos kuponki aktivoidaan, se vähennetään kyseisen tuotteen kiintiöistä, "
+"jolloin on taattu, että jokainen, jolla on tämä kuponkikoodi, saa lipun."
#: pretix/base/models/vouchers.py:235
msgid ""
"If activated, a holder of this voucher code can buy tickets, even if there "
"are none left."
msgstr ""
+"Jos tämä kuponkikoodi on aktivoitu, sen haltija voi ostaa lippuja, vaikka "
+"niitä ei olisi enää yhtään jäljellä."
#: pretix/base/models/vouchers.py:254 pretix/control/forms/vouchers.py:69
msgid ""
@@ -6423,19 +6530,24 @@ msgid ""
"of a specific product, you can also select a quota. In this case, all "
"products assigned to this quota can be selected."
msgstr ""
+"Tämä tuote lisätään käyttäjän ostoskoriin, jos kuponki on lunastettu. Tietyn "
+"tuotteen sijasta voit valita myös kiintiön. Tällöin voidaan valita kaikki "
+"tähän kiintiöön määritetyt tuotteet."
#: pretix/base/models/vouchers.py:265
msgid "This variation of the product select above is being used."
-msgstr ""
+msgstr "Tätä edellä valitun tuotteen muunnelmaa käytetään."
#: pretix/base/models/vouchers.py:274
msgid ""
"If enabled, the voucher is valid for any product affected by this quota."
msgstr ""
+"Jos se on käytössä, kuponki on voimassa kaikissa tuotteissa, joihin tämä "
+"kiintiö vaikuttaa."
#: pretix/base/models/vouchers.py:281
msgid "Specific seat"
-msgstr ""
+msgstr "Erityinen istuin"
#: pretix/base/models/vouchers.py:288
msgid ""
@@ -6443,6 +6555,9 @@ msgid ""
"same value for multiple vouchers, you can get statistics on how many of them "
"have been redeemed etc."
msgstr ""
+"Tämän kentän avulla voit ryhmitellä useita tositteita yhteen. Jos syötät "
+"saman arvon useammalle arvosetelille, saat tilastoja siitä, kuinka monta "
+"arvoseteliä on lunastettu jne."
#: pretix/base/models/vouchers.py:313 pretix/control/navigation.py:267
#: pretix/control/templates/pretixcontrol/vouchers/index.html:6
@@ -6456,7 +6571,7 @@ msgstr "Et voi valita kiintiötä, joka kuuluu eri tapahtumaan."
#: pretix/base/models/vouchers.py:341
msgid "You cannot select a quota and a specific product at the same time."
-msgstr ""
+msgstr "Et voi valita kiintiötä ja tiettyä tuotetta samanaikaisesti."
#: pretix/base/models/vouchers.py:344
msgid ""
@@ -6464,6 +6579,9 @@ msgid ""
"as part of a bundle, since vouchers cannot be applied to add-on products or "
"bundled products."
msgstr ""
+"Et voi valita tuotetta, joka on saatavana vain lisätuotteena tai osana "
+"pakettia, sillä kuponkia ei voi soveltaa lisätuotteisiin tai "
+"pakettituotteisiin."
#: pretix/base/models/vouchers.py:348
msgid "You cannot select a product that belongs to a different event."
@@ -6474,53 +6592,65 @@ msgid ""
"You cannot select a variation without having selected a product that "
"provides variations."
msgstr ""
+"Et voi valita variaatiota ilman, että olet valinnut tuotteen, joka tarjoaa "
+"variaatioita."
#: pretix/base/models/vouchers.py:353
msgid "This variation does not belong to this product."
-msgstr ""
+msgstr "Tämä variaatio ei kuulu tähän tuotteeseen."
#: pretix/base/models/vouchers.py:355
msgid "It is currently not possible to create vouchers for add-on products."
-msgstr ""
+msgstr "Tällä hetkellä ei ole mahdollista luoda arvoseteleitä lisätuotteille."
#: pretix/base/models/vouchers.py:357 pretix/base/models/vouchers.py:469
msgid ""
"You need to select a specific product or quota if this voucher should "
"reserve tickets."
msgstr ""
+"Sinun on valittava tietty tuote tai kiintiö, jos tällä arvosetelillä on "
+"tarkoitus varata lippuja."
#: pretix/base/models/vouchers.py:367
-#, python-format
+#, fuzzy, python-format
msgid ""
"This voucher has already been redeemed %(redeemed)s times. You cannot reduce "
"the maximum number of usages below this number."
msgstr ""
+"Tämä kuponki on jo lunastettu %(redeemed) kertaa. Et voi vähentää "
+"käyttökertojen enimmäismäärää alle tämän määrän."
#: pretix/base/models/vouchers.py:376
msgid ""
"The maximum number of usages may not be lower than the minimum number of "
"usages."
msgstr ""
+"Käyttökertojen enimmäismäärä ei saa olla pienempi kuin käyttökertojen "
+"vähimmäismäärä."
#: pretix/base/models/vouchers.py:382 pretix/base/models/vouchers.py:451
msgid ""
"If you want this voucher to block quota, you need to select a specific date."
msgstr ""
+"Jos haluat, että tämä kuponki varaa kiintiön, sinun on valittava tietty "
+"päivämäärä."
#: pretix/base/models/vouchers.py:384
msgid "You can not select a subevent if your event is not an event series."
-msgstr ""
+msgstr "Et voi valita alatapahtumaa, jos tapahtumasi ei ole tapahtumasarja."
#: pretix/base/models/vouchers.py:482
msgid ""
"You cannot create a voucher that blocks quota as the selected product or "
"quota is currently sold out or completely reserved."
msgstr ""
+"Et voi luoda kuponkia, joka varaa kiintiön, koska valittu tuote tai kiintiö "
+"on tällä hetkellä loppuunmyyty tai kokonaan varattu."
#: pretix/base/models/vouchers.py:504
#, python-brace-format
msgid "The specified seat ID \"{id}\" does not exist for this event."
-msgstr ""
+msgstr "Määritettyä paikan ID:tä ”{id}” ei ole olemassa tälle tapahtumalle."
#: pretix/base/models/vouchers.py:508
#, python-brace-format
@@ -6528,6 +6658,8 @@ msgid ""
"The seat \"{id}\" is currently unavailable (blocked, already sold or a "
"different voucher)."
msgstr ""
+"Paikka ”{id}” ei ole tällä hetkellä saatavilla (estetty, jo myyty tai toinen "
+"kuponki)."
#: pretix/base/models/waitinglist.py:64
msgid "On waiting list since"
@@ -6535,7 +6667,7 @@ msgstr "Jonotuslistalla alkaen"
#: pretix/base/models/waitinglist.py:84
msgid "Assigned voucher"
-msgstr ""
+msgstr "Myönnetty kuponki"
#: pretix/base/models/waitinglist.py:93
msgid "The product the user waits for."
@@ -6543,15 +6675,15 @@ msgstr "Tuote, jota käyttäjä odottaa."
#: pretix/base/models/waitinglist.py:101
msgid "The variation of the product selected above."
-msgstr ""
+msgstr "Edellä valitun tuotteen muunnelma."
#: pretix/base/models/waitinglist.py:113
msgid "Waiting list entry"
-msgstr ""
+msgstr "Odotuslistalle merkitseminen"
#: pretix/base/models/waitinglist.py:114
msgid "Waiting list entries"
-msgstr ""
+msgstr "Odotuslistan merkinnät"
#: pretix/base/models/waitinglist.py:159
msgid "This product is currently not available."
@@ -6559,7 +6691,7 @@ msgstr "Tämä tuote ei ole juuri nyt saatavilla."
#: pretix/base/models/waitinglist.py:186
msgid "No seat with this product is currently available."
-msgstr ""
+msgstr "Tällä hetkellä ei ole saatavilla istuinta tämän tuotteen kanssa."
#: pretix/base/models/waitinglist.py:189
msgid "A voucher has already been sent to this person."
@@ -6567,26 +6699,28 @@ msgstr "Tälle henkilölle on jo lähetetty kuponki."
#: pretix/base/models/waitinglist.py:191
msgid "This entry is anonymized and can no longer be used."
-msgstr ""
+msgstr "Tämä merkintä on anonymisoitu, eikä sitä voida enää käyttää."
#: pretix/base/models/waitinglist.py:204
#, python-brace-format
msgid "Automatically created from waiting list entry for {email}"
-msgstr ""
+msgstr "Luodaan automaattisesti odotusluettelomerkinnästä {email} lle"
#: pretix/base/models/waitinglist.py:295
msgid "The selected item does not belong to this event."
-msgstr ""
+msgstr "Valittu kohde ei kuulu tähän tapahtumaan."
#: pretix/base/models/waitinglist.py:297
msgid "Please select a specific variation of this product."
-msgstr ""
+msgstr "Valitse tämän tuotteen tietty variaatio."
#: pretix/base/models/waitinglist.py:315
msgid ""
"You are already on this waiting list! We will notify you as soon as we have "
"a ticket available for you."
msgstr ""
+"Olet jo tällä odotuslistalla! Ilmoitamme sinulle heti, kun lippu on "
+"saatavilla."
#: pretix/base/notifications.py:192 pretix/control/navigation.py:193
#: pretix/control/templates/pretixcontrol/subevents/bulk.html:20
@@ -6601,11 +6735,11 @@ msgstr "Päivämäärät"
#: pretix/plugins/reports/accountingreport.py:317
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:438
msgid "Net total"
-msgstr ""
+msgstr "Netto summa"
#: pretix/base/notifications.py:202
msgid "Pending amount"
-msgstr ""
+msgstr "Puuttuva summa"
#: pretix/base/notifications.py:204 pretix/control/forms/filter.py:211
#: pretix/control/forms/modelimport.py:81
@@ -6655,12 +6789,12 @@ msgstr "Tilaus {order.code} merkitty vanhentuneeksi."
#: pretix/base/notifications.py:270
#, python-brace-format
msgid "The ticket information of order {order.code} has been changed."
-msgstr ""
+msgstr "Tilauksen {order.code} lipputiedot on muutettu."
#: pretix/base/notifications.py:276
#, python-brace-format
msgid "The contact address of order {order.code} has been changed."
-msgstr ""
+msgstr "Tilauksen {order.code} yhteysosoite on muuttunut."
#: pretix/base/notifications.py:282
#, python-brace-format
@@ -6669,36 +6803,36 @@ msgstr "Tilaus {order.code} muutettu."
#: pretix/base/notifications.py:287
msgid "Order has been overpaid"
-msgstr ""
+msgstr "Tilauksesta on maksettu liikaa"
#: pretix/base/notifications.py:288
#, python-brace-format
msgid "Order {order.code} has been overpaid."
-msgstr ""
+msgstr "Tilauksesta {order.code} on maksettu liikaa."
#: pretix/base/notifications.py:294
#, python-brace-format
msgid "An external refund for {order.code} has occurred."
-msgstr ""
+msgstr "Ulkoinen palautus {order.code}:lle on tapahtunut."
#: pretix/base/notifications.py:299
msgid "Refund requested"
-msgstr ""
+msgstr "Palautus pyydetty"
#: pretix/base/notifications.py:300
#, python-brace-format
msgid "You have been requested to issue a refund for {order.code}."
-msgstr ""
+msgstr "Sinua on pyydetty antamaan hyvitys {order.code} lle."
#: pretix/base/payment.py:86
msgctxt "payment"
msgid "Apple Pay"
-msgstr ""
+msgstr "Apple Pay"
#: pretix/base/payment.py:87
msgctxt "payment"
msgid "Google Pay"
-msgstr ""
+msgstr "Google Pay"
#: pretix/base/payment.py:256
#: pretix/presale/templates/pretixpresale/event/order.html:115
@@ -6707,12 +6841,14 @@ msgstr "Maksa nyt"
#: pretix/base/payment.py:330
msgid "Enable payment method"
-msgstr ""
+msgstr "Ota maksutapa käyttöön"
#: pretix/base/payment.py:336
msgid ""
"Users will not be able to choose this payment provider after the given date."
msgstr ""
+"Käyttäjät eivät voi valita tätä maksupalveluntarjoajaa tietyn päivämäärän "
+"jälkeen."
#: pretix/base/payment.py:342
msgid ""
@@ -6723,7 +6859,7 @@ msgstr ""
#: pretix/base/payment.py:347
msgid "Minimum order total"
-msgstr ""
+msgstr "Tilauksen vähimmäissumma"
#: pretix/base/payment.py:348
msgid ""
@@ -6731,10 +6867,13 @@ msgid ""
"exceeds the given value. The order total for this purpose may be computed "
"without taking the fees imposed by this payment method into account."
msgstr ""
+"Tämä maksu on käytettävissä vain, jos tilauksen loppusumma on yhtä suuri tai "
+"suurempi kuin annettu arvo. Tilauksen loppusumma voidaan laskea ottamatta "
+"huomioon tämän maksutavan maksuja."
#: pretix/base/payment.py:358
msgid "Maximum order total"
-msgstr ""
+msgstr "Tilauksen enimmäismäärä"
#: pretix/base/payment.py:359
msgid ""
@@ -6742,22 +6881,25 @@ msgid ""
"the given value. The order total for this purpose may be computed without "
"taking the fees imposed by this payment method into account."
msgstr ""
+"Tämä maksu on käytettävissä vain, jos tilauksen loppusumma on yhtä suuri tai "
+"pienempi kuin annettu arvo. Tilauksen loppusumma voidaan laskea ottamatta "
+"huomioon tämän maksutavan maksuja."
#: pretix/base/payment.py:369 pretix/base/payment.py:378
msgid "Additional fee"
-msgstr ""
+msgstr "Lisämaksu"
#: pretix/base/payment.py:370
msgid "Absolute value"
-msgstr ""
+msgstr "Absoluuttinen arvo"
#: pretix/base/payment.py:379
msgid "Percentage of the order total."
-msgstr ""
+msgstr "Prosenttiosuus tilauksen kokonaismäärästä."
#: pretix/base/payment.py:385
msgid "Calculate the fee from the total value including the fee."
-msgstr ""
+msgstr "Laske maksu kokonaisarvosta maksu mukaan lukien."
#: pretix/base/payment.py:386
#, python-brace-format
@@ -6767,10 +6909,14 @@ msgid ""
"rel=\"noopener\">Click here for detailed information on what this does. "
"Don't forget to set the correct fees above!"
msgstr ""
+"Suosittelemme ottamaan tämän käyttöön, jos haluat, että käyttäjät maksavat "
+"maksupalveluntarjoajasi maksut. Klikkaa tästä saadaksesi yksityiskohtaista tietoa siitä, mitä "
+"tämä tekee. Älä unohda asettaa oikeita maksuja yllä!"
#: pretix/base/payment.py:394
msgid "Text on invoices"
-msgstr ""
+msgstr "Teksti laskuissa"
#: pretix/base/payment.py:395
msgid ""
@@ -6779,10 +6925,14 @@ msgid ""
"order is paid. If the invoice is generated later, it will show a text "
"stating that it has already been paid."
msgstr ""
+"Tulostetaan laskuihin heti maksun lukujen alapuolelle ja lopputekstin "
+"yläpuolelle. Tätä käytetään vain, jos lasku laaditaan ennen tilauksen "
+"maksamista. Jos lasku luodaan myöhemmin, siinä näkyy teksti, jossa "
+"ilmoitetaan, että lasku on jo maksettu."
#: pretix/base/payment.py:404
msgid "Restrict to countries"
-msgstr ""
+msgstr "Rajoitettu maihin"
#: pretix/base/payment.py:406
msgid ""
@@ -6790,93 +6940,106 @@ msgid ""
"selected countries. If you don't select any country, all countries are "
"allowed. This is only enabled if the invoice address is required."
msgstr ""
+"Salli tämän palveluntarjoajan valitseminen vain valittujen maiden "
+"laskutusosoitteille. Jos et valitse mitään maata, kaikki maat sallitaan. "
+"Tämä on käytössä vain, jos laskutusosoite vaaditaan."
#: pretix/base/payment.py:425
msgid ""
"Only allow the usage of this payment provider in the selected sales channels."
msgstr ""
+"Salli tämän maksupalveluntarjoajan käyttö vain valituissa myyntikanavissa."
#: pretix/base/payment.py:429
msgid "Hide payment method"
-msgstr ""
+msgstr "Piilota maksutapa"
#: pretix/base/payment.py:432
msgid ""
"The payment method will not be shown by default but only to people who enter "
"the shop through a special link."
msgstr ""
+"Maksutapaa ei näytetä oletusarvoisesti, vaan ainoastaan niille, jotka "
+"tulevat kauppaan erityisen linkin kautta."
#: pretix/base/payment.py:438
msgid "Link to enable payment method"
-msgstr ""
+msgstr "Linkki maksutavan käyttöönottoon"
#: pretix/base/payment.py:447
msgid "Share this link with customers who should use this payment method."
-msgstr ""
+msgstr "Jaa tämä linkki asiakkaille, joiden tulisi käyttää tätä maksutapaa."
#: pretix/base/payment.py:452
msgid "Do not send a payment reminder mail"
-msgstr ""
+msgstr "Älä lähetä maksumuistutusviestiä"
#: pretix/base/payment.py:453
msgid ""
"Users will not receive a reminder mail to pay for their order before it "
"expires if they have chosen this payment method."
msgstr ""
+"Käyttäjät eivät saa muistutusviestiä tilauksen maksamisesta ennen sen "
+"voimassaolon päättymistä, jos he ovat valinneet tämän maksutavan."
#: pretix/base/payment.py:500
msgctxt "invoice"
msgid "The payment for this invoice has already been received."
-msgstr ""
+msgstr "Tämän laskun maksu on jo vastaanotettu."
#: pretix/base/payment.py:977
msgid "Automatic refunds are not supported by this payment provider."
-msgstr ""
+msgstr "Tämä maksupalveluntarjoaja ei tue automaattisia palautuksia."
#: pretix/base/payment.py:1068
msgid ""
"No payment is required as this order only includes products which are free "
"of charge."
msgstr ""
+"Maksua ei vaadita, koska tämä tilaus sisältää vain maksuttomia tuotteita."
#: pretix/base/payment.py:1075
msgid "Free of charge"
-msgstr ""
+msgstr "Maksuton"
#: pretix/base/payment.py:1107
msgid "Box office"
-msgstr ""
+msgstr "Lipputulot"
#: pretix/base/payment.py:1155 pretix/base/payment.py:1174
#: pretix/plugins/manualpayment/apps.py:30
#: pretix/plugins/manualpayment/apps.py:33
msgid "Manual payment"
-msgstr ""
+msgstr "Manuaalinen maksu"
#: pretix/base/payment.py:1160 pretix/plugins/banktransfer/payment.py:202
msgid ""
"In test mode, you can just manually mark this order as paid in the backend "
"after it has been created."
msgstr ""
+"Testitilassa voit vain merkitä tilauksen maksetuksi manuaalisesti "
+"backendissä sen luomisen jälkeen."
#: pretix/base/payment.py:1181 pretix/base/payment.py:1322
#: pretix/plugins/banktransfer/payment.py:156
msgid "Payment method name"
-msgstr ""
+msgstr "Maksutavan nimi"
#: pretix/base/payment.py:1185
msgid "Payment process description during checkout"
-msgstr ""
+msgstr "Maksuprosessin kuvaus kassalla"
#: pretix/base/payment.py:1186
msgid ""
"This text will be shown during checkout when the user selects this payment "
"method. It should give a short explanation on this payment method."
msgstr ""
+"Tämä teksti näytetään kassalla, kun käyttäjä valitsee tämän maksutavan. Sen "
+"tulisi antaa lyhyt selitys tästä maksutavasta."
#: pretix/base/payment.py:1191
msgid "Payment process description in order confirmation emails"
-msgstr ""
+msgstr "Maksuprosessin kuvaus tilausvahvistussähköpostissa"
#: pretix/base/payment.py:1192
#, python-brace-format
@@ -6886,10 +7049,14 @@ msgid ""
"payment. You can use the placeholders {order}, {amount}, {currency} and "
"{amount_with_currency}."
msgstr ""
+"Tämä teksti sisällytetään {payment_info}-paikannukseen tilauksen "
+"vahvistusviesteissä. Sen pitäisi neuvoa käyttäjää, miten maksun "
+"suorittamisessa tulee edetä. Voit käyttää tunnuksia {order}, {amount}, "
+"{currency} ja {amount_with_currency}."
#: pretix/base/payment.py:1199
msgid "Payment process description for pending orders"
-msgstr ""
+msgstr "Vireillä olevien tilausten maksuprosessin kuvaus"
#: pretix/base/payment.py:1200
#, python-brace-format
@@ -6898,25 +7065,30 @@ msgid ""
"It should instruct the user on how to proceed with the payment. You can use "
"the placeholders {order}, {amount}, {currency} and {amount_with_currency}."
msgstr ""
+"Tämä teksti näkyy tilausvahvistussivulla vireillä olevien tilausten osalta. "
+"Sen pitäisi neuvoa käyttäjää, miten maksun suorittamisessa tulee edetä. Voit "
+"käyttää tunnuksia {order}, {amount}, {currency} ja {amount_with_currency}."
#: pretix/base/payment.py:1208 pretix/plugins/banktransfer/payment.py:151
msgid ""
"Create an invoice for orders using bank transfer immediately if the event is "
"otherwise configured to create invoices after payment is completed."
msgstr ""
+"Luo lasku tilisiirtoa käyttävistä tilauksista heti, jos tapahtuma on muuten "
+"määritetty luomaan laskut maksun suorittamisen jälkeen."
#: pretix/base/payment.py:1259
msgid "Offsetting"
-msgstr ""
+msgstr "Kuittaus"
#: pretix/base/payment.py:1273 pretix/control/views/orders.py:1244
msgid "You entered an order that could not be found."
-msgstr ""
+msgstr "Kirjoitit tilauksen, jota ei löydy."
#: pretix/base/payment.py:1302
#, python-format
msgid "Balanced against orders: %s"
-msgstr ""
+msgstr "Tasattu tilauksia vastaan: %s"
#: pretix/base/payment.py:1328
msgid "Payment method description"
@@ -6924,106 +7096,110 @@ msgstr "Maksutavan kuvaus"
#: pretix/base/payment.py:1345
msgid "In test mode, only test cards will work."
-msgstr ""
+msgstr "Testitilassa vain testikortit toimivat."
#: pretix/base/payment.py:1426 pretix/base/payment.py:1487
#: pretix/base/payment.py:1532 pretix/base/payment.py:1534
msgid "This gift card does not support this currency."
-msgstr ""
+msgstr "Tämä lahjakortti ei tue tätä valuuttaa."
#: pretix/base/payment.py:1428 pretix/base/payment.py:1490
#: pretix/base/payment.py:1540
msgid "This gift card can only be used in test mode."
-msgstr ""
+msgstr "Tätä lahjakorttia voi käyttää vain testitilassa."
#: pretix/base/payment.py:1430 pretix/base/payment.py:1493
#: pretix/base/payment.py:1542
msgid "Only test gift cards can be used in test mode."
-msgstr ""
+msgstr "Testitilassa voidaan käyttää vain testilahjakortteja."
#: pretix/base/payment.py:1432 pretix/base/payment.py:1496
#: pretix/base/payment.py:1544
msgid "This gift card is no longer valid."
-msgstr ""
+msgstr "Tämä lahjakortti ei ole enää voimassa."
#: pretix/base/payment.py:1434 pretix/base/payment.py:1499
msgid "All credit on this gift card has been used."
-msgstr ""
+msgstr "Kaikki tämän lahjakortin luotto on käytetty."
#: pretix/base/payment.py:1438
msgid "This gift card is already used for your payment."
-msgstr ""
+msgstr "Tämä lahjakortti on jo käytetty maksamiseen."
#: pretix/base/payment.py:1453 pretix/base/payment.py:1479
#: pretix/base/payment.py:1522
msgid "You cannot pay with gift cards when buying a gift card."
-msgstr ""
+msgstr "Et voi maksaa lahjakorteilla, kun ostat lahjakortin."
#: pretix/base/payment.py:1469 pretix/base/payment.py:1512
msgid ""
"You entered a voucher instead of a gift card. Vouchers can only be entered "
"on the first page of the shop below the product selection."
msgstr ""
+"Syötit lahjakortin sijasta arvosetelin. Arvoseteleitä voi syöttää vain "
+"kaupan ensimmäisellä sivulla tuotevalinnan alapuolella."
#: pretix/base/payment.py:1472 pretix/base/payment.py:1515
msgid "This gift card is not known."
-msgstr ""
+msgstr "Tätä lahjakorttia ei tunnisteta."
#: pretix/base/payment.py:1474 pretix/base/payment.py:1517
msgid ""
"This gift card can not be redeemed since its code is not unique. Please "
"contact the organizer of this event."
msgstr ""
+"Tätä lahjakorttia ei voi lunastaa, koska sen koodi ei ole yksilöllinen. Ota "
+"yhteyttä tämän tapahtuman järjestäjään."
#: pretix/base/payment.py:1536
msgid "This gift card is not accepted by this event organizer."
-msgstr ""
+msgstr "Tapahtuman järjestäjä ei hyväksy tätä lahjakorttia."
#: pretix/base/payment.py:1538
msgid "This gift card was used in the meantime. Please try again."
-msgstr ""
+msgstr "Tämä lahjakortti käytettiin sillä välin. Yritä uudelleen."
#: pretix/base/pdf.py:96
msgid "Ticket code (barcode content)"
-msgstr ""
+msgstr "Lipun koodi (viivakoodin sisältö)"
#: pretix/base/pdf.py:108
msgid "Order position number"
-msgstr ""
+msgstr "Järjestysnumero"
#: pretix/base/pdf.py:116
msgid "Order code and position number"
-msgstr ""
+msgstr "Tilauskoodi ja järjestysnumero"
#: pretix/base/pdf.py:122 pretix/base/services/tickets.py:101
#: pretix/control/views/event.py:798 pretix/control/views/pdf.py:94
msgid "Sample product"
-msgstr ""
+msgstr "Esimerkkituote"
#: pretix/base/pdf.py:126
msgid "Variation name"
-msgstr ""
+msgstr "Vaihtoehdon nimi"
#: pretix/base/pdf.py:127
msgid "Sample variation"
-msgstr ""
+msgstr "Esimerkkivaihtoehto"
#: pretix/base/pdf.py:131
msgid "Product description"
-msgstr ""
+msgstr "Tuotekuvaus"
#: pretix/base/pdf.py:132 pretix/base/services/tickets.py:102
#: pretix/control/views/event.py:799 pretix/control/views/pdf.py:95
msgid "Sample product description"
-msgstr ""
+msgstr "Esimerkkituotteen kuvaus"
#: pretix/base/pdf.py:136
msgid "Product name and variation"
-msgstr ""
+msgstr "Tuotteen nimi ja laji"
#: pretix/base/pdf.py:137
msgid "Sample product – sample variation"
-msgstr ""
+msgstr "Esimerkkituote - esimerkkilaji"
#: pretix/base/pdf.py:144
msgid "Product variation description"
@@ -7035,15 +7211,15 @@ msgstr "Tuotevariaation esimerkkikuvaus"
#: pretix/base/pdf.py:152
msgid "Ticket category"
-msgstr ""
+msgstr "Lippuluokka"
#: pretix/base/pdf.py:159 pretix/base/pdf.py:164
msgid "123.45 EUR"
-msgstr ""
+msgstr "123,45 EUR"
#: pretix/base/pdf.py:163
msgid "Price including add-ons"
-msgstr ""
+msgstr "Hinta sisältäen lisäosat"
#: pretix/base/pdf.py:173 pretix/base/pdf.py:331
#: pretix/base/services/invoices.py:476
@@ -7066,11 +7242,11 @@ msgstr ""
#: pretix/base/pdf.py:178 pretix/base/pdf.py:336
#: pretix/base/services/tickets.py:119 pretix/control/views/pdf.py:111
msgid "Sample company"
-msgstr ""
+msgstr "Esimerkkifirma"
#: pretix/base/pdf.py:182
msgid "Full attendee address"
-msgstr ""
+msgstr "Osallistujan täydellinen osoite"
#: pretix/base/pdf.py:183
msgid ""
@@ -7080,6 +7256,11 @@ msgid ""
"12345 Any City\n"
"Atlantis"
msgstr ""
+"Matti Meikäläinen\n"
+"Esimerkkiyritys\n"
+"Seesaminkatu 42\n"
+"12345 Mikä tahansa kaupunki\n"
+"Atlantis"
#: pretix/base/pdf.py:187
msgid "Attendee street"
@@ -7099,7 +7280,7 @@ msgstr "Osallistujan maakunta"
#: pretix/base/pdf.py:207
msgid "Attendee country"
-msgstr ""
+msgstr "Osallistujan maa"
#: pretix/base/pdf.py:219
msgid "Pseudonymization ID (lead scanning)"
@@ -7107,7 +7288,7 @@ msgstr ""
#: pretix/base/pdf.py:225 pretix/base/pdf.py:230
msgid "Sample event name"
-msgstr ""
+msgstr "Esimerkkitapahtuman nimi"
#: pretix/base/pdf.py:235
msgid "May 31st, 2017"
From 8d8a4c4417c54d4ea2587513a0991e4e6500e262 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=EC=A1=B0=EC=A0=95=ED=99=94?=
Date: Wed, 5 Feb 2025 13:03:07 +0000
Subject: [PATCH 19/99] Translations: Update Korean
Currently translated at 1.9% (114 of 5846 strings)
Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/ko/
powered by weblate
---
src/pretix/locale/ko/LC_MESSAGES/django.po | 74 +++++++++++-----------
1 file changed, 38 insertions(+), 36 deletions(-)
diff --git a/src/pretix/locale/ko/LC_MESSAGES/django.po b/src/pretix/locale/ko/LC_MESSAGES/django.po
index a05e3ce1f6..335c929699 100644
--- a/src/pretix/locale/ko/LC_MESSAGES/django.po
+++ b/src/pretix/locale/ko/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-01-29 13:18+0000\n"
-"PO-Revision-Date: 2025-02-05 11:50+0000\n"
+"PO-Revision-Date: 2025-02-05 20:00+0000\n"
"Last-Translator: 조정화 \n"
"Language-Team: Korean \n"
@@ -363,154 +363,156 @@ msgstr "이 이메일 주소를 가진 계정이 이미 등록되어 있습니
msgid ""
"A gift card with the same secret already exists in your or an affiliated "
"organizer account."
-msgstr ""
+msgstr "동일한 비밀을 가진 기프트 카드가 이미 회원님 또는 제휴 주최자 계정에 "
+"존재합니다."
#: pretix/api/serializers/organizer.py:327
#: pretix/control/views/organizer.py:769
msgid "pretix account invitation"
-msgstr ""
+msgstr "프레틱스 계정 초대"
#: pretix/api/serializers/organizer.py:349
#: pretix/control/views/organizer.py:868
msgid "This user already has been invited for this team."
-msgstr ""
+msgstr "이 사용자는 이미 이 팀에 초대되었습니다."
#: pretix/api/serializers/organizer.py:365
#: pretix/control/views/organizer.py:885
msgid "This user already has permissions for this team."
-msgstr ""
+msgstr "이 사용자는 이미 이 팀에 대한 권한을 가지고 있습니다."
#: pretix/api/views/cart.py:209
msgid ""
"The specified voucher has already been used the maximum number of times."
-msgstr ""
+msgstr "지정된 바우처는 이미 최대 횟수만큼 사용되었습니다."
#: pretix/api/views/checkin.py:610 pretix/api/views/checkin.py:617
msgid "Medium connected to other event"
-msgstr ""
+msgstr "다른 이벤트와 연결된 매체"
#: pretix/api/views/oauth.py:107 pretix/control/logdisplay.py:686
-#, python-brace-format
+#, fuzzy, python-brace-format
msgid ""
"The application \"{application_name}\" has been authorized to access your "
"account."
-msgstr ""
+msgstr "\"{applicationion_name}\" 애플리케이션이 계정에 액세스할 수 있는 권한을 "
+"부여받았습니다."
#: pretix/api/views/order.py:607 pretix/control/views/orders.py:1588
#: pretix/presale/views/order.py:741 pretix/presale/views/order.py:814
msgid "You cannot generate an invoice for this order."
-msgstr ""
+msgstr "이 주문에 대한 영수증을 생성할 수 없습니다."
#: pretix/api/views/order.py:612 pretix/control/views/orders.py:1590
#: pretix/presale/views/order.py:743 pretix/presale/views/order.py:816
msgid "An invoice for this order already exists."
-msgstr ""
+msgstr "이 주문에 대한 영수증이 이미 존재합니다."
#: pretix/api/views/order.py:638 pretix/control/views/orders.py:1716
#: pretix/control/views/users.py:143
msgid "There was an error sending the mail. Please try again later."
-msgstr ""
+msgstr "메일을 보내는 동안 오류가 발생했습니다. 나중에 다시 시도해 주세요."
#: pretix/api/views/order.py:718 pretix/base/services/cart.py:215
#: pretix/base/services/orders.py:186 pretix/presale/views/order.py:798
msgid "One of the selected products is not available in the selected country."
-msgstr ""
+msgstr "선택된 제품 중 하나는 선택된 국가에서 사용할 수 없습니다."
#: pretix/api/webhooks.py:237 pretix/base/notifications.py:233
msgid "New order placed"
-msgstr ""
+msgstr "신규주문"
#: pretix/api/webhooks.py:241 pretix/base/notifications.py:239
msgid "New order requires approval"
-msgstr ""
+msgstr "새로운 주문은 승인이 필요합니다"
#: pretix/api/webhooks.py:245 pretix/base/notifications.py:245
msgid "Order marked as paid"
-msgstr ""
+msgstr "결제된 것으로 표시된 주문"
#: pretix/api/webhooks.py:249 pretix/base/models/checkin.py:354
#: pretix/base/notifications.py:251
#: pretix/control/templates/pretixcontrol/event/mail.html:114
#: pretix/control/views/orders.py:1549
msgid "Order canceled"
-msgstr ""
+msgstr "주문취소"
#: pretix/api/webhooks.py:253 pretix/base/notifications.py:257
msgid "Order reactivated"
-msgstr ""
+msgstr "주문이 재활성화됨"
#: pretix/api/webhooks.py:257 pretix/base/notifications.py:263
msgid "Order expired"
-msgstr ""
+msgstr "주문만료"
#: pretix/api/webhooks.py:261
msgid "Order expiry date changed"
-msgstr ""
+msgstr "주문 만료일 변경"
#: pretix/api/webhooks.py:265 pretix/base/notifications.py:269
msgid "Order information changed"
-msgstr ""
+msgstr "주문 정보가 변경되었습니다."
#: pretix/api/webhooks.py:269 pretix/base/notifications.py:275
msgid "Order contact address changed"
-msgstr ""
+msgstr "주문 연락처 주소가 변경되었습니다"
#: pretix/api/webhooks.py:273 pretix/base/notifications.py:281
#: pretix/control/templates/pretixcontrol/event/mail.html:102
msgid "Order changed"
-msgstr ""
+msgstr "주문변경"
#: pretix/api/webhooks.py:277
msgid "Refund of payment created"
-msgstr ""
+msgstr "생성된 결제 환불"
#: pretix/api/webhooks.py:281 pretix/base/notifications.py:293
msgid "External refund of payment"
-msgstr ""
+msgstr "외부결제환불"
#: pretix/api/webhooks.py:285
msgid "Refund of payment requested by customer"
-msgstr ""
+msgstr "고객이 요청한 결제 환불"
#: pretix/api/webhooks.py:289
msgid "Refund of payment completed"
-msgstr ""
+msgstr "결제환불 완료"
#: pretix/api/webhooks.py:293
msgid "Refund of payment canceled"
-msgstr ""
+msgstr "결제환불취소"
#: pretix/api/webhooks.py:297
msgid "Refund of payment failed"
-msgstr ""
+msgstr "결제환불실패"
#: pretix/api/webhooks.py:301
msgid "Payment confirmed"
-msgstr ""
+msgstr "결제 확인"
#: pretix/api/webhooks.py:305
msgid "Order approved"
-msgstr ""
+msgstr "주문 승인"
#: pretix/api/webhooks.py:309
msgid "Order denied"
-msgstr ""
+msgstr "주문 거부"
#: pretix/api/webhooks.py:313
msgid "Order deleted"
-msgstr ""
+msgstr "주문 삭제"
#: pretix/api/webhooks.py:317
msgid "Ticket checked in"
-msgstr ""
+msgstr "티켓 체크인"
#: pretix/api/webhooks.py:321
msgid "Ticket check-in reverted"
-msgstr ""
+msgstr "티켓 체크인이 반환되었습니다."
#: pretix/api/webhooks.py:325
msgid "Event created"
-msgstr ""
+msgstr "이벤트 생성"
#: pretix/api/webhooks.py:329
msgid "Event details changed"
From 867ae8c61ae09eea40025bd3bc403164ef460b36 Mon Sep 17 00:00:00 2001
From: Hannu Kaakinen
Date: Wed, 5 Feb 2025 20:10:14 +0000
Subject: [PATCH 20/99] Translations: Update Finnish
Currently translated at 34.2% (2004 of 5846 strings)
Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/fi/
powered by weblate
---
src/pretix/locale/fi/LC_MESSAGES/django.po | 80 +++++++++++-----------
1 file changed, 41 insertions(+), 39 deletions(-)
diff --git a/src/pretix/locale/fi/LC_MESSAGES/django.po b/src/pretix/locale/fi/LC_MESSAGES/django.po
index ff6d5f77ad..f7c9b41f01 100644
--- a/src/pretix/locale/fi/LC_MESSAGES/django.po
+++ b/src/pretix/locale/fi/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-01-29 13:18+0000\n"
-"PO-Revision-Date: 2025-02-05 20:00+0000\n"
+"PO-Revision-Date: 2025-02-06 05:00+0000\n"
"Last-Translator: Hannu Kaakinen \n"
"Language-Team: Finnish \n"
@@ -7292,41 +7292,41 @@ msgstr "Esimerkkitapahtuman nimi"
#: pretix/base/pdf.py:235
msgid "May 31st, 2017"
-msgstr ""
+msgstr "31.5.2017"
#: pretix/base/pdf.py:239
msgid "Event date range"
-msgstr ""
+msgstr "Tapahtuman päivämääräväli"
#: pretix/base/pdf.py:240
msgid "May 31st – June 4th, 2017"
-msgstr ""
+msgstr "31.5. – 4.6.2017"
#: pretix/base/pdf.py:244
msgid "Event begin date and time"
-msgstr ""
+msgstr "Tapahtuman alku- ja loppupäivämäärät ja ajat"
#: pretix/base/pdf.py:245
msgid "2017-05-31 20:00"
-msgstr ""
+msgstr "31.5.2017, klo 20:00"
#: pretix/base/pdf.py:252
msgid "Event begin date"
-msgstr ""
+msgstr "Tapahtuman alkupäivä"
#: pretix/base/pdf.py:253 pretix/base/pdf.py:279 pretix/base/pdf.py:388
#: pretix/base/pdf.py:412 pretix/base/pdf.py:436 pretix/base/pdf.py:460
#: pretix/base/pdf.py:517 pretix/base/pdf.py:522
msgid "2017-05-31"
-msgstr ""
+msgstr "31.5.2017"
#: pretix/base/pdf.py:260
msgid "Event begin time"
-msgstr ""
+msgstr "Tapahtuman aloitusaika"
#: pretix/base/pdf.py:261
msgid "20:00"
-msgstr ""
+msgstr "20:00"
#: pretix/base/pdf.py:265
msgid "Event begin weekday"
@@ -7339,15 +7339,15 @@ msgstr "perjantai"
#: pretix/base/pdf.py:270
msgid "Event end date and time"
-msgstr ""
+msgstr "Tapahtuman päätöspäivä ja -aika"
#: pretix/base/pdf.py:271
msgid "2017-05-31 22:00"
-msgstr ""
+msgstr "31.5.2017, klo 22:00"
#: pretix/base/pdf.py:287
msgid "22:00"
-msgstr ""
+msgstr "22:00"
#: pretix/base/pdf.py:294
msgid "Event end weekday"
@@ -7355,45 +7355,45 @@ msgstr "Tapahtuman loppumisviikonpäivä"
#: pretix/base/pdf.py:299
msgid "Event admission date and time"
-msgstr ""
+msgstr "Tapahtuman sisäänpääsyn päivämäärä ja kellonaika"
#: pretix/base/pdf.py:300 pretix/base/pdf.py:396 pretix/base/pdf.py:420
#: pretix/base/pdf.py:444 pretix/base/pdf.py:468 pretix/base/pdf.py:511
msgid "2017-05-31 19:00"
-msgstr ""
+msgstr "31.5.2017, klo 19:00"
#: pretix/base/pdf.py:307
msgid "Event admission time"
-msgstr ""
+msgstr "Tapahtuman sisäänpääsyaika"
#: pretix/base/pdf.py:308 pretix/base/pdf.py:404 pretix/base/pdf.py:428
#: pretix/base/pdf.py:452 pretix/base/pdf.py:476
msgid "19:00"
-msgstr ""
+msgstr "19:00"
#: pretix/base/pdf.py:315
msgid "Event location"
-msgstr ""
+msgstr "Tapahtuman sijainti"
#: pretix/base/pdf.py:316 pretix/base/settings.py:1133
msgid "Random City"
-msgstr ""
+msgstr "Satunnainen kaupunki"
#: pretix/base/pdf.py:335
msgid "Invoice address company"
-msgstr ""
+msgstr "Laskun osoite yritys"
#: pretix/base/pdf.py:341
msgid "Sesame Street 42"
-msgstr ""
+msgstr "Seesamikatu 42"
#: pretix/base/pdf.py:346
msgid "12345"
-msgstr ""
+msgstr "12345"
#: pretix/base/pdf.py:351 pretix/base/services/invoices.py:479
msgid "Sample city"
-msgstr ""
+msgstr "Esimerkkikaupunki"
#: pretix/base/pdf.py:355
msgid "Invoice address state"
@@ -7405,23 +7405,25 @@ msgstr "Esimerkkimaakunta"
#: pretix/base/pdf.py:361
msgid "Atlantis"
-msgstr ""
+msgstr "Atlantis"
#: pretix/base/pdf.py:365
msgid "List of Add-Ons"
-msgstr ""
+msgstr "Lista lisäyksistä"
#: pretix/base/pdf.py:366
msgid ""
"Add-on 1\n"
"2x Add-on 2"
msgstr ""
+"Lisäys1\n"
+"2xLisäys 2"
#: pretix/base/pdf.py:372 pretix/control/forms/filter.py:1375
#: pretix/control/forms/filter.py:1377
#: pretix/control/templates/pretixcontrol/organizers/index.html:42
msgid "Organizer name"
-msgstr ""
+msgstr "Järjestäjän nimi"
#: pretix/base/pdf.py:373
msgid "Event organizer company"
@@ -7429,11 +7431,11 @@ msgstr ""
#: pretix/base/pdf.py:377
msgid "Organizer info text"
-msgstr ""
+msgstr "Järjestäjän infoteksti"
#: pretix/base/pdf.py:378
msgid "Event organizer info text"
-msgstr ""
+msgstr "Tapahtumanjärjestäjän infoteksti"
#: pretix/base/pdf.py:382 pretix/base/pdf.py:383
msgid "Event info text"
@@ -7441,15 +7443,15 @@ msgstr "Tapahtuman ohjeteksti"
#: pretix/base/pdf.py:387
msgid "Printing date"
-msgstr ""
+msgstr "Tulostuspäivä"
#: pretix/base/pdf.py:395
msgid "Printing date and time"
-msgstr ""
+msgstr "Tulostuspäivä ja aika"
#: pretix/base/pdf.py:403
msgid "Printing time"
-msgstr ""
+msgstr "Tulostusaika"
#: pretix/base/pdf.py:411 pretix/control/forms/item.py:730
msgid "Purchase date"
@@ -7493,11 +7495,11 @@ msgstr ""
#: pretix/base/pdf.py:488
msgid "Seat: Full name"
-msgstr ""
+msgstr "Istuin: Koko nimi"
#: pretix/base/pdf.py:489
msgid "Ground floor, Row 3, Seat 4"
-msgstr ""
+msgstr "Ensimmäinen kerros, rivi 3, istuin 4"
#: pretix/base/pdf.py:491 pretix/base/pdf.py:497
#: pretix/control/forms/orders.py:330
@@ -7506,19 +7508,19 @@ msgstr ""
#: pretix/base/pdf.py:494
msgid "Seat: zone"
-msgstr ""
+msgstr "Istuin: vyöhyke"
#: pretix/base/pdf.py:495
msgid "Ground floor"
-msgstr ""
+msgstr "Ensimmäinen kerros"
#: pretix/base/pdf.py:500
msgid "Seat: row"
-msgstr ""
+msgstr "Istuin: rivi"
#: pretix/base/pdf.py:505
msgid "Seat: seat number"
-msgstr ""
+msgstr "Istuin: istuin numero"
#: pretix/base/pdf.py:510
msgid "Date and time of first scan"
@@ -7537,12 +7539,12 @@ msgstr "Lahjakortti: Vanhenemispäivämäärä"
#: pretix/plugins/ticketoutputpdf/exporters.py:102
#, python-brace-format
msgid "Question: {question}"
-msgstr ""
+msgstr "Kysymys: {question}"
#: pretix/base/pdf.py:601 pretix/base/pdf.py:607
#, python-brace-format
msgid ""
-msgstr ""
+msgstr ""
#: pretix/base/pdf.py:648
msgid "Attendee name for salutation"
From 64effc84a3dac0138c7204bcb9ef92dc67dafdf4 Mon Sep 17 00:00:00 2001
From: Mira
Date: Thu, 6 Feb 2025 11:52:27 +0100
Subject: [PATCH 21/99] Hide "Optional" label on conditionally required
"Cross-selling condition" field (#4809)
---
src/pretix/control/forms/item.py | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/pretix/control/forms/item.py b/src/pretix/control/forms/item.py
index f1a218c675..16fc1038ff 100644
--- a/src/pretix/control/forms/item.py
+++ b/src/pretix/control/forms/item.py
@@ -120,6 +120,7 @@ class CategoryForm(I18nModelForm):
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_condition']._required = True # Do not display "Optional" label
self.fields['cross_selling_match_products'].widget = forms.CheckboxSelectMultiple(
attrs={
From a53def094753bdec405a684c44c134b540c5f532 Mon Sep 17 00:00:00 2001
From: Raphael Michel
Date: Thu, 6 Feb 2025 12:07:10 +0100
Subject: [PATCH 22/99] Fix CSRF token of admin mode button being removed if
e.g. support menu is clicked (#4812)
---
src/pretix/static/pretixcontrol/js/ui/typeahead.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/pretix/static/pretixcontrol/js/ui/typeahead.js b/src/pretix/static/pretixcontrol/js/ui/typeahead.js
index c11a14ad21..cdf2d176ff 100644
--- a/src/pretix/static/pretixcontrol/js/ui/typeahead.js
+++ b/src/pretix/static/pretixcontrol/js/ui/typeahead.js
@@ -1,6 +1,6 @@
/*global $,u2f */
$(function () {
- $('.sidebar .dropdown, ul.navbar-nav .dropdown, .navbar-events-collapse').on('shown.bs.collapse shown.bs.dropdown', function () {
+ $('.context-selector.dropdown').on('shown.bs.collapse shown.bs.dropdown', function () {
$(this).parent().find("input").val("").trigger('forceRunQuery').focus();
});
$('.dropdown-menu .form-box input').click(function (e) {
From c87401ef5d24c7ea8b1002654bb26ad173437b24 Mon Sep 17 00:00:00 2001
From: Martin Gross
Date: Thu, 6 Feb 2025 12:07:43 +0100
Subject: [PATCH 23/99] Widget: Prefill email_repeat with data-email attribute
(Z#23181657) (#4813)
---
src/pretix/presale/checkoutflow.py | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/src/pretix/presale/checkoutflow.py b/src/pretix/presale/checkoutflow.py
index 3a1ea6ff21..5fce2b631c 100644
--- a/src/pretix/presale/checkoutflow.py
+++ b/src/pretix/presale/checkoutflow.py
@@ -787,6 +787,10 @@ class QuestionsStep(QuestionsViewMixin, CartMixin, TemplateFlowStep):
self.cart_session.get('email', '') or
wd.get('email', '')
),
+ 'email_repeat': (
+ self.cart_session.get('email_repeat', '') or
+ wd.get('email', '')
+ ),
'phone': self.cart_session.get('phone', '') or wd.get('phone', None)
}
initial.update(self.cart_session.get('contact_form_data', {}))
From c4436ca3197ad652df65b28513503d8d9f2ea06f Mon Sep 17 00:00:00 2001
From: Raphael Michel
Date: Thu, 6 Feb 2025 14:55:15 +0100
Subject: [PATCH 24/99] Change wording for "show_dates_on_frontpage" setting
(#4798)
---
src/pretix/base/settings.py | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/src/pretix/base/settings.py b/src/pretix/base/settings.py
index 5b48b75de2..29154dfe76 100644
--- a/src/pretix/base/settings.py
+++ b/src/pretix/base/settings.py
@@ -1308,10 +1308,13 @@ DEFAULTS = {
'serializer_class': serializers.BooleanField,
'form_class': forms.BooleanField,
'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 "
- "also affects a few other locations, however it should not be expected that the date of the "
- "event is shown nowhere to users."),
+ label=_("This shop represents an event"),
+ help_text=_(
+ "Uncheck this box if you are only selling something that has no specific date, such as gift cards or a "
+ "ticket that can be used any time. The system will then stop showing the event date in some places like "
+ "the event start page. Note that pretix still is a system built around events and the date may still "
+ "show up in other places."
+ ),
)
},
'show_date_to': {
From f7cba6a2bdb010c94817361366b523df3930cec5 Mon Sep 17 00:00:00 2001
From: Mira
Date: Fri, 7 Feb 2025 11:53:17 +0100
Subject: [PATCH 25/99] Fix log display for checkins and order splits
(Z#23181229) (#4818)
- Fix link in pretix.event.order.changed.split
- Add link to existing order in pretix.event.order.changed.split_from
- Fix display of checkin entries without datetime in data
- Add additional info for admins (action type, linked content object)
---
src/pretix/control/logdisplay.py | 25 ++++++++++++-------
src/pretix/control/views/global_settings.py | 2 +-
src/pretix/static/pretixcontrol/js/ui/main.js | 10 ++++++--
3 files changed, 25 insertions(+), 12 deletions(-)
diff --git a/src/pretix/control/logdisplay.py b/src/pretix/control/logdisplay.py
index dc9d00af3a..b8b70da60b 100644
--- a/src/pretix/control/logdisplay.py
+++ b/src/pretix/control/logdisplay.py
@@ -72,7 +72,7 @@ class OrderChangeLogEntryType(OrderLogEntryType):
prefix = _('The order has been changed:')
def display(self, logentry, data):
- return self.prefix + ' ' + self.display_prefixed(logentry.event, logentry, data)
+ return format_html('{} {}', self.prefix, self.display_prefixed(logentry.event, logentry, data))
def display_prefixed(self, event: Event, logentry: LogEntry, data):
return super().display(logentry, data)
@@ -282,12 +282,13 @@ class OrderChangedSplit(OrderChangeLogEntryType):
'organizer': event.organizer.slug,
'code': data['new_order']
})
- return mark_safe(self.prefix + ' ' + _('Position #{posid} ({old_item}, {old_price}) split into new order: {order}').format(
+ return format_html(
+ _('Position #{posid} ({old_item}, {old_price}) split into new order: {order}'),
old_item=escape(old_item),
posid=data.get('positionid', '?'),
- order='{}'.format(url, data['new_order']),
+ order=format_html(mark_safe('{}'), url, data['new_order']),
old_price=money_filter(Decimal(data['old_price']), event.currency),
- ))
+ )
@log_entry_types.new()
@@ -295,8 +296,14 @@ class OrderChangedSplitFrom(OrderLogEntryType):
action_type = 'pretix.event.order.changed.split_from'
def display(self, logentry: LogEntry, data):
- return _('This order has been created by splitting the order {order}').format(
- order=data['original_order'],
+ url = reverse('control:event.order', kwargs={
+ 'event': logentry.event.slug,
+ 'organizer': logentry.event.organizer.slug,
+ 'code': data['original_order']
+ })
+ return format_html(
+ _('This order has been created by splitting the order {order}'),
+ order=format_html(mark_safe('{}'), url, data['original_order']),
)
@@ -343,12 +350,12 @@ class CheckinErrorLogEntryType(OrderLogEntryType):
if 'datetime' in data:
dt = dateutil.parser.parse(data.get('datetime'))
- if abs((logentry.datetime - dt).total_seconds()) > 5 or 'forced' in data:
+ if abs((logentry.datetime - dt).total_seconds()) > 5 or data.get('forced'):
tz = event.timezone
data['datetime'] = date_format(dt.astimezone(tz), "SHORT_DATETIME_FORMAT")
return str(plain_with_dt).format_map(data)
- else:
- return str(plain_without_dt).format_map(data)
+
+ return str(plain_without_dt).format_map(data)
@log_entry_types.new('pretix.event.checkin')
diff --git a/src/pretix/control/views/global_settings.py b/src/pretix/control/views/global_settings.py
index b6e2978779..362ca449b0 100644
--- a/src/pretix/control/views/global_settings.py
+++ b/src/pretix/control/views/global_settings.py
@@ -110,7 +110,7 @@ class MessageView(TemplateView):
class LogDetailView(AdministratorPermissionRequiredMixin, View):
def get(self, request, *args, **kwargs):
le = get_object_or_404(LogEntry, pk=request.GET.get('pk'))
- return JsonResponse({'data': le.parsed_data})
+ return JsonResponse({'action_type': le.action_type, 'content_type': str(le.content_type), 'object_id': le.object_id, 'data': le.parsed_data})
class PaymentDetailView(AdministratorPermissionRequiredMixin, View):
diff --git a/src/pretix/static/pretixcontrol/js/ui/main.js b/src/pretix/static/pretixcontrol/js/ui/main.js
index 86a5151711..331196c34b 100644
--- a/src/pretix/static/pretixcontrol/js/ui/main.js
+++ b/src/pretix/static/pretixcontrol/js/ui/main.js
@@ -1065,11 +1065,17 @@ function add_log_expand_handlers(el) {
} else if ($a.is("[data-expandpayment]")) {
url += 'payment/'
}
+ function format_data(data) {
+ return Object.entries(data).map(([key, value]) =>
+ $("
").append(format_data(data)).appendTo($a.parent());
}
$a.remove();
});
From 9c781a174dafa9831768f9e2d8e825a980c7a277 Mon Sep 17 00:00:00 2001
From: Mira
Date: Fri, 7 Feb 2025 14:25:57 +0100
Subject: [PATCH 26/99] Fix Checkin logdisplay for deleted events (#4821)
---
src/pretix/control/logdisplay.py | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/pretix/control/logdisplay.py b/src/pretix/control/logdisplay.py
index b8b70da60b..ff36fd16da 100644
--- a/src/pretix/control/logdisplay.py
+++ b/src/pretix/control/logdisplay.py
@@ -337,7 +337,7 @@ class CheckinErrorLogEntryType(OrderLogEntryType):
event = logentry.event
- if 'list' in data:
+ if 'list' in data and event:
try:
data['list'] = event.checkin_lists.get(pk=data.get('list')).name
except CheckinList.DoesNotExist:
@@ -351,8 +351,8 @@ class CheckinErrorLogEntryType(OrderLogEntryType):
if 'datetime' in data:
dt = dateutil.parser.parse(data.get('datetime'))
if abs((logentry.datetime - dt).total_seconds()) > 5 or data.get('forced'):
- tz = event.timezone
- data['datetime'] = date_format(dt.astimezone(tz), "SHORT_DATETIME_FORMAT")
+ if event:
+ data['datetime'] = date_format(dt.astimezone(event.timezone), "SHORT_DATETIME_FORMAT")
return str(plain_with_dt).format_map(data)
return str(plain_without_dt).format_map(data)
@@ -417,7 +417,7 @@ class OrderPrintLogEntryType(OrderLogEntryType):
datetime=date_format(
dateutil.parser.parse(data["datetime"]).astimezone(logentry.event.timezone),
"SHORT_DATETIME_FORMAT"
- ),
+ ) if logentry.event else data["datetime"],
type=dict(PrintLog.PRINT_TYPES)[data["type"]],
)
From cfae2c62c3e02e2add954ef234ac550b7b92619a Mon Sep 17 00:00:00 2001
From: Raphael Michel
Date: Fri, 7 Feb 2025 18:04:46 +0100
Subject: [PATCH 27/99] OIDC: Fix incorrect error handling in server
implementation
---
src/pretix/presale/views/oidc_op.py | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/src/pretix/presale/views/oidc_op.py b/src/pretix/presale/views/oidc_op.py
index cb6a66ec64..6630fd074c 100644
--- a/src/pretix/presale/views/oidc_op.py
+++ b/src/pretix/presale/views/oidc_op.py
@@ -244,15 +244,16 @@ class AuthorizeView(View):
response_mode, state)
if "id_token_hint" in request_data:
- self._redirect_error("invalid_request", "id_token_hint currently not supported by this server",
- redirect_uri, response_mode, state)
+ return self._redirect_error("invalid_request", "id_token_hint currently not supported by this server",
+ redirect_uri, response_mode, state)
has_valid_session = bool(request.customer)
if has_valid_session and max_age:
try:
has_valid_session = int(time.time() - get_customer_auth_time(request)) < int(max_age)
except ValueError:
- self._redirect_error("invalid_request", "invalid max_age value", redirect_uri, response_mode, state)
+ return self._redirect_error("invalid_request", "invalid max_age value", redirect_uri,
+ response_mode, state)
if not has_valid_session and prompt and prompt == "none":
return self._redirect_error("interaction_required", "user is not logged in but no prompt is allowed",
From 85ae181ce8f38a6833c4973b55062332d31f775a Mon Sep 17 00:00:00 2001
From: Mira
Date: Mon, 10 Feb 2025 10:54:56 +0100
Subject: [PATCH 28/99] Add missing return (#4823)
---
src/pretix/control/logdisplay.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/pretix/control/logdisplay.py b/src/pretix/control/logdisplay.py
index ff36fd16da..6e1086021d 100644
--- a/src/pretix/control/logdisplay.py
+++ b/src/pretix/control/logdisplay.py
@@ -325,7 +325,7 @@ class OrderChangedSplitFrom(OrderLogEntryType):
})
class CheckinErrorLogEntryType(OrderLogEntryType):
def display(self, logentry: LogEntry, data):
- self.display_plain(self.plain, logentry, data)
+ return self.display_plain(self.plain, logentry, data)
def display_plain(self, plain, logentry: LogEntry, data):
if isinstance(plain, tuple):
From e524055249f9a4e65de78a92b0c6093ec274e4a1 Mon Sep 17 00:00:00 2001
From: Karoliina Grohn
Date: Thu, 6 Feb 2025 14:09:49 +0000
Subject: [PATCH 29/99] Translations: Update Finnish
Currently translated at 36.9% (2159 of 5846 strings)
Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/fi/
powered by weblate
---
src/pretix/locale/fi/LC_MESSAGES/django.po | 230 +++++++++++++--------
1 file changed, 140 insertions(+), 90 deletions(-)
diff --git a/src/pretix/locale/fi/LC_MESSAGES/django.po b/src/pretix/locale/fi/LC_MESSAGES/django.po
index f7c9b41f01..3f82355969 100644
--- a/src/pretix/locale/fi/LC_MESSAGES/django.po
+++ b/src/pretix/locale/fi/LC_MESSAGES/django.po
@@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-01-29 13:18+0000\n"
-"PO-Revision-Date: 2025-02-06 05:00+0000\n"
-"Last-Translator: Hannu Kaakinen \n"
+"PO-Revision-Date: 2025-02-06 18:00+0000\n"
+"Last-Translator: Karoliina Grohn \n"
"Language-Team: Finnish \n"
"Language: fi\n"
@@ -30998,13 +30998,15 @@ msgid ""
"receive a full refund or if a cancellation fee is deducted according to "
"their cancellation policy."
msgstr ""
+"Jos pyyntösi hyväksytään, järjestäjä päättää, palautetaanko sinulle koko "
+"summa vai vähennetäänkö peruutusmaksu järjestäjän peruutusehtojen mukaisesti."
#: pretix/presale/templates/pretixpresale/event/order.html:392
#: pretix/presale/templates/pretixpresale/event/order.html:428
#: pretix/presale/templates/pretixpresale/event/order.html:449
msgid ""
"The refund can be issued to your original payment method or as a gift card."
-msgstr ""
+msgstr "Palautus voidaan maksaa alkuperäisellä maksutavalla tai lahjakorttina."
#: pretix/presale/templates/pretixpresale/event/order.html:394
#: pretix/presale/templates/pretixpresale/event/order.html:430
@@ -31019,16 +31021,16 @@ msgstr ""
#: pretix/presale/templates/pretixpresale/event/order.html:465
#: pretix/presale/templates/pretixpresale/event/order.html:470
msgid "This will invalidate all tickets in this order."
-msgstr ""
+msgstr "Tämä mitätöi kaikki liput tässä tilauksessa."
#: pretix/presale/templates/pretixpresale/event/order.html:401
msgid ""
"You can request to cancel this order, but you will not receive a refund."
-msgstr ""
+msgstr "Voit pyytää perumaan tämän tilauksen, mutta korvausta ei makseta."
#: pretix/presale/templates/pretixpresale/event/order.html:405
msgid "You can cancel this order, but you will not receive a refund."
-msgstr ""
+msgstr "Voit perua tämän tilauksen, mutta maksua ei palauteta."
#: pretix/presale/templates/pretixpresale/event/order.html:414
#, python-format
@@ -31037,6 +31039,9 @@ msgid ""
"cancellation fee of %(fee)s will be kept and you will "
"receive a refund of the remainder."
msgstr ""
+"Voit pyytää tilauksen perumista. Jos pyyntösi hyväksytään, %(fee)s"
+"strong> summa pidätetään ja sinulle maksetaan loppuosa maksamastasi "
+"summasta korvauksena."
#: pretix/presale/templates/pretixpresale/event/order.html:420
#, python-format
@@ -31045,16 +31050,21 @@ msgid ""
"%(fee)s will be kept and you will receive a refund of the "
"remainder."
msgstr ""
+"Voit perua tilauksen. Siinä tapauksessa %(fee)s summa "
+"veloitetaan tilauksen perumisesta ja sinulle maksetaan loppusumma "
+"korvauksena."
#: pretix/presale/templates/pretixpresale/event/order.html:437
msgid ""
"You can request to cancel this order. If your request is approved, you get a "
"full refund."
msgstr ""
+"Voit pyytää tämän tilauksen peruutusta. Jos pyyntösi hyväksytään, saat "
+"maksamasi summan korvauksena kokonaisuudessaan."
#: pretix/presale/templates/pretixpresale/event/order.html:442
msgid "You can cancel this order and receive a full refund."
-msgstr ""
+msgstr "Voit peruuttaa tämän tilauksen ja saada täyden hyvityksen."
#: pretix/presale/templates/pretixpresale/event/order.html:461
#: pretix/presale/templates/pretixpresale/event/order_cancel.html:54
@@ -31063,20 +31073,22 @@ msgid ""
"You can cancel this order. As per our cancellation policy, you will still be "
"required to pay a cancellation fee of %(fee)s."
msgstr ""
+"Voit peruuttaa tämän tilauksen. Peruutusehtojemme mukaisesti sinun on silti "
+"maksettava %(fee)s kokoinen peruutusmaksu."
#: pretix/presale/templates/pretixpresale/event/order.html:467
msgid "You can cancel this order using the following button."
-msgstr ""
+msgstr "Voit peruuttaa tilauksen käyttämällä seuraavaa nappia."
#: pretix/presale/templates/pretixpresale/event/order_cancel.html:11
#, python-format
msgid "Request cancellation: %(code)s"
-msgstr ""
+msgstr "Peruutuspyyntö: %(code)s"
#: pretix/presale/templates/pretixpresale/event/order_cancel.html:15
#, python-format
msgid "Cancel order: %(code)s"
-msgstr ""
+msgstr "Peruuta tilaus: %(code)s"
#: pretix/presale/templates/pretixpresale/event/order_cancel.html:38
msgid ""
@@ -31084,12 +31096,17 @@ msgid ""
"organizer will then decide on your request. If they approve, your order will "
"be canceled and all tickets will be invalidated."
msgstr ""
+"Voit tehdä peruutuspyynnön tällä sivulla. Tapahtuman järjestäjä päättää "
+"tämän jälkeen pyynnöstäsi. Jos he hyväksyvät sen, tilauksesi peruutetaan ja "
+"kaikki liput mitätöidään."
#: pretix/presale/templates/pretixpresale/event/order_cancel.html:46
msgid ""
"If you cancel this order, all tickets will be invalidated and you can no "
"longer use them. You cannot revert this action."
msgstr ""
+"Jos peruutat tilauksen, kaikki lippusi mitätöidään etkä voi enää käyttää "
+"niitä. Tätä pyyntöä ei voi peruuttaa."
#: pretix/presale/templates/pretixpresale/event/order_cancel.html:62
#, python-format
@@ -31097,96 +31114,102 @@ msgid ""
"If you want, you can request a refund for the full amount minus a "
"cancellation fee of %(fee)s."
msgstr ""
+"Voit halutessasi pyytää hyvitystä koko summasta lukuunottamatta %(fee)s "
+"peruutusmaksua."
#: pretix/presale/templates/pretixpresale/event/order_cancel.html:67
msgid "If you want, you can request a full refund."
-msgstr ""
+msgstr "Voit halutessasi pyytää koko summan hyvitystä."
#: pretix/presale/templates/pretixpresale/event/order_cancel.html:96
msgid "Enter custom amount"
-msgstr ""
+msgstr "Syötä asiakassumma"
#: pretix/presale/templates/pretixpresale/event/order_cancel.html:101
msgid "Refund amount:"
-msgstr ""
+msgstr "Hyvityksen määrä:"
#: pretix/presale/templates/pretixpresale/event/order_cancel.html:117
#: pretix/presale/templates/pretixpresale/event/order_cancel.html:138
#, python-format
msgid "Your gift card will be valid until %(expiry_date)s."
-msgstr ""
+msgstr "Lahjakorttisi on voimassa %(expiry_date)s saakka."
#: pretix/presale/templates/pretixpresale/event/order_cancel.html:126
msgid "I want the refund as a gift card for later purchases"
-msgstr ""
+msgstr "Haluan hyvityksen lahjakorttina myöhempiä ostoksia varten"
#: pretix/presale/templates/pretixpresale/event/order_cancel.html:132
msgid "I want the refund to be sent to my original payment method"
msgstr ""
+"Haluan, että hyvityssumma maksetaan alunperin käyttämälleni maksatavalle"
#: pretix/presale/templates/pretixpresale/event/order_cancel.html:154
#: pretix/presale/templates/pretixpresale/event/order_cancel.html:185
msgid "The following payment methods will be used to refund the money to you:"
-msgstr ""
+msgstr "Seuraavia maksutapoja käytetään rahojen palauttamiseen sinulle:"
#: pretix/presale/templates/pretixpresale/event/order_cancel.html:218
msgid "Yes, request cancellation"
-msgstr ""
+msgstr "Kyllä, peruuta"
#: pretix/presale/templates/pretixpresale/event/order_change_confirm.html:19
-#, fuzzy
msgid "Please confirm the following changes to your order."
-msgstr "Ole hyvä ja tarkasta tilauksen tiedot alta ja vahvista tilaus."
+msgstr "Vahvista tilaustasi koskevat seuraavat muutokset."
#: pretix/presale/templates/pretixpresale/event/order_giftcard.html:10
#: pretix/presale/templates/pretixpresale/event/position_giftcard.html:10
-#, fuzzy, python-format
-#| msgid "Gift card"
+#, python-format
msgid "Gift card: %(code)s"
-msgstr "Lahjakortti"
+msgstr "Lahjakortti: %(code)s"
#: pretix/presale/templates/pretixpresale/event/order_modify.html:5
msgid "Modify order"
-msgstr ""
+msgstr "Muuta tilausta"
#: pretix/presale/templates/pretixpresale/event/order_modify.html:8
#, python-format
msgid "Modify order: %(code)s"
-msgstr ""
+msgstr "Muuta tilausta: %(code)s"
#: pretix/presale/templates/pretixpresale/event/order_modify.html:18
msgid ""
"Modifying your invoice address will not automatically generate a new "
"invoice. Please contact us if you need a new invoice."
msgstr ""
+"Laskun osoitteen muuttaminen ei luo automaattisesti uutta laskua. Ota meihin "
+"yhteyttä, jos tarvitset uuden laskun."
#: pretix/presale/templates/pretixpresale/event/order_modify.html:87
#: pretix/presale/templates/pretixpresale/event/position_modify.html:49
msgid "Save changes"
-msgstr ""
+msgstr "Tallenna muutokset"
#: pretix/presale/templates/pretixpresale/event/order_pay_change.html:6
msgid "Change payment method"
-msgstr ""
+msgstr "Vaihda maksutapa"
#: pretix/presale/templates/pretixpresale/event/order_pay_change.html:13
#, python-format
msgid "Choose payment method: %(code)s"
-msgstr ""
+msgstr "Valitse maksutapa: %(code)s"
#: pretix/presale/templates/pretixpresale/event/order_pay_change.html:19
msgid ""
"Please note: If you change your payment method, your order total will change "
"by the amount displayed to the right of each method."
msgstr ""
+"Huomio: Jos vaihdat maksutapaa, tilauksesi loppusumma muuttuu kunkin "
+"maksutavan oikealla puolella näkyvän summan verran."
#: pretix/presale/templates/pretixpresale/event/order_pay_change.html:52
msgid "There are no alternative payment providers available for this order."
msgstr ""
+"Tälle tilaukselle ei ole saatavilla vaihtoehtoisia maksupalveluntarjoajia."
#: pretix/presale/templates/pretixpresale/event/order_pay_confirm.html:16
msgid "Please confirm the following payment details."
-msgstr ""
+msgstr "Vahvista seuraavat maksutiedot."
#: pretix/presale/templates/pretixpresale/event/order_pay_confirm.html:22
#, python-format
@@ -31195,19 +31218,19 @@ msgstr "Summa: %(total)s"
#: pretix/presale/templates/pretixpresale/event/position.html:7
msgid "Registration details"
-msgstr ""
+msgstr "Ilmoittautumistiedot"
#: pretix/presale/templates/pretixpresale/event/position.html:10
msgid "Your registration"
-msgstr ""
+msgstr "Ilmoittautumisesi"
#: pretix/presale/templates/pretixpresale/event/position.html:31
msgid "Your items"
-msgstr ""
+msgstr "Tuotteesi"
#: pretix/presale/templates/pretixpresale/event/position.html:46
msgid "Additional information"
-msgstr ""
+msgstr "Lisätiedot"
#: pretix/presale/templates/pretixpresale/event/position.html:51
#, python-format
@@ -31215,19 +31238,21 @@ msgid ""
"This order is managed for you by %(email)s. Please contact them for any "
"questions regarding payment, cancellation or changes to this order."
msgstr ""
+"Tätä tilausta käsittelee %(email)s. Ole hyvä ja ota heihin yhteyttä "
+"tilauksen laskutusta, peruutusta tai muutoksia koskevissa asioissa."
#: pretix/presale/templates/pretixpresale/event/position.html:63
-#, fuzzy
-#| msgid "Change your information"
msgctxt "action"
msgid "Change your ticket"
-msgstr "Muuta tietojasi"
+msgstr "Muuta lippusi"
#: pretix/presale/templates/pretixpresale/event/position.html:68
msgid ""
"If you want to make changes to the components of your ticket, you can click "
"on the following button."
msgstr ""
+"Jos haluat tehdä muutoksia lippusi yksityiskohtiin, voit klikata seuraavaa "
+"painiketta."
#: pretix/presale/templates/pretixpresale/event/position.html:73
#, python-format
@@ -31236,38 +31261,36 @@ msgid ""
"changes, please get in touch with the person who bought the ticket "
"(%(email)s)."
msgstr ""
+"Voit tehdä joitakin muutoksia tähän lippuun vain itse. Muita muutoksia "
+"varten ota yhteyttä lipun ostaneeseen henkilöön %(email)s."
#: pretix/presale/templates/pretixpresale/event/position.html:82
#: pretix/presale/templates/pretixpresale/event/position_change.html:5
#: pretix/presale/templates/pretixpresale/event/position_change.html:10
#: pretix/presale/templates/pretixpresale/event/position_change_confirm.html:6
#: pretix/presale/templates/pretixpresale/event/position_change_confirm.html:11
-#, fuzzy
-#| msgid "Change history"
msgid "Change ticket"
-msgstr "Muutoshistoria"
+msgstr "Muuta lippu"
#: pretix/presale/templates/pretixpresale/event/position_change.html:16
msgid ""
"Please select the desired changes to your ticket. Note that you can only "
"perform changes that do not change the total price of the ticket."
msgstr ""
+"Valitse haluamasi muutokset lippuusi. Huomaa, että voit tehdä vain sellaisia "
+"muutoksia, jotka eivät muuta lipun kokonaishintaa."
#: pretix/presale/templates/pretixpresale/event/position_change_confirm.html:19
-#, fuzzy
msgid "Please confirm the following changes to your ticket."
-msgstr "Ole hyvä ja tarkasta tilauksen tiedot alta ja vahvista tilaus."
+msgstr "Vahvista seuraavat muutokset lippuusi."
#: pretix/presale/templates/pretixpresale/event/position_modify.html:5
#: pretix/presale/templates/pretixpresale/event/position_modify.html:8
-#, fuzzy
-#| msgid "Modify payment"
msgid "Modify ticket"
-msgstr "Muuta maksua"
+msgstr "Muuta lippua"
#: pretix/presale/templates/pretixpresale/event/resend_link.html:4
#: pretix/presale/templates/pretixpresale/event/resend_link.html:11
-#, fuzzy
msgid "Resend order links"
msgstr "Lähetä tilauslinkit uudelleen"
@@ -31277,23 +31300,27 @@ msgid ""
"you used for your order. We will send you an email with links to all orders "
"you placed using this email address."
msgstr ""
+"Jos olet kadottanut linkin tilaukseesi tai tilauksiisi, anna "
+"sähköpostiosoite, jota käytit tilauksen tekemiseen. Lähetämme sinulle "
+"sähköpostin, jossa on linkit kaikkiin tilauksiin, jotka teit tällä "
+"sähköpostiosoitteella."
#: pretix/presale/templates/pretixpresale/event/resend_link.html:30
msgid "Send links"
-msgstr ""
+msgstr "Lähetä linkit"
#: pretix/presale/templates/pretixpresale/event/timemachine.html:10
#: pretix/presale/templates/pretixpresale/event/timemachine.html:15
msgid "Time machine"
-msgstr ""
+msgstr "Aikakone"
#: pretix/presale/templates/pretixpresale/event/timemachine.html:22
msgid "Test your shop as if it were a different date and time."
-msgstr ""
+msgstr "Testaa liikettäsi ikään kuin se olisi eri päivämäärä ja kellonaika."
#: pretix/presale/templates/pretixpresale/event/timemachine.html:30
msgid "Enable time machine"
-msgstr ""
+msgstr "Salli aikakone"
#: pretix/presale/templates/pretixpresale/event/voucher.html:9
#: pretix/presale/templates/pretixpresale/event/voucher.html:17
@@ -31301,43 +31328,48 @@ msgstr ""
#: pretix/presale/templates/pretixpresale/event/voucher.html:36
#: pretix/presale/templates/pretixpresale/event/voucher_form.html:9
msgid "Voucher redemption"
-msgstr ""
+msgstr "Kupongin lunastaminen"
#: pretix/presale/templates/pretixpresale/event/voucher.html:20
msgid "This voucher is valid only for the following specific date and time."
msgstr ""
+"Tämä kuponki on voimassa ainoastaan seuraavana tiettynä päivänä ja aikana."
#: pretix/presale/templates/pretixpresale/event/voucher.html:43
msgid ""
"For the selected date, there are currently no products available that can be "
"bought with this voucher. Please try a different date or a different voucher."
msgstr ""
+"Valittuna aikana ei ole tällä hetkellä tuotteita saatavilla tällä "
+"kupongilla. Kokeile eri aikaa tai kuponkia."
#: pretix/presale/templates/pretixpresale/event/voucher.html:47
msgid ""
"There are currently no products available that can be bought with this "
"voucher."
-msgstr ""
+msgstr "Tuotteita ei ole saatavilla tällä hetkellä tällä kupongilla."
#: pretix/presale/templates/pretixpresale/event/voucher.html:52
msgid ""
"You entered a voucher code that allows you to buy one of the following "
"products at the specified price:"
msgstr ""
+"Syötit kuponkikoodin, jolla voit ostaa yhden seuraavista tuotteista tiettyyn "
+"hintaan:"
#: pretix/presale/templates/pretixpresale/event/voucher.html:113
#, python-format
msgid "from %(minprice)s"
-msgstr ""
+msgstr "alkaen %(minprice)s"
#: pretix/presale/templates/pretixpresale/event/voucher.html:429
#, python-format
msgid "You need to select at least %(number)s products."
-msgstr ""
+msgstr "Sinun täytyy valita ainakin %(number)s tuotetta."
#: pretix/presale/templates/pretixpresale/event/waitinglist.html:5
msgid "Add me to the waiting list"
-msgstr ""
+msgstr "Lisätkää minut odotuslistalle"
#: pretix/presale/templates/pretixpresale/event/waitinglist.html:22
#, python-format
@@ -31346,6 +31378,10 @@ msgid ""
"waiting list. If we notify you, you'll have %(hours)s hours time to buy a "
"ticket until we assign it to the next person on the list."
msgstr ""
+"Jos lippuja vapautuu uudelleen, ilmoitamme asiasta jonotuslistan "
+"ensimmäisille henkilöille. Jos saat meiltä viestin, sinulla on %(hours)s "
+"tuntia aikaa ostaa lippu ennen kuin annamme sen seuraavalle henkilölle "
+"listalla."
#: pretix/presale/templates/pretixpresale/event/waitinglist.html:28
msgid ""
@@ -31353,6 +31389,9 @@ msgid ""
"you need to add yourself to the waiting list multiple times. There is no "
"guarantee that you will receive a certain number of tickets."
msgstr ""
+"Huomaa, että saat vain yhden lipun. Jos tarvitset useita lippuja, sinun on "
+"lisättävä itsesi jonotuslistalle useita kertoja. Emme voi taata, että saat "
+"tietyn määrän lippuja."
#: pretix/presale/templates/pretixpresale/event/waitinglist.html:32
msgid ""
@@ -31361,6 +31400,9 @@ msgid ""
"email addresses. There is no guarantee that you will receive a certain "
"number of tickets."
msgstr ""
+"Huomaa, että saat vain yhden lipun. Jos tarvitset useita lippuja, sinun on "
+"lisättävä itsesi odotuslistalle useita kertoja eri sähköpostiosoitteilla. "
+"Emme voi taata, että saat tietyn määrän lippuja."
#: pretix/presale/templates/pretixpresale/event/waitinglist.html:38
msgid ""
@@ -31368,14 +31410,16 @@ msgid ""
"been added to the waiting list. We will only contact you once a spot opens "
"up."
msgstr ""
+"Sinulle ei lähetetä vahvistussähköpostia odotuslistalle "
+"lisäämisen jälkeen. Otamme yhteyttä ainoastaan, kun paikka vapautuu."
#: pretix/presale/templates/pretixpresale/event/waitinglist.html:44
msgid "Add me to the list"
-msgstr ""
+msgstr "Lisätkää minut listaan"
#: pretix/presale/templates/pretixpresale/event/waitinglist_remove.html:5
msgid "Remove me from the waiting list"
-msgstr ""
+msgstr "Poistakaa minut odotuslistalta"
#: pretix/presale/templates/pretixpresale/event/waitinglist_remove.html:9
msgid ""
@@ -31383,59 +31427,54 @@ msgid ""
"need the ticket any more, please be so kind and remove your ticket from the "
"list so we can pass it on to the next person waiting as quickly as possible!"
msgstr ""
+"Sinut on valittu jonotuslistaltamme ostamaan lippu. Jos et enää tarvitse "
+"lippua, ole ystävällinen ja poista lippusi listalta, jotta voimme siirtää "
+"sen seuraavalle odottajalle mahdollisimman nopeasti!"
#: pretix/presale/templates/pretixpresale/event/waitinglist_remove.html:16
msgctxt "waitinglist"
msgid "Yes, remove my ticket"
-msgstr ""
+msgstr "Kyllä, poistakaa lippuni"
#: pretix/presale/templates/pretixpresale/fragment_calendar.html:6
-#, fuzzy
msgid "Calendar"
-msgstr "Lisää kalenteriin"
+msgstr "Kalenteri"
#: pretix/presale/templates/pretixpresale/fragment_calendar.html:29
-#, fuzzy, python-format
-#| msgid "Upcoming events"
+#, python-format
msgid "%(count)s event"
msgid_plural "%(count)s events"
-msgstr[0] "Tulevat tapahtumat"
-msgstr[1] "Tulevat tapahtumat"
+msgstr[0] "%(count)s tapahtuma"
+msgstr[1] "%(count)s tapahtumat"
#: pretix/presale/templates/pretixpresale/fragment_calendar.html:68
#: pretix/presale/templates/pretixpresale/fragment_day_calendar.html:65
#: pretix/presale/templates/pretixpresale/fragment_week_calendar.html:37
-#, fuzzy
-#| msgid "Continue"
msgid "(continued)"
-msgstr "Jatka"
+msgstr "(jatkuu)"
#: pretix/presale/templates/pretixpresale/fragment_calendar.html:77
#: pretix/presale/templates/pretixpresale/fragment_week_calendar.html:46
msgctxt "timerange"
msgid "until"
-msgstr ""
+msgstr "asti"
#: pretix/presale/templates/pretixpresale/fragment_calendar.html:88
#: pretix/presale/templates/pretixpresale/fragment_day_calendar.html:93
#: pretix/presale/templates/pretixpresale/fragment_event_list_status.html:13
#: pretix/presale/templates/pretixpresale/fragment_week_calendar.html:57
#: pretix/presale/views/widget.py:411
-#, fuzzy
-#| msgid "Show number of tickets left"
msgid "Few tickets left"
-msgstr "Näytä jäljellä olevien lippujen määrä"
+msgstr "Muutama lippu jäljellä"
#: pretix/presale/templates/pretixpresale/fragment_calendar.html:91
#: pretix/presale/templates/pretixpresale/fragment_day_calendar.html:96
#: pretix/presale/templates/pretixpresale/fragment_event_list_status.html:18
#: pretix/presale/templates/pretixpresale/fragment_week_calendar.html:60
#: pretix/presale/views/widget.py:416
-#, fuzzy
-#| msgid "Pay now"
msgctxt "available_event_in_list"
msgid "Buy now"
-msgstr "Maksa nyt"
+msgstr "Osta nyt"
#: pretix/presale/templates/pretixpresale/fragment_calendar.html:93
#: pretix/presale/templates/pretixpresale/fragment_calendar.html:108
@@ -31464,6 +31503,10 @@ msgid ""
" from %(start_date)s\n"
" "
msgstr ""
+"\n"
+" %(start_date)s "
+"alkaen\n"
+" "
#: pretix/presale/templates/pretixpresale/fragment_calendar_nav.html:12
msgid "Week"
@@ -31479,15 +31522,14 @@ msgid "iCal"
msgstr "iCal"
#: pretix/presale/templates/pretixpresale/fragment_day_calendar.html:24
-#, fuzzy
msgctxt "day calendar"
msgid "Single events"
-msgstr "Tulevat tapahtumat"
+msgstr "Yksittäiset tapahtumat"
#: pretix/presale/templates/pretixpresale/fragment_day_calendar.html:78
msgctxt "timerange"
msgid "to"
-msgstr ""
+msgstr "_"
#: pretix/presale/templates/pretixpresale/fragment_day_calendar.html:119
#, python-format
@@ -31496,6 +31538,9 @@ msgid ""
" from %(start_date)s\n"
" "
msgstr ""
+"\n"
+" %(start_date)s alkaen\n"
+" "
#: pretix/presale/templates/pretixpresale/fragment_event_list_status.html:51
msgid "Not yet on sale"
@@ -31508,7 +31553,7 @@ msgstr "Myynti alkaa %(date)s"
#: pretix/presale/templates/pretixpresale/fragment_login_status.html:5
msgid "customer account"
-msgstr ""
+msgstr "asiakastili"
#: pretix/presale/templates/pretixpresale/fragment_login_status.html:8
#: pretix/presale/templates/pretixpresale/fragment_login_status.html:9
@@ -31517,59 +31562,60 @@ msgstr "Näytä asiakastili"
#: pretix/presale/templates/pretixpresale/fragment_modals.html:15
msgid "We've started the requested process in a new window."
-msgstr ""
+msgstr "Olemme aloittaneet pyydetyn prosessin uudessa ikkunassa."
#: pretix/presale/templates/pretixpresale/fragment_modals.html:18
msgid "If you do not see the new window, we can help you launch it again."
-msgstr ""
+msgstr "Jos et näe uutta ikkunaa, voimme autta käynnistämään sen uudelleen."
#: pretix/presale/templates/pretixpresale/fragment_modals.html:23
msgid "Open window again"
-msgstr ""
+msgstr "Avaa ikkuna uudelleen"
#: pretix/presale/templates/pretixpresale/fragment_modals.html:27
msgid ""
"Once the process in the new window has been completed, you can continue here."
-msgstr ""
+msgstr "Kun prosessi uudessa ikkunassa on valmis, voit jatkaa tästä."
#: pretix/presale/templates/pretixpresale/fragment_modals.html:69
msgid "Adjust settings in detail"
-msgstr ""
+msgstr "Säädä asetuksia tarkemmin"
#: pretix/presale/templates/pretixpresale/fragment_modals.html:74
msgid "Required cookies"
-msgstr ""
+msgstr "Vaadittavat evästeet"
#: pretix/presale/templates/pretixpresale/fragment_modals.html:76
msgid ""
"Functional cookies (e.g. shopping cart, login, payment, language preference) "
"and technical cookies (e.g. security purposes)"
msgstr ""
+"Toiminnalliset evästeet (esim. ostoskärry, sisäänkirjautuminen, kielivalinta)"
+" ja tekniset evästeet (esim. turvallisuustarkoitukset)"
#: pretix/presale/templates/pretixpresale/fragment_modals.html:89
msgctxt "cookie_usage"
msgid "Functionality"
-msgstr ""
+msgstr "Toiminnallisuus"
#: pretix/presale/templates/pretixpresale/fragment_modals.html:91
msgctxt "cookie_usage"
msgid "Analytics"
-msgstr ""
+msgstr "Analytiikka"
#: pretix/presale/templates/pretixpresale/fragment_modals.html:93
msgctxt "cookie_usage"
msgid "Marketing"
-msgstr ""
+msgstr "Markkinointi"
#: pretix/presale/templates/pretixpresale/fragment_modals.html:95
msgctxt "cookie_usage"
msgid "Social features"
-msgstr ""
+msgstr "Sosiaaliset toiminnot"
#: pretix/presale/templates/pretixpresale/fragment_modals.html:114
-#, fuzzy
msgid "Save selection"
-msgstr "Poista valitut käytöstä"
+msgstr "Tallenna valinta"
#: pretix/presale/templates/pretixpresale/fragment_week_calendar.html:82
#, python-format
@@ -31578,10 +31624,13 @@ msgid ""
" from %(start_date)s\n"
" "
msgstr ""
+"\n"
+" %(start_date)s alkaen\n"
+" "
#: pretix/presale/templates/pretixpresale/index.html:7
msgid "Hello!"
-msgstr ""
+msgstr "Hei!"
#: pretix/presale/templates/pretixpresale/index.html:9
#, python-format
@@ -32149,8 +32198,9 @@ msgid "Write access"
msgstr ""
#: pretix/settings.py:802
+#, fuzzy
msgid "Kosovo"
-msgstr ""
+msgstr "Kosovo"
#~ msgid "Show info text if unavailable"
#~ msgstr "Näytä tietoteksti, jos se ei ole käytettävissä"
From 373f9e666fedcc760cf317cc874895c5be831bab Mon Sep 17 00:00:00 2001
From: Johanna Ketola
Date: Thu, 6 Feb 2025 12:08:23 +0000
Subject: [PATCH 30/99] Translations: Update Finnish
Currently translated at 36.9% (2159 of 5846 strings)
Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/fi/
powered by weblate
---
src/pretix/locale/fi/LC_MESSAGES/django.po | 142 ++++++++++++++-------
1 file changed, 98 insertions(+), 44 deletions(-)
diff --git a/src/pretix/locale/fi/LC_MESSAGES/django.po b/src/pretix/locale/fi/LC_MESSAGES/django.po
index 3f82355969..b1c730450a 100644
--- a/src/pretix/locale/fi/LC_MESSAGES/django.po
+++ b/src/pretix/locale/fi/LC_MESSAGES/django.po
@@ -9,7 +9,7 @@ msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-01-29 13:18+0000\n"
"PO-Revision-Date: 2025-02-06 18:00+0000\n"
-"Last-Translator: Karoliina Grohn \n"
+"Last-Translator: Johanna Ketola \n"
"Language-Team: Finnish \n"
"Language: fi\n"
@@ -6612,12 +6612,12 @@ msgstr ""
"tarkoitus varata lippuja."
#: pretix/base/models/vouchers.py:367
-#, fuzzy, python-format
+#, python-format
msgid ""
"This voucher has already been redeemed %(redeemed)s times. You cannot reduce "
"the maximum number of usages below this number."
msgstr ""
-"Tämä kuponki on jo lunastettu %(redeemed) kertaa. Et voi vähentää "
+"Tämä kuponki on jo lunastettu %(redeemed)s kertaa. Et voi vähentää "
"käyttökertojen enimmäismäärää alle tämän määrän."
#: pretix/base/models/vouchers.py:376
@@ -7237,7 +7237,7 @@ msgstr "Matti Meikäläinen"
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:186
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:189
msgid "Attendee company"
-msgstr ""
+msgstr "Osallistujan yritys"
#: pretix/base/pdf.py:178 pretix/base/pdf.py:336
#: pretix/base/services/tickets.py:119 pretix/control/views/pdf.py:111
@@ -7284,7 +7284,7 @@ msgstr "Osallistujan maa"
#: pretix/base/pdf.py:219
msgid "Pseudonymization ID (lead scanning)"
-msgstr ""
+msgstr "Pseudonymisointitunnus (liidien skannaus)"
#: pretix/base/pdf.py:225 pretix/base/pdf.py:230
msgid "Sample event name"
@@ -7427,7 +7427,7 @@ msgstr "Järjestäjän nimi"
#: pretix/base/pdf.py:373
msgid "Event organizer company"
-msgstr ""
+msgstr "Tapahtuman järjestäjäyritys"
#: pretix/base/pdf.py:377
msgid "Organizer info text"
@@ -7491,7 +7491,7 @@ msgstr "Voimassaolon päättyminen"
#: pretix/base/pdf.py:483
msgid "Reusable Medium ID"
-msgstr ""
+msgstr "Uudelleenkäytettävä mediatunnus"
#: pretix/base/pdf.py:488
msgid "Seat: Full name"
@@ -7504,7 +7504,7 @@ msgstr "Ensimmäinen kerros, rivi 3, istuin 4"
#: pretix/base/pdf.py:491 pretix/base/pdf.py:497
#: pretix/control/forms/orders.py:330
msgid "General admission"
-msgstr ""
+msgstr "Yleinen sisäänpääsy"
#: pretix/base/pdf.py:494
msgid "Seat: zone"
@@ -7524,11 +7524,11 @@ msgstr "Istuin: istuin numero"
#: pretix/base/pdf.py:510
msgid "Date and time of first scan"
-msgstr ""
+msgstr "Ensimmäisen skannauksen päivämäärä ja aika"
#: pretix/base/pdf.py:516
msgid "Gift card: Issuance date"
-msgstr ""
+msgstr "Lahjakortti: Myöntämispäivämäärä"
#: pretix/base/pdf.py:521
msgid "Gift card: Expiration date"
@@ -7563,7 +7563,7 @@ msgstr "hra Meikäläinen"
#: pretix/plugins/ticketoutputpdf/exporters.py:99
#, python-brace-format
msgid "Attendee name: {part}"
-msgstr ""
+msgstr "Osallistujan nimi: {part}"
#: pretix/base/pdf.py:671
msgid "Invoice address name for salutation"
@@ -7572,11 +7572,11 @@ msgstr "Laskutusosoitteen nimi tervehdyksessä"
#: pretix/base/pdf.py:678
#, python-brace-format
msgid "Invoice address name: {part}"
-msgstr ""
+msgstr "Nimi laskutusosoitteessa: {part}"
#: pretix/base/pdf.py:1274
msgid "Your layout file is not a valid layout. Error message: {}"
-msgstr ""
+msgstr "Asettelutiedostosi asettelu ei ole kelvollinen. Virheilmoitus: {}"
#: pretix/base/reldate.py:35
msgid "Event start"
@@ -7588,49 +7588,52 @@ msgstr "Tapahtuma päättyy"
#: pretix/base/reldate.py:37
msgid "Event admission"
-msgstr ""
+msgstr "Tapahtuman sisäänpääsy"
#: pretix/base/reldate.py:38
msgid "Presale start"
-msgstr ""
+msgstr "Ennakkomyynnin alku"
#: pretix/base/reldate.py:39
msgid "Presale end"
-msgstr ""
+msgstr "Ennakkomyynnin loppu"
#: pretix/base/reldate.py:183
msgid "before"
-msgstr ""
+msgstr "ennen"
#: pretix/base/reldate.py:184
msgid "after"
-msgstr ""
+msgstr "jälkeen"
#: pretix/base/reldate.py:292 pretix/base/reldate.py:456
msgid "Fixed date:"
-msgstr ""
+msgstr "Kiinteä päivämäärä:"
#: pretix/base/reldate.py:293 pretix/base/reldate.py:457
msgid "Relative date:"
-msgstr ""
+msgstr "Suhteellinen päivämäärä:"
#: pretix/base/reldate.py:294
msgid "Relative time:"
-msgstr ""
+msgstr "Suhteellinen aika:"
#: pretix/base/reldate.py:302 pretix/base/reldate.py:460
msgid "Not set"
-msgstr ""
+msgstr "Ei asetettu"
#: pretix/base/secrets.py:119
msgid "Random (default, works with all pretix apps)"
-msgstr ""
+msgstr "Satunnainen (oletusarvo, toimii kaikkien pretix-sovellusten kanssa)"
#: pretix/base/secrets.py:150
msgid ""
"pretix signature scheme 1 (for very large events, changes semantics of "
"offline scanning – please refer to documentation or support for details)"
msgstr ""
+"pretix-allekirjoitusjärjestelmä 1 (hyvin suurille tapahtumille, muuttaa "
+"offline-skannauksen semantiikkaa – katso lisätietoja dokumentaatiosta tai "
+"tuesta)"
#: pretix/base/services/cancelevent.py:229
#: pretix/base/services/cancelevent.py:287
@@ -7643,35 +7646,41 @@ msgid ""
"We were not able to process your request completely as the server was too "
"busy. Please try again."
msgstr ""
+"Emme pystyneet käsittelemään pyyntöäsi kokonaan, koska palvelimella oli "
+"ruuhkaa. Yritä uudelleen."
#: pretix/base/services/cart.py:104 pretix/presale/views/cart.py:260
msgid "You did not select any products."
-msgstr ""
+msgstr "Et ole valinnut yhtään tuotetta."
#: pretix/base/services/cart.py:105
msgid "Unknown cart position."
-msgstr ""
+msgstr "Tuntematon ostoskorin sijainti."
#: pretix/base/services/cart.py:106
msgctxt "subevent"
msgid "No date was specified."
-msgstr ""
+msgstr "Päivämäärää ei ilmoitettu."
#: pretix/base/services/cart.py:107 pretix/base/services/orders.py:187
msgid "You selected a product which is not available for sale."
-msgstr ""
+msgstr "Valitsit tuotteen, joka ei ole myynnissä."
#: pretix/base/services/cart.py:109
msgid ""
"Some of the products you selected are no longer available. Please see below "
"for details."
msgstr ""
+"Osa valitsemistasi tuotteista ei ole enää saatavilla. Katso alla olevat "
+"tiedot."
#: pretix/base/services/cart.py:113
msgid ""
"Some of the products you selected are no longer available in the quantity "
"you selected. Please see below for details."
msgstr ""
+"Joitakin valitsemiasi tuotteita ei ole enää saatavilla valitsemaasi määrää. "
+"Katso alla olevat tiedot."
#: pretix/base/services/cart.py:117
#, python-format
@@ -7679,6 +7688,8 @@ msgid ""
"Some of the products you selected are no longer available. The following "
"products are affected and have not been added to your cart: %s"
msgstr ""
+"Osa valitsemistasi tuotteista ei ole enää saatavilla. Koskee seuraavia "
+"tuotteita, joita ei ole lisätty ostoskoriin: %s"
#: pretix/base/services/cart.py:121
#, python-format
@@ -7687,6 +7698,8 @@ msgid ""
"you selected. The following products are affected and have not been added to "
"your cart: %s"
msgstr ""
+"Joitakin valitsemiasi tuotteita ei ole enää saatavilla valitsemaasi määrää. "
+"Koskee seuraavia tuotteita, joita ei ole lisätty ostoskoriin: %s"
#: pretix/base/services/cart.py:126
#, python-format
@@ -7700,16 +7713,16 @@ msgstr[1] "Et voi valita enempää kuin %s tuotetta per tilaus."
msgid "You cannot select more than %(max)s item of the product %(product)s."
msgid_plural ""
"You cannot select more than %(max)s items of the product %(product)s."
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "Tuotetta %(product)s ei voi valita useampaa kuin %(max)s."
+msgstr[1] "Tuotteita %(product)s ei voi valita useampia kuin %(max)s."
#: pretix/base/services/cart.py:135 pretix/base/services/orders.py:1544
#, python-format
msgid "You need to select at least %(min)s item of the product %(product)s."
msgid_plural ""
"You need to select at least %(min)s items of the product %(product)s."
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "Tuotetta %(product)s on valittava vähintään %(min)s"
+msgstr[1] "Tuotteita %(product)s on valittava vähintään %(min)s"
#: pretix/base/services/cart.py:140
#, python-format
@@ -7720,7 +7733,11 @@ msgid_plural ""
"We removed %(product)s from your cart as you can not buy less than %(min)s "
"items of it."
msgstr[0] ""
+"Poistimme ostoskoristasi tuotteen %(product)s, koska et voi ostaa niitä "
+"vähempää kuin %(min)s."
msgstr[1] ""
+"Poistimme ostoskoristasi tuotteet %(product)s, koska et voi ostaa niitä "
+"vähempää kuin %(min)s."
#: pretix/base/services/cart.py:144 pretix/base/services/orders.py:153
#: pretix/presale/templates/pretixpresale/event/index.html:167
@@ -7737,30 +7754,36 @@ msgid ""
"All payments for this event need to be confirmed already, so no new orders "
"can be created."
msgstr ""
+"Kaikki maksut tähän tapahtumaan on jo vahvistettava, joten uusia tilauksia "
+"ei voida tehdä."
#: pretix/base/services/cart.py:148
msgid ""
"The booking period for this event has not yet started. The affected "
"positions have been removed from your cart."
msgstr ""
+"Tämän tapahtuman varausaika ei ole vielä alkanut. Paikat, joihin tämä "
+"vaikuttaa, on poistettu ostoskorista."
#: pretix/base/services/cart.py:151 pretix/base/services/orders.py:181
msgid ""
"The booking period for one of the events in your cart has ended. The "
"affected positions have been removed from your cart."
msgstr ""
+"Jonkin ostoskorissasi olevan tapahtuman varausaika on päättynyt. Paikat, "
+"joihin tämä vaikuttaa, on poistettu ostoskoristasi."
#: pretix/base/services/cart.py:153
msgid "The entered price is not a number."
-msgstr ""
+msgstr "Syötetty hinta ei ole numero."
#: pretix/base/services/cart.py:154
msgid "The entered price is to high."
-msgstr ""
+msgstr "Syötetty hinta on liian korkea."
#: pretix/base/services/cart.py:155
msgid "This voucher code is not known in our database."
-msgstr ""
+msgstr "Tätä kuponkikoodia ei tunneta tietokannassamme."
#: pretix/base/services/cart.py:157 pretix/base/services/orders.py:156
#, python-format
@@ -7771,7 +7794,11 @@ msgid_plural ""
"The voucher code \"%(voucher)s\" can only be used if you select at least "
"%(number)s matching products."
msgstr[0] ""
+"Kuponkikoodia ”%(voucher)s” voi käyttää vain, jos valitset vähintään "
+"%(number)s vastaavan tuotteen."
msgstr[1] ""
+"Kuponkikoodia ”%(voucher)s” voi käyttää vain, jos valitset vähintään "
+"%(number)s vastaavaa tuotetta."
#: pretix/base/services/cart.py:162
#, python-format
@@ -7784,12 +7811,18 @@ msgid_plural ""
"%(number)s matching products. We have therefore removed some positions from "
"your cart that can no longer be purchased like this."
msgstr[0] ""
+"Kuponkikoodia ”%(voucher)s” voi käyttää vain, jos valitset vähintään "
+"%(number)s vastaavan tuotteen. Olemme siksi poistaneet ostoskoristasi "
+"joitakin paikkoja, joita ei voi enää ostaa tällä tavalla."
msgstr[1] ""
+"Kuponkikoodia ”%(voucher)s” voi käyttää vain, jos valitset vähintään "
+"%(number)s vastaavaa tuotetta. Olemme siksi poistaneet ostoskoristasi "
+"joitakin paikkoja, joita ei voi enää ostaa tällä tavalla."
#: pretix/base/services/cart.py:168
msgid ""
"This voucher code has already been used the maximum number of times allowed."
-msgstr ""
+msgstr "Tämän kuponkikoodin käyttökertojen enimmäismäärä on tullut täyteen."
#: pretix/base/services/cart.py:170
#, python-format
@@ -7799,35 +7832,43 @@ msgid ""
"or that you tried to redeem it before but did not complete the checkout "
"process. You can try to use it again in %d minutes."
msgstr ""
+"Tämä kuponkikoodi on tällä hetkellä lukittu, koska se on jo ostoskorissa. "
+"Tämä saattaa tarkoittaa, että joku muu on lunastamassa tätä kuponkia juuri "
+"nyt tai että olet yrittänyt lunastaa sen jo aiemmin, mutta et saanut "
+"maksuprosessia päätökseen. Voit yrittää käyttää sitä uudelleen %d minuutin "
+"kuluttua."
#: pretix/base/services/cart.py:175
#, python-format
msgid "This voucher code can only be redeemed %d more times."
-msgstr ""
+msgstr "Tämä kuponkikoodi voidaan lunastaa enää %d kertaa."
#: pretix/base/services/cart.py:176
msgid ""
"Applying a voucher to the whole cart should not be combined with other "
"operations."
msgstr ""
+"Koko ostoskoriin kohdistuvaa kuponkia ei saa yhdistää muihin toimenpiteisiin."
#: pretix/base/services/cart.py:178
msgid ""
"You already used this voucher code. Remove the associated line from your "
"cart if you want to use it for a different product."
msgstr ""
+"Olet jo käyttänyt tämän kuponkikoodin. Poista siihen liittyvä rivi "
+"ostoskoristasi, jos haluat käyttää sitä toiseen tuotteeseen."
#: pretix/base/services/cart.py:181
msgid "This voucher is expired."
-msgstr ""
+msgstr "Tämä kuponki on vanhentunut."
#: pretix/base/services/cart.py:182
msgid "This voucher is not valid for this product."
-msgstr ""
+msgstr "Tätä kuponkia ei voi käyttää tähän tuotteeseen."
#: pretix/base/services/cart.py:183
msgid "This voucher is not valid for this seat."
-msgstr ""
+msgstr "Tämä kuponki ei ole voimassa tälle istumapaikalle."
#: pretix/base/services/cart.py:185
msgid ""
@@ -7835,32 +7876,37 @@ msgid ""
"for. If you want to add something new to your cart using that voucher, you "
"can do so with the voucher redemption option on the bottom of the page."
msgstr ""
+"Emme löytäneet ostoskoristasi mitään paikkaa, johon voisimme käyttää tämän "
+"kupongin. Jos haluat lisätä jotain uutta ostoskoriin käyttäen kyseistä "
+"kuponkia, voit tehdä sen sivun alareunassa olevan kupongin "
+"lunastusvaihtoehdon avulla."
#: pretix/base/services/cart.py:190
msgid "Your voucher is valid for a product that is currently not for sale."
msgstr ""
+"Kuponkisi voidaan käyttää tuotteeseen, joka ei ole tällä hetkellä myynnissä."
#: pretix/base/services/cart.py:191
msgctxt "subevent"
msgid "This voucher is not valid for this event date."
-msgstr ""
+msgstr "Tätä kuponkia ei käy tähän tapahtumapäivään."
#: pretix/base/services/cart.py:192
msgid "You need a valid voucher code to order this product."
-msgstr ""
+msgstr "Tarvitset voimassa olevan kuponkikoodin tilataksesi tämän tuotteen."
#: pretix/base/services/cart.py:193
msgctxt "subevent"
msgid "The selected event date is not active."
-msgstr ""
+msgstr "Valittu tapahtumapäivä ei ole aktiivinen."
#: pretix/base/services/cart.py:194 pretix/base/services/orders.py:188
msgid "You can not select an add-on for the selected product."
-msgstr ""
+msgstr "Et voi valita lisäosaa valitulle tuotteelle."
#: pretix/base/services/cart.py:195 pretix/base/services/orders.py:189
msgid "You can not select two variations of the same add-on product."
-msgstr ""
+msgstr "Et voi valita kahta muunnelmaa samasta lisätuotteesta."
#: pretix/base/services/cart.py:197 pretix/base/services/orders.py:191
#, python-format
@@ -7871,7 +7917,11 @@ msgid_plural ""
"You can select at most %(max)s add-ons from the category %(cat)s for the "
"product %(base)s."
msgstr[0] ""
+"Voit valita enintään %(max)s lisäosan kategoriasta %(cat)s tuotteelle "
+"%(base)s."
msgstr[1] ""
+"Voit valita enintään %(max)s lisäosaa kategoriasta %(cat)s tuotteelle "
+"%(base)s."
#: pretix/base/services/cart.py:202 pretix/base/services/orders.py:196
#, python-format
@@ -7882,7 +7932,11 @@ msgid_plural ""
"You need to select at least %(min)s add-ons from the category %(cat)s for "
"the product %(base)s."
msgstr[0] ""
+"Sinun on valittava vähintään %(min)s lisäosa kategoriasta %(cat)s tuotteelle "
+"%(base)s."
msgstr[1] ""
+"Sinun on valittava vähintään %(min)s lisäosaa kategoriasta %(cat)s "
+"tuotteelle %(base)s."
#: pretix/base/services/cart.py:206 pretix/base/services/orders.py:200
#, python-format
From a1d6d636a8368e2add843b828e57f906dae75465 Mon Sep 17 00:00:00 2001
From: Hannu Kaakinen
Date: Thu, 6 Feb 2025 09:57:28 +0000
Subject: [PATCH 31/99] Translations: Update Finnish
Currently translated at 36.9% (2159 of 5846 strings)
Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/fi/
powered by weblate
---
src/pretix/locale/fi/LC_MESSAGES/django.po | 23 ++++++++++------------
1 file changed, 10 insertions(+), 13 deletions(-)
diff --git a/src/pretix/locale/fi/LC_MESSAGES/django.po b/src/pretix/locale/fi/LC_MESSAGES/django.po
index b1c730450a..e294e19d1c 100644
--- a/src/pretix/locale/fi/LC_MESSAGES/django.po
+++ b/src/pretix/locale/fi/LC_MESSAGES/django.po
@@ -9,7 +9,7 @@ msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-01-29 13:18+0000\n"
"PO-Revision-Date: 2025-02-06 18:00+0000\n"
-"Last-Translator: Johanna Ketola \n"
+"Last-Translator: Hannu Kaakinen \n"
"Language-Team: Finnish \n"
"Language: fi\n"
@@ -5619,6 +5619,8 @@ msgid ""
"One or more items has variations but none of these are in the variations "
"list."
msgstr ""
+"Yhdessä tai useammassa tuotteessa on variaatioita, mutta mikään niistä ei "
+"ole variaatioluettelossa"
#: pretix/base/models/items.py:2183 pretix/base/models/waitinglist.py:303
msgid "Subevent cannot be null for event series."
@@ -14300,17 +14302,7 @@ msgid "Your voucher for {event}"
msgstr ""
#: pretix/control/forms/vouchers.py:282
-#, fuzzy, python-brace-format
-#| msgid ""
-#| "Hello,\n"
-#| "\n"
-#| "you bought a ticket for {event}.\n"
-#| "\n"
-#| "If you did not do so already, you can download your ticket here:\n"
-#| "{url}\n"
-#| "\n"
-#| "Best regards, \n"
-#| "Your {event} team"
+#, python-brace-format
msgid ""
"Hello,\n"
"\n"
@@ -14329,7 +14321,12 @@ msgstr ""
"\n"
"Tällä sähköpostilla lähetämme yhden tai useamman lipun tapahtumaan {event}.\n"
"\n"
-"Voit ladata ne lippukaupassamme täällä:\n"
+"{voucher_list}\n"
+"\n"
+"Voit ladata n\n"
+"\n"
+"e lippukaupassamme täällä:\n"
+"\n"
"{url}\n"
"\n"
"Ystävällisin terveisin,\n"
From 3c27aa8591810732786bacf4d05155d90e2f3cb0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=EC=A1=B0=EC=A0=95=ED=99=94?=
Date: Thu, 6 Feb 2025 12:39:58 +0000
Subject: [PATCH 32/99] Translations: Update Korean
Currently translated at 2.1% (125 of 5846 strings)
Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/ko/
powered by weblate
---
src/pretix/locale/ko/LC_MESSAGES/django.po | 25 +++++++++++-----------
1 file changed, 13 insertions(+), 12 deletions(-)
diff --git a/src/pretix/locale/ko/LC_MESSAGES/django.po b/src/pretix/locale/ko/LC_MESSAGES/django.po
index 335c929699..936ec784e8 100644
--- a/src/pretix/locale/ko/LC_MESSAGES/django.po
+++ b/src/pretix/locale/ko/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-01-29 13:18+0000\n"
-"PO-Revision-Date: 2025-02-05 20:00+0000\n"
+"PO-Revision-Date: 2025-02-06 18:00+0000\n"
"Last-Translator: 조정화 \n"
"Language-Team: Korean \n"
@@ -516,52 +516,53 @@ msgstr "이벤트 생성"
#: pretix/api/webhooks.py:329
msgid "Event details changed"
-msgstr ""
+msgstr "이벤트 세부 정보가 변경되었습니다"
#: pretix/api/webhooks.py:333
msgid "Event deleted"
-msgstr ""
+msgstr "이벤트 삭제"
#: pretix/api/webhooks.py:337
msgctxt "subevent"
msgid "Event series date added"
-msgstr ""
+msgstr "이벤트 시리즈 날짜 추가"
#: pretix/api/webhooks.py:341
msgctxt "subevent"
msgid "Event series date changed"
-msgstr ""
+msgstr "이벤트 시리즈 날짜 변경"
#: pretix/api/webhooks.py:345
msgctxt "subevent"
msgid "Event series date deleted"
-msgstr ""
+msgstr "이벤트 시리즈 날짜 삭제"
#: pretix/api/webhooks.py:349
msgid ""
"Product changed (including product added or deleted and including changes to "
"nested objects like variations or bundles)"
-msgstr ""
+msgstr "제품 변경(제품 추가 또는 삭제, 변형 또는 번들과 같은 중첩된 객체에 대한 변경 "
+"포함)"
#: pretix/api/webhooks.py:354
msgid "Shop taken live"
-msgstr ""
+msgstr "라이브 촬영 상점"
#: pretix/api/webhooks.py:358
msgid "Shop taken offline"
-msgstr ""
+msgstr "오프라인 쇼핑"
#: pretix/api/webhooks.py:362
msgid "Test-Mode of shop has been activated"
-msgstr ""
+msgstr "상점의 테스트 모드가 활성화되었습니다"
#: pretix/api/webhooks.py:366
msgid "Test-Mode of shop has been deactivated"
-msgstr ""
+msgstr "상점의 테스트 모드가 비활성화되었습니다"
#: pretix/api/webhooks.py:370
msgid "Waiting list entry added"
-msgstr ""
+msgstr "대기자 명단 항목 추가"
#: pretix/api/webhooks.py:374
msgid "Waiting list entry changed"
From 2b4d70fa30b710496bd22838d1b81685fde3d086 Mon Sep 17 00:00:00 2001
From: Hannu Kaakinen
Date: Fri, 7 Feb 2025 10:38:30 +0000
Subject: [PATCH 33/99] Translations: Update Finnish
Currently translated at 37.7% (2207 of 5846 strings)
Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/fi/
powered by weblate
---
src/pretix/locale/fi/LC_MESSAGES/django.po | 189 +++++++++------------
1 file changed, 78 insertions(+), 111 deletions(-)
diff --git a/src/pretix/locale/fi/LC_MESSAGES/django.po b/src/pretix/locale/fi/LC_MESSAGES/django.po
index e294e19d1c..7e1b55ad4f 100644
--- a/src/pretix/locale/fi/LC_MESSAGES/django.po
+++ b/src/pretix/locale/fi/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-01-29 13:18+0000\n"
-"PO-Revision-Date: 2025-02-06 18:00+0000\n"
+"PO-Revision-Date: 2025-02-07 10:53+0000\n"
"Last-Translator: Hannu Kaakinen \n"
"Language-Team: Finnish \n"
@@ -1896,7 +1896,7 @@ msgstr "Sisällytä vain tilaukset, jotka on luotu tämän aikarajan sisällä."
#: pretix/plugins/reports/exporters.py:454
#: pretix/plugins/ticketoutputpdf/exporters.py:97
msgid "Event date"
-msgstr "Tapahtuman päivämäärä"
+msgstr "Tapahtumapäivämäärä"
#: pretix/base/exporters/orderlist.py:138
msgid ""
@@ -2963,7 +2963,7 @@ msgstr ""
#: pretix/base/forms/user.py:56 pretix/control/forms/users.py:45
#: pretix/presale/forms/customer.py:283 pretix/presale/forms/customer.py:371
msgid "Please enter the same password twice"
-msgstr "Syötä sama salasana kahdesti."
+msgstr "Syötä sama salasana kahdesti"
#: pretix/base/forms/auth.py:172 pretix/base/forms/auth.py:224
#: pretix/presale/forms/customer.py:296 pretix/presale/forms/customer.py:390
@@ -4723,7 +4723,7 @@ msgstr "Piilota tuote, jos se ei ole saatavilla"
#: pretix/base/models/items.py:445 pretix/control/forms/item.py:661
#: pretix/control/templates/pretixcontrol/subevents/fragment_unavail_mode_indicator.html:5
msgid "Show product with info on why it’s unavailable"
-msgstr "Näytä tuote, ja syy siihen, ettei se ole enää saatavilla."
+msgstr "Näytä tuote, ja syy siihen, ettei se ole enää saatavilla"
#: pretix/base/models/items.py:456 pretix/base/models/items.py:781
msgid "Don't use re-usable media, use regular one-off tickets"
@@ -5620,7 +5620,7 @@ msgid ""
"list."
msgstr ""
"Yhdessä tai useammassa tuotteessa on variaatioita, mutta mikään niistä ei "
-"ole variaatioluettelossa"
+"ole variaatioluettelossa."
#: pretix/base/models/items.py:2183 pretix/base/models/waitinglist.py:303
msgid "Subevent cannot be null for event series."
@@ -7723,8 +7723,8 @@ msgstr[1] "Tuotteita %(product)s ei voi valita useampia kuin %(max)s."
msgid "You need to select at least %(min)s item of the product %(product)s."
msgid_plural ""
"You need to select at least %(min)s items of the product %(product)s."
-msgstr[0] "Tuotetta %(product)s on valittava vähintään %(min)s"
-msgstr[1] "Tuotteita %(product)s on valittava vähintään %(min)s"
+msgstr[0] "Tuotetta %(product)s on valittava vähintään %(min)s."
+msgstr[1] "Tuotteita %(product)s on valittava vähintään %(min)s."
#: pretix/base/services/cart.py:140
#, python-format
@@ -7946,45 +7946,52 @@ msgid ""
"You can select every add-on from the category %(cat)s for the product "
"%(base)s at most once."
msgstr ""
+"Voit valita jokaisen lisäosan kategoriasta %(cat)s) tuotteeseen %(base)s "
+"enintään kerran."
#: pretix/base/services/cart.py:207
msgid ""
"One of the products you selected can only be bought as an add-on to another "
"product."
msgstr ""
+"Yhden valitsemistasi tuotteista voi ostaa vain toisen tuotteen lisäosana."
#: pretix/base/services/cart.py:208
msgid "One of the products you selected can only be bought part of a bundle."
-msgstr ""
+msgstr "Yhden valitsemistasi tuotteista voi ostaa vain osana pakettia."
#: pretix/base/services/cart.py:210
msgid "Please select a valid seat."
-msgstr ""
+msgstr "Valitse kelvollinen istuin."
#: pretix/base/services/cart.py:211
msgid "You can not select a seat for this position."
-msgstr ""
+msgstr "Et voi valita istuinta tälle paikalle."
#: pretix/base/services/cart.py:213
msgid "You can not select the same seat multiple times."
-msgstr ""
+msgstr "Et voi valita samaa istuinta monta kertaa."
#: pretix/base/services/cart.py:214
msgid ""
"You entered a gift card instead of a voucher. Gift cards can be entered "
"later on when you're asked for your payment details."
msgstr ""
+"Kirjoitit lahjakortin kupongin sijasta. Lahjakortin voi syöttää myöhemmin, "
+"kun sinulta kysytään maksutietoja."
#: pretix/base/services/cart.py:216
msgid ""
"The configuration of this product requires mapping to a physical medium, "
"which is currently not available online."
msgstr ""
+"Tämän tuotteen konfigurointi edellyttää fyysisen median kartoittamista, jota "
+"ei tällä hetkellä ole saatavilla verkossa."
#: pretix/base/services/checkin.py:217
#: pretix/plugins/stripe/templates/pretixplugins/stripe/pending.html:69
msgid "Unknown reason"
-msgstr ""
+msgstr "Tuntematon syy"
#: pretix/base/services/checkin.py:273
#, python-brace-format
@@ -7994,7 +8001,7 @@ msgstr ""
#: pretix/base/services/checkin.py:275
#, python-brace-format
msgid "Only allowed after {datetime}"
-msgstr ""
+msgstr "Sallittu vain {datetime} jälkeen"
#: pretix/base/services/checkin.py:279
msgid "Attendee is checked out"
@@ -8002,7 +8009,7 @@ msgstr "Osallistuja on kirjautunut ulos"
#: pretix/base/services/checkin.py:281
msgid "Attendee is already checked in"
-msgstr ""
+msgstr "Osallistuja on jo kirjautunut sisään"
#: pretix/base/services/checkin.py:286
msgid "Ticket type not allowed"
@@ -8014,38 +8021,38 @@ msgstr "Väärä sisäänkäyntiportti"
#: pretix/base/services/checkin.py:313
msgid "time since last entry"
-msgstr ""
+msgstr "aika edellisestä merkinnästä"
#: pretix/base/services/checkin.py:314
msgid "time since first entry"
-msgstr ""
+msgstr "aika ensimmäisestä merkinnästä"
#: pretix/base/services/checkin.py:315
msgid "number of days with an entry"
-msgstr ""
+msgstr "niiden päivien lukumäärä, joihin on tehty merkintä"
#: pretix/base/services/checkin.py:316
msgid "number of entries"
-msgstr ""
+msgstr "merkintöjen lukumäärä"
#: pretix/base/services/checkin.py:317
msgid "number of entries today"
-msgstr ""
+msgstr "merkintöjen määrä tänään"
#: pretix/base/services/checkin.py:318
#, python-brace-format
msgid "number of entries since {datetime}"
-msgstr ""
+msgstr "merkintöjen määrä {datetime} jälkeen"
#: pretix/base/services/checkin.py:319
#, python-brace-format
msgid "number of entries before {datetime}"
-msgstr ""
+msgstr "merkintöjen määrä ennen {datetime}"
#: pretix/base/services/checkin.py:320
#, python-brace-format
msgid "number of days with an entry since {datetime}"
-msgstr ""
+msgstr "niiden päivien lukumäärä, jolloin merkintä on tehty {datetime} jälkeen"
#: pretix/base/services/checkin.py:321
#, python-brace-format
@@ -10442,9 +10449,9 @@ msgstr ""
"\n"
"olemme vastaanottaneet maksun tilauksestasi tapahtumaan {event}.\n"
"\n"
-"Valitettavasti vastaanotettu summa on pienempi kuin vaadittu kokonaissumma. "
-"Tilauksesi on edelleen maksamatta, sillä siitä puuttuu vielä **{pending_sum}"
-"**.\n"
+"Valitettavasti vastaanotettu summa on pienempi kuin vaadittu kokonaissumma.\n"
+"Tilauksesi on edelleen maksamatta, sillä siitä puuttuu vielä\n"
+" **{pending_sum}**.\n"
"\n"
"Voit tarkistaa maksutiedot ja tilauksesi tilan osoitteessa\n"
"{url}\n"
@@ -11462,7 +11469,7 @@ msgstr ""
#: pretix/base/templates/pretixbase/email/email_footer.html:3
#, python-format
msgid "powered by pretix"
-msgstr "powered by pretix"
+msgstr "Palvelun tarjoaa pretix"
#: pretix/base/templates/pretixbase/email/export_failed.txt:2
msgid "Your export failed."
@@ -12122,7 +12129,7 @@ msgstr ""
#: pretix/control/forms/event.py:388
msgid "You can configure this in your organizer settings."
-msgstr "Voi muuttaa tämän järjestäjän asetuksissa"
+msgstr "Voi muuttaa tämän järjestäjän asetuksissa."
#: pretix/control/forms/event.py:398
msgid "You can add more domains in your organizer account."
@@ -12389,10 +12396,8 @@ msgid ""
msgstr ""
#: pretix/control/forms/event.py:1241
-#, fuzzy
-#| msgid "Received order"
msgid "Subject for received order"
-msgstr "Vastaanotettu tilaus"
+msgstr "Vastaanotetun tilauksen kohde"
#: pretix/control/forms/event.py:1246
msgid "Text for received order"
@@ -12427,16 +12432,12 @@ msgid ""
msgstr ""
#: pretix/control/forms/event.py:1311
-#, fuzzy
-#| msgid "Received order"
msgid "Subject for denied order"
-msgstr "Vastaanotettu tilaus"
+msgstr "Poistetun tilauksen kohde"
#: pretix/control/forms/event.py:1316
-#, fuzzy
-#| msgid "Denied order"
msgid "Text for denied order"
-msgstr "Hylätty tilaus"
+msgstr "Hylätyn tilauksen teksti"
#: pretix/control/forms/event.py:1409
msgid "Ticket code generator"
@@ -12787,9 +12788,8 @@ msgid "All payments"
msgstr "Kaikki maksutavat"
#: pretix/control/forms/filter.py:1025
-#, fuzzy
msgid "Payment created from"
-msgstr "Tapahtuma luotu"
+msgstr "Tapahtuma luotu alkaen"
#: pretix/control/forms/filter.py:1030
msgid "Payment created until"
@@ -14323,9 +14323,7 @@ msgstr ""
"\n"
"{voucher_list}\n"
"\n"
-"Voit ladata n\n"
-"\n"
-"e lippukaupassamme täällä:\n"
+"Voit ladata ne lippukaupassamme täällä:\n"
"\n"
"{url}\n"
"\n"
@@ -16423,7 +16421,7 @@ msgid_plural ""
"%(count)s tickets?"
msgstr[0] ""
"Oletko varma, että haluat pysyvästi poistaa ilmoittautumisen one "
-"ticket.?"
+"ticket."
msgstr[1] ""
"Oletko varma, että haluat pysyvästi poistaa ilmoittautumiset %(count)"
"s tickets?"
@@ -19184,10 +19182,9 @@ msgid ""
msgstr ""
#: pretix/control/templates/pretixcontrol/items/discount_delete.html:21
-#, fuzzy, python-format
+#, python-format
msgid "Are you sure you want to delete the discount %(name)s?"
-msgstr ""
-"Oletko varma, että haluat poistaa kupongin %(voucher)s?"
+msgstr "Oletko varma, että haluat poistaa alennuksen %(name)s?"
#: pretix/control/templates/pretixcontrol/items/discount_delete.html:25
#, python-format
@@ -20242,10 +20239,9 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/order/index.html:457
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:107
-#, fuzzy, python-format
-#| msgid "Admission: %(datetime)s"
+#, python-format
msgid "Valid %(datetime_range)s"
-msgstr "Sisäänpääsy: %(datetime)s"
+msgstr "Voimassa %(datetime_range)s"
#: pretix/control/templates/pretixcontrol/order/index.html:503
msgid "Ticket page"
@@ -20824,14 +20820,13 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/orders/export_delete.html:9
#: pretix/control/templates/pretixcontrol/organizers/export_delete.html:9
-#, fuzzy, python-format
-#| msgid ""
-#| "Are you sure you want to delete the voucher %(voucher)s?"
+#, python-format
msgid ""
"Are you sure you want to delete the scheduled export %(export)s"
"strong>?"
msgstr ""
-"Oletko varma, että haluat poistaa kupongin %(voucher)s?"
+"Oletko varma, että haluat poistaa aikataulutetun tiedonsiirron "
+"%(export)s?"
#: pretix/control/templates/pretixcontrol/orders/export_form.html:26
#: pretix/control/templates/pretixcontrol/organizers/export_form.html:27
@@ -22923,10 +22918,8 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/subevents/fragment_unavail_mode_indicator.html:3
#: pretix/control/templates/pretixcontrol/subevents/fragment_unavail_mode_indicator.html:5
-#, fuzzy
-#| msgid "Can change product settings"
msgid "You can change this option in the product settings."
-msgstr "Voi muuttaa tuotteen asetuksia"
+msgstr "Voi muuttaa tätä vaihtoehtoa tuotteen asetuksissa."
#: pretix/control/templates/pretixcontrol/subevents/index.html:11
msgid "You haven't created any dates for this event series yet."
@@ -24135,9 +24128,9 @@ msgid "invalid item"
msgstr ""
#: pretix/control/views/event.py:805
-#, fuzzy, python-format
+#, python-format
msgid "Your order: %(code)s"
-msgstr "Tilauksesi: {code}"
+msgstr "Tilauksesi: %(code)s"
#: pretix/control/views/event.py:814
msgid "Unknown email renderer."
@@ -24895,10 +24888,9 @@ msgid "Your export schedule has been saved, but no next export is planned."
msgstr ""
#: pretix/control/views/orders.py:2747 pretix/control/views/organizer.py:1896
-#, fuzzy, python-brace-format
-#| msgid "Export date"
+#, python-brace-format
msgid "Export: {title}"
-msgstr "Vie päivämäärä"
+msgstr "Vie: {title}"
#: pretix/control/views/orders.py:2748 pretix/control/views/organizer.py:1898
#, python-brace-format
@@ -25497,10 +25489,8 @@ msgid "Login from new source detected"
msgstr ""
#: pretix/helpers/security.py:170
-#, fuzzy
-#| msgid "Unknown country code."
msgid "Unknown country"
-msgstr "Tuntematon maakoodi."
+msgstr "Tuntematon maa"
#: pretix/multidomain/models.py:36
#, fuzzy
@@ -25620,19 +25610,16 @@ msgid "Auto check-in"
msgstr "Poista kupongit"
#: pretix/plugins/autocheckin/signals.py:70
-#, fuzzy
msgid "An auto check-in rule was created"
-msgstr "Sähköpostiosoite päivitetty."
+msgstr "Automaattinen kirjautumissääntö luotu"
#: pretix/plugins/autocheckin/signals.py:72
-#, fuzzy
msgid "An auto check-in rule was updated"
-msgstr "Sähköpostiosoite päivitetty."
+msgstr "Automaattinen kirjautumissääntö päivitetty"
#: pretix/plugins/autocheckin/signals.py:75
-#, fuzzy
msgid "An auto check-in rule was deleted"
-msgstr "Sähköpostiosoite päivitetty."
+msgstr "Automaattinen kirjautumissääntö poistettu"
#: pretix/plugins/autocheckin/templates/pretixplugins/autocheckin/add.html:4
#: pretix/plugins/autocheckin/templates/pretixplugins/autocheckin/add.html:6
@@ -26239,10 +26226,9 @@ msgid "The invoice was sent to the designated email address."
msgstr ""
#: pretix/plugins/banktransfer/signals.py:132
-#, fuzzy, python-brace-format
-#| msgid "Invoice number"
+#, python-brace-format
msgid "Invoice {invoice_number}"
-msgstr "Laskun numero"
+msgstr "Lasku {invoice_number}"
#: pretix/plugins/banktransfer/signals.py:137
#, python-brace-format
@@ -27258,17 +27244,14 @@ msgid "Payment pending."
msgstr ""
#: pretix/plugins/paypal2/signals.py:63
-#, fuzzy
msgctxt "paypal"
msgid "Order approved."
-msgstr "Tilaus hyväksytty"
+msgstr "Tilaus hyväksytty."
#: pretix/plugins/paypal2/signals.py:64
-#, fuzzy
-#| msgid "Order comment"
msgctxt "paypal"
msgid "Order completed."
-msgstr "Tilauksen kommentti"
+msgstr "Tilaus suoritettu."
#: pretix/plugins/paypal2/signals.py:65
msgctxt "paypal"
@@ -27276,11 +27259,9 @@ msgid "Capture completed."
msgstr ""
#: pretix/plugins/paypal2/signals.py:66
-#, fuzzy
-#| msgid "approval pending"
msgctxt "paypal"
msgid "Capture pending."
-msgstr "Odottaa hyväksyntää"
+msgstr "Odottaa hyväksyntää."
#: pretix/plugins/paypal2/signals.py:75
msgid "PayPal reported an event: {}"
@@ -27718,11 +27699,9 @@ msgid "Restrict to recipients without check-in on any list"
msgstr "Lisää lippuja toiselle päivämäärälle"
#: pretix/plugins/sendmail/forms.py:187
-#, fuzzy
-#| msgid "Only include orders created on or after this date."
msgctxt "sendmail_form"
msgid "Restrict to orders created at or after"
-msgstr "Sisällytä vain tällä päivämäärällä ja sen jälkeen tehdyt tilaukset."
+msgstr "Sisällytä vain tällä päivämäärällä ja sen jälkeen tehdyt tilaukset"
#: pretix/plugins/sendmail/forms.py:192
msgctxt "sendmail_form"
@@ -27763,11 +27742,9 @@ msgid "pending with payment overdue"
msgstr ""
#: pretix/plugins/sendmail/forms.py:242
-#, fuzzy
-#| msgid "Only include orders created on or after this date."
msgctxt "sendmail_form"
msgid "Restrict to orders with status"
-msgstr "Sisällytä vain tällä päivämäärällä ja sen jälkeen tehdyt tilaukset."
+msgstr "Rajoita tilauksiin, joilla on status"
#: pretix/plugins/sendmail/forms.py:267 pretix/plugins/sendmail/forms.py:271
msgctxt "sendmail_form"
@@ -27853,16 +27830,12 @@ msgid "Limit products"
msgstr ""
#: pretix/plugins/sendmail/models.py:255
-#, fuzzy
-#| msgid "Only include orders created on or after this date."
msgid "Restrict to orders with status"
-msgstr "Sisällytä vain tällä päivämäärällä ja sen jälkeen tehdyt tilaukset."
+msgstr "Rajoita tilauksiin, joilla on status"
#: pretix/plugins/sendmail/models.py:260
-#, fuzzy
-#| msgid "Only include orders created on or after this date."
msgid "Restrict to check-in status"
-msgstr "Sisällytä vain tällä päivämäärällä ja sen jälkeen tehdyt tilaukset."
+msgstr "Rajoita tilauksiin, joilla on kirjautumis-status"
#: pretix/plugins/sendmail/models.py:274
msgid "Send date"
@@ -27939,9 +27912,8 @@ msgid "An email rule was created"
msgstr ""
#: pretix/plugins/sendmail/signals.py:134
-#, fuzzy
msgid "An email rule was updated"
-msgstr "Sähköpostiosoite päivitetty."
+msgstr "Sähköpostisääntö päivitetty"
#: pretix/plugins/sendmail/signals.py:135
msgid "A scheduled email was sent to the order"
@@ -28156,12 +28128,11 @@ msgid ""
msgstr ""
#: pretix/plugins/sendmail/views.py:516
-#, fuzzy, python-format
-#| msgid "On waiting list since"
+#, python-format
msgid "%(number)s waiting list entry"
msgid_plural "%(number)s waiting list entries"
-msgstr[0] "Jonotuslistalla alkaen"
-msgstr[1] "Jonotuslistalla alkaen"
+msgstr[0] "%(number)s jonotuslista merkintä"
+msgstr[1] "%(number)s jonotuslista merkinnät"
#: pretix/plugins/statistics/apps.py:30 pretix/plugins/statistics/apps.py:33
#: pretix/plugins/statistics/signals.py:37
@@ -30035,9 +30006,9 @@ msgstr "Näytä variaatiot"
#: pretix/presale/templates/pretixpresale/event/fragment_addon_choice.html:100
#: pretix/presale/templates/pretixpresale/event/fragment_product_list.html:105
-#, fuzzy, python-format
+#, python-format
msgid "Show %(count)s variants of %(item)s"
-msgstr "Näytä kaikki järjestäjän %(name)s tapahtumat"
+msgstr "Näytä %(count)s :n variantit %(item)s:stä"
#: pretix/presale/templates/pretixpresale/event/fragment_addon_choice.html:102
#: pretix/presale/templates/pretixpresale/event/fragment_product_list.html:107
@@ -30167,9 +30138,9 @@ msgstr ""
#: pretix/presale/templates/pretixpresale/event/voucher.html:383
#: pretix/presale/templates/pretixpresale/event/voucher.html:390
#: pretix/presale/templates/pretixpresale/event/voucher.html:408
-#, fuzzy, python-format
+#, python-format
msgid "Add %(item)s to cart"
-msgstr "Lisää ostoskoriin"
+msgstr "Lisää%(item)s ostoskoriin"
#: pretix/presale/templates/pretixpresale/event/fragment_addon_choice.html:379
msgid "There are no add-ons available for this product."
@@ -30181,10 +30152,8 @@ msgstr ""
#: pretix/presale/templates/pretixpresale/event/fragment_availability.html:10
#: pretix/presale/templates/pretixpresale/event/fragment_availability.html:14
-#, fuzzy
-#| msgid "Quantity available"
msgid "Not available yet."
-msgstr "Saatavilla oleva määrä"
+msgstr "Ei vielä saatavilla."
#: pretix/presale/templates/pretixpresale/event/fragment_availability.html:18
msgid "Not available any more."
@@ -30666,19 +30635,17 @@ msgstr ""
#: pretix/presale/templates/pretixpresale/event/fragment_product_list.html:344
#: pretix/presale/templates/pretixpresale/event/voucher.html:204
#: pretix/presale/templates/pretixpresale/event/voucher.html:359
-#, fuzzy, python-format
-#| msgid "incl. taxes"
+#, python-format
msgid "%(value)s incl. taxes"
-msgstr "sis. verot"
+msgstr "%(value)s sis. verot"
#: pretix/presale/templates/pretixpresale/event/fragment_product_list.html:197
#: pretix/presale/templates/pretixpresale/event/fragment_product_list.html:350
#: pretix/presale/templates/pretixpresale/event/voucher.html:210
#: pretix/presale/templates/pretixpresale/event/voucher.html:365
-#, fuzzy, python-format
-#| msgid "Total value (without taxes)"
+#, python-format
msgid "%(value)s without taxes"
-msgstr "Summa (ilman veroja)"
+msgstr "%(value)s ilman veroja"
#: pretix/presale/templates/pretixpresale/event/fragment_product_list.html:305
#: pretix/presale/templates/pretixpresale/event/voucher.html:322
From fd70d567e06b88392bcf874429bb1624b4d96df4 Mon Sep 17 00:00:00 2001
From: Hannu Kaakinen
Date: Fri, 7 Feb 2025 12:59:22 +0000
Subject: [PATCH 34/99] Translations: Update Finnish
Currently translated at 39.5% (2310 of 5846 strings)
Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/fi/
powered by weblate
---
src/pretix/locale/fi/LC_MESSAGES/django.po | 234 ++++++++++++++-------
1 file changed, 160 insertions(+), 74 deletions(-)
diff --git a/src/pretix/locale/fi/LC_MESSAGES/django.po b/src/pretix/locale/fi/LC_MESSAGES/django.po
index 7e1b55ad4f..06ae90bb39 100644
--- a/src/pretix/locale/fi/LC_MESSAGES/django.po
+++ b/src/pretix/locale/fi/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-01-29 13:18+0000\n"
-"PO-Revision-Date: 2025-02-07 10:53+0000\n"
+"PO-Revision-Date: 2025-02-07 13:26+0000\n"
"Last-Translator: Hannu Kaakinen \n"
"Language-Team: Finnish \n"
@@ -7996,7 +7996,7 @@ msgstr "Tuntematon syy"
#: pretix/base/services/checkin.py:273
#, python-brace-format
msgid "Only allowed before {datetime}"
-msgstr ""
+msgstr "Sallittu vain ennen {datetime}"
#: pretix/base/services/checkin.py:275
#, python-brace-format
@@ -8057,11 +8057,11 @@ msgstr "niiden päivien lukumäärä, jolloin merkintä on tehty {datetime} jäl
#: pretix/base/services/checkin.py:321
#, python-brace-format
msgid "number of days with an entry before {datetime}"
-msgstr ""
+msgstr "niiden päivien lukumäärä, joihin on tehty merkintä ennen {datetime}"
#: pretix/base/services/checkin.py:322
msgid "week day"
-msgstr ""
+msgstr "viikonpäivä"
#: pretix/base/services/checkin.py:358 pretix/control/forms/filter.py:1230
msgid "Monday"
@@ -8090,7 +8090,7 @@ msgstr "sunnuntai"
#: pretix/base/services/checkin.py:368
#, python-brace-format
msgid "{variable} is not {value}"
-msgstr ""
+msgstr "{variable} ei ole {value}"
#: pretix/base/services/checkin.py:370
#, python-brace-format
@@ -8100,16 +8100,16 @@ msgstr "Maksimiarvo {variable} ylitetty"
#: pretix/base/services/checkin.py:372
#, python-brace-format
msgid "Minimum {variable} exceeded"
-msgstr ""
+msgstr "Minimi {variable} ylitetty"
#: pretix/base/services/checkin.py:374
#, python-brace-format
msgid "{variable} is {value}"
-msgstr ""
+msgstr "{variable} on {value}"
#: pretix/base/services/checkin.py:972
msgid "This order position has been canceled."
-msgstr ""
+msgstr "Tämä tilauspaikka on peruttu."
#: pretix/base/services/checkin.py:981
msgid "This ticket has been blocked."
@@ -8122,41 +8122,42 @@ msgstr "Tätä tilausta ei ole vielä hyväksytty."
#: pretix/base/services/checkin.py:999 pretix/base/services/checkin.py:1003
#, python-brace-format
msgid "This ticket is only valid after {datetime}."
-msgstr ""
+msgstr "Tämä lippu on voimassa vasta {datetime} jälkeen."
#: pretix/base/services/checkin.py:1013 pretix/base/services/checkin.py:1017
#, python-brace-format
msgid "This ticket was only valid before {datetime}."
-msgstr ""
+msgstr "Tämä lippu oli voimassa vain ennen {datetime}."
#: pretix/base/services/checkin.py:1048
msgid "This order position has an invalid product for this check-in list."
-msgstr ""
+msgstr "Tässä tilauspositiossa on virheellinen tuote tälle kirjautumislistalle."
#: pretix/base/services/checkin.py:1057
msgid "This order position has an invalid date for this check-in list."
msgstr ""
+"Tässä tilauspositiossa on virheellinen päivämäärä tälle kirjautumislistalle."
#: pretix/base/services/checkin.py:1068
msgid "This order is not marked as paid."
-msgstr ""
+msgstr "Tätä tilausta ei ole merkitty maksetuksi."
#: pretix/base/services/checkin.py:1080
msgid "Evaluation of custom rules has failed."
-msgstr ""
+msgstr "Mukautettujen sääntöjen arviointi on epäonnistunut."
#: pretix/base/services/checkin.py:1090
#, python-brace-format
msgid "Entry not permitted: {explanation}."
-msgstr ""
+msgstr "Pääsy ei sallittu: {explanation}."
#: pretix/base/services/checkin.py:1099
msgid "You need to answer questions to complete this check-in."
-msgstr ""
+msgstr "Sinun on vastattava kysymyksiin ilmoittautumisen suorittamiseksi."
#: pretix/base/services/checkin.py:1152
msgid "This ticket has already been redeemed."
-msgstr ""
+msgstr "Tämä lippu on jo vapautettu."
#: pretix/base/services/currencies.py:38 pretix/base/services/currencies.py:39
msgid "European Central Bank"
@@ -8164,12 +8165,12 @@ msgstr "Euroopan keskuspankki"
#: pretix/base/services/currencies.py:40
msgid "Czech National Bank"
-msgstr ""
+msgstr "Tsekin Kansallinen Pankki"
#: pretix/base/services/export.py:86 pretix/base/services/export.py:157
#: pretix/base/services/export.py:215
msgid "Your export did not contain any data."
-msgstr ""
+msgstr "Vientisi ei sisältänyt mitään tietoja."
#: pretix/base/services/export.py:151
msgid "You do not have sufficient permission to perform this export."
@@ -8186,13 +8187,13 @@ msgstr "Pääsy evätty."
#: pretix/base/services/export.py:221
msgid "Your exported data exceeded the size limit for scheduled exports."
-msgstr ""
+msgstr "Viedyt tiedot ylittivät ajastetun viennin kokorajan."
#: pretix/base/services/invoices.py:103
#, python-brace-format
msgctxt "invoice"
msgid "Please complete your payment before {expire_date}."
-msgstr ""
+msgstr "Suorita maksusi ennen {expire_date}."
#: pretix/base/services/invoices.py:115
#, python-brace-format
@@ -8204,43 +8205,48 @@ msgid ""
"{i.zipcode} {i.city} {state}\n"
"{country}"
msgstr ""
+"{i.company}\n"
+"{i.name}\n"
+"{i.street}\n"
+"{i.zipcode} {i.city} {state}\n"
+"{country}"
#: pretix/base/services/invoices.py:220 pretix/base/services/invoices.py:257
#, python-brace-format
msgctxt "invoice"
msgid "Event location: {location}"
-msgstr ""
+msgstr "Tapahtuman sijainti: {location}"
#: pretix/base/services/invoices.py:236
#, python-brace-format
msgctxt "invoice"
msgid "Attendee: {name}"
-msgstr ""
+msgstr "Osallistuja: {name}"
#: pretix/base/services/invoices.py:254 pretix/plugins/reports/exporters.py:298
msgctxt "subevent"
msgid "Date: {}"
-msgstr ""
+msgstr "Päivämäärä: {}"
#: pretix/base/services/invoices.py:469
msgid "A payment provider specific text might appear here."
-msgstr ""
+msgstr "Tässä saattaa näkyä maksuntarjoajakohtainen teksti."
#: pretix/base/services/invoices.py:477
msgid "214th Example Street"
-msgstr ""
+msgstr "Esimerkkikatu 214"
#: pretix/base/services/invoices.py:478
msgid "012345"
-msgstr ""
+msgstr "012345"
#: pretix/base/services/invoices.py:495
msgid "Sample product {}"
-msgstr ""
+msgstr "Esimerkkituote {}"
#: pretix/base/services/invoices.py:505
msgid "Sample product A"
-msgstr ""
+msgstr "Esimerkkituote A"
#: pretix/base/services/invoices.py:535
#, python-brace-format
@@ -8257,10 +8263,16 @@ msgid ""
"We are sending this email because you configured us to do so in your event "
"settings."
msgstr ""
+"Hei,\n"
+"\n"
+"Uusi lasku tilaukselle {order} {event}:ssa on luotu, katso liite.\n"
+"\n"
+"Lähetämme tämän sähköpostin, koska olet määrittänyt meidät tekemään niin "
+"tapahtuma-asetuksissasi."
#: pretix/base/services/mail.py:121
msgid "This prefix has been set in your event or organizer settings."
-msgstr ""
+msgstr "Tämä etuliite on asetettu tapahtuman tai järjestäjän asetuksissa."
#: pretix/base/services/mail.py:278
#, python-brace-format
@@ -8268,6 +8280,8 @@ msgid ""
"You are receiving this email because someone placed an order for {event} for "
"you."
msgstr ""
+"Saat tämän sähköpostiviestin, koska joku on tehnyt tilauksen {event}:stä "
+"puolestasi."
#: pretix/base/services/mail.py:282 pretix/base/services/mail.py:298
#, python-brace-format
@@ -8275,11 +8289,13 @@ msgid ""
"You can view your order details at the following URL:\n"
"{orderurl}."
msgstr ""
+"Voit tarkastella tilauksesi tietoja seuraavasta URL-osoitteesta:\n"
+"{orderurl}."
#: pretix/base/services/mail.py:294
#, python-brace-format
msgid "You are receiving this email because you placed an order for {event}."
-msgstr ""
+msgstr "Saat tämän sähköpostiviestin, koska olet tehnyt {event}tilauksen."
#: pretix/base/services/mail.py:478
msgctxt "attachment_filename"
@@ -8291,34 +8307,37 @@ msgstr "Kalenterikutsu"
msgid ""
"You selected a membership for the product \"{product}\" which does not "
"require a membership."
-msgstr ""
+msgstr "Valitsit jäsenyyden tuotteelle ”{product}”, joka ei vaadi jäsenyyttä."
#: pretix/base/services/memberships.py:116
#, python-brace-format
msgid ""
"You selected the product \"{product}\" which requires an active membership "
"to be selected."
-msgstr ""
+msgstr "Valitsit tuotteen ”{product}”, joka edellyttää aktiivista jäsenyyttä."
#: pretix/base/services/memberships.py:149
msgid ""
"You selected a membership that is connected to a different customer account."
-msgstr ""
+msgstr "Valitsit jäsenyyden, joka on liitetty eri asiakastiliin."
#: pretix/base/services/memberships.py:154
msgid "You selected membership that has been canceled."
-msgstr ""
+msgstr "Valitsit jäsenyyden, joka on peruutettu."
#: pretix/base/services/memberships.py:159
msgid ""
"You can not use a test mode membership for tickets that are not in test mode."
msgstr ""
+"Et voi käyttää testitilan jäsenyyttä lippuihin, jotka eivät ole testitilassa."
#: pretix/base/services/memberships.py:163
msgid ""
"You need to add a test mode membership to the customer account to use it in "
"test mode."
msgstr ""
+"Asiakastilille on lisättävä testitilan jäsenyys, jotta sitä voidaan käyttää "
+"testitilassa."
#: pretix/base/services/memberships.py:179
#, python-brace-format
@@ -8326,6 +8345,8 @@ msgid ""
"You selected a membership that is valid from {start} to {end}, but selected "
"a ticket that starts to be valid on {date}."
msgstr ""
+"Valitsit jäsenyyden, joka on voimassa {start} – {end}, mutta valitsit lipun, "
+"joka voimassaolo alkaa {date}."
#: pretix/base/services/memberships.py:188
#, python-brace-format
@@ -8333,6 +8354,8 @@ msgid ""
"You selected a membership that is valid from {start} to {end}, but selected "
"an event taking place at {date}."
msgstr ""
+"Valitsit jäsenyyden, joka on voimassa {start} - {end}, mutta valitsit "
+"tapahtuman, joka toteutuu {date}."
#: pretix/base/services/memberships.py:203
#, python-brace-format
@@ -8340,6 +8363,8 @@ msgid ""
"You selected a membership of type \"{type}\", which is not allowed for the "
"product \"{product}\"."
msgstr ""
+"Valitsit jäsenyyden tyypin ”{type}”, joka ei ole sallittu tuotteelle "
+"”{product}”."
#: pretix/base/services/memberships.py:212
#, python-brace-format
@@ -8347,6 +8372,8 @@ msgid ""
"You are trying to use a membership of type \"{type}\" more than {number} "
"times, which is the maximum amount."
msgstr ""
+"Yrität käyttää tyyppiä ”{type}” useammin kuin {number} kertaa, mikä on "
+"enimmäismäärä."
#: pretix/base/services/memberships.py:227
#, python-brace-format
@@ -8356,6 +8383,10 @@ msgid ""
"membership for a different ticket that overlaps with this time frame "
"({conflict_from} – {conflict_until})."
msgstr ""
+"Yrität käyttää tyyppiä ”{type}” olevaa jäsenyyttä lippuun, joka on voimassa "
+"{valid_from} - {valid_until}, mutta olet jo käyttänyt samaa jäsenyyttä "
+"toiseen lippuun, joka on päällekkäinen tämän ajanjakson kanssa "
+"({conflict_from} - {conflict_until})."
#: pretix/base/services/memberships.py:231
#: pretix/base/services/memberships.py:233
@@ -8374,11 +8405,14 @@ msgid ""
"place at {date}, however you already used the same membership for a "
"different ticket at the same time."
msgstr ""
+"Yrität käyttää jäsenyyttä tyyppiä ”{type}” tapahtumaan, joka järjestetään "
+"{date}, mutta olet jo käyttänyt samaa jäsenyyttä toiseen lippuun samaan "
+"aikaan."
#: pretix/base/services/modelimport.py:53
#, python-brace-format
msgid "Error decoding special characters in your file: {message}"
-msgstr ""
+msgstr "Virhe tiedostosi erikoismerkkien tulkinnassa: {message}"
#: pretix/base/services/modelimport.py:71
#, python-brace-format
@@ -8386,53 +8420,63 @@ msgid ""
"Error while importing value \"{value}\" for column \"{column}\" in line "
"\"{line}\": {message}"
msgstr ""
+"Virhe tuotaessa arvoa ”{value}” sarakkeelle ”{column}” rivillä ”{line}”: "
+"{message}"
#: pretix/base/services/modelimport.py:89 pretix/base/services/orders.py:1548
#, python-format
msgid "Orders cannot have more than %(max)s positions."
-msgstr ""
+msgstr "Tilauksilla ei voi olla yli %(max)s sijainteja."
#: pretix/base/services/modelimport.py:124
#: pretix/base/services/modelimport.py:236
#, python-brace-format
msgid "Invalid data in row {row}: {message}"
-msgstr ""
+msgstr "Virheellistä tietoa rivillä {row}: {message}"
#: pretix/base/services/modelimport.py:217
msgid "A voucher cannot be created without a code."
-msgstr ""
+msgstr "Kuponkia ei voi luoda ilman koodia."
#: pretix/base/services/orders.py:129
msgid ""
"Some of the products you selected were no longer available. Please see below "
"for details."
msgstr ""
+"Joitakin valitsemiasi tuotteita ei ole enää saatavilla. Katso alla olevat "
+"tiedot."
#: pretix/base/services/orders.py:133
msgid ""
"Some of the products you selected were no longer available in the quantity "
"you selected. Please see below for details."
msgstr ""
+"Joitakin valitsemiasi tuotteita ei ollut enää saatavilla valitsemassasi "
+"määrässä. Katso alla olevat tiedot."
#: pretix/base/services/orders.py:137
msgid ""
"The price of some of the items in your cart has changed in the meantime. "
"Please see below for details."
msgstr ""
+"Joidenkin ostoskorissasi olevien tuotteiden hinta on tällä välin muuttunut. "
+"Katso alla olevat tiedot."
#: pretix/base/services/orders.py:140
msgid "An internal error occurred, please try again."
-msgstr ""
+msgstr "Tapahtui sisäinen virhe, yritä uudelleen."
#: pretix/base/services/orders.py:141
msgid ""
"This order was changed by someone else simultaneously. Please check if your "
"changes are still accurate and try again."
msgstr ""
+"Joku muu muutti tätä järjestystä samanaikaisesti. Tarkista, ovatko "
+"muutoksesi edelleen oikein ja yritä uudelleen."
#: pretix/base/services/orders.py:143
msgid "Your cart is empty."
-msgstr ""
+msgstr "Ostoskorisi on tyhjä."
#: pretix/base/services/orders.py:145
#, python-format
@@ -8797,13 +8841,16 @@ msgstr ""
#: pretix/base/settings.py:180
msgid "Match orders based on email address"
-msgstr ""
+msgstr "Sovita tilaukset sähköpostiosoitteen perusteella"
#: pretix/base/settings.py:181
msgid ""
"This will allow registered customers to access orders made with the same "
"email address, even if the customer was not logged in during the purchase."
msgstr ""
+"Tämä sallii rekisteröityneiden asiakkaiden käyttää samalla "
+"sähköpostiosoitteella tehtyjä tilauksia, vaikka asiakas ei olisikaan "
+"kirjautunut sisään oston aikana."
#: pretix/base/settings.py:191
msgid "Activate re-usable media"
@@ -8815,15 +8862,19 @@ msgid ""
"with physical media such as wristbands or chip cards that may be re-used for "
"different tickets or gift cards later."
msgstr ""
+"Uudelleenkäytettävien medioiden ominaisuuden avulla voit yhdistää liput ja "
+"lahjakortit fyysisiin laitteisiin, kuten rannekkeisiin tai sirukortteihin, "
+"joita voidaan käyttää myöhemmin uudelleen eri lippuihin tai lahjakortteihin."
#: pretix/base/settings.py:218
msgid "Length of barcodes"
-msgstr ""
+msgstr "Viivakoodien pituudet"
#: pretix/base/settings.py:247
msgid ""
"Automatically create a new gift card if a previously unknown chip is seen"
msgstr ""
+"Luo automaattisesti uusi lahjakortti, jos aiemmin tuntematon siru on nähty"
#: pretix/base/settings.py:260 pretix/base/settings.py:291
msgid "Gift card currency"
@@ -8831,35 +8882,38 @@ msgstr "Lahjakortin valuutta"
#: pretix/base/settings.py:278
msgid "Automatically create a new gift card if a new chip is encoded"
-msgstr ""
+msgstr "Luo automaattisesti uusi lahjakortti, jos uusi siru on koodattu"
#: pretix/base/settings.py:300
msgid "Use UID protection feature of NFC chip"
-msgstr ""
+msgstr "Käytä NFC-sirun UID-suojausominaisuutta"
#: pretix/base/settings.py:316
msgid "Maximum number of items per order"
-msgstr ""
+msgstr "Tuotteiden enimmäismäärä tilausta kohti"
#: pretix/base/settings.py:317
msgid "Add-on products will not be counted."
-msgstr ""
+msgstr "Lisätuotteita ei lasketa mukaan."
#: pretix/base/settings.py:326
msgid ""
"Show net prices instead of gross prices in the product list (not "
"recommended!)"
msgstr ""
+"Näytä nettohinnat bruttohintojen sijaan tuoteluettelossa (ei suositella!)"
#: pretix/base/settings.py:327
msgid ""
"Independent of your choice, the cart will show gross prices as this is the "
"price that needs to be paid."
msgstr ""
+"Riippumatta valinnastasi, ostoskorissa näytetään bruttohinnat, koska tämä on "
+"hinta, joka on maksettava."
#: pretix/base/settings.py:338
msgid "Hide prices on attendee ticket page"
-msgstr ""
+msgstr "Piilota hinnat osallistujien lippusivulla"
#: pretix/base/settings.py:339
msgid ""
@@ -8868,26 +8922,29 @@ msgid ""
"page of the individual attendees. The ticket buyer will of course see the "
"price."
msgstr ""
+"Jos henkilö ostaa useita lippuja ja lähetät sähköpostia kaikille "
+"osallistujille, tällä vaihtoehdolla lipun hintaa ei näytetä yksittäisten "
+"osallistujien lippusivulla. Lipun ostaja tietenkin näkee hinnan."
#: pretix/base/settings.py:357
msgid "Ask for attendee names"
-msgstr ""
+msgstr "Kysy osallistujien nimiä"
#: pretix/base/settings.py:358
msgid "Ask for a name for all personalized tickets."
-msgstr ""
+msgstr "Pyydä nimi kaikkiin personoituihin lippuihin."
#: pretix/base/settings.py:367
msgid "Require attendee names"
-msgstr ""
+msgstr "Vaadi osallistujien nimet"
#: pretix/base/settings.py:368
msgid "Require customers to fill in the names of all attendees."
-msgstr ""
+msgstr "Pyydä asiakkaita täyttämään kaikkien osallistujien nimet."
#: pretix/base/settings.py:378
msgid "Ask for email addresses per ticket"
-msgstr ""
+msgstr "Pyydä sähköpostiosoitteita per lippu"
#: pretix/base/settings.py:379
msgid ""
@@ -8900,10 +8957,19 @@ msgid ""
"primary email address, not to the per-attendee addresses. You can however "
"enable this in the email settings."
msgstr ""
+"Tavallisesti pretix pyytää yhtä sähköpostiosoitetta tilausta kohden, ja "
+"tilausvahvistus lähetetään vain tähän sähköpostiosoitteeseen. Jos otat tämän "
+"vaihtoehdon käyttöön, järjestelmä kysyy lisäksi yksittäisiä "
+"sähköpostiosoitteita jokaista henkilökohtaista lippua varten. Tämä voi olla "
+"hyödyllistä, jos haluat saada jokaiselle osallistujalle yksilölliset "
+"osoitteet myös ryhmätilauksissa. Pretix lähettää kuitenkin "
+"tilausvahvistuksen oletusarvoisesti vain yhteen ensisijaiseen "
+"sähköpostiosoitteeseen, ei osallistujakohtaisiin osoitteisiin. Voit "
+"kuitenkin ottaa tämän käyttöön sähköpostiasetuksissa."
#: pretix/base/settings.py:393
msgid "Require email addresses per ticket"
-msgstr ""
+msgstr "Vaadi sähköpostiosoitteet per lippu"
#: pretix/base/settings.py:394
msgid ""
@@ -8911,59 +8977,65 @@ msgid ""
"tickets. See the above option for more details. One email address for the "
"order confirmation will always be required regardless of this setting."
msgstr ""
+"Vaadi asiakkaita täyttämään henkilökohtaiset sähköpostiosoitteet kaikkia "
+"yksilöityjä lippuja varten. Katso lisätietoja yllä olevasta vaihtoehdosta. "
+"Yksi sähköpostiosoite tilausvahvistusta varten vaaditaan aina tästä "
+"asetuksesta riippumatta."
#: pretix/base/settings.py:406
msgid "Ask for company per ticket"
-msgstr ""
+msgstr "Pyydä yritys per lippu"
#: pretix/base/settings.py:415
msgid "Require company per ticket"
-msgstr ""
+msgstr "Vaadi yritys per lippu"
#: pretix/base/settings.py:425
msgid "Ask for postal addresses per ticket"
-msgstr ""
+msgstr "Pyydä postiosoitteet lippua kohden"
#: pretix/base/settings.py:434
msgid "Require postal addresses per ticket"
-msgstr ""
+msgstr "Vaadi postiosoitteet per lippu"
#: pretix/base/settings.py:444
msgid "Ask for the order email address twice"
-msgstr ""
+msgstr "Pyydä tilauksen sähköpostiosoite kahdesti"
#: pretix/base/settings.py:445
msgid ""
"Require customers to fill in the primary email address twice to avoid errors."
msgstr ""
+"Vaadi asiakkaita täyttämään ensisijainen sähköpostiosoite kahdesti virheiden "
+"välttämiseksi."
#: pretix/base/settings.py:454
msgid "Ask for a phone number per order"
-msgstr ""
+msgstr "Pyydä puhelinnumero tilausta kohden"
#: pretix/base/settings.py:463
msgid "Require a phone number per order"
-msgstr ""
+msgstr "Vaaditaan puhelinnumero tilausta kohden"
#: pretix/base/settings.py:473
msgid "Ask for invoice address"
-msgstr ""
+msgstr "Kysy laskun osoite"
#: pretix/base/settings.py:482
msgid "Do not ask for invoice address if an order is free"
-msgstr ""
+msgstr "Älä kysy laskun osoitetta, jos tilaus on ilmainen"
#: pretix/base/settings.py:491
msgid "Require customer name"
-msgstr ""
+msgstr "Vaadi asiakkaan nimi"
#: pretix/base/settings.py:500
msgid "Show attendee names on invoices"
-msgstr ""
+msgstr "Näytä osallistujien nimet laskuissa"
#: pretix/base/settings.py:509
msgid "Show event location on invoices"
-msgstr ""
+msgstr "Näytä tapahtuman sijainti laskuissa"
#: pretix/base/settings.py:510
msgid ""
@@ -8971,6 +9043,8 @@ msgid ""
"same for all lines. It will be shown on every line if there are different "
"locations."
msgstr ""
+"Tapahtumapaikka näytetään tuoteluettelon alapuolella, jos se on sama "
+"kaikille riveille. Se näytetään jokaisella rivillä, jos sijainnit ovat eri."
#: pretix/base/settings.py:520
msgid "Show exchange rates"
@@ -8979,35 +9053,39 @@ msgstr "Näytä valuuttakurssit"
#: pretix/base/settings.py:523 pretix/base/settings.py:531
#: pretix/control/forms/item.py:618
msgid "Never"
-msgstr ""
+msgstr "Ei koskaan"
#: pretix/base/settings.py:524 pretix/base/settings.py:532
msgid ""
"Based on European Central Bank daily rates, whenever the invoice recipient "
"is in an EU country that uses a different currency."
msgstr ""
+"Perustuu Euroopan keskuspankin päiväkursseihin aina, kun laskun "
+"vastaanottaja on eri valuuttaa käyttävässä EU-maassa."
#: pretix/base/settings.py:526 pretix/base/settings.py:534
msgid ""
"Based on Czech National Bank daily rates, whenever the invoice amount is not "
"in CZK."
msgstr ""
+"Perustuu Tšekin keskuspankin päiväkursseihin aina, kun laskun määrä ei ole "
+"CZK."
#: pretix/base/settings.py:544
msgid "Require invoice address"
-msgstr ""
+msgstr "Vaadi laskutusosoite"
#: pretix/base/settings.py:554
msgid "Require a business address"
-msgstr ""
+msgstr "Pyydä yrityksen osoite"
#: pretix/base/settings.py:555
msgid "This will require users to enter a company name."
-msgstr ""
+msgstr "Tämä edellyttää, että käyttäjät syöttävät yrityksen nimen."
#: pretix/base/settings.py:565
msgid "Ask for beneficiary"
-msgstr ""
+msgstr "Kysy edunsaajaa"
#: pretix/base/settings.py:575
msgid "Custom recipient field label"
@@ -9021,6 +9099,11 @@ msgid ""
"details as well as for displaying the value on the invoice. It will be shown "
"on the invoice below the headline. The field will not be required."
msgstr ""
+"Jos haluat lisätä laskun osoitelomakkeeseen mukautetun tekstikentän, "
+"esimerkiksi maakohtaisen ilmoittautumisnumeron, täytä merkintä tähän. Tätä "
+"merkintää käytetään sekä pyydettäessä käyttäjää syöttämään tietonsa että "
+"näytettäessä arvoa laskulla. Se näkyy laskussa otsikon alapuolella. Kenttä "
+"ei ole pakollinen."
#: pretix/base/settings.py:590
msgid "Custom recipient field help text"
@@ -9272,10 +9355,15 @@ msgid ""
"beyond the \"last date of payments\" configured above, which is always "
"enforced."
msgstr ""
+"Tilauksen voimassaoloaika päättyy todellisuudessa vain näin monta päivää "
+"asiakkaalle ilmoitetun voimassaolon päättymispäivän jälkeen. Jos valitset "
+"yllä ”Vain maksuaikojen päättyminen arkipäivisin”, myös tätä noudatetaan. "
+"Tämä ei kuitenkaan viivästytä edellä määritettyä ”viimeistä maksupäivää” "
+"pidemmälle, joka on aina voimassa."
#: pretix/base/settings.py:979
msgid "Hide \"payment pending\" state on customer-facing pages"
-msgstr ""
+msgstr "Piilota ”maksua odotetaan” -tila asiakaskohtaisilla sivuilla"
#: pretix/base/settings.py:980
msgid ""
@@ -14146,10 +14234,8 @@ msgid "Organizer short name"
msgstr "Järjestäjän nimen lyhennös"
#: pretix/control/forms/organizer.py:1137
-#, fuzzy
-#| msgid "Deactivate selected"
msgid "Allow access to reusable media"
-msgstr "Poista valitut käytöstä"
+msgstr "Salli uudelleenkäytettävien medioiden käyttömahdollisuus"
#: pretix/control/forms/organizer.py:1138
msgid ""
From 42469402b6538d2189e4661657f899af18dec92b Mon Sep 17 00:00:00 2001
From: Hannu Kaakinen
Date: Fri, 7 Feb 2025 21:19:28 +0000
Subject: [PATCH 35/99] Translations: Update Finnish
Currently translated at 41.7% (2440 of 5846 strings)
Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/fi/
powered by weblate
---
src/pretix/locale/fi/LC_MESSAGES/django.po | 305 +++++++++++++++------
1 file changed, 223 insertions(+), 82 deletions(-)
diff --git a/src/pretix/locale/fi/LC_MESSAGES/django.po b/src/pretix/locale/fi/LC_MESSAGES/django.po
index 06ae90bb39..c0e5e637d4 100644
--- a/src/pretix/locale/fi/LC_MESSAGES/django.po
+++ b/src/pretix/locale/fi/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-01-29 13:18+0000\n"
-"PO-Revision-Date: 2025-02-07 13:26+0000\n"
+"PO-Revision-Date: 2025-02-08 06:00+0000\n"
"Last-Translator: Hannu Kaakinen \n"
"Language-Team: Finnish \n"
@@ -8487,7 +8487,11 @@ msgid_plural ""
"You cannot select more than %(max)s items of the product %(product)s. We "
"removed the surplus items from your cart."
msgstr[0] ""
+"Tuotetta %(product)s ei voi valita enempää kuin %(max)s. Poistimme "
+"ylijääneet tuotteet ostoskoristasi."
msgstr[1] ""
+"Tuotteita %(product)s ei voi valita enempää kuin %(max)s. Poistimme "
+"ylijääneet tuotteet ostoskoristasi."
#: pretix/base/services/orders.py:154
msgid "The booking period has ended."
@@ -8498,6 +8502,8 @@ msgid ""
"The voucher code used for one of the items in your cart is not known in our "
"database."
msgstr ""
+"Tietokannassamme ei tiedetä, mitä kuponkikoodia käytettiin johonkin "
+"ostoskorissasi olevaan tuotteeseen."
#: pretix/base/services/orders.py:162
msgid ""
@@ -8505,46 +8511,60 @@ msgid ""
"used the maximum number of times allowed. We removed this item from your "
"cart."
msgstr ""
+"Yhdessä ostoskorissasi olevassa tuotteessa käytetty kuponkikoodi on jo "
+"käytetty sallitun enimmäismäärän verran. Poistimme tämän tuotteen "
+"ostoskoristasi."
#: pretix/base/services/orders.py:166
msgid ""
"The voucher code used for one of the items in your cart has already been too "
"often. We adjusted the price of the item in your cart."
msgstr ""
+"Yhdelle ostoskorissasi olevalle tuotteelle käytetty kuponkikoodi on jo liian "
+"usein käytetty. Korjasimme ostoskorissasi olevan tuotteen hintaa."
#: pretix/base/services/orders.py:170
msgid ""
"The voucher code used for one of the items in your cart is expired. We "
"removed this item from your cart."
msgstr ""
+"Eräässä ostoskorissasi olevassa tuotteessa käytetty kuponkikoodi on "
+"vanhentunut. Poistimme tämän tuotteen ostoskoristasi."
#: pretix/base/services/orders.py:173
msgid ""
"The voucher code used for one of the items in your cart is not valid for "
"this item. We removed this item from your cart."
msgstr ""
+"Eräässä ostoskorissasi olevassa tuotteessa käytetty kuponkikoodi ei ole "
+"voimassa tässä tuotteessa. Poistimme tämän tuotteen ostoskoristasi."
#: pretix/base/services/orders.py:175
msgid "You need a valid voucher code to order one of the products."
-msgstr ""
+msgstr "Tarvitset voimassa olevan kuponkikoodin tilataksesi yhden tuotteista."
#: pretix/base/services/orders.py:177
msgid ""
"The booking period for one of the events in your cart has not yet started. "
"The affected positions have been removed from your cart."
msgstr ""
+"Jonkin ostoskorissasi olevan tapahtuman varausaika ei ole vielä alkanut. "
+"Kyseiset paikat on poistettu ostoskoristasi."
#: pretix/base/services/orders.py:184
msgid ""
"One of the seats in your order was invalid, we removed the position from "
"your cart."
msgstr ""
+"Yksi tilauksesi paikoista oli virheellinen, poistimme paikan ostoskoristasi."
#: pretix/base/services/orders.py:185
msgid ""
"One of the seats in your order has been taken in the meantime, we removed "
"the position from your cart."
msgstr ""
+"Yksi tilauksenne istuimista on tällä välin varattu, joten poistimme paikan "
+"ostoskorista."
#: pretix/base/services/orders.py:201
#, python-format
@@ -8555,7 +8575,7 @@ msgstr "Et voi poistaa sijaintia %(addon)s, koska se on jo kirjautunut sisään.
#: pretix/base/services/orders.py:202
msgid "Paid products not supported without a valid currency."
-msgstr ""
+msgstr "Maksullisia tuotteita ei tueta ilman voimassa olevaa valuuttaa."
#: pretix/base/services/orders.py:218
msgid "The order was not canceled."
@@ -8563,16 +8583,16 @@ msgstr "Tilausta ei peruutettu."
#: pretix/base/services/orders.py:272 pretix/control/forms/orders.py:124
msgid "The new expiry date needs to be in the future."
-msgstr ""
+msgstr "Uuden päättymispäivän on oltava tulevaisuudessa."
#: pretix/base/services/orders.py:365 pretix/base/services/orders.py:451
msgid "This order is not pending approval."
-msgstr ""
+msgstr "Tämä tilaus ei odota hyväksyntää."
#: pretix/base/services/orders.py:509 pretix/presale/views/order.py:938
#: pretix/presale/views/order.py:992
msgid "You cannot cancel this order."
-msgstr ""
+msgstr "Et voi peruuttaa tätä tilausta."
#: pretix/base/services/orders.py:521
#, python-brace-format
@@ -8580,11 +8600,13 @@ msgid ""
"This order can not be canceled since the gift card {card} purchased in this "
"order has already been redeemed."
msgstr ""
+"Tätä tilausta ei voi peruuttaa, koska tässä tilauksessa ostettu lahjakortti "
+"{card} on jo lunastettu."
#: pretix/base/services/orders.py:561 pretix/control/forms/orders.py:205
msgid ""
"The cancellation fee cannot be higher than the total amount of this order."
-msgstr ""
+msgstr "Peruutusmaksu ei voi olla suurempi kuin tämän tilauksen kokonaissumma."
#: pretix/base/services/orders.py:955
msgid "The selected payment methods do not cover the total balance."
@@ -8596,52 +8618,60 @@ msgid ""
"changed. Either one of the prices changed just now, or a gift card you used "
"has been used in the meantime. Please check the prices below and try again."
msgstr ""
+"Huomasimme tilausta tehdessämme, että tilauksen loppusumma on muuttunut. "
+"Joko jokin hinnoista muuttui juuri nyt, tai käyttämäsi lahjakortti on "
+"käytetty sillä välin. Tarkista alla olevat hinnat ja yritä uudelleen."
#: pretix/base/services/orders.py:1518
msgid "You need to select a variation of the product."
-msgstr ""
+msgstr "Sinun on valittava tuotteen muunnelma."
#: pretix/base/services/orders.py:1519
#, python-brace-format
msgid ""
"The quota {name} does not have enough capacity left to perform the operation."
msgstr ""
+"Kiintiössä {name} ei ole tarpeeksi kapasiteettia jäljellä operaation "
+"suorittamiseen."
#: pretix/base/services/orders.py:1520
msgid "There is no quota defined that allows this operation."
-msgstr ""
+msgstr "Tätä toimintoa varten ei ole määritelty kiintiötä."
#: pretix/base/services/orders.py:1521
msgid "The selected product is not active or has no price set."
-msgstr ""
+msgstr "Valittu tuote ei ole aktiivinen tai sille ei ole asetettu hintaa."
#: pretix/base/services/orders.py:1522
msgid ""
"This operation would leave the order empty. Please cancel the order itself "
"instead."
msgstr ""
+"Tämä toimenpide jättäisi tilauksen tyhjäksi. Peruuta sen sijaan itse tilaus."
#: pretix/base/services/orders.py:1524
msgid ""
"This operation would make the order free and therefore immediately paid, "
"however no quota is available."
msgstr ""
+"Tämä toimenpide tekisi tilauksesta vapaan ja siten välittömästi maksetun, "
+"mutta kiintiötä ei ole käytettävissä."
#: pretix/base/services/orders.py:1527
msgid ""
"This is an add-on product, please select the base position it should be "
"added to."
-msgstr ""
+msgstr "Tämä on lisätuote, valitse perusasento, johon se halutaan lisätä."
#: pretix/base/services/orders.py:1528
msgid ""
"The selected base position does not allow you to add this product as an add-"
"on."
-msgstr ""
+msgstr "Valitun perusasennon mukaan et voi lisätä tätä tuotetta lisäosana."
#: pretix/base/services/orders.py:1529
msgid "You need to choose a subevent for the new position."
-msgstr ""
+msgstr "Sinun on valittava alitapahtuma uudelle paikalle."
#: pretix/base/services/orders.py:1532
#, python-brace-format
@@ -8649,24 +8679,28 @@ msgid ""
"You selected seat \"{seat}\" for a date that does not match the selected "
"ticket date. Please choose a seat again."
msgstr ""
+"Valitsit paikan ”{seat}” päivämäärälle, joka ei vastaa valittua lipun "
+"päivämäärää. Ole hyvä ja valitse paikka uudelleen."
#: pretix/base/services/orders.py:1534
msgid "The selected product requires you to select a seat."
-msgstr ""
+msgstr "Valittu tuote edellyttää, että valitset istumapaikan."
#: pretix/base/services/orders.py:1535
msgid "The selected product does not allow to select a seat."
-msgstr ""
+msgstr "Valittu tuote ei salli paikan valitsemista."
#: pretix/base/services/orders.py:1536
msgid "The selected country is blocked by your tax rule."
-msgstr ""
+msgstr "Verosääntösi estää valitun maan käytön."
#: pretix/base/services/orders.py:1537
msgid ""
"You cannot change the price of a position that has been used to issue a gift "
"card."
msgstr ""
+"Et voi muuttaa sellaisen position hintaa, jota on käytetty lahjakortin "
+"myöntämiseen."
#: pretix/base/services/orders.py:2341 pretix/base/services/orders.py:2357
#, python-brace-format
@@ -8674,18 +8708,22 @@ msgid ""
"A position can not be canceled since the gift card {card} purchased in this "
"order has already been redeemed."
msgstr ""
+"Positiota ei voi peruuttaa, koska tässä tilauksessa ostettu lahjakortti "
+"{card} on jo lunastettu."
#: pretix/base/services/orders.py:3010
msgid ""
"There was an error while trying to send the money back to you. Please "
"contact the event organizer for further information."
msgstr ""
+"Kun yritimme lähettää rahat takaisin sinulle, tapahtui virhe. Ota yhteyttä "
+"tapahtuman järjestäjään saadaksesi lisätietoja."
#: pretix/base/services/placeholders.py:469
#: pretix/base/services/placeholders.py:478
#: pretix/base/templates/pretixbase/email/order_details.html:52
msgid "View registration details"
-msgstr ""
+msgstr "Näytä ilmoittautumistiedot"
#: pretix/base/services/placeholders.py:575
msgid "Sample Corporation"
@@ -8710,7 +8748,7 @@ msgstr "Ole hyvä ja siirrä raha tälle tilille: 9999-9999-9999-9999"
#: pretix/base/services/placeholders.py:765
#: pretix/control/views/organizer.py:334
msgid "This value will be replaced based on dynamic parameters."
-msgstr ""
+msgstr "Tämä arvo korvataan dynaamisten parametrien perusteella."
#: pretix/base/services/seating.py:61 pretix/base/services/seating.py:128
#, python-format
@@ -8718,6 +8756,8 @@ msgid ""
"You can not change the plan since seat \"%s\" is not present in the new plan "
"and is already sold."
msgstr ""
+"Et voi muuttaa suunnitelmaa, koska paikka ”%s” ei ole uudessa suunnitelmassa "
+"ja se on jo myyty."
#: pretix/base/services/seating.py:131
#, python-format
@@ -8725,32 +8765,34 @@ msgid ""
"You can not change the plan since seat \"%s\" is not present in the new plan "
"and is already used in a voucher."
msgstr ""
+"Et voi muuttaa suunnitelmaa, koska paikka ”%s” ei ole uudessa "
+"suunnitelmassa, vaan se on jo käytössä tositteessa."
#: pretix/base/services/shredder.py:126 pretix/control/views/shredder.py:96
msgid ""
"The download file could no longer be found on the server, please try to "
"start again."
-msgstr ""
+msgstr "Lataustiedostoa ei enää löydy palvelimelta, yritä käynnistää uudelleen."
#: pretix/base/services/shredder.py:130 pretix/control/views/shredder.py:102
msgid "This file is from a different event."
-msgstr ""
+msgstr "Tämä tiedosto on eri tapahtumasta."
#: pretix/base/services/shredder.py:139
msgid "The confirm code you entered was incorrect."
-msgstr ""
+msgstr "Syöttämäsi vahvistuskoodi oli virheellinen."
#: pretix/base/services/shredder.py:141
msgid "Something happened in your event after the export, please try again."
-msgstr ""
+msgstr "Jotain tapahtui tapahtumassasi viennin jälkeen, yritä uudelleen."
#: pretix/base/services/shredder.py:177
msgid "Data shredding completed"
-msgstr ""
+msgstr "Tietojen silppuaminen valmis"
#: pretix/base/services/stats.py:215
msgid "Uncategorized"
-msgstr ""
+msgstr "Luokittelematon"
#: pretix/base/services/tax.py:40 pretix/base/services/tax.py:206
msgid ""
@@ -8759,15 +8801,19 @@ msgid ""
"your invoice. You can get the tax amount back via the VAT reimbursement "
"process."
msgstr ""
+"Alv-tunnustasi ei voitu tarkistaa, koska maasi alv-tarkistuspalvelu ei ole "
+"tällä hetkellä käytettävissä. Siksi meidän on veloitettava arvonlisävero "
+"laskustasi. Voit saada veron määrän takaisin arvonlisäveron "
+"palautusprosessin kautta."
#: pretix/base/services/tax.py:45 pretix/base/services/tax.py:186
#: pretix/base/services/tax.py:213
msgid "This VAT ID is not valid. Please re-check your input."
-msgstr ""
+msgstr "Tämä alv-tunnus ei ole voimassa. Tarkista syöttösi uudelleen."
#: pretix/base/services/tax.py:46 pretix/base/services/tax.py:171
msgid "Your VAT ID does not match the selected country."
-msgstr ""
+msgstr "Alv-tunnuksesi ei vastaa valittua maata."
#: pretix/base/services/tax.py:190 pretix/base/services/tax.py:198
msgid ""
@@ -8775,14 +8821,17 @@ msgid ""
"country returned an incorrect result. We will therefore need to charge VAT "
"on your invoice. Please contact support to resolve this manually."
msgstr ""
+"Alv-tunnustasi ei voitu tarkistaa, koska maasi alv-tarkistuspalvelu antoi "
+"virheellisen tuloksen. Siksi meidän on veloitettava arvonlisävero "
+"laskustasi. Ota yhteyttä asiakaspalveluun ratkaistaksesi tämän manuaalisesti."
#: pretix/base/services/tickets.py:103 pretix/control/views/pdf.py:96
msgid "Sample workshop"
-msgstr ""
+msgstr "Esimerkkityöpaja"
#: pretix/base/services/update_check.py:113
msgid "pretix update available"
-msgstr ""
+msgstr "pretix-päivitys saatavilla"
#: pretix/base/services/update_check.py:116
#, python-brace-format
@@ -8804,17 +8853,31 @@ msgid ""
"\n"
"your pretix developers"
msgstr ""
+"Hei!\n"
+"\n"
+"Pretixiin tai johonkin pretix-asennukseesi asentamaasi lisäosaan on "
+"saatavilla päivitys. Klikkaa seuraavaa linkkiä saadaksesi lisätietoja:\n"
+"\n"
+" {url} \n"
+"\n"
+"Löydät aina tietoa uusimmista päivityksistä pretix.eu-blogista:\n"
+"\n"
+"https://pretix.eu/about/en/blog/\n"
+"\n"
+"Terveisin,\n"
+"\n"
+"pretix-kehittäjänne"
#: pretix/base/services/update_check.py:145
#: pretix/base/services/update_check.py:147
#, python-format
msgid "Plugin: %s"
-msgstr ""
+msgstr "Lisäosa:%s"
#: pretix/base/services/vouchers.py:56 pretix/control/logdisplay.py:512
#, python-brace-format
msgid "The voucher has been sent to {recipient}."
-msgstr ""
+msgstr "Kuponki on lähetetty {recipient}."
#: pretix/base/settings.py:125
msgid "Allow usage of restricted plugins"
@@ -8822,22 +8885,26 @@ msgstr ""
#: pretix/base/settings.py:158
msgid "Allow customers to create accounts"
-msgstr ""
+msgstr "Salli asiakkaiden luoda tilejä"
#: pretix/base/settings.py:159
msgid ""
"This will allow customers to sign up for an account on your ticket shop. "
"This is a prerequisite for some advanced features like memberships."
msgstr ""
+"Tämä sallii asiakkaiden rekisteröityä tilille lippukaupassasi. Tämä on "
+"edellytys joillekin kehittyneille ominaisuuksille, kuten jäsenyydelle."
#: pretix/base/settings.py:169
msgid "Allow customers to log in with email address and password"
-msgstr ""
+msgstr "Salli asiakkaiden kirjautua sisään sähköpostiosoitteella ja salasanalla"
#: pretix/base/settings.py:170
msgid ""
"If disabled, you will need to connect one or more single-sign-on providers."
msgstr ""
+"Jos ei käytössä, sinun on yhdistettävä yksi tai useampi kertakirjautumisen "
+"palveluntarjoaja."
#: pretix/base/settings.py:180
msgid "Match orders based on email address"
@@ -9115,10 +9182,12 @@ msgid ""
"will be displayed underneath the field. It will not be displayed on the "
"invoice."
msgstr ""
+"Jos käytät mukautettua vastaanottajakenttää, voit määrittää kentän alla "
+"näkyvän ohjetekstin. Sitä ei näytetä laskussa."
#: pretix/base/settings.py:602
msgid "Ask for VAT ID"
-msgstr ""
+msgstr "Kysy alv-tunnusta"
#: pretix/base/settings.py:604
#, python-brace-format
@@ -9127,66 +9196,77 @@ msgid ""
"only requested from business customers in the following countries: "
"{countries}"
msgstr ""
+"Toimii vain, jos pyydetään laskutusosoitetta. Alv-tunnusta ei koskaan "
+"vaadita, ja sitä pyydetään vain seuraavissa maissa olevilta "
+"yritysasiakkailta: {countries}"
#: pretix/base/settings.py:617
msgid "Invoice address explanation"
-msgstr ""
+msgstr "Laskun osoitteen selitys"
#: pretix/base/settings.py:620
msgid "This text will be shown above the invoice address form during checkout."
-msgstr ""
+msgstr "Tämä teksti näkyy laskun osoitelomakkeen yläpuolella kassalla."
#: pretix/base/settings.py:629
msgid "Show paid amount on partially paid invoices"
-msgstr ""
+msgstr "Näytä maksettu summa osittain maksetuista laskuista"
#: pretix/base/settings.py:630
msgid ""
"If an invoice has already been paid partially, this option will add the paid "
"and pending amount to the invoice."
msgstr ""
+"Jos lasku on jo osittain maksettu, tämä vaihtoehto lisää maksetun ja "
+"maksamatta olevan määrän laskuun."
#: pretix/base/settings.py:640
msgid "Show free products on invoices"
-msgstr ""
+msgstr "Näytä ilmaiset tuotteet laskuissa"
#: pretix/base/settings.py:641
msgid ""
"Note that invoices will never be generated for orders that contain only free "
"products."
msgstr ""
+"Huomaa, että laskuja ei koskaan luoda tilauksista, jotka sisältävät vain "
+"ilmaistuotteita."
#: pretix/base/settings.py:651
msgid "Show expiration date of order"
-msgstr ""
+msgstr "Näytä tilauksen viimeinen voimassaolopäivä"
#: pretix/base/settings.py:652
msgid ""
"The expiration date will not be shown if the invoice is generated after the "
"order is paid."
msgstr ""
+"Vanhentumispäivää ei näytetä, jos lasku laaditaan tilauksen maksamisen "
+"jälkeen."
#: pretix/base/settings.py:662
msgid "Minimum length of invoice number after prefix"
-msgstr ""
+msgstr "Laskun numeron vähimmäispituus etuliitteen jälkeen"
#: pretix/base/settings.py:663
msgid ""
"The part of your invoice number after your prefix will be filled up with "
"leading zeros up to this length, e.g. INV-001 or INV-00001."
msgstr ""
+"Laskunumeron etuliitteen jälkeinen osa täytetään etunollilla tähän pituuteen "
+"asti, esim. INV-001 tai INV-00001."
#: pretix/base/settings.py:674
msgid "Generate invoices with consecutive numbers"
-msgstr ""
+msgstr "Laskujen luominen juoksevilla numeroilla"
#: pretix/base/settings.py:675
msgid "If deactivated, the order code will be used in the invoice number."
-msgstr ""
+msgstr "Jos tilauskoodi on poistettu käytöstä, sitä käytetään laskunumerossa."
#: pretix/base/settings.py:684
msgid "Invoice number prefix"
-msgstr ""
+msgstr "Laskun numeron etuliite"
#: pretix/base/settings.py:685
msgid ""
@@ -9198,15 +9278,22 @@ msgid ""
"can use %Y (with century) %y (without century) to insert the year of the "
"invoice, or %m and %d for the day of month."
msgstr ""
+"Tämä merkintä lisätään laskunumeroiden eteen. Jos jätät tämän kentän "
+"tyhjäksi, käytetään tapahtuman tunnusta, jota seuraa viiva. Huomio: Jos "
+"useat saman organisaation tapahtumat käyttävät samaa arvoa tässä kentässä, "
+"ne jakavat numeroalueensa, eli jokaista täyttä numeroa käytetään enintään "
+"kerran kaikissa tapahtumissasi. Tämä asetus vaikuttaa vain tuleviin "
+"laskuihin. Voit käyttää %Y (vuosiluvun kanssa) %y (ilman vuosilukua) laskun "
+"vuosiluvun lisäämiseen tai %m ja %d kuun päivän ilmoittamiseen."
#: pretix/base/settings.py:697 pretix/base/settings.py:719
#, python-brace-format
msgid "Please only use the characters {allowed} in this field."
-msgstr ""
+msgstr "Käytä tässä kentässä vain {allowed} merkkejä."
#: pretix/base/settings.py:710
msgid "Invoice number prefix for cancellations"
-msgstr ""
+msgstr "Laskun numeron etuliite peruutuksia varten"
#: pretix/base/settings.py:711
msgid ""
@@ -9214,10 +9301,13 @@ msgid ""
"this field empty, the same numbering scheme will be used that you configured "
"for regular invoices."
msgstr ""
+"Tämä merkintä lisätään peruutettujen laskujen numeroihin. Jos jätät tämän "
+"kentän tyhjäksi, käytetään samaa numerointijärjestelmää, jonka olet "
+"määrittänyt tavallisille laskuille."
#: pretix/base/settings.py:732
msgid "Highlight order code to make it stand out visibly"
-msgstr ""
+msgstr "Korosta tilauskoodi, jotta se erottuu näkyvästi"
#: pretix/base/settings.py:733 pretix/base/settings.py:744
msgid "Only respected by some invoice renderers."
@@ -9230,25 +9320,27 @@ msgstr "Fontti"
#: pretix/base/settings.py:769
msgid "Length of ticket codes"
-msgstr ""
+msgstr "Lippukoodien pituus"
#: pretix/base/settings.py:796
msgid "Reservation period"
-msgstr ""
+msgstr "Varausaika"
#: pretix/base/settings.py:798
msgid ""
"The number of minutes the items in a user's cart are reserved for this user."
msgstr ""
+"Niiden minuuttien määrä, jotka käyttäjän ostoskorissa olevat tuotteet on "
+"varattu tälle käyttäjälle."
#: pretix/base/settings.py:807
msgid ""
"Directly redirect to check-out after a product has been added to the cart."
-msgstr ""
+msgstr "Ohjaa suoraan kassalle, kun tuote on lisätty ostoskoriin."
#: pretix/base/settings.py:816
msgid "End of presale text"
-msgstr ""
+msgstr "Myyntiä edeltävän tekstin loppu"
#: pretix/base/settings.py:819
msgid ""
@@ -9256,38 +9348,46 @@ msgid ""
"timeframe for this event is over. You can use it to describe other options "
"to get a ticket, such as a box office."
msgstr ""
+"Tämä teksti näkyy lippukaupan yläpuolella, kun tapahtumalle varattu "
+"myyntiaika on ohi. Voit käyttää sitä kuvaamaan muita vaihtoehtoja lipun "
+"saamiseksi, kuten lipputulot."
#: pretix/base/settings.py:833
msgid "Guidance text"
-msgstr ""
+msgstr "Ohjeen teksti"
#: pretix/base/settings.py:834
msgid ""
"This text will be shown above the payment options. You can explain the "
"choices to the user here, if you want."
msgstr ""
+"Tämä teksti näkyy maksuvaihtoehtojen yläpuolella. Voit halutessasi selittää "
+"käyttäjälle valinnat täällä."
#: pretix/base/settings.py:845 pretix/base/settings.py:854
msgid "in days"
-msgstr ""
+msgstr "päivinä"
#: pretix/base/settings.py:846 pretix/base/settings.py:855
msgid "in minutes"
-msgstr ""
+msgstr "minuutteina"
#: pretix/base/settings.py:850
msgid "Set payment term"
-msgstr ""
+msgstr "Aseta maksuehto"
#: pretix/base/settings.py:857
msgid ""
"If using days, the order will expire at the end of the last day. Using "
"minutes is more exact, but should only be used for real-time payment methods."
msgstr ""
+"Jos käytät päiviä, tilaus vanhenee viimeisen päivän lopussa. Minuuttien "
+"käyttäminen on tarkempaa, mutta sitä tulisi käyttää vain reaaliaikaisiin "
+"maksutapoihin."
#: pretix/base/settings.py:867
msgid "Payment term in days"
-msgstr ""
+msgstr "Maksuehto päivinä"
#: pretix/base/settings.py:874
msgid ""
@@ -9296,10 +9396,15 @@ msgid ""
"recommend 14 days. If you only use real-time payment methods, we recommend "
"still setting two or three days to allow people to retry failed payments."
msgstr ""
+"Päivien määrä tilauksen tekemisen jälkeen, joka käyttäjän on maksettava "
+"varauksensa säilyttämiseksi. Jos käytät hitaita maksutapoja, kuten "
+"pankkisiirtoa, suosittelemme 14 päivää. Jos käytät vain reaaliaikaisia "
+"maksutapoja, suosittelemme, että asetat silti kaksi tai kolme päivää, jotta "
+"käyttäjät voivat yrittää epäonnistuneita maksuja uudelleen."
#: pretix/base/settings.py:892
msgid "Only end payment terms on weekdays"
-msgstr ""
+msgstr "Lopeta maksuehdot vain arkisin"
#: pretix/base/settings.py:893
msgid ""
@@ -9308,10 +9413,14 @@ msgid ""
"some countries by civil law. This will not effect the last date of payments "
"configured below."
msgstr ""
+"Jos tämä aktivoidaan ja minkä tahansa tilauksen maksuehto päättyy lauantaina "
+"tai sunnuntaina, se siirretään sen sijaan seuraavaan maanantaihin. Laki "
+"edellyttää tätä joissakin maissa. Tämä ei vaikuta alla määritettyyn maksujen "
+"viimeiseen päivämäärään."
#: pretix/base/settings.py:909
msgid "Payment term in minutes"
-msgstr ""
+msgstr "Maksuaika minuuteissa"
#: pretix/base/settings.py:910
msgid ""
@@ -9320,10 +9429,15 @@ msgid ""
"methods. Please note that for technical reasons, the actual time frame might "
"be a few minutes longer before the order is marked as expired."
msgstr ""
+"Minuuttien määrä tilauksen tekemisen jälkeen, jona aikana käyttäjän on "
+"maksettava varauksensa säilyttämiseksi. Käytä tätä vain, jos tarjoat "
+"yksinomaan reaaliaikaisia maksutapoja. Huomaa, että teknisistä syistä "
+"todellinen aika voi olla muutama minuutti pidempi ennen kuin tilaus "
+"merkitään vanhentuneeksi."
#: pretix/base/settings.py:933
msgid "Last date of payments"
-msgstr ""
+msgstr "Maksujen viimeinen päivämäärä"
#: pretix/base/settings.py:934
msgid ""
@@ -9331,10 +9445,14 @@ msgid ""
"configured above. If you use the event series feature and an order contains "
"tickets for multiple dates, the earliest date will be used."
msgstr ""
+"Viimeinen päivämäärä, jolloin maksuja hyväksytään. Tämä on etusijalla edellä "
+"määritettyihin ehtoihin nähden. Jos käytät tapahtumasarjaominaisuutta ja "
+"tilaus sisältää lippuja useille päivämäärille, käytetään aikaisinta "
+"päivämäärää."
#: pretix/base/settings.py:945
msgid "Automatically expire unpaid orders"
-msgstr ""
+msgstr "Vanhenna automaattisesti maksamattomat tilaukset"
#: pretix/base/settings.py:946
msgid ""
@@ -9342,6 +9460,10 @@ msgid ""
"'expired' after the end of their payment deadline. This means that those "
"tickets go back to the pool and can be ordered by other people."
msgstr ""
+"Jos tämä on valittuna, kaikki maksamattomat tilaukset muuttuvat "
+"automaattisesti odottavista vanhentuneiksi maksuajan päätyttyä. Tämä "
+"tarkoittaa, että nämä liput menevät takaisin valittavaksi, ja muut ihmiset "
+"voivat tilata ne."
#: pretix/base/settings.py:957
msgid "Expiration delay"
@@ -9371,6 +9493,9 @@ msgid ""
"but no indication of missing payment will be visible on the ticket pages of "
"attendees who did not buy the ticket themselves."
msgstr ""
+"Maksuohjepaneeli näytetään edelleen ensisijaiselle asiakkaalle, mutta "
+"merkintää maksun puuttumisesta ei näy niiden osallistujien lippusivuilla, "
+"jotka eivät ole ostaneet lippua itse."
#: pretix/base/settings.py:996
msgid ""
@@ -9379,10 +9504,14 @@ msgid ""
"shown this page again and you can either redeem another gift card or select "
"a different payment method for the difference."
msgstr ""
+"Jos sinulla on lahjakortti, syötä lahjakortin koodi tähän. Jos lahjakortilla "
+"ei ole tarpeeksi luottoa koko tilauksen maksamiseen, sinulle näytetään tämä "
+"sivu uudelleen ja voit joko lunastaa toisen lahjakortin tai valita "
+"erotukselle toisen maksutavan."
#: pretix/base/settings.py:1012
msgid "Accept late payments"
-msgstr ""
+msgstr "Hyväksy myöhästyneet maksut"
#: pretix/base/settings.py:1013
msgid ""
@@ -9390,26 +9519,29 @@ msgid ""
"enough capacity is available. No payments will ever be accepted after the "
"'Last date of payments' configured above."
msgstr ""
+"Hyväksy tilausten maksut, vaikka ne olisivat vanhentuneessa tilassa, kunhan "
+"kapasiteettia on riittävästi. Maksuja ei koskaan hyväksytä yllä määritetyn "
+"\"Viimeinen maksupäivä\" jälkeen."
#: pretix/base/settings.py:1024
msgid "Show start date"
-msgstr ""
+msgstr "Näytä aloituspäivä"
#: pretix/base/settings.py:1025
msgid "Show the presale start date before presale has started."
-msgstr ""
+msgstr "Näytä ennakkomyynnin alkamispäivä ennen ennakkomyynnin alkamista."
#: pretix/base/settings.py:1040 pretix/base/settings.py:1052
msgid "Do not generate invoices"
-msgstr ""
+msgstr "Älä luo laskuja"
#: pretix/base/settings.py:1041 pretix/base/settings.py:1057
msgid "Only manually in admin panel"
-msgstr ""
+msgstr "Vain manuaalisesti hallintapaneelissa"
#: pretix/base/settings.py:1042 pretix/base/settings.py:1055
msgid "Automatically on user request"
-msgstr ""
+msgstr "Automaattisesti käyttäjän pyynnöstä"
#: pretix/base/settings.py:1043 pretix/base/settings.py:1056
msgid "Automatically on user request for paid orders"
@@ -9417,15 +9549,15 @@ msgstr "Automaattisesti käyttäjän pyynnöstä maksetuissa tilauksissa"
#: pretix/base/settings.py:1044
msgid "Automatically for all created orders"
-msgstr ""
+msgstr "Automaattisesti kaikille luoduille tilauksille"
#: pretix/base/settings.py:1045
msgid "Automatically on payment or when required by payment method"
-msgstr ""
+msgstr "Automaattisesti maksun yhteydessä tai maksutavan niin vaatiessa"
#: pretix/base/settings.py:1049
msgid "Generate invoices"
-msgstr ""
+msgstr "Luo laskuja"
#: pretix/base/settings.py:1053
msgid "Automatically after payment or when required by payment method"
@@ -9433,15 +9565,15 @@ msgstr "Automaattisesti maksun jälkeen tai kun maksutapa vaatii sitä"
#: pretix/base/settings.py:1054
msgid "Automatically before payment for all created orders"
-msgstr ""
+msgstr "Automaattisesti ennen kaikkien luotujen tilausten maksamista"
#: pretix/base/settings.py:1059
msgid "Invoices will never be automatically generated for free orders."
-msgstr ""
+msgstr "Laskuja ei koskaan luoda automaattisesti ilmaisista tilauksista."
#: pretix/base/settings.py:1068
msgid "Automatically cancel and reissue invoice on address changes"
-msgstr ""
+msgstr "Peruuta ja lähetä lasku automaattisesti uudelleen osoitteenmuutoksista"
#: pretix/base/settings.py:1069
msgid ""
@@ -9449,10 +9581,13 @@ msgid ""
"will automatically be canceled and a new invoice will be issued. This "
"setting does not affect changes made through the backend."
msgstr ""
+"Jos asiakkaat muuttavat olemassa olevan tilauksen laskutusosoitetta, lasku "
+"peruutetaan automaattisesti ja uusi lasku lähetetään. Tämä asetus ei vaikuta "
+"taustajärjestelmän kautta tehtyihin muutoksiin."
#: pretix/base/settings.py:1080
msgid "Allow to update existing invoices"
-msgstr ""
+msgstr "Salli olemassa olevien laskujen päivittäminen"
#: pretix/base/settings.py:1081
msgid ""
@@ -9460,62 +9595,68 @@ msgid ""
"most countries, we recommend to leave this option turned off and always "
"issue a new invoice if a change needs to be made."
msgstr ""
+"Oletuksena laskuja ei voi enää koskaan muuttaa niiden lähettämisen jälkeen. "
+"Useimmissa maissa suosittelemme, että jätät tämän vaihtoehdon pois päältä ja "
+"lähetät aina uuden laskun, jos muutoksia on tehtävä."
#: pretix/base/settings.py:1096
msgid "Address line"
-msgstr ""
+msgstr "Osoiterivi"
#: pretix/base/settings.py:1100
msgid "Albert Einstein Road 52"
-msgstr ""
+msgstr "Albert Einsteinin tie 52"
#: pretix/base/settings.py:1152
msgid "Domestic tax ID"
-msgstr ""
+msgstr "Kotimaan verotunnus"
#: pretix/base/settings.py:1153
msgid "e.g. tax number in Germany, ABN in Australia, …"
-msgstr ""
+msgstr "esimerkiksi veronumero Saksassa, ABN Australiassa,…"
#: pretix/base/settings.py:1162
msgid "EU VAT ID"
-msgstr ""
+msgstr "EU ALV tunnus"
#: pretix/base/settings.py:1175
msgid "e.g. With this document, we sent you the invoice for your ticket order."
-msgstr ""
+msgstr "Tämän asiakirjan mukana lähetimme sinulle laskun lipputilauksestasi."
#: pretix/base/settings.py:1178
msgid "Introductory text"
-msgstr ""
+msgstr "Johdanto"
#: pretix/base/settings.py:1179
msgid "Will be printed on every invoice above the invoice rows."
-msgstr ""
+msgstr "Tulostetaan jokaiselle laskulle laskurivien yläpuolelle."
#: pretix/base/settings.py:1192
msgid ""
"e.g. Thank you for your purchase! You can find more information on the event "
"at ..."
msgstr ""
+"esim. Kiitos ostoksestasi! Lisätietoja tapahtumasta löydät osoitteesta..."
#: pretix/base/settings.py:1195
msgid "Additional text"
-msgstr ""
+msgstr "Lisäteksti"
#: pretix/base/settings.py:1196
msgid "Will be printed on every invoice below the invoice total."
-msgstr ""
+msgstr "Tulostetaan jokaiseen laskuun laskun loppusumman alle."
#: pretix/base/settings.py:1209
msgid ""
"e.g. your bank details, legal details like your VAT ID, registration "
"numbers, etc."
msgstr ""
+"esim. pankkitietosi, oikeudelliset tiedot, kuten ALV-tunnuksesi, "
+"rekisteröintinumerosi jne."
#: pretix/base/settings.py:1212
msgid "Footer"
-msgstr ""
+msgstr "Alatunniste"
#: pretix/base/settings.py:1213
msgid ""
From e473d0bfceff31229cedaf3beaf2b813eda57eea Mon Sep 17 00:00:00 2001
From: Hannu Kaakinen
Date: Sat, 8 Feb 2025 13:16:29 +0000
Subject: [PATCH 36/99] Translations: Update Finnish
Currently translated at 51.7% (3028 of 5846 strings)
Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/fi/
powered by weblate
---
src/pretix/locale/fi/LC_MESSAGES/django.po | 1868 +++++++++++---------
1 file changed, 1005 insertions(+), 863 deletions(-)
diff --git a/src/pretix/locale/fi/LC_MESSAGES/django.po b/src/pretix/locale/fi/LC_MESSAGES/django.po
index c0e5e637d4..57182c7831 100644
--- a/src/pretix/locale/fi/LC_MESSAGES/django.po
+++ b/src/pretix/locale/fi/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-01-29 13:18+0000\n"
-"PO-Revision-Date: 2025-02-08 06:00+0000\n"
+"PO-Revision-Date: 2025-02-08 16:00+0000\n"
"Last-Translator: Hannu Kaakinen \n"
"Language-Team: Finnish \n"
@@ -686,7 +686,7 @@ msgstr ""
#: pretix/base/context.py:45
#, python-brace-format
msgid "powered by {name} based on pretix"
-msgstr "powered by {name} based on pretix"
+msgstr "palvelun tarjoaa {name} pretixin pohjalla"
#: pretix/base/context.py:52
#, python-format
@@ -1896,7 +1896,7 @@ msgstr "Sisällytä vain tilaukset, jotka on luotu tämän aikarajan sisällä."
#: pretix/plugins/reports/exporters.py:454
#: pretix/plugins/ticketoutputpdf/exporters.py:97
msgid "Event date"
-msgstr "Tapahtumapäivämäärä"
+msgstr "Tapahtuman päivämäärä"
#: pretix/base/exporters/orderlist.py:138
msgid ""
@@ -2731,7 +2731,7 @@ msgstr "Kaikki"
#: pretix/base/exporters/orderlist.py:1306 pretix/control/forms/filter.py:1417
msgid "Live"
-msgstr "Live"
+msgstr "Livenä"
#: pretix/base/exporters/orderlist.py:1315 pretix/control/forms/filter.py:1425
#: pretix/control/templates/pretixcontrol/pdf/index.html:252
@@ -2963,7 +2963,7 @@ msgstr ""
#: pretix/base/forms/user.py:56 pretix/control/forms/users.py:45
#: pretix/presale/forms/customer.py:283 pretix/presale/forms/customer.py:371
msgid "Please enter the same password twice"
-msgstr "Syötä sama salasana kahdesti"
+msgstr "Syötä kaksi kertaa sama salasana"
#: pretix/base/forms/auth.py:172 pretix/base/forms/auth.py:224
#: pretix/presale/forms/customer.py:296 pretix/presale/forms/customer.py:390
@@ -6829,12 +6829,12 @@ msgstr "Sinua on pyydetty antamaan hyvitys {order.code} lle."
#: pretix/base/payment.py:86
msgctxt "payment"
msgid "Apple Pay"
-msgstr "Apple Pay"
+msgstr "Apple Pay -maksu"
#: pretix/base/payment.py:87
msgctxt "payment"
msgid "Google Pay"
-msgstr "Google Pay"
+msgstr "Google Pay -maksu"
#: pretix/base/payment.py:256
#: pretix/presale/templates/pretixpresale/event/order.html:115
@@ -8881,7 +8881,7 @@ msgstr "Kuponki on lähetetty {recipient}."
#: pretix/base/settings.py:125
msgid "Allow usage of restricted plugins"
-msgstr ""
+msgstr "Salli rajoitettujen lisäosien käyttö"
#: pretix/base/settings.py:158
msgid "Allow customers to create accounts"
@@ -9663,10 +9663,11 @@ msgid ""
"Will be printed centered and in a smaller font at the end of every invoice "
"page."
msgstr ""
+"Tulostetaan keskitetysti ja pienemmällä fontilla jokaisen laskusivun loppuun."
#: pretix/base/settings.py:1226
msgid "Attach invoices to emails"
-msgstr ""
+msgstr "Liitä laskut sähköposteihin"
#: pretix/base/settings.py:1227
msgid ""
@@ -9675,10 +9676,14 @@ msgid ""
"on payment, they will be attached to the payment confirmation mail. If they "
"are not automatically generated, they will not be attached to emails."
msgstr ""
+"Jos laskut luodaan automaattisesti kaikista tilauksista, ne liitetään "
+"tilausvahvistusviestiin. Jos ne luodaan automaattisesti maksun yhteydessä, "
+"ne liitetään maksuvahvistusviestiin. Jos niitä ei luoda automaattisesti, "
+"niitä ei liitetä sähköposteihin."
#: pretix/base/settings.py:1239
msgid "Email address to receive a copy of each invoice"
-msgstr ""
+msgstr "Sähköpostiosoite, johon saat kopion jokaisesta laskusta"
#: pretix/base/settings.py:1240
msgid ""
@@ -9686,27 +9691,32 @@ msgid ""
"creation. You can use this for an automated import of invoices to your "
"accounting system. The invoice will be the only attachment of the email."
msgstr ""
+"Jokainen juuri luotu lasku lähetetään tähän sähköpostiosoitteeseen pian "
+"luomisen jälkeen. Voit käyttää tätä laskujen automaattiseen tuontiin "
+"kirjanpitojärjestelmääsi. Lasku on sähköpostin ainoa liite."
#: pretix/base/settings.py:1251
msgid "Show items outside presale period"
-msgstr ""
+msgstr "Näytä tuotteet ennakkomyyntiajan ulkopuolella"
#: pretix/base/settings.py:1252
msgid ""
"Show item details before presale has started and after presale has ended"
msgstr ""
+"Näytä tuotteen tiedot ennen ennakkomyynnin alkamista ja sen päättymisen "
+"jälkeen"
#: pretix/base/settings.py:1272
msgid "Available languages"
-msgstr ""
+msgstr "Käytettävissä olevat kielet"
#: pretix/base/settings.py:1288 pretix/control/forms/event.py:140
msgid "Default language"
-msgstr ""
+msgstr "Oletuskieli"
#: pretix/base/settings.py:1298
msgid "Region"
-msgstr ""
+msgstr "Alue"
#: pretix/base/settings.py:1299
msgid ""
@@ -9715,10 +9725,14 @@ msgid ""
"less priority than the language and is therefore mostly relevant for "
"languages used in different regions globally (like English)."
msgstr ""
+"Käytetään päivämäärän ja kellonajan muotoilun määrittämiseen sekä "
+"asiakasosoitteiden ja puhelinnumeroiden oletusmaan. Muotoilun kannalta tämä "
+"ei ole yhtä tärkeää kuin kieli, ja siksi se koskee enimmäkseen eri alueilla "
+"maailmanlaajuisesti käytettyjä kieliä (kuten englantia)."
#: pretix/base/settings.py:1311
msgid "Show event times and dates on the ticket shop"
-msgstr ""
+msgstr "Näytä tapahtuma-ajat ja päivämäärät lippukaupassa"
#: pretix/base/settings.py:1312
msgid ""
@@ -9726,44 +9740,52 @@ msgid ""
"This settings also affects a few other locations, however it should not be "
"expected that the date of the event is shown nowhere to users."
msgstr ""
+"Jos toiminto on poistettu käytöstä, päivämäärää tai kellonaikaa ei näytetä "
+"lippukaupan etusivulla. Tämä asetus vaikuttaa myös muutamiin muihin "
+"sijainteihin, mutta ei pidä odottaa, että tapahtuman päivämäärä ei näy "
+"käyttäjille missään."
#: pretix/base/settings.py:1323
msgid "Show event end date"
-msgstr ""
+msgstr "Näytä tapahtuman päättymispäivä"
#: pretix/base/settings.py:1324
msgid "If disabled, only event's start date will be displayed to the public."
msgstr ""
+"Jos poistettu käytöstä, vain tapahtuman alkamispäivä näytetään yleisölle."
#: pretix/base/settings.py:1333
msgid "Show dates with time"
-msgstr ""
+msgstr "Näytä päivämäärät kellonaikoineen"
#: pretix/base/settings.py:1334
msgid ""
"If disabled, the event's start and end date will be displayed without the "
"time of day."
msgstr ""
+"Jos toiminto on poistettu käytöstä, tapahtuman alkamis- ja päättymispäivä "
+"näytetään ilman kellonaikaa."
#: pretix/base/settings.py:1343
msgid "Hide all products that are sold out"
-msgstr ""
+msgstr "Piilota kaikki loppuunmyydyt tuotteet"
#: pretix/base/settings.py:1353 pretix/control/forms/event.py:1678
msgid "Publicly show how many tickets of a certain type are still available."
msgstr ""
+"Näytä julkisesti, kuinka monta tietyntyyppistä lippua on vielä saatavilla."
#: pretix/base/settings.py:1362
msgid "Ask search engines not to index the ticket shop"
-msgstr ""
+msgstr "Pyydä hakukoneita olemaan indeksoimatta lippukauppaa"
#: pretix/base/settings.py:1371
msgid "Show variations of a product expanded by default"
-msgstr ""
+msgstr "Näytä tuotteen muunnelmat oletusarvoisesti laajennettuna"
#: pretix/base/settings.py:1380
msgid "Enable waiting list"
-msgstr ""
+msgstr "Ota jonotuslista käyttöön"
#: pretix/base/settings.py:1381 pretix/control/forms/event.py:1683
msgid ""
@@ -9772,10 +9794,14 @@ msgid ""
"person on the waiting list and this person will receive an email "
"notification with a voucher that can be used to buy a ticket."
msgstr ""
+"Kun lippu on myyty loppuun, ihmiset voivat lisätä itsensä jonotuslistalle. "
+"Heti kun lippu tulee jälleen saataville, se varataan ensimmäiselle "
+"jonotuslistalla olevalle henkilölle ja tämä henkilö saa sähköposti-"
+"ilmoituksen kupongista, jota voidaan käyttää lipun ostamiseen."
#: pretix/base/settings.py:1392
msgid "Automatic waiting list assignments"
-msgstr ""
+msgstr "Automaattiset odotuslistamääritykset"
#: pretix/base/settings.py:1393
msgid ""
@@ -9785,10 +9811,15 @@ msgid ""
"via the control panel. If you disable the waiting list but keep this option "
"enabled, tickets will still be sent out."
msgstr ""
+"Jos lippukapasiteetti vapautuu, luo automaattisesti kuponki ja lähetä se "
+"ensimmäiselle henkilölle kyseisen tuotteen odotuslistalla. Jos tämä ei ole "
+"käytössä, sähköposteja ei lähetetä automaattisesti, mutta voit lähettää ne "
+"manuaalisesti ohjauspaneelin kautta. Jos poistat odotuslistan käytöstä, "
+"mutta pidät tämän vaihtoehdon käytössä, liput lähetetään silti."
#: pretix/base/settings.py:1409
msgid "Waiting list response time"
-msgstr ""
+msgstr "Jonotuslistan vasteaika"
#: pretix/base/settings.py:1412
msgid ""
@@ -9796,6 +9827,9 @@ msgid ""
"redeemed within this number of hours until it expires and can be re-assigned "
"to the next person on the list."
msgstr ""
+"Jos lippukuponki lähetetään jonotuslistalla olevalle henkilölle, se on "
+"lunastettava tämän tunnin kuluessa, kunnes se vanhenee ja se voidaan siirtää "
+"uudelleen listan seuraavalle henkilölle."
#: pretix/base/settings.py:1423
msgid "Disable waiting list"
@@ -9809,52 +9843,59 @@ msgid ""
"still people on the waiting list. Vouchers that have already been sent "
"remain active."
msgstr ""
+"Jonotuslista poistetaan kokonaan käytöstä tämän päivämäärän jälkeen. Tämä "
+"tarkoittaa sitä, että kukaan ei voi enää lisätä itseään jonotuslistalle, "
+"mutta myös sitä, että liput ovat jälleen myynnissä, jos kiintiöt sen "
+"sallivat, vaikka jonotuslistalla olisi vielä ihmisiä. Jo lähetetyt tositteet "
+"pysyvät aktiivisina."
#: pretix/base/settings.py:1436
msgid "Ask for a name"
-msgstr ""
+msgstr "Kysy nimeä"
#: pretix/base/settings.py:1437
msgid "Ask for a name when signing up to the waiting list."
-msgstr ""
+msgstr "Pyydä nimeä ilmoittautuessasi jonotuslistalle."
#: pretix/base/settings.py:1446
msgid "Require name"
-msgstr ""
+msgstr "Vaadi nimi"
#: pretix/base/settings.py:1447
msgid "Require a name when signing up to the waiting list.."
-msgstr ""
+msgstr "Vaadi nimi, kun kirjaudut odotuslistalle."
#: pretix/base/settings.py:1457
msgid "Ask for a phone number"
-msgstr ""
+msgstr "Kysy puhelinnumero"
#: pretix/base/settings.py:1458
msgid "Ask for a phone number when signing up to the waiting list."
-msgstr ""
+msgstr "Pyydä puhelinnumeroa, kun rekisteröidyt jonotuslistalle."
#: pretix/base/settings.py:1467
msgid "Require phone number"
-msgstr ""
+msgstr "Vaadi puhelinnumero"
#: pretix/base/settings.py:1468
msgid "Require a phone number when signing up to the waiting list.."
-msgstr ""
+msgstr "Vaadi puhelinnumero, kun kirjaudut odotuslistalle."
#: pretix/base/settings.py:1478
msgid "Phone number explanation"
-msgstr ""
+msgstr "Puhelinnumeron selitys"
#: pretix/base/settings.py:1481
msgid ""
"If you ask for a phone number, explain why you do so and what you will use "
"the phone number for."
msgstr ""
+"Jos pyydät puhelinnumeroa, selitä, miksi teet niin ja mihin aiot käyttää "
+"puhelinnumeroa."
#: pretix/base/settings.py:1493
msgid "Maximum number of entries per email address for the same product"
-msgstr ""
+msgstr "Saman tuotteen osallistumisten enimmäismäärä sähköpostiosoitetta kohden"
#: pretix/base/settings.py:1497
msgid ""
@@ -9864,6 +9905,11 @@ msgid ""
"if they want more than one ticket, as every entry only grants one single "
"ticket at a time."
msgstr ""
+"Korotetulla rajoituksella asiakas voi pyytää useampaa kuin yhtä lippua "
+"tiettyyn tuotteeseen käyttämällä samaa, yksilöllistä sähköpostiosoitetta. "
+"Tästä asetuksesta riippumatta heidän on kuitenkin täytettävä "
+"jonotuslistalomake useita kertoja, jos he haluavat useamman kuin yhden "
+"lipun, koska jokainen osallistuminen antaa vain yhden lipun kerrallaan."
#: pretix/base/settings.py:1509
msgid "Show number of check-ins to customer"
@@ -9878,18 +9924,24 @@ msgid ""
"failed scans will not be counted, and the user will not see the different "
"check-in lists."
msgstr ""
+"Kun tämä vaihtoehto on käytössä, asiakkaasi voivat nähdä, kuinka monta "
+"kertaa he osallistuivat tapahtumaan. Tämä ei yleensä ole välttämätöntä, "
+"mutta voi olla hyödyllistä yhdessä lippujen kanssa, joita voidaan käyttää "
+"tietty määrä kertoja, jotta asiakkaat näkevät, kuinka monta kertaa niitä on "
+"jo käytetty. Poistumisia tai epäonnistuneita tarkistuksia ei lasketa, eikä "
+"käyttäjä näe eri kirjautunislistoja."
#: pretix/base/settings.py:1523
msgid "Allow users to download tickets"
-msgstr ""
+msgstr "Salli käyttäjien ladata lippuja"
#: pretix/base/settings.py:1524
msgid "If this is off, nobody can download a ticket."
-msgstr ""
+msgstr "Jos tämä on pois päältä, kukaan ei voi ladata lippua."
#: pretix/base/settings.py:1533
msgid "Download date"
-msgstr ""
+msgstr "Lataus päivämäärä"
#: pretix/base/settings.py:1534
msgid ""
@@ -9897,10 +9949,14 @@ msgid ""
"feature and an order contains tickets for multiple event dates, download of "
"all tickets will be available if at least one of the event dates allows it."
msgstr ""
+"Lippujen lataus tarjotaan tämän päivämäärän jälkeen. Jos käytät "
+"tapahtumasarjaominaisuutta ja tilaus sisältää lippuja useille "
+"tapahtumapäiville, kaikki liput ovat ladattavissa, jos vähintään yksi "
+"tapahtumapäivistä sen sallii."
#: pretix/base/settings.py:1545
msgid "Generate tickets for add-on products and bundled products"
-msgstr ""
+msgstr "Luo lippuja lisätuotteille ja pakettituotteille"
#: pretix/base/settings.py:1546
msgid ""
@@ -9908,10 +9964,13 @@ msgid ""
"for add-on products or bundled products. With this option, a separate ticket "
"is issued for every add-on product or bundled product as well."
msgstr ""
+"Oletuksena lippuja myönnetään vain yksittäin valituille tuotteille, ei "
+"lisätuotteille tai pakettituotteille. Tässä vaihtoehdossa jokaiselle "
+"lisätuotteelle tai pakettituotteelle myönnetään erillinen lippu."
#: pretix/base/settings.py:1559
msgid "Generate tickets for all products"
-msgstr ""
+msgstr "Luo lippuja kaikille tuotteille"
#: pretix/base/settings.py:1560
msgid ""
@@ -9919,20 +9978,25 @@ msgid ""
"\"admission ticket\"in the product settings. You can also turn off ticket "
"issuing in every product separately."
msgstr ""
+"Jos se on kytketty pois päältä, lippuja myönnetään vain tuotteille, jotka on "
+"merkitty \"pääsylipuksi\" tuoteasetuksissa. Voit myös poistaa lippujen "
+"kirjoittamisen käytöstä jokaisessa tuotteessa erikseen."
#: pretix/base/settings.py:1572
msgid "Generate tickets for pending orders"
-msgstr ""
+msgstr "Luo lippuja odottaville tilauksille"
#: pretix/base/settings.py:1573
msgid ""
"If turned off, ticket downloads are only possible after an order has been "
"marked as paid."
msgstr ""
+"Jos lippujen lataus on kytketty pois päältä, se on mahdollista vasta, kun "
+"tilaus on merkitty maksetuksi."
#: pretix/base/settings.py:1584
msgid "Do not issue ticket before email address is validated"
-msgstr ""
+msgstr "Älä kirjoita lippua ennen kuin sähköpostiosoite on vahvistettu"
#: pretix/base/settings.py:1585
msgid ""
@@ -9942,10 +10006,14 @@ msgid ""
"from the page as soon as they clicked a link in the email. Does not affect "
"orders performed through other sales channels."
msgstr ""
+"Jos päällä, lippuja ei tarjota ladattavaksi heti oston jälkeen. Ne liitetään "
+"maksuvahvistussähköpostiin (jos tiedostokoko ei ole liian suuri), ja asiakas "
+"voi ladata ne sivulta heti, kun hän on napsauttanut sähköpostissa olevaa "
+"linkkiä. Ei vaikuta muiden myyntikanavien kautta tehtyihin tilauksiin."
#: pretix/base/settings.py:1601
msgid "Low availability threshold"
-msgstr ""
+msgstr "Alhainen saatavuus -kynnys"
#: pretix/base/settings.py:1602
msgid ""
@@ -9954,10 +10022,14 @@ msgid ""
"in the event list or calendar. If you keep this option empty, low "
"availability will not be shown publicly."
msgstr ""
+"Jos lippujen saatavuus laskee alle tämän prosenttiosuuden, tapahtuma (tai "
+"päivämäärä, jos kyseessä on tapahtumasarja) korostetaan tapahtumaluettelossa "
+"tai kalenterissa, että sen saatavuus on heikko. Jos pidät tämän vaihtoehdon "
+"tyhjänä, heikkoa saatavuutta ei näytetä julkisesti."
#: pretix/base/settings.py:1616
msgid "Show availability in event overviews"
-msgstr ""
+msgstr "Näytä saatavuus tapahtumien yleiskatsauksissa"
#: pretix/base/settings.py:1617
msgid ""
@@ -9965,83 +10037,96 @@ msgid ""
"make for longer page loading times if you have lots of events and the shown "
"status might be out of date for up to two minutes."
msgstr ""
+"Jos tämä on valittuna, tapahtumaluettelossa näkyy, ovatko tapahtumat "
+"loppuunmyytyjä. Tämä voi pidentää sivun latausaikoja, jos sinulla on paljon "
+"tapahtumia ja näytetty tila voi olla vanhentunut jopa kahden minuutin ajan."
#: pretix/base/settings.py:1630 pretix/base/settings.py:1638
#: pretix/presale/templates/pretixpresale/fragment_calendar_nav.html:8
msgid "List"
-msgstr ""
+msgstr "Lista"
#: pretix/base/settings.py:1631 pretix/base/settings.py:1639
msgid "Week calendar"
-msgstr ""
+msgstr "Viikkokalenteri"
#: pretix/base/settings.py:1632 pretix/base/settings.py:1640
msgid "Month calendar"
-msgstr ""
+msgstr "Kuukausikalenteri"
#: pretix/base/settings.py:1636
msgid "Default overview style"
-msgstr ""
+msgstr "Yleiskatsauksen oletustyyli"
#: pretix/base/settings.py:1642
msgid ""
"If your event series has more than 50 dates in the future, only the month or "
"week calendar can be used."
msgstr ""
+"Jos tapahtumasarjassasi on tulevaisuudessa yli 50 päivämäärää, vain kuukausi-"
+" tai viikkokalenteria voidaan käyttää."
#: pretix/base/settings.py:1651
msgid "Show filter options for calendar or list view"
-msgstr ""
+msgstr "Kalenteri- tai luettelonäkymän suodatinasetusten näyttäminen"
#: pretix/base/settings.py:1652
msgid ""
"You can set up possible filters as meta properties in your organizer "
"settings."
msgstr ""
+"Voit määrittää mahdollisia suodattimia metaomaisuuksiksi järjestäjän "
+"asetuksissa."
#: pretix/base/settings.py:1661
msgid "Hide all unavailable dates from calendar or list views"
msgstr ""
+"Piilota kaikki päivämäärät, jotka eivät ole käytettävissä kalenteri- tai "
+"luettelonäkymistä"
#: pretix/base/settings.py:1662 pretix/base/settings.py:1673
msgid ""
"This option currently only affects the calendar of this event series, not "
"the organizer-wide calendar."
msgstr ""
+"Tämä vaihtoehto vaikuttaa tällä hetkellä vain tämän tapahtumasarjan "
+"kalenteriin, ei järjestäjän laajuiseen kalenteriin."
#: pretix/base/settings.py:1672
msgid "Hide all past dates from calendar"
-msgstr ""
+msgstr "Kaikkien menneiden päivämäärien piilottaminen kalenterista"
#: pretix/base/settings.py:1684 pretix/base/settings.py:1693
msgid "No modifications after order was submitted"
-msgstr ""
+msgstr "Ei muutoksia tilauksen lähettämisen jälkeen"
#: pretix/base/settings.py:1685 pretix/base/settings.py:1694
msgid "Only the person who ordered can make changes"
-msgstr ""
+msgstr "Vain tilannut henkilö voi tehdä muutoksia"
#: pretix/base/settings.py:1686 pretix/base/settings.py:1695
msgid "Both the attendee and the person who ordered can make changes"
-msgstr ""
+msgstr "Sekä osallistuja että tilaaja voivat tehdä muutoksia"
#: pretix/base/settings.py:1690
msgid "Allow customers to modify their information"
-msgstr ""
+msgstr "Salli asiakkaiden muokata tietojaan"
#: pretix/base/settings.py:1705
msgid "Allow customers to modify their information after they checked in."
-msgstr ""
+msgstr "Salli asiakkaiden muokata tietojaan sisäänkirjautumisen jälkeen."
#: pretix/base/settings.py:1706
msgid ""
"By default, no more modifications are possible for an order as soon as one "
"of the tickets in the order has been checked in."
msgstr ""
+"Oletuksena tilaukseen ei voi enää tehdä muutoksia heti, kun jokin tilauksen "
+"lipuista on kirjattu sisään."
#: pretix/base/settings.py:1716
msgid "Last date of modifications"
-msgstr ""
+msgstr "Muutosten viimeinen päivämäärä"
#: pretix/base/settings.py:1717
msgid ""
@@ -10050,52 +10135,63 @@ msgid ""
"order contains tickets for multiple event dates, the earliest date will be "
"used."
msgstr ""
+"Viimeinen päivämäärä, jolloin käyttäjät voivat muokata tilaustensa tietoja, "
+"kuten osallistujien nimiä tai vastauksia kysymyksiin. Jos käytät "
+"tapahtumasarjaominaisuutta ja tilaus sisältää lippuja useille "
+"tapahtumapäiville, käytetään aikaisinta päivämäärää."
#: pretix/base/settings.py:1728
msgid "Customers can change the variation of the products they purchased"
-msgstr ""
+msgstr "Asiakkaat voivat muuttaa ostamiensa tuotteiden muunnelmaa"
#: pretix/base/settings.py:1737
msgid "Customers can change their selected add-on products"
-msgstr ""
+msgstr "Asiakkaat voivat muuttaa valitsemiaan lisätuotteita"
#: pretix/base/settings.py:1747 pretix/base/settings.py:1758
msgid ""
"Only allow changes if the resulting price is higher or equal than the "
"previous price."
msgstr ""
+"Salli muutokset vain, jos tuloksena oleva hinta on korkeampi tai yhtä suuri "
+"kuin edellinen hinta."
#: pretix/base/settings.py:1748 pretix/base/settings.py:1759
msgid ""
"Only allow changes if the resulting price is higher than the previous price."
msgstr ""
+"Salli muutokset vain, jos tuloksena oleva hinta on korkeampi kuin edellinen "
+"hinta."
#: pretix/base/settings.py:1749 pretix/base/settings.py:1760
msgid ""
"Only allow changes if the resulting price is equal to the previous price."
msgstr ""
+"Salli muutokset vain, jos tuloksena oleva hinta on sama kuin edellinen hinta."
#: pretix/base/settings.py:1750 pretix/base/settings.py:1761
msgid ""
"Allow changes regardless of price, as long as no refund is required (i.e. "
"the resulting price is not lower than what has already been paid)."
msgstr ""
+"Salli muutokset hinnasta riippumatta, kunhan hyvitystä ei vaadita (ts. "
+"tuloksena oleva hinta ei ole alhaisempi kuin jo maksettu)."
#: pretix/base/settings.py:1752 pretix/base/settings.py:1763
msgid "Allow changes regardless of price, even if this results in a refund."
-msgstr ""
+msgstr "Salli muutokset hinnasta riippumatta, vaikka se johtaisi hyvitykseen."
#: pretix/base/settings.py:1756
msgid "Requirement for changed prices"
-msgstr ""
+msgstr "Hintojen muuttamista koskeva vaatimus"
#: pretix/base/settings.py:1774
msgid "Do not allow changes after"
-msgstr ""
+msgstr "Älä salli muutoksia jälkikäteen"
#: pretix/base/settings.py:1783
msgid "Allow change even though the ticket has already been checked in"
-msgstr ""
+msgstr "Salli muutos, vaikka lippu on jo kirjattu sisään"
#: pretix/base/settings.py:1784
msgid ""
@@ -10105,10 +10201,15 @@ msgid ""
"in individually. Use with care, and preferably only in combination with a "
"limitation on price changes above."
msgstr ""
+"Oletusarvoisesti tilausmuutokset poistetaan käytöstä, kun tilauksen lippu on "
+"kirjattu sisään. Jos valitset tämän valintaruudun, tämä vaatimus poistetaan. "
+"Lisätuotetta, joka on jo kuitattu sisään yksitellen, ei edelleenkään voi "
+"poistaa. Käytä varoen ja mieluiten vain yhdessä edellä mainittujen "
+"hinnanmuutosrajoitusten kanssa."
#: pretix/base/settings.py:1796
msgid "Allow individual attendees to change their ticket"
-msgstr ""
+msgstr "Salli yksittäisten osallistujien muuttaa lippuaan"
#: pretix/base/settings.py:1797
msgid ""
@@ -10118,10 +10219,15 @@ msgid ""
"total price of the order. Such changes can always only be made by the main "
"customer."
msgstr ""
+"Oletuksena vain lippujen tilannut henkilö voi tehdä muutoksia. Jos valitset "
+"tämän valintaruudun, myös yksittäiset osallistujat voivat tehdä muutoksia. "
+"Yksittäiset osallistujat voivat kuitenkin aina tehdä vain muutoksia, jotka "
+"eivät muuta tilauksen kokonaishintaa. Tällaisia muutoksia voi aina tehdä "
+"vain pääasiakas."
#: pretix/base/settings.py:1809
msgid "Customers can cancel their unpaid orders"
-msgstr ""
+msgstr "Asiakkaat voivat peruuttaa maksamattomat tilauksensa"
#: pretix/base/settings.py:1821
msgid "Charge a fixed cancellation fee"
@@ -10134,10 +10240,13 @@ msgid ""
"never charged. Note that it will be your responsibility to claim the "
"cancellation fee from the user."
msgstr ""
+"Vaikuttaa vain maksua odottaviin tilauksiin, ilmaisten tilausten "
+"peruutusmaksua ei koskaan veloiteta. Huomaa, että sinun vastuullasi on "
+"vaatia peruutusmaksu käyttäjältä."
#: pretix/base/settings.py:1832
msgid "Charge payment, shipping and service fees"
-msgstr ""
+msgstr "Veloita maksu-, toimitus- ja palvelumaksut"
#: pretix/base/settings.py:1846
msgid "Charge a percentual cancellation fee"
@@ -10145,49 +10254,56 @@ msgstr "Peri prosentuaalinen peruutusmaksu"
#: pretix/base/settings.py:1857 pretix/base/settings.py:1996
msgid "Do not allow cancellations after"
-msgstr ""
+msgstr "Älä salli peruutuksia jälkikäteen"
#: pretix/base/settings.py:1866
msgid "Customers can cancel their paid orders"
-msgstr ""
+msgstr "Asiakkaat voivat peruuttaa maksetut tilauksensa"
#: pretix/base/settings.py:1867
msgid ""
"Paid money will be automatically paid back if the payment method allows it. "
"Otherwise, a manual refund will be created for you to process manually."
msgstr ""
+"Maksetut rahat maksetaan automaattisesti takaisin, jos maksutapa sallii sen. "
+"Muussa tapauksessa luodaan manuaalinen hyvitys, jonka voit käsitellä "
+"manuaalisesti."
#: pretix/base/settings.py:1880 pretix/control/forms/orders.py:888
msgid "Keep a fixed cancellation fee"
-msgstr ""
+msgstr "Pidä kiinteä peruutusmaksu"
#: pretix/base/settings.py:1889
msgid "Keep payment, shipping and service fees"
-msgstr ""
+msgstr "Säilytä maksu-, toimitus- ja palvelumaksut"
#: pretix/base/settings.py:1901 pretix/control/forms/orders.py:899
msgid "Keep a percentual cancellation fee"
-msgstr ""
+msgstr "Pidä prosentuaalinen peruutusmaksu"
#: pretix/base/settings.py:1910
msgid "Allow customers to voluntarily choose a lower refund"
-msgstr ""
+msgstr "Anna asiakkaiden valita vapaaehtoisesti pienempi hyvitys"
#: pretix/base/settings.py:1911
msgid ""
"With this option enabled, your customers can choose to get a smaller refund "
"to support you."
msgstr ""
+"Kun tämä vaihtoehto on käytössä, asiakkaasi voivat halutessaan saada "
+"pienemmän hyvityksen tukeakseen sinua."
#: pretix/base/settings.py:1916
msgid ""
"However, if you want us to help keep the lights on here, please consider "
"using the slider below to request a smaller refund. Thank you!"
msgstr ""
+"Jos kuitenkin haluat meidän auttavan pitämään valot päällä täällä, harkitse "
+"alla olevan liukusäätimen käyttöä pyytääksesi pienempää hyvitystä. Kiitos!"
#: pretix/base/settings.py:1923
msgid "Voluntary lower refund explanation"
-msgstr ""
+msgstr "Vapaaehtoinen selitys pienemmästä hyvityksestä"
#: pretix/base/settings.py:1926
msgid ""
@@ -10196,10 +10312,14 @@ msgid ""
"like to receive. You can use it e.g. to explain choosing a lower refund will "
"help your organization."
msgstr ""
+"Tämä teksti näkyy hyvitysten toiminnan selityksen ja liukusäätimen välissä, "
+"jonka avulla asiakkaasi voivat valita summan, jonka he haluavat saada. Voit "
+"käyttää sitä esimerkiksi selittämään, että pienemmän hyvityksen valitseminen "
+"auttaa organisaatiotasi."
#: pretix/base/settings.py:1941
msgid "Step size for reduction amount"
-msgstr ""
+msgstr "Vähennyssumman askelkoko"
#: pretix/base/settings.py:1942
msgid ""
@@ -10207,39 +10327,44 @@ msgid ""
"set this to e.g. 10, they will only be able to choose values in increments "
"of 10."
msgstr ""
+"Oletusarvoisesti asiakkaat voivat valita mielivaltaisen summan, jonka voit "
+"pitää. Jos asetat arvoksi esimerkiksi 10, he voivat valita arvoja vain 10:n "
+"välein."
#: pretix/base/settings.py:1952
msgid ""
"Customers can only request a cancellation that needs to be approved by the "
"event organizer before the order is canceled and a refund is issued."
msgstr ""
+"Asiakkaat voivat pyytää peruutusta vain, joka tapahtuman järjestäjän on "
+"hyväksyttävä ennen tilauksen peruuttamista ja hyvityksen myöntämistä."
#: pretix/base/settings.py:1962
msgid ""
"Do not show the cancellation fee to users when they request cancellation."
-msgstr ""
+msgstr "Älä näytä peruutusmaksua käyttäjille, kun he pyytävät peruutusta."
#: pretix/base/settings.py:1971 pretix/base/settings.py:1981
msgid "All refunds are issued to the original payment method"
-msgstr ""
+msgstr "Kaikki hyvitykset myönnetään alkuperäiselle maksutavalle"
#: pretix/base/settings.py:1972 pretix/base/settings.py:1982
msgid ""
"Customers can choose between a gift card and a refund to their payment method"
-msgstr ""
+msgstr "Asiakkaat voivat valita lahjakortin ja hyvityksen maksutavalleen"
#: pretix/base/settings.py:1973 pretix/base/settings.py:1983
msgid "All refunds are issued as gift cards"
-msgstr ""
+msgstr "Kaikki hyvitykset myönnetään lahjakortteina"
#: pretix/base/settings.py:1974 pretix/base/settings.py:1984
msgid "Do not handle refunds automatically at all"
-msgstr ""
+msgstr "Älä käsittele hyvityksiä automaattisesti ollenkaan"
#: pretix/base/settings.py:1979
#: pretix/control/templates/pretixcontrol/order/index.html:148
msgid "Refund method"
-msgstr ""
+msgstr "Palautustapa"
#: pretix/base/settings.py:2005 pretix/base/settings.py:2018
msgid "Terms of cancellation"
@@ -10251,6 +10376,9 @@ msgid ""
"empty if you want pretix to automatically generate the terms of cancellation "
"based on your settings."
msgstr ""
+"Tämä teksti näytetään, kun maksetun tilauksen peruuttaminen on sallittua. "
+"Jätä tyhjäksi, jos haluat, että pretix luo automaattisesti peruutusehdot "
+"asetustesi perusteella."
#: pretix/base/settings.py:2021
msgid ""
@@ -10258,38 +10386,46 @@ msgid ""
"order. Leave empty if you want pretix to automatically generate the terms of "
"cancellation based on your settings."
msgstr ""
+"Tämä teksti näytetään, kun maksamattoman tai ilmaisen tilauksen peruutus on "
+"sallittu. Jätä tyhjäksi, jos haluat, että pretix luo automaattisesti "
+"peruutusehdot asetustesi perusteella."
#: pretix/base/settings.py:2031 pretix/control/forms/event.py:1706
msgid "Contact address"
-msgstr ""
+msgstr "Yhteysosoite"
#: pretix/base/settings.py:2032 pretix/control/forms/event.py:1708
msgid "We'll show this publicly to allow attendees to contact you."
msgstr ""
+"Näytämme tämän julkisesti, jotta osallistujat voivat ottaa sinuun yhteyttä."
#: pretix/base/settings.py:2040 pretix/control/forms/event.py:1700
msgid "Imprint URL"
-msgstr ""
+msgstr "URL jälki"
#: pretix/base/settings.py:2041 pretix/control/forms/event.py:1701
msgid ""
"This should point e.g. to a part of your website that has your contact "
"details and legal information."
msgstr ""
+"Tämän pitäisi osoittaa esimerkiksi verkkosivustosi osaan, jossa on "
+"yhteystietosi ja oikeudelliset tietosi."
#: pretix/base/settings.py:2051
msgid "Privacy Policy URL"
-msgstr ""
+msgstr "Tietosuojakäytännön URL-osoite"
#: pretix/base/settings.py:2052
msgid ""
"This should point e.g. to a part of your website that explains how you use "
"data gathered in your ticket shop."
msgstr ""
+"Tämän pitäisi viitata esimerkiksi verkkosivustosi osaan, jossa selitetään, "
+"miten käytät lippukaupastasi kerättyjä tietoja."
#: pretix/base/settings.py:2074
msgid "Attach ticket files"
-msgstr ""
+msgstr "Liitä lipputiedostot"
#: pretix/base/settings.py:2076
#, python-brace-format
@@ -10297,28 +10433,35 @@ msgid ""
"Tickets will never be attached if they're larger than {size} to avoid email "
"delivery problems."
msgstr ""
+"Lippuja ei koskaan liitetä, jos ne ovat suurempia kuin {size} sähköpostin "
+"toimitusongelmien välttämiseksi."
#: pretix/base/settings.py:2087 pretix/plugins/sendmail/forms.py:201
#: pretix/plugins/sendmail/models.py:270
#: pretix/plugins/sendmail/templates/pretixplugins/sendmail/send_form.html:66
msgid "Attach calendar files"
-msgstr ""
+msgstr "Kalenteritiedostojen liittäminen"
#: pretix/base/settings.py:2088
msgid ""
"If enabled, we will attach an .ics calendar file to order confirmation "
"emails."
msgstr ""
+"Jos tämä on käytössä, liitämme .ics kalenteritiedoston "
+"tilausvahvistussähköposteihin."
#: pretix/base/settings.py:2097
msgid "Attach calendar files only after order has been paid"
-msgstr ""
+msgstr "Liitä kalenteritiedostot vasta, kun tilaus on maksettu"
#: pretix/base/settings.py:2098
msgid ""
"Use this if you e.g. put a private access link into the calendar file to "
"make sure people only receive it after their payment was confirmed."
msgstr ""
+"Käytä tätä, jos esimerkiksi laitat yksityisen pääsyn linkin "
+"kalenteritiedostoon varmistaaksesi, että ihmiset saavat sen vasta maksun "
+"vahvistamisen jälkeen."
#: pretix/base/settings.py:2107
msgid "Event description"
@@ -10333,38 +10476,47 @@ msgid ""
"data as calendar entries are often shared with an unspecified number of "
"people."
msgstr ""
+"Tämän avulla voit jakaa osallistujille tietoja, kuten matkatietoja tai "
+"linkin digitaaliseen tapahtumaan. Jos pidät sen tyhjänä, laitamme sinne "
+"linkin tapahtumakauppaan, sisäänpääsyajan ja järjestäjän nimen. Emme salli "
+"paikkamerkkien käyttöä arkaluonteisten henkilökohtaisten tietojen kanssa, "
+"koska kalenterimerkinnät jaetaan usein määrittämättömälle määrälle ihmisiä."
#: pretix/base/settings.py:2123
msgid "Subject prefix"
-msgstr ""
+msgstr "Aiheen etuliite"
#: pretix/base/settings.py:2124
msgid ""
"This will be prepended to the subject of all outgoing emails, formatted as "
"[prefix]. Choose, for example, a short form of your event name."
msgstr ""
+"Tämä liitetään kaikkien lähtevien sähköpostiviestien aiheeseen, joka on "
+"muodossa [prefix]. Valitse esimerkiksi tapahtuman nimen lyhyt muoto."
#: pretix/base/settings.py:2138 pretix/control/forms/mailsetup.py:35
#: pretix/control/forms/mailsetup.py:108
#: pretix/control/templates/pretixcontrol/event/mail.html:39
#: pretix/control/templates/pretixcontrol/organizers/mail.html:40
msgid "Sender address"
-msgstr ""
+msgstr "Lähettäjän osoite"
#: pretix/base/settings.py:2139 pretix/control/forms/mailsetup.py:36
#: pretix/control/forms/mailsetup.py:109
msgid "Sender address for outgoing emails"
-msgstr ""
+msgstr "Lähtevien sähköpostiviestien lähettäjän osoite"
#: pretix/base/settings.py:2148
msgid "Sender name"
-msgstr ""
+msgstr "Lähettäjän nimi"
#: pretix/base/settings.py:2149
msgid ""
"Sender name used in conjunction with the sender address for outgoing emails. "
"Defaults to your event name."
msgstr ""
+"Lähettäjän nimi, jota käytetään yhdessä lähettäjän osoitteen kanssa "
+"lähtevissä sähköposteissa. Oletuksena tapahtuman nimi."
#: pretix/base/settings.py:2167 pretix/base/settings.py:2224
#: pretix/base/settings.py:2241 pretix/base/settings.py:2259
@@ -10377,7 +10529,7 @@ msgstr "Tilauksesi: {code}"
#: pretix/base/settings.py:2579
#, python-brace-format
msgid "Your event registration: {code}"
-msgstr ""
+msgstr "Ilmoittautumisesi tapahtumaan: {code}"
#: pretix/base/settings.py:2175
#, python-brace-format
@@ -10393,11 +10545,21 @@ msgid ""
"Best regards, \n"
"Your {event} team"
msgstr ""
+"Hei,\n"
+"\n"
+"saat tämän viestin, koska pyysit meitä lähettämään sinulle linkin\n"
+"tilaukseesi {event}tapahtumaan.\n"
+"\n"
+"Voit muuttaa tilauksesi tietoja ja tarkastella tilauksesi tilaa osoitteessa\n"
+"{url}\n"
+"\n"
+"Ystävällisin terveisin, \n"
+"{event}-tiimi"
#: pretix/base/settings.py:2188
#, python-brace-format
msgid "Your orders for {event}"
-msgstr ""
+msgstr "Tilauksesi tapahtumaan {event}"
#: pretix/base/settings.py:2192
#, python-brace-format
@@ -10412,6 +10574,15 @@ msgid ""
"Best regards, \n"
"Your {event} team"
msgstr ""
+"Hei,\n"
+"\n"
+"Joku pyysi luetteloa tilauksistasi tapahtumaan {event}.\n"
+"Luettelo on seuraava:\n"
+"\n"
+"{orders}\n"
+"\n"
+"Ystävällisin terveisin, \n"
+"{event} tiimi"
#: pretix/base/settings.py:2208
#, python-brace-format
@@ -10426,6 +10597,15 @@ msgid ""
"Best regards, \n"
"Your {event} team"
msgstr ""
+"Hei {attendee_name},\n"
+"\n"
+"olet rekisteröitynyt {event} tapahtumaan onnistuneesti.\n"
+"\n"
+"Voit tarkastella lippusi tietoja ja tilaa täällä:\n"
+"{url}\n"
+"\n"
+"Ystävällisin terveisin, \n"
+"{event} tiimi"
#: pretix/base/settings.py:2228
#, python-brace-format
@@ -10441,6 +10621,17 @@ msgid ""
"Best regards, \n"
"Your {event} team"
msgstr ""
+"Hei,\n"
+"\n"
+"tilauksesi tapahtumaan {event} onnistui. Koska tilasit vain ilmaisia "
+"tuotteita,\n"
+"maksua ei tarvita.\n"
+"\n"
+"Voit muuttaa tilauksesi tietoja ja tarkastella tilauksesi tilaa osoitteessa\n"
+"{url}\n"
+"\n"
+"Ystävällisin terveisin, \n"
+"{event} tiimi"
#: pretix/base/settings.py:2245
#, python-brace-format
@@ -10457,6 +10648,18 @@ msgid ""
"Best regards, \n"
"Your {event} team"
msgstr ""
+"Hei,\n"
+"\n"
+"saimme onnistuneesti tilauksesi tapahtumaan {event}. Koska tilasitte\n"
+"tuotteen, joka edellyttää tapahtuman järjestäjän hyväksyntää, pyydämme "
+"sinua\n"
+"olemaan kärsivällinen ja odottamaan seuraavaa sähköpostiamme.\n"
+"\n"
+"Voit muuttaa tilauksesi tietoja ja tarkastella tilauksesi tilaa osoitteessa\n"
+"{url}\n"
+"\n"
+"Ystävällisin terveisin, \n"
+"{event} tiimi"
#: pretix/base/settings.py:2263
#, python-brace-format
@@ -10504,6 +10707,15 @@ msgid ""
"sent before payment is confirmed or the order is approved. To avoid this "
"vital email going to spam, you can only upload PDF files of up to {size} MB."
msgstr ""
+"Tämä tiedosto liitetään ensimmäiseen sähköpostiviestiin, jonka lähetämme "
+"jokaisesta uudesta tilauksesta. Siksi se yhdistetään ylhäältä tuleviin "
+"teksteihin \"Tehty tilaus\", \"Ilmainen tilaus\" tai \"Vastaanotettu tilaus\""
+". Se lähetetään sekä tilauksen yhteyshenkilöille että osallistujille. Voit "
+"käyttää tätä esim. käyttöehtojesi lähettämiseen. Älä käytä sitä ei-julkisten "
+"tietojen lähettämiseen, koska tämä tiedosto voidaan lähettää ennen maksun "
+"vahvistamista tai tilauksen hyväksymistä. Jotta tämä tärkeä sähköposti ei "
+"päätyisi roskapostiksi, voit lähettää vain enintään {size} Mt:n kokoisia PDF-"
+"tiedostoja."
#: pretix/base/settings.py:2313
#, python-brace-format
@@ -10518,6 +10730,15 @@ msgid ""
"Best regards, \n"
"Your {event} team"
msgstr ""
+"Hei {attendee_name},\n"
+"\n"
+"sinulle on tilattu lippu tapahtumaan {event}.\n"
+"\n"
+"Voit tarkastella lippusi tietoja ja tilaa täällä:\n"
+"{url}\n"
+"\n"
+"Ystävällisin terveisin, \n"
+"{event} tiimi"
#: pretix/base/settings.py:2325
#, python-brace-format
@@ -10537,6 +10758,15 @@ msgid ""
"Best regards, \n"
"Your {event} team"
msgstr ""
+"Hei,\n"
+"\n"
+"tilauksesi tapahtumaan {event} on muuttunut.\n"
+"\n"
+"Voit tarkastella tilauksesi tilaa osoitteessa\n"
+"{url}\n"
+"\n"
+"Ystävällisin terveisin, \n"
+"{event} tiimi"
#: pretix/base/settings.py:2341
#, python-brace-format
@@ -10588,17 +10818,28 @@ msgid ""
"Best regards, \n"
"Your {event} team"
msgstr ""
+"Hei {attendee_name},\n"
+"\n"
+"sinulle tilattu lippu {event} tapahtumaan on nyt maksettu.\n"
+"\n"
+"Voit tarkastella lippusi tietoja ja tilaa täällä:\n"
+"{url}\n"
+"\n"
+"Ystävällisin terveisin, \n"
+"{event} tiimi"
#: pretix/base/settings.py:2384 pretix/control/forms/event.py:1134
#: pretix/control/forms/event.py:1234 pretix/plugins/sendmail/models.py:275
msgid "Number of days"
-msgstr ""
+msgstr "Päivien lukumäärä"
#: pretix/base/settings.py:2386 pretix/control/forms/event.py:1137
msgid ""
"This email will be sent out this many days before the order expires. If the "
"value is 0, the mail will never be sent."
msgstr ""
+"Tämä sähköposti lähetetään näin monta päivää ennen tilauksen vanhenemista. "
+"Jos arvo on 0, sähköpostia ei koskaan lähetetä."
#: pretix/base/settings.py:2394
#, python-brace-format
@@ -10620,6 +10861,17 @@ msgid ""
"Best regards, \n"
"Your {event} team"
msgstr ""
+"Hei,\n"
+"\n"
+"emme ole vielä saaneet täyttä maksua tilauksestasi {event} tapahtumaan.\n"
+"Muistathan, että takaamme tilauksesi vain, jos vastaanotamme\n"
+"maksunne ennen {expire_date}.\n"
+"\n"
+"Voit tarkastella maksutietoja ja tilauksesi tilaa osoitteessa\n"
+"{url}\n"
+"\n"
+"Ystävällisin terveisin, \n"
+"{event} tiimi"
#: pretix/base/settings.py:2412
#, python-brace-format
@@ -10727,7 +10979,7 @@ msgstr ""
#: pretix/base/settings.py:2467
#, python-brace-format
msgid "You have been selected from the waitinglist for {event}"
-msgstr ""
+msgstr "Sinut on valittu {event}:n jonotuslistalta"
#: pretix/base/settings.py:2471
#, python-brace-format
@@ -10759,6 +11011,35 @@ msgid ""
"Best regards, \n"
"Your {event} team"
msgstr ""
+"Hei,\n"
+"\n"
+"olet merkinnyt itsesi {event} tapahtuman jonotuslistalle,\n"
+"tuotteelle {product}.\n"
+"\n"
+"Meillä on nyt lippu valmiina sinulle! Voit lunastaa sen lippukaupassamme.\n"
+"seuraavien {hours} tuntien aikana syöttämällä seuraavan kuponkikoodin:\n"
+"\n"
+"{code}\n"
+"\n"
+"Vaihtoehtoisesti voit vain klikata seuraavaa linkkiä:\n"
+"\n"
+"{url}\n"
+"\n"
+"Huomaa, että tämä linkki on voimassa vain seuraavien {hours} tuntien aikana!"
+"\n"
+"Myönnämme lipun seuraavalle listalla olevalle henkilölle, jos et \n"
+"lunasta kuponkia tuon ajan kuluessa.\n"
+"\n"
+"Jos et enää tarvitse lippua, pyydämme sinua ystävällisesti klikkaamaan "
+"linkkiä\n"
+"seuraavaa linkkiä ilmoittaaksesi meille asiasta. Näin voimme lähettää lipun "
+"\n"
+"mahdollisimman nopeasti jonotuslistalla seuraavalle henkilölle:\n"
+"\n"
+"{url_remove}\n"
+"\n"
+"Ystävällisin terveisin, \n"
+"{event} tiimi"
#: pretix/base/settings.py:2500
#, python-brace-format
@@ -10780,11 +11061,22 @@ msgid ""
"Best regards, \n"
"Your {event} team"
msgstr ""
+"Hei,\n"
+"\n"
+"tilauksesi {code} {event} tapahtumaan on peruutettu.\n"
+"\n"
+"{comment}\n"
+"\n"
+"Voit tarkastella tilauksesi yksityiskohtia osoitteessa\n"
+"{url}\n"
+"\n"
+"Ystävällisin terveisin, \n"
+"{event} tiimi"
#: pretix/base/settings.py:2518
#, python-brace-format
msgid "Order approved and awaiting payment: {code}"
-msgstr ""
+msgstr "Tilaus hyväksytty ja odottaa maksua: {code}"
#: pretix/base/settings.py:2522
#, python-brace-format
@@ -10803,6 +11095,19 @@ msgid ""
"Best regards, \n"
"Your {event} team"
msgstr ""
+"Hei,\n"
+"\n"
+"Hyväksyimme tilauksesi {event} tapahtumaan, ja toivotamme sinut \n"
+"tervetulleeksi tapahtumaamme.\n"
+"\n"
+"Jatkakaa maksamalla tilauksenne ennen {expire_date}.\n"
+"\n"
+"Voit valita maksutavan ja suorittaa maksun täällä:\n"
+"\n"
+"{url}\n"
+"\n"
+"Ystävällisin terveisin, \n"
+"{event} tiimi"
#: pretix/base/settings.py:2546 pretix/base/settings.py:2583
#, python-brace-format
@@ -10830,7 +11135,7 @@ msgstr ""
#: pretix/base/settings.py:2558
#, python-brace-format
msgid "Order approved and confirmed: {code}"
-msgstr ""
+msgstr "Tilaus hyväksytty ja vahvistettu: {code}"
#: pretix/base/settings.py:2562
#, python-brace-format
@@ -10846,6 +11151,17 @@ msgid ""
"Best regards, \n"
"Your {event} team"
msgstr ""
+"Hei,\n"
+"\n"
+"Hyväksyimme tilauksesi {event} tapahtumaan, ja toivotamme sinut\n"
+"tervetulleeksi tapahtumaamme. Koska tilasit vain ilmaisia tuotteita, maksua "
+"ei tarvita.\n"
+"\n"
+"Voit muuttaa tilauksen tietoja ja tarkastella tilauksesi tilaa osoitteessa\n"
+"{url}\n"
+"\n"
+"Ystävällisin terveisin, \n"
+"{event} tiimi"
#: pretix/base/settings.py:2595
#, python-brace-format
@@ -10868,6 +11184,18 @@ msgid ""
"Best regards, \n"
"Your {event} team"
msgstr ""
+"Hei,\n"
+"\n"
+"valitettavasti hylkäsimme tilauspyyntösi {event}-tapahtumaan.\n"
+"\n"
+"{comment}\n"
+"\n"
+"Voit tarkastella tilauksesi yksityiskohtia täällä:\n"
+"\n"
+"{url}\n"
+"\n"
+"Ystävällisin terveisin, \n"
+"{event} tiimi"
#: pretix/base/settings.py:2614
#, python-brace-format
@@ -10880,6 +11208,13 @@ msgid ""
"Best regards, \n"
"Your {event} team"
msgstr ""
+"Hei,\n"
+"\n"
+"Voit muuttaa tilauksesi tietoja ja tarkastella tilauksesi tilaa osoitteessa\n"
+"{url}\n"
+"\n"
+"Ystävällisin terveisin, \n"
+"{event} tiimi"
#: pretix/base/settings.py:2632 pretix/base/settings.py:2648
#, python-brace-format
@@ -10935,7 +11270,7 @@ msgstr ""
#: pretix/base/settings.py:2664
#, python-brace-format
msgid "Activate your account at {organizer}"
-msgstr ""
+msgstr "Aktivoi tilisi osoitteessa {organizer}"
#: pretix/base/settings.py:2668
#, python-brace-format
@@ -10956,11 +11291,26 @@ msgid ""
"\n"
"Your {organizer} team"
msgstr ""
+"Hei {name},\n"
+"\n"
+"kiitos, että rekisteröit {organizer} tilin!\n"
+"\n"
+"Voit aktivoida tilisi ja asettaa salasanan klikkaamalla tästä:\n"
+"\n"
+"{url}\n"
+"\n"
+"Tämä linkki on voimassa yhden päivän.\n"
+"\n"
+"Jos et ole ilmoittautunut itse, jätä tämä sähköposti huomiotta.\n"
+"\n"
+"Ystävällisin terveisin, \n"
+"\n"
+"{organizer} tiimi"
#: pretix/base/settings.py:2686
#, python-brace-format
msgid "Confirm email address for your account at {organizer}"
-msgstr ""
+msgstr "Vahvista tilisi sähköpostiosoite osoitteessa {organizer}"
#: pretix/base/settings.py:2690
#, python-brace-format
@@ -10981,11 +11331,26 @@ msgid ""
"\n"
"Your {organizer} team"
msgstr ""
+"Hei {name},\n"
+"\n"
+"pyysit vaihtamaan tilisi {organizer} sähköpostiosoitteen!\n"
+"\n"
+"Vahvistaaksesi muutoksen, klikkaa tästä:\n"
+"\n"
+"{url}\n"
+"\n"
+"Tämä linkki on voimassa yhden päivän.\n"
+"\n"
+"Jos et ole pyytänyt tätä, jätä tämä sähköposti huomiotta.\n"
+"\n"
+"Ystävällisin terveisin, \n"
+"\n"
+"{organizer} tiimi"
#: pretix/base/settings.py:2708
#, python-brace-format
msgid "Set a new password for your account at {organizer}"
-msgstr ""
+msgstr "Aseta tilillesi uusi salasana osoitteessa {organizer}"
#: pretix/base/settings.py:2712
#, python-brace-format
@@ -11006,6 +11371,21 @@ msgid ""
"\n"
"Your {organizer} team"
msgstr ""
+"Hei {name},\n"
+"\n"
+"pyysit uutta salasanaa tilillesi {organizer}!\n"
+"\n"
+"Voit asettaa uuden salasanan klikkaamalla tästä:\n"
+"\n"
+"{url}\n"
+"\n"
+"Tämä linkki on voimassa yhden päivän.\n"
+"\n"
+"Jos et ole pyytänyt uutta salasanaa, jätä tämä sähköposti huomiotta.\n"
+"\n"
+"Ystävällisin terveisin, \n"
+"\n"
+"{organizer}-tiimi"
#: pretix/base/settings.py:2764 pretix/base/settings.py:2771
#: pretix/base/settings.py:2785 pretix/base/settings.py:2793
@@ -11032,7 +11412,7 @@ msgstr "Aksenttiväri virheille"
#: pretix/base/settings.py:2812
msgid "We strongly suggest to use a shade of red."
-msgstr ""
+msgstr "Suosittelemme vahvasti käyttämään punaista sävyä."
#: pretix/base/settings.py:2833
msgid "Page background color"
@@ -11047,6 +11427,8 @@ msgid ""
"Use native spinners in the widget instead of custom ones for numeric inputs "
"such as quantity."
msgstr ""
+"Käytä widgetissä alkuperäisiä spinnerejä mukautettujen sijaan numeerisiin "
+"syötteisiin, kuten määrään."
#: pretix/base/settings.py:2868
msgid "Only respected by modern browsers."
@@ -11055,7 +11437,7 @@ msgstr "Toimii vain moderneissa selaimissa."
#: pretix/base/settings.py:2879 pretix/base/settings.py:2922
#: pretix/control/forms/organizer.py:520
msgid "Header image"
-msgstr ""
+msgstr "Ylätunnisteen kuva"
#: pretix/base/settings.py:2882
msgid ""
@@ -11065,10 +11447,15 @@ msgid ""
"recommend not using small details on the picture as it will be resized on "
"smaller screens."
msgstr ""
+"Jos annat logokuvan, emme oletusarvoisesti näytä tapahtumasi nimeä ja "
+"päivämäärää sivun otsikossa. Oletuksena näytämme logosi kooltaan enintään "
+"1140x120 pikseliä. Voit suurentaa kokoa alla olevalla asetuksella. "
+"Suosittelemme, että kuvassa ei käytetä pieniä yksityiskohtia, koska sen "
+"kokoa muutetaan pienemmillä näytöillä."
#: pretix/base/settings.py:2902 pretix/base/settings.py:2944
msgid "Use header image in its full size"
-msgstr ""
+msgstr "Käytä otsikkokuvaa täysikokoisena"
#: pretix/base/settings.py:2903 pretix/base/settings.py:2945
msgid "We recommend to upload a picture at least 1170 pixels wide."
@@ -11076,7 +11463,7 @@ msgstr "Suositeltu kuvan leveys vähintään 1170 pikseliä."
#: pretix/base/settings.py:2912
msgid "Show event title even if a header image is present"
-msgstr ""
+msgstr "Näytä tapahtuman otsikko, vaikka otsikkokuva olisi näkyvissä"
#: pretix/base/settings.py:2913
msgid ""
@@ -11084,6 +11471,9 @@ msgid ""
"uploaded for the event, but the header image from the organizer profile is "
"used, this option will be ignored and the event title will always be shown."
msgstr ""
+"Otsikko näkyy vain tapahtuman etusivulla. Jos tapahtumalle ei ole ladattu "
+"otsikkokuvaa, mutta järjestäjäprofiilin otsikkokuvaa käytetään, tämä "
+"vaihtoehto ohitetaan ja tapahtuman otsikko näytetään aina."
#: pretix/base/settings.py:2925 pretix/control/forms/organizer.py:524
msgid ""
@@ -11093,24 +11483,32 @@ msgid ""
"recommend not using small details on the picture as it will be resized on "
"smaller screens."
msgstr ""
+"Jos annat logokuvan, emme oletusarvoisesti näytä organisaatiosi nimeä sivun "
+"otsikossa. Oletuksena näytämme logosi kooltaan enintään 1140x120 pikseliä. "
+"Voit suurentaa kokoa alla olevalla asetuksella. Suosittelemme, että kuvassa "
+"ei käytetä pieniä yksityiskohtia, koska sen kokoa muutetaan pienemmillä "
+"näytöillä."
#: pretix/base/settings.py:2954
msgid "Use header image also for events without an individually uploaded logo"
msgstr ""
+"Käytä otsikkokuvaa myös tapahtumissa, joissa ei ole erikseen ladattua logoa"
#: pretix/base/settings.py:2962
msgid "Favicon"
-msgstr ""
+msgstr "Favicon kuvake"
#: pretix/base/settings.py:2965
msgid ""
"If you provide a favicon, we will show it instead of the default pretix "
"icon. We recommend a size of at least 200x200px to accommodate most devices."
msgstr ""
+"Jos annat faviconin, näytämme sen oletusarvoisen pretix-kuvakkeen sijaan. "
+"Suosittelemme kokoa vähintään 200x200px useimpien laitteiden sijoittamiseksi."
#: pretix/base/settings.py:2981
msgid "Social media image"
-msgstr ""
+msgstr "Sosiaalisen median kuva"
#: pretix/base/settings.py:2984
msgid ""
@@ -11120,6 +11518,12 @@ msgid ""
"preview, so we recommend to make sure it still looks good only the center "
"square is shown. If you do not fill this, we will use the logo given above."
msgstr ""
+"Tätä kuvaa käytetään esikatseluna, jos julkaiset linkkejä lippukauppaasi "
+"sosiaalisessa mediassa. Facebook neuvoo käyttämään kuvakokoa 1200 x 630 "
+"pikseliä, mutta jotkut alustat, kuten WhatsApp ja Reddit, näyttävät vain "
+"neliön esikatselun, joten suosittelemme varmistamaan, että se näyttää "
+"edelleen hyvältä, vain keskineliö näytetään. Jos et täytä tätä, käytämme "
+"yllä annettua logoa."
#: pretix/base/settings.py:3002
msgid "Logo image"
@@ -11131,67 +11535,79 @@ msgstr "Kuva näytetään 2,5 cm leveänä ja maksimikorkeudessa."
#: pretix/base/settings.py:3032 pretix/base/settings.py:3138
msgid "Info text"
-msgstr ""
+msgstr "Info teksti"
#: pretix/base/settings.py:3035 pretix/base/settings.py:3140
msgid ""
"Not displayed anywhere by default, but if you want to, you can use this e.g. "
"in ticket templates."
msgstr ""
+"Ei näy oletuksena missään, mutta halutessasi voit käyttää tätä esim. "
+"lippupohjissa."
#: pretix/base/settings.py:3044
msgid "Banner text (top)"
-msgstr ""
+msgstr "Bannerin teksti (ylhäällä)"
#: pretix/base/settings.py:3047
msgid ""
"This text will be shown above every page of your shop. Please only use this "
"for very important messages."
msgstr ""
+"Tämä teksti näkyy kauppasi jokaisen sivun ylälaidassa. Käytä tätä vain "
+"erittäin tärkeisiin viesteihin."
#: pretix/base/settings.py:3057
msgid "Banner text (bottom)"
-msgstr ""
+msgstr "Bannerin teksti (alhaalla)"
#: pretix/base/settings.py:3060
msgid ""
"This text will be shown below every page of your shop. Please only use this "
"for very important messages."
msgstr ""
+"Tämä teksti näkyy kauppasi jokaisen sivun alalaidassa. Käytä tätä vain "
+"erittäin tärkeisiin viesteihin."
#: pretix/base/settings.py:3070
msgid "Voucher explanation"
-msgstr ""
+msgstr "Kupongin selitys"
#: pretix/base/settings.py:3073
msgid ""
"This text will be shown next to the input for a voucher code. You can use it "
"e.g. to explain how to obtain a voucher code."
msgstr ""
+"Tämä teksti näkyy kuponkikoodin syötteen vieressä. Voit käyttää sitä "
+"esimerkiksi selittämään, miten saat kuponkikoodin."
#: pretix/base/settings.py:3083
msgid "Attendee data explanation"
-msgstr ""
+msgstr "Osallistujatietojen selitys"
#: pretix/base/settings.py:3086
msgid ""
"This text will be shown above the questions asked for every personalized "
"product. You can use it e.g. to explain why you need information from them."
msgstr ""
+"Tämä teksti näkyy jokaisen henkilökohtaisen tuotteen kysymysten yläpuolella. "
+"Voit käyttää sitä esimerkiksi selittämään, miksi tarvitset heiltä tietoa."
#: pretix/base/settings.py:3096
msgid "Additional success message"
-msgstr ""
+msgstr "Onnistumisen lisäviesti"
#: pretix/base/settings.py:3097
msgid ""
"This message will be shown after an order has been created successfully. It "
"will be shown in additional to the default text."
msgstr ""
+"Tämä viesti näytetään, kun tilaus on luotu onnistuneesti. Se näkyy "
+"oletustekstin lisäksi."
#: pretix/base/settings.py:3109
msgid "Help text of the phone number field"
-msgstr ""
+msgstr "Puhelinnumerokentän ohjeteksti"
#: pretix/base/settings.py:3116
msgid ""
@@ -11204,11 +11620,11 @@ msgstr ""
#: pretix/base/settings.py:3123
msgid "Help text of the email field"
-msgstr ""
+msgstr "Sähköpostikentän ohjeteksti"
#: pretix/base/settings.py:3149
msgid "Allow creating a new team during event creation"
-msgstr ""
+msgstr "Salli uuden tiimin luominen tapahtuman luonnin aikana"
#: pretix/base/settings.py:3150
msgid ""
@@ -11217,45 +11633,52 @@ msgid ""
"allows users to create an event-specified team on-the-fly, even when they do "
"not have \"Can change teams and permissions\" permission."
msgstr ""
+"Käyttäjien, joilla ei ole käyttöoikeutta kaikkiin tämän järjestäjän "
+"tapahtumiin, on valittava yksi tiimeistään, jotta heillä on käyttöoikeus "
+"luotuun tapahtumaan. Tämän asetuksen avulla käyttäjät voivat luoda "
+"tapahtumamääritetyn ryhmän lennossa, vaikka heillä ei olisi "
+"\"voi muuttaa ryhmiä ja käyttöoikeuksia\" -oikeutta."
#: pretix/base/settings.py:3222 pretix/base/settings.py:3232
msgid "Event start time (descending)"
-msgstr ""
+msgstr "Tapahtuman alkamisaika (laskeva)"
#: pretix/base/settings.py:3224 pretix/base/settings.py:3234
msgid "Name (descending)"
-msgstr ""
+msgstr "Nimi (laskeva)"
#: pretix/base/settings.py:3229
msgctxt "subevent"
msgid "Date ordering"
-msgstr ""
+msgstr "Tilauspäivä"
#: pretix/base/settings.py:3245
msgid "Link back to organizer overview on all event pages"
-msgstr ""
+msgstr "Linkki takaisin järjestäjän yleiskatsaukseen kaikilla tapahtumasivuilla"
#: pretix/base/settings.py:3254
msgid "Homepage text"
-msgstr ""
+msgstr "Kotisivun teksti"
#: pretix/base/settings.py:3256
msgid "This will be displayed on the organizer homepage."
-msgstr ""
+msgstr "Tämä näkyy järjestäjän kotisivulla."
#: pretix/base/settings.py:3271
msgid "Length of gift card codes"
-msgstr ""
+msgstr "Lahjakorttikoodien pituus"
#: pretix/base/settings.py:3272
msgid ""
"The system generates by default {}-character long gift card codes. However, "
"if a different length is required, it can be set here."
msgstr ""
+"Järjestelmä luo oletuksena {} merkin pituiset lahjakorttikoodit. Jos "
+"kuitenkin tarvitaan eri pituus, se voidaan asettaa tähän."
#: pretix/base/settings.py:3288
msgid "Validity of gift card codes in years"
-msgstr ""
+msgstr "Lahjakorttikoodien voimassaolo vuosina"
#: pretix/base/settings.py:3289
msgid ""
@@ -11263,20 +11686,25 @@ msgid ""
"the year after this many years. If you keep it empty, gift cards do not have "
"an explicit expiry date."
msgstr ""
+"Jos asetat numeron tähän, lahjakortit vanhenevat oletuksena vuoden lopussa "
+"näin monen vuoden kuluttua. Jos pidät sen tyhjänä, lahjakorteilla ei ole "
+"selkeää vanhentumispäivää."
#: pretix/base/settings.py:3298
msgid "Enable cookie consent management features"
-msgstr ""
+msgstr "Ota evästeiden suostumusten hallintaominaisuudet käyttöön"
#: pretix/base/settings.py:3304
msgid ""
"By clicking \"Accept all cookies\", you agree to the storing of cookies and "
"use of similar technologies on your device."
msgstr ""
+"Napsauttamalla \"Hyväksy kaikki evästeet\" hyväksyt evästeiden tallentamisen "
+"ja vastaavien tekniikoiden käytön laitteellesi."
#: pretix/base/settings.py:3311
msgid "Dialog text"
-msgstr ""
+msgstr "Valintaikkunan teksti"
#: pretix/base/settings.py:3318
msgid ""
@@ -11285,10 +11713,14 @@ msgid ""
"use cookies if they are essential to providing the services this website "
"offers."
msgstr ""
+"Käytämme evästeitä ja vastaavia tekniikoita kerätäksemme tietoja, joiden "
+"avulla voimme parantaa tätä verkkosivustoa ja tarjontaamme. Jos et hyväksy "
+"tätä, käytämme evästeitä vain, jos ne ovat välttämättömiä tämän "
+"verkkosivuston tarjoamien palvelujen tarjoamiseksi."
#: pretix/base/settings.py:3326
msgid "Secondary dialog text"
-msgstr ""
+msgstr "Toissijainen valintaikkunan teksti"
#: pretix/base/settings.py:3332
msgid "Privacy settings"
@@ -11296,11 +11728,11 @@ msgstr "Tietosuoja-asetukset"
#: pretix/base/settings.py:3337
msgid "Dialog title"
-msgstr ""
+msgstr "Valintaikkunan otsikko"
#: pretix/base/settings.py:3343
msgid "Accept all cookies"
-msgstr ""
+msgstr "Hyväksy kaikki evästeet"
#: pretix/base/settings.py:3348
msgid "\"Accept\" button description"
@@ -11308,7 +11740,7 @@ msgstr "\"Hyväksy\" painikkeen kuvaus"
#: pretix/base/settings.py:3354
msgid "Required cookies only"
-msgstr ""
+msgstr "Vain välttämättömät evästeet"
#: pretix/base/settings.py:3359
msgid "\"Reject\" button description"
@@ -11316,7 +11748,7 @@ msgstr "\"Hylkää\" painikkeen kuvaus"
#: pretix/base/settings.py:3369
msgid "Customers can choose their own seats"
-msgstr ""
+msgstr "Asiakkaat voivat valita omat istumapaikkansa"
#: pretix/base/settings.py:3370
msgid ""
@@ -11324,33 +11756,36 @@ msgid ""
"that this can mean people will not know their seat after their purchase and "
"it might not be written on their ticket."
msgstr ""
+"Jos se on poistettu käytöstä, sinun on määritettävä istuimet manuaalisesti "
+"taustalla. Huomaa, että tämä voi tarkoittaa, että ihmiset eivät tiedä "
+"istumapaikkaansa oston jälkeen, eikä sitä ehkä ole kirjoitettu lippuun."
#: pretix/base/settings.py:3396
msgid "Show button to copy user input from other products"
-msgstr ""
+msgstr "Näytä-painike käyttäjän syötteen kopioimiseksi muista tuotteista"
#: pretix/base/settings.py:3406
msgid "Most common English titles"
-msgstr ""
+msgstr "Yleisimmät englanninkieliset nimikkeet"
#: pretix/base/settings.py:3416
msgid "Most common German titles"
-msgstr ""
+msgstr "Yleisimmät saksalaiset nimikkeet"
#: pretix/base/settings.py:3429
msgctxt "person_name_salutation"
msgid "Ms"
-msgstr ""
+msgstr "Neiti/Rouva"
#: pretix/base/settings.py:3430
msgctxt "person_name_salutation"
msgid "Mr"
-msgstr ""
+msgstr "Herra"
#: pretix/base/settings.py:3431
msgctxt "person_name_salutation"
msgid "Mx"
-msgstr ""
+msgstr "Mx"
#: pretix/base/settings.py:3463 pretix/base/settings.py:3476
#: pretix/base/settings.py:3492 pretix/base/settings.py:3542
@@ -11377,7 +11812,7 @@ msgstr "Sukunimi"
#: pretix/base/settings.py:3687
msgctxt "person_name_sample"
msgid "John"
-msgstr ""
+msgstr "John"
#: pretix/base/settings.py:3469 pretix/base/settings.py:3485
#: pretix/base/settings.py:3501 pretix/base/settings.py:3517
@@ -11386,21 +11821,21 @@ msgstr ""
#: pretix/base/settings.py:3657 pretix/base/settings.py:3688
msgctxt "person_name_sample"
msgid "Doe"
-msgstr ""
+msgstr "Doe"
#: pretix/base/settings.py:3475 pretix/base/settings.py:3491
#: pretix/base/settings.py:3523 pretix/base/settings.py:3642
#: pretix/base/settings.py:3664
msgctxt "person_name"
msgid "Title"
-msgstr ""
+msgstr "Titteli"
#: pretix/base/settings.py:3483 pretix/base/settings.py:3499
#: pretix/base/settings.py:3532 pretix/base/settings.py:3655
#: pretix/base/settings.py:3686
msgctxt "person_name_sample"
msgid "Dr"
-msgstr ""
+msgstr "Tohtori"
#: pretix/base/settings.py:3507 pretix/base/settings.py:3524
msgid "First name"
@@ -11422,56 +11857,61 @@ msgstr "Kutsumanimi"
#: pretix/base/settings.py:3609
msgid "Latin transcription"
-msgstr ""
+msgstr "Latinalainen transkriptio"
#: pretix/base/settings.py:3621 pretix/base/settings.py:3641
#: pretix/base/settings.py:3663
msgctxt "person_name"
msgid "Salutation"
-msgstr ""
+msgstr "Tervehdys"
#: pretix/base/settings.py:3633 pretix/base/settings.py:3654
#: pretix/base/settings.py:3685
msgctxt "person_name_sample"
msgid "Mr"
-msgstr ""
+msgstr "Herra"
#: pretix/base/settings.py:3667
msgctxt "person_name"
msgid "Degree (after name)"
-msgstr ""
+msgstr "Tutkinto (nimen jälkeen)"
#: pretix/base/settings.py:3689
msgctxt "person_name_sample"
msgid "MA"
-msgstr ""
+msgstr "Maisteri"
#: pretix/base/settings.py:3797 pretix/control/forms/event.py:228
msgid ""
"Your default locale must also be enabled for your event (see box above)."
msgstr ""
+"Myös oletusaluekohtaisen alueen on oltava käytössä tapahtumassa (katso yllä "
+"oleva ruutu)."
#: pretix/base/settings.py:3801
msgid ""
"You cannot require specifying attendee names if you do not ask for them."
-msgstr ""
+msgstr "Et voi vaatia osallistujien nimien määrittämistä, jos et pyydä niitä."
#: pretix/base/settings.py:3805
msgid "You have to ask for attendee emails if you want to make them required."
msgstr ""
+"Sinun on pyydettävä osallistujien sähköposteja, jos haluat tehdä niistä "
+"pakollisia."
#: pretix/base/settings.py:3809
msgid ""
"You have to ask for invoice addresses if you want to make them required."
msgstr ""
+"Sinun on pyydettävä laskuosoitteita, jos haluat tehdä niistä pakollisia."
#: pretix/base/settings.py:3813
msgid "You have to require invoice addresses to require for company names."
-msgstr ""
+msgstr "Sinun on vaadittava laskuosoitteet yritysten nimille."
#: pretix/base/settings.py:3820
msgid "The last payment date cannot be before the end of presale."
-msgstr ""
+msgstr "Viimeinen maksupäivä ei voi olla ennen ennakkomyynnin päättymistä."
#: pretix/base/settings.py:3828
#, python-brace-format
@@ -11481,14 +11921,16 @@ msgstr "Arvo \"{identifier}\" ei ole hyväksytty myyntitapa."
#: pretix/base/settings.py:3843
msgid "This needs to be disabled if other NFC-based types are active."
msgstr ""
+"Tämä on poistettava käytöstä, jos muut NFC-pohjaiset tyypit ovat aktiivisia."
#: pretix/base/shredder.py:74 pretix/base/shredder.py:77
msgid "Your event needs to be over to use this feature."
-msgstr ""
+msgstr "Tapahtumasi on oltava ohi, jotta voit käyttää tätä ominaisuutta."
#: pretix/base/shredder.py:79
msgid "Your ticket shop needs to be offline to use this feature."
msgstr ""
+"Lippukaupan on oltava offline-tilassa, jotta voit käyttää tätä ominaisuutta."
#: pretix/base/shredder.py:257
msgid "Phone numbers"
@@ -11496,7 +11938,7 @@ msgstr "Puhelinnumerot"
#: pretix/base/shredder.py:259
msgid "This will remove all phone numbers from orders."
-msgstr ""
+msgstr "Tämä poistaa kaikki puhelinnumerot tilauksista."
#: pretix/base/shredder.py:290
msgid "Emails"
@@ -11508,41 +11950,51 @@ msgid ""
"logged email contents. This will also remove the association to customer "
"accounts."
msgstr ""
+"Tämä poistaa kaikki sähköpostiosoitteet tilauksista ja osallistujista sekä "
+"kirjatun sähköpostin sisällön. Tämä poistaa myös yhdistämisen "
+"asiakastileihin."
#: pretix/base/shredder.py:369
msgid ""
"This will remove all names, email addresses, and phone numbers from the "
"waiting list."
msgstr ""
+"Tämä poistaa kaikki nimet, sähköpostiosoitteet ja puhelinnumerot "
+"odotuslistalta."
#: pretix/base/shredder.py:421
msgid "Attendee info"
-msgstr ""
+msgstr "Osallistujan tiedot"
#: pretix/base/shredder.py:423
msgid ""
"This will remove all attendee names and postal addresses from order "
"positions, as well as logged changes to them."
msgstr ""
+"Tämä poistaa kaikki osallistujien nimet ja postiosoitteet tilauspaikoista "
+"sekä niihin kirjatut muutokset."
#: pretix/base/shredder.py:501
msgid "Invoice addresses"
-msgstr ""
+msgstr "Laskujen osoitteet"
#: pretix/base/shredder.py:504
msgid ""
"This will remove all invoice addresses from orders, as well as logged "
"changes to them."
msgstr ""
+"Tämä poistaa kaikki laskuosoitteet tilauksista sekä niihin kirjatut "
+"muutokset."
#: pretix/base/shredder.py:535
msgid "Question answers"
-msgstr ""
+msgstr "Vastauksia kysymyksiin"
#: pretix/base/shredder.py:537
msgid ""
"This will remove all answers to questions, as well as logged changes to them."
msgstr ""
+"Tämä poistaa kaikki vastaukset kysymyksiin sekä niihin kirjatut muutokset."
#: pretix/base/shredder.py:579
msgid ""
@@ -11550,14 +12002,18 @@ msgid ""
"might contain personal data from the database. Invoice numbers and totals "
"will be conserved."
msgstr ""
+"Tämä poistaa tietokannasta kaikki PDF-laskut sekä niiden tekstisisällön, "
+"joka saattaa sisältää henkilötietoja. Laskujen numerot ja kokonaissummat "
+"säilytetään."
#: pretix/base/shredder.py:608
msgid "Cached ticket files"
-msgstr ""
+msgstr "Välimuistissa olevat lipputiedostot"
#: pretix/base/shredder.py:610
msgid "This will remove all cached ticket files. No download will be offered."
msgstr ""
+"Tämä poistaa kaikki välimuistissa olevat lipputiedostot. Latausta ei tarjota."
#: pretix/base/shredder.py:632
msgid ""
@@ -11565,14 +12021,16 @@ msgid ""
"method, all data will be removed or personal data only. No download will be "
"offered."
msgstr ""
+"Tämä poistaa maksuun liittyvät tiedot. Maksutavasta riippuen kaikki tiedot "
+"poistetaan tai vain henkilötiedot. Latausta ei tarjota."
#: pretix/base/templates/400.html:4 pretix/base/templates/400.html:8
msgid "Bad Request"
-msgstr ""
+msgstr "Virheellinen pyyntö"
#: pretix/base/templates/400.html:9
msgid "We were unable to parse your request."
-msgstr ""
+msgstr "Emme pystyneet jäsentämään pyyntöäsi."
#: pretix/base/templates/400.html:12 pretix/base/templates/400_hostname.html:47
#: pretix/base/templates/403.html:12 pretix/base/templates/404.html:12
@@ -11586,7 +12044,7 @@ msgstr "Mene takaisin"
#: pretix/presale/templates/pretixpresale/event/cookies.html:40
#: pretix/presale/templates/pretixpresale/event/offline.html:14
msgid "Try again"
-msgstr ""
+msgstr "Yritä uudelleen"
#: pretix/base/templates/400_hostname.html:4
#: pretix/base/templates/400_hostname.html:8
@@ -11599,6 +12057,8 @@ msgid ""
"Your browser told us that you want to access \"%(header_host)s\". "
"Unfortunately, we don't have any content for this domain."
msgstr ""
+"Selaimesi kertoi meille, että haluat käyttää \"%(header_host)s\". "
+"Valitettavasti meillä ei ole sisältöä tälle verkkotunnukselle."
#: pretix/base/templates/400_hostname.html:17
msgid ""
@@ -11606,10 +12066,13 @@ msgid ""
"probably caused due to the fact that either your configuration includes the "
"wrong site URL or your reverse proxy is sending the wrong header."
msgstr ""
+"Näyttää siltä, että tämä on tuore pretix-asennus. Tämä virhesanoma johtuu "
+"todennäköisesti siitä, että määritykset sisältävät väärän sivuston URL-"
+"osoitteen tai käänteinen välityspalvelin lähettää väärän otsikon."
#: pretix/base/templates/400_hostname.html:24
msgid "Expected host according to configuration"
-msgstr ""
+msgstr "Odotettu isäntä määritysten mukaan"
#: pretix/base/templates/400_hostname.html:26
msgid "Received headers"
@@ -11617,25 +12080,27 @@ msgstr "Vastaanotetut otsakkeet"
#: pretix/base/templates/400_hostname.html:32
msgid "ignored"
-msgstr ""
+msgstr "ei huomioitu"
#: pretix/base/templates/400_hostname.html:35
msgid "Derived host from headers"
-msgstr ""
+msgstr "Otsikoista johdettu isäntä (host)"
#: pretix/base/templates/400_hostname.html:40
msgid ""
"If you just configured this as a domain for your ticket shop, you now need "
"to set this up as a \"custom domain\" in your organizer account."
msgstr ""
+"Jos olet juuri määrittänyt tämän lippukauppasi verkkotunnukseksi, sinun on "
+"nyt määritettävä tämä \"mukautetuksi verkkotunnukseksi\" järjestäjätililläsi."
#: pretix/base/templates/403.html:4 pretix/base/templates/403.html:8
msgid "Permission denied"
-msgstr ""
+msgstr "Lupa evätty"
#: pretix/base/templates/403.html:9
msgid "You do not have access to this page."
-msgstr ""
+msgstr "Sinulla ei ole pääsyä tälle sivulle."
#: pretix/base/templates/403.html:20 pretix/base/templates/404.html:19
#: pretix/control/templates/pretixcontrol/base.html:194
@@ -11643,7 +12108,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/user/staff_session_start.html:6
#: pretix/presale/templates/pretixpresale/event/offline.html:21
msgid "Admin mode"
-msgstr ""
+msgstr "Järjestelmänvalvojan tila"
#: pretix/base/templates/404.html:4 pretix/base/templates/404.html:8
msgid "Not found"
@@ -11659,41 +12124,47 @@ msgstr "Palvelinvirhe"
#: pretix/base/templates/500.html:9
msgid "We had trouble processing your request."
-msgstr ""
+msgstr "Meillä oli ongelmia pyyntösi käsittelyssä."
#: pretix/base/templates/500.html:10
msgid "If this problem persists, please contact us."
-msgstr ""
+msgstr "Jos tämä ongelma jatkuu, ota meihin yhteyttä."
#: pretix/base/templates/500.html:13
msgid "If you contact us, please send us the following code:"
-msgstr ""
+msgstr "Jos otat meihin yhteyttä, lähetä meille seuraava koodi:"
#: pretix/base/templates/csrffail.html:4 pretix/base/templates/csrffail.html:8
msgid "Verification failed"
-msgstr ""
+msgstr "Vahvistus epäonnistui"
#: pretix/base/templates/csrffail.html:9
msgid ""
"We could not verify that this request really was sent from you. For security "
"reasons, we therefore cannot process it."
msgstr ""
+"Emme voineet varmistaa, että tämä pyyntö todella lähetettiin sinulta. "
+"Turvallisuussyistä emme siis voi käsitellä sitä."
#: pretix/base/templates/csrffail.html:20
msgid ""
"Please go back to the last page, refresh this page and then try again. If "
"the problem persists, please get in touch with us."
msgstr ""
+"Palaa viimeiselle sivulle, päivitä tämä sivu ja yritä sitten uudelleen. Jos "
+"ongelma jatkuu, ota meihin yhteyttä."
#: pretix/base/templates/pretixbase/cachedfiles/pending.html:21
msgid "We are preparing your file for download …"
-msgstr ""
+msgstr "Valmistelemme tiedostoasi ladattavaksi…"
#: pretix/base/templates/pretixbase/cachedfiles/pending.html:23
msgid ""
"If this takes longer than a few minutes, please refresh this page or contact "
"us."
msgstr ""
+"Jos tämä kestää kauemmin kuin muutaman minuutin, päivitä tämä sivu tai ota "
+"meihin yhteyttä."
#: pretix/base/templates/pretixbase/email/email_footer.html:3
#, python-format
@@ -11702,7 +12173,7 @@ msgstr "Palvelun tarjoaa pretix"
#: pretix/base/templates/pretixbase/email/export_failed.txt:2
msgid "Your export failed."
-msgstr ""
+msgstr "Vienti epäonnistui."
#: pretix/base/templates/pretixbase/email/export_failed.txt:4
msgid "Reason:"
@@ -11710,7 +12181,7 @@ msgstr "Hyvityksen syy:"
#: pretix/base/templates/pretixbase/email/export_failed.txt:7
msgid "If your export fails five times in a row, it will no longer be sent."
-msgstr ""
+msgstr "Jos vienti epäonnistuu viisi kertaa peräkkäin, sitä ei enää lähetetä."
#: pretix/base/templates/pretixbase/email/export_failed.txt:10
msgid "Configuration link:"
@@ -11719,29 +12190,31 @@ msgstr "Odottaa vahvistusta:"
#: pretix/base/templates/pretixbase/email/notification.html:55
#: pretix/base/templates/pretixbase/email/notification.txt:14
msgid "You receive these emails based on your notification settings."
-msgstr ""
+msgstr "Saat nämä sähköpostit ilmoitusasetustesi perusteella."
#: pretix/base/templates/pretixbase/email/notification.html:57
msgid "Click here to view and change your notification settings"
-msgstr ""
+msgstr "Klikkaa tästä tarkastellaksesi ja muuttaaksesi ilmoitusasetuksiasi"
#: pretix/base/templates/pretixbase/email/notification.html:60
msgid "Click here disable all notifications immediately."
-msgstr ""
+msgstr "Klikkaa tästä poista kaikki ilmoitukset käytöstä välittömästi."
#: pretix/base/templates/pretixbase/email/notification.txt:15
msgid "Click here to view and change your notification settings:"
-msgstr ""
+msgstr "Klikkaa tästä nähdäksesi ja muuttaaksesi ilmoitusasetuksiasi:"
#: pretix/base/templates/pretixbase/email/notification.txt:17
msgid "Click here disable all notifications immediately:"
-msgstr ""
+msgstr "Napsauta tätä poista kaikki ilmoitukset käytöstä välittömästi:"
#: pretix/base/templates/pretixbase/email/order_details.html:7
msgid ""
"You are receiving this email because someone signed you up for the following "
"event:"
msgstr ""
+"Saat tämän sähköpostiviestin, koska joku on rekisteröinyt sinut seuraavaan "
+"tapahtumaan:"
#: pretix/base/templates/pretixbase/email/order_details.html:12
#: pretix/base/templates/pretixbase/email/order_details.html:62
@@ -11760,7 +12233,7 @@ msgstr "luonut"
#: pretix/base/templates/pretixbase/email/order_details.html:37
#: pretix/base/templates/pretixbase/email/order_details.html:132
msgid "Contact:"
-msgstr ""
+msgstr "Kontakti:"
#: pretix/base/templates/pretixbase/email/order_details.html:57
msgid ""
@@ -11771,7 +12244,7 @@ msgstr ""
#: pretix/base/templates/pretixbase/email/order_details.html:86
msgid "Details:"
-msgstr ""
+msgstr "Tiedot:"
#: pretix/base/templates/pretixbase/email/shred_completed.txt:2
#, python-format
@@ -11793,31 +12266,49 @@ msgid ""
"\n"
"Your pretix team\n"
msgstr ""
+"Hei,\n"
+"\n"
+"vahvistamme täten, että seuraava tietojen hävittämistehtävä on suoritettu:\n"
+"\n"
+"Järjestäjä: %(organizer)s\n"
+"\n"
+"Tapahtuma: %(event)s)\n"
+"\n"
+"Tietojen valinta: %(shredders)s.\n"
+"\n"
+"Aloitusaika: %(start_time)s (tämän ajan jälkeen lisättyjä uusia tietoja ei "
+"välttämättä ole poistettu).\n"
+"\n"
+"Ystävällisin terveisin,\n"
+"\n"
+"Pretix-tiimisi\n"
#: pretix/base/templates/pretixbase/forms/widgets/checkbox_sales_channel_option.html:16
msgid ""
"This sales channel cannot be used properly since the respective plugin is "
"not active for this event."
msgstr ""
+"Tätä myyntikanavaa ei voi käyttää oikein, koska vastaava lisäosa ei ole "
+"aktiivinen tässä tapahtumassa."
#: pretix/base/templates/pretixbase/forms/widgets/portrait_image.html:10
msgid "Upload photo"
-msgstr ""
+msgstr "Lähetä kuva"
#: pretix/base/templates/pretixbase/forms/widgets/reldate.html:14
#, python-format
msgid "%(number)s days %(relation)s %(relation_to)s"
-msgstr ""
+msgstr "%(number)s päivää %(relation)s %(relation_to)s"
#: pretix/base/templates/pretixbase/forms/widgets/reldatetime.html:14
#, python-format
msgid "%(number)s minutes %(relation)s %(relation_to)s"
-msgstr ""
+msgstr "%(number)s minuuttia %(relation)s %(relation_to)s"
#: pretix/base/templates/pretixbase/forms/widgets/reldatetime.html:18
#, python-format
msgid "%(number)s days %(relation)s %(relation_to)s at %(time_of_day)s"
-msgstr ""
+msgstr "%(number)s päivää %(relation)s %(relation_to)s %(time_of_day)s:ssä"
#: pretix/base/templates/pretixbase/redirect.html:5
#: pretix/base/templates/pretixbase/redirect.html:9
@@ -11830,10 +12321,12 @@ msgid ""
"The link you clicked on wants to redirect you to a destination on the "
"website %(host)s."
msgstr ""
+"Napsauttamasi linkki haluaa ohjata sinut verkkosivuston %(host)s-sivuston "
+"kohteeseen."
#: pretix/base/templates/pretixbase/redirect.html:14
msgid "Please only proceed if you trust this website to be safe."
-msgstr ""
+msgstr "Jatka vain, jos luotat tämän verkkosivuston olevan turvallinen."
#: pretix/base/templates/pretixbase/redirect.html:20
#, python-format
@@ -11849,10 +12342,13 @@ msgid ""
"This site is powered by free software. If you want to read the license terms "
"or obtain the source code, follow these links or instructions:"
msgstr ""
+"Tämä sivusto toimii vapaan lähdekoodin ohjelmistolla. Jos haluat lukea "
+"käyttöoikeussopimuksen ehdot tai hankkia lähdekoodin, seuraa näitä linkkejä "
+"tai ohjeita:"
#: pretix/base/ticketoutput.py:182
msgid "Enable ticket format"
-msgstr ""
+msgstr "Ota lippumuoto käyttöön"
#: pretix/base/ticketoutput.py:200
msgid "Download ticket"
@@ -11861,7 +12357,7 @@ msgstr "Lataa lippu"
#: pretix/base/timeframes.py:49
msgctxt "reporting_timeframe"
msgid "Today"
-msgstr ""
+msgstr "Tänään"
#: pretix/base/timeframes.py:53 pretix/base/timeframes.py:62
#: pretix/base/timeframes.py:71 pretix/base/timeframes.py:80
@@ -11869,37 +12365,37 @@ msgstr ""
#: pretix/base/timeframes.py:107
msgctxt "reporting_timeframe"
msgid "by day"
-msgstr ""
+msgstr "päivisin"
#: pretix/base/timeframes.py:58
msgctxt "reporting_timeframe"
msgid "Yesterday"
-msgstr ""
+msgstr "Eilen"
#: pretix/base/timeframes.py:67
msgctxt "reporting_timeframe"
msgid "Last 7 days"
-msgstr ""
+msgstr "Viimeiset seitsemän päivää"
#: pretix/base/timeframes.py:76
msgctxt "reporting_timeframe"
msgid "Last 14 days"
-msgstr ""
+msgstr "Viimeiset 14 päivää"
#: pretix/base/timeframes.py:85
msgctxt "reporting_timeframe"
msgid "Tomorrow"
-msgstr ""
+msgstr "Huomenna"
#: pretix/base/timeframes.py:94
msgctxt "reporting_timeframe"
msgid "Next 7 days"
-msgstr ""
+msgstr "Seuraavat 7 päivää"
#: pretix/base/timeframes.py:103
msgctxt "reporting_timeframe"
msgid "Next 14 days"
-msgstr ""
+msgstr "Seuraavat 14 päivää"
#: pretix/base/timeframes.py:112
msgctxt "reporting_timeframe"
@@ -11910,7 +12406,7 @@ msgstr "Nykyinen viikko"
#: pretix/base/timeframes.py:134 pretix/base/timeframes.py:143
msgctxt "reporting_timeframe"
msgid "by week"
-msgstr ""
+msgstr "Viikoittain"
#: pretix/base/timeframes.py:121
msgctxt "reporting_timeframe"
@@ -11920,12 +12416,12 @@ msgstr "Kuluva viikko tähän päivään asti"
#: pretix/base/timeframes.py:130
msgctxt "reporting_timeframe"
msgid "Previous week"
-msgstr ""
+msgstr "Edellinen viikko"
#: pretix/base/timeframes.py:139
msgctxt "reporting_timeframe"
msgid "Next week"
-msgstr ""
+msgstr "Seuraava viikko"
#: pretix/base/timeframes.py:148
msgctxt "reporting_timeframe"
@@ -11946,7 +12442,7 @@ msgstr "Kuluva kuukausi tähän päivään mennessä"
#: pretix/base/timeframes.py:166
msgctxt "reporting_timeframe"
msgid "Previous month"
-msgstr ""
+msgstr "Edellinen kuukausi"
#: pretix/base/timeframes.py:175
msgctxt "reporting_timeframe"
@@ -11962,7 +12458,7 @@ msgstr "Nykyinen vuosineljännes"
#: pretix/base/timeframes.py:206 pretix/base/timeframes.py:217
msgctxt "reporting_timeframe"
msgid "by quarter"
-msgstr ""
+msgstr "Vuosineljänneksittäin"
#: pretix/base/timeframes.py:193
msgctxt "reporting_timeframe"
@@ -11972,12 +12468,12 @@ msgstr "Kuluva vuosineljännes tähän päivään mennessä"
#: pretix/base/timeframes.py:202
msgctxt "reporting_timeframe"
msgid "Previous quarter"
-msgstr ""
+msgstr "Edellinen vuosineljännes"
#: pretix/base/timeframes.py:211
msgctxt "reporting_timeframe"
msgid "Next quarter"
-msgstr ""
+msgstr "Seuraava neljännesvuosi"
#: pretix/base/timeframes.py:222
msgctxt "reporting_timeframe"
@@ -11988,7 +12484,7 @@ msgstr "Nykyinen vuosi"
#: pretix/base/timeframes.py:244 pretix/base/timeframes.py:253
msgctxt "reporting_timeframe"
msgid "by year"
-msgstr ""
+msgstr "vuosittain"
#: pretix/base/timeframes.py:231
msgctxt "reporting_timeframe"
@@ -11998,17 +12494,17 @@ msgstr "Kuluva vuosi tähän päivään mennessä"
#: pretix/base/timeframes.py:240
msgctxt "reporting_timeframe"
msgid "Previous year"
-msgstr ""
+msgstr "Edellinen vuosi"
#: pretix/base/timeframes.py:249
msgctxt "reporting_timeframe"
msgid "Next year"
-msgstr ""
+msgstr "Seuraava vuosi"
#: pretix/base/timeframes.py:258
msgctxt "reporting_timeframe"
msgid "All future (excluding today)"
-msgstr ""
+msgstr "Kaikki tulevaisuudessa (poislukien tämä päivä)"
#: pretix/base/timeframes.py:262 pretix/base/timeframes.py:271
msgctxt "reporting_timeframe"
@@ -12018,7 +12514,7 @@ msgstr "Muuta"
#: pretix/base/timeframes.py:267
msgctxt "reporting_timeframe"
msgid "All past (including today)"
-msgstr ""
+msgstr "Kaikki menneisyydessä (mukaanlukien tämä päivä)"
#: pretix/base/timeframes.py:284
msgctxt "timeframe"
@@ -12028,7 +12524,7 @@ msgstr "Alku"
#: pretix/base/timeframes.py:285
msgctxt "timeframe"
msgid "End"
-msgstr ""
+msgstr "Loppu"
#: pretix/base/timeframes.py:318
msgid "The end date must be after the start date."
@@ -12046,27 +12542,27 @@ msgstr "Kaikki ajat"
#: pretix/base/timeline.py:60
msgctxt "timeline"
msgid "Your event starts"
-msgstr ""
+msgstr "Tapahtumasi alkaa"
#: pretix/base/timeline.py:68
msgctxt "timeline"
msgid "Your event ends"
-msgstr ""
+msgstr "Tapahtumasi loppuu"
#: pretix/base/timeline.py:76
msgctxt "timeline"
msgid "Admissions for your event start"
-msgstr ""
+msgstr "Sisäänpääsy tapahtumaasi alkaa"
#: pretix/base/timeline.py:84
msgctxt "timeline"
msgid "Start of ticket sales"
-msgstr ""
+msgstr "Lipunmyynti alkaa"
#: pretix/base/timeline.py:95
msgctxt "timeline"
msgid "End of ticket sales"
-msgstr ""
+msgstr "Lipunmyynti loppuu"
#: pretix/base/timeline.py:96
msgctxt "timeline"
@@ -12074,36 +12570,38 @@ msgid ""
"automatically because the event is over and no end of presale has been "
"configured"
msgstr ""
+"automaattisesti, koska tapahtuma on ohi eikä ennakkomyynnin loppua ole "
+"määritetty"
#: pretix/base/timeline.py:106
msgctxt "timeline"
msgid "Customers can no longer modify their order information"
-msgstr ""
+msgstr "Asiakkaat eivät voi enää muokata tilaustietojaan"
#: pretix/base/timeline.py:119
msgctxt "timeline"
msgid "No more payments can be completed"
-msgstr ""
+msgstr "Maksuja ei voi enää suorittaa"
#: pretix/base/timeline.py:131
msgctxt "timeline"
msgid "Tickets can be downloaded"
-msgstr ""
+msgstr "Liput voi ladata"
#: pretix/base/timeline.py:143
msgctxt "timeline"
msgid "Customers can no longer cancel free or unpaid orders"
-msgstr ""
+msgstr "Asiakkaat eivät voi enää peruuttaa ilmaisia tai maksamattomia tilauksia"
#: pretix/base/timeline.py:155
msgctxt "timeline"
msgid "Customers can no longer cancel paid orders"
-msgstr ""
+msgstr "Asiakkaat eivät voi enää peruuttaa maksettuja tilauksia"
#: pretix/base/timeline.py:167
msgctxt "timeline"
msgid "Customers can no longer make changes to their orders"
-msgstr ""
+msgstr "Asiakkaat eivät voi enää tehdä muutoksia tilauksiinsa"
#: pretix/base/timeline.py:179
msgctxt "timeline"
@@ -12113,56 +12611,56 @@ msgstr "Odotuslista on poistettu käytöstä"
#: pretix/base/timeline.py:193
msgctxt "timeline"
msgid "Download reminders are being sent out"
-msgstr ""
+msgstr "Latausmuistutukset on lähetetty"
#: pretix/base/timeline.py:206 pretix/base/timeline.py:229
#: pretix/base/timeline.py:279
#, python-brace-format
msgctxt "timeline"
msgid "Product \"{name}\" becomes available"
-msgstr ""
+msgstr "Tuote \"{name}\" tulee saataville"
#: pretix/base/timeline.py:217 pretix/base/timeline.py:241
#: pretix/base/timeline.py:290
#, python-brace-format
msgctxt "timeline"
msgid "Product \"{name}\" becomes unavailable"
-msgstr ""
+msgstr "Tuote \"{name}\" ei enää ole saatavilla"
#: pretix/base/timeline.py:255
#, python-brace-format
msgctxt "timeline"
msgid "Discount \"{name}\" becomes active"
-msgstr ""
+msgstr "Alennus \"{name}\" aktivoituu"
#: pretix/base/timeline.py:266
#, python-brace-format
msgctxt "timeline"
msgid "Discount \"{name}\" becomes inactive"
-msgstr ""
+msgstr "Alennus \"{name}\" muuttuu passiiviseksi"
#: pretix/base/timeline.py:306
#, python-brace-format
msgctxt "timeline"
msgid "Product variation \"{product} – {variation}\" becomes available"
-msgstr ""
+msgstr "Tuotevariaatio \"{product} – {variation}\" tulee saataville"
#: pretix/base/timeline.py:320
#, python-brace-format
msgctxt "timeline"
msgid "Product variation \"{product} – {variation}\" becomes unavailable"
-msgstr ""
+msgstr "Tuotevariaatio \"{product} – {variation}\" ei ole enää käytettävissä"
#: pretix/base/timeline.py:351
#, python-brace-format
msgctxt "timeline"
msgid "Payment provider \"{name}\" can no longer be selected"
-msgstr ""
+msgstr "Maksupalveluntarjoajaa \"{name}\" ei voi enää valita"
#: pretix/base/validators.py:51
#, python-format
msgid "This field has an invalid value: %(value)s."
-msgstr ""
+msgstr "Tässä kentässä on virheellinen arvo: %(value)s."
#: pretix/base/views/errors.py:48
msgid ""
@@ -12171,6 +12669,10 @@ msgid ""
"required for security reasons, to ensure that your browser is not being "
"hijacked by third parties."
msgstr ""
+"Näet tämän viestin, koska tämä HTTPS-sivusto edellyttää, että selaimesi "
+"lähettää viittaavan otsikon, mutta sitä ei lähetetty. Tätä otsikkoa "
+"tarvitaan turvallisuussyistä, jotta kolmannet osapuolet eivät kaappaa "
+"selaintasi."
#: pretix/base/views/errors.py:53
msgid ""
@@ -12178,6 +12680,9 @@ msgid ""
"enable them, at least for this site, or for HTTPS connections, or for 'same-"
"origin' requests."
msgstr ""
+"Jos olet määrittänyt selaimesi poistamaan viittaajaotsikot käytöstä, ota ne "
+"uudelleen käyttöön, ainakin tällä sivustolla, HTTPS-yhteyksissä tai samaa "
+"alkuperää olevissa pyynnöissä."
#: pretix/base/views/errors.py:58
msgid ""
@@ -12185,20 +12690,26 @@ msgid ""
"submitting forms. This cookie is required for security reasons, to ensure "
"that your browser is not being hijacked by third parties."
msgstr ""
+"Näet tämän viestin, koska tämä sivusto vaatii CSRF-evästeen lomakkeiden "
+"lähettämisessä. Tätä evästettä tarvitaan turvallisuussyistä, jotta kolmannet "
+"osapuolet eivät kaappaa selaintasi."
#: pretix/base/views/errors.py:63
msgid ""
"If you have configured your browser to disable cookies, please re-enable "
"them, at least for this site, or for 'same-origin' requests."
msgstr ""
+"Jos olet määrittänyt selaimesi poistamaan evästeet käytöstä, ota ne "
+"uudelleen käyttöön, ainakin tällä sivustolla tai samaa alkuperää oleville "
+"pyynnöille."
#: pretix/base/views/tasks.py:187
msgid "An unexpected error has occurred, please try again later."
-msgstr ""
+msgstr "Tapahtui odottamaton virhe, yritä myöhemmin uudelleen."
#: pretix/base/views/tasks.py:190
msgid "The task has been completed."
-msgstr ""
+msgstr "Tehtävä on suoritettu."
#: pretix/control/forms/__init__.py:205
#, python-brace-format
@@ -13018,7 +13529,7 @@ msgstr "Kaikki maksutavat"
#: pretix/control/forms/filter.py:1025
msgid "Payment created from"
-msgstr "Tapahtuma luotu alkaen"
+msgstr "Maksu luotu alkaen"
#: pretix/control/forms/filter.py:1030
msgid "Payment created until"
@@ -15007,9 +15518,8 @@ msgid "The order's flag to require attention at check-in has been toggled."
msgstr ""
#: pretix/control/logdisplay.py:470
-#, fuzzy
msgid "The order's check-in text has been changed."
-msgstr "Portti muutettu."
+msgstr "Tilauksen kirjautumistekstiä on muutettu."
#: pretix/control/logdisplay.py:471
msgid ""
@@ -15150,10 +15660,8 @@ msgid "The category has been changed."
msgstr ""
#: pretix/control/logdisplay.py:544
-#, fuzzy
-#| msgid "The new category has been created."
msgid "The category has been reordered."
-msgstr "Uusi kategoria luotu."
+msgstr "Luokka on järjestetty uudelleen."
#: pretix/control/logdisplay.py:551
msgid "The tax rule has been added."
@@ -15295,45 +15803,32 @@ msgid "The webhook call retry jobs have been manually expedited."
msgstr ""
#: pretix/control/logdisplay.py:634
-#, fuzzy
-#| msgid "The new category has been created."
msgid "The webhook call retry jobs have been dropped."
-msgstr "Uusi kategoria luotu."
+msgstr "Webhook-puhelun uusintayritykset on hylätty."
#: pretix/control/logdisplay.py:635
-#, fuzzy
-#| msgid "The gate has been created."
msgid "The SSO provider has been created."
-msgstr "Uusi portti luotu."
+msgstr "SSO-palveluntarjoaja on luotu."
#: pretix/control/logdisplay.py:636
-#, fuzzy
-#| msgid "The gate has been changed."
msgid "The SSO provider has been changed."
-msgstr "Portti muutettu."
+msgstr "SSO-palveluntarjoajaa on muutettu."
#: pretix/control/logdisplay.py:637
-#, fuzzy
-#| msgid "The order has been deleted."
msgid "The SSO provider has been deleted."
-msgstr "Tilaus poistettu."
+msgstr "SSO-palveluntarjoaja on poistettu."
#: pretix/control/logdisplay.py:638
-#, fuzzy
-#| msgid "The gate has been created."
msgid "The SSO client has been created."
-msgstr "Uusi portti luotu."
+msgstr "SSO-asiakas on luotu."
#: pretix/control/logdisplay.py:639
-#, fuzzy
msgid "The SSO client has been changed."
-msgstr "Portti muutettu."
+msgstr "SSO-asiakas on vaihdettu."
#: pretix/control/logdisplay.py:640
-#, fuzzy
-#| msgid "The event has been deleted."
msgid "The SSO client has been deleted."
-msgstr "Tapahtuma poistettu."
+msgstr "SSO-asiakas on poistettu."
#: pretix/control/logdisplay.py:641 pretix/control/views/organizer.py:2333
msgid "The membership type has been created."
@@ -17132,7 +17627,7 @@ msgstr "Hyväksytty ilmoittautuminen"
#: pretix/control/templates/pretixcontrol/checkin/simulator.html:68
msgid "Additional information required"
-msgstr "Vaaditaan lisätietoja"
+msgstr "Lisätiedot vaaditaan"
#: pretix/control/templates/pretixcontrol/checkin/simulator.html:70
msgid ""
@@ -19081,9 +19576,8 @@ msgstr "Vaihda asetuksia"
#: pretix/control/templates/pretixcontrol/item/create.html:96
#: pretix/control/templates/pretixcontrol/item/index.html:109
-#, fuzzy
msgid "Non-personalized ticket"
-msgstr "Maksutapa"
+msgstr "Ei-henkilökohtainen lippu"
#: pretix/control/templates/pretixcontrol/item/create.html:98
#: pretix/control/templates/pretixcontrol/item/index.html:111
@@ -19231,22 +19725,16 @@ msgid "Availability"
msgstr ""
#: pretix/control/templates/pretixcontrol/item/index.html:184
-#, fuzzy
-#| msgid "Ticket codes"
msgid "Tickets & Badges"
-msgstr "Lippukoodit"
+msgstr "Liput & kulkuluvat"
#: pretix/control/templates/pretixcontrol/item/index.html:203
-#, fuzzy
-#| msgid "Check-in history"
msgid "Check-in & Validity"
-msgstr "Ilmoittautumishistoria"
+msgstr "Sisäänkirjautuminen ja voimassaolo"
#: pretix/control/templates/pretixcontrol/item/index.html:214
-#, fuzzy
-#| msgid "Variations"
msgid "Duration"
-msgstr "Variaatiot"
+msgstr "Kesto"
#: pretix/control/templates/pretixcontrol/item/index.html:216
#: pretix/control/templates/pretixcontrol/subevents/bulk.html:355
@@ -19312,10 +19800,8 @@ msgid "Create a new category"
msgstr ""
#: pretix/control/templates/pretixcontrol/items/categories.html:34
-#, fuzzy
-#| msgid "Category {val}"
msgid "Category type"
-msgstr "Kategoria {val}"
+msgstr "Kategoria tyyppi"
#: pretix/control/templates/pretixcontrol/items/categories.html:48
#: pretix/control/templates/pretixcontrol/items/discounts.html:138
@@ -19328,10 +19814,8 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/items/discounts.html:142
#: pretix/control/templates/pretixcontrol/items/index.html:153
#: pretix/control/templates/pretixcontrol/organizers/properties.html:55
-#, fuzzy
-#| msgid "Remove one"
msgid "Move down"
-msgstr "Poista yksi"
+msgstr "Siirry alas"
#: pretix/control/templates/pretixcontrol/items/categories.html:50
#: pretix/control/templates/pretixcontrol/items/discounts.html:145
@@ -19365,9 +19849,8 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/items/discount.html:4
#: pretix/control/templates/pretixcontrol/items/discount.html:6
-#, fuzzy
msgid "Automatic discount"
-msgstr "Asiakastili"
+msgstr "Automaattinen alennus"
#: pretix/control/templates/pretixcontrol/items/discount.html:22
msgctxt "discount"
@@ -19384,21 +19867,18 @@ msgid "OR"
msgstr ""
#: pretix/control/templates/pretixcontrol/items/discount.html:51
-#, fuzzy
msgctxt "discount"
msgid "Benefit"
-msgstr "Edunsaaja"
+msgstr "Etu"
#: pretix/control/templates/pretixcontrol/items/discount.html:67
-#, fuzzy
msgid "Discount history"
-msgstr "Näytä tilin historia"
+msgstr "Alennus historia"
#: pretix/control/templates/pretixcontrol/items/discount_delete.html:4
#: pretix/control/templates/pretixcontrol/items/discount_delete.html:6
-#, fuzzy
msgid "Delete discount"
-msgstr "Valitse maa"
+msgstr "Poista alennus"
#: pretix/control/templates/pretixcontrol/items/discount_delete.html:10
#, python-format
@@ -19422,9 +19902,8 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/items/discounts.html:4
#: pretix/control/templates/pretixcontrol/items/discounts.html:6
-#, fuzzy
msgid "Automatic discounts"
-msgstr "Asiakastilit"
+msgstr "Automaattiset tilit"
#: pretix/control/templates/pretixcontrol/items/discounts.html:8
#, python-format
@@ -19459,15 +19938,13 @@ msgid ""
msgstr ""
#: pretix/control/templates/pretixcontrol/items/discounts.html:37
-#, fuzzy
msgid "You haven't created any discounts yet."
-msgstr "Et ole luonut vielä kuponkeja."
+msgstr "Et ole luonut vielä alennuksia."
#: pretix/control/templates/pretixcontrol/items/discounts.html:43
#: pretix/control/templates/pretixcontrol/items/discounts.html:48
-#, fuzzy
msgid "Create a new discount"
-msgstr "Luo uusi käyttäjä"
+msgstr "Luo uusi alennus"
#: pretix/control/templates/pretixcontrol/items/discounts.html:99
#: pretix/control/templates/pretixcontrol/items/index.html:88
@@ -19537,10 +20014,8 @@ msgid "Create a new product"
msgstr ""
#: pretix/control/templates/pretixcontrol/items/index.html:101
-#, fuzzy
-#| msgid "Sample Admission Ticket"
msgid "Personalized admission ticket"
-msgstr "Esimerkkipääsylippu"
+msgstr "Henkilöity pääsylippu"
#: pretix/control/templates/pretixcontrol/items/index.html:103
msgid "Admission ticket without personalization"
@@ -19718,10 +20193,8 @@ msgid "Ask during check-in"
msgstr ""
#: pretix/control/templates/pretixcontrol/items/questions.html:79
-#, fuzzy
-#| msgid "All products"
msgid "All personalized products"
-msgstr "Kaikki tuotteet"
+msgstr "Kaikki henkilöidyt tuotteet"
#: pretix/control/templates/pretixcontrol/items/quota.html:6
#: pretix/control/templates/pretixcontrol/items/quota.html:9
@@ -20104,42 +20577,34 @@ msgid ""
msgstr ""
#: pretix/control/templates/pretixcontrol/order/change.html:220
-#, fuzzy
-#| msgid "Ticket codes"
msgid "Ticket block"
-msgstr "Lippukoodit"
+msgstr "Lippulohko"
#: pretix/control/templates/pretixcontrol/order/change.html:226
msgid "Blocked due to external constraints"
msgstr ""
#: pretix/control/templates/pretixcontrol/order/change.html:228
-#, fuzzy
-#| msgid "Not found"
msgid "Not blocked"
-msgstr "Sivua ei löydy"
+msgstr "Ei estetty"
#: pretix/control/templates/pretixcontrol/order/change.html:238
-#, fuzzy
-#| msgid "Valid from"
msgid "Validity time"
-msgstr "Voimassa alkaen"
+msgstr "Voimassaoloaika"
#: pretix/control/templates/pretixcontrol/order/change.html:247
#: pretix/control/templates/pretixcontrol/order/index.html:461
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:111
-#, fuzzy, python-format
-#| msgid "Admission: %(datetime)s"
+#, python-format
msgid "Valid from %(datetime)s"
-msgstr "Sisäänpääsy: %(datetime)s"
+msgstr "Voimassa alkaen: %(datetime)s"
#: pretix/control/templates/pretixcontrol/order/change.html:255
#: pretix/control/templates/pretixcontrol/order/index.html:465
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:115
-#, fuzzy, python-format
-#| msgid "Admission: %(datetime)s"
+#, python-format
msgid "Valid until %(datetime)s"
-msgstr "Sisäänpääsy: %(datetime)s"
+msgstr "Voimassa asti: %(datetime)s"
#: pretix/control/templates/pretixcontrol/order/change.html:260
msgid "Unconstrained"
@@ -20178,10 +20643,8 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/order/change.html:466
#: pretix/control/templates/pretixcontrol/order/change.html:493
#: pretix/control/templates/pretixcontrol/order/change.html:513
-#, fuzzy
-#| msgid "Add one more"
msgid "Add fee"
-msgstr "Lisää yksi"
+msgstr "Lisää maksu"
#: pretix/control/templates/pretixcontrol/order/change.html:520
#: pretix/control/templates/pretixcontrol/order/change_questions.html:65
@@ -20857,19 +21320,16 @@ msgid "Transaction history"
msgstr ""
#: pretix/control/templates/pretixcontrol/order/transactions.html:24
-#, fuzzy
msgid "Single price"
-msgstr "Nettohinta"
+msgstr "Yhden kerran hinta"
#: pretix/control/templates/pretixcontrol/order/transactions.html:25
-#, fuzzy
msgid "Total tax value"
-msgstr "Verotusarvo"
+msgstr "Kokonaisverotusarvo"
#: pretix/control/templates/pretixcontrol/order/transactions.html:26
-#, fuzzy
msgid "Total price"
-msgstr "Nettohinta"
+msgstr "Kokonaishinta"
#: pretix/control/templates/pretixcontrol/order/transactions.html:37
msgid ""
@@ -20879,10 +21339,8 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/orders/bulk_action.html:5
#: pretix/control/templates/pretixcontrol/orders/bulk_action.html:7
-#, fuzzy
-#| msgid "Paid orders"
msgid "Modify orders"
-msgstr "Maksetut tilaukset"
+msgstr "Muokkaa tilauksia"
#: pretix/control/templates/pretixcontrol/orders/bulk_action.html:12
#, python-format
@@ -20897,10 +21355,8 @@ msgid "Do you want to continue?"
msgstr ""
#: pretix/control/templates/pretixcontrol/orders/bulk_action.html:77
-#, fuzzy
-#| msgid "This event can not be deleted."
msgid "This operation cannot be reversed."
-msgstr "Tätä tapahtumaa ei voi poistaa."
+msgstr "Tätä tapahtumaa ei voi peruuttaa."
#: pretix/control/templates/pretixcontrol/orders/cancel.html:9
msgid ""
@@ -20980,10 +21436,8 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/orders/export.html:11
#: pretix/control/templates/pretixcontrol/organizers/export.html:11
-#, fuzzy
-#| msgid "Other fees"
msgid "Scheduled exports"
-msgstr "Muut maksut"
+msgstr "Ajastetut viennit"
#: pretix/control/templates/pretixcontrol/orders/export.html:28
#: pretix/control/templates/pretixcontrol/organizers/export.html:28
@@ -20997,10 +21451,8 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/orders/export.html:37
#: pretix/control/templates/pretixcontrol/organizers/export.html:37
-#, fuzzy
-#| msgid "Export refunds"
msgid "Exporter not found"
-msgstr "Vie hyvitykset"
+msgstr "Viejää ei löydy"
#: pretix/control/templates/pretixcontrol/orders/export.html:42
#: pretix/control/templates/pretixcontrol/organizers/export.html:42
@@ -21013,10 +21465,8 @@ msgid "Failed recently"
msgstr ""
#: pretix/control/templates/pretixcontrol/orders/export.html:64
-#, fuzzy
-#| msgid "Pay now"
msgid "Run export now"
-msgstr "Maksa nyt"
+msgstr "Suorita vienti nyt"
#: pretix/control/templates/pretixcontrol/orders/export.html:69
#: pretix/control/templates/pretixcontrol/organizers/export.html:69
@@ -21027,16 +21477,13 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/orders/export.html:95
#: pretix/control/templates/pretixcontrol/organizers/export.html:95
-#, fuzzy
-#| msgid "Other fees"
msgid "Other exports"
-msgstr "Muut maksut"
+msgstr "Muut viennit"
#: pretix/control/templates/pretixcontrol/orders/export.html:104
#: pretix/control/templates/pretixcontrol/organizers/export.html:104
-#, fuzzy
msgid "Recommended for new users"
-msgstr "Voi tarkastella tilauksia"
+msgstr "Suositeltu uusille käyttäjille"
#: pretix/control/templates/pretixcontrol/orders/export_delete.html:4
#: pretix/control/templates/pretixcontrol/orders/export_delete.html:6
@@ -21057,10 +21504,8 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/orders/export_form.html:26
#: pretix/control/templates/pretixcontrol/organizers/export_form.html:27
-#, fuzzy
-#| msgid "Export format"
msgid "Export options"
-msgstr "Vientiformaatti"
+msgstr "Vientivaihtoehdot"
#: pretix/control/templates/pretixcontrol/orders/export_form.html:32
#: pretix/control/templates/pretixcontrol/organizers/export_form.html:33
@@ -21076,10 +21521,8 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/orders/export_form.html:57
#: pretix/control/templates/pretixcontrol/organizers/export_form.html:58
-#, fuzzy
-#| msgid "Other fees"
msgid "Schedule export"
-msgstr "Muut maksut"
+msgstr "Ajasta vienti"
#: pretix/control/templates/pretixcontrol/orders/fragment_export_schedule_form.html:6
msgid "Schedule"
@@ -21187,11 +21630,9 @@ msgid ""
msgstr ""
#: pretix/control/templates/pretixcontrol/orders/fragment_order_status.html:13
-#, fuzzy
-#| msgid "Pending (overdue)"
msgctxt "order state"
msgid "Pending (confirmed)"
-msgstr "Odottaa (erääntynyt)"
+msgstr "Odottaa (vahvistettu)"
#: pretix/control/templates/pretixcontrol/orders/fragment_order_status.html:26
#: pretix/presale/templates/pretixpresale/event/fragment_order_status.html:19
@@ -21374,17 +21815,13 @@ msgid ""
msgstr ""
#: pretix/control/templates/pretixcontrol/orders/index.html:291
-#, fuzzy
-#| msgid "Select country"
msgid "Select action"
-msgstr "Valitse maa"
+msgstr "Valitse toiminto"
#: pretix/control/templates/pretixcontrol/orders/index.html:312
#: pretix/control/views/orders.py:335
-#, fuzzy
-#| msgid "Refund amount"
msgid "Refund overpaid amount"
-msgstr "Hyvitettävä summa"
+msgstr "Hyvitä liikaa maksettu osuus"
#: pretix/control/templates/pretixcontrol/orders/index.html:320
#: pretix/control/views/orders.py:320
@@ -21461,28 +21898,22 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/organizers/channel_add.html:6
#: pretix/control/templates/pretixcontrol/organizers/channel_add_choice.html:6
-#, fuzzy
-#| msgid "Sales channel"
msgid "Add sales channel"
-msgstr "Myyntikanavat"
+msgstr "Lisää myyntikanava"
#: pretix/control/templates/pretixcontrol/organizers/channel_add.html:13
#: pretix/control/templates/pretixcontrol/organizers/channel_edit.html:13
#: pretix/control/templates/pretixcontrol/organizers/channels.html:24
-#, fuzzy
-#| msgid "Check-in"
msgid "Channel type"
-msgstr "Ilmoittautuminen"
+msgstr "Kanavatyyppi"
#: pretix/control/templates/pretixcontrol/organizers/channel_delete.html:5
msgid "Delete sales channel:"
msgstr "Poista myyntikanava:"
#: pretix/control/templates/pretixcontrol/organizers/channel_delete.html:10
-#, fuzzy
-#| msgid "Are you sure you want to delete this membership?"
msgid "Are you sure you want to delete this sales channel?"
-msgstr "Oletko varma, että haluat poistaa tämän jäsenen?"
+msgstr "Oletko varma, että haluat poistaa tämän myyntikanavan?"
#: pretix/control/templates/pretixcontrol/organizers/channel_delete.html:15
msgid ""
@@ -21502,16 +21933,12 @@ msgid ""
msgstr ""
#: pretix/control/templates/pretixcontrol/organizers/channels.html:15
-#, fuzzy
-#| msgid "Sales channel"
msgid "Add a new channel"
-msgstr "Myyntikanavat"
+msgstr "Lisää uusi kanava"
#: pretix/control/templates/pretixcontrol/organizers/channels.html:22
-#, fuzzy
-#| msgid "Sales channel"
msgid "Channel"
-msgstr "Myyntikanavat"
+msgstr "Kanava"
#: pretix/control/templates/pretixcontrol/organizers/customer.html:7
#: pretix/control/templates/pretixcontrol/organizers/customer.html:13
@@ -21544,10 +21971,8 @@ msgid "This includes all paid orders by this customer across all your events."
msgstr ""
#: pretix/control/templates/pretixcontrol/organizers/customer.html:80
-#, fuzzy
-#| msgid "Payment pending"
msgid "Lifetime spending"
-msgstr "Odottaa maksua"
+msgstr "Elinikäiset menot"
#: pretix/control/templates/pretixcontrol/organizers/customer.html:102
#: pretix/control/templates/pretixcontrol/organizers/customer_anonymize.html:39
@@ -21606,9 +22031,8 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/organizers/customer_edit.html:6
#: pretix/control/templates/pretixcontrol/organizers/customer_edit.html:16
-#, fuzzy
msgid "New customer"
-msgstr "Kaikki asiakkaat"
+msgstr "Uusi asiakas"
#: pretix/control/templates/pretixcontrol/organizers/customer_membership_delete.html:15
msgid "Are you sure you want to delete this membership?"
@@ -21626,7 +22050,6 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/organizers/customers.html:19
#: pretix/control/templates/pretixcontrol/organizers/customers.html:48
-#, fuzzy
msgid "Create a new customer"
msgstr "Luo uusi käyttäjä"
@@ -21659,9 +22082,8 @@ msgid "Organizer: %(name)s"
msgstr ""
#: pretix/control/templates/pretixcontrol/organizers/device_bulk_edit.html:6
-#, fuzzy
msgid "Change multiple devices"
-msgstr "Luo monta kuponkia"
+msgstr "Vaihda useita laitteita"
#: pretix/control/templates/pretixcontrol/organizers/device_bulk_edit.html:8
#: pretix/control/templates/pretixcontrol/subevents/bulk_edit.html:13
@@ -21924,10 +22346,8 @@ msgid ""
msgstr ""
#: pretix/control/templates/pretixcontrol/organizers/edit.html:358
-#, fuzzy
-#| msgid "Custom domain"
msgid "Add domain"
-msgstr "Mukautettu verkkotunnus"
+msgstr "Lisää domain"
#: pretix/control/templates/pretixcontrol/organizers/export.html:64
msgid "Run export now and download result"
@@ -21974,7 +22394,6 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/organizers/giftcard.html:73
#: pretix/presale/templates/pretixpresale/event/fragment_giftcard_history.html:7
-#, fuzzy
msgid "Information"
msgstr "Tietosi"
@@ -21993,16 +22412,12 @@ msgid "Gift card history"
msgstr ""
#: pretix/control/templates/pretixcontrol/organizers/giftcard_acceptance_invite.html:8
-#, fuzzy
-#| msgid "All organizers"
msgid "Invite organizer"
-msgstr "Kaikki järjestäjät"
+msgstr "Kutsu järjestäjä"
#: pretix/control/templates/pretixcontrol/organizers/giftcard_acceptance_list.html:8
-#, fuzzy
-#| msgid "Gift card"
msgid "Gift cards acceptance"
-msgstr "Lahjakortti"
+msgstr "Lahjakorttien hyväksyminen"
#: pretix/control/templates/pretixcontrol/organizers/giftcard_acceptance_list.html:11
msgid ""
@@ -22071,10 +22486,8 @@ msgid ""
msgstr ""
#: pretix/control/templates/pretixcontrol/organizers/giftcard_acceptance_list.html:106
-#, fuzzy
-#| msgid "Contact event organizer"
msgid "Invite new organizer"
-msgstr "Ota yhteyttä järjestäjään"
+msgstr "Kutsu uusi järjestäjä"
#: pretix/control/templates/pretixcontrol/organizers/giftcards.html:8
msgid "Issued gift cards"
@@ -22092,10 +22505,8 @@ msgid "Manually issue a gift card"
msgstr ""
#: pretix/control/templates/pretixcontrol/organizers/giftcards.html:65
-#, fuzzy
-#| msgid "Order reactivated"
msgid "Last transaction"
-msgstr "Tilaus uudelleenaktivoitu"
+msgstr "Viimeisin maksutapahtuma"
#: pretix/control/templates/pretixcontrol/organizers/index.html:9
msgid ""
@@ -22183,16 +22594,12 @@ msgid "Usage"
msgstr ""
#: pretix/control/templates/pretixcontrol/organizers/property_edit.html:26
-#, fuzzy
-#| msgid "Variations"
msgid "Validation"
-msgstr "Variaatiot"
+msgstr "Validointi"
#: pretix/control/templates/pretixcontrol/organizers/property_edit.html:31
-#, fuzzy
-#| msgid "Valid values"
msgid "Allowed values"
-msgstr "Sallitut arvot"
+msgstr "Sallittuja arvoja"
#: pretix/control/templates/pretixcontrol/organizers/property_edit.html:35
msgid "If you keep this empty, all input will be allowed."
@@ -22203,57 +22610,45 @@ msgid "Add a new value"
msgstr ""
#: pretix/control/templates/pretixcontrol/organizers/reusable_media.html:14
-#, fuzzy
-#| msgid "No exports have been created yet."
msgid "No media have been created yet."
-msgstr "Vientejä ei ole vielä tehty."
+msgstr "Mediaa ei ole vielä luotu."
#: pretix/control/templates/pretixcontrol/organizers/reusable_media.html:19
#: pretix/control/templates/pretixcontrol/organizers/reusable_media.html:45
-#, fuzzy
msgid "Create a new medium"
-msgstr "Luo uusi käyttäjä"
+msgstr "Luo uusi media"
#: pretix/control/templates/pretixcontrol/organizers/reusable_media.html:51
#: pretix/control/templates/pretixcontrol/organizers/reusable_medium.html:30
-#, fuzzy
-#| msgid "External identifier"
msgctxt "reusable_media"
msgid "Identifier"
-msgstr "Ulkoinen tunniste"
+msgstr "Tunniste"
#: pretix/control/templates/pretixcontrol/organizers/reusable_media.html:56
#: pretix/control/templates/pretixcontrol/organizers/reusable_medium.html:28
-#, fuzzy
-#| msgid "Device type"
msgctxt "reusable_media"
msgid "Media type"
-msgstr "Laitteen tyyppi"
+msgstr "Media tyyppi"
#: pretix/control/templates/pretixcontrol/organizers/reusable_media.html:59
#: pretix/control/templates/pretixcontrol/organizers/reusable_medium.html:42
-#, fuzzy
-#| msgid "Cancellations"
msgctxt "reusable_media"
msgid "Connections"
-msgstr "Peruutukset"
+msgstr "Yhteydet"
#: pretix/control/templates/pretixcontrol/organizers/reusable_medium.html:6
#: pretix/control/templates/pretixcontrol/organizers/reusable_medium.html:12
#: pretix/control/templates/pretixcontrol/organizers/reusable_medium_edit.html:8
#: pretix/control/templates/pretixcontrol/organizers/reusable_medium_edit.html:18
-#, fuzzy, python-format
-#| msgid "Customer #%(id)s"
+#, python-format
msgctxt "reusable_media"
msgid "Medium %(id)s"
-msgstr "Asiakas #%(id)s"
+msgstr "Media #%(id)s"
#: pretix/control/templates/pretixcontrol/organizers/reusable_medium.html:86
-#, fuzzy
-#| msgid "Check-in history"
msgctxt "reusable_media"
msgid "Medium history"
-msgstr "Ilmoittautumishistoria"
+msgstr "Media historia"
#: pretix/control/templates/pretixcontrol/organizers/reusable_medium_edit.html:6
#: pretix/control/templates/pretixcontrol/organizers/reusable_medium_edit.html:16
@@ -22266,16 +22661,12 @@ msgid "Delete SSO client:"
msgstr "Poista SSO-asiakas:"
#: pretix/control/templates/pretixcontrol/organizers/ssoclient_delete.html:9
-#, fuzzy
-#| msgid "Are you sure you want to delete the property?"
msgid "Are you sure you want to delete this SSO client?"
-msgstr "Oletko varma, että haluat poistaa ominaisuuden?"
+msgstr "Oletko varma, että haluat poistaa tämän SSO asiakkaan?"
#: pretix/control/templates/pretixcontrol/organizers/ssoclient_delete.html:11
-#, fuzzy
-#| msgid "Your event can not be deleted as it already contains orders."
msgid "This SSO client cannot be deleted since it has already been used."
-msgstr "Tapahtumaa ei voida poistaa, sillä siihen on jo tehty tilauksia."
+msgstr "Tätä SSO-asiakasta ei voi poistaa, koska sitä on jo käytetty."
#: pretix/control/templates/pretixcontrol/organizers/ssoclient_edit.html:6
msgid "SSO client:"
@@ -22283,9 +22674,8 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/organizers/ssoclient_edit.html:8
#: pretix/control/templates/pretixcontrol/organizers/ssoclients.html:15
-#, fuzzy
msgid "Create a new SSO client"
-msgstr "Luo uusi käyttäjä"
+msgstr "Luo uusi SSO-asiakas"
#: pretix/control/templates/pretixcontrol/organizers/ssoclients.html:8
msgid ""
@@ -22295,22 +22685,16 @@ msgid ""
msgstr ""
#: pretix/control/templates/pretixcontrol/organizers/ssoprovider_delete.html:5
-#, fuzzy
-#| msgid "Delete property:"
msgid "Delete SSO provider:"
-msgstr "Poista ominaisuus:"
+msgstr "Poista SSO-palveluntarjoaja:"
#: pretix/control/templates/pretixcontrol/organizers/ssoprovider_delete.html:9
-#, fuzzy
-#| msgid "Are you sure you want to delete the property?"
msgid "Are you sure you want to delete this SSO provider?"
-msgstr "Oletko varma, että haluat poistaa ominaisuuden?"
+msgstr "Haluatko varmasti poistaa tämän SSO-palveluntarjoajan?"
#: pretix/control/templates/pretixcontrol/organizers/ssoprovider_delete.html:11
-#, fuzzy
-#| msgid "Your event can not be deleted as it already contains orders."
msgid "This SSO provider cannot be deleted since it has already been used."
-msgstr "Tapahtumaa ei voida poistaa, sillä siihen on jo tehty tilauksia."
+msgstr "Tätä SSO-palveluntarjoajaa ei voi poistaa, koska sitä on jo käytetty."
#: pretix/control/templates/pretixcontrol/organizers/ssoprovider_edit.html:6
msgid "SSO provider:"
@@ -22318,17 +22702,13 @@ msgstr "SSO-palveluntarjoaja:"
#: pretix/control/templates/pretixcontrol/organizers/ssoprovider_edit.html:8
#: pretix/control/templates/pretixcontrol/organizers/ssoproviders.html:15
-#, fuzzy
-#| msgid "Create a new property"
msgid "Create a new SSO provider"
-msgstr "Luo uusi ominaisuus"
+msgstr "Luo uusi SSO-palveluntarjoaja"
#: pretix/control/templates/pretixcontrol/organizers/ssoprovider_edit.html:16
-#, fuzzy
-#| msgid "Redirection URIs"
msgctxt "sso"
msgid "Redirection URL"
-msgstr "Uudelleenohjausosoitteet"
+msgstr "URL uudelleenohjaus"
#: pretix/control/templates/pretixcontrol/organizers/ssoproviders.html:8
msgid ""
@@ -22450,10 +22830,8 @@ msgstr[0] ""
msgstr[1] ""
#: pretix/control/templates/pretixcontrol/organizers/webhook_logs.html:22
-#, fuzzy
-#| msgid "Pay now"
msgid "Retry now"
-msgstr "Maksa nyt"
+msgstr "Yritä nyt uudestaan"
#: pretix/control/templates/pretixcontrol/organizers/webhook_logs.html:25
msgid "Stop retrying"
@@ -22639,10 +23017,8 @@ msgid "Copy"
msgstr ""
#: pretix/control/templates/pretixcontrol/pdf/index.html:180
-#, fuzzy
-#| msgid "Family name"
msgid "Layout name"
-msgstr "Sukunimi"
+msgstr "Layoutin nimi"
#: pretix/control/templates/pretixcontrol/pdf/index.html:188
#: pretix/control/templates/pretixcontrol/pdf/index.html:308
@@ -22770,10 +23146,8 @@ msgid "Flow multiple lines downward from specified position"
msgstr ""
#: pretix/control/templates/pretixcontrol/pdf/index.html:452
-#, fuzzy
-#| msgid "Automatically refund full amount"
msgid "Automatically reduce font size to fit content"
-msgstr "Hyvitä täysi summa automaattisesti"
+msgstr "Pienennä kirjasinkokoa automaattisesti sisältöön sopivaksi"
#: pretix/control/templates/pretixcontrol/pdf/index.html:458
msgid "Allow long words to be split (preview is not accurate)"
@@ -22784,16 +23158,12 @@ msgid "Add a new object"
msgstr ""
#: pretix/control/templates/pretixcontrol/pdf/index.html:474
-#, fuzzy
-#| msgid "Text"
msgid "Text box"
-msgstr "Teksti"
+msgstr "Tekstilaatikko"
#: pretix/control/templates/pretixcontrol/pdf/index.html:478
-#, fuzzy
-#| msgid "Event created"
msgid "Text (deprecated)"
-msgstr "Tapahtuma luotu"
+msgstr "Teksti (poistettu käytöstä)"
#: pretix/control/templates/pretixcontrol/pdf/index.html:482
msgid "QR code for Check-In"
@@ -22804,9 +23174,8 @@ msgid "QR code for Lead Scanning"
msgstr ""
#: pretix/control/templates/pretixcontrol/pdf/index.html:494
-#, fuzzy
msgid "Other QR code"
-msgstr "Tilauskoodi"
+msgstr "Muu QR-koodi"
#: pretix/control/templates/pretixcontrol/pdf/index.html:500
msgid "pretix Logo"
@@ -22832,9 +23201,8 @@ msgid ""
msgstr ""
#: pretix/control/templates/pretixcontrol/pdf/placeholders.html:16
-#, fuzzy
msgid "Available placeholders"
-msgstr "Jäljellä oleva kiintiö"
+msgstr "Käytettävissä olevat paikkamerkit"
#: pretix/control/templates/pretixcontrol/pdf/placeholders.html:19
msgid ""
@@ -22847,9 +23215,8 @@ msgid ""
msgstr ""
#: pretix/control/templates/pretixcontrol/pdf/placeholders.html:31
-#, fuzzy
msgid "Placeholder"
-msgstr "Vahvista tilaus"
+msgstr "Paikkamerkit"
#: pretix/control/templates/pretixcontrol/pdf/placeholders.html:33
msgid "Formatting example"
@@ -22863,9 +23230,8 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/search/payments.html:7
#: pretix/control/templates/pretixcontrol/search/payments.html:9
-#, fuzzy
msgid "Payment search"
-msgstr "Maksutapa"
+msgstr "Maksu haku"
#: pretix/control/templates/pretixcontrol/search/payments.html:155
msgid ""
@@ -23170,10 +23536,8 @@ msgid "Begin"
msgstr "Alkaa"
#: pretix/control/templates/pretixcontrol/subevents/index.html:176
-#, fuzzy
-#| msgid "All orders"
msgid "Show orders"
-msgstr "Kaikki tilaukset"
+msgstr "Näytä tilaukset"
#: pretix/control/templates/pretixcontrol/subevents/index.html:187
msgctxt "subevent"
@@ -23347,10 +23711,8 @@ msgid "Leave teams that require two-factor authentication"
msgstr ""
#: pretix/control/templates/pretixcontrol/user/2fa_leaveteams.html:10
-#, fuzzy
-#| msgid "Are you sure you want to delete the following vouchers?"
msgid "Do you really want to leave the following teams?"
-msgstr "Oletko varma, että haluat poistaa seuraavat kupongit?"
+msgstr "Haluatteko todella jättää seuraavat ryhmät?"
#: pretix/control/templates/pretixcontrol/user/2fa_leaveteams.html:15
#: pretix/control/templates/pretixcontrol/user/2fa_main.html:38
@@ -23786,10 +24148,8 @@ msgstr "Kupongin historia"
#: pretix/control/templates/pretixcontrol/vouchers/import_start.html:6
#: pretix/control/templates/pretixcontrol/vouchers/index.html:81
#: pretix/control/templates/pretixcontrol/vouchers/index.html:94
-#, fuzzy
-#| msgid "Delete vouchers"
msgid "Import vouchers"
-msgstr "Poista kupongit"
+msgstr "Lataa kupongit"
#: pretix/control/templates/pretixcontrol/vouchers/index.html:10
msgid ""
@@ -24001,38 +24361,28 @@ msgid "Move to the end of the list"
msgstr ""
#: pretix/control/templates/pretixcontrol/waitinglist/index.html:272
-#, fuzzy
-#| msgid "Transfer to other order"
msgctxt "subevent"
msgid "Transfer to other date"
-msgstr "Siirrä toiseen tilaukseen"
+msgstr "Siirrä toiseen päivämäärään"
#: pretix/control/templates/pretixcontrol/waitinglist/transfer.html:4
#: pretix/control/templates/pretixcontrol/waitinglist/transfer.html:6
-#, fuzzy
-#| msgid "Transfer amount"
msgid "Transfer entry"
-msgstr "Siirron summa"
+msgstr "Siirrä tapahtuma"
#: pretix/control/templates/pretixcontrol/waitinglist/transfer.html:9
-#, fuzzy, python-format
-#| msgid ""
-#| "Are you sure you want to delete the following waiting list entry "
-#| "%(entry)s?"
+#, python-format
msgctxt "subevent"
msgid ""
"Please select the date to which the following waiting list entry should be "
"transferred: %(entry)s?"
msgstr ""
-"Oletko varma, että haluat poistaa merkinnän %(entry)s "
-"jonotuslistalta?"
+"Valitse päivämäärä, jolle seuraava jonotuslistamerkintä siirretään: "
+"%(entry)s?"
#: pretix/control/templates/pretixcontrol/waitinglist/transfer.html:19
-#, fuzzy
-#| msgctxt "amount_label"
-#| msgid "Transfer"
msgid "Transfer"
-msgstr "Siirrä"
+msgstr "Siirto"
#: pretix/control/templatetags/hierarkey_form.py:68
msgid "Currently set on organizer level"
@@ -24140,9 +24490,8 @@ msgid "The selected check-ins have been reverted."
msgstr ""
#: pretix/control/views/checkin.py:282
-#, fuzzy
msgid "The selected tickets have been marked as checked out."
-msgstr "Valittu portti on poistettu."
+msgstr "Valitut liput on merkitty uloskirjautuneiksi."
#: pretix/control/views/checkin.py:284
msgid "The selected tickets have been marked as checked in."
@@ -24292,29 +24641,24 @@ msgstr[1] ""
#: pretix/control/views/discounts.py:67 pretix/control/views/discounts.py:109
#: pretix/control/views/discounts.py:214
-#, fuzzy
msgid "The requested discount does not exist."
-msgstr "Pyydettyä tuotetta ei ole olemassa."
+msgstr "Pyydettyä alennusta ei ole olemassa."
#: pretix/control/views/discounts.py:77
-#, fuzzy
msgid "The selected discount has been deleted."
-msgstr "Valittu tuote on poistettu."
+msgstr "Valittu alennus on poistettu."
#: pretix/control/views/discounts.py:85
-#, fuzzy
msgid "The selected discount has been deactivated."
-msgstr "Valittu tuote on poistettu käytöstä."
+msgstr "Valittu alennus on poistettu käytöstä."
#: pretix/control/views/discounts.py:176
-#, fuzzy
msgid "The new discount has been created."
-msgstr "Uusi kategoria luotu."
+msgstr "Uusi alennus on luotu."
#: pretix/control/views/discounts.py:227
-#, fuzzy
msgid "The order of discounts has been updated."
-msgstr "Tilaus poistettu."
+msgstr "Alennusten järjestystä on päivitetty."
#: pretix/control/views/discounts.py:260 pretix/control/views/item.py:183
#: pretix/control/views/item.py:395 pretix/control/views/item.py:529
@@ -24324,9 +24668,8 @@ msgid "Some of the provided object ids are invalid."
msgstr ""
#: pretix/control/views/discounts.py:263
-#, fuzzy
msgid "Not all discounts have been selected."
-msgstr "Portti poistettu."
+msgstr "Kaikkia alennuksia ei ole valittu."
#: pretix/control/views/event.py:359
msgid "Integrations"
@@ -24561,9 +24904,8 @@ msgstr ""
#: pretix/control/views/item.py:398 pretix/control/views/item.py:532
#: pretix/control/views/organizer.py:2263
#: pretix/control/views/organizer.py:3306
-#, fuzzy
msgid "Not all objects have been selected."
-msgstr "Portti poistettu."
+msgstr "Kaikkia kohteita ei ole valittu."
#: pretix/control/views/item.py:471
msgid "Street"
@@ -24686,9 +25028,8 @@ msgid "The verification code was incorrect, please try again."
msgstr ""
#: pretix/control/views/mailsetup.py:221
-#, fuzzy
msgid "Sender address verification"
-msgstr "Sähköpostiosoite vahvistettu"
+msgstr "Lähettäjän osoitteen vahvistus"
#: pretix/control/views/mailsetup.py:277
#, python-format
@@ -25298,21 +25639,17 @@ msgid "All unprocessed webhooks have been stopped from retrying."
msgstr ""
#: pretix/control/views/organizer.py:1401
-#, fuzzy
-#| msgid "The selected gate has been deleted."
msgid "The selected organizer has been invited."
-msgstr "Valittu portti on poistettu."
+msgstr "Valittu järjestäjä on kutsuttu."
#: pretix/control/views/organizer.py:1438
#: pretix/control/views/organizer.py:1449
-#, fuzzy
msgid "The selected connection has been removed."
-msgstr "Valittu tuote on poistettu."
+msgstr "Valittu yhteys on poistettu."
#: pretix/control/views/organizer.py:1460
-#, fuzzy
msgid "The selected connection has been accepted."
-msgstr "Valittu tuote on poistettu."
+msgstr "Valittu yhteys on hyväksytty."
#: pretix/control/views/organizer.py:1518
#: pretix/control/views/organizer.py:1555
@@ -25360,9 +25697,8 @@ msgid "The selected property has been deleted."
msgstr ""
#: pretix/control/views/organizer.py:2229
-#, fuzzy
msgid "The order of properties has been updated."
-msgstr "Tilaus poistettu."
+msgstr "Ominaisuuksien järjestys on päivitetty."
#: pretix/control/views/organizer.py:2406
#: pretix/control/views/organizer.py:2520
@@ -25372,10 +25708,8 @@ msgid "The selected object has been deleted."
msgstr ""
#: pretix/control/views/organizer.py:2440
-#, fuzzy
-#| msgid "The gate has been created."
msgid "The provider has been created."
-msgstr "Uusi portti luotu."
+msgstr "Palveluntarjoaja on luotu."
#: pretix/control/views/organizer.py:2558
#, python-brace-format
@@ -25402,16 +25736,12 @@ msgid "The customer account has been anonymized."
msgstr ""
#: pretix/control/views/organizer.py:3241
-#, fuzzy
-#| msgid "This event can not be deleted."
msgid "This channel can not be deleted."
-msgstr "Tätä tapahtumaa ei voi poistaa."
+msgstr "Tätä kanavaa ei voi poistaa."
#: pretix/control/views/organizer.py:3246
-#, fuzzy
-#| msgid "The selected gate has been deleted."
msgid "The selected sales channel has been deleted."
-msgstr "Valittu portti on poistettu."
+msgstr "Valittu myyntikanava on poistettu."
#: pretix/control/views/organizer.py:3248
msgid ""
@@ -25420,9 +25750,8 @@ msgid ""
msgstr ""
#: pretix/control/views/organizer.py:3272
-#, fuzzy
msgid "The order of sales channels has been updated."
-msgstr "Tilaus poistettu."
+msgstr "Myyntikanavien järjestys on päivitetty."
#: pretix/control/views/pdf.py:83
msgid "The uploaded PDF file is too large."
@@ -25694,15 +26023,13 @@ msgid "This is not an event series."
msgstr ""
#: pretix/control/views/waitinglist.py:403
-#, fuzzy
-#| msgid "The new category has been created."
msgid "The waitinglist entry has been transferred."
-msgstr "Uusi kategoria luotu."
+msgstr "Jonotuslistamerkintä on siirretty."
#: pretix/helpers/daterange.py:97
#, python-brace-format
msgid "{date_from} – {date_to}"
-msgstr ""
+msgstr "{date_from} – {date_to}"
#: pretix/helpers/images.py:61 pretix/helpers/images.py:67
#: pretix/helpers/images.py:85
@@ -25710,40 +26037,36 @@ msgid ""
"The file you uploaded has a very large number of pixels, please upload a "
"picture with smaller dimensions."
msgstr ""
+"Lataamassasi tiedostossa on erittäin suuri määrä pikseleitä, lataa kuva, "
+"jonka mitat ovat pienemmät."
#: pretix/helpers/security.py:166
msgid "Login from new source detected"
-msgstr ""
+msgstr "Kirjautuminen uudelta laitteelta havaittu"
#: pretix/helpers/security.py:170
msgid "Unknown country"
msgstr "Tuntematon maa"
#: pretix/multidomain/models.py:36
-#, fuzzy
-#| msgid "Organizer logs"
msgid "Organizer domain"
-msgstr "Järjestäjän lokit"
+msgstr "Järjestäjän domainit"
#: pretix/multidomain/models.py:37
msgid "Alternative organizer domain for a set of events"
-msgstr ""
+msgstr "Vaihtoehtoisen järjestäjän toimialue tapahtumajoukolle"
#: pretix/multidomain/models.py:38
-#, fuzzy
-#| msgid "Event data"
msgid "Event domain"
-msgstr "Tapahtumatieto"
+msgstr "Tapahtumadomain"
#: pretix/multidomain/models.py:44
-#, fuzzy
-#| msgid "Company name"
msgid "Domain name"
-msgstr "Yrityksen nimi"
+msgstr "Domainin nimi"
#: pretix/multidomain/models.py:50
msgid "Mode"
-msgstr ""
+msgstr "Moodi"
#: pretix/multidomain/models.py:69
msgid "Known domain"
@@ -25775,16 +26098,12 @@ msgstr ""
#: pretix/plugins/autocheckin/forms.py:60
#: pretix/plugins/autocheckin/models.py:82
-#, fuzzy
-#| msgid "All payment providers"
msgid "Only including usage of payment providers"
-msgstr "Kaikki maksunvälittäjät"
+msgstr "Sisältää vain maksupalveluntarjoajien käytön"
#: pretix/plugins/autocheckin/forms.py:120
-#, fuzzy
-#| msgid "Variations"
msgid "All variations"
-msgstr "Variaatiot"
+msgstr "Kaikki variaatiot"
#: pretix/plugins/autocheckin/forms.py:248
msgid ""
@@ -25793,16 +26112,12 @@ msgid ""
msgstr ""
#: pretix/plugins/autocheckin/models.py:36
-#, fuzzy
-#| msgid "New order placed"
msgid "After order was placed"
-msgstr "Uusi tilaus tehty"
+msgstr "Tilauksen tekemisen jälkeen"
#: pretix/plugins/autocheckin/models.py:37
-#, fuzzy
-#| msgid "Mark order as paid"
msgid "After order was paid"
-msgstr "Merkitse tilaus maksetuksi"
+msgstr "Kun tilaus oli maksettu"
#: pretix/plugins/autocheckin/models.py:48
msgid ""
@@ -25811,30 +26126,22 @@ msgid ""
msgstr ""
#: pretix/plugins/autocheckin/models.py:59
-#, fuzzy
-#| msgid "Sales channel"
msgid "All sales channels"
-msgstr "Myyntikanavat"
+msgstr "Kaikki myyntikanavat"
#: pretix/plugins/autocheckin/models.py:69
-#, fuzzy
-#| msgid "Product variation"
msgid "All products and variations"
-msgstr "Tuotevariaatio"
+msgstr "Kaikki tuotteet ja variaatiot"
#: pretix/plugins/autocheckin/models.py:78
-#, fuzzy
-#| msgid "Payment method"
msgid "All payment methods"
-msgstr "Maksutapa"
+msgstr "Kaikki maksutavat"
#: pretix/plugins/autocheckin/signals.py:47
#: pretix/plugins/autocheckin/templates/pretixplugins/autocheckin/add.html:13
#: pretix/plugins/autocheckin/templates/pretixplugins/autocheckin/edit.html:13
-#, fuzzy
-#| msgid "Delete vouchers"
msgid "Auto check-in"
-msgstr "Poista kupongit"
+msgstr "Automaattinen kirjautuminen"
#: pretix/plugins/autocheckin/signals.py:70
msgid "An auto check-in rule was created"
@@ -25850,44 +26157,32 @@ msgstr "Automaattinen kirjautumissääntö poistettu"
#: pretix/plugins/autocheckin/templates/pretixplugins/autocheckin/add.html:4
#: pretix/plugins/autocheckin/templates/pretixplugins/autocheckin/add.html:6
-#, fuzzy
-#| msgid "Create a new user"
msgid "Create auto check-in rule"
-msgstr "Luo uusi käyttäjä"
+msgstr "Luo automaattinen kirjautumissääntö"
#: pretix/plugins/autocheckin/templates/pretixplugins/autocheckin/add.html:18
#: pretix/plugins/autocheckin/templates/pretixplugins/autocheckin/edit.html:18
-#, fuzzy
-#| msgid "Cancellations"
msgid "Conditions"
-msgstr "Peruutukset"
+msgstr "Edellytykset"
#: pretix/plugins/autocheckin/templates/pretixplugins/autocheckin/delete.html:4
#: pretix/plugins/autocheckin/templates/pretixplugins/autocheckin/delete.html:6
-#, fuzzy
-#| msgid "Delete vouchers"
msgid "Delete auto check-in rule"
-msgstr "Poista kupongit"
+msgstr "Poista automaattisen sisäänkirjautumisen sääntö"
#: pretix/plugins/autocheckin/templates/pretixplugins/autocheckin/delete.html:9
-#, fuzzy
-#| msgid "Are you sure you want to delete the property?"
msgid "Are you sure you want to delete the auto check-in rule?"
-msgstr "Oletko varma, että haluat poistaa ominaisuuden?"
+msgstr "Haluatko varmasti poistaa automaattisen sisäänkirjautumisen säännön?"
#: pretix/plugins/autocheckin/templates/pretixplugins/autocheckin/edit.html:4
#: pretix/plugins/autocheckin/templates/pretixplugins/autocheckin/edit.html:6
-#, fuzzy
-#| msgid "Ticket check-in reverted"
msgid "Auto check-in rule"
-msgstr "Lipun lunastus peruutettu"
+msgstr "Automaattinen sisäänkirjautumissääntö"
#: pretix/plugins/autocheckin/templates/pretixplugins/autocheckin/index.html:5
#: pretix/plugins/autocheckin/templates/pretixplugins/autocheckin/index.html:7
-#, fuzzy
-#| msgid "Delete vouchers"
msgid "Auto check-in rules"
-msgstr "Poista kupongit"
+msgstr "Automaattisen sisäänkirjautumisen säännöt"
#: pretix/plugins/autocheckin/templates/pretixplugins/autocheckin/index.html:11
#: pretix/plugins/sendmail/templates/pretixplugins/sendmail/rule_list.html:96
@@ -25896,16 +26191,12 @@ msgstr ""
#: pretix/plugins/autocheckin/templates/pretixplugins/autocheckin/index.html:17
#: pretix/plugins/autocheckin/templates/pretixplugins/autocheckin/index.html:22
-#, fuzzy
-#| msgid "Create a new voucher"
msgid "Create a new check-in rule"
-msgstr "Luo uusi kuponki"
+msgstr "Luo uusi sisäänkirjautumissääntö"
#: pretix/plugins/autocheckin/templates/pretixplugins/autocheckin/index.html:32
-#, fuzzy
-#| msgid "Payment method"
msgid "Payment methods"
-msgstr "Maksutapa"
+msgstr "Maksutavat"
#: pretix/plugins/autocheckin/views.py:119 pretix/plugins/sendmail/views.py:603
msgid "Your rule has been created."
@@ -25992,10 +26283,8 @@ msgid ""
msgstr ""
#: pretix/plugins/badges/exporters.py:465
-#, fuzzy
-#| msgid "Start date"
msgid "Start event date"
-msgstr "Alkupäivämäärä"
+msgstr "Tapahtuman alkamispäivä"
#: pretix/plugins/badges/exporters.py:468
msgid "Only include tickets for dates on or after this date."
@@ -26006,26 +26295,20 @@ msgid "End event date"
msgstr "Loppupäivämäärä"
#: pretix/plugins/badges/exporters.py:475
-#, fuzzy
msgid "Only include tickets ordered on or before this date."
-msgstr "Valinnainen. Tuotteita ei myydä ennen tätä."
+msgstr "Sisällytä vain tänä päivänä tai sitä ennen tilatut liput."
#: pretix/plugins/badges/exporters.py:479
-#, fuzzy
-#| msgid "Start date"
msgid "Start order date"
-msgstr "Alkupäivämäärä"
+msgstr "Tilauksen aloituspäivä"
#: pretix/plugins/badges/exporters.py:482
-#, fuzzy
msgid "Only include tickets ordered on or after this date."
-msgstr "Valinnainen. Tuotteita ei myydä ennen tätä."
+msgstr "Sisällytä vain tänä päivänä tai sen jälkeen tilatut liput."
#: pretix/plugins/badges/exporters.py:486
-#, fuzzy
-#| msgid "Order date"
msgid "End order date"
-msgstr "Tilauksen päivämäärä"
+msgstr "Tilauksen päättymispäivä"
#: pretix/plugins/badges/exporters.py:489
msgid "Only include tickets for dates on or before this date."
@@ -26139,9 +26422,8 @@ msgid "Badge layout: %(name)s"
msgstr ""
#: pretix/plugins/badges/templates/pretixplugins/badges/edit.html:26
-#, fuzzy
msgid "Save & continue"
-msgstr "Poista valitut käytöstä"
+msgstr "Tallenna ja jatka"
#: pretix/plugins/badges/templates/pretixplugins/badges/index.html:10
msgid "You haven't created any badge layouts yet."
@@ -26321,22 +26603,16 @@ msgid ""
msgstr ""
#: pretix/plugins/banktransfer/payment.py:229
-#, fuzzy
-#| msgid "Invoice number"
msgid "Invoice email subject"
-msgstr "Laskun numero"
+msgstr "Laskun sähköpostin aihe"
#: pretix/plugins/banktransfer/payment.py:241
-#, fuzzy
-#| msgid "Invoice data"
msgid "Invoice email text"
-msgstr "Laskun tiedot"
+msgstr "Laskun sähköpostiteksti"
#: pretix/plugins/banktransfer/payment.py:256
-#, fuzzy
-#| msgid "Business customers"
msgid "Restrict to business customers"
-msgstr "Yritysasiakkaat"
+msgstr "Rajoita yritysasiakkaisiin"
#: pretix/plugins/banktransfer/payment.py:257
msgid ""
@@ -26428,11 +26704,8 @@ msgid "Payer"
msgstr ""
#: pretix/plugins/banktransfer/refund_export.py:93
-#, fuzzy
-#| msgctxt "payment_state"
-#| msgid "refunded"
msgid "Refund"
-msgstr "hyvitetty"
+msgstr "Hyvitys"
#: pretix/plugins/banktransfer/signals.py:58
#: pretix/plugins/banktransfer/signals.py:94
@@ -26524,10 +26797,8 @@ msgid "We will send a copy of your invoice directly to %(recipient)s."
msgstr ""
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/control.html:6
-#, fuzzy
-#| msgid "See invoice settings"
msgid "Send invoice to"
-msgstr "Katso laskun asetukset"
+msgstr "Lähetä lasku osoitteeseen"
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/control.html:14
msgid "Account"
@@ -26706,10 +26977,8 @@ msgid "At your request, we sent the invoice directly to %(recipient)s."
msgstr ""
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/pending.html:117
-#, fuzzy
-#| msgid "Log in as someone else"
msgid "Send again or somewhere else"
-msgstr "Kirjaudu sisään toisena käyttäjänä"
+msgstr "Lähetä uudelleen tai jonnekin muualle"
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/pending.html:126
msgid ""
@@ -26718,10 +26987,8 @@ msgid ""
msgstr ""
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/pending.html:139
-#, fuzzy
-#| msgid "See invoice settings"
msgid "Send invoice via email"
-msgstr "Katso laskun asetukset"
+msgstr "Lähetä lasku sähköpostitse"
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/refund_export.html:5
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/refund_export.html:7
@@ -26938,9 +27205,8 @@ msgid "You need to select the column containing the payment reference."
msgstr ""
#: pretix/plugins/banktransfer/views.py:570
-#, fuzzy
msgid "No currency has been selected."
-msgstr "Portti poistettu."
+msgstr "Valuuttaa ei ole valittu."
#: pretix/plugins/banktransfer/views.py:718
#, python-brace-format
@@ -26965,10 +27231,8 @@ msgid ""
msgstr ""
#: pretix/plugins/banktransfer/views.py:915
-#, fuzzy
-#| msgid "This order is not yet approved by the event organizer."
msgid "Sending invoices via email is disabled by the event organizer."
-msgstr "Tapahtuman järjestäjä ei ole vielä hyväksynyt tätä tilausta."
+msgstr "Tapahtuman järjestäjä on kieltänyt laskujen lähettämisen sähköpostitse."
#: pretix/plugins/banktransfer/views.py:920
msgid "No invoice found, please request an invoice first."
@@ -26989,10 +27253,8 @@ msgstr ""
#: pretix/plugins/checkinlists/exporters.py:91
#: pretix/plugins/ticketoutputpdf/exporters.py:88
-#, fuzzy
-#| msgid "Only include orders created on or after this date."
msgid "Only include tickets for dates within this range."
-msgstr "Sisällytä vain tällä päivämäärällä ja sen jälkeen tehdyt tilaukset."
+msgstr "Sisällytä liput vain tämän alueen päivämäärille."
#: pretix/plugins/checkinlists/exporters.py:95
msgid "Include QR-code secret"
@@ -27014,11 +27276,9 @@ msgstr ""
#: pretix/plugins/checkinlists/exporters.py:473
#: pretix/plugins/checkinlists/exporters.py:670
#: pretix/plugins/checkinlists/exporters.py:740
-#, fuzzy
-#| msgid "Check-in"
msgctxt "export_category"
msgid "Check-in"
-msgstr "Ilmoittautuminen"
+msgstr "Kirjautuminen"
#: pretix/plugins/checkinlists/exporters.py:303
msgid ""
@@ -27055,10 +27315,8 @@ msgid "Secret"
msgstr ""
#: pretix/plugins/checkinlists/exporters.py:669
-#, fuzzy
-#| msgid "Web-based check-in"
msgid "Valid check-in codes"
-msgstr "Ilmoittautuminen verkossa"
+msgstr "Voimassa olevat sisäänkirjautumiskoodit"
#: pretix/plugins/checkinlists/exporters.py:671
msgid ""
@@ -27077,9 +27335,8 @@ msgid ""
msgstr ""
#: pretix/plugins/checkinlists/exporters.py:760
-#, fuzzy
msgid "Offline"
-msgstr "Piilota tapahtuma"
+msgstr "Offline-tilassa"
#: pretix/plugins/checkinlists/exporters.py:761
msgid "Offline override"
@@ -27316,9 +27573,8 @@ msgid ""
msgstr ""
#: pretix/plugins/paypal2/payment.py:99
-#, fuzzy
msgid "PayPal Merchant ID"
-msgstr "Maksun tunniste"
+msgstr "PayPal-kauppiastunnus"
#: pretix/plugins/paypal2/payment.py:141
msgid ""
@@ -27328,9 +27584,8 @@ msgid ""
msgstr ""
#: pretix/plugins/paypal2/payment.py:149
-#, fuzzy
msgid "Alternative Payment Methods"
-msgstr "Maksutapa"
+msgstr "Vaihtoehtoiset maksutavat"
#: pretix/plugins/paypal2/payment.py:151
msgid ""
@@ -27367,14 +27622,12 @@ msgid ""
msgstr ""
#: pretix/plugins/paypal2/payment.py:216
-#, fuzzy
msgid "-- Automatic --"
-msgstr "Asiakastili"
+msgstr "-- Automaattinen --"
#: pretix/plugins/paypal2/payment.py:222
-#, fuzzy
msgid "Buyer country"
-msgstr "Mikä tahansa maa"
+msgstr "Ostajan maa"
#: pretix/plugins/paypal2/payment.py:246
msgid ""
@@ -27446,9 +27699,8 @@ msgid "PayPal APM"
msgstr ""
#: pretix/plugins/paypal2/payment.py:1088
-#, fuzzy
msgid "PayPal Alternative Payment Methods"
-msgstr "Maksutapa"
+msgstr "Vaihtoehtoiset PayPal-maksutavat"
#: pretix/plugins/paypal2/signals.py:58
msgid "Payment completed."
@@ -27460,15 +27712,15 @@ msgstr ""
#: pretix/plugins/paypal2/signals.py:60
msgid "Payment refunded."
-msgstr ""
+msgstr "Maksu palautettu."
#: pretix/plugins/paypal2/signals.py:61
msgid "Payment reversed."
-msgstr ""
+msgstr "Maksu peruutettu."
#: pretix/plugins/paypal2/signals.py:62
msgid "Payment pending."
-msgstr ""
+msgstr "Maksu odottaa."
#: pretix/plugins/paypal2/signals.py:63
msgctxt "paypal"
@@ -27483,7 +27735,7 @@ msgstr "Tilaus suoritettu."
#: pretix/plugins/paypal2/signals.py:65
msgctxt "paypal"
msgid "Capture completed."
-msgstr ""
+msgstr "Kaappaus suoritettu."
#: pretix/plugins/paypal2/signals.py:66
msgctxt "paypal"
@@ -27492,64 +27744,65 @@ msgstr "Odottaa hyväksyntää."
#: pretix/plugins/paypal2/signals.py:75
msgid "PayPal reported an event: {}"
-msgstr ""
+msgstr "PayPal ilmoitti tapahtumasta: {}"
#: pretix/plugins/paypal2/signals.py:82
-#, fuzzy
msgid "PayPal ISU/Connect: Client ID"
-msgstr "Maksun tunniste"
+msgstr "PayPal ISU/Connect: asiakastunnus"
#: pretix/plugins/paypal2/signals.py:86
-#, fuzzy
msgid "PayPal ISU/Connect: Secret key"
-msgstr "Maksun tunniste"
+msgstr "PayPal ISU/Connect: Salainen avain"
#: pretix/plugins/paypal2/signals.py:90
-#, fuzzy
msgid "PayPal ISU/Connect: Partner Merchant ID"
-msgstr "Maksun tunniste"
+msgstr "PayPal ISU/Connect: kumppanikauppiaan tunnus"
#: pretix/plugins/paypal2/signals.py:91
msgid ""
"This is not the BN-code, but rather the ID of the merchant account which "
"holds branding information for ISU."
msgstr ""
+"Tämä ei ole BN-koodi, vaan pikemminkin kauppiastilin tunnus, joka sisältää "
+"ISU: n tuotemerkkitiedot."
#: pretix/plugins/paypal2/signals.py:95
-#, fuzzy
msgid "PayPal ISU/Connect Endpoint"
-msgstr "Maksun tunniste"
+msgstr "PayPal ISU/Connect -päätepiste"
#: pretix/plugins/paypal2/templates/pretixplugins/paypal2/checkout_payment_confirm.html:9
msgid "Almost done …"
-msgstr ""
+msgstr "Melkein valmis…"
#: pretix/plugins/paypal2/templates/pretixplugins/paypal2/checkout_payment_confirm.html:12
-#, fuzzy
-#| msgid "Please review the details below and confirm your order."
msgid "Please click on the \"Pay now\" button below to confirm your payment."
-msgstr "Ole hyvä ja tarkasta tilauksen tiedot alta ja vahvista tilaus."
+msgstr "Napsauta alla olevaa \"Maksa nyt\" -painiketta vahvistaaksesi maksusi."
#: pretix/plugins/paypal2/templates/pretixplugins/paypal2/checkout_payment_confirm.html:15
msgid "We will then charge your PayPal account and finalize the order."
-msgstr ""
+msgstr "Tämän jälkeen veloitamme PayPal tiliäsi ja viimeistelemme tilauksen."
#: pretix/plugins/paypal2/templates/pretixplugins/paypal2/checkout_payment_confirm.html:27
msgid ""
"After placing your order, you will be able to select your desired payment "
"method, including PayPal."
msgstr ""
+"Kun olet tehnyt tilauksen, voit valita haluamasi maksutavan, mukaan lukien "
+"PayPal."
#: pretix/plugins/paypal2/templates/pretixplugins/paypal2/checkout_payment_form.html:5
msgid ""
"A PayPal account is required to use this online payment method. Please keep "
"your account information ready to enter in the next step."
msgstr ""
+"Tämän verkkomaksutavan käyttämiseen tarvitaan PayPal-tili. Pidä tilitietosi "
+"valmiina seuraavaa vaihetta varten."
#: pretix/plugins/paypal2/templates/pretixplugins/paypal2/checkout_payment_form.html:9
msgid ""
"Please click the \"Pay with PayPal\" button below to start your payment."
msgstr ""
+"Napsauta alla olevaa \"Maksa PayPal:llä\" -painiketta aloittaaksesi maksun."
#: pretix/plugins/paypal2/templates/pretixplugins/paypal2/checkout_payment_form.html:13
msgid ""
@@ -27557,6 +27810,9 @@ msgid ""
"and to fill in your payment details. You will then be redirected back here "
"to review and confirm your order."
msgstr ""
+"Kun olet klikannut Jatka, voimme valita, miten haluat maksaa, ja täyttää "
+"maksutietosi. Sitten sinut ohjataan takaisin tänne tarkistamaan ja "
+"vahvistamaan tilauksesi."
#: pretix/plugins/paypal2/templates/pretixplugins/paypal2/checkout_payment_form.html:22
msgid ""
@@ -27564,23 +27820,26 @@ msgid ""
"fail. If your payment fails, please just try again. You can also try with a "
"different payment method, if you prefer."
msgstr ""
+"Tällä hetkellä PayPal:ssä on tunnettu ongelma, joka aiheuttaa joidenkin "
+"maksujen epäonnistumisen. Jos maksu epäonnistuu, yritä uudelleen. Voit myös "
+"kokeilla toisella maksutavalla, jos haluat."
#: pretix/plugins/paypal2/templates/pretixplugins/paypal2/control.html:16
#: pretix/plugins/paypal2/templates/pretixplugins/paypal2/control.html:19
msgid "Error"
-msgstr ""
+msgstr "Vikatieto"
#: pretix/plugins/paypal2/templates/pretixplugins/paypal2/control.html:24
-#, fuzzy
-#| msgid "Order status"
msgid "Capture status"
-msgstr "Tilauksen tila"
+msgstr "Kaappauksen tila"
#: pretix/plugins/paypal2/templates/pretixplugins/paypal2/control.html:27
msgid ""
"This payment is being reviewed by PayPal. Until the review is lifted, the "
"money will not be disbursed and the order remain in its pending state."
msgstr ""
+"PayPal tarkistaa tätä maksua. Ennen kuin tarkistus poistetaan, rahaa ei "
+"makseta ja määräys pysyy vireillä olevassa tilassaan."
#: pretix/plugins/paypal2/templates/pretixplugins/paypal2/pay.html:5
#: pretix/plugins/stripe/templates/pretixplugins/stripe/sca.html:5
@@ -27588,18 +27847,18 @@ msgstr ""
#: pretix/presale/templates/pretixpresale/event/order_pay.html:5
#: pretix/presale/templates/pretixpresale/event/order_pay_confirm.html:5
msgid "Pay order"
-msgstr ""
+msgstr "Maksumääräys"
#: pretix/plugins/paypal2/templates/pretixplugins/paypal2/pay.html:16
#: pretix/presale/templates/pretixpresale/event/order_pay.html:8
#: pretix/presale/templates/pretixpresale/event/order_pay_confirm.html:8
#, python-format
msgid "Pay order: %(code)s"
-msgstr ""
+msgstr "Maksumääräys: %(code)s"
#: pretix/plugins/paypal2/templates/pretixplugins/paypal2/pay.html:26
msgid "Please turn on JavaScript."
-msgstr ""
+msgstr "Ota JavaScript käyttöön."
#: pretix/plugins/paypal2/templates/pretixplugins/paypal2/pay.html:29
#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:55
@@ -27611,18 +27870,24 @@ msgid ""
"Our attempt to execute your payment via PayPal has failed. Please try again "
"or contact us."
msgstr ""
+"Yrityksemme suorittaa maksusi PayPalin kautta on epäonnistunut. Yritä "
+"uudelleen tai ota meihin yhteyttä."
#: pretix/plugins/paypal2/views.py:221
msgid ""
"An error occurred returning from PayPal: request parameters missing. Please "
"try again."
msgstr ""
+"PayPalista palatessa tapahtui virhe: Pyyntöparametrit puuttuvat. Yritä "
+"uudelleen."
#: pretix/plugins/paypal2/views.py:257
msgid ""
"An error occurred returning from PayPal: result parameters missing. Please "
"try again."
msgstr ""
+"PayPalista palaamisessa tapahtui virhe: tulosparametrit puuttuvat. Yritä "
+"uudelleen."
#: pretix/plugins/paypal2/views.py:262
msgid ""
@@ -27653,10 +27918,8 @@ msgid ""
msgstr ""
#: pretix/plugins/reports/accountingreport.py:58
-#, fuzzy
-#| msgid "Account information"
msgid "Accounting report"
-msgstr "Tilitiedot"
+msgstr "Kirjanpitoraportti"
#: pretix/plugins/reports/accountingreport.py:60
msgid ""
@@ -27674,11 +27937,8 @@ msgid "Ignore test mode orders"
msgstr ""
#: pretix/plugins/reports/accountingreport.py:90
-#, fuzzy
-#| msgctxt "subevent"
-#| msgid "Event series date added"
msgid "Split event series by date"
-msgstr "Tapahtumapäivä lisätty"
+msgstr "Jaa tapahtumasarja päivämäärän mukaan"
#: pretix/plugins/reports/accountingreport.py:128
msgid "End"
@@ -27709,20 +27969,16 @@ msgid "Total gift card value at {datetime}"
msgstr ""
#: pretix/plugins/reports/accountingreport.py:770
-#, fuzzy
msgid "Gift card transactions (credit)"
-msgstr "Rekisteröintipäivämäärä"
+msgstr "Lahjakorttitapahtumat (luotto)"
#: pretix/plugins/reports/accountingreport.py:780
-#, fuzzy
msgid "Gift card transactions (debit)"
-msgstr "Rekisteröintipäivämäärä"
+msgstr "Lahjakorttitapahtumat (debit)"
#: pretix/plugins/reports/accountingreport.py:882
-#, fuzzy
-#| msgid "Ordered items"
msgid "Open items"
-msgstr "Tilatut tuotteet"
+msgstr "Avaa kohteet"
#: pretix/plugins/reports/apps.py:44 pretix/plugins/reports/apps.py:47
msgid "Report exporter"
@@ -27853,10 +28109,8 @@ msgid ""
msgstr ""
#: pretix/plugins/returnurl/views.py:37
-#, fuzzy
-#| msgid "Redirection URIs"
msgid "Base redirection URLs"
-msgstr "Uudelleenohjausosoitteet"
+msgstr "Perusuudelleenohjauksen URL-osoitteet"
#: pretix/plugins/returnurl/views.py:38
msgid ""
@@ -27887,11 +28141,9 @@ msgstr ""
#: pretix/plugins/sendmail/forms.py:97 pretix/plugins/sendmail/forms.py:171
#: pretix/plugins/sendmail/forms.py:349
-#, fuzzy
-#| msgid "Add tickets for a different date"
msgctxt "sendmail_form"
msgid "Restrict to a specific event date"
-msgstr "Lisää lippuja toiselle päivämäärälle"
+msgstr "Rajoita tiettyyn tapahtumapäivään"
#: pretix/plugins/sendmail/forms.py:103 pretix/plugins/sendmail/forms.py:177
msgctxt "sendmail_form"
@@ -27904,10 +28156,9 @@ msgid "Restrict to event dates starting before"
msgstr ""
#: pretix/plugins/sendmail/forms.py:149
-#, fuzzy
msgctxt "sendmail_form"
msgid "Send to"
-msgstr "Maksutapa"
+msgstr "Lähetä osoitteeseen"
#: pretix/plugins/sendmail/forms.py:159
msgctxt "sendmail_form"
@@ -27919,11 +28170,9 @@ msgid "Filter check-in status"
msgstr ""
#: pretix/plugins/sendmail/forms.py:168
-#, fuzzy
-#| msgid "Add tickets for a different date"
msgctxt "sendmail_form"
msgid "Restrict to recipients without check-in on any list"
-msgstr "Lisää lippuja toiselle päivämäärälle"
+msgstr "Rajoita vastaanottajiin ilman sisäänkirjautumista missään luettelossa"
#: pretix/plugins/sendmail/forms.py:187
msgctxt "sendmail_form"
@@ -28024,9 +28273,8 @@ msgid "scheduled"
msgstr ""
#: pretix/plugins/sendmail/models.py:52
-#, fuzzy
msgid "failed"
-msgstr "epäonnistunut"
+msgstr "epäonnistui"
#: pretix/plugins/sendmail/models.py:53
msgid "completed"
@@ -28155,11 +28403,9 @@ msgid "An email rule was deleted"
msgstr ""
#: pretix/plugins/sendmail/signals.py:140
-#, fuzzy, python-brace-format
-#| msgctxt "subevent"
-#| msgid "Date {val}"
+#, python-brace-format
msgid "Mail rule {val}"
-msgstr "Päivämäärä {val}"
+msgstr "Postisääntö {val}"
#: pretix/plugins/sendmail/templates/pretixplugins/sendmail/history.html:8
msgid ""
@@ -28283,10 +28529,8 @@ msgid "Inspect scheduled times"
msgstr ""
#: pretix/plugins/sendmail/templates/pretixplugins/sendmail/rule_list.html:83
-#, fuzzy
-#| msgid "Use as a template for new vouchers"
msgid "Use as a template for a new rule"
-msgstr "Käytä pohjana uusille kupongeille"
+msgstr "Käytä mallina uudelle säännölle"
#: pretix/plugins/sendmail/templates/pretixplugins/sendmail/rule_update.html:5
#: pretix/plugins/sendmail/templates/pretixplugins/sendmail/rule_update.html:7
@@ -28330,10 +28574,8 @@ msgid ""
msgstr ""
#: pretix/plugins/sendmail/views.py:250
-#, fuzzy
-#| msgid "Order reactivated"
msgid "Orders or attendees"
-msgstr "Tilaus uudelleenaktivoitu"
+msgstr "Tilaukset tai osallistujat"
#: pretix/plugins/sendmail/views.py:251
msgid ""
@@ -28557,10 +28799,8 @@ msgid "Publishable key"
msgstr ""
#: pretix/plugins/stripe/payment.py:280
-#, fuzzy
-#| msgid "Generate random codes"
msgid "Generate API keys"
-msgstr "Generoi satunnaiset koodit"
+msgstr "Luo API-avaimia"
#: pretix/plugins/stripe/payment.py:282
msgid ""
@@ -28788,10 +29028,8 @@ msgid "SEPA Debit"
msgstr ""
#: pretix/plugins/stripe/payment.py:1232
-#, fuzzy
-#| msgid "Account active"
msgid "Account Holder Name"
-msgstr "Tili aktiivinen"
+msgstr "Tilinhaltijan nimi"
#: pretix/plugins/stripe/payment.py:1237
msgid "Account Holder Street"
@@ -28802,10 +29040,8 @@ msgid "Account Holder Postal Code"
msgstr ""
#: pretix/plugins/stripe/payment.py:1261
-#, fuzzy
-#| msgid "Account information"
msgid "Account Holder City"
-msgstr "Tilitiedot"
+msgstr "Tilinhaltijan kaupunki"
#: pretix/plugins/stripe/payment.py:1273
msgid "Account Holder Country"
@@ -28875,10 +29111,8 @@ msgid "SOFORT via Stripe"
msgstr ""
#: pretix/plugins/stripe/payment.py:1595
-#, fuzzy
-#| msgid "Payment by bank transfer"
msgid "SOFORT (instant bank transfer)"
-msgstr "Maksu pankkisiirrolla"
+msgstr "SOFORT (välitön pankkisiirto)"
#: pretix/plugins/stripe/payment.py:1624
msgid "Country of your bank"
@@ -29084,10 +29318,8 @@ msgstr ""
#: pretix/plugins/stripe/templates/pretixplugins/stripe/checkout_payment_confirm.html:20
#: pretix/plugins/stripe/templates/pretixplugins/stripe/checkout_payment_form_sepadirectdebit.html:25
-#, fuzzy
-#| msgid "Phone number"
msgid "Account number"
-msgstr "Puhelinnumero"
+msgstr "Tilinumero"
#: pretix/plugins/stripe/templates/pretixplugins/stripe/checkout_payment_confirm.html:24
#: pretix/plugins/stripe/templates/pretixplugins/stripe/checkout_payment_form_simple.html:7
@@ -29173,21 +29405,16 @@ msgid "Payer name"
msgstr ""
#: pretix/plugins/stripe/templates/pretixplugins/stripe/oauth_disconnect.html:12
-#, fuzzy
-#| msgid "Do you really want to mark this payment as complete?"
msgid "Do you really want to disconnect your Stripe account?"
-msgstr "Haluatko varmasti merkitä tämän maksun valmiiksi?"
+msgstr "Haluatko todella katkaista Stripe-tilisi yhteyden?"
#: pretix/plugins/stripe/templates/pretixplugins/stripe/oauth_disconnect.html:16
-#, fuzzy
msgid "Disconnect"
-msgstr "Tili"
+msgstr "Katkaise yhteys"
#: pretix/plugins/stripe/templates/pretixplugins/stripe/pending.html:6
-#, fuzzy
-#| msgid "Payment information"
msgid "Payment instructions"
-msgstr "Maksutiedot"
+msgstr "Maksuohjeet"
#: pretix/plugins/stripe/templates/pretixplugins/stripe/pending.html:9
msgid ""
@@ -29337,9 +29564,8 @@ msgid "Ticket layout {val}"
msgstr ""
#: pretix/plugins/ticketoutputpdf/templates/pretixplugins/ticketoutputpdf/control_order_position_buttons.html:7
-#, fuzzy
msgid "Alternative ticket"
-msgstr "Maksutapa"
+msgstr "Vaihtoehtoinen lippu"
#: pretix/plugins/ticketoutputpdf/templates/pretixplugins/ticketoutputpdf/delete.html:4
#: pretix/plugins/ticketoutputpdf/templates/pretixplugins/ticketoutputpdf/delete.html:6
@@ -29534,10 +29760,8 @@ msgstr ""
#: pretix/presale/checkoutflow.py:1410 pretix/presale/checkoutflow.py:1424
#: pretix/presale/checkoutflow.py:1435
-#, fuzzy
-#| msgid "Please select how you want to pay."
msgid "Please select a payment method to proceed."
-msgstr "Valitse maksutapa."
+msgstr "Valitse maksutapa edetäksesi."
#: pretix/presale/checkoutflow.py:1440 pretix/presale/views/order.py:436
#: pretix/presale/views/order.py:517
@@ -29674,11 +29898,9 @@ msgid "No other variations of this product exist."
msgstr ""
#: pretix/presale/forms/organizer.py:70
-#, fuzzy
-#| msgid "All"
msgctxt "filter_empty"
msgid "all"
-msgstr "Kaikki"
+msgstr "kaikki"
#: pretix/presale/forms/renderers.py:50
msgctxt "form"
@@ -29759,24 +29981,17 @@ msgstr ""
#: pretix/presale/templates/pretixpresale/event/base.html:128
#: pretix/presale/templates/pretixpresale/event/base.html:202
-#, fuzzy
-#| msgid "This ticket has been used once."
-#| msgid_plural "This ticket has been used %(count)s times."
msgid "This ticket shop is currently in test mode."
-msgstr "Tämä lippu on käytetty."
+msgstr "Tämä lippukauppa on tällä hetkellä testitilassa."
#: pretix/presale/templates/pretixpresale/event/base.html:131
#: pretix/presale/templates/pretixpresale/event/base.html:205
-#, fuzzy
-#| msgid ""
-#| "This ticket shop is currently in test mode. Please do not perform any "
-#| "real purchases as your order might be deleted without notice."
msgid ""
"Please do not perform any real purchases as your order might be deleted "
"without notice."
msgstr ""
-"Tämä lippukauppa on testitilassa. Älä tee oikeita ostoksia, sillä tilauksesi "
-"saatetaan poistaa ilman varoitusta."
+"Älä tee oikeita ostoksia, sillä tilauksesi voidaan poistaa ilman erillistä "
+"ilmoitusta."
#: pretix/presale/templates/pretixpresale/event/base.html:135
#, python-format
@@ -29807,10 +30022,9 @@ msgid "Error"
msgstr ""
#: pretix/presale/templates/pretixpresale/event/base.html:177
-#, fuzzy
msgctxt "alert-messages"
msgid "Information"
-msgstr "Tietosi"
+msgstr "Tiedot"
#: pretix/presale/templates/pretixpresale/event/base.html:219
#: pretix/presale/templates/pretixpresale/organizers/base.html:98
@@ -29826,9 +30040,8 @@ msgstr ""
#: pretix/presale/templates/pretixpresale/event/base.html:225
#: pretix/presale/templates/pretixpresale/organizers/base.html:104
-#, fuzzy
msgid "Cookie settings"
-msgstr "Kirjautumisasetukset"
+msgstr "Evästeasetukset"
#: pretix/presale/templates/pretixpresale/event/base.html:228
#: pretix/presale/templates/pretixpresale/organizers/base.html:107
@@ -29854,22 +30067,16 @@ msgid "We're now trying to book these add-ons for you!"
msgstr "Yritämme nyt varata nämä lisätuotteet sinulle!"
#: pretix/presale/templates/pretixpresale/event/checkout_addons.html:28
-#, fuzzy
-#| msgid "Contact information"
msgid "Additional options for"
-msgstr "Yhteystiedot"
+msgstr "Lisävaihtoehdot kohteelle"
#: pretix/presale/templates/pretixpresale/event/checkout_addons.html:64
-#, fuzzy
-#| msgid "Order comment"
msgid "More recommendations"
-msgstr "Tilauksen kommentti"
+msgstr "Lisää suosituksia"
#: pretix/presale/templates/pretixpresale/event/checkout_addons.html:71
-#, fuzzy
-#| msgid "Order comment"
msgid "Our recommendations"
-msgstr "Tilauksen kommentti"
+msgstr "Suosituksemme"
#: pretix/presale/templates/pretixpresale/event/checkout_addons.html:89
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:201
@@ -29908,10 +30115,8 @@ msgid "Cart expired"
msgstr "Ostoskori on vanhentunut"
#: pretix/presale/templates/pretixpresale/event/checkout_base.html:36
-#, fuzzy
-#| msgid "Your cart"
msgid "Show full cart"
-msgstr "Ostoskorisi"
+msgstr "Näytä koko ostoskori"
#: pretix/presale/templates/pretixpresale/event/checkout_base.html:48
#: pretix/presale/templates/pretixpresale/event/index.html:84
@@ -30058,21 +30263,16 @@ msgid "You already selected the following payment methods:"
msgstr ""
#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:26
-#, fuzzy
-#| msgid "Create payment"
msgid "Remove payment"
-msgstr "Luo maksu"
+msgstr "Poista maksu"
#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:38
-#, fuzzy
msgid "Remaining balance"
-msgstr "Hyvitettävä summa"
+msgstr "Jäljellä oleva saldo"
#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:39
-#, fuzzy
-#| msgid "Please select how you want to pay."
msgid "Please select a payment method below."
-msgstr "Valitse maksutapa."
+msgstr "Valitse maksutapa alapuolelta."
#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:52
msgid "Please select how you want to pay the remaining balance:"
@@ -30227,9 +30427,8 @@ msgstr ""
#: pretix/presale/templates/pretixpresale/event/fragment_addon_choice.html:98
#: pretix/presale/templates/pretixpresale/event/fragment_product_list.html:103
-#, fuzzy
msgid "Hide variants"
-msgstr "Näytä variaatiot"
+msgstr "Kätke variaatiot"
#: pretix/presale/templates/pretixpresale/event/fragment_addon_choice.html:100
#: pretix/presale/templates/pretixpresale/event/fragment_product_list.html:105
@@ -30334,11 +30533,9 @@ msgstr ""
#: pretix/presale/templates/pretixpresale/event/fragment_product_list.html:371
#: pretix/presale/templates/pretixpresale/event/voucher.html:231
#: pretix/presale/templates/pretixpresale/event/voucher.html:386
-#, fuzzy
-#| msgid "Select country"
msgctxt "checkbox"
msgid "Select"
-msgstr "Valitse maa"
+msgstr "Valitse"
#: pretix/presale/templates/pretixpresale/event/fragment_addon_choice.html:208
#: pretix/presale/templates/pretixpresale/event/fragment_addon_choice.html:354
@@ -30413,14 +30610,12 @@ msgstr ""
"myöhemmin."
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:15
-#, fuzzy
msgid "Price per item"
-msgstr "Vaikutus hintaan"
+msgstr "Hinta per kohde"
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:18
-#, fuzzy
msgid "Price total"
-msgstr "Hinta (valinnainen)"
+msgstr "Hinta yhteensä"
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:42
msgid "Seat:"
@@ -30444,11 +30639,8 @@ msgid "Membership:"
msgstr "Jäsenyys:"
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:127
-#, fuzzy
-#| msgid "This ticket has been used once."
-#| msgid_plural "This ticket has been used %(count)s times."
msgid "This ticket is blocked."
-msgstr "Tämä lippu on käytetty."
+msgstr "Tämän lipun käyttö on estetty."
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:134
msgctxt "ticket_checkins"
@@ -30539,10 +30731,8 @@ msgstr ""
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:389
#: pretix/presale/templates/pretixpresale/event/order_giftcard.html:20
#: pretix/presale/templates/pretixpresale/event/position_giftcard.html:20
-#, fuzzy
-#| msgid "Current:"
msgid "Current value:"
-msgstr "Nykyinen:"
+msgstr "Nykyinen arvo:"
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:463
#, python-format
@@ -30604,9 +30794,8 @@ msgid "Redeem voucher"
msgstr "Lunasta kuponki"
#: pretix/presale/templates/pretixpresale/event/fragment_change_confirm.html:10
-#, fuzzy
msgid "Change summary"
-msgstr "Muutoshistoria"
+msgstr "Yhteenveto muutoksista"
#: pretix/presale/templates/pretixpresale/event/fragment_change_confirm.html:19
#, python-format
@@ -30660,14 +30849,12 @@ msgid "Remove position #%(positionid)s (%(item)s)"
msgstr ""
#: pretix/presale/templates/pretixpresale/event/fragment_change_confirm.html:121
-#, fuzzy
msgid "Total price change"
-msgstr "Nettohinta"
+msgstr "Hintamuutos yhteensä"
#: pretix/presale/templates/pretixpresale/event/fragment_change_confirm.html:130
-#, fuzzy
msgid "New order total"
-msgstr "Tilauksen summa"
+msgstr "Uuden tilauksen kokonais-summa"
#: pretix/presale/templates/pretixpresale/event/fragment_change_confirm.html:136
msgid "You already paid"
@@ -30729,10 +30916,9 @@ msgid ""
msgstr ""
#: pretix/presale/templates/pretixpresale/event/fragment_checkoutflow.html:2
-#, fuzzy
msgctxt "checkoutflow"
msgid "Checkout steps"
-msgstr "Kassa"
+msgstr "Kassan vaiheet"
#: pretix/presale/templates/pretixpresale/event/fragment_checkoutflow.html:12
msgid "Completed:"
@@ -30846,9 +31032,8 @@ msgstr ""
#: pretix/presale/templates/pretixpresale/event/fragment_product_list.html:28
#: pretix/presale/templates/pretixpresale/event/voucher.html:78
-#, fuzzy
msgid "Uncategorized items"
-msgstr "Tilatut tuotteet"
+msgstr "Luokittelemattomat tuotteet"
#: pretix/presale/templates/pretixpresale/event/fragment_product_list.html:40
#: pretix/presale/templates/pretixpresale/event/fragment_product_list.html:259
@@ -30972,17 +31157,14 @@ msgstr ""
#: pretix/presale/templates/pretixpresale/event/index.html:152
#: pretix/presale/views/waiting.py:141 pretix/presale/views/widget.py:756
-#, fuzzy
-#| msgid "The presale period for this event is over."
msgid "The booking period for this event is over."
-msgstr "Tämän tapahtuman ennakkomyynti on päättynyt."
+msgstr "Ilmoittautumisaika tähän tapahtumaan on päättynyt."
#: pretix/presale/templates/pretixpresale/event/index.html:160
#: pretix/presale/views/widget.py:758
-#, fuzzy, python-format
-#| msgid "The presale for this event will start on %(date)s at %(time)s."
+#, python-format
msgid "The booking period for this event will start on %(date)s at %(time)s."
-msgstr "Tämän tapahtuman myynti alkaa %(date)s klo %(time)s."
+msgstr "Tämän tapahtuman ilmoittautuminen alkaa %(date)s klo %(time)s."
#: pretix/presale/templates/pretixpresale/event/index.html:182
#: pretix/presale/templates/pretixpresale/event/seatingplan.html:23
@@ -31032,27 +31214,20 @@ msgstr "Lähetä tilauslinkit uudelleen"
#: pretix/presale/templates/pretixpresale/event/offline.html:4
#: pretix/presale/templates/pretixpresale/event/offline.html:8
-#, fuzzy
-#| msgid "Go offline"
msgid "Shop offline"
-msgstr "Piilota tapahtuma"
+msgstr "Kauppa offline-tilassa"
#: pretix/presale/templates/pretixpresale/event/offline.html:9
-#, fuzzy
-#| msgid "This ticket has been used once."
-#| msgid_plural "This ticket has been used %(count)s times."
msgid "This ticket shop is currently turned off."
-msgstr "Tämä lippu on käytetty."
+msgstr "Tämä lippukauppa on tällä hetkellä pois päältä."
#: pretix/presale/templates/pretixpresale/event/offline.html:10
msgid "It is only accessible to authenticated team members."
msgstr ""
#: pretix/presale/templates/pretixpresale/event/offline.html:11
-#, fuzzy
-#| msgid "Please enter a valid email address."
msgid "Please try again later."
-msgstr "Ole hyvä ja anna kelvollinen sähköpostiosoite."
+msgstr "Ole hyvä ja yritä myöhemmin uudelleen."
#: pretix/presale/templates/pretixpresale/event/order.html:12
#: pretix/presale/templates/pretixpresale/event/order.html:29
@@ -31207,18 +31382,14 @@ msgid "Change or cancel your order"
msgstr ""
#: pretix/presale/templates/pretixpresale/event/order.html:351
-#, fuzzy
-#| msgid "Change your information"
msgctxt "action"
msgid "Change your order"
-msgstr "Muuta tietojasi"
+msgstr "Muuta tilaustasi"
#: pretix/presale/templates/pretixpresale/event/order.html:353
-#, fuzzy
-#| msgid "Canceled by customer"
msgctxt "action"
msgid "Cancel your order"
-msgstr "Asiakkaan peruuttama"
+msgstr "Peruuta tilauksesi"
#: pretix/presale/templates/pretixpresale/event/order.html:361
msgid ""
@@ -31232,9 +31403,8 @@ msgstr ""
#: pretix/presale/templates/pretixpresale/event/order.html:381
#: pretix/presale/templates/pretixpresale/event/order_cancel.html:27
-#, fuzzy
msgid "You can request to cancel this order."
-msgstr "Et voi luoda laskua tälle tilaukselle."
+msgstr "Voit pyytää tämän tilauksen peruuttamista."
#: pretix/presale/templates/pretixpresale/event/order.html:384
#: pretix/presale/templates/pretixpresale/event/order_cancel.html:30
@@ -31929,10 +32099,8 @@ msgid "Addresses"
msgstr "Osoitteet"
#: pretix/presale/templates/pretixpresale/organizers/customer_addresses.html:37
-#, fuzzy
-#| msgid "You do not have permission to clone this event."
msgid "You don’t have any addresses in your account yet."
-msgstr "Sinulla ei ole oikeuksia kloonata tätä tapahtumaa."
+msgstr "Tililläsi ei ole vielä osoitteita."
#: pretix/presale/templates/pretixpresale/organizers/customer_base.html:7
#: pretix/presale/templates/pretixpresale/organizers/customer_orders.html:7
@@ -31948,10 +32116,8 @@ msgid "Change password"
msgstr "Vaihda salasana"
#: pretix/presale/templates/pretixpresale/organizers/customer_base.html:41
-#, fuzzy
-#| msgid "Account information"
msgid "customer account information"
-msgstr "Tilitiedot"
+msgstr "Asiakkaan tilitiedot"
#: pretix/presale/templates/pretixpresale/organizers/customer_info.html:6
msgid "Account information"
@@ -31977,33 +32143,24 @@ msgid "Your membership"
msgstr ""
#: pretix/presale/templates/pretixpresale/organizers/customer_membership.html:40
-#, fuzzy
-#| msgctxt "amount_label"
-#| msgid "Transfer"
msgid "transferable"
-msgstr "Siirrä"
+msgstr "siirrävissä"
#: pretix/presale/templates/pretixpresale/organizers/customer_membership.html:42
msgid "not transferable"
msgstr ""
#: pretix/presale/templates/pretixpresale/organizers/customer_membership.html:122
-#, fuzzy
-#| msgid "You haven't scanned any tickets yet."
msgid "You haven’t used this membership yet."
-msgstr "Et ole vielä skannannut lippuja."
+msgstr "Et ole vielä käyttänyt tätä jäsenyyttä."
#: pretix/presale/templates/pretixpresale/organizers/customer_memberships.html:49
-#, fuzzy
-#| msgid "Expired"
msgid "Expired since"
-msgstr "Vanhentunut"
+msgstr "Vanhentunut lähtien"
#: pretix/presale/templates/pretixpresale/organizers/customer_memberships.html:106
-#, fuzzy
-#| msgid "You do not have permission to clone this event."
msgid "You don’t have any memberships in your account yet."
-msgstr "Sinulla ei ole oikeuksia kloonata tätä tapahtumaa."
+msgstr "Tililläsi ei ole vielä jäsenyyksiä."
#: pretix/presale/templates/pretixpresale/organizers/customer_orders.html:52
#, python-format
@@ -32013,10 +32170,8 @@ msgstr[0] ""
msgstr[1] ""
#: pretix/presale/templates/pretixpresale/organizers/customer_orders.html:78
-#, fuzzy
-#| msgid "You do not have permission to clone this event."
msgid "You don’t have any orders in your account yet."
-msgstr "Sinulla ei ole oikeuksia kloonata tätä tapahtumaa."
+msgstr "Tililläsi ei ole vielä tilauksia."
#: pretix/presale/templates/pretixpresale/organizers/customer_password.html:6
#: pretix/presale/templates/pretixpresale/organizers/customer_resetpw.html:6
@@ -32079,11 +32234,9 @@ msgid "Upcoming events"
msgstr "Tulevat tapahtumat"
#: pretix/presale/templates/pretixpresale/organizers/index.html:59
-#, fuzzy
-#| msgid "All gates"
msgctxt "subevent"
msgid "Multiple dates"
-msgstr "Kaikki portit"
+msgstr "Useita päivämääriä"
#: pretix/presale/templates/pretixpresale/organizers/index.html:105
msgid "No archived events found."
@@ -32177,11 +32330,8 @@ msgid "Your cart is empty"
msgstr "Ostoskorisi on tyhjä"
#: pretix/presale/views/checkout.py:59
-#, fuzzy
-#| msgid "The presale for this event is over or has not yet started."
msgid "The booking period for this event is over or has not yet started."
-msgstr ""
-"Tämän tapahtuman ennakkomyynti ei ole alkanut vielä tai se on jo päättynyt."
+msgstr "Tämän tapahtuman varausaika on päättynyt tai ei ole vielä alkanut."
#: pretix/presale/views/customer.py:247
msgid ""
@@ -32247,24 +32397,16 @@ msgid "Please go back and try again."
msgstr ""
#: pretix/presale/views/event.py:954
-#, fuzzy
-#| msgid "Purchased products"
msgid "Fake date time"
-msgstr "Ostetut tuotteet"
+msgstr "Väärennetyt päivämäärät"
#: pretix/presale/views/event.py:966
-#, fuzzy
-#| msgid "Unknown order code or not authorized to access this order."
msgid "You are not allowed to access time machine mode."
-msgstr ""
-"Tilausnumeroa ei löytynyt tai sinulla ei ole oikeuksia tarkastella tätä "
-"tilausta."
+msgstr "Sinulla ei ole oikeutta käyttää aikakonetilaa."
#: pretix/presale/views/event.py:968
-#, fuzzy
-#| msgid "The product \"{}\" is not available on this date."
msgid "This feature is only available in test mode."
-msgstr "Tuote \"{}\" ei ole saatavilla tällä päivämäärällä."
+msgstr "Tämä ominaisuus on käytettävissä vain testitilassa."
#: pretix/presale/views/event.py:985
msgid "Time machine disabled!"
From 6edc12a89ff87615cf39fdbdf2d70d58bbdd6357 Mon Sep 17 00:00:00 2001
From: Hannu Kaakinen
Date: Sat, 8 Feb 2025 16:05:26 +0000
Subject: [PATCH 37/99] Translations: Update Finnish
Currently translated at 54.3% (3177 of 5846 strings)
Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/fi/
powered by weblate
---
src/pretix/locale/fi/LC_MESSAGES/django.po | 122 ++++++++++++---------
1 file changed, 73 insertions(+), 49 deletions(-)
diff --git a/src/pretix/locale/fi/LC_MESSAGES/django.po b/src/pretix/locale/fi/LC_MESSAGES/django.po
index 57182c7831..2942ffaf51 100644
--- a/src/pretix/locale/fi/LC_MESSAGES/django.po
+++ b/src/pretix/locale/fi/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-01-29 13:18+0000\n"
-"PO-Revision-Date: 2025-02-08 16:00+0000\n"
+"PO-Revision-Date: 2025-02-08 22:16+0000\n"
"Last-Translator: Hannu Kaakinen \n"
"Language-Team: Finnish \n"
@@ -26070,15 +26070,15 @@ msgstr "Moodi"
#: pretix/multidomain/models.py:69
msgid "Known domain"
-msgstr ""
+msgstr "Tunnettu domaini"
#: pretix/multidomain/models.py:70
msgid "Known domains"
-msgstr ""
+msgstr "Tunnetut domainit"
#: pretix/plugins/autocheckin/apps.py:30 pretix/plugins/autocheckin/apps.py:33
msgid "Automated check-in"
-msgstr ""
+msgstr "Automaattinen sisäänkirjautuminen"
#: pretix/plugins/autocheckin/apps.py:34 pretix/plugins/badges/apps.py:34
#: pretix/plugins/banktransfer/apps.py:35
@@ -26090,11 +26090,12 @@ msgstr ""
#: pretix/plugins/stripe/apps.py:35 pretix/plugins/ticketoutputpdf/apps.py:48
#: pretix/plugins/webcheckin/apps.py:34
msgid "the pretix team"
-msgstr ""
+msgstr "pretix tiimi"
#: pretix/plugins/autocheckin/apps.py:39
msgid "Automatically check-in specific tickets after they have been sold."
msgstr ""
+"Kirjaa tietyt liput automaattisesti sisään sen jälkeen, kun ne on myyty."
#: pretix/plugins/autocheckin/forms.py:60
#: pretix/plugins/autocheckin/models.py:82
@@ -26110,6 +26111,7 @@ msgid ""
"When restricting by payment method, the rule should run after the payment "
"was received."
msgstr ""
+"Maksutavan rajoittaessa säännön tulee toimia maksun vastaanottamisen jälkeen."
#: pretix/plugins/autocheckin/models.py:36
msgid "After order was placed"
@@ -26124,6 +26126,8 @@ msgid ""
"If you keep this empty, all lists that match the purchased product will be "
"used."
msgstr ""
+"Jos pidät tämän tyhjänä, käytetään kaikkia ostettua tuotetta vastaavia "
+"listoja."
#: pretix/plugins/autocheckin/models.py:59
msgid "All sales channels"
@@ -26187,7 +26191,7 @@ msgstr "Automaattisen sisäänkirjautumisen säännöt"
#: pretix/plugins/autocheckin/templates/pretixplugins/autocheckin/index.html:11
#: pretix/plugins/sendmail/templates/pretixplugins/sendmail/rule_list.html:96
msgid "You haven't created any rules yet."
-msgstr ""
+msgstr "Et ole vielä luonut sääntöjä."
#: pretix/plugins/autocheckin/templates/pretixplugins/autocheckin/index.html:17
#: pretix/plugins/autocheckin/templates/pretixplugins/autocheckin/index.html:22
@@ -26200,11 +26204,11 @@ msgstr "Maksutavat"
#: pretix/plugins/autocheckin/views.py:119 pretix/plugins/sendmail/views.py:603
msgid "Your rule has been created."
-msgstr ""
+msgstr "Sääntösi on luotu."
#: pretix/plugins/autocheckin/views.py:209 pretix/plugins/sendmail/views.py:730
msgid "The selected rule has been deleted."
-msgstr ""
+msgstr "Valittu sääntö on poistettu."
#: pretix/plugins/badges/apps.py:30 pretix/plugins/badges/apps.py:33
#: pretix/plugins/badges/signals.py:54
@@ -26214,7 +26218,7 @@ msgstr ""
#: pretix/plugins/badges/templates/pretixplugins/badges/index.html:4
#: pretix/plugins/badges/templates/pretixplugins/badges/index.html:6
msgid "Badges"
-msgstr ""
+msgstr "Kulkukortit"
#: pretix/plugins/badges/apps.py:38
msgid ""
@@ -26222,57 +26226,63 @@ msgid ""
"download the badges in the backend or automatically print them with our "
"check-in apps."
msgstr ""
+"Luo automaattisesti kulkukortteja tai nimilappuja osallistujillesi. Voit "
+"ladata ne taustaohjelmassa tai tulostaa ne automaattisesti "
+"sisäänkirjautumissovelluksillamme."
#: pretix/plugins/badges/exporters.py:89
msgid "One badge per page"
-msgstr ""
+msgstr "Yksi Kulkukortti per sivu"
#: pretix/plugins/badges/exporters.py:97
msgid "4 landscape A6 pages on one A4 page"
-msgstr ""
+msgstr "4 vaakasuuntaista A6-sivua yhdellä A4-sivulla"
#: pretix/plugins/badges/exporters.py:105
msgid "4 portrait A6 pages on one A4 page"
-msgstr ""
+msgstr "4 pystysuuntaista A6-sivua yhdellä A4-sivulla"
#: pretix/plugins/badges/exporters.py:113
msgid "8 landscape A7 pages on one A4 page"
-msgstr ""
+msgstr "8 vaakasuuntaista A7-sivua yhdellä A4-sivulla"
#: pretix/plugins/badges/exporters.py:121
msgid "8 portrait A7 pages on one A4 page"
-msgstr ""
+msgstr "8 pystysuuntaista A7-sivua yhdellä A4-sivulla"
#: pretix/plugins/badges/exporters.py:353
msgid "None of the selected products is configured to print badges."
msgstr ""
+"Mitään valituista tuotteista ei ole määritetty tulostamaan kulkukortteja."
#: pretix/plugins/badges/exporters.py:421
msgid "Attendee badges"
-msgstr ""
+msgstr "Osallistujien kulkukortit"
#: pretix/plugins/badges/exporters.py:422
#: pretix/plugins/ticketoutputpdf/exporters.py:69
msgctxt "export_category"
msgid "PDF collections"
-msgstr ""
+msgstr "PDF-kokoelmat"
#: pretix/plugins/badges/exporters.py:423
msgid "Download all attendee badges as one large PDF for printing."
msgstr ""
+"Lataa kaikki osallistujien kulkukortit yhtenä suurena PDF-tiedostona "
+"tulostettavaksi."
#: pretix/plugins/badges/exporters.py:444
#: pretix/plugins/ticketoutputpdf/exporters.py:80
msgid "Include pending orders"
-msgstr ""
+msgstr "Sisällä odottavat tilaukset"
#: pretix/plugins/badges/exporters.py:449
msgid "Include add-on or bundled positions"
-msgstr ""
+msgstr "Sisällytä lisäosat tai niputetut paikat"
#: pretix/plugins/badges/exporters.py:454
msgid "Rendering option"
-msgstr ""
+msgstr "Renderöintivaihtoehto"
#: pretix/plugins/badges/exporters.py:459
msgid ""
@@ -26281,6 +26291,9 @@ msgid ""
"Please note that your individual badge layouts must already be in the "
"correct size."
msgstr ""
+"Tämän vaihtoehdon avulla voit kohdistaa useita merkkejä yhdelle sivulle, jos "
+"esimerkiksi haluat tulostaa tarraarkille tavallisella toimistotulostimella. "
+"Huomaa, että yksittäisten merkkiasettelujen on oltava jo oikean kokoisia."
#: pretix/plugins/badges/exporters.py:465
msgid "Start event date"
@@ -26288,7 +26301,7 @@ msgstr "Tapahtuman alkamispäivä"
#: pretix/plugins/badges/exporters.py:468
msgid "Only include tickets for dates on or after this date."
-msgstr ""
+msgstr "Sisällytä vain tämän päivämäärän tai sen jälkeisten päivien liput."
#: pretix/plugins/badges/exporters.py:472
msgid "End event date"
@@ -26312,7 +26325,7 @@ msgstr "Tilauksen päättymispäivä"
#: pretix/plugins/badges/exporters.py:489
msgid "Only include tickets for dates on or before this date."
-msgstr ""
+msgstr "Sisällytä vain tämän päivämäärän tai sitä aikaisempien päivien liput."
#: pretix/plugins/badges/exporters.py:493
#: pretix/plugins/checkinlists/exporters.py:117
@@ -26320,7 +26333,7 @@ msgstr ""
#: pretix/plugins/reports/exporters.py:677
#: pretix/plugins/ticketoutputpdf/exporters.py:92
msgid "Sort by"
-msgstr ""
+msgstr "Lajittele"
#: pretix/plugins/badges/exporters.py:661
#: pretix/plugins/ticketoutputpdf/exporters.py:242
@@ -26329,64 +26342,68 @@ msgid ""
"invalid values in your databases, such as answers to number questions which "
"are not a number."
msgstr ""
+"Tietojasi ei voitu muuntaa pyydetyllä tavalla. Tämä voi johtua "
+"tietokantojesi virheellisistä arvoista, kuten vastauksista "
+"numerokysymyksiin, jotka eivät ole numeroita."
#: pretix/plugins/badges/forms.py:33
msgid "Template"
-msgstr ""
+msgstr "Malli"
#: pretix/plugins/badges/forms.py:34
msgid ""
"You can modify the layout or change to a different page size in the next "
"step."
msgstr ""
+"Voit muokata asettelua tai vaihtaa toiseen sivukokoon seuraavassa vaiheessa."
#: pretix/plugins/badges/forms.py:51
msgid "(Do not print badges)"
-msgstr ""
+msgstr "(Älä tulosta kulkukortteja)"
#: pretix/plugins/badges/forms.py:84
#: pretix/plugins/badges/templates/pretixplugins/badges/edit.html:8
#: pretix/plugins/badges/templates/pretixplugins/badges/edit.html:15
msgid "Badge layout"
-msgstr ""
+msgstr "Kulkukortin layout"
#: pretix/plugins/badges/signals.py:176
msgid "Badge layout created."
-msgstr ""
+msgstr "Kulkukortin layout luotu."
#: pretix/plugins/badges/signals.py:177
msgid "Badge layout deleted."
-msgstr ""
+msgstr "Kulkukortin layout poistettu."
#: pretix/plugins/badges/signals.py:178
msgid "Badge layout changed."
-msgstr ""
+msgstr "Kulkukortin layout muutettu."
#: pretix/plugins/badges/signals.py:182
#, python-brace-format
msgid "Badge layout {val}"
-msgstr ""
+msgstr "Kulkukortin layout {val}"
#: pretix/plugins/badges/templates.py:83
msgid "A6 landscape"
-msgstr ""
+msgstr "A6 vaakataso"
#: pretix/plugins/badges/templates.py:88
msgid "A6 portrait"
-msgstr ""
+msgstr "A6 pystysuunta"
#: pretix/plugins/badges/templates.py:93
msgid "A7 landscape"
-msgstr ""
+msgstr "A7 vaakasuunta"
#: pretix/plugins/badges/templates.py:98
msgid "A7 portrait"
-msgstr ""
+msgstr "A7 pystysuunta"
#: pretix/plugins/badges/templates.py:104
#, python-brace-format
msgid "{width} x {height} mm butterfly badge"
-msgstr ""
+msgstr "{width} x {height} mm perhosmerkki"
#: pretix/plugins/badges/templates.py:203
#: pretix/plugins/badges/templates.py:208
@@ -26402,24 +26419,25 @@ msgstr ""
#: pretix/plugins/badges/templates.py:259
#, python-brace-format
msgid "{width} x {height} mm label"
-msgstr ""
+msgstr "{width} x {height} mm etiketti"
#: pretix/plugins/badges/templates/pretixplugins/badges/control_order_info.html:16
#: pretix/plugins/badges/templates/pretixplugins/badges/index.html:27
msgid "Print badges"
-msgstr ""
+msgstr "Tulosta kulkukortit"
#: pretix/plugins/badges/templates/pretixplugins/badges/delete.html:9
#, python-format
msgid ""
"Are you sure you want to delete the badge layout %(layout)s?"
msgstr ""
+"Haluatko varmasti poistaa kulkukortin layoutin %(layout)s?"
#: pretix/plugins/badges/templates/pretixplugins/badges/edit.html:6
#: pretix/plugins/badges/templates/pretixplugins/badges/edit.html:13
#, python-format
msgid "Badge layout: %(name)s"
-msgstr ""
+msgstr "Kulkukortti layout:%(name)s"
#: pretix/plugins/badges/templates/pretixplugins/badges/edit.html:26
msgid "Save & continue"
@@ -26427,34 +26445,34 @@ msgstr "Tallenna ja jatka"
#: pretix/plugins/badges/templates/pretixplugins/badges/index.html:10
msgid "You haven't created any badge layouts yet."
-msgstr ""
+msgstr "Et ole luonut vielä yhtään kulkukortin layouttia."
#: pretix/plugins/badges/templates/pretixplugins/badges/index.html:17
#: pretix/plugins/badges/templates/pretixplugins/badges/index.html:24
msgid "Create a new badge layout"
-msgstr ""
+msgstr "Luo uusi kulkukortin layout"
#: pretix/plugins/badges/templates/pretixplugins/badges/index.html:63
#: pretix/plugins/ticketoutputpdf/templates/pretixplugins/ticketoutputpdf/index.html:60
msgid "Make default"
-msgstr ""
+msgstr "Aseta oletusarvoksi"
#: pretix/plugins/badges/views.py:89
msgid "The new badge layout has been created."
-msgstr ""
+msgstr "Uusi kulkukortin layout on luotu."
#: pretix/plugins/badges/views.py:150 pretix/plugins/badges/views.py:180
#: pretix/plugins/badges/views.py:210
msgid "The requested badge layout does not exist."
-msgstr ""
+msgstr "Pyydettyä nimilapun layoutia ei ole olemassa."
#: pretix/plugins/badges/views.py:192
msgid "The selected badge layout been deleted."
-msgstr ""
+msgstr "Valittu kulkukortin layout on poistettu."
#: pretix/plugins/badges/views.py:214
msgid "Badge layout: {}"
-msgstr ""
+msgstr "Kulkukortin layout: {}"
#: pretix/plugins/banktransfer/apps.py:31
#: pretix/plugins/banktransfer/apps.py:34
@@ -26462,18 +26480,20 @@ msgstr ""
#: pretix/plugins/banktransfer/signals.py:50
#: pretix/plugins/banktransfer/signals.py:87
msgid "Bank transfer"
-msgstr ""
+msgstr "Tilisiirto"
#: pretix/plugins/banktransfer/apps.py:39
msgid ""
"Accept payments from your customers using classical wire transfer methods "
"with your own bank account."
msgstr ""
+"Hyväksy maksut asiakkailta perinteisillä pankkisiirtotavoilla omalla "
+"pankkitililläsi."
#: pretix/plugins/banktransfer/apps.py:53
msgid ""
"Install the python package 'chardet' for better CSV import capabilities."
-msgstr ""
+msgstr "Asenna python-paketti chardet parantaaksesi CSV-tuontiominaisuuksia."
#: pretix/plugins/banktransfer/payment.py:75
msgid ""
@@ -26483,18 +26503,22 @@ msgid ""
"import a digital bank statement in order to give pretix the required "
"information."
msgstr ""
+"Olen ymmärtänyt, että ihmiset maksavat lipun hinnan suoraan pankkitililleni, "
+"eikä pretix voi automaattisesti tietää mitä maksuja on saapunut. Siksi joko "
+"merkitsen maksut suoritetuiksi manuaalisesti tai tuon säännöllisesti "
+"digitaalisen tiliotteen antaakseni tarvittavat tiedot."
#: pretix/plugins/banktransfer/payment.py:82
msgid "Bank account type"
-msgstr ""
+msgstr "Pankkitili tyyppi"
#: pretix/plugins/banktransfer/payment.py:85
msgid "SEPA bank account"
-msgstr ""
+msgstr "SEPA-pankkitili"
#: pretix/plugins/banktransfer/payment.py:86
msgid "Other bank account"
-msgstr ""
+msgstr "Muu pankkitili"
#: pretix/plugins/banktransfer/payment.py:91
msgid "Name of account holder"
From 4d6b63e1c289e15137cb7285341e6bb59c713519 Mon Sep 17 00:00:00 2001
From: Karoliina Grohn
Date: Sat, 8 Feb 2025 17:07:14 +0000
Subject: [PATCH 38/99] Translations: Update Finnish
Currently translated at 54.3% (3177 of 5846 strings)
Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/fi/
powered by weblate
---
src/pretix/locale/fi/LC_MESSAGES/django.po | 201 +++++++++++++++------
1 file changed, 141 insertions(+), 60 deletions(-)
diff --git a/src/pretix/locale/fi/LC_MESSAGES/django.po b/src/pretix/locale/fi/LC_MESSAGES/django.po
index 2942ffaf51..9ea842c5b0 100644
--- a/src/pretix/locale/fi/LC_MESSAGES/django.po
+++ b/src/pretix/locale/fi/LC_MESSAGES/django.po
@@ -9,7 +9,7 @@ msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-01-29 13:18+0000\n"
"PO-Revision-Date: 2025-02-08 22:16+0000\n"
-"Last-Translator: Hannu Kaakinen \n"
+"Last-Translator: Karoliina Grohn \n"
"Language-Team: Finnish \n"
"Language: fi\n"
@@ -26522,13 +26522,15 @@ msgstr "Muu pankkitili"
#: pretix/plugins/banktransfer/payment.py:91
msgid "Name of account holder"
-msgstr ""
+msgstr "Tilin omistajan nimi"
#: pretix/plugins/banktransfer/payment.py:93
msgid ""
"Please note: special characters other than letters, numbers, and some "
"punctuation can cause problems with some banks."
msgstr ""
+"Huomioithan: erikoismerkit lukuunottamatta kirjaimia, numeroita ja joitakin "
+"välimerkkejä saattavat aiheuttaa ongelmia joissakin pankeissa."
#: pretix/plugins/banktransfer/payment.py:103
#: pretix/plugins/banktransfer/payment.py:466
@@ -26538,7 +26540,7 @@ msgstr ""
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/import_assign.html:50
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/pending.html:24
msgid "IBAN"
-msgstr ""
+msgstr "IBAN"
#: pretix/plugins/banktransfer/payment.py:113
#: pretix/plugins/banktransfer/payment.py:467
@@ -26546,16 +26548,17 @@ msgstr ""
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/checkout_payment_form.html:16
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/import_assign.html:66
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/pending.html:25
+#, fuzzy
msgid "BIC"
-msgstr ""
+msgstr "BIC"
#: pretix/plugins/banktransfer/payment.py:123
msgid "Name of bank"
-msgstr ""
+msgstr "Pankin nimi"
#: pretix/plugins/banktransfer/payment.py:133
msgid "Bank account details"
-msgstr ""
+msgstr "Tilitiedot"
#: pretix/plugins/banktransfer/payment.py:136
msgid ""
@@ -26563,6 +26566,9 @@ msgid ""
"transfer payment. If you have lots of international customers, they might "
"need your full address and your bank's full address."
msgstr ""
+"Sisällytä kaikki, mitä asiakkaasi saattavat tarvita pankkisiirtomaksun "
+"lähettämiseen. Jos sinulla on paljon kansainvälisiä asiakkaita, he saattavat "
+"tarvita osoitteesi ja pankkisi osoitteen kokonaisuudessaan."
#: pretix/plugins/banktransfer/payment.py:142
msgid ""
@@ -26570,36 +26576,41 @@ msgid ""
"everything that your customers need to transfer the money, e.g. account "
"numbers, routing numbers, addresses, etc."
msgstr ""
+"SEPA-tilien osalta voit jättää tämän kohdan tyhjäksi. Muussa tapauksessa "
+"lisää kaikki, mitä asiakkaasi tarvitsevat rahansiirtoa varten, esim. "
+"tilinumerot, reititysnumerot, osoitteet jne."
#: pretix/plugins/banktransfer/payment.py:161
msgid "Do not include hyphens in the payment reference."
-msgstr ""
+msgstr "Maksuviitteessä ei saa olla väliviivoja."
#: pretix/plugins/banktransfer/payment.py:162
msgid "This is required in some countries."
-msgstr ""
+msgstr "Tämä vaaditaan joissakin maissa."
#: pretix/plugins/banktransfer/payment.py:166
msgid "Include invoice number in the payment reference."
-msgstr ""
+msgstr "Sisällytä laskun numero maksuviitteeseen."
#: pretix/plugins/banktransfer/payment.py:170
msgid "Prefix for the payment reference"
-msgstr ""
+msgstr "Maksuviitteen etuliite"
#: pretix/plugins/banktransfer/payment.py:174
msgid "Additional text to show on pending orders"
-msgstr ""
+msgstr "Vireillä olevissa tilauksissa näytettävä lisäteksti"
#: pretix/plugins/banktransfer/payment.py:175
msgid ""
"This text will be shown on the order confirmation page for pending orders in "
"addition to the standard text."
msgstr ""
+"Tämä teksti näytetään tilauksen vahvistussivulla vireillä olevien tilausten "
+"vakiotekstin lisäksi."
#: pretix/plugins/banktransfer/payment.py:184
msgid "IBAN blocklist for refunds"
-msgstr ""
+msgstr "IBAN-estoluettelo palautuksia varten"
#: pretix/plugins/banktransfer/payment.py:187
msgid ""
@@ -26611,12 +26622,22 @@ msgid ""
"can e.g. ban DE0012345 to ban all German IBANs with the bank identifier "
"starting with 12345."
msgstr ""
+"Laita yksi IBAN tai IBAN-etuliite riviä kohti. Järjestelmä ei yritä lähettää "
+"palautuksia mihinkään näistä IBAN-tunnuksista. Hyödyllinen esim. jos saat "
+"paljon ”välitettyjä maksuja” kolmannen osapuolen maksupalveluntarjoajalta. "
+"Voit myös luetella maakoodeja, kuten ”GB”, jos et halua koskaan lähettää "
+"palautuksia tietyn maan IBAN-tilinumeroihin. Tarkistusmerkit jätetään "
+"huomiotta vertailussa, joten voit esimerkiksi kieltää DE0012345:n "
+"kieltämällä kaikki saksalaiset IBAN-tunnukset, joiden pankkitunnus alkaa "
+"12345:llä."
#: pretix/plugins/banktransfer/payment.py:218
msgid ""
"Allow users to enter an additional email address that the invoice will be "
"sent to."
msgstr ""
+"Anna käyttäjien syöttää ylimääräinen sähköpostiosoite, johon lasku "
+"lähetetään."
#: pretix/plugins/banktransfer/payment.py:220
msgid ""
@@ -26625,6 +26646,10 @@ msgid ""
"sent to this email address, subsequent invoice corrections will not be sent "
"automatically. Only the invoice will be sent, no additional information."
msgstr ""
+"Tämä edellyttää, että laskun luontiasetukset sallivat laskun luomisen heti "
+"maksutavan valinnan jälkeen. Vain lasku lähetetään tähän "
+"sähköpostiosoitteeseen, myöhempiä laskun korjauksia ei lähetetä "
+"automaattisesti. Vain lasku lähetetään, ei lisätietoja."
#: pretix/plugins/banktransfer/payment.py:229
msgid "Invoice email subject"
@@ -26643,19 +26668,21 @@ msgid ""
"Only allow choosing this payment provider for customers who enter an invoice "
"address and select \"Business or institutional customer\"."
msgstr ""
+"Salli tämän palveluntarjoajan valitseminen vain asiakkaille, jotka antavat "
+"laskutusosoitteen ja valitsevat vaihtoehdon ”Yritys- tai yhteisöasiakas”."
#: pretix/plugins/banktransfer/payment.py:288
msgid "Please fill out your bank account details."
-msgstr ""
+msgstr "Ole hyvä ja anna tilitietosi."
#: pretix/plugins/banktransfer/payment.py:292
msgid "Please enter your bank account details."
-msgstr ""
+msgstr "Ole hyvä ja kirjoita tilitietosi."
#: pretix/plugins/banktransfer/payment.py:332
msgid ""
"Please additionally send my invoice directly to our accounting department"
-msgstr ""
+msgstr "Ole hyvä ja lähetä laskuni lisäksi suoraan tilitoimistoomme"
#: pretix/plugins/banktransfer/payment.py:336
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/pending.html:132
@@ -26667,11 +26694,13 @@ msgid ""
"The invoice recipient will receive an email which includes the invoice and "
"your email address so they know who placed this order."
msgstr ""
+"Laskun vastaanottaja saa sähköpostiviestin, joka sisältää laskun ja "
+"sähköpostiosoitteesi, jotta hän tietää, kuka teki tilauksen."
#: pretix/plugins/banktransfer/payment.py:457
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/pending.html:15
msgid "Please transfer the full amount to the following bank account:"
-msgstr ""
+msgstr "Ole hyvä ja siirrä koko summa seuraavalle pankkitilille:"
#: pretix/plugins/banktransfer/payment.py:465
#: pretix/plugins/banktransfer/payment.py:654
@@ -26683,7 +26712,7 @@ msgstr ""
#: pretix/plugins/stripe/templates/pretixplugins/stripe/checkout_payment_confirm.html:32
#: pretix/plugins/stripe/templates/pretixplugins/stripe/checkout_payment_confirm.html:35
msgid "Account holder"
-msgstr ""
+msgstr "Tilinomistaja"
#: pretix/plugins/banktransfer/payment.py:468
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/checkout_confirm.html:17
@@ -26695,20 +26724,20 @@ msgstr ""
#: pretix/plugins/stripe/templates/pretixplugins/stripe/control.html:47
#: pretix/plugins/stripe/templates/pretixplugins/stripe/control.html:55
msgid "Bank"
-msgstr ""
+msgstr "Pankki"
#: pretix/plugins/banktransfer/payment.py:548
msgid "Invalid IBAN/BIC"
-msgstr ""
+msgstr "Viallinen IBAN/BIC"
#: pretix/plugins/banktransfer/payment.py:624
#, python-brace-format
msgid "Bank account {iban}"
-msgstr ""
+msgstr "Pankkitili {iban}"
#: pretix/plugins/banktransfer/payment.py:640
msgid "Can only create a bank transfer refund from an existing payment."
-msgstr ""
+msgstr "Voit luoda pankkisiirtopalautuksen vain olemassa olevasta maksusta."
#: pretix/plugins/banktransfer/payment.py:660
msgid "BIC (optional)"
@@ -26725,7 +26754,7 @@ msgstr "Epäkelpo syöte, katso tiedot alta."
#: pretix/plugins/paypal2/templates/pretixplugins/paypal2/control.html:12
#: pretix/plugins/paypal2/templates/pretixplugins/paypal2/control_legacy.html:9
msgid "Payer"
-msgstr ""
+msgstr "Maksaja"
#: pretix/plugins/banktransfer/refund_export.py:93
msgid "Refund"
@@ -26738,7 +26767,7 @@ msgstr "Hyvitys"
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/import_base_organizer.html:4
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/import_base_organizer.html:7
msgid "Import bank data"
-msgstr ""
+msgstr "Tuo pankkitiedot"
#: pretix/plugins/banktransfer/signals.py:66
#: pretix/plugins/banktransfer/signals.py:102
@@ -26747,7 +26776,7 @@ msgstr "Vie hyvitykset"
#: pretix/plugins/banktransfer/signals.py:126
msgid "The invoice was sent to the designated email address."
-msgstr ""
+msgstr "Lasku lähetettiin annettuun sähköpostiosoitteeseen."
#: pretix/plugins/banktransfer/signals.py:132
#, python-brace-format
@@ -26766,20 +26795,28 @@ msgid ""
"\n"
"Your {event} team"
msgstr ""
+"Hei,\n"
+"\n"
+"Sait tämän viestin, koska {event} tilaus tehtiin osoittesta {order_email} "
+"ja meitä on pyydetty lähettämään lasku sinulle.\n"
+"\n"
+"Ystävällisin terveisin, \n"
+"\n"
+" {event} tiimi"
#: pretix/plugins/banktransfer/tasks.py:171
msgid "Automatic split to multiple orders not possible."
-msgstr ""
+msgstr "Useampien tilausten automaattinen jakaminen ei mahdollinen."
#: pretix/plugins/banktransfer/tasks.py:187
msgid "The order has already been canceled."
-msgstr ""
+msgstr "Tilaus on jo peruttu."
#: pretix/plugins/banktransfer/tasks.py:193
#: pretix/plugins/banktransfer/views.py:106
#: pretix/plugins/banktransfer/views.py:193
msgid "Currencies do not match."
-msgstr ""
+msgstr "Valuutat eivät täsmää."
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/checkout_confirm.html:6
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/checkout_payment_form.html:6
@@ -26787,6 +26824,8 @@ msgid ""
"After completing your purchase, we will ask you to transfer the money to the "
"following bank account, using a personal reference code:"
msgstr ""
+"Kun saat ostoksesi valmiiksi, pyydämme sinua siirtämään rahat seuraavalle "
+"pankkitilille henkilökohtaista viitekoodia käyttäen:"
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/checkout_confirm.html:11
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/checkout_payment_form.html:11
@@ -26794,12 +26833,14 @@ msgid ""
"Please do not yet start a payment. We'll assign you a personal reference "
"code after you completed the order."
msgstr ""
+"Älä alota vielä maksua. Annamme sinulle henkilökohtaisen viitenumeron, kun "
+"tilauksesi on valmis."
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/checkout_confirm.html:26
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/checkout_payment_form.html:26
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/pending.html:39
msgid "Reference code (important):"
-msgstr ""
+msgstr "Viitenumero (tärkeä):"
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/checkout_confirm.html:31
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/checkout_payment_form.html:31
@@ -26807,6 +26848,8 @@ msgid ""
"We will assign you a personal reference code to use after you completed the "
"order."
msgstr ""
+"Annamme sinulle henkilökohtaisen viitekoodin, jota voit käyttää tilauksen "
+"tekemisen jälkeen."
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/checkout_confirm.html:36
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/checkout_payment_form.html:36
@@ -26814,11 +26857,13 @@ msgid ""
"After completing your purchase, we will ask you to transfer the money to our "
"bank account, using a personal reference code."
msgstr ""
+"Pyydämme sinua siirtämään rahat pankkitilillemme henkilökohtaista "
+"viitenumeroa käyttäen, kun tilauksesi on valmis."
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/checkout_confirm.html:43
#, python-format
msgid "We will send a copy of your invoice directly to %(recipient)s."
-msgstr ""
+msgstr "Lähetämme kopion laskustasi suoraan %(recipient)s."
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/control.html:6
msgid "Send invoice to"
@@ -26834,7 +26879,7 @@ msgstr "Siirron summa"
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/control.html:38
msgid "Reference code"
-msgstr ""
+msgstr "Viitenumero"
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/import_assign.html:4
msgid ""
@@ -26842,6 +26887,9 @@ msgid ""
"are aligned. Please help us by selecting which column contain what kind of "
"data."
msgstr ""
+"Emme ole pystyneet määrittämään automaattisesti, miten tiedostosi sarakkeet "
+"on kohdistettu. Auta meitä valitsemalla, mitkä sarakkeet sisältävät "
+"millaisia tietoja."
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/import_assign.html:95
msgid ""
@@ -32315,11 +32363,12 @@ msgstr ""
#: pretix/presale/views/cart.py:439
msgid "We applied the voucher to as many products in your cart as we could."
msgstr ""
+"Sovelsimme kuponkia niin moneen tuotteeseen ostoskorissasi kuin pystyimme."
#: pretix/presale/views/cart.py:458 pretix/presale/views/cart.py:466
msgid ""
"The gift card has been saved to your cart. Please continue your checkout."
-msgstr ""
+msgstr "Lahjakortti on tallennettu ostoskoriisi. Ole hyvä ja jatka maksamaan."
#: pretix/presale/views/cart.py:502
msgid "Your cart has been updated."
@@ -32336,18 +32385,20 @@ msgstr "Tuotteet lisätty ostoskoriin onnistuneesti."
#: pretix/presale/views/cart.py:570 pretix/presale/views/event.py:536
#: pretix/presale/views/widget.py:377
msgid "Tickets for this event cannot be purchased on this sales channel."
-msgstr ""
+msgstr "Tämän tapahtuman lippuja ei voi ostaa tältä ostokanavalta."
#: pretix/presale/views/cart.py:709
msgid ""
"The gift card has been saved to your cart. Please now select the products "
"you want to purchase."
msgstr ""
+"Lahjakortti on tallennettu ostoskoriisi. Ole hyvä ja valitse tuotteet, jotka "
+"haluat ostaa."
#: pretix/presale/views/cart.py:737
msgctxt "subevent"
msgid "We were unable to find the specified date."
-msgstr ""
+msgstr "Emme pystyneet löytämään määriteltyä päivämäärää."
#: pretix/presale/views/checkout.py:55
msgid "Your cart is empty"
@@ -32362,20 +32413,25 @@ msgid ""
"Your account has been created. Please follow the link in the email we sent "
"you to activate your account and choose a password."
msgstr ""
+"Tilisi on luotu. Ole hyvä ja seuraa sähköpostiisi lähetettyä linkkiä tilisi "
+"aktivointiin ja salasanan valintaan."
#: pretix/presale/views/customer.py:268 pretix/presale/views/customer.py:271
#: pretix/presale/views/customer.py:607 pretix/presale/views/customer.py:613
msgid "You clicked an invalid link."
-msgstr ""
+msgstr "Valitsit virheellisen linkin."
#: pretix/presale/views/customer.py:291
msgid "Your new password has been set! You can now use it to log in."
msgstr ""
+"Uusi salasanasi on asetettu! Voit nyt käyttää sitä sisäänkirjautumiseen."
#: pretix/presale/views/customer.py:331
msgid ""
"We've sent you an email with further instructions on resetting your password."
msgstr ""
+"Olemme lähettäneet sinulle sähköpostin, jossa on tarkemmat ohjeet salasanan "
+"palauttamiseen."
#: pretix/presale/views/customer.py:575
msgid ""
@@ -32383,12 +32439,17 @@ msgid ""
"your email address. The email address of your account will be changed as "
"soon as you click that link."
msgstr ""
+"Muutokset on tallennettu. Olemme lähettäneet sinulle sähköpostin, jossa on "
+"linkki sähköpostiosoitteesi päivittämiseen. Tilisi sähköposti vaihtuu heti, "
+"kun avaat linkin."
#: pretix/presale/views/customer.py:624
msgid ""
"Your email address has not been updated since the address is already in use "
"for another customer account."
msgstr ""
+"Sähköpostiosoitettasi ei ole päivitetty, koska osoite on jo toisen "
+"asiakastilin käytössä."
#: pretix/presale/views/customer.py:627
msgid "Your email address has been updated."
@@ -32400,25 +32461,27 @@ msgid ""
"We were unable to use your login since the email address {email} is already "
"used for a different account in this system."
msgstr ""
+"Emme pystyneet käyttämään sisäänkirjautumistasi, koska sähköpostiosoite "
+"{email} on jo käytössä eri tilillä tässä systeemissä."
#: pretix/presale/views/event.py:895
msgid "Unknown event code or not authorized to access this event."
-msgstr ""
+msgstr "Tuntematon tapahtumakoodi tai ei oikeutta päästä tapahtumaan."
#: pretix/presale/views/event.py:902
msgctxt "subevent"
msgid "No date selected."
-msgstr ""
+msgstr "Päivämäärää ei ole valittu."
#: pretix/presale/views/event.py:905
msgctxt "subevent"
msgid "Unknown date selected."
-msgstr ""
+msgstr "Tuntematon päivämäärä."
#: pretix/presale/views/event.py:930 pretix/presale/views/event.py:938
#: pretix/presale/views/event.py:941
msgid "Please go back and try again."
-msgstr ""
+msgstr "Palaa takaisin ja yritä uudelleen."
#: pretix/presale/views/event.py:954
msgid "Fake date time"
@@ -32434,29 +32497,29 @@ msgstr "Tämä ominaisuus on käytettävissä vain testitilassa."
#: pretix/presale/views/event.py:985
msgid "Time machine disabled!"
-msgstr ""
+msgstr "Aikakone poissa käytöstä!"
#: pretix/presale/views/order.py:367 pretix/presale/views/order.py:432
#: pretix/presale/views/order.py:513
msgid "The payment for this order cannot be continued."
-msgstr ""
+msgstr "Tämän tilauksen maksua ei voida jatkaa."
#: pretix/presale/views/order.py:372 pretix/presale/views/order.py:441
#: pretix/presale/views/order.py:522 pretix/presale/views/order.py:564
msgid "The payment is too late to be accepted."
-msgstr ""
+msgstr "Maksu on liian myöhässä hyväksyttäväksi."
#: pretix/presale/views/order.py:461
msgid "An invoice has been generated."
-msgstr ""
+msgstr "Lasku on luotu."
#: pretix/presale/views/order.py:559
msgid "The payment method for this order cannot be changed."
-msgstr ""
+msgstr "Tämän tilauksen maksutapaa ei voi muuttaa."
#: pretix/presale/views/order.py:570
msgid "A payment is currently pending for this order."
-msgstr ""
+msgstr "Tämän tilauksen maksua käsitellään parhaillaan."
#: pretix/presale/views/order.py:851 pretix/presale/views/order.py:923
msgid "You cannot modify this order"
@@ -32497,33 +32560,35 @@ msgstr "Et tehnyt yhtään muutosta."
#: pretix/presale/views/order.py:1636
msgid "You may not change your order in a way that reduces the total price."
-msgstr ""
+msgstr "Tilausta ei voi muuttaa tavalla, joka pienentää loppusummaa."
#: pretix/presale/views/order.py:1638
msgid "You may only change your order in a way that increases the total price."
-msgstr ""
+msgstr "Tilausta voi muuttaa ainoastaan loppusummaa kasvattavalla tavalla."
#: pretix/presale/views/order.py:1640
msgid "You may not change your order in a way that changes the total price."
-msgstr ""
+msgstr "Tilausta ei voi muuttaa tavalla, joka vaikuttaa loppusummaan."
#: pretix/presale/views/order.py:1642
msgid "You may not change your order in a way that would require a refund."
-msgstr ""
+msgstr "Tilausta ei voi muuttaa tavalla, joka vaatisi hyvitystä."
#: pretix/presale/views/order.py:1650
msgid ""
"You may not change your order in a way that increases the total price since "
"payments are no longer being accepted for this event."
msgstr ""
+"Tilausta ei voi muuttaa loppusummaa korottavalla tavalla, koska tähän "
+"tapahtumaan ei enää hyväksytä maksuja."
#: pretix/presale/views/order.py:1665 pretix/presale/views/order.py:1696
msgid "You cannot change this order."
-msgstr ""
+msgstr "Tätä tilausta ei voi muuttaa."
#: pretix/presale/views/user.py:61
msgid "We had difficulties processing your input."
-msgstr ""
+msgstr "Meillä oli vaikeuksia tietojenne käsittelyssä."
#: pretix/presale/views/user.py:70
#, python-brace-format
@@ -32533,32 +32598,45 @@ msgid ""
"{number} hours. If the email did not arrive, please check your spam folder "
"and also double check that you used the correct email address."
msgstr ""
+"Jos antamasi sähköpostiosoite on voimassa ja lippu on tilattu sillä, olemme "
+"jo lähettäneet sinulle sähköpostiviestin, jossa on linkki lippuusi, "
+"viimeisen {number} tunnin aikana. Jos sähköposti ei ole saapunut, tarkista "
+"roskapostikansiosi. Tarkista myös, että olet käyttänyt oikeaa "
+"sähköpostiosoitetta."
#: pretix/presale/views/user.py:91
msgid "We have trouble sending emails right now, please check back later."
msgstr ""
+"Meillä on juuri nyt vaikeuksia sähköpostien lähettämisessä. Ole hyvä ja "
+"palaa asiaan myöhemmin."
#: pretix/presale/views/user.py:94
msgid ""
"If there were any orders by this user, they will receive an email with their "
"order codes."
msgstr ""
+"s tämä käyttäjä on tehnyt tilauksia, hän saa sähköpostiviestin, jossa on "
+"hänen tilauskoodinsa."
#: pretix/presale/views/waiting.py:127
msgid ""
"No ticket types are available for the waiting list, have a look at the "
"ticket shop instead."
msgstr ""
+"Odotuslistalle ei ole saatavilla lipputyyppejä, katso sen sijaan "
+"lippukaupasta."
#: pretix/presale/views/waiting.py:137 pretix/presale/views/waiting.py:161
msgid "Waiting lists are disabled for this event."
-msgstr ""
+msgstr "Odotuslistat eivät ole käytössä tässä tapahtumassa."
#: pretix/presale/views/waiting.py:173
msgid ""
"You cannot add yourself to the waiting list as this product is currently "
"available."
msgstr ""
+"Et voi lisätä itseäsi odotuslistalle, sillä tämä tuote on saatavissa tällä "
+"hetkellä."
#: pretix/presale/views/waiting.py:180
#, python-brace-format
@@ -32566,50 +32644,53 @@ msgid ""
"We've added you to the waiting list. We will send an email to {email} as "
"soon as this product gets available again."
msgstr ""
+"Olemme lisänneet sinut odotuslistalle. Lähetämme sähköpostin osoitteeseen "
+"{email} heti, kun tämä tuote on taas saatavilla."
#: pretix/presale/views/waiting.py:208
msgid "We could not find you on our waiting list."
-msgstr ""
+msgstr "Emme löytäneet sinua odotuslistalta."
#: pretix/presale/views/waiting.py:212
msgid ""
"Your waiting list spot is no longer valid or already used. There's nothing "
"more to do here."
msgstr ""
+"Paikkasi odotuslistalla ei ole enää voimassa tai se on jo käytetty. Emme voi "
+"tehdä muuta."
#: pretix/presale/views/waiting.py:222
msgid ""
"Thank you very much! We will assign your spot on the waiting list to someone "
"else."
-msgstr ""
+msgstr "Kiitos paljon! Annamme paikkasi odotuslistalla jollekulle toiselle."
#: pretix/presale/views/widget.py:372
msgid "This ticket shop is currently disabled."
-msgstr ""
+msgstr "Lippukauppa ei ole tällä hetkellä käytössä."
#: pretix/presale/views/widget.py:386
msgid "The selected date does not exist in this event series."
-msgstr ""
+msgstr "Valittu päivämäärä ei ole käytössä tässä tapahtumasarjassa."
#: pretix/presale/views/widget.py:449
#, python-format
msgid "from %(start_date)s"
-msgstr ""
+msgstr "alkaen %(start_date)s"
#: pretix/settings.py:789
msgid "User profile only"
-msgstr ""
+msgstr "Käyttäjäprofiili ainoastaan"
#: pretix/settings.py:790
msgid "Read access"
-msgstr ""
+msgstr "Lue käyttöoikeudet"
#: pretix/settings.py:791
msgid "Write access"
-msgstr ""
+msgstr "Kirjoita käyttöoikeudet"
#: pretix/settings.py:802
-#, fuzzy
msgid "Kosovo"
msgstr "Kosovo"
From 4323366ec38636947d2476af79348ccd0e48279b Mon Sep 17 00:00:00 2001
From: Hannu Kaakinen
Date: Sat, 8 Feb 2025 22:29:24 +0000
Subject: [PATCH 39/99] Translations: Update Finnish
Currently translated at 58.1% (3401 of 5846 strings)
Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/fi/
powered by weblate
---
src/pretix/locale/fi/LC_MESSAGES/django.po | 469 ++++++++++++++-------
1 file changed, 305 insertions(+), 164 deletions(-)
diff --git a/src/pretix/locale/fi/LC_MESSAGES/django.po b/src/pretix/locale/fi/LC_MESSAGES/django.po
index 9ea842c5b0..fecafce373 100644
--- a/src/pretix/locale/fi/LC_MESSAGES/django.po
+++ b/src/pretix/locale/fi/LC_MESSAGES/django.po
@@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-01-29 13:18+0000\n"
-"PO-Revision-Date: 2025-02-08 22:16+0000\n"
-"Last-Translator: Karoliina Grohn \n"
+"PO-Revision-Date: 2025-02-09 07:00+0000\n"
+"Last-Translator: Hannu Kaakinen \n"
"Language-Team: Finnish \n"
"Language: fi\n"
@@ -26895,17 +26895,19 @@ msgstr ""
msgid ""
"More data was uploaded but is not shown here. It will still be processed"
msgstr ""
+"Lisää tietoja ladattiin, mutta niitä ei näytetä tässä. Sitä käsitellään "
+"edelleen"
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/import_base.html:9
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/import_base_organizer.html:9
msgid "Import currently running…"
-msgstr ""
+msgstr "Tuonti on parhaillaan käynnissä…"
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/import_base.html:11
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/import_base_organizer.html:11
#, python-format
msgid "Last import: %(date)s"
-msgstr ""
+msgstr "Viimeisin tuonti: %(date)s"
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/import_form.html:8
#, python-format
@@ -26913,42 +26915,51 @@ msgid ""
"In the payment settings of your event, you set the %(date)s as the last date "
"of any payments. Therefore, you won't be able to mark any order as paid here."
msgstr ""
+"Tapahtuman maksuasetuksissa määrität %(date)s-arvon maksujen viimeiseksi "
+"päivämääräksi. Siksi et voi merkitä mitään tilausta maksetuksi täällä."
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/import_form.html:19
msgid ""
"This page allows you to upload bank statement files to process incoming "
"payments."
msgstr ""
+"Tällä sivulla voit ladata pankin tiliotetiedostoja saapuvien maksujen "
+"käsittelyä varten."
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/import_form.html:22
msgid ""
"Currently, this feature supports .csv files and files in the "
"MT940 format."
msgstr ""
+"Tällä hetkellä tämä ominaisuus tukee .csv tiedostoja ja "
+"tiedostoja MT940-muodossa."
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/import_form.html:29
#: pretix/plugins/banktransfer/views.py:561
msgid ""
"An import is currently being processed, please try again in a few minutes."
msgstr ""
+"Tuontia käsitellään parhaillaan, yritä uudelleen muutaman minuutin kuluttua."
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/import_form.html:51
msgid "Start upload"
-msgstr ""
+msgstr "Alota tiedoston lähetys"
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/import_form.html:61
msgid "Unresolved transactions"
-msgstr ""
+msgstr "Ratkaisemattomat tapahtumat"
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/import_form.html:66
msgid ""
"On this page, you can import banking data on a per-event level. You also "
"only see unmatched transactions imported directly for this event."
msgstr ""
+"Tällä sivulla voit tuoda pankkitietoja tapahtumakohtaisesti. Näet myös vain "
+"suoraan tähän tapahtumaan tuodut täsmäyttämättömät tapahtumat."
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/import_form.html:71
msgid "Go to organizer-level import"
-msgstr ""
+msgstr "Siirry järjestäjätason tuontiin"
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/import_form.html:78
msgid "Amount from"
@@ -26957,79 +26968,81 @@ msgstr "Summa alkaen"
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/import_form.html:80
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/import_form.html:86
msgid "up to"
-msgstr ""
+msgstr "tähän asti"
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/import_form.html:92
msgid "Clear"
-msgstr ""
+msgstr "Tyhjennä"
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/import_form.html:101
msgid "Discard all"
-msgstr ""
+msgstr "Hylkää kaikki"
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/import_form.html:113
msgid "Your search matched no transactions."
-msgstr ""
+msgstr "Hakusi ei löytänyt yhtään tapahtumaa."
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/job_detail.html:5
msgid "Import result"
-msgstr ""
+msgstr "Tuonnin tulos"
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/job_detail.html:12
msgid ""
"The result of your import is in progress. Please be patient while we process "
"the data …"
msgstr ""
+"Tuontisi tulos on käynnissä. Ole kärsivällinen, kun käsittelemme tietoja …"
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/job_detail.html:18
msgid "An internal error occurred during processing your data."
-msgstr ""
+msgstr "Tietojesi käsittelyssä tapahtui sisäinen virhe."
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/job_detail.html:19
msgid "Some transactions might be missing, please try to re-import the file."
-msgstr ""
+msgstr "Jotkin tapahtumat saattavat puuttua, yritä tuoda tiedosto uudelleen."
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/job_detail.html:23
msgid ""
"Your import did not contain any transactions that you did not import before."
-msgstr ""
+msgstr "Tuonti ei sisältänyt tapahtumia, joita et ole tuonut aiemmin."
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/job_detail.html:30
msgid "Orders marked as paid"
-msgstr ""
+msgstr "Maksetuiksi merkityt tilaukset"
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/job_detail.html:34
msgid "Invalid payments"
-msgstr ""
+msgstr "Kelpaamattomat maksut"
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/job_detail.html:38
msgid "Ignored payments"
-msgstr ""
+msgstr "Ohitetut maksut"
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/job_detail.html:44
msgid "Review invalid and ignored payments"
-msgstr ""
+msgstr "Virheellisten ja ohitettujen maksujen tarkistaminen"
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/pending.html:38
#: pretix/plugins/stripe/templates/pretixplugins/stripe/pending.html:27
msgid "Amount:"
-msgstr ""
+msgstr "Summa:"
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/pending.html:42
#: pretix/plugins/stripe/templates/pretixplugins/stripe/pending.html:30
msgid "There is no further action required on this website."
-msgstr ""
+msgstr "Tällä verkkosivustolla ei vaadita lisätoimia."
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/pending.html:43
#: pretix/plugins/stripe/templates/pretixplugins/stripe/pending.html:31
msgid "We will send you an email as soon as we received your payment."
msgstr ""
+"Lähetämme sinulle sähköpostiviestin heti, kun olemme vastaanottaneet maksusi."
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/pending.html:61
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/pending.html:72
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/pending.html:92
msgid "Scan the qr-code with your banking app"
-msgstr ""
+msgstr "Skannaa qr-koodi pankkisovelluksellasi"
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/pending.html:65
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/pending.html:75
@@ -27038,15 +27051,17 @@ msgid ""
"Scan this image with your banking app’s QR-Reader to start the payment "
"process."
msgstr ""
+"Skannaa tämä kuva pankkisovelluksesi QR-Readerilla aloittaaksesi "
+"maksuprosessin."
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/pending.html:95
msgid "Open BezahlCode in your banking app to start the payment process."
-msgstr ""
+msgstr "Avaa BezahlCode pankkisovelluksessasi aloittaaksesi maksuprosessin."
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/pending.html:112
#, python-format
msgid "At your request, we sent the invoice directly to %(recipient)s."
-msgstr ""
+msgstr "Pyynnöstäsi lähetimme laskun suoraan vastaanottajalle: %(recipient)s."
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/pending.html:117
msgid "Send again or somewhere else"
@@ -27057,6 +27072,8 @@ msgid ""
"To send the invoice directly to your accounting department, please enter "
"their email address:"
msgstr ""
+"Jos haluat lähettää laskun suoraan kirjanpito-osastollesi, kirjoita heidän "
+"sähköpostiosoitteensa:"
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/pending.html:139
msgid "Send invoice via email"
@@ -27066,7 +27083,7 @@ msgstr "Lähetä lasku sähköpostitse"
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/refund_export.html:7
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/sepa_export.html:7
msgid "Export bank transfer refunds"
-msgstr ""
+msgstr "Vientipankkisiirtojen palautukset"
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/refund_export.html:9
#, python-format
@@ -27074,28 +27091,31 @@ msgid ""
"%(num_new)s Bank transfer refunds have been placed and are "
"not yet part of an export."
msgstr ""
+"%(num_new)s Pankkisiirtopalautukset on asetettu, eivätkä "
+"ne ole vielä osa vientiä."
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/refund_export.html:15
msgid "In test mode, your exports will only contain test mode orders."
-msgstr ""
+msgstr "Testitilassa vientisi sisältävät vain testitilan tilauksia."
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/refund_export.html:19
msgid ""
"If you want, you can now also create these exports for multiple events "
"combined."
msgstr ""
+"Halutessasi voit nyt myös luoda nämä viennit useille tapahtumille yhteensä."
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/refund_export.html:22
msgid "Go to organizer-level exports"
-msgstr ""
+msgstr "Siirry järjestäjätason vienteihin"
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/refund_export.html:32
msgid "Create new export file"
-msgstr ""
+msgstr "Luo uusi vientitiedosto"
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/refund_export.html:38
msgid "Aggregate transactions to the same bank account"
-msgstr ""
+msgstr "Tapahtumien yhdistäminen samalle pankkitilille"
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/refund_export.html:43
msgid ""
@@ -27106,10 +27126,15 @@ msgid ""
"refunds.\n"
" "
msgstr ""
+"\n"
+" Huomaa, että palautukset merkitään tehdyiksi, kun vienti "
+"on luotu.\n"
+" Varmista, että lataat viennin ja suoritat palautukset.\n"
+" "
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/refund_export.html:50
msgid "Exported files"
-msgstr ""
+msgstr "Viedyt tiedostot"
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/refund_export.html:55
msgid "Export date"
@@ -27117,7 +27142,7 @@ msgstr "Vie päivämäärä"
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/refund_export.html:56
msgid "Number of orders"
-msgstr ""
+msgstr "Tilausten määrä"
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/refund_export.html:80
msgid "not downloaded"
@@ -27126,12 +27151,12 @@ msgstr "ei ladattu"
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/refund_export.html:85
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/refund_export.html:96
msgid "Download CSV"
-msgstr ""
+msgstr "Lataa CSV"
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/refund_export.html:90
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/refund_export.html:101
msgid "SEPA XML"
-msgstr ""
+msgstr "SEPA XML"
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/refund_export.html:110
msgid "No exports have been created yet."
@@ -27139,7 +27164,7 @@ msgstr "Vientejä ei ole vielä tehty."
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/sepa_export.html:10
msgid "Export SEPA xml"
-msgstr ""
+msgstr "Vie SEPA xml"
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/sepa_export.html:13
#, python-format
@@ -27150,34 +27175,38 @@ msgid_plural ""
"You are trying to download a refund export from %(date)s with %(cnt)s order "
"and a total of %(sum)s."
msgstr[0] ""
+"Yrität ladata hyvitysvientiä %(date)s:stä yhdellä tilauksella ja yhteensä "
+"%(sum)s:lla."
msgstr[1] ""
+"Yrität ladata hyvitysvientiä %(date)s:stä %(cnt)s-tilauksella ja yhteensä "
+"%(sum)s.:llä."
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/sepa_export.html:23
msgid ""
"Please state from which bank account the refunds should be transferred from."
-msgstr ""
+msgstr "Ilmoita, miltä pankkitililtä hyvitykset siirretään."
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/sepa_export.html:34
msgid "Download"
-msgstr ""
+msgstr "Lataa"
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/transaction_list.html:12
msgid "Payer and reference"
-msgstr ""
+msgstr "Maksaja ja viite"
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/transaction_list.html:25
msgid "Accept anyway"
-msgstr ""
+msgstr "Hyväksy kuitenkin"
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/transaction_list.html:31
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/transaction_list.html:44
msgid "Assign to order"
-msgstr ""
+msgstr "Määritä tilaukseen"
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/transaction_list.html:37
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/transaction_list.html:49
msgid "Retry"
-msgstr ""
+msgstr "Yritä uudelleen"
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/transaction_list.html:80
msgid "Comment:"
@@ -27185,96 +27214,104 @@ msgstr "Kommentti:"
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/transaction_list.html:98
msgid "No order code detected"
-msgstr ""
+msgstr "Tilauskoodia ei havaittu"
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/transaction_list.html:100
msgid "Invalid for this order"
-msgstr ""
+msgstr "Ei kelpaa tähän tilaukseen"
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/transaction_list.html:102
msgid "Error while processing"
-msgstr ""
+msgstr "Virhe käsittelyn aikana"
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/transaction_list.html:104
msgid "The order is already marked as paid"
-msgstr ""
+msgstr "Tilaus on jo merkitty maksetuksi"
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/transaction_list.html:106
msgid "Order already paid"
-msgstr ""
+msgstr "Tilaus on jo maksettu"
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/transaction_list.html:123
msgid "Discard"
-msgstr ""
+msgstr "Hylkää"
#: pretix/plugins/banktransfer/views.py:146
msgid ""
"Negative amount but refund can't be logged, please create manual refund "
"first."
msgstr ""
+"Negatiivinen summa, mutta hyvitystä ei voi kirjata, luo ensin manuaalinen "
+"hyvitys."
#: pretix/plugins/banktransfer/views.py:172
msgid "Problem sending email."
-msgstr ""
+msgstr "Ongelma sähköpostin lähettämisessä."
#: pretix/plugins/banktransfer/views.py:198
msgid "Unknown order code"
-msgstr ""
+msgstr "Tuntematon tilauskoodi"
#: pretix/plugins/banktransfer/views.py:355
msgid "Search text"
-msgstr ""
+msgstr "Hae tekstiä"
#: pretix/plugins/banktransfer/views.py:356
msgid "min"
-msgstr ""
+msgstr "minimi"
#: pretix/plugins/banktransfer/views.py:357
msgid "max"
-msgstr ""
+msgstr "maximi"
#: pretix/plugins/banktransfer/views.py:366
msgid "Filter form is not valid."
-msgstr ""
+msgstr "Suodatinlomake ei ole voimassa."
#: pretix/plugins/banktransfer/views.py:409
msgid "All unresolved transactions have been discarded."
-msgstr ""
+msgstr "Kaikki ratkaisemattomat tapahtumat on hylätty."
#: pretix/plugins/banktransfer/views.py:429
msgid "You must choose a file to import."
-msgstr ""
+msgstr "Sinun on valittava tuotava tiedosto."
#: pretix/plugins/banktransfer/views.py:433
msgid ""
"We were unable to detect the file type of this import. Please contact "
"support for help."
msgstr ""
+"Emme pystyneet tunnistamaan tämän tuonnin tiedostotyyppiä. Ota yhteyttä "
+"asiakaspalveluun saadaksesi apua."
#: pretix/plugins/banktransfer/views.py:446
#: pretix/plugins/banktransfer/views.py:495
msgid "We were unable to process your input."
-msgstr ""
+msgstr "Emme pystyneet käsittelemään syötettäsi."
#: pretix/plugins/banktransfer/views.py:460
msgid ""
"I'm sorry, but we were unable to import this CSV file. Please contact "
"support for help."
msgstr ""
+"Olen pahoillani, mutta emme pystyneet tuomaan tätä CSV-tiedostoa. Ota "
+"yhteyttä asiakaspalveluun saadaksesi apua."
#: pretix/plugins/banktransfer/views.py:465
msgid ""
"I'm sorry, but we detected this file as empty. Please contact support for "
"help."
msgstr ""
+"Olen pahoillani, mutta havaitsimme tämän tiedoston olevan tyhjä. Ota "
+"yhteyttä asiakaspalveluun saadaksesi apua."
#: pretix/plugins/banktransfer/views.py:485
msgid "Invalid input data."
-msgstr ""
+msgstr "Virheelliset syöttötiedot."
#: pretix/plugins/banktransfer/views.py:489
msgid "You need to select the column containing the payment reference."
-msgstr ""
+msgstr "Sinun on valittava sarake, joka sisältää maksuviitteen."
#: pretix/plugins/banktransfer/views.py:570
msgid "No currency has been selected."
@@ -27286,10 +27323,12 @@ msgid ""
"We could not find bank account information for the refund {refund_id}. It "
"was marked as failed."
msgstr ""
+"Emme löytäneet pankkitilin tietoja palautusta varten {refund_id}. Se "
+"merkittiin epäonnistuneeksi."
#: pretix/plugins/banktransfer/views.py:751
msgid "No valid orders have been found."
-msgstr ""
+msgstr "Voimassa olevia tilauksia ei ole löydetty."
#: pretix/plugins/banktransfer/views.py:905 pretix/presale/checkoutflow.py:1012
#: pretix/presale/checkoutflow.py:1018
@@ -27300,7 +27339,7 @@ msgstr "Ole hyvä ja anna kelvollinen sähköpostiosoite."
msgid ""
"No pending bank transfer payment found. Maybe the order has been paid "
"already?"
-msgstr ""
+msgstr "Odottavaa pankkisiirtomaksua ei löydy. Ehkä tilaus on jo maksettu?"
#: pretix/plugins/banktransfer/views.py:915
msgid "Sending invoices via email is disabled by the event organizer."
@@ -27308,20 +27347,22 @@ msgstr "Tapahtuman järjestäjä on kieltänyt laskujen lähettämisen sähköpo
#: pretix/plugins/banktransfer/views.py:920
msgid "No invoice found, please request an invoice first."
-msgstr ""
+msgstr "Laskua ei löytynyt, pyydä ensin lasku."
#: pretix/plugins/banktransfer/views.py:932
#, python-brace-format
msgid "Sending the latest invoice via email to {email}."
-msgstr ""
+msgstr "Viimeisimmän laskun lähettäminen sähköpostitse osoitteeseen {email}."
#: pretix/plugins/checkinlists/apps.py:47
msgid "Check-in list exporter"
-msgstr ""
+msgstr "Kirjautumislistan viejä"
#: pretix/plugins/checkinlists/apps.py:51
msgid "This plugin allows you to generate check-in lists for your conference."
msgstr ""
+"Tämän laajennuksen avulla voit luoda ilmoittautumislistoja konferenssiasi "
+"varten."
#: pretix/plugins/checkinlists/exporters.py:91
#: pretix/plugins/ticketoutputpdf/exporters.py:88
@@ -27330,19 +27371,19 @@ msgstr "Sisällytä liput vain tämän alueen päivämäärille."
#: pretix/plugins/checkinlists/exporters.py:95
msgid "Include QR-code secret"
-msgstr ""
+msgstr "Sisällytä QR-koodi salaisuus"
#: pretix/plugins/checkinlists/exporters.py:100
msgid "Only tickets requiring special attention"
-msgstr ""
+msgstr "Vain erityistä huomiota vaativat liput"
#: pretix/plugins/checkinlists/exporters.py:133
msgid "Include questions"
-msgstr ""
+msgstr "Sisällytä kysymykset"
#: pretix/plugins/checkinlists/exporters.py:301
msgid "Check-in list (PDF)"
-msgstr ""
+msgstr "Ilmoittautumislista (PDF)"
#: pretix/plugins/checkinlists/exporters.py:302
#: pretix/plugins/checkinlists/exporters.py:473
@@ -27357,34 +27398,38 @@ msgid ""
"Download a PDF version of a check-in list that can be used to check people "
"in at the event without digital methods."
msgstr ""
+"Lataa PDF-versio sisäänkirjautumislistasta, jota voit käyttää "
+"sisäänkirjautumiseen tapahtumassa ilman digitaalisia menetelmiä."
#. Translators: maximum 5 characters
#: pretix/plugins/checkinlists/exporters.py:371
msgctxt "tablehead"
msgid "paid"
-msgstr ""
+msgstr "maksettu"
#: pretix/plugins/checkinlists/exporters.py:474
msgid ""
"Download a spreadsheet with all attendees that are included in a check-in "
"list."
msgstr ""
+"Lataa laskentataulukko, jossa on kaikki osallistujat, jotka sisältyvät "
+"ilmoittautumislistaan."
#: pretix/plugins/checkinlists/exporters.py:497
msgid "Checked out"
-msgstr ""
+msgstr "Kirjattu ulos"
#: pretix/plugins/checkinlists/exporters.py:497
#: pretix/plugins/checkinlists/exporters.py:762
msgid "Automatically checked in"
-msgstr ""
+msgstr "Automaattisesti kirjattu sisään"
#: pretix/plugins/checkinlists/exporters.py:503
#: pretix/plugins/checkinlists/exporters.py:691
#: pretix/plugins/checkinlists/exporters.py:756
#: pretix/plugins/paypal/payment.py:123 pretix/plugins/paypal2/payment.py:120
msgid "Secret"
-msgstr ""
+msgstr "Salainen"
#: pretix/plugins/checkinlists/exporters.py:669
msgid "Valid check-in codes"
@@ -27395,16 +27440,21 @@ msgid ""
"Download a spreadsheet with all valid check-in barcodes e.g. for import into "
"a different system. Does not included blocked codes or personal data."
msgstr ""
+"Lataa laskentataulukko, jossa on kaikki voimassa olevat lähtöselvityksen "
+"viivakoodit, esimerkiksi tuotavaksi toiseen järjestelmään. Ei sisällä "
+"estettyjä koodeja tai henkilötietoja."
#: pretix/plugins/checkinlists/exporters.py:739
msgid "Check-in log (all scans)"
-msgstr ""
+msgstr "Sisäänkirjautumisloki (kaikki skannaukset)"
#: pretix/plugins/checkinlists/exporters.py:741
msgid ""
"Download a spreadsheet with one line for every scan that happened at your "
"check-in stations."
msgstr ""
+"Lataa laskentataulukko, jossa on yksi rivi jokaista check-in-asemilla "
+"tapahtunutta skannausta varten."
#: pretix/plugins/checkinlists/exporters.py:760
msgid "Offline"
@@ -27412,97 +27462,105 @@ msgstr "Offline-tilassa"
#: pretix/plugins/checkinlists/exporters.py:761
msgid "Offline override"
-msgstr ""
+msgstr "Offline ohitus"
#: pretix/plugins/checkinlists/exporters.py:765
#: pretix/plugins/stripe/templates/pretixplugins/stripe/control.html:83
msgid "Error message"
-msgstr ""
+msgstr "Virheviesti"
#: pretix/plugins/checkinlists/exporters.py:766
msgid "Upload date"
-msgstr ""
+msgstr "Tiedoston lähetyspäivä"
#: pretix/plugins/checkinlists/exporters.py:767
msgid "Upload time"
-msgstr ""
+msgstr "Tiedoston lähetysaika"
#: pretix/plugins/checkinlists/exporters.py:818
msgid "OK"
-msgstr ""
+msgstr "OK"
#: pretix/plugins/checkinlists/exporters.py:850
msgid "Successful scans only"
-msgstr ""
+msgstr "Vain onnistuneet skannaukset"
#: pretix/plugins/checkinlists/exporters.py:871
msgid "All check-in lists"
-msgstr ""
+msgstr "Kaikki tarkistuslistat"
#: pretix/plugins/manualpayment/apps.py:37
msgid "A fully customizable payment method for manual processing."
-msgstr ""
+msgstr "Täysin mukautettava maksutapa manuaalista käsittelyä varten."
#: pretix/plugins/paypal/apps.py:44 pretix/plugins/paypal/apps.py:47
#: pretix/plugins/paypal/payment.py:75 pretix/plugins/paypal2/payment.py:82
#: pretix/plugins/paypal2/payment.py:138 pretix/plugins/paypal2/payment.py:1080
#: pretix/plugins/paypal2/payment.py:1081 pretix/plugins/stripe/payment.py:1816
msgid "PayPal"
-msgstr ""
+msgstr "PayPal"
#: pretix/plugins/paypal/apps.py:53
msgid ""
"Accept payments with your PayPal account. PayPal is one of the most popular "
"payment methods world-wide."
msgstr ""
+"Hyväksy maksut PayPal-tililläsi. PayPal on yksi suosituimmista maksutavoista "
+"maailmanlaajuisesti."
#: pretix/plugins/paypal/payment.py:91 pretix/plugins/paypal2/payment.py:376
msgid ""
"The PayPal sandbox is being used, you can test without actually sending "
"money but you will need a PayPal sandbox user to log in."
msgstr ""
+"PayPal-hiekkalaatikkoa käytetään, voit testata lähettämättä rahaa, mutta "
+"tarvitset PayPal-hiekkalaatikkokäyttäjän kirjautuaksesi sisään."
#: pretix/plugins/paypal/payment.py:103
msgid "PayPal account"
-msgstr ""
+msgstr "PayPal-tili"
#: pretix/plugins/paypal/payment.py:116 pretix/plugins/paypal2/payment.py:113
#, python-brace-format
msgid "{text}"
-msgstr ""
+msgstr "{text}"
#: pretix/plugins/paypal/payment.py:117 pretix/plugins/paypal2/payment.py:114
msgid "Click here for a tutorial on how to obtain the required keys"
-msgstr ""
+msgstr "Klikkaa tästä saadaksesi ohjeet tarvittavien avainten hankkimiseen"
#: pretix/plugins/paypal/payment.py:129 pretix/plugins/paypal2/payment.py:126
#: pretix/plugins/stripe/payment.py:258
msgid "Endpoint"
-msgstr ""
+msgstr "Loppupiste"
#: pretix/plugins/paypal/payment.py:141 pretix/plugins/paypal2/payment.py:200
msgid "Reference prefix"
-msgstr ""
+msgstr "Viite-etuliite"
#: pretix/plugins/paypal/payment.py:142 pretix/plugins/paypal2/payment.py:201
msgid ""
"Any value entered here will be added in front of the regular booking "
"reference containing the order number."
msgstr ""
+"Kaikki tähän syötetyt arvot lisätään tavallisen varausviitteen eteen, joka "
+"sisältää tilausnumeron."
#: pretix/plugins/paypal/payment.py:148 pretix/plugins/paypal2/payment.py:207
msgid "Reference postfix"
-msgstr ""
+msgstr "Viite postfix"
#: pretix/plugins/paypal/payment.py:149 pretix/plugins/paypal2/payment.py:208
msgid ""
"Any value entered here will be added behind the regular booking reference "
"containing the order number."
msgstr ""
+"Kaikki tähän syötetyt arvot lisätään tavallisen varausviitteen taakse, joka "
+"sisältää tilausnumeron."
#: pretix/plugins/paypal/payment.py:187 pretix/plugins/paypal2/payment.py:261
msgid "Disconnect from PayPal"
-msgstr ""
+msgstr "Katkaise yhteys PayPaliin"
#: pretix/plugins/paypal/payment.py:241 pretix/plugins/paypal/payment.py:307
#: pretix/plugins/paypal/payment.py:345 pretix/plugins/paypal/payment.py:360
@@ -27515,7 +27573,7 @@ msgstr ""
#: pretix/plugins/paypal2/payment.py:1014
#: pretix/plugins/paypal2/payment.py:1110
msgid "We had trouble communicating with PayPal"
-msgstr ""
+msgstr "Meillä oli vaikeuksia kommunikoida PayPalin kanssa"
#: pretix/plugins/paypal/payment.py:374 pretix/plugins/paypal/payment.py:383
#: pretix/plugins/paypal/payment.py:457 pretix/plugins/paypal2/payment.py:637
@@ -27525,6 +27583,8 @@ msgid ""
"We were unable to process your payment. See below for details on how to "
"proceed."
msgstr ""
+"Emme pystyneet käsittelemään maksuasi. Katso alta lisätietoja siitä, miten "
+"voit jatkaa."
#: pretix/plugins/paypal/payment.py:438 pretix/plugins/paypal/payment.py:447
#: pretix/plugins/paypal2/payment.py:783
@@ -27532,32 +27592,34 @@ msgid ""
"PayPal has not yet approved the payment. We will inform you as soon as the "
"payment completed."
msgstr ""
+"PayPal ei ole vielä hyväksynyt maksua. Ilmoitamme sinulle heti, kun maksu on "
+"suoritettu."
#: pretix/plugins/paypal/payment.py:472 pretix/plugins/paypal2/payment.py:811
#: pretix/plugins/stripe/payment.py:985
msgid "There was an error sending the confirmation mail."
-msgstr ""
+msgstr "Vahvistussähköpostin lähettämisessä tapahtui virhe."
#: pretix/plugins/paypal/payment.py:565 pretix/plugins/paypal/payment.py:572
#: pretix/plugins/paypal2/payment.py:962 pretix/plugins/paypal2/payment.py:983
msgid "Refunding the amount via PayPal failed: {}"
-msgstr ""
+msgstr "Summan palauttaminen PayPalin kautta epäonnistui: {}"
#: pretix/plugins/paypal/payment.py:707 pretix/plugins/paypal/payment.py:715
#: pretix/plugins/paypal2/payment.py:1060
#: pretix/plugins/paypal2/payment.py:1068
msgid "The payment for this invoice has already been received."
-msgstr ""
+msgstr "Tämän laskun maksu on jo vastaanotettu."
#: pretix/plugins/paypal/payment.py:708 pretix/plugins/paypal/payment.py:716
#: pretix/plugins/paypal2/payment.py:1061
#: pretix/plugins/paypal2/payment.py:1069
msgid "PayPal payment ID"
-msgstr ""
+msgstr "PayPal-maksun tunnus"
#: pretix/plugins/paypal/payment.py:710 pretix/plugins/paypal2/payment.py:1063
msgid "PayPal sale ID"
-msgstr ""
+msgstr "PayPal-myyntitunnus"
#: pretix/plugins/paypal/templates/pretixplugins/paypal/checkout_payment_confirm.html:3
#: pretix/plugins/paypal2/templates/pretixplugins/paypal2/checkout_payment_confirm.html:19
@@ -27565,6 +27627,8 @@ msgid ""
"The total amount listed above will be withdrawn from your PayPal account "
"after the confirmation of your purchase."
msgstr ""
+"Edellä mainittu kokonaissumma nostetaan PayPal-tililtäsi oston vahvistamisen "
+"jälkeen."
#: pretix/plugins/paypal/templates/pretixplugins/paypal/checkout_payment_form.html:3
msgid ""
@@ -27572,31 +27636,36 @@ msgid ""
"payment details. You will then be redirected back here to review and confirm "
"your order."
msgstr ""
+"Kun olet klikannut Jatka, ohjaamme sinut PayPaliin täyttämään maksutietosi. "
+"Tämän jälkeen sinut ohjataan takaisin tänne tarkastelemaan ja vahvistamaan "
+"tilauksesi."
#: pretix/plugins/paypal/templates/pretixplugins/paypal/control.html:7
#: pretix/plugins/paypal2/templates/pretixplugins/paypal2/control.html:6
#: pretix/plugins/paypal2/templates/pretixplugins/paypal2/control_legacy.html:7
msgid "Sale ID"
-msgstr ""
+msgstr "Myyntitunnus"
#: pretix/plugins/paypal/templates/pretixplugins/paypal/control.html:11
#: pretix/plugins/paypal2/templates/pretixplugins/paypal2/control.html:35
#: pretix/plugins/paypal2/templates/pretixplugins/paypal2/control_legacy.html:11
msgid "Last update"
-msgstr ""
+msgstr "Viimeisin päivitys"
#: pretix/plugins/paypal/templates/pretixplugins/paypal/control.html:13
#: pretix/plugins/paypal2/templates/pretixplugins/paypal2/control.html:37
#: pretix/plugins/paypal2/templates/pretixplugins/paypal2/control_legacy.html:13
#: pretix/plugins/stripe/templates/pretixplugins/stripe/control.html:71
msgid "Total value"
-msgstr ""
+msgstr "Kokonaisarvo"
#: pretix/plugins/paypal/templates/pretixplugins/paypal/pending.html:4
msgid ""
"Our attempt to execute your Payment via PayPal has failed. Please try again "
"or contact us."
msgstr ""
+"Yrityksemme suorittaa maksusi PayPalin kautta epäonnistui. Yritä uudelleen "
+"tai ota meihin yhteyttä."
#: pretix/plugins/paypal/templates/pretixplugins/paypal/pending.html:8
#: pretix/plugins/paypal2/templates/pretixplugins/paypal2/pending.html:15
@@ -27604,36 +27673,39 @@ msgid ""
"We're waiting for an answer from PayPal regarding your payment. Please "
"contact us, if this takes more than a few hours."
msgstr ""
+"Odotamme vastausta PayPalilta maksua koskevaan kysymykseen. Ota yhteyttä, "
+"jos tämä kestää yli muutaman tunnin."
#: pretix/plugins/paypal/templates/pretixplugins/paypal/redirect.html:17
#: pretix/plugins/paypal2/templates/pretixplugins/paypal2/redirect.html:17
#: pretix/plugins/stripe/templates/pretixplugins/stripe/redirect.html:17
msgid "The payment process has started in a new window."
-msgstr ""
+msgstr "Maksuprosessi on käynnistetty uudessa ikkunassa."
#: pretix/plugins/paypal/templates/pretixplugins/paypal/redirect.html:20
#: pretix/plugins/paypal2/templates/pretixplugins/paypal2/redirect.html:20
#: pretix/plugins/stripe/templates/pretixplugins/stripe/redirect.html:20
msgid "The window to enter your payment data was not opened or was closed?"
msgstr ""
+"Maksutietojen syöttämiseen tarkoitettu ikkuna ei avautunut tai se suljettiin?"
#: pretix/plugins/paypal/templates/pretixplugins/paypal/redirect.html:25
#: pretix/plugins/paypal2/templates/pretixplugins/paypal2/redirect.html:25
#: pretix/plugins/stripe/templates/pretixplugins/stripe/redirect.html:25
msgid "Click here in order to open the window."
-msgstr ""
+msgstr "Klikkaa tästä avataksesi ikkunan."
#: pretix/plugins/paypal/views.py:107 pretix/plugins/paypal2/views.py:319
msgid "Invalid response from PayPal received."
-msgstr ""
+msgstr "PayPalilta saatu virheellinen vastaus."
#: pretix/plugins/paypal/views.py:123 pretix/plugins/paypal2/views.py:340
msgid "It looks like you canceled the PayPal payment"
-msgstr ""
+msgstr "Näyttää siltä, että peruutit PayPal-maksun"
#: pretix/plugins/paypal/views.py:255 pretix/plugins/paypal2/views.py:531
msgid "Your PayPal account has been disconnected."
-msgstr ""
+msgstr "PayPal-tilisi yhteys on katkaistu."
#: pretix/plugins/paypal2/apps.py:40
msgid ""
@@ -27643,6 +27715,10 @@ msgid ""
"even need a PayPal account. PayPal is one of the most popular payment "
"methods world-wide."
msgstr ""
+"Hyväksy maksut PayPal-tililläsi. Tavallisten PayPal-maksujen lisäksi voit "
+"nyt tarjota asiakkaillesi maksuja myös monilla paikallisilla maksutavoilla, "
+"kuten eps, iDEAL ja monet muut - he eivät edes tarvitse PayPal-tiliä. PayPal "
+"on yksi suosituimmista maksutavoista maailmanlaajuisesti."
#: pretix/plugins/paypal2/payment.py:99
msgid "PayPal Merchant ID"
@@ -27654,6 +27730,9 @@ msgid ""
"have the option to revert back to paying with their PayPal account. For this "
"reason, this payment method is always active."
msgstr ""
+"Vaikka asiakas valitsisi vaihtoehtoisen maksutavan, hänellä on aina "
+"mahdollisuus palata maksamaan PayPal-tilillään. Tästä syystä tämä maksutapa "
+"on aina aktiivinen."
#: pretix/plugins/paypal2/payment.py:149
msgid "Alternative Payment Methods"
@@ -27668,10 +27747,15 @@ msgid ""
"shoppers location. For German merchants, this is the direct successor of "
"PayPal Plus."
msgstr ""
+"PayPal-tilin kautta suoritettavien maksujen lisäksi voit tarjota "
+"asiakkaillesi mahdollisuuden maksaa luottokortilla ja muilla paikallisilla "
+"maksutavoilla, kuten eps, iDEAL ja monilla muilla - vaikka heillä ei olisi "
+"PayPal-tiliä. Hyväksyttävät maksutavat määritetään ostajan sijainnin "
+"perusteella. Saksalaisille kauppiaille tämä on PayPal Plussan suora seuraaja."
#: pretix/plugins/paypal2/payment.py:166
msgid "Disable SEPA Direct Debit"
-msgstr ""
+msgstr "SEPA-suoraveloituksen poistaminen käytöstä"
#: pretix/plugins/paypal2/payment.py:168
msgid ""
@@ -27681,10 +27765,15 @@ msgid ""
"nature of your event - you might want to disabled the option of SEPA Direct "
"Debit payments in order to reduce the risk of costly chargebacks."
msgstr ""
+"Asiakas ei voi peruuttaa useimpia maksutapoja ilmoittamatta tarkkaa asiaa "
+"kauppiaalle, mutta SEPA-suoraveloitus voidaan peruuttaa napin "
+"painalluksella. Tästä syystä - ja tapahtumasi luonteesta riippuen - saatat "
+"haluta poistaa SEPA-suoraveloitusmaksut käytöstä, jotta vähennät kalliiden "
+"takaisinkirjausten riskiä."
#: pretix/plugins/paypal2/payment.py:182
msgid "Enable Buy Now Pay Later"
-msgstr ""
+msgstr "Ota käyttöön Osta nyt, maksa myöhemmin"
#: pretix/plugins/paypal2/payment.py:184
msgid ""
@@ -27692,6 +27781,8 @@ msgid ""
"pay in multiple installments or within 30 days. You, as the merchant, are "
"getting your money right away."
msgstr ""
+"Tarjoa asiakkaillesi mahdollisuus ostaa nyt (tiettyyn rajaan asti) ja maksaa "
+"useissa erissä tai 30 päivän kuluessa. Sinä kauppiaana saat rahasi heti."
#: pretix/plugins/paypal2/payment.py:216
msgid "-- Automatic --"
@@ -27707,26 +27798,32 @@ msgid ""
"clicking on the following button, you can either create a new PayPal account "
"or connect pretix to an existing one."
msgstr ""
+"Jotta voit hyväksyä maksuja PayPalin kautta, tarvitset tilin PayPalissa. "
+"Napsauttamalla seuraavaa painiketta voit joko luoda uuden PayPal-tilin tai "
+"liittää pretixin olemassa olevaan tiliin."
#: pretix/plugins/paypal2/payment.py:251
#, python-brace-format
msgid "Connect with {icon} PayPal"
-msgstr ""
+msgstr "Yhdistä {icon} PayPal"
#: pretix/plugins/paypal2/payment.py:265
msgid ""
"Please configure a PayPal Webhook to the following endpoint in order to "
"automatically cancel orders when payments are refunded externally."
msgstr ""
+"Määritä PayPal Webhook seuraavaan päätepisteeseen, jotta voit peruuttaa "
+"tilaukset automaattisesti, kun maksut palautetaan ulkoisesti."
#: pretix/plugins/paypal2/payment.py:276
msgid "PayPal does not process payments in your event's currency."
-msgstr ""
+msgstr "PayPal ei käsittele maksuja tapahtuman valuutassa."
#: pretix/plugins/paypal2/payment.py:277
msgid ""
"Please check this PayPal page for a complete list of supported currencies."
msgstr ""
+"Tarkista tältä PayPal-sivulta täydellinen luettelo tuetuista valuutoista."
#: pretix/plugins/paypal2/payment.py:282
msgid ""
@@ -27736,10 +27833,15 @@ msgid ""
"country and use the same currency. Out of country accounts will not be able "
"to send any payments."
msgstr ""
+"PayPal tukee tapahtumasi valuuttaa maksu- ja saldovaluuttana vain maan "
+"sisäisillä tileillä. Tämä tarkoittaa, että sekä vastaanottavan että "
+"lähettävän PayPal-tilin on oltava luotu samassa maassa ja että niissä on "
+"käytettävä samaa valuuttaa. Maan ulkopuoliset tilit eivät voi lähettää "
+"maksuja."
#: pretix/plugins/paypal2/payment.py:334 pretix/plugins/paypal2/views.py:248
msgid "An error occurred during connecting with PayPal, please try again."
-msgstr ""
+msgstr "PayPal-yhteyden muodostamisessa tapahtui virhe, yritä uudelleen."
#: pretix/plugins/paypal2/payment.py:466 pretix/plugins/paypal2/payment.py:598
#: pretix/plugins/paypal2/payment.py:658 pretix/plugins/paypal2/payment.py:721
@@ -27750,25 +27852,31 @@ msgid ""
"again, there is a high chance of the payment succeeding on a second or third "
"attempt. You can also try other payment methods, if available."
msgstr ""
+"Maksusi on epäonnistunut tunnetun ongelman vuoksi PayPalissa. Yritä "
+"uudelleen, sillä on suuri mahdollisuus, että maksu onnistuu toisella tai "
+"kolmannella yrityksellä. Voit myös kokeilla muita maksutapoja, jos ne ovat "
+"käytettävissä."
#: pretix/plugins/paypal2/payment.py:476 pretix/plugins/paypal2/payment.py:1010
msgid ""
"Something went wrong when requesting the payment status. Please try again."
-msgstr ""
+msgstr "Jokin meni pieleen, kun maksun tilaa pyydettiin. Yritä uudelleen."
#: pretix/plugins/paypal2/payment.py:485 pretix/plugins/paypal2/payment.py:1019
msgid "You may need to enable JavaScript for PayPal payments."
-msgstr ""
+msgstr "Sinun on ehkä otettava JavaScript käyttöön PayPal-maksuja varten."
#: pretix/plugins/paypal2/payment.py:953
msgid ""
"Refunding the amount via PayPal failed: The original payment does not "
"contain the required information to issue an automated refund."
msgstr ""
+"Summan palauttaminen PayPalin kautta epäonnistui: Alkuperäinen maksu ei "
+"sisällä vaadittuja tietoja automaattisen palautuksen myöntämiseksi."
#: pretix/plugins/paypal2/payment.py:1087
msgid "PayPal APM"
-msgstr ""
+msgstr "PayPal APM"
#: pretix/plugins/paypal2/payment.py:1088
msgid "PayPal Alternative Payment Methods"
@@ -27776,11 +27884,11 @@ msgstr "Vaihtoehtoiset PayPal-maksutavat"
#: pretix/plugins/paypal2/signals.py:58
msgid "Payment completed."
-msgstr ""
+msgstr "Maksu suoritettu."
#: pretix/plugins/paypal2/signals.py:59
msgid "Payment denied."
-msgstr ""
+msgstr "Maksu evätty."
#: pretix/plugins/paypal2/signals.py:60
msgid "Payment refunded."
@@ -27966,28 +28074,36 @@ msgid ""
"An error occurred returning from PayPal: session parameter not matching. "
"Please try again."
msgstr ""
+"PayPalista palatessa tapahtui virhe: istunnon parametri ei täsmää. Yritä "
+"uudelleen."
#: pretix/plugins/paypal2/views.py:267
msgid ""
"The email address on your PayPal account has not yet been confirmed. You "
"will need to do this before you can start accepting payments."
msgstr ""
+"PayPal-tilisi sähköpostiosoitetta ei ole vielä vahvistettu. Sinun on tehtävä "
+"tämä ennen kuin voit aloittaa maksujen vastaanottamisen."
#: pretix/plugins/paypal2/views.py:273
msgid ""
"Your PayPal account is now connected to pretix. You can change the settings "
"in detail below."
msgstr ""
+"PayPal-tilisi on nyt yhdistetty pretixiin. Voit muuttaa asetuksia "
+"yksityiskohtaisesti alla."
#: pretix/plugins/pretixdroid/apps.py:30 pretix/plugins/pretixdroid/apps.py:33
msgid "Old check-in device API"
-msgstr ""
+msgstr "Vanha sisäänkirjautumislaitteen API"
#: pretix/plugins/pretixdroid/apps.py:39
msgid ""
"This plugin allows you to use the pretixdroid and pretixdesk apps for your "
"event."
msgstr ""
+"Tämän laajennuksen avulla voit käyttää pretixdroid- ja pretixdesk-"
+"sovelluksia tapahtumassasi."
#: pretix/plugins/reports/accountingreport.py:58
msgid "Accounting report"
@@ -27997,16 +28113,17 @@ msgstr "Kirjanpitoraportti"
msgid ""
"Download a PDF report of all sales and payments within a given time frame."
msgstr ""
+"Lataa PDF-raportti kaikista myynneistä ja maksuista tietyn ajanjakson aikana."
#: pretix/plugins/reports/accountingreport.py:62
#: pretix/plugins/reports/exporters.py:246
msgctxt "export_category"
msgid "Analysis"
-msgstr ""
+msgstr "Analyysi"
#: pretix/plugins/reports/accountingreport.py:82
msgid "Ignore test mode orders"
-msgstr ""
+msgstr "Älä ota huomioon testitilan tilauksia"
#: pretix/plugins/reports/accountingreport.py:90
msgid "Split event series by date"
@@ -28014,11 +28131,11 @@ msgstr "Jaa tapahtumasarja päivämäärän mukaan"
#: pretix/plugins/reports/accountingreport.py:128
msgid "End"
-msgstr ""
+msgstr "Loppu"
#: pretix/plugins/reports/accountingreport.py:139
msgid "Report includes test orders which may be deleted later!"
-msgstr ""
+msgstr "Raportti sisältää testitilaukset, jotka voidaan poistaa myöhemmin!"
#: pretix/plugins/reports/accountingreport.py:144
msgid ""
@@ -28027,18 +28144,22 @@ msgid ""
"might therefore be inaccurate with regards to orders that were changed in "
"the time frame."
msgstr ""
+"Raportin aikaväli sisältää tietoja, jotka on tuotettu vanhalla "
+"ohjelmistoversiolla, joka ei vielä tallentanut kaikkia raportin luomiseen "
+"tarvittavia tietoja. Raportti saattaa siksi olla epätarkka niiden tilausten "
+"osalta, joita on muutettu kyseisellä aikavälillä."
#: pretix/plugins/reports/accountingreport.py:644
#: pretix/plugins/reports/accountingreport.py:694
#, python-brace-format
msgid "Pending payments at {datetime}"
-msgstr ""
+msgstr "Vireillä olevat maksut {datetime} päivämäärällä"
#: pretix/plugins/reports/accountingreport.py:751
#: pretix/plugins/reports/accountingreport.py:789
#, python-brace-format
msgid "Total gift card value at {datetime}"
-msgstr ""
+msgstr "Lahjakortin kokonaisarvo {datetime} päivämäärällä"
#: pretix/plugins/reports/accountingreport.py:770
msgid "Gift card transactions (credit)"
@@ -28054,53 +28175,53 @@ msgstr "Avaa kohteet"
#: pretix/plugins/reports/apps.py:44 pretix/plugins/reports/apps.py:47
msgid "Report exporter"
-msgstr ""
+msgstr "Raportin viejä"
#: pretix/plugins/reports/apps.py:51
msgid "Generate printable reports about your sales."
-msgstr ""
+msgstr "Luo tulostettavia raportteja myynnistäsi."
#: pretix/plugins/reports/exporters.py:97
#, python-format
msgid "Page %d of %d"
-msgstr ""
+msgstr "Sivu %d / %d"
#: pretix/plugins/reports/exporters.py:200
#, python-format
msgid "Page %d"
-msgstr ""
+msgstr "Sivu %d"
#: pretix/plugins/reports/exporters.py:202
#, python-format
msgid "Created: %s"
-msgstr ""
+msgstr "Luotu: %s"
#: pretix/plugins/reports/exporters.py:245
msgid "Order overview (PDF)"
-msgstr ""
+msgstr "Tilauskatsaus (PDF)"
#: pretix/plugins/reports/exporters.py:247
msgid "Download a PDF version of the key sales numbers per ticket type."
-msgstr ""
+msgstr "Lataa PDF-versio tärkeimmistä myyntiluvuista lipputyypeittäin."
#: pretix/plugins/reports/exporters.py:275
#: pretix/plugins/statistics/templates/pretixplugins/statistics/index.html:58
msgid "Orders by product"
-msgstr ""
+msgstr "Tilaukset tuotteittain"
#: pretix/plugins/reports/exporters.py:275
msgid "(excl. taxes)"
-msgstr ""
+msgstr "(ilman veroja)"
#: pretix/plugins/reports/exporters.py:275
msgid "(incl. taxes)"
-msgstr ""
+msgstr "(sisältää verot)"
#: pretix/plugins/reports/exporters.py:285
#: pretix/plugins/reports/exporters.py:304
#, python-brace-format
msgid "{axis} between {start} and {end}"
-msgstr ""
+msgstr "{axis} välillä {start} ja {end}"
#: pretix/plugins/reports/exporters.py:390
#: pretix/plugins/reports/exporters.py:391
@@ -28109,46 +28230,48 @@ msgstr ""
#: pretix/plugins/reports/exporters.py:394
#: pretix/plugins/reports/exporters.py:395
msgid "#"
-msgstr ""
+msgstr "#"
#: pretix/plugins/reports/exporters.py:477
msgid "Tax split list (PDF)"
-msgstr ""
+msgstr "Veronjakoluettelo (PDF)"
#: pretix/plugins/reports/exporters.py:479
msgid "Download a PDF list with the tax amounts included in each order."
-msgstr ""
+msgstr "Lataa PDF-luettelo kuhunkin tilaukseen sisältyvistä veromääristä."
#: pretix/plugins/reports/exporters.py:556
#, python-brace-format
msgid "Orders by tax rate ({currency})"
-msgstr ""
+msgstr "Tilaukset verokannan mukaan ({currency})"
#: pretix/plugins/reports/exporters.py:565
#: pretix/plugins/reports/exporters.py:794
#: pretix/plugins/reports/exporters.py:846
#: pretix/plugins/reports/exporters.py:887
msgid "Gross"
-msgstr ""
+msgstr "Brutto"
#: pretix/plugins/reports/exporters.py:565
#: pretix/plugins/reports/exporters.py:795
#: pretix/plugins/reports/exporters.py:847
#: pretix/plugins/reports/exporters.py:887
msgid "Tax"
-msgstr ""
+msgstr "Vero"
#: pretix/plugins/reports/exporters.py:650
msgid "Tax split list"
-msgstr ""
+msgstr "Veronjakoluettelo"
#: pretix/plugins/reports/exporters.py:652
msgid "Download a spreadsheet with the tax amounts included in each order."
msgstr ""
+"Lataa laskentataulukko, joka sisältää kuhunkin tilaukseen sisältyvät "
+"veromäärät."
#: pretix/plugins/reports/exporters.py:658
msgid "Taxes by country"
-msgstr ""
+msgstr "Verot maittain"
#: pretix/plugins/reports/exporters.py:659
msgid "Business customers"
@@ -28162,23 +28285,27 @@ msgstr "Maakoodi"
#: pretix/plugins/returnurl/apps.py:30 pretix/plugins/returnurl/apps.py:33
#: pretix/plugins/returnurl/templates/returnurl/settings.html:5
msgid "Redirection from order page"
-msgstr ""
+msgstr "Uudelleenohjaus tilaussivulta"
#: pretix/plugins/returnurl/apps.py:37
msgid ""
"This plugin allows to link to payments and redirect back afterwards. This is "
"useful in combination with our API."
msgstr ""
+"Tämän laajennuksen avulla voit linkittää maksuja ja ohjata takaisin "
+"jälkikäteen. Tämä on hyödyllistä yhdessä API:n kanssa."
#: pretix/plugins/returnurl/signals.py:90
msgid "Redirection"
-msgstr ""
+msgstr "Uudelleenohjaus"
#: pretix/plugins/returnurl/templates/returnurl/settings.html:7
msgid ""
"This feature is useful if you use only the payment component of pretix but "
"build your own checkout interface for other steps."
msgstr ""
+"Tämä ominaisuus on hyödyllinen, jos käytät vain pretixin maksukomponenttia "
+"mutta rakennat oman kassaliittymän muita vaiheita varten."
#: pretix/plugins/returnurl/views.py:37
msgid "Base redirection URLs"
@@ -28190,14 +28317,18 @@ msgid ""
"prefixes. Enter one or more allowed URL prefix per line. URL prefixes must "
"include a slash after the hostname."
msgstr ""
+"Uudelleenohjaus sallitaan vain URL-osoitteisiin, jotka alkavat jollakin "
+"näistä etuliitteistä. Kirjoita yksi tai useampi sallittu URL-etuliite riviä "
+"kohti. URL-etuliitteissä on oltava isäntänimen jälkeen vinoviiva."
#: pretix/plugins/sendmail/apps.py:38
msgid "Send out emails to all your customers or specific groups of customers."
msgstr ""
+"Lähetä sähköposteja kaikille asiakkaillesi tai tietyille asiakasryhmille."
#: pretix/plugins/sendmail/forms.py:60
msgid "Attachment"
-msgstr ""
+msgstr "Liitetiedosto"
#: pretix/plugins/sendmail/forms.py:63
msgid ""
@@ -28205,11 +28336,14 @@ msgid ""
"being sorted into spam folders. We recommend only using PDFs of no more than "
"2 MB in size."
msgstr ""
+"Liitetiedoston lähettäminen lisää mahdollisuutta, että sähköpostisi ei saavu "
+"perille tai lajitellaan roskapostikansioon. Suosittelemme käyttämään vain "
+"PDF-tiedostoja, joiden koko on enintään 2 Mt."
#: pretix/plugins/sendmail/forms.py:91
msgctxt "sendmail_form"
msgid "Waiting for"
-msgstr ""
+msgstr "Odotetaan"
#: pretix/plugins/sendmail/forms.py:97 pretix/plugins/sendmail/forms.py:171
#: pretix/plugins/sendmail/forms.py:349
@@ -28221,11 +28355,12 @@ msgstr "Rajoita tiettyyn tapahtumapäivään"
msgctxt "sendmail_form"
msgid "Restrict to event dates starting at or after"
msgstr ""
+"Rajoitetaan tapahtumapäiviin, jotka alkavat tiettyyn aikaan tai sen jälkeen"
#: pretix/plugins/sendmail/forms.py:108 pretix/plugins/sendmail/forms.py:182
msgctxt "sendmail_form"
msgid "Restrict to event dates starting before"
-msgstr ""
+msgstr "Rajoitetaan tapahtumapäiviin, jotka alkavat ennen"
#: pretix/plugins/sendmail/forms.py:149
msgctxt "sendmail_form"
@@ -28235,11 +28370,11 @@ msgstr "Lähetä osoitteeseen"
#: pretix/plugins/sendmail/forms.py:159
msgctxt "sendmail_form"
msgid "Restrict to products"
-msgstr ""
+msgstr "Rajoita tuotteisiin"
#: pretix/plugins/sendmail/forms.py:164
msgid "Filter check-in status"
-msgstr ""
+msgstr "Suodata sisäänkirjautumisen tila"
#: pretix/plugins/sendmail/forms.py:168
msgctxt "sendmail_form"
@@ -28254,40 +28389,46 @@ msgstr "Sisällytä vain tällä päivämäärällä ja sen jälkeen tehdyt tila
#: pretix/plugins/sendmail/forms.py:192
msgctxt "sendmail_form"
msgid "Restrict to orders created before"
-msgstr ""
+msgstr "Rajoita tilauksiin, jotka on luotu ennen"
#: pretix/plugins/sendmail/forms.py:218
msgid "Everyone who placed an order"
-msgstr ""
+msgstr "Kaikki tilauksen tehneet"
#: pretix/plugins/sendmail/forms.py:222 pretix/plugins/sendmail/models.py:234
msgid ""
"Every attendee (falling back to the order contact when no attendee email "
"address is given)"
msgstr ""
+"Jokainen osallistuja (palautetaan tilauksen yhteyshenkilöön, jos "
+"osallistujan sähköpostiosoitetta ei ole annettu)"
#: pretix/plugins/sendmail/forms.py:224 pretix/plugins/sendmail/models.py:235
msgid "Both (all order contact addresses and all attendee email addresses)"
msgstr ""
+"Molemmat (kaikki tilauksen yhteysosoitteet ja kaikkien osallistujien "
+"sähköpostiosoitteet)"
#: pretix/plugins/sendmail/forms.py:230
msgid "Attachment of tickets is disabled in this event's email settings."
msgstr ""
+"Lippujen liittäminen on poistettu käytöstä tämän tapahtuman "
+"sähköpostiasetuksissa."
#: pretix/plugins/sendmail/forms.py:234 pretix/plugins/sendmail/forms.py:388
#: pretix/plugins/sendmail/views.py:267
msgid "payment pending but already confirmed"
-msgstr ""
+msgstr "maksu vireillä, mutta jo vahvistettu"
#: pretix/plugins/sendmail/forms.py:235 pretix/plugins/sendmail/forms.py:390
#: pretix/plugins/sendmail/views.py:268
msgid "payment pending (except unapproved or already confirmed)"
-msgstr ""
+msgstr "maksu vireillä (paitsi hyväksymättömät tai jo vahvistetut)"
#: pretix/plugins/sendmail/forms.py:239 pretix/plugins/sendmail/forms.py:394
#: pretix/plugins/sendmail/views.py:266
msgid "pending with payment overdue"
-msgstr ""
+msgstr "vireillä ja maksu erääntynyt"
#: pretix/plugins/sendmail/forms.py:242
msgctxt "sendmail_form"
@@ -28297,52 +28438,52 @@ msgstr "Rajoita tilauksiin, joilla on status"
#: pretix/plugins/sendmail/forms.py:267 pretix/plugins/sendmail/forms.py:271
msgctxt "sendmail_form"
msgid "Restrict to recipients with check-in on list"
-msgstr ""
+msgstr "Rajoita vastaanottajiin, joilla on sisäänkirjautuminen listalla"
#: pretix/plugins/sendmail/forms.py:373
msgid "Type of schedule time"
-msgstr ""
+msgstr "Aikataulutyyppi aika"
#: pretix/plugins/sendmail/forms.py:376
msgid "Absolute"
-msgstr ""
+msgstr "Ehdottomasti"
#: pretix/plugins/sendmail/forms.py:377
msgid "Relative, before event start"
-msgstr ""
+msgstr "Suhteellinen, ennen tapahtuman alkua"
#: pretix/plugins/sendmail/forms.py:378
msgid "Relative, before event end"
-msgstr ""
+msgstr "Suhteellinen, ennen tapahtuman päättymistä"
#: pretix/plugins/sendmail/forms.py:379
msgid "Relative, after event start"
-msgstr ""
+msgstr "Suhteellinen, tapahtuman alkamisen jälkeen"
#: pretix/plugins/sendmail/forms.py:380
msgid "Relative, after event end"
-msgstr ""
+msgstr "Suhteellinen, tapahtuman päättymisen jälkeen"
#: pretix/plugins/sendmail/forms.py:397
msgctxt "sendmail_from"
msgid "Restrict to orders with status"
-msgstr ""
+msgstr "Rajoita tilauksiin, joilla on status"
#: pretix/plugins/sendmail/forms.py:412
msgid "Please specify the send date"
-msgstr ""
+msgstr "Ilmoita lähetyspäivä"
#: pretix/plugins/sendmail/forms.py:417
msgid "Please specify the offset days and time"
-msgstr ""
+msgstr "Ilmoita siirtopäivät ja kellonaika"
#: pretix/plugins/sendmail/forms.py:428
msgid "Please specify a product"
-msgstr ""
+msgstr "Määritä tuote"
#: pretix/plugins/sendmail/models.py:51
msgid "scheduled"
-msgstr ""
+msgstr "ajastettu"
#: pretix/plugins/sendmail/models.py:52
msgid "failed"
@@ -28350,15 +28491,15 @@ msgstr "epäonnistui"
#: pretix/plugins/sendmail/models.py:53
msgid "completed"
-msgstr ""
+msgstr "valmis"
#: pretix/plugins/sendmail/models.py:54
msgid "missed"
-msgstr ""
+msgstr "puuttunut"
#: pretix/plugins/sendmail/models.py:233
msgid "Everyone who created a ticket order"
-msgstr ""
+msgstr "Kaikki, jotka ovat luoneet lipputilauksen"
#: pretix/plugins/sendmail/models.py:239
msgid "Everyone"
From 73b58cfb894cda7a8c5a3edddb4b6a91c465f95f Mon Sep 17 00:00:00 2001
From: Hannu Kaakinen
Date: Sun, 9 Feb 2025 07:46:17 +0000
Subject: [PATCH 40/99] Translations: Update Finnish
Currently translated at 62.4% (3651 of 5846 strings)
Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/fi/
powered by weblate
---
src/pretix/locale/fi/LC_MESSAGES/django.po | 508 +++++++++++++--------
1 file changed, 321 insertions(+), 187 deletions(-)
diff --git a/src/pretix/locale/fi/LC_MESSAGES/django.po b/src/pretix/locale/fi/LC_MESSAGES/django.po
index fecafce373..afe3bc9810 100644
--- a/src/pretix/locale/fi/LC_MESSAGES/django.po
+++ b/src/pretix/locale/fi/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-01-29 13:18+0000\n"
-"PO-Revision-Date: 2025-02-09 07:00+0000\n"
+"PO-Revision-Date: 2025-02-09 13:07+0000\n"
"Last-Translator: Hannu Kaakinen \n"
"Language-Team: Finnish \n"
@@ -26548,7 +26548,6 @@ msgstr "IBAN"
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/checkout_payment_form.html:16
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/import_assign.html:66
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/pending.html:25
-#, fuzzy
msgid "BIC"
msgstr "BIC"
@@ -28503,19 +28502,19 @@ msgstr "Kaikki, jotka ovat luoneet lipputilauksen"
#: pretix/plugins/sendmail/models.py:239
msgid "Everyone"
-msgstr ""
+msgstr "Jokainen"
#: pretix/plugins/sendmail/models.py:240
msgid "Anyone who is or was checked in"
-msgstr ""
+msgstr "Jokainen, joka on, tai jotka ovat olleet kirjautuneina sisään"
#: pretix/plugins/sendmail/models.py:241
msgid "Anyone who never checked in before"
-msgstr ""
+msgstr "Jokainen, joka ei ole koskaan kirjautunut sisään ennen"
#: pretix/plugins/sendmail/models.py:252
msgid "Limit products"
-msgstr ""
+msgstr "Rajoita tuotteita"
#: pretix/plugins/sendmail/models.py:255
msgid "Restrict to orders with status"
@@ -28527,77 +28526,77 @@ msgstr "Rajoita tilauksiin, joilla on kirjautumis-status"
#: pretix/plugins/sendmail/models.py:274
msgid "Send date"
-msgstr ""
+msgstr "Lähetä päivämäärä"
#: pretix/plugins/sendmail/models.py:276
#: pretix/presale/templates/pretixpresale/fragment_day_calendar.html:8
msgid "Time of day"
-msgstr ""
+msgstr "Kellonaika"
#: pretix/plugins/sendmail/models.py:282
msgid "Send email to"
-msgstr ""
+msgstr "Lähetä sähköpostia osoitteeseen"
#: pretix/plugins/sendmail/models.py:287
msgid "Only enabled rules are actually sent"
-msgstr ""
+msgstr "Vain käytössä olevat säännöt lähetetään"
#: pretix/plugins/sendmail/models.py:334
#, python-brace-format
msgid "on {date} at {time}"
-msgstr ""
+msgstr "Päivämäärällä {date} kello {time}"
#: pretix/plugins/sendmail/models.py:340
#, python-format
msgid "%(count)d day after event end at %(time)s"
msgid_plural "%(count)d days after event end at %(time)s"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "%(count)d päivä tapahtuman lopun jälkeen, klo %(time)s"
+msgstr[1] "%(count)d päivää tapahtuman lopun jälkeen, klo %(time)s"
#: pretix/plugins/sendmail/models.py:349
#, python-format
msgid "%(count)d day before event end at %(time)s"
msgid_plural "%(count)d days before event end at %(time)s"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "%(count)d päivä ennen tapahtuman loppua klo %(time)s"
+msgstr[1] "%(count)d päivää ennen tapahtuman loppua klo %(time)s"
#: pretix/plugins/sendmail/models.py:359
#, python-format
msgid "%(count)d day after event start at %(time)s"
msgid_plural "%(count)d days after event start at %(time)s"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "%(count)d päivä tapahtuman alun jälkeen klo %(time)s"
+msgstr[1] "%(count)d päivää tapahtuman alun jälkeen klo %(time)s"
#: pretix/plugins/sendmail/models.py:368
#, python-format
msgid "%(count)d day before event start at %(time)s"
msgid_plural "%(count)d days before event start at %(time)s"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "%(count)d päivä ennen tapahtuman alkua klo %(time)s"
+msgstr[1] "%(count)d päivää ennen tapahtuman alkua klo %(time)s"
#: pretix/plugins/sendmail/signals.py:101
msgid "Scheduled emails"
-msgstr ""
+msgstr "Ajastetut sähköpostit"
#: pretix/plugins/sendmail/signals.py:121
msgid "Mass email was sent to customers or attendees."
-msgstr ""
+msgstr "Joukkosähköposti lähetettiin asiakkaille tai osallistujille."
#: pretix/plugins/sendmail/signals.py:122
msgid "Mass email was sent to waiting list entries."
-msgstr ""
+msgstr "Jonotuslistalle ilmoittautuneille lähetettiin joukkosähköposti."
#: pretix/plugins/sendmail/signals.py:127
msgid "The order received a mass email."
-msgstr ""
+msgstr "Tilaus sai joukkosähköpostin."
#: pretix/plugins/sendmail/signals.py:128
msgid "A ticket holder of this order received a mass email."
-msgstr ""
+msgstr "Tämän tilauksen lipun haltija sai joukkosähköpostin."
#: pretix/plugins/sendmail/signals.py:133
msgid "An email rule was created"
-msgstr ""
+msgstr "Sähköpostisääntö luotiin"
#: pretix/plugins/sendmail/signals.py:134
msgid "An email rule was updated"
@@ -28605,15 +28604,15 @@ msgstr "Sähköpostisääntö päivitetty"
#: pretix/plugins/sendmail/signals.py:135
msgid "A scheduled email was sent to the order"
-msgstr ""
+msgstr "Tilaukseen lähetettiin ajoitettu sähköposti"
#: pretix/plugins/sendmail/signals.py:136
msgid "A scheduled email was sent to a ticket holder"
-msgstr ""
+msgstr "Lipun haltijalle lähetettiin aikataulutettu sähköposti"
#: pretix/plugins/sendmail/signals.py:137
msgid "An email rule was deleted"
-msgstr ""
+msgstr "Sähköpostisääntö poistettiin"
#: pretix/plugins/sendmail/signals.py:140
#, python-brace-format
@@ -28625,35 +28624,37 @@ msgid ""
"This page shows you all mass emails you sent out manually. It does not "
"include emails sent out automatically."
msgstr ""
+"Tällä sivulla näkyvät kaikki manuaalisesti lähettämäsi joukkosähköpostit. Se "
+"ei sisällä automaattisesti lähetettyjä sähköposteja."
#: pretix/plugins/sendmail/templates/pretixplugins/sendmail/history.html:35
msgid "Send a new email based on this"
-msgstr ""
+msgstr "Lähetä uusi sähköposti tämän perusteella"
#: pretix/plugins/sendmail/templates/pretixplugins/sendmail/history_fragment_orders.html:2
msgid "Sent to orders:"
-msgstr ""
+msgstr "Lähetetty tilauksiin:"
#: pretix/plugins/sendmail/templates/pretixplugins/sendmail/history_fragment_orders.html:11
msgid "All customers not checked in"
-msgstr ""
+msgstr "Kaikki asiakkaat, jotka eivät ole kirjautuneet sisään"
#: pretix/plugins/sendmail/templates/pretixplugins/sendmail/history_fragment_orders.html:23
msgid "Attendee contact addresses"
-msgstr ""
+msgstr "Osallistujien yhteystiedot"
#: pretix/plugins/sendmail/templates/pretixplugins/sendmail/history_fragment_orders.html:25
msgid "All contact addresses"
-msgstr ""
+msgstr "Kaikki yhteystiedot"
#: pretix/plugins/sendmail/templates/pretixplugins/sendmail/history_fragment_orders.html:27
msgid "Order contact addresses"
-msgstr ""
+msgstr "Yhteystietojen osoitteiden tilaaminen"
#: pretix/plugins/sendmail/templates/pretixplugins/sendmail/rule_create.html:4
#: pretix/plugins/sendmail/templates/pretixplugins/sendmail/rule_create.html:6
msgid "Create Email Rule"
-msgstr ""
+msgstr "Luo sähköpostisääntö"
#: pretix/plugins/sendmail/templates/pretixplugins/sendmail/rule_create.html:9
#: pretix/plugins/sendmail/templates/pretixplugins/sendmail/rule_inspect.html:14
@@ -28661,6 +28662,8 @@ msgstr ""
#: pretix/plugins/sendmail/templates/pretixplugins/sendmail/rule_update.html:10
msgid "Scheduled emails are not sent as long as your ticket shop is offline."
msgstr ""
+"Ajoitettuja sähköposteja ei lähetetä niin kauan kuin lippukauppasi on "
+"offline-tilassa."
#: pretix/plugins/sendmail/templates/pretixplugins/sendmail/rule_create.html:49
#: pretix/plugins/sendmail/templates/pretixplugins/sendmail/rule_update.html:63
@@ -28669,77 +28672,82 @@ msgid ""
"your configured date. Typically, this will not be more than 10 minutes. Your "
"email will never be sent earlier than the time you configured."
msgstr ""
+"Teknisistä syistä sähköposti saatetaan itse asiassa lähettää hieman "
+"määritettyä päivämäärää myöhemmin. Yleensä tämä ei ole yli 10 minuuttia. "
+"Sähköpostiasi ei koskaan lähetetä ennen määrittämääsi ajankohtaa."
#: pretix/plugins/sendmail/templates/pretixplugins/sendmail/rule_delete.html:4
#: pretix/plugins/sendmail/templates/pretixplugins/sendmail/rule_delete.html:6
msgid "Delete Email Rule"
-msgstr ""
+msgstr "Poista sähköpostisääntö"
#: pretix/plugins/sendmail/templates/pretixplugins/sendmail/rule_delete.html:9
#, python-format
msgid "Are you sure you want to delete the rule %(subject)s?"
-msgstr ""
+msgstr "Haluatko varmasti poistaa säännön %(subject)s?"
#: pretix/plugins/sendmail/templates/pretixplugins/sendmail/rule_inspect.html:4
#: pretix/plugins/sendmail/templates/pretixplugins/sendmail/rule_inspect.html:6
msgid "Inspect Email Rule"
-msgstr ""
+msgstr "Tarkista sähköpostisääntö"
#: pretix/plugins/sendmail/templates/pretixplugins/sendmail/rule_inspect.html:8
msgid "This page shows when your rule is planned to be sent."
-msgstr ""
+msgstr "Tällä sivulla näkyy, milloin sääntö on tarkoitus lähettää."
#: pretix/plugins/sendmail/templates/pretixplugins/sendmail/rule_inspect.html:18
#: pretix/plugins/sendmail/templates/pretixplugins/sendmail/rule_list.html:29
msgid "Email subject"
-msgstr ""
+msgstr "Sähköpostin aihe"
#: pretix/plugins/sendmail/templates/pretixplugins/sendmail/rule_inspect.html:22
#: pretix/plugins/sendmail/templates/pretixplugins/sendmail/rule_inspect.html:30
#: pretix/plugins/sendmail/templates/pretixplugins/sendmail/rule_list.html:31
msgid "Scheduled time"
-msgstr ""
+msgstr "Ajastettu aika"
#: pretix/plugins/sendmail/templates/pretixplugins/sendmail/rule_inspect.html:35
msgid "Last schedule computation"
-msgstr ""
+msgstr "Viimeinen aikataulun laskenta"
#: pretix/plugins/sendmail/templates/pretixplugins/sendmail/rule_list.html:4
#: pretix/plugins/sendmail/templates/pretixplugins/sendmail/rule_list.html:6
msgid "Scheduled email rules"
-msgstr ""
+msgstr "Ajoitetun sähköpostin säännöt"
#: pretix/plugins/sendmail/templates/pretixplugins/sendmail/rule_list.html:8
msgid ""
"Email rules allow you to automatically send emails to your customers at a "
"specific time before or after your event."
msgstr ""
+"Sähköpostisääntöjen avulla voit lähettää sähköpostiviestejä asiakkaillesi "
+"automaattisesti tiettynä ajankohtana ennen tapahtumaa tai sen jälkeen."
#: pretix/plugins/sendmail/templates/pretixplugins/sendmail/rule_list.html:22
#: pretix/plugins/sendmail/templates/pretixplugins/sendmail/rule_list.html:101
msgid "Create a new rule"
-msgstr ""
+msgstr "Uuden säännön luominen"
#: pretix/plugins/sendmail/templates/pretixplugins/sendmail/rule_list.html:33
msgctxt "subevent"
msgid "Sent / Total dates"
-msgstr ""
+msgstr "Lähetetyt / yhteensä päivämäärät"
#: pretix/plugins/sendmail/templates/pretixplugins/sendmail/rule_list.html:52
msgid "Next execution:"
-msgstr ""
+msgstr "Seuraava toteutus:"
#: pretix/plugins/sendmail/templates/pretixplugins/sendmail/rule_list.html:56
msgid "unknown"
-msgstr ""
+msgstr "tuntematon"
#: pretix/plugins/sendmail/templates/pretixplugins/sendmail/rule_list.html:60
msgid "Last execution:"
-msgstr ""
+msgstr "Viimeinen toteutus:"
#: pretix/plugins/sendmail/templates/pretixplugins/sendmail/rule_list.html:82
msgid "Inspect scheduled times"
-msgstr ""
+msgstr "Tarkista ajoitetut ajat"
#: pretix/plugins/sendmail/templates/pretixplugins/sendmail/rule_list.html:83
msgid "Use as a template for a new rule"
@@ -28748,17 +28756,20 @@ msgstr "Käytä mallina uudelle säännölle"
#: pretix/plugins/sendmail/templates/pretixplugins/sendmail/rule_update.html:5
#: pretix/plugins/sendmail/templates/pretixplugins/sendmail/rule_update.html:7
msgid "Update Email Rule"
-msgstr ""
+msgstr "Päivitä sähköpostisääntö"
#: pretix/plugins/sendmail/templates/pretixplugins/sendmail/rule_update.html:21
msgid ""
"This email has already been sent for all existing dates. Changing it will "
"have no effect unless you create additional dates in this event series."
msgstr ""
+"Tämä sähköposti on jo lähetetty kaikille olemassa oleville päivämäärille. "
+"Sen muuttamisella ei ole vaikutusta, ellet luo lisäpäivämääriä tähän "
+"tapahtumasarjaan."
#: pretix/plugins/sendmail/templates/pretixplugins/sendmail/rule_update.html:23
msgid "This email has already been sent. Changing it will have no effect."
-msgstr ""
+msgstr "Tämä sähköposti on jo lähetetty. Sen muuttamisella ei ole vaikutusta."
#: pretix/plugins/sendmail/templates/pretixplugins/sendmail/rule_update.html:28
msgid ""
@@ -28766,18 +28777,21 @@ msgid ""
"Changing it will only have an effect on dates for which the email has not "
"yet been sent."
msgstr ""
+"Tämä sähköposti on jo lähetetty joillekin sarjasi päivämäärille. Sen "
+"muuttaminen vaikuttaa vain päivämääriin, joille sähköpostia ei ole vielä "
+"lähetetty."
#: pretix/plugins/sendmail/templates/pretixplugins/sendmail/send_form.html:76
msgid "You need to preview your email before you can send it."
-msgstr ""
+msgstr "Sinun on esikatseltava sähköpostisi, ennen kuin voit lähettää sen."
#: pretix/plugins/sendmail/views.py:172
msgid "You supplied an invalid log entry ID"
-msgstr ""
+msgstr "Annoit virheellisen lokimerkinnän tunnuksen"
#: pretix/plugins/sendmail/views.py:185
msgid "There are no matching recipients for your selection."
-msgstr ""
+msgstr "Valinnallesi ei ole vastaavia vastaanottajia."
#: pretix/plugins/sendmail/views.py:220
#, python-format
@@ -28785,6 +28799,8 @@ msgid ""
"Your message has been queued and will be sent to the contact addresses of %s "
"in the next few minutes."
msgstr ""
+"Viestisi on asetettu jonoon, ja se lähetetään %s:n yhteystieto-osoitteisiin "
+"muutaman minuutin kuluessa."
#: pretix/plugins/sendmail/views.py:250
msgid "Orders or attendees"
@@ -28795,19 +28811,23 @@ msgid ""
"Send an email to every customer, or to every person a ticket has been "
"purchased for, or a combination of both."
msgstr ""
+"Lähetä sähköpostia jokaiselle asiakkaalle tai jokaiselle henkilölle, jolle "
+"lippu on ostettu, tai molempien yhdistelmä."
#: pretix/plugins/sendmail/views.py:417
#, python-format
msgid "%(number)s matching order"
msgid_plural "%(number)s matching orders"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "%(number)s vastaava tilaus"
+msgstr[1] "%(number)s vastaavat tilaukset"
#: pretix/plugins/sendmail/views.py:449
msgid ""
"Send an email to every person currently waiting to receive a voucher through "
"the waiting list feature."
msgstr ""
+"Lähetä sähköpostia jokaiselle henkilölle, joka odottaa tällä hetkellä "
+"kupongin saamista odotuslistaominaisuuden kautta."
#: pretix/plugins/sendmail/views.py:516
#, python-format
@@ -28821,25 +28841,28 @@ msgstr[1] "%(number)s jonotuslista merkinnät"
#: pretix/plugins/statistics/templates/pretixplugins/statistics/index.html:8
#: pretix/plugins/statistics/templates/pretixplugins/statistics/index.html:10
msgid "Statistics"
-msgstr ""
+msgstr "Tilastot"
#: pretix/plugins/statistics/apps.py:37
msgid "Get a birds-eye view of your event sales with graphical statistics."
msgstr ""
+"Hanki lintuperspektiivi tapahtumamyynnistäsi graafisten tilastojen avulla."
#: pretix/plugins/statistics/templates/pretixplugins/statistics/index.html:19
msgid "Orders by day"
-msgstr ""
+msgstr "Päiväkohtaiset tilaukset"
#: pretix/plugins/statistics/templates/pretixplugins/statistics/index.html:25
msgid ""
"Orders paid in multiple payments are shown with the date of their last "
"payment."
msgstr ""
+"Useissa maksuissa maksetut tilaukset näytetään viimeisen maksun "
+"päivämäärällä."
#: pretix/plugins/statistics/templates/pretixplugins/statistics/index.html:34
msgid "Revenue over time"
-msgstr ""
+msgstr "Tulot ajan myötä"
#: pretix/plugins/statistics/templates/pretixplugins/statistics/index.html:40
msgctxt "subevent"
@@ -28847,72 +28870,78 @@ msgid ""
"If you select a single date, payment method fees will not be listed here as "
"it might not be clear which date they belong to."
msgstr ""
+"Jos valitset yhden päivämäärän, maksutapamaksuja ei luetella tässä, koska ei "
+"ehkä ole selvää, mihin päivämäärään ne kuuluvat."
#: pretix/plugins/statistics/templates/pretixplugins/statistics/index.html:48
msgid ""
"Only fully paid orders are counted. Orders paid in multiple payments are "
"shown with the date of their last payment."
msgstr ""
+"Vain täysin maksetut tilaukset lasketaan. Useissa maksuissa maksetut "
+"tilaukset näytetään viimeisen maksun päivämäärällä."
#: pretix/plugins/statistics/templates/pretixplugins/statistics/index.html:67
msgid "Seating Overview"
-msgstr ""
+msgstr "Istuinten yleiskatsaus"
#: pretix/plugins/statistics/templates/pretixplugins/statistics/index.html:74
msgid "Sold Seats"
-msgstr ""
+msgstr "Myydyt paikat"
#: pretix/plugins/statistics/templates/pretixplugins/statistics/index.html:80
msgid "Blocked Seats"
-msgstr ""
+msgstr "Estetyt paikat"
#: pretix/plugins/statistics/templates/pretixplugins/statistics/index.html:86
msgid "Free Seats"
-msgstr ""
+msgstr "Vapaat paikat"
#: pretix/plugins/statistics/templates/pretixplugins/statistics/index.html:94
msgid "Seating Sales Potentials"
-msgstr ""
+msgstr "Paikkamyynti potentiaali"
#: pretix/plugins/statistics/templates/pretixplugins/statistics/index.html:102
msgid "Unsold Seats"
-msgstr ""
+msgstr "Myymättömät paikat"
#: pretix/plugins/statistics/templates/pretixplugins/statistics/index.html:103
msgid "Potential Profits"
-msgstr ""
+msgstr "Voittopotentiaali"
#: pretix/plugins/statistics/templates/pretixplugins/statistics/index.html:107
msgid "Minimum Price"
-msgstr ""
+msgstr "Minimihinta"
#: pretix/plugins/statistics/templates/pretixplugins/statistics/index.html:109
#: pretix/plugins/statistics/templates/pretixplugins/statistics/index.html:111
msgid "Available"
-msgstr ""
+msgstr "Käytettävissä"
#: pretix/plugins/statistics/templates/pretixplugins/statistics/index.html:116
msgid "On Sale"
-msgstr ""
+msgstr "Myynnissä"
#: pretix/plugins/statistics/templates/pretixplugins/statistics/index.html:136
msgid "Not on Sale"
-msgstr ""
+msgstr "Ei myynnissä"
#: pretix/plugins/statistics/templates/pretixplugins/statistics/index.html:146
msgid "Seats not attributed to any specific product"
-msgstr ""
+msgstr "Istuimet, joita ei ole liitetty mihinkään tiettyyn tuotteeseen"
#: pretix/plugins/statistics/templates/pretixplugins/statistics/index.html:172
msgid ""
"We will show you a variety of statistics about your sales right here, as "
"soon as the first orders are submitted!"
msgstr ""
+"Näytämme sinulle erilaisia tilastoja myynnistäsi täällä, heti kun "
+"ensimmäiset tilaukset on lähetetty!"
#: pretix/plugins/stripe/apps.py:31 pretix/plugins/stripe/apps.py:34
#: pretix/plugins/stripe/payment.py:163
msgid "Stripe"
-msgstr ""
+msgstr "Stripe"
#: pretix/plugins/stripe/apps.py:40
msgid ""
@@ -28920,6 +28949,9 @@ msgid ""
"Stripe supports payments via credit cards as well as many local payment "
"methods such as iDEAL, Alipay,and many more."
msgstr ""
+"Hyväksy maksuja Stripen kautta, joka on maailmanlaajuisesti suosittu "
+"maksupalveluntarjoaja. Stripe tukee maksuja luottokorteilla sekä monia "
+"paikallisia maksutapoja, kuten iDEAL, Alipay ja monet muut."
#: pretix/plugins/stripe/forms.py:40
#, python-format
@@ -28927,18 +28959,20 @@ msgid ""
"The provided key \"%(value)s\" does not look valid. It should start with "
"\"%(prefix)s\"."
msgstr ""
+"Annettu avain \"%(value)s\" ei näytä kelvolliselta. Sen pitäisi alkaa "
+"%(prefix)s."
#: pretix/plugins/stripe/forms.py:51 pretix/plugins/stripe/signals.py:159
msgid "Stripe Connect: App fee (percent)"
-msgstr ""
+msgstr "Stripe Connect: Sovellusmaksu (prosenttia)"
#: pretix/plugins/stripe/forms.py:55 pretix/plugins/stripe/signals.py:163
msgid "Stripe Connect: App fee (max)"
-msgstr ""
+msgstr "Stripe Connect: Sovellusmaksu (max)"
#: pretix/plugins/stripe/forms.py:59 pretix/plugins/stripe/signals.py:167
msgid "Stripe Connect: App fee (min)"
-msgstr ""
+msgstr "Stripe Connect: Sovellusmaksu (min)"
#: pretix/plugins/stripe/payment.py:192
msgid ""
@@ -28946,14 +28980,17 @@ msgid ""
"clicking on the following button, you can either create a new Stripe account "
"connect pretix to an existing one."
msgstr ""
+"Jotta voit hyväksyä maksuja Stripen kautta, tarvitset tilin Stripessä. "
+"Napsauttamalla seuraavaa painiketta voit joko luoda uuden Stripe-tilin, "
+"yhdistää pretixin olemassa olevaan."
#: pretix/plugins/stripe/payment.py:196
msgid "Connect with Stripe"
-msgstr ""
+msgstr "Yhdistä Stripeen"
#: pretix/plugins/stripe/payment.py:206
msgid "Disconnect from Stripe"
-msgstr ""
+msgstr "Katkaise yhteys Stripeen"
#: pretix/plugins/stripe/payment.py:210
msgid ""
@@ -28962,19 +28999,23 @@ msgid ""
"automatically cancel orders when charges are refunded externally and to "
"process asynchronous payment methods like SOFORT."
msgstr ""
+"Määritä Stripe "
+"Webhook seuraavaan päätepisteeseen, jotta voit peruuttaa tilaukset "
+"automaattisesti, kun veloitukset hyvitetään ulkoisesti, ja käsitellä "
+"asynkronisia maksutapoja, kuten SOFORT."
#: pretix/plugins/stripe/payment.py:222
msgid "Enable MOTO payments for resellers"
-msgstr ""
+msgstr "Ota MOTO-maksut käyttöön jälleenmyyjille"
#: pretix/plugins/stripe/payment.py:224
msgid ""
"Gated feature (needs to be enabled for your account by Stripe support first)"
-msgstr ""
+msgstr "Porttiominaisuus (Stripe-tuen on ensin otettava se käyttöön tililläsi)"
#: pretix/plugins/stripe/payment.py:232
msgid "Stripe Integration security guide"
-msgstr ""
+msgstr "Stripe-integraation tietoturvaopas"
#: pretix/plugins/stripe/payment.py:226
#, python-format
@@ -28986,30 +29027,38 @@ msgid ""
"like the 40 page SAQ D. Please consult the %s for further information on "
"this subject."
msgstr ""
+"Voimme merkitä jälleenmyyjäliittymän kautta tekemäsi luottokorttitapahtuman "
+"MOTOksi (postimyynti / puhelinmyynti), mikä vapauttaa heidät vahvan "
+"asiakkaan tunnistamisen (SCA) vaatimuksista. Kuitenkin: Kun otat tämän "
+"ominaisuuden käyttöön, sinun on täytettävä vuosittaiset PCI-DSS-"
+"itsearviointilomakkeet, kuten 40-sivuinen SAQ D. Katso %s:stä lisätietoja "
+"tästä aiheesta."
#: pretix/plugins/stripe/payment.py:248 pretix/plugins/stripe/payment.py:253
msgid "Stripe account"
-msgstr ""
+msgstr "Stripe-tili"
#: pretix/plugins/stripe/payment.py:261
msgctxt "stripe"
msgid "Live"
-msgstr ""
+msgstr "Live"
#: pretix/plugins/stripe/payment.py:262
msgctxt "stripe"
msgid "Testing"
-msgstr ""
+msgstr "Testaus"
#: pretix/plugins/stripe/payment.py:264
msgid ""
"If your event is in test mode, we will always use Stripe's test API, "
"regardless of this setting."
msgstr ""
+"Jos tapahtumasi on testitilassa, käytämme aina Stripen "
+"testisovellusliittymää tästä asetuksesta riippumatta."
#: pretix/plugins/stripe/payment.py:277
msgid "Publishable key"
-msgstr ""
+msgstr "Julkaistava avain"
#: pretix/plugins/stripe/payment.py:280
msgid "Generate API keys"
@@ -29021,20 +29070,23 @@ msgid ""
"generate you API keys with the recommended permission level for optimal "
"usage with pretix."
msgstr ""
+"Yllä oleva painike asentaa Stripe-sovelluksemme tilillesi ja luo sinulle API-"
+"avaimet suositellulla käyttöoikeustasolla optimaaliseen käyttöön pretixin "
+"kanssa."
#: pretix/plugins/stripe/payment.py:291
msgid "Secret key"
-msgstr ""
+msgstr "Salainen avain"
#: pretix/plugins/stripe/payment.py:300
msgid ""
"The country in which your Stripe-account is registered in. Usually, this is "
"your country of residence."
-msgstr ""
+msgstr "Maa, jossa Stripe-tilisi on rekisteröity. Yleensä tämä on asuinmaasi."
#: pretix/plugins/stripe/payment.py:309
msgid "Check for Apple Pay/Google Pay"
-msgstr ""
+msgstr "Tarkista Apple Pay/Google Pay"
#: pretix/plugins/stripe/payment.py:313
msgid ""
@@ -29044,10 +29096,14 @@ msgid ""
"take into consideration if Google Pay/Apple Pay has been disabled in the "
"Stripe Dashboard."
msgstr ""
+"pretix yrittää tarkistaa, tukeeko asiakkaan verkkoselain lompakkopohjaisia "
+"maksutapoja, kuten Apple Pay tai Google Pay, ja näyttää ne näkyvästi "
+"luottokorttimaksutavan yhteydessä. Tämä tunnistus ei ota huomioon, jos "
+"Google Pay/Apple Pay on poistettu käytöstä Stripe Dashboardissa."
#: pretix/plugins/stripe/payment.py:322
msgid "Statement descriptor postfix"
-msgstr ""
+msgstr "Lausekkeen kuvaaja postfix"
#: pretix/plugins/stripe/payment.py:323
#, python-brace-format
@@ -29058,14 +29114,18 @@ msgid ""
"of characters is allowed. We do not recommend entering more than {cnt} "
"characters into this field."
msgstr ""
+"Kaikki tähän syötetyt arvot näkyvät asiakkaan luottokorttilaskussa tai "
+"pankkitilitapahtumassa. Lisäämme automaattisesti tilauskoodin sen eteen. "
+"Huomaa, että maksutavasta riippuen vain hyvin rajoitettu määrä merkkejä on "
+"sallittu. Emme suosittele syöttämään tähän kenttään yli {cnt} merkkiä."
#: pretix/plugins/stripe/payment.py:337
msgid "Credit card payments"
-msgstr ""
+msgstr "Luottokorttimaksut"
#: pretix/plugins/stripe/payment.py:342 pretix/plugins/stripe/payment.py:1527
msgid "iDEAL"
-msgstr ""
+msgstr "iDEAL"
#: pretix/plugins/stripe/payment.py:344 pretix/plugins/stripe/payment.py:352
#: pretix/plugins/stripe/payment.py:360 pretix/plugins/stripe/payment.py:395
@@ -29078,24 +29138,28 @@ msgid ""
"Some payment methods might need to be enabled in the settings of your Stripe "
"account before they work properly."
msgstr ""
+"Jotkin maksutavat on ehkä otettava käyttöön Stripe-tilisi asetuksissa, ennen "
+"kuin ne toimivat oikein."
#: pretix/plugins/stripe/payment.py:350 pretix/plugins/stripe/payment.py:1552
msgid "Alipay"
-msgstr ""
+msgstr "Alipay"
#: pretix/plugins/stripe/payment.py:358 pretix/plugins/stripe/payment.py:1564
msgid "Bancontact"
-msgstr ""
+msgstr "Bancontact"
#: pretix/plugins/stripe/payment.py:366
msgid "SEPA Direct Debit"
-msgstr ""
+msgstr "SEPA Direct Debit"
#: pretix/plugins/stripe/payment.py:369
msgid ""
"Some payment methods might need to be enabled in the settings of your Stripe "
"account before work properly."
msgstr ""
+"Jotkin maksutavat on ehkä otettava käyttöön Stripe-tilisi asetuksissa, ennen "
+"kuin ne toimivat oikein."
#: pretix/plugins/stripe/payment.py:372
msgid ""
@@ -29104,68 +29168,76 @@ msgid ""
"some cases. Please only activate this payment method if your payment term "
"allows for this lag."
msgstr ""
+"SEPA-suoraveloitusmaksuja Stripen kautta ei käsitellä "
+"välittömästi, mutta joissakin tapauksissa niiden vahvistaminen voi kestää "
+"jopa 14 päivää. Aktivoi tämä maksutapa vain, jos "
+"maksuehtosi sallii tämän viiveen."
#: pretix/plugins/stripe/payment.py:380
msgid "SEPA Creditor Mandate Name"
-msgstr ""
+msgstr "SEPA-velkojan mandaatin nimi"
#: pretix/plugins/stripe/payment.py:382
msgid ""
"Please provide your SEPA Creditor Mandate Name, that will be displayed to "
"the user."
-msgstr ""
+msgstr "Anna SEPA-velkojan valtakirjan nimi, joka näytetään käyttäjälle."
#: pretix/plugins/stripe/payment.py:393 pretix/plugins/stripe/payment.py:1677
msgid "EPS"
-msgstr ""
+msgstr "EPS"
#: pretix/plugins/stripe/payment.py:401 pretix/plugins/stripe/payment.py:1708
msgid "Multibanco"
-msgstr ""
+msgstr "Multibanco"
#: pretix/plugins/stripe/payment.py:409 pretix/plugins/stripe/payment.py:1730
msgid "Przelewy24"
-msgstr ""
+msgstr "Przelewy24"
#: pretix/plugins/stripe/payment.py:417 pretix/plugins/stripe/payment.py:1769
msgid "WeChat Pay"
-msgstr ""
+msgstr "WeChat Pay"
#: pretix/plugins/stripe/payment.py:433 pretix/plugins/stripe/payment.py:1823
msgid "Swish"
-msgstr ""
+msgstr "Swish"
#: pretix/plugins/stripe/payment.py:449 pretix/plugins/stripe/payment.py:1318
msgid "Affirm"
-msgstr ""
+msgstr "Vahvista"
#: pretix/plugins/stripe/payment.py:454
msgid "Only available for payments between $50 and $30,000."
-msgstr ""
+msgstr "Käytettävissä vain 50–30 000 dollarin maksuissa."
#: pretix/plugins/stripe/payment.py:460 pretix/plugins/stripe/payment.py:1363
msgid "Klarna"
-msgstr ""
+msgstr "Klarna"
#: pretix/plugins/stripe/payment.py:467
msgid ""
"Klarna and Stripe will decide which of the payment methods offered by Klarna "
"are available to the user."
msgstr ""
+"Klarna ja Stripe päättävät, mitkä Klarnan tarjoamista maksutavoista ovat "
+"käyttäjän käytettävissä."
#: pretix/plugins/stripe/payment.py:469
msgid ""
"Klarna's terms of services do not allow it to be used by charities or "
"political organizations."
msgstr ""
+"Klarnan käyttöehdot eivät salli hyväntekeväisyysjärjestöjen tai poliittisten "
+"järjestöjen käyttää sitä."
#: pretix/plugins/stripe/payment.py:487
msgid "MobilePay"
-msgstr ""
+msgstr "MobilePay"
#: pretix/plugins/stripe/payment.py:497
msgid "Destination"
-msgstr ""
+msgstr "Kohde"
#: pretix/plugins/stripe/payment.py:527 pretix/plugins/stripe/payment.py:1433
#, python-brace-format
@@ -29174,71 +29246,80 @@ msgid ""
">many test cards to perform a transaction. No money will actually be "
"transferred."
msgstr ""
+"Stripe-laajennus toimii testitilassa. Voit käyttää yhtä monista "
+"testikorteista tapahtuman suorittamiseen. Rahaa ei varsinaisesti "
+"siirretä."
#: pretix/plugins/stripe/payment.py:720
msgid "No payment information found."
-msgstr ""
+msgstr "Maksutietoja ei löytynyt."
#: pretix/plugins/stripe/payment.py:758
msgid ""
"We had trouble communicating with Stripe. Please try again and contact "
"support if the problem persists."
msgstr ""
+"Meillä oli vaikeuksia kommunikoida Stripen kanssa. Yritä uudelleen ja ota "
+"yhteyttä tukeen, jos ongelma jatkuu."
#: pretix/plugins/stripe/payment.py:762
msgid "Stripe returned an error"
-msgstr ""
+msgstr "Stripe palautti virheen"
#: pretix/plugins/stripe/payment.py:834
msgid "You may need to enable JavaScript for Stripe payments."
-msgstr ""
+msgstr "Sinun on ehkä otettava JavaScript käyttöön Stripe-maksuja varten."
#: pretix/plugins/stripe/payment.py:929 pretix/plugins/stripe/payment.py:1051
#, python-format
msgid "Stripe reported an error with your card: %s"
-msgstr ""
+msgstr "Stripe ilmoitti kortissasi olevasta virheestä: %s"
#: pretix/plugins/stripe/payment.py:947 pretix/plugins/stripe/payment.py:1063
msgid ""
"We had trouble communicating with Stripe. Please try again and get in touch "
"with us if this problem persists."
msgstr ""
+"Meillä oli vaikeuksia kommunikoida Stripen kanssa. Yritä uudelleen ja ota "
+"meihin yhteyttä, jos ongelma jatkuu."
#: pretix/plugins/stripe/payment.py:988
msgid ""
"Your payment is pending completion. We will inform you as soon as the "
"payment completed."
msgstr ""
+"Maksusi odottaa suorittamista. Ilmoitamme sinulle heti, kun maksu on "
+"suoritettu."
#: pretix/plugins/stripe/payment.py:996
msgid "Your payment failed. Please try again."
-msgstr ""
+msgstr "Maksusi epäonnistui. Yritä uudelleen."
#: pretix/plugins/stripe/payment.py:1002
#, python-format
msgid "Stripe reported an error: %s"
-msgstr ""
+msgstr "Stripe ilmoitti virheestä: %s"
#: pretix/plugins/stripe/payment.py:1103
msgid "Credit card via Stripe"
-msgstr ""
+msgstr "Luottokortti Stripen kautta"
#: pretix/plugins/stripe/payment.py:1104
msgid "Credit card"
-msgstr ""
+msgstr "Luottokortti"
#: pretix/plugins/stripe/payment.py:1186
#, python-brace-format
msgid "expires {month}/{year}"
-msgstr ""
+msgstr "Päättyy {month}/{year}"
#: pretix/plugins/stripe/payment.py:1191
msgid "SEPA Debit via Stripe"
-msgstr ""
+msgstr "SEPA Debitmaksu Stripe:n kautta"
#: pretix/plugins/stripe/payment.py:1192
msgid "SEPA Debit"
-msgstr ""
+msgstr "Sebit Debitmaksu"
#: pretix/plugins/stripe/payment.py:1232
msgid "Account Holder Name"
@@ -29246,11 +29327,11 @@ msgstr "Tilinhaltijan nimi"
#: pretix/plugins/stripe/payment.py:1237
msgid "Account Holder Street"
-msgstr ""
+msgstr "Tilinomistajan katuosoite"
#: pretix/plugins/stripe/payment.py:1249
msgid "Account Holder Postal Code"
-msgstr ""
+msgstr "Tilinomistajan postinumero"
#: pretix/plugins/stripe/payment.py:1261
msgid "Account Holder City"
@@ -29258,23 +29339,23 @@ msgstr "Tilinhaltijan kaupunki"
#: pretix/plugins/stripe/payment.py:1273
msgid "Account Holder Country"
-msgstr ""
+msgstr "Tilinomistajan maa"
#: pretix/plugins/stripe/payment.py:1317
msgid "Affirm via Stripe"
-msgstr ""
+msgstr "Vahvista Stripen kautta"
#: pretix/plugins/stripe/payment.py:1362
msgid "Klarna via Stripe"
-msgstr ""
+msgstr "Klarna Strippen kautta"
#: pretix/plugins/stripe/payment.py:1479
msgid "giropay via Stripe"
-msgstr ""
+msgstr "giropay Stripen kautta"
#: pretix/plugins/stripe/payment.py:1480
msgid "giropay"
-msgstr ""
+msgstr "giropay"
#: pretix/plugins/stripe/payment.py:1483
msgid ""
@@ -29282,46 +29363,53 @@ msgid ""
"German banks, usually after one-time activation. Please keep your online "
"banking account and login information available."
msgstr ""
+"giropay on online-maksutapa, joka on kaikkien saksalaisten pankkien "
+"asiakkaiden käytettävissä, yleensä kertaluonteisen aktivoinnin jälkeen. Pidä "
+"verkkopankkitilisi ja kirjautumistietosi saatavilla."
#: pretix/plugins/stripe/payment.py:1505 pretix/plugins/stripe/payment.py:1573
#: pretix/plugins/stripe/payment.py:1686
msgid "unknown name"
-msgstr ""
+msgstr "tuntematon nimi"
#: pretix/plugins/stripe/payment.py:1513 pretix/plugins/stripe/payment.py:1538
#: pretix/plugins/stripe/payment.py:1581 pretix/plugins/stripe/payment.py:1694
#: pretix/plugins/stripe/payment.py:1755
#, python-brace-format
msgid "Bank account at {bank}"
-msgstr ""
+msgstr "Pankkitili {bank}-pankissa"
#: pretix/plugins/stripe/payment.py:1526
msgid "iDEAL via Stripe"
-msgstr ""
+msgstr "iDEAL Stripen kautta"
#: pretix/plugins/stripe/payment.py:1530
msgid ""
"iDEAL is an online payment method available to customers of Dutch banks. "
"Please keep your online banking account and login information available."
msgstr ""
+"iDEAL on online-maksutapa, joka on hollantilaisten pankkien asiakkaiden "
+"käytettävissä. Pidä verkkopankkitilisi ja kirjautumistietosi saatavilla."
#: pretix/plugins/stripe/payment.py:1551
msgid "Alipay via Stripe"
-msgstr ""
+msgstr "Alipay Stripen kautta"
#: pretix/plugins/stripe/payment.py:1556
msgid ""
"This payment method is available to customers of the Chinese payment system "
"Alipay. Please keep your login information available."
msgstr ""
+"Tämä maksutapa on kiinalaisen Alipay-maksujärjestelmän asiakkaiden "
+"käytettävissä. Pidä kirjautumistietosi saatavilla."
#: pretix/plugins/stripe/payment.py:1563
msgid "Bancontact via Stripe"
-msgstr ""
+msgstr "Bancontact Stripen kautta"
#: pretix/plugins/stripe/payment.py:1594
msgid "SOFORT via Stripe"
-msgstr ""
+msgstr "SOFORT Stripen kautta"
#: pretix/plugins/stripe/payment.py:1595
msgid "SOFORT (instant bank transfer)"
@@ -29329,49 +29417,51 @@ msgstr "SOFORT (välitön pankkisiirto)"
#: pretix/plugins/stripe/payment.py:1624
msgid "Country of your bank"
-msgstr ""
+msgstr "Pankkisi maa"
#: pretix/plugins/stripe/payment.py:1625
msgid "Germany"
-msgstr ""
+msgstr "Saksa"
#: pretix/plugins/stripe/payment.py:1626
msgid "Austria"
-msgstr ""
+msgstr "Itävalta"
#: pretix/plugins/stripe/payment.py:1627
msgid "Belgium"
-msgstr ""
+msgstr "Belgia"
#: pretix/plugins/stripe/payment.py:1628
msgid "Netherlands"
-msgstr ""
+msgstr "Alankomaat"
#: pretix/plugins/stripe/payment.py:1629
msgid "Spain"
-msgstr ""
+msgstr "Espanja"
#: pretix/plugins/stripe/payment.py:1665
#, python-brace-format
msgid "Bank account {iban} at {bank}"
-msgstr ""
+msgstr "Pankkitili {iban} osoitteessa {bank}"
#: pretix/plugins/stripe/payment.py:1676
msgid "EPS via Stripe"
-msgstr ""
+msgstr "EPS Stripen kautta"
#: pretix/plugins/stripe/payment.py:1707
msgid "Multibanco via Stripe"
-msgstr ""
+msgstr "Multibanco Stripen kautta"
#: pretix/plugins/stripe/payment.py:1711
msgid ""
"Multibanco is a payment method available to Portuguese bank account holders."
msgstr ""
+"Multibanco on maksutapa, joka on portugalilaisten pankkitilien haltijoiden "
+"käytettävissä."
#: pretix/plugins/stripe/payment.py:1729
msgid "Przelewy24 via Stripe"
-msgstr ""
+msgstr "Przelewy24 Stripen kautta"
#: pretix/plugins/stripe/payment.py:1733
msgid ""
@@ -29379,128 +29469,140 @@ msgid ""
"banks. Please keep your online banking account and login information "
"available."
msgstr ""
+"Przelewy24 on online-maksutapa, joka on puolalaisten pankkien asiakkaiden "
+"käytettävissä. Pidä verkkopankkitilisi ja kirjautumistietosi saatavilla."
#: pretix/plugins/stripe/payment.py:1768
msgid "WeChat Pay via Stripe"
-msgstr ""
+msgstr "WeChat Pay Stripen kautta"
#: pretix/plugins/stripe/payment.py:1773
msgid ""
"This payment method is available to users of the Chinese app WeChat. Please "
"keep your login information available."
msgstr ""
+"Tämä maksutapa on kiinalaisen WeChat-sovelluksen käyttäjien käytettävissä. "
+"Pidä kirjautumistietosi saatavilla."
#: pretix/plugins/stripe/payment.py:1796
msgid "Revolut Pay via Stripe"
-msgstr ""
+msgstr "Revolut Pay Stripen kautta"
#: pretix/plugins/stripe/payment.py:1797
msgid "Revolut Pay"
-msgstr ""
+msgstr "Revolut Pay"
#: pretix/plugins/stripe/payment.py:1801
msgid ""
"This payment method is available to users of the Revolut app. Please keep "
"your login information available."
msgstr ""
+"Tämä maksutapa on Revolut-sovelluksen käyttäjien käytettävissä. Pidä "
+"kirjautumistietosi saatavilla."
#: pretix/plugins/stripe/payment.py:1815
msgid "PayPal via Stripe"
-msgstr ""
+msgstr "PayPal Stripen kautta"
#: pretix/plugins/stripe/payment.py:1822
msgid "Swish via Stripe"
-msgstr ""
+msgstr "Swish Stripen kautta"
#: pretix/plugins/stripe/payment.py:1827
msgid ""
"This payment method is available to users of the Swedish apps Swish and "
"BankID. Please have your app ready."
msgstr ""
+"Tämä maksutapa on ruotsalaisten sovellusten Swish ja BankID käyttäjien "
+"käytettävissä. Pidä sovelluksesi valmiina."
#: pretix/plugins/stripe/payment.py:1846
msgid "TWINT via Stripe"
-msgstr ""
+msgstr "TWINT Stripen kautta"
#: pretix/plugins/stripe/payment.py:1851
msgid ""
"This payment method is available to users of the Swiss app TWINT. Please "
"have your app ready."
msgstr ""
+"Tämä maksutapa on sveitsiläisen TWINT-sovelluksen käyttäjien käytettävissä. "
+"Pidä sovelluksesi valmiina."
#: pretix/plugins/stripe/payment.py:1873
msgid ""
"This payment method is available to MobilePay app users in Denmark and "
"Finland. Please have your app ready."
msgstr ""
+"Tämä maksutapa on MobilePay-sovelluksen käyttäjien käytettävissä Tanskassa "
+"ja Suomessa. Pidä sovelluksesi valmiina."
#: pretix/plugins/stripe/signals.py:92
msgid "Charge succeeded."
-msgstr ""
+msgstr "Maksu onnistui."
#: pretix/plugins/stripe/signals.py:93
msgid "Charge refunded."
-msgstr ""
+msgstr "Maksu palautetaan."
#: pretix/plugins/stripe/signals.py:94
msgid "Charge updated."
-msgstr ""
+msgstr "Maksu päivitetty."
#: pretix/plugins/stripe/signals.py:95
msgid "Charge pending"
-msgstr ""
+msgstr "Maksu odottaa"
#: pretix/plugins/stripe/signals.py:96
msgid "Payment authorized."
-msgstr ""
+msgstr "Maksu valtuutettu."
#: pretix/plugins/stripe/signals.py:97
msgid "Payment authorization canceled."
-msgstr ""
+msgstr "Maksun valtuutus peruutettu."
#: pretix/plugins/stripe/signals.py:98
msgid "Payment authorization failed."
-msgstr ""
+msgstr "Maksun valtuutus epäonnistui."
#: pretix/plugins/stripe/signals.py:104
msgid "Charge failed. Reason: {}"
-msgstr ""
+msgstr "Maksutapahtuma epäonnistui. Syy: {}"
#: pretix/plugins/stripe/signals.py:106
msgid "Dispute created. Reason: {}"
-msgstr ""
+msgstr "Ristiritta luotu. Syy: {}"
#: pretix/plugins/stripe/signals.py:108
msgid "Dispute updated. Reason: {}"
-msgstr ""
+msgstr "Ristiriita päivitetty. Syy: {}"
#: pretix/plugins/stripe/signals.py:110
msgid "Dispute closed. Status: {}"
-msgstr ""
+msgstr "Ristiriita suljettu. Syy: {}"
#: pretix/plugins/stripe/signals.py:113
msgid "Stripe reported an event: {}"
-msgstr ""
+msgstr "Stripe ilmoitti tapahtumasta: {}"
#: pretix/plugins/stripe/signals.py:124
msgid "Stripe Connect: Client ID"
-msgstr ""
+msgstr "Stripe Connect: Stripe Stripe: Asiakastunnus"
#: pretix/plugins/stripe/signals.py:131
msgid "Stripe Connect: Secret key"
-msgstr ""
+msgstr "Stripe Connect: Salainen avain"
#: pretix/plugins/stripe/signals.py:138
msgid "Stripe Connect: Publishable key"
-msgstr ""
+msgstr "Stripe Connect: Julkaistavissa oleva avain"
#: pretix/plugins/stripe/signals.py:145
msgid "Stripe Connect: Secret key (test)"
-msgstr ""
+msgstr "Stripe Connect: Salainen avain (testi)"
#: pretix/plugins/stripe/signals.py:152
msgid "Stripe Connect: Publishable key (test)"
-msgstr ""
+msgstr "Stripe Connect: Julkaistavissa oleva avain (testi)"
#: pretix/plugins/stripe/signals.py:178
#: pretix/plugins/stripe/templates/pretixplugins/stripe/oauth_disconnect.html:3
@@ -29508,26 +29610,26 @@ msgstr ""
#: pretix/plugins/stripe/templates/pretixplugins/stripe/organizer_stripe.html:6
#: pretix/plugins/stripe/templates/pretixplugins/stripe/organizer_stripe.html:9
msgid "Stripe Connect"
-msgstr ""
+msgstr "Stripe Connect"
#: pretix/plugins/stripe/templates/pretixplugins/stripe/checkout_payment_confirm.html:4
msgid "The total amount will be withdrawn from your credit card."
-msgstr ""
+msgstr "Kokonaismäärä veloitetaan luottokortiltasi."
#: pretix/plugins/stripe/templates/pretixplugins/stripe/checkout_payment_confirm.html:8
#: pretix/plugins/stripe/templates/pretixplugins/stripe/checkout_payment_form_card.html:29
#: pretix/plugins/stripe/templates/pretixplugins/stripe/control.html:12
msgid "Card type"
-msgstr ""
+msgstr "Kortin tyyppi"
#: pretix/plugins/stripe/templates/pretixplugins/stripe/checkout_payment_confirm.html:14
msgid "The total amount will be withdrawn from your bank account."
-msgstr ""
+msgstr "Kokonaismäärä veloitetaan pankkitililtäsi."
#: pretix/plugins/stripe/templates/pretixplugins/stripe/checkout_payment_confirm.html:18
#: pretix/plugins/stripe/templates/pretixplugins/stripe/checkout_payment_form_sepadirectdebit.html:23
msgid "Banking Institution"
-msgstr ""
+msgstr "Pankkilaitos"
#: pretix/plugins/stripe/templates/pretixplugins/stripe/checkout_payment_confirm.html:20
#: pretix/plugins/stripe/templates/pretixplugins/stripe/checkout_payment_form_sepadirectdebit.html:25
@@ -29543,46 +29645,54 @@ msgid ""
"provider to complete your payment. You will then be redirected back here to "
"get your tickets."
msgstr ""
+"Kun olet lähettänyt tilauksesi, ohjaamme sinut maksupalveluntarjoajalle "
+"maksun suorittamista varten. Tämän jälkeen sinut ohjataan takaisin tänne "
+"saadaksesi lippusi."
#: pretix/plugins/stripe/templates/pretixplugins/stripe/checkout_payment_form_card.html:9
msgid ""
"This transaction will be marked as Mail Order/Telephone Order, exempting it "
"from Strong Customer Authentication (SCA) whenever possible"
msgstr ""
+"Tämä maksutapahtuma merkitään postimyynniksi/puhelintilaukseksi, jolloin se "
+"vapautetaan mahdollisuuksien mukaan asiakkaan vahvan tunnistamisen (SCA) "
+"piiristä"
#: pretix/plugins/stripe/templates/pretixplugins/stripe/checkout_payment_form_card.html:19
msgid "For a credit card payment, please turn on JavaScript."
-msgstr ""
+msgstr "Jos haluat maksaa luottokortilla, ota JavaScript käyttöön."
#: pretix/plugins/stripe/templates/pretixplugins/stripe/checkout_payment_form_card.html:25
msgid ""
"You already entered a card number that we will use to charge the payment "
"amount."
-msgstr ""
+msgstr "Olet jo antanut korttinumeron, jota käytämme maksun veloittamiseen."
#: pretix/plugins/stripe/templates/pretixplugins/stripe/checkout_payment_form_card.html:36
msgid "Use a different card"
-msgstr ""
+msgstr "Käytä eri korttia"
#: pretix/plugins/stripe/templates/pretixplugins/stripe/checkout_payment_form_card.html:66
msgid ""
"Your payment will be processed by Stripe, Inc. Your credit card data will be "
"transmitted directly to Stripe and never touches our servers."
msgstr ""
+"Maksuasi käsittelee Stripe, Inc. Luottokorttitietosi siirretään suoraan "
+"Stripeen, eivätkä ne koskaan päädy palvelillimme."
#: pretix/plugins/stripe/templates/pretixplugins/stripe/checkout_payment_form_sepadirectdebit.html:13
msgid "For a SEPA Debit payment, please turn on JavaScript."
-msgstr ""
+msgstr "SEPA Debit -maksua varten ota JavaScript käyttöön."
#: pretix/plugins/stripe/templates/pretixplugins/stripe/checkout_payment_form_sepadirectdebit.html:19
msgid ""
"You already entered a bank account that we will use to charge the payment "
"amount."
-msgstr ""
+msgstr "Olet jo antanut pankkitilin, jota käytämme maksun veloittamiseen."
#: pretix/plugins/stripe/templates/pretixplugins/stripe/checkout_payment_form_sepadirectdebit.html:30
msgid "Use a different account"
-msgstr ""
+msgstr "Käytä eri tiliä"
#: pretix/plugins/stripe/templates/pretixplugins/stripe/checkout_payment_form_sepadirectdebit.html:54
#, python-format
@@ -29598,14 +29708,24 @@ msgid ""
"statement that you can obtain from your bank. You agree to receive "
"notifications for future debits up to 2 days before they occur."
msgstr ""
+"Antamalla maksutietosi ja vahvistamalla tämän maksun valtuutat (A) "
+"%(sepa_creditor_name)s ja Stripe, maksupalveluntarjoajamme ja/tai PPRO, sen "
+"paikallinen palveluntarjoaja, lähettämään pankillesi ohjeet tilisi "
+"veloittamiseksi ja (B) pankkisi veloittamaan tiliäsi näiden ohjeiden "
+"mukaisesti. Osana oikeuksiasi sinulla on oikeus saada pankiltasi hyvitystä "
+"pankkisi kanssa tekemäsi sopimuksen ehtojen mukaisesti. Palautusta on "
+"haettava 8 viikon kuluessa siitä päivästä, jona tiliäsi veloitettiin. "
+"Oikeutesi selitetään selvityksessä, jonka saat pankistasi. Suostut saamaan "
+"ilmoitukset tulevista veloituksista enintään 2 päivää ennen niiden "
+"tapahtumista."
#: pretix/plugins/stripe/templates/pretixplugins/stripe/control.html:7
msgid "Charge ID"
-msgstr ""
+msgstr "Maksun tunnus"
#: pretix/plugins/stripe/templates/pretixplugins/stripe/control.html:18
msgid "MOTO"
-msgstr ""
+msgstr "MOTO"
#: pretix/plugins/stripe/templates/pretixplugins/stripe/control.html:26
#: pretix/plugins/stripe/templates/pretixplugins/stripe/control.html:34
@@ -29615,7 +29735,7 @@ msgstr ""
#: pretix/plugins/stripe/templates/pretixplugins/stripe/control.html:64
#: pretix/plugins/stripe/templates/pretixplugins/stripe/control.html:67
msgid "Payer name"
-msgstr ""
+msgstr "Maksajan nimi"
#: pretix/plugins/stripe/templates/pretixplugins/stripe/oauth_disconnect.html:12
msgid "Do you really want to disconnect your Stripe account?"
@@ -29634,14 +29754,16 @@ msgid ""
"In your online bank account or from an ATM, choose \"Payment and other "
"services\"."
msgstr ""
+"Valitse verkkopankkitililläsi tai pankkiautomaatista ”Maksaminen ja muut "
+"palvelut”."
#: pretix/plugins/stripe/templates/pretixplugins/stripe/pending.html:14
msgid "Click \"Payments of services/shopping\"."
-msgstr ""
+msgstr "Napsauta ”Palvelujen/ostosten maksut”."
#: pretix/plugins/stripe/templates/pretixplugins/stripe/pending.html:19
msgid "Enter the entity number, reference number, and amount."
-msgstr ""
+msgstr "Kirjoita yksikön numero, viitenumero ja määrä."
#: pretix/plugins/stripe/templates/pretixplugins/stripe/pending.html:25
msgid "Entity number:"
@@ -29656,55 +29778,63 @@ msgid ""
"We're waiting for an answer from the payment provider regarding your "
"payment. Please contact us if this takes more than a few days."
msgstr ""
+"Odotamme vastausta maksupalveluntarjoajalta maksuasi koskien. Ota meihin "
+"yhteyttä, jos tämä kestää kauemmin kuin muutaman päivän."
#: pretix/plugins/stripe/templates/pretixplugins/stripe/pending.html:42
msgid ""
"You need to confirm your payment. Please click the link below to do so or "
"start a new payment."
msgstr ""
+"Sinun on vahvistettava maksusi. Klikkaa alla olevaa linkkiä tai aloita uusi "
+"maksu."
#: pretix/plugins/stripe/templates/pretixplugins/stripe/pending.html:48
msgid "Confirm payment"
-msgstr ""
+msgstr "Vahvista maksutapahtuma"
#: pretix/plugins/stripe/templates/pretixplugins/stripe/pending.html:54
msgid ""
"Please scan the barcode below to complete your WeChat payment. Once you have "
"completed your payment, you can refresh this page."
msgstr ""
+"Skannaa alla oleva viivakoodi saadaksesi WeChat-maksun suoritettua. Kun olet "
+"suorittanut maksun, voit päivittää tämän sivun."
#: pretix/plugins/stripe/templates/pretixplugins/stripe/pending.html:62
msgid ""
"The payment transaction could not be completed for the following reason:"
-msgstr ""
+msgstr "Maksutapahtumaa ei voitu suorittaa seuraavasta syystä:"
#: pretix/plugins/stripe/templates/pretixplugins/stripe/sca.html:22
#, python-format
msgid "Confirm payment: %(code)s"
-msgstr ""
+msgstr "Vahvista maksu: %(code)s"
#: pretix/plugins/stripe/templates/pretixplugins/stripe/sca_return.html:20
msgid "Confirming your payment…"
-msgstr ""
+msgstr "Maksun vahvistaminen…"
#: pretix/plugins/stripe/views.py:104 pretix/plugins/stripe/views.py:110
#: pretix/plugins/stripe/views.py:137 pretix/plugins/stripe/views.py:149
msgid "An error occurred during connecting with Stripe, please try again."
-msgstr ""
+msgstr "Stripeen yhdistämisen aikana tapahtui virhe, yritä uudelleen."
#: pretix/plugins/stripe/views.py:157 pretix/plugins/stripe/views.py:159
msgid "Stripe returned an error: {}"
-msgstr ""
+msgstr "Stripe palautti virheen: {}"
#: pretix/plugins/stripe/views.py:162
msgid ""
"Your Stripe account is now connected to pretix. You can change the settings "
"in detail below."
msgstr ""
+"Stripe-tilisi on nyt yhdistetty pretixiin. Voit muuttaa asetuksia "
+"yksityiskohtaisesti alla."
#: pretix/plugins/stripe/views.py:476
msgid "Your Stripe account has been disconnected."
-msgstr ""
+msgstr "Stripe-tilisi yhteys on katkaistu."
#: pretix/plugins/stripe/views.py:506 pretix/plugins/stripe/views.py:525
#: pretix/plugins/stripe/views.py:530
@@ -29712,21 +29842,25 @@ msgid ""
"Sorry, there was an error in the payment process. Please check the link in "
"your emails to continue."
msgstr ""
+"Maksuprosessissa tapahtui virhe. Tarkista sähköpostissasi oleva linkki "
+"jatkaaksesi."
#: pretix/plugins/stripe/views.py:562
msgid ""
"We had trouble authorizing your card payment. Please try again and get in "
"touch with us if this problem persists."
msgstr ""
+"Meillä oli ongelmia korttimaksun hyväksymisessä. Yritä uudelleen ja ota "
+"meihin yhteyttä, jos ongelma jatkuu."
#: pretix/plugins/stripe/views.py:590 pretix/plugins/stripe/views.py:593
msgid "Sorry, there was an error in the payment process."
-msgstr ""
+msgstr "Valitettavasti maksuprosessissa tapahtui virhe."
#: pretix/plugins/ticketoutputpdf/apps.py:44
#: pretix/plugins/ticketoutputpdf/apps.py:47
msgid "PDF ticket output"
-msgstr ""
+msgstr "PDF-lipun tulostus"
#: pretix/plugins/ticketoutputpdf/apps.py:52
msgid ""
From f1fbb08c2b14a8d5df42b1682317de5562612d9b Mon Sep 17 00:00:00 2001
From: Karoliina Grohn
Date: Sun, 9 Feb 2025 13:04:06 +0000
Subject: [PATCH 41/99] Translations: Update Finnish
Currently translated at 62.4% (3651 of 5846 strings)
Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/fi/
powered by weblate
---
src/pretix/locale/fi/LC_MESSAGES/django.po | 42 ++++++++++++----------
1 file changed, 23 insertions(+), 19 deletions(-)
diff --git a/src/pretix/locale/fi/LC_MESSAGES/django.po b/src/pretix/locale/fi/LC_MESSAGES/django.po
index afe3bc9810..77f9a7afb8 100644
--- a/src/pretix/locale/fi/LC_MESSAGES/django.po
+++ b/src/pretix/locale/fi/LC_MESSAGES/django.po
@@ -9,7 +9,7 @@ msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-01-29 13:18+0000\n"
"PO-Revision-Date: 2025-02-09 13:07+0000\n"
-"Last-Translator: Hannu Kaakinen \n"
+"Last-Translator: Karoliina Grohn \n"
"Language-Team: Finnish \n"
"Language: fi\n"
@@ -29963,8 +29963,9 @@ msgid "Ticket layouts"
msgstr ""
#: pretix/plugins/ticketoutputpdf/templates/pretixplugins/ticketoutputpdf/index.html:10
+#, fuzzy
msgid "You haven't created any layouts yet."
-msgstr ""
+msgstr "Et ole luonut vielä asetelmaa."
#: pretix/plugins/ticketoutputpdf/templates/pretixplugins/ticketoutputpdf/index.html:17
#: pretix/plugins/ticketoutputpdf/templates/pretixplugins/ticketoutputpdf/index.html:24
@@ -29972,8 +29973,9 @@ msgid "Create a new layout"
msgstr ""
#: pretix/plugins/ticketoutputpdf/ticketoutput.py:63
+#, fuzzy
msgid "PDF output"
-msgstr ""
+msgstr "PDF"
#: pretix/plugins/ticketoutputpdf/ticketoutput.py:65
msgid "Download tickets (PDF)"
@@ -32513,8 +32515,8 @@ msgstr "Tililläsi ei ole vielä jäsenyyksiä."
#, python-format
msgid "%(counter)s item"
msgid_plural "%(counter)s items"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "%(counter)s tuote"
+msgstr[1] "%(counter)s tuotteet"
#: pretix/presale/templates/pretixpresale/organizers/customer_orders.html:78
msgid "You don’t have any orders in your account yet."
@@ -32530,7 +32532,7 @@ msgstr "Salasanan nollaus"
#: pretix/presale/templates/pretixpresale/organizers/customer_password.html:11
#: pretix/presale/templates/pretixpresale/organizers/customer_setpassword.html:11
msgid "Set a new password for your account"
-msgstr ""
+msgstr "Aseta uusi salasana tilillesi"
#: pretix/presale/templates/pretixpresale/organizers/customer_profile_delete.html:5
#: pretix/presale/templates/pretixpresale/organizers/customer_profile_delete.html:10
@@ -32539,17 +32541,17 @@ msgstr "Poista profiili"
#: pretix/presale/templates/pretixpresale/organizers/customer_profile_delete.html:15
msgid "Do you really want to delete the following profile from your account?"
-msgstr ""
+msgstr "Haluatko todella poistaa seuraavan profiilin tililtäsi?"
#: pretix/presale/templates/pretixpresale/organizers/customer_profiles.html:5
#: pretix/presale/templates/pretixpresale/organizers/customer_profiles.html:11
#: pretix/presale/views/customer.py:378
msgid "Attendee profiles"
-msgstr ""
+msgstr "Osaanottajaprofiili"
#: pretix/presale/templates/pretixpresale/organizers/customer_profiles.html:37
msgid "You don’t have any attendee profiles in your account yet."
-msgstr ""
+msgstr "Sinulla ei ole vielä osanottajaprofiileja tililläsi."
#: pretix/presale/templates/pretixpresale/organizers/customer_registration.html:6
msgid "Registration"
@@ -32558,19 +32560,19 @@ msgstr "Rekisteröityminen"
#: pretix/presale/templates/pretixpresale/organizers/customer_registration.html:11
#, python-format
msgid "Create a new account at %(org)s"
-msgstr ""
+msgstr "Luo uusi tili %(org)s"
#: pretix/presale/templates/pretixpresale/organizers/customer_registration.html:24
msgid "Log in to an existing account"
-msgstr ""
+msgstr "Kirjaudu sisään olemassa olevalle tilille"
#: pretix/presale/templates/pretixpresale/organizers/customer_resetpw.html:20
msgid "Request a new password"
-msgstr ""
+msgstr "Pyydä uutta salasanaa"
#: pretix/presale/templates/pretixpresale/organizers/index.html:10
msgid "Event list"
-msgstr ""
+msgstr "Tapahtumalista"
#: pretix/presale/templates/pretixpresale/organizers/index.html:39
msgid "Past events"
@@ -32587,7 +32589,7 @@ msgstr "Useita päivämääriä"
#: pretix/presale/templates/pretixpresale/organizers/index.html:105
msgid "No archived events found."
-msgstr ""
+msgstr "Arkistoituja tapahtumia ei löydy."
#: pretix/presale/templates/pretixpresale/organizers/index.html:105
msgid "Show upcoming"
@@ -32604,7 +32606,7 @@ msgstr "Näytä menneet tapahtumat"
#: pretix/presale/templates/pretixpresale/pagination.html:14
#, python-format
msgid "Page %(page)s of %(of)s"
-msgstr ""
+msgstr "Sivu %(page)s%(of)s"
#: pretix/presale/templates/pretixpresale/postmessage.html:21
#: pretix/presale/templates/pretixpresale/waiting.html:22
@@ -32614,15 +32616,15 @@ msgstr "Pyyntöäsi käsitellään …"
#: pretix/presale/utils.py:271 pretix/presale/utils.py:417
#: pretix/presale/utils.py:418
msgid "The selected event was not found."
-msgstr ""
+msgstr "Valittua tapahtumaa ei löytynyt."
#: pretix/presale/utils.py:381
msgid "This feature is not enabled."
-msgstr ""
+msgstr "Tämä toiminto ei ole sallittu."
#: pretix/presale/utils.py:427 pretix/presale/utils.py:433
msgid "The selected organizer was not found."
-msgstr ""
+msgstr "Valittua järjestäjää ei löytynyt."
#: pretix/presale/views/__init__.py:272
#, python-brace-format
@@ -32630,10 +32632,12 @@ msgid ""
"Your selected payment method can only be used for a payment of at least "
"{amount}."
msgstr ""
+"Valitsemaasi maksutapaa voi käyttää ainoastaan vähintään {amount} kokoisen "
+"summan maksamiseen."
#: pretix/presale/views/cart.py:200
msgid "Please enter positive numbers only."
-msgstr ""
+msgstr "Ole hyvä ja anna vain positiivisia lukuja."
#: pretix/presale/views/cart.py:439
msgid "We applied the voucher to as many products in your cart as we could."
From ad7c4a957d21ef6a01f37687391da40476b4ae2f Mon Sep 17 00:00:00 2001
From: Hannu Kaakinen
Date: Sun, 9 Feb 2025 13:09:26 +0000
Subject: [PATCH 42/99] Translations: Update Finnish
Currently translated at 65.8% (3848 of 5846 strings)
Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/fi/
powered by weblate
---
src/pretix/locale/fi/LC_MESSAGES/django.po | 346 +++++++++++++--------
1 file changed, 219 insertions(+), 127 deletions(-)
diff --git a/src/pretix/locale/fi/LC_MESSAGES/django.po b/src/pretix/locale/fi/LC_MESSAGES/django.po
index 77f9a7afb8..30843a9ee1 100644
--- a/src/pretix/locale/fi/LC_MESSAGES/django.po
+++ b/src/pretix/locale/fi/LC_MESSAGES/django.po
@@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-01-29 13:18+0000\n"
-"PO-Revision-Date: 2025-02-09 13:07+0000\n"
-"Last-Translator: Karoliina Grohn \n"
+"PO-Revision-Date: 2025-02-09 22:00+0000\n"
+"Last-Translator: Hannu Kaakinen \n"
"Language-Team: Finnish \n"
"Language: fi\n"
@@ -1896,7 +1896,7 @@ msgstr "Sisällytä vain tilaukset, jotka on luotu tämän aikarajan sisällä."
#: pretix/plugins/reports/exporters.py:454
#: pretix/plugins/ticketoutputpdf/exporters.py:97
msgid "Event date"
-msgstr "Tapahtuman päivämäärä"
+msgstr "Tapahtumapäivämäärä"
#: pretix/base/exporters/orderlist.py:138
msgid ""
@@ -29867,48 +29867,53 @@ msgid ""
"Issue tickets as PDF files, usable on any device. Our drag-and-drop editor "
"allows you to customize the layout of the PDF files to your brand."
msgstr ""
+"Anna liput PDF-tiedostoina, joita voi käyttää millä tahansa laitteella. Vedä "
+"ja pudota -editorimme avulla voit mukauttaa PDF-tiedostojen ulkoasun "
+"brändisi mukaiseksi."
#: pretix/plugins/ticketoutputpdf/apps.py:71
#: pretix/plugins/ticketoutputpdf/migrations/0002_auto_20180605_2022.py:22
#: pretix/plugins/ticketoutputpdf/migrations/0002_auto_20180605_2022.py:38
#: pretix/plugins/ticketoutputpdf/views.py:227
msgid "Default layout"
-msgstr ""
+msgstr "Oletusasettelu"
#: pretix/plugins/ticketoutputpdf/exporters.py:70
msgid ""
"Download PDF versions of all tickets in your event as one large PDF file."
msgstr ""
+"Lataa tapahtuman kaikkien lippujen PDF-versiot yhdeksi suureksi PDF-"
+"tiedostoksi."
#: pretix/plugins/ticketoutputpdf/forms.py:49
#, python-brace-format
msgid "PDF ticket layout for {channel}"
-msgstr ""
+msgstr "PDF-lipun ulkoasu {channel}:lle"
#: pretix/plugins/ticketoutputpdf/forms.py:52
msgid "(Same as PDF ticket layout)"
-msgstr ""
+msgstr "(Sama kuin PDF-lippujen ulkoasu)"
#: pretix/plugins/ticketoutputpdf/forms.py:54
msgid "PDF ticket layout"
-msgstr ""
+msgstr "PDF-lipun ulkoasu"
#: pretix/plugins/ticketoutputpdf/signals.py:137
msgid "Ticket layout created."
-msgstr ""
+msgstr "Lipun ulkoasu luotu."
#: pretix/plugins/ticketoutputpdf/signals.py:138
msgid "Ticket layout deleted."
-msgstr ""
+msgstr "Lipun ulkoasu poistettu."
#: pretix/plugins/ticketoutputpdf/signals.py:139
msgid "Ticket layout changed."
-msgstr ""
+msgstr "Lippujen ulkoasu muuttui."
#: pretix/plugins/ticketoutputpdf/signals.py:143
#, python-brace-format
msgid "Ticket layout {val}"
-msgstr ""
+msgstr "Lipun asettelu {val}"
#: pretix/plugins/ticketoutputpdf/templates/pretixplugins/ticketoutputpdf/control_order_position_buttons.html:7
msgid "Alternative ticket"
@@ -29919,26 +29924,28 @@ msgstr "Vaihtoehtoinen lippu"
#: pretix/plugins/ticketoutputpdf/templates/pretixplugins/ticketoutputpdf/edit.html:8
#: pretix/plugins/ticketoutputpdf/templates/pretixplugins/ticketoutputpdf/edit.html:15
msgid "Ticket layout"
-msgstr ""
+msgstr "Lipun asettelu"
#: pretix/plugins/ticketoutputpdf/templates/pretixplugins/ticketoutputpdf/delete.html:9
#, python-format
msgid "Are you sure you want to delete the layout %(layout)s?"
msgstr ""
+"Oletko varma, että haluat poistaa asettelun %(layout)s?"
#: pretix/plugins/ticketoutputpdf/templates/pretixplugins/ticketoutputpdf/edit.html:6
#: pretix/plugins/ticketoutputpdf/templates/pretixplugins/ticketoutputpdf/edit.html:13
#, python-format
msgid "Ticket layout: %(name)s"
-msgstr ""
+msgstr "Lippujen asettelu: %(name)s"
#: pretix/plugins/ticketoutputpdf/templates/pretixplugins/ticketoutputpdf/edit.html:23
msgid "Ticket design"
-msgstr ""
+msgstr "Lippujen suunnittelu"
#: pretix/plugins/ticketoutputpdf/templates/pretixplugins/ticketoutputpdf/edit.html:27
msgid "You can modify the design after you saved this page."
msgstr ""
+"Voit muokata suunnittelua sen jälkeen, kun olet tallentanut tämän sivun."
#: pretix/plugins/ticketoutputpdf/templates/pretixplugins/ticketoutputpdf/form.html:3
msgid ""
@@ -29948,34 +29955,37 @@ msgid ""
"choice. The editor is easy to use thanks to its drag-and-drop user "
"interface, but it requires a modern browser and a decent internet connection."
msgstr ""
+"Voit mukauttaa lippujen suunnittelua PDF-lippueditorillamme. Siellä voit "
+"ladata PDF-tiedoston, jota käytetään lippujen taustana, ja sitten sijoittaa "
+"erilaisia tekstejä ja QR-koodeja taustalle haluamiisi kohtiin. Editoria on "
+"helppo käyttää sen raahaa ja pudota -käyttöliittymän ansiosta, mutta se "
+"vaatii nykyaikaisen selaimen ja kunnollisen internetyhteyden."
#: pretix/plugins/ticketoutputpdf/templates/pretixplugins/ticketoutputpdf/form.html:14
msgid "Open Layout Designer"
-msgstr ""
+msgstr "Open Layout Designer"
#: pretix/plugins/ticketoutputpdf/templates/pretixplugins/ticketoutputpdf/form.html:18
msgid "Advanced mode (multiple layouts)"
-msgstr ""
+msgstr "Edistynyt tila (useita asetteluja)"
#: pretix/plugins/ticketoutputpdf/templates/pretixplugins/ticketoutputpdf/index.html:4
#: pretix/plugins/ticketoutputpdf/templates/pretixplugins/ticketoutputpdf/index.html:6
msgid "Ticket layouts"
-msgstr ""
+msgstr "Lipun asettelut"
#: pretix/plugins/ticketoutputpdf/templates/pretixplugins/ticketoutputpdf/index.html:10
-#, fuzzy
msgid "You haven't created any layouts yet."
-msgstr "Et ole luonut vielä asetelmaa."
+msgstr "Et ole vielä luonut yhtään asettelua."
#: pretix/plugins/ticketoutputpdf/templates/pretixplugins/ticketoutputpdf/index.html:17
#: pretix/plugins/ticketoutputpdf/templates/pretixplugins/ticketoutputpdf/index.html:24
msgid "Create a new layout"
-msgstr ""
+msgstr "Luo uusi ulkoasu"
#: pretix/plugins/ticketoutputpdf/ticketoutput.py:63
-#, fuzzy
msgid "PDF output"
-msgstr "PDF"
+msgstr "PDF vienti"
#: pretix/plugins/ticketoutputpdf/ticketoutput.py:65
msgid "Download tickets (PDF)"
@@ -29987,25 +29997,25 @@ msgstr "Lataa lippu (PDF)"
#: pretix/plugins/ticketoutputpdf/views.py:62
msgid "Default ticket layout"
-msgstr ""
+msgstr "Lipun oletusasettelu"
#: pretix/plugins/ticketoutputpdf/views.py:119
msgid "The new ticket layout has been created."
-msgstr ""
+msgstr "Uusi lippujen ulkoasu on luotu."
#: pretix/plugins/ticketoutputpdf/views.py:168
#: pretix/plugins/ticketoutputpdf/views.py:198
#: pretix/plugins/ticketoutputpdf/views.py:246
msgid "The requested layout does not exist."
-msgstr ""
+msgstr "Pyydettyä ulkoasua ei ole olemassa."
#: pretix/plugins/ticketoutputpdf/views.py:210
msgid "The selected ticket layout been deleted."
-msgstr ""
+msgstr "Valitun lipun asettelu on poistettu."
#: pretix/plugins/ticketoutputpdf/views.py:250
msgid "Ticket PDF layout: {}"
-msgstr ""
+msgstr "Lipun PDF-asettelu: {}"
#: pretix/plugins/webcheckin/apps.py:30 pretix/plugins/webcheckin/apps.py:33
msgid "Web-based check-in"
@@ -30013,7 +30023,7 @@ msgstr "Ilmoittautuminen verkossa"
#: pretix/plugins/webcheckin/apps.py:38
msgid "Turn your browser into a check-in device to perform access control."
-msgstr ""
+msgstr "Tee selaimestasi sisäänkirjautumislaite kulunvalvontaa varten."
#: pretix/plugins/webcheckin/signals.py:36
msgid "Web Check-in"
@@ -30035,18 +30045,19 @@ msgstr "Asiakastili"
#: pretix/presale/checkoutflow.py:338
msgid "We failed to process your authentication request, please try again."
-msgstr ""
+msgstr "Emme pystyneet käsittelemään todennuspyyntöäsi, yritä uudelleen."
#: pretix/presale/checkoutflow.py:401
msgctxt "checkoutflow"
msgid "Membership"
-msgstr ""
+msgstr "Jäsenyys"
#: pretix/presale/checkoutflow.py:449 pretix/presale/checkoutflow.py:470
msgid ""
"Your cart includes a product that requires an active membership to be "
"selected."
msgstr ""
+"Ostoskorissasi on tuote, jonka valitseminen edellyttää aktiivista jäsenyyttä."
#: pretix/presale/checkoutflow.py:489
msgctxt "checkoutflow"
@@ -30058,7 +30069,7 @@ msgstr "Lisätuotteet"
#: pretix/presale/views/cart.py:216 pretix/presale/views/cart.py:229
#: pretix/presale/views/order.py:1495 pretix/presale/views/order.py:1503
msgid "Please enter numbers only."
-msgstr ""
+msgstr "Kirjoita vain numeroita."
#: pretix/presale/checkoutflow.py:760
msgctxt "checkoutflow"
@@ -30070,6 +30081,8 @@ msgid ""
"Unfortunately, based on the invoice address you entered, we're not able to "
"sell you the selected products for tax-related legal reasons."
msgstr ""
+"Valitettavasti emme voi myydä sinulle valitsemiasi tuotteita antamasi "
+"laskutusosoitteen perusteella verotukseen liittyvistä oikeudellisista syistä."
#: pretix/presale/checkoutflow.py:992
msgid ""
@@ -30077,20 +30090,23 @@ msgid ""
"rate to your purchase and the price of the products in your cart has changed "
"accordingly."
msgstr ""
+"Syöttämäsi laskutusosoitteen vuoksi meidän on sovellettava eri verokantaa "
+"ostoksiisi, ja ostoskorissasi olevien tuotteiden hinta on muuttunut "
+"vastaavasti."
#: pretix/presale/checkoutflow.py:1025
msgid "Please enter your invoicing address."
-msgstr ""
+msgstr "Anna laskutusosoitteesi."
#: pretix/presale/checkoutflow.py:1029
msgid "Please enter your name."
-msgstr ""
+msgstr "Kirjoita nimesi."
#: pretix/presale/checkoutflow.py:1064 pretix/presale/checkoutflow.py:1069
#: pretix/presale/checkoutflow.py:1074 pretix/presale/checkoutflow.py:1079
#: pretix/presale/checkoutflow.py:1084
msgid "Please fill in answers to all required questions."
-msgstr ""
+msgstr "Täytä vastaukset kaikkiin vaadittuihin kysymyksiin."
#: pretix/presale/checkoutflow.py:1245
msgctxt "checkoutflow"
@@ -30102,10 +30118,12 @@ msgid ""
"Your payment method has been applied, but {} still need to be paid. Please "
"select a payment method for the remainder."
msgstr ""
+"Maksutapasi on valittu, mutta {} on vielä maksamatta. Ole hyvä ja valitse "
+"maksutapa lopuille."
#: pretix/presale/checkoutflow.py:1383 pretix/presale/views/order.py:686
msgid "Please select a payment method."
-msgstr ""
+msgstr "Valitse maksutapa."
#: pretix/presale/checkoutflow.py:1410 pretix/presale/checkoutflow.py:1424
#: pretix/presale/checkoutflow.py:1435
@@ -30115,7 +30133,7 @@ msgstr "Valitse maksutapa edetäksesi."
#: pretix/presale/checkoutflow.py:1440 pretix/presale/views/order.py:436
#: pretix/presale/views/order.py:517
msgid "The payment information you entered was incomplete."
-msgstr ""
+msgstr "Antamasi maksutiedot olivat puutteelliset."
#: pretix/presale/checkoutflow.py:1485
msgctxt "checkoutflow"
@@ -30124,62 +30142,66 @@ msgstr "Tarkista tilaus"
#: pretix/presale/checkoutflow.py:1579
msgid "You need to check all checkboxes on the bottom of the page."
-msgstr ""
+msgstr "Sinun on rastitettava kaikki sivun alaosassa olevat valintaruudut."
#: pretix/presale/checkoutflow.py:1634
msgid ""
"There was an error sending the confirmation mail. Please try again later."
msgstr ""
+"Vahvistussähköpostin lähettämisessä tapahtui virhe. Yritä myöhemmin "
+"uudelleen."
#: pretix/presale/forms/checkout.py:70
msgid "Email address (repeated)"
-msgstr ""
+msgstr "Sähköpostiosoite (toistuva)"
#: pretix/presale/forms/checkout.py:71
msgid ""
"Please enter the same email address again to make sure you typed it "
"correctly."
msgstr ""
+"Kirjoita sama sähköpostiosoite uudelleen varmistaaksesi, että kirjoitit sen "
+"oikein."
#: pretix/presale/forms/checkout.py:110
msgid "Please enter the same email address twice."
-msgstr ""
+msgstr "Anna sama sähköpostiosoite kahdesti."
#: pretix/presale/forms/checkout.py:125
msgid "Save to address"
-msgstr ""
+msgstr "Tallenna osoitteeksi"
#: pretix/presale/forms/checkout.py:126
msgid "Create new address"
-msgstr ""
+msgstr "Luo uusi osoite"
#: pretix/presale/forms/checkout.py:129
msgid "Save address in my customer account for future purchases"
-msgstr ""
+msgstr "Tallenna osoite asiakastililleni tulevia ostoksia varten"
#: pretix/presale/forms/checkout.py:159
msgid "Save answers to my customer profiles for future purchases"
-msgstr ""
+msgstr "Tallenna vastaukset asiakasprofiileihini tulevia ostoksia varten"
#: pretix/presale/forms/checkout.py:166
msgid "Save to profile"
-msgstr ""
+msgstr "Tallenna profiiliin"
#: pretix/presale/forms/checkout.py:167
msgid "Create new profile"
-msgstr ""
+msgstr "Luo uusi profiili"
#: pretix/presale/forms/customer.py:67
msgid "You need to fill out all fields."
-msgstr ""
+msgstr "Sinun on täytettävä kaikki kentät."
#: pretix/presale/forms/customer.py:69
msgid "We have not found an account with this email address and password."
-msgstr ""
+msgstr "Emme ole löytäneet tiliä, jolla on tämä sähköpostiosoite ja salasana."
#: pretix/presale/forms/customer.py:71
msgid "This account is disabled."
-msgstr ""
+msgstr "Tämä tili on poistettu käytöstä."
#: pretix/presale/forms/customer.py:72
msgid ""
@@ -30187,39 +30209,47 @@ msgid ""
"link in the email we sent you. Click \"Reset password\" to receive a new "
"email in case you cannot find it again."
msgstr ""
+"Et ole vielä aktivoinut tiliäsi ja asettanut salasanaa. Klikkaa "
+"lähettämässämme sähköpostissa olevaa linkkiä. Napsauta ”Nollaa salasana” "
+"saadaksesi uuden sähköpostin, jos et löydä sitä enää."
#: pretix/presale/forms/customer.py:135
msgid ""
"We've received a lot of registration requests from you, please wait 10 "
"minutes before you try again."
msgstr ""
+"Olemme saaneet sinulta paljon rekisteröintipyyntöjä, odota 10 minuuttia "
+"ennen kuin yrität uudelleen."
#: pretix/presale/forms/customer.py:137
msgid ""
"An account with this email address is already registered. Please try to log "
"in or reset your password instead."
msgstr ""
+"Tällä sähköpostiosoitteella varustettu tili on jo rekisteröity. Yritä "
+"kirjautua sisään tai nollaa salasanasi sen sijaan."
#: pretix/presale/forms/customer.py:190
#, python-brace-format
msgid "What is the result of {num1} + {num2}?"
-msgstr ""
+msgstr "Mikä on {num1}+ {num2} tulos?"
#: pretix/presale/forms/customer.py:236
msgid "Please enter the correct result."
-msgstr ""
+msgstr "Syötä oikea tulos."
#: pretix/presale/forms/customer.py:328
msgid "For security reasons, please wait 10 minutes before you try again."
-msgstr ""
+msgstr "Odota turvallisuussyistä 10 minuuttia ennen kuin yrität uudelleen."
#: pretix/presale/forms/customer.py:329
msgid "A user with this email address is not known in our system."
msgstr ""
+"Käyttäjää, jolla on tämä sähköpostiosoite, ei tunneta järjestelmässämme."
#: pretix/presale/forms/customer.py:450
msgid "Only required if you change your email address"
-msgstr ""
+msgstr "Tarvitaan vain, jos muutat sähköpostiosoitettasi"
#: pretix/presale/forms/customer.py:486
#, python-brace-format
@@ -30227,6 +30257,8 @@ msgid ""
"To change your email address, change it in your {provider} account and then "
"log out and log in again."
msgstr ""
+"Jos haluat vaihtaa sähköpostiosoitteesi, vaihda se {provider}-tililläsi ja "
+"kirjaudu ulos ja uudelleen sisään."
#: pretix/presale/forms/order.py:113 pretix/presale/forms/order.py:121
#: pretix/presale/templates/pretixpresale/event/fragment_addon_choice.html:171
@@ -30236,15 +30268,15 @@ msgstr ""
#: pretix/presale/templates/pretixpresale/event/voucher.html:199
#: pretix/presale/templates/pretixpresale/event/voucher.html:354
msgid "plus taxes"
-msgstr ""
+msgstr "plus verot"
#: pretix/presale/forms/order.py:133
msgid "No other variation of this product is currently available for you."
-msgstr ""
+msgstr "Tämän tuotteen muita muunnelmia ei ole tällä hetkellä saatavilla."
#: pretix/presale/forms/order.py:138
msgid "No other variations of this product exist."
-msgstr ""
+msgstr "Tästä tuotteesta ei ole olemassa muita variaatioita."
#: pretix/presale/forms/organizer.py:70
msgctxt "filter_empty"
@@ -30259,7 +30291,7 @@ msgstr "voimassa oleva"
#: pretix/presale/forms/renderers.py:52
msgctxt "form"
msgid "has errors"
-msgstr ""
+msgstr "on virheitä"
#: pretix/presale/forms/renderers.py:64
#: pretix/presale/templates/pretixpresale/event/fragment_voucher_form.html:14
@@ -30270,29 +30302,29 @@ msgstr "pakollinen"
#: pretix/presale/ical.py:85 pretix/presale/ical.py:141
#, python-brace-format
msgid "Tickets: {url}"
-msgstr ""
+msgstr "Liput: {url}"
#: pretix/presale/ical.py:88 pretix/presale/ical.py:143
#, python-brace-format
msgid "Admission: {datetime}"
-msgstr ""
+msgstr "Sisäänpääsy: {datetime}"
#: pretix/presale/ical.py:92 pretix/presale/ical.py:148
#, python-brace-format
msgid "Organizer: {organizer}"
-msgstr ""
+msgstr "Järjestäjä: {organizer}"
#: pretix/presale/templates/pretixpresale/base.html:73
msgid "Footer Navigation"
-msgstr ""
+msgstr "Alatunnisteen navigointi"
#: pretix/presale/templates/pretixpresale/event/base.html:33
msgid "This shop is currently only visible to you and your team."
-msgstr ""
+msgstr "Tämä kauppa näkyy tällä hetkellä vain sinulle ja tiimillesi."
#: pretix/presale/templates/pretixpresale/event/base.html:35
msgid "Take it live now"
-msgstr ""
+msgstr "Ota se nyt live-tilaan"
#: pretix/presale/templates/pretixpresale/event/base.html:45
#: pretix/presale/templates/pretixpresale/event/base.html:106
@@ -30307,7 +30339,7 @@ msgstr "valitse kieli"
#: pretix/presale/templates/pretixpresale/organizers/base.html:74
#, python-format
msgid "Website in %(language)s"
-msgstr ""
+msgstr "Verkkosivusto kielellä %(language)s"
#: pretix/presale/templates/pretixpresale/event/base.html:63
#, python-format
@@ -30317,7 +30349,7 @@ msgstr "Näytä kaikki järjestäjän %(name)s tapahtumat"
#: pretix/presale/templates/pretixpresale/event/base.html:85
#: pretix/presale/templates/pretixpresale/event/base.html:90
msgid "Homepage"
-msgstr ""
+msgstr "Kotisivu"
#: pretix/presale/templates/pretixpresale/event/base.html:127
#: pretix/presale/templates/pretixpresale/event/base.html:163
@@ -30326,7 +30358,7 @@ msgstr ""
#: pretix/presale/templates/pretixpresale/event/base.html:210
msgctxt "alert-messages"
msgid "Warning"
-msgstr ""
+msgstr "Varoitus"
#: pretix/presale/templates/pretixpresale/event/base.html:128
#: pretix/presale/templates/pretixpresale/event/base.html:202
@@ -30348,6 +30380,8 @@ msgid ""
"You are currently using the time machine. The ticket shop is rendered as if "
"it were %(datetime)s."
msgstr ""
+"Käytät parhaillaan aikakonetta. Lippukauppa renderöidään ikään kuin se olisi "
+"%(datetime)s."
#: pretix/presale/templates/pretixpresale/event/base.html:143
#: pretix/presale/templates/pretixpresale/event/base.html:153
@@ -30357,6 +30391,9 @@ msgid ""
"href=\"%(time_machine_link)s\">time machine."
msgstr ""
+"Jos haluat tarkastella myymälääsi eri ajankohtina, voit ottaa käyttöön "
+"toiminnon aikakone."
#: pretix/presale/templates/pretixpresale/event/base.html:164
#: pretix/presale/templates/pretixpresale/event/base.html:211
@@ -30364,11 +30401,13 @@ msgid ""
"Orders made through this sales channel cannot be deleted - even if the "
"ticket shop is in test mode!"
msgstr ""
+"Tämän myyntikanavan kautta tehtyjä tilauksia ei voi poistaa - vaikka "
+"lippukauppa olisi testitilassa!"
#: pretix/presale/templates/pretixpresale/event/base.html:175
msgctxt "alert-messages"
msgid "Error"
-msgstr ""
+msgstr "Virhe"
#: pretix/presale/templates/pretixpresale/event/base.html:177
msgctxt "alert-messages"
@@ -30385,7 +30424,7 @@ msgstr "Ota yhteyttä järjestäjään"
#: pretix/presale/templates/pretixpresale/fragment_modals.html:129
#: pretix/presale/templates/pretixpresale/organizers/base.html:101
msgid "Privacy policy"
-msgstr ""
+msgstr "Tietosuojakäytäntö"
#: pretix/presale/templates/pretixpresale/event/base.html:225
#: pretix/presale/templates/pretixpresale/organizers/base.html:104
@@ -30395,7 +30434,7 @@ msgstr "Evästeasetukset"
#: pretix/presale/templates/pretixpresale/event/base.html:228
#: pretix/presale/templates/pretixpresale/organizers/base.html:107
msgid "Imprint"
-msgstr ""
+msgstr "Jälki"
#: pretix/presale/templates/pretixpresale/event/checkout_addons.html:12
msgid ""
@@ -30410,6 +30449,8 @@ msgid ""
"A product in your cart is only sold in combination with add-on products that "
"are not available. Please contact the event organizer."
msgstr ""
+"Ostoskorissa olevaa tuotetta myydään vain yhdessä lisätuotteiden kanssa, "
+"joita ei ole saatavilla. Ota yhteyttä tapahtuman järjestäjään."
#: pretix/presale/templates/pretixpresale/event/checkout_addons.html:20
msgid "We're now trying to book these add-ons for you!"
@@ -30441,7 +30482,7 @@ msgstr "Mene takaisin"
#: pretix/presale/templates/pretixpresale/event/checkout_base.html:7
#, python-format
msgid "Step %(current)s of %(total)s: %(label)s"
-msgstr ""
+msgstr "Askel %(current)s of %(total)s: %(label)s"
#: pretix/presale/templates/pretixpresale/event/checkout_base.html:12
#: pretix/presale/templates/pretixpresale/event/checkout_base.html:52
@@ -30516,7 +30557,7 @@ msgstr "Muuta yhteystietoja"
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:167
msgid "Confirmations"
-msgstr ""
+msgstr "Vahvistukset"
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:185
msgid ""
@@ -30524,17 +30565,24 @@ msgid ""
"approval by the event organizer before it can be confirmed and forms a valid "
"contract."
msgstr ""
+"Kun olet lähettänyt tilauksesi alla olevaa painiketta käyttäen, tapahtuman "
+"järjestäjän on hyväksyttävä se, ennen kuin se voidaan vahvistaa ja muodostaa "
+"voimassa olevan sopimuksen."
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:187
msgid ""
"We will send you an email as soon as the event organizer approved or "
"rejected your order."
msgstr ""
+"Lähetämme sinulle sähköpostia heti, kun tapahtuman järjestäjä on hyväksynyt "
+"tai hylännyt tilauksesi."
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:191
msgid ""
"If your order was approved, we will send you a link that you can use to pay."
msgstr ""
+"Jos tilauksesi on hyväksytty, lähetämme sinulle linkin, jota voit käyttää "
+"maksamiseen."
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:207
msgid "Place binding order"
@@ -30542,15 +30590,15 @@ msgstr "Vahvista tilaus"
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:209
msgid "Submit registration"
-msgstr ""
+msgstr "Lähetä ilmoittautuminen"
#: pretix/presale/templates/pretixpresale/event/checkout_customer.html:18
msgid "Log in with a customer account"
-msgstr ""
+msgstr "Kirjaudu sisään asiakastilillä"
#: pretix/presale/templates/pretixpresale/event/checkout_customer.html:25
msgid "You are currently logged in with the following credentials."
-msgstr ""
+msgstr "Olet tällä hetkellä kirjautunut sisään seuraavilla tunnuksilla."
#: pretix/presale/templates/pretixpresale/event/checkout_customer.html:43
#, python-format
@@ -30559,6 +30607,9 @@ msgid ""
"connect your order to your account. This will allow you to see all your "
"orders in one place and access them at any time."
msgstr ""
+"Jos olet aiemmin luonut asiakastilin %(org)s:issa, voit kirjautua sisään nyt "
+"ja yhdistää tilauksesi tiliisi. Näin näet kaikki tilauksesi yhdessä paikassa "
+"ja pääset niihin käsiksi milloin tahansa."
#: pretix/presale/templates/pretixpresale/event/checkout_customer.html:56
#: pretix/presale/templates/pretixpresale/organizers/customer_login.html:46
@@ -30576,6 +30627,9 @@ msgid ""
"password, so you can use the account for future orders at %(org)s. You can "
"still go ahead with this purchase before you received the email."
msgstr ""
+"Lähetämme sinulle sähköpostiviestin, jossa on linkki tilisi aktivoimiseksi "
+"ja salasanan asettamiseksi, jotta voit käyttää tiliäsi tulevissa tilauksissa "
+"%(org)s :ssa. Voit silti jatkaa tätä ostoa ennen kuin sait sähköpostin."
#: pretix/presale/templates/pretixpresale/event/checkout_customer.html:109
msgid "Continue as a guest"
@@ -30587,12 +30641,17 @@ msgid ""
"will be able to access the details and status of your order any time through "
"the secret link we will send you via email once the order is complete."
msgstr ""
+"Sinun ei tarvitse luoda tiliä. Jos etenet vieraana, pääset milloin tahansa "
+"tutustumaan tilauksesi tietoihin ja tilaan salaisen linkin kautta, jonka "
+"lähetämme sinulle sähköpostitse, kun tilaus on valmis."
#: pretix/presale/templates/pretixpresale/event/checkout_membership.html:6
msgid ""
"Some of the products in your cart can only be purchased if there is an "
"active membership on your account."
msgstr ""
+"Joitakin ostoskorissasi olevia tuotteita voi ostaa vain, jos tililläsi on "
+"aktiivinen jäsenyys."
#: pretix/presale/templates/pretixpresale/event/checkout_membership.html:37
#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:114
@@ -30605,11 +30664,13 @@ msgid ""
"account that includes a valid membership or authorization for this type of "
"product."
msgstr ""
+"Tämän tuotteen voi ostaa vain, kun olet kirjautunut sisään asiakastilillä, "
+"jolla on voimassa oleva jäsenyys tai valtuutus tämäntyyppiseen tuotteeseen."
#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:12
#: pretix/presale/templates/pretixpresale/event/fragment_cart_box.html:30
msgid "You already selected the following payment methods:"
-msgstr ""
+msgstr "Olet jo valinnut seuraavat maksutavat:"
#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:26
msgid "Remove payment"
@@ -30633,7 +30694,7 @@ msgstr "Tämä myyntikanava ei tue testitilaa."
#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:92
msgid "If you continue, you might pay an actual order with non-existing money!"
-msgstr ""
+msgstr "Jos jatkat, saatat maksaa todellisen tilauksen olemattomalla rahalla!"
#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:100
msgid "This payment provider does not provide support for test mode."
@@ -30668,7 +30729,7 @@ msgstr "Täytä osoite automaattisesti"
#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:58
#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:168
msgid "Fill form"
-msgstr ""
+msgstr "Täytä lomake"
#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:86
msgid "Copy answers from above"
@@ -30680,7 +30741,7 @@ msgstr "Kopioi vastaukset"
#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:159
msgid "Auto-fill with profile"
-msgstr ""
+msgstr "Automaattinen täyttö profiilin kanssa"
#: pretix/presale/templates/pretixpresale/event/cookies.html:8
msgid "Please continue in a new tab"
@@ -30693,10 +30754,14 @@ msgid ""
"embedded into the website. Please try to open the ticket shop in a new tab "
"or change your browser settings."
msgstr ""
+"Selaimesi on määritetty estämään kolmannen osapuolen "
+"verkkosivustoelementtien evästeet. Valitettavasti tämä tarkoittaa, ettemme "
+"voi näyttää sinulle tätä verkkosivustoon upotettua lippukauppaa. Yritä avata "
+"lippukauppa uudessa välilehdessä tai muuta selaimesi asetuksia."
#: pretix/presale/templates/pretixpresale/event/cookies.html:17
msgid "We apologize for the inconvenience!"
-msgstr ""
+msgstr "Pahoittelemme haittaa!"
#: pretix/presale/templates/pretixpresale/event/cookies.html:24
msgid "Continue in new tab"
@@ -30760,7 +30825,7 @@ msgstr "vähimmäistilausmäärä: %(num)s"
#: pretix/presale/templates/pretixpresale/event/voucher.html:342
msgctxt "price"
msgid "free"
-msgstr ""
+msgstr "maksu"
#: pretix/presale/templates/pretixpresale/event/fragment_addon_choice.html:78
#: pretix/presale/templates/pretixpresale/event/fragment_product_list.html:65
@@ -30772,7 +30837,7 @@ msgstr "alkaen %(price)s"
#: pretix/presale/templates/pretixpresale/event/fragment_product_list.html:70
#, python-format
msgid "from %(from_price)s to %(to_price)s"
-msgstr ""
+msgstr "alkaen %(from_price)s – %(to_price)s"
#: pretix/presale/templates/pretixpresale/event/fragment_addon_choice.html:98
#: pretix/presale/templates/pretixpresale/event/fragment_product_list.html:103
@@ -30797,7 +30862,7 @@ msgstr "Näytä variaatiot"
#: pretix/presale/templates/pretixpresale/event/voucher.html:148
#: pretix/presale/templates/pretixpresale/event/voucher.html:305
msgid "Original price:"
-msgstr ""
+msgstr "Alkuperäinen hinta:"
#: pretix/presale/templates/pretixpresale/event/fragment_addon_choice.html:136
#: pretix/presale/templates/pretixpresale/event/fragment_addon_choice.html:278
@@ -30822,7 +30887,7 @@ msgstr "Uusi hinta:"
#: pretix/presale/templates/pretixpresale/event/voucher.html:331
#, python-format
msgid "Modify price for %(item)s, at least %(price)s"
-msgstr ""
+msgstr "Muokkaa hintaa %(item)s, vähintään %(price)s"
#: pretix/presale/templates/pretixpresale/event/fragment_addon_choice.html:153
#: pretix/presale/templates/pretixpresale/event/fragment_addon_choice.html:294
@@ -30834,7 +30899,7 @@ msgstr ""
#: pretix/presale/templates/pretixpresale/event/voucher.html:334
#, python-format
msgid "Modify price for %(item)s"
-msgstr ""
+msgstr "Muokkaa hintaa %(item)s"
#: pretix/presale/templates/pretixpresale/event/fragment_addon_choice.html:173
#: pretix/presale/templates/pretixpresale/event/fragment_addon_choice.html:313
@@ -30874,7 +30939,7 @@ msgstr "sis. %(rate)s%% %(name)s"
#: pretix/presale/templates/pretixpresale/event/voucher.html:252
#, python-format
msgid "Add %(item)s, %(var)s to cart"
-msgstr ""
+msgstr "Lisää %(item)s, %(var)s ostoskoriin"
#: pretix/presale/templates/pretixpresale/event/fragment_addon_choice.html:203
#: pretix/presale/templates/pretixpresale/event/fragment_addon_choice.html:349
@@ -30893,7 +30958,7 @@ msgstr "Valitse"
#: pretix/presale/templates/pretixpresale/event/voucher.html:236
#: pretix/presale/templates/pretixpresale/event/voucher.html:391
msgid "Decrease quantity"
-msgstr ""
+msgstr "Vähennä määrää"
#: pretix/presale/templates/pretixpresale/event/fragment_addon_choice.html:218
#: pretix/presale/templates/pretixpresale/event/fragment_addon_choice.html:364
@@ -30902,7 +30967,7 @@ msgstr ""
#: pretix/presale/templates/pretixpresale/event/voucher.html:243
#: pretix/presale/templates/pretixpresale/event/voucher.html:399
msgid "Increase quantity"
-msgstr ""
+msgstr "Lisää määrää"
#: pretix/presale/templates/pretixpresale/event/fragment_addon_choice.html:346
#: pretix/presale/templates/pretixpresale/event/fragment_addon_choice.html:353
@@ -30921,7 +30986,7 @@ msgstr "Tälle tuotteellee ei ole saatavilla lisätuotteita."
#: pretix/presale/templates/pretixpresale/event/fragment_availability.html:6
msgid "Enter a voucher code below to buy this product."
-msgstr ""
+msgstr "Kirjoita alla oleva kuponkikoodi ostaaksesi tämän tuotteen."
#: pretix/presale/templates/pretixpresale/event/fragment_availability.html:10
#: pretix/presale/templates/pretixpresale/event/fragment_availability.html:14
@@ -30930,7 +30995,7 @@ msgstr "Ei vielä saatavilla."
#: pretix/presale/templates/pretixpresale/event/fragment_availability.html:18
msgid "Not available any more."
-msgstr ""
+msgstr "Ei enää saatavilla."
#: pretix/presale/templates/pretixpresale/event/fragment_availability.html:23
#: pretix/presale/templates/pretixpresale/event/fragment_product_list.html:85
@@ -30968,7 +31033,7 @@ msgstr "Hinta yhteensä"
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:42
msgid "Seat:"
-msgstr ""
+msgstr "Istuinpaikka:"
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:60
msgctxt "subevent"
@@ -30981,7 +31046,7 @@ msgstr "Sijainti:"
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:85
msgid "Show full location"
-msgstr ""
+msgstr "Näytä koko sijainti"
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:96
msgid "Membership:"
@@ -30994,7 +31059,7 @@ msgstr "Tämän lipun käyttö on estetty."
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:134
msgctxt "ticket_checkins"
msgid "Usage:"
-msgstr ""
+msgstr "Käyttö:"
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:138
#, python-format
@@ -31009,23 +31074,23 @@ msgstr "Osallistujan nimi puuttuu"
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:223
msgid "The image you previously uploaded"
-msgstr ""
+msgstr "Aiemmin lataamasi kuva"
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:269
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:342
msgid "The price of this product was reduced because of an automatic discount."
-msgstr ""
+msgstr "Tämän tuotteen hintaa alennettiin automaattisen alennuksen vuoksi."
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:273
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:346
#, python-format
msgid "%(percent)s %% Discount"
-msgstr ""
+msgstr "%(percent)s %% Alennus"
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:277
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:350
msgid "Discounted"
-msgstr ""
+msgstr "Alennettu"
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:287
msgid "Okay, we're removing that…"
@@ -31035,12 +31100,12 @@ msgstr "Selvä, poistamme sen…"
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:294
#, python-format
msgid "Remove %(item)s from your cart"
-msgstr ""
+msgstr "Poista %(item)s ostoskoristasi"
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:297
#, python-format
msgid "Remove one %(item)s from your cart"
-msgstr ""
+msgstr "Poista yksi %(item)s ostoskoristasi"
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:299
#, python-format
@@ -31048,6 +31113,8 @@ msgid ""
"Remove one %(item)s from your cart. You currently have %(count)s in your "
"cart."
msgstr ""
+"Poista yksi %(item)s ostoskorista. Sinulla on tällä hetkellä %(count)s "
+"ostoskorissa."
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:307
msgid "We're trying to reserve another one for you!"
@@ -31068,7 +31135,7 @@ msgstr ""
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:327
#, python-format
msgid "Add one more %(item)s to your cart"
-msgstr ""
+msgstr "Lisää yksi %(item)s ostoskoriisi"
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:329
#, python-format
@@ -31076,6 +31143,8 @@ msgid ""
"Add one more %(item)s to your cart. You currently have %(count)s in your "
"cart."
msgstr ""
+"Lisää yksi %(item)s lisää ostoskoriin. Sinulla on tällä hetkellä %(count)s "
+"ostoskorissasi."
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:389
#: pretix/presale/templates/pretixpresale/event/order_giftcard.html:20
@@ -31111,11 +31180,11 @@ msgstr ""
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:502
msgid "Overview of your ordered products."
-msgstr ""
+msgstr "Yleiskatsaus tilaamistasi tuotteista."
#: pretix/presale/templates/pretixpresale/event/fragment_cart_box.html:50
msgid "Continue with order process"
-msgstr ""
+msgstr "Jatka tilausprosessia"
#: pretix/presale/templates/pretixpresale/event/fragment_cart_box.html:55
#: pretix/presale/templates/pretixpresale/event/index.html:229
@@ -31135,7 +31204,7 @@ msgstr "Lunasta kuponki"
#: pretix/presale/templates/pretixpresale/event/fragment_cart_box.html:71
msgid "We're applying this voucher to your cart..."
-msgstr ""
+msgstr "Me sovellamme tätä kuponkia ostoskoriisi...."
#: pretix/presale/templates/pretixpresale/event/fragment_cart_box.html:79
#: pretix/presale/templates/pretixpresale/event/fragment_voucher_form.html:26
@@ -31152,12 +31221,15 @@ msgid ""
"Change position #%(positionid)s from \"%(old_item)s – %(old_variation)s\" to "
"\"%(new_item)s – %(new_variation)s\""
msgstr ""
+"Muuta sijainti #%(positionid)s from \"%(old_item)s – %(old_variation)s\" to "
+"\"%(new_item)s – %(new_variation)s\""
#: pretix/presale/templates/pretixpresale/event/fragment_change_confirm.html:23
#, python-format
msgid ""
"Change position #%(positionid)s from \"%(old_item)s\" to \"%(new_item)s\""
msgstr ""
+"Muuta sijainti #%(positionid)s from \"%(old_item)s\" to \"%(new_item)s\""
#: pretix/presale/templates/pretixpresale/event/fragment_change_confirm.html:30
#: pretix/presale/templates/pretixpresale/event/fragment_change_confirm.html:56
@@ -31165,37 +31237,37 @@ msgstr ""
#: pretix/presale/templates/pretixpresale/event/fragment_change_confirm.html:106
#, python-format
msgid "Add-on product to position #%(positionid)s"
-msgstr ""
+msgstr "Lisätuotteen lisääminen paikkaan #%(positionid)s"
#: pretix/presale/templates/pretixpresale/event/fragment_change_confirm.html:40
#, python-format
msgid "Change date of position #%(positionid)s from \"%(old)s\" to \"%(new)s\""
-msgstr ""
+msgstr "Vaihda aseman päivämäärä#%(positionid)s from \"%(old)s\" to \"%(new)s\""
#: pretix/presale/templates/pretixpresale/event/fragment_change_confirm.html:50
#, python-format
msgid "Change price of position #%(positionid)s from %(old)s to %(new)s"
-msgstr ""
+msgstr "Vaihda aseman hinta #%(positionid)s from %(old)s to %(new)s"
#: pretix/presale/templates/pretixpresale/event/fragment_change_confirm.html:70
#, python-format
msgid "Add position (%(item)s – %(variation)s)"
-msgstr ""
+msgstr "Lisää asema (%(item)s – %(variation)s)"
#: pretix/presale/templates/pretixpresale/event/fragment_change_confirm.html:74
#, python-format
msgid "Add position (%(item)s)"
-msgstr ""
+msgstr "Lisää asema (%(item)s)"
#: pretix/presale/templates/pretixpresale/event/fragment_change_confirm.html:95
#, python-format
msgid "Remove position #%(positionid)s (%(item)s – %(variation)s)"
-msgstr ""
+msgstr "Poista asema #%(positionid)s (%(item)s – %(variation)s)"
#: pretix/presale/templates/pretixpresale/event/fragment_change_confirm.html:99
#, python-format
msgid "Remove position #%(positionid)s (%(item)s)"
-msgstr ""
+msgstr "Poista asema #%(positionid)s (%(item)s)"
#: pretix/presale/templates/pretixpresale/event/fragment_change_confirm.html:121
msgid "Total price change"
@@ -31207,15 +31279,15 @@ msgstr "Uuden tilauksen kokonais-summa"
#: pretix/presale/templates/pretixpresale/event/fragment_change_confirm.html:136
msgid "You already paid"
-msgstr ""
+msgstr "Olet jo maksanut"
#: pretix/presale/templates/pretixpresale/event/fragment_change_confirm.html:144
msgid "You will need to pay"
-msgstr ""
+msgstr "Sinun on maksettava"
#: pretix/presale/templates/pretixpresale/event/fragment_change_confirm.html:146
msgid "You will be refunded"
-msgstr ""
+msgstr "Sinulle maksetaan takaisin"
#: pretix/presale/templates/pretixpresale/event/fragment_change_confirm.html:150
#: pretix/presale/templates/pretixpresale/event/order_cancel.html:109
@@ -31223,6 +31295,7 @@ msgid ""
"The organizer will get in touch with you to clarify the details of your "
"refund."
msgstr ""
+"Järjestäjä ottaa sinuun yhteyttä selvittääkseen palautuksen yksityiskohdat."
#: pretix/presale/templates/pretixpresale/event/fragment_change_confirm.html:152
#: pretix/presale/templates/pretixpresale/event/order.html:390
@@ -31232,7 +31305,7 @@ msgstr ""
msgid ""
"The refund will be issued in form of a gift card that you can use for "
"further purchases."
-msgstr ""
+msgstr "Palautus myönnetään lahjakorttina, jonka voit käyttää uusiin ostoksiin."
#: pretix/presale/templates/pretixpresale/event/fragment_change_confirm.html:155
#: pretix/presale/templates/pretixpresale/event/order_cancel.html:147
@@ -31242,6 +31315,9 @@ msgid ""
"method. Depending on the payment method, please allow for up to two weeks "
"before this appears on your statement."
msgstr ""
+"Palautussumma lähetetään automaattisesti takaisin alkuperäiseen maksutapaan. "
+"Maksutavasta riippuen saatat joutua odottamaan jopa kaksi viikkoa, ennen "
+"kuin tämä näkyy tiliotteessasi."
#: pretix/presale/templates/pretixpresale/event/fragment_change_confirm.html:161
#: pretix/presale/templates/pretixpresale/event/order_cancel.html:165
@@ -31252,17 +31328,25 @@ msgid ""
"to initiate the transfer manually. Please be patient as this might take a "
"bit longer."
msgstr ""
+"Käyttämäsi maksutavan avulla palautussummaa ei voida lähettää "
+"sinulle takaisin automaattisesti. Sen sijaan tapahtuman järjestäjän "
+"on käynnistettävä siirto manuaalisesti. Ole kärsivällinen, sillä tämä "
+"saattaa kestää hieman kauemmin."
#: pretix/presale/templates/pretixpresale/event/fragment_change_confirm.html:185
msgid ""
"Your entire order will be considered unpaid until you paid this difference."
msgstr ""
+"Koko tilauksesi katsotaan maksamattomaksi, kunnes olet maksanut tämän "
+"erotuksen."
#: pretix/presale/templates/pretixpresale/event/fragment_change_confirm.html:186
msgid ""
"You might not be able to use any of the tickets in your order until this "
"payment has been received."
msgstr ""
+"Et ehkä voi käyttää mitään tilauksessasi olevia lippuja, ennen kuin maksu on "
+"vastaanotettu."
#: pretix/presale/templates/pretixpresale/event/fragment_checkoutflow.html:2
msgctxt "checkoutflow"
@@ -31271,7 +31355,7 @@ msgstr "Kassan vaiheet"
#: pretix/presale/templates/pretixpresale/event/fragment_checkoutflow.html:12
msgid "Completed:"
-msgstr ""
+msgstr "Valmis:"
#: pretix/presale/templates/pretixpresale/event/fragment_checkoutflow.html:14
msgid "Current:"
@@ -31296,6 +31380,9 @@ msgid ""
"the order clicked the link in the email they received to confirm the email "
"address is valid."
msgstr ""
+"Voit ladata lippusi täältä heti, kun tilauksen tehnyt henkilö on klikannut "
+"saamassaan sähköpostiviestissä olevaa linkkiä ja vahvistanut "
+"sähköpostiosoitteensa oikeaksi."
#: pretix/presale/templates/pretixpresale/event/fragment_downloads.html:26
msgid ""
@@ -31329,12 +31416,12 @@ msgstr "Voit ladata lippusi täältä %(date)s alkaen."
#: pretix/presale/templates/pretixpresale/event/fragment_event_info.html:5
#: pretix/presale/templates/pretixpresale/event/fragment_event_info.html:6
msgid "Where does the event happen?"
-msgstr ""
+msgstr "Missä tapahtuma järjestetään?"
#: pretix/presale/templates/pretixpresale/event/fragment_event_info.html:13
#: pretix/presale/templates/pretixpresale/event/fragment_event_info.html:14
msgid "When does the event happen?"
-msgstr ""
+msgstr "Milloin tapahtuma järjestetään?"
#: pretix/presale/templates/pretixpresale/event/fragment_event_info.html:20
#, python-format
@@ -31377,7 +31464,7 @@ msgstr "Odottaa maksua"
#: pretix/presale/templates/pretixpresale/event/fragment_product_list.html:19
msgid "Your order qualifies for a discount"
-msgstr ""
+msgstr "Tilauksesi oikeuttaa alennukseen"
#: pretix/presale/templates/pretixpresale/event/fragment_product_list.html:28
#: pretix/presale/templates/pretixpresale/event/voucher.html:78
@@ -31390,7 +31477,7 @@ msgstr "Luokittelemattomat tuotteet"
#: pretix/presale/templates/pretixpresale/event/voucher.html:276
#, python-format
msgid "Show full-size image of %(item)s"
-msgstr ""
+msgstr "Näytä täysikokoinen kuva %(item)s"
#: pretix/presale/templates/pretixpresale/event/fragment_product_list.html:191
#: pretix/presale/templates/pretixpresale/event/fragment_product_list.html:344
@@ -31636,7 +31723,7 @@ msgstr ""
#: pretix/presale/templates/pretixpresale/event/order.html:73
#: pretix/presale/templates/pretixpresale/event/position.html:18
msgid "View in backend"
-msgstr ""
+msgstr "Näytä backendissä"
#: pretix/presale/templates/pretixpresale/event/order.html:90
#, python-format
@@ -32402,12 +32489,16 @@ msgid ""
"This is a self-hosted installation of pretix, your free and "
"open source ticket sales software."
msgstr ""
+"Tämä on itse isännöity asennus pretixistä, ilmaisesta ja "
+"avoimen lähdekoodin lipunmyyntiohjelmistosta."
#: pretix/presale/templates/pretixpresale/index.html:15
msgid ""
"If you're looking to buy a ticket, you need to follow a direct link to an "
"event or organizer profile."
msgstr ""
+"Jos haluat ostaa lipun, sinun on seurattava suoraa linkkiä tapahtumaan tai "
+"järjestäjän profiiliin."
#: pretix/presale/templates/pretixpresale/index.html:20
#, python-format
@@ -32415,22 +32506,23 @@ msgid ""
"If you're looking to configure this installation, please head "
"over here."
msgstr ""
+"Jos haluat konfiguroida tämän asennuksen, suuntaa tänne."
#: pretix/presale/templates/pretixpresale/index.html:24
msgid "Enjoy!"
-msgstr ""
+msgstr "Nauti!"
#: pretix/presale/templates/pretixpresale/organizers/calendar.html:6
#: pretix/presale/templates/pretixpresale/organizers/calendar_day.html:6
#: pretix/presale/templates/pretixpresale/organizers/calendar_week.html:6
msgid "Event overview"
-msgstr ""
+msgstr "Tapahtuman yleiskatsaus"
#: pretix/presale/templates/pretixpresale/organizers/calendar.html:61
#: pretix/presale/templates/pretixpresale/organizers/calendar_day.html:70
#: pretix/presale/templates/pretixpresale/organizers/calendar_week.html:82
msgid "Note that the events in this view are in different timezones."
-msgstr ""
+msgstr "Huomaa, että tämän näkymän tapahtumat ovat eri aikavyöhykkeillä."
#: pretix/presale/templates/pretixpresale/organizers/customer_address_delete.html:5
#: pretix/presale/templates/pretixpresale/organizers/customer_address_delete.html:10
@@ -32439,7 +32531,7 @@ msgstr "Poista osoite"
#: pretix/presale/templates/pretixpresale/organizers/customer_address_delete.html:15
msgid "Do you really want to delete the following address from your account?"
-msgstr ""
+msgstr "Haluatko todella poistaa seuraavan osoitteen tililtäsi?"
#: pretix/presale/templates/pretixpresale/organizers/customer_addresses.html:5
#: pretix/presale/templates/pretixpresale/organizers/customer_addresses.html:11
@@ -32458,7 +32550,7 @@ msgstr "Tilisi"
#: pretix/presale/templates/pretixpresale/organizers/customer_base.html:22
msgid "Change account information"
-msgstr ""
+msgstr "Muuta tilitietoja"
#: pretix/presale/templates/pretixpresale/organizers/customer_base.html:28
msgid "Change password"
@@ -32474,12 +32566,12 @@ msgstr "Tilitiedot"
#: pretix/presale/templates/pretixpresale/organizers/customer_info.html:11
msgid "Update your account information"
-msgstr ""
+msgstr "Päivitä tilisi tiedot"
#: pretix/presale/templates/pretixpresale/organizers/customer_login.html:11
#, python-format
msgid "Sign in to your account at %(org)s"
-msgstr ""
+msgstr "Kirjaudu sisään tilillesi osoitteessa %(org)s"
#: pretix/presale/templates/pretixpresale/organizers/customer_login.html:40
#: pretix/presale/templates/pretixpresale/organizers/customer_registration.html:20
@@ -32489,7 +32581,7 @@ msgstr "Luo tili"
#: pretix/presale/templates/pretixpresale/organizers/customer_membership.html:6
#: pretix/presale/templates/pretixpresale/organizers/customer_membership.html:16
msgid "Your membership"
-msgstr ""
+msgstr "Jäsenyytesi"
#: pretix/presale/templates/pretixpresale/organizers/customer_membership.html:40
msgid "transferable"
@@ -32497,7 +32589,7 @@ msgstr "siirrävissä"
#: pretix/presale/templates/pretixpresale/organizers/customer_membership.html:42
msgid "not transferable"
-msgstr ""
+msgstr "ei siirrettävissä"
#: pretix/presale/templates/pretixpresale/organizers/customer_membership.html:122
msgid "You haven’t used this membership yet."
From e2086a8ecac7c974c4032f3dcd3a0f92b0868c91 Mon Sep 17 00:00:00 2001
From: Karoliina Grohn
Date: Sun, 9 Feb 2025 13:11:05 +0000
Subject: [PATCH 43/99] Translations: Update Finnish
Currently translated at 65.8% (3848 of 5846 strings)
Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/fi/
powered by weblate
---
src/pretix/locale/fi/LC_MESSAGES/django.po | 70 ++++++++++++++--------
1 file changed, 45 insertions(+), 25 deletions(-)
diff --git a/src/pretix/locale/fi/LC_MESSAGES/django.po b/src/pretix/locale/fi/LC_MESSAGES/django.po
index 30843a9ee1..4cb8ca41a0 100644
--- a/src/pretix/locale/fi/LC_MESSAGES/django.po
+++ b/src/pretix/locale/fi/LC_MESSAGES/django.po
@@ -9,7 +9,7 @@ msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-01-29 13:18+0000\n"
"PO-Revision-Date: 2025-02-09 22:00+0000\n"
-"Last-Translator: Hannu Kaakinen \n"
+"Last-Translator: Karoliina Grohn \n"
"Language-Team: Finnish \n"
"Language: fi\n"
@@ -31499,7 +31499,7 @@ msgstr "%(value)s ilman veroja"
#: pretix/presale/templates/pretixpresale/event/voucher.html:322
#, python-format
msgid "Set price in %(currency)s for %(item)s"
-msgstr ""
+msgstr "Anna %(item)s hinta %(currency)s"
#: pretix/presale/templates/pretixpresale/event/fragment_quota_left.html:4
#, python-format
@@ -31509,17 +31509,17 @@ msgstr "%(num)s saatavilla"
#: pretix/presale/templates/pretixpresale/event/fragment_subevent_calendar.html:4
#: pretix/presale/templates/pretixpresale/event/fragment_subevent_calendar_week.html:4
msgid "calendar navigation"
-msgstr ""
+msgstr "kalenterinavigointi"
#: pretix/presale/templates/pretixpresale/event/fragment_subevent_calendar.html:9
#, python-format
msgid "Show previous month, %(month)s"
-msgstr ""
+msgstr "Näytä edellinen kuukausi, %(month)s"
#: pretix/presale/templates/pretixpresale/event/fragment_subevent_calendar.html:22
#: pretix/presale/templates/pretixpresale/organizers/calendar.html:24
msgid "Select month to show"
-msgstr ""
+msgstr "Valitse näytettävä kuukausi"
#: pretix/presale/templates/pretixpresale/event/fragment_subevent_calendar.html:32
#: pretix/presale/templates/pretixpresale/event/fragment_subevent_calendar_week.html:36
@@ -31532,24 +31532,24 @@ msgstr "Mene"
#: pretix/presale/templates/pretixpresale/event/fragment_subevent_calendar.html:39
#, python-format
msgid "Show next month, %(month)s"
-msgstr ""
+msgstr "Näytä seuraava kuukausi, %(month)s"
#: pretix/presale/templates/pretixpresale/event/fragment_subevent_calendar_week.html:9
#: pretix/presale/templates/pretixpresale/event/fragment_subevent_calendar_week.html:54
#, python-format
msgid "Show previous week, %(week)s"
-msgstr ""
+msgstr "Näytä edellinen viikko, %(week)s"
#: pretix/presale/templates/pretixpresale/event/fragment_subevent_calendar_week.html:22
#: pretix/presale/templates/pretixpresale/organizers/calendar_week.html:26
msgid "Select week to show"
-msgstr ""
+msgstr "Valitse näytettävä viikko"
#: pretix/presale/templates/pretixpresale/event/fragment_subevent_calendar_week.html:43
#: pretix/presale/templates/pretixpresale/event/fragment_subevent_calendar_week.html:59
#, python-format
msgid "Show next week, %(week)s"
-msgstr ""
+msgstr "Näytä seuraava viikko, %(week)s"
#: pretix/presale/templates/pretixpresale/event/fragment_subevent_list.html:33
#: pretix/presale/templates/pretixpresale/organizers/index.html:94
@@ -31560,7 +31560,7 @@ msgstr "Lisätietoja"
#: pretix/presale/templates/pretixpresale/event/fragment_voucher_form.html:13
msgctxt "form"
msgid "has error"
-msgstr ""
+msgstr "on virhe"
#: pretix/presale/templates/pretixpresale/event/index.html:14
#: pretix/presale/templates/pretixpresale/event/index.html:18
@@ -31570,18 +31570,21 @@ msgid ""
" Calendar for %(datetime)s\n"
" "
msgstr ""
+"\n"
+" Kalenteri %(datetime)s\n"
+" "
#: pretix/presale/templates/pretixpresale/event/index.html:48
msgid "Your cart, general information, add products to your cart"
-msgstr ""
+msgstr "Ostoskorisi, perustiedot, lisää tuotteita ostoskoriisi"
#: pretix/presale/templates/pretixpresale/event/index.html:48
msgid "General information, add products to your cart"
-msgstr ""
+msgstr "Yleistiedot, lisää tuotteita ostoskoriisi"
#: pretix/presale/templates/pretixpresale/event/index.html:68
msgid "Please select a date to redeem your voucher."
-msgstr ""
+msgstr "Ole hyvä ja valitse päivämäärä, jolloin haluat käyttää kuponkisi."
#: pretix/presale/templates/pretixpresale/event/index.html:86
msgid "View other date"
@@ -31589,7 +31592,7 @@ msgstr "Näytä toinen päivämäärä"
#: pretix/presale/templates/pretixpresale/event/index.html:89
msgid "Choose date to book a ticket"
-msgstr ""
+msgstr "Valitse päivämäärä lippuvaraukselle"
#: pretix/presale/templates/pretixpresale/event/index.html:152
#: pretix/presale/views/waiting.py:141 pretix/presale/views/widget.py:756
@@ -31614,6 +31617,9 @@ msgid ""
"you want, you can add yourself to the waiting list. We will then notify if "
"seats are available again."
msgstr ""
+"Jotkin yllä olevan istumapaikkakartan kategoriat on tällä hetkellä myyty "
+"loppuun. Voit halutessasi lisätä itsesi jonotuslistalle. Ilmoitamme, jos "
+"paikkoja vapautuu jälleen."
#: pretix/presale/templates/pretixpresale/event/index.html:211
msgid "Join waiting list"
@@ -31623,7 +31629,7 @@ msgstr "Liity jonotuslistalle"
#: pretix/presale/templates/pretixpresale/event/voucher.html:438
msgctxt "free_tickets"
msgid "Register"
-msgstr ""
+msgstr "Rekisteröidy"
#: pretix/presale/templates/pretixpresale/event/index.html:232
#: pretix/presale/templates/pretixpresale/event/voucher.html:443
@@ -31659,7 +31665,7 @@ msgstr "Tämä lippukauppa on tällä hetkellä pois päältä."
#: pretix/presale/templates/pretixpresale/event/offline.html:10
msgid "It is only accessible to authenticated team members."
-msgstr ""
+msgstr "Ainoastaan tunnistautuneille tiimiläisille."
#: pretix/presale/templates/pretixpresale/event/offline.html:11
msgid "Please try again later."
@@ -31691,16 +31697,22 @@ msgid ""
"Please note that we still await approval by the event organizer before your "
"order is confirmed."
msgstr ""
+"Ole hyvä ja ota huomioon, että odotamme yhä hyväksyntää tapahtuman "
+"järjestäjältä ennen tilauksesi vahvistamista."
#: pretix/presale/templates/pretixpresale/event/order.html:39
msgid ""
"Please note that we still await approval by the event organizer before you "
"can pay and complete this order."
msgstr ""
+"Ole hyvä ja huomioi, että odotamme yhä tapahtuman järjestäjän hyväksyntää "
+"ennen kuin tilaus voidaan maksaa ja suorittaa loppuun."
#: pretix/presale/templates/pretixpresale/event/order.html:43
msgid "Please note that we still await your payment to complete the process."
msgstr ""
+"Ole hyvä ja huomioi, että odotamme yhä maksua, jotta prosessi saadaan "
+"loppuun."
#: pretix/presale/templates/pretixpresale/event/order.html:55
msgid ""
@@ -31744,11 +31756,13 @@ msgid ""
"We've received your request to cancel this order. Please stay patient while "
"the event organizer decides on the cancellation."
msgstr ""
+"Olemme vastaanottaneet tilauksen peruutuspyyntösi. Odotathan "
+"kärsivällisesti, kun tapahtumajärjestäjä tekee päätöksen perumisesta."
#: pretix/presale/templates/pretixpresale/event/order.html:143
#, python-format
msgid "A refund of %(amount)s will be sent out to you soon, please be patient."
-msgstr ""
+msgstr "Hyvityssumma %(amount)s lähetetään sinulle pian, olethan kärsivällinen."
#: pretix/presale/templates/pretixpresale/event/order.html:150
msgid "Print"
@@ -31760,16 +31774,18 @@ msgid ""
"We've issued your refund of %(amount)s as a gift card. On your next purchase "
"with us, you can use the following gift card code during payment:"
msgstr ""
+"Olemme hyvittäneet %(amount)s lahjakortille. Voit käyttää seuraavaa "
+"lahjakorttikoodia maksamiseen seuraavan kerran, kun asioit kanssamme:"
#: pretix/presale/templates/pretixpresale/event/order.html:162
#, python-format
msgid "The current value of your gift card is %(value)s."
-msgstr ""
+msgstr "Lahjakortin tämän hetkinen arvo on %(value)s."
#: pretix/presale/templates/pretixpresale/event/order.html:169
#, python-format
msgid "This gift card is valid until %(expiry)s."
-msgstr ""
+msgstr "Tämä lahjakortti on voimassa %(expiry)s saakka."
#: pretix/presale/templates/pretixpresale/event/order.html:180
#, python-format
@@ -31777,6 +31793,8 @@ msgid ""
"A refund of %(amount)s has been sent to you. Depending on the payment "
"method, please allow for up to 14 days until it shows up on your statement."
msgstr ""
+"Sinulle on lähetetty %(amount)s hyvitys. Maksutavastasi riippuen hyvitys "
+"näkyy tililläsi viimeistään 14 päivän kuluessa."
#: pretix/presale/templates/pretixpresale/event/order.html:198
#: pretix/presale/templates/pretixpresale/event/position.html:33
@@ -31792,13 +31810,13 @@ msgstr "Muuta tietoja"
#: pretix/presale/templates/pretixpresale/event/order.html:262
msgid ""
"You need to select a payment method above before you can request an invoice."
-msgstr ""
+msgstr "Sinun täytyy valita maksutapa ennen kuin voit pyytää laskua."
#: pretix/presale/templates/pretixpresale/event/order.html:267
#: pretix/presale/templates/pretixpresale/event/order.html:274
#: pretix/presale/templates/pretixpresale/event/order_modify.html:85
msgid "Request invoice"
-msgstr ""
+msgstr "Pyydä laskua"
#: pretix/presale/templates/pretixpresale/event/order.html:286
msgid "Your information"
@@ -31810,12 +31828,12 @@ msgstr "Muuta tietojasi"
#: pretix/presale/templates/pretixpresale/event/order.html:334
msgid "Internal Reference"
-msgstr ""
+msgstr "Sisäinen viite"
#: pretix/presale/templates/pretixpresale/event/order.html:349
msgctxt "action"
msgid "Change or cancel your order"
-msgstr ""
+msgstr "Muuta tai peruuta tilauksesi"
#: pretix/presale/templates/pretixpresale/event/order.html:351
msgctxt "action"
@@ -31832,10 +31850,12 @@ msgid ""
"If you want to make changes to the products you bought, you can click on the "
"button to change your order."
msgstr ""
+"Jos haluat vaihtaa ostamiasi tuotteita, voit klikata nappia muuttaaksesi "
+"tilaustasi."
#: pretix/presale/templates/pretixpresale/event/order.html:369
msgid "Change order"
-msgstr ""
+msgstr "Muuta tilausta"
#: pretix/presale/templates/pretixpresale/event/order.html:381
#: pretix/presale/templates/pretixpresale/event/order_cancel.html:27
@@ -31863,7 +31883,7 @@ msgstr "Palautus voidaan maksaa alkuperäisellä maksutavalla tai lahjakorttina.
#: pretix/presale/templates/pretixpresale/event/order.html:430
#: pretix/presale/templates/pretixpresale/event/order.html:451
msgid "The refund will be issued to your original payment method."
-msgstr ""
+msgstr "Hyvitys maksetaan alkuperäiselle maksatavallesi."
#: pretix/presale/templates/pretixpresale/event/order.html:396
#: pretix/presale/templates/pretixpresale/event/order.html:409
From 86120d02963c04ae6a4db94c4ed7756b01b91044 Mon Sep 17 00:00:00 2001
From: Raphael Michel
Date: Mon, 10 Feb 2025 10:59:35 +0100
Subject: [PATCH 44/99] Enable Finish language
---
src/pretix/_base_settings.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/pretix/_base_settings.py b/src/pretix/_base_settings.py
index b4d9467d7c..939532015a 100644
--- a/src/pretix/_base_settings.py
+++ b/src/pretix/_base_settings.py
@@ -123,7 +123,7 @@ LANGUAGES_RTL = {
'ar', 'hw'
}
LANGUAGES_INCUBATING = {
- 'fi', 'pt-br', 'gl',
+ 'pt-br', 'gl',
}
LANGUAGES = ALL_LANGUAGES
LOCALE_PATHS = [
From 7e8ef475378a443a4c4a7330af49bc37c79b5b24 Mon Sep 17 00:00:00 2001
From: Kian Cross
Date: Mon, 10 Feb 2025 10:32:24 +0000
Subject: [PATCH 45/99] Add delete button to voucher details page (#4815)
---
.../control/templates/pretixcontrol/vouchers/detail.html | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/src/pretix/control/templates/pretixcontrol/vouchers/detail.html b/src/pretix/control/templates/pretixcontrol/vouchers/detail.html
index 7d7ac29cab..24d6e4801b 100644
--- a/src/pretix/control/templates/pretixcontrol/vouchers/detail.html
+++ b/src/pretix/control/templates/pretixcontrol/vouchers/detail.html
@@ -125,6 +125,15 @@
+ {% if voucher.pk %}
+
{% endif %}
From 5bf6980a7b386211d197ccd93ae061e66dc7523a Mon Sep 17 00:00:00 2001
From: Kian Cross
Date: Mon, 10 Feb 2025 10:33:14 +0000
Subject: [PATCH 46/99] Improve date format heuristic for bank statement import
(#4814)
When dates are ambiguous, use the event's locale to infer whether the
day or month comes first. Since regions follow certain date format
conventions, this helps make more accurate guesses.
---
src/pretix/plugins/banktransfer/tasks.py | 6 ++--
src/tests/plugins/banktransfer/test_import.py | 30 +++++++++++++++++++
.../plugins/banktransfer/test_parsing.py | 2 ++
3 files changed, 35 insertions(+), 3 deletions(-)
diff --git a/src/pretix/plugins/banktransfer/tasks.py b/src/pretix/plugins/banktransfer/tasks.py
index 174ff437e3..301f799e2a 100644
--- a/src/pretix/plugins/banktransfer/tasks.py
+++ b/src/pretix/plugins/banktransfer/tasks.py
@@ -292,11 +292,11 @@ def _handle_transaction(trans: BankTransaction, matches: tuple, event: Event = N
trans.save()
-def parse_date(date_str):
+def parse_date(date_str, region=None):
try:
return dateutil.parser.parse(
date_str,
- dayfirst="." in date_str,
+ dayfirst="." in date_str or region in ["GB"],
).date()
except (ValueError, OverflowError):
pass
@@ -339,7 +339,7 @@ def _get_unknown_transactions(job: BankImportJob, data: list, event: Event = Non
external_id=row.get('external_id'),
currency=event.currency if event else job.currency)
- trans.date_parsed = parse_date(trans.date)
+ trans.date_parsed = parse_date(trans.date, (event and event.settings.region) or (organizer and organizer.settings.region) or None)
trans.checksum = trans.calculate_checksum()
if trans.checksum not in known_checksums and (not trans.external_id or (trans.external_id, trans.date, trans.amount) not in known_by_external_id):
diff --git a/src/tests/plugins/banktransfer/test_import.py b/src/tests/plugins/banktransfer/test_import.py
index 49a7f8db37..e438322405 100644
--- a/src/tests/plugins/banktransfer/test_import.py
+++ b/src/tests/plugins/banktransfer/test_import.py
@@ -790,3 +790,33 @@ def test_ignore_by_external_id(env, job):
}])
with scopes_disabled():
assert BankTransaction.objects.count() == 2
+
+
+@pytest.mark.django_db
+def test_ambigious_date_without_region(env, job):
+ process_banktransfers(job, [{
+ 'payer': 'Karla Kundin',
+ 'reference': 'Bestellung DUMMY1Z3AS',
+ 'date': '03/05/2016',
+ 'amount': '23.00'
+ }])
+ env[2].refresh_from_db()
+
+ with scopes_disabled():
+ assert env[2].payments.last().info_data["date"] == "2016-03-05"
+
+
+@pytest.mark.django_db
+def test_ambigious_date_with_region(env, job):
+ env[0].settings.region = "GB"
+
+ process_banktransfers(job, [{
+ 'payer': 'Karla Kundin',
+ 'reference': 'Bestellung DUMMY1Z3AS',
+ 'date': '03/05/2016',
+ 'amount': '23.00'
+ }])
+ env[2].refresh_from_db()
+
+ with scopes_disabled():
+ assert env[2].payments.last().info_data["date"] == "2016-05-03"
diff --git a/src/tests/plugins/banktransfer/test_parsing.py b/src/tests/plugins/banktransfer/test_parsing.py
index 3c6e73a9fb..e338c3c6dc 100644
--- a/src/tests/plugins/banktransfer/test_parsing.py
+++ b/src/tests/plugins/banktransfer/test_parsing.py
@@ -40,3 +40,5 @@ def test_date_formats():
assert dt == parse_date("2020-07-01")
assert dt == parse_date("2020-7-1")
+
+ assert dt == parse_date("01/07/2020", "GB")
From 0079be68d3712d7497a52a20745ee7016f7b25e0 Mon Sep 17 00:00:00 2001
From: Raphael Michel
Date: Mon, 10 Feb 2025 14:06:20 +0100
Subject: [PATCH 47/99] Allow plugins to add data to the order API (Z#23179688)
(#4822)
* Allow plugins to add data to the order API (Z#23179688)
* Update src/pretix/api/serializers/media.py
Co-authored-by: Richard Schreiber
* Fix failing test
---------
Co-authored-by: Richard Schreiber
---
doc/api/resources/orders.rst | 28 +++++++++++++++++++------
doc/development/api/general.rst | 2 +-
src/pretix/api/serializers/order.py | 31 ++++++++++++++++++++++++++--
src/pretix/api/signals.py | 24 ++++++++++++++++++++-
src/tests/api/test_giftcards.py | 1 +
src/tests/api/test_order_create.py | 12 +++++++----
src/tests/api/test_orders.py | 2 ++
src/tests/api/test_reusable_media.py | 3 ++-
8 files changed, 88 insertions(+), 15 deletions(-)
diff --git a/doc/api/resources/orders.rst b/doc/api/resources/orders.rst
index 75bfa97a0f..f742801c83 100644
--- a/doc/api/resources/orders.rst
+++ b/doc/api/resources/orders.rst
@@ -109,6 +109,7 @@ cancellation_date datetime Time of order c
Will not be set for partial cancellations and is not
reliable for orders that have been cancelled,
reactivated and cancelled again.
+plugin_data object Additional data added by plugins.
===================================== ========================== =======================================================
@@ -164,6 +165,10 @@ cancellation_date datetime Time of order c
The ``tax_code`` attribute has been added.
+.. versionchanged:: 2025.2
+
+ The ``plugin_data`` attribute has been added.
+
.. _order-position-resource:
Order position resource
@@ -251,6 +256,7 @@ seat objects The assigned se
pdf_data object Data object required for ticket PDF generation. By default,
this field is missing. It will be added only if you add the
``pdf_data=true`` query parameter to your request.
+plugin_data object Additional data added by plugins.
===================================== ========================== =======================================================
.. versionchanged:: 4.16
@@ -265,6 +271,10 @@ pdf_data object Data object req
The ``tax_code`` attribute has been added.
+.. versionchanged:: 2025.2
+
+ The ``plugin_data`` attribute has been added.
+
.. _order-payment-resource:
Order payment resource
@@ -461,7 +471,8 @@ List of all orders
"output": "pdf",
"url": "https://pretix.eu/api/v1/organizers/bigevents/events/sampleconf/orderpositions/23442/download/pdf/"
}
- ]
+ ],
+ "plugin_data": {}
}
],
"downloads": [
@@ -483,7 +494,8 @@ List of all orders
}
],
"refunds": [],
- "cancellation_date": null
+ "cancellation_date": null,
+ "plugin_data": {}
}
]
}
@@ -702,7 +714,8 @@ Fetching individual orders
"output": "pdf",
"url": "https://pretix.eu/api/v1/organizers/bigevents/events/sampleconf/orderpositions/23442/download/pdf/"
}
- ]
+ ],
+ "plugin_data": {}
}
],
"downloads": [
@@ -724,7 +737,8 @@ Fetching individual orders
}
],
"refunds": [],
- "cancellation_date": null
+ "cancellation_date": null,
+ "plugin_data": {}
}
:param organizer: The ``slug`` field of the organizer to fetch
@@ -1671,7 +1685,8 @@ List of all order positions
"output": "pdf",
"url": "https://pretix.eu/api/v1/organizers/bigevents/events/sampleconf/orderpositions/23442/download/pdf/"
}
- ]
+ ],
+ "plugin_data": {}
}
]
}
@@ -1798,7 +1813,8 @@ Fetching individual positions
"output": "pdf",
"url": "https://pretix.eu/api/v1/organizers/bigevents/events/sampleconf/orderpositions/23442/download/pdf/"
}
- ]
+ ],
+ "plugin_data": {}
}
:param organizer: The ``slug`` field of the organizer to fetch
diff --git a/doc/development/api/general.rst b/doc/development/api/general.rst
index fdd34717b6..05cc1a2677 100644
--- a/doc/development/api/general.rst
+++ b/doc/development/api/general.rst
@@ -103,4 +103,4 @@ API
.. automodule:: pretix.api.signals
:no-index:
- :members: register_device_security_profile
+ :members: register_device_security_profile, order_api_details, orderposition_api_details
diff --git a/src/pretix/api/serializers/order.py b/src/pretix/api/serializers/order.py
index 6b32a8db51..2f7fd09d89 100644
--- a/src/pretix/api/serializers/order.py
+++ b/src/pretix/api/serializers/order.py
@@ -46,6 +46,7 @@ from pretix.api.serializers.i18n import I18nAwareModelSerializer
from pretix.api.serializers.item import (
InlineItemVariationSerializer, ItemSerializer, QuestionSerializer,
)
+from pretix.api.signals import order_api_details, orderposition_api_details
from pretix.base.decimal import round_decimal
from pretix.base.i18n import language
from pretix.base.models import (
@@ -494,6 +495,18 @@ class OrderPositionListSerializer(serializers.ListSerializer):
return data
+class OrderPositionPluginDataField(serializers.Field):
+ def to_representation(self, value: OrderPosition):
+ d = {}
+ if value and value.pk:
+ for recv, resp in orderposition_api_details.send(
+ sender=self.context.get("event") or value.order.event,
+ orderposition=value
+ ):
+ d.update(resp)
+ return d
+
+
class OrderPositionSerializer(I18nAwareModelSerializer):
checkins = CheckinSerializer(many=True, read_only=True)
print_logs = PrintLogSerializer(many=True, read_only=True)
@@ -504,6 +517,7 @@ class OrderPositionSerializer(I18nAwareModelSerializer):
seat = InlineSeatSerializer(read_only=True)
country = CompatibleCountryField(source='*')
attendee_name = serializers.CharField(required=False)
+ plugin_data = OrderPositionPluginDataField(source='*', allow_null=True, read_only=True)
class Meta:
list_serializer_class = OrderPositionListSerializer
@@ -513,7 +527,7 @@ class OrderPositionSerializer(I18nAwareModelSerializer):
'attendee_email', 'voucher', 'tax_rate', 'tax_value', 'secret', 'addon_to', 'subevent', 'checkins',
'print_logs', 'downloads', 'answers', 'tax_rule', 'pseudonymization_id', 'pdf_data', 'seat', 'canceled',
'print_logs', 'downloads', 'answers', 'tax_rule', 'tax_code', 'pseudonymization_id', 'pdf_data', 'seat',
- 'canceled', 'valid_from', 'valid_until', 'blocked', 'voucher_budget_use')
+ 'canceled', 'valid_from', 'valid_until', 'blocked', 'voucher_budget_use', 'plugin_data')
read_only_fields = (
'id', 'order', 'positionid', 'item', 'variation', 'price', 'voucher', 'tax_rate', 'tax_value', 'secret',
'addon_to', 'subevent', 'checkins', 'downloads', 'answers', 'tax_rule', 'tax_code', 'pseudonymization_id',
@@ -730,6 +744,18 @@ class OrderListSerializer(serializers.ListSerializer):
return data
+class OrderPluginDataField(serializers.Field):
+ def to_representation(self, value: Order):
+ d = {}
+ if value and value.pk:
+ for recv, resp in order_api_details.send(
+ sender=self.context.get("event") or value.event,
+ order=value
+ ):
+ d.update(resp)
+ return d
+
+
class OrderSerializer(I18nAwareModelSerializer):
event = SlugRelatedField(slug_field='slug', read_only=True)
invoice_address = InvoiceAddressSerializer(allow_null=True)
@@ -747,6 +773,7 @@ class OrderSerializer(I18nAwareModelSerializer):
queryset=SalesChannel.objects.none(),
required=False,
)
+ plugin_data = OrderPluginDataField(source='*', allow_null=True, read_only=True)
class Meta:
model = Order
@@ -755,7 +782,7 @@ class OrderSerializer(I18nAwareModelSerializer):
'code', 'event', 'status', 'testmode', 'secret', 'email', 'phone', 'locale', 'datetime', 'expires', 'payment_date',
'payment_provider', 'fees', 'total', 'comment', 'custom_followup_at', 'invoice_address', 'positions', 'downloads',
'checkin_attention', 'checkin_text', 'last_modified', 'payments', 'refunds', 'require_approval', 'sales_channel',
- 'url', 'customer', 'valid_if_pending', 'api_meta', 'cancellation_date'
+ 'url', 'customer', 'valid_if_pending', 'api_meta', 'cancellation_date', 'plugin_data',
)
read_only_fields = (
'code', 'status', 'testmode', 'secret', 'datetime', 'expires', 'payment_date',
diff --git a/src/pretix/api/signals.py b/src/pretix/api/signals.py
index 40383d5d80..22cdd82eec 100644
--- a/src/pretix/api/signals.py
+++ b/src/pretix/api/signals.py
@@ -26,7 +26,7 @@ from django.utils.timezone import now
from django_scopes import scopes_disabled
from pretix.api.models import ApiCall, WebHookCall
-from pretix.base.signals import periodic_task
+from pretix.base.signals import EventPluginSignal, periodic_task
from pretix.helpers.periodic import minimum_interval
register_webhook_events = Signal()
@@ -43,6 +43,28 @@ return an instance of a subclass of ``pretix.api.auth.devicesecurity.BaseSecurit
or a list of such instances.
"""
+order_api_details = EventPluginSignal()
+"""
+Arguments: ``order``
+
+This signal is sent out to fill the ``plugin_details`` field of the order API. Receivers
+should return a dictionary that is combined with the dictionaries of all other plugins.
+Note that doing database or network queries in receivers to this signal is discouraged
+and could cause serious performance issues. The main purpose is to provide information
+from e.g. ``meta_info`` to the API consumer,
+"""
+
+orderposition_api_details = EventPluginSignal()
+"""
+Arguments: ``orderposition``
+
+This signal is sent out to fill the ``plugin_details`` field of the order API. Receivers
+should return a dictionary that is combined with the dictionaries of all other plugins.
+Note that doing database or network queries in receivers to this signal is discouraged
+and could cause serious performance issues. The main purpose is to provide information
+from e.g. ``meta_info`` to the API consumer,
+"""
+
@receiver(periodic_task)
@scopes_disabled()
diff --git a/src/tests/api/test_giftcards.py b/src/tests/api/test_giftcards.py
index 780b64f73e..bbc50fec2f 100644
--- a/src/tests/api/test_giftcards.py
+++ b/src/tests/api/test_giftcards.py
@@ -162,6 +162,7 @@ def test_giftcard_detail_expand(token_client, organizer, event, giftcard):
"tax_rule": None,
"pseudonymization_id": op.pseudonymization_id,
"pdf_data": {},
+ "plugin_data": {},
"seat": None,
"canceled": False,
"valid_from": None,
diff --git a/src/tests/api/test_order_create.py b/src/tests/api/test_order_create.py
index a164a50082..7f1a184389 100644
--- a/src/tests/api/test_order_create.py
+++ b/src/tests/api/test_order_create.py
@@ -477,7 +477,8 @@ def test_order_create_simulate(token_client, organizer, event, item, quota, ques
'zipcode': None,
'state': None,
'country': None,
- 'canceled': False
+ 'canceled': False,
+ 'plugin_data': {},
}
],
'downloads': [],
@@ -487,7 +488,8 @@ def test_order_create_simulate(token_client, organizer, event, item, quota, ques
'refunds': [],
'require_approval': False,
'sales_channel': 'web',
- 'cancellation_date': None
+ 'cancellation_date': None,
+ 'plugin_data': {},
}
@@ -533,13 +535,15 @@ def test_order_create_positionids_addons_simulated(token_client, organizer, even
'street': None, 'zipcode': None, 'city': None, 'country': None, 'state': None, 'attendee_email': None,
'voucher': None, 'tax_rate': '19.00', 'tax_code': 'S/standard', 'tax_value': '3.67', 'discount': None, 'voucher_budget_use': None,
'addon_to': None, 'subevent': None, 'checkins': [], 'print_logs': [], 'downloads': [], 'answers': [], 'tax_rule': item.tax_rule_id,
- 'pseudonymization_id': 'PREVIEW', 'seat': None, 'canceled': False, 'valid_from': None, 'valid_until': None, 'blocked': None},
+ 'pseudonymization_id': 'PREVIEW', 'seat': None, 'canceled': False, 'valid_from': None, 'valid_until': None, 'blocked': None,
+ 'plugin_data': {}},
{'id': 0, 'order': '', 'positionid': 2, 'item': item.pk, 'variation': None, 'price': '23.00',
'attendee_name': 'Peter', 'attendee_name_parts': {'full_name': 'Peter', '_scheme': 'full'}, 'company': None,
'street': None, 'zipcode': None, 'city': None, 'country': None, 'state': None, 'attendee_email': None,
'voucher': None, 'tax_rate': '19.00', 'tax_code': 'S/standard', 'tax_value': '3.67', 'discount': None, 'voucher_budget_use': None,
'addon_to': 1, 'subevent': None, 'checkins': [], 'print_logs': [], 'downloads': [], 'answers': [], 'tax_rule': item.tax_rule_id,
- 'pseudonymization_id': 'PREVIEW', 'seat': None, 'canceled': False, 'valid_from': None, 'valid_until': None, 'blocked': None}
+ 'pseudonymization_id': 'PREVIEW', 'seat': None, 'canceled': False, 'valid_from': None, 'valid_until': None, 'blocked': None,
+ 'plugin_data': {}}
]
diff --git a/src/tests/api/test_orders.py b/src/tests/api/test_orders.py
index 79d12951d5..3b59cfd46d 100644
--- a/src/tests/api/test_orders.py
+++ b/src/tests/api/test_orders.py
@@ -236,6 +236,7 @@ TEST_ORDERPOSITION_RES = {
],
"subevent": None,
"canceled": False,
+ "plugin_data": {},
}
TEST_PAYMENTS_RES = [
{
@@ -333,6 +334,7 @@ TEST_ORDER_RES = {
"payments": TEST_PAYMENTS_RES,
"refunds": TEST_REFUNDS_RES,
"cancellation_date": None,
+ "plugin_data": {},
}
diff --git a/src/tests/api/test_reusable_media.py b/src/tests/api/test_reusable_media.py
index 4a0ceea015..a415b3f54e 100644
--- a/src/tests/api/test_reusable_media.py
+++ b/src/tests/api/test_reusable_media.py
@@ -203,7 +203,8 @@ def test_medium_detail(token_client, organizer, event, medium, giftcard, custome
"canceled": False,
"valid_from": None,
"valid_until": None,
- "blocked": None
+ "blocked": None,
+ "plugin_data": {},
}
assert resp.data["linked_giftcard"] == {
"id": giftcard.pk,
From 943193e8e0bbc6c44ef69b3cc11fcac9fc441f24 Mon Sep 17 00:00:00 2001
From: Richard Schreiber
Date: Tue, 11 Feb 2025 10:54:18 +0100
Subject: [PATCH 48/99] Fix copying invoice answers with special chars in
placeholder
---
src/pretix/static/pretixpresale/js/ui/main.js | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/pretix/static/pretixpresale/js/ui/main.js b/src/pretix/static/pretixpresale/js/ui/main.js
index 087efdce84..1b967b5d49 100644
--- a/src/pretix/static/pretixpresale/js/ui/main.js
+++ b/src/pretix/static/pretixpresale/js/ui/main.js
@@ -387,14 +387,14 @@ $(function () {
var $first_ticket_form = $(".questions-form").first().find("[data-addonidx=0]");
$first_ticket_form.find("[id$=" + this.id.substring(3) + "]").val(this.value);
if (this.placeholder) {
- $first_ticket_form.find("[placeholder='" + this.placeholder + "']").val(this.value);
+ $first_ticket_form.find("[placeholder='" + CSS.escape(this.placeholder) + "']").val(this.value);
}
var label = $("label[for=" + this.id +"]").first().contents().filter(function () {
return this.nodeType != Node.ELEMENT_NODE || !this.classList.contains("sr-only");
}).text().trim();
if (label) {
// match to placeholder and label
- $first_ticket_form.find("[placeholder='" + label + "']").val(this.value);
+ $first_ticket_form.find("[placeholder='" + CSS.escape(label) + "']").val(this.value);
var v = this.value;
$first_ticket_form.find("label").each(function() {
var text = $(this).first().contents().filter(function () {
From 7afe2e66d78fbc227d3c9683339d09df9a3eeb92 Mon Sep 17 00:00:00 2001
From: Raphael Michel
Date: Wed, 12 Feb 2025 12:50:13 +0100
Subject: [PATCH 49/99] API: Validate input locales (Z#23182219) (#4833)
---
src/pretix/api/serializers/order.py | 2 ++
src/pretix/api/serializers/organizer.py | 2 ++
src/pretix/api/serializers/waitinglist.py | 6 ++++++
src/pretix/base/shredder.py | 2 +-
src/tests/api/test_order_create.py | 15 +++++++++++++++
5 files changed, 26 insertions(+), 1 deletion(-)
diff --git a/src/pretix/api/serializers/order.py b/src/pretix/api/serializers/order.py
index 2f7fd09d89..accc96a4da 100644
--- a/src/pretix/api/serializers/order.py
+++ b/src/pretix/api/serializers/order.py
@@ -1102,6 +1102,7 @@ class OrderCreateSerializer(I18nAwareModelSerializer):
queryset=SalesChannel.objects.none(),
required=False,
)
+ locale = serializers.ChoiceField(choices=[])
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
@@ -1109,6 +1110,7 @@ class OrderCreateSerializer(I18nAwareModelSerializer):
self.fields['customer'].queryset = self.context['event'].organizer.customers.all()
self.fields['expires'].required = False
self.fields["sales_channel"].queryset = self.context["event"].organizer.sales_channels.all()
+ self.fields["locale"].choices = self.context['event'].settings.locales
class Meta:
model = Order
diff --git a/src/pretix/api/serializers/organizer.py b/src/pretix/api/serializers/organizer.py
index c49d86b32a..ad262415fd 100644
--- a/src/pretix/api/serializers/organizer.py
+++ b/src/pretix/api/serializers/organizer.py
@@ -22,6 +22,7 @@
import logging
from decimal import Decimal
+from django.conf import settings
from django.core.exceptions import ObjectDoesNotExist
from django.db.models import Q
from django.utils.crypto import get_random_string
@@ -77,6 +78,7 @@ class CustomerSerializer(I18nAwareModelSerializer):
last_login = serializers.DateTimeField(read_only=True)
date_joined = serializers.DateTimeField(read_only=True)
last_modified = serializers.DateTimeField(read_only=True)
+ locale = serializers.ChoiceField(choices=settings.LANGUAGES, default='en')
class Meta:
model = Customer
diff --git a/src/pretix/api/serializers/waitinglist.py b/src/pretix/api/serializers/waitinglist.py
index ca6a661a1c..6a8aea899f 100644
--- a/src/pretix/api/serializers/waitinglist.py
+++ b/src/pretix/api/serializers/waitinglist.py
@@ -19,6 +19,7 @@
# You should have received a copy of the GNU Affero General Public License along with this program. If not, see
# .
#
+from rest_framework import serializers
from rest_framework.exceptions import ValidationError
from pretix.api.serializers.i18n import I18nAwareModelSerializer
@@ -26,12 +27,17 @@ from pretix.base.models import WaitingListEntry
class WaitingListSerializer(I18nAwareModelSerializer):
+ locale = serializers.ChoiceField(choices=[])
class Meta:
model = WaitingListEntry
fields = ('id', 'created', 'name', 'name_parts', 'email', 'phone', 'voucher', 'item', 'variation', 'locale', 'subevent', 'priority')
read_only_fields = ('id', 'created', 'voucher')
+ def __init__(self, *args, **kwargs):
+ super().__init__(*args, **kwargs)
+ self.fields["locale"].choices = self.context['event'].settings.locales
+
def validate(self, data):
data = super().validate(data)
event = self.context['event']
diff --git a/src/pretix/base/shredder.py b/src/pretix/base/shredder.py
index dd24b9f7f1..bc0ea800a8 100644
--- a/src/pretix/base/shredder.py
+++ b/src/pretix/base/shredder.py
@@ -370,7 +370,7 @@ class WaitingListShredder(BaseDataShredder):
def generate_files(self) -> List[Tuple[str, str, str]]:
yield 'waiting-list.json', 'application/json', json.dumps([
- WaitingListSerializer(wle).data
+ WaitingListSerializer(wle, context={"event": self.event}).data
for wle in self.event.waitinglistentries.all()
], indent=4)
diff --git a/src/tests/api/test_order_create.py b/src/tests/api/test_order_create.py
index 7f1a184389..678a80283a 100644
--- a/src/tests/api/test_order_create.py
+++ b/src/tests/api/test_order_create.py
@@ -622,6 +622,21 @@ def test_order_create_sales_channel_invalid(token_client, organizer, event, item
assert resp.data == {'sales_channel': ['Object with identifier=foo does not exist.']}
+@pytest.mark.django_db
+def test_order_create_locale_invalid(token_client, organizer, event, item, quota, question):
+ res = copy.deepcopy(ORDER_CREATE_PAYLOAD)
+ res['positions'][0]['item'] = item.pk
+ res['positions'][0]['answers'][0]['question'] = question.pk
+ res['locale'] = 'klingon'
+ resp = token_client.post(
+ '/api/v1/organizers/{}/events/{}/orders/'.format(
+ organizer.slug, event.slug
+ ), format='json', data=res
+ )
+ assert resp.status_code == 400
+ assert resp.data == {'locale': ['"klingon" is not a valid choice.']}
+
+
@pytest.mark.django_db
def test_order_create_in_test_mode(token_client, organizer, event, item, quota, question):
res = copy.deepcopy(ORDER_CREATE_PAYLOAD)
From ddcf54c71e0206a79103c7ba44c7b7649f1c2ca1 Mon Sep 17 00:00:00 2001
From: Raphael Michel
Date: Wed, 12 Feb 2025 12:51:08 +0100
Subject: [PATCH 50/99] Badges: Remove invalid GET handler from view (#4838)
---
src/pretix/plugins/badges/views.py | 3 +++
1 file changed, 3 insertions(+)
diff --git a/src/pretix/plugins/badges/views.py b/src/pretix/plugins/badges/views.py
index 6a99b80ba6..409cb0e882 100644
--- a/src/pretix/plugins/badges/views.py
+++ b/src/pretix/plugins/badges/views.py
@@ -149,6 +149,9 @@ class LayoutSetDefault(EventPermissionRequiredMixin, DetailView):
except BadgeLayout.DoesNotExist:
raise Http404(_("The requested badge layout does not exist."))
+ def get(self, request, *args, **kwargs):
+ return self.http_method_not_allowed(request, *args, **kwargs)
+
@transaction.atomic
def post(self, request, *args, **kwargs):
messages.success(self.request, _('Your changes have been saved.'))
From 4b1bc39617b07c2bdd93ad6a3458f11538edf6bc Mon Sep 17 00:00:00 2001
From: Raphael Michel
Date: Wed, 12 Feb 2025 12:51:17 +0100
Subject: [PATCH 51/99] API: Fix crash on invalid input (PRETIXEU-B7Q) (#4837)
---
src/pretix/api/views/order.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/pretix/api/views/order.py b/src/pretix/api/views/order.py
index 75459370b9..8e47ba2f75 100644
--- a/src/pretix/api/views/order.py
+++ b/src/pretix/api/views/order.py
@@ -707,7 +707,7 @@ class EventOrderViewSet(OrderViewSetMixin, viewsets.ModelViewSet):
)
def create(self, request, *args, **kwargs):
- if 'send_mail' in request.data and 'send_email' not in request.data:
+ if 'send_mail' in request.data and 'send_email' not in request.data and isinstance(request.data, dict):
request.data['send_email'] = request.data['send_mail']
serializer = OrderCreateSerializer(data=request.data, context=self.get_serializer_context())
serializer.is_valid(raise_exception=True)
From 3efcae79dcc68f235cba944a63c76c13abb0d2c6 Mon Sep 17 00:00:00 2001
From: Robert Rigo
Date: Mon, 10 Feb 2025 18:26:10 +0000
Subject: [PATCH 52/99] Translations: Update Croatian
Currently translated at 0.7% (43 of 5846 strings)
Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/hr/
powered by weblate
---
src/pretix/locale/hr/LC_MESSAGES/django.po | 48 +++++++++++-----------
1 file changed, 23 insertions(+), 25 deletions(-)
diff --git a/src/pretix/locale/hr/LC_MESSAGES/django.po b/src/pretix/locale/hr/LC_MESSAGES/django.po
index 8fcf71d287..17db308396 100644
--- a/src/pretix/locale/hr/LC_MESSAGES/django.po
+++ b/src/pretix/locale/hr/LC_MESSAGES/django.po
@@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-01-29 13:18+0000\n"
-"PO-Revision-Date: 2024-11-17 00:00+0000\n"
-"Last-Translator: Pavle Ergović \n"
+"PO-Revision-Date: 2025-02-11 03:00+0000\n"
+"Last-Translator: Robert Rigo \n"
"Language-Team: Croatian \n"
"Language: hr\n"
@@ -18,7 +18,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
-"X-Generator: Weblate 5.8.3\n"
+"X-Generator: Weblate 5.9.2\n"
#: pretix/_base_settings.py:87
msgid "English"
@@ -38,15 +38,15 @@ msgstr "Arapski"
#: pretix/_base_settings.py:91
msgid "Basque"
-msgstr ""
+msgstr "Baskijski"
#: pretix/_base_settings.py:92
msgid "Catalan"
-msgstr ""
+msgstr "Katalanski"
#: pretix/_base_settings.py:93
msgid "Chinese (simplified)"
-msgstr ""
+msgstr "Kineski"
#: pretix/_base_settings.py:94
msgid "Chinese (traditional)"
@@ -54,11 +54,11 @@ msgstr ""
#: pretix/_base_settings.py:95
msgid "Czech"
-msgstr ""
+msgstr "Češki"
#: pretix/_base_settings.py:96
msgid "Danish"
-msgstr ""
+msgstr "Danski"
#: pretix/_base_settings.py:97
msgid "Dutch"
@@ -78,7 +78,7 @@ msgstr "Finski"
#: pretix/_base_settings.py:101
msgid "Galician"
-msgstr ""
+msgstr "Galicijski"
#: pretix/_base_settings.py:102
msgid "Greek"
@@ -86,7 +86,7 @@ msgstr "Grčki"
#: pretix/_base_settings.py:103
msgid "Indonesian"
-msgstr ""
+msgstr "Indonezijski"
#: pretix/_base_settings.py:104
msgid "Italian"
@@ -94,23 +94,23 @@ msgstr "Talijanski"
#: pretix/_base_settings.py:105
msgid "Japanese"
-msgstr ""
+msgstr "Japanski"
#: pretix/_base_settings.py:106
msgid "Latvian"
-msgstr ""
+msgstr "Latvijski"
#: pretix/_base_settings.py:107
msgid "Norwegian Bokmål"
-msgstr ""
+msgstr "Norveški"
#: pretix/_base_settings.py:108
msgid "Polish"
-msgstr ""
+msgstr "Poljski"
#: pretix/_base_settings.py:109
msgid "Portuguese (Portugal)"
-msgstr ""
+msgstr "Portugalski"
#: pretix/_base_settings.py:110
msgid "Portuguese (Brazil)"
@@ -118,31 +118,31 @@ msgstr ""
#: pretix/_base_settings.py:111
msgid "Romanian"
-msgstr ""
+msgstr "Rumunjski"
#: pretix/_base_settings.py:112
msgid "Russian"
-msgstr ""
+msgstr "Ruski"
#: pretix/_base_settings.py:113
msgid "Slovak"
-msgstr ""
+msgstr "Slovački"
#: pretix/_base_settings.py:114
msgid "Swedish"
-msgstr ""
+msgstr "Švedski"
#: pretix/_base_settings.py:115
msgid "Spanish"
-msgstr ""
+msgstr "Španjolski"
#: pretix/_base_settings.py:116
msgid "Turkish"
-msgstr ""
+msgstr "Turski"
#: pretix/_base_settings.py:117
msgid "Ukrainian"
-msgstr ""
+msgstr "Ukrajinski"
#: pretix/api/auth/devicesecurity.py:58
msgid ""
@@ -3310,10 +3310,8 @@ msgid "The relevant plugin is currently not active."
msgstr ""
#: pretix/base/logentrytypes.py:49
-#, fuzzy
-#| msgid "Order deleted"
msgid "(deleted)"
-msgstr "Narudžba obrisana"
+msgstr "(obrisano)"
#: pretix/base/logentrytypes.py:78
#, python-brace-format
From 7c869f747b6fe06a4a2c0b8b1f697c0adb9fb5a6 Mon Sep 17 00:00:00 2001
From: deborahfoell
Date: Tue, 11 Feb 2025 11:21:57 +0000
Subject: [PATCH 53/99] Translations: Update Korean
Currently translated at 2.1% (126 of 5846 strings)
Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/ko/
powered by weblate
---
src/pretix/locale/ko/LC_MESSAGES/django.po | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/pretix/locale/ko/LC_MESSAGES/django.po b/src/pretix/locale/ko/LC_MESSAGES/django.po
index 936ec784e8..4fbf5d5b73 100644
--- a/src/pretix/locale/ko/LC_MESSAGES/django.po
+++ b/src/pretix/locale/ko/LC_MESSAGES/django.po
@@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-01-29 13:18+0000\n"
-"PO-Revision-Date: 2025-02-06 18:00+0000\n"
-"Last-Translator: 조정화 \n"
+"PO-Revision-Date: 2025-02-11 20:00+0000\n"
+"Last-Translator: deborahfoell \n"
"Language-Team: Korean \n"
"Language: ko\n"
@@ -391,11 +391,11 @@ msgid "Medium connected to other event"
msgstr "다른 이벤트와 연결된 매체"
#: pretix/api/views/oauth.py:107 pretix/control/logdisplay.py:686
-#, fuzzy, python-brace-format
+#, python-brace-format
msgid ""
"The application \"{application_name}\" has been authorized to access your "
"account."
-msgstr "\"{applicationion_name}\" 애플리케이션이 계정에 액세스할 수 있는 권한을 "
+msgstr "\"{application_name}\" 애플리케이션이 계정에 액세스할 수 있는 권한을 "
"부여받았습니다."
#: pretix/api/views/order.py:607 pretix/control/views/orders.py:1588
From 6441ef0c0903382856f7191aaf25e5a234bea594 Mon Sep 17 00:00:00 2001
From: Ana Rute Pacheco Vivas
Date: Wed, 12 Feb 2025 11:09:08 +0000
Subject: [PATCH 54/99] Translations: Update Portuguese (Portugal)
Currently translated at 85.4% (4994 of 5846 strings)
Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/pt_PT/
powered by weblate
---
src/pretix/locale/pt_PT/LC_MESSAGES/django.po | 137 ++++++++----------
1 file changed, 60 insertions(+), 77 deletions(-)
diff --git a/src/pretix/locale/pt_PT/LC_MESSAGES/django.po b/src/pretix/locale/pt_PT/LC_MESSAGES/django.po
index 6303157da7..5f6bfb22bf 100644
--- a/src/pretix/locale/pt_PT/LC_MESSAGES/django.po
+++ b/src/pretix/locale/pt_PT/LC_MESSAGES/django.po
@@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-01-29 13:18+0000\n"
-"PO-Revision-Date: 2025-02-01 17:45+0000\n"
-"Last-Translator: Vasco Baleia \n"
+"PO-Revision-Date: 2025-02-12 11:50+0000\n"
+"Last-Translator: Ana Rute Pacheco Vivas \n"
"Language-Team: Portuguese (Portugal) \n"
"Language: pt_PT\n"
@@ -77,7 +77,7 @@ msgstr "Finlandês"
#: pretix/_base_settings.py:101
msgid "Galician"
-msgstr "Galian"
+msgstr "Galego"
#: pretix/_base_settings.py:102
msgid "Greek"
@@ -117,7 +117,7 @@ msgstr "Português (Brasil)"
#: pretix/_base_settings.py:111
msgid "Romanian"
-msgstr "romena"
+msgstr "Romeno"
#: pretix/_base_settings.py:112
msgid "Russian"
@@ -141,7 +141,7 @@ msgstr "Turco"
#: pretix/_base_settings.py:117
msgid "Ukrainian"
-msgstr "ucraniano"
+msgstr "Ucraniano"
#: pretix/api/auth/devicesecurity.py:58
msgid ""
@@ -182,7 +182,7 @@ msgstr "Lista de URIs pós-logout permitidos, separados por espaço"
#: pretix/api/models.py:51 pretix/base/models/customers.py:406
#: pretix/plugins/paypal/payment.py:113 pretix/plugins/paypal2/payment.py:110
msgid "Client ID"
-msgstr "ID do cliente"
+msgstr "ID do Participante"
#: pretix/api/models.py:55
msgid "Client secret"
@@ -219,7 +219,7 @@ msgstr "Limite de eventos"
#: pretix/plugins/banktransfer/refund_export.py:46
#: pretix/plugins/checkinlists/exporters.py:521
msgid "Comment"
-msgstr "Comentario"
+msgstr "Comentário"
#: pretix/api/serializers/cart.py:168 pretix/api/serializers/order.py:1384
msgid "The product \"{}\" is not assigned to a quota."
@@ -283,8 +283,8 @@ msgid ""
"Updating add-ons, bundles, or variations via PATCH/PUT is not supported. "
"Please use the dedicated nested endpoint."
msgstr ""
-"Atualizando add-ons, pacotes, ou variações, através PATCH/PUT não é "
-"suportado. Por favor use o endpoint dedicado."
+"Atualizando produtos adicionados, pacotes, ou variações, através PATCH/PUT "
+"não é suportado. Por favor use o endpoint dedicado."
#: pretix/api/serializers/item.py:306
msgid "Only admission products can currently be personalized."
@@ -368,7 +368,7 @@ msgid ""
"A gift card with the same secret already exists in your or an affiliated "
"organizer account."
msgstr ""
-"Um cartão-prenda com o mesmo código já existe na sua ou numa conta de "
+"Um cartão-presente com o mesmo código já existe na tua ou numa conta de "
"organizador afiliada."
#: pretix/api/serializers/organizer.py:327
@@ -390,7 +390,7 @@ msgstr "Este utilizador já tem permissões para este equipa."
msgid ""
"The specified voucher has already been used the maximum number of times."
msgstr ""
-"Este código do voucher já foi usado o número máximo de vezes permitido."
+"O voucher especificado já foi utilizado o número máximo de vezes permitido."
#: pretix/api/views/checkin.py:610 pretix/api/views/checkin.py:617
msgid "Medium connected to other event"
@@ -411,13 +411,12 @@ msgstr "Não é possível gerar uma fatura para este pedido."
#: pretix/api/views/order.py:612 pretix/control/views/orders.py:1590
#: pretix/presale/views/order.py:743 pretix/presale/views/order.py:816
msgid "An invoice for this order already exists."
-msgstr "Uma factura para este pedido já existe."
+msgstr "Uma fatura para este pedido já existe."
#: pretix/api/views/order.py:638 pretix/control/views/orders.py:1716
#: pretix/control/views/users.py:143
msgid "There was an error sending the mail. Please try again later."
-msgstr ""
-"Houve um erro ao enviar o e-mail. Por favor, tente novamente mais tarde."
+msgstr "Houve um erro ao enviar o email. Por favor, tenta novamente mais tarde."
#: pretix/api/views/order.py:718 pretix/base/services/cart.py:215
#: pretix/base/services/orders.py:186 pretix/presale/views/order.py:798
@@ -453,7 +452,7 @@ msgstr "Pedido expirado"
#: pretix/api/webhooks.py:261
msgid "Order expiry date changed"
-msgstr "A data de validade do pedido foi alterado"
+msgstr "A data de validade do pedido foi alterada"
#: pretix/api/webhooks.py:265 pretix/base/notifications.py:269
msgid "Order information changed"
@@ -474,11 +473,11 @@ msgstr "Reembolso do pagamento criado"
#: pretix/api/webhooks.py:281 pretix/base/notifications.py:293
msgid "External refund of payment"
-msgstr "Reembolso de pagamento externa"
+msgstr "Reembolso de pagamento externo"
#: pretix/api/webhooks.py:285
msgid "Refund of payment requested by customer"
-msgstr "Reembolso do pagamento solicitado pelo cliente"
+msgstr "Reembolso do pagamento solicitado pelo participante"
#: pretix/api/webhooks.py:289
msgid "Refund of payment completed"
@@ -557,7 +556,7 @@ msgstr "Loja ao vivo"
#: pretix/api/webhooks.py:358
msgid "Shop taken offline"
-msgstr "Loja foi tirado do ar"
+msgstr "Já não é possível inscreveres-te"
#: pretix/api/webhooks.py:362
msgid "Test-Mode of shop has been activated"
@@ -585,15 +584,15 @@ msgstr "Entrada em fila de espera recebeu voucher"
#: pretix/api/webhooks.py:386
msgid "Customer account created"
-msgstr "Conta de cliente criada"
+msgstr "Conta do participante criada"
#: pretix/api/webhooks.py:390
msgid "Customer account changed"
-msgstr "Conta do cliente alterada"
+msgstr "Conta do participante alterada"
#: pretix/api/webhooks.py:394
msgid "Customer account anonymized"
-msgstr "Conta do cliente anonimizada"
+msgstr "Conta do participante anonimizada"
#: pretix/base/addressvalidation.py:100 pretix/base/addressvalidation.py:103
#: pretix/base/addressvalidation.py:108 pretix/base/forms/questions.py:960
@@ -610,11 +609,11 @@ msgstr "Este campo é obrigatório."
#: pretix/base/addressvalidation.py:213
msgid "Enter a postal code in the format XXX."
-msgstr "Insira um código postal no formato XXX."
+msgstr "Indica um código-postal no formato XXX."
#: pretix/base/addressvalidation.py:222 pretix/base/addressvalidation.py:224
msgid "Enter a postal code in the format XXXX."
-msgstr "Insira um código postal no formato XXXX."
+msgstr "Indica um código-postal no formato XXXX."
#: pretix/base/auth.py:146
#, python-brace-format
@@ -1388,7 +1387,7 @@ msgstr "Endereço"
#: pretix/plugins/checkinlists/exporters.py:533
#: pretix/plugins/reports/exporters.py:841
msgid "ZIP code"
-msgstr "Código postal"
+msgstr "Código-postal"
#: pretix/base/exporters/invoices.py:209 pretix/base/exporters/invoices.py:217
#: pretix/base/exporters/invoices.py:335 pretix/base/exporters/invoices.py:343
@@ -1455,7 +1454,7 @@ msgstr "Número de IVA"
#: pretix/base/exporters/invoices.py:345 pretix/base/exporters/invoices.py:346
#: pretix/base/exporters/invoices.py:347 pretix/base/exporters/invoices.py:348
msgid "Invoice recipient:"
-msgstr "destinatário da factura:"
+msgstr "destinatário da fatura:"
#: pretix/base/exporters/invoices.py:213 pretix/base/exporters/invoices.py:339
#: pretix/base/exporters/orderlist.py:262
@@ -2057,7 +2056,7 @@ msgstr "Posições"
#: pretix/base/exporters/orderlist.py:658 pretix/base/models/orders.py:321
#: pretix/control/forms/filter.py:566
msgid "Email address verified"
-msgstr "Endereço de E-mail verificado"
+msgstr "Endereço de Email verificado"
#: pretix/base/exporters/orderlist.py:288
#: pretix/base/exporters/orderlist.py:465
@@ -2205,7 +2204,7 @@ msgstr "Nome do participante"
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:176
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:179
msgid "Attendee email"
-msgstr "E-mail do participante"
+msgstr "Email do participante"
#: pretix/base/exporters/orderlist.py:609 pretix/base/models/vouchers.py:312
#: pretix/control/templates/pretixcontrol/vouchers/bulk.html:5
@@ -3771,7 +3770,8 @@ msgstr "Mostrar produtos escondidos que correspondem a este voucher"
#: pretix/base/modelimport_vouchers.py:343 pretix/base/models/vouchers.py:301
msgid "Offer all add-on products for free when redeeming this voucher"
-msgstr "Oferecer todos os produtos add-on gratuitamente ao usar este voucher"
+msgstr ""
+"Oferecer todos os produtos adicionais gratuitamente ao usar este voucher"
#: pretix/base/modelimport_vouchers.py:351 pretix/base/models/vouchers.py:305
msgid ""
@@ -4148,7 +4148,7 @@ msgstr "Aplicar a produtos específicos"
#: pretix/base/models/discount.py:108
msgid "Count add-on products"
-msgstr "Contar os produtos add-on"
+msgstr "Contar os produtos adicionais"
#: pretix/base/models/discount.py:109 pretix/base/models/discount.py:164
msgid "Discounts never apply to bundled products"
@@ -4656,7 +4656,7 @@ msgstr "Descrição da categoria"
#: pretix/base/models/items.py:108
msgid "Products in this category are add-on products"
-msgstr "Os produtos nesta categoria são produtos add-on"
+msgstr "Os produtos nesta categoria são produtos adicionais"
#: pretix/base/models/items.py:109
msgid ""
@@ -4703,11 +4703,8 @@ msgid "Cross-selling condition"
msgstr ""
#: pretix/base/models/items.py:137
-#, fuzzy
-#| msgctxt "checkoutflow"
-#| msgid "Add-on products"
msgid "Cross-selling condition products"
-msgstr "Produtos add-on"
+msgstr "Produtos adicionais"
#: pretix/base/models/items.py:143
#: pretix/control/templates/pretixcontrol/items/categories.html:3
@@ -8112,16 +8109,12 @@ msgstr ""
"%(base)s no máximo uma vez."
#: pretix/base/services/cart.py:207
-#, fuzzy
-#| msgid ""
-#| "One of the products you selected can only be bought as an add-on to "
-#| "another project."
msgid ""
"One of the products you selected can only be bought as an add-on to another "
"product."
msgstr ""
-"Um dos produtos que selecionou só pode ser comprado como um add-on para "
-"outro projeto."
+"Um dos produtos que selecionaste só pode ser comprado como um produto "
+"adicional para outro projeto."
#: pretix/base/services/cart.py:208
msgid "One of the products you selected can only be bought part of a bundle."
@@ -9176,7 +9169,7 @@ msgstr "Número máximo de itens por pedido"
#: pretix/base/settings.py:317
msgid "Add-on products will not be counted."
-msgstr "Produtos add-on não serão contados."
+msgstr "Produtos adicionais não serão contados."
#: pretix/base/settings.py:326
msgid ""
@@ -10199,10 +10192,8 @@ msgstr ""
"do evento permitir."
#: pretix/base/settings.py:1545
-#, fuzzy
-#| msgid "Generate tickets for add-on products"
msgid "Generate tickets for add-on products and bundled products"
-msgstr "Gerar bilhetes para produtos add-on"
+msgstr "Gerar bilhetes para produtos adicionais"
#: pretix/base/settings.py:1546
#, fuzzy
@@ -14497,11 +14488,9 @@ msgstr ""
"atualizado!"
#: pretix/control/forms/item.py:100
-#, fuzzy
-#| msgid "Products in this category are add-on products"
msgid ""
"Products in this category are regular products displayed on the front page."
-msgstr "Os produtos nesta categoria são produtos add-on"
+msgstr "Os produtos nesta categoria são produtos adicionais"
#: pretix/control/forms/item.py:103
#, fuzzy
@@ -14510,12 +14499,12 @@ msgid "Add-on product category"
msgstr "Categoria de Produto"
#: pretix/control/forms/item.py:104
-#, fuzzy
-#| msgid "Products in this category are add-on products"
msgid ""
"Products in this category are add-on products and can only be bought as add-"
"ons."
-msgstr "Os produtos nesta categoria são produtos add-on"
+msgstr ""
+"Os produtos desta categoria são produtos adicionais e só podem ser comprados "
+"como adicionais."
#: pretix/control/forms/item.py:108
msgid ""
@@ -32257,7 +32246,7 @@ msgstr ""
#: pretix/presale/checkoutflow.py:489
msgctxt "checkoutflow"
msgid "Add-on products"
-msgstr "Produtos add-on"
+msgstr "Produtos adicionais"
#: pretix/presale/checkoutflow.py:678 pretix/presale/checkoutflow.py:686
#: pretix/presale/views/cart.py:193 pretix/presale/views/cart.py:198
@@ -32269,7 +32258,7 @@ msgstr "Por favor insira apenas números."
#: pretix/presale/checkoutflow.py:760
msgctxt "checkoutflow"
msgid "Your information"
-msgstr "A sua informação"
+msgstr "A tua informação"
#: pretix/presale/checkoutflow.py:986
msgid ""
@@ -32640,8 +32629,8 @@ msgid ""
"For some of the products in your cart, you can choose additional options "
"before you continue."
msgstr ""
-"Para alguns dos produtos no seu carrinho, pode escolher opções adicionais "
-"antes de continuar."
+"Para alguns dos produtos no teu carrinho, podes escolher opções adicionais "
+"antes de continuares."
#: pretix/presale/templates/pretixpresale/event/checkout_addons.html:16
msgid ""
@@ -32654,10 +32643,8 @@ msgid "We're now trying to book these add-ons for you!"
msgstr "Estamos agora a tentar reservar estes add-ons para si!"
#: pretix/presale/templates/pretixpresale/event/checkout_addons.html:28
-#, fuzzy
-#| msgid "Additional settings"
msgid "Additional options for"
-msgstr "Configurações adicionais"
+msgstr "Opções adicionais para"
#: pretix/presale/templates/pretixpresale/event/checkout_addons.html:64
#, fuzzy
@@ -32708,10 +32695,8 @@ msgid "Cart expired"
msgstr "Carrinho expirado"
#: pretix/presale/templates/pretixpresale/event/checkout_base.html:36
-#, fuzzy
-#| msgid "Show full location"
msgid "Show full cart"
-msgstr "Mostre a localização completa"
+msgstr "Mostrar carrinho"
#: pretix/presale/templates/pretixpresale/event/checkout_base.html:48
#: pretix/presale/templates/pretixpresale/event/index.html:84
@@ -32999,7 +32984,7 @@ msgstr ""
#, python-format
msgid "You need to choose exactly one option from this category."
msgid_plural "You need to choose %(min_count)s options from this category."
-msgstr[0] "Necessita de escolher exatamente uma opção desta categoria."
+msgstr[0] "Necessitas de selecionar uma opção das seguintes categorias."
msgstr[1] "Necessita de escolher %(min_count)s opções desta categoria."
#: pretix/presale/templates/pretixpresale/event/fragment_addon_choice.html:26
@@ -33161,12 +33146,9 @@ msgstr "Adicione %(item)s, %(var)s ao carrinho"
#: pretix/presale/templates/pretixpresale/event/fragment_product_list.html:371
#: pretix/presale/templates/pretixpresale/event/voucher.html:231
#: pretix/presale/templates/pretixpresale/event/voucher.html:386
-#, fuzzy
-#| msgctxt "subevents"
-#| msgid "Select date"
msgctxt "checkbox"
msgid "Select"
-msgstr "Selecione a data"
+msgstr "Seleciona"
#: pretix/presale/templates/pretixpresale/event/fragment_addon_choice.html:208
#: pretix/presale/templates/pretixpresale/event/fragment_addon_choice.html:354
@@ -33392,15 +33374,16 @@ msgstr "incl. %(tax_sum)s impostos"
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:494
#, python-format
msgid "The items in your cart are reserved for you for %(minutes)s minutes."
-msgstr "Os itens no seu carrinho estão reservados por %(minutes)s minutos."
+msgstr ""
+"Os artigos no teu carrinho estão reservados para ti por %(minutes)s minutos."
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:498
msgid ""
"The items in your cart are no longer reserved for you. You can still "
"complete your order as long as they’re available."
msgstr ""
-"Os itens no seu carrinho já não estão mais reservados para você. Você ainda "
-"pode finalizar o seu pedido, desde que eles estejam disponíveis."
+"Os artigos no teu carrinho já não estão reservados para ti. Podes continuar "
+"a tua encomenda enquanto estiverem disponíveis."
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:502
msgid "Overview of your ordered products."
@@ -33663,7 +33646,7 @@ msgstr "Quando acontece o evento?"
#: pretix/presale/templates/pretixpresale/event/fragment_event_info.html:20
#, python-format
msgid "Begin: %(time)s"
-msgstr "Começar: %(time)s"
+msgstr "Início: %(time)s"
#: pretix/presale/templates/pretixpresale/event/fragment_event_info.html:29
#, python-format
@@ -33877,7 +33860,7 @@ msgstr "Adicionar ao carrinho"
#: pretix/presale/templates/pretixpresale/event/index.html:253
msgid "If you already ordered a ticket"
-msgstr "Se já pediu um bilhete"
+msgstr "Se já pediste um bilhete"
#: pretix/presale/templates/pretixpresale/event/index.html:257
msgid ""
@@ -33886,9 +33869,9 @@ msgid ""
"cannot find the link, click on the following button to request the link to "
"your order to be sent to you again."
msgstr ""
-"Se quiser ver ou mudar o estado e os detalhes do seu pedido, clique no link "
-"em um dos e-mails que recebeu durante o processo de pedido. Se não consegue "
-"encontrar o link, clique no botão a seguir para solicitar que o link seja "
+"Se quiseres ver ou mudar o estado e os detalhes do teu pedido, clica no link "
+"num dos e-mails que recebeste durante o processo do pedido. Se não consegues "
+"encontrar o link, clica no botão a seguir para solicitares que o link seja "
"enviado novamente."
#: pretix/presale/templates/pretixpresale/event/index.html:266
@@ -34438,9 +34421,9 @@ msgid ""
"you used for your order. We will send you an email with links to all orders "
"you placed using this email address."
msgstr ""
-"Se perdeu o link para algum pedido, por favor insira o endereço de e-mail "
-"utilizado no mesmo. Iremos enviar-lhe um e-mail com links para todas os "
-"pedidos que fez usando este endereço de e-mail."
+"Se perdeste o link para algum pedido, por favor indica o endereço de email "
+"utilizado no mesmo. Iremos enviar-te um email com links para todos os "
+"pedidos que fizeste com este endereço de email."
#: pretix/presale/templates/pretixpresale/event/resend_link.html:30
msgid "Send links"
@@ -35078,7 +35061,7 @@ msgstr "O carrinho está agora vazio."
#: pretix/presale/views/cart.py:546
msgid "The products have been successfully added to your cart."
-msgstr "Os produtos foram adicionados com êxito ao seu carrinho."
+msgstr "Os produtos foram adicionados com êxito ao teu carrinho."
#: pretix/presale/views/cart.py:570 pretix/presale/views/event.py:536
#: pretix/presale/views/widget.py:377
From c4573c4a07b6d713cd9f9c75a63a11c8fd8638c8 Mon Sep 17 00:00:00 2001
From: Ana Rute Pacheco Vivas
Date: Wed, 12 Feb 2025 11:51:03 +0000
Subject: [PATCH 55/99] Translations: Update Portuguese (Portugal)
Currently translated at 85.4% (4994 of 5846 strings)
Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/pt_PT/
powered by weblate
---
src/pretix/locale/pt_PT/LC_MESSAGES/django.po | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/pretix/locale/pt_PT/LC_MESSAGES/django.po b/src/pretix/locale/pt_PT/LC_MESSAGES/django.po
index 5f6bfb22bf..b7eaa9121d 100644
--- a/src/pretix/locale/pt_PT/LC_MESSAGES/django.po
+++ b/src/pretix/locale/pt_PT/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-01-29 13:18+0000\n"
-"PO-Revision-Date: 2025-02-12 11:50+0000\n"
+"PO-Revision-Date: 2025-02-12 11:51+0000\n"
"Last-Translator: Ana Rute Pacheco Vivas \n"
"Language-Team: Portuguese (Portugal) \n"
@@ -33000,7 +33000,7 @@ msgid ""
"You can choose between %(min_count)s and %(max_count)s options from this "
"category."
msgstr ""
-"Pode escolher entre %(min_count)s e %(max_count)s opções desta categoria."
+"Podes escolher entre %(min_count)s e %(max_count)s opções desta categoria."
#: pretix/presale/templates/pretixpresale/event/fragment_addon_choice.html:64
#: pretix/presale/templates/pretixpresale/event/fragment_addon_choice.html:258
From 65aa50c6fa444f6428e5dfe2eec259566696ceb6 Mon Sep 17 00:00:00 2001
From: Johanna Ketola
Date: Wed, 12 Feb 2025 13:03:17 +0000
Subject: [PATCH 56/99] Translations: Update Finnish
Currently translated at 65.9% (3857 of 5846 strings)
Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/fi/
powered by weblate
---
src/pretix/locale/fi/LC_MESSAGES/django.po | 64 +++++++++++-----------
1 file changed, 32 insertions(+), 32 deletions(-)
diff --git a/src/pretix/locale/fi/LC_MESSAGES/django.po b/src/pretix/locale/fi/LC_MESSAGES/django.po
index 4cb8ca41a0..55b6f8f470 100644
--- a/src/pretix/locale/fi/LC_MESSAGES/django.po
+++ b/src/pretix/locale/fi/LC_MESSAGES/django.po
@@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-01-29 13:18+0000\n"
-"PO-Revision-Date: 2025-02-09 22:00+0000\n"
-"Last-Translator: Karoliina Grohn \n"
+"PO-Revision-Date: 2025-02-12 15:27+0000\n"
+"Last-Translator: Johanna Ketola \n"
"Language-Team: Finnish \n"
"Language: fi\n"
@@ -21,75 +21,75 @@ msgstr ""
#: pretix/_base_settings.py:87
msgid "English"
-msgstr "Englanti"
+msgstr "englanti"
#: pretix/_base_settings.py:88
msgid "German"
-msgstr "Saksa"
+msgstr "saksa"
#: pretix/_base_settings.py:89
msgid "German (informal)"
-msgstr "Saksa (Epävirallinen)"
+msgstr "saksa (puhekieli)"
#: pretix/_base_settings.py:90
msgid "Arabic"
-msgstr "Arabia"
+msgstr "arabia"
#: pretix/_base_settings.py:91
msgid "Basque"
-msgstr "Baski"
+msgstr "baski"
#: pretix/_base_settings.py:92
msgid "Catalan"
-msgstr "Katalaani"
+msgstr "katalaani"
#: pretix/_base_settings.py:93
msgid "Chinese (simplified)"
-msgstr "Kiina (Yksinkertaistettu)"
+msgstr "kiina (yksinkertaistettu)"
#: pretix/_base_settings.py:94
msgid "Chinese (traditional)"
-msgstr "Kiina (Perinteinen)"
+msgstr "kiina (perinteinen)"
#: pretix/_base_settings.py:95
msgid "Czech"
-msgstr "Tšekki"
+msgstr "tšekki"
#: pretix/_base_settings.py:96
msgid "Danish"
-msgstr "Tanska"
+msgstr "tanska"
#: pretix/_base_settings.py:97
msgid "Dutch"
-msgstr "Hollanti"
+msgstr "hollanti"
#: pretix/_base_settings.py:98
msgid "Dutch (informal)"
-msgstr "Hollanti (Epävirallinen)"
+msgstr "hollanti (puhekieli)"
#: pretix/_base_settings.py:99
msgid "French"
-msgstr "Ranska"
+msgstr "ranska"
#: pretix/_base_settings.py:100
msgid "Finnish"
-msgstr "Suomi"
+msgstr "suomi"
#: pretix/_base_settings.py:101
msgid "Galician"
-msgstr "Galego"
+msgstr "galego"
#: pretix/_base_settings.py:102
msgid "Greek"
-msgstr "Kreikka"
+msgstr "kreikka"
#: pretix/_base_settings.py:103
msgid "Indonesian"
-msgstr "Indonesia"
+msgstr "indonesia"
#: pretix/_base_settings.py:104
msgid "Italian"
-msgstr "Italia"
+msgstr "italia"
#: pretix/_base_settings.py:105
msgid "Japanese"
@@ -97,51 +97,51 @@ msgstr "japani"
#: pretix/_base_settings.py:106
msgid "Latvian"
-msgstr "Latvia"
+msgstr "latvia"
#: pretix/_base_settings.py:107
msgid "Norwegian Bokmål"
-msgstr "Norja (Kirjakieli)"
+msgstr "norja (kirjakieli)"
#: pretix/_base_settings.py:108
msgid "Polish"
-msgstr "Puola"
+msgstr "puola"
#: pretix/_base_settings.py:109
msgid "Portuguese (Portugal)"
-msgstr "Portugali (Portugali)"
+msgstr "portugali (Portugali)"
#: pretix/_base_settings.py:110
msgid "Portuguese (Brazil)"
-msgstr "Portugali (Brazilia)"
+msgstr "portugali (Brasilia)"
#: pretix/_base_settings.py:111
msgid "Romanian"
-msgstr "Romania"
+msgstr "romania"
#: pretix/_base_settings.py:112
msgid "Russian"
-msgstr "Venäjä"
+msgstr "venäjä"
#: pretix/_base_settings.py:113
msgid "Slovak"
-msgstr "Slovakki"
+msgstr "slovakki"
#: pretix/_base_settings.py:114
msgid "Swedish"
-msgstr "Ruotsi"
+msgstr "ruotsi"
#: pretix/_base_settings.py:115
msgid "Spanish"
-msgstr "Espania"
+msgstr "espanja"
#: pretix/_base_settings.py:116
msgid "Turkish"
-msgstr "Turkki"
+msgstr "turkki"
#: pretix/_base_settings.py:117
msgid "Ukrainian"
-msgstr "Ukraina"
+msgstr "ukraina"
#: pretix/api/auth/devicesecurity.py:58
msgid ""
From 59a8f18573843c548bbd2c68910fc1dfe3c14fa8 Mon Sep 17 00:00:00 2001
From: Ana Rute Pacheco Vivas
Date: Wed, 12 Feb 2025 15:12:02 +0000
Subject: [PATCH 57/99] Translations: Update Portuguese (Portugal)
Currently translated at 85.4% (4996 of 5846 strings)
Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/pt_PT/
powered by weblate
---
src/pretix/locale/pt_PT/LC_MESSAGES/django.po | 110 +++++++++---------
1 file changed, 54 insertions(+), 56 deletions(-)
diff --git a/src/pretix/locale/pt_PT/LC_MESSAGES/django.po b/src/pretix/locale/pt_PT/LC_MESSAGES/django.po
index b7eaa9121d..dd6abcc9f1 100644
--- a/src/pretix/locale/pt_PT/LC_MESSAGES/django.po
+++ b/src/pretix/locale/pt_PT/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-01-29 13:18+0000\n"
-"PO-Revision-Date: 2025-02-12 11:51+0000\n"
+"PO-Revision-Date: 2025-02-12 15:27+0000\n"
"Last-Translator: Ana Rute Pacheco Vivas \n"
"Language-Team: Portuguese (Portugal) \n"
@@ -1504,7 +1504,7 @@ msgstr "Beneficiário"
#: pretix/control/templates/pretixcontrol/order/index.html:986
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:111
msgid "Internal reference"
-msgstr "Referência interna"
+msgstr "NIF (Número de Contribuinte)"
#: pretix/base/exporters/invoices.py:223 pretix/base/models/tax.py:162
#: pretix/control/forms/event.py:1502
@@ -2105,7 +2105,7 @@ msgstr "Regra fiscal"
#: pretix/base/exporters/orderlist.py:644
#: pretix/base/exporters/orderlist.py:648 pretix/base/pdf.py:330
msgid "Invoice address name"
-msgstr "Nome de Endereço de facturação"
+msgstr "Endereço de faturação"
#: pretix/base/exporters/orderlist.py:480
#: pretix/base/exporters/orderlist.py:683 pretix/base/models/orders.py:205
@@ -3163,7 +3163,7 @@ msgstr "Tempo"
#: pretix/base/forms/widgets.py:234 pretix/base/forms/widgets.py:239
msgid "Business or institutional customer"
-msgstr "Cliente empresarial ou institucional"
+msgstr "Empresa ou organização"
#: pretix/base/forms/widgets.py:238
msgid "Individual customer"
@@ -3584,7 +3584,7 @@ msgstr "Por favor, indique um estado válido."
#: pretix/base/modelimport_orders.py:325 pretix/control/forms/filter.py:651
msgid "Attendee email address"
-msgstr "Endereço de e-mail do participante"
+msgstr "Endereço de email do participante"
#: pretix/base/modelimport_orders.py:341 pretix/base/modelimport_orders.py:352
#: pretix/base/modelimport_orders.py:363 pretix/base/modelimport_orders.py:374
@@ -6065,11 +6065,13 @@ msgstr "Posições do carrinho"
#: pretix/base/models/orders.py:3261
msgid "Business customer"
-msgstr "Cliente empresarial"
+msgstr "Empresa ou organização"
#: pretix/base/models/orders.py:3277
msgid "This reference will be printed on your invoice for your convenience."
-msgstr "Esta referência será impressa na sua factura para sua conveniência."
+msgstr ""
+"Esta referência é o teu NIF (Número de Contribuinte) que será impresso na "
+"tua fatura, caso assim o desejes."
#: pretix/base/models/orders.py:3461
#: pretix/plugins/badges/templates/pretixplugins/badges/control_order_position_buttons.html:9
@@ -8915,8 +8917,8 @@ msgid ""
"There was an error while trying to send the money back to you. Please "
"contact the event organizer for further information."
msgstr ""
-"Houve um erro ao tentar enviar o dinheiro de volta para si. Entre em contato "
-"com o organizador do evento para mais informações."
+"Houve um erro ao tentar enviar o dinheiro de volta para ti. Entra em "
+"contacto com o organizador do evento para mais informações."
#: pretix/base/services/placeholders.py:469
#: pretix/base/services/placeholders.py:478
@@ -9719,9 +9721,9 @@ msgid ""
"shown this page again and you can either redeem another gift card or select "
"a different payment method for the difference."
msgstr ""
-"Se tiver um cartão-presente, por favor, insira o código de cartão-presente "
+"Se tiveres um cartão-presente, por favor, indica o código do cartão-presente "
"aqui. Se o cartão-presente não tiver saldo suficiente para pagar o pedido, "
-"verá esta página novamente e pode resgatar outro cartão-presente ou "
+"verás esta página novamente e podes resgatar outro cartão-presente ou "
"selecionar um método de pagamento diferente para a diferença."
#: pretix/base/settings.py:1012
@@ -11332,17 +11334,17 @@ msgid ""
msgstr ""
"Olá,\n"
"\n"
-"aprovamos o seu pedido {event} e será um prazer em recebê-lo\n"
+"aprovámos o teu pedido {event} e será um prazer em receber-te\n"
"no nosso evento.\n"
"\n"
-"Por favor, continue pagando o seu pedido antes de {expire_date}.\n"
+"Por favor, paga o montante restante antes de {expire_date}.\n"
"\n"
-"Pode selecionar um método de pagamento e realizar o pagamento aqui:\n"
+"Podes selecionar um método de pagamento e realizar o pagamento aqui:\n"
"\n"
"{url}\n"
"\n"
"Cumprimentos,\n"
-"A sua equipa {event}"
+"A Equipa {event}"
#: pretix/base/settings.py:2546 pretix/base/settings.py:2583
#, python-brace-format
@@ -11555,7 +11557,7 @@ msgstr ""
#: pretix/base/settings.py:2686
#, python-brace-format
msgid "Confirm email address for your account at {organizer}"
-msgstr "Confirme o endereço de e-mail para sua conta em {organizer}"
+msgstr "Confirme o endereço de email para sua conta em {organizer}"
#: pretix/base/settings.py:2690
#, python-brace-format
@@ -11870,8 +11872,8 @@ msgid ""
"Make sure to enter a valid email address. We will send you an order "
"confirmation including a link that you need to access your order later."
msgstr ""
-"Certifique-se de digitar um endereço de e-mail válido. Iremos enviar-lhe uma "
-"confirmação do pedido incluindo um link que você precisa para aceder p seu "
+"Certifica-te de que escreves um endereço de email válido. Iremos enviar-te "
+"uma confirmação do pedido incluindo um link que precisas para aceder o teu "
"pedido mais tarde."
#: pretix/base/settings.py:3123
@@ -16374,7 +16376,7 @@ msgstr "As configurações da conta foram alteradas."
#: pretix/control/logdisplay.py:592 pretix/control/views/user.py:252
#, python-brace-format
msgid "Your email address has been changed to {email}."
-msgstr "O seu endereço de e-mail foi alterado para {email}."
+msgstr "O seu endereço de email foi alterado para {email}."
#: pretix/control/logdisplay.py:594 pretix/control/views/user.py:249
msgid "Your password has been changed."
@@ -22033,7 +22035,7 @@ msgstr "Alterar informações do pedido"
#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:39
#: pretix/presale/templates/pretixpresale/event/order_modify.html:29
msgid "Invoice information"
-msgstr "Informações da factura"
+msgstr "Informações da fatura"
#: pretix/control/templates/pretixcontrol/order/change_questions.html:26
#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:40
@@ -22431,7 +22433,7 @@ msgstr "Mudar"
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:90
#: pretix/presale/templates/pretixpresale/event/order.html:317
msgid "ZIP code and city"
-msgstr "CEP e cidade"
+msgstr "Código-Postal e Cidade"
#: pretix/control/templates/pretixcontrol/order/index.html:970
msgid "Valid EU VAT ID"
@@ -28782,7 +28784,7 @@ msgstr ""
#: pretix/plugins/banktransfer/payment.py:457
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/pending.html:15
msgid "Please transfer the full amount to the following bank account:"
-msgstr "Por favor, transfira o valor total para a seguinte conta bancária:"
+msgstr "Por favor, transfere o valor total para a seguinte conta bancária:"
#: pretix/plugins/banktransfer/payment.py:465
#: pretix/plugins/banktransfer/payment.py:654
@@ -28939,8 +28941,8 @@ msgid ""
"After completing your purchase, we will ask you to transfer the money to our "
"bank account, using a personal reference code."
msgstr ""
-"Após concluir a sua compra, iremos pedir-lhe para transferir o dinheiro para "
-"a nossa conta bancária, usando um código de referência pessoal."
+"Após a conclusão da tua compra, pedir-te-emos que transfiras o dinheiro para "
+"uma conta bancária, utilizando um código de referência pessoal."
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/checkout_confirm.html:43
#, python-format
@@ -29139,7 +29141,7 @@ msgstr ""
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/pending.html:72
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/pending.html:92
msgid "Scan the qr-code with your banking app"
-msgstr "Digitalize o código QR com seu aplicativo bancário"
+msgstr "Faz scan do QR code com a app do teu banco"
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/pending.html:65
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/pending.html:75
@@ -30169,7 +30171,7 @@ msgstr "Por favor, ligue o JavaScript."
#: pretix/plugins/paypal2/templates/pretixplugins/paypal2/pay.html:29
#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:55
msgid "Please select how you want to pay."
-msgstr "Por favor, selecione como deseja pagar."
+msgstr "Por favor, seleciona como desejas pagar."
#: pretix/plugins/paypal2/templates/pretixplugins/paypal2/pending.html:10
#, fuzzy
@@ -30419,7 +30421,7 @@ msgstr "Impostos por país"
#: pretix/plugins/reports/exporters.py:659
msgid "Business customers"
-msgstr "Clientes comerciais"
+msgstr "Empresa ou organização"
#: pretix/plugins/reports/exporters.py:791
#: pretix/plugins/reports/exporters.py:836
@@ -31818,9 +31820,9 @@ msgid ""
"provider to complete your payment. You will then be redirected back here to "
"get your tickets."
msgstr ""
-"Depois de submeter o seu pedido, vamos redirecioná-lo para o prestador de "
-"serviços de pagamento para concluir o pagamento. Em seguida, será "
-"redirecionado de volta aqui para obter os seus bilhetes."
+"Depois de teres submetido a tua encomenda, serás reencaminhado para o Mollie "
+"para completares o teu pagamento. Em seguida, serás redirecionado para aqui "
+"para obteres os teus bilhetes."
#: pretix/plugins/stripe/templates/pretixplugins/stripe/checkout_payment_form_card.html:9
msgid ""
@@ -32344,7 +32346,7 @@ msgid ""
"Please enter the same email address again to make sure you typed it "
"correctly."
msgstr ""
-"Digite o mesmo endereço de e-mail novamente para verificar que inseriu "
+"Escreve o mesmo endereço de email novamente para verificares que o inseriste "
"corretamente."
#: pretix/presale/forms/checkout.py:110
@@ -32647,10 +32649,8 @@ msgid "Additional options for"
msgstr "Opções adicionais para"
#: pretix/presale/templates/pretixpresale/event/checkout_addons.html:64
-#, fuzzy
-#| msgid "Top recommendation"
msgid "More recommendations"
-msgstr "Recomendação principal"
+msgstr "Mais opções"
#: pretix/presale/templates/pretixpresale/event/checkout_addons.html:71
#, fuzzy
@@ -32711,7 +32711,7 @@ msgstr "Rever pedido"
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:12
msgid "Please review the details below and confirm your order."
-msgstr "Consulte os detalhes abaixo e confirme o seu pedido."
+msgstr "Consulta os detalhes abaixo e confirma o teu pedido."
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:14
msgid "Please hang tight, we're finalizing your order!"
@@ -32739,11 +32739,11 @@ msgstr "Modifique as informações da fatura"
#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:23
#: pretix/presale/templates/pretixpresale/event/order_modify.html:33
msgid "Contact information"
-msgstr "Informações de Contato"
+msgstr "Informações de Contacto"
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:124
msgid "Modify contact information"
-msgstr "Modificar informações de contato"
+msgstr "Modificar informações de contacto"
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:167
msgid "Confirmations"
@@ -32853,7 +32853,7 @@ msgstr ""
#: pretix/presale/templates/pretixpresale/event/checkout_membership.html:37
#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:114
msgid "Selected add-ons"
-msgstr "Add-ons selecionados"
+msgstr "Produtos adicionais selecionados"
#: pretix/presale/templates/pretixpresale/event/checkout_membership.html:68
msgid ""
@@ -32912,14 +32912,14 @@ msgstr ""
#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:8
msgid "Before we continue, we need you to answer some questions."
-msgstr "Antes de continuarmos, precisamos que responda a algumas perguntas."
+msgstr "Antes de continuarmos, precisamos que respondas a algumas perguntas."
#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:10
msgid ""
"You need to fill all fields that are marked with * to continue."
msgstr ""
-"É necessário preencher todos os campos que são marcados com * "
-"para continuar."
+"É necessário preencheres todos os campos que são marcados com * "
+"para continuares."
#: pretix/presale/templates/pretixpresale/event/checkout_questions.html:51
msgid "Auto-fill with address"
@@ -32991,7 +32991,7 @@ msgstr[1] "Necessita de escolher %(min_count)s opções desta categoria."
#, python-format
msgid "You can choose %(max_count)s option from this category."
msgid_plural "You can choose up to %(max_count)s options from this category."
-msgstr[0] "Pode escolher %(max_count)s opção desta categoria."
+msgstr[0] "Podes escolher %(max_count)s opção desta categoria."
msgstr[1] "Pode escolher até %(max_count)s opções desta categoria."
#: pretix/presale/templates/pretixpresale/event/fragment_addon_choice.html:34
@@ -33909,7 +33909,7 @@ msgstr "Obrigado!"
#: pretix/presale/templates/pretixpresale/event/order.html:14
#: pretix/presale/templates/pretixpresale/event/order.html:32
msgid "Your order has been placed successfully. See below for details."
-msgstr "O pedido foi efetuado com sucesso. Veja os detalhes abaixo."
+msgstr "O pedido foi efetuado com sucesso. Vê os detalhes abaixo."
#: pretix/presale/templates/pretixpresale/event/order.html:16
#: pretix/presale/templates/pretixpresale/event/order.html:48
@@ -33940,7 +33940,7 @@ msgstr ""
#: pretix/presale/templates/pretixpresale/event/order.html:43
msgid "Please note that we still await your payment to complete the process."
msgstr ""
-"Por favor, note que ainda aguardamos o seu pagamento para concluir o "
+"Por favor, nota que ainda aguardamos o teu pagamento para concluir o "
"processo."
#: pretix/presale/templates/pretixpresale/event/order.html:55
@@ -33949,9 +33949,9 @@ msgid ""
"your order later. We also sent you an email containing the link to the "
"address you specified."
msgstr ""
-"Por favor marque ou guarde o link para esta página exata se quiser aceder ao "
-"seu pedido mais tarde. Também lhe enviamos um e-mail contendo o link para o "
-"endereço especificado."
+"Por favor, guarda o link para esta página, caso queiras aceder ao teu pedido "
+"mais tarde. Também iremos enviar-te um email com o link para o endereço que "
+"indicaste."
#: pretix/presale/templates/pretixpresale/event/order.html:58
msgid ""
@@ -34054,7 +34054,7 @@ msgstr "Solicitação de factura"
#: pretix/presale/templates/pretixpresale/event/order.html:286
msgid "Your information"
-msgstr "A sua informação"
+msgstr "A tua informação"
#: pretix/presale/templates/pretixpresale/event/order.html:289
msgid "Change your information"
@@ -34062,7 +34062,7 @@ msgstr "Alterar informações"
#: pretix/presale/templates/pretixpresale/event/order.html:334
msgid "Internal Reference"
-msgstr "Referência interna"
+msgstr "NIF (Número de Contribuinte)"
#: pretix/presale/templates/pretixpresale/event/order.html:349
msgctxt "action"
@@ -34077,11 +34077,9 @@ msgid "Change your order"
msgstr "Mudar pedido"
#: pretix/presale/templates/pretixpresale/event/order.html:353
-#, fuzzy
-#| msgid "Cancel order"
msgctxt "action"
msgid "Cancel your order"
-msgstr "Cancelar pedido"
+msgstr "Cancelar a minha encomenda"
#: pretix/presale/templates/pretixpresale/event/order.html:361
msgid ""
@@ -34133,7 +34131,7 @@ msgstr "O reembolso será emitido para o seu método de pagamento original."
#: pretix/presale/templates/pretixpresale/event/order.html:465
#: pretix/presale/templates/pretixpresale/event/order.html:470
msgid "This will invalidate all tickets in this order."
-msgstr "Isto invalidará todos os bilhetes por este pedido."
+msgstr "Isto invalidará todos os bilhetes para este pedido."
#: pretix/presale/templates/pretixpresale/event/order.html:401
msgid ""
@@ -34188,7 +34186,7 @@ msgstr ""
#: pretix/presale/templates/pretixpresale/event/order.html:467
msgid "You can cancel this order using the following button."
-msgstr "Pode cancelar este pedido utilizando o botão seguinte."
+msgstr "Podes cancelar este pedido ao clicares no botão."
#: pretix/presale/templates/pretixpresale/event/order_cancel.html:11
#, python-format
@@ -34859,7 +34857,7 @@ msgstr "Informação da conta"
#: pretix/presale/templates/pretixpresale/organizers/customer_info.html:11
msgid "Update your account information"
-msgstr "Atualize as informações da sua conta"
+msgstr "Atualiza as informações da tua conta"
#: pretix/presale/templates/pretixpresale/organizers/customer_login.html:11
#, python-format
@@ -35236,7 +35234,7 @@ msgid ""
"The order has been changed. You can now proceed by paying the open amount of "
"{amount}."
msgstr ""
-"o pedido foi alterada. Agora pode pagar o montante pendente de {amount}."
+"O pedido foi alterado. Agora podes pagar o montante pendente de {amount}."
#: pretix/presale/views/order.py:1612
msgid "You did not make any changes."
From 4ad9bcf6e7dd1fda9946c833b57fb3f8a91e4f02 Mon Sep 17 00:00:00 2001
From: Raphael Michel
Date: Wed, 12 Feb 2025 17:55:30 +0100
Subject: [PATCH 58/99] API: Fix locale accidentally being a required field
---
src/pretix/api/serializers/order.py | 2 +-
src/pretix/api/serializers/waitinglist.py | 5 ++++-
src/tests/api/test_order_create.py | 17 +++++++++++++++++
src/tests/api/test_waitinglist.py | 18 ++++++++++++++++++
4 files changed, 40 insertions(+), 2 deletions(-)
diff --git a/src/pretix/api/serializers/order.py b/src/pretix/api/serializers/order.py
index accc96a4da..162a21d6aa 100644
--- a/src/pretix/api/serializers/order.py
+++ b/src/pretix/api/serializers/order.py
@@ -1102,7 +1102,7 @@ class OrderCreateSerializer(I18nAwareModelSerializer):
queryset=SalesChannel.objects.none(),
required=False,
)
- locale = serializers.ChoiceField(choices=[])
+ locale = serializers.ChoiceField(choices=[], required=False, allow_null=True)
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
diff --git a/src/pretix/api/serializers/waitinglist.py b/src/pretix/api/serializers/waitinglist.py
index 6a8aea899f..6dbf6891b2 100644
--- a/src/pretix/api/serializers/waitinglist.py
+++ b/src/pretix/api/serializers/waitinglist.py
@@ -27,7 +27,7 @@ from pretix.base.models import WaitingListEntry
class WaitingListSerializer(I18nAwareModelSerializer):
- locale = serializers.ChoiceField(choices=[])
+ locale = serializers.ChoiceField(choices=[], required=False, allow_null=True)
class Meta:
model = WaitingListEntry
@@ -66,4 +66,7 @@ class WaitingListSerializer(I18nAwareModelSerializer):
if data.get('name_parts') and '_scheme' not in data.get('name_parts'):
data['name_parts']['_scheme'] = event.settings.name_scheme
+ if data.get('locale', None) is None:
+ data['locale'] = event.settings.locale
+
return data
diff --git a/src/tests/api/test_order_create.py b/src/tests/api/test_order_create.py
index 678a80283a..9e3185c725 100644
--- a/src/tests/api/test_order_create.py
+++ b/src/tests/api/test_order_create.py
@@ -622,6 +622,23 @@ def test_order_create_sales_channel_invalid(token_client, organizer, event, item
assert resp.data == {'sales_channel': ['Object with identifier=foo does not exist.']}
+@pytest.mark.django_db
+def test_order_create_locale_optional(token_client, organizer, event, item, quota, question):
+ event.settings.locale = "de"
+ event.settings.locales = ["en", "de"]
+ res = copy.deepcopy(ORDER_CREATE_PAYLOAD)
+ del res['locale']
+ res['positions'][0]['item'] = item.pk
+ res['positions'][0]['answers'][0]['question'] = question.pk
+ resp = token_client.post(
+ '/api/v1/organizers/{}/events/{}/orders/'.format(
+ organizer.slug, event.slug
+ ), format='json', data=res
+ )
+ assert resp.status_code == 201
+ assert resp.data["locale"] == event.settings.locale
+
+
@pytest.mark.django_db
def test_order_create_locale_invalid(token_client, organizer, event, item, quota, question):
res = copy.deepcopy(ORDER_CREATE_PAYLOAD)
diff --git a/src/tests/api/test_waitinglist.py b/src/tests/api/test_waitinglist.py
index b4a7a48555..40ddf1e2bb 100644
--- a/src/tests/api/test_waitinglist.py
+++ b/src/tests/api/test_waitinglist.py
@@ -469,3 +469,21 @@ def test_wle_send_voucher_unavailable(token_client, organizer, event, item, wle,
assert resp.status_code == 400
wle.refresh_from_db()
assert not wle.voucher
+
+
+@pytest.mark.django_db
+def test_wle_locale_optional(token_client, organizer, event, item, quota):
+ event.settings.locale = "de"
+ event.settings.locales = ["en", "de"]
+ quota.size = 0
+ quota.save()
+ wle = create_wle(
+ token_client, organizer, event,
+ data={
+ 'email': 'testdummy@pretix.eu',
+ 'item': item.pk,
+ 'variation': None,
+ 'subevent': None
+ },
+ )
+ assert wle.locale == "de"
From 686a80ace74a78334fa9a32f0312348ea2b8a7ae Mon Sep 17 00:00:00 2001
From: Ana Rute Pacheco Vivas
Date: Wed, 12 Feb 2025 15:53:41 +0000
Subject: [PATCH 59/99] Translations: Update Portuguese (Portugal)
Currently translated at 85.4% (4997 of 5846 strings)
Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/pt_PT/
powered by weblate
---
src/pretix/locale/pt_PT/LC_MESSAGES/django.po | 53 +++++++++----------
1 file changed, 26 insertions(+), 27 deletions(-)
diff --git a/src/pretix/locale/pt_PT/LC_MESSAGES/django.po b/src/pretix/locale/pt_PT/LC_MESSAGES/django.po
index dd6abcc9f1..6fbe2ac1bb 100644
--- a/src/pretix/locale/pt_PT/LC_MESSAGES/django.po
+++ b/src/pretix/locale/pt_PT/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-01-29 13:18+0000\n"
-"PO-Revision-Date: 2025-02-12 15:27+0000\n"
+"PO-Revision-Date: 2025-02-12 15:56+0000\n"
"Last-Translator: Ana Rute Pacheco Vivas \n"
"Language-Team: Portuguese (Portugal) \n"
@@ -3568,7 +3568,7 @@ msgstr "Precisa selecionar uma variação para este produto."
#: pretix/control/forms/filter.py:632 pretix/control/forms/filter.py:637
#: pretix/control/forms/filter.py:642
msgid "Invoice address"
-msgstr "Endereço de facturação"
+msgstr "Endereço de faturação"
#: pretix/base/modelimport_orders.py:251 pretix/base/modelimport_orders.py:397
msgid "Please enter a valid country code."
@@ -10890,16 +10890,16 @@ msgid ""
msgstr ""
"Olá,\n"
"\n"
-"recebemos com sucesso o seu pedido {event}. Como pediu\n"
-"um produto que requer a aprovação pelo organizador do evento, pedimos-lhe "
+"recebemos com sucesso o teu pedido {event}. Como pediste\n"
+"um produto que requer a aprovação pelo organizador do evento, pedimos-te "
"que\n"
-"ser paciente e esperar para o nosso próximo e-mail.\n"
+"sejas paciente e esperes pelo nosso próximo email.\n"
"\n"
-"Pode mudar os detalhes do seu pedido e ver o seu estado em\n"
+"Podes mudar os detalhes do teu pedido e ver o seu estado em\n"
"{url}\n"
"\n"
"Cumprimentos,\n"
-"A sua equipa {event}"
+"A Equipa {event}"
#: pretix/base/settings.py:2263
#, python-brace-format
@@ -10920,17 +10920,17 @@ msgid ""
msgstr ""
"Olá,\n"
"\n"
-"recebemos com sucesso o seu pedido para {event} com um valor total\n"
-"de {total_with_currency}. Por favor, concluir o pagamento antes de "
+"recebemos com sucesso o teu pedido para {event} com um valor total\n"
+"de {total_with_currency}. Por favor, conclui o pagamento antes de "
"{expire_date}.\n"
"\n"
"{payment_info}\n"
"\n"
-"Pode mudar os detalhes do seu pedido e ver o seu estado em\n"
+"Podes mudar os detalhes do teu pedido e ver o seu estado em\n"
"{url}\n"
"\n"
"Cumprimentos,\n"
-"A sua equipa {event}"
+"A Equipa {event}"
#: pretix/base/settings.py:2281
msgid "Attachment for new orders"
@@ -11010,7 +11010,7 @@ msgstr ""
#: pretix/base/settings.py:2341
#, python-brace-format
msgid "Payment received for your order: {code}"
-msgstr "Pagamento recebido para o seu pedido: {code}"
+msgstr "Pagamento recebido para o teu pedido: {code}"
#: pretix/base/settings.py:2345
#, python-brace-format
@@ -11029,15 +11029,15 @@ msgid ""
msgstr ""
"Olá,\n"
"\n"
-"recebemos o seu pagamento para {event}. Obrigado!\n"
+"recebemos o teu pagamento para {event}. Obrigado!\n"
"\n"
"{payment_info}\n"
"\n"
-"Pode mudar os detalhes do seu pedido e ver o seu estado em\n"
+"Podes mudar os detalhes do teu pedido e ver o seu estado em\n"
"{url}\n"
"\n"
"Cumprimentos,\n"
-"A sua equipa {event}"
+"A Equipa {event}"
#: pretix/base/settings.py:2363
#, python-brace-format
@@ -11102,15 +11102,15 @@ msgid ""
msgstr ""
"Olá,\n"
"\n"
-"ainda não recebemos o pagamento total para o seu pedido {event}.\n"
-"Tenha em mente que só garantimos o seu pedido se recebermos\n"
-"seu pagamento antes {expire_date}.\n"
+"ainda não recebemos o pagamento total do teu pedido {event}.\n"
+"Tem em mente que só garantimos a tua inscrição se recebermos\n"
+"o teu pagamento antes de {expire_date}.\n"
"\n"
-"Pode visualizar as informações de pagamento e o estado do seu pedido em\n"
+"Podes visualizar as informações de pagamento e o estado do teu pedido em\n"
"{url}\n"
"\n"
"Cumprimentos,\n"
-"A sua equipa {event}"
+"A Equipa {event}"
#: pretix/base/settings.py:2412
#, python-brace-format
@@ -11133,14 +11133,14 @@ msgid ""
msgstr ""
"Olá,\n"
"\n"
-"Ainda não recebemos um pagamento completo para o pedido para o {event}.\n"
-"Tenha em atenção que tem de pagar antes de {expire_date}.\n"
+"Ainda não recebemos o pagamento completo da tua inscrição para o {event}.\n"
+"Tem em atenção que tens de pagar antes de {expire_date}.\n"
"\n"
-"Pode ver as informações de pagamento e o estado do pedido em\n"
+"Podes ver as informações de pagamento e o estado do pedido em\n"
"{url}\n"
"\n"
"Com os melhores cumprimentos\n"
-"A sua equipa {event}"
+"A Equipa {event}"
#: pretix/base/settings.py:2429
#, python-brace-format
@@ -11166,10 +11166,9 @@ msgid ""
msgstr ""
#: pretix/base/settings.py:2449
-#, fuzzy, python-brace-format
-#| msgid "Payment received for your order: {code}"
+#, python-brace-format
msgid "Payment failed for your order: {code}"
-msgstr "Pagamento recebido para o seu pedido: {code}"
+msgstr "Pagamento recebido para o teu pedido: {code}"
#: pretix/base/settings.py:2453
#, fuzzy, python-brace-format
From aa2b781844b74fa2c87ebfd4a2ad3f3172f6bb67 Mon Sep 17 00:00:00 2001
From: Ana Rute Pacheco Vivas
Date: Wed, 12 Feb 2025 16:00:18 +0000
Subject: [PATCH 60/99] Translations: Update Portuguese (Portugal)
Currently translated at 85.4% (4998 of 5846 strings)
Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/pt_PT/
powered by weblate
---
src/pretix/locale/pt_PT/LC_MESSAGES/django.po | 51 +++++++------------
1 file changed, 19 insertions(+), 32 deletions(-)
diff --git a/src/pretix/locale/pt_PT/LC_MESSAGES/django.po b/src/pretix/locale/pt_PT/LC_MESSAGES/django.po
index 6fbe2ac1bb..9d16458a54 100644
--- a/src/pretix/locale/pt_PT/LC_MESSAGES/django.po
+++ b/src/pretix/locale/pt_PT/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-01-29 13:18+0000\n"
-"PO-Revision-Date: 2025-02-12 15:56+0000\n"
+"PO-Revision-Date: 2025-02-12 16:55+0000\n"
"Last-Translator: Ana Rute Pacheco Vivas \n"
"Language-Team: Portuguese (Portugal) \n"
@@ -10890,7 +10890,7 @@ msgid ""
msgstr ""
"Olá,\n"
"\n"
-"recebemos com sucesso o teu pedido {event}. Como pediste\n"
+"recebemos com sucesso o teu pedido para o {event}. Como pediste\n"
"um produto que requer a aprovação pelo organizador do evento, pedimos-te "
"que\n"
"sejas paciente e esperes pelo nosso próximo email.\n"
@@ -10920,7 +10920,7 @@ msgid ""
msgstr ""
"Olá,\n"
"\n"
-"recebemos com sucesso o teu pedido para {event} com um valor total\n"
+"recebemos com sucesso o teu pedido para o {event} com um valor total\n"
"de {total_with_currency}. Por favor, conclui o pagamento antes de "
"{expire_date}.\n"
"\n"
@@ -11029,7 +11029,7 @@ msgid ""
msgstr ""
"Olá,\n"
"\n"
-"recebemos o teu pagamento para {event}. Obrigado!\n"
+"recebemos o teu pagamento para o {event}. Obrigado!\n"
"\n"
"{payment_info}\n"
"\n"
@@ -11171,19 +11171,7 @@ msgid "Payment failed for your order: {code}"
msgstr "Pagamento recebido para o teu pedido: {code}"
#: pretix/base/settings.py:2453
-#, fuzzy, python-brace-format
-#| msgid ""
-#| "Hello,\n"
-#| "\n"
-#| "we did not yet receive a full payment for your order for {event}.\n"
-#| "Please keep in mind that we only guarantee your order if we receive\n"
-#| "your payment before {expire_date}.\n"
-#| "\n"
-#| "You can view the payment information and the status of your order at\n"
-#| "{url}\n"
-#| "\n"
-#| "Best regards, \n"
-#| "Your {event} team"
+#, python-brace-format
msgid ""
"Hello,\n"
"\n"
@@ -11201,15 +11189,15 @@ msgid ""
msgstr ""
"Olá,\n"
"\n"
-"ainda não recebemos o pagamento total para o seu pedido {event}.\n"
-"Tenha em mente que só garantimos o seu pedido se recebermos\n"
-"seu pagamento antes {expire_date}.\n"
+"ainda não recebemos o pagamento total da tua inscrição do {event}.\n"
+"Tem em mente que só garantimos a tua inscrição se recebermos\n"
+"o teu pagamento antes de {expire_date}.\n"
"\n"
-"Pode visualizar as informações de pagamento e o estado do seu pedido em\n"
+"Podes visualizar as informações de pagamento e o estado do teu pedido em\n"
"{url}\n"
"\n"
"Cumprimentos,\n"
-"A sua equipa {event}"
+"A Equipa {event}"
#: pretix/base/settings.py:2467
#, python-brace-format
@@ -12500,15 +12488,14 @@ msgstr "criado por"
#: pretix/base/templates/pretixbase/email/order_details.html:37
#: pretix/base/templates/pretixbase/email/order_details.html:132
msgid "Contact:"
-msgstr "Contato:"
+msgstr "Contacto:"
#: pretix/base/templates/pretixbase/email/order_details.html:57
msgid ""
"You are receiving this email because you placed an order for the following "
"event:"
msgstr ""
-"Está recebendo este e-mail porque você colocou um pedido para o seguinte "
-"evento:"
+"Estás a receber este email porque fizeste um pedido para o seguinte evento:"
#: pretix/base/templates/pretixbase/email/order_details.html:86
msgid "Details:"
@@ -22647,9 +22634,9 @@ msgid ""
"underpaid by %(pending)s. The order total is "
"%(total)s."
msgstr ""
-"Recebemos aviso de que %(amount)s foi reembolsado via "
+"Recebemos o aviso de que %(amount)s foi reembolsado via "
"%(method)s . Se o reembolso é processado, o pedido ficará "
-"em debito por %(pending)s. O Pedido total é "
+"em débito por %(pending)s. O Pedido total é "
"%(total)s."
#: pretix/control/templates/pretixcontrol/order/refund_process.html:30
@@ -32403,8 +32390,8 @@ msgid ""
"We've received a lot of registration requests from you, please wait 10 "
"minutes before you try again."
msgstr ""
-"Recebemos muitas solicitações de registro de você, aguarde 10 minutos antes "
-"de tentar novamente."
+"Recebemos muitos pedidos de inscrição teus, aguarda 10 minutos antes de "
+"voltares a tentar."
#: pretix/presale/forms/customer.py:137
msgid ""
@@ -33918,7 +33905,7 @@ msgstr "O seu pedido foi processado com sucesso! Veja abaixo os detalhes."
#: pretix/presale/templates/pretixpresale/event/order.html:18
#: pretix/presale/templates/pretixpresale/event/order.html:50
msgid "We successfully received your payment. See below for details."
-msgstr "Recebemos com sucesso o seu pagamento. Veja abaixo os detalhes."
+msgstr "Recebemos com sucesso o teu pagamento. Vê abaixo os detalhes."
#: pretix/presale/templates/pretixpresale/event/order.html:35
msgid ""
@@ -33984,8 +33971,8 @@ msgid ""
"We've received your request to cancel this order. Please stay patient while "
"the event organizer decides on the cancellation."
msgstr ""
-"Recebemos o seu pedido para cancelar este pedido. Por favor, permaneçam "
-"pacientes enquanto o organizador do evento decide sobre o cancelamento."
+"Recebemos o teu pedido para cancelar a tua inscrição. Por favor, sê "
+"pacientes enquanto decidimos sobre o cancelamento."
#: pretix/presale/templates/pretixpresale/event/order.html:143
#, python-format
From d8846095dd61f0ec6c207e04b6bdd3dd24d6dd44 Mon Sep 17 00:00:00 2001
From: Raphael Michel
Date: Thu, 13 Feb 2025 13:58:15 +0100
Subject: [PATCH 61/99] API: Add order_phone_asked/order_phone_required to
DeviceEventSettingsSerializer (#4842)
---
src/pretix/api/serializers/event.py | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/pretix/api/serializers/event.py b/src/pretix/api/serializers/event.py
index 1fa4328b3a..465b4b2cfd 100644
--- a/src/pretix/api/serializers/event.py
+++ b/src/pretix/api/serializers/event.py
@@ -930,6 +930,8 @@ class DeviceEventSettingsSerializer(EventSettingsSerializer):
'invoice_address_from_country',
'invoice_address_from_tax_id',
'invoice_address_from_vat_id',
+ 'order_phone_asked',
+ 'order_phone_required',
'name_scheme',
'reusable_media_type_barcode',
'reusable_media_type_nfc_uid',
From f54906724d48e9105bfe8e494794b501d0249adb Mon Sep 17 00:00:00 2001
From: Ana Rute Pacheco Vivas
Date: Thu, 13 Feb 2025 13:22:25 +0000
Subject: [PATCH 62/99] Translations: Update Portuguese (Portugal)
Currently translated at 85.5% (5002 of 5846 strings)
Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/pt_PT/
powered by weblate
---
src/pretix/locale/pt_PT/LC_MESSAGES/django.po | 116 ++++++++----------
1 file changed, 53 insertions(+), 63 deletions(-)
diff --git a/src/pretix/locale/pt_PT/LC_MESSAGES/django.po b/src/pretix/locale/pt_PT/LC_MESSAGES/django.po
index 9d16458a54..642d1f6a19 100644
--- a/src/pretix/locale/pt_PT/LC_MESSAGES/django.po
+++ b/src/pretix/locale/pt_PT/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-01-29 13:18+0000\n"
-"PO-Revision-Date: 2025-02-12 16:55+0000\n"
+"PO-Revision-Date: 2025-02-13 22:00+0000\n"
"Last-Translator: Ana Rute Pacheco Vivas \n"
"Language-Team: Portuguese (Portugal) \n"
@@ -3167,7 +3167,7 @@ msgstr "Empresa ou organização"
#: pretix/base/forms/widgets.py:238
msgid "Individual customer"
-msgstr "Cliente individual"
+msgstr "Participante individual"
#: pretix/base/invoice.py:86
#, python-format
@@ -5976,7 +5976,7 @@ msgstr "Organizador"
#: pretix/base/models/orders.py:2124
msgctxt "refund_source"
msgid "Customer"
-msgstr "Cliente"
+msgstr "Participante"
#: pretix/base/models/orders.py:2125
msgctxt "refund_source"
@@ -7087,7 +7087,7 @@ msgstr ""
#: pretix/base/payment.py:500
msgctxt "invoice"
msgid "The payment for this invoice has already been received."
-msgstr "O pagamento para esta factura já foi recebido."
+msgstr "O pagamento para esta fatura já foi recebido."
#: pretix/base/payment.py:977
msgid "Automatic refunds are not supported by this payment provider."
@@ -7860,14 +7860,12 @@ msgstr[1] ""
"Não é possível selecionar mais de %(max)s itens do produto %(product)s."
#: pretix/base/services/cart.py:135 pretix/base/services/orders.py:1544
-#, fuzzy, python-format
-#| msgid ""
-#| "You need to select at least %(min)s items of the product %(product)s."
+#, python-format
msgid "You need to select at least %(min)s item of the product %(product)s."
msgid_plural ""
"You need to select at least %(min)s items of the product %(product)s."
-msgstr[0] "Precisa selecionar pelo menos %(min)s itens do produto %(product)s."
-msgstr[1] "Precisa selecionar pelo menos %(min)s itens do produto %(product)s."
+msgstr[0] "Precisas selecionar pelo menos %(min)s itens do produto %(product)s."
+msgstr[1] "Precisas selecionar pelo menos %(min)s itens do produto %(product)s."
#: pretix/base/services/cart.py:140
#, fuzzy, python-format
@@ -8081,10 +8079,7 @@ msgstr[1] ""
"produto %(base)s."
#: pretix/base/services/cart.py:202 pretix/base/services/orders.py:196
-#, fuzzy, python-format
-#| msgid ""
-#| "You need to select at least %(min)s add-ons from the category %(cat)s for "
-#| "the product %(base)s."
+#, python-format
msgid ""
"You need to select at least %(min)s add-on from the category %(cat)s for the "
"product %(base)s."
@@ -8092,11 +8087,11 @@ msgid_plural ""
"You need to select at least %(min)s add-ons from the category %(cat)s for "
"the product %(base)s."
msgstr[0] ""
-"Precisa selecionar pelo menos %(min)s add-ons da categoria %(cat)s para a o "
-"produto %(base)s."
+"Precisas selecionar pelo menos %(min)s complementos da categoria %(cat)s "
+"para a o produto %(base)s."
msgstr[1] ""
-"Precisa selecionar pelo menos %(min)s add-ons da categoria %(cat)s para a o "
-"produto %(base)s."
+"Precisas selecionar pelo menos %(min)s complementos da categoria %(cat)s "
+"para a o produto %(base)s."
#: pretix/base/services/cart.py:206 pretix/base/services/orders.py:200
#, fuzzy, python-format
@@ -8459,7 +8454,7 @@ msgid ""
"You are receiving this email because someone placed an order for {event} for "
"you."
msgstr ""
-"Está a receber este e-mail porque alguém fez um pedido para {event} por si."
+"Estás a receber este email porque alguém fez um pedido para o {event} por ti."
#: pretix/base/services/mail.py:282 pretix/base/services/mail.py:298
#, python-brace-format
@@ -8473,7 +8468,7 @@ msgstr ""
#: pretix/base/services/mail.py:294
#, python-brace-format
msgid "You are receiving this email because you placed an order for {event}."
-msgstr "Está a receber este e-mail porque fez um pedido para {event}."
+msgstr "Estás a receber este email porque fizeste um pedido para o {event}."
#: pretix/base/services/mail.py:478
msgctxt "attachment_filename"
@@ -8653,8 +8648,8 @@ msgid ""
"The price of some of the items in your cart has changed in the meantime. "
"Please see below for details."
msgstr ""
-"O preço de alguns dos itens no seu carrinho mudou entretanto. Por favor, "
-"veja abaixo para mais detalhes."
+"O preço de alguns dos itens no teu carrinho mudou entretanto. Por favor, vê "
+"abaixo para mais detalhes."
#: pretix/base/services/orders.py:140
msgid "An internal error occurred, please try again."
@@ -8671,10 +8666,7 @@ msgid "Your cart is empty."
msgstr "Seu carrinho está vazio."
#: pretix/base/services/orders.py:145
-#, fuzzy, python-format
-#| msgid ""
-#| "You cannot select more than %(max)s items of the product %(product)s. We "
-#| "removed the surplus items from your cart."
+#, python-format
msgid ""
"You cannot select more than %(max)s item of the product %(product)s. We "
"removed the surplus items from your cart."
@@ -8683,10 +8675,10 @@ msgid_plural ""
"removed the surplus items from your cart."
msgstr[0] ""
"Não é possível selecionar mais de %(max)s itens do produto %(product)s. "
-"Removemos os artigos em excesso do seu carrinho."
+"Removemos os artigos em excesso do teu carrinho."
msgstr[1] ""
"Não é possível selecionar mais de %(max)s itens do produto %(product)s. "
-"Removemos os artigos em excesso do seu carrinho."
+"Removemos os artigos em excesso do teu carrinho."
#: pretix/base/services/orders.py:154
msgid "The booking period has ended."
@@ -8697,7 +8689,7 @@ msgid ""
"The voucher code used for one of the items in your cart is not known in our "
"database."
msgstr ""
-"O código do voucher utilizado para um dos itens no seu carrinho não é "
+"O código do voucher utilizado para um dos itens no teu carrinho não é "
"conhecido na nossa base de dados."
#: pretix/base/services/orders.py:162
@@ -8706,32 +8698,32 @@ msgid ""
"used the maximum number of times allowed. We removed this item from your "
"cart."
msgstr ""
-"O código do voucher utilizado para um dos itens no seu carrinho já foi usado "
-"o número máximo de vezes permitido. Removemos este item do seu carrinho."
+"O código do voucher utilizado para um dos itens no teu carrinho já foi usado "
+"o número máximo de vezes permitido. Removemos este item do teu carrinho."
#: pretix/base/services/orders.py:166
msgid ""
"The voucher code used for one of the items in your cart has already been too "
"often. We adjusted the price of the item in your cart."
msgstr ""
-"O código do voucher utilizado para um dos itens no seu carrinho já foi "
-"muitas vezes. Ajustamos o preço do item no seu carrinho."
+"O código do voucher utilizado para um dos itens no teu carrinho já foi usado "
+"muitas vezes. Ajustamos o preço do item no teu carrinho."
#: pretix/base/services/orders.py:170
msgid ""
"The voucher code used for one of the items in your cart is expired. We "
"removed this item from your cart."
msgstr ""
-"O código do voucher utilizado para um dos itens no seu carrinho expirou. "
-"Removemos este item do seu carrinho."
+"O código do voucher utilizado para um dos itens no teu carrinho expirou. "
+"Removemos este item do teu carrinho."
#: pretix/base/services/orders.py:173
msgid ""
"The voucher code used for one of the items in your cart is not valid for "
"this item. We removed this item from your cart."
msgstr ""
-"O código do voucher utilizado para um dos itens no seu carrinho não é válido "
-"para este item. Removemos este item do seu carrinho."
+"O código do voucher utilizado para um dos itens no teu carrinho não é válido "
+"para este item. Removemos este item do teu carrinho."
#: pretix/base/services/orders.py:175
msgid "You need a valid voucher code to order one of the products."
@@ -10436,10 +10428,8 @@ msgid "Do not allow changes after"
msgstr "Não permitir mudanças após"
#: pretix/base/settings.py:1783
-#, fuzzy
-#| msgid "The payment for this invoice has already been received."
msgid "Allow change even though the ticket has already been checked in"
-msgstr "O pagamento para esta factura já foi recebido."
+msgstr "Permitir alterações mesmo que a inscrição já tenha sido registada"
#: pretix/base/settings.py:1784
msgid ""
@@ -10788,14 +10778,14 @@ msgid ""
msgstr ""
"Olá,\n"
"\n"
-"recebeu esta mensagem porque nos pediu para lhe enviar o link\n"
-"para o seu pedido para {event}.\n"
+"recebeste esta mensagem porque pediste-nos para te enviarmos o link\n"
+"para o teu pedido para o {event}.\n"
"\n"
-"Pode mudar os detalhes do pedido e ver o seu estado em \n"
+"Podes mudar os detalhes do pedido e ver o seu estado em \n"
"{url}\n"
"\n"
"Cumprimentos,\n"
-"A sua equipa {event}"
+"A Equipa do {event}"
#: pretix/base/settings.py:2188
#, python-brace-format
@@ -12416,8 +12406,8 @@ msgid ""
"If this takes longer than a few minutes, please refresh this page or contact "
"us."
msgstr ""
-"Se isto demorar mais do que alguns minutos, por favor, atualize esta página "
-"ou contacte-nos."
+"Se isto demorar mais do que alguns minutos, por favor, atualiza esta página "
+"ou contacta-nos."
#: pretix/base/templates/pretixbase/email/email_footer.html:3
#, python-format
@@ -12469,7 +12459,7 @@ msgid ""
"You are receiving this email because someone signed you up for the following "
"event:"
msgstr ""
-"Está a receber este e-mail porque alguém assinou-lo para o seguinte evento:"
+"Estás a receber este email porque alguém inscreveu-te para o seguinte evento:"
#: pretix/base/templates/pretixbase/email/order_details.html:12
#: pretix/base/templates/pretixbase/email/order_details.html:62
@@ -12479,7 +12469,7 @@ msgstr "Evento:"
#: pretix/base/templates/pretixbase/email/order_details.html:26
#: pretix/base/templates/pretixbase/email/order_details.html:77
msgid "Order code:"
-msgstr "Código de pedido:"
+msgstr "Código do pedido:"
#: pretix/base/templates/pretixbase/email/order_details.html:31
msgid "created by"
@@ -12530,7 +12520,7 @@ msgstr ""
#: pretix/base/templates/pretixbase/forms/widgets/portrait_image.html:10
msgid "Upload photo"
-msgstr "Carregue a foto"
+msgstr "Faz upload da foto"
#: pretix/base/templates/pretixbase/forms/widgets/reldate.html:14
#, python-format
@@ -13553,7 +13543,7 @@ msgstr "União Europeia"
#: pretix/control/forms/event.py:1492
msgid "Any customer"
-msgstr "Qualquer cliente"
+msgstr "Qualquer participante"
#: pretix/control/forms/event.py:1493
msgid "Individual"
@@ -17344,7 +17334,7 @@ msgstr "Aceitar de qualquer forma"
#: pretix/control/templates/pretixcontrol/organizers/customers.html:6
#: pretix/control/templates/pretixcontrol/organizers/customers.html:9
msgid "Customers"
-msgstr "Clientes"
+msgstr "Participantes"
#: pretix/control/navigation.py:588
#: pretix/control/templates/pretixcontrol/organizers/ssoclients.html:4
@@ -28890,8 +28880,8 @@ msgid ""
"After completing your purchase, we will ask you to transfer the money to the "
"following bank account, using a personal reference code:"
msgstr ""
-"Após a conclusão da sua compra, pediremos-lhe que transfira o dinheiro para "
-"a seguinte conta bancária, utilizando um código de referência pessoal:"
+"Após a conclusão da tua compra, pedir-te-emos que transfiras o dinheiro para "
+"uma conta bancária, utilizando um código de referência pessoal."
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/checkout_confirm.html:11
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/checkout_payment_form.html:11
@@ -29342,7 +29332,7 @@ msgstr "Problema ao enviar e-mail."
#: pretix/plugins/banktransfer/views.py:198
msgid "Unknown order code"
-msgstr "Código de pedido desconhecido"
+msgstr "Código do pedido desconhecido"
#: pretix/plugins/banktransfer/views.py:355
msgid "Search text"
@@ -29701,7 +29691,7 @@ msgstr "Reembolso do montante via PayPal falhou: {}"
#: pretix/plugins/paypal2/payment.py:1060
#: pretix/plugins/paypal2/payment.py:1068
msgid "The payment for this invoice has already been received."
-msgstr "O pagamento para esta factura já foi recebido."
+msgstr "O pagamento para esta fatura já foi recebido."
#: pretix/plugins/paypal/payment.py:708 pretix/plugins/paypal/payment.py:716
#: pretix/plugins/paypal2/payment.py:1061
@@ -32325,7 +32315,7 @@ msgstr ""
#: pretix/presale/forms/checkout.py:70
msgid "Email address (repeated)"
-msgstr "Endereço de E-mail (repetido)"
+msgstr "Endereço de Email (repetido)"
#: pretix/presale/forms/checkout.py:71
msgid ""
@@ -32628,7 +32618,7 @@ msgstr ""
#: pretix/presale/templates/pretixpresale/event/checkout_addons.html:20
msgid "We're now trying to book these add-ons for you!"
-msgstr "Estamos agora a tentar reservar estes add-ons para si!"
+msgstr "Estamos agora a tentar reservar estes produtos adicionais para ti!"
#: pretix/presale/templates/pretixpresale/event/checkout_addons.html:28
msgid "Additional options for"
@@ -32701,11 +32691,11 @@ msgstr "Consulta os detalhes abaixo e confirma o teu pedido."
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:14
msgid "Please hang tight, we're finalizing your order!"
-msgstr "Por favor, aguarde, estamos finalizando o seu pedido!"
+msgstr "Por favor, aguarda, estamos a finalizar o teu pedido!"
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:22
msgid "Add or remove tickets"
-msgstr "Adicionar ou remover bilhetes"
+msgstr "Adicionar ou remover inscrição"
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:44
msgid "Modify payment"
@@ -33288,7 +33278,7 @@ msgstr "Descontado"
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:287
msgid "Okay, we're removing that…"
-msgstr "Ok, estamos a remover isso …"
+msgstr "Ok, estamos a remover isto …"
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:292
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:294
@@ -33322,7 +33312,7 @@ msgid ""
"Once the items are in your cart, you will have %(time)s minutes to complete "
"your purchase."
msgstr ""
-"Uma vez que os itens estão no seu carrinho, você terá %(time)s minutos para "
+"Uma vez que os itens estão no teu carrinho, terás %(time)s minutos para "
"concluir a compra."
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:327
@@ -33383,7 +33373,7 @@ msgstr "Continue com o processo de compra"
#: pretix/presale/templates/pretixpresale/event/index.html:229
#: pretix/presale/templates/pretixpresale/event/voucher.html:440
msgid "Proceed with checkout"
-msgstr "Prossiga com o check-out"
+msgstr "Continuar com o checkout"
#: pretix/presale/templates/pretixpresale/event/fragment_cart_box.html:63
msgid "Empty cart"
@@ -33817,7 +33807,7 @@ msgstr "A venda para este evento terá início em %(date)s às %(time)s."
#: pretix/presale/templates/pretixpresale/event/seatingplan.html:23
#: pretix/presale/templates/pretixpresale/event/voucher.html:61
msgid "We're now trying to reserve this for you!"
-msgstr "Nós agora estamos tentando reservar isto para si!"
+msgstr "Nós agora estamos a tentar reservar isto para ti!"
#: pretix/presale/templates/pretixpresale/event/index.html:202
msgid ""
@@ -34475,7 +34465,7 @@ msgstr "a partir de %(minprice)s"
#: pretix/presale/templates/pretixpresale/event/voucher.html:429
#, python-format
msgid "You need to select at least %(number)s products."
-msgstr "Precisa selecionar pelo menos %(number)s produtos."
+msgstr "Precisas selecionar pelo menos %(number)s produtos."
#: pretix/presale/templates/pretixpresale/event/waitinglist.html:5
msgid "Add me to the waiting list"
From 225349d7e64058a664f7dc321a5025147b88e09a Mon Sep 17 00:00:00 2001
From: Andrias Magnussen
Date: Thu, 13 Feb 2025 13:51:33 +0000
Subject: [PATCH 63/99] Translations: Update Faroese
Currently translated at 1.8% (111 of 5846 strings)
Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/fo/
powered by weblate
---
src/pretix/locale/fo/LC_MESSAGES/django.po | 229 +++++++++++----------
1 file changed, 125 insertions(+), 104 deletions(-)
diff --git a/src/pretix/locale/fo/LC_MESSAGES/django.po b/src/pretix/locale/fo/LC_MESSAGES/django.po
index 0ae44a3962..8e0742f553 100644
--- a/src/pretix/locale/fo/LC_MESSAGES/django.po
+++ b/src/pretix/locale/fo/LC_MESSAGES/django.po
@@ -8,200 +8,204 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-01-29 13:18+0000\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
+"PO-Revision-Date: 2025-02-13 22:00+0000\n"
+"Last-Translator: Andrias Magnussen \n"
+"Language-Team: Faroese \n"
"Language: fo\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Weblate 5.9.2\n"
#: pretix/_base_settings.py:87
msgid "English"
-msgstr ""
+msgstr "Enskt"
#: pretix/_base_settings.py:88
msgid "German"
-msgstr ""
+msgstr "Týskt"
#: pretix/_base_settings.py:89
msgid "German (informal)"
-msgstr ""
+msgstr "Týskt (gerandismál)"
#: pretix/_base_settings.py:90
msgid "Arabic"
-msgstr ""
+msgstr "Arabiskt"
#: pretix/_base_settings.py:91
msgid "Basque"
-msgstr ""
+msgstr "Baskiskt"
#: pretix/_base_settings.py:92
msgid "Catalan"
-msgstr ""
+msgstr "Katalanskt"
#: pretix/_base_settings.py:93
msgid "Chinese (simplified)"
-msgstr ""
+msgstr "Kinesiskt (einfalt)"
#: pretix/_base_settings.py:94
msgid "Chinese (traditional)"
-msgstr ""
+msgstr "Kinesiskt (siðbundi)"
#: pretix/_base_settings.py:95
msgid "Czech"
-msgstr ""
+msgstr "Kekkiskt"
#: pretix/_base_settings.py:96
msgid "Danish"
-msgstr ""
+msgstr "Danskt"
#: pretix/_base_settings.py:97
msgid "Dutch"
-msgstr ""
+msgstr "Hollendskt"
#: pretix/_base_settings.py:98
msgid "Dutch (informal)"
-msgstr ""
+msgstr "Hollendskt (gerandismál)"
#: pretix/_base_settings.py:99
msgid "French"
-msgstr ""
+msgstr "Franskt"
#: pretix/_base_settings.py:100
msgid "Finnish"
-msgstr ""
+msgstr "Finskt"
#: pretix/_base_settings.py:101
msgid "Galician"
-msgstr ""
+msgstr "Galisiskt"
#: pretix/_base_settings.py:102
msgid "Greek"
-msgstr ""
+msgstr "Grikst"
#: pretix/_base_settings.py:103
msgid "Indonesian"
-msgstr ""
+msgstr "Indonesiskt"
#: pretix/_base_settings.py:104
msgid "Italian"
-msgstr ""
+msgstr "Italienskt"
#: pretix/_base_settings.py:105
msgid "Japanese"
-msgstr ""
+msgstr "Japanskt"
#: pretix/_base_settings.py:106
msgid "Latvian"
-msgstr ""
+msgstr "Lettiskt"
#: pretix/_base_settings.py:107
msgid "Norwegian Bokmål"
-msgstr ""
+msgstr "Norskt (Bokmål)"
#: pretix/_base_settings.py:108
msgid "Polish"
-msgstr ""
+msgstr "Polskt"
#: pretix/_base_settings.py:109
msgid "Portuguese (Portugal)"
-msgstr ""
+msgstr "Portugisiskt (Portugal)"
#: pretix/_base_settings.py:110
msgid "Portuguese (Brazil)"
-msgstr ""
+msgstr "Portogisiskt (Brasilia)"
#: pretix/_base_settings.py:111
msgid "Romanian"
-msgstr ""
+msgstr "Rumenskt"
#: pretix/_base_settings.py:112
msgid "Russian"
-msgstr ""
+msgstr "Russiskt"
#: pretix/_base_settings.py:113
msgid "Slovak"
-msgstr ""
+msgstr "Slovakiskt"
#: pretix/_base_settings.py:114
msgid "Swedish"
-msgstr ""
+msgstr "Svenskt"
#: pretix/_base_settings.py:115
msgid "Spanish"
-msgstr ""
+msgstr "Spanskt"
#: pretix/_base_settings.py:116
msgid "Turkish"
-msgstr ""
+msgstr "Turkist"
#: pretix/_base_settings.py:117
msgid "Ukrainian"
-msgstr ""
+msgstr "Ukrainskt"
#: pretix/api/auth/devicesecurity.py:58
msgid ""
"Full device access (reading and changing orders and gift cards, reading of "
"products and settings)"
msgstr ""
+"Full atgongd til eindina (les og broyt bíleggingina og gávukortið, síggj "
+"produkt og stillingar)"
#: pretix/api/auth/devicesecurity.py:80
msgid "pretixSCAN"
-msgstr ""
+msgstr "pretixSCAN"
#: pretix/api/auth/devicesecurity.py:118
msgid "pretixSCAN (kiosk mode, no order sync, no search)"
-msgstr ""
+msgstr "pretixSCAN (kiosk-modus, ongin samstilling av ordrum, ongin leiting)"
#: pretix/api/auth/devicesecurity.py:153
msgid "pretixSCAN (online only, no order sync)"
-msgstr ""
+msgstr "pretixSCAN (einans online, ongin ordra samstilling)"
#: pretix/api/models.py:39 pretix/base/models/customers.py:402
msgid "Application name"
-msgstr ""
+msgstr "Nýtsluskipanar navn"
#: pretix/api/models.py:42 pretix/base/models/customers.py:421
msgid "Redirection URIs"
-msgstr ""
+msgstr "URL til víðarstilling"
#: pretix/api/models.py:43 pretix/base/models/customers.py:422
msgid "Allowed URIs list, space separated"
-msgstr ""
+msgstr "Listi yvir góðkend URL við millumrúmi"
#: pretix/api/models.py:47
msgid "Allowed Post Logout URIs list, space separated"
-msgstr ""
+msgstr "Listi yvir góðkent URL eftir útritan við millumrúmi"
#: pretix/api/models.py:51 pretix/base/models/customers.py:406
#: pretix/plugins/paypal/payment.py:113 pretix/plugins/paypal2/payment.py:110
msgid "Client ID"
-msgstr ""
+msgstr "Samleiki hjá kunda"
#: pretix/api/models.py:55
msgid "Client secret"
-msgstr ""
+msgstr "Loyndarmál hjá kunda"
#: pretix/api/models.py:116
msgid "Enable webhook"
-msgstr ""
+msgstr "Virkna webhook"
#: pretix/api/models.py:117
#: pretix/control/templates/pretixcontrol/organizers/webhooks.html:36
msgid "Target URL"
-msgstr ""
+msgstr "Target URL"
#: pretix/api/models.py:118 pretix/base/models/devices.py:122
#: pretix/base/models/organizer.py:286
msgid "All events (including newly created ones)"
-msgstr ""
+msgstr "Øll tiltøk (eisini tiltøk, sum nýliga eru stovnað)"
#: pretix/api/models.py:119 pretix/base/models/devices.py:123
#: pretix/base/models/organizer.py:287
msgid "Limit to events"
-msgstr ""
+msgstr "Vís einans tiltøk"
#: pretix/api/models.py:120 pretix/base/exporters/orderlist.py:284
#: pretix/base/exporters/orderlist.py:1077
@@ -215,135 +219,150 @@ msgstr ""
#: pretix/plugins/banktransfer/refund_export.py:46
#: pretix/plugins/checkinlists/exporters.py:521
msgid "Comment"
-msgstr ""
+msgstr "Viðmerking"
#: pretix/api/serializers/cart.py:168 pretix/api/serializers/order.py:1384
msgid "The product \"{}\" is not assigned to a quota."
-msgstr ""
+msgstr "Produkt \"{}\" er ikki knýtt at eini kvotu."
#: pretix/api/serializers/checkin.py:65 pretix/base/models/event.py:1667
#: pretix/base/models/items.py:1916 pretix/base/models/items.py:2174
msgid "One or more items do not belong to this event."
-msgstr ""
+msgstr "Eitt ella fleiri produkt eru ikki partur av hesum tiltaki."
#: pretix/api/serializers/checkin.py:69 pretix/api/serializers/checkin.py:72
#: pretix/base/models/items.py:2185 pretix/base/models/items.py:2188
#: pretix/base/models/waitinglist.py:305 pretix/base/models/waitinglist.py:308
msgid "The subevent does not belong to this event."
-msgstr ""
+msgstr "Partstiltakið er ikki partur av hesum tiltaki."
#: pretix/api/serializers/event.py:231
msgid ""
"Events cannot be created as 'live'. Quotas and payment must be added to the "
"event before sales can go live."
msgstr ""
+"Tiltøk kunnu ikki almannakunngerast. Kvotur og gjaldsmøguleikar skulu "
+"leggjast afturat, áðrenn tilber at selja atgongumerki."
#: pretix/api/serializers/event.py:246 pretix/api/serializers/event.py:551
#, python-brace-format
msgid "Meta data property '{name}' does not exist."
-msgstr ""
+msgstr "Metadataeginleikin '{name}' finnist ikki."
#: pretix/api/serializers/event.py:249 pretix/api/serializers/event.py:554
#, python-brace-format
msgid "Meta data property '{name}' does not allow value '{value}'."
-msgstr ""
+msgstr "Metadataeginleikin '{name}' loyvir ikki virðinum {value}."
#: pretix/api/serializers/event.py:293
#, python-brace-format
msgid "Unknown plugin: '{name}'."
-msgstr ""
+msgstr "Ókent plugin: '{name}'."
#: pretix/api/serializers/event.py:296
#, python-brace-format
msgid "Restricted plugin: '{name}'."
-msgstr ""
+msgstr "Avmarkað plugin: '{name}'."
#: pretix/api/serializers/item.py:86 pretix/api/serializers/item.py:148
#: pretix/api/serializers/item.py:359
#, python-brace-format
msgid "Item meta data property '{name}' does not exist."
-msgstr ""
+msgstr "Valdi produktbólkur {name} finnist ikki."
#: pretix/api/serializers/item.py:207 pretix/control/forms/item.py:1266
msgid "The bundled item must not be the same item as the bundling one."
-msgstr ""
+msgstr "Bólkaða eindin kann ikki vera sama eind, sum tann sum verður bólkað."
#: pretix/api/serializers/item.py:210 pretix/control/forms/item.py:1268
msgid "The bundled item must not have bundles on its own."
-msgstr ""
+msgstr "Bólkaða eindin kann ikki hava egnar pakkar."
#: pretix/api/serializers/item.py:298
msgid ""
"Updating add-ons, bundles, or variations via PATCH/PUT is not supported. "
"Please use the dedicated nested endpoint."
msgstr ""
+"Dagføringar av add-ons, pakkum ella variatiónum umvegis PATCH/PUT verður "
+"ikki stuðla. Vinarliga nýt tilskilaða endapunktið."
#: pretix/api/serializers/item.py:306
msgid "Only admission products can currently be personalized."
msgstr ""
+"Í løtuni eru tað einans atgongugevandi produkt, sum kunnu fáa persónligan "
+"dám."
#: pretix/api/serializers/item.py:317
msgid ""
"Gift card products should not be associated with non-zero tax rates since "
"sales tax will be applied when the gift card is redeemed."
msgstr ""
+"Gávukort skulu ikki tengjast at MVG, sum víkja frá 0, tí MVG verður lagt "
+"omaná upphæddina, tá ið gávukortið verður brúkt."
#: pretix/api/serializers/item.py:322 pretix/control/forms/item.py:773
msgid "Gift card products should not be admission products at the same time."
-msgstr ""
+msgstr "Gávukort kunnu ikki eisini vera atgongu produkt."
#: pretix/api/serializers/item.py:519
msgid ""
"Updating options via PATCH/PUT is not supported. Please use the dedicated "
"nested endpoint."
msgstr ""
+"Dagføringar møguleikin umvegis PATCH/PUT er ikki undirbygdur. Vinarliga nýt "
+"tilskilaða endapunktið."
#: pretix/api/serializers/item.py:533 pretix/control/forms/item.py:177
msgid "Question cannot depend on a question asked during check-in."
msgstr ""
+"Ein spurningur kann ikki verða tengdur at einum spurningi undir innritan."
#: pretix/api/serializers/item.py:538 pretix/control/forms/item.py:182
msgid "Circular dependency between questions detected."
-msgstr ""
+msgstr "Ein samansettur samanhangur er millum spurningarnar."
#: pretix/api/serializers/item.py:543 pretix/control/forms/item.py:191
msgid "This type of question cannot be asked during check-in."
-msgstr ""
+msgstr "Ein tílíkur spurningur kann ikki verða settur undir innritan."
#: pretix/api/serializers/item.py:546 pretix/control/forms/item.py:199
msgid "This type of question cannot be shown during check-in."
-msgstr ""
+msgstr "Ein tílíkur spurningur kann ikki verða vístur undir innritan."
#: pretix/api/serializers/media.py:108
msgid ""
"A medium with the same identifier and type already exists in your organizer "
"account."
msgstr ""
+"Eitt medium við sama navni og fílslagi er longu í konto hjá tínum "
+"felagsskapi."
#: pretix/api/serializers/order.py:78
#, python-brace-format
msgid "\"{input}\" is not a valid choice."
-msgstr ""
+msgstr "{input} er ikki ein valmøguleiki."
#: pretix/api/serializers/order.py:1345 pretix/api/views/cart.py:224
#: pretix/base/services/orders.py:1530
#, python-brace-format
msgid "The selected seat \"{seat}\" is not available."
-msgstr ""
+msgstr "Setrið \"{seat}\", sum tú hevur valt er ikki tøkt."
#: pretix/api/serializers/order.py:1371 pretix/api/serializers/order.py:1378
msgid "The product \"{}\" is not available on this date."
-msgstr ""
+msgstr "Produktið \"{}\" er ikki tøkt hendan dagin."
#: pretix/api/serializers/order.py:1393 pretix/api/views/cart.py:200
msgid ""
"There is not enough quota available on quota \"{}\" to perform the operation."
msgstr ""
+"Tað eru ikki nóg nógvar eindir eftir á kvotuni \"{}\" til at gjøgnumføra "
+"hesi boð."
#: pretix/api/serializers/organizer.py:103
#: pretix/control/forms/organizer.py:888 pretix/presale/forms/customer.py:445
msgid "An account with this email address is already registered."
-msgstr ""
+msgstr "Ein konta er longu skrásett við hesum telduposti."
#: pretix/api/serializers/organizer.py:236
#: pretix/control/forms/organizer.py:737
@@ -351,176 +370,178 @@ msgid ""
"A gift card with the same secret already exists in your or an affiliated "
"organizer account."
msgstr ""
+"Eitt gávukort við sama loyndarmáli er longu í skipanin hjá tínum felagsskapi "
+"ella knýtt at hesum."
#: pretix/api/serializers/organizer.py:327
#: pretix/control/views/organizer.py:769
msgid "pretix account invitation"
-msgstr ""
+msgstr "pretix-konto innbjóðing"
#: pretix/api/serializers/organizer.py:349
#: pretix/control/views/organizer.py:868
msgid "This user already has been invited for this team."
-msgstr ""
+msgstr "Hesin brúkarin er longu bjóðaður við í hendan bólkin."
#: pretix/api/serializers/organizer.py:365
#: pretix/control/views/organizer.py:885
msgid "This user already has permissions for this team."
-msgstr ""
+msgstr "Hesin brúkarin hevur longu atgongd til bólkin."
#: pretix/api/views/cart.py:209
msgid ""
"The specified voucher has already been used the maximum number of times."
-msgstr ""
+msgstr "Hendan avsláttarkotan er longu uppbrúkt."
#: pretix/api/views/checkin.py:610 pretix/api/views/checkin.py:617
msgid "Medium connected to other event"
-msgstr ""
+msgstr "Media er knýtt at øðrum tiltaki"
#: pretix/api/views/oauth.py:107 pretix/control/logdisplay.py:686
#, python-brace-format
msgid ""
"The application \"{application_name}\" has been authorized to access your "
"account."
-msgstr ""
+msgstr "Applikatiónin \"{application_name}\" hevur nú atgongd til tína konto."
#: pretix/api/views/order.py:607 pretix/control/views/orders.py:1588
#: pretix/presale/views/order.py:741 pretix/presale/views/order.py:814
msgid "You cannot generate an invoice for this order."
-msgstr ""
+msgstr "Tilber ikki at skriva ein faktura til hendan ordran."
#: pretix/api/views/order.py:612 pretix/control/views/orders.py:1590
#: pretix/presale/views/order.py:743 pretix/presale/views/order.py:816
msgid "An invoice for this order already exists."
-msgstr ""
+msgstr "Ein fakturi er longu til hendan ordran."
#: pretix/api/views/order.py:638 pretix/control/views/orders.py:1716
#: pretix/control/views/users.py:143
msgid "There was an error sending the mail. Please try again later."
-msgstr ""
+msgstr "Tað bar ikki til at senda teldupostin. Vinarliga royn aftur seinni."
#: pretix/api/views/order.py:718 pretix/base/services/cart.py:215
#: pretix/base/services/orders.py:186 pretix/presale/views/order.py:798
msgid "One of the selected products is not available in the selected country."
-msgstr ""
+msgstr "Eitt av produktunum, sum tú hevur valt, er ikki tøkt í valda landinum."
#: pretix/api/webhooks.py:237 pretix/base/notifications.py:233
msgid "New order placed"
-msgstr ""
+msgstr "Nýggj bílegging umbiðin"
#: pretix/api/webhooks.py:241 pretix/base/notifications.py:239
msgid "New order requires approval"
-msgstr ""
+msgstr "Nýggj bílegging krevur góðkenning"
#: pretix/api/webhooks.py:245 pretix/base/notifications.py:245
msgid "Order marked as paid"
-msgstr ""
+msgstr "Bílegging merkt sum goldin"
#: pretix/api/webhooks.py:249 pretix/base/models/checkin.py:354
#: pretix/base/notifications.py:251
#: pretix/control/templates/pretixcontrol/event/mail.html:114
#: pretix/control/views/orders.py:1549
msgid "Order canceled"
-msgstr ""
+msgstr "Bílegging strikað"
#: pretix/api/webhooks.py:253 pretix/base/notifications.py:257
msgid "Order reactivated"
-msgstr ""
+msgstr "Bílegging endur upptikin"
#: pretix/api/webhooks.py:257 pretix/base/notifications.py:263
msgid "Order expired"
-msgstr ""
+msgstr "Bílegging útgingin"
#: pretix/api/webhooks.py:261
msgid "Order expiry date changed"
-msgstr ""
+msgstr "Dagfesting fyri, nær bíleggingin gongur út, er broytt"
#: pretix/api/webhooks.py:265 pretix/base/notifications.py:269
msgid "Order information changed"
-msgstr ""
+msgstr "Bíleggingar upplýsingar broyttir"
#: pretix/api/webhooks.py:269 pretix/base/notifications.py:275
msgid "Order contact address changed"
-msgstr ""
+msgstr "Bústaður hjá tí, sum hevur bílagt, er broyttur"
#: pretix/api/webhooks.py:273 pretix/base/notifications.py:281
#: pretix/control/templates/pretixcontrol/event/mail.html:102
msgid "Order changed"
-msgstr ""
+msgstr "Bílegging broytt"
#: pretix/api/webhooks.py:277
msgid "Refund of payment created"
-msgstr ""
+msgstr "Afturrindan upprættað"
#: pretix/api/webhooks.py:281 pretix/base/notifications.py:293
msgid "External refund of payment"
-msgstr ""
+msgstr "Uttanhýsins afturrindan"
#: pretix/api/webhooks.py:285
msgid "Refund of payment requested by customer"
-msgstr ""
+msgstr "Afturrindan umbiðin av kunda"
#: pretix/api/webhooks.py:289
msgid "Refund of payment completed"
-msgstr ""
+msgstr "Afturrindan gjøgnumførd"
#: pretix/api/webhooks.py:293
msgid "Refund of payment canceled"
-msgstr ""
+msgstr "Afturrindan avlýst"
#: pretix/api/webhooks.py:297
msgid "Refund of payment failed"
-msgstr ""
+msgstr "Afturrindan misseydnað"
#: pretix/api/webhooks.py:301
msgid "Payment confirmed"
-msgstr ""
+msgstr "Gjald váttað"
#: pretix/api/webhooks.py:305
msgid "Order approved"
-msgstr ""
+msgstr "Bílegging váttað"
#: pretix/api/webhooks.py:309
msgid "Order denied"
-msgstr ""
+msgstr "Bílegging avvíst"
#: pretix/api/webhooks.py:313
msgid "Order deleted"
-msgstr ""
+msgstr "Bílegging strikað"
#: pretix/api/webhooks.py:317
msgid "Ticket checked in"
-msgstr ""
+msgstr "Atgongumerki kekka inn"
#: pretix/api/webhooks.py:321
msgid "Ticket check-in reverted"
-msgstr ""
+msgstr "Atgongumerkja kekk inn avlýst"
#: pretix/api/webhooks.py:325
msgid "Event created"
-msgstr ""
+msgstr "Tiltak stovnað"
#: pretix/api/webhooks.py:329
msgid "Event details changed"
-msgstr ""
+msgstr "Upplýsingar í samband við tiltak broyttir"
#: pretix/api/webhooks.py:333
msgid "Event deleted"
-msgstr ""
+msgstr "Tiltak strikað"
#: pretix/api/webhooks.py:337
msgctxt "subevent"
msgid "Event series date added"
-msgstr ""
+msgstr "Dagfesting løgd afturat tiltaki"
#: pretix/api/webhooks.py:341
msgctxt "subevent"
msgid "Event series date changed"
-msgstr ""
+msgstr "Dagfesting til tiltakið broytt"
#: pretix/api/webhooks.py:345
msgctxt "subevent"
msgid "Event series date deleted"
-msgstr ""
+msgstr "Dagfesting til tiltakið strikað"
#: pretix/api/webhooks.py:349
msgid ""
From f53ae59698be85642489e1ad6fd2acef11094036 Mon Sep 17 00:00:00 2001
From: Raphael Michel
Date: Fri, 14 Feb 2025 13:09:30 +0100
Subject: [PATCH 64/99] Address form: Fix "copy from above" for the "State"
field
---
src/pretix/static/pretixpresale/js/ui/main.js | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/src/pretix/static/pretixpresale/js/ui/main.js b/src/pretix/static/pretixpresale/js/ui/main.js
index 1b967b5d49..34b84b807c 100644
--- a/src/pretix/static/pretixpresale/js/ui/main.js
+++ b/src/pretix/static/pretixpresale/js/ui/main.js
@@ -710,7 +710,10 @@ function copy_answers(elements, answers) {
input.val(answers.filter("[name$=" + suffix + "]").val());
break;
case "select":
- input.val(answers.filter("[name$=" + suffix + "]").find(":selected").val()).change();
+ // save answer as data-attribute so if external event changes select-element/options it can select correct entries
+ // currently used when country => state changes
+ var answer = answers.filter("[name$=" + suffix + "]").find(":selected").val();
+ input.prop("data-selected-value", answer).val(answer).change();
break;
case "input":
switch (attributeType) {
From 2f2551cc716f7986dabaadf6281ec22083da8871 Mon Sep 17 00:00:00 2001
From: Raphael Michel
Date: Fri, 14 Feb 2025 14:05:19 +0100
Subject: [PATCH 65/99] Prepare for new docs, remove user docs as they move to
own repo (#4819)
---
doc/_templates/index.html | 71 +--
doc/_themes/pretix_theme/layout.html | 1 +
.../pretix_theme/static/css/pretix.css | 2 +-
doc/admin/config.rst | 548 ------------------
doc/admin/errors.rst | 40 --
doc/admin/index.rst | 18 -
doc/admin/indexes.rst | 83 ---
doc/admin/installation/community.rst | 18 -
doc/admin/installation/dev_version.rst | 37 --
doc/admin/installation/docker_smallscale.rst | 333 -----------
doc/admin/installation/enterprise.rst | 84 ---
doc/admin/installation/general.rst | 39 --
doc/admin/installation/index.rst | 17 -
doc/admin/installation/manual_smallscale.rst | 346 -----------
doc/admin/maintainance.rst | 114 ----
doc/admin/mysql2postgres.rst | 261 ---------
doc/admin/scaling.rst | 236 --------
doc/admin/updates.rst | 83 ---
doc/{plugins => api/resources}/badges.rst | 2 +-
.../resources}/banktransfer.rst | 6 +-
doc/{plugins => api/resources}/campaigns.rst | 2 +
.../resources}/certificates.rst | 2 +
doc/{plugins => api/resources}/digital.rst | 2 +
doc/{plugins => api/resources}/exhibitors.rst | 2 +
.../resources}/imported_secrets.rst | 2 +
doc/api/resources/index.rst | 11 +-
doc/{plugins => api/resources}/shipping.rst | 2 +
.../resources}/ticketoutputpdf.rst | 2 +-
doc/conf.py | 14 +-
doc/contents.rst | 4 -
doc/development/index.rst | 4 +-
doc/development/setup.rst | 6 +-
doc/images/logo-white.svg | 30 +-
doc/plugins/epaybl.rst | 143 -----
doc/plugins/getyourguide.rst | 105 ----
doc/plugins/img/epaybl_flowchart.png | Bin 44496 -> 0 bytes
doc/plugins/index.rst | 28 -
doc/plugins/kulturpass.rst | 193 ------
doc/plugins/list.rst | 10 -
doc/plugins/presale-saml.rst | 405 -------------
doc/plugins/webinar.rst | 43 --
doc/screens/event/create_step1.png | Bin 91480 -> 0 bytes
doc/screens/event/create_step2.png | Bin 90211 -> 0 bytes
doc/screens/event/create_step3.png | Bin 57479 -> 0 bytes
doc/screens/event/create_step4.png | Bin 105860 -> 0 bytes
doc/screens/event/seasontickets_issue.png | Bin 26838 -> 0 bytes
.../event/seasontickets_membershiptype.png | Bin 132853 -> 0 bytes
.../event/seasontickets_orgsettings.png | Bin 93679 -> 0 bytes
doc/screens/event/seasontickets_require.png | Bin 30412 -> 0 bytes
doc/screens/event/seasontickets_rules.png | Bin 85387 -> 0 bytes
doc/screens/event/settings_display.png | Bin 144634 -> 0 bytes
doc/screens/event/settings_email.png | Bin 95071 -> 0 bytes
doc/screens/event/settings_invoice.png | Bin 108170 -> 0 bytes
doc/screens/event/settings_payment.png | Bin 120559 -> 0 bytes
doc/screens/event/settings_plugins.png | Bin 111587 -> 0 bytes
doc/screens/event/settings_tickets.png | Bin 105106 -> 0 bytes
doc/screens/event/subevent_create.png | Bin 72455 -> 0 bytes
doc/screens/event/subevent_detail.png | Bin 73247 -> 0 bytes
doc/screens/event/subevent_list.png | Bin 71478 -> 0 bytes
doc/screens/event/tax_add.png | Bin 100778 -> 0 bytes
doc/screens/event/tax_detail.png | Bin 62866 -> 0 bytes
doc/screens/event/tax_list.png | Bin 54090 -> 0 bytes
doc/screens/event/timeslots_checkinlists.png | Bin 90077 -> 0 bytes
doc/screens/event/timeslots_create.png | Bin 119008 -> 0 bytes
doc/screens/event/timeslots_create_2.png | Bin 75593 -> 0 bytes
doc/screens/event/timeslots_create_3.png | Bin 48422 -> 0 bytes
doc/screens/event/timeslots_presale.png | Bin 54566 -> 0 bytes
doc/screens/event/timeslots_settings_1.png | Bin 95940 -> 0 bytes
doc/screens/event/widget_form.png | Bin 116578 -> 0 bytes
doc/screens/organizer/customer.png | Bin 97931 -> 0 bytes
doc/screens/organizer/customer_edit.png | Bin 70573 -> 0 bytes
.../organizer/customer_ssoclient_add.png | Bin 77593 -> 0 bytes
.../organizer/customer_ssoprovider_add.png | Bin 89120 -> 0 bytes
doc/screens/organizer/customers.png | Bin 106590 -> 0 bytes
doc/screens/organizer/edit.png | Bin 88032 -> 0 bytes
doc/screens/organizer/edit_customer.png | Bin 100652 -> 0 bytes
doc/screens/organizer/edit_sysadmin.png | Bin 100396 -> 0 bytes
doc/screens/organizer/event_list.png | Bin 66066 -> 0 bytes
doc/screens/organizer/list.png | Bin 48328 -> 0 bytes
doc/screens/organizer/team_detail.png | Bin 66472 -> 0 bytes
doc/screens/organizer/team_edit.png | Bin 79536 -> 0 bytes
doc/screens/organizer/team_list.png | Bin 50397 -> 0 bytes
doc/user/customers/index.rst | 210 -------
doc/user/events/create.rst | 99 ----
doc/user/events/display.rst | 55 --
doc/user/events/email.rst | 216 -------
doc/user/events/giftcards.rst | 73 ---
doc/user/events/guides/earlybird_dates.rst | 20 -
doc/user/events/guides/earlybird_numbers.rst | 47 --
doc/user/events/guides/groups.rst | 44 --
doc/user/events/guides/mixed_taxation.rst | 21 -
doc/user/events/guides/packages.rst | 78 ---
doc/user/events/guides/pricelevels.rst | 13 -
.../events/guides/restricted_audience.rst | 28 -
doc/user/events/guides/season_tickets.rst | 92 ---
doc/user/events/guides/terminology.rst | 24 -
doc/user/events/guides/timeslots.rst | 94 ---
doc/user/events/guides/upselling.rst | 17 -
doc/user/events/guides/workshops.rst | 77 ---
.../events/img/widget_checkbox_button.png | Bin 3040 -> 0 bytes
doc/user/events/invoicing.rst | 116 ----
doc/user/events/plugins.rst | 20 -
doc/user/events/settings.rst | 14 -
doc/user/events/structureguide.rst | 23 -
doc/user/events/subevents.rst | 111 ----
doc/user/events/taxes.rst | 121 ----
doc/user/events/ticket_secrets.rst | 96 ---
doc/user/events/tickets.rst | 41 --
doc/user/events/widget.rst | 497 ----------------
doc/user/faq.rst | 106 ----
doc/user/glossary.rst | 193 ------
doc/user/index.rst | 20 -
doc/user/markdown.rst | 169 ------
doc/user/organizers/account.rst | 43 --
doc/user/organizers/domain.rst | 47 --
doc/user/organizers/index.rst | 9 -
doc/user/organizers/teams.rst | 71 ---
doc/user/payments/banktransfer.rst | 38 --
doc/user/payments/fees.rst | 63 --
doc/user/payments/img/bank1.png | Bin 30863 -> 0 bytes
doc/user/payments/img/bank2.png | Bin 31995 -> 0 bytes
doc/user/payments/img/paypal1.png | Bin 97141 -> 0 bytes
doc/user/payments/img/paypal2.png | Bin 18144 -> 0 bytes
doc/user/payments/img/paypal3.png | Bin 91511 -> 0 bytes
doc/user/payments/img/paypal4.png | Bin 90793 -> 0 bytes
doc/user/payments/img/paypal5.png | Bin 74126 -> 0 bytes
doc/user/payments/img/paypal6.png | Bin 95926 -> 0 bytes
doc/user/payments/img/paypal7.png | Bin 96343 -> 0 bytes
doc/user/payments/img/paypal8.png | Bin 107391 -> 0 bytes
doc/user/payments/img/paypal_pretix.png | Bin 23815 -> 0 bytes
doc/user/payments/img/stripe1.png | Bin 82633 -> 0 bytes
doc/user/payments/img/stripe2.png | Bin 82586 -> 0 bytes
doc/user/payments/index.rst | 13 -
doc/user/payments/overview.rst | 16 -
doc/user/payments/paypal.rst | 71 ---
doc/user/payments/settings.rst | 65 ---
doc/user/payments/stripe.rst | 34 --
137 files changed, 87 insertions(+), 6467 deletions(-)
delete mode 100644 doc/admin/config.rst
delete mode 100644 doc/admin/errors.rst
delete mode 100644 doc/admin/index.rst
delete mode 100644 doc/admin/indexes.rst
delete mode 100644 doc/admin/installation/community.rst
delete mode 100644 doc/admin/installation/dev_version.rst
delete mode 100644 doc/admin/installation/docker_smallscale.rst
delete mode 100644 doc/admin/installation/enterprise.rst
delete mode 100644 doc/admin/installation/general.rst
delete mode 100644 doc/admin/installation/index.rst
delete mode 100644 doc/admin/installation/manual_smallscale.rst
delete mode 100644 doc/admin/maintainance.rst
delete mode 100644 doc/admin/mysql2postgres.rst
delete mode 100644 doc/admin/scaling.rst
delete mode 100644 doc/admin/updates.rst
rename doc/{plugins => api/resources}/badges.rst (97%)
rename doc/{plugins => api/resources}/banktransfer.rst (98%)
rename doc/{plugins => api/resources}/campaigns.rst (98%)
rename doc/{plugins => api/resources}/certificates.rst (95%)
rename doc/{plugins => api/resources}/digital.rst (99%)
rename doc/{plugins => api/resources}/exhibitors.rst (99%)
rename doc/{plugins => api/resources}/imported_secrets.rst (98%)
rename doc/{plugins => api/resources}/shipping.rst (98%)
rename doc/{plugins => api/resources}/ticketoutputpdf.rst (99%)
delete mode 100644 doc/plugins/epaybl.rst
delete mode 100644 doc/plugins/getyourguide.rst
delete mode 100644 doc/plugins/img/epaybl_flowchart.png
delete mode 100644 doc/plugins/index.rst
delete mode 100644 doc/plugins/kulturpass.rst
delete mode 100644 doc/plugins/list.rst
delete mode 100644 doc/plugins/presale-saml.rst
delete mode 100644 doc/plugins/webinar.rst
delete mode 100644 doc/screens/event/create_step1.png
delete mode 100644 doc/screens/event/create_step2.png
delete mode 100644 doc/screens/event/create_step3.png
delete mode 100644 doc/screens/event/create_step4.png
delete mode 100644 doc/screens/event/seasontickets_issue.png
delete mode 100644 doc/screens/event/seasontickets_membershiptype.png
delete mode 100644 doc/screens/event/seasontickets_orgsettings.png
delete mode 100644 doc/screens/event/seasontickets_require.png
delete mode 100644 doc/screens/event/seasontickets_rules.png
delete mode 100644 doc/screens/event/settings_display.png
delete mode 100644 doc/screens/event/settings_email.png
delete mode 100644 doc/screens/event/settings_invoice.png
delete mode 100644 doc/screens/event/settings_payment.png
delete mode 100644 doc/screens/event/settings_plugins.png
delete mode 100644 doc/screens/event/settings_tickets.png
delete mode 100644 doc/screens/event/subevent_create.png
delete mode 100644 doc/screens/event/subevent_detail.png
delete mode 100644 doc/screens/event/subevent_list.png
delete mode 100644 doc/screens/event/tax_add.png
delete mode 100644 doc/screens/event/tax_detail.png
delete mode 100644 doc/screens/event/tax_list.png
delete mode 100644 doc/screens/event/timeslots_checkinlists.png
delete mode 100644 doc/screens/event/timeslots_create.png
delete mode 100644 doc/screens/event/timeslots_create_2.png
delete mode 100644 doc/screens/event/timeslots_create_3.png
delete mode 100644 doc/screens/event/timeslots_presale.png
delete mode 100644 doc/screens/event/timeslots_settings_1.png
delete mode 100644 doc/screens/event/widget_form.png
delete mode 100644 doc/screens/organizer/customer.png
delete mode 100644 doc/screens/organizer/customer_edit.png
delete mode 100644 doc/screens/organizer/customer_ssoclient_add.png
delete mode 100644 doc/screens/organizer/customer_ssoprovider_add.png
delete mode 100644 doc/screens/organizer/customers.png
delete mode 100644 doc/screens/organizer/edit.png
delete mode 100644 doc/screens/organizer/edit_customer.png
delete mode 100644 doc/screens/organizer/edit_sysadmin.png
delete mode 100644 doc/screens/organizer/event_list.png
delete mode 100644 doc/screens/organizer/list.png
delete mode 100644 doc/screens/organizer/team_detail.png
delete mode 100644 doc/screens/organizer/team_edit.png
delete mode 100644 doc/screens/organizer/team_list.png
delete mode 100644 doc/user/customers/index.rst
delete mode 100644 doc/user/events/create.rst
delete mode 100644 doc/user/events/display.rst
delete mode 100644 doc/user/events/email.rst
delete mode 100644 doc/user/events/giftcards.rst
delete mode 100644 doc/user/events/guides/earlybird_dates.rst
delete mode 100644 doc/user/events/guides/earlybird_numbers.rst
delete mode 100644 doc/user/events/guides/groups.rst
delete mode 100644 doc/user/events/guides/mixed_taxation.rst
delete mode 100644 doc/user/events/guides/packages.rst
delete mode 100644 doc/user/events/guides/pricelevels.rst
delete mode 100644 doc/user/events/guides/restricted_audience.rst
delete mode 100644 doc/user/events/guides/season_tickets.rst
delete mode 100644 doc/user/events/guides/terminology.rst
delete mode 100644 doc/user/events/guides/timeslots.rst
delete mode 100644 doc/user/events/guides/upselling.rst
delete mode 100644 doc/user/events/guides/workshops.rst
delete mode 100644 doc/user/events/img/widget_checkbox_button.png
delete mode 100644 doc/user/events/invoicing.rst
delete mode 100644 doc/user/events/plugins.rst
delete mode 100644 doc/user/events/settings.rst
delete mode 100644 doc/user/events/structureguide.rst
delete mode 100644 doc/user/events/subevents.rst
delete mode 100644 doc/user/events/taxes.rst
delete mode 100644 doc/user/events/ticket_secrets.rst
delete mode 100644 doc/user/events/tickets.rst
delete mode 100644 doc/user/events/widget.rst
delete mode 100644 doc/user/faq.rst
delete mode 100644 doc/user/glossary.rst
delete mode 100644 doc/user/index.rst
delete mode 100644 doc/user/markdown.rst
delete mode 100644 doc/user/organizers/account.rst
delete mode 100644 doc/user/organizers/domain.rst
delete mode 100644 doc/user/organizers/index.rst
delete mode 100644 doc/user/organizers/teams.rst
delete mode 100644 doc/user/payments/banktransfer.rst
delete mode 100644 doc/user/payments/fees.rst
delete mode 100644 doc/user/payments/img/bank1.png
delete mode 100644 doc/user/payments/img/bank2.png
delete mode 100644 doc/user/payments/img/paypal1.png
delete mode 100644 doc/user/payments/img/paypal2.png
delete mode 100644 doc/user/payments/img/paypal3.png
delete mode 100644 doc/user/payments/img/paypal4.png
delete mode 100644 doc/user/payments/img/paypal5.png
delete mode 100644 doc/user/payments/img/paypal6.png
delete mode 100644 doc/user/payments/img/paypal7.png
delete mode 100644 doc/user/payments/img/paypal8.png
delete mode 100644 doc/user/payments/img/paypal_pretix.png
delete mode 100644 doc/user/payments/img/stripe1.png
delete mode 100644 doc/user/payments/img/stripe2.png
delete mode 100644 doc/user/payments/index.rst
delete mode 100644 doc/user/payments/overview.rst
delete mode 100644 doc/user/payments/paypal.rst
delete mode 100644 doc/user/payments/settings.rst
delete mode 100644 doc/user/payments/stripe.rst
diff --git a/doc/_templates/index.html b/doc/_templates/index.html
index c6964b43d5..134740bbdc 100644
--- a/doc/_templates/index.html
+++ b/doc/_templates/index.html
@@ -1,43 +1,16 @@
{% extends "layout.html" %}
{% set title = 'Overview' %}
{% block body %}
-
Welcome to pretix' documentation!
+
Welcome to our developer documentation!
- We work hard to make this website contain all information that you need to use, run, understand, and improve
- pretix. Of course, this documentation will never be perfect or complete, but if there is anything unclear
+ We work hard to make this website contain all information that you need to work with our API or source code.
+ Of course, this documentation will never be perfect or complete, but if there is anything unclear
or anything specific that you miss here, that's a bug and we'd be happy if you'd
let us know.
Keep in touch and stay up to date by following our project account on Twitter.
-
-
{% endblock %}
\ No newline at end of file
diff --git a/doc/_themes/pretix_theme/layout.html b/doc/_themes/pretix_theme/layout.html
index da860bff30..b0fa5c1421 100644
--- a/doc/_themes/pretix_theme/layout.html
+++ b/doc/_themes/pretix_theme/layout.html
@@ -115,6 +115,7 @@
{%- if logo or logo_url %}
{%- endif %}
+ Developer Documentation
{% include "searchbox.html" %}
diff --git a/doc/_themes/pretix_theme/static/css/pretix.css b/doc/_themes/pretix_theme/static/css/pretix.css
index 5e452360a9..ef640e7fb3 100644
--- a/doc/_themes/pretix_theme/static/css/pretix.css
+++ b/doc/_themes/pretix_theme/static/css/pretix.css
@@ -5183,7 +5183,7 @@ div[class^='highlight'] pre {
.wy-side-nav-search > a img.logo, .wy-side-nav-search .wy-dropdown > a img.logo {
display: block;
- margin: 0 auto;
+ margin: 0 auto 10px;
height: 50px;
width: auto;
border-radius: 0;
diff --git a/doc/admin/config.rst b/doc/admin/config.rst
deleted file mode 100644
index d8bd2a1e3f..0000000000
--- a/doc/admin/config.rst
+++ /dev/null
@@ -1,548 +0,0 @@
-.. highlight:: ini
-
-.. _`config`:
-
-.. spelling:word-list:: Galera
-
-Configuration file
-==================
-
-Pretix reads its configuration from a configuration file. It tries to find this file
-at the following locations. It will try to read the file from the specified paths in
-the following order. The file that is found *last* will override the settings from
-the files found before.
-
-1. ``PRETIX_CONFIG_FILE`` environment variable
-2. ``/etc/pretix/pretix.cfg``
-3. ``~/.pretix.cfg``
-4. ``pretix.cfg`` in the current working directory
-
-The file is expected to be in the INI format as specified in the `Python documentation`_.
-
-The config file may contain the following sections (all settings are optional and have
-default values). We suggest that you start from the examples given in one of the
-installation tutorials.
-
-.. note::
-
- The configuration file is the recommended way to configure pretix. However, you can
- also set them through environment variables. In this case, the syntax is
- ``PRETIX_SECTION_CONFIG``. For example, to configure the setting ``password_reset``
- from the ``[pretix]`` section, set ``PRETIX_PRETIX_PASSWORD_RESET=off`` in your
- environment.
-
-pretix settings
----------------
-
-Example::
-
- [pretix]
- instance_name=pretix.de
- url=http://localhost
- currency=EUR
- datadir=/data
- plugins_default=pretix.plugins.sendmail,pretix.plugins.statistics
-
-``instance_name``
- The name of this installation. Default: ``pretix.de``
-
-``url``
- The installation's full URL, without a trailing slash.
-
-``currency``
- The default currency as a three-letter code. Defaults to ``EUR``.
-
-``cachedir``
- The local path to a directory where temporary files will be stored.
- Defaults to the ``cache`` directory below the ``datadir``.
-
-``datadir``
- The local path to a data directory that will be used for storing user uploads and similar
- data. Defaults to the value of the environment variable ``DATA_DIR`` or ``data``.
-
-``logdir``
- The local path to a directory where log files will be stored.
- Defaults to the ``logs`` directory below the ``datadir``.
-
-``plugins_default``
- A comma-separated list of plugins that are enabled by default for all new events.
- Defaults to ``pretix.plugins.sendmail,pretix.plugins.statistics``.
-
-``plugins_exclude``
- A comma-separated list of plugins that are not available even though they are installed.
- Defaults to an empty string.
-
-``plugins_show_meta``
- Whether to show authors and versions of plugins, defaults to ``on``.
-
-``auth_backends``
- A comma-separated list of available auth backends. Defaults to ``pretix.base.auth.NativeAuthBackend``.
-
-``registration``
- Enables or disables the registration of new admin users. Defaults to ``off``.
-
-``password_reset``
- Enables or disables password reset. Defaults to ``on``.
-
-``long_sessions``
- Enables or disables the "keep me logged in" button. Defaults to ``on``.
-
-``ecb_rates``
- By default, pretix periodically downloads currency rates from the European Central Bank as well as other authorities
- that are used to print tax amounts in the customer currency on invoices for some currencies. Set to ``off`` to
- disable this feature. Defaults to ``on``.
-
-``audit_comments``
- Enables or disables nagging staff users for leaving comments on their sessions for auditability.
- Defaults to ``off``.
-
-``obligatory_2fa``
- Enables or disables obligatory usage of two-factor authentication for users of the pretix backend.
- Can be ``True`` to make two-factor authentication obligatory for all users or ``staff`` to make it only
- obligatory to users with admin permissions. Defaults to ``False``.
-
-``trust_x_forwarded_for``
- Specifies whether the ``X-Forwarded-For`` header can be trusted. Only set to ``on`` if you have a reverse
- proxy that actively removes and re-adds the header to make sure the correct client IP is the first value.
- Defaults to ``off``.
-
-``trust_x_forwarded_proto``
- Specifies whether the ``X-Forwarded-Proto`` header can be trusted. Only set to ``on`` if you have a reverse
- proxy that actively removes and re-adds the header to make sure the correct value is set.
- Defaults to ``off``.
-
-``trust_x_forwarded_host``
- Specifies whether the ``X-Forwarded-Host`` header can be trusted. Only set to ``on`` if you have a reverse
- proxy that actively removes and re-adds the header to make sure the correct value is set.
- Defaults to ``off``.
-
-``csp_log``
- Log violations of the Content Security Policy (CSP). Defaults to ``on``.
-
-``csp_additional_header``
- Specifies a CSP header that will be **merged** with pretix's default header. For example, if you set this
- to ``script-src https://mycdn.com``, pretix will add ``https://mycdn.com`` as an **additional** allowed source
- to all CSP headers. Empty by default.
-
-``loglevel``
- Set console and file log level (``DEBUG``, ``INFO``, ``WARNING``, ``ERROR`` or ``CRITICAL``). Defaults to ``INFO``.
-
-``request_id_header``
- Specifies the name of a header that should be used for logging request IDs. Off by default.
-
-Locale settings
----------------
-
-Example::
-
- [locale]
- default=de
- timezone=Europe/Berlin
-
-``default``
- The system's default locale. Default: ``en``
-
-``timezone``
- The system's default timezone as a ``pytz`` name. Default: ``UTC``
-
-Database settings
------------------
-
-Example::
-
- [database]
- backend=postgresql
- name=pretix
- user=pretix
- password=abcd
- host=localhost
- port=3306
- advisory_lock_index=1
- disable_server_side_cursors=0
- sslmode=require
- sslrootcert=/etc/pretix/postgresql-ca.crt
- sslcert=/etc/pretix/postgresql-client-crt.crt
- sslkey=/etc/pretix/postgresql-client-key.key
-
-``backend``
- One of ``sqlite3`` and ``postgresql``.
- Default: ``sqlite3``.
-
-``name``
- The database's name. Default: ``db.sqlite3``.
-
-``user``, ``password``, ``host``, ``port``
- Connection details for the database connection. Empty by default.
-
-``advisory_lock_index``
- On PostgreSQL, pretix uses the "advisory lock" feature. However, advisory locks use a server-wide name space and
- and are not scoped to a specific database. If you run multiple pretix applications with the same PostgreSQL server,
- you should set separate values for this setting (integers up to 256).
-
-``disable_server_side_cursors``
- On PostgreSQL pretix might use server side cursors for certain operations. This is generally fine but will break in
- specific circumstances, for example when connecting to PostgreSQL through a PGBouncer configured with a transaction
- pool mode. Off by default (i.e. by default server side cursors will be used).
-
-``sslmode``, ``sslrootcert``
- Connection TLS details for the PostgreSQL database connection. Possible values of ``sslmode`` are ``disable``, ``allow``, ``prefer``, ``require``, ``verify-ca``, and ``verify-full``. ``sslrootcert`` should be the accessible path of the ca certificate. Both values are empty by default.
-
-``sslcert``, ``sslkey``
- Connection mTLS details for the PostgreSQL database connection. It's also necessary to specify ``sslmode`` and ``sslrootcert`` parameters, please check the correct values from the TLS part. ``sslcert`` should be the accessible path of the client certificate. ``sslkey`` should be the accessible path of the client key. All values are empty by default.
-
-.. _`config-replica`:
-
-Database replica settings
--------------------------
-
-If you use a replicated database setup, pretix expects that the default database connection always points to the primary database node.
-Routing read queries to a replica on database layer is **strongly** discouraged since this can lead to inaccurate such as more tickets
-being sold than are actually available.
-
-However, pretix can still make use of a database replica to keep some expensive queries with that can tolerate some latency from your
-primary database, such as backend search queries. The ``replica`` configuration section can have the same settings as the ``database``
-section (except for the ``backend`` setting) and will default back to the ``database`` settings for all values that are not given. This
-way, you just need to specify the settings that are different for the replica.
-
-Example::
-
- [replica]
- host=192.168.0.2
-
-.. _`config-urls`:
-
-URLs
-----
-
-Example::
-
- [urls]
- media=/media/
- static=/static/
-
-``media``
- The URL to be used to serve user-uploaded content. You should not need to modify
- this. Default: ``/media/``
-
-``static``
- The URL to be used to serve static files. You should not need to modify
- this. Default: ``/static/``
-
-.. _`mail-settings`:
-
-Email
------
-
-Example::
-
- [mail]
- from=hello@localhost
- host=127.0.0.71
- user=pretix
- password=foobar
- port=1025
- tls=on
- ssl=off
-
-``host``, ``port``
- The SMTP Host to connect to. Defaults to ``localhost`` and ``25``.
-
-``user``, ``password``
- The SMTP user data to use for the connection. Empty by default.
-
-``tls``, ``ssl``
- Use STARTTLS or SSL for the SMTP connection. Off by default.
-
-``from``
- The email address to set as ``From`` header in outgoing emails by the system.
- Default: ``pretix@localhost``
-
-``from_notifications``
- The email address to set as ``From`` header in admin notification emails by the system.
- Defaults to the value of ``from``.
-
-``from_organizers``
- The email address to set as ``From`` header in outgoing emails by the system sent on behalf of organizers.
- Defaults to the value of ``from``.
-
-``custom_sender_verification_required``
- If this is on (the default), organizers need to verify email addresses they want to use as senders in their event.
-
-``custom_sender_spf_string``
- If this is set to a valid SPF string, pretix will show a warning if organizers use a sender address from a domain
- that does not include this value.
-
-``custom_smtp_allow_private_networks``
- If this is off (the default), custom SMTP servers cannot be private network addresses.
-
-``admins``
- Comma-separated list of email addresses that should receive a report about every error code 500 thrown by pretix.
-
-.. _`django-settings`:
-
-Django settings
----------------
-
-Example::
-
- [django]
- secret=j1kjps5a5&4ilpn912s7a1!e2h!duz^i3&idu@_907s$wrz@x-
- debug=off
- passwords_argon2=on
-
-``secret``
- The secret to be used by Django for signing and verification purposes. If this
- setting is not provided, pretix will generate a random secret on the first start
- and will store it in the filesystem for later usage.
-
-``secret_fallback0`` ... ``secret_fallback9``
- Prior versions of the secret to be used by Django for signing and verification purposes that will still
- be accepted but no longer be used for new signing.
-
-``debug``
- Whether or not to run in debug mode. Default is ``False``.
-
- .. WARNING:: Never set this to ``True`` in production!
-
-``passwords_argon``
- Use the ``argon2`` algorithm for password hashing. Disable on systems with a small number of CPU cores (currently
- less than 8).
-
-``profile``
- Enable code profiling for a random subset of requests. Disabled by default, see
- :ref:`perf-monitoring` for details.
-
-.. _`metrics-settings`:
-
-Metrics
--------
-
-If you want to fetch internally collected prometheus-style metrics you need to configure the credentials for the
-metrics endpoint and enable it::
-
- [metrics]
- enabled=true
- user=your_user
- passphrase=mysupersecretpassphrase
-
-Currently, metrics-collection requires a redis server to be available.
-
-
-Memcached
----------
-
-You can use an existing memcached server as pretix's caching backend::
-
- [memcached]
- location=127.0.0.1:11211
-
-``location``
- The location of memcached, either a host:port combination or a socket file.
-
-If no memcached is configured, pretix will use redis for caching. If neither is configured, pretix will not use any caching.
-
-.. note:: If you use memcached and you deploy pretix across multiple servers, you should use *one*
- shared memcached instance, not multiple ones, because cache invalidations would not be
- propagated otherwise.
-
-Redis
------
-
-If a redis server is configured, pretix can use it for locking, caching and session storage
-to speed up various operations::
-
- [redis]
- location=redis://127.0.0.1:6379/1
- sessions=false
- sentinels=[
- ["sentinel_host_1", 26379],
- ["sentinel_host_2", 26379],
- ["sentinel_host_3", 26379]
- ]
- password=password
- ssl_cert_reqs=required
- ssl_ca_certs=/etc/pretix/redis-ca.pem
- ssl_keyfile=/etc/pretix/redis-client-crt.pem
- ssl_certfile=/etc/pretix/redis-client-key.key
-
-``location``
- The location of redis, as a URL of the form ``redis://[:password]@localhost:6379/0``
- or ``unix://[:password]@/path/to/socket.sock?db=0``
-
-``sessions``
- When this is set to ``True``, redis will be used as the session storage.
-
-``sentinels``
- Configures redis sentinels to use.
- If you don't want to use redis sentinels, you should omit this option.
- If this is set, redis via sentinels will be used instead of plain redis.
- In this case the location should be of the form ``redis://my_master/0``.
- The ``sentinels`` variable should be a json serialized list of sentinels,
- each being a list with the two elements hostname and port.
- You cannot provide a password within the location when using sentinels.
- Note that the configuration format requires you to either place the entire
- value on one line or make sure all values are indented by at least one space.
-
-``password``
- If your redis setup doesn't require a password or you already specified it in the location you can omit this option.
- If this is set it will be passed to redis as the connection option PASSWORD.
-
-``ssl_cert_reqs``
- If this is set it will be passed to redis as the connection option ``SSL_CERT_REQS``.
- Possible values are ``none``, ``optional``, and ``required``.
-
-``ssl_ca_certs``
- If your redis setup doesn't require TLS you can omit this option.
- If this is set it will be passed to redis as the connection option ``SSL_CA_CERTS``. Possible value is the ca path.
-
-``ssl_keyfile``
- If your redis setup doesn't require mTLS you can omit this option.
- If this is set it will be passed to redis as the connection option ``SSL_KEYFILE``. Possible value is the keyfile path.
-
-``ssl_certfile``
- If your redis setup doesn't require mTLS you can omit this option.
- If this is set it will be passed to redis as the connection option ``SSL_CERTFILE``. Possible value is the certfile path.
-
-If redis is not configured, pretix will store sessions and locks in the database. If memcached
-is configured, memcached will be used for caching instead of redis.
-
-Translations
-------------
-
-pretix comes with a number of translations. All languages are enabled by default. If you want to limit
-the languages available in your installation, you can enable a set of languages like this::
-
- [languages]
- enabled=en,de
-
-Some of the languages them are marked as "incubating", which means
-they can usually only be selected in development mode. If you want to use them nevertheless, you
-can activate them like this::
-
- [languages]
- allow_incubating=pt-br,da
-
-You can also tell pretix about additional paths where it will search for translations::
-
- [languages]
- path=/path/to/my/translations
-
-For a given language (e.g. ``pt-br``), pretix will then look in the
-specific sub-folder, e.g. ``/path/to/my/translations/pt_BR/LC_MESSAGES/django.po``.
-
-Celery task queue
------------------
-
-For processing long-running tasks asynchronously, pretix requires the celery task queue.
-For communication between the web server and the task workers in both direction, a messaging
-queue and a result backend is needed. You can use a redis database for both directions, or
-an AMQP server (e.g. RabbitMQ) as a broker and redis or your database as a result backend::
-
- [celery]
- broker=amqp://guest:guest@localhost:5672//
- backend=redis://localhost/0
- broker_transport_options="{}"
- backend_transport_options="{}"
-
-RabbitMQ might be the better choice if you have a complex, multi-server, high-performance setup,
-but as you already should have a redis instance ready for session and lock storage, we recommend
-redis for convenience. See the `Celery documentation`_ for more details.
-
-The two ``transport_options`` entries can be omitted in most cases.
-If they are present they need to be a valid JSON dictionary.
-For possible entries in that dictionary see the `Celery documentation`_.
-
-It is possible the use Redis with TLS/mTLS for the broker or the backend. To do so, it is necessary to specify the TLS identifier ``rediss``, the ssl mode ``ssl_cert_reqs`` and optionally specify the CA (TLS) ``ssl_ca_certs``, cert ``ssl_certfile`` and key ``ssl_keyfile`` (mTLS) path as encoded string. the following uri describes the format and possible parameters ``rediss://0.0.0.0:6379/1?ssl_cert_reqs=required&ssl_ca_certs=%2Fetc%2Fpretix%2Fredis-ca.pem&ssl_certfile=%2Fetc%2Fpretix%2Fredis-client-crt.pem&ssl_keyfile=%2Fetc%2Fpretix%2Fredis-client-key.key``
-
-To use redis with sentinels set the broker or backend to ``sentinel://sentinel_host_1:26379;sentinel_host_2:26379/0``
-and the respective transport_options to ``{"master_name":"mymaster"}``.
-If your redis instances behind the sentinel have a password use ``sentinel://:my_password@sentinel_host_1:26379;sentinel_host_2:26379/0``.
-If your redis sentinels themselves have a password set the transport_options to ``{"master_name":"mymaster","sentinel_kwargs":{"password":"my_password"}}``.
-
-Sentry
-------
-
-pretix has native support for sentry, a tool that you can use to track errors in the
-application. If you want to use sentry, you need to set a DSN in the configuration file::
-
- [sentry]
- dsn=https://:@sentry.io/
- traces_sample_rate=0.5
- traces_sample_token=xyz
-
-``dsn``
- You will be given this value by your sentry installation.
-
-``traces_sample_rate``
- Sample rate for performance monitoring.
-
-``traces_sample_token``
- If this token is found in a query string, a trace will always be sampled.
-
-
-Caching
--------
-
-You can adjust some caching settings to control how much storage pretix uses::
-
- [cache]
- tickets=48 ; Number of hours tickets (PDF, passbook, …) are cached
-
-
-Secret length
--------------
-
-If you are really paranoid, you can increase the length of random strings pretix uses in
-various places like order codes, secrets in the ticket QR codes, etc. Example::
-
- [entropy]
- ; Order code needs to be < 16 characters, default is 5
- order_code=5
- ; Ticket secret needs to be < 64 characters, default is 32
- ticket_secret=32
- ; Voucher code needs to be < 255 characters, default is 16
- voucher_code=16
-
-External tools
---------------
-
-pretix can make use of some external tools if they are installed. Currently, they are all optional. Example::
-
- [tools]
- pdftk=/usr/bin/pdftk
-
-.. _Python documentation: https://docs.python.org/3/library/configparser.html?highlight=configparser#supported-ini-file-structure
-.. _Celery documentation: http://docs.celeryproject.org/en/latest/userguide/configuration.html
-
-Maximum upload file sizes
--------------------------
-
-You can configure the maximum file size for uploading various files::
-
- [pretix_file_upload]
- ; Max upload size for images in MiB, defaults to 10 MiB
- max_size_image = 12
- ; Max upload size for favicons in MiB, defaults to 1 MiB
- max_size_favicon = 2
- ; Max upload size for email attachments of manually sent emails in MiB, defaults to 10 MiB
- max_size_email_attachment = 15
- ; Max upload size for email attachments of automatically sent emails in MiB, defaults to 1 MiB
- max_size_email_auto_attachment = 2
- ; Max upload size for other files in MiB, defaults to 10 MiB
- ; This includes all file upload type order questions
- max_size_other = 100
-
-
-GeoIP
------
-
-pretix can optionally make use of a GeoIP database for some features. It needs a file in ``mmdb`` format, for example
-`GeoLite2`_ or `GeoAcumen`_::
-
- [geoip]
- path=/var/geoipdata/
- filename_country=GeoLite2-Country.mmdb
-
-
-.. _GeoAcumen: https://github.com/geoacumen/geoacumen-country
-.. _GeoLite2: https://dev.maxmind.com/geoip/geolite2-free-geolocation-data
diff --git a/doc/admin/errors.rst b/doc/admin/errors.rst
deleted file mode 100644
index 028c2a87d1..0000000000
--- a/doc/admin/errors.rst
+++ /dev/null
@@ -1,40 +0,0 @@
-.. _`admin-errors`:
-
-Dealing with errors
-===================
-
-If you encounter an error in pretix, please follow the following steps to debug it:
-
-* If the error message is shown on a **white page** and the last line of the error includes "nginx", the error is not with pretix
- directly but with your nginx webserver. This might mean that pretix is not running, but it could also be something else.
- Please first check your nginx error log. The default location is ``/var/log/nginx/error.log``.
-
- * If it turns out pretix is not running, check the output of ``docker logs pretix`` for a docker installation and
- ``journalctl -u pretix-web.service`` for a manual installation.
-
-* If the error message is an "**Internal Server Error**" in purple pretix design, please check pretix' log file which by default is at
- ``/var/pretix-data/logs/pretix.log`` if you installed with docker and ``/var/pretix/data/logs/pretix.log`` otherwise. If you don't
- know how to interpret it, open a discussion on GitHub with the relevant parts of the log file.
-
- * If the error message includes ``/usr/bin/env: ‘node’: No such file or directory``, you forgot to install ``node.js``
-
- * If the error message includes ``OfflineGenerationError``, you might have forgot to run the ``rebuild`` step after a pretix update
- or plugin installation.
-
- * If the error message mentions your database server or redis server, make sure these are running and accessible.
-
-* If pretix loads fine but certain actions (creating carts, orders, or exports, downloading tickets, sending emails) **take forever**,
- ``pretix-worker`` is not running. Check the output of ``docker logs pretix`` for a docker installation and
- ``journalctl -u pretix-worker.service`` for a manual installation.
-
-* If the page loads but all **styles are missing**, you probably forgot to update your nginx configuration file after an upgrade of your
- operating system's python version.
-
-
-If you are unable to debug the issue any further, please open a **discussion** on GitHub in our `Q&A Forum`_. Do **not** open an issue
-right away, since most things turn out not to be a bug in pretix but a mistake in your server configuration. Make sure to include
-relevant log excerpts in your question.
-
-If you're a pretix Enterprise customer, you can also reach out to support@pretix.eu with your issue right away.
-
-.. _Q&A Forum: https://github.com/pretix/pretix/discussions/categories/q-a
diff --git a/doc/admin/index.rst b/doc/admin/index.rst
deleted file mode 100644
index b0fe072f54..0000000000
--- a/doc/admin/index.rst
+++ /dev/null
@@ -1,18 +0,0 @@
-.. _`admindocs`:
-
-Administrator documentation
-===========================
-
-This documentation is for everyone who wants to install pretix on a server.
-
-.. toctree::
- :maxdepth: 2
-
- installation/index
- updates
- config
- maintainance
- scaling
- errors
- mysql2postgres
- indexes
diff --git a/doc/admin/indexes.rst b/doc/admin/indexes.rst
deleted file mode 100644
index fe95382995..0000000000
--- a/doc/admin/indexes.rst
+++ /dev/null
@@ -1,83 +0,0 @@
-Additional database indices
-===========================
-
-If you have a large pretix database, some features such as search for orders or events might turn pretty slow.
-For PostgreSQL, we have compiled a list of additional database indexes that you can add to speed things up.
-Just like any index, they in turn make write operations insignificantly slower and cause the database to use
-more disk space.
-
-The indexes aren't automatically created by pretix since Django does not allow us to do so only on PostgreSQL
-(and they won't work on other databases). Also, they're really not necessary if you're not having tens of
-thousands of records in your database.
-
-However, this also means they won't automatically adapt if some of the referred fields change in future updates of pretix
-and you might need to re-check this page and change them manually.
-
-Here is the currently recommended set of commands::
-
- CREATE EXTENSION pg_trgm;
-
- CREATE INDEX CONCURRENTLY pretix_addidx_event_slug
- ON pretixbase_event
- USING gin (upper("slug") gin_trgm_ops);
- CREATE INDEX CONCURRENTLY pretix_addidx_event_name
- ON pretixbase_event
- USING gin (upper("name") gin_trgm_ops);
- CREATE INDEX CONCURRENTLY pretix_addidx_order_code
- ON pretixbase_order
- USING gin (upper("code") gin_trgm_ops);
- CREATE INDEX CONCURRENTLY pretix_addidx_voucher_code
- ON pretixbase_voucher
- USING gin (upper("code") gin_trgm_ops);
- CREATE INDEX CONCURRENTLY pretix_addidx_invoice_nu1
- ON "pretixbase_invoice" (UPPER("invoice_no"));
- CREATE INDEX CONCURRENTLY pretix_addidx_invoice_nu2
- ON "pretixbase_invoice" (UPPER("full_invoice_no"));
- CREATE INDEX CONCURRENTLY pretix_addidx_organizer_name
- ON pretixbase_organizer
- USING gin (upper("name") gin_trgm_ops);
- CREATE INDEX CONCURRENTLY pretix_addidx_organizer_slug
- ON pretixbase_organizer
- USING gin (upper("slug") gin_trgm_ops);
- CREATE INDEX CONCURRENTLY pretix_addidx_order_email
- ON pretixbase_order
- USING gin (upper("email") gin_trgm_ops);
- CREATE INDEX CONCURRENTLY pretix_addidx_order_comment
- ON pretixbase_order
- USING gin (upper("comment") gin_trgm_ops);
- CREATE INDEX CONCURRENTLY pretix_addidx_order_event_date_id
- ON public.pretixbase_order (event_id, datetime, id);
- CREATE INDEX CONCURRENTLY pretix_addidx_orderpos_name
- ON pretixbase_orderposition
- USING gin (upper("attendee_name_cached") gin_trgm_ops);
- CREATE INDEX CONCURRENTLY pretix_addidx_orderpos_secret
- ON pretixbase_orderposition
- USING gin (upper("secret") gin_trgm_ops);
- CREATE INDEX CONCURRENTLY pretix_addidx_orderpos_email
- ON pretixbase_orderposition
- USING gin (upper("attendee_email") gin_trgm_ops);
- CREATE INDEX CONCURRENTLY pretix_addidx_ia_name
- ON pretixbase_invoiceaddress
- USING gin (upper("name_cached") gin_trgm_ops);
- CREATE INDEX CONCURRENTLY pretix_addidx_ia_company
- ON pretixbase_invoiceaddress
- USING gin (upper("company") gin_trgm_ops);
- CREATE INDEX CONCURRENTLY pretix_addidx_orderpos_email_upper
- ON public.pretixbase_orderposition (upper((attendee_email)::text));
- CREATE INDEX CONCURRENTLY pretix_addidx_voucher_code_upper
- ON public.pretixbase_voucher (upper((code)::text));
- CREATE INDEX CONCURRENTLY pretix_addidx_logentry_event_date_id
- ON public.pretixbase_logentry (event_id, datetime, id);
- CREATE INDEX CONCURRENTLY pretix_addidx_logentry_event_cid_date_id
- ON public.pretixbase_logentry (event_id, content_type_id, datetime, id);
-
-
-Also, if you use our ``pretix-shipping`` plugin::
-
- CREATE INDEX CONCURRENTLY pretix_addidx_sa_name
- ON pretix_shipping_shippingaddress
- USING gin (upper("name") gin_trgm_ops);
- CREATE INDEX CONCURRENTLY pretix_addidx_sa_company
- ON pretix_shipping_shippingaddress
- USING gin (upper("company") gin_trgm_ops);
-
diff --git a/doc/admin/installation/community.rst b/doc/admin/installation/community.rst
deleted file mode 100644
index 2aaa660e27..0000000000
--- a/doc/admin/installation/community.rst
+++ /dev/null
@@ -1,18 +0,0 @@
-.. highlight:: none
-
-.. _`community`:
-
-Community install guides
-========================
-
-.. warning:: The guides are maintained by the community and not by the pretix core team. If you encounter any issues with the guides, please report them to the maintainers of the guides. The pretix core team can not provide support for installs using these guides.
-
-Kubernetes
-----------
-
-- Helm Chart by techwolf12 - A Helm chart for deploying pretix on Kubernetes. The chart documentation is available on `ArtifactHub `_ and the source code is available on `GitHub `_.
-
-Docker
-------
-
-- `docker compose setup `_ by ZPascal
\ No newline at end of file
diff --git a/doc/admin/installation/dev_version.rst b/doc/admin/installation/dev_version.rst
deleted file mode 100644
index 3cb4dbd1b1..0000000000
--- a/doc/admin/installation/dev_version.rst
+++ /dev/null
@@ -1,37 +0,0 @@
-.. highlight:: none
-
-Installing a development version
-================================
-
-If you want to use a feature of pretix that is not yet contained in the last monthly release, you can also
-install a development version with pretix.
-
-.. warning:: When in production, we strongly recommend only installing released versions. Development versions might
- be broken, incompatible to plugins, or in rare cases incompatible to upgrade later on.
-
-
-Manual installation
--------------------
-
-You can use ``pip`` to update pretix directly to the development branch. Then, upgrade as usual::
-
- $ source /var/pretix/venv/bin/activate
- (venv)$ pip3 install -U "git+https://github.com/pretix/pretix.git#egg=pretix"
- (venv)$ python -m pretix migrate
- (venv)$ python -m pretix rebuild
- (venv)$ python -m pretix updateassets
- # systemctl restart pretix-web pretix-worker
-
-Docker installation
--------------------
-
-To use the latest development version with Docker, first pull it from Docker Hub::
-
- $ docker pull pretix/standalone:latest
-
-
-Then change your ``/etc/systemd/system/pretix.service`` file to use the ``:latest`` tag instead of ``:stable`` as well
-and upgrade as usual::
-
- $ systemctl restart pretix.service
- $ docker exec -it pretix.service pretix upgrade
diff --git a/doc/admin/installation/docker_smallscale.rst b/doc/admin/installation/docker_smallscale.rst
deleted file mode 100644
index 72da3d3812..0000000000
--- a/doc/admin/installation/docker_smallscale.rst
+++ /dev/null
@@ -1,333 +0,0 @@
-.. highlight:: none
-
-.. _`dockersmallscale`:
-
-Small-scale deployment with Docker
-==================================
-
-This guide describes the installation of a small-scale installation of pretix using docker. By small-scale, we mean
-that everything is being run on one host and you don't expect thousands of participants trying to get a ticket within
-a few minutes. In this setup, as many parts of pretix as possible are hidden away in one single docker container.
-This has some trade-offs in terms of performance and isolation but allows a rather easy installation.
-
-.. warning:: Even though we try to make it straightforward to run pretix, it still requires some Linux experience to
- get it right. If you're not feeling comfortable managing a Linux server, check out our hosting and service
- offers at `pretix.eu`_.
-
-We tested this guide on the Linux distribution **Debian 11.0** but it should work very similar on other
-modern distributions, especially on all systemd-based ones.
-
-Requirements
-------------
-
-Please set up the following systems beforehand, we'll not explain them here (but see these links for external
-installation guides):
-
-* `Docker`_
-* A SMTP server to send out mails, e.g. `Postfix`_ on your machine or some third-party server you have credentials for
-* A HTTP reverse proxy, e.g. `nginx`_ or Apache to allow HTTPS connections
-* A `PostgreSQL`_ 12+ database server
-* A `redis`_ server
-
-We also recommend that you use a firewall, although this is not a pretix-specific recommendation. If you're new to
-Linux and firewalls, we recommend that you start with `ufw`_.
-
-.. note:: Please, do not run pretix without HTTPS encryption. You'll handle user data and thanks to `Let's Encrypt`_
- SSL certificates can be obtained for free these days. We also *do not* provide support for HTTP-only
- installations except for evaluation purposes.
-
-.. warning:: By default, using `ufw` in conjunction will not have any effect. Please make sure to either bind the exposed
- ports of your docker container explicitly to 127.0.0.1 or configure docker to respect any set up firewall
- rules.
-
-On this guide
--------------
-
-All code lines prepended with a ``#`` symbol are commands that you need to execute on your server as ``root`` user;
-all lines prepended with a ``$`` symbol can also be run by an unprivileged user.
-
-Data files
-----------
-
-First of all, you need to create a directory on your server that pretix can use to store data files and make that
-directory writable to the user that runs pretix inside the docker container::
-
- # mkdir /var/pretix-data
- # chown -R 15371:15371 /var/pretix-data
-
-Database
---------
-
-Next, we need a database and a database user. We can create these with any kind of database managing tool or directly on
-our database's shell. Please make sure that UTF8 is used as encoding for the best compatibility. You can check this with
-the following command::
-
- # sudo -u postgres psql -c 'SHOW SERVER_ENCODING'
-
-For PostgreSQL database creation, we would do::
-
- # sudo -u postgres createuser -P pretix
- # sudo -u postgres createdb -O pretix pretix
-
-Make sure that your database listens on the network. If PostgreSQL on the same same host as docker, but not inside a docker container, we recommend that you just listen on the Docker interface by changing the following line in ``/etc/postgresql//main/postgresql.conf``::
-
- listen_addresses = 'localhost,172.17.0.1'
-
-You also need to add a new line to ``/etc/postgresql//main/pg_hba.conf`` to allow network connections to this user and database::
-
- host pretix pretix 172.17.0.1/16 md5
-
-Restart PostgreSQL after you changed these files::
-
- # systemctl restart postgresql
-
-If you have a firewall running, you should also make sure that port 5432 is reachable from the ``172.17.0.1/16`` subnet.
-
-Redis
------
-
-For caching and messaging in small-scale setups, pretix recommends using redis. In this small-scale setup we assume a
-redis instance to be running on the same host. To avoid the hassle with network configurations and firewalls, we
-recommend connecting to redis via a unix socket. To enable redis on unix sockets, add the following to your
-``/etc/redis/redis.conf``::
-
- unixsocket /var/run/redis/redis.sock
- unixsocketperm 777
-
-Now restart redis-server::
-
- # systemctl restart redis-server
-
-In this setup, systemd will delete ``/var/run/redis`` on every redis restart, which will cause issues with pretix. To
-prevent this, you can execute::
-
- # systemctl edit redis-server
-
-And insert the following::
-
- [Service]
- # Keep the directory around so that pretix.service in docker does not need to be
- # restarted when redis is restarted.
- RuntimeDirectoryPreserve=yes
-
-.. warning:: Setting the socket permissions to 777 is a possible security problem. If you have untrusted users on your
- system or have high security requirements, please don't do this and let redis listen to a TCP socket
- instead. We recommend the socket approach because the TCP socket in combination with docker's networking
- can easily become an even worse security hole when configured slightly wrong. Read more about security
- on the `redis website`_.
-
- Another possible solution is to run `redis in docker`_ and link the containers using docker's networking
- features.
-
-Config file
------------
-
-We now create a config directory and config file for pretix::
-
- # mkdir /etc/pretix
- # touch /etc/pretix/pretix.cfg
- # chown -R 15371:15371 /etc/pretix/
- # chmod 0700 /etc/pretix/pretix.cfg
-
-Fill the configuration file ``/etc/pretix/pretix.cfg`` with the following content (adjusted to your environment)::
-
- [pretix]
- instance_name=My pretix installation
- url=https://pretix.mydomain.com
- currency=EUR
- ; DO NOT change the following value, it has to be set to the location of the
- ; directory *inside* the docker container
- datadir=/data
- trust_x_forwarded_for=on
- trust_x_forwarded_proto=on
-
- [database]
- backend=postgresql
- name=pretix
- user=pretix
- ; Replace with the password you chose above
- password=*********
- ; In most docker setups, 172.17.0.1 is the address of the docker host. Adjust
- ; this to wherever your database is running, e.g. the name of a linked container.
- host=172.17.0.1
-
- [mail]
- ; See config file documentation for more options
- from=tickets@yourdomain.com
- ; This is the default IP address of your docker host in docker's virtual
- ; network. Make sure postfix listens on this address.
- host=172.17.0.1
-
- [redis]
- location=unix:///var/run/redis/redis.sock?db=0
- ; Remove the following line if you are unsure about your redis' security
- ; to reduce impact if redis gets compromised.
- sessions=true
-
- [celery]
- backend=redis+socket:///var/run/redis/redis.sock?virtual_host=1
- broker=redis+socket:///var/run/redis/redis.sock?virtual_host=2
-
-See :ref:`email configuration ` to learn more about configuring mail features.
-
-Docker image and service
-------------------------
-
-First of all, download the latest stable pretix image by running::
-
- $ docker pull pretix/standalone:stable
-
-We recommend starting the docker container using systemd to make sure it runs correctly after a reboot. Create a file
-named ``/etc/systemd/system/pretix.service`` with the following content::
-
- [Unit]
- Description=pretix
- After=docker.service
- Requires=docker.service
-
- [Service]
- TimeoutStartSec=0
- ExecStartPre=-/usr/bin/docker kill %n
- ExecStartPre=-/usr/bin/docker rm %n
- ExecStart=/usr/bin/docker run --name %n -p 127.0.0.1:8345:80 \
- -v /var/pretix-data:/data \
- -v /etc/pretix:/etc/pretix \
- -v /var/run/redis:/var/run/redis \
- --sysctl net.core.somaxconn=4096 \
- pretix/standalone:stable all
- ExecStop=/usr/bin/docker stop %n
-
- [Install]
- WantedBy=multi-user.target
-
-You can now run the following commands
-to enable and start the service::
-
- # systemctl daemon-reload
- # systemctl enable pretix
- # systemctl start pretix
-
-Cronjob
--------
-
-You need to set up a cronjob that runs the management command ``runperiodic``. The exact interval is not important
-but should be something between every minute and every hour. You could for example configure cron like this::
-
- 15,45 * * * * /usr/bin/docker exec pretix.service pretix cron
-
-The cronjob may run as any user that can use the docker daemon.
-
-SSL
----
-
-The following snippet is an example on how to configure a nginx proxy for pretix::
-
- server {
- listen 80 default_server;
- listen [::]:80 ipv6only=on default_server;
- server_name pretix.mydomain.com;
- location / {
- return 301 https://$host$request_uri;
- }
- }
- server {
- listen 443 ssl default_server;
- listen [::]:443 ipv6only=on ssl default_server;
- server_name pretix.mydomain.com;
-
- ssl_certificate /path/to/cert.chain.pem;
- ssl_certificate_key /path/to/key.pem;
-
- location / {
- proxy_pass http://localhost:8345;
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
- proxy_set_header X-Forwarded-Proto https;
- proxy_set_header Host $http_host;
- }
- }
-
-
-We recommend reading about setting `strong encryption settings`_ for your web server.
-
-Next steps
-----------
-
-Yay, you are done! You should now be able to reach pretix at https://pretix.yourdomain.com/control/ and log in as
-*admin@localhost* with a password of *admin*. Don't forget to change that password! Create an organizer first, then
-create an event and start selling tickets!
-
-You should probably read :ref:`maintainance` next.
-
-.. _`docker_updates`:
-
-Updates
--------
-
-.. warning:: While we try hard not to break things, **please perform a backup before every upgrade**.
-
-Updates are fairly simple, but require at least a short downtime::
-
- # docker pull pretix/standalone:stable
- # systemctl restart pretix.service
- # docker exec -it pretix.service pretix upgrade
-
-Restarting the service can take a few seconds, especially if the update requires changes to the database.
-Replace ``stable`` above with a specific version number like ``1.0`` or with ``latest`` for the development
-version, if you want to.
-
-Make sure to also read :ref:`update_notes` and the release notes of the version you are updating to. Pay special
-attention to the "Runtime and server environment" section of all release notes between your current and new version.
-
-.. _`docker_plugininstall`:
-
-Install a plugin
-----------------
-
-To install a plugin, you need to build your own docker image. To do so, create a new directory and place a file
-named ``Dockerfile`` in it. The Dockerfile could look like this (replace ``pretix-passbook`` with the plugins of your
-choice)::
-
- FROM pretix/standalone:stable
- USER root
- RUN pip3 install pretix-passbook
- USER pretixuser
- RUN cd /pretix/src && make production
-
-Then, go to that directory and build the image::
-
- $ docker build . -t mypretix
-
-You can now use that image ``mypretix`` instead of ``pretix/standalone`` in your service file (see above). Be sure
-to re-build your custom image after you pulled ``pretix/standalone`` if you want to perform an update.
-
-Scaling up
-----------
-
-If you need to scale to multiple machines, please first read our :ref:`scaling guide `.
-
-If you run the official docker container on multiple machines, it is recommended to set the environment
-variable ``AUTOMIGRATE=skip`` on all containers and run ``docker exec -it pretix.service pretix migrate``
-on one machine after each upgrade manually, otherwise multiple containers might try to upgrade the
-database schema at the same time.
-
-To run only the ``pretix-web`` component of pretix as well as a nginx server serving static files, you
-can invoke the container with ``docker run … pretix/standalone:stable web`` (instead of ``all``). You
-can adjust the number of ``gunicorn`` processes with the ``NUM_WORKERS`` environment variable (defaults to
-two times the number of CPUs detected).
-
-To run only ``pretix-worker``, you can run ``docker run … pretix/standalone:stable taskworker``. You can
-also pass arguments to limit the worker to specific queues or to change the number of concurrent task
-workers, e.g. ``docker run … taskworker -Q notifications --concurrency 32``.
-
-
-.. _Docker: https://docs.docker.com/engine/installation/linux/debian/
-.. _Postfix: https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-postfix-as-a-send-only-smtp-server-on-ubuntu-22-04
-.. _nginx: https://botleg.com/stories/https-with-lets-encrypt-and-nginx/
-.. _Let's Encrypt: https://letsencrypt.org/
-.. _pretix.eu: https://pretix.eu/
-.. _PostgreSQL: https://www.digitalocean.com/community/tutorials/how-to-install-and-use-postgresql-on-ubuntu-22-04
-.. _redis: https://blog.programster.org/debian-8-install-redis-server/
-.. _ufw: https://en.wikipedia.org/wiki/Uncomplicated_Firewall
-.. _redis website: https://redis.io/topics/security
-.. _redis in docker: https://hub.docker.com/r/_/redis/
-.. _strong encryption settings: https://mozilla.github.io/server-side-tls/ssl-config-generator/
diff --git a/doc/admin/installation/enterprise.rst b/doc/admin/installation/enterprise.rst
deleted file mode 100644
index 7369532a92..0000000000
--- a/doc/admin/installation/enterprise.rst
+++ /dev/null
@@ -1,84 +0,0 @@
-.. highlight:: none
-
-Installing pretix Enterprise plugins
-====================================
-
-If you want to use a feature of pretix that is part of our commercial offering pretix Enterprise, you need to follow
-some extra steps. Installation works similar to normal pretix plugins, but involves a few extra steps.
-
-Buying the license
-------------------
-
-To obtain a license, please get in touch at sales@pretix.eu. Please let us know how many tickets you roughly intend
-to sell per year and how many servers you want to use the plugin on. We recommend having a look at our `price list`_
-first.
-
-
-Manual installation
--------------------
-
-First, generate an SSH key for the system user that you install pretix as. In our tutorial, that would be the user
-``pretix``. Choose an empty passphrase::
-
- # su pretix
- $ ssh-keygen
- Generating public/private rsa key pair.
- Enter file in which to save the key (/var/pretix/.ssh/id_rsa):
- Enter passphrase (empty for no passphrase):
- Enter same passphrase again:
- Your identification has been saved in /var/pretix/.ssh/id_rsa.
- Your public key has been saved in /var/pretix/.ssh/id_rsa.pub.
-
-Next, send the content of the *public* key to your sales representative at pretix::
-
- $ cat /var/pretix/.ssh/id_rsa.pub
- ssh-rsa AAAAB3N...744HZawHlD pretix@foo
-
-After we configured your key in our system, you can install the plugin directly using ``pip`` from the URL we told
-you, for example::
-
- $ source /var/pretix/venv/bin/activate
- (venv)$ pip3 install -U "git+ssh://git@code.rami.io:10022/pretix/pretix-slack.git@stable#egg=pretix-slack"
- (venv)$ python -m pretix migrate
- (venv)$ python -m pretix rebuild
- # systemctl restart pretix-web pretix-worker
-
-Docker installation
--------------------
-
-To install a plugin, you need to build your own docker image. To do so, create a new directory to work in. As a first
-step, generate a new SSH key in that directory to use for authentication with us::
-
- $ cd /home/me/mypretixdocker
- $ ssh-keygen -N "" -f id_pretix_enterprise
-
-Next, send the content of the *public* key to your sales representative at pretix::
-
- $ cat id_pretix_enterprise.pub
- ssh-rsa AAAAB3N...744HZawHlD pretix@foo
-
-After we configured your key in our system, you can add a ``Dockerfile`` in your directory that includes the newly
-generated key and installs the plugin from the URL we told you::
-
- FROM pretix/standalone:stable
- USER root
- COPY id_pretix_enterprise /root/.ssh/id_rsa
- COPY id_pretix_enterprise.pub /root/.ssh/id_rsa.pub
- RUN chmod -R 0600 /root/.ssh && \
- mkdir -p /etc/ssh && \
- ssh-keyscan -t rsa -p 10022 code.rami.io >> /root/.ssh/known_hosts && \
- echo StrictHostKeyChecking=no >> /root/.ssh/config && \
- DJANGO_SETTINGS_MODULE= pip3 install -U "git+ssh://git@code.rami.io:10022/pretix/pretix-slack.git@stable#egg=pretix-slack" && \
- cd /pretix/src && \
- sudo -u pretixuser make production
- USER pretixuser
-
-Then, build the image for docker::
-
- $ docker build -t mypretix
-
-You can now use that image ``mypretix`` instead of ``pretix/standalone:stable`` in your ``/etc/systemd/system/pretix.service``
-service file. Be sure to re-build your custom image after you pulled ``pretix/standalone`` if you want to perform an
-update to a new version of pretix.
-
-.. _price list: https://pretix.eu/about/en/pricing
diff --git a/doc/admin/installation/general.rst b/doc/admin/installation/general.rst
deleted file mode 100644
index 8985f543a6..0000000000
--- a/doc/admin/installation/general.rst
+++ /dev/null
@@ -1,39 +0,0 @@
-.. highlight:: ini
-
-.. spelling:word-list:: SQL
-
-General remarks
-===============
-
-Requirements
-------------
-To use pretix, you will need the following things:
-
-* **pretix** and the python packages it depends on
-
-* An **WSGI application server** (we recommend gunicorn)
-
-* A periodic task runner, e.g. ``cron``
-
-* **A database**. This needs to be a SQL-based that is supported by Django. We highly recommend to either
- go for **PostgreSQL**. If you do not provide one, pretix will run on SQLite, which is useful
- for evaluation and development purposes.
-
- .. warning:: Do not ever use SQLite in production. It will break.
-
-* A **reverse proxy**. pretix needs to deliver some static content to your users (e.g. CSS, images, ...). While pretix
- is capable of doing this, having this handled by a proper web server like **nginx** or **Apache** will be much
- faster. Also, you need a proxying web server in front to provide SSL encryption.
-
- .. warning:: Do not ever run without SSL in production. Your users deserve encrypted connections and thanks to
- `Let's Encrypt`_ SSL certificates can be obtained for free these days.
-
-* A **redis** server. This will be used for caching, session storage and task queuing.
-
- .. warning:: pretix can run without redis, however this is only intended for development and should never be
- used in production.
-
-* Optionally: RabbitMQ or memcached. Both of them might provide speedups, but if they are not present,
- redis will take over their job.
-
-.. _Let's Encrypt: https://letsencrypt.org/
diff --git a/doc/admin/installation/index.rst b/doc/admin/installation/index.rst
deleted file mode 100644
index 8fdbd9cf5b..0000000000
--- a/doc/admin/installation/index.rst
+++ /dev/null
@@ -1,17 +0,0 @@
-.. _`installation`:
-
-Installation guide
-==================
-
-We provide you with multiple installation guides for multiple types of setups so you can choose the one appropriate
-for your needs.
-
-.. toctree::
- :maxdepth: 1
-
- general
- docker_smallscale
- manual_smallscale
- dev_version
- enterprise
- community
diff --git a/doc/admin/installation/manual_smallscale.rst b/doc/admin/installation/manual_smallscale.rst
deleted file mode 100644
index 8411540555..0000000000
--- a/doc/admin/installation/manual_smallscale.rst
+++ /dev/null
@@ -1,346 +0,0 @@
-.. highlight:: none
-
-Small-scale manual deployment
-=============================
-
-This guide describes the installation of a small-scale installation of pretix from source. By small-scale, we mean
-that everything is being run on one host and you don't expect thousands of participants trying to get a ticket within
-a few minutes. In this setup, you will have to perform a number of manual steps. If you prefer using a container
-solution with many things readily set-up, look at :ref:`dockersmallscale`.
-
-.. warning:: Even though we try to make it straightforward to run pretix, it still requires some Linux experience to
- get it right. If you're not feeling comfortable managing a Linux server, check out our hosting and service
- offers at `pretix.eu`_.
-
-We tested this guide on the Linux distribution **Debian 12** but it should work very similar on other
-modern distributions, especially on all systemd-based ones.
-
-Requirements
-------------
-
-Please set up the following systems beforehand, we'll not explain them here in detail (but see these links for external
-installation guides):
-
-* A python 3.9+ installation
-* A SMTP server to send out mails, e.g. `Postfix`_ on your machine or some third-party server you have credentials for
-* A HTTP reverse proxy, e.g. `nginx`_ or Apache to allow HTTPS connections
-* A `PostgreSQL`_ 12+ database server
-* A `redis`_ server
-* A `nodejs`_ installation
-
-We also recommend that you use a firewall, although this is not a pretix-specific recommendation. If you're new to
-Linux and firewalls, we recommend that you start with `ufw`_.
-
-.. note:: Please, do not run pretix without HTTPS encryption. You'll handle user data and thanks to `Let's Encrypt`_
- SSL certificates can be obtained for free these days. We also *do not* provide support for HTTP-only
- installations except for evaluation purposes.
-
-Unix user
----------
-
-As we do not want to run pretix as root, we first create a new unprivileged user::
-
- # adduser pretix --disabled-password --home /var/pretix
-
-In this guide, all code lines prepended with a ``#`` symbol are commands that you need to execute on your server as
-``root`` user (e.g. using ``sudo``); all lines prepended with a ``$`` symbol should be run by the unprivileged user.
-
-Database
---------
-
-Having the database server installed, we still need a database and a database user. We can create these with any kind
-of database managing tool or directly on our database's shell. Please make sure that UTF8 is used as encoding for the
-best compatibility. You can check this with the following command::
-
- # sudo -u postgres psql -c 'SHOW SERVER_ENCODING'
-
-For PostgreSQL database creation, we would do::
-
- # sudo -u postgres createuser pretix
- # sudo -u postgres createdb -O pretix pretix
-
-Package dependencies
---------------------
-
-To build and run pretix, you will need the following debian packages::
-
- # apt-get install git build-essential python3-dev python3-venv python3 python3-pip \
- libxml2-dev libxslt1-dev libffi-dev zlib1g-dev libssl-dev \
- gettext libpq-dev libjpeg-dev libopenjp2-7-dev
-
-Config file
------------
-
-We now create a config directory and config file for pretix::
-
- # mkdir /etc/pretix
- # touch /etc/pretix/pretix.cfg
- # chown -R pretix:pretix /etc/pretix/
- # chmod 0600 /etc/pretix/pretix.cfg
-
-Fill the configuration file ``/etc/pretix/pretix.cfg`` with the following content (adjusted to your environment)::
-
- [pretix]
- instance_name=My pretix installation
- url=https://pretix.mydomain.com
- currency=EUR
- datadir=/var/pretix/data
- trust_x_forwarded_for=on
- trust_x_forwarded_proto=on
-
- [database]
- backend=postgresql
- name=pretix
- user=pretix
- ; For PostgreSQL on the same host, we don't need a password because we can use
- ; peer authentication if our PostgreSQL user matches our unix user.
- password=
- ; For local postgres authentication, you can leave it empty
- host=
-
- [mail]
- ; See config file documentation for more options
- from=tickets@yourdomain.com
- host=127.0.0.1
-
- [redis]
- location=redis://127.0.0.1/0
- sessions=true
-
- [celery]
- backend=redis://127.0.0.1/1
- broker=redis://127.0.0.1/2
-
-See :ref:`email configuration ` to learn more about configuring mail features.
-
-Install pretix from PyPI
-------------------------
-
-Now we will install pretix itself. The following steps are to be executed as the ``pretix`` user. Before we
-actually install pretix, we will create a virtual environment to isolate the python packages from your global
-python installation::
-
- # sudo -u pretix -s
- $ python3 -m venv /var/pretix/venv
- $ source /var/pretix/venv/bin/activate
- (venv)$ pip3 install -U pip setuptools wheel
-
-We now install pretix, its direct dependencies and gunicorn::
-
- (venv)$ pip3 install pretix gunicorn
-
-Note that you need Python 3.9 or newer. You can find out your Python version using ``python -V``.
-
-We also need to create a data directory and allow your webserver to traverse to the root directory::
-
- (venv)$ mkdir -p /var/pretix/data/media
- (venv)$ chmod +x /var/pretix
-
-Finally, we compile static files and translation data and create the database structure::
-
- (venv)$ python -m pretix migrate
- (venv)$ python -m pretix rebuild
-
-
-Start pretix as a service
--------------------------
-
-We recommend starting pretix using systemd to make sure it runs correctly after a reboot. Create a file
-named ``/etc/systemd/system/pretix-web.service`` with the following content::
-
- [Unit]
- Description=pretix web service
- After=network.target
-
- [Service]
- User=pretix
- Group=pretix
- Environment="VIRTUAL_ENV=/var/pretix/venv"
- Environment="PATH=/var/pretix/venv/bin:/usr/local/bin:/usr/bin:/bin"
- ExecStart=/var/pretix/venv/bin/gunicorn pretix.wsgi \
- --name pretix --workers 5 \
- --max-requests 1200 --max-requests-jitter 50 \
- --log-level=info --bind=127.0.0.1:8345
- WorkingDirectory=/var/pretix
- Restart=on-failure
-
- [Install]
- WantedBy=multi-user.target
-
-For background tasks we need a second service ``/etc/systemd/system/pretix-worker.service`` with the following content::
-
- [Unit]
- Description=pretix background worker
- After=network.target
-
- [Service]
- User=pretix
- Group=pretix
- Environment="VIRTUAL_ENV=/var/pretix/venv"
- Environment="PATH=/var/pretix/venv/bin:/usr/local/bin:/usr/bin:/bin"
- ExecStart=/var/pretix/venv/bin/celery -A pretix.celery_app worker -l info
- WorkingDirectory=/var/pretix
- Restart=on-failure
-
- [Install]
- WantedBy=multi-user.target
-
-You can now run the following commands to enable and start the services::
-
- # systemctl daemon-reload
- # systemctl enable pretix-web pretix-worker
- # systemctl start pretix-web pretix-worker
-
-
-Cronjob
--------
-
-You need to set up a cronjob that runs the management command ``runperiodic``. The exact interval is not important
-but should be something between every minute and every hour. You could for example configure cron like this::
-
- 15,45 * * * * export PATH=/var/pretix/venv/bin:$PATH && cd /var/pretix && python -m pretix runperiodic
-
-The cronjob should run as the ``pretix`` user (``crontab -e -u pretix``).
-
-SSL
----
-
-The following snippet is an example on how to configure a nginx proxy for pretix::
-
- server {
- listen 80 default_server;
- listen [::]:80 ipv6only=on default_server;
- server_name pretix.mydomain.com;
- location / {
- return 301 https://$host$request_uri;
- }
- }
- server {
- listen 443 ssl default_server;
- listen [::]:443 ipv6only=on ssl default_server;
- server_name pretix.mydomain.com;
-
- ssl_certificate /path/to/cert.chain.pem;
- ssl_certificate_key /path/to/key.pem;
-
- add_header Referrer-Policy same-origin;
- add_header X-Content-Type-Options nosniff;
-
- location / {
- proxy_pass http://localhost:8345;
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
- proxy_set_header X-Forwarded-Proto https;
- proxy_set_header Host $http_host;
- }
-
- location /media/ {
- alias /var/pretix/data/media/;
- expires 7d;
- access_log off;
- }
-
- location ^~ /media/cachedfiles {
- deny all;
- return 404;
- }
- location ^~ /media/invoices {
- deny all;
- return 404;
- }
-
- location /static/staticfiles.json {
- deny all;
- return 404;
- }
- location /static/CACHE/manifest.json {
- deny all;
- return 404;
- }
- location /static/ {
- alias /var/pretix/venv/lib/python3.11/site-packages/pretix/static.dist/;
- access_log off;
- expires 365d;
- add_header Cache-Control "public";
- }
- }
-
-.. note:: Remember to replace the ``python3.11`` in the ``/static/`` path in the config
- above with your python version.
-
-We recommend reading about setting `strong encryption settings`_ for your web server.
-
-Next steps
-----------
-
-Yay, you are done! You should now be able to reach pretix at https://pretix.yourdomain.com/control/ and log in as
-*admin@localhost* with a password of *admin*. Don't forget to change that password! Create an organizer first, then
-create an event and start selling tickets!
-
-You should probably read :ref:`maintainance` next.
-
-.. _`manual_updates`:
-
-Updates
--------
-
-.. warning:: While we try hard not to break things, **please perform a backup before every upgrade**.
-
-To upgrade to a new pretix release, pull the latest code changes and run the following commands::
-
- # sudo -u pretix -s
- $ source /var/pretix/venv/bin/activate
- (venv)$ pip3 install -U --upgrade-strategy eager pretix gunicorn
- (venv)$ python -m pretix migrate
- (venv)$ python -m pretix rebuild
- (venv)$ python -m pretix updateassets
- # systemctl restart pretix-web pretix-worker
-
-Make sure to also read :ref:`update_notes` and the release notes of the version you are updating to. Pay special
-attention to the "Runtime and server environment" section of all release notes between your current and new version.
-
-.. _`manual_plugininstall`:
-
-Install a plugin
-----------------
-
-To install a plugin, just use ``pip``! Depending on the plugin, you should probably apply database migrations and
-rebuild the static files afterwards. Replace ``pretix-passbook`` with the plugin of your choice in the following
-example::
-
- $ source /var/pretix/venv/bin/activate
- (venv)$ pip3 install pretix-passbook
- (venv)$ python -m pretix migrate
- (venv)$ python -m pretix rebuild
- # systemctl restart pretix-web pretix-worker
-
-System updates
---------------
-
-After system updates, such as updates to a new Ubuntu or Debian release, you might be using a new Python version.
-That's great, but requires some adjustments. First, adjust any old version paths in your nginx configuration file.
-Then, re-create your Python environment::
-
- $ source /var/pretix/venv/bin/activate
- (venv)$ pip3 freeze > /tmp/pip-backup.txt
- $ rm -rf /var/pretix/venv
- $ python3 -m venv /var/pretix/venv
- $ source /var/pretix/venv/bin/activate
- (venv)$ pip3 install -U pip wheel setuptools
- (venv)$ pip3 install -r /tmp/pip-backup.txt
-
-Then, proceed like after any plugin installation::
-
- (venv)$ python -m pretix migrate
- (venv)$ python -m pretix rebuild
- (venv)$ python -m pretix updateassets
- # systemctl restart pretix-web pretix-worker
-
-.. _Postfix: https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-postfix-as-a-send-only-smtp-server-on-ubuntu-22-04
-.. _nginx: https://botleg.com/stories/https-with-lets-encrypt-and-nginx/
-.. _Let's Encrypt: https://letsencrypt.org/
-.. _pretix.eu: https://pretix.eu/
-.. _PostgreSQL: https://www.digitalocean.com/community/tutorials/how-to-install-and-use-postgresql-on-ubuntu-22-04
-.. _redis: https://blog.programster.org/debian-8-install-redis-server/
-.. _ufw: https://en.wikipedia.org/wiki/Uncomplicated_Firewall
-.. _strong encryption settings: https://mozilla.github.io/server-side-tls/ssl-config-generator/
-.. _nodejs: https://github.com/nodesource/distributions/blob/master/README.md#deb
diff --git a/doc/admin/maintainance.rst b/doc/admin/maintainance.rst
deleted file mode 100644
index 10e16edced..0000000000
--- a/doc/admin/maintainance.rst
+++ /dev/null
@@ -1,114 +0,0 @@
-.. highlight:: ini
-
-.. _`maintainance`:
-
-Backups and Monitoring
-======================
-
-If you host your own pretix instance, you also need to care about the availability
-of your service and the safety of your data yourself. This page gives you some
-information that you might need to do so properly.
-
-.. _`backups`:
-
-Backups
--------
-
-There are essentially two things which you should create backups of:
-
-Database
- Your SQL database. This is critical and you should **absolutely always create automatic
- backups of your database**. There are tons of tutorials on the internet on how to do this,
- and the exact process depends on the choice of your database. For PostgreSQL, see the
- ``pg_dump`` tool. You probably want to create a cronjob that does the backups for you on a
- regular schedule.
-
-Data directory
- The data directory of your pretix configuration might contain some things that you should
- back up. If you did not specify a secret in your config file, back up the ``.secret`` text
- file in the data directory. If you lose your secret, all currently active user sessions,
- password reset links and similar things will be rendered invalid. Also, you probably want
- to backup the ``media`` subdirectory of the data directory which contains all user-uploaded
- and generated files. This includes files you could in theory regenerate (ticket downloads)
- but also files that you might be legally required to keep (invoice PDFs) or files that you
- would need to re-upload (event logos, product pictures, etc.). It is up to you if you
- create regular backups of this data, but we strongly advise you to do so. You can create
- backups e.g. using ``rsync``. There is a lot of information on the internet on how to create
- backups of folders on a Linux machine.
-
-There is no need to create backups of the redis database, if you use it. We only use it for
-non-critical, temporary or cached data.
-
-Uptime monitoring
------------------
-
-To monitor whether your pretix instance is running, you can issue a GET request to
-``https://pretix.mydomain.com/healthcheck/``. This endpoint tests if the connection to the
-database, to the configured cache and to redis (if used) is working correctly. If everything
-appears to work fine, an empty response with status code ``200`` is returned.
-If there is a problem, a status code in the ``5xx`` range will be returned.
-
-.. _`perf-monitoring`:
-
-Performance monitoring
-----------------------
-
-If you want to generate detailed performance statistics of your pretix installation, there is an
-endpoint at ``https://pretix.mydomain.com/metrics`` (no slash at the end) which returns a
-number of values in the text format understood by monitoring tools like Prometheus_. This data
-is only collected and exposed if you enable it in the :ref:`metrics-settings` section of your
-pretix configuration. You can also configure basic auth credentials there to protect your
-statistics against unauthorized access. The data is temporarily collected in redis, so the
-performance impact of this feature depends on the connection to your redis database.
-
-Currently, mostly response times of HTTP requests and background tasks are exposed.
-
-If you want to go even further, you can set the ``profile`` option in the :ref:`django-settings`
-section to a value between 0 and 1. If you set it for example to 0.1, then 10% of your requests
-(randomly selected) will be run with cProfile_ activated. The profiling results will be saved
-to your data directory. As this might impact performance significantly and writes a lot of data
-to disk, we recommend to only enable it for a small number of requests -- and only if you are
-really interested in the results.
-
-Available metrics
-^^^^^^^^^^^^^^^^^
-
-The metrics available in pretix follow the standard `metric types`_ from the Prometheus world.
-Currently, the following metrics are exported:
-
-pretix_view_requests_total
- Counter. Counts requests to Django views, labeled with the resolved ``url_name``, the used
- HTTP ``method`` and the ``status_code`` returned.
-
-pretix_view_durations_seconds
- Histogram. Measures duration of requests to Django views, labeled with the resolved
- ``url_name``, the used HTTP ``method`` and the ``status_code`` returned.
-
-pretix_task_runs_total
- Counter. Counts executions of background tasks, labeled with the ``task_name`` and the
- ``status``. The latter can be ``success``, ``error`` or ``expected-error``.
-
-pretix_task_duration_seconds
- Histogram. Measures duration of successful background task executions, labeled with the
- ``task_name``.
-
-pretix_model_instances
- Gauge. Measures number of instances of a certain model within the database, labeled with
- the ``model`` name. Starting with pretix 3.11, these numbers might only be approximate for
- most tables when running on PostgreSQL to mitigate performance impact.
-
-pretix_celery_tasks_queued_count
- The number of background tasks in the worker queue, labeled with ``queue``.
-
-pretix_celery_tasks_queued_age_seconds
- The age of the longest-waiting in the worker queue in seconds, labeled with ``queue``.
-
-pretix_logins_successful
- Counter. The number of successful backend logins.
-
-pretix_logins_failed
- Counter. The number of failed backend logins, labeled with ``reason``.
-
-.. _metric types: https://prometheus.io/docs/concepts/metric_types/
-.. _Prometheus: https://prometheus.io/
-.. _cProfile: https://docs.python.org/3/library/profile.html
diff --git a/doc/admin/mysql2postgres.rst b/doc/admin/mysql2postgres.rst
deleted file mode 100644
index 55fef67a87..0000000000
--- a/doc/admin/mysql2postgres.rst
+++ /dev/null
@@ -1,261 +0,0 @@
-.. highlight:: none
-
-Migrating from MySQL/MariaDB to PostgreSQL
-==========================================
-
-Our recommended database for all production installations is PostgreSQL. Support for MySQL/MariaDB has been removed
-in newer pretix releases.
-
-In order to follow this guide, your pretix installation needs to be a version that fully supports MySQL/MariaDB. If you
-already upgraded to pretix 5.0 or later, downgrade back to the last 4.x release using ``pip``.
-
-.. note:: We have tested this guide carefully, but we can't assume any liability for its correctness. The data loss
- risk should be low as long as pretix is not running while you do the migration. If you are a pretix Enterprise
- customer, feel free to reach out in advance if you want us to support you along the way.
-
-Update database schema
-----------------------
-
-Before you start, make sure your database schema is up to date. With a local installation::
-
- # sudo -u pretix -s
- $ source /var/pretix/venv/bin/activate
- (venv)$ python -m pretix migrate
-
-With a docker installation::
-
- docker exec -it pretix.service pretix migrate
-
-
-Install PostgreSQL
-------------------
-
-Now, install and set up a PostgreSQL server. For a local installation on Debian or Ubuntu, use::
-
- # apt install postgresql
-
-Having the database server installed, we still need a database and a database user. We can create these with any kind
-of database managing tool or directly on our database's shell. Please make sure that UTF8 is used as encoding for the
-best compatibility. You can check this with the following command::
-
- # sudo -u postgres psql -c 'SHOW SERVER_ENCODING'
-
-Without Docker
-""""""""""""""
-
-For our standard manual installation, create the database and user like this::
-
- # sudo -u postgres createuser pretix
- # sudo -u postgres createdb -O pretix pretix
-
-With Docker
-"""""""""""
-
-For our standard docker installation, create the database and user like this::
-
- # sudo -u postgres createuser -P pretix
- # sudo -u postgres createdb -O pretix pretix
-
-Make sure that your database listens on the network. If PostgreSQL on the same same host as docker, but not inside a docker container, we recommend that you listen on the Docker interface by changing the following line in ``/etc/postgresql//main/postgresql.conf``::
-
- listen_addresses = 'localhost,172.17.0.1'
-
-You also need to add a new line to ``/etc/postgresql//main/pg_hba.conf`` to allow network connections to this user and database::
-
- host pretix pretix 172.17.0.1/16 md5
-
-Restart PostgreSQL after you changed these files::
-
- # systemctl restart postgresql
-
-If you have a firewall running, you should also make sure that port 5432 is reachable from the ``172.17.0.1/16`` subnet.
-
-Of course, instead of all this you can also run a PostgreSQL docker container and link it to the pretix container.
-
-Stop pretix
------------
-
-To prevent any more changes to your data, stop pretix from running. With a local installation::
-
- # systemctl stop pretix-web pretix-worker
-
-With docker::
-
- # systemctl stop pretix
-
-Change configuration
---------------------
-
-Change the database configuration in your ``/etc/pretix/pretix.cfg`` file::
-
- [database]
- backend=postgresql
- name=pretix
- user=pretix
- password= ; only required for docker or remote database, can be kept empty for local auth
- host= ; set to 172.17.0.1 in docker setup, keep empty for local auth
-
-
-Create database schema
------------------------
-
-To create the schema in your new PostgreSQL database, use the following commands. With a local installation::
-
- # sudo -u pretix -s
- $ source /var/pretix/venv/bin/activate
- (venv)$ python -m pretix migrate
-
-With docker::
-
- # docker run --rm -v /var/pretix-data:/data -v /etc/pretix:/etc/pretix -v /var/run/redis:/var/run/redis pretix/standalone:stable migrate
-
-
-Migrate your data
------------------
-
-Install ``pgloader``::
-
- # apt install pgloader
-
-.. note::
-
- If you are using Ubuntu 20.04, the ``pgloader`` version from the repositories seems to be incompatible with PostgreSQL
- 12+. You can install ``pgloader`` from the `PostgreSQL repositories`_ instead.
- See also `this discussion `_.
-
-Create a new file ``/tmp/pretix.load``, replacing the MySQL and PostgreSQL connection strings with the correct user names, passwords, and/or database names::
-
- LOAD DATABASE
- FROM mysql://pretix:password@localhost/pretix -- replace with mysql://username:password@hostname/dbname
- INTO postgresql:///pretix -- replace with dbname
-
- WITH data only, include no drop, truncate, disable triggers,
- create no indexes, drop indexes, reset sequences
-
- ALTER SCHEMA 'pretix' RENAME TO 'public' -- replace pretix with the name of the MySQL database
-
- ALTER TABLE NAMES MATCHING ~/.*/
- SET SCHEMA 'public'
-
- SET timezone TO '+00:00'
-
- SET PostgreSQL PARAMETERS
- maintenance_work_mem to '128MB',
- work_mem to '12MB';
-
-Then, run::
-
- # sudo -u postgres pgloader /tmp/pretix.load
-
-The output should end with a table summarizing the results for every table. You can ignore warnings about type casts
-and missing constraints.
-
-Afterwards, delete the file again::
-
- # rm -rf /tmp/pretix.load
-
-Start pretix
-------------
-
-Stop your MySQL server as a verification step that you are no longer using it::
-
- # systemctl stop mariadb
-
-Then, restart pretix. With a local installation::
-
- # systemctl start pretix-web pretix-worker
-
-With a docker installation::
-
- # systemctl start pretix
-
-And you're done! After you've verified everything has been copied correctly, you can delete the old MySQL database.
-
-.. note:: Don't forget to update your backup process to back up your PostgreSQL database instead of your MySQL database now.
-
-Troubleshooting
----------------
-
-Peer authentication failed
-""""""""""""""""""""""""""
-
-Sometimes you might see an error message like this::
-
- django.db.utils.OperationalError: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: FATAL: Peer authentication failed for user "pretix"
-
-It is important to understand that PostgreSQL by default offers two types of authentication:
-
-- **Peer authentication**, which works automatically based on the Linux user you are working as. This requires that
- the connection is made through a local socket (empty ``host=`` in ``pretix.cfg``) and the name of the PostgreSQL user
- and the Linux user are identical.
-
- - Typically, you might run into this error if you accidentally execute ``python -m pretix`` commands as root instead
- of the ``pretix`` user.
-
-- **Password authentication**, which requires a username and password and works over network connections. To force
- password authentication instead of peer authentication, set ``host=127.0.0.1`` in ``pretix.cfg``.
-
- - You can alter the password on a PostgreSQL shell using the command ``ALTER USER pretix WITH PASSWORD '***';``.
- When creating a user with the ``createuser`` command, pass option ``-P`` to set a new password.
-
- - Even with password authentication, PostgreSQL by default only allows local connections. To allow remote connections,
- you need to adjust both the ``listen_address`` configuration parameter as well as the ``pg_hba.conf`` file (see above
- for an example with the docker networking setup).
-
-Database error: relation does not exist
-"""""""""""""""""""""""""""""""""""""""
-
-If you see an error like this::
-
- 2023-04-17T19:20:47.744023Z ERROR Database error 42P01: relation "public.pretix_foobar" does not exist
- QUERY: ALTER TABLE public.pretix_foobar DROP CONSTRAINT IF EXISTS pretix_foobar_order_id_57e2cb41_fk_pretixbas CASCADE;
- 2023-04-17T19:20:47.744023Z FATAL Failed to create the schema, see above.
-
-The reason is most likely that in the past, you installed a pretix plugin that you no longer have installed. However,
-the database still contains tables of that plugin. If you want to keep the data, reinstall the plugin and re-run the
-``migrate`` step from above. If you want to get rid of the data, manually drop the table mentioned in the error message
-from your MySQL database::
-
- # mysql -u root pretix
- mysql> DROP TABLE pretix_foobar;
-
-Then, retry. You might see a new error message with a new table, which you can handle the same way.
-
-Cleaning out a failed attempt
-"""""""""""""""""""""""""""""
-
-You might want to clean your PostgreSQL database before you try again after an error. You can do so like this::
-
- # sudo -u postgres psql pretix
- pretix=# DROP SCHEMA public CASCADE;
- pretix=# CREATE SCHEMA public;
- pretix=# ALTER SCHEMA public OWNER TO pretix;
-
-``pgloader`` crashes with heap exhaustion error
-"""""""""""""""""""""""""""""""""""""""""""""""
-
-On some larger databases, we've seen ``pgloader`` crash with error messages similar to this::
-
- Heap exhausted during garbage collection: 16 bytes available, 48 requested.
-
-Or this::
-
- 2021-01-04T21:31:17.367000Z ERROR A SB-KERNEL::HEAP-EXHAUSTED-ERROR condition without bindings for heap statistics. (If
- you did not expect to see this message, please report it.
- 2021-01-04T21:31:17.382000Z ERROR The value
- NIL
- is not of type
- NUMBER
- when binding SB-KERNEL::X
-
-The ``pgloader`` version distributed for Debian and Ubuntu is compiled with the ``SBCL`` compiler. If compiled with
-``CCL``, these bugs go away. Unfortunately, it is pretty hard to compile ``pgloader`` manually with ``CCL``. If you
-run into this, we therefore recommend using the docker container provided by the ``pgloader`` maintainers::
-
- sudo docker run --rm -v /tmp:/tmp --network host -it dimitri/pgloader:ccl.latest pgloader /tmp/pretix.load
-
-As peer authentication is not available from inside the container, this requires you to use password-based authentication
-in PostgreSQL (see above).
-
-
-.. _PostgreSQL repositories: https://wiki.postgresql.org/wiki/Apt
diff --git a/doc/admin/scaling.rst b/doc/admin/scaling.rst
deleted file mode 100644
index fc112b1d5f..0000000000
--- a/doc/admin/scaling.rst
+++ /dev/null
@@ -1,236 +0,0 @@
-.. _`scaling`:
-
-Scaling guide
-=============
-
-Our :ref:`installation guide ` only covers "small-scale" setups, by which we mostly mean
-setups that run on a **single (virtual) machine** and do not encounter large traffic peaks.
-
-We do not offer an installation guide for larger-scale setups of pretix, mostly because we believe that
-there is no one-size-fits-all solution for this and the desired setup highly depends on your use case,
-the platform you run pretix on, and your technical capabilities. We do not recommend trying set up pretix
-in a multi-server environment if you do not already have experience with managing server clusters.
-
-This document is intended to give you a general idea on what issues you will encounter when you scale up
-and what you should think of.
-
-.. tip::
-
- If you require more help on this, we're happy to help. Our pretix Enterprise support team has built
- and helped building, scaling and load-testing pretix installations at any scale and we're looking
- forward to work with you on fine-tuning your system. If you intend to sell **more than a thousand
- tickets in a very short amount of time**, we highly recommend reaching out and at least talking this
- through. Just get in touch at sales@pretix.eu!
-
-Scaling reasons
----------------
-
-There are two main reasons for scaling up a pretix installation beyond a single server:
-
-* **Availability:** Distributing pretix over multiple servers can allow you to survive failure of one or more single machines, leading to a higher uptime and reliability of your system.
-
-* **Traffic and throughput:** Distributing pretix over multiple servers can allow you to process more web requests and ticket sales at the same time.
-
-You are very unlikely to require scaling for other reasons, such as having too much data in your database.
-
-Components
-----------
-
-A pretix installation usually consists of the following components which run performance-relevant processes:
-
-* ``pretix-web`` is the Django-based web application that serves all user interaction.
-
-* ``pretix-worker`` is a Celery-based application that processes tasks that should be run asynchronously outside of the web application process.
-
-* A **PostgreSQL database** keeps all the important data and processes the actual transactions.
-
-* A **web server** that terminates TLS and HTTP connections and forwards them to ``pretix-web``. In some cases, e.g. when serving static files, the web servers might return a response directly. We recommend using ``nginx``.
-
-* A **redis** server responsible for the communication between ``pretix-web`` and ``pretix-worker``, as well as for caching.
-
-* A directory of **media files** such as user-uploaded files or generated files (tickets, invoices, …) that are created and used by ``pretix-web``, ``pretix-worker`` and the web server.
-
-In the following, we will discuss the scaling behavior of every component individually. In general, you can run all of the components
-on the same server, but you can just as well distribute every component to its own server, or even use multiple servers for some single
-components.
-
-.. warning::
-
- When setting up your system, don't forget about security. In a multi-server environment,
- you need to take special care to ensure that no unauthorized access to your database
- is possible through the network and that it's not easy to wiretap your connections. We
- recommend a rigorous use of firewalls and encryption on all communications. You can
- ensure this either on an application level (such as using the TLS support in your
- database) or on a network level with a VPN solution.
-
-Web server
-""""""""""
-
-Your web server is at the very front of your installation. It will need to absorb all of the traffic, and it should be able to
-at least show a decent error message, even when everything else fails. Luckily, web servers are really fast these days, so this
-can be achieved without too much work.
-
-We recommend reading up on tuning your web server for high concurrency. For nginx, this means thinking about the number of worker
-processes and the number of connections each worker process accepts. Double-check that TLS session caching works, because TLS
-handshakes can get really expensive.
-
-During a traffic peak, your web server will be able to make use of more CPU resources, while memory usage will stay comparatively low,
-so if you invest in more hardware here, invest in more and faster CPU cores.
-
-Make sure that pretix' static files (such as CSS and JavaScript assets) as well as user-uploaded media files (event logos, etc)
-are served directly by your web server and your web server caches them in-memory (nginx does it by default) and sets useful
-headers for client-side caching. As an additional performance improvement, you can turn of access logging for these types of files.
-If you want, you can even farm out serving static files to a different web server entirely and :ref:`configure pretix to reference
-them from a different URL `.
-
-.. tip::
-
- If you expect *really high traffic* for your very popular event, you might want to do some rate limiting on this layer, or,
- if you want to ensure a fair and robust first-come-first-served experience and prefer letting users wait over showing them
- errors, consider a queuing solution. We're happy to provide you with such systems, just get in touch at sales@pretix.eu.
-
-pretix-web
-""""""""""
-
-The ``pretix-web`` process does not carry any internal state and can be easily started on as many machines as you like, and you can
-use the load balancing features of your frontend web server to redirect to all of them.
-
-You can adjust the number of processes in the ``gunicorn`` command line, and we recommend choosing roughly two times the number
-of CPU cores available. Under load, the memory consumption of ``pretix-web`` will stay comparatively constant, while the CPU usage
-will increase a lot. Therefore, if you can add more or faster CPU cores, you will be able to serve more users.
-
-pretix-worker
-"""""""""""""
-
-The ``pretix-worker`` process performs all operations that are not directly executed in the request-response-cycle of ``pretix-web``.
-Just like ``pretix-web`` you can easily start up as many instances as you want on different machines to share the work. As long as they
-all talk to the same redis server, they will all receive tasks from ``pretix-web``, work on them and post their result back.
-You can configure the number of threads that run tasks in parallel through the ``--concurrency`` command line option of ``celery``.
-
-Just like ``pretix-web``, this process is mostly heavy on CPU, disk IO and network IO, although memory peaks can occur e.g. during the
-generation of large PDF files, so we recommend having some reserves here.
-
-``pretix-worker`` performs a variety of tasks which are of different importance.
-Some of them are mission-critical and need to be run quickly even during high load (such as
-creating a cart or an order), others are irrelevant and can easily run later (such as
-distributing tickets on the waiting list). You can fine-tune the capacity you assign to each
-of these tasks by running ``pretix-worker`` processes that only work on a specific **queue**.
-For example, you could have three servers dedicated only to process order creations and one
-server dedicated only to sending emails. This allows you to set priorities and also protects
-you from e.g. a slow email server lowering your ticket throughput.
-
-You can do so by specifying one or more queues on the ``celery`` command line of this process, such as ``celery -A pretix.celery_app worker -Q notifications,mail``. Currently,
-the following queues exist:
-
-* ``checkout`` -- This queue handles everything related to carts and orders and thereby everything required to process a sale. This includes adding and deleting items from carts as well as creating and canceling orders.
-
-* ``mail`` -- This queue handles sending of outgoing emails.
-
-* ``notifications`` -- This queue handles the processing of any outgoing notifications, such as email notifications to admin users (except for the actual sending) or API notifications to registered webhooks.
-
-* ``background`` -- This queue handles tasks that are expected to take long or have no human waiting for their result immediately, such as refreshing caches, re-generating CSS files, assigning tickets on the waiting list or parsing bank data files.
-
-* ``default`` -- This queue handles everything else with "medium" or unassigned priority, most prominently the generation of files for tickets, invoices, badges, admin exports, etc.
-
-Media files
-"""""""""""
-
-Both ``pretix-web``, ``pretix-worker`` and in some cases your webserver need to work with
-media files. Media files are all files generated *at runtime* by the software. This can
-include files uploaded by the event organizers, such as the event logo, files uploaded by
-ticket buyers (if you use such features) or files generated by the software, such as
-ticket files, invoice PDFs, data exports or customized CSS files.
-
-Those files are by default stored to the ``media/`` sub-folder of the data directory given
-in the ``pretix.cfg`` configuration file. Inside that ``media/`` folder, you will find a
-``pub/`` folder containing the subset of files that should be publicly accessible through
-the web server. Everything else only needs to be accessible by ``pretix-web`` and
-``pretix-worker`` themselves.
-
-If you distribute ``pretix-web`` or ``pretix-worker`` across more than one machine, you
-**must** make sure that they all have access to a shared storage to read and write these
-files, otherwise you **will** run into errors with the user interface.
-
-The easiest solution for this is probably to store them on a NFS server that you mount
-on each of the other servers.
-
-Since we use Django's file storage mechanism internally, you can in theory also use an object-storage solution like Amazon S3, Ceph, or Minio to store these files, although we currently do not expose this through pretix' configuration file and this would require you to ship your own variant of ``pretix/settings.py`` and reference it through the ``DJANGO_SETTINGS_MODULE`` environment variable.
-
-At pretix.eu, we use a custom-built `object storage cluster`_.
-
-SQL database
-""""""""""""
-
-One of the most critical parts of the whole setup is the SQL database -- and certainly the
-hardest to scale. Tuning relational databases is an art form, and while there's lots of
-material on it on the internet, there's not a single recipe that you can apply to every case.
-
-As a general rule of thumb, the more resources you can give your databases, the better.
-Most databases will happily use all CPU cores available, but only use memory up to an amount
-you configure, so make sure to set this memory usage as high as you can afford. Having more
-memory available allows your database to make more use of caching, which is usually good.
-
-Scaling your database to multiple machines needs to be treated with great caution. It's a
-good idea to have a replica of your database for availability reasons. In case your primary
-database server fails, you can easily switch over to the replica and continue working.
-
-However, using database replicas for performance gain is much more complicated. When using
-replicated database systems, you are always trading in consistency or availability to get
-additional performance and the consequences of this can be subtle. It is important
-that you have a deep understanding of the semantics of your replication mechanism.
-
-.. warning::
-
- Using an off-the-shelf database proxy solution that redirects read queries to your
- replicas and write queries to your primary database **will lead to very nasty bugs.**
-
- As an example, if you buy a ticket, pretix first needs to calculate how many tickets
- are left to sell. If this calculation is done on a database replica that lags behind
- even for fractions of a second, the decision to allow selling the ticket will be made
- on stale data and you can end up with more tickets sold than configured. Similarly,
- you could imagine situations leading to double payments etc.
-
-If you do have a replica, you *can* tell pretix about it :ref:`in your configuration `.
-This way, pretix can offload complex read-only queries to the replica when it is safe to do so.
-As of pretix 2.7, this is mainly used for search queries in the backend and for rendering the
-product list and event lists in the frontend, but we plan on expanding this in the future.
-
-Therefore, for now our clear recommendation is: Try to scale your database vertically and put
-it on the most powerful machine you have available.
-
-redis
-"""""
-
-While redis is a very important part that glues together some of the components, it isn't used
-heavily and can usually handle a fairly large pretix installation easily on a single modern
-CPU core.
-Having some memory available is good, e.g. if lots of tasks queue up during a traffic peak, but we wouldn't expect ever needing more than a gigabyte of it.
-
-Feel free to set up a redis cluster for availability – but you probably won't need it for performance.
-
-The limitations
----------------
-
-Up to a certain point, pretix scales really well. However, there are a few things that we consider
-even more important than scalability, and those are correctness and reliability. We want you to be
-able to trust that pretix will not sell more tickets than you intended or run into similar error
-cases.
-
-Combined with pretix' flexibility and complexity, especially around vouchers and quotas, this creates
-some hard issues. In many cases, we need to fall back to event-global locking for some actions which
-are likely to run with high concurrency and cause harm.
-
-For every event, only one of these locking actions can be run at the same time. Examples for this are
-adding products limited by a quota to a cart, adding items to a cart using a voucher or placing an order
-consisting of cart positions that don't have a valid reservation for much longer. In these cases, it is
-currently not realistically possible to exceed selling **approx. 500 orders per minute per event**, even
-if you add more hardware.
-If you have an unlimited number of tickets, we can apply fewer locking and we've reached **approx.
-1500 orders per minute per event** in benchmarks, although even more should be possible.
-
-We're working on reducing the number of cases in which this is relevant and thereby improve the possible
-throughput. If you want to use pretix for an event with 10,000+ tickets that are likely to be sold out
-within minutes, please get in touch to discuss possible solutions. We'll work something out for you!
-
-
-.. _object storage cluster: https://behind.pretix.eu/2018/03/20/high-available-cdn/
diff --git a/doc/admin/updates.rst b/doc/admin/updates.rst
deleted file mode 100644
index eaeaeadd83..0000000000
--- a/doc/admin/updates.rst
+++ /dev/null
@@ -1,83 +0,0 @@
-.. _`update_notes`:
-
-Update notes
-============
-
-pretix receives regular feature and bugfix updates and we highly encourage you to always update to
-the latest version for maximum quality and security. Updates are announces on our `blog`_. There are
-usually 10 feature updates in a year, so you can expect a new release almost every month.
-
-Pure bugfix releases are only issued in case of very critical bugs or security vulnerabilities. In these
-case, we'll publish bugfix releases for the last three stable release branches.
-
-Compatibility to plugins and in very rare cases API clients may break. For in-depth details on the
-API changes of every version, please refer to the release notes published on our blog.
-
-Upgrade steps
--------------
-
-For the actual upgrade, you can usually just follow the steps from the installation guide for :ref:`manual installations `
-or :ref:`docker installations ` respectively.
-Generally, it is always strongly recommended to perform a :ref:`backup ` first.
-It is possible to skip versions during updates, although we recommend not skipping over major version numbers
-(i.e. if you want to go from 2.4 to 4.4, first upgrade to 3.0, then upgrade to 4.0, then to 4.4).
-
-In addition to these standard update steps, the following list issues steps that should be taken when you upgrade
-to specific versions for pretix. If you're skipping versions, please read the instructions for every version in
-between as well.
-
-Upgrade to 3.17.0 or newer
-""""""""""""""""""""""""""
-
-pretix 3.17 introduces a dependency on ``nodejs``, so you should install it on your system::
-
- # apt install nodejs npm
-
-Upgrade to 4.4.0 or newer
-"""""""""""""""""""""""""
-
-pretix 4.4 introduces a new data structure to store historical financial data. If you already have existing
-data in your database, you will need to back-fill this data or you might get incorrect reports! This is not
-done automatically as part of the usual update steps since it can take a while on large databases and you might
-want to do it in parallel while the system is already running again. Please execute the following command::
-
- (venv)$ python -m pretix create_order_transactions
-
-Or, with a docker installation::
-
- $ docker exec -it pretix.service pretix create_order_transactions
-
-Upgrade to 2023.6.0 or newer
-""""""""""""""""""""""""""""
-
-MariaDB and MySQL are no longer supported.
-
-Upgrade to 2023.8.0 or newer
-""""""""""""""""""""""""""""
-
-PostgreSQL 11 is now required.
-
-Upgrade to 2023.9.0 or newer
-""""""""""""""""""""""""""""
-
-This release includes a migration that changes the `id` column of all core database tables from `integer`
-to `bigint`. If you have a large database, the migration step of the upgrade might take significantly longer than
-usual, so plan the update accordingly.
-
-The default value for the `registration` setting in `pretix.cfg` has changed to `false`.
-
-Upgrade to 2023.10.0 or newer
-"""""""""""""""""""""""""""""
-
-This release includes a migration that changes retroactively fills an `organizer` column in the table
-`pretixbase_logentry`. If you have a large database, the migration step of the upgrade might take significantly
-longer than usual, so plan the update accordingly.
-
-Upgrade to 2024.7.0 or newer
-"""""""""""""""""""""""""""""
-
-This release includes a migration that changes how sales channels are referred on orders.
-If you have a large database, the migration step of the upgrade might take significantly longer than usual, so plan
-the update accordingly.
-
-.. _blog: https://pretix.eu/about/en/blog/
diff --git a/doc/plugins/badges.rst b/doc/api/resources/badges.rst
similarity index 97%
rename from doc/plugins/badges.rst
rename to doc/api/resources/badges.rst
index e46ab7e919..ea0307b330 100644
--- a/doc/plugins/badges.rst
+++ b/doc/api/resources/badges.rst
@@ -1,7 +1,7 @@
Badges
======
-The badges plugin provides a HTTP API that exposes the various layouts used to generate PDF badges.
+The built-in badges plugin provides a HTTP API that exposes the various layouts used to generate PDF badges.
Resource description
--------------------
diff --git a/doc/plugins/banktransfer.rst b/doc/api/resources/banktransfer.rst
similarity index 98%
rename from doc/plugins/banktransfer.rst
rename to doc/api/resources/banktransfer.rst
index e0cc1c1dd4..2be0b25b4b 100644
--- a/doc/plugins/banktransfer.rst
+++ b/doc/api/resources/banktransfer.rst
@@ -1,7 +1,7 @@
-Bank transfer HTTP API
-======================
+Bank transfer
+=============
-The banktransfer plugin provides a HTTP API that `pretix-banktool`_ uses to send bank
+The built-in banktransfer plugin provides a HTTP API that `pretix-banktool`_ uses to send bank
transactions to the pretix server. This API is integrated with the regular :ref:`rest-api`
and therefore follows the conventions listed there.
diff --git a/doc/plugins/campaigns.rst b/doc/api/resources/campaigns.rst
similarity index 98%
rename from doc/plugins/campaigns.rst
rename to doc/api/resources/campaigns.rst
index e47e1cbcc3..9465db62fd 100644
--- a/doc/plugins/campaigns.rst
+++ b/doc/api/resources/campaigns.rst
@@ -1,6 +1,8 @@
Campaigns
=========
+.. note:: This API is only available when the plugin **pretix-campaigns** is installed (pretix Hosted and Enterprise only).
+
The campaigns plugin provides a HTTP API that allows you to create new campaigns.
Resource description
diff --git a/doc/plugins/certificates.rst b/doc/api/resources/certificates.rst
similarity index 95%
rename from doc/plugins/certificates.rst
rename to doc/api/resources/certificates.rst
index 4e313325c5..243af4f871 100644
--- a/doc/plugins/certificates.rst
+++ b/doc/api/resources/certificates.rst
@@ -1,6 +1,8 @@
Certificates of attendance
==========================
+.. note:: This API is only available when the plugin **pretix-certificates** is installed (pretix Hosted and Enterprise only).
+
The certificates plugin provides a HTTP API that allows you to download the certificate for a specific attendee.
diff --git a/doc/plugins/digital.rst b/doc/api/resources/digital.rst
similarity index 99%
rename from doc/plugins/digital.rst
rename to doc/api/resources/digital.rst
index e468b3ae5a..c43b2c3f95 100644
--- a/doc/plugins/digital.rst
+++ b/doc/api/resources/digital.rst
@@ -1,6 +1,8 @@
Digital content
===============
+.. note:: This API is only available when the plugin **pretix-digital** is installed (pretix Hosted and Enterprise only).
+
URL interpolation and JWT authentication
----------------------------------------
diff --git a/doc/plugins/exhibitors.rst b/doc/api/resources/exhibitors.rst
similarity index 99%
rename from doc/plugins/exhibitors.rst
rename to doc/api/resources/exhibitors.rst
index de74095739..c7bf9f5bcf 100644
--- a/doc/plugins/exhibitors.rst
+++ b/doc/api/resources/exhibitors.rst
@@ -1,6 +1,8 @@
Exhibitors
==========
+.. note:: This API is only available when the plugin **pretix-exhibitors** is installed (pretix Hosted and Enterprise only).
+
The exhibitors plugin allows to manage exhibitors at your trade show or conference. After signing up your exhibitors
in the system, you can assign vouchers to exhibitors and give them access to the data of these vouchers. The exhibitors
module is also the basis of the pretixLEAD lead scanning application.
diff --git a/doc/plugins/imported_secrets.rst b/doc/api/resources/imported_secrets.rst
similarity index 98%
rename from doc/plugins/imported_secrets.rst
rename to doc/api/resources/imported_secrets.rst
index 75568bde47..ee667f0c09 100644
--- a/doc/plugins/imported_secrets.rst
+++ b/doc/api/resources/imported_secrets.rst
@@ -1,6 +1,8 @@
Secrets Import
==============
+.. note:: This API is only available when the plugin **pretix-secrets-import** is installed (pretix Hosted and Enterprise only).
+
Usually, pretix generates ticket secrets (i.e. the QR code used for scanning) itself. You can read more about this
process at :ref:`secret_generators`.
diff --git a/doc/api/resources/index.rst b/doc/api/resources/index.rst
index b9d5187acf..8e6e6f8fc0 100644
--- a/doc/api/resources/index.rst
+++ b/doc/api/resources/index.rst
@@ -22,6 +22,7 @@ at :ref:`plugin-docs`.
questions
question_options
quotas
+ seats
orders
invoices
vouchers
@@ -43,8 +44,16 @@ at :ref:`plugin-docs`.
exporters
scheduled_exports
shredders
+ banktransfer
+ ticketoutputpdf
+ badges
sendmail_rules
auto_checkin_rules
+ campaigns
+ certificates
+ digital
+ exhibitors
+ imported_secrets
+ shipping
billing_invoices
billing_var
- seats
diff --git a/doc/plugins/shipping.rst b/doc/api/resources/shipping.rst
similarity index 98%
rename from doc/plugins/shipping.rst
rename to doc/api/resources/shipping.rst
index 875c3f6647..068d32236b 100644
--- a/doc/plugins/shipping.rst
+++ b/doc/api/resources/shipping.rst
@@ -1,6 +1,8 @@
Shipping
========
+.. note:: This API is only available when the plugin **pretix-shipping** is installed (pretix Hosted and Enterprise only).
+
The shipping plugin provides a HTTP API that exposes the various layouts used to generate PDF badges.
Shipping address resource
diff --git a/doc/plugins/ticketoutputpdf.rst b/doc/api/resources/ticketoutputpdf.rst
similarity index 99%
rename from doc/plugins/ticketoutputpdf.rst
rename to doc/api/resources/ticketoutputpdf.rst
index d784d89bcf..3622209b54 100644
--- a/doc/plugins/ticketoutputpdf.rst
+++ b/doc/api/resources/ticketoutputpdf.rst
@@ -1,7 +1,7 @@
PDF ticket output
=================
-The PDF ticket output plugin provides a HTTP API that exposes the various layouts used
+The build-in PDF ticket output plugin provides a HTTP API that exposes the various layouts used
to generate PDF tickets.
Resource description
diff --git a/doc/conf.py b/doc/conf.py
index 04be9c765d..236895436d 100644
--- a/doc/conf.py
+++ b/doc/conf.py
@@ -69,7 +69,7 @@ master_doc = 'index'
# General information about the project.
project = 'pretix'
-copyright = '2014-{}, Raphael Michel'.format(date.today().year)
+copyright = '2014-{}, rami.io GmbH'.format(date.today().year)
# The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the
@@ -233,8 +233,8 @@ latex_elements = {
# (source start file, target name, title,
# author, documentclass [howto, manual, or own class]).
latex_documents = [
- ('index', 'pretix.tex', 'pretix Documentation',
- 'Raphael Michel', 'manual'),
+ ('index', 'pretix.tex', 'pretix Developer Documentation',
+ 'rami.io GmbH', 'manual'),
]
# The name of an image file (relative to this directory) to place at the top of
@@ -263,8 +263,8 @@ latex_documents = [
# One entry per manual page. List of tuples
# (source start file, name, description, authors, manual section).
man_pages = [
- ('index', 'pretix', 'pretix Documentation',
- ['Raphael Michel'], 1)
+ ('index', 'pretix', 'pretix Developer Documentation',
+ ['rami.io GmbH'], 1)
]
# If true, show URL addresses after external links.
@@ -277,8 +277,8 @@ man_pages = [
# (source start file, target name, title, author,
# dir menu entry, description, category)
texinfo_documents = [
- ('index', 'pretix', 'pretix Documentation',
- 'Raphael Michel', 'pretix', 'One line description of project.',
+ ('index', 'pretix', 'pretix Developer Documentation',
+ 'rami.io GmbH', 'pretix', 'One line description of project.',
'Miscellaneous'),
]
diff --git a/doc/contents.rst b/doc/contents.rst
index d8544d0ebe..5315f9c09e 100644
--- a/doc/contents.rst
+++ b/doc/contents.rst
@@ -4,10 +4,6 @@ Table of contents
.. toctree::
:maxdepth: 3
- user/index
- admin/index
api/index
development/index
- plugins/index
- license/faq
diff --git a/doc/development/index.rst b/doc/development/index.rst
index 44545f5c72..8c1d68c4ce 100644
--- a/doc/development/index.rst
+++ b/doc/development/index.rst
@@ -1,5 +1,5 @@
-Developer documentation
-=======================
+Plugin & core development
+=========================
.. toctree::
:maxdepth: 2
diff --git a/doc/development/setup.rst b/doc/development/setup.rst
index a691876f49..1975d757e9 100644
--- a/doc/development/setup.rst
+++ b/doc/development/setup.rst
@@ -5,7 +5,7 @@ Development setup
This tutorial helps you to get started hacking with pretix on your own computer. You need this to
be able to contribute to pretix, but it might also be helpful if you want to write your own plugins.
-If you want to install pretix on a server for actual usage, go to the :ref:`admindocs` instead.
+If you want to install pretix on a server for actual usage, go to the [administrator documentation](https://docs.pretix.eu/self-hosting/) instead.
Obtain a copy of the source code
--------------------------------
@@ -18,7 +18,7 @@ External Dependencies
---------------------
Your should install the following on your system:
-* Python 3.5 or newer
+* Python 3.9 or newer
* ``pip`` for Python 3 (Debian package: ``python3-pip``)
* ``python-dev`` for Python 3 (Debian package: ``python3-dev``)
* On Debian/Ubuntu: ``python-venv`` for Python 3 (Debian package: ``python3-venv``)
@@ -33,7 +33,7 @@ Your should install the following on your system:
Your local python environment
-----------------------------
-Please execute ``python -V`` or ``python3 -V`` to make sure you have Python 3.4
+Please execute ``python -V`` or ``python3 -V`` to make sure you have Python 3.9
(or newer) installed. Also make sure you have pip for Python 3 installed, you can
execute ``pip3 -V`` to check. Then use Python's internal tools to create a virtual
environment and activate it for your current session::
diff --git a/doc/images/logo-white.svg b/doc/images/logo-white.svg
index 8e32268054..690f195fd1 100644
--- a/doc/images/logo-white.svg
+++ b/doc/images/logo-white.svg
@@ -1 +1,29 @@
-
+
+
\ No newline at end of file
diff --git a/doc/plugins/epaybl.rst b/doc/plugins/epaybl.rst
deleted file mode 100644
index 32cbec6945..0000000000
--- a/doc/plugins/epaybl.rst
+++ /dev/null
@@ -1,143 +0,0 @@
-ePayBL
-======
-
-.. note::
-
- Since ePayBL is only available to german federal, provincial and communal entities, the following page is also
- only provided in german. Should you require assistance with ePayBL and do not speak this language, please feel free
- reach out to support@pretix.eu.
-
-
-Einführung
-----------
-
-.. note::
-
- Sollten Sie lediglich schnell entscheiden wollen, welcher Kontierungsmodus in den Einstellungen des pretix
- ePayBL-plugins gewählt werden soll, so springen Sie direkt zur Sektion :ref:`Kontierungsmodus`.
-
-
-`ePayBL`_ - das ePayment-System von Bund und Länder - ist das am weitesten verbreitete Zahlungssystem für Bundes-, Länder-
-sowie kommunale Aufgabenträger. Während es nur wie eines von vielen anderen Zahlungssystemen scheint, so bietet es
-seinen Nutzern besondere Vorteile, wie die automatische Erfassung von Zahlungsbelegen, dem Übertragen von Buchungen in
-Haushaltskassen/-systeme sowie die automatische Erfassung von Kontierungen und Steuermerkmalen.
-
-Rein technisch gesehen ist ePayBL hierbei nicht ein eigenständiger Zahlungsdienstleister sondern nur ein eine Komponente
-im komplexen System, dass die Zahlungsabwicklung für Kommunen und Behörden ist.
-
-Im folgenden der schematische Aufbau einer Umgebung, in welcher ePayBL zum Einsatz kommt:
-
-.. figure:: img/epaybl_flowchart.png
- :class: screenshot
-
- Quelle: Integrationshandbuch ePayBL-Konnektor, DResearch Digital Media Systems GmbH
-
-
-In diesem Schaubild stellt pretix, bzw. die von Ihnen als Veranstalter angelegten Ticketshops, das Fachverfahren dar.
-
-ePayBL stellt das Bindeglied zwischen den Fachverfahren, Haushaltssystemen und dem eigentlichen Zahlungsdienstleister,
-dem sog. ZV-Provider dar. Dieser ZV-Provider ist die Stelle, welche die eigentlichen Kundengelder einzieht und an den
-Händler auszahlt. Das Gros der Zahlungsdienstleister unterstützt pretix hierbei auch direkt; sprich: Sollten Sie die
-Anbindung an Ihre Haushaltssysteme nicht benötigen, kann eine direkte Anbindung in der Regel ebenso - und dies bei meist
-vermindertem Aufwand - vorgenommen werden.
-
-In der Vergangenheit zeigte sich jedoch schnell, dass nicht jeder IT-Dienstleister immer sofort die neueste Version von
-ePayBL seinen Nutzern angeboten hat. Die Gründe hierfür sind mannigfaltig: Von fest vorgegebenen Update-Zyklen bis hin
-zu Systeme mit speziellen Anpassungen, kann leider nicht davon ausgegangen werden, dass alle ePayBL-Systeme exakt gleich
-ansprechbar sind - auch wenn es sich dabei eigentlich um einen standardisierten Dienst handelt.
-
-Aus diesem Grund gibt es mit dem ePayBL-Konnektor eine weitere Abstraktionsschicht welche optional zwischen den
-Fachverfahren und dem ePayBL-Server sitzt. Dieser Konnektor wird so gepflegt, dass er zum einen eine dauerhaft
-gleichartige Schnittstelle den Fachverfahren bietet aber gleichzeitig auch mit jeder Version des ePayBL-Servers
-kommunizieren kann - egal wie neu oder alt, wie regulär oder angepasst diese ist.
-
-Im Grunde müsste daher eigentlich immer gesagt werden, dass pretix eine Anbindung an den ePayBL-Konnektor bietet; nicht
-an "ePayBL" oder den "ePayBL-Server". Diese Unterscheidung kann bei der Ersteinrichtung und Anforderung von Zugangsdaten
-von Relevanz sein. Da in der Praxis jedoch beide Begriffe gleichbedeutend genutzt werden, wird im Folgenden auch nur von
-einer ePayBL-Anbindung die Rede sein - auch wenn explizit der Konnektor gemeint ist.
-
-
-.. _`Kontierungsmodus`:
-
-Kontierungsmodus
-----------------
-
-ePayBL ist ein Produkt, welches für die Abwicklung von Online-Zahlungsvorgängen in der Verwaltung geschaffen wurde. Ein
-Umfeld, in dem klar definiert ist, was ein Kunde gerade bezahlt und wohin das Geld genau fließt. Diese Annahmen lassen
-sich in einem Ticketshop wie pretix jedoch nur teilweise genauso abbilden.
-
-Die ePayBL-Integration für pretix bietet daher zwei unterschiedliche Modi an, wie Buchungen erfasst und an ePayBL und
-damit auch an die dahinterliegenden Haushaltssysteme gemeldet werden können.
-
-Kontierung pro Position/Artikel
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-Dieser Modus versucht den klassischen, behördentypischen ePayBL-Zahlungsvorgang abzubilden: Jede einzelne Position, die
-ein Kunde in den Warenkorb legt, wird auch genauso 1:1 an ePayBL und die Hintergrundsysteme übermittelt.
-
-Hierbei muss zwingend auch für jede Position ein Kennzeichen für Haushaltsstelle und Objektnummer, sowie optional ein
-Kontierungsobjekt (``HREF``; bspw. ``stsl=Steuerschlüssel;psp=gsb:Geschäftsbereich,auft:Innenauftrag,kst:Kostenstelle;``
-) übermittelt werden.
-
-Diese Daten sind vom Veranstalter entsprechend für jeden in der Veranstaltung angelegten Artikel innerhalb des Tabs
-"Zusätzliche Einstellungen" der Produkteinstellungen zu hinterlegen.
-
-Während diese Einstellung eine größtmögliche Menge an Kontierungsdaten überträgt und auch ein separates Verbuchen von
-Leistungen auf unterschiedliche Haushaltsstellen erlaubt, so hat diese Option auch einen großen Nachteil: Der Kunde kann
-nur eine Zahlung für seine Bestellung leisten.
-
-Während sich dies nicht nach einem großen Problem anhört, so kann dies beim Kunden zu Frust führen. pretix bietet die
-Option an, dass ein Veranstalter eine Bestellung jederzeit verändern kann: Ändern von Preisen von Positionen in einer
-aufgegebenen Bestellung, Zubuchen und Entfernen von Bestellpositionen, etc. Hat der Kunde seine ursprüngliche Bestellung
-jedoch schon bezahlt, kann pretix nicht mehr die komplette Bestellung mit den passenden Kontierungen übertragen - es
-müsste nur ein Differenz-Abbild zwischen Ursprungsbestellung und aktueller Bestellung übertragen werden. Aber auch wenn
-eine "Nachmeldung" möglich wäre, so wäre ein konkretes Auflösen für was jetzt genau gezahlt wird, nicht mehr möglich.
-
-Daher gilt bei der Nutzung der Kontierung pro Position/Artikel: Der Kunde kann nur eine (erfolgreiche) Zahlung auf seine
-Bestellung leisten.
-
-Eine weitere Einschränkung dieses Modus ist, dass aktuell keine Gebühren-Positionen (Versandkosten, Zahlungs-, Storno-
-oder Servicegebühren) in diesem Modus übertragen werden können. Bitte wenden Sie sich an uns, wenn Sie diese
-Funktionalität benötigen.
-
-
-Kontierung pro Zahlvorgang
-^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-Dieser Modus verabschiedet sich vom behördlichen "Jede Position gehört genau zu einem Haushaltskonto und muss genau
-zugeordnet werden". Stattdessen werden alle Bestellpositionen - inklusive eventuell definierter Gebühren - vermengt und
-nur als ein großer Warenkorb, genauer gesagt: eine einzige Position an ePayBL sowie die Hintergrundsysteme gemeldet.
-
-Während im "pro Postion/Artikel"-Modus jeder Artikel einzeln übermittelt wird und damit auch korrekt pro Artikel der
-jeweilige Brutto- und Nettopreis, sowie der anfallende Steuerbetrag und ein Steuerkennzeichen (mit Hilfe des optionalen
-``HREF``-Attributs) übermittelt werden, ist dies im "pro Zahlvorgang"-Modus nicht möglich.
-
-Stattdessen übermittelt pretix nur einen Betrag für den gesamten Warenkorb: Bruttopreis == Nettopreis. Der Steuerbetrag
-wird hierbei als 0 übermittelt.
-
-Die Angabe einer Haushaltsstelle und Objektnummer, sowie optional der ``HREF``-Kontierungsinformationen ist jedoch
-weiterhin notwendig - allerdings nicht mehr individuell für jeden Artikel/jede Position sondern nur für die gesamte
-Bestellung. Diese Daten sind direkt in den ePayBL-Einstellungen der Veranstaltung unter Einstellungen -> Zahlung ->
-ePayBL vorzunehmen
-
-In der Praxis bedeutet dies, dass in einem angeschlossenen Haushaltssystem nicht nachvollzogen kann, welche Positionen
-konkret erworben und bezahlt wurden - stattdessen kann nur der Fakt, dass etwas verkauft wurde erfasst werden.
-
-Je nach Aufbau und Vorgaben der Finanzbuchhaltung kann dies jedoch ausreichend sein - wenn bspw. eine Ferienfahrt
-angeboten wird und seitens der Haushaltssysteme nicht erfasst werden muss, wie viel vom Gesamtbetrag einer Bestellung
-auf die Ferienfahrt an sich, auf einen Zubringerbus und einen Satz Bettwäsche entfallen ist, sondern (vereinfacht
-gesagt) es ausreichend ist, dass "Eine Summe X für die Haushaltsstelle/Objektnummer geflossen ist".
-
-Dieser Modus der Kontierung bietet Ihnen auch als Vorteil gegenüber dem vorhergehenden an, dass die Bestellungen der
-Kunden jederzeit erweitert und verändert werden können - auch wenn die Ursprungsbestellung schon bezahlt wurde und nur
-noch eine Differenz gezahlt wird.
-
-
-Einschränkungen
----------------
-
-Zum aktuellen Zeitpunkt erlaubt die pretix-Anbindung an ePayBL nicht das durchführen von Erstattungen von bereits
-geleisteten Zahlungen. Der Prozess hierfür unterscheidet sich von Behörde zu Behörde und muss daher händisch
-durchgeführt werden.
-
-.. _ePayBL: https://www.epaybl.de/
diff --git a/doc/plugins/getyourguide.rst b/doc/plugins/getyourguide.rst
deleted file mode 100644
index e15743084b..0000000000
--- a/doc/plugins/getyourguide.rst
+++ /dev/null
@@ -1,105 +0,0 @@
-GetYourGuide
-============
-
-.. note::
-
- The GetYourGuide integration is currently in Beta. Please contact support@pretix.eu to enable the integration
- for your pretix.eu organizer account.
-
-Introduction
-------------
-Using third party aggregators, such als GetYourGuide, event organizers can sell tickets to their events not only on
-their own ticket-shop but also on the aggregator's portal. While this service is not for free, it allows event
-organizers to reacher a larger audience that would otherwise not have found their way into the organizers webshop.
-
-Using pretix' integration with GetYourGuide, event organizers can profit from an additional sales and revenue channel,
-while keeping the effort for setting up and maintaining multiple ticket shops to a minimum.
-
-Preparing your organizer account
---------------------------------
-The first step in enabling the GetYourGuide integration, is to setup a corresponding Sales Channel, which will be used
-to properly attribute the sales generated. This needs to be done only once per organizer account.
-
-To do so, log into the pretix backend, select ``Organizers`` from the navigation and then the organizer in question.
-Extending the ``Settings``-menu, find the ``Sales channels`` configuration and click the ``Add a new channel`` button.
-
-On the following page, you will be able to select ``GetYourGuide`` as the sales channel type and give it a custom name.
-
-Preparing your event
---------------------
-In order to now sell your events on GetYourGuide, you will need to configure each event in question.
-
-1. Enabling the plugin
- Within your event, extend the ``Settings`` menu and navigate to ``Plugins``. Activate the plugin in the
- ``Integrations`` tab.
-
-2. Sell the event on the sales channel
- Pick the sales channel or channels, on which you would like to sell your event by navigating to the event's general
- settings page using the ``Sell on all sales channels`` or ``Restrict to specific sales channels`` checkboxes.
-
-3. Configure one or more products to be sold on GetYourGuide
- Either create a new or edit an existing product, that you would like to sell on GetYourGuide. To do so, you will
- need to have checked the ``Sell on all sales channels`` or appropriate ``Restrict to specific sales channels``
- checkbox of the product within it's ``Availability`` tab.
- In addition, you will also need to set the GetYourGuide equivalent ticket category in the product's accordingly
- named settings tab. Within your event, there can be only one product per ticket category. Depending on your further
- configuration, you must at least select one product to be in the ``Adult`` or ``Group`` category.
-
-4. Configuring the GetYourGuide-plugin
- Once you have configured one or more products to be eligible to be sold on GetYourGuide, you'll need to configure a
- few basic settings within the event (``Settings`` --> ``GetYourGuide``). The most important settings can be found
- the in the ``Configuration`` tab, such as the location of the event on sale.
-
-Ticket Categories
------------------
-While pretix only uses the ticket category term loosely to group together multiple products for nicer display,
-GetYourGuide is relying on the ticket categories to price the tickets.
-
-First of all, you need to make the decision on how you are planning on selling your tickets on GetYourGuide - in most
-cases, this will reflect your current sales strategy within your pretix shop.
-
-- Individual tickets
- Every single person attending will need to purchase their own ticket. A family of two adults and two
- children will have to purchase and pay for a total of 4 tickets.
- In this case, you will need to offer *at least* a ticket of the ``Adult`` type, but may offer any other ticket
- category type (Child, Youth, Senior, ...) in addition. But you cannot offer a ``Group`` ticket.
-
-- Group tickets
- Two groups, consisting of 10 and 20 participants respectively, won't need to purchase a total of 30 tickets, but
- rather two group tickets. It is up to you to configure the group size limits within the GetYourGuide-settings of your
- product.
- Choosing this option, you cannot offer any other ticket categories besides ``Group``.
-
-Setting up event dates and quotas
----------------------------------
-Of course, in addition to creating products, you will also need to add them to a quota for them to be available for
-sale. The process for doing this is the very same as for any regular event or event series.
-
-.. note::
-
- When selling individual tickets through GetYourGuide, you will not be able to offer differing quantities for
- individual ticket categories.
-
-For this reason, we recommend to place all GetYourGuide-eligible products into the same quota. Should you however opt
-to create multiple quotas which create an imbalance, pretix will report only the available number of tickets for the
-lowest relevant quota.
-
-Connecting your event to GetYourGuide
--------------------------------------
-Once you have set up your event and products and performed all necessary configuration, you may want to use the
-Analyzer-feature of our GetYourGuide-plugin (``Settings`` -> ``GetYourGuide`` -> tab ``Analyzer``).
-
-The Analyzer should not display any blocking error messages and at least one event date that is ready for publishing on
-the GetYourGuide platform.
-
-At this point, you will need to setup your event (called ``product`` in the GetYourGuide universe) on their
-`Supplier Portal`_ and connect it with your pretix shop. To do so, please follow the
-`Connecting a new product to your Reservation System`_ on the GetYourGuide Supply Partner Help Center.
-
-Select ``pretix.eu`` as your reservation system; the required ``product ID`` can be found in the ``Configuration`` tab
-of the GetYourGuide plugin settings page.
-
-From this point on, GetYourGuide will automatically import the availabilities and products and offer them for sale.
-
-.. _Supplier Portal: https://suppliers.getyourguide.com/
-.. _Connecting a new product to your Reservation System: https://supply.getyourguide.support/hc/en-us/articles/18008029689373-Connecting-a-new-product-to-your-Reservation-system
diff --git a/doc/plugins/img/epaybl_flowchart.png b/doc/plugins/img/epaybl_flowchart.png
deleted file mode 100644
index ba8e7f83bc79d040bb037244f756559a9ed8593e..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 44496
zcmd3NWmr^Q^e-Zk5=xhVq)142htdLqG*UwkAl=dp0@5WdA>An;ATgvc)DY6$U3c@|
z|NV5I=YGCE4&u}~XP>p#`o&sd@0H(TW0GMaAt7PQy^~f$LPGXOLV9G0jtZVZPm}8d
z|6tg^({@Bc!s&W=JnFUkVG5okb&}C?Qn!ORxf*>oLvnR>WwV4@JDM2To3Yt_Hc#6V
zCPPA^Mv{}3_~4elgK$s(Fp+X_Xt+CJeJU#@WzDDin3<{JA2JPD7#?3_#}j-G%ze5x
zj;m+~)L=yz9tG!6WNH|LAPI#yr$r8_>KqSKxGr^Q6?X);?!JPv>(BbV)_tn(pJiLE
zX?taRW$V|M7nR$S`a`=pC7B*W0>d1eO=Yx!c#`NeanS;!*bl!1;)T)peSi2(IxbH9
z{lgP4<>aWD9^Mt3M~6r7@Sb;S&(Sf#E0T1tFi?X2`}{W)|NlNMCyy-g@Jc8h{r~4*
zqm7UFGU=orbM5P?$e=!V|8N}~Cr;~JVky|tE%77b@8PE#zNrNcIikM?4F6VN2jaHp
zIB!$%Mub@gSq^5U4*ZTSdQO2kin{{S35}NfoMRq2?4_Y`NGUqFM6Y0RwHP4HXFZ}I
zbgn1wb1uYbKDaS{oO<%e$2E#o#bqu*PKfbiQKfNo
zW@aiX=*l=P%u8cW#eO@Ggp46Ze)V4^=^#axTxu6{mP{c@hv6F%)BSXT3(KS8jollZp>C3=l1WQei0LL
z`{c>)p8845{kzIpkqT^b|7fu@l90XjcEmbcNqKMTM04K9_9y;5Xi7{3|K7VlE?M|#
z=h{B1jq@VilYy4g#{08=jM!lLf=I{w(HR%nz*ml=lNhF0;b8tiQ#Ica0-A2hnxj~$G+HJQs>dG`dW$NL74jttP)`=Fi@kFvwV
z8*I&6FJ96@TPl0kx01w1NbcctbAw{-269p5yYxhcn!gg%tFEuc9O|f!4t{$w&e*8b
z>bhNB$6uY!NIqrgSumx>`*fPNN@4pRA3;YW{rX%__1BKv?R6vn`$&?-DbIb?`cD#b
zj^p)qjK^^b&;M2}(SA_vIMdXgoJR@pet}+GEKiNMsAWdk?pANhcc4-(7=RVdb#)Y{
zFQ~QJd;57-BH`Z6mIME70gi=kAj!MRM~g==#vkVcrG_-9&9m%7>#0TVVNlufqGEY<
zb^Kl&%A7ratbdtltO;mWb7-$#S@?;c9OgSaPgOPF2jvVSOX$OM7my5QHTn_*4p$8!
z38o-mH`*FLl(#nIrV_jUR#Ce=6KG^CGw8b9!8P3L#;?|-HKFEgIH;=Tq4)$^!%FCOeTX9Agy<->!O>ja7)F@_Z@
zVY3SM`A?%~Cc=xW-FD|2Y-JjiH4*%560Fa2>_}Hh`bJqm9t8zn=tjU;_A_qKZ&
znn)2j+k$@LU&6yNqi_f~@!zU6TN&WP9jY=I;<
zcgvpme}-!qn@BS-L%RM>PJZ4Pq4_qz76BFWT~{6(7Gn2fRlr#aMiq_ReBL&<-W50I
z+?X?ti4sL!QCF8}*lyT0x|UeF@Xen)ahQE;w+QX`_m
zM|v!#-}c6`&yw-)ZlnI4+g);P(lD1GDuU5ZOKiHi``{MnV36hxP
z>aJM+Sc3NYy{_&+aLnszjoBk5vp11wJ7ts0sEi<$P_?P2H=tsSN-f!wv@Z+~Nofe*
zHby=nFy<#O6|r5iPu|+Hl2=ezB3}rFws-FL?oiyFK1Yk6V*96^I=R}z2Z|3I?*7>Gw+u2&fd3Zie@c7>7$m;q
z$^9Z$)2@N2WNxIpsYTBr^21%|Eic6Dx7+x5Wki>Som~h`~G<-zP66*vs><+%L
zuClpECeqqgSw4+Iy>H$H%i-}vg{^<%ko&!SxahT0xp7u`f5eVqqj8j4<6?WV4pQC7
z>Yd0Q8E?;{hxmLe`t;d|&U`ZOoVTWmGS3E!K{MYTuJwI!h_hPRF3v{9|f
zI}y-iKAt39_He_@F=93M#Y-u-0B`kV&s*HWn(4Efbq$+&4bQFEA%D`#Iew8C&&gfJ
z?@pr6EI{5%QTs|%zZ-3ShLqv@EG&C{GzkCN#;j}}gwzL3%_`S@1Dk~_O{eBT0_F6n
zy`?gPkQd(mB(=!oWMoqg4Ge7Pdd&^H3eOL4UC7M6Z
z>sYW{BjeK>k%j1`9Nt;AGvt>pMs%{GqbYKhx1bLNK3Z$;W)gdz0X9v0K@|I%gHs!69yW^v6l(yR&EgooM5%Uec<9>nW
zs8Ol;qFLM3n;Xpsw(cIN{ymw+u5A3P2$p_5|@itE{ebLn=lwk
z+ky6z>+S2pG|tNnJ#OB3v*YlKQNEt9Y4biV-DI04`Bfa8MB@p@QEeRsQ-gD^tE4Px
zAAfs)%#>&vce8z&(qfktPwrZ#O|M